<?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>95742</bug_id>
          
          <creation_ts>2012-09-04 06:30:08 -0700</creation_ts>
          <short_desc>Need to run git commands within the checkout directory</short_desc>
          <delta_ts>2012-09-04 14:22:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>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="Satish Sampath">satish</reporter>
          <assigned_to name="Satish Sampath">satish</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>711055</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2012-09-04 06:30:08 -0700</bug_when>
    <thetext>git commands run from Tools/Scripts/webkitpy/common/checkout/scm/git.py are sometimes run with cwd set to the checkout_root and other times with whatever directory was the default cwd. Instead all these should run with the checkout root set as the cwd (except where we explicitly need a different path)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711066</commentid>
    <comment_count>1</comment_count>
      <attachid>162031</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2012-09-04 06:36:00 -0700</bug_when>
    <thetext>Created attachment 162031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711074</commentid>
    <comment_count>2</comment_count>
      <attachid>162031</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-09-04 06:44:34 -0700</bug_when>
    <thetext>Comment on attachment 162031
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=162031&amp;action=review

One minor nit. Thanks, seems like a good clean-up overall :-). Did you intend to request commit as well?

&gt; Tools/Scripts/webkitpy/common/checkout/scm/git.py:101
&gt; +    def _run_exe(self, command_args, **kwargs):

nit: I&apos;m not thrilled about the &quot;_run_exe&quot; name, maybe something like &quot;_run_git_command&quot; would be better? If this issue applies to svn as well, maybe this could be generalized in the SCM class and name it &quot;_run_scm_command&quot;..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711109</commentid>
    <comment_count>3</comment_count>
      <attachid>162031</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2012-09-04 07:37:11 -0700</bug_when>
    <thetext>Comment on attachment 162031
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=162031&amp;action=review

&gt;&gt; Tools/Scripts/webkitpy/common/checkout/scm/git.py:101
&gt;&gt; +    def _run_exe(self, command_args, **kwargs):
&gt; 
&gt; nit: I&apos;m not thrilled about the &quot;_run_exe&quot; name, maybe something like &quot;_run_git_command&quot; would be better? If this issue applies to svn as well, maybe this could be generalized in the SCM class and name it &quot;_run_scm_command&quot;..

I&apos;ll rename it to _run_git() similar to how there is a _run_svn() in svn.py. Since I don&apos;t have an svn checkout don&apos;t know if that has similar issues, would be better for someone with an svn checkout to send a patch if they find an issue with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711110</commentid>
    <comment_count>4</comment_count>
      <attachid>162041</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2012-09-04 07:37:26 -0700</bug_when>
    <thetext>Created attachment 162041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711295</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-04 11:41:11 -0700</bug_when>
    <thetext>Eric should probably review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711355</commentid>
    <comment_count>6</comment_count>
      <attachid>162041</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-04 12:44:03 -0700</bug_when>
    <thetext>Comment on attachment 162041
Patch

Seems like a win.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711449</commentid>
    <comment_count>7</comment_count>
      <attachid>162041</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 14:22:38 -0700</bug_when>
    <thetext>Comment on attachment 162041
Patch

Clearing flags on attachment: 162041

Committed r127507: &lt;http://trac.webkit.org/changeset/127507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711451</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 14:22:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162031</attachid>
            <date>2012-09-04 06:36:00 -0700</date>
            <delta_ts>2012-09-04 07:37:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95742-20120904143543.patch</filename>
            <type>text/plain</type>
            <size>17557</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MzYw
OWUyZTNlY2ExMWUyM2NjMDk2MzY0MWRmM2ZjNjM5NmY3MDYwLi41YTBhNzQyMzZjOWNmODkyNDNl
MzgxNWFhNTFiNmQ4ZWVjODcxODJhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTItMDktMDQgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSdW4gZ2l0IGNvbW1hbmRzIHdp
dGhpbiB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGdpdCBjb21tYW5kcyBydW4gZnJvbSBzY20vZ2l0LnB5IGFyZSBz
b21ldGltZXMgcnVuIHdpdGggY3dkIHNldCB0byB0aGUKKyAgICAgICAgY2hlY2tvdXRfcm9vdCBh
bmQgb3RoZXIgdGltZXMgd2l0aCB3aGF0ZXZlciBkaXJlY3Rvcnkgd2FzIHRoZSBkZWZhdWx0IGN3
ZC4KKyAgICAgICAgSW5zdGVhZCBhbGwgdGhlc2Ugc2hvdWxkIHJ1biB3aXRoIHRoZSBjaGVja291
dCByb290IHNldCBhcyB0aGUgY3dkCisgICAgICAgIChleGNlcHQgd2hlcmUgd2UgZXhwbGljaXRs
eSBuZWVkIGEgZGlmZmVyZW50IHBhdGgpCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9zY20vZ2l0LnB5OgorICAgICAgICAoR2l0Ll9ydW5fZXhlKToKKyAgICAg
ICAgKEdpdC5maW5kX2NoZWNrb3V0X3Jvb3QpOgorICAgICAgICAoR2l0LmRpc2NhcmRfbG9jYWxf
Y29tbWl0cyk6CisgICAgICAgIChHaXQubG9jYWxfY29tbWl0cyk6CisgICAgICAgIChHaXQud29y
a2luZ19kaXJlY3RvcnlfaXNfY2xlYW4pOgorICAgICAgICAoR2l0LmNsZWFuX3dvcmtpbmdfZGly
ZWN0b3J5KToKKyAgICAgICAgKEdpdC5hZGRfbGlzdCk6CisgICAgICAgIChHaXQuZGVsZXRlX2xp
c3QpOgorICAgICAgICAoR2l0LmV4aXN0cyk6CisgICAgICAgIChHaXQuX2N1cnJlbnRfYnJhbmNo
KToKKyAgICAgICAgKEdpdC5fY2hhbmdlc19maWxlc19mb3JfY29tbWl0KToKKyAgICAgICAgKEdp
dC5yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZSk6CisgICAgICAgIChHaXQuc3ZuX3JldmlzaW9uKToK
KyAgICAgICAgKEdpdC5fcnVuX2dpdF9zdm5fZmluZF9yZXYpOgorICAgICAgICAoR2l0LmNvbnRl
bnRzX2F0X3JldmlzaW9uKToKKyAgICAgICAgKEdpdC5kaWZmX2Zvcl9maWxlKToKKyAgICAgICAg
KEdpdC5zaG93X2hlYWQpOgorICAgICAgICAoR2l0LmNvbW1pdHRlcl9lbWFpbF9mb3JfcmV2aXNp
b24pOgorICAgICAgICAoR2l0LmFwcGx5X3JldmVyc2VfZGlmZik6CisgICAgICAgIChHaXQucmV2
ZXJ0X2ZpbGVzKToKKyAgICAgICAgKEdpdC5jb21taXRfd2l0aF9tZXNzYWdlKToKKyAgICAgICAg
KEdpdC5fY29tbWl0X29uX2JyYW5jaCk6CisgICAgICAgIChHaXQuc3ZuX2NvbW1pdF9sb2cpOgor
ICAgICAgICAoR2l0Lmxhc3Rfc3ZuX2NvbW1pdF9sb2cpOgorICAgICAgICAoR2l0LnN2bl9ibGFt
ZSk6CisgICAgICAgIChHaXQuX2JyYW5jaF9yZWZfZXhpc3RzKToKKyAgICAgICAgKEdpdC5kZWxl
dGVfYnJhbmNoKToKKyAgICAgICAgKEdpdC5yZW1vdGVfbWVyZ2VfYmFzZSk6CisgICAgICAgIChH
aXQuY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKToKKyAgICAgICAgKEdpdC5wdXNoX2xvY2Fs
X2NvbW1pdHNfdG9fc2VydmVyKToKKyAgICAgICAgKEdpdC5jb21taXRfaWRzX2Zyb21fY29tbWl0
aXNoX2FyZ3VtZW50cyk6CisgICAgICAgIChHaXQuY29tbWl0X21lc3NhZ2VfZm9yX2xvY2FsX2Nv
bW1pdCk6CisgICAgICAgIChHaXQuZmlsZXNfY2hhbmdlZF9zdW1tYXJ5X2Zvcl9jb21taXQpOgor
CiAyMDEyLTA5LTAzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMXSBDaGFuZ2UgdGhlIGZvY3VzIHdoZW4gdGhlIHdlYiB2aWV3IGlzIGNsaWNrZWQg
aW4gTWluaUJyb3dzZXIgYW5kIEVXZWJMYXVuY2hlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9naXQucHkKaW5kZXggYTIwM2ZlMTJhYzEwODBlMmQ2
NWU1YTg2ZWFlODgwZDI1ZjBkN2E0YS4uZDllMmNlNTNjOGZhZWRmOGE3NzFiMjJlMzY0MTE4Nzkz
N2YwMTVlZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL2dpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZ2l0LnB5CkBAIC05OCw2ICs5OCwxMyBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBvc2l0
b3J5KToKICAgICAgICAgd2Via2l0X2Rldl90aHJlYWRfdXJsID0gImh0dHBzOi8vbGlzdHMud2Vi
a2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDEwLURlY2VtYmVyLzAxNTI4Ny5odG1sIgog
ICAgICAgICBsb2coIldhcm5pbmc6IFRoaXMgbWFjaGluZSBpcyA2NC1iaXQsIGJ1dCB0aGUgZ2l0
IGJpbmFyeSAoJXMpIGRvZXMgbm90IHN1cHBvcnQgNjQtYml0LlxuSW5zdGFsbCBhIDY0LWJpdCBn
aXQgZm9yIGJldHRlciBwZXJmb3JtYW5jZSwgc2VlOlxuJXNcbiIgJSAoZ2l0X3BhdGgsIHdlYmtp
dF9kZXZfdGhyZWFkX3VybCkpCiAKKyAgICBkZWYgX3J1bl9leGUoc2VsZiwgY29tbWFuZF9hcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIGZ1bGxfY29tbWFuZF9hcmdzID0gW3NlbGYuZXhlY3V0YWJs
ZV9uYW1lXSArIGNvbW1hbmRfYXJncworICAgICAgICBmdWxsX2t3YXJncyA9IGt3YXJncworICAg
ICAgICBpZiBub3QgJ2N3ZCcgaW4gZnVsbF9rd2FyZ3M6CisgICAgICAgICAgICBmdWxsX2t3YXJn
c1snY3dkJ10gPSBzZWxmLmNoZWNrb3V0X3Jvb3QKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKGZ1
bGxfY29tbWFuZF9hcmdzLCAqKmZ1bGxfa3dhcmdzKQorCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGluX3dvcmtpbmdfZGlyZWN0b3J5KGNscywgcGF0aCwgZXhlY3V0aXZlPU5vbmUpOgogICAg
ICAgICB0cnk6CkBAIC0xMDksNyArMTE2LDcgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9y
eSk6CiAKICAgICBkZWYgZmluZF9jaGVja291dF9yb290KHNlbGYsIHBhdGgpOgogICAgICAgICAj
ICJnaXQgcmV2LXBhcnNlIC0tc2hvdy1jZHVwIiB3b3VsZCBiZSBhbm90aGVyIHdheSB0byBnZXQg
dG8gdGhlIHJvb3QKLSAgICAgICAgY2hlY2tvdXRfcm9vdCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5f
Y29tbWFuZChbc2VsZi5leGVjdXRhYmxlX25hbWUsICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxl
dmVsJ10sIGN3ZD0ocGF0aCBvciAiLi8iKSkuc3RyaXAoKQorICAgICAgICBjaGVja291dF9yb290
ID0gc2VsZi5fcnVuX2V4ZShbJ3Jldi1wYXJzZScsICctLXNob3ctdG9wbGV2ZWwnXSwgY3dkPShw
YXRoIG9yICIuLyIpKS5zdHJpcCgpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlz
YWJzKGNoZWNrb3V0X3Jvb3QpOiAgIyBTb21ldGltZXMgZ2l0IHJldHVybnMgcmVsYXRpdmUgcGF0
aHMKICAgICAgICAgICAgIGNoZWNrb3V0X3Jvb3QgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4ocGF0
aCwgY2hlY2tvdXRfcm9vdCkKICAgICAgICAgcmV0dXJuIGNoZWNrb3V0X3Jvb3QKQEAgLTEzMywy
NSArMTQwLDIzIEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogICAgICAgICByZXR1
cm4gIl5Db21taXR0ZWQgcig/UDxzdm5fcmV2aXNpb24+XGQrKSQiCiAKICAgICBkZWYgZGlzY2Fy
ZF9sb2NhbF9jb21taXRzKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9i
YWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAotICAgICAgICBzZWxmLnJ1bihbc2VsZi5l
eGVjdXRhYmxlX25hbWUsICdyZXNldCcsICctLWhhcmQnLCBzZWxmLnJlbW90ZV9icmFuY2hfcmVm
KCldKQorICAgICAgICBzZWxmLl9ydW5fZXhlKFsncmVzZXQnLCAnLS1oYXJkJywgc2VsZi5yZW1v
dGVfYnJhbmNoX3JlZigpXSkKIAogICAgIGRlZiBsb2NhbF9jb21taXRzKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnbG9nJywgJy0tcHJldHR5
PW9uZWxpbmUnLCAnSEVBRC4uLicgKyBzZWxmLnJlbW90ZV9icmFuY2hfcmVmKCldLCBjd2Q9c2Vs
Zi5jaGVja291dF9yb290KS5zcGxpdGxpbmVzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9l
eGUoWydsb2cnLCAnLS1wcmV0dHk9b25lbGluZScsICdIRUFELi4uJyArIHNlbGYucmVtb3RlX2Jy
YW5jaF9yZWYoKV0pLnNwbGl0bGluZXMoKQogCiAgICAgZGVmIHJlYmFzZV9pbl9wcm9ncmVzcyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHNlbGYuYWJzb2x1
dGVfcGF0aChzZWxmLl9maWxlc3lzdGVtLmpvaW4oJy5naXQnLCAncmViYXNlLWFwcGx5JykpKQog
CiAgICAgZGVmIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnZGlmZicsICdIRUFEJywgJy0tbm8t
cmVuYW1lcycsICctLW5hbWUtb25seSddLCBjd2Q9c2VsZi5jaGVja291dF9yb290KSA9PSAiIgor
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2V4ZShbJ2RpZmYnLCAnSEVBRCcsICctLW5vLXJlbmFt
ZXMnLCAnLS1uYW1lLW9ubHknXSkgPT0gIiIKIAogICAgIGRlZiBjbGVhbl93b3JraW5nX2RpcmVj
dG9yeShzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhlc2Ugc2hvdWxkIHByb2JhYmx5IHVzZSBj
d2Q9c2VsZi5jaGVja291dF9yb290LgogICAgICAgICAjIENvdWxkIHJ1biBnaXQgY2xlYW4gaGVy
ZSB0b28sIGJ1dCB0aGF0IHdvdWxkbid0IG1hdGNoIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFu
Ci0gICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3Jlc2V0JywgJy0taGFy
ZCcsICdIRUFEJ10pCisgICAgICAgIHNlbGYuX3J1bl9leGUoWydyZXNldCcsICctLWhhcmQnLCAn
SEVBRCddKQogICAgICAgICAjIEFib3J0aW5nIHJlYmFzZSBldmVuIHRob3VnaCB0aGlzIGRvZXMg
bm90IG1hdGNoIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuCiAgICAgICAgIGlmIHNlbGYucmVi
YXNlX2luX3Byb2dyZXNzKCk6Ci0gICAgICAgICAgICBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxl
X25hbWUsICdyZWJhc2UnLCAnLS1hYm9ydCddKQorICAgICAgICAgICAgc2VsZi5fcnVuX2V4ZShb
J3JlYmFzZScsICctLWFib3J0J10pCiAKICAgICBkZWYgc3RhdHVzX2NvbW1hbmQoc2VsZik6CiAg
ICAgICAgICMgZ2l0IHN0YXR1cyByZXR1cm5zIG5vbi16ZXJvIHdoZW4gdGhlcmUgYXJlIGNoYW5n
ZXMsIHNvIHdlIHVzZSBnaXQgZGlmZiBuYW1lIC0tbmFtZS1zdGF0dXMgSEVBRCBpbnN0ZWFkLgpA
QCAtMTYyLDIwICsxNjcsMjAgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAg
ICAgIHJldHVybiAnXig/UDxzdGF0dXM+WyVzXSlcdCg/UDxmaWxlbmFtZT4uKykkJyAlIGV4cGVj
dGVkX3R5cGVzCiAKICAgICBkZWYgYWRkX2xpc3Qoc2VsZiwgcGF0aHMsIHJldHVybl9leGl0X2Nv
ZGU9RmFsc2UpOgotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1l
LCAiYWRkIl0gKyBwYXRocywgcmV0dXJuX2V4aXRfY29kZT1yZXR1cm5fZXhpdF9jb2RlKQorICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2V4ZShbImFkZCJdICsgcGF0aHMsIHJldHVybl9leGl0X2Nv
ZGU9cmV0dXJuX2V4aXRfY29kZSkKIAogICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBwYXRocyk6
Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJybSIsICIt
ZiJdICsgcGF0aHMpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsicm0iLCAiLWYiXSAr
IHBhdGhzKQogCiAgICAgZGVmIGV4aXN0cyhzZWxmLCBwYXRoKToKLSAgICAgICAgcmV0dXJuX2Nv
ZGUgPSBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIkhFQUQ6JXMiICUg
cGF0aF0sIHJldHVybl9leGl0X2NvZGU9VHJ1ZSwgZGVjb2RlX291dHB1dD1GYWxzZSkKKyAgICAg
ICAgcmV0dXJuX2NvZGUgPSBzZWxmLl9ydW5fZXhlKFsic2hvdyIsICJIRUFEOiVzIiAlIHBhdGhd
LCByZXR1cm5fZXhpdF9jb2RlPVRydWUsIGRlY29kZV9vdXRwdXQ9RmFsc2UpCiAgICAgICAgIHJl
dHVybiByZXR1cm5fY29kZSAhPSBzZWxmLkVSUk9SX0ZJTEVfSVNfTUlTU0lORwogCiAgICAgZGVm
IF9icmFuY2hfZnJvbV9yZWYoc2VsZiwgcmVmKToKICAgICAgICAgcmV0dXJuIHJlZi5yZXBsYWNl
KCdyZWZzL2hlYWRzLycsICcnKQogCiAgICAgZGVmIF9jdXJyZW50X2JyYW5jaChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaF9mcm9tX3JlZihzZWxmLnJ1bihbc2VsZi5leGVjdXRh
YmxlX25hbWUsICdzeW1ib2xpYy1yZWYnLCAnLXEnLCAnSEVBRCddLCBjd2Q9c2VsZi5jaGVja291
dF9yb290KS5zdHJpcCgpKQorICAgICAgICByZXR1cm4gc2VsZi5fYnJhbmNoX2Zyb21fcmVmKHNl
bGYuX3J1bl9leGUoWydzeW1ib2xpYy1yZWYnLCAnLXEnLCAnSEVBRCddKS5zdHJpcCgpKQogCiAg
ICAgZGVmIF91cHN0cmVhbV9icmFuY2goc2VsZik6CiAgICAgICAgIGN1cnJlbnRfYnJhbmNoID0g
c2VsZi5fY3VycmVudF9icmFuY2goKQpAQCAtMjA5LDcgKzIxNCw3IEBAIGNsYXNzIEdpdChTQ00s
IFNWTlJlcG9zaXRvcnkpOgogCiAgICAgZGVmIF9jaGFuZ2VzX2ZpbGVzX2Zvcl9jb21taXQoc2Vs
ZiwgZ2l0X2NvbW1pdCk6CiAgICAgICAgICMgLS1wcmV0dHk9ImZvcm1hdDoiIG1ha2VzIGdpdCBz
aG93IG5vdCBwcmludCB0aGUgY29tbWl0IGxvZyBoZWFkZXIsCi0gICAgICAgIGNoYW5nZWRfZmls
ZXMgPSBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIi0tcHJldHR5PWZv
cm1hdDoiLCAiLS1uYW1lLW9ubHkiLCBnaXRfY29tbWl0XSkuc3BsaXRsaW5lcygpCisgICAgICAg
IGNoYW5nZWRfZmlsZXMgPSBzZWxmLl9ydW5fZXhlKFsic2hvdyIsICItLXByZXR0eT1mb3JtYXQ6
IiwgIi0tbmFtZS1vbmx5IiwgZ2l0X2NvbW1pdF0pLnNwbGl0bGluZXMoKQogICAgICAgICAjIGlu
c3RlYWQgaXQganVzdCBwcmludHMgYSBibGFuayBsaW5lIGF0IHRoZSB0b3AsIHNvIHdlIHNraXAg
dGhlIGJsYW5rIGxpbmU6CiAgICAgICAgIHJldHVybiBjaGFuZ2VkX2ZpbGVzWzE6XQogCkBAIC0y
MjMsNyArMjI4LDcgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgICAg
ICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJQYXRoICVzIGRvZXMgbm90IGV4aXN0LiIgJSBw
YXRoKQogCiAgICAgICAgICMgZ2l0IHJldi1saXN0IGhlYWQgLS1yZW1vdmUtZW1wdHkgLS1saW1p
dD01IC0tIHBhdGggd291bGQgYmUgZXF1aXZhbGVudC4KLSAgICAgICAgY29tbWl0X2lkcyA9IHNl
bGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgImxvZyIsICItLXJlbW92ZS1lbXB0eSIsICIt
LXByZXR0eT1mb3JtYXQ6JUgiLCAiLSVzIiAlIGxpbWl0LCAiLS0iLCBwYXRoXSkuc3BsaXRsaW5l
cygpCisgICAgICAgIGNvbW1pdF9pZHMgPSBzZWxmLl9ydW5fZXhlKFsibG9nIiwgIi0tcmVtb3Zl
LWVtcHR5IiwgIi0tcHJldHR5PWZvcm1hdDolSCIsICItJXMiICUgbGltaXQsICItLSIsIHBhdGhd
KS5zcGxpdGxpbmVzKCkKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgcmV2aXNpb246IHJl
dmlzaW9uLCBtYXAoc2VsZi5zdm5fcmV2aXNpb25fZnJvbV9naXRfY29tbWl0LCBjb21taXRfaWRz
KSkKIAogICAgIGRlZiBjb25mbGljdGVkX2ZpbGVzKHNlbGYpOgpAQCAtMjQ3LDcgKzI1Miw3IEBA
IGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogCiAgICAgZGVmIHN2bl9yZXZpc2lvbihz
ZWxmLCBwYXRoKToKICAgICAgICAgX2xvZy5kZWJ1ZygnUnVubmluZyBnaXQuaGVhZF9zdm5fcmV2
aXNpb24uLi4gKFRlbXBvcmFyeSBsb2dnaW5nIG1lc3NhZ2UpJykKLSAgICAgICAgZ2l0X2xvZyA9
IHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2xvZycsICctMjUnLCBwYXRoXSkKKyAg
ICAgICAgZ2l0X2xvZyA9IHNlbGYuX3J1bl9leGUoWydsb2cnLCAnLTI1JywgcGF0aF0pCiAgICAg
ICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMqZ2l0LXN2bi1pZDouKkAoP1A8c3ZuX3JldmlzaW9u
PlxkKylcICIsIGdpdF9sb2csIHJlLk1VTFRJTElORSkKICAgICAgICAgaWYgbm90IG1hdGNoOgog
ICAgICAgICAgICAgcmV0dXJuICIiCkBAIC0yODAsNyArMjg1LDcgQEAgY2xhc3MgR2l0KFNDTSwg
U1ZOUmVwb3NpdG9yeSk6CiAKICAgICBkZWYgX3J1bl9naXRfc3ZuX2ZpbmRfcmV2KHNlbGYsIGFy
Zyk6CiAgICAgICAgICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhpdHMgMCwgZXZlbiB3aGVu
IHRoZSByZXZpc2lvbiBvciBjb21taXQgaXMgbm90IGZvdW5kLgotICAgICAgICByZXR1cm4gc2Vs
Zi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnc3ZuJywgJ2ZpbmQtcmV2JywgYXJnXSwgY3dk
PXNlbGYuY2hlY2tvdXRfcm9vdCkucnN0cmlwKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9l
eGUoWydzdm4nLCAnZmluZC1yZXYnLCBhcmddKS5yc3RyaXAoKQogCiAgICAgZGVmIF9zdHJpbmdf
dG9faW50X29yX25vbmUoc2VsZiwgc3RyaW5nKToKICAgICAgICAgdHJ5OgpAQCAtMzA0LDIxICsz
MDksMjEgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgZGVmIGNvbnRlbnRz
X2F0X3JldmlzaW9uKHNlbGYsIHBhdGgsIHJldmlzaW9uKToKICAgICAgICAgIiIiUmV0dXJucyBh
IGJ5dGUgYXJyYXkgKHN0cigpKSBjb250YWluaW5nIHRoZSBjb250ZW50cwogICAgICAgICBvZiBw
YXRoIEAgcmV2aXNpb24gaW4gdGhlIHJlcG9zaXRvcnkuIiIiCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIiVzOiVzIiAlIChzZWxmLmdpdF9j
b21taXRfZnJvbV9zdm5fcmV2aXNpb24ocmV2aXNpb24pLCBwYXRoKV0sIGRlY29kZV9vdXRwdXQ9
RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsic2hvdyIsICIlczolcyIgJSAo
c2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKSwgcGF0aCldLCBkZWNv
ZGVfb3V0cHV0PUZhbHNlKQogCiAgICAgZGVmIGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlz
aW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZp
c2lvbihyZXZpc2lvbikKICAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlX3BhdGNoKGdpdF9jb21t
aXQpCiAKICAgICBkZWYgZGlmZl9mb3JfZmlsZShzZWxmLCBwYXRoLCBsb2c9Tm9uZSk6Ci0gICAg
ICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdkaWZmJywgJ0hFQUQn
LCAnLS1uby1yZW5hbWVzJywgJy0tJywgcGF0aF0sIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnZGlmZicsICdIRUFEJywgJy0tbm8tcmVuYW1l
cycsICctLScsIHBhdGhdKQogCiAgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3Nob3cnLCAnSEVBRDon
ICsgc2VsZi50b19vYmplY3RfbmFtZShwYXRoKV0sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCisgICAg
ICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnc2hvdycsICdIRUFEOicgKyBzZWxmLnRvX29iamVj
dF9uYW1lKHBhdGgpXSwgZGVjb2RlX291dHB1dD1GYWxzZSkKIAogICAgIGRlZiBjb21taXR0ZXJf
ZW1haWxfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9
IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKLSAgICAgICAgY29t
bWl0dGVyX2VtYWlsID0gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAibG9nIiwgIi0x
IiwgIi0tcHJldHR5PWZvcm1hdDolY2UiLCBnaXRfY29tbWl0XSkKKyAgICAgICAgY29tbWl0dGVy
X2VtYWlsID0gc2VsZi5fcnVuX2V4ZShbImxvZyIsICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNl
IiwgZ2l0X2NvbW1pdF0pCiAgICAgICAgICMgR2l0IGFkZHMgYW4gZXh0cmEgQHJlcG9zaXRvcnlf
aGFzaCB0byB0aGUgZW5kIG9mIGV2ZXJ5IGNvbW1pdHRlciBlbWFpbCwgcmVtb3ZlIGl0OgogICAg
ICAgICByZXR1cm4gY29tbWl0dGVyX2VtYWlsLnJzcGxpdCgiQCIsIDEpWzBdCiAKQEAgLTMyNiwx
MCArMzMxLDEwIEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogICAgICAgICAjIEFz
c3VtZSB0aGUgcmV2aXNpb24gaXMgYW4gc3ZuIHJldmlzaW9uLgogICAgICAgICBnaXRfY29tbWl0
ID0gc2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQogICAgICAgICAj
IEkgdGhpbmsgdGhpcyB3aWxsIGFsd2F5cyBmYWlsIGR1ZSB0byBDaGFuZ2VMb2dzLgotICAgICAg
ICBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdyZXZlcnQnLCAnLS1uby1jb21taXQn
LCBnaXRfY29tbWl0XSwgZXJyb3JfaGFuZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKQorICAg
ICAgICBzZWxmLl9ydW5fZXhlKFsncmV2ZXJ0JywgJy0tbm8tY29tbWl0JywgZ2l0X2NvbW1pdF0s
IGVycm9yX2hhbmRsZXI9RXhlY3V0aXZlLmlnbm9yZV9lcnJvcikKIAogICAgIGRlZiByZXZlcnRf
ZmlsZXMoc2VsZiwgZmlsZV9wYXRocyk6Ci0gICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFi
bGVfbmFtZSwgJ2NoZWNrb3V0JywgJ0hFQUQnXSArIGZpbGVfcGF0aHMpCisgICAgICAgIHNlbGYu
X3J1bl9leGUoWydjaGVja291dCcsICdIRUFEJ10gKyBmaWxlX3BhdGhzKQogCiAgICAgZGVmIF9h
c3NlcnRfY2FuX3NxdWFzaChzZWxmLCB3b3JraW5nX2RpcmVjdG9yeV9pc19jbGVhbik6CiAgICAg
ICAgIHNxdWFzaCA9IEdpdC5yZWFkX2dpdF9jb25maWcoJ3dlYmtpdC1wYXRjaC5jb21taXQtc2hv
dWxkLWFsd2F5cy1zcXVhc2gnLCBjd2Q9c2VsZi5jaGVja291dF9yb290KQpAQCAtMzYzLDcgKzM2
OCw3IEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogCiAgICAgICAgIGlmIG5vdCBm
b3JjZV9zcXVhc2g6CiAgICAgICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3NxdWFzaCh3b3JraW5n
X2RpcmVjdG9yeV9pc19jbGVhbikKLSAgICAgICAgc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9u
YW1lLCAncmVzZXQnLCAnLS1zb2Z0Jywgc2VsZi5yZW1vdGVfbWVyZ2VfYmFzZSgpXSwgY3dkPXNl
bGYuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgc2VsZi5fcnVuX2V4ZShbJ3Jlc2V0JywgJy0tc29m
dCcsIHNlbGYucmVtb3RlX21lcmdlX2Jhc2UoKV0pCiAgICAgICAgIHNlbGYuY29tbWl0X2xvY2Fs
bHlfd2l0aF9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgIHJldHVybiBzZWxmLnB1c2hfbG9jYWxf
Y29tbWl0c190b19zZXJ2ZXIodXNlcm5hbWU9dXNlcm5hbWUsIHBhc3N3b3JkPXBhc3N3b3JkKQog
CkBAIC0zODYsMTYgKzM5MSwxNiBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBvc2l0b3J5KToKICAg
ICAgICAgIyBXZSB3cmFwIGluIGEgdHJ5Li4uZmluYWxseSBibG9jayBzbyBpZiBhbnl0aGluZyBn
b2VzIHdyb25nLCB3ZSBjbGVhbiB1cCB0aGUgYnJhbmNoZXMuCiAgICAgICAgIGNvbW1pdF9zdWNj
ZWVkZWQgPSBUcnVlCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4
ZWN1dGFibGVfbmFtZSwgJ2NoZWNrb3V0JywgJy1xJywgJy1iJywgTUVSR0VfQlJBTkNIX05BTUUs
IHNlbGYucmVtb3RlX2JyYW5jaF9yZWYoKV0pCisgICAgICAgICAgICBzZWxmLl9ydW5fZXhlKFsn
Y2hlY2tvdXQnLCAnLXEnLCAnLWInLCBNRVJHRV9CUkFOQ0hfTkFNRSwgc2VsZi5yZW1vdGVfYnJh
bmNoX3JlZigpXSkKIAogICAgICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRfaWRzOgogICAg
ICAgICAgICAgICAgICMgV2UncmUgb24gYSBkaWZmZXJlbnQgYnJhbmNoIG5vdywgc28gY29udmVy
dCAiaGVhZCIgdG8gdGhlIGJyYW5jaCBuYW1lLgogICAgICAgICAgICAgICAgIGNvbW1pdCA9IHJl
LnN1YihyJyg/aSloZWFkJywgYnJhbmNoX25hbWUsIGNvbW1pdCkKICAgICAgICAgICAgICAgICAj
IEZJWE1FOiBPbmNlIGNoYW5nZWRfZmlsZXMgYW5kIGNyZWF0ZV9wYXRjaCBhcmUgbW9kaWZpZWQg
dG8gc2VwYXJhdGVseSBoYW5kbGUgZWFjaAogICAgICAgICAgICAgICAgICMgY29tbWl0IGluIGEg
Y29tbWl0IHJhbmdlLCBjb21taXQgZWFjaCBjaGVycnkgcGljayBzbyB0aGV5J2xsIGdldCBkY29t
bWl0dGVkIHNlcGFyYXRlbHkuCi0gICAgICAgICAgICAgICAgc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnY2hlcnJ5LXBpY2snLCAnLS1uby1jb21taXQnLCBjb21taXRdKQorICAgICAg
ICAgICAgICAgIHNlbGYuX3J1bl9leGUoWydjaGVycnktcGljaycsICctLW5vLWNvbW1pdCcsIGNv
bW1pdF0pCiAKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2Nv
bW1pdCcsICctbScsIG1lc3NhZ2VdKQorICAgICAgICAgICAgc2VsZi5fcnVuX2V4ZShbJ2NvbW1p
dCcsICctbScsIG1lc3NhZ2VdKQogICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5wdXNoX2xvY2Fs
X2NvbW1pdHNfdG9fc2VydmVyKHVzZXJuYW1lPXVzZXJuYW1lLCBwYXNzd29yZD1wYXNzd29yZCkK
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKICAgICAgICAgICAgIGxvZygiQ09NTUlUIEZB
SUxFRDogIiArIHN0cihlKSkKQEAgLTQwNCwzMSArNDA5LDMxIEBAIGNsYXNzIEdpdChTQ00sIFNW
TlJlcG9zaXRvcnkpOgogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgIyBBbmQgdGhlbiBz
d2FwIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgY2xlYW4gdXAuCiAgICAgICAgICAg
ICBzZWxmLmNsZWFuX3dvcmtpbmdfZGlyZWN0b3J5KCkKLSAgICAgICAgICAgIHNlbGYucnVuKFtz
ZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2NoZWNrb3V0JywgJy1xJywgYnJhbmNoX25hbWVdKQorICAg
ICAgICAgICAgc2VsZi5fcnVuX2V4ZShbJ2NoZWNrb3V0JywgJy1xJywgYnJhbmNoX25hbWVdKQog
ICAgICAgICAgICAgc2VsZi5kZWxldGVfYnJhbmNoKE1FUkdFX0JSQU5DSF9OQU1FKQogCiAgICAg
ICAgIHJldHVybiBvdXRwdXQKIAogICAgIGRlZiBzdm5fY29tbWl0X2xvZyhzZWxmLCBzdm5fcmV2
aXNpb24pOgogICAgICAgICBzdm5fcmV2aXNpb24gPSBzZWxmLnN0cmlwX3JfZnJvbV9zdm5fcmV2
aXNpb24oc3ZuX3JldmlzaW9uKQotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnc3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCisgICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fZXhlKFsnc3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCiAK
ICAgICBkZWYgbGFzdF9zdm5fY29tbWl0X2xvZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3N2bicsICdsb2cnLCAnLS1saW1pdD0xJ10pCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnc3ZuJywgJ2xvZycsICctLWxpbWl0PTEnXSkK
IAogICAgIGRlZiBzdm5fYmxhbWUoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1
bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdzdm4nLCAnYmxhbWUnLCBwYXRoXSkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9leGUoWydzdm4nLCAnYmxhbWUnLCBwYXRoXSkKIAogICAgICMgR2l0
LXNwZWNpZmljIG1ldGhvZHM6CiAgICAgZGVmIF9icmFuY2hfcmVmX2V4aXN0cyhzZWxmLCBicmFu
Y2hfcmVmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwg
J3Nob3ctcmVmJywgJy0tcXVpZXQnLCAnLS12ZXJpZnknLCBicmFuY2hfcmVmXSwgcmV0dXJuX2V4
aXRfY29kZT1UcnVlKSA9PSAwCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnc2hvdy1y
ZWYnLCAnLS1xdWlldCcsICctLXZlcmlmeScsIGJyYW5jaF9yZWZdLCByZXR1cm5fZXhpdF9jb2Rl
PVRydWUpID09IDAKIAogICAgIGRlZiBkZWxldGVfYnJhbmNoKHNlbGYsIGJyYW5jaF9uYW1lKToK
ICAgICAgICAgaWYgc2VsZi5fYnJhbmNoX3JlZl9leGlzdHMoJ3JlZnMvaGVhZHMvJyArIGJyYW5j
aF9uYW1lKToKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2Jy
YW5jaCcsICctRCcsIGJyYW5jaF9uYW1lXSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl9leGUoWydi
cmFuY2gnLCAnLUQnLCBicmFuY2hfbmFtZV0pCiAKICAgICBkZWYgcmVtb3RlX21lcmdlX2Jhc2Uo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdt
ZXJnZS1iYXNlJywgc2VsZi5yZW1vdGVfYnJhbmNoX3JlZigpLCAnSEVBRCddLCBjd2Q9c2VsZi5j
aGVja291dF9yb290KS5zdHJpcCgpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnbWVy
Z2UtYmFzZScsIHNlbGYucmVtb3RlX2JyYW5jaF9yZWYoKSwgJ0hFQUQnXSkuc3RyaXAoKQogCiAg
ICAgZGVmIHJlbW90ZV9icmFuY2hfcmVmKHNlbGYpOgogICAgICAgICAjIFVzZSByZWZlcmVuY2Vz
IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGNvbGxpc2lvbnMsIGUuZy4gd2UgZG9uJ3Qgd2FudCB0byBv
cGVyYXRlIG9uIHJlZnMvaGVhZHMvdHJ1bmsgaWYgaXQgZXhpc3RzLgpAQCAtNDQ1LDE1ICs0NTAs
MTUgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBmaXJz
dF9yZW1vdGVfYnJhbmNoX3JlZi5zcGxpdCgnOicpWzFdCiAKICAgICBkZWYgY29tbWl0X2xvY2Fs
bHlfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLnJ1bihbc2VsZi5l
eGVjdXRhYmxlX25hbWUsICdjb21taXQnLCAnLS1hbGwnLCAnLUYnLCAnLSddLCBpbnB1dD1tZXNz
YWdlLCBjd2Q9c2VsZi5jaGVja291dF9yb290KQorICAgICAgICBzZWxmLl9ydW5fZXhlKFsnY29t
bWl0JywgJy0tYWxsJywgJy1GJywgJy0nXSwgaW5wdXQ9bWVzc2FnZSkKIAogICAgIGRlZiBwdXNo
X2xvY2FsX2NvbW1pdHNfdG9fc2VydmVyKHNlbGYsIHVzZXJuYW1lPU5vbmUsIHBhc3N3b3JkPU5v
bmUpOgotICAgICAgICBkY29tbWl0X2NvbW1hbmQgPSBbc2VsZi5leGVjdXRhYmxlX25hbWUsICdz
dm4nLCAnZGNvbW1pdCddCisgICAgICAgIGRjb21taXRfY29tbWFuZCA9IFsnc3ZuJywgJ2Rjb21t
aXQnXQogICAgICAgICBpZiAobm90IHVzZXJuYW1lIG9yIG5vdCBwYXNzd29yZCkgYW5kIG5vdCBz
ZWxmLmhhc19hdXRob3JpemF0aW9uX2Zvcl9yZWFsbShTVk4uc3ZuX3NlcnZlcl9yZWFsbSk6CiAg
ICAgICAgICAgICByYWlzZSBBdXRoZW50aWNhdGlvbkVycm9yKFNWTi5zdm5fc2VydmVyX2hvc3Qs
IHByb21wdF9mb3JfcGFzc3dvcmQ9VHJ1ZSkKICAgICAgICAgaWYgdXNlcm5hbWU6CiAgICAgICAg
ICAgICBkY29tbWl0X2NvbW1hbmQuZXh0ZW5kKFsiLS11c2VybmFtZSIsIHVzZXJuYW1lXSkKLSAg
ICAgICAgb3V0cHV0ID0gc2VsZi5ydW4oZGNvbW1pdF9jb21tYW5kLCBlcnJvcl9oYW5kbGVyPWNv
bW1pdF9lcnJvcl9oYW5kbGVyLCBpbnB1dD1wYXNzd29yZCwgY3dkPXNlbGYuY2hlY2tvdXRfcm9v
dCkKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5fcnVuX2V4ZShkY29tbWl0X2NvbW1hbmQsIGVycm9y
X2hhbmRsZXI9Y29tbWl0X2Vycm9yX2hhbmRsZXIsIGlucHV0PXBhc3N3b3JkKQogICAgICAgICBy
ZXR1cm4gb3V0cHV0CiAKICAgICAjIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlIGZvbGxvd2lu
ZyBhcmd1bWVudCBmb3JtYXRzOgpAQCAtNDcwLDE0ICs0NzUsMTQgQEAgY2xhc3MgR2l0KFNDTSwg
U1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgICAgICBpZiAnLi4uJyBpbiBjb21taXRpc2g6CiAgICAg
ICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iJy4uLicgaXMgbm90IHN1cHBv
cnRlZCAoZm91bmQgaW4gJyVzJykuIERpZCB5b3UgbWVhbiAnLi4nPyIgJSBjb21taXRpc2gpCiAg
ICAgICAgICAgICBlbGlmICcuLicgaW4gY29tbWl0aXNoOgotICAgICAgICAgICAgICAgIGNvbW1p
dF9pZHMgKz0gcmV2ZXJzZWQoc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAncmV2LWxp
c3QnLCBjb21taXRpc2hdKS5zcGxpdGxpbmVzKCkpCisgICAgICAgICAgICAgICAgY29tbWl0X2lk
cyArPSByZXZlcnNlZChzZWxmLl9ydW5fZXhlKFsncmV2LWxpc3QnLCBjb21taXRpc2hdKS5zcGxp
dGxpbmVzKCkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICMgVHVybiBzaW5n
bGUgY29tbWl0cyBvciBicmFuY2ggb3IgdGFnIG5hbWVzIGludG8gY29tbWl0IGlkcy4KLSAgICAg
ICAgICAgICAgICBjb21taXRfaWRzICs9IHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwg
J3Jldi1wYXJzZScsICctLXJldnMtb25seScsIGNvbW1pdGlzaF0pLnNwbGl0bGluZXMoKQorICAg
ICAgICAgICAgICAgIGNvbW1pdF9pZHMgKz0gc2VsZi5fcnVuX2V4ZShbJ3Jldi1wYXJzZScsICct
LXJldnMtb25seScsIGNvbW1pdGlzaF0pLnNwbGl0bGluZXMoKQogICAgICAgICByZXR1cm4gY29t
bWl0X2lkcwogCiAgICAgZGVmIGNvbW1pdF9tZXNzYWdlX2Zvcl9sb2NhbF9jb21taXQoc2VsZiwg
Y29tbWl0X2lkKToKLSAgICAgICAgY29tbWl0X2xpbmVzID0gc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnY2F0LWZpbGUnLCAnY29tbWl0JywgY29tbWl0X2lkXSkuc3BsaXRsaW5lcygp
CisgICAgICAgIGNvbW1pdF9saW5lcyA9IHNlbGYuX3J1bl9leGUoWydjYXQtZmlsZScsICdjb21t
aXQnLCBjb21taXRfaWRdKS5zcGxpdGxpbmVzKCkKIAogICAgICAgICAjIFNraXAgdGhlIGdpdCBo
ZWFkZXJzLgogICAgICAgICBmaXJzdF9saW5lX2FmdGVyX2hlYWRlcnMgPSAwCkBAIC00ODgsNCAr
NDkzLDQgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBD
b21taXRNZXNzYWdlKGNvbW1pdF9saW5lc1tmaXJzdF9saW5lX2FmdGVyX2hlYWRlcnM6XSkKIAog
ICAgIGRlZiBmaWxlc19jaGFuZ2VkX3N1bW1hcnlfZm9yX2NvbW1pdChzZWxmLCBjb21taXRfaWQp
OgotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnZGlmZi10
cmVlJywgJy0tc2hvcnRzdGF0JywgJy0tbm8tcmVuYW1lcycsICctLW5vLWNvbW1pdC1pZCcsIGNv
bW1pdF9pZF0pCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZXhlKFsnZGlmZi10cmVlJywgJy0t
c2hvcnRzdGF0JywgJy0tbm8tcmVuYW1lcycsICctLW5vLWNvbW1pdC1pZCcsIGNvbW1pdF9pZF0p
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162041</attachid>
            <date>2012-09-04 07:37:26 -0700</date>
            <delta_ts>2012-09-04 14:22:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95742-20120904153708.patch</filename>
            <type>text/plain</type>
            <size>17557</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MzYw
OWUyZTNlY2ExMWUyM2NjMDk2MzY0MWRmM2ZjNjM5NmY3MDYwLi4yOWQ0NWY4YjRkZGZiNDhmNzNh
ZjIwNmJhMDY5ZjY5ZTE1ZThjOTNkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTItMDktMDQgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSdW4gZ2l0IGNvbW1hbmRzIHdp
dGhpbiB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGdpdCBjb21tYW5kcyBydW4gZnJvbSBzY20vZ2l0LnB5IGFyZSBz
b21ldGltZXMgcnVuIHdpdGggY3dkIHNldCB0byB0aGUKKyAgICAgICAgY2hlY2tvdXRfcm9vdCBh
bmQgb3RoZXIgdGltZXMgd2l0aCB3aGF0ZXZlciBkaXJlY3Rvcnkgd2FzIHRoZSBkZWZhdWx0IGN3
ZC4KKyAgICAgICAgSW5zdGVhZCBhbGwgdGhlc2Ugc2hvdWxkIHJ1biB3aXRoIHRoZSBjaGVja291
dCByb290IHNldCBhcyB0aGUgY3dkCisgICAgICAgIChleGNlcHQgd2hlcmUgd2UgZXhwbGljaXRs
eSBuZWVkIGEgZGlmZmVyZW50IHBhdGgpCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9zY20vZ2l0LnB5OgorICAgICAgICAoR2l0Ll9ydW5fZ2l0KToKKyAgICAg
ICAgKEdpdC5maW5kX2NoZWNrb3V0X3Jvb3QpOgorICAgICAgICAoR2l0LmRpc2NhcmRfbG9jYWxf
Y29tbWl0cyk6CisgICAgICAgIChHaXQubG9jYWxfY29tbWl0cyk6CisgICAgICAgIChHaXQud29y
a2luZ19kaXJlY3RvcnlfaXNfY2xlYW4pOgorICAgICAgICAoR2l0LmNsZWFuX3dvcmtpbmdfZGly
ZWN0b3J5KToKKyAgICAgICAgKEdpdC5hZGRfbGlzdCk6CisgICAgICAgIChHaXQuZGVsZXRlX2xp
c3QpOgorICAgICAgICAoR2l0LmV4aXN0cyk6CisgICAgICAgIChHaXQuX2N1cnJlbnRfYnJhbmNo
KToKKyAgICAgICAgKEdpdC5fY2hhbmdlc19maWxlc19mb3JfY29tbWl0KToKKyAgICAgICAgKEdp
dC5yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZSk6CisgICAgICAgIChHaXQuc3ZuX3JldmlzaW9uKToK
KyAgICAgICAgKEdpdC5fcnVuX2dpdF9zdm5fZmluZF9yZXYpOgorICAgICAgICAoR2l0LmNvbnRl
bnRzX2F0X3JldmlzaW9uKToKKyAgICAgICAgKEdpdC5kaWZmX2Zvcl9maWxlKToKKyAgICAgICAg
KEdpdC5zaG93X2hlYWQpOgorICAgICAgICAoR2l0LmNvbW1pdHRlcl9lbWFpbF9mb3JfcmV2aXNp
b24pOgorICAgICAgICAoR2l0LmFwcGx5X3JldmVyc2VfZGlmZik6CisgICAgICAgIChHaXQucmV2
ZXJ0X2ZpbGVzKToKKyAgICAgICAgKEdpdC5jb21taXRfd2l0aF9tZXNzYWdlKToKKyAgICAgICAg
KEdpdC5fY29tbWl0X29uX2JyYW5jaCk6CisgICAgICAgIChHaXQuc3ZuX2NvbW1pdF9sb2cpOgor
ICAgICAgICAoR2l0Lmxhc3Rfc3ZuX2NvbW1pdF9sb2cpOgorICAgICAgICAoR2l0LnN2bl9ibGFt
ZSk6CisgICAgICAgIChHaXQuX2JyYW5jaF9yZWZfZXhpc3RzKToKKyAgICAgICAgKEdpdC5kZWxl
dGVfYnJhbmNoKToKKyAgICAgICAgKEdpdC5yZW1vdGVfbWVyZ2VfYmFzZSk6CisgICAgICAgIChH
aXQuY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKToKKyAgICAgICAgKEdpdC5wdXNoX2xvY2Fs
X2NvbW1pdHNfdG9fc2VydmVyKToKKyAgICAgICAgKEdpdC5jb21taXRfaWRzX2Zyb21fY29tbWl0
aXNoX2FyZ3VtZW50cyk6CisgICAgICAgIChHaXQuY29tbWl0X21lc3NhZ2VfZm9yX2xvY2FsX2Nv
bW1pdCk6CisgICAgICAgIChHaXQuZmlsZXNfY2hhbmdlZF9zdW1tYXJ5X2Zvcl9jb21taXQpOgor
CiAyMDEyLTA5LTAzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMXSBDaGFuZ2UgdGhlIGZvY3VzIHdoZW4gdGhlIHdlYiB2aWV3IGlzIGNsaWNrZWQg
aW4gTWluaUJyb3dzZXIgYW5kIEVXZWJMYXVuY2hlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9naXQucHkKaW5kZXggYTIwM2ZlMTJhYzEwODBlMmQ2
NWU1YTg2ZWFlODgwZDI1ZjBkN2E0YS4uZjY4ODIzODcxZmY0Zjc2NmQ2NDBiMzY1OGI3NzEzMjJl
N2E3ZmMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL2dpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZ2l0LnB5CkBAIC05OCw2ICs5OCwxMyBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBvc2l0
b3J5KToKICAgICAgICAgd2Via2l0X2Rldl90aHJlYWRfdXJsID0gImh0dHBzOi8vbGlzdHMud2Vi
a2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDEwLURlY2VtYmVyLzAxNTI4Ny5odG1sIgog
ICAgICAgICBsb2coIldhcm5pbmc6IFRoaXMgbWFjaGluZSBpcyA2NC1iaXQsIGJ1dCB0aGUgZ2l0
IGJpbmFyeSAoJXMpIGRvZXMgbm90IHN1cHBvcnQgNjQtYml0LlxuSW5zdGFsbCBhIDY0LWJpdCBn
aXQgZm9yIGJldHRlciBwZXJmb3JtYW5jZSwgc2VlOlxuJXNcbiIgJSAoZ2l0X3BhdGgsIHdlYmtp
dF9kZXZfdGhyZWFkX3VybCkpCiAKKyAgICBkZWYgX3J1bl9naXQoc2VsZiwgY29tbWFuZF9hcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIGZ1bGxfY29tbWFuZF9hcmdzID0gW3NlbGYuZXhlY3V0YWJs
ZV9uYW1lXSArIGNvbW1hbmRfYXJncworICAgICAgICBmdWxsX2t3YXJncyA9IGt3YXJncworICAg
ICAgICBpZiBub3QgJ2N3ZCcgaW4gZnVsbF9rd2FyZ3M6CisgICAgICAgICAgICBmdWxsX2t3YXJn
c1snY3dkJ10gPSBzZWxmLmNoZWNrb3V0X3Jvb3QKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKGZ1
bGxfY29tbWFuZF9hcmdzLCAqKmZ1bGxfa3dhcmdzKQorCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGluX3dvcmtpbmdfZGlyZWN0b3J5KGNscywgcGF0aCwgZXhlY3V0aXZlPU5vbmUpOgogICAg
ICAgICB0cnk6CkBAIC0xMDksNyArMTE2LDcgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9y
eSk6CiAKICAgICBkZWYgZmluZF9jaGVja291dF9yb290KHNlbGYsIHBhdGgpOgogICAgICAgICAj
ICJnaXQgcmV2LXBhcnNlIC0tc2hvdy1jZHVwIiB3b3VsZCBiZSBhbm90aGVyIHdheSB0byBnZXQg
dG8gdGhlIHJvb3QKLSAgICAgICAgY2hlY2tvdXRfcm9vdCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5f
Y29tbWFuZChbc2VsZi5leGVjdXRhYmxlX25hbWUsICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxl
dmVsJ10sIGN3ZD0ocGF0aCBvciAiLi8iKSkuc3RyaXAoKQorICAgICAgICBjaGVja291dF9yb290
ID0gc2VsZi5fcnVuX2dpdChbJ3Jldi1wYXJzZScsICctLXNob3ctdG9wbGV2ZWwnXSwgY3dkPShw
YXRoIG9yICIuLyIpKS5zdHJpcCgpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlz
YWJzKGNoZWNrb3V0X3Jvb3QpOiAgIyBTb21ldGltZXMgZ2l0IHJldHVybnMgcmVsYXRpdmUgcGF0
aHMKICAgICAgICAgICAgIGNoZWNrb3V0X3Jvb3QgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4ocGF0
aCwgY2hlY2tvdXRfcm9vdCkKICAgICAgICAgcmV0dXJuIGNoZWNrb3V0X3Jvb3QKQEAgLTEzMywy
NSArMTQwLDIzIEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogICAgICAgICByZXR1
cm4gIl5Db21taXR0ZWQgcig/UDxzdm5fcmV2aXNpb24+XGQrKSQiCiAKICAgICBkZWYgZGlzY2Fy
ZF9sb2NhbF9jb21taXRzKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9i
YWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAotICAgICAgICBzZWxmLnJ1bihbc2VsZi5l
eGVjdXRhYmxlX25hbWUsICdyZXNldCcsICctLWhhcmQnLCBzZWxmLnJlbW90ZV9icmFuY2hfcmVm
KCldKQorICAgICAgICBzZWxmLl9ydW5fZ2l0KFsncmVzZXQnLCAnLS1oYXJkJywgc2VsZi5yZW1v
dGVfYnJhbmNoX3JlZigpXSkKIAogICAgIGRlZiBsb2NhbF9jb21taXRzKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnbG9nJywgJy0tcHJldHR5
PW9uZWxpbmUnLCAnSEVBRC4uLicgKyBzZWxmLnJlbW90ZV9icmFuY2hfcmVmKCldLCBjd2Q9c2Vs
Zi5jaGVja291dF9yb290KS5zcGxpdGxpbmVzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9n
aXQoWydsb2cnLCAnLS1wcmV0dHk9b25lbGluZScsICdIRUFELi4uJyArIHNlbGYucmVtb3RlX2Jy
YW5jaF9yZWYoKV0pLnNwbGl0bGluZXMoKQogCiAgICAgZGVmIHJlYmFzZV9pbl9wcm9ncmVzcyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHNlbGYuYWJzb2x1
dGVfcGF0aChzZWxmLl9maWxlc3lzdGVtLmpvaW4oJy5naXQnLCAncmViYXNlLWFwcGx5JykpKQog
CiAgICAgZGVmIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnZGlmZicsICdIRUFEJywgJy0tbm8t
cmVuYW1lcycsICctLW5hbWUtb25seSddLCBjd2Q9c2VsZi5jaGVja291dF9yb290KSA9PSAiIgor
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2dpdChbJ2RpZmYnLCAnSEVBRCcsICctLW5vLXJlbmFt
ZXMnLCAnLS1uYW1lLW9ubHknXSkgPT0gIiIKIAogICAgIGRlZiBjbGVhbl93b3JraW5nX2RpcmVj
dG9yeShzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhlc2Ugc2hvdWxkIHByb2JhYmx5IHVzZSBj
d2Q9c2VsZi5jaGVja291dF9yb290LgogICAgICAgICAjIENvdWxkIHJ1biBnaXQgY2xlYW4gaGVy
ZSB0b28sIGJ1dCB0aGF0IHdvdWxkbid0IG1hdGNoIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFu
Ci0gICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3Jlc2V0JywgJy0taGFy
ZCcsICdIRUFEJ10pCisgICAgICAgIHNlbGYuX3J1bl9naXQoWydyZXNldCcsICctLWhhcmQnLCAn
SEVBRCddKQogICAgICAgICAjIEFib3J0aW5nIHJlYmFzZSBldmVuIHRob3VnaCB0aGlzIGRvZXMg
bm90IG1hdGNoIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuCiAgICAgICAgIGlmIHNlbGYucmVi
YXNlX2luX3Byb2dyZXNzKCk6Ci0gICAgICAgICAgICBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxl
X25hbWUsICdyZWJhc2UnLCAnLS1hYm9ydCddKQorICAgICAgICAgICAgc2VsZi5fcnVuX2dpdChb
J3JlYmFzZScsICctLWFib3J0J10pCiAKICAgICBkZWYgc3RhdHVzX2NvbW1hbmQoc2VsZik6CiAg
ICAgICAgICMgZ2l0IHN0YXR1cyByZXR1cm5zIG5vbi16ZXJvIHdoZW4gdGhlcmUgYXJlIGNoYW5n
ZXMsIHNvIHdlIHVzZSBnaXQgZGlmZiBuYW1lIC0tbmFtZS1zdGF0dXMgSEVBRCBpbnN0ZWFkLgpA
QCAtMTYyLDIwICsxNjcsMjAgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAg
ICAgIHJldHVybiAnXig/UDxzdGF0dXM+WyVzXSlcdCg/UDxmaWxlbmFtZT4uKykkJyAlIGV4cGVj
dGVkX3R5cGVzCiAKICAgICBkZWYgYWRkX2xpc3Qoc2VsZiwgcGF0aHMsIHJldHVybl9leGl0X2Nv
ZGU9RmFsc2UpOgotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1l
LCAiYWRkIl0gKyBwYXRocywgcmV0dXJuX2V4aXRfY29kZT1yZXR1cm5fZXhpdF9jb2RlKQorICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2dpdChbImFkZCJdICsgcGF0aHMsIHJldHVybl9leGl0X2Nv
ZGU9cmV0dXJuX2V4aXRfY29kZSkKIAogICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBwYXRocyk6
Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJybSIsICIt
ZiJdICsgcGF0aHMpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsicm0iLCAiLWYiXSAr
IHBhdGhzKQogCiAgICAgZGVmIGV4aXN0cyhzZWxmLCBwYXRoKToKLSAgICAgICAgcmV0dXJuX2Nv
ZGUgPSBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIkhFQUQ6JXMiICUg
cGF0aF0sIHJldHVybl9leGl0X2NvZGU9VHJ1ZSwgZGVjb2RlX291dHB1dD1GYWxzZSkKKyAgICAg
ICAgcmV0dXJuX2NvZGUgPSBzZWxmLl9ydW5fZ2l0KFsic2hvdyIsICJIRUFEOiVzIiAlIHBhdGhd
LCByZXR1cm5fZXhpdF9jb2RlPVRydWUsIGRlY29kZV9vdXRwdXQ9RmFsc2UpCiAgICAgICAgIHJl
dHVybiByZXR1cm5fY29kZSAhPSBzZWxmLkVSUk9SX0ZJTEVfSVNfTUlTU0lORwogCiAgICAgZGVm
IF9icmFuY2hfZnJvbV9yZWYoc2VsZiwgcmVmKToKICAgICAgICAgcmV0dXJuIHJlZi5yZXBsYWNl
KCdyZWZzL2hlYWRzLycsICcnKQogCiAgICAgZGVmIF9jdXJyZW50X2JyYW5jaChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaF9mcm9tX3JlZihzZWxmLnJ1bihbc2VsZi5leGVjdXRh
YmxlX25hbWUsICdzeW1ib2xpYy1yZWYnLCAnLXEnLCAnSEVBRCddLCBjd2Q9c2VsZi5jaGVja291
dF9yb290KS5zdHJpcCgpKQorICAgICAgICByZXR1cm4gc2VsZi5fYnJhbmNoX2Zyb21fcmVmKHNl
bGYuX3J1bl9naXQoWydzeW1ib2xpYy1yZWYnLCAnLXEnLCAnSEVBRCddKS5zdHJpcCgpKQogCiAg
ICAgZGVmIF91cHN0cmVhbV9icmFuY2goc2VsZik6CiAgICAgICAgIGN1cnJlbnRfYnJhbmNoID0g
c2VsZi5fY3VycmVudF9icmFuY2goKQpAQCAtMjA5LDcgKzIxNCw3IEBAIGNsYXNzIEdpdChTQ00s
IFNWTlJlcG9zaXRvcnkpOgogCiAgICAgZGVmIF9jaGFuZ2VzX2ZpbGVzX2Zvcl9jb21taXQoc2Vs
ZiwgZ2l0X2NvbW1pdCk6CiAgICAgICAgICMgLS1wcmV0dHk9ImZvcm1hdDoiIG1ha2VzIGdpdCBz
aG93IG5vdCBwcmludCB0aGUgY29tbWl0IGxvZyBoZWFkZXIsCi0gICAgICAgIGNoYW5nZWRfZmls
ZXMgPSBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIi0tcHJldHR5PWZv
cm1hdDoiLCAiLS1uYW1lLW9ubHkiLCBnaXRfY29tbWl0XSkuc3BsaXRsaW5lcygpCisgICAgICAg
IGNoYW5nZWRfZmlsZXMgPSBzZWxmLl9ydW5fZ2l0KFsic2hvdyIsICItLXByZXR0eT1mb3JtYXQ6
IiwgIi0tbmFtZS1vbmx5IiwgZ2l0X2NvbW1pdF0pLnNwbGl0bGluZXMoKQogICAgICAgICAjIGlu
c3RlYWQgaXQganVzdCBwcmludHMgYSBibGFuayBsaW5lIGF0IHRoZSB0b3AsIHNvIHdlIHNraXAg
dGhlIGJsYW5rIGxpbmU6CiAgICAgICAgIHJldHVybiBjaGFuZ2VkX2ZpbGVzWzE6XQogCkBAIC0y
MjMsNyArMjI4LDcgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgICAg
ICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJQYXRoICVzIGRvZXMgbm90IGV4aXN0LiIgJSBw
YXRoKQogCiAgICAgICAgICMgZ2l0IHJldi1saXN0IGhlYWQgLS1yZW1vdmUtZW1wdHkgLS1saW1p
dD01IC0tIHBhdGggd291bGQgYmUgZXF1aXZhbGVudC4KLSAgICAgICAgY29tbWl0X2lkcyA9IHNl
bGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgImxvZyIsICItLXJlbW92ZS1lbXB0eSIsICIt
LXByZXR0eT1mb3JtYXQ6JUgiLCAiLSVzIiAlIGxpbWl0LCAiLS0iLCBwYXRoXSkuc3BsaXRsaW5l
cygpCisgICAgICAgIGNvbW1pdF9pZHMgPSBzZWxmLl9ydW5fZ2l0KFsibG9nIiwgIi0tcmVtb3Zl
LWVtcHR5IiwgIi0tcHJldHR5PWZvcm1hdDolSCIsICItJXMiICUgbGltaXQsICItLSIsIHBhdGhd
KS5zcGxpdGxpbmVzKCkKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgcmV2aXNpb246IHJl
dmlzaW9uLCBtYXAoc2VsZi5zdm5fcmV2aXNpb25fZnJvbV9naXRfY29tbWl0LCBjb21taXRfaWRz
KSkKIAogICAgIGRlZiBjb25mbGljdGVkX2ZpbGVzKHNlbGYpOgpAQCAtMjQ3LDcgKzI1Miw3IEBA
IGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogCiAgICAgZGVmIHN2bl9yZXZpc2lvbihz
ZWxmLCBwYXRoKToKICAgICAgICAgX2xvZy5kZWJ1ZygnUnVubmluZyBnaXQuaGVhZF9zdm5fcmV2
aXNpb24uLi4gKFRlbXBvcmFyeSBsb2dnaW5nIG1lc3NhZ2UpJykKLSAgICAgICAgZ2l0X2xvZyA9
IHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2xvZycsICctMjUnLCBwYXRoXSkKKyAg
ICAgICAgZ2l0X2xvZyA9IHNlbGYuX3J1bl9naXQoWydsb2cnLCAnLTI1JywgcGF0aF0pCiAgICAg
ICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMqZ2l0LXN2bi1pZDouKkAoP1A8c3ZuX3JldmlzaW9u
PlxkKylcICIsIGdpdF9sb2csIHJlLk1VTFRJTElORSkKICAgICAgICAgaWYgbm90IG1hdGNoOgog
ICAgICAgICAgICAgcmV0dXJuICIiCkBAIC0yODAsNyArMjg1LDcgQEAgY2xhc3MgR2l0KFNDTSwg
U1ZOUmVwb3NpdG9yeSk6CiAKICAgICBkZWYgX3J1bl9naXRfc3ZuX2ZpbmRfcmV2KHNlbGYsIGFy
Zyk6CiAgICAgICAgICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhpdHMgMCwgZXZlbiB3aGVu
IHRoZSByZXZpc2lvbiBvciBjb21taXQgaXMgbm90IGZvdW5kLgotICAgICAgICByZXR1cm4gc2Vs
Zi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnc3ZuJywgJ2ZpbmQtcmV2JywgYXJnXSwgY3dk
PXNlbGYuY2hlY2tvdXRfcm9vdCkucnN0cmlwKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9n
aXQoWydzdm4nLCAnZmluZC1yZXYnLCBhcmddKS5yc3RyaXAoKQogCiAgICAgZGVmIF9zdHJpbmdf
dG9faW50X29yX25vbmUoc2VsZiwgc3RyaW5nKToKICAgICAgICAgdHJ5OgpAQCAtMzA0LDIxICsz
MDksMjEgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgZGVmIGNvbnRlbnRz
X2F0X3JldmlzaW9uKHNlbGYsIHBhdGgsIHJldmlzaW9uKToKICAgICAgICAgIiIiUmV0dXJucyBh
IGJ5dGUgYXJyYXkgKHN0cigpKSBjb250YWluaW5nIHRoZSBjb250ZW50cwogICAgICAgICBvZiBw
YXRoIEAgcmV2aXNpb24gaW4gdGhlIHJlcG9zaXRvcnkuIiIiCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICJzaG93IiwgIiVzOiVzIiAlIChzZWxmLmdpdF9j
b21taXRfZnJvbV9zdm5fcmV2aXNpb24ocmV2aXNpb24pLCBwYXRoKV0sIGRlY29kZV9vdXRwdXQ9
RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsic2hvdyIsICIlczolcyIgJSAo
c2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKSwgcGF0aCldLCBkZWNv
ZGVfb3V0cHV0PUZhbHNlKQogCiAgICAgZGVmIGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlz
aW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZp
c2lvbihyZXZpc2lvbikKICAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlX3BhdGNoKGdpdF9jb21t
aXQpCiAKICAgICBkZWYgZGlmZl9mb3JfZmlsZShzZWxmLCBwYXRoLCBsb2c9Tm9uZSk6Ci0gICAg
ICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdkaWZmJywgJ0hFQUQn
LCAnLS1uby1yZW5hbWVzJywgJy0tJywgcGF0aF0sIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnZGlmZicsICdIRUFEJywgJy0tbm8tcmVuYW1l
cycsICctLScsIHBhdGhdKQogCiAgICAgZGVmIHNob3dfaGVhZChzZWxmLCBwYXRoKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3Nob3cnLCAnSEVBRDon
ICsgc2VsZi50b19vYmplY3RfbmFtZShwYXRoKV0sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCisgICAg
ICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnc2hvdycsICdIRUFEOicgKyBzZWxmLnRvX29iamVj
dF9uYW1lKHBhdGgpXSwgZGVjb2RlX291dHB1dD1GYWxzZSkKIAogICAgIGRlZiBjb21taXR0ZXJf
ZW1haWxfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgZ2l0X2NvbW1pdCA9
IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKLSAgICAgICAgY29t
bWl0dGVyX2VtYWlsID0gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAibG9nIiwgIi0x
IiwgIi0tcHJldHR5PWZvcm1hdDolY2UiLCBnaXRfY29tbWl0XSkKKyAgICAgICAgY29tbWl0dGVy
X2VtYWlsID0gc2VsZi5fcnVuX2dpdChbImxvZyIsICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNl
IiwgZ2l0X2NvbW1pdF0pCiAgICAgICAgICMgR2l0IGFkZHMgYW4gZXh0cmEgQHJlcG9zaXRvcnlf
aGFzaCB0byB0aGUgZW5kIG9mIGV2ZXJ5IGNvbW1pdHRlciBlbWFpbCwgcmVtb3ZlIGl0OgogICAg
ICAgICByZXR1cm4gY29tbWl0dGVyX2VtYWlsLnJzcGxpdCgiQCIsIDEpWzBdCiAKQEAgLTMyNiwx
MCArMzMxLDEwIEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogICAgICAgICAjIEFz
c3VtZSB0aGUgcmV2aXNpb24gaXMgYW4gc3ZuIHJldmlzaW9uLgogICAgICAgICBnaXRfY29tbWl0
ID0gc2VsZi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQogICAgICAgICAj
IEkgdGhpbmsgdGhpcyB3aWxsIGFsd2F5cyBmYWlsIGR1ZSB0byBDaGFuZ2VMb2dzLgotICAgICAg
ICBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdyZXZlcnQnLCAnLS1uby1jb21taXQn
LCBnaXRfY29tbWl0XSwgZXJyb3JfaGFuZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKQorICAg
ICAgICBzZWxmLl9ydW5fZ2l0KFsncmV2ZXJ0JywgJy0tbm8tY29tbWl0JywgZ2l0X2NvbW1pdF0s
IGVycm9yX2hhbmRsZXI9RXhlY3V0aXZlLmlnbm9yZV9lcnJvcikKIAogICAgIGRlZiByZXZlcnRf
ZmlsZXMoc2VsZiwgZmlsZV9wYXRocyk6Ci0gICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFi
bGVfbmFtZSwgJ2NoZWNrb3V0JywgJ0hFQUQnXSArIGZpbGVfcGF0aHMpCisgICAgICAgIHNlbGYu
X3J1bl9naXQoWydjaGVja291dCcsICdIRUFEJ10gKyBmaWxlX3BhdGhzKQogCiAgICAgZGVmIF9h
c3NlcnRfY2FuX3NxdWFzaChzZWxmLCB3b3JraW5nX2RpcmVjdG9yeV9pc19jbGVhbik6CiAgICAg
ICAgIHNxdWFzaCA9IEdpdC5yZWFkX2dpdF9jb25maWcoJ3dlYmtpdC1wYXRjaC5jb21taXQtc2hv
dWxkLWFsd2F5cy1zcXVhc2gnLCBjd2Q9c2VsZi5jaGVja291dF9yb290KQpAQCAtMzYzLDcgKzM2
OCw3IEBAIGNsYXNzIEdpdChTQ00sIFNWTlJlcG9zaXRvcnkpOgogCiAgICAgICAgIGlmIG5vdCBm
b3JjZV9zcXVhc2g6CiAgICAgICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3NxdWFzaCh3b3JraW5n
X2RpcmVjdG9yeV9pc19jbGVhbikKLSAgICAgICAgc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9u
YW1lLCAncmVzZXQnLCAnLS1zb2Z0Jywgc2VsZi5yZW1vdGVfbWVyZ2VfYmFzZSgpXSwgY3dkPXNl
bGYuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgc2VsZi5fcnVuX2dpdChbJ3Jlc2V0JywgJy0tc29m
dCcsIHNlbGYucmVtb3RlX21lcmdlX2Jhc2UoKV0pCiAgICAgICAgIHNlbGYuY29tbWl0X2xvY2Fs
bHlfd2l0aF9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgIHJldHVybiBzZWxmLnB1c2hfbG9jYWxf
Y29tbWl0c190b19zZXJ2ZXIodXNlcm5hbWU9dXNlcm5hbWUsIHBhc3N3b3JkPXBhc3N3b3JkKQog
CkBAIC0zODYsMTYgKzM5MSwxNiBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBvc2l0b3J5KToKICAg
ICAgICAgIyBXZSB3cmFwIGluIGEgdHJ5Li4uZmluYWxseSBibG9jayBzbyBpZiBhbnl0aGluZyBn
b2VzIHdyb25nLCB3ZSBjbGVhbiB1cCB0aGUgYnJhbmNoZXMuCiAgICAgICAgIGNvbW1pdF9zdWNj
ZWVkZWQgPSBUcnVlCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4
ZWN1dGFibGVfbmFtZSwgJ2NoZWNrb3V0JywgJy1xJywgJy1iJywgTUVSR0VfQlJBTkNIX05BTUUs
IHNlbGYucmVtb3RlX2JyYW5jaF9yZWYoKV0pCisgICAgICAgICAgICBzZWxmLl9ydW5fZ2l0KFsn
Y2hlY2tvdXQnLCAnLXEnLCAnLWInLCBNRVJHRV9CUkFOQ0hfTkFNRSwgc2VsZi5yZW1vdGVfYnJh
bmNoX3JlZigpXSkKIAogICAgICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRfaWRzOgogICAg
ICAgICAgICAgICAgICMgV2UncmUgb24gYSBkaWZmZXJlbnQgYnJhbmNoIG5vdywgc28gY29udmVy
dCAiaGVhZCIgdG8gdGhlIGJyYW5jaCBuYW1lLgogICAgICAgICAgICAgICAgIGNvbW1pdCA9IHJl
LnN1YihyJyg/aSloZWFkJywgYnJhbmNoX25hbWUsIGNvbW1pdCkKICAgICAgICAgICAgICAgICAj
IEZJWE1FOiBPbmNlIGNoYW5nZWRfZmlsZXMgYW5kIGNyZWF0ZV9wYXRjaCBhcmUgbW9kaWZpZWQg
dG8gc2VwYXJhdGVseSBoYW5kbGUgZWFjaAogICAgICAgICAgICAgICAgICMgY29tbWl0IGluIGEg
Y29tbWl0IHJhbmdlLCBjb21taXQgZWFjaCBjaGVycnkgcGljayBzbyB0aGV5J2xsIGdldCBkY29t
bWl0dGVkIHNlcGFyYXRlbHkuCi0gICAgICAgICAgICAgICAgc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnY2hlcnJ5LXBpY2snLCAnLS1uby1jb21taXQnLCBjb21taXRdKQorICAgICAg
ICAgICAgICAgIHNlbGYuX3J1bl9naXQoWydjaGVycnktcGljaycsICctLW5vLWNvbW1pdCcsIGNv
bW1pdF0pCiAKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2Nv
bW1pdCcsICctbScsIG1lc3NhZ2VdKQorICAgICAgICAgICAgc2VsZi5fcnVuX2dpdChbJ2NvbW1p
dCcsICctbScsIG1lc3NhZ2VdKQogICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5wdXNoX2xvY2Fs
X2NvbW1pdHNfdG9fc2VydmVyKHVzZXJuYW1lPXVzZXJuYW1lLCBwYXNzd29yZD1wYXNzd29yZCkK
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKICAgICAgICAgICAgIGxvZygiQ09NTUlUIEZB
SUxFRDogIiArIHN0cihlKSkKQEAgLTQwNCwzMSArNDA5LDMxIEBAIGNsYXNzIEdpdChTQ00sIFNW
TlJlcG9zaXRvcnkpOgogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgIyBBbmQgdGhlbiBz
d2FwIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgY2xlYW4gdXAuCiAgICAgICAgICAg
ICBzZWxmLmNsZWFuX3dvcmtpbmdfZGlyZWN0b3J5KCkKLSAgICAgICAgICAgIHNlbGYucnVuKFtz
ZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2NoZWNrb3V0JywgJy1xJywgYnJhbmNoX25hbWVdKQorICAg
ICAgICAgICAgc2VsZi5fcnVuX2dpdChbJ2NoZWNrb3V0JywgJy1xJywgYnJhbmNoX25hbWVdKQog
ICAgICAgICAgICAgc2VsZi5kZWxldGVfYnJhbmNoKE1FUkdFX0JSQU5DSF9OQU1FKQogCiAgICAg
ICAgIHJldHVybiBvdXRwdXQKIAogICAgIGRlZiBzdm5fY29tbWl0X2xvZyhzZWxmLCBzdm5fcmV2
aXNpb24pOgogICAgICAgICBzdm5fcmV2aXNpb24gPSBzZWxmLnN0cmlwX3JfZnJvbV9zdm5fcmV2
aXNpb24oc3ZuX3JldmlzaW9uKQotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnc3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCisgICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fZ2l0KFsnc3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCiAK
ICAgICBkZWYgbGFzdF9zdm5fY29tbWl0X2xvZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ3N2bicsICdsb2cnLCAnLS1saW1pdD0xJ10pCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnc3ZuJywgJ2xvZycsICctLWxpbWl0PTEnXSkK
IAogICAgIGRlZiBzdm5fYmxhbWUoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1
bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdzdm4nLCAnYmxhbWUnLCBwYXRoXSkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9naXQoWydzdm4nLCAnYmxhbWUnLCBwYXRoXSkKIAogICAgICMgR2l0
LXNwZWNpZmljIG1ldGhvZHM6CiAgICAgZGVmIF9icmFuY2hfcmVmX2V4aXN0cyhzZWxmLCBicmFu
Y2hfcmVmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwg
J3Nob3ctcmVmJywgJy0tcXVpZXQnLCAnLS12ZXJpZnknLCBicmFuY2hfcmVmXSwgcmV0dXJuX2V4
aXRfY29kZT1UcnVlKSA9PSAwCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnc2hvdy1y
ZWYnLCAnLS1xdWlldCcsICctLXZlcmlmeScsIGJyYW5jaF9yZWZdLCByZXR1cm5fZXhpdF9jb2Rl
PVRydWUpID09IDAKIAogICAgIGRlZiBkZWxldGVfYnJhbmNoKHNlbGYsIGJyYW5jaF9uYW1lKToK
ICAgICAgICAgaWYgc2VsZi5fYnJhbmNoX3JlZl9leGlzdHMoJ3JlZnMvaGVhZHMvJyArIGJyYW5j
aF9uYW1lKToKLSAgICAgICAgICAgIHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwgJ2Jy
YW5jaCcsICctRCcsIGJyYW5jaF9uYW1lXSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl9naXQoWydi
cmFuY2gnLCAnLUQnLCBicmFuY2hfbmFtZV0pCiAKICAgICBkZWYgcmVtb3RlX21lcmdlX2Jhc2Uo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bihbc2VsZi5leGVjdXRhYmxlX25hbWUsICdt
ZXJnZS1iYXNlJywgc2VsZi5yZW1vdGVfYnJhbmNoX3JlZigpLCAnSEVBRCddLCBjd2Q9c2VsZi5j
aGVja291dF9yb290KS5zdHJpcCgpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnbWVy
Z2UtYmFzZScsIHNlbGYucmVtb3RlX2JyYW5jaF9yZWYoKSwgJ0hFQUQnXSkuc3RyaXAoKQogCiAg
ICAgZGVmIHJlbW90ZV9icmFuY2hfcmVmKHNlbGYpOgogICAgICAgICAjIFVzZSByZWZlcmVuY2Vz
IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGNvbGxpc2lvbnMsIGUuZy4gd2UgZG9uJ3Qgd2FudCB0byBv
cGVyYXRlIG9uIHJlZnMvaGVhZHMvdHJ1bmsgaWYgaXQgZXhpc3RzLgpAQCAtNDQ1LDE1ICs0NTAs
MTUgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBmaXJz
dF9yZW1vdGVfYnJhbmNoX3JlZi5zcGxpdCgnOicpWzFdCiAKICAgICBkZWYgY29tbWl0X2xvY2Fs
bHlfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLnJ1bihbc2VsZi5l
eGVjdXRhYmxlX25hbWUsICdjb21taXQnLCAnLS1hbGwnLCAnLUYnLCAnLSddLCBpbnB1dD1tZXNz
YWdlLCBjd2Q9c2VsZi5jaGVja291dF9yb290KQorICAgICAgICBzZWxmLl9ydW5fZ2l0KFsnY29t
bWl0JywgJy0tYWxsJywgJy1GJywgJy0nXSwgaW5wdXQ9bWVzc2FnZSkKIAogICAgIGRlZiBwdXNo
X2xvY2FsX2NvbW1pdHNfdG9fc2VydmVyKHNlbGYsIHVzZXJuYW1lPU5vbmUsIHBhc3N3b3JkPU5v
bmUpOgotICAgICAgICBkY29tbWl0X2NvbW1hbmQgPSBbc2VsZi5leGVjdXRhYmxlX25hbWUsICdz
dm4nLCAnZGNvbW1pdCddCisgICAgICAgIGRjb21taXRfY29tbWFuZCA9IFsnc3ZuJywgJ2Rjb21t
aXQnXQogICAgICAgICBpZiAobm90IHVzZXJuYW1lIG9yIG5vdCBwYXNzd29yZCkgYW5kIG5vdCBz
ZWxmLmhhc19hdXRob3JpemF0aW9uX2Zvcl9yZWFsbShTVk4uc3ZuX3NlcnZlcl9yZWFsbSk6CiAg
ICAgICAgICAgICByYWlzZSBBdXRoZW50aWNhdGlvbkVycm9yKFNWTi5zdm5fc2VydmVyX2hvc3Qs
IHByb21wdF9mb3JfcGFzc3dvcmQ9VHJ1ZSkKICAgICAgICAgaWYgdXNlcm5hbWU6CiAgICAgICAg
ICAgICBkY29tbWl0X2NvbW1hbmQuZXh0ZW5kKFsiLS11c2VybmFtZSIsIHVzZXJuYW1lXSkKLSAg
ICAgICAgb3V0cHV0ID0gc2VsZi5ydW4oZGNvbW1pdF9jb21tYW5kLCBlcnJvcl9oYW5kbGVyPWNv
bW1pdF9lcnJvcl9oYW5kbGVyLCBpbnB1dD1wYXNzd29yZCwgY3dkPXNlbGYuY2hlY2tvdXRfcm9v
dCkKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5fcnVuX2dpdChkY29tbWl0X2NvbW1hbmQsIGVycm9y
X2hhbmRsZXI9Y29tbWl0X2Vycm9yX2hhbmRsZXIsIGlucHV0PXBhc3N3b3JkKQogICAgICAgICBy
ZXR1cm4gb3V0cHV0CiAKICAgICAjIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlIGZvbGxvd2lu
ZyBhcmd1bWVudCBmb3JtYXRzOgpAQCAtNDcwLDE0ICs0NzUsMTQgQEAgY2xhc3MgR2l0KFNDTSwg
U1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgICAgICBpZiAnLi4uJyBpbiBjb21taXRpc2g6CiAgICAg
ICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iJy4uLicgaXMgbm90IHN1cHBv
cnRlZCAoZm91bmQgaW4gJyVzJykuIERpZCB5b3UgbWVhbiAnLi4nPyIgJSBjb21taXRpc2gpCiAg
ICAgICAgICAgICBlbGlmICcuLicgaW4gY29tbWl0aXNoOgotICAgICAgICAgICAgICAgIGNvbW1p
dF9pZHMgKz0gcmV2ZXJzZWQoc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAncmV2LWxp
c3QnLCBjb21taXRpc2hdKS5zcGxpdGxpbmVzKCkpCisgICAgICAgICAgICAgICAgY29tbWl0X2lk
cyArPSByZXZlcnNlZChzZWxmLl9ydW5fZ2l0KFsncmV2LWxpc3QnLCBjb21taXRpc2hdKS5zcGxp
dGxpbmVzKCkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICMgVHVybiBzaW5n
bGUgY29tbWl0cyBvciBicmFuY2ggb3IgdGFnIG5hbWVzIGludG8gY29tbWl0IGlkcy4KLSAgICAg
ICAgICAgICAgICBjb21taXRfaWRzICs9IHNlbGYucnVuKFtzZWxmLmV4ZWN1dGFibGVfbmFtZSwg
J3Jldi1wYXJzZScsICctLXJldnMtb25seScsIGNvbW1pdGlzaF0pLnNwbGl0bGluZXMoKQorICAg
ICAgICAgICAgICAgIGNvbW1pdF9pZHMgKz0gc2VsZi5fcnVuX2dpdChbJ3Jldi1wYXJzZScsICct
LXJldnMtb25seScsIGNvbW1pdGlzaF0pLnNwbGl0bGluZXMoKQogICAgICAgICByZXR1cm4gY29t
bWl0X2lkcwogCiAgICAgZGVmIGNvbW1pdF9tZXNzYWdlX2Zvcl9sb2NhbF9jb21taXQoc2VsZiwg
Y29tbWl0X2lkKToKLSAgICAgICAgY29tbWl0X2xpbmVzID0gc2VsZi5ydW4oW3NlbGYuZXhlY3V0
YWJsZV9uYW1lLCAnY2F0LWZpbGUnLCAnY29tbWl0JywgY29tbWl0X2lkXSkuc3BsaXRsaW5lcygp
CisgICAgICAgIGNvbW1pdF9saW5lcyA9IHNlbGYuX3J1bl9naXQoWydjYXQtZmlsZScsICdjb21t
aXQnLCBjb21taXRfaWRdKS5zcGxpdGxpbmVzKCkKIAogICAgICAgICAjIFNraXAgdGhlIGdpdCBo
ZWFkZXJzLgogICAgICAgICBmaXJzdF9saW5lX2FmdGVyX2hlYWRlcnMgPSAwCkBAIC00ODgsNCAr
NDkzLDQgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBD
b21taXRNZXNzYWdlKGNvbW1pdF9saW5lc1tmaXJzdF9saW5lX2FmdGVyX2hlYWRlcnM6XSkKIAog
ICAgIGRlZiBmaWxlc19jaGFuZ2VkX3N1bW1hcnlfZm9yX2NvbW1pdChzZWxmLCBjb21taXRfaWQp
OgotICAgICAgICByZXR1cm4gc2VsZi5ydW4oW3NlbGYuZXhlY3V0YWJsZV9uYW1lLCAnZGlmZi10
cmVlJywgJy0tc2hvcnRzdGF0JywgJy0tbm8tcmVuYW1lcycsICctLW5vLWNvbW1pdC1pZCcsIGNv
bW1pdF9pZF0pCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fZ2l0KFsnZGlmZi10cmVlJywgJy0t
c2hvcnRzdGF0JywgJy0tbm8tcmVuYW1lcycsICctLW5vLWNvbW1pdC1pZCcsIGNvbW1pdF9pZF0p
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>