<?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>56378</bug_id>
          
          <creation_ts>2011-03-15 08:35:48 -0700</creation_ts>
          <short_desc>Enhancement: New Script to Format malloc_history output as tree</short_desc>
          <delta_ts>2011-06-18 12:25:04 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>367670</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-03-15 08:35:48 -0700</bug_when>
    <thetext>Add a script to process the output from MacOS malloc_history output to hierarchical tree format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367678</commentid>
    <comment_count>1</comment_count>
      <attachid>85812</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-03-15 08:47:29 -0700</bug_when>
    <thetext>Created attachment 85812
New script to process malloc_history output to tree format</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369923</commentid>
    <comment_count>2</comment_count>
      <attachid>85812</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-18 14:57:45 -0700</bug_when>
    <thetext>Comment on attachment 85812
New script to process malloc_history output to tree format

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

This seems OK.  It&apos;s written as a one-off w/o much re-use in mind, which is kinda the opposite of how I try to write python. :)  I think this could use another round of cleanup to make this more hackable for others in the future.

I&apos;m glad you&apos;re adding this though. :)

&gt; Tools/Scripts/malloc-tree:60
&gt; +

I think pep8 says two spaces between globals, but I could be wrong.

&gt; Tools/Scripts/malloc-tree:102
&gt; +    def printNode(self, prefix = &apos; &apos;):
&gt; +        global hotspot
&gt; +        global scaleSize
&gt; +        global showBars

Seems this could just take an options object instead of using globals.

&gt; Tools/Scripts/malloc-tree:137
&gt; +def main():

I would have broken this up into smaller functions.

&gt; Tools/Scripts/malloc-tree:163
&gt; +        if hotspot:
&gt; +            scaleSize = False
&gt; +        else:
&gt; +            scaleSize = True

Seems long-winded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394610</commentid>
    <comment_count>3</comment_count>
      <attachid>85812</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-28 11:41:57 -0700</bug_when>
    <thetext>Comment on attachment 85812
New script to process malloc_history output to tree format

In general this is fine.  We should land this and iterate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423169</commentid>
    <comment_count>4</comment_count>
      <attachid>85812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-18 12:25:00 -0700</bug_when>
    <thetext>Comment on attachment 85812
New script to process malloc_history output to tree format

Clearing flags on attachment: 85812

Committed r89195: &lt;http://trac.webkit.org/changeset/89195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423170</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-18 12:25:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85812</attachid>
            <date>2011-03-15 08:47:29 -0700</date>
            <delta_ts>2011-06-18 12:25:00 -0700</delta_ts>
            <desc>New script to process malloc_history output to tree format</desc>
            <filename>56378.patch</filename>
            <type>text/plain</type>
            <size>8080</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgxMTM2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDMtMTUgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5oYW5j
ZW1lbnQ6IE5ldyBTY3JpcHQgdG8gRm9ybWF0IG1hbGxvY19oaXN0b3J5IG91dHB1dCBhcyB0cmVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM3OAor
CisgICAgICAgIE5ldyBzY3JpcHQgdG8gcHJvY2VzcyBtYWxsb2NfaGlzdG9yeSBvdXRwdXQgdG8g
dHJlZSBmb3JtYXQuCisKKyAgICAgICAgKiBTY3JpcHRzL21hbGxvYy10cmVlOiBBZGRlZC4KKwog
MjAxMS0wMy0xNSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvbWFs
bG9jLXRyZWUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9tYWxsb2MtdHJlZQkocmV2aXNp
b24gMCkKKysrIFRvb2xzL1NjcmlwdHMvbWFsbG9jLXRyZWUJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjEwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworaW1wb3J0IHN5cworaW1wb3J0IGdldG9wdAorZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9u
UGFyc2VyCisKK29uZUsgPSAxMDI0CitvbmVNID0gMTAyNCAqIDEwMjQKK29uZUcgPSAxMDI0ICog
MTAyNCAqIDEwMjQKKworaG90c3BvdCA9IEZhbHNlCitzY2FsZVNpemUgPSBUcnVlCitzaG93QmFy
cyA9IFRydWUKKworZGVmIGJ5dGVTdHJpbmcoYnl0ZXMpOgorICAgIGlmIHNjYWxlU2l6ZToKKyAg
ICAgICAgZm9ybWF0ID0gJyAgJTRkICAgJworICAgICAgICB2YWwgPSBieXRlcworCisgICAgICAg
IGlmIGJ5dGVzID49IG9uZUc6CisgICAgICAgICAgICBmb3JtYXQgPSAnJTguMWZHJworICAgICAg
ICAgICAgdmFsID0gZmxvYXQoYnl0ZXMpIC8gb25lRworICAgICAgICBlbGlmIGJ5dGVzID49IG9u
ZU06CisgICAgICAgICAgICBmb3JtYXQgPSAnJTguMWZNJworICAgICAgICAgICAgdmFsID0gZmxv
YXQoYnl0ZXMpIC8gb25lTQorICAgICAgICBlbGlmIGJ5dGVzID49IG9uZUs6CisgICAgICAgICAg
ICBmb3JtYXQgPSAnJTguMWZLJworICAgICAgICAgICAgdmFsID0gZmxvYXQoYnl0ZXMpIC8gb25l
SworCisgICAgICAgIHJldHVybiBmb3JtYXQgJSB2YWwKKyAgICBpZiBob3RzcG90OgorICAgICAg
ICByZXR1cm4gJyVkJyAlIGJ5dGVzCisgICAgcmV0dXJuICclMTJkJyAlIGJ5dGVzCisKK2NsYXNz
IE5vZGU6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGxldmVsID0gMCwgYnl0ZXMgPSAw
KToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLmxldmVsID0gbGV2ZWwK
KyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IHt9CisgICAgICAgIHNlbGYudG90YWxCeXRlcyA9IGJ5
dGVzCisKKyAgICBkZWYgaGFzQ2hpbGRyZW4oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2Vs
Zi5jaGlsZHJlbikgPiAwCisKKyAgICBkZWYgZ2V0Q2hpbGQoc2VsZiwgbmFtZSk6CisgICAgICAg
IGlmIG5vdCBuYW1lIGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICBuZXdDaGlsZCA9IE5v
ZGUobmFtZSwgc2VsZi5sZXZlbCArIDEpCisgICAgICAgICAgICBzZWxmLmNoaWxkcmVuW25hbWVd
ID0gbmV3Q2hpbGQKKworICAgICAgICByZXR1cm4gc2VsZi5jaGlsZHJlbltuYW1lXQorCisgICAg
ZGVmIGdldEJ5dGVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50b3RhbEJ5dGVzCisKKyAg
ICBkZWYgYWRkQnl0ZXMoc2VsZiwgYnl0ZXMpOgorICAgICAgICBzZWxmLnRvdGFsQnl0ZXMgPSBz
ZWxmLnRvdGFsQnl0ZXMgKyBieXRlcworCisgICAgZGVmIHByb2Nlc3NMaW5lKHNlbGYsIGJ5dGVz
LCBsaW5lKToKKyAgICAgICAgc2VwID0gbGluZS5maW5kKCd8JykKKyAgICAgICAgaWYgc2VwIDwg
MDoKKyAgICAgICAgICAgIGNoaWxkTmFtZSA9IGxpbmUuc3RyaXAoKQorICAgICAgICAgICAgbGlu
ZSA9ICcnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaGlsZE5hbWUgPSBsaW5lWzpzZXBd
LnN0cmlwKCkKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lW3NlcCsxOl0KKworICAgICAgICBjaGls
ZCA9IHNlbGYuZ2V0Q2hpbGQoY2hpbGROYW1lKQorICAgICAgICBjaGlsZC5hZGRCeXRlcyhieXRl
cykKKworICAgICAgICBpZiBsZW4obGluZSkgPiAwOgorICAgICAgICAgICAgY2hpbGQucHJvY2Vz
c0xpbmUoYnl0ZXMsIGxpbmUpCisKKyAgICBkZWYgcHJpbnROb2RlKHNlbGYsIHByZWZpeCA9ICcg
Jyk6CisgICAgICAgIGdsb2JhbCBob3RzcG90CisgICAgICAgIGdsb2JhbCBzY2FsZVNpemUKKyAg
ICAgICAgZ2xvYmFsIHNob3dCYXJzCisKKyAgICAgICAgaWYgc2VsZi5oYXNDaGlsZHJlbigpOgor
ICAgICAgICAgICAgYnl0ZVN0ciA9IGJ5dGVTdHJpbmcoc2VsZi50b3RhbEJ5dGVzKQorCisgICAg
ICAgICAgICBpZiBob3RzcG90OgorICAgICAgICAgICAgICAgIHByaW50KCcgICAgJXMlcyAlcycg
JSAoc2VsZi5sZXZlbCAqICcgJywgYnl0ZVN0cmluZyhzZWxmLnRvdGFsQnl0ZXMpLCBzZWxmLm5h
bWUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgnJXMgJXMlcycg
JSAoYnl0ZVN0cmluZyhzZWxmLnRvdGFsQnl0ZXMpLCBwcmVmaXhbOi0xXSwgc2VsZi5uYW1lKSkK
KworICAgICAgICAgICAgc29ydGVkQ2hpbGRyZW4gPSBzb3J0ZWQoc2VsZi5jaGlsZHJlbi52YWx1
ZXMoKSwga2V5PXNvcnRLZXlCeUJ5dGVzLCByZXZlcnNlPVRydWUpCisKKyAgICAgICAgICAgIGlm
IHNob3dCYXJzIGFuZCBsZW4oc2VsZi5jaGlsZHJlbikgPiAxOgorICAgICAgICAgICAgICAgIG5l
d1ByZWZpeCA9IHByZWZpeCArICd8JworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBuZXdQcmVmaXggPSBwcmVmaXggKyAnICcKKworICAgICAgICAgICAgY2hpbGRyZW5MZWZ0ID0g
bGVuKHNvcnRlZENoaWxkcmVuKQorICAgICAgICAgICAgZm9yIGNoaWxkIGluIHNvcnRlZENoaWxk
cmVuOgorICAgICAgICAgICAgICAgIGlmIGNoaWxkcmVuTGVmdCA8PSAxOgorICAgICAgICAgICAg
ICAgICAgICBuZXdQcmVmaXggPSBwcmVmaXggKyAnICcKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbkxlZnQgPSBjaGlsZHJlbkxlZnQgLSAxCisgICAg
ICAgICAgICAgICAgY2hpbGQucHJpbnROb2RlKG5ld1ByZWZpeCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGJ5dGVTdHIgPSBieXRlU3RyaW5nKHNlbGYudG90YWxCeXRlcykKKworICAgICAg
ICAgICAgaWYgaG90c3BvdDoKKyAgICAgICAgICAgICAgICBwcmludCgnICAgICVzJXMgJXMnICUg
KHNlbGYubGV2ZWwgKiAnICcsIGJ5dGVTdHJpbmcoc2VsZi50b3RhbEJ5dGVzKSwgc2VsZi5uYW1l
KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQoJyVzICVzJXMnICUg
KGJ5dGVTdHJpbmcoc2VsZi50b3RhbEJ5dGVzKSwgcHJlZml4WzotMV0sIHNlbGYubmFtZSkpCisK
K2RlZiBzb3J0S2V5QnlCeXRlcyhub2RlKToKKyAgICByZXR1cm4gbm9kZS5nZXRCeXRlcygpOwor
CitkZWYgbWFpbigpOgorICAgIGdsb2JhbCBob3RzcG90CisgICAgZ2xvYmFsIHNjYWxlU2l6ZQor
ICAgIGdsb2JhbCBzaG93QmFycworCisgICAgIyBwYXJzZSBjb21tYW5kIGxpbmUgb3B0aW9ucwor
ICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcih1c2FnZT0nbWFsbG9jLXRyZWUgW29wdGlvbnNdIFtt
YWxsb2NfaGlzdG9yeS1maWxlXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uPSdGb3JtYXQgbWFsbG9jX2hpc3Rvcnkgb3V0cHV0IGFzIGEgbmVzdGVkIHRyZWUnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcGlsb2c9J3N0ZGluIHVzZWQgaWYgbWFsbG9jX2hpc3Rv
cnktZmlsZSBpcyBtaXNzaW5nJykKKworICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbicsICctLW5v
YmFycycsIGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBkZXN0PSdzaG93QmFycycsCisgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSdkb25cJ3Qgc2hvdyBiYXJzIGxpbmluZyB1
cCBzaWJsaW5ncyBpbiB0cmVlJyk7CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1iJywgJy0tc2l6
ZS1pbi1ieXRlcycsIGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBkZXN0PSdzY2FsZVNpemUnLAorICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0nc2hvdyBzaXplcyBpbiBieXRl
cycpOworICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNpemUtc2NhbGUnLCBhY3Rpb249
J3N0b3JlX3RydWUnLCBkZXN0PSdzY2FsZVNpemUnLAorICAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9Tm9uZSwgaGVscD0nc2hvdyBzaXplcyB3aXRoIGFwcHJvcHJpYXRlIHNjYWxlIHN1ZmZp
eCBbSyxNLEddJyk7CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0taG90c3BvdCcsIGFj
dGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9J2hvdHNwb3QnLAorICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9RmFsc2UsIGhlbHA9J291dHB1dCBpbiBIb3RTcG90RmluZGVyIGZvcm1hdCwgaW1w
bGllcyAtYicpOworCisgICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQor
CisgICAgaG90c3BvdCA9IG9wdGlvbnMuaG90c3BvdAorICAgIGlmIG9wdGlvbnMuc2NhbGVTaXpl
IGlzIE5vbmU6CisgICAgICAgIGlmIGhvdHNwb3Q6CisgICAgICAgICAgICBzY2FsZVNpemUgPSBG
YWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2NhbGVTaXplID0gVHJ1ZQorICAgIGVs
c2U6CisgICAgICAgIHNjYWxlU2l6ZSA9IG9wdGlvbnMuc2NhbGVTaXplCisgICAgc2hvd0JhcnMg
PSBvcHRpb25zLnNob3dCYXJzCisKKyAgICBpZiBsZW4oYXJncykgPCAxOgorICAgICAgICBpbnB1
dEZpbGUgPSBzeXMuc3RkaW4KKyAgICBlbHNlOgorICAgICAgICBpbnB1dEZpbGUgPSBvcGVuKGFy
Z3NbMF0sICJyIikKKworICAgIGxpbmUgPSBpbnB1dEZpbGUucmVhZGxpbmUoKQorIAorICAgIHJv
b3ROb2RlcyA9IHt9CisKKyAgICB3aGlsZSBsaW5lOgorICAgICAgICBmaXJzdFNlcCA9IGxpbmUu
ZmluZCgnfCcpCisgICAgICAgIGlmIGZpcnN0U2VwID4gMDoKKyAgICAgICAgICAgIGZpcnN0UGFy
dCA9IGxpbmVbOmZpcnN0U2VwXS5zdHJpcCgpCisgICAgICAgICAgICBsaW5lUmVtYWluID0gbGlu
ZVtmaXJzdFNlcCsxOl0KKyAgICAgICAgICAgIGJ5dGVzU2VwID0gZmlyc3RQYXJ0LmZpbmQoJ2J5
dGVzOicpCisgICAgICAgICAgICBpZiBieXRlc1NlcCA+PSAwOgorICAgICAgICAgICAgICAgIG5h
bWUgPSBmaXJzdFBhcnRbYnl0ZXNTZXArNzpdCisgICAgICAgICAgICAgICAgc3RhdHMgPSBmaXJz
dFBhcnQuc3BsaXQoJyAnKQorICAgICAgICAgICAgICAgIGJ5dGVzID0gaW50KHN0YXRzWzNdLnJl
cGxhY2UoJywnLCAnJykpCisKKyAgICAgICAgICAgICAgICBpZiBub3QgbmFtZSBpbiByb290Tm9k
ZXM6CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBOb2RlKG5hbWUsIDAsIGJ5dGVzKTsKKyAg
ICAgICAgICAgICAgICAgICAgcm9vdE5vZGVzW25hbWVdID0gbm9kZQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSByb290Tm9kZXNbbmFtZV0KKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS5hZGRCeXRlcyhieXRlcykKKworICAgICAgICAgICAgICAgIG5v
ZGUucHJvY2Vzc0xpbmUoYnl0ZXMsIGxpbmVSZW1haW4pCisKKyAgICAgICAgbGluZSA9IGlucHV0
RmlsZS5yZWFkbGluZSgpCisKKyAgICBzb3J0ZWRSb290Tm9kZXMgPSBzb3J0ZWQocm9vdE5vZGVz
LnZhbHVlcygpLCBrZXk9c29ydEtleUJ5Qnl0ZXMsIHJldmVyc2U9VHJ1ZSkKKworICAgIHByaW50
ICdDYWxsIGdyYXBoOicKKyAgICB0cnk6CisgICAgICAgIGZvciBub2RlIGluIHNvcnRlZFJvb3RO
b2RlczoKKyAgICAgICAgICAgIG5vZGUucHJpbnROb2RlKCkKKyAgICAgICAgICAgIHByaW50IAor
ICAgIGV4Y2VwdDoKKyAgICAgICAgcGFzcworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgor
ICAgIG1haW4oKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvU2NyaXB0cy9tYWxsb2MtdHJl
ZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>