<?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>180592</bug_id>
          
          <creation_ts>2017-12-08 11:36:16 -0800</creation_ts>
          <short_desc>[python] Replace print operator with print() function for python3 compatibility</short_desc>
          <delta_ts>2017-12-08 13:57:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Local 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="Konstantin Tokarev">annulen</reporter>
          <assigned_to name="Konstantin Tokarev">annulen</assigned_to>
          <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lforschler</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1379671</commentid>
    <comment_count>0</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-08 11:36:16 -0800</bug_when>
    <thetext>Python 2 will be EOL in 2020: https://pythonclock.org/

Let&apos;s try to adjust code base to be compatible with Python 3, in small steps. The most abundant anti-pattern is use of &quot;print&quot; statement, which is replaced with print() function in py3. This patch contains only trivial changes which don&apos;t require &quot;from __future__ import print_function&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379685</commentid>
    <comment_count>1</comment_count>
      <attachid>328845</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-08 11:40:38 -0800</bug_when>
    <thetext>Created attachment 328845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379691</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-08 11:42:52 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379765</commentid>
    <comment_count>3</comment_count>
      <attachid>328845</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 13:56:13 -0800</bug_when>
    <thetext>Comment on attachment 328845
Patch

Clearing flags on attachment: 328845

Committed r225698: &lt;https://trac.webkit.org/changeset/225698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379766</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 13:56:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379768</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-08 13:57:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/35942755&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328845</attachid>
            <date>2017-12-08 11:40:38 -0800</date>
            <delta_ts>2017-12-08 13:56:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180592-20171208224036.patch</filename>
            <type>text/plain</type>
            <size>87971</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YThiYzAxNGIzNzQ2ZjU4YTlmYzNhOTU4NTYwMTUyNWVlMGEzNzQzLi4zZmE5YTRlMjJlODJkMTQ0
NzRhY2UyMzA3ZjNmNDM2NWQ0OTE0ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0xMi0wOCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5k
ZXgucnU+CisKKyAgICAgICAgW3B5dGhvbl0gUmVwbGFjZSBwcmludCBvcGVyYXRvciB3aXRoIHBy
aW50KCkgZnVuY3Rpb24gZm9yIHB5dGhvbjMgY29tcGF0aWJpbGl0eQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTkyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlWWFyclVu
aWNvZGVQcm9wZXJ0eVRhYmxlcy5weToKKyAgICAgICAgKG9wZW5PckV4aXQpOgorICAgICAgICAo
dmVyaWZ5VUNERmlsZXNFeGlzdCk6CisgICAgICAgIChBbGlhc2VzLnBhcnNlUHJvcGVydHlBbGlh
c2VzRmlsZSk6CisgICAgICAgIChBbGlhc2VzLnBhcnNlUHJvcGVydHlWYWx1ZUFsaWFzZXNGaWxl
KToKKyAgICAgICAgKiBTY3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHk6CisgICAgICAgICht
YWluKToKKyAgICAgICAgKiBnZW5lcmF0ZS1ieXRlY29kZS1maWxlczoKKwogMjAxNy0xMi0wNSAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIElzb0FsaWduZWRNZW1v
cnlBbGxvY2F0b3IgbmVlZHMgdG8gZnJlZSBhbGwgb2YgaXRzIG1lbW9yeSB3aGVuIHRoZSBWTSBk
ZXN0cnVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGE1NDhhOGJiNmUxNzIxNTA1MjJiZDkxZDhi
ZTBlNmU3NmUzNjJiMjkuLjI1NzFjODdlYWYxMTRmMGNhYTBkZTlhZjdlNDBhYjE4MWUxZmE3NWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTEyLTA4ICBLb25zdGFu
dGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KKworICAgICAgICBbcHl0aG9uXSBSZXBs
YWNlIHByaW50IG9wZXJhdG9yIHdpdGggcHJpbnQoKSBmdW5jdGlvbiBmb3IgcHl0aG9uMyBjb21w
YXRpYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODA1OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEFWRm91bmRhdGlvblN1cHBvcnQucHk6CisKIDIwMTctMTItMDQgIERhdmlkIFF1ZXNhZGEg
IDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjbGFzcyBmb3IgcGFy
c2luZyBhcHBsaWNhdGlvbiBtYW5pZmVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2dlbmVyYXRlWWFyclVuaWNvZGVQcm9wZXJ0eVRhYmxlcy5weSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlWWFyclVuaWNvZGVQcm9wZXJ0eVRhYmxl
cy5weQppbmRleCBlOWRhNjQ0Y2IxYzU1NGVjNjBmMzRmYWUwMDJiNjllZTQ1NjhjYjA3Li43MjI4
NzhkOTYyN2MxNzgzZDhkNTlmYWNlNWMwYTJkYzQwNjllNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZVlhcnJVbmljb2RlUHJvcGVydHlUYWJsZXMu
cHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGVZYXJyVW5pY29k
ZVByb3BlcnR5VGFibGVzLnB5CkBAIC05Miw3ICs5Miw3IEBAIGRlZiBvcGVuT3JFeGl0KHBhdGgs
IG1vZGUpOgogICAgIHRyeToKICAgICAgICAgcmV0dXJuIG9wZW4ocGF0aCwgbW9kZSkKICAgICBl
eGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICBwcmludCAiSS9PIGVycm9yIG9wZW5pbmcgezB9
LCAoezF9KTogezJ9Ii5mb3JtYXQocGF0aCwgZS5lcnJubywgZS5zdHJlcnJvcikKKyAgICAgICAg
cHJpbnQoIkkvTyBlcnJvciBvcGVuaW5nIHswfSwgKHsxfSk6IHsyfSIuZm9ybWF0KHBhdGgsIGUu
ZXJybm8sIGUuc3RyZXJyb3IpKQogICAgICAgICBleGl0KDEpCiAKIApAQCAtMTExLDcgKzExMSw3
IEBAIGRlZiB2ZXJpZnlVQ0RGaWxlc0V4aXN0KCk6CiAgICAgZm9yIGZpbGUgaW4gUmVxdWlyZWRV
Q0RGaWxlczoKICAgICAgICAgZnVsbFBhdGggPSBvcy5wYXRoLmpvaW4oVUNERGlyZWN0b3J5UGF0
aCwgZmlsZSkKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZ1bGxQYXRoKToKLSAgICAg
ICAgICAgIHByaW50ICJDb3VsZG4ndCBmaW5kIFVDRCBmaWxlIHswfSBhdCB7MX0iLmZvcm1hdChm
aWxlLCBmdWxsUGF0aCkKKyAgICAgICAgICAgIHByaW50KCJDb3VsZG4ndCBmaW5kIFVDRCBmaWxl
IHswfSBhdCB7MX0iLmZvcm1hdChmaWxlLCBmdWxsUGF0aCkpCiAgICAgICAgICAgICBtaXNzaW5n
RmlsZUNvdW50ID0gbWlzc2luZ0ZpbGVDb3VudCArIDEKICAgICBpZiBtaXNzaW5nRmlsZUNvdW50
OgogICAgICAgICBleGl0KDEpCkBAIC0xNTAsNyArMTUwLDcgQEAgY2xhc3MgQWxpYXNlczoKICAg
ICAgICAgICAgICAgICBhbGlhc2VzLmFwcGVuZChvdGhlckFsaWFzLnN0cmlwKCkpCiAKICAgICAg
ICAgICAgIGlmIGZ1bGxOYW1lIGluIHNlbGYuZ2xvYmFsTmFtZVRvQWxpYXNlczoKLSAgICAgICAg
ICAgICAgICBwcmludCAiRXJyb3IsIGFscmVhZHkgYW4gYWxpYXMgZm9yIHt9Ii5mb3JtYXQoZnVs
bE5hbWUpCisgICAgICAgICAgICAgICAgcHJpbnQoIkVycm9yLCBhbHJlYWR5IGFuIGFsaWFzIGZv
ciB7fSIuZm9ybWF0KGZ1bGxOYW1lKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgc2VsZi5nbG9iYWxOYW1lVG9BbGlhc2VzW2Z1bGxOYW1lXSA9IGFsaWFzZXMKIApAQCAtMTgz
LDcgKzE4Myw3IEBAIGNsYXNzIEFsaWFzZXM6CiAgICAgICAgICAgICAgICAgYWxpYXNlcy5hcHBl
bmQob3RoZXJBbGlhcy5zdHJpcCgpKQogCiAgICAgICAgICAgICBpZiBmdWxsTmFtZSBpbiBtYXBU
b01vZGlmeToKLSAgICAgICAgICAgICAgICBwcmludCAiRXJyb3IsIGFscmVhZHkgYW4ge30gYWxp
YXMgZm9yIHt9Ii5mb3JtYXQocHJvcGVydHlUeXBlLCBmdWxsTmFtZSkKKyAgICAgICAgICAgICAg
ICBwcmludCgiRXJyb3IsIGFscmVhZHkgYW4ge30gYWxpYXMgZm9yIHt9Ii5mb3JtYXQocHJvcGVy
dHlUeXBlLCBmdWxsTmFtZSkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIG1h
cFRvTW9kaWZ5W2Z1bGxOYW1lXSA9IGFsaWFzZXMKICAgICAgICAgICAgICAgICBpZiByZXZlcnNl
TWFwVG9Nb2RpZnkgIT0gTm9uZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5CmluZGV4IDY1MDU2NjQ2YTNmNDgxNDViYjdlODc1
MDBkNDk4ZjJmMTc2OWNhYzEuLjcwNWVhMWYyMzIzNzlmMGUzMTdhZWQyZjU0YjEyMDliZWZkYTAz
YTMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL21ha2UtanMtZmls
ZS1hcnJheXMucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvbWFrZS1qcy1m
aWxlLWFycmF5cy5weQpAQCAtNDYsMTEgKzQ2LDExIEBAIGRlZiBtYWluKCk6CiAgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy1uJywgJy0tbmFtZXNwYWNlJywgaGVscD0nTmFtZXNwYWNlIHRvIHVzZScp
CiAgICAgKG9wdGlvbnMsIGFyZ3VtZW50cykgPSBwYXJzZXIucGFyc2VfYXJncygpCiAgICAgaWYg
bm90IG9wdGlvbnMubmFtZXNwYWNlOgotICAgICAgICBwcmludCAnRXJyb3I6IG11c3QgcHJvdmlk
ZSBhIG5hbWVzcGFjZScKKyAgICAgICAgcHJpbnQoJ0Vycm9yOiBtdXN0IHByb3ZpZGUgYSBuYW1l
c3BhY2UnKQogICAgICAgICBwYXJzZXIucHJpbnRfdXNhZ2UoKQogICAgICAgICBleGl0KC0xKQog
ICAgIGlmIGxlbihhcmd1bWVudHMpIDwgMzoKLSAgICAgICAgcHJpbnQgJ0Vycm9yOiBtdXN0IHBy
b3ZpZGUgYXQgbGVhc3QgMyBhcmd1bWVudHMnCisgICAgICAgIHByaW50KCdFcnJvcjogbXVzdCBw
cm92aWRlIGF0IGxlYXN0IDMgYXJndW1lbnRzJykKICAgICAgICAgcGFyc2VyLnByaW50X3VzYWdl
KCkKICAgICAgICAgZXhpdCgtMSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2dlbmVyYXRlLWJ5dGVjb2RlLWZpbGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRl
LWJ5dGVjb2RlLWZpbGVzCmluZGV4IDljODA3NzZjZTM0YTg2ODQzMjdjNGE3ZTZmMDdiN2Q2ZTM1
NDE2YWIuLmUxMTI4ZjhlMzA2ZDI2YzUzYWYzYTgyZjBlZDI3MzFlODQwOTI3ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1ieXRlY29kZS1maWxlcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtYnl0ZWNvZGUtZmlsZXMKQEAgLTkxLDcgKzkx
LDcgQEAgZGVmIG9wZW5PckV4aXQocGF0aCwgbW9kZSk6CiAgICAgdHJ5OgogICAgICAgICByZXR1
cm4gb3BlbihwYXRoLCBtb2RlKQogICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgIHBy
aW50ICJJL08gZXJyb3Igb3BlbmluZyB7MH0sICh7MX0pOiB7Mn0iLmZvcm1hdChwYXRoLCBlLmVy
cm5vLCBlLnN0cmVycm9yKQorICAgICAgICBwcmludCgiSS9PIGVycm9yIG9wZW5pbmcgezB9LCAo
ezF9KTogezJ9Ii5mb3JtYXQocGF0aCwgZS5lcnJubywgZS5zdHJlcnJvcikpCiAgICAgICAgIGV4
aXQoMSkKIAogZGVmIGhhc2hGaWxlKGZpbGUpOgpAQCAtMjE3LDcgKzIxNyw3IEBAIGlmIF9fbmFt
ZV9fID09ICJfX21haW5fXyI6CiAgICAgdHJ5OgogICAgICAgICBieXRlY29kZVNlY3Rpb25zID0g
anNvbi5sb2FkKGJ5dGVjb2RlRmlsZSwgZW5jb2RpbmcgPSAidXRmLTgiKQogICAgIGV4Y2VwdDoK
LSAgICAgICAgcHJpbnQgIlVuZXhwZWN0ZWQgZXJyb3IgcGFyc2luZyB7MH06IHsxfSIuZm9ybWF0
KGJ5dGVjb2RlSlNPTkZpbGUsIHN5cy5leGNfaW5mbygpKQorICAgICAgICBwcmludCgiVW5leHBl
Y3RlZCBlcnJvciBwYXJzaW5nIHswfTogezF9Ii5mb3JtYXQoYnl0ZWNvZGVKU09ORmlsZSwgc3lz
LmV4Y19pbmZvKCkpKQogCiAgICAgaWYgYnl0ZWNvZGVIRmlsZW5hbWU6CiAgICAgICAgIGJ5dGVj
b2RlSEZpbGUud3JpdGUoaEZpbGVIYXNoU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0FWRm91bmRhdGlvblN1cHBvcnQucHkgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQVZGb3Vu
ZGF0aW9uU3VwcG9ydC5weQppbmRleCAwOGIwN2U0YTQ5OGVhNGM5NzZjNTI4NjU1NGQ5YmQ3MmMw
Mzg1Yjc2Li5kNTIwOTNjN2NiOGQwYzRhOGZiMmRkNWYzODE5NDVjYTkyZDg4ZGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQVZGb3VuZGF0aW9uU3VwcG9ydC5weQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQVZGb3VuZGF0aW9uU3VwcG9ydC5weQpAQCAtNDMsMjIgKzQzLDIyIEBA
IGRlZiBmaWxlQ29udGFpbnMocmVsYXRpdmVQYXRoLCByZWdleHApOgogICAgIHJldHVybiBGYWxz
ZQogCiAKLXByaW50ICIvKiBJZGVudGlmeWluZyBBVkZvdW5kYXRpb24gU3VwcG9ydCAqLyIKK3By
aW50KCIvKiBJZGVudGlmeWluZyBBVkZvdW5kYXRpb24gU3VwcG9ydCAqLyIpCiBpZiBsb29rRm9y
KCIvaW5jbHVkZS9BVkZvdW5kYXRpb25DRi9BVkNGQmFzZS5oIik6Ci0gICAgcHJpbnQgIiNkZWZp
bmUgSEFWRV9BVkNGIDEiCisgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9BVkNGIDEiKQogaWYgbG9v
a0ZvcigiL2luY2x1ZGUvQVZGb3VuZGF0aW9uQ0YvQVZDRlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0
LmgiKToKLSAgICBwcmludCAiI2RlZmluZSBIQVZFX0FWQ0ZfTEVHSUJMRV9PVVRQVVQgMSIKKyAg
ICBwcmludCgiI2RlZmluZSBIQVZFX0FWQ0ZfTEVHSUJMRV9PVVRQVVQgMSIpCiBpZiBsb29rRm9y
KCIvaW5jbHVkZS9BVkZvdW5kYXRpb25DRi9BVkNGQXNzZXRSZXNvdXJjZUxvYWRlci5oIik6Ci0g
ICAgcHJpbnQgIiNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFIDEiCisg
ICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFIDEiKQog
aWYgbG9va0ZvcigiL2luY2x1ZGUvQVZGb3VuZGF0aW9uQ0YvQVZDRkFzc2V0LmgiKToKICAgICBy
ZWdleHAgPSByZS5jb21waWxlKCJBVkNGVVJMQXNzZXRJc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlw
ZSIpCiAgICAgaWYgZmlsZUNvbnRhaW5zKCIvaW5jbHVkZS9BVkZvdW5kYXRpb25DRi9BVkNGQXNz
ZXQuaCIsIHJlZ2V4cCk6Ci0gICAgICAgIHByaW50ICIjZGVmaW5lIEhBVkVfQVZDRlVSTF9QTEFZ
QUJMRV9NSU1FVFlQRSAxIgorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0FWQ0ZVUkxfUExB
WUFCTEVfTUlNRVRZUEUgMSIpCiBpZiBsb29rRm9yKCIvaW5jbHVkZS9RdWFydHpDb3JlL0NBQ0ZM
YXllci5oIik6CiAgICAgcmVnZXhwID0gcmUuY29tcGlsZSgiQ0FDRkxheWVyU2V0Q29udGVudHNT
Y2FsZSIpCiAgICAgaWYgZmlsZUNvbnRhaW5zKCIvaW5jbHVkZS9RdWFydHpDb3JlL0NBQ0ZMYXll
ci5oIiwgcmVnZXhwKToKLSAgICAgICAgcHJpbnQgIiNkZWZpbmUgSEFWRV9DQUNGTEFZRVJfU0VU
Q09OVEVOVFNTQ0FMRSAxIgorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0NBQ0ZMQVlFUl9T
RVRDT05URU5UU1NDQUxFIDEiKQogaWYgbG9va0ZvcigiL2luY2x1ZGUvQVZGb3VuZGF0aW9uQ0Yv
QVZDRlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0LmgiKToKICAgICByZWdleHAgPSByZS5jb21waWxl
KCJrQVZDRlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0X0NhbGxiYWNrc1ZlcnNpb25fMiIpCiAgICAg
aWYgZmlsZUNvbnRhaW5zKCIvaW5jbHVkZS9BVkZvdW5kYXRpb25DRi9BVkNGUGxheWVySXRlbUxl
Z2libGVPdXRwdXQuaCIsIHJlZ2V4cCk6Ci0gICAgICAgIHByaW50ICIjZGVmaW5lIEhBVkVfQVZD
RlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lPTl8yIDEiCisgICAgICAgIHByaW50KCIjZGVmaW5l
IEhBVkVfQVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lPTl8yIDEiKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmODVlMDMxN2ExODcyMWUy
MzU4NmZjMzI5OGMyOGFjN2JlZjg1YmEuLjkwMjMxMDk1MDQ5ZDQ5Mjc5MGU2OGQ5NzNlYzNjMTdj
MDI2NzA1NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMzUgQEAKKzIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFu
bnVsZW5AeWFuZGV4LnJ1PgorCisgICAgICAgIFtweXRob25dIFJlcGxhY2UgcHJpbnQgb3BlcmF0
b3Igd2l0aCBwcmludCgpIGZ1bmN0aW9uIGZvciBweXRob24zIGNvbXBhdGliaWxpdHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDU5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1
cHBvcnQvd2FpdC1mb3ItU1ZOLXNlcnZlci5weToKKyAgICAgICAgKGdldExhdGVzdFNWTlJldmlz
aW9uKToKKyAgICAgICAgKHdhaXRGb3JTVk5SZXZpc2lvbik6CisgICAgICAgICogU2NyaXB0cy9k
b3dubG9hZC1sYXRlc3QtZ2l0aHViLXJlbGVhc2UucHk6CisgICAgICAgIChmaW5kX2xhdGVzdF9y
ZWxlYXNlKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdhc20t
Z2NjLXRvcnR1cmUucHk6CisgICAgICAgICh1cGRhdGVfbGtncik6CisgICAgICAgICh1bnRhcl90
b3J0dXJlKToKKyAgICAgICAgKGxpc3RfanNfZmlsZXMpOgorICAgICAgICAod2F0ZXJmYWxsX2tu
b3duX2ZhaWx1cmVzKToKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQtd2luY2Fpcm8t
bGlicy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX3J1bm5lci5weToKKyAgICAgICAgKEJlbmNobWFya1J1bm5lci5zaG93X3Jlc3VsdHMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhU
VFBTZXJ2ZXJEcml2ZXIuZmV0Y2hfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weToKKyAgICAgICAgKGxpc3RfYmVuY2ht
YXJrX3BsYW5zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6
CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLmdlbmVyYXRlX2Zyb21faWRsKToKKyAgICAgICAgKEJp
bmRpbmdzVGVzdHMuZ2VuZXJhdGVfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpOgorICAgICAgICAo
QmluZGluZ3NUZXN0cy5kZXRlY3RfY2hhbmdlcyk6CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLnJ1
bl90ZXN0cyk6CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLm1haW4pOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5OgorICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JU
ZXN0cy5nZW5lcmF0ZV9mcm9tX2pzX2J1aWx0aW5zKToKKyAgICAgICAgKEJ1aWx0aW5zR2VuZXJh
dG9yVGVzdHMuZGV0ZWN0X2NoYW5nZXMpOgorICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JUZXN0
cy5zaW5nbGVfYnVpbHRpbl90ZXN0KToKKyAgICAgICAgKEJ1aWx0aW5zR2VuZXJhdG9yVGVzdHMu
cnVuX3Rlc3QpOgorICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JUZXN0cy5ydW5fdGVzdHMpOgor
ICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JUZXN0cy5tYWluKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5weToKKyAgICAgICAg
KE1vY2tCdWd6aWxsYS5mZXRjaF9hdHRhY2htZW50KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3QucHk6CisgICAgICAgIChCdWlsZGVyLl9m
ZXRjaF9yZXZpc2lvbl90b19idWlsZF9tYXApOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHk6CisgICAgICAgIChDcmFzaExvZ3MuX2ZpbmRfbmV3
ZXN0X2xvZ193aW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9v
dXRwdXRjYXB0dXJlX3VuaXR0ZXN0LnB5OgorICAgICAgICAoT3V0cHV0Q2FwdHVyZVRlc3QudGVz
dF9vdXRwdXRfY2FwdHVyZV9zY29wZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3Byb2ZpbGVyLnB5OgorICAgICAgICAoR29vZ2xlUFByb2YucHJvZmlsZV9hZnRl
cl9leGl0KToKKyAgICAgICAgKFBlcmYucHJvZmlsZV9hZnRlcl9leGl0KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weToKKyAgICAgICAgKFVzZXIucHJv
bXB0X3dpdGhfbXVsdGlwbGVfbGlzdHMpOgorICAgICAgICAoVXNlci5wcm9tcHRfd2l0aF9saXN0
KToKKyAgICAgICAgKFVzZXIuX3dhcm5faWZfYXBwbGljYXRpb25faXNfeGNvZGUpOgorICAgICAg
ICAoVXNlci5lZGl0X2NoYW5nZWxvZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9pbnNw
ZWN0b3IvbWFpbi5weToKKyAgICAgICAgKEluc3BlY3RvckdlbmVyYXRvclRlc3RzLmdlbmVyYXRl
X2Zyb21fanNvbik6CisgICAgICAgIChJbnNwZWN0b3JHZW5lcmF0b3JUZXN0cy5kZXRlY3RfY2hh
bmdlcyk6CisgICAgICAgIChJbnNwZWN0b3JHZW5lcmF0b3JUZXN0cy5ydW5fdGVzdHMpOgorICAg
ICAgICAoSW5zcGVjdG9yR2VuZXJhdG9yVGVzdHMubWFpbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1h
bmFnZXIuX3ByaW50X2V4cGVjdGF0aW9uX2xpbmVfZm9yX3Rlc3QpOgorICAgICAgICAoTWFuYWdl
ci5fcHJpbnRfZXhwZWN0YXRpb25zX2Zvcl9zdWJzZXQpOgorICAgICAgICAoTWFuYWdlci5fcHJp
bnRfZXhwZWN0YXRpb25zX2Zvcl9zdWJzZXQuaWYpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvcnVuX3dlYmtpdF9odHRwZC5weToKKyAgICAgICAgKHJ1
bl9zZXJ2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9jb25maWdfc3RhbmRh
bG9uZS5weToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9kYXJ3aW5fdGVzdGNhc2UucHk6CisgICAgICAgIChEYXJ3aW5UZXN0LnRlc3Rfc3BpbmR1bXAu
bG9nZ2luZ19ydW5fY29tbWFuZCk6CisgICAgICAgIChEYXJ3aW5UZXN0LnRlc3Rfc2FtcGxlX3By
b2Nlc3MubG9nZ2luZ19ydW5fY29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9w
b3J0L2lvcy5weToKKyAgICAgICAgKElPU1BvcnQuY2xlYW5fdXBfdGVzdF9ydW4pOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3NfZGV2aWNlX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoSU9TRGV2aWNlVGVzdC50ZXN0X3NwaW5kdW1wLmxvZ2dpbmdfcnVuX2NvbW1hbmQpOgorICAg
ICAgICAoSU9TRGV2aWNlVGVzdC50ZXN0X3NhbXBsZV9wcm9jZXNzLmxvZ2dpbmdfcnVuX2NvbW1h
bmQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9yX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yVGVzdC50ZXN0X3hjcnVuLnRocm93aW5nX3J1
bl9jb21tYW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9y
X3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9jb3VudF90b3RhbF9ieXRlc19hbmRfdW5pcXVl
X2xlYWtzLm1vY2tfcnVuX3NjcmlwdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L21hY191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF94Y3J1bi50aHJvd2luZ19y
dW5fY29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
b250cmlidXRvcnMucHk6CisgICAgICAgIChDb250cmlidXRvcnNDaGVja2VyLmNoZWNrKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYWJzdHJhY3Rsb2NhbHNlcnZl
cmNvbW1hbmQucHk6CisgICAgICAgIChBYnN0cmFjdExvY2FsU2VydmVyQ29tbWFuZC5leGVjdXRl
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYWRkdXNlcnN0b2dy
b3Vwcy5weToKKyAgICAgICAgKEFkZFVzZXJzVG9Hcm91cHMuZXhlY3V0ZSk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2FuYWx5emVjaGFuZ2Vsb2cucHk6CisgICAg
ICAgIChBbmFseXplQ2hhbmdlTG9nLl9nZW5lcmF0ZV9qc29ucyk6CisgICAgICAgIChBbmFseXpl
Q2hhbmdlTG9nLmV4ZWN1dGUpOgorICAgICAgICAoQ2hhbmdlTG9nQW5hbHl6ZXIuX3NldF9maWxl
bmFtZSk6CisgICAgICAgIChDaGFuZ2VMb2dBbmFseXplci5hbmFseXplKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYnVnZm9ydGVzdC5weToKKyAgICAgICAgKEJ1
Z0ZvclRlc3QuZXhlY3V0ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2J1Z3NlYXJjaC5weToKKyAgICAgICAgKGV4ZWN1dGUpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9maW5kdXNlcnMucHk6CisgICAgICAgIChGaW5kVXNlcnMu
ZXhlY3V0ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2dhcmRl
bm9tYXRpYy5weToKKyAgICAgICAgKEdhcmRlbk9NYXRpYy5leGVjdXRlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weToKKyAgICAgICAgKFJl
YmFzZWxpbmVUZXN0LmV4ZWN1dGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lc2VydmVyLnB5OgorICAgICAgICAoUmViYXNlbGluZVNlcnZlci5f
cHJlcGFyZV9jb25maWcpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9zZXR1cGdpdGNsb25lLnB5OgorICAgICAgICAoU2V0dXBHaXRDbG9uZS5leGVjdXRlKToKKyAg
ICAgICAgKFNldHVwR2l0Q2xvbmUuX2dldF91c2VybmFtZV9hbmRfZW1haWwpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9zdWdnZXN0bm9taW5hdGlvbnMucHk6Cisg
ICAgICAgIChTdWdnZXN0Tm9taW5hdGlvbnMuX3ByaW50X25vbWluYXRpb25zKToKKyAgICAgICAg
KFN1Z2dlc3ROb21pbmF0aW9ucy5fcHJpbnRfY291bnRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5OgorICAgICAgICAoQ29tbWl0TWVzc2FnZUZv
ckN1cnJlbnREaWZmLmV4ZWN1dGUpOgorICAgICAgICAoQ3JlYXRlQnVnLnByb21wdF9mb3JfYnVn
X3RpdGxlX2FuZF9jb21tZW50KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbXVs
dGljb21tYW5kdG9vbC5weToKKyAgICAgICAgKEhlbHBDb21tYW5kLmV4ZWN1dGUpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVz
dC5weToKKyAgICAgICAgKFRlc3RHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIuX3NlcnZlX3Rl
eHQpOgorICAgICAgICAoVGVzdEdhcmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlci5fc2VydmVfanNv
bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0eXBl
Zm9ycG5nLnB5OgorICAgICAgICAoQWRkU3ZuTWltZXR5cGVGb3JQbmcucnVuKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vycy5weToKKyAgICAg
ICAgKFN1Z2dlc3RSZXZpZXdlcnMucnVuKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3cz
Yy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyLnVwZGF0ZV90ZXN0c19v
cHRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHk6CisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVu
bmVyU2VsZW5pdW0ucnVuKToKKyAgICAgICAgKiBUZXN0UmVzdWx0U2VydmVyL21vZGVsL2pzb25y
ZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIGd0ay95Y21fZXh0cmFfY29uZi5weToKKyAg
ICAgICAgKEZsYWdzRm9yRmlsZSk6CisgICAgICAgICogbGxkYi9sbGRiX3dlYmtpdC5weToKKyAg
ICAgICAgKGJ0anMpOgorCiAyMDE3LTEyLTA1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gRml4IHN0eWxlIGlzc3VlcyBp
biBtYXN0ZXJjZmdfdW5pdHRlc3QucHkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L3dhaXQtZm9yLVNWTi1zZXJ2ZXIucHkgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC93YWl0
LWZvci1TVk4tc2VydmVyLnB5CmluZGV4IGJmNTdmZmFkNTU1OGIyOTc5MGQ0MjFhMWM5MjQ5ZDE0
NmZlZmFlZmEuLmE1NTBiYjBhMTk3ZTk2MDA2ZjBkZjJlMDI3MGNkNTBmNGFhNDhlMDQgMTAwNzU1
Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3dhaXQtZm9yLVNWTi1zZXJ2ZXIucHkKKysr
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvd2FpdC1mb3ItU1ZOLXNlcnZlci5weQpAQCAtMzEs
NDAgKzMxLDQwIEBAIGRlZiBnZXRMYXRlc3RTVk5SZXZpc2lvbihTVk5TZXJ2ZXIpOgogICAgIHAg
PSBzdWJwcm9jZXNzLlBvcGVuKFsic3ZuIiwgImxvZyIsICItLW5vbi1pbnRlcmFjdGl2ZSIsICIt
LXZlcmJvc2UiLCAiLS14bWwiLCAiLS1saW1pdD0xIiwgU1ZOU2VydmVyXSwgc3Rkb3V0PXN1YnBy
b2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQogICAgIHJlc3BvbnNlID0gcC5j
b21tdW5pY2F0ZSgpWzBdCiAgICAgaWYgcC5yZXR1cm5jb2RlICE9IDA6Ci0gICAgICAgIHByaW50
ICJDYW4ndCBjb25uZWN0IHRvIGhvc3Q6ICVzLCByZXR1cm4gY29kZSAlcyAiICUgKFNWTlNlcnZl
ciwgcC5yZXR1cm5jb2RlKQotICAgICAgICBwcmludCAiT1VUUFVUOiIKLSAgICAgICAgcHJpbnQg
cmVzcG9uc2UKKyAgICAgICAgcHJpbnQoIkNhbid0IGNvbm5lY3QgdG8gaG9zdDogJXMsIHJldHVy
biBjb2RlICVzICIgJSAoU1ZOU2VydmVyLCBwLnJldHVybmNvZGUpKQorICAgICAgICBwcmludCgi
T1VUUFVUOiIpCisgICAgICAgIHByaW50KHJlc3BvbnNlKQogICAgICAgICByZXR1cm4gLTEKICAg
ICB0cnk6CiAgICAgICAgIGRvYyA9IHhtbC5kb20ubWluaWRvbS5wYXJzZVN0cmluZyhyZXNwb25z
ZSkKICAgICAgICAgZWwgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxvZ2VudHJ5IilbMF0K
ICAgICAgICAgcmV0dXJuIGVsLmdldEF0dHJpYnV0ZSgicmV2aXNpb24iKQogICAgIGV4Y2VwdCB4
bWwucGFyc2Vycy5leHBhdC5FeHBhdEVycm9yLCBlOgotICAgICAgICBwcmludCAiRkFJTEVEIFRP
IFBBUlNFICdzdm4gbG9nJyBYTUw6IgotICAgICAgICBwcmludCBzdHIoZSkKLSAgICAgICAgcHJp
bnQgIi0tLS0iCi0gICAgICAgIHByaW50ICJSRUNFSVZFRCBURVhUOiIKLSAgICAgICAgcHJpbnQg
cmVzcG9uc2UKKyAgICAgICAgcHJpbnQoIkZBSUxFRCBUTyBQQVJTRSAnc3ZuIGxvZycgWE1MOiIp
CisgICAgICAgIHByaW50KHN0cihlKSkKKyAgICAgICAgcHJpbnQoIi0tLS0iKQorICAgICAgICBw
cmludCgiUkVDRUlWRUQgVEVYVDoiKQorICAgICAgICBwcmludChyZXNwb25zZSkKICAgICAgICAg
c3lzLmV4aXQoMSkKIAogCiBkZWYgd2FpdEZvclNWTlJldmlzaW9uKFNWTlNlcnZlciwgcmV2aXNp
b24pOgogICAgIGlmIG5vdCByZXZpc2lvbiBvciBub3QgcmV2aXNpb24uaXNkaWdpdCgpOgogICAg
ICAgICBsYXRlc3RSZXZpc2lvbiA9IGludChnZXRMYXRlc3RTVk5SZXZpc2lvbihTVk5TZXJ2ZXIp
KQotICAgICAgICBwcmludCAiTGF0ZXN0IFNWTiByZXZpc2lvbiBvbiAlcyBpcyByJWQuIERvbid0
IHdhaXQsIGJlY2F1c2UgcmV2aXNpb24gYXJndW1lbnQgaXNuJ3QgYSB2YWxpZCBTVk4gcmV2aXNp
b24uIiAlIChTVk5TZXJ2ZXIsIGxhdGVzdFJldmlzaW9uKQorICAgICAgICBwcmludCgiTGF0ZXN0
IFNWTiByZXZpc2lvbiBvbiAlcyBpcyByJWQuIERvbid0IHdhaXQsIGJlY2F1c2UgcmV2aXNpb24g
YXJndW1lbnQgaXNuJ3QgYSB2YWxpZCBTVk4gcmV2aXNpb24uIiAlIChTVk5TZXJ2ZXIsIGxhdGVz
dFJldmlzaW9uKSkKICAgICAgICAgcmV0dXJuCiAKICAgICByZXZpc2lvbiA9IGludChyZXZpc2lv
bikKICAgICB3aGlsZSBUcnVlOgogICAgICAgICBsYXRlc3RSZXZpc2lvbiA9IGludChnZXRMYXRl
c3RTVk5SZXZpc2lvbihTVk5TZXJ2ZXIpKQogICAgICAgICBpZiBsYXRlc3RSZXZpc2lvbiA9PSAt
MToKLSAgICAgICAgICAgIHByaW50ICIlcyBTVk4gc2VydmVyIGlzIHVucmVhY2hhYmxlLiBTbGVl
cGluZyBmb3IgNjAgc2Vjb25kcy4iICUgKFNWTlNlcnZlcikKKyAgICAgICAgICAgIHByaW50KCIl
cyBTVk4gc2VydmVyIGlzIHVucmVhY2hhYmxlLiBTbGVlcGluZyBmb3IgNjAgc2Vjb25kcy4iICUg
KFNWTlNlcnZlcikpCiAgICAgICAgICAgICB0aW1lLnNsZWVwKDYwKQogICAgICAgICBlbGlmIGxh
dGVzdFJldmlzaW9uIDwgcmV2aXNpb246Ci0gICAgICAgICAgICBwcmludCAiTGF0ZXN0IFNWTiBy
ZXZpc2lvbiBvbiAlcyBpcyByJWQsIGJ1dCB3ZSBhcmUgd2FpdGluZyBmb3IgciVkLiBTbGVlcGlu
ZyBmb3IgNSBzZWNvbmRzLiIgJSAoU1ZOU2VydmVyLCBsYXRlc3RSZXZpc2lvbiwgcmV2aXNpb24p
CisgICAgICAgICAgICBwcmludCgiTGF0ZXN0IFNWTiByZXZpc2lvbiBvbiAlcyBpcyByJWQsIGJ1
dCB3ZSBhcmUgd2FpdGluZyBmb3IgciVkLiBTbGVlcGluZyBmb3IgNSBzZWNvbmRzLiIgJSAoU1ZO
U2VydmVyLCBsYXRlc3RSZXZpc2lvbiwgcmV2aXNpb24pKQogICAgICAgICAgICAgdGltZS5zbGVl
cCg1KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQgIkxhdGVzdCBTVk4gcmV2aXNp
b24gb24gJXMgaXMgciVkLCB3aGljaCBpcyBuZXdlciBvciBlcXVhbCB0aGFuIHIlZC4iICUgKFNW
TlNlcnZlciwgbGF0ZXN0UmV2aXNpb24sIHJldmlzaW9uKQorICAgICAgICAgICAgcHJpbnQoIkxh
dGVzdCBTVk4gcmV2aXNpb24gb24gJXMgaXMgciVkLCB3aGljaCBpcyBuZXdlciBvciBlcXVhbCB0
aGFuIHIlZC4iICUgKFNWTlNlcnZlciwgbGF0ZXN0UmV2aXNpb24sIHJldmlzaW9uKSkKICAgICAg
ICAgICAgIGJyZWFrCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9kb3dubG9hZC1sYXRl
c3QtZ2l0aHViLXJlbGVhc2UucHkgYi9Ub29scy9TY3JpcHRzL2Rvd25sb2FkLWxhdGVzdC1naXRo
dWItcmVsZWFzZS5weQppbmRleCBmNTE2YzYxN2Q5MTgyZGUxYTY3ZmQxMGMzZGQ3YmQzZmFjYWE1
ODAzLi40NTM2NDM1NjdkMmRjNWI3MWY1MWI2YjYxZjU1YWRiM2YzNWUxNmE0IDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL2Rvd25sb2FkLWxhdGVzdC1naXRodWItcmVsZWFzZS5weQorKysgYi9U
b29scy9TY3JpcHRzL2Rvd25sb2FkLWxhdGVzdC1naXRodWItcmVsZWFzZS5weQpAQCAtNzAsNyAr
NzAsNyBAQCBkZWYgZmluZF9sYXRlc3RfcmVsZWFzZShhcmdzKToKICAgICB0cnk6CiAgICAgICAg
IHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHJlcXVlc3QpCiAgICAgZXhjZXB0IHVybGxpYjIu
VVJMRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgIHByaW50IGVycm9yCisgICAgICAgIHByaW50KGVy
cm9yKQogICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQogCiAgICAgZGF0YSA9IGpzb24ubG9hZHMo
cmVzcG9uc2UucmVhZCgpKQpAQCAtMTA1LDM4ICsxMDUsMzggQEAgZGVmIG1haW4oYXJndik6CiAg
ICAgYmluYXJ5X3BhdGggPSBvcy5wYXRoLmpvaW4oYXJncy5vdXRwdXRfZGlyLCBhcmdzLmZpbGVu
YW1lKQogICAgIHZlcnNpb25faW5mb19wYXRoID0gYmluYXJ5X3BhdGggKyAnLnZlcnNpb24nCiAK
LSAgICBwcmludCAnVXBkYXRpbmcge30uLi4nLmZvcm1hdChhcmdzLmZpbGVuYW1lKQorICAgIHBy
aW50KCdVcGRhdGluZyB7fS4uLicuZm9ybWF0KGFyZ3MuZmlsZW5hbWUpKQogCiAgICAgZXhpc3Rp
bmdfdmVyc2lvbl9pbmZvID0gbG9hZF92ZXJzaW9uX2luZm8odmVyc2lvbl9pbmZvX3BhdGgpCiAg
ICAgaWYgZXhpc3RpbmdfdmVyc2lvbl9pbmZvOgotICAgICAgICBwcmludCAnRm91bmQgZXhpc3Rp
bmcgcmVsZWFzZTonLCBleGlzdGluZ192ZXJzaW9uX2luZm9bJ3RhZ19uYW1lJ10KKyAgICAgICAg
cHJpbnQoJ0ZvdW5kIGV4aXN0aW5nIHJlbGVhc2U6JywgZXhpc3RpbmdfdmVyc2lvbl9pbmZvWyd0
YWdfbmFtZSddKQogICAgIGVsc2U6Ci0gICAgICAgIHByaW50ICdObyBleGlzdGluZyByZWxlYXNl
IGZvdW5kLicKKyAgICAgICAgcHJpbnQoJ05vIGV4aXN0aW5nIHJlbGVhc2UgZm91bmQuJykKIAot
ICAgIHByaW50ICdTZWVraW5nIGxhdGVzdCByZWxlYXNlIGZyb20ge30uLi4nLmZvcm1hdChhcmdz
LnJlcG8pCisgICAgcHJpbnQoJ1NlZWtpbmcgbGF0ZXN0IHJlbGVhc2UgZnJvbSB7fS4uLicuZm9y
bWF0KGFyZ3MucmVwbykpCiAgICAgcmVsZWFzZV91cmwsIGxhdGVzdF92ZXJzaW9uX2luZm8gPSBm
aW5kX2xhdGVzdF9yZWxlYXNlKGFyZ3MpCiAKICAgICBpZiBub3QgbGF0ZXN0X3ZlcnNpb25faW5m
bzoKICAgICAgICAgaWYgZXhpc3RpbmdfdmVyc2lvbl9pbmZvOgotICAgICAgICAgICAgcHJpbnQg
J0ZhbGxpbmcgYmFjayB0byBleGlzdGluZyByZWxlYXNlIScKKyAgICAgICAgICAgIHByaW50KCdG
YWxsaW5nIGJhY2sgdG8gZXhpc3RpbmcgcmVsZWFzZSEnKQogICAgICAgICAgICAgcmV0dXJuIFN0
YXR1cy5VU0lOR19FWElTVElORwogCi0gICAgICAgIHByaW50ICdObyByZWxlYXNlIGZvdW5kIScK
KyAgICAgICAgcHJpbnQoJ05vIHJlbGVhc2UgZm91bmQhJykKICAgICAgICAgcmV0dXJuIFN0YXR1
cy5DT1VMRF9OT1RfRklORAogCi0gICAgcHJpbnQgJ0ZvdW5kIGxhdGVzdCByZWxlYXNlOicsIGxh
dGVzdF92ZXJzaW9uX2luZm9bJ3RhZ19uYW1lJ10KKyAgICBwcmludCgnRm91bmQgbGF0ZXN0IHJl
bGVhc2U6JywgbGF0ZXN0X3ZlcnNpb25faW5mb1sndGFnX25hbWUnXSkKIAogICAgIGlmIGxhdGVz
dF92ZXJzaW9uX2luZm8gPT0gZXhpc3RpbmdfdmVyc2lvbl9pbmZvOgotICAgICAgICBwcmludCAn
QWxyZWFkeSB1cC10by1kYXRlIScKKyAgICAgICAgcHJpbnQoJ0FscmVhZHkgdXAtdG8tZGF0ZSEn
KQogICAgICAgICByZXR1cm4gU3RhdHVzLlVQX1RPX0RBVEUKIAogICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhhcmdzLm91dHB1dF9kaXIpOgogICAgICAgICBvcy5tYWtlZGlycyhhcmdzLm91dHB1
dF9kaXIpCiAKLSAgICBwcmludCAnRG93bmxvYWRpbmcgdG8ge30uLi4nLmZvcm1hdChvcy5wYXRo
LmFic3BhdGgoYXJncy5vdXRwdXRfZGlyKSkKKyAgICBwcmludCgnRG93bmxvYWRpbmcgdG8ge30u
Li4nLmZvcm1hdChvcy5wYXRoLmFic3BhdGgoYXJncy5vdXRwdXRfZGlyKSkpCiAgICAgZG93bmxv
YWRfcmVsZWFzZShyZWxlYXNlX3VybCwgYmluYXJ5X3BhdGgpCiAgICAgc2F2ZV92ZXJzaW9uX2lu
Zm8odmVyc2lvbl9pbmZvX3BhdGgsIGxhdGVzdF92ZXJzaW9uX2luZm8pCi0gICAgcHJpbnQgJ0Rv
bmUhJworICAgIHByaW50KCdEb25lIScpCiAKICAgICByZXR1cm4gU3RhdHVzLkRPV05MT0FERUQK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2FzbS1nY2MtdG9ydHVyZS5weSBi
L1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdhc20tZ2NjLXRvcnR1cmUucHkKaW5kZXggOWEzNTk3YmNi
ZmY3YmVhZTM3OTNiOWY4ODRhOWU3OTIxZGMwZGRlMS4uM2RhNTMyOGM4MmU0MDFjNTljODUzNDBj
MjU0ZmM5M2MwYmZiOWU3YSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2FzbS1n
Y2MtdG9ydHVyZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13YXNtLWdjYy10b3J0dXJl
LnB5CkBAIC02NCwxNiArNjQsMTYgQEAgZGVmIHBhcnNlX2FyZ3MoKToKIGRlZiB1cGRhdGVfbGtn
cihhcmdzKToKICAgICBsa2dyX3VybCA9IExLR1JfVVJMICUgYXJncy5wbGF0Zm9ybQogICAgIGlm
IG5vdCBhcmdzLmxrZ3I6Ci0gICAgICAgIHByaW50ICdEb3dubG9hZGluZzogJXMnICUgbGtncl91
cmwKKyAgICAgICAgcHJpbnQoJ0Rvd25sb2FkaW5nOiAlcycgJSBsa2dyX3VybCkKICAgICAgICAg
YXJncy5sa2dyID0ganNvbi5sb2Fkcyh1cmxsaWIyLnVybG9wZW4obGtncl91cmwpLnJlYWQoKSlb
J2J1aWxkJ10KLSAgICBwcmludCAnbGtncjogJXMnICUgYXJncy5sa2dyCisgICAgcHJpbnQoJ2xr
Z3I6ICVzJyAlIGFyZ3MubGtncikKIAogCiBkZWYgdW50YXJfdG9ydHVyZShhcmdzKToKICAgICB0
b3J0dXJlX2ZpbGUgPSBUT1JUVVJFX0ZJTEUgJSBhcmdzLmxrZ3IKICAgICB0b3J0dXJlX3VybCA9
IFRPUlRVUkVfVVJMICUgKGFyZ3MucGxhdGZvcm0sIGFyZ3MubGtnciwgdG9ydHVyZV9maWxlKQog
ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh0b3J0dXJlX2ZpbGUpOgotICAgICAgICBwcmludCAn
RG93bmxvYWRpbmc6ICVzJyAlIHRvcnR1cmVfdXJsCisgICAgICAgIHByaW50KCdEb3dubG9hZGlu
ZzogJXMnICUgdG9ydHVyZV91cmwpCiAgICAgICAgIHRvcnR1cmVfZG93bmxvYWQgPSB1cmxsaWIy
LnVybG9wZW4odG9ydHVyZV91cmwpCiAgICAgICAgIHdpdGggb3Blbih0b3J0dXJlX2ZpbGUsICd3
YicpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKHRvcnR1cmVfZG93bmxvYWQucmVhZCgpKQpA
QCAtODEsMTQgKzgxLDE0IEBAIGRlZiB1bnRhcl90b3J0dXJlKGFyZ3MpOgogICAgICAgICBpZiBv
cy5wYXRoLmlzZGlyKFRPUlRVUkVfRElSKToKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVE9S
VFVSRV9ESVIpCiAgICAgICAgIHdpdGggdGFyZmlsZS5vcGVuKHRvcnR1cmVfZmlsZSwgJ3InKSBh
cyB0b3J0dXJlX3RhcjoKLSAgICAgICAgICAgIHByaW50ICdFeHRyYWN0aW5nOiAlcyAtPiAlcycg
JSAodG9ydHVyZV9maWxlLCBUT1JUVVJFX0RJUikKKyAgICAgICAgICAgIHByaW50KCdFeHRyYWN0
aW5nOiAlcyAtPiAlcycgJSAodG9ydHVyZV9maWxlLCBUT1JUVVJFX0RJUikpCiAgICAgICAgICAg
ICB0b3J0dXJlX3Rhci5leHRyYWN0YWxsKCkKICAgICBhc3NlcnQgb3MucGF0aC5pc2RpcihUT1JU
VVJFX0RJUikKIAogCiBkZWYgbGlzdF9qc19maWxlcyhhcmdzKToKICAgICBqc19maWxlcyA9IHNv
cnRlZChbb3MucGF0aC5iYXNlbmFtZShmKSBmb3IgZiBpbiBnbG9iLmdsb2Iob3MucGF0aC5qb2lu
KFRPUlRVUkVfRElSLCAnKi5qcycpKV0pCi0gICAgcHJpbnQgJ0ZvdW5kICVzIEphdmFTY3JpcHQg
dGVzdHMnICUgbGVuKGpzX2ZpbGVzKQorICAgIHByaW50KCdGb3VuZCAlcyBKYXZhU2NyaXB0IHRl
c3RzJyAlIGxlbihqc19maWxlcykpCiAgICAgYXNzZXJ0IGxlbihqc19maWxlcykgPiAxMjAwCiAg
ICAgcmV0dXJuIGpzX2ZpbGVzCiAKQEAgLTEwMiw3ICsxMDIsNyBAQCBkZWYgd2F0ZXJmYWxsX2tu
b3duX2ZhaWx1cmVzKGFyZ3MpOgogICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWydnaXQn
LCAnY2hlY2tvdXQnLCBhcmdzLndhdGVyZmFsbF9oYXNoXSwgY3dkPVdBVEVSRkFMTF9ESVIpCiAg
ICAgZWxzZToKICAgICAgICAgYXJncy53YXRlcmZhbGxfaGFzaCA9IHN1YnByb2Nlc3MuY2hlY2tf
b3V0cHV0KFsnZ2l0JywgJ2xvZycsICctbjEnLCAnLS1wcmV0dHk9Zm9ybWF0OiVIJ10sIGN3ZD1X
QVRFUkZBTExfRElSKS5zdHJpcCgpCi0gICAgcHJpbnQgJ1dhdGVyZmFsbCBhdDogJXMnICUgYXJn
cy53YXRlcmZhbGxfaGFzaAorICAgIHByaW50KCdXYXRlcmZhbGwgYXQ6ICVzJyAlIGFyZ3Mud2F0
ZXJmYWxsX2hhc2gpCiAgICAga25vd25fZmFpbHVyZXMgPSBbXQogICAgIHdpdGggb3Blbihvcy5w
YXRoLmpvaW4oV0FURVJGQUxMX0RJUiwgV0FURVJGQUxMX0tOT1dOX0ZBSUxVUkVTKSkgYXMgZmFp
bHVyZXNfZmlsZToKICAgICAgICAgZm9yIGxpbmUgaW4gZmFpbHVyZXNfZmlsZToKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC13aW5jYWlyby1saWJzLnB5IGIvVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0LXdpbmNhaXJvLWxpYnMucHkKaW5kZXggZDliOGI5OTgyNmIy
Y2RiYjU4NjAzNDc1M2E3ZjVkZTJhZThmOWM5My4uNzcxYzZlODk5MTlkYjQ1NDJlOGI0ZDBlZDlk
MTE0OTI0NjNlNjE0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXdp
bmNhaXJvLWxpYnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXdpbmNhaXJv
LWxpYnMucHkKQEAgLTM3LDcgKzM3LDcgQEAgcmVzdWx0ID0gZG93bmxvYWQubWFpbihbcmVwbywg
ZmlsZV0pCiAKICMgT25seSB1bnppcCBpZiByZXF1aXJlZAogaWYgcmVzdWx0ID09IGRvd25sb2Fk
LlN0YXR1cy5ET1dOTE9BREVEOgotICAgIHByaW50ICdFeHRyYWN0aW5nIHJlbGVhc2UgdG8ge30u
Li4nLmZvcm1hdChvdXRwdXQpCisgICAgcHJpbnQoJ0V4dHJhY3RpbmcgcmVsZWFzZSB0byB7fS4u
LicuZm9ybWF0KG91dHB1dCkpCiAgICAgemlwID0gemlwZmlsZS5aaXBGaWxlKGZpbGUsICdyJykK
ICAgICB6aXAuZXh0cmFjdGFsbChvdXRwdXQpCiAgICAgemlwLmNsb3NlKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19y
dW5uZXIucHkKaW5kZXggNDQyZTlkYzM2NmEwOTQzNDg0YjA2NTRjODk4NjZmZWUxZTk0YTE1OC4u
MmYxMGJjN2U2Yzk1MGMxZTEwMWU0OTdhNWE5OGE4NDA0MGIyODdkZiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19y
dW5uZXIucHkKQEAgLTE1Niw0ICsxNTYsNCBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0
KToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2hvd19yZXN1bHRzKGNscywgcmVzdWx0cywg
c2NhbGVfdW5pdD1UcnVlKToKICAgICAgICAgcmVzdWx0cyA9IEJlbmNobWFya1Jlc3VsdHMocmVz
dWx0cykKLSAgICAgICAgcHJpbnQgcmVzdWx0cy5mb3JtYXQoc2NhbGVfdW5pdCkKKyAgICAgICAg
cHJpbnQocmVzdWx0cy5mb3JtYXQoc2NhbGVfdW5pdCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9o
dHRwX3NlcnZlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKaW5k
ZXggNmI2ODA5NDIzZGM0NDJkNjNlNTU2YzU3MThiZWU4ODI5ZWYyNjQxNS4uOTM3YjcxZGM3OGNl
NGFlNmJhZmYzODhlZDRmMjJlNTRiYzRlYTAzYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9z
ZXJ2ZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQpAQCAt
NzksNyArNzksNyBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBTZXJ2ZXJEcml2
ZXIpOgogCiAgICAgZGVmIGZldGNoX3Jlc3VsdChzZWxmKToKICAgICAgICAgKHN0ZG91dCwgc3Rk
ZXJyKSA9IHNlbGYuX3NlcnZlcl9wcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICAgICAgcHJpbnQg
c3RkZXJyCisgICAgICAgIHByaW50KHN0ZGVycikKICAgICAgICAgcmV0dXJuIHN0ZG91dAogCiAg
ICAgZGVmIGtpbGxfc2VydmVyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQppbmRleCBiMDhjMTAyYzA2
MDEwNmNjY2FjNTVhMjhkYTA1YjRkMzZjYWRlNGUzLi40ZjJhZDFlZmNkMjZhODkxYjJjNjk2NjIy
YmU1ZjljNGM2ODI1YjdhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQpAQCAtNjksOSArNjksOSBAQCBkZWYg
cnVuX2JlbmNobWFya19wbGFuKGFyZ3MsIHBsYW4pOgogCiAKIGRlZiBsaXN0X2JlbmNobWFya19w
bGFucygpOgotICAgIHByaW50ICJBdmFpbGFibGUgYmVuY2htYXJrIHBsYW5zOiAiCisgICAgcHJp
bnQoIkF2YWlsYWJsZSBiZW5jaG1hcmsgcGxhbnM6ICIpCiAgICAgZm9yIHBsYW4gaW4gQmVuY2ht
YXJrUnVubmVyLmF2YWlsYWJsZV9wbGFucygpOgotICAgICAgICBwcmludCAiXHQlcyIgJSBwbGFu
CisgICAgICAgIHByaW50KCJcdCVzIiAlIHBsYW4pCiAKIAogZGVmIHN0YXJ0KGFyZ3MpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CmluZGV4IDc2NDA0ZTM2OWNmOGE4ZmNl
YTEyYjNlNzg2NDRmNzBlMjA5ZDNhMjEuLjFiZDJhNzYyOGZjM2ViODU1YWJhNGNiODkwMGUzYTY5
ZjA0YWQwMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFp
bi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHkKQEAgLTY0
LDkgKzY0LDkgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgb3V0cHV0ID0gc2VsZi5leGVjdXRpdmUucnVuX2NvbW1hbmQoY21kKQogICAgICAgICAgICAg
aWYgb3V0cHV0OgotICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAgICAg
IHByaW50KG91dHB1dCkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAg
ICAgcHJpbnQgZS5vdXRwdXQKKyAgICAgICAgICAgIHByaW50KGUub3V0cHV0KQogICAgICAgICAg
ICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogCkBA
IC05NCw5ICs5NCw5IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIG91dHB1dCA9IHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKGNtZCkKICAgICAgICAg
ICAgIGlmIG91dHB1dDoKLSAgICAgICAgICAgICAgICBwcmludCBvdXRwdXQKKyAgICAgICAgICAg
ICAgICBwcmludChvdXRwdXQpCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKLSAgICAg
ICAgICAgIHByaW50IGUub3V0cHV0CisgICAgICAgICAgICBwcmludChlLm91dHB1dCkKICAgICAg
ICAgICAgIGV4aXRfY29kZSA9IGUuZXhpdF9jb2RlCiAgICAgICAgIG9zLnJlbW92ZShpZGxfZmls
ZXNfbGlzdFsxXSkKICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQpAQCAtMTE4LDEzICsxMTgsMTMg
QEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAgICAgICBleGl0X2NvZGUgPSBlLmV4
aXRfY29kZQogCiAgICAgICAgICAgICBpZiBleGl0X2NvZGUgb3Igb3V0cHV0OgotICAgICAgICAg
ICAgICAgIHByaW50ICdGQUlMOiAoJXMpICVzJyAlIChnZW5lcmF0b3IsIG91dHB1dF9maWxlKQot
ICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAgICAgIHByaW50KCdGQUlM
OiAoJXMpICVzJyAlIChnZW5lcmF0b3IsIG91dHB1dF9maWxlKSkKKyAgICAgICAgICAgICAgICBw
cmludChvdXRwdXQpCiAgICAgICAgICAgICAgICAgY2hhbmdlc19mb3VuZCA9IFRydWUKICAgICAg
ICAgICAgICAgICBpZiBzZWxmLmpzb25fZmlsZV9uYW1lOgogICAgICAgICAgICAgICAgICAgICBz
ZWxmLmZhaWx1cmVzLmFwcGVuZCgiKCVzKSAlcyIgJSAoZ2VuZXJhdG9yLCBvdXRwdXRfZmlsZSkp
CiAgICAgICAgICAgICBlbGlmIHNlbGYudmVyYm9zZToKLSAgICAgICAgICAgICAgICBwcmludCAn
UEFTUzogKCVzKSAlcycgJSAoZ2VuZXJhdG9yLCBvdXRwdXRfZmlsZSkKKyAgICAgICAgICAgICAg
ICBwcmludCgnUEFTUzogKCVzKSAlcycgJSAoZ2VuZXJhdG9yLCBvdXRwdXRfZmlsZSkpCiAgICAg
ICAgIHJldHVybiBjaGFuZ2VzX2ZvdW5kCiAKICAgICBkZWYgdGVzdF9tYXRjaGVzX3BhdHRlcm5z
KHNlbGYsIHRlc3QpOgpAQCAtMTU5LDcgKzE1OSw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAg
ICAgICAgICAgICAgICAgcGFzc2VkID0gRmFsc2UKIAogICAgICAgICAgICAgaWYgc2VsZi5yZXNl
dF9yZXN1bHRzOgotICAgICAgICAgICAgICAgIHByaW50ICJSZXNldCByZXN1bHRzOiAoJXMpICVz
IiAlIChnZW5lcmF0b3IsIGlucHV0X2ZpbGUpCisgICAgICAgICAgICAgICAgcHJpbnQoIlJlc2V0
IHJlc3VsdHM6ICglcykgJXMiICUgKGdlbmVyYXRvciwgaW5wdXRfZmlsZSkpCiAgICAgICAgICAg
ICAgICAgY29udGludWUKIAogICAgICAgICAgICAgIyBEZXRlY3QgY2hhbmdlcwpAQCAtMTgyLDcg
KzE4Miw3IEBAIGNsYXNzIEJpbmRpbmdzVGVzdHM6CiAgICAgICAgIGRlZGljYXRlZHdvcmtlcmds
b2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxlID0gdGVtcGZpbGUubWtzdGVtcCgpWzFdCiAgICAg
ICAgIHNlcnZpY2V3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSA9IHRlbXBmaWxl
Lm1rc3RlbXAoKVsxXQogICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBl
bmRlbmN5KGlucHV0X2RpcmVjdG9yeSwgc3VwcGxlbWVudGFsX2RlcGVuZGVuY3lfZmlsZSwgd2lu
ZG93X2NvbnN0cnVjdG9yc19maWxlLCB3b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmls
ZSwgZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGVfY29uc3RydWN0b3JzX2ZpbGUsIHNlcnZpY2V3
b3JrZXJnbG9iYWxzY29wZV9jb25zdHJ1Y3RvcnNfZmlsZSk6Ci0gICAgICAgICAgICBwcmludCAn
RmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgZmlsZS4nCisgICAg
ICAgICAgICBwcmludCgnRmFpbGVkIHRvIGdlbmVyYXRlIGEgc3VwcGxlbWVudGFsIGRlcGVuZGVu
Y3kgZmlsZS4nKQogICAgICAgICAgICAgb3MucmVtb3ZlKHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5
X2ZpbGUpCiAgICAgICAgICAgICBvcy5yZW1vdmUod2luZG93X2NvbnN0cnVjdG9yc19maWxlKQog
ICAgICAgICAgICAgb3MucmVtb3ZlKHdvcmtlcmdsb2JhbHNjb3BlX2NvbnN0cnVjdG9yc19maWxl
KQpAQCAtMjEwLDEwICsyMTAsMTAgQEAgY2xhc3MgQmluZGluZ3NUZXN0czoKICAgICAgICAgICAg
IHdpdGggb3BlbihzZWxmLmpzb25fZmlsZV9uYW1lLCAndycpIGFzIGpzb25fZmlsZToKICAgICAg
ICAgICAgICAgICBqc29uLmR1bXAoanNvbl9kYXRhLCBqc29uX2ZpbGUpCiAKLSAgICAgICAgcHJp
bnQgJycKKyAgICAgICAgcHJpbnQoJycpCiAgICAgICAgIGlmIGFsbF90ZXN0c19wYXNzZWQ6Ci0g
ICAgICAgICAgICBwcmludCAnQWxsIHRlc3RzIFBBU1MhJworICAgICAgICAgICAgcHJpbnQoJ0Fs
bCB0ZXN0cyBQQVNTIScpCiAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcHJpbnQgJ1NvbWUgdGVzdHMgRkFJTCEgKFRvIHVwZGF0ZSB0aGUgcmVmZXJlbmNl
IGZpbGVzLCBleGVjdXRlICJydW4tYmluZGluZ3MtdGVzdHMgLS1yZXNldC1yZXN1bHRzIiknCisg
ICAgICAgICAgICBwcmludCgnU29tZSB0ZXN0cyBGQUlMISAoVG8gdXBkYXRlIHRoZSByZWZlcmVu
Y2UgZmlsZXMsIGV4ZWN1dGUgInJ1bi1iaW5kaW5ncy10ZXN0cyAtLXJlc2V0LXJlc3VsdHMiKScp
CiAgICAgICAgICAgICByZXR1cm4gLTEKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29kZWdlbi9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb2RlZ2VuL21haW4u
cHkKaW5kZXggM2I4MTlkZjhjMThjMWZmM2Q2YjFkMGE5YzkyZGM3YTg3NDg0MmI0My4uYzIwMmNl
MWExOWRmZmZjODZlZTUyZjJlMWY2NjgxYWQ0NDNmMWM5YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb2RlZ2VuL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb2RlZ2VuL21haW4ucHkKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3MgQnVpbHRpbnNHZW5lcmF0
b3JUZXN0czoKICAgICAgICAgICAgIGlmIHN0ZGVycl9vdXRwdXQ6CiAgICAgICAgICAgICAgICAg
c2VsZi53cml0ZV9lcnJvcl9maWxlKGZyYW1ld29ya19uYW1lICsgIkpTQnVpbHRpbnMuaC1lcnJv
ciIgaWYgZ2VuZXJhdGVfd3JhcHBlcnMgZWxzZSBidWlsdGluc19maWxlc1swXSwgb3V0cHV0X2Rp
cmVjdG9yeSwgc3RkZXJyX291dHB1dCkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgot
ICAgICAgICAgICAgcHJpbnQgZS5vdXRwdXQKKyAgICAgICAgICAgIHByaW50KGUub3V0cHV0KQog
ICAgICAgICAgICAgZXhpdF9jb2RlID0gZS5leGl0X2NvZGUKICAgICAgICAgcmV0dXJuIGV4aXRf
Y29kZQogCkBAIC04NSwxNyArODUsMTcgQEAgY2xhc3MgQnVpbHRpbnNHZW5lcmF0b3JUZXN0czoK
ICAgICAgICAgICAgICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogCiAgICAgICAgICAgICBp
ZiBleGl0X2NvZGUgb3Igb3V0cHV0OgotICAgICAgICAgICAgICAgIHByaW50ICdGQUlMOiAlcycg
JSBvdXRwdXRfZmlsZQotICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAg
ICAgIHByaW50KCdGQUlMOiAlcycgJSBvdXRwdXRfZmlsZSkKKyAgICAgICAgICAgICAgICBwcmlu
dChvdXRwdXQpCiAgICAgICAgICAgICAgICAgY2hhbmdlc19mb3VuZCA9IFRydWUKICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ1BBU1M6ICVzJyAlIG91dHB1dF9maWxl
CisgICAgICAgICAgICAgICAgcHJpbnQoJ1BBU1M6ICVzJyAlIG91dHB1dF9maWxlKQogICAgICAg
ICByZXR1cm4gY2hhbmdlc19mb3VuZAogCiAgICAgZGVmIHNpbmdsZV9idWlsdGluX3Rlc3Qoc2Vs
ZiwgdGVzdF9uYW1lLCB0ZXN0X2ZpbGVzLCB3b3JrX2RpcmVjdG9yeSk6CiAgICAgICAgIChmcmFt
ZXdvcmtfbmFtZSwgdGVzdF9jYXNlLCBvdXRwdXRfbW9kZSkgPSB0ZXN0X25hbWUuc3BsaXQoJy0n
KQogICAgICAgICBpZiBub3QgZnJhbWV3b3JrX25hbWUgb3Igbm90IG91dHB1dF9tb2RlIG9yIG5v
dCB0ZXN0X2Nhc2U6Ci0gICAgICAgICAgICBwcmludCAiSW52YWxpZCB0ZXN0IGNhc2UgbmFtZTog
c2hvdWxkIGJlIEZyYW1ld29yay1UZXN0Q2FzZU5hbWUtT3V0cHV0TW9kZS5qcyIKKyAgICAgICAg
ICAgIHByaW50KCJJbnZhbGlkIHRlc3QgY2FzZSBuYW1lOiBzaG91bGQgYmUgRnJhbWV3b3JrLVRl
c3RDYXNlTmFtZS1PdXRwdXRNb2RlLmpzIikKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAg
ICAgICAgIGNvbWJpbmVkX291dHB1dHMgPSBvdXRwdXRfbW9kZSA9PSAiQ29tYmluZWQiCkBAIC0x
MTUsNyArMTE1LDcgQEAgY2xhc3MgQnVpbHRpbnNHZW5lcmF0b3JUZXN0czoKICAgICAgICAgICAg
IHBhc3NlZCA9IEZhbHNlCiAKICAgICAgICAgaWYgc2VsZi5yZXNldF9yZXN1bHRzOgotICAgICAg
ICAgICAgcHJpbnQgIlJlc2V0IHJlc3VsdHMgZm9yIHRlc3Q6ICVzIiAlICh0ZXN0X25hbWUpCisg
ICAgICAgICAgICBwcmludCgiUmVzZXQgcmVzdWx0cyBmb3IgdGVzdDogJXMiICUgKHRlc3RfbmFt
ZSkpCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgICAgICMgRGV0ZWN0IGNoYW5nZXMK
QEAgLTE0MSw3ICsxNDEsNyBAQCBjbGFzcyBCdWlsdGluc0dlbmVyYXRvclRlc3RzOgogICAgICAg
ICAgICAgICAgIHNlcGFyYXRlbHlfZ2VuZXJhdGVkX2ZpbGVzLmFwcGVuZCh0ZXN0X2ZpbGUpCiAK
ICAgICAgICAgICAgIGlmIHNlbGYucmVzZXRfcmVzdWx0czoKLSAgICAgICAgICAgICAgICBwcmlu
dCAiUmVzZXQgcmVzdWx0cyBmb3IgdGVzdDogJXMiICUgKGlucHV0X2ZpbGUpCisgICAgICAgICAg
ICAgICAgcHJpbnQoIlJlc2V0IHJlc3VsdHMgZm9yIHRlc3Q6ICVzIiAlIChpbnB1dF9maWxlKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgIGlmIHNlcGFyYXRlbHlfZ2VuZXJh
dGVkX2ZpbGVzOgpAQCAtMTYxLDEwICsxNjEsMTAgQEAgY2xhc3MgQnVpbHRpbnNHZW5lcmF0b3JU
ZXN0czoKICAgICAgICAgaWYgbm90IHNlbGYucnVuX3Rlc3RzKGlucHV0X2RpcmVjdG9yeSwgcmVm
ZXJlbmNlX2RpcmVjdG9yeSk6CiAgICAgICAgICAgICBhbGxfdGVzdHNfcGFzc2VkID0gRmFsc2UK
IAotICAgICAgICBwcmludCAnJworICAgICAgICBwcmludCgnJykKICAgICAgICAgaWYgYWxsX3Rl
c3RzX3Bhc3NlZDoKLSAgICAgICAgICAgIHByaW50ICdBbGwgdGVzdHMgUEFTUyEnCisgICAgICAg
ICAgICBwcmludCgnQWxsIHRlc3RzIFBBU1MhJykKICAgICAgICAgICAgIHJldHVybiAwCiAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCAnU29tZSB0ZXN0cyBGQUlMISAoVG8gdXBkYXRl
IHRoZSByZWZlcmVuY2UgZmlsZXMsIGV4ZWN1dGUgInJ1bi1idWlsdGlucy1nZW5lcmF0b3ItdGVz
dHMgLS1yZXNldC1yZXN1bHRzIiknCisgICAgICAgICAgICBwcmludCgnU29tZSB0ZXN0cyBGQUlM
ISAoVG8gdXBkYXRlIHRoZSByZWZlcmVuY2UgZmlsZXMsIGV4ZWN1dGUgInJ1bi1idWlsdGlucy1n
ZW5lcmF0b3ItdGVzdHMgLS1yZXNldC1yZXN1bHRzIiknKQogICAgICAgICAgICAgcmV0dXJuIC0x
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEv
YnVnemlsbGFfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6
aWxsYS9idWd6aWxsYV9tb2NrLnB5CmluZGV4IDJlZTY4MDc0NmY3OTY5YjIxZDc2ZDRiNWVmOGZj
M2I4NWI2NDY4MDkuLmZkODg5Y2RjZGY3YWI1YzljMjAwOTgxNjA0Y2RjNzA0ZTRiMDIwYzUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6
aWxsYV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6
aWxsYS9idWd6aWxsYV9tb2NrLnB5CkBAIC00MDEsNyArNDAxLDcgQEAgY2xhc3MgTW9ja0J1Z3pp
bGxhKG9iamVjdCk6CiAKICAgICAgICAgYXR0YWNobWVudF9kaWN0aW9uYXJ5ID0gc2VsZi5hdHRh
Y2htZW50X2NhY2hlLmdldChhdHRhY2htZW50X2lkKQogICAgICAgICBpZiBub3QgYXR0YWNobWVu
dF9kaWN0aW9uYXJ5OgotICAgICAgICAgICAgcHJpbnQgIk1PQ0s6IGZldGNoX2F0dGFjaG1lbnQ6
ICVzIGlzIG5vdCBhIGtub3duIGF0dGFjaG1lbnQgaWQiICUgYXR0YWNobWVudF9pZAorICAgICAg
ICAgICAgcHJpbnQoIk1PQ0s6IGZldGNoX2F0dGFjaG1lbnQ6ICVzIGlzIG5vdCBhIGtub3duIGF0
dGFjaG1lbnQgaWQiICUgYXR0YWNobWVudF9pZCkKICAgICAgICAgICAgIHJldHVybiBOb25lCiAg
ICAgICAgIGJ1ZyA9IHNlbGYuZmV0Y2hfYnVnKGF0dGFjaG1lbnRfZGljdGlvbmFyeVsiYnVnX2lk
Il0pCiAgICAgICAgIGZvciBhdHRhY2htZW50IGluIGJ1Zy5hdHRhY2htZW50cyhpbmNsdWRlX29i
c29sZXRlPVRydWUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1aWxkYm90L2J1aWxkYm90LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1aWxkYm90L2J1aWxkYm90LnB5CmluZGV4IDA5N2ExZmQ2MzE4MDc3OGY3OTQ4NWI5MWVl
MTdlMjAwMzc4MTc1NDEuLjlmMDU2NmNiNDBkYTU2N2EzMWExOGM0MWI3M2IwNmY2NGJjZjJkOGUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9i
dWlsZGJvdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRi
b3QvYnVpbGRib3QucHkKQEAgLTE1OCw4ICsxNTgsOCBAQCBjbGFzcyBCdWlsZGVyKG9iamVjdCk6
CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBob3JyaWJseSBzbG93IGR1ZSB0
byB0aGUgaHVnZSBuZXR3b3JrIGxvYWQuCiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEg
cG9vciB3YXkgdG8gZG8gcmV2aXNpb24gLT4gYnVpbGQgbWFwcGluZy4KICAgICAgICAgICAgICMg
QmV0dGVyIHdvdWxkIGJlIHRvIGFzayBidWlsZGJvdCB0aHJvdWdoIHNvbWUgc29ydCBvZiBBUEku
Ci0gICAgICAgICAgICBwcmludCAiTG9hZGluZyByZXZpc2lvbi9idWlsZCBsaXN0IGZyb20gJXMu
IiAlIHNlbGYucmVzdWx0c191cmwoKQotICAgICAgICAgICAgcHJpbnQgIlRoaXMgbWF5IHRha2Ug
YSB3aGlsZS4uLiIKKyAgICAgICAgICAgIHByaW50KCJMb2FkaW5nIHJldmlzaW9uL2J1aWxkIGxp
c3QgZnJvbSAlcy4iICUgc2VsZi5yZXN1bHRzX3VybCgpKQorICAgICAgICAgICAgcHJpbnQoIlRo
aXMgbWF5IHRha2UgYSB3aGlsZS4uLiIpCiAgICAgICAgICAgICByZXN1bHRfZmlsZXMgPSBzZWxm
Ll9idWlsZGJvdC5fZmV0Y2hfdHdpc3RlZF9kaXJlY3RvcnlfbGlzdGluZyhzZWxmLnJlc3VsdHNf
dXJsKCkpCiAgICAgICAgIGV4Y2VwdCB1cmxsaWIyLkhUVFBFcnJvciwgZXJyb3I6CiAgICAgICAg
ICAgICBpZiBlcnJvci5jb2RlICE9IDQwNDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vY3Jhc2hsb2dzLnB5CmluZGV4IGZlMmJmYzIwMDUyMWVmNzhkMjdhZmRh
NGE2N2IzZDFjN2RjZGU3NDMuLjgxMmQ5YWMxMjdmMDkyZTM5NzJlYjY1NzAxYmVkMGUwNWM5YWU5
YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFz
aGxvZ3MucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNo
bG9ncy5weQpAQCAtMTIwLDE1ICsxMjAsMTUgQEAgY2xhc3MgQ3Jhc2hMb2dzKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgIGlmIGludChtYXRjaC5ncm91cCgncGlkJyksIDE2KSA9PSBwaWQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JzICsgbG9nX2ZpbGUKICAgICAg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotICAgICAgICAgICAgICAgIHByaW50ICJJT0Vycm9y
ICVzIiAlIHN0cihlKQorICAgICAgICAgICAgICAgIHByaW50KCJJT0Vycm9yICVzIiAlIHN0cihl
KSkKICAgICAgICAgICAgICAgICBpZiBpbmNsdWRlX2Vycm9yczoKICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JzICs9IHUiRVJST1I6IEZhaWxlZCB0byByZWFkICclcyc6ICVzXG4iICUgKHBhdGgs
IHN0cihlKSkKICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgotICAgICAgICAgICAgICAg
IHByaW50ICJPU0Vycm9yICVzIiAlIHN0cihlKQorICAgICAgICAgICAgICAgIHByaW50KCJPU0Vy
cm9yICVzIiAlIHN0cihlKSkKICAgICAgICAgICAgICAgICBpZiBpbmNsdWRlX2Vycm9yczoKICAg
ICAgICAgICAgICAgICAgICAgZXJyb3JzICs9IHUiRVJST1I6IEZhaWxlZCB0byByZWFkICclcyc6
ICVzXG4iICUgKHBhdGgsIHN0cihlKSkKICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2Rl
RXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgcHJpbnQgIlVuaWNvZGVEZWNvZGVFcnJvciAlcyIg
JSBzdHIoZSkKKyAgICAgICAgICAgICAgICBwcmludCgiVW5pY29kZURlY29kZUVycm9yICVzIiAl
IHN0cihlKSkKICAgICAgICAgICAgICAgICBpZiBpbmNsdWRlX2Vycm9yczoKICAgICAgICAgICAg
ICAgICAgICAgZXJyb3JzICs9IHUiRVJST1I6IEZhaWxlZCB0byBkZWNvZGUgJyVzJyBhcyBhc2Np
aTogJXNcbiIgJSAocGF0aCwgc3RyKGUpKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vb3V0cHV0Y2FwdHVyZV91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0dXJlX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDAzN2ExNWQ1ZTM4Zjk1NTNkMmM2N2UwYTdjODJlMDA0YzRjYTIwZjUuLmU4ODMwOWM3ODg2
ODYyMWUzYjg3OGZkZmI3MTlhZjNjZTdjY2UxZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0dXJlX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0dXJlX3VuaXR0ZXN0
LnB5CkBAIC02MSwxMSArNjEsMTEgQEAgY2xhc3MgT3V0cHV0Q2FwdHVyZVRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X291dHB1dF9jYXB0dXJlX3Njb3BlKHNlbGYpOgogICAg
ICAgICBzY29wZSA9IE91dHB1dENhcHR1cmVTY29wZSgpCiAgICAgICAgIHdpdGggc2NvcGU6Ci0g
ICAgICAgICAgICBwcmludCAnU1RSSU5HIDEnCisgICAgICAgICAgICBwcmludCgnU1RSSU5HIDEn
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgnU1RSSU5HIDFcbicsICcnLCAnJyksIHNjb3Bl
LmNhcHR1cmVkX291dHB1dCkKIAogICAgICAgICB3aXRoIHNjb3BlOgotICAgICAgICAgICAgcHJp
bnQgJ1NUUklORyAyJworICAgICAgICAgICAgcHJpbnQoJ1NUUklORyAyJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgoJ1NUUklORyAyXG4nLCAnJywgJycpLCBzY29wZS5jYXB0dXJlZF9vdXRw
dXQpCiAKICAgICBkZWYgdGVzdF9vdXRwdXRfY2FwdHVyZV9zY29wZV9mcm9tX291dHB1dF9jYXB0
dXJlKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3Byb2ZpbGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3By
b2ZpbGVyLnB5CmluZGV4IDY5ZWYyMDUxMzBkYWNjOTMyNDFlNzFiMGQyZTJjYjhhYjJlNjgyNWYu
LjUxMThlMDcwYzlkMjZjNzZjZjFhZTJlZjY0YTJjZDYxMzlhZTNjY2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wcm9maWxlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcHJvZmlsZXIucHkKQEAgLTExNiwxNyAr
MTE2LDE3IEBAIGNsYXNzIEdvb2dsZVBQcm9mKFNpbmdsZUZpbGVPdXRwdXRQcm9maWxlcik6CiAg
ICAgZGVmIHByb2ZpbGVfYWZ0ZXJfZXhpdChzZWxmKToKICAgICAgICAgIyBnb29nbGUtcHByb2Yg
ZG9lc24ndCBjaGVjayBpdHMgYXJndW1lbnRzLCBzbyB3ZSBoYXZlIHRvLgogICAgICAgICBpZiBu
b3QgKHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5fb3V0cHV0X3BhdGgpKToKLSAg
ICAgICAgICAgIHByaW50ICJGYWlsZWQgdG8gZ2F0aGVyIHByb2ZpbGUsICVzIGRvZXMgbm90IGV4
aXN0LiIgJSBzZWxmLl9vdXRwdXRfcGF0aAorICAgICAgICAgICAgcHJpbnQoIkZhaWxlZCB0byBn
YXRoZXIgcHJvZmlsZSwgJXMgZG9lcyBub3QgZXhpc3QuIiAlIHNlbGYuX291dHB1dF9wYXRoKQog
ICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgcHByb2ZfYXJncyA9IFtzZWxmLl9wcHJvZl9w
YXRoKCksICctLXRleHQnLCBzZWxmLl9leGVjdXRhYmxlX3BhdGgsIHNlbGYuX291dHB1dF9wYXRo
XQogICAgICAgICBwcm9maWxlX3RleHQgPSBzZWxmLl9ob3N0LmV4ZWN1dGl2ZS5ydW5fY29tbWFu
ZChwcHJvZl9hcmdzKQotICAgICAgICBwcmludCAiRmlyc3QgMTAgbGluZXMgb2YgcHByb2YgLS10
ZXh0OiIKLSAgICAgICAgcHJpbnQgc2VsZi5fZmlyc3RfdGVuX2xpbmVzX29mX3Byb2ZpbGUocHJv
ZmlsZV90ZXh0KQotICAgICAgICBwcmludCAiaHR0cDovL2dvb2dsZS1wZXJmdG9vbHMuZ29vZ2xl
Y29kZS5jb20vc3ZuL3RydW5rL2RvYy9jcHVwcm9maWxlLmh0bWwgZG9jdW1lbnRzIG91dHB1dC4i
Ci0gICAgICAgIHByaW50Ci0gICAgICAgIHByaW50ICJUbyBpbnRlcmFjdCB3aXRoIHRoZSB0aGUg
ZnVsbCBwcm9maWxlLCBpbmNsdWRpbmcgcHJvZHVjZSBncmFwaHM6IgotICAgICAgICBwcmludCAn
ICcuam9pbihbc2VsZi5fcHByb2ZfcGF0aCgpLCBzZWxmLl9leGVjdXRhYmxlX3BhdGgsIHNlbGYu
X291dHB1dF9wYXRoXSkKKyAgICAgICAgcHJpbnQoIkZpcnN0IDEwIGxpbmVzIG9mIHBwcm9mIC0t
dGV4dDoiKQorICAgICAgICBwcmludChzZWxmLl9maXJzdF90ZW5fbGluZXNfb2ZfcHJvZmlsZShw
cm9maWxlX3RleHQpKQorICAgICAgICBwcmludCgiaHR0cDovL2dvb2dsZS1wZXJmdG9vbHMuZ29v
Z2xlY29kZS5jb20vc3ZuL3RydW5rL2RvYy9jcHVwcm9maWxlLmh0bWwgZG9jdW1lbnRzIG91dHB1
dC4iKQorICAgICAgICBwcmludCgpCisgICAgICAgIHByaW50KCJUbyBpbnRlcmFjdCB3aXRoIHRo
ZSB0aGUgZnVsbCBwcm9maWxlLCBpbmNsdWRpbmcgcHJvZHVjZSBncmFwaHM6IikKKyAgICAgICAg
cHJpbnQoJyAnLmpvaW4oW3NlbGYuX3Bwcm9mX3BhdGgoKSwgc2VsZi5fZXhlY3V0YWJsZV9wYXRo
LCBzZWxmLl9vdXRwdXRfcGF0aF0pKQogCiAKIGNsYXNzIFBlcmYoU2luZ2xlRmlsZU91dHB1dFBy
b2ZpbGVyKToKQEAgLTE3MSwyMSArMTcxLDIxIEBAIGNsYXNzIFBlcmYoU2luZ2xlRmlsZU91dHB1
dFByb2ZpbGVyKToKICAgICAgICAgaWYgZXhpdF9jb2RlIGlzIG5vdCAwOgogICAgICAgICAgICAg
cHJpbnQgIidwZXJmIHJlY29yZCcgZmFpbGVkLCAiLAogICAgICAgICAgICAgaWYgZXhpdF9jb2Rl
OgotICAgICAgICAgICAgICAgIHByaW50ICJleGl0IGNvZGUgd2FzICVpLiIgJSBleGl0X2NvZGUK
KyAgICAgICAgICAgICAgICBwcmludCgiZXhpdCBjb2RlIHdhcyAlaS4iICUgZXhpdF9jb2RlKQog
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCAidGhlIHByb2ZpbGVkIHBy
b2Nlc3Mgd2l0aCBwaWQgJWkgaXMgc3RpbGwgcnVubmluZy4iICUgc2VsZi5fd2F0Y2hlZF9waWQK
KyAgICAgICAgICAgICAgICBwcmludCgidGhlIHByb2ZpbGVkIHByb2Nlc3Mgd2l0aCBwaWQgJWkg
aXMgc3RpbGwgcnVubmluZy4iICUgc2VsZi5fd2F0Y2hlZF9waWQpCiAgICAgICAgICAgICByZXR1
cm4KIAogICAgICAgICBwZXJmX3JlcG9ydF9hcmdzID0gW3NlbGYuX3BlcmZfcGF0aCgpLCAncmVw
b3J0JywgJy0tY2FsbC1ncmFwaCcsICdub25lJywgJy0taW5wdXQnLCBzZWxmLl9vdXRwdXRfcGF0
aF0KICAgICAgICAgcGVyZl9yZXBvcnRfb3V0cHV0ID0gc2VsZi5faG9zdC5leGVjdXRpdmUucnVu
X2NvbW1hbmQocGVyZl9yZXBvcnRfYXJncykKLSAgICAgICAgcHJpbnQgIkZpcnN0IDEwIGxpbmVz
IG9mICdwZXJmIHJlcG9ydCAtLWNhbGwtZ3JhcGg9bm9uZSc6IgorICAgICAgICBwcmludCgiRmly
c3QgMTAgbGluZXMgb2YgJ3BlcmYgcmVwb3J0IC0tY2FsbC1ncmFwaD1ub25lJzoiKQogCi0gICAg
ICAgIHByaW50ICIgIi5qb2luKHBlcmZfcmVwb3J0X2FyZ3MpCi0gICAgICAgIHByaW50ICJcbiIu
am9pbihzZWxmLl9maXJzdF90ZW5fbGluZXNfb2ZfcHJvZmlsZShwZXJmX3JlcG9ydF9vdXRwdXQp
KQorICAgICAgICBwcmludCgiICIuam9pbihwZXJmX3JlcG9ydF9hcmdzKSkKKyAgICAgICAgcHJp
bnQoIlxuIi5qb2luKHNlbGYuX2ZpcnN0X3Rlbl9saW5lc19vZl9wcm9maWxlKHBlcmZfcmVwb3J0
X291dHB1dCkpKQogCi0gICAgICAgIHByaW50ICJUbyB2aWV3IHRoZSBmdWxsIHByb2ZpbGUsIHJ1
bjoiCi0gICAgICAgIHByaW50ICcgJy5qb2luKFtzZWxmLl9wZXJmX3BhdGgoKSwgJ3JlcG9ydCcs
ICctaScsIHNlbGYuX291dHB1dF9wYXRoXSkKLSAgICAgICAgcHJpbnQgICMgQW4gZXh0cmEgbGlu
ZSBiZXR3ZWVuIHRlc3RzIGxvb2tzIG5pY2VyLgorICAgICAgICBwcmludCgiVG8gdmlldyB0aGUg
ZnVsbCBwcm9maWxlLCBydW46IikKKyAgICAgICAgcHJpbnQoJyAnLmpvaW4oW3NlbGYuX3BlcmZf
cGF0aCgpLCAncmVwb3J0JywgJy1pJywgc2VsZi5fb3V0cHV0X3BhdGhdKSkKKyAgICAgICAgcHJp
bnQoKSAgIyBBbiBleHRyYSBsaW5lIGJldHdlZW4gdGVzdHMgbG9va3MgbmljZXIuCiAKIAogY2xh
c3MgU2FtcGxlKFNpbmdsZUZpbGVPdXRwdXRQcm9maWxlcik6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5CmluZGV4IGIzZTg0MWU3NGZkY2FjZDIzYTU2MDQ0
MmQ1Y2RiMGVmOWMzZDAzY2UuLjQ0MDBjMDJlNTRmNzAwN2UwNGNjNjY4MTkyNjc3OWM4ZjIwY2Zl
NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2Vy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5CkBA
IC03NywxMiArNzcsMTIgQEAgY2xhc3MgVXNlcihvYmplY3QpOgogICAgIGRlZiBwcm9tcHRfd2l0
aF9tdWx0aXBsZV9saXN0cyhjbHMsIGxpc3RfdGl0bGUsIHN1YnRpdGxlcywgbGlzdHMsIGNhbl9j
aG9vc2VfbXVsdGlwbGU9RmFsc2UsIHJhd19pbnB1dD1yYXdfaW5wdXQpOgogICAgICAgICBpdGVt
X2luZGV4ID0gMAogICAgICAgICBjdW11bGF0ZWRfbGlzdCA9IFtdCi0gICAgICAgIHByaW50IGxp
c3RfdGl0bGUKKyAgICAgICAgcHJpbnQobGlzdF90aXRsZSkKICAgICAgICAgZm9yIGkgaW4gcmFu
Z2UobGVuKHN1YnRpdGxlcykpOgotICAgICAgICAgICAgcHJpbnQgIlxuIiArIHN1YnRpdGxlc1tp
XQorICAgICAgICAgICAgcHJpbnQoIlxuIiArIHN1YnRpdGxlc1tpXSkKICAgICAgICAgICAgIGZv
ciBpdGVtIGluIGxpc3RzW2ldOgogICAgICAgICAgICAgICAgIGl0ZW1faW5kZXggKz0gMQotICAg
ICAgICAgICAgICAgIHByaW50ICIlMmQuICVzIiAlIChpdGVtX2luZGV4LCBpdGVtKQorICAgICAg
ICAgICAgICAgIHByaW50KCIlMmQuICVzIiAlIChpdGVtX2luZGV4LCBpdGVtKSkKICAgICAgICAg
ICAgIGN1bXVsYXRlZF9saXN0ICs9IGxpc3RzW2ldCiAgICAgICAgIHJldHVybiBjbHMuX3dhaXRf
b25fbGlzdF9yZXNwb25zZShjdW11bGF0ZWRfbGlzdCwgY2FuX2Nob29zZV9tdWx0aXBsZSwgcmF3
X2lucHV0KQogCkBAIC0xMTUsMTEgKzExNSwxMSBAQCBjbGFzcyBVc2VyKG9iamVjdCk6CiAKICAg
ICBAY2xhc3NtZXRob2QKICAgICBkZWYgcHJvbXB0X3dpdGhfbGlzdChjbHMsIGxpc3RfdGl0bGUs
IGxpc3RfaXRlbXMsIGNhbl9jaG9vc2VfbXVsdGlwbGU9RmFsc2UsIHJhd19pbnB1dD1yYXdfaW5w
dXQpOgotICAgICAgICBwcmludCBsaXN0X3RpdGxlCisgICAgICAgIHByaW50KGxpc3RfdGl0bGUp
CiAgICAgICAgIGkgPSAwCiAgICAgICAgIGZvciBpdGVtIGluIGxpc3RfaXRlbXM6CiAgICAgICAg
ICAgICBpICs9IDEKLSAgICAgICAgICAgIHByaW50ICIlMmQuICVzIiAlIChpLCBpdGVtKQorICAg
ICAgICAgICAgcHJpbnQoIiUyZC4gJXMiICUgKGksIGl0ZW0pKQogICAgICAgICByZXR1cm4gY2xz
Ll93YWl0X29uX2xpc3RfcmVzcG9uc2UobGlzdF9pdGVtcywgY2FuX2Nob29zZV9tdWx0aXBsZSwg
cmF3X2lucHV0KQogCiAgICAgZGVmIGVkaXQoc2VsZiwgZmlsZXMpOgpAQCAtMTMzLDE1ICsxMzMs
MTUgQEAgY2xhc3MgVXNlcihvYmplY3QpOgogCiAgICAgZGVmIF93YXJuX2lmX2FwcGxpY2F0aW9u
X2lzX3hjb2RlKHNlbGYsIGVkaXRfYXBwbGljYXRpb24pOgogICAgICAgICBpZiAiWGNvZGUiIGlu
IGVkaXRfYXBwbGljYXRpb246Ci0gICAgICAgICAgICBwcmludCAiSW5zdGVhZCBvZiB1c2luZyBY
Y29kZS5hcHAsIGNvbnNpZGVyIHVzaW5nIEVESVRPUj1cInhlZCAtLXdhaXRcIi4iCisgICAgICAg
ICAgICBwcmludCgiSW5zdGVhZCBvZiB1c2luZyBYY29kZS5hcHAsIGNvbnNpZGVyIHVzaW5nIEVE
SVRPUj1cInhlZCAtLXdhaXRcIi4iKQogCiAgICAgZGVmIGVkaXRfY2hhbmdlbG9nKHNlbGYsIGZp
bGVzKToKICAgICAgICAgZWRpdF9hcHBsaWNhdGlvbiA9IG9zLmVudmlyb24uZ2V0KCJDSEFOR0Vf
TE9HX0VESVRfQVBQTElDQVRJT04iKQogICAgICAgICBpZiBlZGl0X2FwcGxpY2F0aW9uIGFuZCBz
ZWxmLl9wbGF0Zm9ybWluZm8uaXNfbWFjKCk6CiAgICAgICAgICAgICAjIE9uIE1hYyB3ZSBzdXBw
b3J0IGVkaXRpbmcgQ2hhbmdlTG9ncyB1c2luZyBhbiBhcHBsaWNhdGlvbi4KICAgICAgICAgICAg
IGFyZ3MgPSBzaGxleC5zcGxpdChlZGl0X2FwcGxpY2F0aW9uKQotICAgICAgICAgICAgcHJpbnQg
IlVzaW5nIGVkaXRvciBpbiB0aGUgQ0hBTkdFX0xPR19FRElUX0FQUExJQ0FUSU9OIGVudmlyb25t
ZW50IHZhcmlhYmxlLiIKLSAgICAgICAgICAgIHByaW50ICJQbGVhc2UgcXVpdCB0aGUgZWRpdG9y
IGFwcGxpY2F0aW9uIHdoZW4gZG9uZSBlZGl0aW5nLiIKKyAgICAgICAgICAgIHByaW50KCJVc2lu
ZyBlZGl0b3IgaW4gdGhlIENIQU5HRV9MT0dfRURJVF9BUFBMSUNBVElPTiBlbnZpcm9ubWVudCB2
YXJpYWJsZS4iKQorICAgICAgICAgICAgcHJpbnQoIlBsZWFzZSBxdWl0IHRoZSBlZGl0b3IgYXBw
bGljYXRpb24gd2hlbiBkb25lIGVkaXRpbmcuIikKICAgICAgICAgICAgIHNlbGYuX3dhcm5faWZf
YXBwbGljYXRpb25faXNfeGNvZGUoZWRpdF9hcHBsaWNhdGlvbikKICAgICAgICAgICAgIHN1YnBy
b2Nlc3MuY2FsbChbIm9wZW4iLCAiLVciLCAiLW4iLCAiLWEiXSArIGFyZ3MgKyBmaWxlcykKICAg
ICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9pbnNw
ZWN0b3IvbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvaW5zcGVjdG9yL21haW4ucHkK
aW5kZXggNDE5ZjI1NWRlZDQ3NmVlMGVhMDhjMDJlNmM0ZmY4ZTMzMWNlNTE0My4uYTcxYTM5M2U3
MWNhZGRmYWZmMjM4ODUwODBiZTI5YWFjZjg2OGY4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9pbnNwZWN0b3IvbWFpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2luc3BlY3Rvci9tYWluLnB5CkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIEluc3BlY3RvckdlbmVy
YXRvclRlc3RzOgogICAgICAgICAgICAgaWYgc3RkZXJyX291dHB1dDoKICAgICAgICAgICAgICAg
ICBzZWxmLndyaXRlX2Vycm9yX2ZpbGUoanNvbl9maWxlLCBvdXRwdXRfZGlyZWN0b3J5LCBzdGRl
cnJfb3V0cHV0KQogICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6Ci0gICAgICAgICAgICBw
cmludCBlLm91dHB1dAorICAgICAgICAgICAgcHJpbnQoZS5vdXRwdXQpCiAgICAgICAgICAgICBl
eGl0X2NvZGUgPSBlLmV4aXRfY29kZQogICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAKQEAgLTgx
LDExICs4MSwxMSBAQCBjbGFzcyBJbnNwZWN0b3JHZW5lcmF0b3JUZXN0czoKICAgICAgICAgICAg
ICAgICBleGl0X2NvZGUgPSBlLmV4aXRfY29kZQogCiAgICAgICAgICAgICBpZiBleGl0X2NvZGUg
b3Igb3V0cHV0OgotICAgICAgICAgICAgICAgIHByaW50ICdGQUlMOiAlcycgJSBvdXRwdXRfZmls
ZQotICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAgICAgIHByaW50KCdG
QUlMOiAlcycgJSBvdXRwdXRfZmlsZSkKKyAgICAgICAgICAgICAgICBwcmludChvdXRwdXQpCiAg
ICAgICAgICAgICAgICAgY2hhbmdlc19mb3VuZCA9IFRydWUKICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgcHJpbnQgJ1BBU1M6ICVzJyAlIG91dHB1dF9maWxlCisgICAgICAgICAg
ICAgICAgcHJpbnQoJ1BBU1M6ICVzJyAlIG91dHB1dF9maWxlKQogICAgICAgICByZXR1cm4gY2hh
bmdlc19mb3VuZAogCiAgICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCBwbGF0Zm9ybSwgaW5wdXRfZGly
ZWN0b3J5LCByZWZlcmVuY2VfZGlyZWN0b3J5KToKQEAgLTEwNSw3ICsxMDUsNyBAQCBjbGFzcyBJ
bnNwZWN0b3JHZW5lcmF0b3JUZXN0czoKICAgICAgICAgICAgICAgICBwYXNzZWQgPSBGYWxzZQog
CiAgICAgICAgICAgICBpZiBzZWxmLnJlc2V0X3Jlc3VsdHM6Ci0gICAgICAgICAgICAgICAgcHJp
bnQgIlJlc2V0IHJlc3VsdHMgZm9yIHRlc3Q6ICVzIiAlIChpbnB1dF9maWxlKQorICAgICAgICAg
ICAgICAgIHByaW50KCJSZXNldCByZXN1bHRzIGZvciB0ZXN0OiAlcyIgJSAoaW5wdXRfZmlsZSkp
CiAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgIyBEZXRlY3QgY2hhbmdl
cwpAQCAtMTM4LDEwICsxMzgsMTAgQEAgY2xhc3MgSW5zcGVjdG9yR2VuZXJhdG9yVGVzdHM6CiAK
ICAgICAgICAgICAgIGFsbF90ZXN0c19wYXNzZWQgPSBhbGxfdGVzdHNfcGFzc2VkIGFuZCBzZWxm
LnJ1bl90ZXN0cyhwbGF0Zm9ybV9uYW1lLCBpbnB1dF9kaXJlY3RvcnksIHJlZmVyZW5jZV9kaXJl
Y3RvcnkpCiAKLSAgICAgICAgcHJpbnQgJycKKyAgICAgICAgcHJpbnQoJycpCiAgICAgICAgIGlm
IGFsbF90ZXN0c19wYXNzZWQ6Ci0gICAgICAgICAgICBwcmludCAnQWxsIHRlc3RzIFBBU1MhJwor
ICAgICAgICAgICAgcHJpbnQoJ0FsbCB0ZXN0cyBQQVNTIScpCiAgICAgICAgICAgICByZXR1cm4g
MAogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQgJ1NvbWUgdGVzdHMgRkFJTCEgKFRv
IHVwZGF0ZSB0aGUgcmVmZXJlbmNlIGZpbGVzLCBleGVjdXRlICJydW4taW5zcGVjdG9yLWdlbmVy
YXRvci10ZXN0cyAtLXJlc2V0LXJlc3VsdHMiKScKKyAgICAgICAgICAgIHByaW50KCdTb21lIHRl
c3RzIEZBSUwhIChUbyB1cGRhdGUgdGhlIHJlZmVyZW5jZSBmaWxlcywgZXhlY3V0ZSAicnVuLWlu
c3BlY3Rvci1nZW5lcmF0b3ItdGVzdHMgLS1yZXNldC1yZXN1bHRzIiknKQogICAgICAgICAgICAg
cmV0dXJuIC0xCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCBlMjc4YjZlYjI0N2JhYzc3ZGYyMmJm
Y2U4MGQ0NzVlMzA1YzgzMWYxLi5iNjlhMDA1M2MzMGM0NWU2M2Q5ZWI2YmVkZTBlN2M0MDI1ZTFh
NTI5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTU0MCwxOCArNTQwLDE4IEBAIGNsYXNzIE1h
bmFnZXIob2JqZWN0KToKIAogICAgIGRlZiBfcHJpbnRfZXhwZWN0YXRpb25fbGluZV9mb3JfdGVz
dChzZWxmLCBmb3JtYXRfc3RyaW5nLCB0ZXN0KToKICAgICAgICAgbGluZSA9IHNlbGYuX2V4cGVj
dGF0aW9ucy5tb2RlbCgpLmdldF9leHBlY3RhdGlvbl9saW5lKHRlc3QpCi0gICAgICAgIHByaW50
IGZvcm1hdF9zdHJpbmcuZm9ybWF0KHRlc3QsIGxpbmUuZXhwZWN0ZWRfYmVoYXZpb3IsIHNlbGYu
X2V4cGVjdGF0aW9ucy5yZWFkYWJsZV9maWxlbmFtZV9hbmRfbGluZV9udW1iZXIobGluZSksIGxp
bmUub3JpZ2luYWxfc3RyaW5nIG9yICcnKQorICAgICAgICBwcmludChmb3JtYXRfc3RyaW5nLmZv
cm1hdCh0ZXN0LCBsaW5lLmV4cGVjdGVkX2JlaGF2aW9yLCBzZWxmLl9leHBlY3RhdGlvbnMucmVh
ZGFibGVfZmlsZW5hbWVfYW5kX2xpbmVfbnVtYmVyKGxpbmUpLCBsaW5lLm9yaWdpbmFsX3N0cmlu
ZyBvciAnJykpCiAgICAgCiAgICAgZGVmIF9wcmludF9leHBlY3RhdGlvbnNfZm9yX3N1YnNldChz
ZWxmLCBkZXZpY2VfY2xhc3MsIHRlc3RfY29sX3dpZHRoLCB0ZXN0c190b19ydW4sIHRlc3RzX3Rv
X3NraXA9e30pOgogICAgICAgICBmb3JtYXRfc3RyaW5nID0gJ3t7Ont3aWR0aH19fSB7e319IHt7
fX0ge3t9fScuZm9ybWF0KHdpZHRoPXRlc3RfY29sX3dpZHRoKQogICAgICAgICBpZiB0ZXN0c190
b19za2lwOgotICAgICAgICAgICAgcHJpbnQgJycKLSAgICAgICAgICAgIHByaW50ICdUZXN0cyB0
byBza2lwICh7fSknLmZvcm1hdChsZW4odGVzdHNfdG9fc2tpcCkpCisgICAgICAgICAgICBwcmlu
dCgnJykKKyAgICAgICAgICAgIHByaW50KCdUZXN0cyB0byBza2lwICh7fSknLmZvcm1hdChsZW4o
dGVzdHNfdG9fc2tpcCkpKQogICAgICAgICAgICAgZm9yIHRlc3QgaW4gc29ydGVkKHRlc3RzX3Rv
X3NraXApOgogICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGF0aW9uX2xpbmVfZm9y
X3Rlc3QoZm9ybWF0X3N0cmluZywgdGVzdCkKIAotICAgICAgICBwcmludCAnJwotICAgICAgICBw
cmludCAnVGVzdHMgdG8gcnVue30gKHt9KScuZm9ybWF0KCcgZm9yICcgKyBkZXZpY2VfY2xhc3Mg
aWYgZGV2aWNlX2NsYXNzIGVsc2UgJycsIGxlbih0ZXN0c190b19ydW4pKQorICAgICAgICBwcmlu
dCgnJykKKyAgICAgICAgcHJpbnQoJ1Rlc3RzIHRvIHJ1bnt9ICh7fSknLmZvcm1hdCgnIGZvciAn
ICsgZGV2aWNlX2NsYXNzIGlmIGRldmljZV9jbGFzcyBlbHNlICcnLCBsZW4odGVzdHNfdG9fcnVu
KSkpCiAgICAgICAgIGZvciB0ZXN0IGluIHNvcnRlZCh0ZXN0c190b19ydW4pOgogICAgICAgICAg
ICAgc2VsZi5fcHJpbnRfZXhwZWN0YXRpb25fbGluZV9mb3JfdGVzdChmb3JtYXRfc3RyaW5nLCB0
ZXN0KQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL3J1bl93ZWJraXRfaHR0cGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9zZXJ2ZXJzL3J1bl93ZWJraXRfaHR0cGQucHkKaW5kZXggMTlmOGJjNzRjNDE2MWVj
YWMzMWJkZjM4NTE2NjM4YTJmYmZkNThlYy4uMzE0ZTM3ZWFkM2NjNGVmNzBlODBjYTgxNGViZjli
MjI0OTlkZDMzYyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy9ydW5fd2Via2l0X2h0dHBkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvcnVuX3dlYmtpdF9odHRwZC5weQpAQCAtNjgsMjQgKzY4
LDI0IEBAIGRlZiBydW5fc2VydmVyKG9wdGlvbnMsIGFyZ3MsIHN0ZG91dCwgc3RkZXJyKToKICAg
ICAgICAgcmV0dXJuIEVYQ0VQVElPTkFMX0VYSVRfU1RBVFVTCiAKICAgICBpZiBvcHRpb25zLndl
Yl9wbGF0Zm9ybV90ZXN0X3NlcnZlcjoKLSAgICAgICAgcHJpbnQgIlN0YXJ0aW5nIHdlYi1wbGF0
Zm9ybS10ZXN0cyBzZXJ2ZXIgb24gPCVzPiBhbmQgPCVzPiIgJSAod2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyLmJhc2VfaHR0cF91cmwocG9ydCksIHdlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5iYXNl
X2h0dHBzX3VybChwb3J0KSkKLSAgICAgICAgcHJpbnQgIldlYktpdCBodHRwL3dwdCB0ZXN0cyBh
cmUgYWNjZXNzaWJsZSBhdCA8JXM+IiAlICh3ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIuYmFzZV9o
dHRwX3VybChwb3J0KSArICJXZWJLaXQvIikKKyAgICAgICAgcHJpbnQoIlN0YXJ0aW5nIHdlYi1w
bGF0Zm9ybS10ZXN0cyBzZXJ2ZXIgb24gPCVzPiBhbmQgPCVzPiIgJSAod2ViX3BsYXRmb3JtX3Rl
c3Rfc2VydmVyLmJhc2VfaHR0cF91cmwocG9ydCksIHdlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5i
YXNlX2h0dHBzX3VybChwb3J0KSkpCisgICAgICAgIHByaW50KCJXZWJLaXQgaHR0cC93cHQgdGVz
dHMgYXJlIGFjY2Vzc2libGUgYXQgPCVzPiIgJSAod2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLmJh
c2VfaHR0cF91cmwocG9ydCkgKyAiV2ViS2l0LyIpKQogICAgICAgICBwb3J0LnN0YXJ0X3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcigpCiAKICAgICBpZiBvcHRpb25zLmh0dHBkX3NlcnZlcjoKICAg
ICAgICAgIyBGSVhNRSgxNTQyOTQpOiBzb21laG93IHJldHJpZXZlIHRoZSBhY3R1YWwgcG9ydHMg
YW5kIGludGVyZmFjZXMgYm91bmQgYnkgdGhlIGh0dHBkIHNlcnZlcgogICAgICAgICBodHRwX3Bv
cnQgPSBvcHRpb25zLmh0dHBfcG9ydCBpZiBvcHRpb25zLmh0dHBfcG9ydCBpcyBub3QgTm9uZSBl
bHNlICI4MDAwIgogICAgICAgICBpZiBvcHRpb25zLmh0dHBfYWxsX2ludGVyZmFjZXMgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBwcmludCAiU3RhcnRpbmcgaHR0cGQgb24gcG9ydCAlcyAoYWxs
IGludGVyZmFjZXMpIiAlIGh0dHBfcG9ydAorICAgICAgICAgICAgcHJpbnQoIlN0YXJ0aW5nIGh0
dHBkIG9uIHBvcnQgJXMgKGFsbCBpbnRlcmZhY2VzKSIgJSBodHRwX3BvcnQpCiAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBwcmludCAiU3RhcnRpbmcgaHR0cGQgb24gPGh0dHA6Ly8xMjcuMC4w
LjE6JXM+IiAlIGh0dHBfcG9ydAorICAgICAgICAgICAgcHJpbnQoIlN0YXJ0aW5nIGh0dHBkIG9u
IDxodHRwOi8vMTI3LjAuMC4xOiVzPiIgJSBodHRwX3BvcnQpCiAKICAgICAgICAgYWRkaXRpb25h
bERpcnMgPSB7YWRkaXRpb25hbF9kaXJbMF06IGFkZGl0aW9uYWxfZGlyWzFdIGZvciBhZGRpdGlv
bmFsX2RpciBpbiBvcHRpb25zLmFkZGl0aW9uYWxfZGlyc30KICAgICAgICAgcG9ydC5zdGFydF9o
dHRwX3NlcnZlcihhZGRpdGlvbmFsRGlycykKICAgICAgICAgcG9ydC5zdGFydF93ZWJzb2NrZXRf
c2VydmVyKCkKIAogICAgIGlmIG9wdGlvbnMudXJsOgotICAgICAgICBwcmludCAiT3BlbmluZyAl
cyIgJSBvcHRpb25zLnVybAorICAgICAgICBwcmludCgiT3BlbmluZyAlcyIgJSBvcHRpb25zLnVy
bCkKICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihbJ29wZW4nLCBvcHRpb25zLnVybF0sIHN0ZG91
dD1zdWJwcm9jZXNzLlBJUEUpCiAKICAgICB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvY29uZmlnX3N0YW5kYWxvbmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvY29uZmlnX3N0YW5kYWxvbmUucHkKaW5kZXggMjc0YTA3YjMzNzFkMjQ4NTIzZGU0
ZmI5ZGVjYzA2MTdhNGRhZmU3Zi4uZGIyZDRiOGZhMmI4ODAwNjE2ZWEyZDNiY2I1NWQxN2YwNzg1
NDA5OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2NvbmZpZ19zdGFu
ZGFsb25lLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9jb25maWdfc3RhbmRh
bG9uZS5weQpAQCAtNjMsNyArNjMsNyBAQCBkZWYgbWFpbihhcmd2PU5vbmUpOgogICAgICAgICBm
cyA9IGZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCiAKICAgICBjID0gY29uZmlnLkNvbmZpZyhlLCBm
cykKLSAgICBwcmludCBjLmRlZmF1bHRfY29uZmlndXJhdGlvbigpCisgICAgcHJpbnQoYy5kZWZh
dWx0X2NvbmZpZ3VyYXRpb24oKSkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBt
YWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW5fdGVz
dGNhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luX3Rlc3RjYXNlLnB5
CmluZGV4IDYwYWU5NGI1NDU3ZjYwYWQ3MzY2NjA1ZTgzMjYzZDZmOWQ1YjgwYzYuLmEzZWUwMDYx
ODA1NmFiNjliMmZlMTY4MjZjMDUxNGZkNjI3NzUxYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kYXJ3aW5fdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Rhcndpbl90ZXN0Y2FzZS5weQpAQCAtMTAwLDcgKzEwMCw3IEBAIGNsYXNz
IERhcndpblRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Nw
aW5kdW1wKHNlbGYpOgogCiAgICAgICAgIGRlZiBsb2dnaW5nX3J1bl9jb21tYW5kKGFyZ3MpOgot
ICAgICAgICAgICAgcHJpbnQgYXJncworICAgICAgICAgICAgcHJpbnQoYXJncykKIAogICAgICAg
ICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5m
aWxlc1snL19faW1fdG1wL3RtcF8wXy90ZXN0LTQyLXNwaW5kdW1wLnR4dCddID0gJ1NwaW5kdW1w
IGZpbGUnCkBAIC0xMTUsNyArMTE1LDcgQEAgY2xhc3MgRGFyd2luVGVzdChwb3J0X3Rlc3RjYXNl
LlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIGRlZiBsb2dnaW5nX3J1bl9jb21tYW5kKGFyZ3MpOgog
ICAgICAgICAgICAgaWYgYXJnc1swXSA9PSAnL3Vzci9iaW4vc3Vkbyc6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDEKLSAgICAgICAgICAgIHByaW50IGFyZ3MKKyAgICAgICAgICAgIHByaW50KGFy
Z3MpCiAgICAgICAgICAgICByZXR1cm4gMAogCiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9y
dCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQppbmRleCAzZDExM2U5ZWNmNjYzM2JiYWIy
ZGI3ZDFmZDZmNjZiYTYwODQ5YzZmLi4wM2E1ODNiNjczMDdlMDljM2VkY2IwZTk4YzE0YWIxYWE3
MzM4ZTliIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkKQEAgLTE5MCw3ICsxOTAsNyBA
QCBjbGFzcyBJT1NQb3J0KERhcndpblBvcnQpOgogICAgICAgICBpZiBsZW4oZXhjZXB0aW9uX2xp
c3QpID09IDE6CiAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbGlmIGxlbihleGNlcHRpb25f
bGlzdCkgPiAxOgotICAgICAgICAgICAgcHJpbnQgJ1xuJworICAgICAgICAgICAgcHJpbnQoJ1xu
JykKICAgICAgICAgICAgIGZvciBleGNlcHRpb24gaW4gZXhjZXB0aW9uX2xpc3Q6CiAgICAgICAg
ICAgICAgICAgX2xvZy5lcnJvcigne30gcmFpc2VkOiB7fScuZm9ybWF0KGV4Y2VwdGlvblswXS5f
X2NsYXNzX18uX19uYW1lX18sIGV4Y2VwdGlvblswXSkpCiAgICAgICAgICAgICAgICAgX2xvZy5l
cnJvcihleGNlcHRpb25bMV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvaW9zX2RldmljZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3NfZGV2aWNlX3VuaXR0ZXN0LnB5CmluZGV4IGZmMmZkZjk4NTYxYWI2YzQ5ZGRlYjQyYmE4NTgz
MWU1YWMyZGVlNjkuLjQ4MjI1Y2Y3OTBlMzE1MGUxMGNjYzlmNDdlMWY1MTFmOGQ2ODNjOTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3NfZGV2aWNlX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3NfZGV2aWNlX3VuaXR0ZXN0
LnB5CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIElPU0RldmljZVRlc3QoaW9zX3Rlc3RjYXNlLklP
U1Rlc3QpOgogCiAgICAgZGVmIHRlc3Rfc3BpbmR1bXAoc2VsZik6CiAgICAgICAgIGRlZiBsb2dn
aW5nX3J1bl9jb21tYW5kKGFyZ3MpOgotICAgICAgICAgICAgcHJpbnQgYXJncworICAgICAgICAg
ICAgcHJpbnQoYXJncykKIAogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAg
ICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5maWxlc1snL19faW1fdG1wL3RtcF8wXy90ZXN0LTQyLXNw
aW5kdW1wLnR4dCddID0gJ1NwaW5kdW1wIGZpbGUnCkBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIElP
U0RldmljZVRlc3QoaW9zX3Rlc3RjYXNlLklPU1Rlc3QpOgogICAgICAgICBkZWYgbG9nZ2luZ19y
dW5fY29tbWFuZChhcmdzKToKICAgICAgICAgICAgIGlmIGFyZ3NbMF0gPT0gJy91c3Ivc2Jpbi9z
cGluZHVtcCc6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgICAgIHByaW50IGFy
Z3MKKyAgICAgICAgICAgIHByaW50KGFyZ3MpCiAgICAgICAgICAgICByZXR1cm4gMAogCiAgICAg
ICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvaW9zX3NpbXVsYXRvcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9yX3VuaXR0ZXN0LnB5CmluZGV4IDQ1YjQ3NDRhNzY5ZDAz
MWM5YTkxODljMTY0NmIzNDM1NDZjNGM2YWEuLjJkOWM1MjU0MmM0OTIxZTVkM2E0NDdlZjcyNjVj
ODJjYzlhMWM4MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nf
c2ltdWxhdG9yX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3Nfc2ltdWxhdG9yX3VuaXR0ZXN0LnB5CkBAIC04MSw3ICs4MSw3IEBAIGNsYXNzIElPU1NpbXVs
YXRvclRlc3QoaW9zX3Rlc3RjYXNlLklPU1Rlc3QpOgogCiAgICAgZGVmIHRlc3RfeGNydW4oc2Vs
Zik6CiAgICAgICAgIGRlZiB0aHJvd2luZ19ydW5fY29tbWFuZChhcmdzKToKLSAgICAgICAgICAg
IHByaW50IGFyZ3MKKyAgICAgICAgICAgIHByaW50KGFyZ3MpCiAgICAgICAgICAgICByYWlzZSBT
Y3JpcHRFcnJvcigiTU9DSyBzY3JpcHQgZXJyb3IiKQogCiAgICAgICAgIHBvcnQgPSBzZWxmLm1h
a2VfcG9ydCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2Rl
dGVjdG9yX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xlYWtkZXRl
Y3Rvcl91bml0dGVzdC5weQppbmRleCBjYTNlNjFjOTZjZmZkYjcwZGQ2MjA1NGQ4NjVmZTk3NTI4
YmRjNWM3Li5mYjA4MTgzMjk0MDZkZTExNjA2MTIyNGE0MGVhMzJmYWFiYzI3NzE4IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3Qu
cHkKQEAgLTEyNyw3ICsxMjcsNyBAQCBCaW5hcnkgSW1hZ2VzOgogICAgICAgICBkZXRlY3RvciA9
IHNlbGYuX21ha2VfZGV0ZWN0b3IoKQogCiAgICAgICAgIGRlZiBtb2NrX3J1bl9zY3JpcHQobmFt
ZSwgYXJncywgaW5jbHVkZV9jb25maWd1cmF0aW9uX2FyZ3VtZW50cz1GYWxzZSk6Ci0gICAgICAg
ICAgICBwcmludCAiTU9DSyBfcnVuX3NjcmlwdDogJXMgJXMiICUgKG5hbWUsIGFyZ3MpCisgICAg
ICAgICAgICBwcmludCgiTU9DSyBfcnVuX3NjcmlwdDogJXMgJXMiICUgKG5hbWUsIGFyZ3MpKQog
ICAgICAgICAgICAgcmV0dXJuICIiIjEgY2FsbHMgZm9yIDE2IGJ5dGVzOiAtW05TVVJMUmVxdWVz
dCBtdXRhYmxlQ29weVdpdGhab25lOl0gfCArW05TT2JqZWN0KE5TT2JqZWN0KSBhbGxvY1dpdGha
b25lOl0gfCBfaW50ZXJuYWxfY2xhc3NfY3JlYXRlSW5zdGFuY2VGcm9tWm9uZSB8IGNhbGxvYyB8
IG1hbGxvY196b25lX2NhbGxvYwogCiAxNDcgY2FsbHMgZm9yIDksNDA4IGJ5dGVzOiBfQ0ZSdW50
aW1lQ3JlYXRlSW5zdGFuY2UgfCBfWk4zV1RGMjRTdHJpbmdXcmFwcGVyQ0ZBbGxvY2F0b3JMOGFs
bG9jYXRlRWxtUHYgU3RyaW5nSW1wbENGLmNwcDo2NyB8IFdURjo6ZmFzdE1hbGxvYyh1bnNpZ25l
ZCBsb25nKSBGYXN0TWFsbG9jLmNwcDoyNjggfCBtYWxsb2MgfCBtYWxsb2Nfem9uZV9tYWxsb2Mg
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hY191bml0dGVzdC5weQppbmRleCBmZDJh
MjViN2RmZDBjY2VlZjc1YWMyZTc4MGJmYjg4ZTg5MjI3MDZjLi5hODgxOTBlZDlhMmYyNmM0NmJk
ZWUwMDM2NjNiNTYxOGRiMTFmMWFmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9t
YWNfdW5pdHRlc3QucHkKQEAgLTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBNYWNUZXN0KGRhcndpbl90
ZXN0Y2FzZS5EYXJ3aW5UZXN0KToKIAogICAgIGRlZiB0ZXN0X3hjcnVuKHNlbGYpOgogICAgICAg
ICBkZWYgdGhyb3dpbmdfcnVuX2NvbW1hbmQoYXJncyk6Ci0gICAgICAgICAgICBwcmludCBhcmdz
CisgICAgICAgICAgICBwcmludChhcmdzKQogICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3Io
Ik1PQ0sgc2NyaXB0IGVycm9yIikKIAogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb250cmli
dXRvcnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbnRyaWJ1
dG9ycy5weQppbmRleCBmYzU1ZjNkMjg0MzJiNDM0ZjAwY2Y2OTZkNTYxMTE4ZDk2NWM5ODM2Li5l
NzZkNTQ0NjRlNWM0OGYzMTBlZjBjZjA5YjI0ZTIyNDEzZjdhMDQyIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbnRyaWJ1dG9ycy5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbnRyaWJ1dG9ycy5weQpAQCAt
NDUsNyArNDUsNyBAQCBjbGFzcyBDb250cmlidXRvcnNDaGVja2VyKEpTT05DaGVja2VyKToKICAg
ICAgICAgZGlmZiA9IHNlbGYuX3VuaWRpZmZfb3V0cHV0KGFjdHVhbCwgY2Fub25pY2FsaXplZCkK
ICAgICAgICAgaWYgZGlmZjoKICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcigw
LCAnanNvbi9zeW50YXgnLCA1LCAnY29udHJpYnV0b3JzLmpzb24gZGlmZmVycyBmcm9tIHRoZSBj
YW5vbmljYWwgZm9ybWF0LiBVc2UgInZhbGlkYXRlLWNvbW1pdHRlci1saXN0cyAtLWNhbm9uaWNh
bGl6ZSIgdG8gcmVmb3JtYXQgaXQuJykKLSAgICAgICAgICAgIHByaW50IGRpZmYKKyAgICAgICAg
ICAgIHByaW50KGRpZmYpCiAKICAgICBkZWYgX3VuaWRpZmZfb3V0cHV0KHNlbGYsIGV4cGVjdGVk
LCBhY3R1YWwpOgogICAgICAgICBleHBlY3RlZCA9IGV4cGVjdGVkLnNwbGl0bGluZXMoMSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9hYnN0cmFjdGxv
Y2Fsc2VydmVyY29tbWFuZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9hYnN0cmFjdGxvY2Fsc2VydmVyY29tbWFuZC5weQppbmRleCAyNWEzNmNlMGIzZDAxMTcwMWVm
NzFlMGY1MjczYzkxMzcxMGY3ZmMyLi45NTNmODdiZmZjYjRiZjY2NmFlMGVjZmM1OGU3Njk5NmFh
NzMxNmY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
YWJzdHJhY3Rsb2NhbHNlcnZlcmNvbW1hbmQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Fic3RyYWN0bG9jYWxzZXJ2ZXJjb21tYW5kLnB5CkBAIC00Niw4ICs0
Niw4IEBAIGNsYXNzIEFic3RyYWN0TG9jYWxTZXJ2ZXJDb21tYW5kKENvbW1hbmQpOgogICAgICAg
ICBjb25maWcgPSBzZWxmLl9wcmVwYXJlX2NvbmZpZyhvcHRpb25zLCBhcmdzLCB0b29sKQogCiAg
ICAgICAgIHNlcnZlcl91cmwgPSAiaHR0cDovL2xvY2FsaG9zdDolZCVzIiAlIChvcHRpb25zLmh0
dHBkX3BvcnQsIHNlbGYubGF1bmNoX3BhdGgpCi0gICAgICAgIHByaW50ICJTdGFydGluZyBzZXJ2
ZXIgYXQgJXMiICUgc2VydmVyX3VybAotICAgICAgICBwcmludCAiVXNlIHRoZSAnRXhpdCcgbGlu
ayBpbiB0aGUgVUksICVzcXVpdHF1aXRxdWl0IG9yIEN0cmwtQyB0byBzdG9wIiAlIHNlcnZlcl91
cmwKKyAgICAgICAgcHJpbnQoIlN0YXJ0aW5nIHNlcnZlciBhdCAlcyIgJSBzZXJ2ZXJfdXJsKQor
ICAgICAgICBwcmludCgiVXNlIHRoZSAnRXhpdCcgbGluayBpbiB0aGUgVUksICVzcXVpdHF1aXRx
dWl0IG9yIEN0cmwtQyB0byBzdG9wIiAlIHNlcnZlcl91cmwpCiAKICAgICAgICAgaWYgb3B0aW9u
cy5zaG93X3Jlc3VsdHM6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIHNlZW1zIHJhY3kuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYWRkdXNlcnN0
b2dyb3Vwcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9hZGR1c2Vy
c3RvZ3JvdXBzLnB5CmluZGV4IDI1ZTcxOWY2MWY1NmFlZTNmZDgyZWE1ZmM1NDViOWQ0YmFiMTEx
ODEuLjM0ODI3MDlmODQ1MGIxYTNkNGExMzhhYjhiMjJiYmQ2ZjQwNzM1YmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9hZGR1c2Vyc3RvZ3JvdXBzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9hZGR1c2Vyc3RvZ3Jv
dXBzLnB5CkBAIC00NCwyMiArNDQsMjIgQEAgY2xhc3MgQWRkVXNlcnNUb0dyb3VwcyhDb21tYW5k
KToKICAgICAgICAgIyBGSVhNRTogV2UgY291bGQgbG9va3VwIHdoYXQgZ3JvdXBzIHRoZSBjdXJy
ZW50IHVzZXIgaXMgYWJsZSB0byBncmFudCBmcm9tIGJ1Z3ppbGxhLgogICAgICAgICBncm91cHMg
PSB0b29sLnVzZXIucHJvbXB0X3dpdGhfbGlzdChsaXN0X3RpdGxlLCBzZWxmLmtub3duX2dyb3Vw
cywgY2FuX2Nob29zZV9tdWx0aXBsZT1UcnVlKQogICAgICAgICBpZiBub3QgZ3JvdXBzOgotICAg
ICAgICAgICAgcHJpbnQgIk5vIGdyb3VwcyBzcGVjaWZpZWQuIgorICAgICAgICAgICAgcHJpbnQo
Ik5vIGdyb3VwcyBzcGVjaWZpZWQuIikKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIGxv
Z2luX3VzZXJpZF9wYWlycyA9IHRvb2wuYnVncy5xdWVyaWVzLmZldGNoX2xvZ2luX3VzZXJpZF9w
YWlyc19tYXRjaGluZ19zdWJzdHJpbmcoc2VhcmNoX3N0cmluZykKICAgICAgICAgaWYgbm90IGxv
Z2luX3VzZXJpZF9wYWlyczoKLSAgICAgICAgICAgIHByaW50ICJObyB1c2VycyBmb3VuZCBtYXRj
aGluZyAnJXMnIiAlIHNlYXJjaF9zdHJpbmcKKyAgICAgICAgICAgIHByaW50KCJObyB1c2VycyBm
b3VuZCBtYXRjaGluZyAnJXMnIiAlIHNlYXJjaF9zdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4K
IAotICAgICAgICBwcmludCAiRm91bmQgJXMgdXNlcnMgbWF0Y2hpbmcgJXM6IiAlIChsZW4obG9n
aW5fdXNlcmlkX3BhaXJzKSwgc2VhcmNoX3N0cmluZykKKyAgICAgICAgcHJpbnQoIkZvdW5kICVz
IHVzZXJzIG1hdGNoaW5nICVzOiIgJSAobGVuKGxvZ2luX3VzZXJpZF9wYWlycyksIHNlYXJjaF9z
dHJpbmcpKQogICAgICAgICBmb3IgKGxvZ2luLCB1c2VyX2lkKSBpbiBsb2dpbl91c2VyaWRfcGFp
cnM6Ci0gICAgICAgICAgICBwcmludCAiJXMgKCVzKSIgJSAobG9naW4sIHVzZXJfaWQpCisgICAg
ICAgICAgICBwcmludCgiJXMgKCVzKSIgJSAobG9naW4sIHVzZXJfaWQpKQogCiAgICAgICAgIGNv
bmZpcm1fbWVzc2FnZSA9ICJBcmUgeW91IHN1cmUgeW91IHdhbnQgYWRkICVzIHVzZXJzIHRvIGdy
b3VwcyAlcz8gIChUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lIHVzaW5nIHdlYmtpdC1wYXRj
aC4pIiAlIChsZW4obG9naW5fdXNlcmlkX3BhaXJzKSwgZ3JvdXBzKQogICAgICAgICBpZiBub3Qg
dG9vbC51c2VyLmNvbmZpcm0oY29uZmlybV9tZXNzYWdlKToKICAgICAgICAgICAgIHJldHVybgog
CiAgICAgICAgIGZvciAobG9naW4sIHVzZXJfaWQpIGluIGxvZ2luX3VzZXJpZF9wYWlyczoKLSAg
ICAgICAgICAgIHByaW50ICJBZGRpbmcgJXMgdG8gJXMiICUgKGxvZ2luLCBncm91cHMpCisgICAg
ICAgICAgICBwcmludCgiQWRkaW5nICVzIHRvICVzIiAlIChsb2dpbiwgZ3JvdXBzKSkKICAgICAg
ICAgICAgIHRvb2wuYnVncy5hZGRfdXNlcl90b19ncm91cHModXNlcl9pZCwgZ3JvdXBzKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2FuYWx5emVjaGFu
Z2Vsb2cucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYW5hbHl6ZWNo
YW5nZWxvZy5weQppbmRleCAxYTFlODEwZGUzZGY2Y2MwMzJhNGM4NWZlMTY2Njc5NjFkOGYwNTlk
Li5lN2U1NmIwNTdjMTFmMjI3YWYzMmE0ZjFjMmY4YTRkMDUzYmU1ZmU2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYW5hbHl6ZWNoYW5nZWxvZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYW5hbHl6ZWNoYW5nZWxv
Zy5weQpAQCAtNjAsMzAgKzYwLDMwIEBAIGNsYXNzIEFuYWx5emVDaGFuZ2VMb2coQ29tbWFuZCk6
CiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfZ2VuZXJhdGVfanNvbnMoZmlsZXN5c3RlbSwg
anNvbnMsIG91dHB1dF9kaXIpOgogICAgICAgICBmb3IgZmlsZW5hbWUgaW4ganNvbnM6Ci0gICAg
ICAgICAgICBwcmludCAnICAgIEdlbmVyYXRpbmcnLCBmaWxlbmFtZQorICAgICAgICAgICAgcHJp
bnQoJyAgICBHZW5lcmF0aW5nJywgZmlsZW5hbWUpCiAgICAgICAgICAgICBmaWxlc3lzdGVtLndy
aXRlX3RleHRfZmlsZShmaWxlc3lzdGVtLmpvaW4ob3V0cHV0X2RpciwgZmlsZW5hbWUpLCBqc29u
LmR1bXBzKGpzb25zW2ZpbGVuYW1lXSwgaW5kZW50PTIpKQogCiAgICAgZGVmIGV4ZWN1dGUoc2Vs
Ziwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxmLl90b29s
LmZpbGVzeXN0ZW0KICAgICAgICAgaWYgbGVuKGFyZ3MpIDwgMSBvciBub3QgZmlsZXN5c3RlbS5l
eGlzdHMoYXJnc1swXSk6Ci0gICAgICAgICAgICBwcmludCAiTmVlZCB0aGUgZGlyZWN0b3J5IG5h
bWUgdG8gbG9vayBmb3IgY2hhbmdlbG9nIGFzIHRoZSBmaXJzdCBhcmd1bWVudCIKKyAgICAgICAg
ICAgIHByaW50KCJOZWVkIHRoZSBkaXJlY3RvcnkgbmFtZSB0byBsb29rIGZvciBjaGFuZ2Vsb2cg
YXMgdGhlIGZpcnN0IGFyZ3VtZW50IikKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBjaGFu
Z2Vsb2dfZGlyID0gZmlsZXN5c3RlbS5hYnNwYXRoKGFyZ3NbMF0pCiAKICAgICAgICAgaWYgbGVu
KGFyZ3MpIDwgMiBvciBub3QgZmlsZXN5c3RlbS5leGlzdHMoYXJnc1sxXSk6Ci0gICAgICAgICAg
ICBwcmludCAiTmVlZCB0aGUgb3V0cHV0IGRpcmVjdG9yeSBuYW1lIGFzIHRoZSBzZWNvbmQgYXJn
dW1lbnQiCisgICAgICAgICAgICBwcmludCgiTmVlZCB0aGUgb3V0cHV0IGRpcmVjdG9yeSBuYW1l
IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQiKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIG91
dHB1dF9kaXIgPSBhcmdzWzFdCiAKICAgICAgICAgc3RhcnRUaW1lID0gdGltZS50aW1lKCkKIAot
ICAgICAgICBwcmludCAnRW51bWVyYXRpbmcgQ2hhbmdlTG9nIGZpbGVzLi4uJworICAgICAgICBw
cmludCgnRW51bWVyYXRpbmcgQ2hhbmdlTG9nIGZpbGVzLi4uJykKICAgICAgICAgY2hhbmdlbG9n
cyA9IEFuYWx5emVDaGFuZ2VMb2cuX2VudW1lcmF0ZV9jaGFuZ2Vsb2dzKGZpbGVzeXN0ZW0sIGNo
YW5nZWxvZ19kaXIsIG9wdGlvbnMuY2hhbmdlbG9nX2NvdW50KQogCiAgICAgICAgIGFuYWx5emVy
ID0gQ2hhbmdlTG9nQW5hbHl6ZXIodG9vbCwgY2hhbmdlbG9ncykKICAgICAgICAgYW5hbHl6ZXIu
YW5hbHl6ZSgpCiAKLSAgICAgICAgcHJpbnQgJ0dlbmVyYXRpbmcganNvbiBmaWxlcy4uLicKKyAg
ICAgICAgcHJpbnQoJ0dlbmVyYXRpbmcganNvbiBmaWxlcy4uLicpCiAgICAgICAgIGpzb25fZmls
ZXMgPSB7CiAgICAgICAgICAgICAnc3VtbWFyeS5qc29uJzogYW5hbHl6ZXIuc3VtbWFyeSgpLAog
ICAgICAgICAgICAgJ2NvbnRyaWJ1dG9ycy5qc29uJzogYW5hbHl6ZXIuY29udHJpYnV0b3JzX3N0
YXRpc3RpY3MoKSwKQEAgLTkxLDExICs5MSwxMSBAQCBjbGFzcyBBbmFseXplQ2hhbmdlTG9nKENv
bW1hbmQpOgogICAgICAgICB9CiAgICAgICAgIEFuYWx5emVDaGFuZ2VMb2cuX2dlbmVyYXRlX2pz
b25zKGZpbGVzeXN0ZW0sIGpzb25fZmlsZXMsIG91dHB1dF9kaXIpCiAgICAgICAgIGNvbW1hbmRz
X2RpciA9IGZpbGVzeXN0ZW0uZGlybmFtZShmaWxlc3lzdGVtLnBhdGhfdG9fbW9kdWxlKHNlbGYu
X19tb2R1bGVfXykpCi0gICAgICAgIHByaW50IGNvbW1hbmRzX2RpcgorICAgICAgICBwcmludChj
b21tYW5kc19kaXIpCiAgICAgICAgIGZpbGVzeXN0ZW0uY29weWZpbGUoZmlsZXN5c3RlbS5qb2lu
KGNvbW1hbmRzX2RpciwgJ2RhdGEvc3VtbWFyeS5odG1sJyksIGZpbGVzeXN0ZW0uam9pbihvdXRw
dXRfZGlyLCAnc3VtbWFyeS5odG1sJykpCiAKICAgICAgICAgdGljayA9IHRpbWUudGltZSgpIC0g
c3RhcnRUaW1lCi0gICAgICAgIHByaW50ICdGaW5pc2hlZCBpbiAlMDJkbTolMDJkcycgJSAoaW50
KHRpY2sgLyA2MCksIGludCh0aWNrICUgNjApKQorICAgICAgICBwcmludCgnRmluaXNoZWQgaW4g
JTAyZG06JTAyZHMnICUgKGludCh0aWNrIC8gNjApLCBpbnQodGljayAlIDYwKSkpCiAKIAogY2xh
c3MgQ2hhbmdlTG9nQW5hbHl6ZXIob2JqZWN0KToKQEAgLTEzMiw3ICsxMzIsNyBAQCBjbGFzcyBD
aGFuZ2VMb2dBbmFseXplcihvYmplY3QpOgogCiAgICAgZGVmIF9zZXRfZmlsZW5hbWUoc2VsZiwg
ZmlsZW5hbWUpOgogICAgICAgICBpZiBzZWxmLl9maWxlbmFtZToKLSAgICAgICAgICAgIHByaW50
CisgICAgICAgICAgICBwcmludCgpCiAgICAgICAgIHNlbGYuX2ZpbGVuYW1lID0gZmlsZW5hbWUK
IAogICAgIGRlZiBhbmFseXplKHNlbGYpOgpAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNzIENoYW5n
ZUxvZ0FuYWx5emVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfc3RhdHVz
KCdQYXJzaW5nIGVudHJpZXMuLi4nKQogICAgICAgICAgICAgICAgIG51bWJlcl9vZl9wYXJzZWRf
ZW50cmllcyA9IHNlbGYuX2FuYWx5emVfZW50cmllcyhDaGFuZ2VMb2cucGFyc2VfZW50cmllc19m
cm9tX2ZpbGUoY2hhbmdlbG9nKSwgcGF0aCkKICAgICAgICAgICAgIHNlbGYuX3ByaW50X3N0YXR1
cygnRG9uZSAoJWQgZW50cmllcyknICUgbnVtYmVyX29mX3BhcnNlZF9lbnRyaWVzKQotICAgICAg
ICBwcmludAorICAgICAgICBwcmludCgpCiAgICAgICAgIHNlbGYuX3N1bW1hcnlbJ2NvbnRyaWJ1
dG9ycyddID0gbGVuKHNlbGYuX2NvbnRyaWJ1dG9yc19zdGF0aXN0aWNzKQogICAgICAgICBzZWxm
Ll9zdW1tYXJ5Wydjb250cmlidXRvcnNfd2l0aF9yZXZpZXdzJ10gPSBzdW0oWzEgZm9yIGNvbnRy
aWJ1dG9yIGluIHNlbGYuX2NvbnRyaWJ1dG9yc19zdGF0aXN0aWNzLnZhbHVlcygpIGlmIGNvbnRy
aWJ1dG9yWydyZXZpZXdzJ11bJ3RvdGFsJ11dKQogICAgICAgICBzZWxmLl9zdW1tYXJ5Wydjb250
cmlidXRvcnNfd2l0aG91dF9yZXZpZXdzJ10gPSBzZWxmLl9zdW1tYXJ5Wydjb250cmlidXRvcnMn
XSAtIHNlbGYuX3N1bW1hcnlbJ2NvbnRyaWJ1dG9yc193aXRoX3Jldmlld3MnXQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2J1Z2ZvcnRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYnVnZm9ydGVzdC5weQppbmRleCBm
NmY4NDExNWVmMTE0MTQ3NDhiMTVkODRjMWJhN2NkYmRhOTM2OTQ1Li44MzA5NjhhMjJiMjg5Mjk0
Y2U1ZTVkYTgyMDhkYzg3NTFkZmE0Y2FkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvYnVnZm9ydGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvYnVnZm9ydGVzdC5weQpAQCAtNDMsNiArNDMsNiBAQCBjbGFzcyBC
dWdGb3JUZXN0KENvbW1hbmQpOgogICAgICAgICBidWcgPSByZXBvcnRlci5fbG9va3VwX2J1Z19m
b3JfZmxha3lfdGVzdChzZWFyY2hfc3RyaW5nKQogICAgICAgICBpZiBidWc6CiAgICAgICAgICAg
ICBidWcgPSByZXBvcnRlci5fZm9sbG93X2R1cGxpY2F0ZV9jaGFpbihidWcpCi0gICAgICAgICAg
ICBwcmludCAiJTVzICVzIiAlIChidWcuaWQoKSwgYnVnLnRpdGxlKCkpCisgICAgICAgICAgICBw
cmludCgiJTVzICVzIiAlIChidWcuaWQoKSwgYnVnLnRpdGxlKCkpKQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcHJpbnQgIk5vIGJ1Z3MgZm91bmQgbWF0Y2hpbmcgJyVzJyIgJSBzZWFyY2hf
c3RyaW5nCisgICAgICAgICAgICBwcmludCgiTm8gYnVncyBmb3VuZCBtYXRjaGluZyAnJXMnIiAl
IHNlYXJjaF9zdHJpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvYnVnc2VhcmNoLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2J1Z3NlYXJjaC5weQppbmRleCAxZjNhZjdhNzA4NTRhODRmZDVjZjM2YmNlMmRjOTBiN2Fm
MDNkNjk3Li4xNGQ0OWY1M2RjYjU0YmU2YzExMGRkY2U5YmM0YTE5Njc2Yzc1MGQ1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvYnVnc2VhcmNoLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9idWdzZWFyY2gucHkKQEAg
LTQ0LDYgKzQ0LDYgQEAgZG9jdW1lbnRhdGlvbiBvbiB0aGUgcXVlcnkgZm9ybWF0LiIiIgogICAg
ICAgICBzZWFyY2hfc3RyaW5nID0gYXJnc1swXQogICAgICAgICBidWdzID0gdG9vbC5idWdzLnF1
ZXJpZXMuZmV0Y2hfYnVnc19tYXRjaGluZ19xdWlja3NlYXJjaChzZWFyY2hfc3RyaW5nKQogICAg
ICAgICBmb3IgYnVnIGluIGJ1Z3M6Ci0gICAgICAgICAgICBwcmludCAiJTVzICVzIiAlIChidWcu
aWQoKSwgYnVnLnRpdGxlKCkpCisgICAgICAgICAgICBwcmludCgiJTVzICVzIiAlIChidWcuaWQo
KSwgYnVnLnRpdGxlKCkpKQogICAgICAgICBpZiBub3QgYnVnczoKLSAgICAgICAgICAgIHByaW50
ICJObyBidWdzIGZvdW5kIG1hdGNoaW5nICclcyciICUgc2VhcmNoX3N0cmluZworICAgICAgICAg
ICAgcHJpbnQoIk5vIGJ1Z3MgZm91bmQgbWF0Y2hpbmcgJyVzJyIgJSBzZWFyY2hfc3RyaW5nKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2ZpbmR1c2Vy
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9maW5kdXNlcnMucHkK
aW5kZXggODMwMmUzNzdmMGJiNzRlM2U1YjAxZGQ1NmVjMjlkZWFiMDI0Y2VmNy4uOTIwZDBiODZk
ZDM2NWRkOTY3NTJmMjZkNzc3MGU1MDZiN2UxM2NjYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2ZpbmR1c2Vycy5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZmluZHVzZXJzLnB5CkBAIC0zOSw0ICszOSw0IEBAIGNs
YXNzIEZpbmRVc2VycyhDb21tYW5kKToKICAgICAgICAgc2VhcmNoX3N0cmluZyA9IGFyZ3NbMF0K
ICAgICAgICAgdXNlcnMgPSBDb21taXR0ZXJMaXN0KCkuY29udHJpYnV0b3JzX2J5X3NlYXJjaF9z
dHJpbmcoc2VhcmNoX3N0cmluZykKICAgICAgICAgZm9yIHVzZXIgaW4gdXNlcnM6Ci0gICAgICAg
ICAgICBwcmludCB1c2VyCisgICAgICAgICAgICBwcmludCh1c2VyKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2dhcmRlbm9tYXRpYy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9nYXJkZW5vbWF0aWMucHkKaW5kZXggZTk3
NjI4NThkNWE2NjgwMjEzYjNlOGIwYWIwMTlhZWIyMjY4NmNmYS4uYjJhZjA5ODMxZTZkZDk1NzI1
Njk0NDhjZjk2OWY5YjU3YTA2ZmM3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2dhcmRlbm9tYXRpYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZ2FyZGVub21hdGljLnB5CkBAIC0zOSw4ICszOSw4IEBAIGNsYXNz
IEdhcmRlbk9NYXRpYyhBYnN0cmFjdFJlYmFzZWxpbmluZ0NvbW1hbmQpOgogICAgICAgICAgICAg
XSkpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKLSAgICAg
ICAgcHJpbnQgIlRoaXMgY29tbWFuZCBydW5zIGEgbG9jYWwgSFRUUCBzZXJ2ZXIgdGhhdCBjaGFu
Z2VzIHlvdXIgd29ya2luZyBjb3B5IgotICAgICAgICBwcmludCAiYmFzZWQgb24gdGhlIGFjdGlv
bnMgeW91IHRha2UgaW4gdGhlIHdlYi1iYXNlZCBVSS4iCisgICAgICAgIHByaW50KCJUaGlzIGNv
bW1hbmQgcnVucyBhIGxvY2FsIEhUVFAgc2VydmVyIHRoYXQgY2hhbmdlcyB5b3VyIHdvcmtpbmcg
Y29weSIpCisgICAgICAgIHByaW50KCJiYXNlZCBvbiB0aGUgYWN0aW9ucyB5b3UgdGFrZSBpbiB0
aGUgd2ViLWJhc2VkIFVJLiIpCiAKICAgICAgICAgYXJncyA9IHt9CiAgICAgICAgIGlmIG9wdGlv
bnMucGxhdGZvcm06CkBAIC01NSw1ICs1NSw1IEBAIGNsYXNzIEdhcmRlbk9NYXRpYyhBYnN0cmFj
dFJlYmFzZWxpbmluZ0NvbW1hbmQpOgogICAgICAgICBodHRwZCA9IEdhcmRlbmluZ0hUVFBTZXJ2
ZXIoaHR0cGRfcG9ydD04MTI3LCBjb25maWc9eyd0b29sJzogdG9vbCwgJ29wdGlvbnMnOiBvcHRp
b25zfSkKICAgICAgICAgc2VsZi5fdG9vbC51c2VyLm9wZW5fdXJsKGh0dHBkLnVybChhcmdzKSkK
IAotICAgICAgICBwcmludCAiTG9jYWwgSFRUUCBzZXJ2ZXIgc3RhcnRlZC4iCisgICAgICAgIHBy
aW50KCJMb2NhbCBIVFRQIHNlcnZlciBzdGFydGVkLiIpCiAgICAgICAgIGh0dHBkLnNlcnZlX2Zv
cmV2ZXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3JlYmFzZWxpbmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmVi
YXNlbGluZS5weQppbmRleCBmOGUxMDlkZjdmYmJhNDJhMjg3MjM1YzdkMTFjNDE4ZGE2M2U0OGMy
Li5lZWRiMDgzN2E2NTU3NGU3NWNhZDE5Mjg3YWM1NjMxMWExMjAwYzljIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQpAQCAtMTk0
LDcgKzE5NCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KEFic3RyYWN0UmViYXNlbGluaW5nQ29t
bWFuZCk6CiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAg
ICAgICAgc2VsZi5fcmViYXNlbGluZV90ZXN0X2FuZF91cGRhdGVfZXhwZWN0YXRpb25zKG9wdGlv
bnMpCi0gICAgICAgIHByaW50IGpzb24uZHVtcHMoc2VsZi5fc2NtX2NoYW5nZXMpCisgICAgICAg
IHByaW50KGpzb24uZHVtcHMoc2VsZi5fc2NtX2NoYW5nZXMpKQogCiAKIGNsYXNzIEFic3RyYWN0
UGFyYWxsZWxSZWJhc2VsaW5lQ29tbWFuZChBYnN0cmFjdFJlYmFzZWxpbmluZ0NvbW1hbmQpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxp
bmVzZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNl
bGluZXNlcnZlci5weQppbmRleCAzMmFjYjlmNDYwMWUzMGY3ZDI4MTVjZDkyNGI2MzM0Y2JmNGNl
NGY1Li4yY2Y4MDE1OTViMGI2N2U2Mzc4OTlkMDFmZDIwOTA4NjQyMjhmNDM1IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNlcnZlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNl
cnZlci5weQpAQCAtNzksNyArNzksNyBAQCBjbGFzcyBSZWJhc2VsaW5lU2VydmVyKEFic3RyYWN0
TG9jYWxTZXJ2ZXJDb21tYW5kKToKICAgICAgICAgaG9zdCA9IEhvc3QoKQogICAgICAgICBmaWxl
c3lzdGVtID0gaG9zdC5maWxlc3lzdGVtCiAKLSAgICAgICAgcHJpbnQgJ1BhcnNpbmcgZnVsbF9y
ZXN1bHRzLmpzb24uLi4nCisgICAgICAgIHByaW50KCdQYXJzaW5nIGZ1bGxfcmVzdWx0cy5qc29u
Li4uJykKICAgICAgICAgcmVzdWx0c19qc29uX3BhdGggPSBmaWxlc3lzdGVtLmpvaW4ocmVzdWx0
c19kaXJlY3RvcnksICdmdWxsX3Jlc3VsdHMuanNvbicpCiAgICAgICAgIHJlc3VsdHNfanNvbiA9
IGpzb25fcmVzdWx0c19nZW5lcmF0b3IubG9hZF9qc29uKGZpbGVzeXN0ZW0sIHJlc3VsdHNfanNv
bl9wYXRoKQogCkBAIC04OCw3ICs4OCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVTZXJ2ZXIoQWJzdHJh
Y3RMb2NhbFNlcnZlckNvbW1hbmQpOgogICAgICAgICBwbGF0Zm9ybXMgPSBmaWxlc3lzdGVtLmxp
c3RkaXIoZmlsZXN5c3RlbS5qb2luKGxheW91dF90ZXN0c19kaXJlY3RvcnksICdwbGF0Zm9ybScp
KQogICAgICAgICBzZWxmLl90ZXN0X2NvbmZpZyA9IFRlc3RDb25maWcocG9ydCwgbGF5b3V0X3Rl
c3RzX2RpcmVjdG9yeSwgcmVzdWx0c19kaXJlY3RvcnksIHBsYXRmb3Jtcywgc2NtLCBob3N0KQog
Ci0gICAgICAgIHByaW50ICdHYXRoZXJpbmcgY3VycmVudCBiYXNlbGluZXMuLi4nCisgICAgICAg
IHByaW50KCdHYXRoZXJpbmcgY3VycmVudCBiYXNlbGluZXMuLi4nKQogICAgICAgICBzZWxmLl9n
YXRoZXJfYmFzZWxpbmVzKHJlc3VsdHNfanNvbikKIAogICAgICAgICByZXR1cm4gewpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NldHVwZ2l0Y2xvbmUu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc2V0dXBnaXRjbG9uZS5w
eQppbmRleCAyNThkZjAwZDFmZDU0NWU0NzM1ZmQyNWVkZjcyMjZjMzRmNzczZGJiLi41MWY4ZTEz
YTRiZmFjYzQyNTMwZWMyMWEyZDUwNDNkMGRiMjJmNjJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc2V0dXBnaXRjbG9uZS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc2V0dXBnaXRjbG9uZS5weQpAQCAtMzcsMTEg
KzM3LDExIEBAIGNsYXNzIFNldHVwR2l0Q2xvbmUoQ29tbWFuZCk6CiAKICAgICBkZWYgZXhlY3V0
ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
dG9vbC5zY20oKSwgR2l0KToKLSAgICAgICAgICAgIHByaW50ICJUaGlzIGNvbW1hbmQgb25seSB3
b3JrcyBpbnNpZGUgYSBHaXQgY2hlY2tvdXQuIgorICAgICAgICAgICAgcHJpbnQoIlRoaXMgY29t
bWFuZCBvbmx5IHdvcmtzIGluc2lkZSBhIEdpdCBjaGVja291dC4iKQogICAgICAgICAgICAgcmV0
dXJuCiAKICAgICAgICAgaWYgdG9vbC5zY20oKS5oYXNfd29ya2luZ19kaXJlY3RvcnlfY2hhbmdl
cygpOgotICAgICAgICAgICAgcHJpbnQgIlRoZXJlIGFyZSBsb2NhbCBjaGFuZ2VzOyBhYm9ydGlu
ZyB0aGUgY29tbWFuZC4iCisgICAgICAgICAgICBwcmludCgiVGhlcmUgYXJlIGxvY2FsIGNoYW5n
ZXM7IGFib3J0aW5nIHRoZSBjb21tYW5kLiIpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAg
ICB1c2VybmFtZSwgZW1haWwgPSBzZWxmLl9nZXRfdXNlcm5hbWVfYW5kX2VtYWlsKHRvb2wpCkBA
IC03Miw5ICs3Miw5IEBAIGNsYXNzIFNldHVwR2l0Q2xvbmUoQ29tbWFuZCk6CiAKICAgICAgICAg
aWYgdG9vbC51c2VyLmNvbmZpcm0oIkRvIHlvdSB3YW50IHRvIGFwcGVuZCB0aGUgZ2l0IGJyYW5j
aCBuYW1lIHRvIGV2ZXJ5IGJ1aWxkPyAoZS5nLiBXZWJLaXRCdWlsZC9teWJyYW5jaC87IHkvbiki
KToKICAgICAgICAgICAgIHJ1bl9naXQoWyJjb25maWciLCAiY29yZS53ZWJLaXRCcmFuY2hCdWls
ZCIsICJ0cnVlIl0pCi0gICAgICAgICAgICBwcmludCAiWW91IGNhbiBvdmVycmlkZSB0aGlzIG9w
dGlvbiB2aWEgZ2l0IGNvbmZpZyBicmFuY2guJGJyYW5jaE5hbWUud2ViS2l0QnJhbmNoQnVpbGQg
KHRydWV8ZmFsc2UpIgorICAgICAgICAgICAgcHJpbnQoIllvdSBjYW4gb3ZlcnJpZGUgdGhpcyBv
cHRpb24gdmlhIGdpdCBjb25maWcgYnJhbmNoLiRicmFuY2hOYW1lLndlYktpdEJyYW5jaEJ1aWxk
ICh0cnVlfGZhbHNlKSIpCiAKLSAgICAgICAgcHJpbnQgIkRvbmUiCisgICAgICAgIHByaW50KCJE
b25lIikKIAogICAgIGRlZiBfZ2V0X3VzZXJuYW1lX2FuZF9lbWFpbChzZWxmLCB0b29sKToKICAg
ICAgICAgdHJ5OgpAQCAtOTUsNSArOTUsNSBAQCBjbGFzcyBTZXR1cEdpdENsb25lKENvbW1hbmQp
OgogICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IgYXMgZXJyb3I6CiAgICAgICAgICAgICAjIFZD
U1V0aWxzIHByaW50cyB1c2VmdWwgZXJyb3IgbWVzc2FnZXMgb24gZmFpbHVyZSwgd2Ugc2hvdWxk
bid0IGhpZGUgdGhlc2UKICAgICAgICAgICAgIGlmIGVycm9yLm91dHB1dDoKLSAgICAgICAgICAg
ICAgICBwcmludCBlcnJvci5vdXRwdXQKKyAgICAgICAgICAgICAgICBwcmludChlcnJvci5vdXRw
dXQpCiAgICAgICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3N1Z2dlc3Rub21pbmF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9zdWdnZXN0bm9taW5hdGlvbnMucHkKaW5kZXggNmFmYmJiYjRl
ZTExOTU3MDg5ZDExOTg1ODY5ODEwYzFmNTYwN2VmZC4uMGI4MWFjNWRkNzhiZDQ2MGI5MDRmY2Fj
OTVkZjFhMWQ5NjU2MWY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3N1Z2dlc3Rub21pbmF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvc3VnZ2VzdG5vbWluYXRpb25zLnB5CkBAIC0yNTUsMTEgKzI1NSwx
MSBAQCBjbGFzcyBTdWdnZXN0Tm9taW5hdGlvbnMoQWJzdHJhY3RDb21taXRMb2dDb21tYW5kKToK
ICAgICAgICAgZm9yIG5vbWluYXRpb24gaW4gc29ydGVkKG5vbWluYXRpb25zLCBub21pbmF0aW9u
X2NtcCk6CiAgICAgICAgICAgICAjIFRoaXMgaXMgYSBsaXR0bGUgYml0IG9mIGEgaGFjaywgYnV0
IGl0cyBjb252aWVuZW50IHRvIGp1c3QgcGFzcyB0aGUgbm9taW5hdGlvbiBkaWN0aW9uYXJ5IHRv
IHRoZSBmb3JtYXRpbmcgb3BlcmF0b3IuCiAgICAgICAgICAgICBub21pbmF0aW9uWydyb2xlc19z
dHJpbmcnXSA9IGdyYW1tYXIuam9pbl93aXRoX3NlcGFyYXRvcnMobm9taW5hdGlvblsncm9sZXMn
XSkudXBwZXIoKQotICAgICAgICAgICAgcHJpbnQgIiUocm9sZXNfc3RyaW5nKXM6ICUoYXV0aG9y
X25hbWUpcyAoJShhdXRob3JfZW1haWwpcykgaGFzICUocGF0Y2hfY291bnQpcyByZXZpZXdlZCBw
YXRjaGVzIiAlIG5vbWluYXRpb24KKyAgICAgICAgICAgIHByaW50KCIlKHJvbGVzX3N0cmluZylz
OiAlKGF1dGhvcl9uYW1lKXMgKCUoYXV0aG9yX2VtYWlsKXMpIGhhcyAlKHBhdGNoX2NvdW50KXMg
cmV2aWV3ZWQgcGF0Y2hlcyIgJSBub21pbmF0aW9uKQogICAgICAgICAgICAgY291bnRlciA9IGNv
dW50ZXJzX2J5X2VtYWlsW25vbWluYXRpb25bJ2F1dGhvcl9lbWFpbCddXQogCiAgICAgICAgICAg
ICBpZiBzZWxmLnNob3dfY29tbWl0czoKLSAgICAgICAgICAgICAgICBwcmludCBjb3VudGVyWydj
b21taXRzJ10KKyAgICAgICAgICAgICAgICBwcmludChjb3VudGVyWydjb21taXRzJ10pCiAKICAg
ICBkZWYgX3ByaW50X2NvdW50cyhzZWxmLCBjb3VudGVyc19ieV9lbWFpbCk6CiAgICAgICAgIGRl
ZiBjb3VudGVyX2NtcChhX3R1cGxlLCBiX3R1cGxlKToKQEAgLTI4OCw5ICsyODgsOSBAQCBjbGFz
cyBTdWdnZXN0Tm9taW5hdGlvbnMoQWJzdHJhY3RDb21taXRMb2dDb21tYW5kKToKICAgICAgICAg
ICAgIGZvciBhbGlhcyBpbiBjb3VudGVyWydlbWFpbHMnXToKICAgICAgICAgICAgICAgICBhbGlh
c19saXN0LmFwcGVuZChhbGlhcykKICAgICAgICAgICAgIGlmIGFsaWFzX2xpc3Q6Ci0gICAgICAg
ICAgICAgICAgcHJpbnQgIkNPTlRSSUJVVE9SOiAlcyAoJXMpIGhhcyAlcyAlcyIgJSAoYXV0aG9y
X25hbWUsIGF1dGhvcl9lbWFpbCwgZ3JhbW1hci5wbHVyYWxpemUocGF0Y2hfY291bnQsICJyZXZp
ZXdlZCBwYXRjaCIpLCAiKGFsaWFzZXM6ICIgKyAiLCAiLmpvaW4oYWxpYXNfbGlzdCkgKyAiKSIp
CisgICAgICAgICAgICAgICAgcHJpbnQoIkNPTlRSSUJVVE9SOiAlcyAoJXMpIGhhcyAlcyAlcyIg
JSAoYXV0aG9yX25hbWUsIGF1dGhvcl9lbWFpbCwgZ3JhbW1hci5wbHVyYWxpemUocGF0Y2hfY291
bnQsICJyZXZpZXdlZCBwYXRjaCIpLCAiKGFsaWFzZXM6ICIgKyAiLCAiLmpvaW4oYWxpYXNfbGlz
dCkgKyAiKSIpKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCAiQ09O
VFJJQlVUT1I6ICVzICglcykgaGFzICVzIiAlIChhdXRob3JfbmFtZSwgYXV0aG9yX2VtYWlsLCBn
cmFtbWFyLnBsdXJhbGl6ZShwYXRjaF9jb3VudCwgInJldmlld2VkIHBhdGNoIikpCisgICAgICAg
ICAgICAgICAgcHJpbnQoIkNPTlRSSUJVVE9SOiAlcyAoJXMpIGhhcyAlcyIgJSAoYXV0aG9yX25h
bWUsIGF1dGhvcl9lbWFpbCwgZ3JhbW1hci5wbHVyYWxpemUocGF0Y2hfY291bnQsICJyZXZpZXdl
ZCBwYXRjaCIpKSkKICAgICAgICAgcmV0dXJuCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRp
b25zLCBhcmdzLCB0b29sKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy91cGxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvdXBsb2FkLnB5CmluZGV4IDRlYjc3NzI0NGQyYzAyMDIwNGExNmFmNDcxNTQ4MTQzMDEwOTE3
OTcuLjkzM2RiMmQwODUyMGQ4NjBjNTI4M2Y3YWY0OTZmYTFiOTQyMTUzMDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weQpAQCAtNjEsNyArNjEs
NyBAQCBjbGFzcyBDb21taXRNZXNzYWdlRm9yQ3VycmVudERpZmYoQ29tbWFuZCk6CiAgICAgZGVm
IGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgICMgVGhpcyBjb21t
YW5kIGlzIGEgdXNlZnVsIHRlc3QgdG8gbWFrZSBzdXJlIGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlz
X2NvbW1pdAogICAgICAgICAjIGFsd2F5cyByZXR1cm5zIHRoZSByaWdodCB2YWx1ZSByZWdhcmRs
ZXNzIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgotICAgICAgICBwcmludCAiJXMi
ICUgdG9vbC5jaGVja291dCgpLmNvbW1pdF9tZXNzYWdlX2Zvcl90aGlzX2NvbW1pdChvcHRpb25z
LmdpdF9jb21taXQpLm1lc3NhZ2UoKQorICAgICAgICBwcmludCgiJXMiICUgdG9vbC5jaGVja291
dCgpLmNvbW1pdF9tZXNzYWdlX2Zvcl90aGlzX2NvbW1pdChvcHRpb25zLmdpdF9jb21taXQpLm1l
c3NhZ2UoKSkKIAogCiBjbGFzcyBDbGVhblBlbmRpbmdDb21taXQoQ29tbWFuZCk6CkBAIC01MTAs
NyArNTEwLDcgQEAgY2xhc3MgQ3JlYXRlQnVnKENvbW1hbmQpOgogICAgIGRlZiBwcm9tcHRfZm9y
X2J1Z190aXRsZV9hbmRfY29tbWVudChzZWxmKToKICAgICAgICAgYnVnX3RpdGxlID0gVXNlci5w
cm9tcHQoIkJ1ZyB0aXRsZTogIikKICAgICAgICAgIyBGSVhNRTogVXNlciBzaG91bGQgcHJvdmlk
ZSBhIGZ1bmN0aW9uIGZvciBkb2luZyB0aGlzIG11bHRpLWxpbmUgcHJvbXB0LgotICAgICAgICBw
cmludCAiQnVnIGNvbW1lbnQgKGhpdCBeRCBvbiBibGFuayBsaW5lIHRvIGVuZCk6IgorICAgICAg
ICBwcmludCgiQnVnIGNvbW1lbnQgKGhpdCBeRCBvbiBibGFuayBsaW5lIHRvIGVuZCk6IikKICAg
ICAgICAgbGluZXMgPSBzeXMuc3RkaW4ucmVhZGxpbmVzKCkKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgc3lzLnN0ZGluLnNlZWsoMCwgb3MuU0VFS19FTkQpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvbXVsdGljb21tYW5kdG9vbC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9tdWx0aWNvbW1hbmR0b29sLnB5CmluZGV4IDJhZGUzMGQzYzQ4ZjhlNjdl
MDc4ZGRjNDU5NWMyYjhlMjFjNDk4NmQuLjQ3OTAxMjcxZjdiMjVkZTA4NjE1MmQ5Y2RjMmQzNGVi
YjhhMTFlNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tdWx0aWNv
bW1hbmR0b29sLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tdWx0aWNvbW1h
bmR0b29sLnB5CkBAIC0xOTcsNyArMTk3LDcgQEAgY2xhc3MgSGVscENvbW1hbmQoQ29tbWFuZCk6
CiAgICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi5fdG9vbC5jb21t
YW5kX2J5X25hbWUoYXJnc1swXSkKICAgICAgICAgICAgIGlmIGNvbW1hbmQ6Ci0gICAgICAgICAg
ICAgICAgcHJpbnQgY29tbWFuZC5zdGFuZGFsb25lX2hlbHAoKQorICAgICAgICAgICAgICAgIHBy
aW50KGNvbW1hbmQuc3RhbmRhbG9uZV9oZWxwKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDAK
IAogICAgICAgICBzZWxmLnNob3dfYWxsX2NvbW1hbmRzID0gb3B0aW9ucy5zaG93X2FsbF9jb21t
YW5kcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2Fy
ZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5CmluZGV4IDI1YzNkODY4OWM3ZDQzMDhm
NTQ1MDM1MGViZWM1ZTMwMGYxMTljZTkuLmM2OWZlMzFmMjk0YjE4NTExZGNiZDMzZTcxNWI4YzZi
NjMwYWFjMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHkKQEAgLTczLDE0ICs3Mywx
NCBAQCBjbGFzcyBUZXN0R2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5kbGVyKEdhcmRlbmluZ0hUVFBS
ZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgIHJldHVybiBzZWxmLmJvZHkgaWYgc2VsZi5ib2R5IGVs
c2UgJycKIAogICAgIGRlZiBfc2VydmVfdGV4dChzZWxmLCB0ZXh0KToKLSAgICAgICAgcHJpbnQg
Ij09IEJlZ2luIFJlc3BvbnNlID09IgotICAgICAgICBwcmludCB0ZXh0Ci0gICAgICAgIHByaW50
ICI9PSBFbmQgUmVzcG9uc2UgPT0iCisgICAgICAgIHByaW50KCI9PSBCZWdpbiBSZXNwb25zZSA9
PSIpCisgICAgICAgIHByaW50KHRleHQpCisgICAgICAgIHByaW50KCI9PSBFbmQgUmVzcG9uc2Ug
PT0iKQogCiAgICAgZGVmIF9zZXJ2ZV9qc29uKHNlbGYsIGpzb25fb2JqZWN0KToKLSAgICAgICAg
cHJpbnQgIj09IEJlZ2luIEpTT04gUmVzcG9uc2UgPT0iCi0gICAgICAgIHByaW50IGpzb24uZHVt
cHMoanNvbl9vYmplY3QpCi0gICAgICAgIHByaW50ICI9PSBFbmQgSlNPTiBSZXNwb25zZSA9PSIK
KyAgICAgICAgcHJpbnQoIj09IEJlZ2luIEpTT04gUmVzcG9uc2UgPT0iKQorICAgICAgICBwcmlu
dChqc29uLmR1bXBzKGpzb25fb2JqZWN0KSkKKyAgICAgICAgcHJpbnQoIj09IEVuZCBKU09OIFJl
c3BvbnNlID09IikKIAogCiBjbGFzcyBHYXJkZW5pbmdTZXJ2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRz
dm5taW1ldHlwZWZvcnBuZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9h
ZGRzdm5taW1ldHlwZWZvcnBuZy5weQppbmRleCAwZWYwZmVkNDYyOWM1ZTNmZjdlOWY5OWYxZTFj
ZmJhMzVmZDM3N2E0Li42YTA2NTU4NTVjNGY4MjBkZGRmNTExNDM2YzExOWMzNjhjYjAyYTNkIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5
cGVmb3JwbmcucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2
bm1pbWV0eXBlZm9ycG5nLnB5CkBAIC02OSw3ICs2OSw3IEBAIGNsYXNzIEFkZFN2bk1pbWV0eXBl
Rm9yUG5nKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBlbGlmIGRldGVjdGlvbiA9PSAic3Zu
IjoKICAgICAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcG5nX2ZpbGVzOgogICAgICAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9kZXRlY3Rvci5leGlzdHMoZmlsZW5hbWUpIGFuZCBzZWxmLl9k
ZXRlY3Rvci5wcm9wZ2V0KCdzdm46bWltZS10eXBlJywgZmlsZW5hbWUpICE9ICdpbWFnZS9wbmcn
OgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkFkZGluZyBpbWFnZS9wbmcgbWltZS10
eXBlIHRvICVzIiAlIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiQWRk
aW5nIGltYWdlL3BuZyBtaW1lLXR5cGUgdG8gJXMiICUgZmlsZW5hbWUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9kZXRlY3Rvci5wcm9wc2V0KCdzdm46bWltZS10eXBlJywgJ2ltYWdl
L3BuZycsIGZpbGVuYW1lKQogCiAgICAgZGVmIF9jaGVja19wbmdzKHNlbGYsIGNoYW5nZWRfZmls
ZXMpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N1Z2dl
c3RyZXZpZXdlcnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2Vz
dHJldmlld2Vycy5weQppbmRleCA0MGEyNDgyOWI0ZjU0ZmI3ZDY3OTI2YjFmMjIwZmM4OTM3Y2M3
YWY2Li5kZGNiNzMzNzhjYjQzY2JmMzVhMGNjMmE1OWQ0YmNmMzVkNjAwOGM4IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vycy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vycy5w
eQpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBTdWdnZXN0UmV2aWV3ZXJzKEFic3RyYWN0U3RlcCk6
CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICByZXZpZXdlcnMgPSBzZWxmLl90b29sLmNo
ZWNrb3V0KCkuc3VnZ2VzdGVkX3Jldmlld2VycyhzZWxmLl9vcHRpb25zLmdpdF9jb21taXQsIHNl
bGYuX2NoYW5nZWRfZmlsZXMoc3RhdGUpKVs6NV0KLSAgICAgICAgcHJpbnQgIlRoZSBmb2xsb3dp
bmcgcmV2aWV3ZXJzIGhhdmUgcmVjZW50bHkgbW9kaWZpZWQgZmlsZXMgaW4geW91ciBwYXRjaDoi
Ci0gICAgICAgIHByaW50ICIsICIuam9pbihbcmV2aWV3ZXIuZnVsbF9uYW1lIGZvciByZXZpZXdl
ciBpbiByZXZpZXdlcnNdKQorICAgICAgICBwcmludCgiVGhlIGZvbGxvd2luZyByZXZpZXdlcnMg
aGF2ZSByZWNlbnRseSBtb2RpZmllZCBmaWxlcyBpbiB5b3VyIHBhdGNoOiIpCisgICAgICAgIHBy
aW50KCIsICIuam9pbihbcmV2aWV3ZXIuZnVsbF9uYW1lIGZvciByZXZpZXdlciBpbiByZXZpZXdl
cnNdKSkKIAogICAgICAgICBpZiBub3Qgc3RhdGUuZ2V0KCdidWdfaWQnKToKICAgICAgICAgICAg
IHJldHVybgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBv
cnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKaW5k
ZXggYzFkMTYyMGZiZjcyOTRkYjViN2Y0ZjFjMDNjZGI3MWJkOTVjZmJiZC4uNDIxZTM2MzRmZmM4
NDBmZWE2YWNhYmJjMTIyMWM4M2M4NTViZDhiNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3czYy90ZXN0X2ltcG9ydGVyLnB5CkBAIC01MjksNyArNTI5LDcgQEAgY2xhc3MgVGVzdEltcG9y
dGVyKG9iamVjdCk6CiAgICAgICAgIHNob3VsZF91cGRhdGUgPSBzZWxmLm9wdGlvbnMuY2xlYW5f
ZGVzdGluYXRpb25fZGlyZWN0b3J5CiAgICAgICAgIGZvciBmdWxsX3BhdGggaW4gc2VsZi5fc2xv
d190ZXN0czoKICAgICAgICAgICAgIHczY190ZXN0X3BhdGggPSBzZWxmLmZpbGVzeXN0ZW0ucmVs
cGF0aChmdWxsX3BhdGgsIHNlbGYuc291cmNlX2RpcmVjdG9yeSkKLSAgICAgICAgICAgIHByaW50
IHczY190ZXN0X3BhdGgKKyAgICAgICAgICAgIHByaW50KHczY190ZXN0X3BhdGgpCiAgICAgICAg
ICAgICAjIE5vIG5lZWQgdG8gbWFyayB0ZXN0cyBhcyBzbG93IGlmIHRoZXkgYXJlIGluIHNraXBw
ZWQgZGlyZWN0b3JpZXMKICAgICAgICAgICAgIGlmIHNlbGYuX2FscmVhZHlfaWRlbnRpZmllZF9h
c19yZXNvdXJjZV9maWxlKHczY190ZXN0X3BhdGgpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkKaW5kZXggMDQ1
YzFlN2NjMWM5ZDc1ZDBkZDA2MDY0NTA4NWNiYzFlNGVjZTE5ZS4uZjIwOWQ5MmU0ZjdhNzM2MzNh
NWE3ZGJhZDI2ZjBmMGRiNDM5NTIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1
bm5lcl9zZWxlbml1bS5weQpAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0UnVu
bmVyU2VsZW5pdW0ob2JqZWN0KToKICAgICAgICAgdGltZW91dCA9IHNlbGYuX3BvcnQuZ2V0X29w
dGlvbigndGltZW91dCcpCiAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgogICAgICAgICAgICAg
dGVzdF9uYW1lID0gb3MucGF0aC5yZWxwYXRoKHRlc3QsIHNlbGYuX3Rlc3RzX2RpcigpKQotICAg
ICAgICAgICAgcHJpbnQgdGVzdF9uYW1lCisgICAgICAgICAgICBwcmludCh0ZXN0X25hbWUpCiAg
ICAgICAgICAgICBoYXJuZXNzX3Jlc3VsdCwgdGVzdF9yZXN1bHRzID0gZXhlY3V0b3IucnVuKHRl
c3QsIHRpbWVvdXQpCiAgICAgICAgICAgICByZXN1bHQgPSBXZWJEcml2ZXJUZXN0UmVzdWx0KHRl
c3RfbmFtZSwgKmhhcm5lc3NfcmVzdWx0KQogICAgICAgICAgICAgaWYgaGFybmVzc19yZXN1bHRb
MF0gPT0gJ09LJzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvbW9kZWwvanNv
bnJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9UZXN0UmVzdWx0U2VydmVyL21vZGVsL2pzb25y
ZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4IGZmMGVkMTk1Yjg4MjgwMjBkYTc0NDFkMzc1ZTU3M2Nh
NjU5ODkxYjcuLjE4YWU1ZjQwZjM5NTE0NzA3ZWM5Y2JhMDIzMTE1NThjYTEyMmQ2MTEgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvbW9kZWwvanNvbnJlc3VsdHNfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9tb2RlbC9qc29ucmVzdWx0c191bml0dGVz
dC5weQpAQCAtMzAsNyArMzAsNyBAQCB0cnk6CiAgICAgaW1wb3J0IGpzb25yZXN1bHRzCiAgICAg
ZnJvbSBqc29ucmVzdWx0cyBpbXBvcnQgSnNvblJlc3VsdHMKIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICBwcmludCAiRVJST1I6IEFkZCB0aGUgVGVzdFJlc3VsdFNlcnZlciwgZ29vZ2xlX2FwcGVu
Z2luZSBhbmQgeWFtbC9saWIgZGlyZWN0b3JpZXMgdG8geW91ciBQWVRIT05QQVRIIgorICAgIHBy
aW50KCJFUlJPUjogQWRkIHRoZSBUZXN0UmVzdWx0U2VydmVyLCBnb29nbGVfYXBwZW5naW5lIGFu
ZCB5YW1sL2xpYiBkaXJlY3RvcmllcyB0byB5b3VyIFBZVEhPTlBBVEgiKQogICAgIHJhaXNlCiAK
IGZyb20gZGphbmdvLnV0aWxzIGltcG9ydCBzaW1wbGVqc29uCmRpZmYgLS1naXQgYS9Ub29scy9n
dGsveWNtX2V4dHJhX2NvbmYucHkgYi9Ub29scy9ndGsveWNtX2V4dHJhX2NvbmYucHkKaW5kZXgg
ZGYwZmUzZDM1ZDM2MjMzNmRkNjZmNThkZjA4MzE4ZGJhOWJjYzY3ZC4uMmI4NWNjNjE0MmU1Y2Y1
MmI2Y2RiYmIzNDkzZjk2OGEyMzUyYjVmNSAxMDA2NDQKLS0tIGEvVG9vbHMvZ3RrL3ljbV9leHRy
YV9jb25mLnB5CisrKyBiL1Rvb2xzL2d0ay95Y21fZXh0cmFfY29uZi5weQpAQCAtMTEwLDE3ICsx
MTAsMTcgQEAgZGVmIEZsYWdzRm9yRmlsZShmaWxlbmFtZSwgKiprd2FyZ3MpOgogCiAgICAgYnVp
bGRfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoZ2V0X2J1aWxkX3BhdGgoKSkKICAgICBpZiBub3Qg
YnVpbGRfcGF0aDoKLSAgICAgICAgcHJpbnQgIkNvdWxkIG5vdCBmaW5kIFdlYktpdCBidWlsZCBw
YXRoLiIKKyAgICAgICAgcHJpbnQoIkNvdWxkIG5vdCBmaW5kIFdlYktpdCBidWlsZCBwYXRoLiIp
CiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRhdGFiYXNlID0geWNtX2NvcmUuQ29tcGls
YXRpb25EYXRhYmFzZShidWlsZF9wYXRoKQogICAgIGlmIG5vdCBkYXRhYmFzZToKLSAgICAgICAg
cHJpbnQgIkNvdWxkIG5vdCBmaW5kIGNvbXBpbGVfY29tbWFuZHMuanNvbiBpbiAlcywgWW91IG1p
Z2h0IGZvcmdldCB0byBhZGQgQ01BS0VfRVhQT1JUX0NPTVBJTEVfQ09NTUFORFM9T04gdG8gY21h
a2VhcmdzIiAlIGJ1aWxkX3BhdGgKKyAgICAgICAgcHJpbnQoIkNvdWxkIG5vdCBmaW5kIGNvbXBp
bGVfY29tbWFuZHMuanNvbiBpbiAlcywgWW91IG1pZ2h0IGZvcmdldCB0byBhZGQgQ01BS0VfRVhQ
T1JUX0NPTVBJTEVfQ09NTUFORFM9T04gdG8gY21ha2VhcmdzIiAlIGJ1aWxkX3BhdGgpCiAgICAg
ICAgIHJldHVybiByZXN1bHQKIAogICAgIGNvbXBpbGF0aW9uX2luZm8gPSBkYXRhYmFzZS5HZXRD
b21waWxhdGlvbkluZm9Gb3JGaWxlKGZpbGVuYW1lKQogICAgIGlmIG5vdCBjb21waWxhdGlvbl9p
bmZvOgotICAgICAgICBwcmludCAiTm8gY29tcGlsYXRpb24gaW5mby4iCisgICAgICAgIHByaW50
KCJObyBjb21waWxhdGlvbiBpbmZvLiIpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIHJl
c3VsdFsnZmxhZ3MnXSA9IHRyYW5zZm9ybV9yZWxhdGl2ZV9wYXRoc190b19hYnNvbHV0ZV9wYXRo
cyhsaXN0KGNvbXBpbGF0aW9uX2luZm8uY29tcGlsZXJfZmxhZ3NfKSwgY29tcGlsYXRpb25faW5m
by5jb21waWxlcl93b3JraW5nX2Rpcl8pCkBAIC0xMzAsNCArMTMwLDQgQEAgZGVmIEZsYWdzRm9y
RmlsZShmaWxlbmFtZSwgKiprd2FyZ3MpOgogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAg
ICBpbXBvcnQgc3lzCiAgICAgaWYgbGVuKHN5cy5hcmd2KSA+PSAyOgotICAgICAgICBwcmludCBG
bGFnc0ZvckZpbGUoc3lzLmFyZ3ZbMV0pCisgICAgICAgIHByaW50KEZsYWdzRm9yRmlsZShzeXMu
YXJndlsxXSkpCmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5IGIvVG9vbHMv
bGxkYi9sbGRiX3dlYmtpdC5weQppbmRleCBkZDY0YmE3ODlhMTA4NjU0Yjg2OTNjZjg2NjdkMjgy
N2EzM2I1NDFmLi5lOTdlZjlhNjU1MWEwMmMwNTAyNmNmNWI5OGMwNzkxOTVmNmJhMjc2IDEwMDY0
NAotLS0gYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5CisrKyBiL1Rvb2xzL2xsZGIvbGxkYl93
ZWJraXQucHkKQEAgLTEzMCw3ICsxMzAsNyBAQCBkZWYgYnRqcyhkZWJ1Z2dlciwgY29tbWFuZCwg
cmVzdWx0LCBpbnRlcm5hbF9kaWN0KToKICAgICAgICAgYW5ub3RhdGVKU0ZyYW1lcyA9IEZhbHNl
CiAKICAgICBpZiBub3QgYW5ub3RhdGVKU0ZyYW1lczoKLSAgICAgICAgcHJpbnQgIldhcm5pbmc6
IENhbid0IGZpbmQgSlNDOjpFeGVjU3RhdGU6OmRlc2NyaWJlRnJhbWUoKSBpbiBleGVjdXRhYmxl
IHRvIGFubm90YXRlIEphdmFTY3JpcHQgZnJhbWVzIgorICAgICAgICBwcmludCgiV2FybmluZzog
Q2FuJ3QgZmluZCBKU0M6OkV4ZWNTdGF0ZTo6ZGVzY3JpYmVGcmFtZSgpIGluIGV4ZWN1dGFibGUg
dG8gYW5ub3RhdGUgSmF2YVNjcmlwdCBmcmFtZXMiKQogCiAgICAgYmFja3RyYWNlRGVwdGggPSB0
aHJlYWQuR2V0TnVtRnJhbWVzKCkKIApAQCAtMTQxLDcgKzE0MSw3IEBAIGRlZiBidGpzKGRlYnVn
Z2VyLCBjb21tYW5kLCByZXN1bHQsIGludGVybmFsX2RpY3QpOgogICAgICAgICAgICAgcmV0dXJu
CiAKICAgICB0aHJlYWRGb3JtYXQgPSAnKiB0aHJlYWQgI3tudW19OiB0aWQgPSB7dGlkOiN4fSwg
e3BjQWRkcjonICsgYWRkcmVzc0Zvcm1hdCArICd9LCBxdWV1ZSA9IFwne3F1ZXVlTmFtZX0sIHN0
b3AgcmVhc29uID0ge3N0b3BSZWFzb259JwotICAgIHByaW50IHRocmVhZEZvcm1hdC5mb3JtYXQo
bnVtPXRocmVhZC5HZXRJbmRleElEKCksIHRpZD10aHJlYWQuR2V0VGhyZWFkSUQoKSwgcGNBZGRy
PXRocmVhZC5HZXRGcmFtZUF0SW5kZXgoMCkuR2V0UEMoKSwgcXVldWVOYW1lPXRocmVhZC5HZXRR
dWV1ZU5hbWUoKSwgc3RvcFJlYXNvbj10aHJlYWQuR2V0U3RvcERlc2NyaXB0aW9uKDMwKSkKKyAg
ICBwcmludCh0aHJlYWRGb3JtYXQuZm9ybWF0KG51bT10aHJlYWQuR2V0SW5kZXhJRCgpLCB0aWQ9
dGhyZWFkLkdldFRocmVhZElEKCksIHBjQWRkcj10aHJlYWQuR2V0RnJhbWVBdEluZGV4KDApLkdl
dFBDKCksIHF1ZXVlTmFtZT10aHJlYWQuR2V0UXVldWVOYW1lKCksIHN0b3BSZWFzb249dGhyZWFk
LkdldFN0b3BEZXNjcmlwdGlvbigzMCkpKQogCiAgICAgZm9yIGZyYW1lIGluIHRocmVhZDoKICAg
ICAgICAgaWYgYmFja3RyYWNlRGVwdGggPCAxOgpAQCAtMTYxLDkgKzE2MSw5IEBAIGRlZiBidGpz
KGRlYnVnZ2VyLCBjb21tYW5kLCByZXN1bHQsIGludGVybmFsX2RpY3QpOgogICAgICAgICAgICAg
aWYgSlNGcmFtZURlc2NyaXB0aW9uOgogICAgICAgICAgICAgICAgIEpTRnJhbWVEZXNjcmlwdGlv
biA9IHN0cmluZy5zdHJpcChKU0ZyYW1lRGVzY3JpcHRpb24sICciJykKICAgICAgICAgICAgICAg
ICBmcmFtZUZvcm1hdCA9ICcgICAgZnJhbWUgI3tudW19OiB7YWRkcjonICsgYWRkcmVzc0Zvcm1h
dCArICd9IHtkZXNjfScKLSAgICAgICAgICAgICAgICBwcmludCBmcmFtZUZvcm1hdC5mb3JtYXQo
bnVtPWZyYW1lLkdldEZyYW1lSUQoKSwgYWRkcj1mcmFtZS5HZXRQQygpLCBkZXNjPUpTRnJhbWVE
ZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICBwcmludChmcmFtZUZvcm1hdC5mb3JtYXQobnVt
PWZyYW1lLkdldEZyYW1lSUQoKSwgYWRkcj1mcmFtZS5HZXRQQygpLCBkZXNjPUpTRnJhbWVEZXNj
cmlwdGlvbikpCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgcHJpbnQgJyAgICAl
cycgJSBmcmFtZQorICAgICAgICBwcmludCgnICAgICVzJyAlIGZyYW1lKQogCiAjIEZJWE1FOiBQ
cm92aWRlIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgdHlwZXM6CiAjIGRlZiBXVEZWZWN0b3Jf
U3VtbWFyeVByb3ZpZGVyKHZhbG9iaiwgZGljdCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2MxOTQwMWNlYWM5ZTZmZDg0
YWJiN2RiNzE1MGY5MGVlZDBhODQ5Ny4uYWY2M2QwMzdhMzlhYzllZmQwMDRlOGIwOTc0YTRhMzJh
MmFhNjA2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTEyLTA4ICBLb25zdGFudGluIFRv
a2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KKworICAgICAgICBbcHl0aG9uXSBSZXBsYWNlIHBy
aW50IG9wZXJhdG9yIHdpdGggcHJpbnQoKSBmdW5jdGlvbiBmb3IgcHl0aG9uMyBjb21wYXRpYmls
aXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
bWw1bGliL2dlbmVyYXRlLXRlc3Qtd3JhcHBlcnMucHk6CisgICAgICAgIChfcmVtb3ZlX3N0YWxl
X3Rlc3RzKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1o
YW5kc2hha2UtY3Jhc2hfd3NoLnB5OgorICAgICAgICAod2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbW9yZS1hY2NlcHQtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weToK
KyAgICAgICAgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5w
eToKKyAgICAgICAgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLXVwZ3Jh
ZGUtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtl
KToKKwogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjbGll
bnRzLWNsYWltCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9nZW5lcmF0ZS10ZXN0
LXdyYXBwZXJzLnB5IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvZ2VuZXJhdGUtdGVzdC13cmFwcGVy
cy5weQppbmRleCAzYmRlMjM3YmUwMTY2NzNiYzNlYjkxZWVmNDUzMzY1ODU0YThiMTgwLi43YWUw
YTE4NmM4OTY3N2UxZTdkYzhmYjYxZWE1N2UyZThjMTk5YzQ4IDEwMDc1NQotLS0gYS9MYXlvdXRU
ZXN0cy9odG1sNWxpYi9nZW5lcmF0ZS10ZXN0LXdyYXBwZXJzLnB5CisrKyBiL0xheW91dFRlc3Rz
L2h0bWw1bGliL2dlbmVyYXRlLXRlc3Qtd3JhcHBlcnMucHkKQEAgLTc1LDE0ICs3NSwxNCBAQCB2
YXIgdGVzdF9maWxlcyA9IFsgJyUodGVzdF9wYXRoKXMnIF0KICAgICAgICAgICAgIG5hbWUgPSBz
ZWxmLl9sYXN0X3BhdGhfY29tcG9uZW50X3JlbW92aW5nX3N1ZmZpeChwYXRoLCBzZWxmLkhBUk5F
U1NfU1VGRklYKQogICAgICAgICAgICAgbmFtZSA9IHNlbGYuX3Rlc3RfbmFtZV9mcm9tX2hhcm5l
c3NfbmFtZShuYW1lKQogICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gdGVzdF9uYW1lczoKLSAg
ICAgICAgICAgICAgICBwcmludCAiUmVtb3ZpbmcgJXMsICVzIG5vIGxvbmdlciBleGlzdHMuIiAl
IChwYXRoLCBzZWxmLl9pbnB1dF9wYXRoKG5hbWUpKQorICAgICAgICAgICAgICAgIHByaW50KCJS
ZW1vdmluZyAlcywgJXMgbm8gbG9uZ2VyIGV4aXN0cy4iICUgKHBhdGgsIHNlbGYuX2lucHV0X3Bh
dGgobmFtZSkpKQogICAgICAgICAgICAgICAgIG9zLnJlbW92ZShwYXRoKQogCiAgICAgICAgIGZv
ciBwYXRoIGluIHNlbGYuX2ZpbGVzX2luX2RpcmVjdG9yeV93aXRoX3N1ZmZpeChzZWxmLk9VVFBV
VF9ESVJFQ1RPUlksIHNlbGYuRVhQRUNUQUlPTl9TVUZGSVgpOgogICAgICAgICAgICAgbmFtZSA9
IHNlbGYuX2xhc3RfcGF0aF9jb21wb25lbnRfcmVtb3Zpbmdfc3VmZml4KHBhdGgsIHNlbGYuRVhQ
RUNUQUlPTl9TVUZGSVgpCiAgICAgICAgICAgICBuYW1lID0gc2VsZi5fdGVzdF9uYW1lX2Zyb21f
aGFybmVzc19uYW1lKG5hbWUpCiAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiB0ZXN0X25hbWVz
OgotICAgICAgICAgICAgICAgIHByaW50ICJSZW1vdmluZyAlcywgJXMgbm8gbG9uZ2VyIGV4aXN0
cy4iICUgKHBhdGgsIHNlbGYuX2lucHV0X3BhdGgobmFtZSkpCisgICAgICAgICAgICAgICAgcHJp
bnQoIlJlbW92aW5nICVzLCAlcyBubyBsb25nZXIgZXhpc3RzLiIgJSAocGF0aCwgc2VsZi5faW5w
dXRfcGF0aChuYW1lKSkpCiAgICAgICAgICAgICAgICAgb3MucmVtb3ZlKHBhdGgpCiAKICAgICBk
ZWYgX2lucHV0X3BhdGgoc2VsZiwgdGVzdF9uYW1lKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1oYW5k
c2hha2UtY3Jhc2hfd3NoLnB5CmluZGV4IGYzYTJmZWI2ZDVkODk5ZjJjNzQ3NWM0ZTg1YTQ1YTFi
OWIxOGRjYmQuLjZmZjEyMjgyMmY4NjA1ZjlkNzNjODk1OWJjMGYwMjU5ZDQ0NGI4OTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhh
bmRzaGFrZS1jcmFzaF93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5weQpAQCAtMTAsNyArMTAsNyBA
QCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CiAgICAgbXNnICs9
ICJceGE1OlxyXG4iCiAgICAgbXNnICs9ICJcclxuIgogICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0ZShtc2cpCi0gICAgcHJpbnQgbXNnCisgICAgcHJpbnQobXNnKQogICAgIHJhaXNlIGhhbmRz
aGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCJBYm9ydCB0aGUgY29ubmVjdGlvbiIpICMgUHJl
dmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2Uu
CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9oYW5kc2hha2UtZmFpbC1ieS1tb3JlLWFjY2VwdC1oZWFkZXJfd3NoLnB5IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1t
b3JlLWFjY2VwdC1oZWFkZXJfd3NoLnB5CmluZGV4IDY4NDQ1OWI2MzZiMjUzNDRiNzhlYmI1MTEz
ZTc0OWJjMDJkMWM0Y2IuLjI2Y2QwODA3NDkzNjE5YTI4ZWI2ZDhiMWQ3NGJlMmNjNGJkMjhiMjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbW9yZS1hY2NlcHQtaGVhZGVyX3dzaC5weQorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW1v
cmUtYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTEwLDcgKzEwLDcgQEAgZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgogICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1B
Y2NlcHQ6IFhYWFh0aGlzaXN3cm9uZ1hYWFhcclxuJyAKICAgICBtc2cgKz0gJ1xyXG4nCiAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKLSAgICBwcmludCBtc2cKKyAgICBwcmludCht
c2cpCiAgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oJ0Fib3J0IHRo
ZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93
biBoYW5kc2hha2UgbWVzc2FnZS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24t
aGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1oZWFkZXJfd3NoLnB5CmluZGV4IDFi
MDIyZjUyNThlMDJlNzA1YTMwMDYyZmRhNjYzMmZjNmQ0MjI3NTQuLmU1NDQyOWE5OWQyZDY0MmFk
YWFmOGZmMzA4YTM0NmVkY2U3ODY5MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1o
ZWFkZXJfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1oZWFkZXJfd3NoLnB5CkBAIC05
LDcgKzksNyBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CiAg
ICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0
KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0g
J1xyXG4nCiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKLSAgICBwcmludCBtc2cK
KyAgICBwcmludChtc2cpCiAgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRp
b24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNl
bmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LWNyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbm8tY3Jfd3NoLnB5CmluZGV4IDZjYjM0YzI1ZGZlODI5ZWJkNGQ2
ZDU1NzQ1NThjZWZkNzc0NzJlOWQuLjczZjk5MGIxMjMzNzI4Yzk4YmIzOWU2ZWQ5ZjJhMjk3MGRi
NThlMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY3Jfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY3Jfd3No
LnB5CkBAIC05LDcgKzksNyBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6CiAgICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1
dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAg
ICBtc2cgKz0gJ1xyXG4nCiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKLSAgICBw
cmludCBtc2cKKyAgICBwcmludChtc2cpCiAgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tl
dCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tdXBncmFkZS1oZWFkZXJf
d3NoLnB5CmluZGV4IDk3Y2UxMjg4NmU1MmM5OWI5NGQxMjhhZWIwNmMyYjBiOTc5YTFjMTUuLjAx
YWJmNzY2Yjg3NWRkMmI5MGY4YmZkM2E4M2EzZDRjYTljZjQyNjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnkt
bm8tdXBncmFkZS1oZWFkZXJfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tdXBncmFkZS1oZWFkZXJfd3No
LnB5CkBAIC05LDcgKzksNyBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6CiAgICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1
dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAg
ICBtc2cgKz0gJ1xyXG4nCiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKLSAgICBw
cmludCBtc2cKKyAgICBwcmludChtc2cpCiAgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tl
dCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KIAogCmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGNkOTlmZjQzZDU0MjUwYThjOTgyMmQ4ZmRiYjRmYjhjYjNmZjkzOTMuLmE3MmMxZDA5
YWMyNjNhMzY1OTc0NDg1MWYwMmZkNzczMTA1NDhjZjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgorCisgICAgICAgIFtweXRob25dIFJlcGxhY2UgcHJpbnQgb3BlcmF0b3Igd2l0aCBwcmlu
dCgpIGZ1bmN0aW9uIGZvciBweXRob24zIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDU5MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSlNCZW5jaC9oYXJuZXNzLnB5OgorCiAy
MDE3LTEyLTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgR0Mg
Y29uc3RyYWludCBzb2x2aW5nIHNob3VsZCBiZSBwYXJhbGxlbApkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9KU0JlbmNoL2hhcm5lc3MucHkgYi9QZXJmb3JtYW5jZVRlc3RzL0pTQmVuY2gv
aGFybmVzcy5weQppbmRleCBhMWI1OTRhNjFlMjQxZWZmMDJlY2YxMTMzOGFhZTlmYTgyOTAwZTBm
Li5mZDMwY2M4YzVkMjZiZmIwZjIxMWE1NzkzODEzNzQxZmEyNjY1MTBhIDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0pTQmVuY2gvaGFybmVzcy5weQorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0pTQmVuY2gvaGFybmVzcy5weQpAQCAtNDUsNyArNDUsNyBAQCBrZWVwcnVucyA9IDIwCiBrZWVw
ZnJvbSA9IHJ1bmNvdW50IC0ga2VlcHJ1bnMKIAogaWYgbGVuKHN5cy5hcmd2KSAhPSAyOgotICAg
IHByaW50ICJVc2U6IHB5dGhvbiBoYXJuZXNzLnB5IDxKUyBleGVjdXRhYmxlPiIKKyAgICBwcmlu
dCgiVXNlOiBweXRob24gaGFybmVzcy5weSA8SlMgZXhlY3V0YWJsZT4iKQogICAgIGV4aXQoMSkK
IGpzID0gc3lzLmFyZ3ZbMV0KIApAQCAtMTY5LDM1ICsxNjksMzUgQEAgdG90YWxzWyJzbSJdICo9
IDEwMAogdG90YWxzWyJzZW1tIl0gKj0gMTAwCiB0b3RhbHNbImNpbSJdICo9IDEwMAogCi1wcmlu
dCAiRmluYWwgcmVzdWx0czoiCi1wcmludCB1IiAgJShtZWFuKWZtcyBcdTAwYjEgJShjaW0pZiUl
IChsb3dlciBpcyBiZXR0ZXIpIiAlIHRvdGFscwotcHJpbnQgIiAgU3RhbmRhcmQgZGV2aWF0aW9u
ID0gJShzbSlmJSUgb2YgbWVhbiIgJSB0b3RhbHMKLXByaW50ICIgIFN0YW5kYXJkIGVycm9yID0g
JShzZW1tKWYlJSBvZiBtZWFuIiAlIHRvdGFscwotcHJpbnQgIiAgJShydW5zKWQgcnVucyIgJSB7
InJ1bnMiOiBydW5jb3VudH0KLXByaW50ICIiCitwcmludCgiRmluYWwgcmVzdWx0czoiKQorcHJp
bnQodSIgICUobWVhbilmbXMgXHUwMGIxICUoY2ltKWYlJSAobG93ZXIgaXMgYmV0dGVyKSIgJSB0
b3RhbHMpCitwcmludCgiICBTdGFuZGFyZCBkZXZpYXRpb24gPSAlKHNtKWYlJSBvZiBtZWFuIiAl
IHRvdGFscykKK3ByaW50KCIgIFN0YW5kYXJkIGVycm9yID0gJShzZW1tKWYlJSBvZiBtZWFuIiAl
IHRvdGFscykKK3ByaW50KCIgICUocnVucylkIHJ1bnMiICUgeyJydW5zIjogcnVuY291bnR9KQor
cHJpbnQoIiIpCiAKLXByaW50ICJSZXN1bHQgYnJlYWtkb3duOiIKK3ByaW50KCJSZXN1bHQgYnJl
YWtkb3duOiIpCiBmb3IgYmVuY2htYXJrIGluIGJlbmNobWFya3M6Ci0gICAgcHJpbnQgIiAgJShi
ZW5jaG1hcmspczoiICUgeyJiZW5jaG1hcmsiOiBiZW5jaG1hcmt9CisgICAgcHJpbnQoIiAgJShi
ZW5jaG1hcmspczoiICUgeyJiZW5jaG1hcmsiOiBiZW5jaG1hcmt9KQogICAgIAogICAgIGJtb2Rl
cyA9IG1vZGVzWyIqIl0KICAgICBpZiBiZW5jaG1hcmsgaW4gbW9kZXM6CiAgICAgICAgIGJtb2Rl
cyA9IG1vZGVzW2JlbmNobWFya10KIAogICAgIGZvciBtb2RlIGluIGJtb2RlczoKLSAgICAgICAg
cHJpbnQgdSIgICUobW9kZSlzOiAlKG1lYW4pZm1zIFx1MDBiMSAlKGNpbSlmJSUgKHN0ZGRldj0l
KHNtKWYlJSwgc3RkZXJyPSUoc2VtbSlmJSUpIiAlIHNyZXN1bHRzW2JlbmNobWFya11bbW9kZV0K
LXByaW50ICIiCisgICAgICAgIHByaW50KHUiICAlKG1vZGUpczogJShtZWFuKWZtcyBcdTAwYjEg
JShjaW0pZiUlIChzdGRkZXY9JShzbSlmJSUsIHN0ZGVycj0lKHNlbW0pZiUlKSIgJSBzcmVzdWx0
c1tiZW5jaG1hcmtdW21vZGVdKQorcHJpbnQoIiIpCiAKLXByaW50ICJSYXcgcmVzdWx0czoiCitw
cmludCgiUmF3IHJlc3VsdHM6IikKIGZvciBiZW5jaG1hcmsgaW4gYmVuY2htYXJrczoKLSAgICBw
cmludCAiICAlKGJlbmNobWFyaylzOiIgJSB7ImJlbmNobWFyayI6IGJlbmNobWFya30KKyAgICBw
cmludCgiICAlKGJlbmNobWFyaylzOiIgJSB7ImJlbmNobWFyayI6IGJlbmNobWFya30pCiAKICAg
ICBibW9kZXMgPSBtb2Rlc1siKiJdCiAgICAgaWYgYmVuY2htYXJrIGluIG1vZGVzOgogICAgICAg
ICBibW9kZXMgPSBtb2Rlc1tiZW5jaG1hcmtdCiAKICAgICBmb3IgbW9kZSBpbiBibW9kZXM6Ci0g
ICAgICAgIHByaW50ICIgICAgJShtb2RlKXM6ICUocmVzdWx0cylzIiAlIHsKKyAgICAgICAgcHJp
bnQoIiAgICAlKG1vZGUpczogJShyZXN1bHRzKXMiICUgewogICAgICAgICAgICAgIm1vZGUiOiBt
b2RlLAogICAgICAgICAgICAgInJlc3VsdHMiOiByZXN1bHRzW2JlbmNobWFya11bbW9kZV0KLSAg
ICAgICAgfQorICAgICAgICB9KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>