<?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>146264</bug_id>
          
          <creation_ts>2015-06-23 17:17:54 -0700</creation_ts>
          <short_desc>Refactoring benchmark runner script to follow pep8 code style.</short_desc>
          <delta_ts>2015-06-23 19:14:18 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1104255</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-23 17:17:54 -0700</bug_when>
    <thetext>Refactoring benchmark runner script to follow pep8 code style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104284</commentid>
    <comment_count>1</comment_count>
      <attachid>255462</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-23 18:14:30 -0700</bug_when>
    <thetext>Created attachment 255462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104285</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-23 18:17:22 -0700</bug_when>
    <thetext>Attachment 255462 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:94:  [SimpleHTTPServerDriver.kill_server] Instance of &apos;Popen&apos; has no &apos;terminate&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104301</commentid>
    <comment_count>3</comment_count>
      <attachid>255462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-23 19:14:13 -0700</bug_when>
    <thetext>Comment on attachment 255462
Patch

Clearing flags on attachment: 255462

Committed r185898: &lt;http://trac.webkit.org/changeset/185898&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104302</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-23 19:14:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255462</attachid>
            <date>2015-06-23 18:14:30 -0700</date>
            <delta_ts>2015-06-23 19:14:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146264-20150623181347.patch</filename>
            <type>text/plain</type>
            <size>42250</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1ODgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDEyNjBkOWUyZjhkNjE0M2ExMTJmMWI1MmIzMGYwZDA5
MzJjMTkwOC4uZDJmODY4NjM1NTBmOTc0ZDUzZmVjOGViZTdlMGRmMjFkMTdkZTYyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
MiBAQAorMjAxNS0wNi0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvcmluZyBiZW5jaG1hcmsgcnVubmVyIHNjcmlwdCB0byBmb2xsb3cgcGVwOCBj
b2RlIHN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ2MjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVmYWN0b3IgYmVuY2htYXJrIHJ1bm5lciBzY3JpcHQgdG8gZm9sbG93IHBlcDggY29kZSBz
dHlsZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5j
aG1hcmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5OgorICAgICAgICAoR2Vu
ZXJpY0JlbmNobWFya0J1aWxkZXIucHJlcGFyZSk6CisgICAgICAgIChHZW5lcmljQmVuY2htYXJr
QnVpbGRlci5fcnVuX2NyZWF0ZV9zY3JpcHQpOgorICAgICAgICAoR2VuZXJpY0JlbmNobWFya0J1
aWxkZXIuX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKToKKyAgICAgICAgKEdlbmVyaWNCZW5j
aG1hcmtCdWlsZGVyLl9mZXRjaF9yZW1vdGVfYXJjaGl2ZSk6CisgICAgICAgIChHZW5lcmljQmVu
Y2htYXJrQnVpbGRlcik6CisgICAgICAgIChHZW5lcmljQmVuY2htYXJrQnVpbGRlci5fY2hlY2tv
dXRfd2l0aF9zdWJ2ZXJzaW9uKToKKyAgICAgICAgKEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyLl9h
cHBseV9wYXRjaCk6CisgICAgICAgIChHZW5lcmljQmVuY2htYXJrQnVpbGRlci5jbGVhbik6Cisg
ICAgICAgIChHZW5lcmljQmVuY2htYXJrQnVpbGRlci5fcnVuQ3JlYXRlU2NyaXB0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyLl9jb3B5QmVuY2htYXJrVG9UZW1w
RGlyKTogRGVsZXRlZC4KKyAgICAgICAgKEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyLl9mZXRjaFJl
bW90ZUFyY2hpdmUpOiBEZWxldGVkLgorICAgICAgICAoR2VuZXJpY0JlbmNobWFya0J1aWxkZXIu
X2NoZWNrb3V0V2l0aFN1YnZlcmlvbik6IERlbGV0ZWQuCisgICAgICAgIChHZW5lcmljQmVuY2ht
YXJrQnVpbGRlci5fYXBwbHlQYXRjaCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHk6CisgICAgICAgIChCZW5j
aG1hcmtSdW5uZXIuX19pbml0X18pOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLl9maW5kX3Bs
YW5fZmlsZSk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuZXhlY3V0ZSk6CisgICAgICAgIChC
ZW5jaG1hcmtSdW5uZXIuX2NsZWFudXApOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLl9kdW1w
KToKKyAgICAgICAgKEJlbmNobWFya1J1bm5lci5fd3JhcCk6CisgICAgICAgIChCZW5jaG1hcmtS
dW5uZXIuX21lcmdlKToKKyAgICAgICAgKEJlbmNobWFya1J1bm5lci5fc2hvd19yZXN1bHRzKToK
KyAgICAgICAgKEJlbmNobWFya1J1bm5lci5fZmluZFBsYW5GaWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEJlbmNobWFya1J1bm5lci5jbGVhbnVwKTogRGVsZXRlZC4KKyAgICAgICAgKEJlbmNobWFy
a1J1bm5lci5kdW1wKTogRGVsZXRlZC4KKyAgICAgICAgKEJlbmNobWFya1J1bm5lci53cmFwKTog
RGVsZXRlZC4KKyAgICAgICAgKEJlbmNobWFya1J1bm5lci5tZXJnZSk6IERlbGV0ZWQuCisgICAg
ICAgIChCZW5jaG1hcmtSdW5uZXIuc2hvd19yZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9k
cml2ZXIucHk6CisgICAgICAgIChCcm93c2VyRHJpdmVyLnByZXBhcmVfZW52KToKKyAgICAgICAg
KEJyb3dzZXJEcml2ZXIubGF1bmNoX3VybCk6CisgICAgICAgIChCcm93c2VyRHJpdmVyLmNsb3Nl
X2Jyb3dzZXJzKToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXIucHJlcGFyZUVudik6IERlbGV0ZWQu
CisgICAgICAgIChCcm93c2VyRHJpdmVyLmxhdW5jaFVybCk6IERlbGV0ZWQuCisgICAgICAgIChC
cm93c2VyRHJpdmVyLmNsb3NlQnJvd3Nlcik6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZl
ci5weToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIpOgorICAgICAgICAoT1NYQnJvd3NlckRy
aXZlci5wcmVwYXJlX2Vudik6CisgICAgICAgIChPU1hCcm93c2VyRHJpdmVyLmNsb3NlX2Jyb3dz
ZXJzKToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIuX2xhdW5jaF9wcm9jZXNzKToKKyAgICAg
ICAgKE9TWEJyb3dzZXJEcml2ZXIuX3Rlcm1pbmlhdGVfcHJvY2Vzc2VzKToKKyAgICAgICAgKE9T
WEJyb3dzZXJEcml2ZXIuX2xhdW5jaF9wcm9jZXNzX3dpdGhfY2FmZmluYXRlKToKKyAgICAgICAg
KE9TWEJyb3dzZXJEcml2ZXIuX3NjcmVlbl9zaXplKToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2
ZXIucHJlcGFyZUVudik6IERlbGV0ZWQuCisgICAgICAgIChPU1hCcm93c2VyRHJpdmVyLmNsb3Nl
QnJvd3NlcnMpOiBEZWxldGVkLgorICAgICAgICAoT1NYQnJvd3NlckRyaXZlci5sYXVuY2hQcm9j
ZXNzKTogRGVsZXRlZC4KKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIudGVybWluYXRlUHJvY2Vz
c2VzKTogRGVsZXRlZC4KKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIubGF1bmNoUHJvY2Vzc1dp
dGhDYWZmaW5hdGUpOiBEZWxldGVkLgorICAgICAgICAoT1NYQnJvd3NlckRyaXZlci5zY3JlZW5T
aXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHk6CisgICAgICAgIChPU1hDaHJv
bWVEcml2ZXIpOgorICAgICAgICAoT1NYQ2hyb21lRHJpdmVyLmxhdW5jaF91cmwpOgorICAgICAg
ICAoT1NYQ2hyb21lQ2FuYXJ5RHJpdmVyKToKKyAgICAgICAgKE9TWENocm9tZUNhbmFyeURyaXZl
ci5sYXVuY2hfdXJsKToKKyAgICAgICAgKE9TWENocm9tZURyaXZlci5sYXVuY2hVcmwpOiBEZWxl
dGVkLgorICAgICAgICAoT1NYQ2hyb21lQ2FuYXJ5RHJpdmVyLmxhdW5jaFVybCk6IERlbGV0ZWQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJp
dmVyL29zeF9maXJlZm94X2RyaXZlci5weToKKyAgICAgICAgKE9TWEZpcmVmb3hEcml2ZXIpOgor
ICAgICAgICAoT1NYRmlyZWZveERyaXZlci5sYXVuY2hfdXJsKToKKyAgICAgICAgKE9TWEZpcmVm
b3hOaWdodGx5RHJpdmVyKToKKyAgICAgICAgKE9TWEZpcmVmb3hOaWdodGx5RHJpdmVyLmxhdW5j
aF91cmwpOgorICAgICAgICAoT1NYRmlyZWZveERyaXZlci5sYXVuY2hVcmwpOiBEZWxldGVkLgor
ICAgICAgICAoT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIubGF1bmNoVXJsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
b3N4X3NhZmFyaV9kcml2ZXIucHk6CisgICAgICAgIChPU1hTYWZhcmlEcml2ZXIpOgorICAgICAg
ICAoT1NYU2FmYXJpRHJpdmVyLnByZXBhcmVfZW52KToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZl
ci5sYXVuY2hfdXJsKToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5jbG9zZV9icm93c2Vycyk6
CisgICAgICAgIChPU1hTYWZhcmlEcml2ZXIuX21heGltaXplX3dpbmRvdyk6CisgICAgICAgIChP
U1hTYWZhcmlEcml2ZXIucHJlcGFyZUVudik6IERlbGV0ZWQuCisgICAgICAgIChPU1hTYWZhcmlE
cml2ZXIubGF1bmNoVXJsKTogRGVsZXRlZC4KKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5jbG9z
ZUJyb3dzZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5tYXhpbWl6ZVdp
bmRvdyk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHk6CisgICAgICAgIChI
VFRQU2VydmVyRHJpdmVyLmZldGNoX3Jlc3VsdCk6CisgICAgICAgIChIVFRQU2VydmVyRHJpdmVy
LmtpbGxfc2VydmVyKToKKyAgICAgICAgKEhUVFBTZXJ2ZXJEcml2ZXIuZ2V0X3JldHVybl9jb2Rl
KToKKyAgICAgICAgKEhUVFBTZXJ2ZXJEcml2ZXIuc2V0X2RldmljZV9pZCk6CisgICAgICAgIChI
VFRQU2VydmVyRHJpdmVyLmZldGNoUmVzdWx0KTogRGVsZXRlZC4KKyAgICAgICAgKEhUVFBTZXJ2
ZXJEcml2ZXIua2lsbFNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIChIVFRQU2VydmVyRHJpdmVy
LmdldFJldHVybkNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSFRUUFNlcnZlckRyaXZlci5zZXRE
ZXZpY2VJRCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5Ogor
ICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlci5zZXJ2ZSk6CisgICAgICAgIChTaW1wbGVI
VFRQU2VydmVyRHJpdmVyLmJhc2VfdXJsKToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2
ZXIuZmV0Y2hfcmVzdWx0KToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIua2lsbF9z
ZXJ2ZXIpOgorICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlci5nZXRfcmV0dXJuX2NvZGUp
OgorICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlcik6IERlbGV0ZWQuCisgICAgICAgIChT
aW1wbGVIVFRQU2VydmVyRHJpdmVyLmJhc2VVcmwpOiBEZWxldGVkLgorICAgICAgICAoU2ltcGxl
SFRUUFNlcnZlckRyaXZlci5mZXRjaFJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChTaW1wbGVI
VFRQU2VydmVyRHJpdmVyLmtpbGxTZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoU2ltcGxlSFRU
UFNlcnZlckRyaXZlci5nZXRSZXR1cm5Db2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHk6CisgICAgICAgIChnZXRfcGF0aF9m
cm9tX3Byb2plY3Rfcm9vdCk6CisgICAgICAgIChmb3JjZV9yZW1vdmUpOgorICAgICAgICAoZ2V0
UGF0aEZyb21Qcm9qZWN0Um9vdCk6IERlbGV0ZWQuCisgICAgICAgIChmb3JjZVJlbW92ZSk6IERl
bGV0ZWQuCisKIDIwMTUtMDYtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgRXhwb3NlIHNvbWUgbW9yZSByZW5kZXJpbmcgcHJvZ3Jlc3MgZXZlbnRz
LCBhbmQgaGF2ZSBNaW5pQnJvd3NlciBsb2cgZm9yIGVhY2ggb2YgdGhlbQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVy
L2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRl
ci5weQppbmRleCA2OWU0ZTY4NTIxZjU0YzU5YTUyZmM4M2NiMjE5MmYwNzAxZWQ5OGY2Li4yNzJh
ZGE0MDhlOTY5NmVlNDc3NGFjZTBiZjljN2M1ZTAxZmViZTM4IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJp
Y19iZW5jaG1hcmtfYnVpbGRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5w
eQpAQCAtOCw3ICs4LDcgQEAgaW1wb3J0IHNodXRpbAogaW1wb3J0IHN1YnByb2Nlc3MKIAogZnJv
bSB6aXBmaWxlIGltcG9ydCBaaXBGaWxlCi1mcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIu
dXRpbHMgaW1wb3J0IGdldFBhdGhGcm9tUHJvamVjdFJvb3QsIGZvcmNlUmVtb3ZlCitmcm9tIHdl
YmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGdldF9wYXRoX2Zyb21fcHJvamVj
dF9yb290LCBmb3JjZV9yZW1vdmUKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCkBAIC0xOSw3MSArMTksNzEgQEAgY2xhc3MgR2VuZXJpY0JlbmNobWFya0J1aWxkZXIob2Jq
ZWN0KToKICAgICBidWlsZGVyX25hbWUgPSAnR2VuZXJpY0JlbmNobWFya0J1aWxkZXInCiAKICAg
ICBkZWYgcHJlcGFyZShzZWxmLCBuYW1lLCBwbGFuKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFt
ZQotICAgICAgICBzZWxmLndlYlJvb3QgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgc2Vs
Zi5kZXN0ID0gb3MucGF0aC5qb2luKHNlbGYud2ViUm9vdCwgc2VsZi5uYW1lKQorICAgICAgICBz
ZWxmLl9uYW1lID0gbmFtZQorICAgICAgICBzZWxmLl93ZWJfcm9vdCA9IHRlbXBmaWxlLm1rZHRl
bXAoKQorICAgICAgICBzZWxmLl9kZXN0ID0gb3MucGF0aC5qb2luKHNlbGYuX3dlYl9yb290LCBz
ZWxmLl9uYW1lKQogICAgICAgICBpZiAnbG9jYWxfY29weScgaW4gcGxhbjoKLSAgICAgICAgICAg
IHNlbGYuX2NvcHlCZW5jaG1hcmtUb1RlbXBEaXIocGxhblsnbG9jYWxfY29weSddKQorICAgICAg
ICAgICAgc2VsZi5fY29weV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSdd
KQogICAgICAgICBlbGlmICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNl
bGYuX2ZldGNoUmVtb3RlQXJjaGl2ZShwbGFuWydyZW1vdGVfYXJjaGl2ZSddKQorICAgICAgICAg
ICAgc2VsZi5fZmV0Y2hfcmVtb3RlX2FyY2hpdmUocGxhblsncmVtb3RlX2FyY2hpdmUnXSkKICAg
ICAgICAgZWxpZiAnc3ZuX3NvdXJjZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNr
b3V0V2l0aFN1YnZlcmlvbihwbGFuWydzdm5fc291cmNlJ10pCisgICAgICAgICAgICBzZWxmLl9j
aGVja291dF93aXRoX3N1YnZlcnNpb24ocGxhblsnc3ZuX3NvdXJjZSddKQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdh
cyBub3Qgc3BlY2lmaWVkJykKIAotICAgICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2ht
YXJrIGludG86ICVzJyAlIHNlbGYuZGVzdCkKKyAgICAgICAgX2xvZy5pbmZvKCdDb3BpZWQgdGhl
IGJlbmNobWFyayBpbnRvOiAlcycgJSBzZWxmLl9kZXN0KQogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICBpZiAnY3JlYXRlX3NjcmlwdCcgaW4gcGxhbjoKLSAgICAgICAgICAgICAgICBzZWxmLl9y
dW5DcmVhdGVTY3JpcHQocGxhblsnY3JlYXRlX3NjcmlwdCddKQorICAgICAgICAgICAgICAgIHNl
bGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0ZV9zY3JpcHQnXSkKICAgICAgICAgICAg
IGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0gICAgICAgICAgICAgICAgc2VsZi5fYXBw
bHlQYXRjaChwbGFuWydiZW5jaG1hcmtfcGF0Y2gnXSkKLSAgICAgICAgICAgIHJldHVybiBzZWxm
LndlYlJvb3QKKyAgICAgICAgICAgICAgICBzZWxmLl9hcHBseV9wYXRjaChwbGFuWydiZW5jaG1h
cmtfcGF0Y2gnXSkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl93ZWJfcm9vdAogICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5jbGVhbigpCiAgICAgICAgICAgICBy
YWlzZQogCi0gICAgZGVmIF9ydW5DcmVhdGVTY3JpcHQoc2VsZiwgY3JlYXRlU2NyaXB0KToKLSAg
ICAgICAgb2xkV29ya2luZ0RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGly
KHNlbGYuZGVzdCkKLSAgICAgICAgX2xvZy5kZWJ1ZygnUnVubmluZyAlcyBpbiAlcycgJSAoY3Jl
YXRlU2NyaXB0LCBzZWxmLmRlc3QpKQotICAgICAgICBlcnJvckNvZGUgPSBzdWJwcm9jZXNzLmNh
bGwoY3JlYXRlU2NyaXB0KQotICAgICAgICBvcy5jaGRpcihvbGRXb3JraW5nRGlyZWN0b3J5KQot
ICAgICAgICBpZiBlcnJvckNvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5v
dCBjcmVhdGUgdGhlIGJlbmNobWFyayAtIEVycm9yOiAlcycgJSBlcnJvckNvZGUpCi0KLSAgICBk
ZWYgX2NvcHlCZW5jaG1hcmtUb1RlbXBEaXIoc2VsZiwgYmVuY2htYXJrUGF0aCk6Ci0gICAgICAg
IHNodXRpbC5jb3B5dHJlZShnZXRQYXRoRnJvbVByb2plY3RSb290KGJlbmNobWFya1BhdGgpLCBz
ZWxmLmRlc3QpCi0KLSAgICBkZWYgX2ZldGNoUmVtb3RlQXJjaGl2ZShzZWxmLCBhcmNoaXZlVVJM
KToKLSAgICAgICAgYXJjaGl2ZVBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53ZWJSb290LCAnYXJj
aGl2ZS56aXAnKQotICAgICAgICBfbG9nLmluZm8oJ0Rvd25sb2FkaW5nICVzIHRvICVzJyAlIChh
cmNoaXZlVVJMLCBhcmNoaXZlUGF0aCkpCi0gICAgICAgIHVybGxpYi51cmxyZXRyaWV2ZShhcmNo
aXZlVVJMLCBhcmNoaXZlUGF0aCkKLQotICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZVBhdGgs
ICdyJykgYXMgYXJjaGl2ZToKLSAgICAgICAgICAgIGFyY2hpdmUuZXh0cmFjdGFsbChzZWxmLmRl
c3QpCi0KLSAgICAgICAgdW5hcmNoaXZlZEZpbGVzID0gZmlsdGVyKGxhbWJkYSBuYW1lOiBub3Qg
bmFtZS5zdGFydHN3aXRoKCcuJyksIG9zLmxpc3RkaXIoc2VsZi5kZXN0KSkKLSAgICAgICAgaWYg
bGVuKHVuYXJjaGl2ZWRGaWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0RmlsZSA9IG9zLnBh
dGguam9pbihzZWxmLmRlc3QsIHVuYXJjaGl2ZWRGaWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9z
LnBhdGguaXNkaXIoZmlyc3RGaWxlKToKLSAgICAgICAgICAgICAgICBzaHV0aWwubW92ZShmaXJz
dEZpbGUsIHNlbGYud2ViUm9vdCkKLSAgICAgICAgICAgICAgICBvcy5yZW5hbWUob3MucGF0aC5q
b2luKHNlbGYud2ViUm9vdCwgdW5hcmNoaXZlZEZpbGVzWzBdKSwgc2VsZi5kZXN0KQotCi0gICAg
ZGVmIF9jaGVja291dFdpdGhTdWJ2ZXJpb24oc2VsZiwgc3VidmVyc2lvblVSTCk6Ci0gICAgICAg
IF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9uVVJMLCBzZWxm
LmRlc3QpKQotICAgICAgICBlcnJvckNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoWydzdm4nLCAnY2hl
Y2tvdXQnLCBzdWJ2ZXJzaW9uVVJMLCBzZWxmLmRlc3RdKQotICAgICAgICBpZiBlcnJvckNvZGU6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVja291dCB0aGUgYmVuY2ht
YXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yQ29kZSkKLQotICAgIGRlZiBfYXBwbHlQYXRjaChzZWxm
LCBwYXRjaCk6Ci0gICAgICAgIG9sZFdvcmtpbmdEaXJlY3RvcnkgPSBvcy5nZXRjd2QoKQotICAg
ICAgICBvcy5jaGRpcihzZWxmLmRlc3QpCi0gICAgICAgIGVycm9yQ29kZSA9IHN1YnByb2Nlc3Mu
Y2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdldFBhdGhGcm9tUHJvamVjdFJvb3Qo
cGF0Y2gpXSkKLSAgICAgICAgb3MuY2hkaXIob2xkV29ya2luZ0RpcmVjdG9yeSkKLSAgICAgICAg
aWYgZXJyb3JDb2RlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDYW5ub3QgYXBwbHkg
cGF0Y2gsIHdpbGwgc2tpcCBjdXJyZW50IGJlbmNobWFya1BhdGggLSBFcnJvcjogJXMnICUgZXJy
b3JDb2RlKQorICAgIGRlZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6
CisgICAgICAgIG9sZF93b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCisgICAgICAgIG9z
LmNoZGlyKHNlbGYuX2Rlc3QpCisgICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMn
ICUgKGNyZWF0ZV9zY3JpcHQsIHNlbGYuX2Rlc3QpKQorICAgICAgICBlcnJvcl9jb2RlID0gc3Vi
cHJvY2Vzcy5jYWxsKGNyZWF0ZV9zY3JpcHQpCisgICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5n
X2RpcmVjdG9yeSkKKyAgICAgICAgaWYgZXJyb3JfY29kZToKKyAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9y
X2NvZGUpCisKKyAgICBkZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNo
bWFya19wYXRoKToKKyAgICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVj
dF9yb290KGJlbmNobWFya19wYXRoKSwgc2VsZi5fZGVzdCkKKworICAgIGRlZiBfZmV0Y2hfcmVt
b3RlX2FyY2hpdmUoc2VsZiwgYXJjaGl2ZV91cmwpOgorICAgICAgICBhcmNoaXZlX3BhdGggPSBv
cy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsICdhcmNoaXZlLnppcCcpCisgICAgICAgIF9sb2cu
aW5mbygnRG93bmxvYWRpbmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgp
KQorICAgICAgICB1cmxsaWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkK
KworICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9wYXRoLCAncicpIGFzIGFyY2hpdmU6Cisg
ICAgICAgICAgICBhcmNoaXZlLmV4dHJhY3RhbGwoc2VsZi5fZGVzdCkKKworICAgICAgICB1bmFy
Y2hpdmVkX2ZpbGVzID0gZmlsdGVyKGxhbWJkYSBuYW1lOiBub3QgbmFtZS5zdGFydHN3aXRoKCcu
JyksIG9zLmxpc3RkaXIoc2VsZi5fZGVzdCkpCisgICAgICAgIGlmIGxlbih1bmFyY2hpdmVkX2Zp
bGVzKSA9PSAxOgorICAgICAgICAgICAgZmlyc3RfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLl9k
ZXN0LCB1bmFyY2hpdmVkX2ZpbGVzWzBdKQorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcihm
aXJzdF9maWxlKToKKyAgICAgICAgICAgICAgICBzaHV0aWwubW92ZShmaXJzdF9maWxlLCBzZWxm
Ll93ZWJfcm9vdCkKKyAgICAgICAgICAgICAgICBvcy5yZW5hbWUob3MucGF0aC5qb2luKHNlbGYu
X3dlYl9yb290LCB1bmFyY2hpdmVkX2ZpbGVzWzBdKSwgc2VsZi5fZGVzdCkKKworICAgIGRlZiBf
Y2hlY2tvdXRfd2l0aF9zdWJ2ZXJzaW9uKHNlbGYsIHN1YnZlcnNpb25fdXJsKToKKyAgICAgICAg
X2xvZy5pbmZvKCdDaGVja2luZyBvdXQgJXMgdG8gJXMnICUgKHN1YnZlcnNpb25fdXJsLCBzZWxm
Ll9kZXN0KSkKKyAgICAgICAgZXJyb3JfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3N2bicsICdj
aGVja291dCcsIHN1YnZlcnNpb25fdXJsLCBzZWxmLl9kZXN0XSkKKyAgICAgICAgaWYgZXJyb3Jf
Y29kZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IGNoZWNrb3V0IHRoZSBi
ZW5jaG1hcmsgLSBFcnJvcjogJXMnICUgZXJyb3JfY29kZSkKKworICAgIGRlZiBfYXBwbHlfcGF0
Y2goc2VsZiwgcGF0Y2gpOgorICAgICAgICBvbGRfd29ya2luZ19kaXJlY3RvcnkgPSBvcy5nZXRj
d2QoKQorICAgICAgICBvcy5jaGRpcihzZWxmLl9kZXN0KQorICAgICAgICBlcnJvcl9jb2RlID0g
c3VicHJvY2Vzcy5jYWxsKFsncGF0Y2gnLCAnLXAxJywgJy1mJywgJy1pJywgZ2V0X3BhdGhfZnJv
bV9wcm9qZWN0X3Jvb3QocGF0Y2gpXSkKKyAgICAgICAgb3MuY2hkaXIob2xkX3dvcmtpbmdfZGly
ZWN0b3J5KQorICAgICAgICBpZiBlcnJvcl9jb2RlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdDYW5ub3QgYXBwbHkgcGF0Y2gsIHdpbGwgc2tpcCBjdXJyZW50IGJlbmNobWFya19wYXRo
IC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCiAKICAgICBkZWYgY2xlYW4oc2VsZik6CiAgICAg
ICAgIF9sb2cuaW5mbygnQ2xlYW5pbmcgQmVuY2htYXJrJykKLSAgICAgICAgaWYgc2VsZi53ZWJS
b290OgotICAgICAgICAgICAgZm9yY2VSZW1vdmUoc2VsZi53ZWJSb290KQorICAgICAgICBpZiBz
ZWxmLl93ZWJfcm9vdDoKKyAgICAgICAgICAgIGZvcmNlX3JlbW92ZShzZWxmLl93ZWJfcm9vdCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5j
aG1hcmtfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2JlbmNobWFya19ydW5uZXIucHkKaW5kZXggODEwNTA3MjU2ZjgyMGY5ZDQwZDI1MGEzNWI5MjU5
NmQxYmE2MDUzNy4uYzFkMmI2NmE5ZmU5ODMxN2ZiMDY0N2NiOTg1MzI2ZmU4YTFiMzdiYyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2JlbmNobWFya19ydW5uZXIucHkKQEAgLTE2LDcgKzE2LDYgQEAgZnJvbSBiZW5jaG1hcmtfYnVp
bGRlci5iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyRmFj
dG9yeQogZnJvbSBiZW5jaG1hcmtfcmVzdWx0cyBpbXBvcnQgQmVuY2htYXJrUmVzdWx0cwogZnJv
bSBicm93c2VyX2RyaXZlci5icm93c2VyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBCcm93c2VyRHJp
dmVyRmFjdG9yeQogZnJvbSBodHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2ZXJfZHJpdmVyX2Zh
Y3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHV0aWxzIGltcG9ydCBn
ZXRQYXRoRnJvbVByb2plY3RSb290CiBmcm9tIHV0aWxzIGltcG9ydCB0aW1lb3V0CiAKIApAQCAt
MjUsMTE2ICsyNCwxMTYgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBj
bGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
bGFuRmlsZSwgbG9jYWxDb3B5LCBjb3VudE92ZXJyaWRlLCBidWlsZERpciwgb3V0cHV0RmlsZSwg
cGxhdGZvcm0sIGJyb3dzZXIsIGh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZT1Ob25lLCBkZXZpY2VJ
RD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGxhbl9maWxlLCBsb2NhbF9jb3B5LCBj
b3VudF9vdmVycmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmlsZSwgcGxhdGZvcm0sIGJyb3dzZXIs
IGh0dHBfc2VydmVyX2RyaXZlcl9vdmVycmlkZT1Ob25lLCBkZXZpY2VfaWQ9Tm9uZSk6CiAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHBsYW5GaWxlID0gc2VsZi5fZmluZFBsYW5GaWxlKHBsYW5G
aWxlKQotICAgICAgICAgICAgd2l0aCBvcGVuKHBsYW5GaWxlLCAncicpIGFzIGZwOgotICAgICAg
ICAgICAgICAgIHNlbGYucGxhbk5hbWUgPSBvcy5wYXRoLnNwbGl0KG9zLnBhdGguc3BsaXRleHQo
cGxhbkZpbGUpWzBdKVsxXQotICAgICAgICAgICAgICAgIHNlbGYucGxhbiA9IGpzb24ubG9hZChm
cCkKLSAgICAgICAgICAgICAgICBpZiBsb2NhbENvcHk6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYucGxhblsnbG9jYWxfY29weSddID0gbG9jYWxDb3B5Ci0gICAgICAgICAgICAgICAgaWYgY291
bnRPdmVycmlkZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydjb3VudCddID0gY291
bnRPdmVycmlkZQotICAgICAgICAgICAgICAgIGlmIGh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXSA9IGh0
dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZQotICAgICAgICAgICAgICAgIHNlbGYuYnJvd3NlckRyaXZl
ciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShwbGF0Zm9ybSwgYnJvd3NlcikKLSAgICAg
ICAgICAgICAgICBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIgPSBIVFRQU2VydmVyRHJpdmVyRmFjdG9y
eS5jcmVhdGUoc2VsZi5wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXSkKLSAgICAgICAgICAgICAg
ICBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIuc2V0RGV2aWNlSUQoZGV2aWNlSUQpCi0gICAgICAgICAg
ICAgICAgc2VsZi5idWlsZERpciA9IG9zLnBhdGguYWJzcGF0aChidWlsZERpcikgaWYgYnVpbGRE
aXIgZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgc2VsZi5vdXRwdXRGaWxlID0gb3V0cHV0Rmls
ZQotICAgICAgICAgICAgICAgIHNlbGYuZGV2aWNlSUQgPSBkZXZpY2VJRAorICAgICAgICAgICAg
cGxhbl9maWxlID0gc2VsZi5fZmluZF9wbGFuX2ZpbGUocGxhbl9maWxlKQorICAgICAgICAgICAg
d2l0aCBvcGVuKHBsYW5fZmlsZSwgJ3InKSBhcyBmcDoKKyAgICAgICAgICAgICAgICBzZWxmLl9w
bGFuX25hbWUgPSBvcy5wYXRoLnNwbGl0KG9zLnBhdGguc3BsaXRleHQocGxhbl9maWxlKVswXSlb
MV0KKyAgICAgICAgICAgICAgICBzZWxmLl9wbGFuID0ganNvbi5sb2FkKGZwKQorICAgICAgICAg
ICAgICAgIGlmIGxvY2FsX2NvcHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsYW5bJ2xv
Y2FsX2NvcHknXSA9IGxvY2FsX2NvcHkKKyAgICAgICAgICAgICAgICBpZiBjb3VudF9vdmVycmlk
ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGxhblsnY291bnQnXSA9IGNvdW50X292ZXJy
aWRlCisgICAgICAgICAgICAgICAgaWYgaHR0cF9zZXJ2ZXJfZHJpdmVyX292ZXJyaWRlOgorICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXSA9IGh0dHBf
c2VydmVyX2RyaXZlcl9vdmVycmlkZQorICAgICAgICAgICAgICAgIHNlbGYuX2Jyb3dzZXJfZHJp
dmVyID0gQnJvd3NlckRyaXZlckZhY3RvcnkuY3JlYXRlKHBsYXRmb3JtLCBicm93c2VyKQorICAg
ICAgICAgICAgICAgIHNlbGYuX2h0dHBfc2VydmVyX2RyaXZlciA9IEhUVFBTZXJ2ZXJEcml2ZXJG
YWN0b3J5LmNyZWF0ZShzZWxmLl9wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXSkKKyAgICAgICAg
ICAgICAgICBzZWxmLl9odHRwX3NlcnZlcl9kcml2ZXIuc2V0X2RldmljZV9pZChkZXZpY2VfaWQp
CisgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRfZGlyID0gb3MucGF0aC5hYnNwYXRoKGJ1aWxk
X2RpcikgaWYgYnVpbGRfZGlyIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgIHNlbGYuX291dHB1
dF9maWxlID0gb3V0cHV0X2ZpbGUKKyAgICAgICAgICAgICAgICBzZWxmLl9kZXZpY2VfaWQgPSBk
ZXZpY2VfaWQKICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICBf
bG9nLmVycm9yKCdDYW4gbm90IG9wZW4gcGxhbiBmaWxlOiAlcyAtIEVycm9yICVzJyAlIChwbGFu
RmlsZSwgZXJyb3IpKQorICAgICAgICAgICAgX2xvZy5lcnJvcignQ2FuIG5vdCBvcGVuIHBsYW4g
ZmlsZTogJXMgLSBFcnJvciAlcycgJSAocGxhbl9maWxlLCBlcnJvcikpCiAgICAgICAgICAgICBy
YWlzZSBlcnJvcgogICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAg
ICAgIF9sb2cuZXJyb3IoJ1BsYW4gZmlsZTogJXMgbWF5IG5vdCBmb2xsb3cgSlNPTiBmb3JtYXQg
LSBFcnJvciAlcycgJSAocGxhbkZpbGUsIGVycm9yKSkKKyAgICAgICAgICAgIF9sb2cuZXJyb3Io
J1BsYW4gZmlsZTogJXMgbWF5IG5vdCBmb2xsb3cgSlNPTiBmb3JtYXQgLSBFcnJvciAlcycgJSAo
cGxhbl9maWxlLCBlcnJvcikpCiAgICAgICAgICAgICByYWlzZSBlcnJvcgogCi0gICAgZGVmIF9m
aW5kUGxhbkZpbGUoc2VsZiwgcGxhbkZpbGUpOgotICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlz
dHMocGxhbkZpbGUpOgotICAgICAgICAgICAgYWJzUGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRo
LmRpcm5hbWUoX19maWxlX18pLCAnZGF0YS9wbGFucycsIHBsYW5GaWxlKQorICAgIGRlZiBfZmlu
ZF9wbGFuX2ZpbGUoc2VsZiwgcGxhbl9maWxlKToKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKHBsYW5fZmlsZSk6CisgICAgICAgICAgICBhYnNQYXRoID0gb3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksICdkYXRhL3BsYW5zJywgcGxhbl9maWxlKQogICAgICAgICAg
ICAgaWYgb3MucGF0aC5leGlzdHMoYWJzUGF0aCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFi
c1BhdGgKICAgICAgICAgICAgIGlmIG5vdCBhYnNQYXRoLmVuZHN3aXRoKCcucGxhbicpOgogICAg
ICAgICAgICAgICAgIGFic1BhdGggKz0gJy5wbGFuJwogICAgICAgICAgICAgaWYgb3MucGF0aC5l
eGlzdHMoYWJzUGF0aCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFic1BhdGgKLSAgICAgICAg
cmV0dXJuIHBsYW5GaWxlCisgICAgICAgIHJldHVybiBwbGFuX2ZpbGUKIAogICAgIGRlZiBleGVj
dXRlKHNlbGYpOgogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IHRvIGV4ZWN1dGUgdGhlIHBsYW4n
KQogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IGEgbmV3IGJlbmNobWFyaycpCiAgICAgICAgIHJl
c3VsdHMgPSBbXQotICAgICAgICBzZWxmLmJlbmNobWFya0J1aWxkZXIgPSBCZW5jaG1hcmtCdWls
ZGVyRmFjdG9yeS5jcmVhdGUoc2VsZi5wbGFuWydiZW5jaG1hcmtfYnVpbGRlciddKQorICAgICAg
ICBzZWxmLl9iZW5jaG1hcmtfYnVpbGRlciA9IEJlbmNobWFya0J1aWxkZXJGYWN0b3J5LmNyZWF0
ZShzZWxmLl9wbGFuWydiZW5jaG1hcmtfYnVpbGRlciddKQogCi0gICAgICAgIHdlYlJvb3QgPSBz
ZWxmLmJlbmNobWFya0J1aWxkZXIucHJlcGFyZShzZWxmLnBsYW5OYW1lLCBzZWxmLnBsYW4pCi0g
ICAgICAgIGZvciB4IGluIHhyYW5nZShpbnQoc2VsZi5wbGFuWydjb3VudCddKSk6CisgICAgICAg
IHdlYl9yb290ID0gc2VsZi5fYmVuY2htYXJrX2J1aWxkZXIucHJlcGFyZShzZWxmLl9wbGFuX25h
bWUsIHNlbGYuX3BsYW4pCisgICAgICAgIGZvciB4IGluIHhyYW5nZShpbnQoc2VsZi5fcGxhblsn
Y291bnQnXSkpOgogICAgICAgICAgICAgX2xvZy5pbmZvKCdTdGFydCB0aGUgaXRlcmF0aW9uICVk
IG9mIGN1cnJlbnQgYmVuY2htYXJrJyAlICh4ICsgMSkpCi0gICAgICAgICAgICBzZWxmLmh0dHBT
ZXJ2ZXJEcml2ZXIuc2VydmUod2ViUm9vdCkKLSAgICAgICAgICAgIHNlbGYuYnJvd3NlckRyaXZl
ci5wcmVwYXJlRW52KHNlbGYuZGV2aWNlSUQpCi0gICAgICAgICAgICB1cmwgPSB1cmxwYXJzZS51
cmxqb2luKHNlbGYuaHR0cFNlcnZlckRyaXZlci5iYXNlVXJsKCksIHNlbGYucGxhbk5hbWUgKyAn
LycgKyBzZWxmLnBsYW5bJ2VudHJ5X3BvaW50J10pCi0gICAgICAgICAgICBzZWxmLmJyb3dzZXJE
cml2ZXIubGF1bmNoVXJsKHVybCwgc2VsZi5idWlsZERpcikKKyAgICAgICAgICAgIHNlbGYuX2h0
dHBfc2VydmVyX2RyaXZlci5zZXJ2ZSh3ZWJfcm9vdCkKKyAgICAgICAgICAgIHNlbGYuX2Jyb3dz
ZXJfZHJpdmVyLnByZXBhcmVfZW52KHNlbGYuX2RldmljZV9pZCkKKyAgICAgICAgICAgIHVybCA9
IHVybHBhcnNlLnVybGpvaW4oc2VsZi5faHR0cF9zZXJ2ZXJfZHJpdmVyLmJhc2VfdXJsKCksIHNl
bGYuX3BsYW5fbmFtZSArICcvJyArIHNlbGYuX3BsYW5bJ2VudHJ5X3BvaW50J10pCisgICAgICAg
ICAgICBzZWxmLl9icm93c2VyX2RyaXZlci5sYXVuY2hfdXJsKHVybCwgc2VsZi5fYnVpbGRfZGly
KQogICAgICAgICAgICAgcmVzdWx0ID0gTm9uZQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIHdpdGggdGltZW91dChzZWxmLnBsYW5bJ3RpbWVvdXQnXSk6Ci0gICAgICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IHNlbGYuaHR0cFNlcnZlckRyaXZlci5mZXRjaFJlc3VsdCgpCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0KG5vdCBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIuZ2V0UmV0dXJuQ29k
ZSgpKQorICAgICAgICAgICAgICAgIHdpdGggdGltZW91dChzZWxmLl9wbGFuWyd0aW1lb3V0J10p
OgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9odHRwX3NlcnZlcl9kcml2ZXIu
ZmV0Y2hfcmVzdWx0KCkKKyAgICAgICAgICAgICAgICBhc3NlcnQobm90IHNlbGYuX2h0dHBfc2Vy
dmVyX2RyaXZlci5nZXRfcmV0dXJuX2NvZGUoKSkKICAgICAgICAgICAgICAgICBhc3NlcnQocmVz
dWx0KQogICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKGpzb24ubG9hZHMocmVzdWx0KSkK
ICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAg
X2xvZy5lcnJvcignTm8gcmVzdWx0IG9yIHRoZSBzZXJ2ZXIgY3Jhc2hlZC4gU29tZXRoaW5nIHdl
bnQgd3JvbmcuIFdpbGwgc2tpcCBjdXJyZW50IGJlbmNobWFyay5cbkVycm9yOiAlcywgU2VydmVy
IHJldHVybiBjb2RlOiAlZCwgcmVzdWx0OiAlcycgJSAoZXJyb3IsIG5vdCBzZWxmLmh0dHBTZXJ2
ZXJEcml2ZXIuZ2V0UmV0dXJuQ29kZSgpLCByZXN1bHQpKQotICAgICAgICAgICAgICAgIHNlbGYu
Y2xlYW51cCgpCisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignTm8gcmVzdWx0IG9yIHRoZSBz
ZXJ2ZXIgY3Jhc2hlZC4gU29tZXRoaW5nIHdlbnQgd3JvbmcuIFdpbGwgc2tpcCBjdXJyZW50IGJl
bmNobWFyay5cbkVycm9yOiAlcywgU2VydmVyIHJldHVybiBjb2RlOiAlZCwgcmVzdWx0OiAlcycg
JSAoZXJyb3IsIHNlbGYuX2h0dHBfc2VydmVyX2RyaXZlci5nZXRfcmV0dXJuX2NvZGUoKSwgcmVz
dWx0KSkKKyAgICAgICAgICAgICAgICBzZWxmLl9jbGVhbnVwKCkKICAgICAgICAgICAgICAgICBz
eXMuZXhpdCgxKQogICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLmJy
b3dzZXJEcml2ZXIuY2xvc2VCcm93c2VycygpCisgICAgICAgICAgICAgICAgc2VsZi5fYnJvd3Nl
cl9kcml2ZXIuY2xvc2VfYnJvd3NlcnMoKQogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnRW5k
IG9mICVkIGl0ZXJhdGlvbiBvZiBjdXJyZW50IGJlbmNobWFyaycgJSAoeCArIDEpKQotICAgICAg
ICByZXN1bHRzID0gc2VsZi53cmFwKHJlc3VsdHMpCi0gICAgICAgIHNlbGYuZHVtcChyZXN1bHRz
LCBzZWxmLm91dHB1dEZpbGUgaWYgc2VsZi5vdXRwdXRGaWxlIGVsc2Ugc2VsZi5wbGFuWydvdXRw
dXRfZmlsZSddKQotICAgICAgICBzZWxmLnNob3dfcmVzdWx0cyhyZXN1bHRzKQotICAgICAgICBz
ZWxmLmJlbmNobWFya0J1aWxkZXIuY2xlYW4oKQorICAgICAgICByZXN1bHRzID0gc2VsZi5fd3Jh
cChyZXN1bHRzKQorICAgICAgICBzZWxmLl9kdW1wKHJlc3VsdHMsIHNlbGYuX291dHB1dF9maWxl
IGlmIHNlbGYuX291dHB1dF9maWxlIGVsc2Ugc2VsZi5fcGxhblsnb3V0cHV0X2ZpbGUnXSkKKyAg
ICAgICAgc2VsZi5fc2hvd19yZXN1bHRzKHJlc3VsdHMpCisgICAgICAgIHNlbGYuX2JlbmNobWFy
a19idWlsZGVyLmNsZWFuKCkKICAgICAgICAgc3lzLmV4aXQoKQogCi0gICAgZGVmIGNsZWFudXAo
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYnJvd3NlckRyaXZlcjoKLSAgICAgICAgICAgIHNlbGYu
YnJvd3NlckRyaXZlci5jbG9zZUJyb3dzZXJzKCkKLSAgICAgICAgaWYgc2VsZi5odHRwU2VydmVy
RHJpdmVyOgotICAgICAgICAgICAgc2VsZi5odHRwU2VydmVyRHJpdmVyLmtpbGxTZXJ2ZXIoKQot
ICAgICAgICBpZiBzZWxmLmJlbmNobWFya0J1aWxkZXI6Ci0gICAgICAgICAgICBzZWxmLmJlbmNo
bWFya0J1aWxkZXIuY2xlYW4oKQorICAgIGRlZiBfY2xlYW51cChzZWxmKToKKyAgICAgICAgaWYg
c2VsZi5fYnJvd3Nlcl9kcml2ZXI6CisgICAgICAgICAgICBzZWxmLl9icm93c2VyX2RyaXZlci5j
bG9zZV9icm93c2VycygpCisgICAgICAgIGlmIHNlbGYuX2h0dHBfc2VydmVyX2RyaXZlcjoKKyAg
ICAgICAgICAgIHNlbGYuX2h0dHBfc2VydmVyX2RyaXZlci5raWxsX3NlcnZlcigpCisgICAgICAg
IGlmIHNlbGYuX2JlbmNobWFya19idWlsZGVyOgorICAgICAgICAgICAgc2VsZi5fYmVuY2htYXJr
X2J1aWxkZXIuY2xlYW4oKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGR1bXAoY2xzLCBy
ZXN1bHRzLCBvdXRwdXRGaWxlKToKKyAgICBkZWYgX2R1bXAoY2xzLCByZXN1bHRzLCBvdXRwdXRf
ZmlsZSk6CiAgICAgICAgIF9sb2cuaW5mbygnRHVtcGluZyB0aGUgcmVzdWx0cyB0byBmaWxlJykK
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKG91dHB1dEZpbGUsICd3JykgYXMg
ZnA6CisgICAgICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X2ZpbGUsICd3JykgYXMgZnA6CiAgICAg
ICAgICAgICAgICAganNvbi5kdW1wKHJlc3VsdHMsIGZwKQogICAgICAgICBleGNlcHQgSU9FcnJv
ciBhcyBlcnJvcjoKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0Nhbm5vdCBvcGVuIG91dHB1dCBm
aWxlOiAlcyAtIEVycm9yOiAlcycgJSAob3V0cHV0RmlsZSwgZXJyb3IpKQorICAgICAgICAgICAg
X2xvZy5lcnJvcignQ2Fubm90IG9wZW4gb3V0cHV0IGZpbGU6ICVzIC0gRXJyb3I6ICVzJyAlIChv
dXRwdXRfZmlsZSwgZXJyb3IpKQogICAgICAgICAgICAgX2xvZy5lcnJvcignUmVzdWx0cyBhcmU6
XG4gJXMnLCBqc29uLmR1bXBzKHJlc3VsdHMpKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVm
IHdyYXAoY2xzLCBkaWN0cyk6CisgICAgZGVmIF93cmFwKGNscywgZGljdHMpOgogICAgICAgICBf
bG9nLmRlYnVnKCdNZXJnaW5nIGZvbGxvd2luZyByZXN1bHRzOlxuJXMnLCBqc29uLmR1bXBzKGRp
Y3RzKSkKICAgICAgICAgaWYgbm90IGRpY3RzOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAg
ICAgICAgcmV0ID0ge30KICAgICAgICAgZm9yIGRpYyBpbiBkaWN0czoKLSAgICAgICAgICAgIHJl
dCA9IGNscy5tZXJnZShyZXQsIGRpYykKKyAgICAgICAgICAgIHJldCA9IGNscy5fbWVyZ2UocmV0
LCBkaWMpCiAgICAgICAgIF9sb2cuZGVidWcoJ1Jlc3VsdHMgYWZ0ZXIgbWVyZ2luZzpcbiVzJywg
anNvbi5kdW1wcyhyZXQpKQogICAgICAgICByZXR1cm4gcmV0CiAKICAgICBAY2xhc3NtZXRob2QK
LSAgICBkZWYgbWVyZ2UoY2xzLCBhLCBiKToKKyAgICBkZWYgX21lcmdlKGNscywgYSwgYik6CiAg
ICAgICAgIGFzc2VydChpc2luc3RhbmNlKGEsIHR5cGUoYikpKQotICAgICAgICBhcmdUeXBlID0g
dHlwZShhKQorICAgICAgICBhcmdfdHlwZSA9IHR5cGUoYSkKICAgICAgICAgIyBzcGVjaWFsIGhh
bmRsZSBmb3IgbGlzdCB0eXBlLCBhbmQgc2hvdWxkIGJlIGhhbmRsZSBiZWZvcmUgZXF1YWwgY2hl
Y2sKLSAgICAgICAgaWYgYXJnVHlwZSA9PSB0eXBlcy5MaXN0VHlwZSBhbmQgbGVuKGEpIGFuZCAo
dHlwZShhWzBdKSA9PSB0eXBlcy5TdHJpbmdUeXBlIG9yIHR5cGUoYVswXSkgPT0gdHlwZXMuVW5p
Y29kZVR5cGUpOgorICAgICAgICBpZiBhcmdfdHlwZSA9PSB0eXBlcy5MaXN0VHlwZSBhbmQgbGVu
KGEpIGFuZCAodHlwZShhWzBdKSA9PSB0eXBlcy5TdHJpbmdUeXBlIG9yIHR5cGUoYVswXSkgPT0g
dHlwZXMuVW5pY29kZVR5cGUpOgogICAgICAgICAgICAgcmV0dXJuIGEKLSAgICAgICAgaWYgYXJn
VHlwZSA9PSB0eXBlcy5EaWN0VHlwZToKKyAgICAgICAgaWYgYXJnX3R5cGUgPT0gdHlwZXMuRGlj
dFR5cGU6CiAgICAgICAgICAgICByZXN1bHQgPSB7fQogICAgICAgICAgICAgZm9yIGtleSwgdmFs
dWUgaW4gYS5pdGVtcygpOgogICAgICAgICAgICAgICAgIGlmIGtleSBpbiBiOgotICAgICAgICAg
ICAgICAgICAgICByZXN1bHRba2V5XSA9IGNscy5tZXJnZSh2YWx1ZSwgYltrZXldKQorICAgICAg
ICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNscy5fbWVyZ2UodmFsdWUsIGJba2V5XSkKICAg
ICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZh
bHVlCiAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBiLml0ZW1zKCk6CkBAIC0xNDUsNiAr
MTQ0LDYgQEAgY2xhc3MgQmVuY2htYXJrUnVubmVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBh
ICsgYgogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNob3dfcmVzdWx0cyhjbHMsIHJlc3Vs
dHMpOgorICAgIGRlZiBfc2hvd19yZXN1bHRzKGNscywgcmVzdWx0cyk6CiAgICAgICAgIHJlc3Vs
dHMgPSBCZW5jaG1hcmtSZXN1bHRzKHJlc3VsdHMpCiAgICAgICAgIHByaW50IHJlc3VsdHMuZm9y
bWF0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlci5weQppbmRl
eCAwZjU2YjgzNDZkMWMwNTk5MzRjY2MwYWVjNGEwYzg0Mzc2NTc1Zjg5Li45NWRhZDAxMDc2YzY4
ZTUzNDRkNWU3YTg5MWNhOTlmZDUwMWU5MzBkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJp
dmVyL2Jyb3dzZXJfZHJpdmVyLnB5CkBAIC04LDEzICs4LDEzIEBAIGNsYXNzIEJyb3dzZXJEcml2
ZXIob2JqZWN0KToKICAgICBicm93c2VyX25hbWUgPSBOb25lCiAKICAgICBAYWJjLmFic3RyYWN0
bWV0aG9kCi0gICAgZGVmIHByZXBhcmVFbnYoc2VsZiwgZGV2aWNlSUQpOgorICAgIGRlZiBwcmVw
YXJlX2VudihzZWxmLCBkZXZpY2VfaWQpOgogICAgICAgICBwYXNzCiAKICAgICBAYWJjLmFic3Ry
YWN0bWV0aG9kCi0gICAgZGVmIGxhdW5jaFVybChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGg9
Tm9uZSk6CisgICAgZGVmIGxhdW5jaF91cmwoc2VsZiwgdXJsLCBicm93c2VyX2J1aWxkX3BhdGg9
Tm9uZSk6CiAgICAgICAgIHBhc3MKIAogICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKLSAgICBkZWYg
Y2xvc2VCcm93c2VyKHNlbGYpOgorICAgIGRlZiBjbG9zZV9icm93c2VycyhzZWxmKToKICAgICAg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfYnJvd3Nlcl9kcml2
ZXIucHkKaW5kZXggZmE3YWRlMTI4ZDJlNGMwMmE2Yzg0MmQxNTgwN2E4ZTRiNjIyZTljNi4uNGNj
MmM3NmE3MDZhMzViMGNjNTJhYWM5MWM5MzMzNDE1NDVlNzUxNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93
c2VyX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5CkBAIC0xMCw0NCArMTAsNDQg
QEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIE9TWEJyb3dz
ZXJEcml2ZXIoQnJvd3NlckRyaXZlcik6Ci0gICAgYnVuZGxlSWRlbnRpZmllciA9IE5vbmUKKyAg
ICBidW5kbGVfaWRlbnRpZmllciA9IE5vbmUKICAgICBwbGF0Zm9ybSA9ICdvc3gnCiAKLSAgICBk
ZWYgcHJlcGFyZUVudihzZWxmLCBkZXZpY2VJRCk6Ci0gICAgICAgIHNlbGYuY2xvc2VCcm93c2Vy
cygpCisgICAgZGVmIHByZXBhcmVfZW52KHNlbGYsIGRldmljZV9pZCk6CisgICAgICAgIHNlbGYu
Y2xvc2VfYnJvd3NlcnMoKQogICAgICAgICBmcm9tIFF1YXJ0eiBpbXBvcnQgQ0dXYXJwTW91c2VD
dXJzb3JQb3NpdGlvbgogICAgICAgICBDR1dhcnBNb3VzZUN1cnNvclBvc2l0aW9uKCgxMCwgMCkp
CiAKLSAgICBkZWYgY2xvc2VCcm93c2VycyhzZWxmKToKLSAgICAgICAgc2VsZi50ZXJtaW5hdGVQ
cm9jZXNzZXMoc2VsZi5idW5kbGVJZGVudGlmaWVyKQorICAgIGRlZiBjbG9zZV9icm93c2Vycyhz
ZWxmKToKKyAgICAgICAgc2VsZi5fdGVybWluaWF0ZV9wcm9jZXNzZXMoc2VsZi5idW5kbGVfaWRl
bnRpZmllcikKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBsYXVuY2hQcm9jZXNzKGNscywg
YnVpbGREaXIsIGFwcE5hbWUsIHVybCwgYXJncyk6Ci0gICAgICAgIGlmIG5vdCBidWlsZERpcjoK
LSAgICAgICAgICAgIGJ1aWxkRGlyID0gJy9BcHBsaWNhdGlvbnMvJwotICAgICAgICBhcHBQYXRo
ID0gb3MucGF0aC5qb2luKGJ1aWxkRGlyLCBhcHBOYW1lKQorICAgIGRlZiBfbGF1bmNoX3Byb2Nl
c3MoY2xzLCBidWlsZF9kaXIsIGFwcF9uYW1lLCB1cmwsIGFyZ3MpOgorICAgICAgICBpZiBub3Qg
YnVpbGRfZGlyOgorICAgICAgICAgICAgYnVpbGRfZGlyID0gJy9BcHBsaWNhdGlvbnMvJworICAg
ICAgICBhcHBfcGF0aCA9IG9zLnBhdGguam9pbihidWlsZF9kaXIsIGFwcF9uYW1lKQogCi0gICAg
ICAgIF9sb2cuaW5mbygnTGF1bmNoaW5nICIlcyIgd2l0aCB1cmwgIiVzIicgJSAoYXBwUGF0aCwg
dXJsKSkKKyAgICAgICAgX2xvZy5pbmZvKCdMYXVuY2hpbmcgIiVzIiB3aXRoIHVybCAiJXMiJyAl
IChhcHBfcGF0aCwgdXJsKSkKIAogICAgICAgICAjIEZJWE1FOiBNYXkgbmVlZCB0byBiZSBtb2Rp
ZmllZCBmb3IgYSBsb2NhbCBidWlsZCBzdWNoIGFzIHNldHRpbmcgdXAgRFlMRCBsaWJyYXJpZXMK
LSAgICAgICAgYXJncyA9IFsnb3BlbicsICctYScsIGFwcFBhdGhdICsgYXJncwotICAgICAgICBj
bHMubGF1bmNoUHJvY2Vzc1dpdGhDYWZmaW5hdGUoYXJncykKKyAgICAgICAgYXJncyA9IFsnb3Bl
bicsICctYScsIGFwcF9wYXRoXSArIGFyZ3MKKyAgICAgICAgY2xzLl9sYXVuY2hfcHJvY2Vzc193
aXRoX2NhZmZpbmF0ZShhcmdzKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlcm1pbmF0
ZVByb2Nlc3NlcyhjbHMsIGJ1bmRsZUlkZW50aWZpZXIpOgotICAgICAgICBfbG9nLmluZm8oJ0Ns
b3NpbmcgYWxsIHRlcm1pbmF0aW5nIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgYnVuZGxlIGlkZW50
aWZpZXIgJXMnICUgYnVuZGxlSWRlbnRpZmllcikKKyAgICBkZWYgX3Rlcm1pbmlhdGVfcHJvY2Vz
c2VzKGNscywgYnVuZGxlX2lkZW50aWZpZXIpOgorICAgICAgICBfbG9nLmluZm8oJ0Nsb3Npbmcg
YWxsIHRlcm1pbmF0aW5nIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgYnVuZGxlIGlkZW50aWZpZXIg
JXMnICUgYnVuZGxlX2lkZW50aWZpZXIpCiAgICAgICAgIGZyb20gQXBwS2l0IGltcG9ydCBOU1J1
bm5pbmdBcHBsaWNhdGlvbgotICAgICAgICBwcm9jZXNzZXMgPSBOU1J1bm5pbmdBcHBsaWNhdGlv
bi5ydW5uaW5nQXBwbGljYXRpb25zV2l0aEJ1bmRsZUlkZW50aWZpZXJfKGJ1bmRsZUlkZW50aWZp
ZXIpCisgICAgICAgIHByb2Nlc3NlcyA9IE5TUnVubmluZ0FwcGxpY2F0aW9uLnJ1bm5pbmdBcHBs
aWNhdGlvbnNXaXRoQnVuZGxlSWRlbnRpZmllcl8oYnVuZGxlX2lkZW50aWZpZXIpCiAgICAgICAg
IGZvciBwcm9jZXNzIGluIHByb2Nlc3NlczoKICAgICAgICAgICAgIHByb2Nlc3MudGVybWluYXRl
KCkKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBsYXVuY2hQcm9jZXNzV2l0aENhZmZpbmF0
ZShjbHMsIGFyZ3MsIGVudj1Ob25lKToKKyAgICBkZWYgX2xhdW5jaF9wcm9jZXNzX3dpdGhfY2Fm
ZmluYXRlKGNscywgYXJncywgZW52PU5vbmUpOgogICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vz
cy5Qb3BlbihhcmdzLCBlbnY9ZW52KQogICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKFsiL3Vzci9i
aW4vY2FmZmVpbmF0ZSIsICItZGlzdyIsIHN0cihwcm9jZXNzLnBpZCldKQogICAgICAgICByZXR1
cm4gcHJvY2VzcwogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNjcmVlblNpemUoY2xzKToK
KyAgICBkZWYgX3NjcmVlbl9zaXplKGNscyk6CiAgICAgICAgIGZyb20gQXBwS2l0IGltcG9ydCBO
U1NjcmVlbgogICAgICAgICByZXR1cm4gTlNTY3JlZW4ubWFpblNjcmVlbigpLmZyYW1lKCkuc2l6
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5Cmlu
ZGV4IDQzN2YxMGFjNmRiOTVlMDdiODBkODJlM2UzZTJmODBlMjUyNmEyYmEuLjAzYTQ4MmMxNjBk
YTA0ODc4OTUwZDViODI4NzljZDgxNzI4NTc1OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfY2hyb21lX2RyaXZl
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkKQEAgLTEyLDE2ICsxMiwxNiBAQCBfbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgT1NYQ2hyb21lRHJpdmVyKE9T
WEJyb3dzZXJEcml2ZXIpOgotICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnY29tLmdvb2dsZS5DaHJv
bWUnCisgICAgYnVuZGxlX2lkZW50aWZpZXIgPSAnY29tLmdvb2dsZS5DaHJvbWUnCiAgICAgYnJv
d3Nlcl9uYW1lID0gJ2Nocm9tZScKIAotICAgIGRlZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93
c2VyQnVpbGRQYXRoKToKLSAgICAgICAgc2VsZi5sYXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dz
ZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0dvb2dsZSBDaHJvbWUuYXBwJywgdXJsPXVybCwgYXJncz1b
Jy0tYXJncycsICctLWhvbWVwYWdlJywgdXJsLCAnLS13aW5kb3ctc2l6ZT17d2lkdGh9LHtoZWln
aHR9Jy5mb3JtYXQod2lkdGg9aW50KHNlbGYuc2NyZWVuU2l6ZSgpLndpZHRoKSwgaGVpZ2h0PWlu
dChzZWxmLnNjcmVlblNpemUoKS5oZWlnaHQpKV0pCisgICAgZGVmIGxhdW5jaF91cmwoc2VsZiwg
dXJsLCBicm93c2VyX2J1aWxkX3BhdGgpOgorICAgICAgICBzZWxmLl9sYXVuY2hfcHJvY2Vzcyhi
dWlsZF9kaXI9YnJvd3Nlcl9idWlsZF9wYXRoLCBhcHBfbmFtZT0nR29vZ2xlIENocm9tZS5hcHAn
LCB1cmw9dXJsLCBhcmdzPVsnLS1hcmdzJywgJy0taG9tZXBhZ2UnLCB1cmwsICctLXdpbmRvdy1z
aXplPXt3aWR0aH0se2hlaWdodH0nLmZvcm1hdCh3aWR0aD1pbnQoc2VsZi5fc2NyZWVuX3NpemUo
KS53aWR0aCksIGhlaWdodD1pbnQoc2VsZi5fc2NyZWVuX3NpemUoKS5oZWlnaHQpKV0pCiAKIAog
Y2xhc3MgT1NYQ2hyb21lQ2FuYXJ5RHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgotICAgIGJ1bmRs
ZUlkZW50aWZpZXIgPSAnY29tLmdvb2dsZS5DaHJvbWUuY2FuYXJ5JworICAgIGJ1bmRsZV9pZGVu
dGlmaWVyID0gJ2NvbS5nb29nbGUuQ2hyb21lLmNhbmFyeScKICAgICBicm93c2VyX25hbWUgPSAn
Y2hyb21lLWNhbmFyeScKIAotICAgIGRlZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVp
bGRQYXRoKToKLSAgICAgICAgc2VsZi5sYXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWls
ZFBhdGgsIGFwcE5hbWU9J0dvb2dsZSBDaHJvbWUgQ2FuYXJ5LmFwcCcsIHVybD11cmwsIGFyZ3M9
WyctLWFyZ3MnLCAnLS1ob21lcGFnZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVp
Z2h0fScuZm9ybWF0KHdpZHRoPWludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1p
bnQoc2VsZi5zY3JlZW5TaXplKCkuaGVpZ2h0KSldKQorICAgIGRlZiBsYXVuY2hfdXJsKHNlbGYs
IHVybCwgYnJvd3Nlcl9idWlsZF9wYXRoKToKKyAgICAgICAgc2VsZi5fbGF1bmNoX3Byb2Nlc3Mo
YnVpbGRfZGlyPWJyb3dzZXJfYnVpbGRfcGF0aCwgYXBwX25hbWU9J0dvb2dsZSBDaHJvbWUgQ2Fu
YXJ5LmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFyZ3MnLCAnLS1ob21lcGFnZScsIHVybCwgJy0t
d2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScuZm9ybWF0KHdpZHRoPWludChzZWxmLl9zY3Jl
ZW5fc2l6ZSgpLndpZHRoKSwgaGVpZ2h0PWludChzZWxmLl9zY3JlZW5fc2l6ZSgpLmhlaWdodCkp
XSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
cm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2ZpcmVmb3hfZHJpdmVyLnB5
CmluZGV4IGQwNjFlZTRjYzAwM2Q3ZTI3ZGJlMjk3ZDA5NzIzOGZhMmNkODkzZDkuLmRhYzY2OTBk
NWQ2OWM3YmExMzQwNzIxMmQzNDExMzVlODJmZjc5N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9k
cml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weQpAQCAtMTIsMTYgKzEyLDE2IEBAIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBPU1hGaXJlZm94RHJp
dmVyKE9TWEJyb3dzZXJEcml2ZXIpOgotICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnb3JnLm1vemls
bGEuZmlyZWZveCcKKyAgICBidW5kbGVfaWRlbnRpZmllciA9ICdvcmcubW96aWxsYS5maXJlZm94
JwogICAgIGJyb3dzZXJfbmFtZSA9ICdmaXJlZm94JwogCi0gICAgZGVmIGxhdW5jaFVybChzZWxm
LCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgotICAgICAgICBzZWxmLmxhdW5jaFByb2Nlc3MoYnVp
bGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nRmlyZWZveC5hcHAnLCB1cmw9dXJsLCBh
cmdzPVt1cmwsICctLWFyZ3MnLCAnLXdpZHRoJywgc3RyKGludChzZWxmLnNjcmVlblNpemUoKS53
aWR0aCkpLCAnLWhlaWdodCcsIHN0cihpbnQoc2VsZi5zY3JlZW5TaXplKCkuaGVpZ2h0KSldKQor
ICAgIGRlZiBsYXVuY2hfdXJsKHNlbGYsIHVybCwgYnJvd3Nlcl9idWlsZF9wYXRoKToKKyAgICAg
ICAgc2VsZi5fbGF1bmNoX3Byb2Nlc3MoYnVpbGRfZGlyPWJyb3dzZXJfYnVpbGRfcGF0aCwgYXBw
X25hbWU9J0ZpcmVmb3guYXBwJywgdXJsPXVybCwgYXJncz1bdXJsLCAnLS1hcmdzJywgJy13aWR0
aCcsIHN0cihpbnQoc2VsZi5fc2NyZWVuX3NpemUoKS53aWR0aCkpLCAnLWhlaWdodCcsIHN0cihp
bnQoc2VsZi5fc2NyZWVuX3NpemUoKS5oZWlnaHQpKV0pCiAKIAogY2xhc3MgT1NYRmlyZWZveE5p
Z2h0bHlEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6Ci0gICAgYnVuZGxlSWRlbnRpZmllciA9ICdv
cmcubW96aWxsYS5uaWdodGx5JworICAgIGJ1bmRsZV9pZGVudGlmaWVyID0gJ29yZy5tb3ppbGxh
Lm5pZ2h0bHknCiAgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gtbmlnaHRseScKIAotICAgIGRl
ZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKLSAgICAgICAgc2VsZi5s
YXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0ZpcmVmb3hO
aWdodGx5LmFwcCcsIHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICctd2lkdGgnLCBzdHIo
aW50KHNlbGYuc2NyZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3RyKGludChzZWxmLnNj
cmVlblNpemUoKS5oZWlnaHQpKV0pCisgICAgZGVmIGxhdW5jaF91cmwoc2VsZiwgdXJsLCBicm93
c2VyX2J1aWxkX3BhdGgpOgorICAgICAgICBzZWxmLl9sYXVuY2hfcHJvY2VzcyhidWlsZF9kaXI9
YnJvd3Nlcl9idWlsZF9wYXRoLCBhcHBfbmFtZT0nRmlyZWZveE5pZ2h0bHkuYXBwJywgdXJsPXVy
bCwgYXJncz1bdXJsLCAnLS1hcmdzJywgJy13aWR0aCcsIHN0cihpbnQoc2VsZi5fc2NyZWVuX3Np
emUoKS53aWR0aCkpLCAnLWhlaWdodCcsIHN0cihpbnQoc2VsZi5fc2NyZWVuX3NpemUoKS5oZWln
aHQpKV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIu
cHkKaW5kZXggY2E0NjFlYTllYTIwZTkxNjIyZGJhM2RjYTUzNTJhNDNjYjE3ZDI3Zi4uMTA2OTlj
OTYzYTU2OWI2MjY1NDE0M2E0MzI1NWI0ZGRjMTc5ZjQwYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlf
ZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
cm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weQpAQCAtNyw1MiArNyw1MiBAQCBpbXBv
cnQgc3VicHJvY2VzcwogaW1wb3J0IHRpbWUKIAogZnJvbSBvc3hfYnJvd3Nlcl9kcml2ZXIgaW1w
b3J0IE9TWEJyb3dzZXJEcml2ZXIKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGls
cyBpbXBvcnQgZm9yY2VSZW1vdmUKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGls
cyBpbXBvcnQgZm9yY2VfcmVtb3ZlCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQogCiAKIGNsYXNzIE9TWFNhZmFyaURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKLSAgICBi
dW5kbGVJZGVudGlmaWVyID0gJ2NvbS5hcHBsZS5TYWZhcmknCisgICAgYnVuZGxlX2lkZW50aWZp
ZXIgPSAnY29tLmFwcGxlLlNhZmFyaScKICAgICBicm93c2VyX25hbWUgPSAnc2FmYXJpJwogCi0g
ICAgZGVmIHByZXBhcmVFbnYoc2VsZiwgZGV2aWNlSUQpOgotICAgICAgICBzZWxmLnNhZmFyaVBy
b2Nlc3MgPSBOb25lCi0gICAgICAgIHN1cGVyKE9TWFNhZmFyaURyaXZlciwgc2VsZikucHJlcGFy
ZUVudihkZXZpY2VJRCkKLSAgICAgICAgZm9yY2VSZW1vdmUob3MucGF0aC5qb2luKG9zLnBhdGgu
ZXhwYW5kdXNlcignficpLCAnTGlicmFyeS9TYXZlZCBBcHBsaWNhdGlvbiBTdGF0ZS9jb20uYXBw
bGUuU2FmYXJpLnNhdmVkU3RhdGUnKSkKLSAgICAgICAgZm9yY2VSZW1vdmUob3MucGF0aC5qb2lu
KG9zLnBhdGguZXhwYW5kdXNlcignficpLCAnTGlicmFyeS9TYWZhcmkvTGFzdFNlc3Npb24ucGxp
c3QnKSkKLSAgICAgICAgc2VsZi5tYXhpbWl6ZVdpbmRvdygpCi0gICAgICAgIHNlbGYuc2FmYXJp
UHJlZmVyZW5jZXMgPSBbIi1Ib21lUGFnZSIsICJhYm91dDpibGFuayIsICItV2FybkFib3V0RnJh
dWR1bGVudFdlYnNpdGVzIiwgIjAiLCAiLUV4dGVuc2lvbnNFbmFibGVkIiwgIjAiLCAiLVNob3dT
dGF0dXNCYXIiLCAiMCIsICItTmV3V2luZG93QmVoYXZpb3IiLCAiMSIsICItTmV3VGFiQmVoYXZp
b3IiLCAiMSJdCisgICAgZGVmIHByZXBhcmVfZW52KHNlbGYsIGRldmljZV9pZCk6CisgICAgICAg
IHNlbGYuX3NhZmFyaV9wcm9jZXNzID0gTm9uZQorICAgICAgICBzdXBlcihPU1hTYWZhcmlEcml2
ZXIsIHNlbGYpLnByZXBhcmVfZW52KGRldmljZV9pZCkKKyAgICAgICAgZm9yY2VfcmVtb3ZlKG9z
LnBhdGguam9pbihvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSwgJ0xpYnJhcnkvU2F2ZWQgQXBwbGlj
YXRpb24gU3RhdGUvY29tLmFwcGxlLlNhZmFyaS5zYXZlZFN0YXRlJykpCisgICAgICAgIGZvcmNl
X3JlbW92ZShvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR1c2VyKCd+JyksICdMaWJyYXJ5L1Nh
ZmFyaS9MYXN0U2Vzc2lvbi5wbGlzdCcpKQorICAgICAgICBzZWxmLl9tYXhpbWl6ZV93aW5kb3co
KQorICAgICAgICBzZWxmLl9zYWZhcmlfcHJlZmVyZW5jZXMgPSBbIi1Ib21lUGFnZSIsICJhYm91
dDpibGFuayIsICItV2FybkFib3V0RnJhdWR1bGVudFdlYnNpdGVzIiwgIjAiLCAiLUV4dGVuc2lv
bnNFbmFibGVkIiwgIjAiLCAiLVNob3dTdGF0dXNCYXIiLCAiMCIsICItTmV3V2luZG93QmVoYXZp
b3IiLCAiMSIsICItTmV3VGFiQmVoYXZpb3IiLCAiMSJdCiAKLSAgICBkZWYgbGF1bmNoVXJsKHNl
bGYsIHVybCwgYnJvd3NlckJ1aWxkUGF0aCk6CisgICAgZGVmIGxhdW5jaF91cmwoc2VsZiwgdXJs
LCBicm93c2VyX2J1aWxkX3BhdGgpOgogICAgICAgICBhcmdzID0gWycvQXBwbGljYXRpb25zL1Nh
ZmFyaS5hcHAvQ29udGVudHMvTWFjT1MvU2FmYXJpJ10KICAgICAgICAgZW52ID0ge30KLSAgICAg
ICAgaWYgYnJvd3NlckJ1aWxkUGF0aDoKLSAgICAgICAgICAgIHNhZmFyaUFwcEluQnVpbGRQYXRo
ID0gb3MucGF0aC5qb2luKGJyb3dzZXJCdWlsZFBhdGgsICdTYWZhcmkuYXBwL0NvbnRlbnRzL01h
Y09TL1NhZmFyaScpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzYWZhcmlBcHBJbkJ1
aWxkUGF0aCk6Ci0gICAgICAgICAgICAgICAgYXJncyA9IFtzYWZhcmlBcHBJbkJ1aWxkUGF0aF0K
LSAgICAgICAgICAgICAgICBlbnYgPSB7J0RZTERfRlJBTUVXT1JLX1BBVEgnOiBicm93c2VyQnVp
bGRQYXRoLCAnRFlMRF9MSUJSQVJZX1BBVEgnOiBicm93c2VyQnVpbGRQYXRoLCAnX19YUENfRFlM
RF9MSUJSQVJZX1BBVEgnOiBicm93c2VyQnVpbGRQYXRofQorICAgICAgICBpZiBicm93c2VyX2J1
aWxkX3BhdGg6CisgICAgICAgICAgICBzYWZhcmlfYXBwX2luX2J1aWxkX3BhdGggPSBvcy5wYXRo
LmpvaW4oYnJvd3Nlcl9idWlsZF9wYXRoLCAnU2FmYXJpLmFwcC9Db250ZW50cy9NYWNPUy9TYWZh
cmknKQorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2FmYXJpX2FwcF9pbl9idWlsZF9w
YXRoKToKKyAgICAgICAgICAgICAgICBhcmdzID0gW3NhZmFyaV9hcHBfaW5fYnVpbGRfcGF0aF0K
KyAgICAgICAgICAgICAgICBlbnYgPSB7J0RZTERfRlJBTUVXT1JLX1BBVEgnOiBicm93c2VyX2J1
aWxkX3BhdGgsICdEWUxEX0xJQlJBUllfUEFUSCc6IGJyb3dzZXJfYnVpbGRfcGF0aCwgJ19fWFBD
X0RZTERfTElCUkFSWV9QQVRIJzogYnJvd3Nlcl9idWlsZF9wYXRofQogICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ0NvdWxkIG5vdCBmaW5kIFNhZmFyaS5hcHAg
YXQgJXMsIHVzaW5nIHRoZSBzeXN0ZW0gU2FmYXJpIGluc3RlYWQnICUgc2FmYXJpQXBwSW5CdWls
ZFBhdGgpCisgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdDb3VsZCBub3QgZmluZCBTYWZhcmku
YXBwIGF0ICVzLCB1c2luZyB0aGUgc3lzdGVtIFNhZmFyaSBpbnN0ZWFkJyAlIHNhZmFyaV9hcHBf
aW5fYnVpbGRfcGF0aCkKIAotICAgICAgICBhcmdzLmV4dGVuZChzZWxmLnNhZmFyaVByZWZlcmVu
Y2VzKQorICAgICAgICBhcmdzLmV4dGVuZChzZWxmLl9zYWZhcmlfcHJlZmVyZW5jZXMpCiAgICAg
ICAgIF9sb2cuaW5mbygnTGF1bmNoaW5nIHNhZmFyaTogJXMgd2l0aCB1cmw6ICVzJyAlIChhcmdz
WzBdLCB1cmwpKQotICAgICAgICBzZWxmLnNhZmFyaVByb2Nlc3MgPSBPU1hTYWZhcmlEcml2ZXIu
bGF1bmNoUHJvY2Vzc1dpdGhDYWZmaW5hdGUoYXJncywgZW52KQorICAgICAgICBzZWxmLl9zYWZh
cmlfcHJvY2VzcyA9IE9TWFNhZmFyaURyaXZlci5fbGF1bmNoX3Byb2Nlc3Nfd2l0aF9jYWZmaW5h
dGUoYXJncywgZW52KQogCiAgICAgICAgICMgU3RvcCBmb3IgaW5pdGlhbGl6YXRpb24gb2YgdGhl
IHNhZmFyaSBwcm9jZXNzLCBvdGhlcndpc2UsIG9wZW4KICAgICAgICAgIyBjb21tYW5kIG1heSB1
c2UgdGhlIHN5c3RlbSBzYWZhcmkuCiAgICAgICAgIHRpbWUuc2xlZXAoMykKICAgICAgICAgc3Vi
cHJvY2Vzcy5Qb3BlbihbJ29wZW4nLCB1cmxdKQogCi0gICAgZGVmIGNsb3NlQnJvd3NlcnMoc2Vs
Zik6Ci0gICAgICAgIHN1cGVyKE9TWFNhZmFyaURyaXZlciwgc2VsZikuY2xvc2VCcm93c2Vycygp
Ci0gICAgICAgIGlmIHNlbGYuc2FmYXJpUHJvY2VzcyBhbmQgc2VsZi5zYWZhcmlQcm9jZXNzLnJl
dHVybmNvZGU6CisgICAgZGVmIGNsb3NlX2Jyb3dzZXJzKHNlbGYpOgorICAgICAgICBzdXBlcihP
U1hTYWZhcmlEcml2ZXIsIHNlbGYpLmNsb3NlX2Jyb3dzZXJzKCkKKyAgICAgICAgaWYgc2VsZi5f
c2FmYXJpX3Byb2Nlc3MgYW5kIHNlbGYuX3NhZmFyaV9wcm9jZXNzLnJldHVybmNvZGU6CiAgICAg
ICAgICAgICBzeXMuZXhpdCgnQnJvd3NlciBjcmFzaGVkIHdpdGggZXhpdGNvZGUgJWQnICUgc2Vs
Zi5fcHJvY2Vzcy5yZXR1cm5jb2RlKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIG1heGlt
aXplV2luZG93KGNscyk6CisgICAgZGVmIF9tYXhpbWl6ZV93aW5kb3coY2xzKToKICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsnL3Vzci9iaW4vZGVmYXVs
dHMnLCAnd3JpdGUnLCAnY29tLmFwcGxlLlNhZmFyaScsICdOU1dpbmRvdyBGcmFtZSBCcm93c2Vy
V2luZG93RnJhbWUnLCAnICcuam9pbihbJzAnLCAnMCcsIHN0cihjbHMuc2NyZWVuU2l6ZSgpLndp
ZHRoKSwgc3RyKGNscy5zY3JlZW5TaXplKCkuaGVpZ2h0KV0gKiAyKV0pCisgICAgICAgICAgICBz
dWJwcm9jZXNzLmNoZWNrX2NhbGwoWycvdXNyL2Jpbi9kZWZhdWx0cycsICd3cml0ZScsICdjb20u
YXBwbGUuU2FmYXJpJywgJ05TV2luZG93IEZyYW1lIEJyb3dzZXJXaW5kb3dGcmFtZScsICcgJy5q
b2luKFsnMCcsICcwJywgc3RyKGNscy5fc2NyZWVuX3NpemUoKS53aWR0aCksIHN0cihjbHMuX3Nj
cmVlbl9zaXplKCkuaGVpZ2h0KV0gKiAyKV0pCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg
ZXJyb3I6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCdSZXNldCBzYWZhcmkgd2luZG93IHNpemUg
ZmFpbGVkIC0gRXJyb3I6IHt9Jy5mb3JtYXQoZXJyb3IpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3Nl
cnZlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weQppbmRleCBhYTcwMTkwZWE4
ZTI2NTgyZjA5MWJhODIwZWY5YWFlNTJmNTkwMjY3Li43NTRkMjNhODEyNmE1ODlmMTQzMGE5MzMw
MWU4MzAwMWU0YmNmNjNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL2h0dHBfc2VydmVyX2RyaXZlci5weQpAQCAtMTAsMTcgKzEwLDE3IEBAIGNsYXNzIEhUVFBT
ZXJ2ZXJEcml2ZXIob2JqZWN0KToKICAgICAgICAgcGFzcwogCiAgICAgQGFic3RyYWN0bWV0aG9k
Ci0gICAgZGVmIGZldGNoUmVzdWx0KHNlbGYpOgorICAgIGRlZiBmZXRjaF9yZXN1bHQoc2VsZik6
CiAgICAgICAgIHBhc3MKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAgIGRlZiBraWxsU2VydmVy
KHNlbGYpOgorICAgIGRlZiBraWxsX3NlcnZlcihzZWxmKToKICAgICAgICAgcGFzcwogCiAgICAg
QGFic3RyYWN0bWV0aG9kCi0gICAgZGVmIGdldFJldHVybkNvZGUoc2VsZik6CisgICAgZGVmIGdl
dF9yZXR1cm5fY29kZShzZWxmKToKICAgICAgICAgcGFzcwogCiAgICAgQGFic3RyYWN0bWV0aG9k
Ci0gICAgZGVmIHNldERldmljZUlEKHNlbGYsIGRldmljZUlEKToKKyAgICBkZWYgc2V0X2Rldmlj
ZV9pZChzZWxmLCBkZXZpY2VJRCk6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxl
X2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQpp
bmRleCA2NDk1NWRmOTE0NGQ1NDcwYzY0ODIwODlhYjc3ODA0ZDk5MzQ2YTlkLi45ZTJhN2U2ZTVh
YzIyODMzOWY4ZDBkY2U0YzQ3NjI1YjY2MmUzZmIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRw
X3NlcnZlcl9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CkBA
IC0yMSwxMyArMjEsMTMgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVy
RHJpdmVyKToKICAgICBuYW1lID0gJ1NpbXBsZUhUVFBTZXJ2ZXJEcml2ZXInCiAKICAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyX3Byb2Nlc3MgPSBOb25lCi0gICAg
ICAgIHNlbGYuc2VydmVyX3BvcnQgPSAwCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0g
Tm9uZQorICAgICAgICBzZWxmLl9zZXJ2ZXJfcG9ydCA9IDAKICAgICAgICAgIyBGSVhNRTogVGhp
cyBtYXkgbm90IGJlIHJlbGlhYmxlLgogICAgICAgICBfbG9nLmluZm8oJ0ZpbmRpbmcgdGhlIElQ
IGFkZHJlc3Mgb2YgY3VycmVudCBtYWNoaW5lJykKICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2VsZi5pcCA9IFtpcCBmb3IgaXAgaW4gc29ja2V0LmdldGhvc3RieW5hbWVfZXgoc29ja2V0Lmdl
dGhvc3RuYW1lKCkpWzJdIGlmIG5vdCBpcC5zdGFydHN3aXRoKCIxMjcuIildWzBdCi0gICAgICAg
ICAgICBfbG9nLmluZm8oJ0lQIG9mIGN1cnJlbnQgbWFjaGluZSBpczogJXMnICUgc2VsZi5pcCkK
KyAgICAgICAgICAgIHNlbGYuX2lwID0gW2lwIGZvciBpcCBpbiBzb2NrZXQuZ2V0aG9zdGJ5bmFt
ZV9leChzb2NrZXQuZ2V0aG9zdG5hbWUoKSlbMl0gaWYgbm90IGlwLnN0YXJ0c3dpdGgoIjEyNy4i
KV1bMF0KKyAgICAgICAgICAgIF9sb2cuaW5mbygnSVAgb2YgY3VycmVudCBtYWNoaW5lIGlzOiAl
cycgJSBzZWxmLl9pcCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKICAgICAg
ICAgICAgIF9sb2cuZXJyb3IoJ0Nhbm5vdCBnZXQgdGhlIGlwIGFkZHJlc3Mgb2YgY3VycmVudCBt
YWNoaW5lIC0gRXJyb3I6ICVzJyAlIGVycm9yKQogICAgICAgICAgICAgcmFpc2UKQEAgLTM1LDE4
ICszNSwxOCBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2ZXIp
OgogICAgIGRlZiBzZXJ2ZShzZWxmLCB3ZWJfcm9vdCk6CiAgICAgICAgIF9sb2cuaW5mbygnTGF1
bmNoaW5nIGFuIGh0dHAgc2VydmVyJykKICAgICAgICAgaHR0cF9zZXJ2ZXJfcGF0aCA9IG9zLnBh
dGguam9pbihvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksICJodHRw
X3NlcnZlci90d2lzdGVkX2h0dHBfc2VydmVyLnB5IikKLSAgICAgICAgc2VsZi5zZXJ2ZXJfcHJv
Y2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyIvdXNyL2Jpbi9weXRob24iLCBodHRwX3NlcnZlcl9w
YXRoLCB3ZWJfcm9vdF0sIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0PXN1YnByb2Nlc3Mu
UElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nl
c3MgPSBzdWJwcm9jZXNzLlBvcGVuKFsiL3Vzci9iaW4vcHl0aG9uIiwgaHR0cF9zZXJ2ZXJfcGF0
aCwgd2ViX3Jvb3RdLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJ
UEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCiAKLSAgICAgICAgbWF4QXR0ZW1wdCA9IDUKKyAg
ICAgICAgbWF4X2F0dGVtcHQgPSA1CiAgICAgICAgIGludGVydmFsID0gMC41CiAgICAgICAgIF9s
b2cuaW5mbygnU3RhcnQgdG8gZmV0Y2hpbmcgdGhlIHBvcnQgbnVtYmVyIG9mIHRoZSBodHRwIHNl
cnZlcicpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGltcG9ydCBwc3V0aWwKLSAgICAgICAg
ICAgIGZvciBhdHRlbXB0IGluIHhyYW5nZShtYXhBdHRlbXB0KToKKyAgICAgICAgICAgIGZvciBh
dHRlbXB0IGluIHhyYW5nZShtYXhfYXR0ZW1wdCk6CiAgICAgICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gcHN1dGlsLlByb2Nlc3Moc2VsZi5z
ZXJ2ZXJfcHJvY2Vzcy5waWQpLmNvbm5lY3Rpb25zKClbMF1bM11bMV0KLSAgICAgICAgICAgICAg
ICAgICAgaWYgc2VsZi5zZXJ2ZXJfcG9ydDoKLSAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cu
aW5mbygnSFRUUCBTZXJ2ZXIgaXMgc2VydmluZyBhdCBwb3J0OiAlZCcsIHNlbGYuc2VydmVyX3Bv
cnQpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9wb3J0ID0gcHN1dGlsLlByb2Nl
c3Moc2VsZi5fc2VydmVyX3Byb2Nlc3MucGlkKS5jb25uZWN0aW9ucygpWzBdWzNdWzFdCisgICAg
ICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlcnZlcl9wb3J0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgX2xvZy5pbmZvKCdIVFRQIFNlcnZlciBpcyBzZXJ2aW5nIGF0IHBvcnQ6ICVkJywgc2Vs
Zi5fc2VydmVyX3BvcnQpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg
ICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCkBAIC01
NiwxMiArNTYsMTIgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVyRHJp
dmVyKToKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCJDYW5ub3QgbGlzdGVuIHRvIHNlcnZlciwgbWF4IHRyaWVzIGV4Y2VlZGVkIikKICAgICAgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4geHJhbmdlKG1h
eEF0dGVtcHQpOgorICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4geHJhbmdlKG1heF9hdHRlbXB0
KToKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHN1
YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsnL3Vzci9zYmluL2xzb2YnLCAnLWEnLCAnLWlUQ1AnLCAn
LXNUQ1A6TElTVEVOJywgJy1wJywgc3RyKHNlbGYuc2VydmVyX3Byb2Nlc3MucGlkKV0pCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSBpbnQocmUuc2VhcmNoKCdUQ1AgXCo6
KFxkKykgXChMSVNURU5cKScsIG91dHB1dCkuZ3JvdXAoMSkpCi0gICAgICAgICAgICAgICAgICAg
IGlmIHNlbGYuc2VydmVyX3BvcnQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8o
J0hUVFAgU2VydmVyIGlzIHNlcnZpbmcgYXQgcG9ydDogJWQnLCBzZWxmLnNlcnZlcl9wb3J0KQor
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbJy91
c3Ivc2Jpbi9sc29mJywgJy1hJywgJy1pVENQJywgJy1zVENQOkxJU1RFTicsICctcCcsIHN0cihz
ZWxmLl9zZXJ2ZXJfcHJvY2Vzcy5waWQpXSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2Vy
dmVyX3BvcnQgPSBpbnQocmUuc2VhcmNoKCdUQ1AgXCo6KFxkKykgXChMSVNURU5cKScsIG91dHB1
dCkuZ3JvdXAoMSkpCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlcnZlcl9wb3J0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdIVFRQIFNlcnZlciBpcyBzZXJ2aW5n
IGF0IHBvcnQ6ICVkJywgc2VsZi5fc2VydmVyX3BvcnQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhawogICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6CiAgICAg
ICAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ0Vycm9yOiAlcycgJSBlcnJvcikKQEAgLTcyLDI5
ICs3MiwyOCBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2ZXIp
OgogICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ2Fubm90IGxpc3RlbiB0byBzZXJ2
ZXIsIG1heCB0cmllcyBleGNlZWRlZCIpCiAKICAgICAgICAgIyBXYWl0IGZvciBzZXJ2ZXIgdG8g
YmUgdXAgY29tcGxldGVseSBiZWZvcmUgZXhpdGluZwotICAgICAgICBmb3IgYXR0ZW1wdCBpbiB4
cmFuZ2UobWF4QXR0ZW1wdCk6CisgICAgICAgIGZvciBhdHRlbXB0IGluIHhyYW5nZShtYXhfYXR0
ZW1wdCk6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVj
a19jYWxsKFsiY3VybCIsICItLXNpbGVudCIsICItLWhlYWQiLCAiLS1mYWlsIiwgIi0tb3V0cHV0
IiwgIi9kZXYvbnVsbCIsIHNlbGYuYmFzZVVybCgpXSkKKyAgICAgICAgICAgICAgICBzdWJwcm9j
ZXNzLmNoZWNrX2NhbGwoWyJjdXJsIiwgIi0tc2lsZW50IiwgIi0taGVhZCIsICItLWZhaWwiLCAi
LS1vdXRwdXQiLCAiL2Rldi9udWxsIiwgc2VsZi5iYXNlX3VybCgpXSkKICAgICAgICAgICAgICAg
ICByZXR1cm4KICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6CiAgICAgICAg
ICAgICAgICAgX2xvZy5pbmZvKCdTZXJ2ZXIgbm90IHJ1bm5pbmcgeWV0OiAlcycgJSBlcnJvcikK
ICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKGludGVydmFsKQogICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1NlcnZlciBub3QgcnVubmluZywgbWF4IHRyaWVzIGV4Y2VlZGVkOiAlcycgJSBlcnJv
cikKIAorICAgIGRlZiBiYXNlX3VybChzZWxmKToKKyAgICAgICAgcmV0dXJuICJodHRwOi8vJXM6
JWQiICUgKHNlbGYuX2lwLCBzZWxmLl9zZXJ2ZXJfcG9ydCkKIAotICAgIGRlZiBiYXNlVXJsKHNl
bGYpOgotICAgICAgICByZXR1cm4gImh0dHA6Ly8lczolZCIgJSAoc2VsZi5pcCwgc2VsZi5zZXJ2
ZXJfcG9ydCkKLQotICAgIGRlZiBmZXRjaFJlc3VsdChzZWxmKToKLSAgICAgICAgKHN0ZG91dCwg
c3RkZXJyKSA9IHNlbGYuc2VydmVyX3Byb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgIGRlZiBmZXRj
aF9yZXN1bHQoc2VsZik6CisgICAgICAgIChzdGRvdXQsIHN0ZGVycikgPSBzZWxmLl9zZXJ2ZXJf
cHJvY2Vzcy5jb21tdW5pY2F0ZSgpCiAgICAgICAgIHByaW50IHN0ZGVycgogICAgICAgICByZXR1
cm4gc3Rkb3V0CiAKLSAgICBkZWYga2lsbFNlcnZlcihzZWxmKToKKyAgICBkZWYga2lsbF9zZXJ2
ZXIoc2VsZik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuc2VydmVyX3Byb2Nlc3Mu
dGVybWluYXRlKCkKKyAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzLnRlcm1pbmF0ZSgp
CiAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycm9yOgogICAgICAgICAgICAgX2xvZy5pbmZv
KCdFcnJvciB0ZXJtaW5hdGluZyBzZXJ2ZXIgcHJvY2VzczogJXMnICUgKGVycm9yKSkKIAotICAg
IGRlZiBnZXRSZXR1cm5Db2RlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXJfcHJv
Y2Vzcy5yZXR1cm5jb2RlCisgICAgZGVmIGdldF9yZXR1cm5fY29kZShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3NlcnZlcl9wcm9jZXNzLnJldHVybmNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQppbmRleCA5ODVlMmZkNDAxOGJh
ZWUwMDE4ODViMzFkOWZkYjVlMGRhM2VhNDJkLi5jN2NiNjJlYjI0MDQzNjgxNDliNjU2ZDg2ZThj
MmE3YjAyNmRjZjkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvdXRpbHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL3V0aWxzLnB5CkBAIC0zMCwxNCArMzAsMTQgQEAgZGVmIGxvYWRfc3ViY2xhc3Nlcyhk
aXJuYW1lLCBiYXNlX2NsYXNzX25hbWUsIGxvYWRlcik6CiAgICAgICAgICAgICAgICAgbG9hZGVy
KGl0ZW0pCiAKIAotZGVmIGdldFBhdGhGcm9tUHJvamVjdFJvb3QocmVsYXRpdmVQYXRoVG9Qcm9q
ZWN0Um9vdCk6CitkZWYgZ2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QocmVsYXRpdmVfcGF0aF90
b19wcm9qZWN0X3Jvb3QpOgogICAgICMgQ2hvb3NlIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBj
dXJyZW50IGZpbGUgYXMgc3RhcnQgcG9pbnQsCiAgICAgIyBjb21wdXRlIHJlbGF0aXZlIHBhdGgg
YmFzZSBvbiB0aGUgcGFyYW1ldGVyLAogICAgICMgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRo
Ci0gICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLCByZWxhdGl2ZVBhdGhUb1Byb2plY3RSb290KSkK
KyAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
b3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksIHJlbGF0aXZlX3BhdGhfdG9fcHJvamVjdF9yb290
KSkKIAogCi1kZWYgZm9yY2VSZW1vdmUocGF0aCk6CitkZWYgZm9yY2VfcmVtb3ZlKHBhdGgpOgog
ICAgIHRyeToKICAgICAgICAgc2h1dGlsLnJtdHJlZShwYXRoKQogICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZXJyb3I6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>