<?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>82158</bug_id>
          
          <creation_ts>2012-03-25 19:01:03 -0700</creation_ts>
          <short_desc>add a Tree abstraction to test-webkitpy to better encapsulate things</short_desc>
          <delta_ts>2012-03-26 14:58:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>587401</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-25 19:01:03 -0700</bug_when>
    <thetext>add a Tree abstraction to test-webkitpy to better encapsulate things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587405</commentid>
    <comment_count>1</comment_count>
      <attachid>133712</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-25 19:08:28 -0700</bug_when>
    <thetext>Created attachment 133712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587406</commentid>
    <comment_count>2</comment_count>
      <attachid>133713</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-25 19:10:38 -0700</bug_when>
    <thetext>Created attachment 133713
fix typos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587867</commentid>
    <comment_count>3</comment_count>
      <attachid>133713</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 10:26:23 -0700</bug_when>
    <thetext>Comment on attachment 133713
fix typos

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

&gt; Tools/Scripts/webkitpy/test/main.py:238
&gt; +class _Tree(object):

Do you mean a DirectoryTree?  &quot;Tree&quot; is a very broad name.  This code seems very specific to Python packages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587934</commentid>
    <comment_count>4</comment_count>
      <attachid>133713</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 11:11:44 -0700</bug_when>
    <thetext>Comment on attachment 133713
fix typos

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

&gt;&gt; Tools/Scripts/webkitpy/test/main.py:238
&gt;&gt; +class _Tree(object):
&gt; 
&gt; Do you mean a DirectoryTree?  &quot;Tree&quot; is a very broad name.  This code seems very specific to Python packages.

Yes, it refers to directory trees and is intended to by very python-specific. DirectoryTree is a fine name; other suggestions welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588116</commentid>
    <comment_count>5</comment_count>
      <attachid>133713</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 14:15:31 -0700</bug_when>
    <thetext>Comment on attachment 133713
fix typos

I&apos;d rename _Tree to something more specific (and maybe put it at the top of the file?).  There&apos;s an argument that says we should put the new class in its own module, which would have the benefit of making test-webkitpy smaller.  If we did that we, we&apos;d probably want to use filesystem rather than os.path.  I think it&apos;s a question of how far you&apos;d like to shave this yak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588125</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 14:22:28 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 133713 [details])
&gt; I&apos;d rename _Tree to something more specific (and maybe put it at the top of the file?).  There&apos;s an argument that says we should put the new class in its own module, which would have the benefit of making test-webkitpy smaller.  If we did that we, we&apos;d probably want to use filesystem rather than os.path.  I think it&apos;s a question of how far you&apos;d like to shave this yak.

Okay, I will rename and move it. 

I don&apos;t see much advantage to putting it in a different file, since I don&apos;t think anyone else will want to use it, and main.py isn&apos;t very big as it is.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588163</commentid>
    <comment_count>7</comment_count>
      <attachid>133899</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 14:56:06 -0700</bug_when>
    <thetext>Created attachment 133899
rename _Tree to TestDirectoryTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588167</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 14:58:25 -0700</bug_when>
    <thetext>Committed r112150: &lt;http://trac.webkit.org/changeset/112150&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133712</attachid>
            <date>2012-03-25 19:08:28 -0700</date>
            <delta_ts>2012-03-25 19:10:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82158-20120325190826.patch</filename>
            <type>text/plain</type>
            <size>10048</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmJhNDQ4OGVmNzBkODJjNGQyMjQxZDFiN2VlOWQ3Mjlj
YTNkYzY3MS4uZmQyNDdiM2FhNDk3ZDlhYzMwOTMyNDY2ZjQ1MTdlNmZkNThiZjhiMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDEyLTAzLTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIGFkZCBhIFRyZWUgYWJzdHJhY3Rpb24gdG8gdGVzdC13ZWJraXRweSB0byBiZXR0ZXIg
ZW5jYXBzdWxhdGUgdGhpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaCwg
YnV0IGFkZGluZyBhCisgICAgICAgIGJhc2ljIGFic3RyYWN0aW9uIGZvciB0aGUgdHJlZXMgd2Ug
YXJlIGxvb2tpbmcgaW4gZm9yIHB5dGhvbgorICAgICAgICB0ZXN0cyB3aWxsIGFsbG93IG1lIHRv
IGFkZCBzb21lIGZlYXR1cmVzIGxhdGVyIG9uIG1vcmUgZWFzaWx5CisgICAgICAgIChsaWtlIGln
bm9yaW5nIGNlcnRhaW4gZGlyZWN0b3JpZXMgbGlrZSB3ZWJraXRweS90aGlyZHBhcnR5KSwKKyAg
ICAgICAgYW5kIGl0IG1ha2VzIHRoaW5ncyBzbGlnaHRseSBsZXNzIGhhcmQtY29kZWQuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90ZXN0L21haW4ucHk6CisgICAgICAgIChUZXN0ZXIuX19pbml0X18pOgorICAgICAgICAoVGVz
dGVyKToKKyAgICAgICAgKFRlc3Rlci5hZGRfdHJlZSk6CisgICAgICAgIChUZXN0ZXIuX3BhcnNl
X2FyZ3MpOgorICAgICAgICAoVGVzdGVyLl9jb25maWd1cmUpOgorICAgICAgICAoVGVzdGVyLnJ1
bik6CisgICAgICAgIChUZXN0ZXIuX2ZpbmRfbW9kdWxlcyk6CisgICAgICAgIChUZXN0ZXIuX3J1
bl90ZXN0cyk6CisgICAgICAgIChUZXN0ZXIuX2lzX21vZHVsZSk6CisgICAgICAgIChUZXN0ZXIu
X2xvZ19leGNlcHRpb24pOgorICAgICAgICAoX1RyZWUpOgorICAgICAgICAoX1RyZWUuX19pbml0
X18pOgorICAgICAgICAoX1RyZWUuZmluZF9tb2R1bGVzKToKKyAgICAgICAgKF9UcmVlLmNsZWFu
KToKKwogMjAxMi0wMy0yNCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBjbGVhbiB1cCBOUldUIGxvZ2dpbmcvbWV0ZXJpbmcsIGJlIGxlc3MgdmVyYm9zZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvVG9vbHMvU2NyaXB0cy90
ZXN0LXdlYmtpdHB5CmluZGV4IDQyOThmZWFlMjM3M2E3YjhhMzdjNDBmYjljOGQwNTc0NjViZDk1
NmEuLjg1N2MxOTk0MDExOTcyYzcyYTUzMjc5MjJmM2FmMWRkNDY2YjY3OWEgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQorKysgYi9Ub29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHkKQEAgLTQ0LDExICs0NCw5IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigidGVzdC13
ZWJraXRweSIpCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIHdlYmtpdF9yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5h
YnNwYXRoKF9fZmlsZV9fKSkpKQogCi0gICAgIyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHRl
c3QgZWFjaCBwYWNrYWdlIHNlcGFyYXRlbHkgdG8gYXZvaWQgbmFtaW5nIGNvbmZsaWN0cy4KLSAg
ICBkaXJzID0gWwotICAgICAgICBvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdT
Y3JpcHRzJyksCi0gICAgICAgIG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1NvdXJjZScsICdX
ZWJLaXQyJywgJ1NjcmlwdHMnKSwKLSAgICBdCisgICAgdGVzdGVyID0gbWFpbi5UZXN0ZXIoKQor
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdT
Y3JpcHRzJyksICd3ZWJraXRweScpCisgICAgdGVzdGVyLmFkZF90cmVlKG9zLnBhdGguam9pbih3
ZWJraXRfcm9vdCwgJ1NvdXJjZScsICdXZWJLaXQyJywgJ1NjcmlwdHMnKSwgJ3dlYmtpdDInKQog
CiAgICAgIyBGSVhNRTogRG8gd2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlc3QgUXVldWVTdGF0dXNT
ZXJ2ZXIgb24gV2luZG93cyBhcyB3ZWxsPwogICAgIGFwcGVuZ2luZV9zZGtfcGF0aCA9ICcvdXNy
L2xvY2FsL2dvb2dsZV9hcHBlbmdpbmUnCkBAIC01OSwxNyArNTcsOCBAQCBpZiBfX25hbWVfXyA9
PSAiX19tYWluX18iOgogICAgICAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZGlzdCBpbXBvcnQg
dXNlX2xpYnJhcnkKICAgICAgICAgdXNlX2xpYnJhcnkoJ2RqYW5nbycsICcxLjInKQogICAgICAg
ICBkZXZfYXBwc2VydmVyLmZpeF9zeXNfcGF0aCgpCi0gICAgICAgIGRpcnMuYXBwZW5kKG9zLnBh
dGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1F1ZXVlU3RhdHVzU2VydmVyJykpCisgICAg
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdR
dWV1ZVN0YXR1c1NlcnZlcicpKQogICAgIGVsc2U6CiAgICAgICAgIF9sb2cuaW5mbygnU2tpcHBp
bmcgUXVldWVTdGF0dXNTZXJ2ZXIgdGVzdHM7IHRoZSBHb29nbGUgQXBwRW5naW5lIFB5dGhvbiBT
REsgaXMgbm90IGluc3RhbGxlZC4nKQogCi0gICAgbWFpbi5UZXN0ZXIuY2xlYW5fcGFja2FnZXMo
ZGlycykKLQotICAgIHRlc3RlciA9IG1haW4uVGVzdGVyKCkKLSAgICBvcHRpb25zLCBhcmdzID0g
dGVzdGVyLnBhcnNlX2FyZ3Moc3lzLmFyZ3YpCi0gICAgdGVzdGVyLmNvbmZpZ3VyZShvcHRpb25z
KQotCi0gICAgIyBNYWtlIHN1cmUgUFlUSE9OUEFUSCBpcyBzZXQgdXAgY29ycmVjdGx5IHNvIHRo
YXQgYWxsIG9mIHRoZSBpbXBvcnRzIHdpbGwgd29yay4KLSAgICBzeXMucGF0aCA9IFtkIGZvciBk
IGluIGRpcnMgaWYgZCBub3QgaW4gc3lzLnBhdGhdICsgc3lzLnBhdGgKLQotICAgIHN5cy5leGl0
KG5vdCB0ZXN0ZXIucnVuKGRpcnMsIGFyZ3MpKQorICAgIHN5cy5leGl0KG5vdCB0ZXN0ZXIucnVu
KCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CmluZGV4IDc2ZGFjMGUzYjQ1ZGUyODg4
YWMzOTliOGY5ODhjZDkxMTFlMTE2OTYuLjkyZWJjYTcyNjBhNmQ3ZTU5YzJlOTk3Y2Y4ODc2NTQw
ZTk1NGZjNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CkBAIC0zNiwyMiArMzYs
MTQgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIFRlc3Rl
cihvYmplY3QpOgotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY2xlYW5fcGFja2FnZXMoZGly
cyk6Ci0gICAgICAgICIiIkRlbGV0ZSBhbGwgLnB5YyBmaWxlcyB1bmRlciBkaXJzIHRoYXQgaGF2
ZSBubyAucHkgZmlsZS4iIiIKLSAgICAgICAgZm9yIGRpcl90b19jbGVhbiBpbiBkaXJzOgotICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiQ2xlYW5pbmcgb3JwaGFuZWQgKi5weWMgZmlsZXMgZnJvbTog
JXMiICUgZGlyX3RvX2NsZWFuKQotICAgICAgICAgICAgZm9yIGRpcl9wYXRoLCBkaXJfbmFtZXMs
IGZpbGVfbmFtZXMgaW4gb3Mud2FsayhkaXJfdG9fY2xlYW4pOgotICAgICAgICAgICAgICAgIGZv
ciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKLSAgICAgICAgICAgICAgICAgICAgaWYgZmlsZV9u
YW1lLmVuZHN3aXRoKCIucHljIikgYW5kIGZpbGVfbmFtZVs6LTFdIG5vdCBpbiBmaWxlX25hbWVz
OgotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKGRpcl9w
YXRoLCBmaWxlX25hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkRlbGV0
aW5nIG9ycGhhbiAqLnB5YyBmaWxlOiAlcyIgJSBmaWxlX3BhdGgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBvcy5yZW1vdmUoZmlsZV9wYXRoKQotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgog
ICAgICAgICBzZWxmLl92ZXJib3NpdHkgPSAxCisgICAgICAgIHNlbGYuX3RyZWVzID0gW10KKwor
ICAgIGRlZiBhZGRfdHJlZShzZWxmLCB0b3BfZGlyZWN0b3J5LCBzdGFydGluZ19zdWJkaXJlY3Rv
cnk9Tm9uZSk6CisgICAgICAgIHNlbGYuX3RyZWVzLmFwcGVuZChfVHJlZSh0b3BfZGlyZWN0b3J5
LCBzdGFydGluZ19zdWJkaXJlY3RvcnkpKQogCi0gICAgZGVmIHBhcnNlX2FyZ3Moc2VsZiwgYXJn
dik6CisgICAgZGVmIF9wYXJzZV9hcmdzKHNlbGYpOgogICAgICAgICBwYXJzZXIgPSBvcHRwYXJz
ZS5PcHRpb25QYXJzZXIodXNhZ2U9J3VzYWdlOiAlcHJvZyBbb3B0aW9uc10gW2FyZ3MuLi5dJykK
ICAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1hJywgJy0tYWxsJywgYWN0aW9uPSdzdG9yZV90
cnVlJywgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncnVu
IGFsbCB0aGUgdGVzdHMnKSwKQEAgLTcxLDEwICs2Myw5IEBAIGNsYXNzIFRlc3RlcihvYmplY3Qp
OgogICAgICAgICBwYXJzZXIuZXBpbG9nID0gKCdbYXJncy4uLl0gaXMgYW4gb3B0aW9uYWwgbGlz
dCBvZiBtb2R1bGVzLCB0ZXN0X2NsYXNzZXMsIG9yIGluZGl2aWR1YWwgdGVzdHMuICcKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnSWYgbm8gYXJncyBhcmUgZ2l2ZW4sIGFsbCB0aGUgdGVzdHMg
d2lsbCBiZSBydW4uJykKIAotICAgICAgICBzZWxmLnByb2dOYW1lID0gb3MucGF0aC5iYXNlbmFt
ZShhcmd2WzBdKQotICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJndlsxOl0pCisg
ICAgICAgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncygpCiAKLSAgICBkZWYgY29uZmlndXJlKHNl
bGYsIG9wdGlvbnMpOgorICAgIGRlZiBfY29uZmlndXJlKHNlbGYsIG9wdGlvbnMpOgogICAgICAg
ICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogCiAgICAgICAgIGlmIG9wdGlvbnMuc2lsZW50OgpA
QCAtMTQxLDE2ICsxMzIsMjQgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgIF9sb2cu
aW5mbygiU3VwcHJlc3NpbmcgbW9zdCB3ZWJraXRweSBsb2dnaW5nIHdoaWxlIHJ1bm5pbmcgdW5p
dCB0ZXN0cy4iKQogICAgICAgICBoYW5kbGVyLmFkZEZpbHRlcih0ZXN0aW5nX2ZpbHRlcikKIAot
ICAgIGRlZiBydW4oc2VsZiwgZGlycywgYXJncyk6Ci0gICAgICAgIGFyZ3MgPSBhcmdzIG9yIHNl
bGYuX2ZpbmRfbW9kdWxlcyhkaXJzKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3Rlc3RzKGRp
cnMsIGFyZ3MpCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgb3B0aW9ucywgYXJncyA9IHNl
bGYuX3BhcnNlX2FyZ3MoKQorICAgICAgICBzZWxmLl9jb25maWd1cmUob3B0aW9ucykKKworICAg
ICAgICBmb3IgdHJlZSBpbiBzZWxmLnRyZWVzOgorICAgICAgICAgICAgdHJlZS5jbGVhbl9wYWNr
YWdlcygpCisKKyAgICAgICAgYXJncyA9IGFyZ3Mgb3Igc2VsZi5fZmluZF9tb2R1bGVzKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl90ZXN0cyhhcmdzKQorCisgICAgZGVmIF9maW5kX21vZHVs
ZXMoc2VsZik6CisgICAgICAgIHN1ZmZpeGVzID0gWydfdW5pdHRlc3QucHknXQorICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5za2lwX2ludGVncmF0aW9udGVzdHM6CisgICAgICAgICAgICBz
dWZmaXhlcy5hcHBlbmQoJ19pbnRlZ3JhdGlvbnRlc3QucHknKQogCi0gICAgZGVmIF9maW5kX21v
ZHVsZXMoc2VsZiwgZGlycyk6CiAgICAgICAgIG1vZHVsZXMgPSBbXQotICAgICAgICBmb3IgZGly
X3RvX3NlYXJjaCBpbiBkaXJzOgotICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQoc2VsZi5fZmlu
ZF9tb2R1bGVzX3VuZGVyKGRpcl90b19zZWFyY2gsICdfdW5pdHRlc3QucHknKSkKLSAgICAgICAg
ICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLnNraXBfaW50ZWdyYXRpb250ZXN0czoKLSAgICAgICAg
ICAgICAgICBtb2R1bGVzLmV4dGVuZChzZWxmLl9maW5kX21vZHVsZXNfdW5kZXIoZGlyX3RvX3Nl
YXJjaCwgJ19pbnRlZ3JhdGlvbnRlc3QucHknKSkKKyAgICAgICAgZm9yIHRyZWUgaW4gc2VsZi5f
dHJlZXM6CisgICAgICAgICAgICBtb2R1bGVzLmV4dGVuZCh0cmVlLmZpbmRfbW9kdWxlcyhzdWZm
aXhlcykpCiAgICAgICAgIG1vZHVsZXMuc29ydCgpCiAKICAgICAgICAgZm9yIG1vZHVsZSBpbiBt
b2R1bGVzOgpAQCAtMTgxLDIxICsxODAsNyBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAg
ICAgX2xvZy5pbmZvKCcgICAgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0lZDsgdXNlIC0tYWxsIHRvIGluY2x1ZGUpJyAlIGJ1Z2lkKQogICAgICAgICBfbG9nLmluZm8o
JycpCiAKLSAgICBkZWYgX2ZpbmRfbW9kdWxlc191bmRlcihzZWxmLCBkaXJfdG9fc2VhcmNoLCBz
dWZmaXgpOgotCi0gICAgICAgIGRlZiB0b19wYWNrYWdlKGRpcl9wYXRoKToKLSAgICAgICAgICAg
IHJldHVybiBkaXJfcGF0aC5yZXBsYWNlKGRpcl90b19zZWFyY2ggKyBvcy5zZXAsICcnKS5yZXBs
YWNlKG9zLnNlcCwgJy4nKQotCi0gICAgICAgIGRlZiB0b19tb2R1bGUoZmlsZW5hbWUsIHBhY2th
Z2UpOgotICAgICAgICAgICAgcmV0dXJuIHBhY2thZ2UgKyAnLicgKyBmaWxlbmFtZS5yZXBsYWNl
KCcucHknLCAnJykKLQotICAgICAgICBtb2R1bGVzID0gW10KLSAgICAgICAgZm9yIGRpcl9wYXRo
LCBfLCBmaWxlbmFtZXMgaW4gb3Mud2FsayhkaXJfdG9fc2VhcmNoKToKLSAgICAgICAgICAgIHBh
Y2thZ2UgPSB0b19wYWNrYWdlKGRpcl9wYXRoKQotICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQo
dG9fbW9kdWxlKGYsIHBhY2thZ2UpIGZvciBmIGluIGZpbGVuYW1lcyBpZiBmLmVuZHN3aXRoKHN1
ZmZpeCkpCi0gICAgICAgIHJldHVybiBtb2R1bGVzCi0KLSAgICBkZWYgX3J1bl90ZXN0cyhzZWxm
LCBkaXJzLCBhcmdzKToKKyAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCBhcmdzKToKICAgICAgICAg
aWYgc2VsZi5fb3B0aW9ucy5jb3ZlcmFnZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAg
ICAgICBpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkLmNvdmVyYWdlIGFz
IGNvdmVyYWdlCkBAIC0yMDUsMTIgKzE5MCwxNSBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAg
ICAgICAgICAgIGNvdiA9IGNvdmVyYWdlLmNvdmVyYWdlKCkKICAgICAgICAgICAgIGNvdi5zdGFy
dCgpCiAKKyAgICAgICAgIyBNYWtlIHN1cmUgUFlUSE9OUEFUSCBpcyBzZXQgdXAgcHJvcGVybHku
CisgICAgICAgIHN5cy5wYXRoID0gW2QgZm9yIGQgaW4gZGlycyBpZiBkIG5vdCBpbiBzeXMucGF0
aF0gKyBzeXMucGF0aAorCiAgICAgICAgIF9sb2cuZGVidWcoIkxvYWRpbmcgdGhlIHRlc3RzLi4u
IikKIAogICAgICAgICBsb2FkZXIgPSB1bml0dGVzdC5kZWZhdWx0VGVzdExvYWRlcgogICAgICAg
ICBzdWl0ZXMgPSBbXQogICAgICAgICBmb3IgbmFtZSBpbiBhcmdzOgotICAgICAgICAgICAgaWYg
c2VsZi5faXNfbW9kdWxlKGRpcnMsIG5hbWUpOgorICAgICAgICAgICAgaWYgc2VsZi5faXNfbW9k
dWxlKG5hbWUpOgogICAgICAgICAgICAgICAgICMgaW1wb3J0IG1vZHVsZXMgZXhwbGljaXRseSBi
ZWZvcmUgbG9hZGluZyB0aGVpciB0ZXN0cyBiZWNhdXNlCiAgICAgICAgICAgICAgICAgIyBsb2Fk
VGVzdHNGcm9tTmFtZSgpIHByb2R1Y2VzIGxvdXN5IGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgbW9k
dWxlcy4KICAgICAgICAgICAgICAgICB0cnk6CkBAIC0yMzYsMTIgKzIyNCw0MiBAQCBjbGFzcyBU
ZXN0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGNvdi5yZXBvcnQoc2hvd19taXNzaW5nPUZhbHNl
KQogICAgICAgICByZXR1cm4gcmVzdWx0Lndhc1N1Y2Nlc3NmdWwoKQogCi0gICAgZGVmIF9pc19t
b2R1bGUoc2VsZiwgZGlycywgbmFtZSk6CisgICAgZGVmIF9pc19tb2R1bGUoc2VsZiwgbmFtZSk6
CiAgICAgICAgIHJlbHBhdGggPSBuYW1lLnJlcGxhY2UoJy4nLCBvcy5zZXApICsgJy5weScKLSAg
ICAgICAgcmV0dXJuIGFueShvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZCwgcmVscGF0aCkp
IGZvciBkIGluIGRpcnMpCisgICAgICAgIHJldHVybiBhbnkob3MucGF0aC5leGlzdHMob3MucGF0
aC5qb2luKHRyZWUudG9wX2RpcmVjdG9yeSwgcmVscGF0aCkpIGZvciB0cmVlIGluIHNlbGYuX3Ry
ZWVzKQogCiAgICAgZGVmIF9sb2dfZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICBzID0gU3RyaW5n
SU8uU3RyaW5nSU8oKQogICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9cykKICAgICAg
ICAgZm9yIGwgaW4gcy5idWZsaXN0OgogICAgICAgICAgICAgX2xvZy5lcnJvcignICAnICsgbC5y
c3RyaXAoKSkKKworCitjbGFzcyBfVHJlZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB0b3BfZGlyZWN0b3J5LCBzdGFydGluZ19zdWJkaXJlY3RvcnkpOgorICAgICAgICBzZWxmLnRv
cF9kaXJlY3RvcnkgPSBvcy5wYXRoLnJlYWxwYXRoKHRvcF9kaXJlY3RvcnkpCisgICAgICAgIHNl
bGYuc2VhcmNoX2RpcmVjdG9yeSA9IHNlbGYudG9wX2RpcmVjdG9yeQorICAgICAgICBzZWxmLnRv
cF9wYWNrYWdlID0gJycKKyAgICAgICAgaWYgc3RhcnRpbmdfc3ViZGlyZWN0b3J5OgorICAgICAg
ICAgICAgc2VsZi50b3BfcGFja2FnZSA9IHN0YXJ0aW5nX3N1YmRpcmVjdG9yeS5yZXBsYWNlKG9z
LnNlcCwgJy4nKSArICcuJworICAgICAgICAgICAgc2VsZi5zZWFyY2hfZGlyZWN0b3J5ID0gb3Mu
cGF0aC5qb2luKHNlbGYudG9wX2RpcmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KQorCisg
ICAgZGVmIGZpbmRfbW9kdWxlcyhzZWxmLCBzdWZmaXhlcyk6CisgICAgICAgIG1vZHVsZXMgPSBb
XQorICAgICAgICBmb3IgZGlyX3BhdGgsIF8sIGZpbGVuYW1lcyBpbiBvcy53YWxrKHNlbGYuc2Vh
cmNoX2RpcmVjdG9yeSk6CisgICAgICAgICAgICBkaXJfcGF0aCA9IG9zLnBhdGguam9pbihkaXJf
cGF0aCwgJycpCisgICAgICAgICAgICBwYWNrYWdlID0gZGlyX3BhdGgucmVwbGFjZShzZWxmLnRv
cF9kaXJlY3RvcnkgKyBvcy5zZXAsICcnKS5yZXBsYWNlKG9zLnNlcCwgJy4nKQorICAgICAgICAg
ICAgZm9yIGYgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgICAgIGlmIGFueShmLmVuZHN3aXRo
KHN1ZmZpeCkgZm9yIHN1ZmZpeCBpbiBzdWZmaXhlcyk6CisgICAgICAgICAgICAgICAgICAgIG1v
ZHVsZXMuYXBwZW5kKHBhY2thZ2UgKyBmLnJlcGxhY2UoJy5weScsICcnKSkKKyAgICAgICAgcmV0
dXJuIG1vZHVsZXMKKworICAgIGRlZiBjbGVhbihzZWxmKToKKyAgICAgICAgIiIiRGVsZXRlIGFs
bCAucHljIGZpbGVzIHVuZGVyIGRpcnMgdGhhdCBoYXZlIG5vIC5weSBmaWxlLiIiIgorICAgICAg
ICBfbG9nLmRlYnVnKCJDbGVhbmluZyBvcnBoYW5lZCAqLnB5YyBmaWxlcyBmcm9tOiAlcyIgJSBz
ZWxmLnNlYXJjaF9kaXJlY3RvcnkpCisgICAgICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBm
aWxlX25hbWVzIGluIG9zLndhbGsoc2VsZi5zZWFyY2hfZGlyZWN0b3J5KToKKyAgICAgICAgICAg
IGZvciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKKyAgICAgICAgICAgICAgICBpZiBmaWxlX25h
bWUuZW5kc3dpdGgoIi5weWMiKSBhbmQgZmlsZV9uYW1lWzotMV0gbm90IGluIGZpbGVfbmFtZXM6
CisgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwg
ZmlsZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkRlbGV0aW5nIG9ycGhh
biAqLnB5YyBmaWxlOiAlcyIgJSBmaWxlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgIG9zLnJl
bW92ZShmaWxlX3BhdGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133713</attachid>
            <date>2012-03-25 19:10:38 -0700</date>
            <delta_ts>2012-03-26 14:56:02 -0700</delta_ts>
            <desc>fix typos</desc>
            <filename>bug-82158-20120325191037.patch</filename>
            <type>text/plain</type>
            <size>10084</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmJhNDQ4OGVmNzBkODJjNGQyMjQxZDFiN2VlOWQ3Mjlj
YTNkYzY3MS4uZmQyNDdiM2FhNDk3ZDlhYzMwOTMyNDY2ZjQ1MTdlNmZkNThiZjhiMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDEyLTAzLTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIGFkZCBhIFRyZWUgYWJzdHJhY3Rpb24gdG8gdGVzdC13ZWJraXRweSB0byBiZXR0ZXIg
ZW5jYXBzdWxhdGUgdGhpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhpcyBwYXRjaCwg
YnV0IGFkZGluZyBhCisgICAgICAgIGJhc2ljIGFic3RyYWN0aW9uIGZvciB0aGUgdHJlZXMgd2Ug
YXJlIGxvb2tpbmcgaW4gZm9yIHB5dGhvbgorICAgICAgICB0ZXN0cyB3aWxsIGFsbG93IG1lIHRv
IGFkZCBzb21lIGZlYXR1cmVzIGxhdGVyIG9uIG1vcmUgZWFzaWx5CisgICAgICAgIChsaWtlIGln
bm9yaW5nIGNlcnRhaW4gZGlyZWN0b3JpZXMgbGlrZSB3ZWJraXRweS90aGlyZHBhcnR5KSwKKyAg
ICAgICAgYW5kIGl0IG1ha2VzIHRoaW5ncyBzbGlnaHRseSBsZXNzIGhhcmQtY29kZWQuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90ZXN0L21haW4ucHk6CisgICAgICAgIChUZXN0ZXIuX19pbml0X18pOgorICAgICAgICAoVGVz
dGVyKToKKyAgICAgICAgKFRlc3Rlci5hZGRfdHJlZSk6CisgICAgICAgIChUZXN0ZXIuX3BhcnNl
X2FyZ3MpOgorICAgICAgICAoVGVzdGVyLl9jb25maWd1cmUpOgorICAgICAgICAoVGVzdGVyLnJ1
bik6CisgICAgICAgIChUZXN0ZXIuX2ZpbmRfbW9kdWxlcyk6CisgICAgICAgIChUZXN0ZXIuX3J1
bl90ZXN0cyk6CisgICAgICAgIChUZXN0ZXIuX2lzX21vZHVsZSk6CisgICAgICAgIChUZXN0ZXIu
X2xvZ19leGNlcHRpb24pOgorICAgICAgICAoX1RyZWUpOgorICAgICAgICAoX1RyZWUuX19pbml0
X18pOgorICAgICAgICAoX1RyZWUuZmluZF9tb2R1bGVzKToKKyAgICAgICAgKF9UcmVlLmNsZWFu
KToKKwogMjAxMi0wMy0yNCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBjbGVhbiB1cCBOUldUIGxvZ2dpbmcvbWV0ZXJpbmcsIGJlIGxlc3MgdmVyYm9zZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvVG9vbHMvU2NyaXB0cy90
ZXN0LXdlYmtpdHB5CmluZGV4IDQyOThmZWFlMjM3M2E3YjhhMzdjNDBmYjljOGQwNTc0NjViZDk1
NmEuLjg1N2MxOTk0MDExOTcyYzcyYTUzMjc5MjJmM2FmMWRkNDY2YjY3OWEgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQorKysgYi9Ub29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHkKQEAgLTQ0LDExICs0NCw5IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigidGVzdC13
ZWJraXRweSIpCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIHdlYmtpdF9yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5h
YnNwYXRoKF9fZmlsZV9fKSkpKQogCi0gICAgIyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHRl
c3QgZWFjaCBwYWNrYWdlIHNlcGFyYXRlbHkgdG8gYXZvaWQgbmFtaW5nIGNvbmZsaWN0cy4KLSAg
ICBkaXJzID0gWwotICAgICAgICBvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdT
Y3JpcHRzJyksCi0gICAgICAgIG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1NvdXJjZScsICdX
ZWJLaXQyJywgJ1NjcmlwdHMnKSwKLSAgICBdCisgICAgdGVzdGVyID0gbWFpbi5UZXN0ZXIoKQor
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdT
Y3JpcHRzJyksICd3ZWJraXRweScpCisgICAgdGVzdGVyLmFkZF90cmVlKG9zLnBhdGguam9pbih3
ZWJraXRfcm9vdCwgJ1NvdXJjZScsICdXZWJLaXQyJywgJ1NjcmlwdHMnKSwgJ3dlYmtpdDInKQog
CiAgICAgIyBGSVhNRTogRG8gd2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlc3QgUXVldWVTdGF0dXNT
ZXJ2ZXIgb24gV2luZG93cyBhcyB3ZWxsPwogICAgIGFwcGVuZ2luZV9zZGtfcGF0aCA9ICcvdXNy
L2xvY2FsL2dvb2dsZV9hcHBlbmdpbmUnCkBAIC01OSwxNyArNTcsOCBAQCBpZiBfX25hbWVfXyA9
PSAiX19tYWluX18iOgogICAgICAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZGlzdCBpbXBvcnQg
dXNlX2xpYnJhcnkKICAgICAgICAgdXNlX2xpYnJhcnkoJ2RqYW5nbycsICcxLjInKQogICAgICAg
ICBkZXZfYXBwc2VydmVyLmZpeF9zeXNfcGF0aCgpCi0gICAgICAgIGRpcnMuYXBwZW5kKG9zLnBh
dGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1F1ZXVlU3RhdHVzU2VydmVyJykpCisgICAg
ICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4od2Via2l0X3Jvb3QsICdUb29scycsICdR
dWV1ZVN0YXR1c1NlcnZlcicpKQogICAgIGVsc2U6CiAgICAgICAgIF9sb2cuaW5mbygnU2tpcHBp
bmcgUXVldWVTdGF0dXNTZXJ2ZXIgdGVzdHM7IHRoZSBHb29nbGUgQXBwRW5naW5lIFB5dGhvbiBT
REsgaXMgbm90IGluc3RhbGxlZC4nKQogCi0gICAgbWFpbi5UZXN0ZXIuY2xlYW5fcGFja2FnZXMo
ZGlycykKLQotICAgIHRlc3RlciA9IG1haW4uVGVzdGVyKCkKLSAgICBvcHRpb25zLCBhcmdzID0g
dGVzdGVyLnBhcnNlX2FyZ3Moc3lzLmFyZ3YpCi0gICAgdGVzdGVyLmNvbmZpZ3VyZShvcHRpb25z
KQotCi0gICAgIyBNYWtlIHN1cmUgUFlUSE9OUEFUSCBpcyBzZXQgdXAgY29ycmVjdGx5IHNvIHRo
YXQgYWxsIG9mIHRoZSBpbXBvcnRzIHdpbGwgd29yay4KLSAgICBzeXMucGF0aCA9IFtkIGZvciBk
IGluIGRpcnMgaWYgZCBub3QgaW4gc3lzLnBhdGhdICsgc3lzLnBhdGgKLQotICAgIHN5cy5leGl0
KG5vdCB0ZXN0ZXIucnVuKGRpcnMsIGFyZ3MpKQorICAgIHN5cy5leGl0KG5vdCB0ZXN0ZXIucnVu
KCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CmluZGV4IDc2ZGFjMGUzYjQ1ZGUyODg4
YWMzOTliOGY5ODhjZDkxMTFlMTE2OTYuLmE0ZjBiZGZmZTE4NGFiNzYwZjM5OWMxYzE0YzNhNWJk
ODJiYjM2NTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CkBAIC0zNiwyMiArMzYs
MTQgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIFRlc3Rl
cihvYmplY3QpOgotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY2xlYW5fcGFja2FnZXMoZGly
cyk6Ci0gICAgICAgICIiIkRlbGV0ZSBhbGwgLnB5YyBmaWxlcyB1bmRlciBkaXJzIHRoYXQgaGF2
ZSBubyAucHkgZmlsZS4iIiIKLSAgICAgICAgZm9yIGRpcl90b19jbGVhbiBpbiBkaXJzOgotICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiQ2xlYW5pbmcgb3JwaGFuZWQgKi5weWMgZmlsZXMgZnJvbTog
JXMiICUgZGlyX3RvX2NsZWFuKQotICAgICAgICAgICAgZm9yIGRpcl9wYXRoLCBkaXJfbmFtZXMs
IGZpbGVfbmFtZXMgaW4gb3Mud2FsayhkaXJfdG9fY2xlYW4pOgotICAgICAgICAgICAgICAgIGZv
ciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKLSAgICAgICAgICAgICAgICAgICAgaWYgZmlsZV9u
YW1lLmVuZHN3aXRoKCIucHljIikgYW5kIGZpbGVfbmFtZVs6LTFdIG5vdCBpbiBmaWxlX25hbWVz
OgotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKGRpcl9w
YXRoLCBmaWxlX25hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkRlbGV0
aW5nIG9ycGhhbiAqLnB5YyBmaWxlOiAlcyIgJSBmaWxlX3BhdGgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBvcy5yZW1vdmUoZmlsZV9wYXRoKQotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgog
ICAgICAgICBzZWxmLl92ZXJib3NpdHkgPSAxCisgICAgICAgIHNlbGYuX3RyZWVzID0gW10KKwor
ICAgIGRlZiBhZGRfdHJlZShzZWxmLCB0b3BfZGlyZWN0b3J5LCBzdGFydGluZ19zdWJkaXJlY3Rv
cnk9Tm9uZSk6CisgICAgICAgIHNlbGYuX3RyZWVzLmFwcGVuZChfVHJlZSh0b3BfZGlyZWN0b3J5
LCBzdGFydGluZ19zdWJkaXJlY3RvcnkpKQogCi0gICAgZGVmIHBhcnNlX2FyZ3Moc2VsZiwgYXJn
dik6CisgICAgZGVmIF9wYXJzZV9hcmdzKHNlbGYpOgogICAgICAgICBwYXJzZXIgPSBvcHRwYXJz
ZS5PcHRpb25QYXJzZXIodXNhZ2U9J3VzYWdlOiAlcHJvZyBbb3B0aW9uc10gW2FyZ3MuLi5dJykK
ICAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1hJywgJy0tYWxsJywgYWN0aW9uPSdzdG9yZV90
cnVlJywgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncnVu
IGFsbCB0aGUgdGVzdHMnKSwKQEAgLTcxLDEwICs2Myw5IEBAIGNsYXNzIFRlc3RlcihvYmplY3Qp
OgogICAgICAgICBwYXJzZXIuZXBpbG9nID0gKCdbYXJncy4uLl0gaXMgYW4gb3B0aW9uYWwgbGlz
dCBvZiBtb2R1bGVzLCB0ZXN0X2NsYXNzZXMsIG9yIGluZGl2aWR1YWwgdGVzdHMuICcKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnSWYgbm8gYXJncyBhcmUgZ2l2ZW4sIGFsbCB0aGUgdGVzdHMg
d2lsbCBiZSBydW4uJykKIAotICAgICAgICBzZWxmLnByb2dOYW1lID0gb3MucGF0aC5iYXNlbmFt
ZShhcmd2WzBdKQotICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJndlsxOl0pCisg
ICAgICAgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncygpCiAKLSAgICBkZWYgY29uZmlndXJlKHNl
bGYsIG9wdGlvbnMpOgorICAgIGRlZiBfY29uZmlndXJlKHNlbGYsIG9wdGlvbnMpOgogICAgICAg
ICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogCiAgICAgICAgIGlmIG9wdGlvbnMuc2lsZW50OgpA
QCAtMTQxLDE2ICsxMzIsMjQgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgIF9sb2cu
aW5mbygiU3VwcHJlc3NpbmcgbW9zdCB3ZWJraXRweSBsb2dnaW5nIHdoaWxlIHJ1bm5pbmcgdW5p
dCB0ZXN0cy4iKQogICAgICAgICBoYW5kbGVyLmFkZEZpbHRlcih0ZXN0aW5nX2ZpbHRlcikKIAot
ICAgIGRlZiBydW4oc2VsZiwgZGlycywgYXJncyk6Ci0gICAgICAgIGFyZ3MgPSBhcmdzIG9yIHNl
bGYuX2ZpbmRfbW9kdWxlcyhkaXJzKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3Rlc3RzKGRp
cnMsIGFyZ3MpCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgb3B0aW9ucywgYXJncyA9IHNl
bGYuX3BhcnNlX2FyZ3MoKQorICAgICAgICBzZWxmLl9jb25maWd1cmUob3B0aW9ucykKKworICAg
ICAgICBmb3IgdHJlZSBpbiBzZWxmLl90cmVlczoKKyAgICAgICAgICAgIHRyZWUuY2xlYW4oKQor
CisgICAgICAgIGFyZ3MgPSBhcmdzIG9yIHNlbGYuX2ZpbmRfbW9kdWxlcygpCisgICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fdGVzdHMoYXJncykKKworICAgIGRlZiBfZmluZF9tb2R1bGVzKHNlbGYp
OgorICAgICAgICBzdWZmaXhlcyA9IFsnX3VuaXR0ZXN0LnB5J10KKyAgICAgICAgaWYgbm90IHNl
bGYuX29wdGlvbnMuc2tpcF9pbnRlZ3JhdGlvbnRlc3RzOgorICAgICAgICAgICAgc3VmZml4ZXMu
YXBwZW5kKCdfaW50ZWdyYXRpb250ZXN0LnB5JykKIAotICAgIGRlZiBfZmluZF9tb2R1bGVzKHNl
bGYsIGRpcnMpOgogICAgICAgICBtb2R1bGVzID0gW10KLSAgICAgICAgZm9yIGRpcl90b19zZWFy
Y2ggaW4gZGlyczoKLSAgICAgICAgICAgIG1vZHVsZXMuZXh0ZW5kKHNlbGYuX2ZpbmRfbW9kdWxl
c191bmRlcihkaXJfdG9fc2VhcmNoLCAnX3VuaXR0ZXN0LnB5JykpCi0gICAgICAgICAgICBpZiBu
b3Qgc2VsZi5fb3B0aW9ucy5za2lwX2ludGVncmF0aW9udGVzdHM6Ci0gICAgICAgICAgICAgICAg
bW9kdWxlcy5leHRlbmQoc2VsZi5fZmluZF9tb2R1bGVzX3VuZGVyKGRpcl90b19zZWFyY2gsICdf
aW50ZWdyYXRpb250ZXN0LnB5JykpCisgICAgICAgIGZvciB0cmVlIGluIHNlbGYuX3RyZWVzOgor
ICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQodHJlZS5maW5kX21vZHVsZXMoc3VmZml4ZXMpKQog
ICAgICAgICBtb2R1bGVzLnNvcnQoKQogCiAgICAgICAgIGZvciBtb2R1bGUgaW4gbW9kdWxlczoK
QEAgLTE4MSwyMSArMTgwLDcgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgIF9sb2cu
aW5mbygnICAgIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9JWQ7IHVz
ZSAtLWFsbCB0byBpbmNsdWRlKScgJSBidWdpZCkKICAgICAgICAgX2xvZy5pbmZvKCcnKQogCi0g
ICAgZGVmIF9maW5kX21vZHVsZXNfdW5kZXIoc2VsZiwgZGlyX3RvX3NlYXJjaCwgc3VmZml4KToK
LQotICAgICAgICBkZWYgdG9fcGFja2FnZShkaXJfcGF0aCk6Ci0gICAgICAgICAgICByZXR1cm4g
ZGlyX3BhdGgucmVwbGFjZShkaXJfdG9fc2VhcmNoICsgb3Muc2VwLCAnJykucmVwbGFjZShvcy5z
ZXAsICcuJykKLQotICAgICAgICBkZWYgdG9fbW9kdWxlKGZpbGVuYW1lLCBwYWNrYWdlKToKLSAg
ICAgICAgICAgIHJldHVybiBwYWNrYWdlICsgJy4nICsgZmlsZW5hbWUucmVwbGFjZSgnLnB5Jywg
JycpCi0KLSAgICAgICAgbW9kdWxlcyA9IFtdCi0gICAgICAgIGZvciBkaXJfcGF0aCwgXywgZmls
ZW5hbWVzIGluIG9zLndhbGsoZGlyX3RvX3NlYXJjaCk6Ci0gICAgICAgICAgICBwYWNrYWdlID0g
dG9fcGFja2FnZShkaXJfcGF0aCkKLSAgICAgICAgICAgIG1vZHVsZXMuZXh0ZW5kKHRvX21vZHVs
ZShmLCBwYWNrYWdlKSBmb3IgZiBpbiBmaWxlbmFtZXMgaWYgZi5lbmRzd2l0aChzdWZmaXgpKQot
ICAgICAgICByZXR1cm4gbW9kdWxlcwotCi0gICAgZGVmIF9ydW5fdGVzdHMoc2VsZiwgZGlycywg
YXJncyk6CisgICAgZGVmIF9ydW5fdGVzdHMoc2VsZiwgYXJncyk6CiAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMuY292ZXJhZ2U6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgaW1w
b3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5jb3ZlcmFnZSBhcyBjb3ZlcmFn
ZQpAQCAtMjA1LDEyICsxOTAsMTUgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICBjb3YgPSBjb3ZlcmFnZS5jb3ZlcmFnZSgpCiAgICAgICAgICAgICBjb3Yuc3RhcnQoKQogCisg
ICAgICAgICMgTWFrZSBzdXJlIFBZVEhPTlBBVEggaXMgc2V0IHVwIHByb3Blcmx5LgorICAgICAg
ICBzeXMucGF0aCA9IFt0cmVlLnRvcF9kaXJlY3RvcnkgZm9yIHRyZWUgaW4gc2VsZi5fdHJlZXMg
aWYgdHJlZS50b3BfZGlyZWN0b3J5IG5vdCBpbiBzeXMucGF0aF0gKyBzeXMucGF0aAorCiAgICAg
ICAgIF9sb2cuZGVidWcoIkxvYWRpbmcgdGhlIHRlc3RzLi4uIikKIAogICAgICAgICBsb2FkZXIg
PSB1bml0dGVzdC5kZWZhdWx0VGVzdExvYWRlcgogICAgICAgICBzdWl0ZXMgPSBbXQogICAgICAg
ICBmb3IgbmFtZSBpbiBhcmdzOgotICAgICAgICAgICAgaWYgc2VsZi5faXNfbW9kdWxlKGRpcnMs
IG5hbWUpOgorICAgICAgICAgICAgaWYgc2VsZi5faXNfbW9kdWxlKG5hbWUpOgogICAgICAgICAg
ICAgICAgICMgaW1wb3J0IG1vZHVsZXMgZXhwbGljaXRseSBiZWZvcmUgbG9hZGluZyB0aGVpciB0
ZXN0cyBiZWNhdXNlCiAgICAgICAgICAgICAgICAgIyBsb2FkVGVzdHNGcm9tTmFtZSgpIHByb2R1
Y2VzIGxvdXN5IGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgbW9kdWxlcy4KICAgICAgICAgICAgICAg
ICB0cnk6CkBAIC0yMzYsMTIgKzIyNCw0MiBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAg
ICAgICAgIGNvdi5yZXBvcnQoc2hvd19taXNzaW5nPUZhbHNlKQogICAgICAgICByZXR1cm4gcmVz
dWx0Lndhc1N1Y2Nlc3NmdWwoKQogCi0gICAgZGVmIF9pc19tb2R1bGUoc2VsZiwgZGlycywgbmFt
ZSk6CisgICAgZGVmIF9pc19tb2R1bGUoc2VsZiwgbmFtZSk6CiAgICAgICAgIHJlbHBhdGggPSBu
YW1lLnJlcGxhY2UoJy4nLCBvcy5zZXApICsgJy5weScKLSAgICAgICAgcmV0dXJuIGFueShvcy5w
YXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZCwgcmVscGF0aCkpIGZvciBkIGluIGRpcnMpCisgICAg
ICAgIHJldHVybiBhbnkob3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHRyZWUudG9wX2RpcmVj
dG9yeSwgcmVscGF0aCkpIGZvciB0cmVlIGluIHNlbGYuX3RyZWVzKQogCiAgICAgZGVmIF9sb2df
ZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICBzID0gU3RyaW5nSU8uU3RyaW5nSU8oKQogICAgICAg
ICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9cykKICAgICAgICAgZm9yIGwgaW4gcy5idWZsaXN0
OgogICAgICAgICAgICAgX2xvZy5lcnJvcignICAnICsgbC5yc3RyaXAoKSkKKworCitjbGFzcyBf
VHJlZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0b3BfZGlyZWN0b3J5LCBzdGFy
dGluZ19zdWJkaXJlY3RvcnkpOgorICAgICAgICBzZWxmLnRvcF9kaXJlY3RvcnkgPSBvcy5wYXRo
LnJlYWxwYXRoKHRvcF9kaXJlY3RvcnkpCisgICAgICAgIHNlbGYuc2VhcmNoX2RpcmVjdG9yeSA9
IHNlbGYudG9wX2RpcmVjdG9yeQorICAgICAgICBzZWxmLnRvcF9wYWNrYWdlID0gJycKKyAgICAg
ICAgaWYgc3RhcnRpbmdfc3ViZGlyZWN0b3J5OgorICAgICAgICAgICAgc2VsZi50b3BfcGFja2Fn
ZSA9IHN0YXJ0aW5nX3N1YmRpcmVjdG9yeS5yZXBsYWNlKG9zLnNlcCwgJy4nKSArICcuJworICAg
ICAgICAgICAgc2VsZi5zZWFyY2hfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHNlbGYudG9wX2Rp
cmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KQorCisgICAgZGVmIGZpbmRfbW9kdWxlcyhz
ZWxmLCBzdWZmaXhlcyk6CisgICAgICAgIG1vZHVsZXMgPSBbXQorICAgICAgICBmb3IgZGlyX3Bh
dGgsIF8sIGZpbGVuYW1lcyBpbiBvcy53YWxrKHNlbGYuc2VhcmNoX2RpcmVjdG9yeSk6CisgICAg
ICAgICAgICBkaXJfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwgJycpCisgICAgICAgICAg
ICBwYWNrYWdlID0gZGlyX3BhdGgucmVwbGFjZShzZWxmLnRvcF9kaXJlY3RvcnkgKyBvcy5zZXAs
ICcnKS5yZXBsYWNlKG9zLnNlcCwgJy4nKQorICAgICAgICAgICAgZm9yIGYgaW4gZmlsZW5hbWVz
OgorICAgICAgICAgICAgICAgIGlmIGFueShmLmVuZHN3aXRoKHN1ZmZpeCkgZm9yIHN1ZmZpeCBp
biBzdWZmaXhlcyk6CisgICAgICAgICAgICAgICAgICAgIG1vZHVsZXMuYXBwZW5kKHBhY2thZ2Ug
KyBmLnJlcGxhY2UoJy5weScsICcnKSkKKyAgICAgICAgcmV0dXJuIG1vZHVsZXMKKworICAgIGRl
ZiBjbGVhbihzZWxmKToKKyAgICAgICAgIiIiRGVsZXRlIGFsbCAucHljIGZpbGVzIHVuZGVyIGRp
cnMgdGhhdCBoYXZlIG5vIC5weSBmaWxlLiIiIgorICAgICAgICBfbG9nLmRlYnVnKCJDbGVhbmlu
ZyBvcnBoYW5lZCAqLnB5YyBmaWxlcyBmcm9tOiAlcyIgJSBzZWxmLnNlYXJjaF9kaXJlY3Rvcnkp
CisgICAgICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBmaWxlX25hbWVzIGluIG9zLndhbGso
c2VsZi5zZWFyY2hfZGlyZWN0b3J5KToKKyAgICAgICAgICAgIGZvciBmaWxlX25hbWUgaW4gZmls
ZV9uYW1lczoKKyAgICAgICAgICAgICAgICBpZiBmaWxlX25hbWUuZW5kc3dpdGgoIi5weWMiKSBh
bmQgZmlsZV9uYW1lWzotMV0gbm90IGluIGZpbGVfbmFtZXM6CisgICAgICAgICAgICAgICAgICAg
IGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwgZmlsZV9uYW1lKQorICAgICAgICAg
ICAgICAgICAgICBfbG9nLmluZm8oIkRlbGV0aW5nIG9ycGhhbiAqLnB5YyBmaWxlOiAlcyIgJSBm
aWxlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgIG9zLnJlbW92ZShmaWxlX3BhdGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133899</attachid>
            <date>2012-03-26 14:56:06 -0700</date>
            <delta_ts>2012-03-26 14:56:06 -0700</delta_ts>
            <desc>rename _Tree to TestDirectoryTree</desc>
            <filename>bug-82158-20120326145605.patch</filename>
            <type>text/plain</type>
            <size>10219</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWM4ZjAxZTdiM2NjMDZkZTQ5NDVkZTE3YjVmNGY1YjYz
MTI1YWViOS4uYjZkNGI1ZjI4NDM5MzIzMTRjZGMxMTEzNzI1NzM4ZGJmOTA1NDY2OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1
IEBACiAyMDEyLTAzLTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIGFkZCBhIFRyZWUgYWJzdHJhY3Rpb24gdG8gdGVzdC13ZWJraXRweSB0byBiZXR0ZXIg
ZW5jYXBzdWxhdGUgdGhpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAg
ICAgICAgVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLCBidXQg
YWRkaW5nIGEKKyAgICAgICAgYmFzaWMgYWJzdHJhY3Rpb24gZm9yIHRoZSB0cmVlcyB3ZSBhcmUg
bG9va2luZyBpbiBmb3IgcHl0aG9uCisgICAgICAgIHRlc3RzIHdpbGwgYWxsb3cgbWUgdG8gYWRk
IHNvbWUgZmVhdHVyZXMgbGF0ZXIgb24gbW9yZSBlYXNpbHkKKyAgICAgICAgKGxpa2UgaWdub3Jp
bmcgY2VydGFpbiBkaXJlY3RvcmllcyBsaWtlIHdlYmtpdHB5L3RoaXJkcGFydHkpLAorICAgICAg
ICBhbmQgaXQgbWFrZXMgdGhpbmdzIHNsaWdodGx5IGxlc3MgaGFyZC1jb2RlZC4KKworICAgICAg
ICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rl
c3QvbWFpbi5weToKKyAgICAgICAgKFRlc3Rlci5fX2luaXRfXyk6CisgICAgICAgIChUZXN0ZXIp
OgorICAgICAgICAoVGVzdGVyLmFkZF90cmVlKToKKyAgICAgICAgKFRlc3Rlci5fcGFyc2VfYXJn
cyk6CisgICAgICAgIChUZXN0ZXIuX2NvbmZpZ3VyZSk6CisgICAgICAgIChUZXN0ZXIucnVuKToK
KyAgICAgICAgKFRlc3Rlci5fZmluZF9tb2R1bGVzKToKKyAgICAgICAgKFRlc3Rlci5fcnVuX3Rl
c3RzKToKKyAgICAgICAgKFRlc3Rlci5faXNfbW9kdWxlKToKKyAgICAgICAgKFRlc3Rlci5fbG9n
X2V4Y2VwdGlvbik6CisgICAgICAgIChUZXN0RGlyZWN0b3J5VHJlZSk6CisgICAgICAgIChUZXN0
RGlyZWN0b3J5VHJlZS5fX2luaXRfXyk6CisgICAgICAgIChUZXN0RGlyZWN0b3J5VHJlZS5maW5k
X21vZHVsZXMpOgorICAgICAgICAoVGVzdERpcmVjdG9yeVRyZWUuY2xlYW4pOgorCisyMDEyLTAz
LTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIGNsZWFu
IHVwIE5SV1QgbG9nZ2luZy9tZXRlcmluZywgYmUgbGVzcyB2ZXJib3NlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg0NgogCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkgYi9Ub29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkK
aW5kZXggNDI5OGZlYWUyMzczYTdiOGEzN2M0MGZiOWM4ZDA1NzQ2NWJkOTU2YS4uODU3YzE5OTQw
MTE5NzJjNzJhNTMyNzkyMmYzYWYxZGQ0NjZiNjc5YSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy90ZXN0LXdlYmtpdHB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQpAQCAtNDQs
MTEgKzQ0LDkgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ0ZXN0LXdlYmtpdHB5IikKIGlm
IF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgd2Via2l0X3Jvb3QgPSBvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxl
X18pKSkpCiAKLSAgICAjIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgdGVzdCBlYWNoIHBhY2th
Z2Ugc2VwYXJhdGVseSB0byBhdm9pZCBuYW1pbmcgY29uZmxpY3RzLgotICAgIGRpcnMgPSBbCi0g
ICAgICAgIG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1NjcmlwdHMnKSwKLSAg
ICAgICAgb3MucGF0aC5qb2luKHdlYmtpdF9yb290LCAnU291cmNlJywgJ1dlYktpdDInLCAnU2Ny
aXB0cycpLAotICAgIF0KKyAgICB0ZXN0ZXIgPSBtYWluLlRlc3RlcigpCisgICAgdGVzdGVyLmFk
ZF90cmVlKG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1NjcmlwdHMnKSwgJ3dl
YmtpdHB5JykKKyAgICB0ZXN0ZXIuYWRkX3RyZWUob3MucGF0aC5qb2luKHdlYmtpdF9yb290LCAn
U291cmNlJywgJ1dlYktpdDInLCAnU2NyaXB0cycpLCAnd2Via2l0MicpCiAKICAgICAjIEZJWE1F
OiBEbyB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVzdCBRdWV1ZVN0YXR1c1NlcnZlciBvbiBXaW5k
b3dzIGFzIHdlbGw/CiAgICAgYXBwZW5naW5lX3Nka19wYXRoID0gJy91c3IvbG9jYWwvZ29vZ2xl
X2FwcGVuZ2luZScKQEAgLTU5LDE3ICs1Nyw4IEBAIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6
CiAgICAgICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5kaXN0IGltcG9ydCB1c2VfbGlicmFyeQog
ICAgICAgICB1c2VfbGlicmFyeSgnZGphbmdvJywgJzEuMicpCiAgICAgICAgIGRldl9hcHBzZXJ2
ZXIuZml4X3N5c19wYXRoKCkKLSAgICAgICAgZGlycy5hcHBlbmQob3MucGF0aC5qb2luKHdlYmtp
dF9yb290LCAnVG9vbHMnLCAnUXVldWVTdGF0dXNTZXJ2ZXInKSkKKyAgICAgICAgdGVzdGVyLmFk
ZF90cmVlKG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1F1ZXVlU3RhdHVzU2Vy
dmVyJykpCiAgICAgZWxzZToKICAgICAgICAgX2xvZy5pbmZvKCdTa2lwcGluZyBRdWV1ZVN0YXR1
c1NlcnZlciB0ZXN0czsgdGhlIEdvb2dsZSBBcHBFbmdpbmUgUHl0aG9uIFNESyBpcyBub3QgaW5z
dGFsbGVkLicpCiAKLSAgICBtYWluLlRlc3Rlci5jbGVhbl9wYWNrYWdlcyhkaXJzKQotCi0gICAg
dGVzdGVyID0gbWFpbi5UZXN0ZXIoKQotICAgIG9wdGlvbnMsIGFyZ3MgPSB0ZXN0ZXIucGFyc2Vf
YXJncyhzeXMuYXJndikKLSAgICB0ZXN0ZXIuY29uZmlndXJlKG9wdGlvbnMpCi0KLSAgICAjIE1h
a2Ugc3VyZSBQWVRIT05QQVRIIGlzIHNldCB1cCBjb3JyZWN0bHkgc28gdGhhdCBhbGwgb2YgdGhl
IGltcG9ydHMgd2lsbCB3b3JrLgotICAgIHN5cy5wYXRoID0gW2QgZm9yIGQgaW4gZGlycyBpZiBk
IG5vdCBpbiBzeXMucGF0aF0gKyBzeXMucGF0aAotCi0gICAgc3lzLmV4aXQobm90IHRlc3Rlci5y
dW4oZGlycywgYXJncykpCisgICAgc3lzLmV4aXQobm90IHRlc3Rlci5ydW4oKSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90ZXN0L21haW4ucHkKaW5kZXggNzZkYWMwZTNiNDVkZTI4ODhhYzM5OWI4Zjk4OGNk
OTExMWUxMTY5Ni4uNGJmYTA4NzQwYzI5MWFmNjZiMjRlY2I0ZjUxMzAyMWU3NTBhZTlmNCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkKQEAgLTM2LDIyICszNiwxNCBAQCBfbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgVGVzdGVyKG9iamVjdCk6Ci0g
ICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBjbGVhbl9wYWNrYWdlcyhkaXJzKToKLSAgICAgICAg
IiIiRGVsZXRlIGFsbCAucHljIGZpbGVzIHVuZGVyIGRpcnMgdGhhdCBoYXZlIG5vIC5weSBmaWxl
LiIiIgotICAgICAgICBmb3IgZGlyX3RvX2NsZWFuIGluIGRpcnM6Ci0gICAgICAgICAgICBfbG9n
LmRlYnVnKCJDbGVhbmluZyBvcnBoYW5lZCAqLnB5YyBmaWxlcyBmcm9tOiAlcyIgJSBkaXJfdG9f
Y2xlYW4pCi0gICAgICAgICAgICBmb3IgZGlyX3BhdGgsIGRpcl9uYW1lcywgZmlsZV9uYW1lcyBp
biBvcy53YWxrKGRpcl90b19jbGVhbik6Ci0gICAgICAgICAgICAgICAgZm9yIGZpbGVfbmFtZSBp
biBmaWxlX25hbWVzOgotICAgICAgICAgICAgICAgICAgICBpZiBmaWxlX25hbWUuZW5kc3dpdGgo
Ii5weWMiKSBhbmQgZmlsZV9uYW1lWzotMV0gbm90IGluIGZpbGVfbmFtZXM6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlyX3BhdGgsIGZpbGVfbmFt
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiRGVsZXRpbmcgb3JwaGFuICou
cHljIGZpbGU6ICVzIiAlIGZpbGVfcGF0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgIG9zLnJl
bW92ZShmaWxlX3BhdGgpCi0KICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYu
X3ZlcmJvc2l0eSA9IDEKKyAgICAgICAgc2VsZi5fdHJlZXMgPSBbXQorCisgICAgZGVmIGFkZF90
cmVlKHNlbGYsIHRvcF9kaXJlY3RvcnksIHN0YXJ0aW5nX3N1YmRpcmVjdG9yeT1Ob25lKToKKyAg
ICAgICAgc2VsZi5fdHJlZXMuYXBwZW5kKFRlc3REaXJlY3RvcnlUcmVlKHRvcF9kaXJlY3Rvcnks
IHN0YXJ0aW5nX3N1YmRpcmVjdG9yeSkpCiAKLSAgICBkZWYgcGFyc2VfYXJncyhzZWxmLCBhcmd2
KToKKyAgICBkZWYgX3BhcnNlX2FyZ3Moc2VsZik6CiAgICAgICAgIHBhcnNlciA9IG9wdHBhcnNl
Lk9wdGlvblBhcnNlcih1c2FnZT0ndXNhZ2U6ICVwcm9nIFtvcHRpb25zXSBbYXJncy4uLl0nKQog
ICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLWEnLCAnLS1hbGwnLCBhY3Rpb249J3N0b3JlX3Ry
dWUnLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdydW4g
YWxsIHRoZSB0ZXN0cycpLApAQCAtNzEsMTAgKzYzLDkgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6
CiAgICAgICAgIHBhcnNlci5lcGlsb2cgPSAoJ1thcmdzLi4uXSBpcyBhbiBvcHRpb25hbCBsaXN0
IG9mIG1vZHVsZXMsIHRlc3RfY2xhc3Nlcywgb3IgaW5kaXZpZHVhbCB0ZXN0cy4gJwogICAgICAg
ICAgICAgICAgICAgICAgICAgICdJZiBubyBhcmdzIGFyZSBnaXZlbiwgYWxsIHRoZSB0ZXN0cyB3
aWxsIGJlIHJ1bi4nKQogCi0gICAgICAgIHNlbGYucHJvZ05hbWUgPSBvcy5wYXRoLmJhc2VuYW1l
KGFyZ3ZbMF0pCi0gICAgICAgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncyhhcmd2WzE6XSkKKyAg
ICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKCkKIAotICAgIGRlZiBjb25maWd1cmUoc2Vs
Ziwgb3B0aW9ucyk6CisgICAgZGVmIF9jb25maWd1cmUoc2VsZiwgb3B0aW9ucyk6CiAgICAgICAg
IHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCiAKICAgICAgICAgaWYgb3B0aW9ucy5zaWxlbnQ6CkBA
IC0xNDEsMTYgKzEzMiwyNCBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgX2xvZy5p
bmZvKCJTdXBwcmVzc2luZyBtb3N0IHdlYmtpdHB5IGxvZ2dpbmcgd2hpbGUgcnVubmluZyB1bml0
IHRlc3RzLiIpCiAgICAgICAgIGhhbmRsZXIuYWRkRmlsdGVyKHRlc3RpbmdfZmlsdGVyKQogCi0g
ICAgZGVmIHJ1bihzZWxmLCBkaXJzLCBhcmdzKToKLSAgICAgICAgYXJncyA9IGFyZ3Mgb3Igc2Vs
Zi5fZmluZF9tb2R1bGVzKGRpcnMpCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fdGVzdHMoZGly
cywgYXJncykKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBvcHRpb25zLCBhcmdzID0gc2Vs
Zi5fcGFyc2VfYXJncygpCisgICAgICAgIHNlbGYuX2NvbmZpZ3VyZShvcHRpb25zKQorCisgICAg
ICAgIGZvciB0cmVlIGluIHNlbGYuX3RyZWVzOgorICAgICAgICAgICAgdHJlZS5jbGVhbigpCisK
KyAgICAgICAgYXJncyA9IGFyZ3Mgb3Igc2VsZi5fZmluZF9tb2R1bGVzKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl90ZXN0cyhhcmdzKQorCisgICAgZGVmIF9maW5kX21vZHVsZXMoc2VsZik6
CisgICAgICAgIHN1ZmZpeGVzID0gWydfdW5pdHRlc3QucHknXQorICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5za2lwX2ludGVncmF0aW9udGVzdHM6CisgICAgICAgICAgICBzdWZmaXhlcy5h
cHBlbmQoJ19pbnRlZ3JhdGlvbnRlc3QucHknKQogCi0gICAgZGVmIF9maW5kX21vZHVsZXMoc2Vs
ZiwgZGlycyk6CiAgICAgICAgIG1vZHVsZXMgPSBbXQotICAgICAgICBmb3IgZGlyX3RvX3NlYXJj
aCBpbiBkaXJzOgotICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQoc2VsZi5fZmluZF9tb2R1bGVz
X3VuZGVyKGRpcl90b19zZWFyY2gsICdfdW5pdHRlc3QucHknKSkKLSAgICAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLnNraXBfaW50ZWdyYXRpb250ZXN0czoKLSAgICAgICAgICAgICAgICBt
b2R1bGVzLmV4dGVuZChzZWxmLl9maW5kX21vZHVsZXNfdW5kZXIoZGlyX3RvX3NlYXJjaCwgJ19p
bnRlZ3JhdGlvbnRlc3QucHknKSkKKyAgICAgICAgZm9yIHRyZWUgaW4gc2VsZi5fdHJlZXM6Cisg
ICAgICAgICAgICBtb2R1bGVzLmV4dGVuZCh0cmVlLmZpbmRfbW9kdWxlcyhzdWZmaXhlcykpCiAg
ICAgICAgIG1vZHVsZXMuc29ydCgpCiAKICAgICAgICAgZm9yIG1vZHVsZSBpbiBtb2R1bGVzOgpA
QCAtMTgxLDIxICsxODAsNyBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgX2xvZy5p
bmZvKCcgICAgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0lZDsgdXNl
IC0tYWxsIHRvIGluY2x1ZGUpJyAlIGJ1Z2lkKQogICAgICAgICBfbG9nLmluZm8oJycpCiAKLSAg
ICBkZWYgX2ZpbmRfbW9kdWxlc191bmRlcihzZWxmLCBkaXJfdG9fc2VhcmNoLCBzdWZmaXgpOgot
Ci0gICAgICAgIGRlZiB0b19wYWNrYWdlKGRpcl9wYXRoKToKLSAgICAgICAgICAgIHJldHVybiBk
aXJfcGF0aC5yZXBsYWNlKGRpcl90b19zZWFyY2ggKyBvcy5zZXAsICcnKS5yZXBsYWNlKG9zLnNl
cCwgJy4nKQotCi0gICAgICAgIGRlZiB0b19tb2R1bGUoZmlsZW5hbWUsIHBhY2thZ2UpOgotICAg
ICAgICAgICAgcmV0dXJuIHBhY2thZ2UgKyAnLicgKyBmaWxlbmFtZS5yZXBsYWNlKCcucHknLCAn
JykKLQotICAgICAgICBtb2R1bGVzID0gW10KLSAgICAgICAgZm9yIGRpcl9wYXRoLCBfLCBmaWxl
bmFtZXMgaW4gb3Mud2FsayhkaXJfdG9fc2VhcmNoKToKLSAgICAgICAgICAgIHBhY2thZ2UgPSB0
b19wYWNrYWdlKGRpcl9wYXRoKQotICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQodG9fbW9kdWxl
KGYsIHBhY2thZ2UpIGZvciBmIGluIGZpbGVuYW1lcyBpZiBmLmVuZHN3aXRoKHN1ZmZpeCkpCi0g
ICAgICAgIHJldHVybiBtb2R1bGVzCi0KLSAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCBkaXJzLCBh
cmdzKToKKyAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCBhcmdzKToKICAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy5jb3ZlcmFnZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBpbXBv
cnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkLmNvdmVyYWdlIGFzIGNvdmVyYWdl
CkBAIC0yMDUsMTIgKzE5MCwxNSBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgICAg
IGNvdiA9IGNvdmVyYWdlLmNvdmVyYWdlKCkKICAgICAgICAgICAgIGNvdi5zdGFydCgpCiAKKyAg
ICAgICAgIyBNYWtlIHN1cmUgUFlUSE9OUEFUSCBpcyBzZXQgdXAgcHJvcGVybHkuCisgICAgICAg
IHN5cy5wYXRoID0gW3RyZWUudG9wX2RpcmVjdG9yeSBmb3IgdHJlZSBpbiBzZWxmLl90cmVlcyBp
ZiB0cmVlLnRvcF9kaXJlY3Rvcnkgbm90IGluIHN5cy5wYXRoXSArIHN5cy5wYXRoCisKICAgICAg
ICAgX2xvZy5kZWJ1ZygiTG9hZGluZyB0aGUgdGVzdHMuLi4iKQogCiAgICAgICAgIGxvYWRlciA9
IHVuaXR0ZXN0LmRlZmF1bHRUZXN0TG9hZGVyCiAgICAgICAgIHN1aXRlcyA9IFtdCiAgICAgICAg
IGZvciBuYW1lIGluIGFyZ3M6Ci0gICAgICAgICAgICBpZiBzZWxmLl9pc19tb2R1bGUoZGlycywg
bmFtZSk6CisgICAgICAgICAgICBpZiBzZWxmLl9pc19tb2R1bGUobmFtZSk6CiAgICAgICAgICAg
ICAgICAgIyBpbXBvcnQgbW9kdWxlcyBleHBsaWNpdGx5IGJlZm9yZSBsb2FkaW5nIHRoZWlyIHRl
c3RzIGJlY2F1c2UKICAgICAgICAgICAgICAgICAjIGxvYWRUZXN0c0Zyb21OYW1lKCkgcHJvZHVj
ZXMgbG91c3kgZXJyb3IgbWVzc2FnZXMgZm9yIGJhZCBtb2R1bGVzLgogICAgICAgICAgICAgICAg
IHRyeToKQEAgLTIzNiwxMiArMjI0LDQyIEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAg
ICAgICAgY292LnJlcG9ydChzaG93X21pc3Npbmc9RmFsc2UpCiAgICAgICAgIHJldHVybiByZXN1
bHQud2FzU3VjY2Vzc2Z1bCgpCiAKLSAgICBkZWYgX2lzX21vZHVsZShzZWxmLCBkaXJzLCBuYW1l
KToKKyAgICBkZWYgX2lzX21vZHVsZShzZWxmLCBuYW1lKToKICAgICAgICAgcmVscGF0aCA9IG5h
bWUucmVwbGFjZSgnLicsIG9zLnNlcCkgKyAnLnB5JwotICAgICAgICByZXR1cm4gYW55KG9zLnBh
dGguZXhpc3RzKG9zLnBhdGguam9pbihkLCByZWxwYXRoKSkgZm9yIGQgaW4gZGlycykKKyAgICAg
ICAgcmV0dXJuIGFueShvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4odHJlZS50b3BfZGlyZWN0
b3J5LCByZWxwYXRoKSkgZm9yIHRyZWUgaW4gc2VsZi5fdHJlZXMpCiAKICAgICBkZWYgX2xvZ19l
eGNlcHRpb24oc2VsZik6CiAgICAgICAgIHMgPSBTdHJpbmdJTy5TdHJpbmdJTygpCiAgICAgICAg
IHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zKQogICAgICAgICBmb3IgbCBpbiBzLmJ1Zmxpc3Q6
CiAgICAgICAgICAgICBfbG9nLmVycm9yKCcgICcgKyBsLnJzdHJpcCgpKQorCisKK2NsYXNzIFRl
c3REaXJlY3RvcnlUcmVlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvcF9kaXJl
Y3RvcnksIHN0YXJ0aW5nX3N1YmRpcmVjdG9yeSk6CisgICAgICAgIHNlbGYudG9wX2RpcmVjdG9y
eSA9IG9zLnBhdGgucmVhbHBhdGgodG9wX2RpcmVjdG9yeSkKKyAgICAgICAgc2VsZi5zZWFyY2hf
ZGlyZWN0b3J5ID0gc2VsZi50b3BfZGlyZWN0b3J5CisgICAgICAgIHNlbGYudG9wX3BhY2thZ2Ug
PSAnJworICAgICAgICBpZiBzdGFydGluZ19zdWJkaXJlY3Rvcnk6CisgICAgICAgICAgICBzZWxm
LnRvcF9wYWNrYWdlID0gc3RhcnRpbmdfc3ViZGlyZWN0b3J5LnJlcGxhY2Uob3Muc2VwLCAnLicp
ICsgJy4nCisgICAgICAgICAgICBzZWxmLnNlYXJjaF9kaXJlY3RvcnkgPSBvcy5wYXRoLmpvaW4o
c2VsZi50b3BfZGlyZWN0b3J5LCBzdGFydGluZ19zdWJkaXJlY3RvcnkpCisKKyAgICBkZWYgZmlu
ZF9tb2R1bGVzKHNlbGYsIHN1ZmZpeGVzKToKKyAgICAgICAgbW9kdWxlcyA9IFtdCisgICAgICAg
IGZvciBkaXJfcGF0aCwgXywgZmlsZW5hbWVzIGluIG9zLndhbGsoc2VsZi5zZWFyY2hfZGlyZWN0
b3J5KToKKyAgICAgICAgICAgIGRpcl9wYXRoID0gb3MucGF0aC5qb2luKGRpcl9wYXRoLCAnJykK
KyAgICAgICAgICAgIHBhY2thZ2UgPSBkaXJfcGF0aC5yZXBsYWNlKHNlbGYudG9wX2RpcmVjdG9y
eSArIG9zLnNlcCwgJycpLnJlcGxhY2Uob3Muc2VwLCAnLicpCisgICAgICAgICAgICBmb3IgZiBp
biBmaWxlbmFtZXM6CisgICAgICAgICAgICAgICAgaWYgYW55KGYuZW5kc3dpdGgoc3VmZml4KSBm
b3Igc3VmZml4IGluIHN1ZmZpeGVzKToKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlcy5hcHBl
bmQocGFja2FnZSArIGYucmVwbGFjZSgnLnB5JywgJycpKQorICAgICAgICByZXR1cm4gbW9kdWxl
cworCisgICAgZGVmIGNsZWFuKHNlbGYpOgorICAgICAgICAiIiJEZWxldGUgYWxsIC5weWMgZmls
ZXMgaW4gdGhlIHRyZWUgdGhhdCBoYXZlIG5vIG1hdGNoaW5nIC5weSBmaWxlLiIiIgorICAgICAg
ICBfbG9nLmRlYnVnKCJDbGVhbmluZyBvcnBoYW5lZCAqLnB5YyBmaWxlcyBmcm9tOiAlcyIgJSBz
ZWxmLnNlYXJjaF9kaXJlY3RvcnkpCisgICAgICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBm
aWxlX25hbWVzIGluIG9zLndhbGsoc2VsZi5zZWFyY2hfZGlyZWN0b3J5KToKKyAgICAgICAgICAg
IGZvciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKKyAgICAgICAgICAgICAgICBpZiBmaWxlX25h
bWUuZW5kc3dpdGgoIi5weWMiKSBhbmQgZmlsZV9uYW1lWzotMV0gbm90IGluIGZpbGVfbmFtZXM6
CisgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwg
ZmlsZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIkRlbGV0aW5nIG9ycGhh
biAqLnB5YyBmaWxlOiAlcyIgJSBmaWxlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgIG9zLnJl
bW92ZShmaWxlX3BhdGgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>