<?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>31655</bug_id>
          
          <creation_ts>2009-11-18 17:57:22 -0800</creation_ts>
          <short_desc>Normalize &apos; and &quot; in bugzilla-tool</short_desc>
          <delta_ts>2009-11-18 22:19:16 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164853</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-18 17:57:22 -0800</bug_when>
    <thetext>Style ftw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164854</commentid>
    <comment_count>1</comment_count>
      <attachid>43475</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-18 17:58:23 -0800</bug_when>
    <thetext>Created attachment 43475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164861</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 18:06:20 -0800</bug_when>
    <thetext>Personally I prefer &apos; over &quot;.  Although in either case we should be consistent.  We should see if the python style guide has guidance on this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164863</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 18:17:05 -0800</bug_when>
    <thetext>Adam recommends that we just pick one and go with it.  I&apos;m not sure I care enough either way.  He suggests that whichever we pick that we pretend the other style doesn&apos;t exist at all. Meaning:

&quot;foo \&quot;bar\&quot; baz&quot; always instead of some sort of exception to allow &apos;foo &quot;bar&quot; baz&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164865</commentid>
    <comment_count>4</comment_count>
      <attachid>43475</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 18:18:23 -0800</bug_when>
    <thetext>Comment on attachment 43475
Patch

LGTM.  Sad to see my little &apos; go, but I&apos;m glad these are consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164913</commentid>
    <comment_count>5</comment_count>
      <attachid>43475</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-18 22:19:10 -0800</bug_when>
    <thetext>Comment on attachment 43475
Patch

Clearing flags on attachment: 43475

Committed r51176: &lt;http://trac.webkit.org/changeset/51176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164914</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-18 22:19:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43475</attachid>
            <date>2009-11-18 17:58:23 -0800</date>
            <delta_ts>2009-11-18 22:19:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31655-20091118175822.patch</filename>
            <type>text/plain</type>
            <size>30157</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiMDM2YmE4Li42ZTZmNWI5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEt
MTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3JtYWxpemUgJyBhbmQgIiBpbiBidWd6aWxs
YS10b29sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTY1NQorCisgICAgICAgIFdlIGRlY2lkZWQgIiBpcyBiZXR0ZXIgdGhhbiAnIGFuZCB3ZSBzaG91
bGQgYmUgY29uc2lzdGVudC4KKworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKwog
MjAwOS0xMS0xOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
YnVnemlsbGEtdG9vbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbAppbmRleCBj
OTBjOTMxLi5mNzg3NTNhIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxh
LXRvb2wKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCkBAIC01MywxMCAr
NTMsMTAgQEAgZnJvbSBtb2R1bGVzLndvcmtxdWV1ZSBpbXBvcnQgV29ya1F1ZXVlLCBXb3JrUXVl
dWVEZWxlZ2F0ZQogCiBkZWYgcGx1cmFsKG5vdW4pOgogICAgICMgVGhpcyBpcyBhIGR1bWIgcGx1
cmFsKCkgaW1wbGVtZW50YXRpb24gd2hpY2ggd2FzIGp1c3QgZW5vdWdoIGZvciBvdXIgdXNlcy4K
LSAgICBpZiByZS5zZWFyY2goJ2gkJywgbm91bik6Ci0gICAgICAgIHJldHVybiBub3VuICsgJ2Vz
JworICAgIGlmIHJlLnNlYXJjaCgiaCQiLCBub3VuKToKKyAgICAgICAgcmV0dXJuIG5vdW4gKyAi
ZXMiCiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJuIG5vdW4gKyAncycKKyAgICAgICAgcmV0dXJu
IG5vdW4gKyAicyIKIAogZGVmIHBsdXJhbGl6ZShub3VuLCBjb3VudCk6CiAgICAgaWYgY291bnQg
IT0gMToKQEAgLTc5LDcgKzc5LDcgQEAgZGVmIGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlzX2NvbW1p
dChzY20pOgogICAgICAgICBjaGFuZ2Vsb2dfbWVzc2FnZXMuYXBwZW5kKGNoYW5nZWxvZ19lbnRy
eSkKIAogICAgICMgRklYTUU6IFdlIHNob3VsZCBzb3J0IGFuZCBsYWJlbCB0aGUgQ2hhbmdlTG9n
IG1lc3NhZ2VzIGxpa2UgY29tbWl0LWxvZy1lZGl0b3IgZG9lcy4KLSAgICByZXR1cm4gQ29tbWl0
TWVzc2FnZSgnJy5qb2luKGNoYW5nZWxvZ19tZXNzYWdlcykuc3BsaXRsaW5lcygpKQorICAgIHJl
dHVybiBDb21taXRNZXNzYWdlKCIiLmpvaW4oY2hhbmdlbG9nX21lc3NhZ2VzKS5zcGxpdGxpbmVz
KCkpCiAKIAogY2xhc3MgQ29tbWFuZDoKQEAgLTEwNyw3ICsxMDcsNyBAQCBjbGFzcyBDb21tYW5k
OgogCiBjbGFzcyBCdWdzSW5Db21taXRRdWV1ZShDb21tYW5kKToKICAgICBkZWYgX19pbml0X18o
c2VsZik6Ci0gICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ0J1Z3MgaW4gdGhlIGNvbW1p
dCBxdWV1ZScpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgIkJ1Z3MgaW4gdGhlIGNv
bW1pdCBxdWV1ZSIpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29s
KToKICAgICAgICAgYnVnX2lkcyA9IHRvb2wuYnVncy5mZXRjaF9idWdfaWRzX2Zyb21fY29tbWl0
X3F1ZXVlKCkKQEAgLTExNyw0MSArMTE3LDQxIEBAIGNsYXNzIEJ1Z3NJbkNvbW1pdFF1ZXVlKENv
bW1hbmQpOgogCiBjbGFzcyBQYXRjaGVzSW5Db21taXRRdWV1ZShDb21tYW5kKToKICAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ1BhdGNoZXMg
aW4gdGhlIGNvbW1pdCBxdWV1ZScpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgIlBh
dGNoZXMgaW4gdGhlIGNvbW1pdCBxdWV1ZSIpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRp
b25zLCBhcmdzLCB0b29sKToKICAgICAgICAgcGF0Y2hlcyA9IHRvb2wuYnVncy5mZXRjaF9wYXRj
aGVzX2Zyb21fY29tbWl0X3F1ZXVlKCkKICAgICAgICAgbG9nKCJQYXRjaGVzIGluIGNvbW1pdCBx
dWV1ZToiKQogICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICAgICAgICAgIHByaW50
ICIlcyIgJSBwYXRjaFsndXJsJ10KKyAgICAgICAgICAgIHByaW50ICIlcyIgJSBwYXRjaFsidXJs
Il0KIAogCiBjbGFzcyBSZXZpZXdlZFBhdGNoZXNPbkJ1ZyhDb21tYW5kKToKICAgICBkZWYgX19p
bml0X18oc2VsZik6Ci0gICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ3IrXCdkIHBhdGNo
ZXMgb24gYSBidWcnLCAnQlVHSUQnKQorICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICJy
K1wnZCBwYXRjaGVzIG9uIGEgYnVnIiwgIkJVR0lEIikKIAogICAgIGRlZiBleGVjdXRlKHNlbGYs
IG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBidWdfaWQgPSBhcmdzWzBdCiAgICAgICAg
IHBhdGNoZXNfdG9fbGFuZCA9IHRvb2wuYnVncy5mZXRjaF9yZXZpZXdlZF9wYXRjaGVzX2Zyb21f
YnVnKGJ1Z19pZCkKICAgICAgICAgZm9yIHBhdGNoIGluIHBhdGNoZXNfdG9fbGFuZDoKLSAgICAg
ICAgICAgIHByaW50ICIlcyIgJSBwYXRjaFsndXJsJ10KKyAgICAgICAgICAgIHByaW50ICIlcyIg
JSBwYXRjaFsidXJsIl0KIAogCiBjbGFzcyBDaGVja1N0eWxlKENvbW1hbmQpOgogICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKICAgICAgICAgb3B0aW9ucyA9IFdlYktpdExhbmRpbmdTY3JpcHRzLmNs
ZWFuaW5nX29wdGlvbnMoKQotICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdSdW5zIGNo
ZWNrLXdlYmtpdC1zdHlsZSBvbiB0aGUgc3BlY2lmaWVkIGF0dGFjaG1lbnQnLCAnQVRUQUNITUVO
VF9JRCcsIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAi
UnVucyBjaGVjay13ZWJraXQtc3R5bGUgb24gdGhlIHNwZWNpZmllZCBhdHRhY2htZW50IiwgIkFU
VEFDSE1FTlRfSUQiLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBk
ZWYgY2hlY2tfc3R5bGUoY2xzLCBwYXRjaCwgb3B0aW9ucywgdG9vbCk6CiAgICAgICAgIHRvb2wu
c2NtKCkudXBkYXRlX3dlYmtpdCgpCi0gICAgICAgIGxvZygiQ2hlY2tpbmcgc3R5bGUgZm9yIHBh
dGNoICVzIGZyb20gYnVnICVzLiIgJSAocGF0Y2hbJ2lkJ10sIHBhdGNoWydidWdfaWQnXSkpCisg
ICAgICAgIGxvZygiQ2hlY2tpbmcgc3R5bGUgZm9yIHBhdGNoICVzIGZyb20gYnVnICVzLiIgJSAo
cGF0Y2hbImlkIl0sIHBhdGNoWyJidWdfaWQiXSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAg
ICMgRklYTUU6IGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91bGRuJ3QgcmVhbGx5IGhhdmUgdG8gYXBw
bHkgdGhlIHBhdGNoIHRvIGNoZWNrIHRoZSBzdHlsZS4KICAgICAgICAgICAgIHRvb2wuc2NtKCku
YXBwbHlfcGF0Y2gocGF0Y2gpCiAgICAgICAgICAgICBXZWJLaXRMYW5kaW5nU2NyaXB0cy5ydW5f
d2Via2l0X3NjcmlwdCgiY2hlY2std2Via2l0LXN0eWxlIikKICAgICAgICAgZXhjZXB0IFNjcmlw
dEVycm9yLCBlOgotICAgICAgICAgICAgbG9nKCJQYXRjaCAlcyBmcm9tIGJ1ZyAlcyBmYWlsZWQg
dG8gYXBwbHkgYW5kIGNoZWNrIHN0eWxlLiIgJSAocGF0Y2hbJ2lkJ10sIHBhdGNoWydidWdfaWQn
XSkpCisgICAgICAgICAgICBsb2coIlBhdGNoICVzIGZyb20gYnVnICVzIGZhaWxlZCB0byBhcHBs
eSBhbmQgY2hlY2sgc3R5bGUuIiAlIChwYXRjaFsiaWQiXSwgcGF0Y2hbImJ1Z19pZCJdKSkKICAg
ICAgICAgICAgIGxvZyhlLm91dHB1dCkKIAogICAgICAgICAjIFRoaXMgaXMgc2FmZSBiZWNhdXNl
IGluIG9yZGVyIHRvIGdldCBoZXJlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBoYWQgdG8gYmUKQEAg
LTE2OSw3ICsxNjksNyBAQCBjbGFzcyBDaGVja1N0eWxlKENvbW1hbmQpOgogY2xhc3MgQXBwbHlB
dHRhY2htZW50KENvbW1hbmQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgb3B0
aW9ucyA9IFdlYktpdEFwcGx5aW5nU2NyaXB0cy5hcHBseV9vcHRpb25zKCkgKyBXZWJLaXRMYW5k
aW5nU2NyaXB0cy5jbGVhbmluZ19vcHRpb25zKCkKLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhz
ZWxmLCAnQXBwbGllcyBhbiBhdHRhY2htZW50IHRvIHRoZSBsb2NhbCB3b3JraW5nIGRpcmVjdG9y
eS4nLCAnQVRUQUNITUVOVF9JRCcsIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAgQ29tbWFuZC5f
X2luaXRfXyhzZWxmLCAiQXBwbGllcyBhbiBhdHRhY2htZW50IHRvIHRoZSBsb2NhbCB3b3JraW5n
IGRpcmVjdG9yeS4iLCAiQVRUQUNITUVOVF9JRCIsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIGRl
ZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBXZWJLaXRBcHBs
eWluZ1NjcmlwdHMuc2V0dXBfZm9yX3BhdGNoX2FwcGx5KHRvb2wuc2NtKCksIG9wdGlvbnMpCkBA
IC0xODEsNyArMTgxLDcgQEAgY2xhc3MgQXBwbHlBdHRhY2htZW50KENvbW1hbmQpOgogY2xhc3Mg
QXBwbHlQYXRjaGVzRnJvbUJ1ZyhDb21tYW5kKToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAg
ICAgICAgIG9wdGlvbnMgPSBXZWJLaXRBcHBseWluZ1NjcmlwdHMuYXBwbHlfb3B0aW9ucygpICsg
V2ViS2l0TGFuZGluZ1NjcmlwdHMuY2xlYW5pbmdfb3B0aW9ucygpCi0gICAgICAgIENvbW1hbmQu
X19pbml0X18oc2VsZiwgJ0FwcGxpZXMgYWxsIHBhdGNoZXMgb24gYSBidWcgdG8gdGhlIGxvY2Fs
IHdvcmtpbmcgZGlyZWN0b3J5LicsICdCVUdJRCcsIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAg
Q29tbWFuZC5fX2luaXRfXyhzZWxmLCAiQXBwbGllcyBhbGwgcGF0Y2hlcyBvbiBhIGJ1ZyB0byB0
aGUgbG9jYWwgd29ya2luZyBkaXJlY3RvcnkuIiwgIkJVR0lEIiwgb3B0aW9ucz1vcHRpb25zKQog
CiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgIFdl
YktpdEFwcGx5aW5nU2NyaXB0cy5zZXR1cF9mb3JfcGF0Y2hfYXBwbHkodG9vbC5zY20oKSwgb3B0
aW9ucykKQEAgLTIxMCwxMSArMjEwLDExIEBAIGNsYXNzIFdlYktpdEFwcGx5aW5nU2NyaXB0czoK
ICAgICAgICAgICAgIGVycm9yKCItLWxvY2FsLWNvbW1pdCBwYXNzZWQsIGJ1dCAlcyBkb2VzIG5v
dCBzdXBwb3J0IGxvY2FsIGNvbW1pdHMiICUgc2NtLmRpc3BsYXlfbmFtZSgpKQogCiAgICAgICAg
IGZvciBwYXRjaCBpbiBwYXRjaGVzOgotICAgICAgICAgICAgbG9nKCJBcHBseWluZyBhdHRhY2ht
ZW50ICVzIGZyb20gYnVnICVzIiAlIChwYXRjaFsnaWQnXSwgcGF0Y2hbJ2J1Z19pZCddKSkKKyAg
ICAgICAgICAgIGxvZygiQXBwbHlpbmcgYXR0YWNobWVudCAlcyBmcm9tIGJ1ZyAlcyIgJSAocGF0
Y2hbImlkIl0sIHBhdGNoWyJidWdfaWQiXSkpCiAgICAgICAgICAgICBzY20uYXBwbHlfcGF0Y2go
cGF0Y2gpCiAgICAgICAgICAgICBpZiBvcHRpb25zLmxvY2FsX2NvbW1pdDoKICAgICAgICAgICAg
ICAgICBjb21taXRfbWVzc2FnZSA9IGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlzX2NvbW1pdChzY20p
Ci0gICAgICAgICAgICAgICAgc2NtLmNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2FnZShjb21taXRf
bWVzc2FnZS5tZXNzYWdlKCkgb3IgcGF0Y2hbJ25hbWUnXSkKKyAgICAgICAgICAgICAgICBzY20u
Y29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKGNvbW1pdF9tZXNzYWdlLm1lc3NhZ2UoKSBvciBw
YXRjaFsibmFtZSJdKQogCiAKIGNsYXNzIFdlYktpdExhbmRpbmdTY3JpcHRzOgpAQCAtMjQ0LDcg
KzI0NCw3IEBAIGNsYXNzIFdlYktpdExhbmRpbmdTY3JpcHRzOgogICAgICAgICAjIEZJWE1FOiBU
aGlzIGNvdWxkIGJlIGltcHJvdmVkIG5vdCB0byBmbGF0dGVuIG91dHB1dCB0byBzdGRvdXQuCiAg
ICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICBvdXRwdXRfbGluZSA9IGNoaWxkX3Byb2Nl
c3Muc3Rkb3V0LnJlYWRsaW5lKCkKLSAgICAgICAgICAgIGlmIG91dHB1dF9saW5lID09ICcnIGFu
ZCBjaGlsZF9wcm9jZXNzLnBvbGwoKSAhPSBOb25lOgorICAgICAgICAgICAgaWYgb3V0cHV0X2xp
bmUgPT0gIiIgYW5kIGNoaWxkX3Byb2Nlc3MucG9sbCgpICE9IE5vbmU6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNoaWxkX3Byb2Nlc3MucG9sbCgpCiAgICAgICAgICAgICB0ZWVkX291dHB1dC53
cml0ZShvdXRwdXRfbGluZSkKIApAQCAtMzIxLDM3ICszMjEsMzcgQEAgY2xhc3MgV2ViS2l0TGFu
ZGluZ1NjcmlwdHM6CiAgICAgICAgICMgQXNzdW1lIHRoYXQgci0gcGF0Y2hlcyBhcmUganVzdCBw
cmV2aW91cyBwYXRjaGVzIHNvbWVvbmUgZm9yZ290IHRvIG9ic29sZXRlLgogICAgICAgICBwYXRj
aGVzID0gYnVncy5mZXRjaF9wYXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCkKICAgICAgICAgZm9yIHBh
dGNoIGluIHBhdGNoZXM6Ci0gICAgICAgICAgICByZXZpZXdfZmxhZyA9IHBhdGNoLmdldCgncmV2
aWV3JykKLSAgICAgICAgICAgIGlmIHJldmlld19mbGFnID09ICc/JyBvciByZXZpZXdfZmxhZyA9
PSAnKyc6Ci0gICAgICAgICAgICAgICAgbG9nKCJOb3QgY2xvc2luZyBidWcgJXMgYXMgYXR0YWNo
bWVudCAlcyBoYXMgcmV2aWV3PSVzLiAgQXNzdW1pbmcgdGhlcmUgYXJlIG1vcmUgcGF0Y2hlcyB0
byBsYW5kIGZyb20gdGhpcyBidWcuIiAlIChwYXRjaFsnYnVnX2lkJ10sIHBhdGNoWydpZCddLCBy
ZXZpZXdfZmxhZykpCisgICAgICAgICAgICByZXZpZXdfZmxhZyA9IHBhdGNoLmdldCgicmV2aWV3
IikKKyAgICAgICAgICAgIGlmIHJldmlld19mbGFnID09ICI/IiBvciByZXZpZXdfZmxhZyA9PSAi
KyI6CisgICAgICAgICAgICAgICAgbG9nKCJOb3QgY2xvc2luZyBidWcgJXMgYXMgYXR0YWNobWVu
dCAlcyBoYXMgcmV2aWV3PSVzLiAgQXNzdW1pbmcgdGhlcmUgYXJlIG1vcmUgcGF0Y2hlcyB0byBs
YW5kIGZyb20gdGhpcyBidWcuIiAlIChwYXRjaFsiYnVnX2lkIl0sIHBhdGNoWyJpZCJdLCByZXZp
ZXdfZmxhZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGJ1Z3MuY2xvc2VfYnVn
X2FzX2ZpeGVkKGJ1Z19pZCwgIkFsbCByZXZpZXdlZCBwYXRjaGVzIGhhdmUgYmVlbiBsYW5kZWQu
ICBDbG9zaW5nIGJ1Zy4iKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9sYW5kX3BhdGNo
KGNscywgcGF0Y2gsIG9wdGlvbnMsIHRvb2wpOgogICAgICAgICB0b29sLnNjbSgpLnVwZGF0ZV93
ZWJraXQoKSAjIFVwZGF0ZSBiZWZvcmUgZXZlcnkgcGF0Y2ggaW4gY2FzZSB0aGUgdHJlZSBoYXMg
Y2hhbmdlZAotICAgICAgICBsb2coIkFwcGx5aW5nIHBhdGNoICVzIGZyb20gYnVnICVzLiIgJSAo
cGF0Y2hbJ2lkJ10sIHBhdGNoWydidWdfaWQnXSkpCisgICAgICAgIGxvZygiQXBwbHlpbmcgcGF0
Y2ggJXMgZnJvbSBidWcgJXMuIiAlIChwYXRjaFsiaWQiXSwgcGF0Y2hbImJ1Z19pZCJdKSkKICAg
ICAgICAgdG9vbC5zY20oKS5hcHBseV9wYXRjaChwYXRjaCwgZm9yY2U9b3B0aW9ucy5ub25faW50
ZXJhY3RpdmUpCiAKICAgICAgICAgIyBNYWtlIHN1cmUgdGhlIHRyZWUgaXMgc3RpbGwgZ3JlZW4g
YWZ0ZXIgdXBkYXRpbmcsIGJlZm9yZSBidWlsZGluZyB0aGlzIHBhdGNoLgogICAgICAgICAjIFRo
ZSBmaXJzdCBwYXRjaCBlbmRzIHVwIGNoZWNraW5nIHRyZWUgc3RhdHVzIHR3aWNlLCBidXQgdGhh
dCdzIE9LLgogICAgICAgICBXZWJLaXRMYW5kaW5nU2NyaXB0cy5lbnN1cmVfYnVpbGRlcnNfYXJl
X2dyZWVuKHRvb2wuYnVpbGRib3QsIG9wdGlvbnMpCiAgICAgICAgIGNvbW1lbnRfdGV4dCA9IFdl
YktpdExhbmRpbmdTY3JpcHRzLmJ1aWxkX2FuZF9jb21taXQodG9vbC5zY20oKSwgb3B0aW9ucykK
LSAgICAgICAgdG9vbC5idWdzLmNsZWFyX2F0dGFjaG1lbnRfZmxhZ3MocGF0Y2hbJ2lkJ10sIGNv
bW1lbnRfdGV4dCkKKyAgICAgICAgdG9vbC5idWdzLmNsZWFyX2F0dGFjaG1lbnRfZmxhZ3MocGF0
Y2hbImlkIl0sIGNvbW1lbnRfdGV4dCkKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBsYW5k
X3BhdGNoX2FuZF9oYW5kbGVfZXJyb3JzKGNscywgcGF0Y2gsIG9wdGlvbnMsIHRvb2wpOgogICAg
ICAgICB0cnk6CiAgICAgICAgICAgICBjbHMuX2xhbmRfcGF0Y2gocGF0Y2gsIG9wdGlvbnMsIHRv
b2wpCiAgICAgICAgICAgICBpZiBvcHRpb25zLmNsb3NlX2J1ZzoKLSAgICAgICAgICAgICAgICBj
bHMuX2Nsb3NlX2J1Z19pZl9ub19hY3RpdmVfcGF0Y2hlcyh0b29sLmJ1Z3MsIHBhdGNoWydidWdf
aWQnXSkKKyAgICAgICAgICAgICAgICBjbHMuX2Nsb3NlX2J1Z19pZl9ub19hY3RpdmVfcGF0Y2hl
cyh0b29sLmJ1Z3MsIHBhdGNoWyJidWdfaWQiXSkKICAgICAgICAgZXhjZXB0IENoZWNrb3V0TmVl
ZHNVcGRhdGUsIGU6CiAgICAgICAgICAgICBsb2coIkNvbW1pdCBmYWlsZWQgYmVjYXVzZSB0aGUg
Y2hlY2tvdXQgaXMgb3V0IG9mIGRhdGUuICBQbGVhc2UgdXBkYXRlIGFuZCB0cnkgYWdhaW4uIikK
ICAgICAgICAgICAgIGxvZygiWW91IGNhbiBwYXNzIC0tbm8tYnVpbGQgdG8gc2tpcCBidWlsZGlu
Zy90ZXN0aW5nIGFmdGVyIHVwZGF0ZSBpZiB5b3UgYmVsaWV2ZSB0aGUgbmV3IGNvbW1pdHMgZGlk
IG5vdCBhZmZlY3QgdGhlIHJlc3VsdHMuIikKICAgICAgICAgICAgIFdvcmtRdWV1ZS5leGl0X2Fm
dGVyX2hhbmRsZWRfZXJyb3IoZSkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAg
ICAgICAgICAgIyBNYXJrIHRoZSBwYXRjaCBhcyBjb21taXQtcXVldWUtIGFuZCBjb21tZW50IGlu
IHRoZSBidWcuCi0gICAgICAgICAgICB0b29sLmJ1Z3MucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0
X3F1ZXVlKHBhdGNoWydpZCddLCBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSkKKyAgICAgICAgICAg
IHRvb2wuYnVncy5yZWplY3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUocGF0Y2hbImlkIl0sIGUu
bWVzc2FnZV93aXRoX291dHB1dCgpKQogICAgICAgICAgICAgV29ya1F1ZXVlLmV4aXRfYWZ0ZXJf
aGFuZGxlZF9lcnJvcihlKQogCiAKQEAgLTM2MSw3ICszNjEsNyBAQCBjbGFzcyBMYW5kQW5kVXBk
YXRlQnVnKENvbW1hbmQpOgogICAgICAgICAgICAgbWFrZV9vcHRpb24oIi1yIiwgIi0tcmV2aWV3
ZXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0icmV2aWV3ZXIiLCBoZWxw
PSJVcGRhdGUgQ2hhbmdlTG9ncyB0byBzYXkgUmV2aWV3ZWQgYnkgUkVWSUVXRVIuIiksCiAgICAg
ICAgIF0KICAgICAgICAgb3B0aW9ucyArPSBXZWJLaXRMYW5kaW5nU2NyaXB0cy5sYW5kX29wdGlv
bnMoKQotICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdMYW5kcyB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBidWcgaWYgcHJvdmlkZWQuJywg
J1tCVUdJRF0nLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2Vs
ZiwgIkxhbmRzIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRpZmYgYW5kIHVwZGF0ZXMg
dGhlIGJ1ZyBpZiBwcm92aWRlZC4iLCAiW0JVR0lEXSIsIG9wdGlvbnM9b3B0aW9ucykKIAogICAg
IGRlZiBndWVzc19yZXZpZXdlcl9mcm9tX2J1ZyhzZWxmLCBidWdzLCBidWdfaWQpOgogICAgICAg
ICBwYXRjaGVzID0gYnVncy5mZXRjaF9yZXZpZXdlZF9wYXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCkK
QEAgLTM2OSw4ICszNjksOCBAQCBjbGFzcyBMYW5kQW5kVXBkYXRlQnVnKENvbW1hbmQpOgogICAg
ICAgICAgICAgbG9nKCIlcyBvbiBidWcgJXMsIGNhbm5vdCBpbmZlciByZXZpZXdlci4iICUgKHBs
dXJhbGl6ZSgicmV2aWV3ZWQgcGF0Y2giLCBsZW4ocGF0Y2hlcykpLCBidWdfaWQpKQogICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgcGF0Y2ggPSBwYXRjaGVzWzBdCi0gICAgICAgIHJl
dmlld2VyID0gcGF0Y2hbJ3Jldmlld2VyJ10KLSAgICAgICAgbG9nKCdHdWVzc2luZyAiJXMiIGFz
IHJldmlld2VyIGZyb20gYXR0YWNobWVudCAlcyBvbiBidWcgJXMuJyAlIChyZXZpZXdlciwgcGF0
Y2hbJ2lkJ10sIGJ1Z19pZCkpCisgICAgICAgIHJldmlld2VyID0gcGF0Y2hbInJldmlld2VyIl0K
KyAgICAgICAgbG9nKCJHdWVzc2luZyBcIiVzXCIgYXMgcmV2aWV3ZXIgZnJvbSBhdHRhY2htZW50
ICVzIG9uIGJ1ZyAlcy4iICUgKHJldmlld2VyLCBwYXRjaFsiaWQiXSwgYnVnX2lkKSkKICAgICAg
ICAgcmV0dXJuIHJldmlld2VyCiAKICAgICBkZWYgdXBkYXRlX2NoYW5nZWxvZ3Nfd2l0aF9yZXZp
ZXdlcihzZWxmLCByZXZpZXdlciwgYnVnX2lkLCB0b29sKToKQEAgLTQyMiw3ICs0MjIsNyBAQCBj
bGFzcyBBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQoQ29tbWFuZCk6CiAgICAgZGVmIF9jb2xs
ZWN0X3BhdGNoZXNfYnlfYnVnKHBhdGNoZXMpOgogICAgICAgICBidWdzX3RvX3BhdGNoZXMgPSB7
fQogICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICAgICAgICAgIGJ1Z19pZCA9IHBh
dGNoWydidWdfaWQnXQorICAgICAgICAgICAgYnVnX2lkID0gcGF0Y2hbImJ1Z19pZCJdCiAgICAg
ICAgICAgICBidWdzX3RvX3BhdGNoZXNbYnVnX2lkXSA9IGJ1Z3NfdG9fcGF0Y2hlcy5nZXQoYnVn
X2lkLCBbXSkuYXBwZW5kKHBhdGNoKQogICAgICAgICByZXR1cm4gYnVnc190b19wYXRjaGVzCiAK
QEAgLTQ0Niw3ICs0NDYsNyBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQoQ29t
bWFuZCk6CiAKIGNsYXNzIExhbmRBdHRhY2htZW50KEFic3RyYWN0UGF0Y2hMYW5kaW5nQ29tbWFu
ZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBBYnN0cmFjdFBhdGNoTGFuZGlu
Z0NvbW1hbmQuX19pbml0X18oc2VsZiwgJ0xhbmRzIGEgcGF0Y2hlcyBmcm9tIGJ1Z3ppbGxhLCBv
cHRpb25hbGx5IGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHRoZW0gZmlyc3QnLCAnQVRUQUNITUVOVF9J
RCBbQVRUQUNITUVOVF9JRFNdJykKKyAgICAgICAgQWJzdHJhY3RQYXRjaExhbmRpbmdDb21tYW5k
Ll9faW5pdF9fKHNlbGYsICJMYW5kcyBhIHBhdGNoZXMgZnJvbSBidWd6aWxsYSwgb3B0aW9uYWxs
eSBidWlsZGluZyBhbmQgdGVzdGluZyB0aGVtIGZpcnN0IiwgIkFUVEFDSE1FTlRfSUQgW0FUVEFD
SE1FTlRfSURTXSIpCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9mZXRjaF9saXN0X29m
X3BhdGNoZXNfdG9fbGFuZChvcHRpb25zLCBhcmdzLCB0b29sKToKQEAgLTQ1NSw3ICs0NTUsNyBA
QCBjbGFzcyBMYW5kQXR0YWNobWVudChBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQpOgogCiBj
bGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWdzKEFic3RyYWN0UGF0Y2hMYW5kaW5nQ29tbWFuZCk6CiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1h
bmQuX19pbml0X18oc2VsZiwgJ0xhbmRzIGFsbCBwYXRjaGVzIG9uIHRoZSBnaXZlbiBidWdzLCBv
cHRpb25hbGx5IGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHRoZW0gZmlyc3QnLCAnQlVHSUQgW0JVR0lE
U10nKQorICAgICAgICBBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQuX19pbml0X18oc2VsZiwg
IkxhbmRzIGFsbCBwYXRjaGVzIG9uIHRoZSBnaXZlbiBidWdzLCBvcHRpb25hbGx5IGJ1aWxkaW5n
IGFuZCB0ZXN0aW5nIHRoZW0gZmlyc3QiLCAiQlVHSUQgW0JVR0lEU10iKQogCiAgICAgQHN0YXRp
Y21ldGhvZAogICAgIGRlZiBfZmV0Y2hfbGlzdF9vZl9wYXRjaGVzX3RvX2xhbmQob3B0aW9ucywg
YXJncywgdG9vbCk6CkBAIC00NjksNyArNDY5LDcgQEAgY2xhc3MgTGFuZFBhdGNoZXNGcm9tQnVn
cyhBYnN0cmFjdFBhdGNoTGFuZGluZ0NvbW1hbmQpOgogCiBjbGFzcyBDb21taXRNZXNzYWdlRm9y
Q3VycmVudERpZmYoQ29tbWFuZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBD
b21tYW5kLl9faW5pdF9fKHNlbGYsICdQcmludHMgYSBjb21taXQgbWVzc2FnZSBzdWl0YWJsZSBm
b3IgdGhlIHVuY29tbWl0dGVkIGNoYW5nZXMuJykKKyAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhz
ZWxmLCAiUHJpbnRzIGEgY29tbWl0IG1lc3NhZ2Ugc3VpdGFibGUgZm9yIHRoZSB1bmNvbW1pdHRl
ZCBjaGFuZ2VzLiIpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29s
KToKICAgICAgICAgb3MuY2hkaXIodG9vbC5zY20oKS5jaGVja291dF9yb290KQpAQCAtNDc4LDIz
ICs0NzgsMjMgQEAgY2xhc3MgQ29tbWl0TWVzc2FnZUZvckN1cnJlbnREaWZmKENvbW1hbmQpOgog
CiBjbGFzcyBPYnNvbGV0ZUF0dGFjaG1lbnRzT25CdWcoQ29tbWFuZCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgotICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdNYXJrcyBhbGwgYXR0
YWNobWVudHMgb24gYSBidWcgYXMgb2Jzb2xldGUuJywgJ0JVR0lEJykKKyAgICAgICAgQ29tbWFu
ZC5fX2luaXRfXyhzZWxmLCAiTWFya3MgYWxsIGF0dGFjaG1lbnRzIG9uIGEgYnVnIGFzIG9ic29s
ZXRlLiIsICJCVUdJRCIpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0
b29sKToKICAgICAgICAgYnVnX2lkID0gYXJnc1swXQogICAgICAgICBhdHRhY2htZW50cyA9IHRv
b2wuYnVncy5mZXRjaF9hdHRhY2htZW50c19mcm9tX2J1ZyhidWdfaWQpCiAgICAgICAgIGZvciBh
dHRhY2htZW50IGluIGF0dGFjaG1lbnRzOgotICAgICAgICAgICAgaWYgbm90IGF0dGFjaG1lbnRb
J2lzX29ic29sZXRlJ106Ci0gICAgICAgICAgICAgICAgdG9vbC5idWdzLm9ic29sZXRlX2F0dGFj
aG1lbnQoYXR0YWNobWVudFsnaWQnXSkKKyAgICAgICAgICAgIGlmIG5vdCBhdHRhY2htZW50WyJp
c19vYnNvbGV0ZSJdOgorICAgICAgICAgICAgICAgIHRvb2wuYnVncy5vYnNvbGV0ZV9hdHRhY2ht
ZW50KGF0dGFjaG1lbnRbImlkIl0pCiAKIAogY2xhc3MgUG9zdERpZmZBc1BhdGNoVG9CdWcoQ29t
bWFuZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBvcHRpb25zID0gWwotICAg
ICAgICAgICAgbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3Jl
IiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRpb24iLCBoZWxwPSJEZXNjcmlwdGlvbiBz
dHJpbmcgZm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0OiAncGF0Y2gnKSIpLAorICAgICAgICAg
ICAgbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRpb24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJpbmcg
Zm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0OiBcInBhdGNoXCIpIiksCiAgICAgICAgIF0KICAg
ICAgICAgb3B0aW9ucyArPSBzZWxmLnBvc3Rpbmdfb3B0aW9ucygpCi0gICAgICAgIENvbW1hbmQu
X19pbml0X18oc2VsZiwgJ0F0dGFjaGVzIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRp
ZmYgdG8gYSBidWcgYXMgYSBwYXRjaCBmaWxlLicsICdbQlVHSURdJywgb3B0aW9ucz1vcHRpb25z
KQorICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICJBdHRhY2hlcyB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeSBkaWZmIHRvIGEgYnVnIGFzIGEgcGF0Y2ggZmlsZS4iLCAiW0JVR0lE
XSIsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgcG9zdGlu
Z19vcHRpb25zKCk6CkBAIC01MDgsOSArNTA4LDkgQEAgY2xhc3MgUG9zdERpZmZBc1BhdGNoVG9C
dWcoQ29tbWFuZCk6CiAgICAgZGVmIG9ic29sZXRlX3BhdGNoZXNfb25fYnVnKGJ1Z19pZCwgYnVn
cyk6CiAgICAgICAgIHBhdGNoZXMgPSBidWdzLmZldGNoX3BhdGNoZXNfZnJvbV9idWcoYnVnX2lk
KQogICAgICAgICBpZiBsZW4ocGF0Y2hlcyk6Ci0gICAgICAgICAgICBsb2coIk9ic29sZXRpbmcg
JXMgb24gYnVnICVzIiAlIChwbHVyYWxpemUoJ29sZCBwYXRjaCcsIGxlbihwYXRjaGVzKSksIGJ1
Z19pZCkpCisgICAgICAgICAgICBsb2coIk9ic29sZXRpbmcgJXMgb24gYnVnICVzIiAlIChwbHVy
YWxpemUoIm9sZCBwYXRjaCIsIGxlbihwYXRjaGVzKSksIGJ1Z19pZCkpCiAgICAgICAgICAgICBm
b3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICAgICAgICAgICAgICBidWdzLm9ic29sZXRlX2F0dGFj
aG1lbnQocGF0Y2hbJ2lkJ10pCisgICAgICAgICAgICAgICAgYnVncy5vYnNvbGV0ZV9hdHRhY2ht
ZW50KHBhdGNoWyJpZCJdKQogCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywg
dG9vbCk6CiAgICAgICAgICMgUGVyZmVyIGEgYnVnIGlkIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBv
dmVyIGEgYnVnIHVybCBpbiB0aGUgZGlmZiAoaS5lLiBDaGFuZ2VMb2dzKS4KQEAgLTUzNiw3ICs1
MzYsNyBAQCBjbGFzcyBQb3N0Q29tbWl0c0FzUGF0Y2hlc1RvQnVnKENvbW1hbmQpOgogICAgICAg
ICAgICAgbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwg
dHlwZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRpb24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJp
bmcgZm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0OiBkZXNjcmlwdGlvbiBmcm9tIGNvbW1pdCBt
ZXNzYWdlKSIpLAogICAgICAgICBdCiAgICAgICAgIG9wdGlvbnMgKz0gUG9zdERpZmZBc1BhdGNo
VG9CdWcucG9zdGluZ19vcHRpb25zKCkKLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAn
QXR0YWNoZXMgYSByYW5nZSBvZiBsb2NhbCBjb21taXRzIHRvIGJ1Z3MgYXMgcGF0Y2ggZmlsZXMu
JywgJ0NPTU1JVElTSCcsIG9wdGlvbnM9b3B0aW9ucywgcmVxdWlyZXNfbG9jYWxfY29tbWl0cz1U
cnVlKQorICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICJBdHRhY2hlcyBhIHJhbmdlIG9m
IGxvY2FsIGNvbW1pdHMgdG8gYnVncyBhcyBwYXRjaCBmaWxlcy4iLCAiQ09NTUlUSVNIIiwgb3B0
aW9ucz1vcHRpb25zLCByZXF1aXJlc19sb2NhbF9jb21taXRzPVRydWUpCiAKICAgICBkZWYgX2Nv
bW1lbnRfdGV4dF9mb3JfY29tbWl0KHNlbGYsIG9wdGlvbnMsIGNvbW1pdF9tZXNzYWdlLCB0b29s
LCBjb21taXRfaWQpOgogICAgICAgICBjb21tZW50X3RleHQgPSBOb25lCkBAIC01NTYsNyArNTU2
LDcgQEAgY2xhc3MgUG9zdENvbW1pdHNBc1BhdGNoZXNUb0J1ZyhDb21tYW5kKToKIAogICAgICAg
ICBjb21taXRfaWRzID0gdG9vbC5zY20oKS5jb21taXRfaWRzX2Zyb21fY29tbWl0aXNoX2FyZ3Vt
ZW50cyhhcmdzKQogICAgICAgICBpZiBsZW4oY29tbWl0X2lkcykgPiAxMDogIyBXZSBjb3VsZCBs
b3dlciB0aGlzIGxpbWl0LCAxMCBpcyB0b28gbWFueSBmb3Igb25lIGJ1ZyBhcy1pcy4KLSAgICAg
ICAgICAgIGVycm9yKCJidWd6aWxsYS10b29sIGRvZXMgbm90IHN1cHBvcnQgYXR0YWNoaW5nICVz
IGF0IG9uY2UuICBBcmUgeW91IHN1cmUgeW91IHBhc3NlZCB0aGUgcmlnaHQgY29tbWl0IHJhbmdl
PyIgJSAocGx1cmFsaXplKCdwYXRjaCcsIGxlbihjb21taXRfaWRzKSkpKQorICAgICAgICAgICAg
ZXJyb3IoImJ1Z3ppbGxhLXRvb2wgZG9lcyBub3Qgc3VwcG9ydCBhdHRhY2hpbmcgJXMgYXQgb25j
ZS4gIEFyZSB5b3Ugc3VyZSB5b3UgcGFzc2VkIHRoZSByaWdodCBjb21taXQgcmFuZ2U/IiAlIChw
bHVyYWxpemUoInBhdGNoIiwgbGVuKGNvbW1pdF9pZHMpKSkpCiAKICAgICAgICAgaGF2ZV9vYnNv
bGV0ZWRfcGF0Y2hlcyA9IHNldCgpCiAgICAgICAgIGZvciBjb21taXRfaWQgaW4gY29tbWl0X2lk
czoKQEAgLTU4Myw3ICs1ODMsNyBAQCBjbGFzcyBSb2xsb3V0Q29tbWl0KENvbW1hbmQpOgogICAg
ICAgICBvcHRpb25zID0gV2ViS2l0TGFuZGluZ1NjcmlwdHMubGFuZF9vcHRpb25zKCkKICAgICAg
ICAgb3B0aW9ucyArPSBXZWJLaXRMYW5kaW5nU2NyaXB0cy5jbGVhbmluZ19vcHRpb25zKCkKICAg
ICAgICAgb3B0aW9ucy5hcHBlbmQobWFrZV9vcHRpb24oIi0tY29tcGxldGUtcm9sbG91dCIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImNvbXBsZXRlX3JvbGxvdXQiLCBoZWxwPSJFeHBlcmlt
ZW50YWwgc3VwcG9ydCBmb3IgY29tcGxldGUgdW5zdXBlcnZpc2VkIHJvbGxvdXRzLCBpbmNsdWRp
bmcgcmUtb3BlbmluZyB0aGUgYnVnLiAgTm90IHJlY29tbWVuZGVkLiIpKQotICAgICAgICBDb21t
YW5kLl9faW5pdF9fKHNlbGYsICdSZXZlcnRzIHRoZSBnaXZlbiByZXZpc2lvbiBhbmQgY29tbWl0
cyB0aGUgcmV2ZXJ0IGFuZCByZS1vcGVucyB0aGUgb3JpZ2luYWwgYnVnLicsICdSRVZJU0lPTiBb
QlVHSURdJywgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYs
ICJSZXZlcnRzIHRoZSBnaXZlbiByZXZpc2lvbiBhbmQgY29tbWl0cyB0aGUgcmV2ZXJ0IGFuZCBy
ZS1vcGVucyB0aGUgb3JpZ2luYWwgYnVnLiIsICJSRVZJU0lPTiBbQlVHSURdIiwgb3B0aW9ucz1v
cHRpb25zKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfY3JlYXRlX2NoYW5nZWxvZ3Nf
Zm9yX3JldmVydChzY20sIHJldmlzaW9uKToKQEAgLTYyOSw3ICs2MjksNyBAQCBjbGFzcyBSb2xs
b3V0Q29tbWl0KENvbW1hbmQpOgogICAgICAgICAjIEZJWE1FOiBGdWxseSBhdXRvbWF0ZWQgcm9s
bG91dCBpcyBub3QgMTAwJSBpZGlvdC1wcm9vZiB5ZXQsIHNvIGZvciBub3cganVzdCBsb2cgd2l0
aCBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGNvbXBsZXRlIHRoZSByb2xsb3V0LgogICAgICAgICAj
IE9uY2Ugd2UgdHJ1c3Qgcm9sbG91dCB3ZSB3aWxsIHJlbW92ZSB0aGlzIG9wdGlvbi4KICAgICAg
ICAgaWYgbm90IG9wdGlvbnMuY29tcGxldGVfcm9sbG91dDoKLSAgICAgICAgICAgIGxvZygiXG5O
T1RFOiBSb2xsb3V0IHN1cHBvcnQgaXMgZXhwZXJpbWVudGFsLlxuUGxlYXNlIHZlcmlmeSB0aGUg
cm9sbG91dCBkaWZmIGFuZCB1c2UgJ2J1Z3ppbGxhLXRvb2wgbGFuZC1kaWZmICVzJyB0byBjb21t
aXQgdGhlIHJvbGxvdXQuIiAlIGJ1Z19pZCkKKyAgICAgICAgICAgIGxvZygiXG5OT1RFOiBSb2xs
b3V0IHN1cHBvcnQgaXMgZXhwZXJpbWVudGFsLlxuUGxlYXNlIHZlcmlmeSB0aGUgcm9sbG91dCBk
aWZmIGFuZCB1c2UgXCJidWd6aWxsYS10b29sIGxhbmQtZGlmZiAlc1wiIHRvIGNvbW1pdCB0aGUg
cm9sbG91dC4iICUgYnVnX2lkKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29tbWVudF90
ZXh0ID0gV2ViS2l0TGFuZGluZ1NjcmlwdHMuYnVpbGRfYW5kX2NvbW1pdCh0b29sLnNjbSgpLCBv
cHRpb25zKQogICAgICAgICAgICAgc2VsZi5fcmVvcGVuX2J1Z19hZnRlcl9yb2xsb3V0KHRvb2ws
IGJ1Z19pZCwgY29tbWVudF90ZXh0KQpAQCAtNjQ0LDcgKzY0NCw3IEBAIGNsYXNzIENyZWF0ZUJ1
ZyhDb21tYW5kKToKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLW5vLXJldmlldyIsIGFjdGlv
bj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJyZXZpZXciLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5v
dCBtYXJrIHRoZSBwYXRjaCBmb3IgcmV2aWV3LiIpLAogICAgICAgICAgICAgbWFrZV9vcHRpb24o
Ii0tcmVxdWVzdC1jb21taXQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJyZXF1ZXN0X2Nv
bW1pdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1hcmsgdGhlIHBhdGNoIGFzIG5lZWRpbmcgYXV0
by1jb21taXQgYWZ0ZXIgcmV2aWV3LiIpLAogICAgICAgICBdCi0gICAgICAgIENvbW1hbmQuX19p
bml0X18oc2VsZiwgJ0NyZWF0ZSBhIGJ1ZyBmcm9tIGxvY2FsIGNoYW5nZXMgb3IgbG9jYWwgY29t
bWl0cy4nLCAnW0NPTU1JVElTSF0nLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIENvbW1hbmQu
X19pbml0X18oc2VsZiwgIkNyZWF0ZSBhIGJ1ZyBmcm9tIGxvY2FsIGNoYW5nZXMgb3IgbG9jYWwg
Y29tbWl0cy4iLCAiW0NPTU1JVElTSF0iLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBkZWYgY3Jl
YXRlX2J1Z19mcm9tX2NvbW1pdChzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAg
Y29tbWl0X2lkcyA9IHRvb2wuc2NtKCkuY29tbWl0X2lkc19mcm9tX2NvbW1pdGlzaF9hcmd1bWVu
dHMoYXJncykKQEAgLTcwMCw3ICs3MDAsNyBAQCBjbGFzcyBDcmVhdGVCdWcoQ29tbWFuZCk6CiAg
ICAgICAgICAgICAjIEZJWE1FOiBGaWd1cmUgb3V0IGEgd2F5IHRvIGdldCBhdm9pZCB0aGUgZXhj
ZXB0aW9uIGluIHRoZSBmaXJzdAogICAgICAgICAgICAgIyBwbGFjZS4KICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgY29tbWVudF90ZXh0ID0gJycuam9pbihsaW5lcykKKyAgICAgICAgY29tbWVu
dF90ZXh0ID0gIiIuam9pbihsaW5lcykKICAgICAgICAgcmV0dXJuIChidWdfdGl0bGUsIGNvbW1l
bnRfdGV4dCkKIAogICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgpA
QCAtNzE0LDEyICs3MTQsMTIgQEAgY2xhc3MgQ3JlYXRlQnVnKENvbW1hbmQpOgogCiBjbGFzcyBD
aGVja1RyZWVTdGF0dXMoQ29tbWFuZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg
ICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdQcmludCBvdXQgdGhlIHN0YXR1cyBvZiB0aGUgd2Vi
a2l0IGJ1aWxkZXJzLicpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgIlByaW50IG91
dCB0aGUgc3RhdHVzIG9mIHRoZSB3ZWJraXQgYnVpbGRlcnMuIikKIAogICAgIGRlZiBleGVjdXRl
KHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBmb3IgYnVpbGRlciBpbiB0b29s
LmJ1aWxkYm90LmJ1aWxkZXJfc3RhdHVzZXMoKToKLSAgICAgICAgICAgIHN0YXR1c19zdHJpbmcg
PSAib2siIGlmIGJ1aWxkZXJbJ2lzX2dyZWVuJ10gZWxzZSAnRkFJTCcKLSAgICAgICAgICAgIHBy
aW50ICIlcyA6ICVzIiAlIChzdGF0dXNfc3RyaW5nLmxqdXN0KDQpLCBidWlsZGVyWyduYW1lJ10p
CisgICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIm9rIiBpZiBidWlsZGVyWyJpc19ncmVlbiJd
IGVsc2UgIkZBSUwiCisgICAgICAgICAgICBwcmludCAiJXMgOiAlcyIgJSAoc3RhdHVzX3N0cmlu
Zy5sanVzdCg0KSwgYnVpbGRlclsibmFtZSJdKQogCiAKIGNsYXNzIEFic3RyYWN0UXVldWUoQ29t
bWFuZCwgV29ya1F1ZXVlRGVsZWdhdGUpOgpAQCAtNzI5LDEzICs3MjksMTMgQEAgY2xhc3MgQWJz
dHJhY3RRdWV1ZShDb21tYW5kLCBXb3JrUXVldWVEZWxlZ2F0ZSk6CiAgICAgICAgICAgICBtYWtl
X29wdGlvbigiLS1uby1jb25maXJtIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9ImNvbmZp
cm0iLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBhc2sgdGhlIHVzZXIgZm9yIGNvbmZpcm1h
dGlvbiBiZWZvcmUgcnVubmluZyB0aGUgcXVldWUuICBEYW5nZXJvdXMhIiksCiAgICAgICAgICAg
ICBtYWtlX29wdGlvbigiLS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJp
bmciLCBkZXN0PSJzdGF0dXNfaG9zdCIsIGRlZmF1bHQ9U3RhdHVzQm90LmRlZmF1bHRfaG9zdCwg
aGVscD0iSG9zdG5hbWUgKGUuZy4gbG9jYWxob3N0IG9yIGNvbW1pdC53ZWJraXQub3JnKSB3aGVy
ZSBzdGF0dXMgdXBkYXRlcyBzaG91bGQgYmUgcG9zdGVkLiIpLAogICAgICAgICBdCi0gICAgICAg
IENvbW1hbmQuX19pbml0X18oc2VsZiwgJ1J1biB0aGUgJXMuJyAlIHNlbGYuX25hbWUsIG9wdGlv
bnM9b3B0aW9ucykKKyAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAiUnVuIHRoZSAlcy4i
ICUgc2VsZi5fbmFtZSwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHF1ZXVlX2xvZ19wYXRo
KHNlbGYpOgotICAgICAgICByZXR1cm4gJyVzLmxvZycgJSBzZWxmLl9uYW1lCisgICAgICAgIHJl
dHVybiAiJXMubG9nIiAlIHNlbGYuX25hbWUKIAogICAgIGRlZiB3b3JrX2xvZ3NfZGlyZWN0b3J5
KHNlbGYpOgotICAgICAgICByZXR1cm4gJyVzLWxvZ3MnICUgc2VsZi5fbmFtZQorICAgICAgICBy
ZXR1cm4gIiVzLWxvZ3MiICUgc2VsZi5fbmFtZQogCiAgICAgZGVmIHN0YXR1c19ob3N0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5vcHRpb25zLnN0YXR1c19ob3N0CkBAIC03NDMsOCArNzQz
LDggQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBXb3JrUXVldWVEZWxlZ2F0ZSk6CiAg
ICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIGxvZygiQ0FVVElPTjogJXMg
d2lsbCBkaXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluICVzIiAlIChzZWxmLl9uYW1lLCBzZWxm
LnRvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkpCiAgICAgICAgIGlmIHNlbGYub3B0aW9ucy5jb25m
aXJtOgotICAgICAgICAgICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIkFyZSB5b3Ugc3VyZT8gIFR5
cGUgJ3llcycgdG8gY29udGludWU6ICIpCi0gICAgICAgICAgICBpZiAocmVzcG9uc2UgIT0gJ3ll
cycpOgorICAgICAgICAgICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIkFyZSB5b3Ugc3VyZT8gIFR5
cGUgXCJ5ZXNcIiB0byBjb250aW51ZTogIikKKyAgICAgICAgICAgIGlmIChyZXNwb25zZSAhPSAi
eWVzIik6CiAgICAgICAgICAgICAgICAgZXJyb3IoIlVzZXIgZGVjbGluZWQuIikKICAgICAgICAg
bG9nKCJSdW5uaW5nIFdlYktpdCAlcy4gJXMiICUgKHNlbGYuX25hbWUsIGRhdGV0aW1lLm5vdygp
LnN0cmZ0aW1lKFdvcmtRdWV1ZS5sb2dfZGF0ZV9mb3JtYXQpKSkKIApAQCAtNzcwLDcgKzc3MCw3
IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgV29ya1F1ZXVlRGVsZWdhdGUpOgogICAg
ICAgICBXZWJLaXRMYW5kaW5nU2NyaXB0cy5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVnemlsbGFf
dG9vbF9hcmdzKQogCiAgICAgZGVmIGxvZ19wcm9ncmVzcyhzZWxmLCBwYXRjaF9pZHMpOgotICAg
ICAgICBsb2coIiVzIGluICVzIFslc10iICUgKHBsdXJhbGl6ZSgncGF0Y2gnLCBsZW4ocGF0Y2hf
aWRzKSksIHNlbGYuX25hbWUsICIsICIuam9pbihwYXRjaF9pZHMpKSkKKyAgICAgICAgbG9nKCIl
cyBpbiAlcyBbJXNdIiAlIChwbHVyYWxpemUoInBhdGNoIiwgbGVuKHBhdGNoX2lkcykpLCBzZWxm
Ll9uYW1lLCAiLCAiLmpvaW4ocGF0Y2hfaWRzKSkpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBv
cHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9ucwpAQCAt
Nzk3LDE1ICs3OTcsMTUgQEAgY2xhc3MgQ29tbWl0UXVldWUoQWJzdHJhY3RRdWV1ZSk6CiAgICAg
ZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAg
cmVkX2J1aWxkZXJzX25hbWVzID0gc2VsZi50b29sLmJ1aWxkYm90LnJlZF9jb3JlX2J1aWxkZXJz
X25hbWVzKCkKICAgICAgICAgaWYgcmVkX2J1aWxkZXJzX25hbWVzOgotICAgICAgICAgICAgcmVk
X2J1aWxkZXJzX25hbWVzID0gbWFwKGxhbWJkYSBuYW1lOiAnIiVzIicgJSBuYW1lLCByZWRfYnVp
bGRlcnNfbmFtZXMpICMgQWRkIHF1b3RlcyBhcm91bmQgdGhlIG5hbWVzLgorICAgICAgICAgICAg
cmVkX2J1aWxkZXJzX25hbWVzID0gbWFwKGxhbWJkYSBuYW1lOiAiXCIlc1wiIiAlIG5hbWUsIHJl
ZF9idWlsZGVyc19uYW1lcykgIyBBZGQgcXVvdGVzIGFyb3VuZCB0aGUgbmFtZXMuCiAgICAgICAg
ICAgICByZXR1cm4gKEZhbHNlLCAiQnVpbGRlcnMgWyVzXSBhcmUgcmVkLiBTZWUgaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcuIiAlICIsICIuam9pbihyZWRfYnVpbGRlcnNfbmFtZXMpLCBOb25lKQot
ICAgICAgICByZXR1cm4gKFRydWUsICJMYW5kaW5nIHBhdGNoICVzIGZyb20gYnVnICVzLiIgJSAo
cGF0Y2hbJ2lkJ10sIHBhdGNoWydidWdfaWQnXSksIHBhdGNoWydidWdfaWQnXSkKKyAgICAgICAg
cmV0dXJuIChUcnVlLCAiTGFuZGluZyBwYXRjaCAlcyBmcm9tIGJ1ZyAlcy4iICUgKHBhdGNoWyJp
ZCJdLCBwYXRjaFsiYnVnX2lkIl0pLCBwYXRjaFsiYnVnX2lkIl0pCiAKICAgICBkZWYgcHJvY2Vz
c193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgotICAgICAgICBzZWxmLnJ1bl9idWd6aWxsYV90b29s
KFsnbGFuZC1hdHRhY2htZW50JywgJy0tZm9yY2UtY2xlYW4nLCAnLS1ub24taW50ZXJhY3RpdmUn
LCAnLS1xdWlldCcsIHBhdGNoWydpZCddXSkKKyAgICAgICAgc2VsZi5ydW5fYnVnemlsbGFfdG9v
bChbImxhbmQtYXR0YWNobWVudCIsICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZl
IiwgIi0tcXVpZXQiLCBwYXRjaFsiaWQiXV0pCiAKICAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRf
ZXJyb3Ioc2VsZiwgcGF0Y2gsIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLnRvb2wuYnVncy5yZWpl
Y3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUocGF0Y2hbJ2lkJ10sIG1lc3NhZ2UpCisgICAgICAg
IHNlbGYudG9vbC5idWdzLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShwYXRjaFsiaWQi
XSwgbWVzc2FnZSkKIAogCiBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UXVldWUpOgpAQCAtODI1
LDEwICs4MjUsMTAgQEAgY2xhc3MgU3R5bGVRdWV1ZShBYnN0cmFjdFF1ZXVlKToKICAgICAgICAg
cmV0dXJuIHNlbGYuX3BhdGNoZXMubmV4dCgpCiAKICAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0
aF93b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gKFRydWUsICJDaGVja2lu
ZyBzdHlsZSBmb3IgcGF0Y2ggJXMgb24gYnVnICVzLiIgJSAocGF0Y2hbJ2lkJ10sIHBhdGNoWydi
dWdfaWQnXSksIHBhdGNoWydidWdfaWQnXSkKKyAgICAgICAgcmV0dXJuIChUcnVlLCAiQ2hlY2tp
bmcgc3R5bGUgZm9yIHBhdGNoICVzIG9uIGJ1ZyAlcy4iICUgKHBhdGNoWyJpZCJdLCBwYXRjaFsi
YnVnX2lkIl0pLCBwYXRjaFsiYnVnX2lkIl0pCiAKICAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0o
c2VsZiwgcGF0Y2gpOgotICAgICAgICBzZWxmLnJ1bl9idWd6aWxsYV90b29sKFsnY2hlY2stc3R5
bGUnLCAnLS1mb3JjZS1jbGVhbicsIHBhdGNoWydpZCddXSkKKyAgICAgICAgc2VsZi5ydW5fYnVn
emlsbGFfdG9vbChbImNoZWNrLXN0eWxlIiwgIi0tZm9yY2UtY2xlYW4iLCBwYXRjaFsiaWQiXV0p
CiAKICAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Ioc2VsZiwgcGF0Y2gsIG1lc3NhZ2Up
OgogICAgICAgICBsb2cobWVzc2FnZSkKQEAgLTg0OSw3ICs4NDksNyBAQCBjbGFzcyBIZWxwUHJp
bnRpbmdPcHRpb25QYXJzZXIoT3B0aW9uUGFyc2VyKToKICAgICBkZWYgZXJyb3Ioc2VsZiwgbXNn
KToKICAgICAgICAgc2VsZi5wcmludF91c2FnZShzeXMuc3RkZXJyKQogICAgICAgICBlcnJvcl9t
ZXNzYWdlID0gIiVzOiBlcnJvcjogJXNcbiIgJSAoc2VsZi5nZXRfcHJvZ19uYW1lKCksIG1zZykK
LSAgICAgICAgZXJyb3JfbWVzc2FnZSArPSAiXG5UeXBlICciICsgc2VsZi5nZXRfcHJvZ19uYW1l
KCkgKyAiIC0taGVscCcgdG8gc2VlIHVzYWdlLlxuIgorICAgICAgICBlcnJvcl9tZXNzYWdlICs9
ICJcblR5cGUgXCIiICsgc2VsZi5nZXRfcHJvZ19uYW1lKCkgKyAiIC0taGVscFwiIHRvIHNlZSB1
c2FnZS5cbiIKICAgICAgICAgc2VsZi5leGl0KDIsIGVycm9yX21lc3NhZ2UpCiAKIApAQCAtODU5
LDI0ICs4NTksMjQgQEAgY2xhc3MgQnVnemlsbGFUb29sOgogICAgICAgICBzZWxmLmJ1Z3MgPSBC
dWd6aWxsYSgpCiAgICAgICAgIHNlbGYuYnVpbGRib3QgPSBCdWlsZEJvdCgpCiAgICAgICAgIHNl
bGYuY29tbWFuZHMgPSBbCi0gICAgICAgICAgICB7ICduYW1lJyA6ICdidWdzLXRvLWNvbW1pdCcs
ICdvYmplY3QnIDogQnVnc0luQ29tbWl0UXVldWUoKSB9LAotICAgICAgICAgICAgeyAnbmFtZScg
OiAncGF0Y2hlcy10by1jb21taXQnLCAnb2JqZWN0JyA6IFBhdGNoZXNJbkNvbW1pdFF1ZXVlKCkg
fSwKLSAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Jldmlld2VkLXBhdGNoZXMnLCAnb2JqZWN0JyA6
IFJldmlld2VkUGF0Y2hlc09uQnVnKCkgfSwKLSAgICAgICAgICAgIHsgJ25hbWUnIDogJ2NyZWF0
ZS1idWcnLCAnb2JqZWN0JyA6IENyZWF0ZUJ1ZygpIH0sCi0gICAgICAgICAgICB7ICduYW1lJyA6
ICdhcHBseS1hdHRhY2htZW50JywgJ29iamVjdCcgOiBBcHBseUF0dGFjaG1lbnQoKSB9LAotICAg
ICAgICAgICAgeyAnbmFtZScgOiAnYXBwbHktcGF0Y2hlcycsICdvYmplY3QnIDogQXBwbHlQYXRj
aGVzRnJvbUJ1ZygpIH0sCi0gICAgICAgICAgICB7ICduYW1lJyA6ICdsYW5kLWRpZmYnLCAnb2Jq
ZWN0JyA6IExhbmRBbmRVcGRhdGVCdWcoKSB9LAotICAgICAgICAgICAgeyAnbmFtZScgOiAnbGFu
ZC1hdHRhY2htZW50JywgJ29iamVjdCcgOiBMYW5kQXR0YWNobWVudCgpIH0sCi0gICAgICAgICAg
ICB7ICduYW1lJyA6ICdsYW5kLXBhdGNoZXMnLCAnb2JqZWN0JyA6IExhbmRQYXRjaGVzRnJvbUJ1
Z3MoKSB9LAotICAgICAgICAgICAgeyAnbmFtZScgOiAnY2hlY2stc3R5bGUnLCAnb2JqZWN0JyA6
IENoZWNrU3R5bGUoKSB9LAotICAgICAgICAgICAgeyAnbmFtZScgOiAnY29tbWl0LW1lc3NhZ2Un
LCAnb2JqZWN0JyA6IENvbW1pdE1lc3NhZ2VGb3JDdXJyZW50RGlmZigpIH0sCi0gICAgICAgICAg
ICB7ICduYW1lJyA6ICdvYnNvbGV0ZS1hdHRhY2htZW50cycsICdvYmplY3QnIDogT2Jzb2xldGVB
dHRhY2htZW50c09uQnVnKCkgfSwKLSAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Bvc3QtZGlmZics
ICdvYmplY3QnIDogUG9zdERpZmZBc1BhdGNoVG9CdWcoKSB9LAotICAgICAgICAgICAgeyAnbmFt
ZScgOiAncG9zdC1jb21taXRzJywgJ29iamVjdCcgOiBQb3N0Q29tbWl0c0FzUGF0Y2hlc1RvQnVn
KCkgfSwKLSAgICAgICAgICAgIHsgJ25hbWUnIDogJ3RyZWUtc3RhdHVzJywgJ29iamVjdCcgOiBD
aGVja1RyZWVTdGF0dXMoKSB9LAotICAgICAgICAgICAgeyAnbmFtZScgOiAnY29tbWl0LXF1ZXVl
JywgJ29iamVjdCcgOiBDb21taXRRdWV1ZSgpIH0sCi0gICAgICAgICAgICB7ICduYW1lJyA6ICdz
dHlsZS1xdWV1ZScsICdvYmplY3QnIDogU3R5bGVRdWV1ZSgpIH0sCi0gICAgICAgICAgICB7ICdu
YW1lJyA6ICdyb2xsb3V0JywgJ29iamVjdCcgOiBSb2xsb3V0Q29tbWl0KCkgfSwKKyAgICAgICAg
ICAgIHsgIm5hbWUiIDogImJ1Z3MtdG8tY29tbWl0IiwgIm9iamVjdCIgOiBCdWdzSW5Db21taXRR
dWV1ZSgpIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJwYXRjaGVzLXRvLWNvbW1pdCIsICJv
YmplY3QiIDogUGF0Y2hlc0luQ29tbWl0UXVldWUoKSB9LAorICAgICAgICAgICAgeyAibmFtZSIg
OiAicmV2aWV3ZWQtcGF0Y2hlcyIsICJvYmplY3QiIDogUmV2aWV3ZWRQYXRjaGVzT25CdWcoKSB9
LAorICAgICAgICAgICAgeyAibmFtZSIgOiAiY3JlYXRlLWJ1ZyIsICJvYmplY3QiIDogQ3JlYXRl
QnVnKCkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogImFwcGx5LWF0dGFjaG1lbnQiLCAib2Jq
ZWN0IiA6IEFwcGx5QXR0YWNobWVudCgpIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJhcHBs
eS1wYXRjaGVzIiwgIm9iamVjdCIgOiBBcHBseVBhdGNoZXNGcm9tQnVnKCkgfSwKKyAgICAgICAg
ICAgIHsgIm5hbWUiIDogImxhbmQtZGlmZiIsICJvYmplY3QiIDogTGFuZEFuZFVwZGF0ZUJ1Zygp
IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsYW5kLWF0dGFjaG1lbnQiLCAib2JqZWN0IiA6
IExhbmRBdHRhY2htZW50KCkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogImxhbmQtcGF0Y2hl
cyIsICJvYmplY3QiIDogTGFuZFBhdGNoZXNGcm9tQnVncygpIH0sCisgICAgICAgICAgICB7ICJu
YW1lIiA6ICJjaGVjay1zdHlsZSIsICJvYmplY3QiIDogQ2hlY2tTdHlsZSgpIH0sCisgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJjb21taXQtbWVzc2FnZSIsICJvYmplY3QiIDogQ29tbWl0TWVzc2Fn
ZUZvckN1cnJlbnREaWZmKCkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9ic29sZXRlLWF0
dGFjaG1lbnRzIiwgIm9iamVjdCIgOiBPYnNvbGV0ZUF0dGFjaG1lbnRzT25CdWcoKSB9LAorICAg
ICAgICAgICAgeyAibmFtZSIgOiAicG9zdC1kaWZmIiwgIm9iamVjdCIgOiBQb3N0RGlmZkFzUGF0
Y2hUb0J1ZygpIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJwb3N0LWNvbW1pdHMiLCAib2Jq
ZWN0IiA6IFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcoKSB9LAorICAgICAgICAgICAgeyAibmFt
ZSIgOiAidHJlZS1zdGF0dXMiLCAib2JqZWN0IiA6IENoZWNrVHJlZVN0YXR1cygpIH0sCisgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJjb21taXQtcXVldWUiLCAib2JqZWN0IiA6IENvbW1pdFF1ZXVl
KCkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogInN0eWxlLXF1ZXVlIiwgIm9iamVjdCIgOiBT
dHlsZVF1ZXVlKCkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogInJvbGxvdXQiLCAib2JqZWN0
IiA6IFJvbGxvdXRDb21taXQoKSB9LAogICAgICAgICBdCiAKICAgICAgICAgc2VsZi5nbG9iYWxf
b3B0aW9uX3BhcnNlciA9IEhlbHBQcmludGluZ09wdGlvblBhcnNlcih1c2FnZT1zZWxmLnVzYWdl
X2xpbmUoKSwgZm9ybWF0dGVyPU5vbldyYXBwaW5nRXBpbG9nSW5kZW50ZWRIZWxwRm9ybWF0dGVy
KCksIGVwaWxvZz1zZWxmLmNvbW1hbmRzX3VzYWdlKCkpCkBAIC04ODQsNyArODg0LDcgQEAgY2xh
c3MgQnVnemlsbGFUb29sOgogCiAgICAgZGVmIHNjbShzZWxmKToKICAgICAgICAgIyBMYXppbHkg
aW5pdGlhbGl6ZSBTQ00gdG8gbm90IGVycm9yLW91dCBiZWZvcmUgY29tbWFuZCBsaW5lIHBhcnNp
bmcgKG9yIHdoZW4gcnVubmluZyBub24tc2NtIGNvbW1hbmRzKS4KLSAgICAgICAgb3JpZ2luYWxf
Y3dkID0gb3MucGF0aC5hYnNwYXRoKCcuJykKKyAgICAgICAgb3JpZ2luYWxfY3dkID0gb3MucGF0
aC5hYnNwYXRoKCIuIikKICAgICAgICAgaWYgbm90IHNlbGYuY2FjaGVkX3NjbToKICAgICAgICAg
ICAgIHNlbGYuY2FjaGVkX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKG9yaWdpbmFsX2N3ZCkKICAg
ICAgICAgCkBAIC05MDksMTEgKzkwOSwxMSBAQCBjbGFzcyBCdWd6aWxsYVRvb2w6CiAgICAgICAg
IGNvbW1hbmRfcm93cyA9IFtdCiAgICAgICAgIHNjbV9zdXBwb3J0c19sb2NhbF9jb21taXRzID0g
c2VsZi5zY20oKS5zdXBwb3J0c19sb2NhbF9jb21taXRzKCkKICAgICAgICAgZm9yIGNvbW1hbmQg
aW4gc2VsZi5jb21tYW5kczoKLSAgICAgICAgICAgIGNvbW1hbmRfb2JqZWN0ID0gY29tbWFuZFsn
b2JqZWN0J10KKyAgICAgICAgICAgIGNvbW1hbmRfb2JqZWN0ID0gY29tbWFuZFsib2JqZWN0Il0K
ICAgICAgICAgICAgIGlmIGNvbW1hbmRfb2JqZWN0LnJlcXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5k
IG5vdCBzY21fc3VwcG9ydHNfbG9jYWxfY29tbWl0czoKICAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgY29tbWFuZF9uYW1lX2FuZF9hcmdzID0gY29tbWFuZF9vYmplY3QubmFt
ZV93aXRoX2FyZ3VtZW50cyhjb21tYW5kWyduYW1lJ10pCi0gICAgICAgICAgICBjb21tYW5kX3Jv
d3MuYXBwZW5kKHsgJ25hbWUtYW5kLWFyZ3MnOiBjb21tYW5kX25hbWVfYW5kX2FyZ3MsICdvYmpl
Y3QnOiBjb21tYW5kX29iamVjdCB9KQorICAgICAgICAgICAgY29tbWFuZF9uYW1lX2FuZF9hcmdz
ID0gY29tbWFuZF9vYmplY3QubmFtZV93aXRoX2FyZ3VtZW50cyhjb21tYW5kWyJuYW1lIl0pCisg
ICAgICAgICAgICBjb21tYW5kX3Jvd3MuYXBwZW5kKHsgIm5hbWUtYW5kLWFyZ3MiOiBjb21tYW5k
X25hbWVfYW5kX2FyZ3MsICJvYmplY3QiOiBjb21tYW5kX29iamVjdCB9KQogICAgICAgICAgICAg
bG9uZ2VzdF9uYW1lX2xlbmd0aCA9IG1heChbbG9uZ2VzdF9uYW1lX2xlbmd0aCwgbGVuKGNvbW1h
bmRfbmFtZV9hbmRfYXJncyldKQogICAgICAgICAKICAgICAgICAgIyBVc2Ugb3VyIG93biBoZWxw
IGZvcm1hdHRlciBzbyBhcyB0byBpbmRlbnQgZW5vdWdoLgpAQCAtOTIyLDE1ICs5MjIsMTUgQEAg
Y2xhc3MgQnVnemlsbGFUb29sOgogICAgICAgICBmb3JtYXR0ZXIuaW5kZW50KCkKICAgICAgICAg
CiAgICAgICAgIGZvciByb3cgaW4gY29tbWFuZF9yb3dzOgotICAgICAgICAgICAgY29tbWFuZF9v
YmplY3QgPSByb3dbJ29iamVjdCddCi0gICAgICAgICAgICBjb21tYW5kc190ZXh0ICs9ICIgICIg
KyByb3dbJ25hbWUtYW5kLWFyZ3MnXS5sanVzdChsb25nZXN0X25hbWVfbGVuZ3RoICsgMykgKyBj
b21tYW5kX29iamVjdC5oZWxwX3RleHQgKyAiXG4iCisgICAgICAgICAgICBjb21tYW5kX29iamVj
dCA9IHJvd1sib2JqZWN0Il0KKyAgICAgICAgICAgIGNvbW1hbmRzX3RleHQgKz0gIiAgIiArIHJv
d1sibmFtZS1hbmQtYXJncyJdLmxqdXN0KGxvbmdlc3RfbmFtZV9sZW5ndGggKyAzKSArIGNvbW1h
bmRfb2JqZWN0LmhlbHBfdGV4dCArICJcbiIKICAgICAgICAgICAgIGNvbW1hbmRzX3RleHQgKz0g
Y29tbWFuZF9vYmplY3Qub3B0aW9uX3BhcnNlci5mb3JtYXRfb3B0aW9uX2hlbHAoZm9ybWF0dGVy
KQogICAgICAgICByZXR1cm4gY29tbWFuZHNfdGV4dAogCiAgICAgZGVmIGhhbmRsZV9nbG9iYWxf
YXJncyhzZWxmLCBhcmdzKToKICAgICAgICAgKG9wdGlvbnMsIGFyZ3MpID0gc2VsZi5nbG9iYWxf
b3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCiAgICAgICAgIGlmIGxlbihhcmdzKToKLSAg
ICAgICAgICAgICMgV2UnbGwgbmV2ZXIgaGl0IHRoaXMgYmVjYXVzZSBzcGxpdF9hcmdzIHNwbGl0
cyBhdCB0aGUgZmlyc3QgYXJnIHdpdGhvdXQgYSBsZWFkaW5nICctJworICAgICAgICAgICAgIyBX
ZSdsbCBuZXZlciBoaXQgdGhpcyBiZWNhdXNlIHNwbGl0X2FyZ3Mgc3BsaXRzIGF0IHRoZSBmaXJz
dCBhcmcgd2l0aG91dCBhIGxlYWRpbmcgIi0iCiAgICAgICAgICAgICBzZWxmLmdsb2JhbF9vcHRp
b25fcGFyc2VyLmVycm9yKCJFeHRyYSBhcmd1bWVudHMgYmVmb3JlIGNvbW1hbmQ6ICIgKyBhcmdz
KQogICAgICAgICAKICAgICAgICAgaWYgb3B0aW9ucy5kcnlydW46CkBAIC05MzksMTAgKzkzOSwx
MCBAQCBjbGFzcyBCdWd6aWxsYVRvb2w6CiAgICAgCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRl
ZiBzcGxpdF9hcmdzKGFyZ3MpOgotICAgICAgICAjIEFzc3VtZSB0aGUgZmlyc3QgYXJndW1lbnQg
d2hpY2ggZG9lc24ndCBzdGFydCB3aXRoICctJyBpcyB0aGUgY29tbWFuZCBuYW1lLgorICAgICAg
ICAjIEFzc3VtZSB0aGUgZmlyc3QgYXJndW1lbnQgd2hpY2ggZG9lc24ndCBzdGFydCB3aXRoICIt
IiBpcyB0aGUgY29tbWFuZCBuYW1lLgogICAgICAgICBjb21tYW5kX2luZGV4ID0gMAogICAgICAg
ICBmb3IgYXJnIGluIGFyZ3M6Ci0gICAgICAgICAgICBpZiBhcmdbMF0gIT0gJy0nOgorICAgICAg
ICAgICAgaWYgYXJnWzBdICE9ICItIjoKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg
ICAgY29tbWFuZF9pbmRleCArPSAxCiAgICAgICAgIGVsc2U6CkBAIC05NTUsNyArOTU1LDcgQEAg
Y2xhc3MgQnVnemlsbGFUb29sOgogICAgIAogICAgIGRlZiBjb21tYW5kX2J5X25hbWUoc2VsZiwg
Y29tbWFuZF9uYW1lKToKICAgICAgICAgZm9yIGNvbW1hbmQgaW4gc2VsZi5jb21tYW5kczoKLSAg
ICAgICAgICAgIGlmIGNvbW1hbmRfbmFtZSA9PSBjb21tYW5kWyduYW1lJ106CisgICAgICAgICAg
ICBpZiBjb21tYW5kX25hbWUgPT0gY29tbWFuZFsibmFtZSJdOgogICAgICAgICAgICAgICAgIHJl
dHVybiBjb21tYW5kCiAgICAgICAgIHJldHVybiBOb25lCiAgICAgCkBAIC05NzIsNyArOTcyLDcg
QEAgY2xhc3MgQnVnemlsbGFUb29sOgogICAgICAgICBpZiBub3QgY29tbWFuZDoKICAgICAgICAg
ICAgIHNlbGYuZ2xvYmFsX29wdGlvbl9wYXJzZXIuZXJyb3IoY29tbWFuZF9uYW1lICsgIiBpcyBu
b3QgYSByZWNvZ25pemVkIGNvbW1hbmQiKQogCi0gICAgICAgIGNvbW1hbmRfb2JqZWN0ID0gY29t
bWFuZFsnb2JqZWN0J10KKyAgICAgICAgY29tbWFuZF9vYmplY3QgPSBjb21tYW5kWyJvYmplY3Qi
XQogCiAgICAgICAgIGlmIGNvbW1hbmRfb2JqZWN0LnJlcXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5k
IG5vdCBzZWxmLnNjbSgpLnN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoKToKICAgICAgICAgICAgIGVy
cm9yKGNvbW1hbmRfbmFtZSArICIgcmVxdWlyZXMgbG9jYWwgY29tbWl0cyB1c2luZyAlcyBpbiAl
cy4iICUgKHNlbGYuc2NtKCkuZGlzcGxheV9uYW1lKCksIHNlbGYuc2NtKCkuY2hlY2tvdXRfcm9v
dCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>