<?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>64646</bug_id>
          
          <creation_ts>2011-07-15 19:08:33 -0700</creation_ts>
          <short_desc>garden-o-matic should live update as conditions change on the buildbot</short_desc>
          <delta_ts>2011-07-19 00:37:09 -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>
          
          <blocked>64188</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>438107</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 19:08:33 -0700</bug_when>
    <thetext>garden-o-matic should live update as conditions change on the buildbot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438108</commentid>
    <comment_count>1</comment_count>
      <attachid>101086</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-15 19:08:57 -0700</bug_when>
    <thetext>Created attachment 101086
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438599</commentid>
    <comment_count>2</comment_count>
      <attachid>101179</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-18 11:23:38 -0700</bug_when>
    <thetext>Created attachment 101179
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438614</commentid>
    <comment_count>3</comment_count>
      <attachid>101184</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-18 11:47:13 -0700</bug_when>
    <thetext>Created attachment 101184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438616</commentid>
    <comment_count>4</comment_count>
      <attachid>101185</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-18 11:48:19 -0700</bug_when>
    <thetext>Created attachment 101185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438617</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-18 11:49:25 -0700</bug_when>
    <thetext>This patch disables the &quot;new test&quot; detection to avoid overloading the svn server.  We&apos;ll add it back in the future once we have caching set up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439011</commentid>
    <comment_count>6</comment_count>
      <attachid>101185</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-19 00:34:01 -0700</bug_when>
    <thetext>Comment on attachment 101185
Patch

rubber stamp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439013</commentid>
    <comment_count>7</comment_count>
      <attachid>101185</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-19 00:37:05 -0700</bug_when>
    <thetext>Comment on attachment 101185
Patch

Clearing flags on attachment: 101185

Committed r91240: &lt;http://trac.webkit.org/changeset/91240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439014</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-19 00:37:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101086</attachid>
            <date>2011-07-15 19:08:57 -0700</date>
            <delta_ts>2011-07-18 11:23:34 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-64646-20110715190856.patch</filename>
            <type>text/plain</type>
            <size>9982</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NDc5MDhkYmI2MjlkYWU1ZDI4YjEwOGI4ODkzZWI1OGVi
YjdhMWNkLi40NjFhY2Q1YmQ0MjYyNTZmNDQ4MmQwM2Y0Yjg3ODljNWVmNDI2M2U3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcg
QEAKIDIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgbGl2ZSB1cGRhdGUgYXMgY29uZGl0aW9ucyBjaGFuZ2Ug
b24gdGhlIGJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDY0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvYmFzZS5qczoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgorCisy
MDExLTA3LTE1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW5j
cmVhc2UgaW5mb3JtYXRpb24gZ2FyZGVuLW8tbWF0aWMgaW5mb3JtYXRpb24gZGVuc2l0eSBieSBz
d2l0Y2hpbmcgdG8gYSB0YWJsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjQ2NDIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qcyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2Jhc2UuanMKaW5kZXgg
OTFlZjJhNDMxZjE4MTNlMDA0YWIyYmVjOWI3ODYwOTc3M2ZkMDM3Ny4uMjQ4MmRmMjE4NjJlYTU2
ODUwYzFiM2ZjNDQ2ZjUyYmRlOGMxYmI3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qcworKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNl
LmpzCkBAIC05Nyw0ICs5NywxOCBAQCBiYXNlLmpzb25wID0gZnVuY3Rpb24odXJsLCBvbnN1Y2Nl
c3MpCiAgICAgfSk7CiB9OwogCitiYXNlLlJlcXVlc3RUcmFja2VyID0gZnVuY3Rpb24ocmVxdWVz
dHNJbkZsaWdodCwgY2FsbGJhY2ssIGFyZ3MpCit7CisgICAgdGhpcy5tX3JlcXVlc3RzSW5GbGln
aHQgPSByZXF1ZXN0c0luRmxpZ2h0OworICAgIHRoaXMubV9jYWxsYmFjayA9IGNhbGxiYWNrOwor
ICAgIHRoaXMubV9hcmdzID0gYXJncyB8fCBbXTsKK307CisKK2Jhc2UuUmVxdWVzdFRyYWNrZXIu
cHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICAtLXRoaXMubV9y
ZXF1ZXN0c0luRmxpZ2h0OworICAgIGlmICghdGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQpCisgICAg
ICAgIHRoaXMubV9jYWxsYmFjay5hcHBseShudWxsLCB0aGlzLm1fYXJncyk7Cit9OworCiB9KSgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9n
YXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3MgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwppbmRleCBmYThmMTBhMjVkMjk5MjNh
MTBmN2NhY2YyNjdkYWM3NGM5M2Q4N2ZiLi4wN2U3MTlmNTVhZWI3MmRiYmQzZmUwYTMwMGI1MDA0
OGMxYzZmODFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwpAQCAtODcsNiAr
ODcsMTAgQEAgdGFibGUucmVzdWx0cy1zdW1tYXJ5IHsKICAgICBwYWRkaW5nOiA0cHg7CiB9CiAK
Ky5yZXN1bHRzLXN1bW1hcnkgdGJvZHkgdHIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIC5y
ZXN1bHRzLXN1bW1hcnkgdWwgewogICAgIG1hcmdpbjogMHB4OwogICAgIHBhZGRpbmc6IDBweDsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL21haW4uanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCmluZGV4IDZkMDNmYzFmNWNmODk2MDVlZjA2
NjdmOTY0MmJjYmMzMWExMWIyY2IuLjEwOTRlOTg0MWMzNzhiZmZiYjBmYTBhMWFmZDc4Yjk4MjQx
OGRhNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwpAQCAtNDcsNTIgKzQ3LDEw
OCBAQCBmdW5jdGlvbiBzZXRJY29uU3RhdGUoaGFzRmFpbHVyZXMpCiAgICAgJCgnI2Zhdmljb24n
KS5hdHRyKCdocmVmJywgZmF2aWNvblVSTCk7CiB9CiAKLWZ1bmN0aW9uIHNob3dSZXN1bHRzKG9u
c3VjY2VzcykKK2Z1bmN0aW9uIHRvZ2dsZVBhcnR5VGltZShoYXNGYWlsdXJlcykKK3sKKyAgICBp
ZiAoIWhhc0ZhaWx1cmVzKSB7CisgICAgICAgICQoJy5yZXN1bHRzJykudGV4dCgnTm8gZmFpbHVy
ZXMuIFBhcnR5IHRpbWUhJyk7CisgICAgICAgIHZhciBwYXJ0eVRpbWUgPSAkKCc8ZGl2IGNsYXNz
PSJwYXJ0eXRpbWUiPjxpbWcgc3JjPSJwYXJ0eXRpbWUuZ2lmIj48L2Rpdj4nKTsKKyAgICAgICAg
JCgnLnJlc3VsdHMnKS5hcHBlbmQocGFydHlUaW1lKTsKKyAgICAgICAgcGFydHlUaW1lLmZhZGVJ
bigxMjAwKS5kZWxheSg3MDAwKS5mYWRlT3V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJCgnLnJlc3VsdHMnKS5lbXB0eSgpOworfQorCitmdW5jdGlvbiBlbnN1cmVSZXN1bHRzU3Vt
bWFyeUNvbnRhaW5lcigpCit7CisgICAgdmFyIGNvbnRhaW5lciA9ICQoJy5yZXN1bHRzLXN1bW1h
cnknKTsKKyAgICBpZiAoY29udGFpbmVyLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGNvbnRhaW5l
cjsKKyAgICBjb250YWluZXIgPSB1aS5yZWdyZXNzaW9uc0NvbnRhaW5lcigpOworICAgICQoJy5y
ZXN1bHRzJykuYXBwZW5kKGNvbnRhaW5lcik7CisgICAgcmV0dXJuIGNvbnRhaW5lcjsKK30KKwor
ZnVuY3Rpb24gZGV0YWNoUmVwYWlyZWRUZXN0c0FuZFByZXBhcmVUZXN0TWFwKHVuZXhwZWN0ZWRG
YWlsdXJlcykKK3sKKyAgICB2YXIgdGVzdE1hcCA9IHt9OworCisgICAgJCgnLnRlc3QnKS5lYWNo
KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdGVzdFN1bW1hcnkgPSAkKHRoaXMpOworICAgICAg
ICB2YXIgdGVzdE5hbWUgPSB0ZXN0U3VtbWFyeS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKTsK
KyAgICAgICAgaWYgKCEodGVzdE5hbWUgaW4gdW5leHBlY3RlZEZhaWx1cmVzKSkKKyAgICAgICAg
ICAgIHRlc3RTdW1tYXJ5LnNsaWRlVXAoZnVuY3Rpb24oKSB7IHRlc3RTdW1tYXJ5LmRldGFjaCgp
OyB9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdE1hcFt0ZXN0TmFtZV0gPSB0ZXN0
U3VtbWFyeTsKKyAgICB9KTsKKworICAgIHJldHVybiB0ZXN0TWFwOworfQorCitmdW5jdGlvbiBw
cmVwYXJlVGVzdFN1bW1hcnkodGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVyLCBjYWxsYmFj
aykKK3sKKyAgICB2YXIgdGVzdFN1bW1hcnkgPSB1aS5zdW1tYXJpemVUZXN0KHRlc3ROYW1lLCBy
ZXN1bHROb2Rlc0J5QnVpbGRlcik7CisgICAgdmFyIGJ1aWxkZXJOYW1lTGlzdCA9IGJhc2Uua2V5
cyhyZXN1bHROb2Rlc0J5QnVpbGRlcik7CisKKyAgICByZXN1bHRzLnVuaWZ5UmVncmVzc2lvblJh
bmdlcyhidWlsZGVyTmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihvbGRlc3RGYWlsaW5nUmV2
aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpc2lvbikgeworICAgICAgICAkKCcud2hlbicsIHRlc3RT
dW1tYXJ5KS5hcHBlbmQodWkuc3VtbWFyaXplUmVncmVzc2lvblJhbmdlKG9sZGVzdEZhaWxpbmdS
ZXZpc2lvbiwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uKSk7CisgICAgICAgIGlmICghbmV3ZXN0UGFz
c2luZ1JldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja291dC5leGlz
dHNBdFJldmlzaW9uKGNoZWNrb3V0LnN1YnZlcnNpb25VUkxGb3JUZXN0KHRlc3ROYW1lKSwgbmV3
ZXN0UGFzc2luZ1JldmlzaW9uLCBmdW5jdGlvbih0ZXN0RXhpc3RlZEJlZm9yZUZhaWx1cmUpIHsK
KyAgICAgICAgICAgICQodGVzdFN1bW1hcnkpLmF0dHIoJ2RhdGEtbmV3LXRlc3QnLCAhdGVzdEV4
aXN0ZWRCZWZvcmVGYWlsdXJlKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICByZXN1bHRz
LmNvdW50RmFpbHVyZU9jY3VyYW5jZXMoYnVpbGRlck5hbWVMaXN0LCB0ZXN0TmFtZSwgZnVuY3Rp
b24oZmFpbHVyZUNvdW50KSB7CisgICAgICAgICQodGVzdFN1bW1hcnkpLmF0dHIoY29uZmlnLmtG
YWlsdXJlQ291bnRBdHRyLCBmYWlsdXJlQ291bnQpOworICAgICAgICAkKCcuaG93LW1hbnknLCB0
ZXN0U3VtbWFyeSkudGV4dCh1aS5mYWlsdXJlQ291bnQoZmFpbHVyZUNvdW50KSk7CisgICAgfSk7
CisKKyAgICBjYWxsYmFjayh0ZXN0U3VtbWFyeSk7Cit9CisKK2Z1bmN0aW9uIHVwZGF0ZVJlc3Vs
dHNTdW1tYXJ5KGNhbGxiYWNrKQogewogICAgIHJlc3VsdHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVy
KGNvbmZpZy5rQnVpbGRlcnMsIGZ1bmN0aW9uKHJlc3VsdHNCeUJ1aWxkZXIpIHsKICAgICAgICAg
dmFyIHVuZXhwZWN0ZWRGYWlsdXJlcyA9IHJlc3VsdHMudW5leHBlY3RlZEZhaWx1cmVzQnlUZXN0
KHJlc3VsdHNCeUJ1aWxkZXIpOwogICAgICAgICB2YXIgaGFzRmFpbHVyZXMgPSAhJC5pc0VtcHR5
T2JqZWN0KHVuZXhwZWN0ZWRGYWlsdXJlcykKLSAgICAgICAgaWYgKCFoYXNGYWlsdXJlcykgewot
ICAgICAgICAgICAgJCgnLnJlc3VsdHMnKS50ZXh0KCdObyBmYWlsdXJlcy4gUGFydHkgdGltZSEn
KTsKLSAgICAgICAgICAgIHZhciBwYXJ0eVRpbWUgPSAkKCc8ZGl2IGNsYXNzPSJwYXJ0eXRpbWUi
PjxpbWcgc3JjPSJwYXJ0eXRpbWUuZ2lmIj48L2Rpdj4nKTsKLSAgICAgICAgICAgICQoJy5yZXN1
bHRzJykuYXBwZW5kKHBhcnR5VGltZSk7Ci0gICAgICAgICAgICBwYXJ0eVRpbWUuZmFkZUluKDEy
MDApLmRlbGF5KDcwMDApLmZhZGVPdXQoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHZhciByZWdyZXNzaW9ucyA9IHVpLnJlZ3Jlc3Npb25zQ29udGFpbmVyKCk7Ci0KLSAgICAgICAg
ICAgICQuZWFjaCh1bmV4cGVjdGVkRmFpbHVyZXMsIGZ1bmN0aW9uKHRlc3ROYW1lLCByZXN1bHRO
b2Rlc0J5QnVpbGRlcikgewotICAgICAgICAgICAgICAgIHZhciB0ZXN0U3VtbWFyeSA9IHVpLnN1
bW1hcml6ZVRlc3QodGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVyKTsKLSAgICAgICAgICAg
ICAgICAkKCd0Ym9keScsIHJlZ3Jlc3Npb25zKS5hcHBlbmQodGVzdFN1bW1hcnkpOwotCi0gICAg
ICAgICAgICAgICAgdmFyIGJ1aWxkZXJOYW1lTGlzdCA9IGJhc2Uua2V5cyhyZXN1bHROb2Rlc0J5
QnVpbGRlcik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy51bmlmeVJlZ3Jlc3Npb25SYW5nZXMo
YnVpbGRlck5hbWVMaXN0LCB0ZXN0TmFtZSwgZnVuY3Rpb24ob2xkZXN0RmFpbGluZ1JldmlzaW9u
LCBuZXdlc3RQYXNzaW5nUmV2aXNpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgJCgnLndoZW4n
LCB0ZXN0U3VtbWFyeSkuYXBwZW5kKHVpLnN1bW1hcml6ZVJlZ3Jlc3Npb25SYW5nZShvbGRlc3RG
YWlsaW5nUmV2aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpc2lvbikpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoIW5ld2VzdFBhc3NpbmdSZXZpc2lvbikKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQuZXhpc3RzQXRSZXZpc2lvbihj
aGVja291dC5zdWJ2ZXJzaW9uVVJMRm9yVGVzdCh0ZXN0TmFtZSksIG5ld2VzdFBhc3NpbmdSZXZp
c2lvbiwgZnVuY3Rpb24odGVzdEV4aXN0ZWRCZWZvcmVGYWlsdXJlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAkKHRlc3RTdW1tYXJ5KS5hdHRyKCdkYXRhLW5ldy10ZXN0JywgIXRlc3RFeGlz
dGVkQmVmb3JlRmFpbHVyZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgIHJlc3VsdHMuY291bnRGYWlsdXJlT2NjdXJhbmNlcyhi
dWlsZGVyTmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihmYWlsdXJlQ291bnQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgJCh0ZXN0U3VtbWFyeSkuYXR0cihjb25maWcua0ZhaWx1cmVDb3VudEF0
dHIsIGZhaWx1cmVDb3VudCk7Ci0gICAgICAgICAgICAgICAgICAgICQoJy5ob3ctbWFueScsIHRl
c3RTdW1tYXJ5KS50ZXh0KHVpLmZhaWx1cmVDb3VudChmYWlsdXJlQ291bnQpKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgJCgnLnJlc3VsdHMnKS5h
cHBlbmQocmVncmVzc2lvbnMpOwotICAgICAgICB9CisKKyAgICAgICAgdG9nZ2xlUGFydHlUaW1l
KGhhc0ZhaWx1cmVzKTsKICAgICAgICAgc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKTsKLSAgICAg
ICAgb25zdWNjZXNzKCk7CisKKyAgICAgICAgdmFyIGNvbnRhaW5lciA9IGVuc3VyZVJlc3VsdHNT
dW1tYXJ5Q29udGFpbmVyKCk7CisgICAgICAgIHZhciB0ZXN0TWFwID0gZGV0YWNoUmVwYWlyZWRU
ZXN0c0FuZFByZXBhcmVUZXN0TWFwKHVuZXhwZWN0ZWRGYWlsdXJlcyk7CisKKyAgICAgICAgdmFy
IG5ld1Rlc3RTdW1tYXJpZXMgPSAkKCk7CisgICAgICAgIHZhciByZXF1ZXN0VHJhY2tlciA9IG5l
dyBiYXNlLlJlcXVlc3RUcmFja2VyKGJhc2Uua2V5cyh1bmV4cGVjdGVkRmFpbHVyZXMpLmxlbmd0
aCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBuZXdUZXN0U3VtbWFyaWVzLmZhZGVJbigpOwor
ICAgICAgICAgICAgY2FsbGJhY2soKQorICAgICAgICB9KTsKKworICAgICAgICAkLmVhY2godW5l
eHBlY3RlZEZhaWx1cmVzLCBmdW5jdGlvbih0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIp
IHsKKyAgICAgICAgICAgIHByZXBhcmVUZXN0U3VtbWFyeSh0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNC
eUJ1aWxkZXIsIGZ1bmN0aW9uKHRlc3RTdW1tYXJ5KSB7CisgICAgICAgICAgICAgICAgdmFyIGV4
aXN0aW5nRWxlbWVudCA9IHRlc3RNYXBbdGVzdE5hbWVdOworICAgICAgICAgICAgICAgIGlmIChl
eGlzdGluZ0VsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdFbGVtZW50LnJl
cGxhY2VXaXRoKHRlc3RTdW1tYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFRyYWNr
ZXIucmVxdWVzdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJCgndGJvZHknLCBjb250YWluZXIpLmFwcGVu
ZCh0ZXN0U3VtbWFyeSk7CisgICAgICAgICAgICAgICAgbmV3VGVzdFN1bW1hcmllcyA9IG5ld1Rl
c3RTdW1tYXJpZXMuYWRkKHRlc3RTdW1tYXJ5KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHJh
Y2tlci5yZXF1ZXN0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAg
ICB9KTsKIH0KIAogZnVuY3Rpb24gc2hvd1Jlc3VsdHNEZXRhaWwoKQogewotICAgIHZhciB0ZXN0
QmxvY2sgPSAkKHRoaXMpLnBhcmVudHMoJy50ZXN0Jyk7CisgICAgdmFyIHRlc3RTdW1tYXJ5ID0g
JCh0aGlzKS5wYXJlbnRzKCcudGVzdCcpOwogICAgIHZhciBidWlsZGVyTmFtZSA9ICQodGhpcyku
YXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0cik7Ci0gICAgdmFyIHRlc3ROYW1lID0gJCgnLndo
YXQnLCB0ZXN0QmxvY2spLnRleHQoKTsKKyAgICB2YXIgdGVzdE5hbWUgPSB0ZXN0U3VtbWFyeS5h
dHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKTsKIAogICAgIC8vIEZJWE1FOiBJdCdzIGxhbWUgdGhh
dCB3ZSBoYXZlIHR3byBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb25zIG9mIG11bHRpcGxlIGZhaWx1
cmUgdHlwZXMuCi0gICAgdmFyIGZhaWx1cmVUeXBlcyA9IHRlc3RCbG9jay5hdHRyKGNvbmZpZy5r
RmFpbHVyZVR5cGVzQXR0cik7CisgICAgdmFyIGZhaWx1cmVUeXBlcyA9IHRlc3RTdW1tYXJ5LmF0
dHIoY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyKTsKICAgICB2YXIgZmFpbHVyZVR5cGVMaXN0ID0g
ZmFpbHVyZVR5cGVzLnNwbGl0KCcgJyk7CiAKICAgICB2YXIgY29udGVudCA9ICQoJy5yZXN1bHRz
LWRldGFpbCAuY29udGVudCcpOwpAQCAtMTY2LDYgKzIyMiw4IEBAIGZ1bmN0aW9uIGNoZWNrQnVp
bGRlclN0YXR1c2VzKCkKIAogZnVuY3Rpb24gdXBkYXRlKCkKIHsKKyAgICBkaXNwbGF5T25CdXR0
ZXJiYXIoJ0xvYWRpbmcuLi4nKTsKKyAgICB1cGRhdGVSZXN1bHRzU3VtbWFyeShkaXNtaXNzQnV0
dGVyYmFyKTsKICAgICBjaGVja0J1aWxkZXJTdGF0dXNlcygpOwogfQogCkBAIC0xNzQsOSArMjMy
LDYgQEAgJCgnLnJlc3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNtaXNzJykubGl2ZSgnY2xpY2sn
LCBoaWRlUmVzdWx0c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFz
ZWxpbmUnKS5saXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRzKTsKIAogJChkb2N1bWVudCku
cmVhZHkoZnVuY3Rpb24oKSB7Ci0gICAgc2hvd1Jlc3VsdHMoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICQoJy5idXR0ZXJiYXInKS5mYWRlT3V0KCk7Ci0gICAgfSk7CiAgICAgZ191cGRhdGVUaW1lcklk
ID0gd2luZG93LnNldEludGVydmFsKHVwZGF0ZSwgY29uZmlnLmtVcGRhdGVGcmVxdWVuY3kpOwog
ICAgIHVwZGF0ZSgpOwogfSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci91aS5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCmluZGV4IDZmMDUw
ZTE1MjI3NWI0NDE3MjBjMTcxMTVmY2E1OTZhOGFhOTM1NjkuLmVjN2QxOGVkMmQwNGJlYTIwNjBi
ZWQ3ZWJmYjc1ZWNmNDU1MzdiZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCkBAIC01
NCw2ICs1NCw3IEBAIHVpLnN1bW1hcml6ZVRlc3QgPSBmdW5jdGlvbih0ZXN0TmFtZSwgcmVzdWx0
Tm9kZXNCeUJ1aWxkZXIpCiAgICAgICAgICAgJzx0ZCBjbGFzcz0iaG93LW1hbnkiPjwvdGQ+JyAr
CiAgICAgICAgICc8L3RyPicpOwogICAgICQoJy53aGF0IGEnLCBibG9jaykudGV4dCh0ZXN0TmFt
ZSkuYXR0cignaHJlZicsIHVpLnVybEZvclRlc3QodGVzdE5hbWUpKS5hdHRyKCdjbGFzcycsIHVu
ZXhwZWN0ZWRSZXN1bHRzLmpvaW4oJyAnKSk7CisgICAgYmxvY2suYXR0cihjb25maWcua1Rlc3RO
YW1lQXR0ciwgdGVzdE5hbWUpOwogICAgIGJsb2NrLmF0dHIoY29uZmlnLmtGYWlsdXJlVHlwZXNB
dHRyLCB1bmV4cGVjdGVkUmVzdWx0cyk7CiAKICAgICB2YXIgd2hlcmUgPSAkKCcud2hlcmUnLCBi
bG9jayk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101179</attachid>
            <date>2011-07-18 11:23:38 -0700</date>
            <delta_ts>2011-07-18 11:47:09 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-64646-20110718112337.patch</filename>
            <type>text/plain</type>
            <size>10740</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwNTkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NDc5MDhkYmI2MjlkYWU1ZDI4YjEwOGI4ODkzZWI1OGVi
YjdhMWNkLi40NjFhY2Q1YmQ0MjYyNTZmNDQ4MmQwM2Y0Yjg3ODljNWVmNDI2M2U3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcg
QEAKIDIwMTEtMDctMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgbGl2ZSB1cGRhdGUgYXMgY29uZGl0aW9ucyBjaGFuZ2Ug
b24gdGhlIGJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDY0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvYmFzZS5qczoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgorCisy
MDExLTA3LTE1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW5j
cmVhc2UgaW5mb3JtYXRpb24gZ2FyZGVuLW8tbWF0aWMgaW5mb3JtYXRpb24gZGVuc2l0eSBieSBz
d2l0Y2hpbmcgdG8gYSB0YWJsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjQ2NDIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qcyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2Jhc2UuanMKaW5kZXgg
OTFlZjJhNDMxZjE4MTNlMDA0YWIyYmVjOWI3ODYwOTc3M2ZkMDM3Ny4uMjQ4MmRmMjE4NjJlYTU2
ODUwYzFiM2ZjNDQ2ZjUyYmRlOGMxYmI3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qcworKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNl
LmpzCkBAIC05Nyw0ICs5NywxOCBAQCBiYXNlLmpzb25wID0gZnVuY3Rpb24odXJsLCBvbnN1Y2Nl
c3MpCiAgICAgfSk7CiB9OwogCitiYXNlLlJlcXVlc3RUcmFja2VyID0gZnVuY3Rpb24ocmVxdWVz
dHNJbkZsaWdodCwgY2FsbGJhY2ssIGFyZ3MpCit7CisgICAgdGhpcy5tX3JlcXVlc3RzSW5GbGln
aHQgPSByZXF1ZXN0c0luRmxpZ2h0OworICAgIHRoaXMubV9jYWxsYmFjayA9IGNhbGxiYWNrOwor
ICAgIHRoaXMubV9hcmdzID0gYXJncyB8fCBbXTsKK307CisKK2Jhc2UuUmVxdWVzdFRyYWNrZXIu
cHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICAtLXRoaXMubV9y
ZXF1ZXN0c0luRmxpZ2h0OworICAgIGlmICghdGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQpCisgICAg
ICAgIHRoaXMubV9jYWxsYmFjay5hcHBseShudWxsLCB0aGlzLm1fYXJncyk7Cit9OworCiB9KSgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9n
YXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3MgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwppbmRleCBmYThmMTBhMjVkMjk5MjNh
MTBmN2NhY2YyNjdkYWM3NGM5M2Q4N2ZiLi4wN2U3MTlmNTVhZWI3MmRiYmQzZmUwYTMwMGI1MDA0
OGMxYzZmODFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwpAQCAtODcsNiAr
ODcsMTAgQEAgdGFibGUucmVzdWx0cy1zdW1tYXJ5IHsKICAgICBwYWRkaW5nOiA0cHg7CiB9CiAK
Ky5yZXN1bHRzLXN1bW1hcnkgdGJvZHkgdHIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIC5y
ZXN1bHRzLXN1bW1hcnkgdWwgewogICAgIG1hcmdpbjogMHB4OwogICAgIHBhZGRpbmc6IDBweDsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL21haW4uanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCmluZGV4IDZkMDNmYzFmNWNmODk2MDVlZjA2
NjdmOTY0MmJjYmMzMWExMWIyY2IuLmUzNmEzODBiMTU1MThmOWE4Zjg1MmEwNjA0OTBjZTU3YWMz
OGQ1M2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwpAQCAtNDcsNTIgKzQ3LDEw
OCBAQCBmdW5jdGlvbiBzZXRJY29uU3RhdGUoaGFzRmFpbHVyZXMpCiAgICAgJCgnI2Zhdmljb24n
KS5hdHRyKCdocmVmJywgZmF2aWNvblVSTCk7CiB9CiAKLWZ1bmN0aW9uIHNob3dSZXN1bHRzKG9u
c3VjY2VzcykKK2Z1bmN0aW9uIHRvZ2dsZVBhcnR5VGltZShoYXNGYWlsdXJlcykKK3sKKyAgICBp
ZiAoIWhhc0ZhaWx1cmVzKSB7CisgICAgICAgICQoJy5yZXN1bHRzJykudGV4dCgnTm8gZmFpbHVy
ZXMuIFBhcnR5IHRpbWUhJyk7CisgICAgICAgIHZhciBwYXJ0eVRpbWUgPSAkKCc8ZGl2IGNsYXNz
PSJwYXJ0eXRpbWUiPjxpbWcgc3JjPSJwYXJ0eXRpbWUuZ2lmIj48L2Rpdj4nKTsKKyAgICAgICAg
JCgnLnJlc3VsdHMnKS5hcHBlbmQocGFydHlUaW1lKTsKKyAgICAgICAgcGFydHlUaW1lLmZhZGVJ
bigxMjAwKS5kZWxheSg3MDAwKS5mYWRlT3V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJCgnLnJlc3VsdHMnKS5lbXB0eSgpOworfQorCitmdW5jdGlvbiBlbnN1cmVSZXN1bHRzU3Vt
bWFyeUNvbnRhaW5lcigpCit7CisgICAgdmFyIGNvbnRhaW5lciA9ICQoJy5yZXN1bHRzLXN1bW1h
cnknKTsKKyAgICBpZiAoY29udGFpbmVyLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGNvbnRhaW5l
cjsKKyAgICBjb250YWluZXIgPSB1aS5yZWdyZXNzaW9uc0NvbnRhaW5lcigpOworICAgICQoJy5y
ZXN1bHRzJykuYXBwZW5kKGNvbnRhaW5lcik7CisgICAgcmV0dXJuIGNvbnRhaW5lcjsKK30KKwor
ZnVuY3Rpb24gZGV0YWNoUmVwYWlyZWRUZXN0c0FuZFByZXBhcmVUZXN0TWFwKHVuZXhwZWN0ZWRG
YWlsdXJlcykKK3sKKyAgICB2YXIgdGVzdE1hcCA9IHt9OworCisgICAgJCgnLnRlc3QnKS5lYWNo
KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdGVzdFN1bW1hcnkgPSAkKHRoaXMpOworICAgICAg
ICB2YXIgdGVzdE5hbWUgPSB0ZXN0U3VtbWFyeS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKTsK
KyAgICAgICAgaWYgKCEodGVzdE5hbWUgaW4gdW5leHBlY3RlZEZhaWx1cmVzKSkKKyAgICAgICAg
ICAgIHRlc3RTdW1tYXJ5LnNsaWRlVXAoZnVuY3Rpb24oKSB7IHRlc3RTdW1tYXJ5LmRldGFjaCgp
OyB9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdE1hcFt0ZXN0TmFtZV0gPSB0ZXN0
U3VtbWFyeTsKKyAgICB9KTsKKworICAgIHJldHVybiB0ZXN0TWFwOworfQorCitmdW5jdGlvbiBw
cmVwYXJlVGVzdFN1bW1hcnkodGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVyLCBjYWxsYmFj
aykKK3sKKyAgICB2YXIgdGVzdFN1bW1hcnkgPSB1aS5zdW1tYXJpemVUZXN0KHRlc3ROYW1lLCBy
ZXN1bHROb2Rlc0J5QnVpbGRlcik7CisgICAgdmFyIGJ1aWxkZXJOYW1lTGlzdCA9IGJhc2Uua2V5
cyhyZXN1bHROb2Rlc0J5QnVpbGRlcik7CisKKyAgICByZXN1bHRzLnVuaWZ5UmVncmVzc2lvblJh
bmdlcyhidWlsZGVyTmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihvbGRlc3RGYWlsaW5nUmV2
aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpc2lvbikgeworICAgICAgICAkKCcud2hlbicsIHRlc3RT
dW1tYXJ5KS5hcHBlbmQodWkuc3VtbWFyaXplUmVncmVzc2lvblJhbmdlKG9sZGVzdEZhaWxpbmdS
ZXZpc2lvbiwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uKSk7CisgICAgICAgIC8vIGlmICghbmV3ZXN0
UGFzc2luZ1JldmlzaW9uKQorICAgICAgICAvLyAgICAgcmV0dXJuOworICAgICAgICAvLyBjaGVj
a291dC5leGlzdHNBdFJldmlzaW9uKGNoZWNrb3V0LnN1YnZlcnNpb25VUkxGb3JUZXN0KHRlc3RO
YW1lKSwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uLCBmdW5jdGlvbih0ZXN0RXhpc3RlZEJlZm9yZUZh
aWx1cmUpIHsKKyAgICAgICAgLy8gICAgICQodGVzdFN1bW1hcnkpLmF0dHIoJ2RhdGEtbmV3LXRl
c3QnLCAhdGVzdEV4aXN0ZWRCZWZvcmVGYWlsdXJlKTsKKyAgICAgICAgLy8gfSk7CisgICAgfSk7
CisKKyAgICByZXN1bHRzLmNvdW50RmFpbHVyZU9jY3VyYW5jZXMoYnVpbGRlck5hbWVMaXN0LCB0
ZXN0TmFtZSwgZnVuY3Rpb24oZmFpbHVyZUNvdW50KSB7CisgICAgICAgICQodGVzdFN1bW1hcnkp
LmF0dHIoY29uZmlnLmtGYWlsdXJlQ291bnRBdHRyLCBmYWlsdXJlQ291bnQpOworICAgICAgICAk
KCcuaG93LW1hbnknLCB0ZXN0U3VtbWFyeSkudGV4dCh1aS5mYWlsdXJlQ291bnQoZmFpbHVyZUNv
dW50KSk7CisgICAgfSk7CisKKyAgICBjYWxsYmFjayh0ZXN0U3VtbWFyeSk7Cit9CisKK2Z1bmN0
aW9uIHVwZGF0ZVJlc3VsdHNTdW1tYXJ5KGNhbGxiYWNrKQogewogICAgIHJlc3VsdHMuZmV0Y2hS
ZXN1bHRzQnlCdWlsZGVyKGNvbmZpZy5rQnVpbGRlcnMsIGZ1bmN0aW9uKHJlc3VsdHNCeUJ1aWxk
ZXIpIHsKICAgICAgICAgdmFyIHVuZXhwZWN0ZWRGYWlsdXJlcyA9IHJlc3VsdHMudW5leHBlY3Rl
ZEZhaWx1cmVzQnlUZXN0KHJlc3VsdHNCeUJ1aWxkZXIpOwogICAgICAgICB2YXIgaGFzRmFpbHVy
ZXMgPSAhJC5pc0VtcHR5T2JqZWN0KHVuZXhwZWN0ZWRGYWlsdXJlcykKLSAgICAgICAgaWYgKCFo
YXNGYWlsdXJlcykgewotICAgICAgICAgICAgJCgnLnJlc3VsdHMnKS50ZXh0KCdObyBmYWlsdXJl
cy4gUGFydHkgdGltZSEnKTsKLSAgICAgICAgICAgIHZhciBwYXJ0eVRpbWUgPSAkKCc8ZGl2IGNs
YXNzPSJwYXJ0eXRpbWUiPjxpbWcgc3JjPSJwYXJ0eXRpbWUuZ2lmIj48L2Rpdj4nKTsKLSAgICAg
ICAgICAgICQoJy5yZXN1bHRzJykuYXBwZW5kKHBhcnR5VGltZSk7Ci0gICAgICAgICAgICBwYXJ0
eVRpbWUuZmFkZUluKDEyMDApLmRlbGF5KDcwMDApLmZhZGVPdXQoKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHZhciByZWdyZXNzaW9ucyA9IHVpLnJlZ3Jlc3Npb25zQ29udGFpbmVy
KCk7Ci0KLSAgICAgICAgICAgICQuZWFjaCh1bmV4cGVjdGVkRmFpbHVyZXMsIGZ1bmN0aW9uKHRl
c3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRlcikgewotICAgICAgICAgICAgICAgIHZhciB0ZXN0
U3VtbWFyeSA9IHVpLnN1bW1hcml6ZVRlc3QodGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVy
KTsKLSAgICAgICAgICAgICAgICAkKCd0Ym9keScsIHJlZ3Jlc3Npb25zKS5hcHBlbmQodGVzdFN1
bW1hcnkpOwotCi0gICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXJOYW1lTGlzdCA9IGJhc2Uua2V5
cyhyZXN1bHROb2Rlc0J5QnVpbGRlcik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy51bmlmeVJl
Z3Jlc3Npb25SYW5nZXMoYnVpbGRlck5hbWVMaXN0LCB0ZXN0TmFtZSwgZnVuY3Rpb24ob2xkZXN0
RmFpbGluZ1JldmlzaW9uLCBuZXdlc3RQYXNzaW5nUmV2aXNpb24pIHsKLSAgICAgICAgICAgICAg
ICAgICAgJCgnLndoZW4nLCB0ZXN0U3VtbWFyeSkuYXBwZW5kKHVpLnN1bW1hcml6ZVJlZ3Jlc3Np
b25SYW5nZShvbGRlc3RGYWlsaW5nUmV2aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpc2lvbikpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoIW5ld2VzdFBhc3NpbmdSZXZpc2lvbikKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQuZXhp
c3RzQXRSZXZpc2lvbihjaGVja291dC5zdWJ2ZXJzaW9uVVJMRm9yVGVzdCh0ZXN0TmFtZSksIG5l
d2VzdFBhc3NpbmdSZXZpc2lvbiwgZnVuY3Rpb24odGVzdEV4aXN0ZWRCZWZvcmVGYWlsdXJlKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkKHRlc3RTdW1tYXJ5KS5hdHRyKCdkYXRhLW5ldy10
ZXN0JywgIXRlc3RFeGlzdGVkQmVmb3JlRmFpbHVyZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHJlc3VsdHMuY291bnRGYWls
dXJlT2NjdXJhbmNlcyhidWlsZGVyTmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihmYWlsdXJl
Q291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgJCh0ZXN0U3VtbWFyeSkuYXR0cihjb25maWcu
a0ZhaWx1cmVDb3VudEF0dHIsIGZhaWx1cmVDb3VudCk7Ci0gICAgICAgICAgICAgICAgICAgICQo
Jy5ob3ctbWFueScsIHRlc3RTdW1tYXJ5KS50ZXh0KHVpLmZhaWx1cmVDb3VudChmYWlsdXJlQ291
bnQpKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
JCgnLnJlc3VsdHMnKS5hcHBlbmQocmVncmVzc2lvbnMpOwotICAgICAgICB9CisKKyAgICAgICAg
dG9nZ2xlUGFydHlUaW1lKGhhc0ZhaWx1cmVzKTsKICAgICAgICAgc2V0SWNvblN0YXRlKGhhc0Zh
aWx1cmVzKTsKLSAgICAgICAgb25zdWNjZXNzKCk7CisKKyAgICAgICAgdmFyIGNvbnRhaW5lciA9
IGVuc3VyZVJlc3VsdHNTdW1tYXJ5Q29udGFpbmVyKCk7CisgICAgICAgIHZhciB0ZXN0TWFwID0g
ZGV0YWNoUmVwYWlyZWRUZXN0c0FuZFByZXBhcmVUZXN0TWFwKHVuZXhwZWN0ZWRGYWlsdXJlcyk7
CisKKyAgICAgICAgdmFyIG5ld1Rlc3RTdW1tYXJpZXMgPSAkKCk7CisgICAgICAgIHZhciByZXF1
ZXN0VHJhY2tlciA9IG5ldyBiYXNlLlJlcXVlc3RUcmFja2VyKGJhc2Uua2V5cyh1bmV4cGVjdGVk
RmFpbHVyZXMpLmxlbmd0aCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBuZXdUZXN0U3VtbWFy
aWVzLmZhZGVJbigpOworICAgICAgICAgICAgY2FsbGJhY2soKQorICAgICAgICB9KTsKKworICAg
ICAgICAkLmVhY2godW5leHBlY3RlZEZhaWx1cmVzLCBmdW5jdGlvbih0ZXN0TmFtZSwgcmVzdWx0
Tm9kZXNCeUJ1aWxkZXIpIHsKKyAgICAgICAgICAgIHByZXBhcmVUZXN0U3VtbWFyeSh0ZXN0TmFt
ZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIsIGZ1bmN0aW9uKHRlc3RTdW1tYXJ5KSB7CisgICAgICAg
ICAgICAgICAgdmFyIGV4aXN0aW5nRWxlbWVudCA9IHRlc3RNYXBbdGVzdE5hbWVdOworICAgICAg
ICAgICAgICAgIGlmIChleGlzdGluZ0VsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhp
c3RpbmdFbGVtZW50LnJlcGxhY2VXaXRoKHRlc3RTdW1tYXJ5KTsKKyAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdFRyYWNrZXIucmVxdWVzdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJCgndGJvZHknLCBj
b250YWluZXIpLmFwcGVuZCh0ZXN0U3VtbWFyeSk7CisgICAgICAgICAgICAgICAgbmV3VGVzdFN1
bW1hcmllcyA9IG5ld1Rlc3RTdW1tYXJpZXMuYWRkKHRlc3RTdW1tYXJ5KTsKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0VHJhY2tlci5yZXF1ZXN0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKICAgICB9KTsKIH0KIAogZnVuY3Rpb24gc2hvd1Jlc3VsdHNEZXRhaWwoKQog
ewotICAgIHZhciB0ZXN0QmxvY2sgPSAkKHRoaXMpLnBhcmVudHMoJy50ZXN0Jyk7CisgICAgdmFy
IHRlc3RTdW1tYXJ5ID0gJCh0aGlzKS5wYXJlbnRzKCcudGVzdCcpOwogICAgIHZhciBidWlsZGVy
TmFtZSA9ICQodGhpcykuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0cik7Ci0gICAgdmFyIHRl
c3ROYW1lID0gJCgnLndoYXQnLCB0ZXN0QmxvY2spLnRleHQoKTsKKyAgICB2YXIgdGVzdE5hbWUg
PSB0ZXN0U3VtbWFyeS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKTsKIAogICAgIC8vIEZJWE1F
OiBJdCdzIGxhbWUgdGhhdCB3ZSBoYXZlIHR3byBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb25zIG9m
IG11bHRpcGxlIGZhaWx1cmUgdHlwZXMuCi0gICAgdmFyIGZhaWx1cmVUeXBlcyA9IHRlc3RCbG9j
ay5hdHRyKGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0cik7CisgICAgdmFyIGZhaWx1cmVUeXBlcyA9
IHRlc3RTdW1tYXJ5LmF0dHIoY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyKTsKICAgICB2YXIgZmFp
bHVyZVR5cGVMaXN0ID0gZmFpbHVyZVR5cGVzLnNwbGl0KCcgJyk7CiAKICAgICB2YXIgY29udGVu
dCA9ICQoJy5yZXN1bHRzLWRldGFpbCAuY29udGVudCcpOwpAQCAtMTY2LDYgKzIyMiw4IEBAIGZ1
bmN0aW9uIGNoZWNrQnVpbGRlclN0YXR1c2VzKCkKIAogZnVuY3Rpb24gdXBkYXRlKCkKIHsKKyAg
ICBkaXNwbGF5T25CdXR0ZXJiYXIoJ0xvYWRpbmcuLi4nKTsKKyAgICB1cGRhdGVSZXN1bHRzU3Vt
bWFyeShkaXNtaXNzQnV0dGVyYmFyKTsKICAgICBjaGVja0J1aWxkZXJTdGF0dXNlcygpOwogfQog
CkBAIC0xNzQsOSArMjMyLDYgQEAgJCgnLnJlc3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNtaXNz
JykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7CiAkKCcucmVzdWx0cy1kZXRhaWwg
LmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5saXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRzKTsK
IAogJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7Ci0gICAgc2hvd1Jlc3VsdHMoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICQoJy5idXR0ZXJiYXInKS5mYWRlT3V0KCk7Ci0gICAgfSk7CiAgICAg
Z191cGRhdGVUaW1lcklkID0gd2luZG93LnNldEludGVydmFsKHVwZGF0ZSwgY29uZmlnLmtVcGRh
dGVGcmVxdWVuY3kpOwogICAgIHVwZGF0ZSgpOwogfSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpz
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvcmVzdWx0cy5qcwppbmRleCA5Mjc0MmE5N2RiYWE3MWExNGQzZWJlYWM2NTIwNGZiZmFjNTcy
NjYzLi4zODVmOWM4YzA4ZDk5MTRmYjU4YzcxNTdiZTFiNzNmMzk5NTE4MmRhIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9yZXN1bHRzLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMKQEAgLTE3OCw5ICsxNzgsMTEgQEAgUmVzdWx0
c0NhY2hlLnByb3RvdHlwZS5fZmV0Y2ggPSBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogUmVzdWx0
c0NhY2hlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogewogICAgIGlm
IChrZXkgaW4gdGhpcy5fY2FjaGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coJ0NhY2hlIGhpdDog
JyArIGtleSk7CiAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2NhY2hlW2tleV0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIGNvbnNvbGUubG9nKCdDYWNoZSBtaXNzOiAnICsga2V5KTsKICAg
ICB0aGlzLl9mZXRjaChrZXksIGNhbGxiYWNrKTsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIv
dWkuanMKaW5kZXggNmYwNTBlMTUyMjc1YjQ0MTcyMGMxNzExNWZjYTU5NmE4YWE5MzU2OS4uZWM3
ZDE4ZWQyZDA0YmVhMjA2MGJlZDdlYmZiNzVlY2Y0NTUzN2JkMSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdz
ZXJ2ZXIvdWkuanMKQEAgLTU0LDYgKzU0LDcgQEAgdWkuc3VtbWFyaXplVGVzdCA9IGZ1bmN0aW9u
KHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRlcikKICAgICAgICAgICAnPHRkIGNsYXNzPSJo
b3ctbWFueSI+PC90ZD4nICsKICAgICAgICAgJzwvdHI+Jyk7CiAgICAgJCgnLndoYXQgYScsIGJs
b2NrKS50ZXh0KHRlc3ROYW1lKS5hdHRyKCdocmVmJywgdWkudXJsRm9yVGVzdCh0ZXN0TmFtZSkp
LmF0dHIoJ2NsYXNzJywgdW5leHBlY3RlZFJlc3VsdHMuam9pbignICcpKTsKKyAgICBibG9jay5h
dHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyLCB0ZXN0TmFtZSk7CiAgICAgYmxvY2suYXR0cihjb25m
aWcua0ZhaWx1cmVUeXBlc0F0dHIsIHVuZXhwZWN0ZWRSZXN1bHRzKTsKIAogICAgIHZhciB3aGVy
ZSA9ICQoJy53aGVyZScsIGJsb2NrKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101184</attachid>
            <date>2011-07-18 11:47:13 -0700</date>
            <delta_ts>2011-07-18 11:48:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64646-20110718114711.patch</filename>
            <type>text/plain</type>
            <size>11899</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTExOTcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMThhOWQwM2NjNGNiMmY0ZjJiNDVhZDgxNTE3ZGRjNjRj
NmEzMjhmLi4xMzg5ZjAyMmFiNDliYzdkYjNjYTBkN2U4MmE0OWFjZWM5MzdjMjhjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIg
QEAKIDIwMTEtMDctMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgbGl2ZSB1cGRhdGUgYXMgY29uZGl0aW9ucyBjaGFuZ2Ug
b24gdGhlIGJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDY0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggY2F1c2VzIHRoZSBnYXJkZW4tby1tYXRpYyBkaXNwbGF5IHRvIHVw
ZGF0ZSBldmVyeSAxMCBtaW51dGVzCisgICAgICAgIHRvIHNob3cgdGhlIGxhdGVzdCBmYWlsdXJl
cy4gIFRoaXMgcGF0Y2ggcmVxdWlyZWQgYSBtb2RlcmF0ZWx5IGxhcmdlCisgICAgICAgIHJlZmFj
dG9yaW5nIG9mIG1haW4uanMgdG8gbWFrZSB0aGUgZGlzcGxheSBpbmNyZW1lbnRhbCBpbnN0ZWFk
IG9mCisgICAgICAgIGFsbC1hdC1vbmNlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qczoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgorCisyMDExLTA3LTE4ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW5jcmVhc2UgaW5mb3JtYXRpb24gZ2FyZGVuLW8t
bWF0aWMgaW5mb3JtYXRpb24gZGVuc2l0eSBieSBzd2l0Y2hpbmcgdG8gYSB0YWJsZQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NDIKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdz
ZXJ2ZXIvYmFzZS5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL2Jhc2UuanMKaW5kZXggOTFlZjJhNDMxZjE4MTNlMDA0YWIyYmVjOWI3
ODYwOTc3M2ZkMDM3Ny4uMjQ4MmRmMjE4NjJlYTU2ODUwYzFiM2ZjNDQ2ZjUyYmRlOGMxYmI3ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvYmFzZS5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNlLmpzCkBAIC05Nyw0ICs5NywxOCBAQCBiYXNl
Lmpzb25wID0gZnVuY3Rpb24odXJsLCBvbnN1Y2Nlc3MpCiAgICAgfSk7CiB9OwogCitiYXNlLlJl
cXVlc3RUcmFja2VyID0gZnVuY3Rpb24ocmVxdWVzdHNJbkZsaWdodCwgY2FsbGJhY2ssIGFyZ3Mp
Cit7CisgICAgdGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQgPSByZXF1ZXN0c0luRmxpZ2h0OworICAg
IHRoaXMubV9jYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHRoaXMubV9hcmdzID0gYXJncyB8fCBb
XTsKK307CisKK2Jhc2UuUmVxdWVzdFRyYWNrZXIucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZSA9
IGZ1bmN0aW9uKCkKK3sKKyAgICAtLXRoaXMubV9yZXF1ZXN0c0luRmxpZ2h0OworICAgIGlmICgh
dGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQpCisgICAgICAgIHRoaXMubV9jYWxsYmFjay5hcHBseShu
dWxsLCB0aGlzLm1fYXJncyk7Cit9OworCiB9KSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZV91bml0dGVz
dHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmlu
Z3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcwppbmRleCBiOTJlYjA3MmRmNGMyZTI3NDQ5MDEyMzRh
MGM3MTkyYzc5Njk3ZDVkLi43NTI2ZjI4ZGNhMzFlMGVlMDQ2ZjFkMDBlYTE4NzFkNDY2MDVjYThh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcwpA
QCAtNDgsNiArNDgsMzAgQEAgdGVzdCgia2V5cyIsIDQsIGZ1bmN0aW9uKCkgewogICAgIGRlZXBF
cXVhbChiYXNlLmtleXMoeyJhIjogMSwgImIiOiB7ICJjIiA6IDF9fSksIFsiYSIsICJiIl0pOwog
fSk7CiAKK3Rlc3QoIlJlcXVlc3RUcmFja2VyIiwgMywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHJl
YWR5ID0gZmFsc2U7CisgICAgdmFyIHRyYWNrZXIgPSBuZXcgYmFzZS5SZXF1ZXN0VHJhY2tlcigx
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgb2socmVhZHkpOworICAgIH0pOworICAgIHJlYWR5ID0g
dHJ1ZTsKKyAgICB0cmFja2VyLnJlcXVlc3RDb21wbGV0ZSgpOworICAgIHJlYWR5ID0gZmFsc2U7
CisKKyAgICB0cmFja2VyID0gbmV3IGJhc2UuUmVxdWVzdFRyYWNrZXIoMiwgZnVuY3Rpb24ocGFy
YW1ldGVyKSB7CisgICAgICAgIG9rKHJlYWR5KTsKKyAgICAgICAgZXF1YWxzKHBhcmFtZXRlciwg
J2FyZ3VtZW50Jyk7CisgICAgfSwgWydhcmd1bWVudCddKTsKKyAgICB0cmFja2VyLnJlcXVlc3RD
b21wbGV0ZSgpOworICAgIHJlYWR5ID0gdHJ1ZTsKKyAgICB0cmFja2VyLnJlcXVlc3RDb21wbGV0
ZSgpOworICAgIHJlYWR5ID0gZmFsc2U7CisKKyAgICB0cmFja2VyID0gbmV3IGJhc2UuUmVxdWVz
dFRyYWNrZXIoMCwgZnVuY3Rpb24oKSB7CisgICAgICAgIG9rKGZhbHNlKTsKKyAgICB9KTsKKyAg
ICB0cmFja2VyLnJlcXVlc3RDb21wbGV0ZSgpOworfSk7CisKIHRlc3QoImZpbHRlclRyZWUiLCAy
LCBmdW5jdGlvbigpIHsKICAgICB2YXIgdHJlZSA9IHsKICAgICAgICAgJ3BhdGgnOiB7CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmlu
Z3NlcnZlci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4IGZhOGYxMGEyNWQyOTkyM2ExMGY3Y2Fj
ZjI2N2RhYzc0YzkzZDg3ZmIuLjA3ZTcxOWY1NWFlYjcyZGJiZDNmZTBhMzAwYjUwMDQ4YzFjNmY4
MWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCkBAIC04Nyw2ICs4NywxMCBA
QCB0YWJsZS5yZXN1bHRzLXN1bW1hcnkgewogICAgIHBhZGRpbmc6IDRweDsKIH0KIAorLnJlc3Vs
dHMtc3VtbWFyeSB0Ym9keSB0ciB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogLnJlc3VsdHMt
c3VtbWFyeSB1bCB7CiAgICAgbWFyZ2luOiAwcHg7CiAgICAgcGFkZGluZzogMHB4OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdz
ZXJ2ZXIvbWFpbi5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL21haW4uanMKaW5kZXggNmQwM2ZjMWY1Y2Y4OTYwNWVmMDY2N2Y5NjQy
YmNiYzMxYTExYjJjYi4uZjgwZTcxZDliODNmMGNmN2MxOGZkNWMxNThjODhjM2YwZTQyZDViOCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvbWFpbi5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCkBAIC00Nyw1MiArNDcsMTAzIEBAIGZ1
bmN0aW9uIHNldEljb25TdGF0ZShoYXNGYWlsdXJlcykKICAgICAkKCcjZmF2aWNvbicpLmF0dHIo
J2hyZWYnLCBmYXZpY29uVVJMKTsKIH0KIAotZnVuY3Rpb24gc2hvd1Jlc3VsdHMob25zdWNjZXNz
KQorZnVuY3Rpb24gdG9nZ2xlUGFydHlUaW1lKGhhc0ZhaWx1cmVzKQoreworICAgIGlmICghaGFz
RmFpbHVyZXMpIHsKKyAgICAgICAgJCgnLnJlc3VsdHMnKS50ZXh0KCdObyBmYWlsdXJlcy4gUGFy
dHkgdGltZSEnKTsKKyAgICAgICAgdmFyIHBhcnR5VGltZSA9ICQoJzxkaXYgY2xhc3M9InBhcnR5
dGltZSI+PGltZyBzcmM9InBhcnR5dGltZS5naWYiPjwvZGl2PicpOworICAgICAgICAkKCcucmVz
dWx0cycpLmFwcGVuZChwYXJ0eVRpbWUpOworICAgICAgICBwYXJ0eVRpbWUuZmFkZUluKDEyMDAp
LmRlbGF5KDcwMDApLmZhZGVPdXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkKCcu
cmVzdWx0cycpLmVtcHR5KCk7Cit9CisKK2Z1bmN0aW9uIGVuc3VyZVJlc3VsdHNTdW1tYXJ5Q29u
dGFpbmVyKCkKK3sKKyAgICB2YXIgY29udGFpbmVyID0gJCgnLnJlc3VsdHMtc3VtbWFyeScpOwor
ICAgIGlmIChjb250YWluZXIubGVuZ3RoKQorICAgICAgICByZXR1cm4gY29udGFpbmVyOworICAg
IGNvbnRhaW5lciA9IHVpLnJlZ3Jlc3Npb25zQ29udGFpbmVyKCk7CisgICAgJCgnLnJlc3VsdHMn
KS5hcHBlbmQoY29udGFpbmVyKTsKKyAgICByZXR1cm4gY29udGFpbmVyOworfQorCitmdW5jdGlv
biBkZXRhY2hSZXBhaXJlZFRlc3RzQW5kUHJlcGFyZVRlc3RNYXAodW5leHBlY3RlZEZhaWx1cmVz
KQoreworICAgIHZhciB0ZXN0TWFwID0ge307CisKKyAgICAkKCcudGVzdCcpLmVhY2goZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciB0ZXN0U3VtbWFyeSA9ICQodGhpcyk7CisgICAgICAgIHZhciB0
ZXN0TmFtZSA9IHRlc3RTdW1tYXJ5LmF0dHIoY29uZmlnLmtUZXN0TmFtZUF0dHIpOworICAgICAg
ICBpZiAoISh0ZXN0TmFtZSBpbiB1bmV4cGVjdGVkRmFpbHVyZXMpKQorICAgICAgICAgICAgdGVz
dFN1bW1hcnkuc2xpZGVVcChmdW5jdGlvbigpIHsgdGVzdFN1bW1hcnkuZGV0YWNoKCk7IH0pOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0TWFwW3Rlc3ROYW1lXSA9IHRlc3RTdW1tYXJ5
OworICAgIH0pOworCisgICAgcmV0dXJuIHRlc3RNYXA7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVU
ZXN0U3VtbWFyeSh0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIsIGNhbGxiYWNrKQorewor
ICAgIHZhciB0ZXN0U3VtbWFyeSA9IHVpLnN1bW1hcml6ZVRlc3QodGVzdE5hbWUsIHJlc3VsdE5v
ZGVzQnlCdWlsZGVyKTsKKyAgICB2YXIgYnVpbGRlck5hbWVMaXN0ID0gYmFzZS5rZXlzKHJlc3Vs
dE5vZGVzQnlCdWlsZGVyKTsKKworICAgIHJlc3VsdHMudW5pZnlSZWdyZXNzaW9uUmFuZ2VzKGJ1
aWxkZXJOYW1lTGlzdCwgdGVzdE5hbWUsIGZ1bmN0aW9uKG9sZGVzdEZhaWxpbmdSZXZpc2lvbiwg
bmV3ZXN0UGFzc2luZ1JldmlzaW9uKSB7CisgICAgICAgICQoJy53aGVuJywgdGVzdFN1bW1hcnkp
LmFwcGVuZCh1aS5zdW1tYXJpemVSZWdyZXNzaW9uUmFuZ2Uob2xkZXN0RmFpbGluZ1JldmlzaW9u
LCBuZXdlc3RQYXNzaW5nUmV2aXNpb24pKTsKKyAgICB9KTsKKworICAgIHJlc3VsdHMuY291bnRG
YWlsdXJlT2NjdXJhbmNlcyhidWlsZGVyTmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihmYWls
dXJlQ291bnQpIHsKKyAgICAgICAgJCh0ZXN0U3VtbWFyeSkuYXR0cihjb25maWcua0ZhaWx1cmVD
b3VudEF0dHIsIGZhaWx1cmVDb3VudCk7CisgICAgICAgICQoJy5ob3ctbWFueScsIHRlc3RTdW1t
YXJ5KS50ZXh0KHVpLmZhaWx1cmVDb3VudChmYWlsdXJlQ291bnQpKTsKKyAgICB9KTsKKworICAg
IGNhbGxiYWNrKHRlc3RTdW1tYXJ5KTsKK30KKworZnVuY3Rpb24gdXBkYXRlUmVzdWx0c1N1bW1h
cnkoY2FsbGJhY2spCiB7CiAgICAgcmVzdWx0cy5mZXRjaFJlc3VsdHNCeUJ1aWxkZXIoY29uZmln
LmtCdWlsZGVycywgZnVuY3Rpb24ocmVzdWx0c0J5QnVpbGRlcikgewogICAgICAgICB2YXIgdW5l
eHBlY3RlZEZhaWx1cmVzID0gcmVzdWx0cy51bmV4cGVjdGVkRmFpbHVyZXNCeVRlc3QocmVzdWx0
c0J5QnVpbGRlcik7CiAgICAgICAgIHZhciBoYXNGYWlsdXJlcyA9ICEkLmlzRW1wdHlPYmplY3Qo
dW5leHBlY3RlZEZhaWx1cmVzKQotICAgICAgICBpZiAoIWhhc0ZhaWx1cmVzKSB7Ci0gICAgICAg
ICAgICAkKCcucmVzdWx0cycpLnRleHQoJ05vIGZhaWx1cmVzLiBQYXJ0eSB0aW1lIScpOwotICAg
ICAgICAgICAgdmFyIHBhcnR5VGltZSA9ICQoJzxkaXYgY2xhc3M9InBhcnR5dGltZSI+PGltZyBz
cmM9InBhcnR5dGltZS5naWYiPjwvZGl2PicpOwotICAgICAgICAgICAgJCgnLnJlc3VsdHMnKS5h
cHBlbmQocGFydHlUaW1lKTsKLSAgICAgICAgICAgIHBhcnR5VGltZS5mYWRlSW4oMTIwMCkuZGVs
YXkoNzAwMCkuZmFkZU91dCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIHJl
Z3Jlc3Npb25zID0gdWkucmVncmVzc2lvbnNDb250YWluZXIoKTsKLQotICAgICAgICAgICAgJC5l
YWNoKHVuZXhwZWN0ZWRGYWlsdXJlcywgZnVuY3Rpb24odGVzdE5hbWUsIHJlc3VsdE5vZGVzQnlC
dWlsZGVyKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHRlc3RTdW1tYXJ5ID0gdWkuc3VtbWFyaXpl
VGVzdCh0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpOwotICAgICAgICAgICAgICAgICQo
J3Rib2R5JywgcmVncmVzc2lvbnMpLmFwcGVuZCh0ZXN0U3VtbWFyeSk7Ci0KLSAgICAgICAgICAg
ICAgICB2YXIgYnVpbGRlck5hbWVMaXN0ID0gYmFzZS5rZXlzKHJlc3VsdE5vZGVzQnlCdWlsZGVy
KTsKLSAgICAgICAgICAgICAgICByZXN1bHRzLnVuaWZ5UmVncmVzc2lvblJhbmdlcyhidWlsZGVy
TmFtZUxpc3QsIHRlc3ROYW1lLCBmdW5jdGlvbihvbGRlc3RGYWlsaW5nUmV2aXNpb24sIG5ld2Vz
dFBhc3NpbmdSZXZpc2lvbikgewotICAgICAgICAgICAgICAgICAgICAkKCcud2hlbicsIHRlc3RT
dW1tYXJ5KS5hcHBlbmQodWkuc3VtbWFyaXplUmVncmVzc2lvblJhbmdlKG9sZGVzdEZhaWxpbmdS
ZXZpc2lvbiwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICghbmV3ZXN0UGFzc2luZ1JldmlzaW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgICAgICBjaGVja291dC5leGlzdHNBdFJldmlzaW9uKGNoZWNrb3V0
LnN1YnZlcnNpb25VUkxGb3JUZXN0KHRlc3ROYW1lKSwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uLCBm
dW5jdGlvbih0ZXN0RXhpc3RlZEJlZm9yZUZhaWx1cmUpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICQodGVzdFN1bW1hcnkpLmF0dHIoJ2RhdGEtbmV3LXRlc3QnLCAhdGVzdEV4aXN0ZWRCZWZv
cmVGYWlsdXJlKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy5jb3VudEZhaWx1cmVPY2N1cmFuY2VzKGJ1aWxkZXJO
YW1lTGlzdCwgdGVzdE5hbWUsIGZ1bmN0aW9uKGZhaWx1cmVDb3VudCkgewotICAgICAgICAgICAg
ICAgICAgICAkKHRlc3RTdW1tYXJ5KS5hdHRyKGNvbmZpZy5rRmFpbHVyZUNvdW50QXR0ciwgZmFp
bHVyZUNvdW50KTsKLSAgICAgICAgICAgICAgICAgICAgJCgnLmhvdy1tYW55JywgdGVzdFN1bW1h
cnkpLnRleHQodWkuZmFpbHVyZUNvdW50KGZhaWx1cmVDb3VudCkpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAkKCcucmVzdWx0cycpLmFwcGVuZChy
ZWdyZXNzaW9ucyk7Ci0gICAgICAgIH0KKworICAgICAgICB0b2dnbGVQYXJ0eVRpbWUoaGFzRmFp
bHVyZXMpOwogICAgICAgICBzZXRJY29uU3RhdGUoaGFzRmFpbHVyZXMpOwotICAgICAgICBvbnN1
Y2Nlc3MoKTsKKworICAgICAgICB2YXIgY29udGFpbmVyID0gZW5zdXJlUmVzdWx0c1N1bW1hcnlD
b250YWluZXIoKTsKKyAgICAgICAgdmFyIHRlc3RNYXAgPSBkZXRhY2hSZXBhaXJlZFRlc3RzQW5k
UHJlcGFyZVRlc3RNYXAodW5leHBlY3RlZEZhaWx1cmVzKTsKKworICAgICAgICB2YXIgbmV3VGVz
dFN1bW1hcmllcyA9ICQoKTsKKyAgICAgICAgdmFyIHJlcXVlc3RUcmFja2VyID0gbmV3IGJhc2Uu
UmVxdWVzdFRyYWNrZXIoYmFzZS5rZXlzKHVuZXhwZWN0ZWRGYWlsdXJlcykubGVuZ3RoLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIG5ld1Rlc3RTdW1tYXJpZXMuZmFkZUluKCk7CisgICAgICAg
ICAgICBjYWxsYmFjaygpCisgICAgICAgIH0pOworCisgICAgICAgICQuZWFjaCh1bmV4cGVjdGVk
RmFpbHVyZXMsIGZ1bmN0aW9uKHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRlcikgeworICAg
ICAgICAgICAgcHJlcGFyZVRlc3RTdW1tYXJ5KHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRl
ciwgZnVuY3Rpb24odGVzdFN1bW1hcnkpIHsKKyAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmdF
bGVtZW50ID0gdGVzdE1hcFt0ZXN0TmFtZV07CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5n
RWxlbWVudCkgeworICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0VsZW1lbnQucmVwbGFjZVdp
dGgodGVzdFN1bW1hcnkpOworICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VHJhY2tlci5yZXF1
ZXN0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAkKCd0Ym9keScsIGNvbnRhaW5lcikuYXBwZW5kKHRlc3RT
dW1tYXJ5KTsKKyAgICAgICAgICAgICAgICBuZXdUZXN0U3VtbWFyaWVzID0gbmV3VGVzdFN1bW1h
cmllcy5hZGQodGVzdFN1bW1hcnkpOworICAgICAgICAgICAgICAgIHJlcXVlc3RUcmFja2VyLnJl
cXVlc3RDb21wbGV0ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwog
fQogCiBmdW5jdGlvbiBzaG93UmVzdWx0c0RldGFpbCgpCiB7Ci0gICAgdmFyIHRlc3RCbG9jayA9
ICQodGhpcykucGFyZW50cygnLnRlc3QnKTsKKyAgICB2YXIgdGVzdFN1bW1hcnkgPSAkKHRoaXMp
LnBhcmVudHMoJy50ZXN0Jyk7CiAgICAgdmFyIGJ1aWxkZXJOYW1lID0gJCh0aGlzKS5hdHRyKGNv
bmZpZy5rQnVpbGRlck5hbWVBdHRyKTsKLSAgICB2YXIgdGVzdE5hbWUgPSAkKCcud2hhdCcsIHRl
c3RCbG9jaykudGV4dCgpOworICAgIHZhciB0ZXN0TmFtZSA9IHRlc3RTdW1tYXJ5LmF0dHIoY29u
ZmlnLmtUZXN0TmFtZUF0dHIpOwogCiAgICAgLy8gRklYTUU6IEl0J3MgbGFtZSB0aGF0IHdlIGhh
dmUgdHdvIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbnMgb2YgbXVsdGlwbGUgZmFpbHVyZSB0eXBl
cy4KLSAgICB2YXIgZmFpbHVyZVR5cGVzID0gdGVzdEJsb2NrLmF0dHIoY29uZmlnLmtGYWlsdXJl
VHlwZXNBdHRyKTsKKyAgICB2YXIgZmFpbHVyZVR5cGVzID0gdGVzdFN1bW1hcnkuYXR0cihjb25m
aWcua0ZhaWx1cmVUeXBlc0F0dHIpOwogICAgIHZhciBmYWlsdXJlVHlwZUxpc3QgPSBmYWlsdXJl
VHlwZXMuc3BsaXQoJyAnKTsKIAogICAgIHZhciBjb250ZW50ID0gJCgnLnJlc3VsdHMtZGV0YWls
IC5jb250ZW50Jyk7CkBAIC0xNjYsNiArMjE3LDggQEAgZnVuY3Rpb24gY2hlY2tCdWlsZGVyU3Rh
dHVzZXMoKQogCiBmdW5jdGlvbiB1cGRhdGUoKQogeworICAgIGRpc3BsYXlPbkJ1dHRlcmJhcign
TG9hZGluZy4uLicpOworICAgIHVwZGF0ZVJlc3VsdHNTdW1tYXJ5KGRpc21pc3NCdXR0ZXJiYXIp
OwogICAgIGNoZWNrQnVpbGRlclN0YXR1c2VzKCk7CiB9CiAKQEAgLTE3NCw5ICsyMjcsNiBAQCAk
KCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLmRpc21pc3MnKS5saXZlKCdjbGljaycsIGhpZGVS
ZXN1bHRzRGV0YWlsKTsKICQoJy5yZXN1bHRzLWRldGFpbCAuYWN0aW9ucyAucmViYXNlbGluZScp
LmxpdmUoJ2NsaWNrJywgcmViYXNlbGluZVJlc3VsdHMpOwogCiAkKGRvY3VtZW50KS5yZWFkeShm
dW5jdGlvbigpIHsKLSAgICBzaG93UmVzdWx0cyhmdW5jdGlvbigpIHsKLSAgICAgICAgJCgnLmJ1
dHRlcmJhcicpLmZhZGVPdXQoKTsKLSAgICB9KTsKICAgICBnX3VwZGF0ZVRpbWVySWQgPSB3aW5k
b3cuc2V0SW50ZXJ2YWwodXBkYXRlLCBjb25maWcua1VwZGF0ZUZyZXF1ZW5jeSk7CiAgICAgdXBk
YXRlKCk7CiB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCmluZGV4IDky
NzQyYTk3ZGJhYTcxYTE0ZDNlYmVhYzY1MjA0ZmJmYWM1NzI2NjMuLmY2NWUwOTFmMDg2N2M4YjJj
OGI2ZWViZjVmMTE3Y2UzNDU1Njk5YTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVz
dWx0cy5qcwpAQCAtMTc3LDcgKzE3Nyw3IEBAIFJlc3VsdHNDYWNoZS5wcm90b3R5cGUuX2ZldGNo
ID0gZnVuY3Rpb24oa2V5LCBjYWxsYmFjaykKIC8vIEZJWE1FOiBDb25zaWRlciB1c2luZyBzZXRU
aW1lb3V0IHRvIG1ha2UgdGhpcyBtZXRob2QgYWx3YXlzIGFzeW5jaHJvbm91cy4KIFJlc3VsdHND
YWNoZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oa2V5LCBjYWxsYmFjaykKIHsKLSAgICBpZiAo
a2V5IGluIHRoaXMuX2NhY2hlKSB7CisgICAgaWYgKHRoaXMuX2NhY2hlW2tleV0pIHsKICAgICAg
ICAgY2FsbGJhY2sodGhpcy5fY2FjaGVba2V5XSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci91aS5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCmluZGV4IDZmMDUwZTE1MjI3NWI0NDE3MjBjMTcxMTVm
Y2E1OTZhOGFhOTM1NjkuLmVjN2QxOGVkMmQwNGJlYTIwNjBiZWQ3ZWJmYjc1ZWNmNDU1MzdiZDEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL3VpLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzCkBAIC01NCw2ICs1NCw3IEBAIHVpLnN1bW1h
cml6ZVRlc3QgPSBmdW5jdGlvbih0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpCiAgICAg
ICAgICAgJzx0ZCBjbGFzcz0iaG93LW1hbnkiPjwvdGQ+JyArCiAgICAgICAgICc8L3RyPicpOwog
ICAgICQoJy53aGF0IGEnLCBibG9jaykudGV4dCh0ZXN0TmFtZSkuYXR0cignaHJlZicsIHVpLnVy
bEZvclRlc3QodGVzdE5hbWUpKS5hdHRyKCdjbGFzcycsIHVuZXhwZWN0ZWRSZXN1bHRzLmpvaW4o
JyAnKSk7CisgICAgYmxvY2suYXR0cihjb25maWcua1Rlc3ROYW1lQXR0ciwgdGVzdE5hbWUpOwog
ICAgIGJsb2NrLmF0dHIoY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyLCB1bmV4cGVjdGVkUmVzdWx0
cyk7CiAKICAgICB2YXIgd2hlcmUgPSAkKCcud2hlcmUnLCBibG9jayk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101185</attachid>
            <date>2011-07-18 11:48:19 -0700</date>
            <delta_ts>2011-07-19 00:37:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64646-20110718114818.patch</filename>
            <type>text/plain</type>
            <size>12378</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTExOTcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMThhOWQwM2NjNGNiMmY0ZjJiNDVhZDgxNTE3ZGRjNjRj
NmEzMjhmLi4xMzg5ZjAyMmFiNDliYzdkYjNjYTBkN2U4MmE0OWFjZWM5MzdjMjhjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIg
QEAKIDIwMTEtMDctMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgbGl2ZSB1cGRhdGUgYXMgY29uZGl0aW9ucyBjaGFuZ2Ug
b24gdGhlIGJ1aWxkYm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDY0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggY2F1c2VzIHRoZSBnYXJkZW4tby1tYXRpYyBkaXNwbGF5IHRvIHVw
ZGF0ZSBldmVyeSAxMCBtaW51dGVzCisgICAgICAgIHRvIHNob3cgdGhlIGxhdGVzdCBmYWlsdXJl
cy4gIFRoaXMgcGF0Y2ggcmVxdWlyZWQgYSBtb2RlcmF0ZWx5IGxhcmdlCisgICAgICAgIHJlZmFj
dG9yaW5nIG9mIG1haW4uanMgdG8gbWFrZSB0aGUgZGlzcGxheSBpbmNyZW1lbnRhbCBpbnN0ZWFk
IG9mCisgICAgICAgIGFsbC1hdC1vbmNlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZS5qczoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzOgorCisyMDExLTA3LTE4ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW5jcmVhc2UgaW5mb3JtYXRpb24gZ2FyZGVuLW8t
bWF0aWMgaW5mb3JtYXRpb24gZGVuc2l0eSBieSBzd2l0Y2hpbmcgdG8gYSB0YWJsZQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NDIKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdz
ZXJ2ZXIvYmFzZS5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL2Jhc2UuanMKaW5kZXggOTFlZjJhNDMxZjE4MTNlMDA0YWIyYmVjOWI3
ODYwOTc3M2ZkMDM3Ny4uMjQ4MmRmMjE4NjJlYTU2ODUwYzFiM2ZjNDQ2ZjUyYmRlOGMxYmI3ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJk
ZW5pbmdzZXJ2ZXIvYmFzZS5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNlLmpzCkBAIC05Nyw0ICs5NywxOCBAQCBiYXNl
Lmpzb25wID0gZnVuY3Rpb24odXJsLCBvbnN1Y2Nlc3MpCiAgICAgfSk7CiB9OwogCitiYXNlLlJl
cXVlc3RUcmFja2VyID0gZnVuY3Rpb24ocmVxdWVzdHNJbkZsaWdodCwgY2FsbGJhY2ssIGFyZ3Mp
Cit7CisgICAgdGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQgPSByZXF1ZXN0c0luRmxpZ2h0OworICAg
IHRoaXMubV9jYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHRoaXMubV9hcmdzID0gYXJncyB8fCBb
XTsKK307CisKK2Jhc2UuUmVxdWVzdFRyYWNrZXIucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZSA9
IGZ1bmN0aW9uKCkKK3sKKyAgICAtLXRoaXMubV9yZXF1ZXN0c0luRmxpZ2h0OworICAgIGlmICgh
dGhpcy5tX3JlcXVlc3RzSW5GbGlnaHQpCisgICAgICAgIHRoaXMubV9jYWxsYmFjay5hcHBseShu
dWxsLCB0aGlzLm1fYXJncyk7Cit9OworCiB9KSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvYmFzZV91bml0dGVz
dHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmlu
Z3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcwppbmRleCBiOTJlYjA3MmRmNGMyZTI3NDQ5MDEyMzRh
MGM3MTkyYzc5Njk3ZDVkLi43NTI2ZjI4ZGNhMzFlMGVlMDQ2ZjFkMDBlYTE4NzFkNDY2MDVjYThh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9iYXNlX3VuaXR0ZXN0cy5qcwpA
QCAtNDgsNiArNDgsMzAgQEAgdGVzdCgia2V5cyIsIDQsIGZ1bmN0aW9uKCkgewogICAgIGRlZXBF
cXVhbChiYXNlLmtleXMoeyJhIjogMSwgImIiOiB7ICJjIiA6IDF9fSksIFsiYSIsICJiIl0pOwog
fSk7CiAKK3Rlc3QoIlJlcXVlc3RUcmFja2VyIiwgMywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHJl
YWR5ID0gZmFsc2U7CisgICAgdmFyIHRyYWNrZXIgPSBuZXcgYmFzZS5SZXF1ZXN0VHJhY2tlcigx
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgb2socmVhZHkpOworICAgIH0pOworICAgIHJlYWR5ID0g
dHJ1ZTsKKyAgICB0cmFja2VyLnJlcXVlc3RDb21wbGV0ZSgpOworICAgIHJlYWR5ID0gZmFsc2U7
CisKKyAgICB0cmFja2VyID0gbmV3IGJhc2UuUmVxdWVzdFRyYWNrZXIoMiwgZnVuY3Rpb24ocGFy
YW1ldGVyKSB7CisgICAgICAgIG9rKHJlYWR5KTsKKyAgICAgICAgZXF1YWxzKHBhcmFtZXRlciwg
J2FyZ3VtZW50Jyk7CisgICAgfSwgWydhcmd1bWVudCddKTsKKyAgICB0cmFja2VyLnJlcXVlc3RD
b21wbGV0ZSgpOworICAgIHJlYWR5ID0gdHJ1ZTsKKyAgICB0cmFja2VyLnJlcXVlc3RDb21wbGV0
ZSgpOworICAgIHJlYWR5ID0gZmFsc2U7CisKKyAgICB0cmFja2VyID0gbmV3IGJhc2UuUmVxdWVz
dFRyYWNrZXIoMCwgZnVuY3Rpb24oKSB7CisgICAgICAgIG9rKGZhbHNlKTsKKyAgICB9KTsKKyAg
ICB0cmFja2VyLnJlcXVlc3RDb21wbGV0ZSgpOworfSk7CisKIHRlc3QoImZpbHRlclRyZWUiLCAy
LCBmdW5jdGlvbigpIHsKICAgICB2YXIgdHJlZSA9IHsKICAgICAgICAgJ3BhdGgnOiB7CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmlu
Z3NlcnZlci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4IGZhOGYxMGEyNWQyOTkyM2ExMGY3Y2Fj
ZjI2N2RhYzc0YzkzZDg3ZmIuLjk3ZDU4NDJlNTU4OTU4ZmRjYTEyNGZkYjI3YmZlM2QyMzc5ZDI4
ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCkBAIC04Nyw2ICs4NywxMCBA
QCB0YWJsZS5yZXN1bHRzLXN1bW1hcnkgewogICAgIHBhZGRpbmc6IDRweDsKIH0KIAorLnJlc3Vs
dHMtc3VtbWFyeSB0Ym9keSB0ciB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogLnJlc3VsdHMt
c3VtbWFyeSB1bCB7CiAgICAgbWFyZ2luOiAwcHg7CiAgICAgcGFkZGluZzogMHB4OwpAQCAtMTU5
LDEzICsxNjMsOCBAQCB0YWJsZS5yZXN1bHRzLXN1bW1hcnkgewogICAgIGJvcmRlci1yYWRpdXM6
IDRweDsKIH0KIAotLnJlc3VsdHMtc3VtbWFyeSAudGVzdFtkYXRhLW5ldy10ZXN0PSJ0cnVlIl0g
LndoYXQgYVtkcmFnZ2FibGVdOjpiZWZvcmUgewotICAgIGNvbnRlbnQ6ICcobmV3KSc7Ci0gICAg
bWFyZ2luOiAwIDNweDsKLX0KLQogLyogSWYgd2UndmUgb25seSBzZWVuIGEgZ2l2ZW4gdGVzdCBm
YWlsdXJlIG9uY2UsIHdlIGRpbSBpdCBzbyBhcyBub3QgdG8gZGlzdHJhY3QgdGhlIGdhcmRlbmVy
LiAqLwotLnJlc3VsdHMtc3VtbWFyeSAudGVzdFtkYXRhLWZhaWx1cmUtY291bnQ9IjEiXVtkYXRh
LW5ldy10ZXN0PSJmYWxzZSJdIHsKKy5yZXN1bHRzLXN1bW1hcnkgLnRlc3RbZGF0YS1mYWlsdXJl
LWNvdW50PSIxIl0gewogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMXMgb3BhY2l0eTsKICAgICBv
cGFjaXR5OiAwLjU7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwppbmRleCA2ZDAz
ZmMxZjVjZjg5NjA1ZWYwNjY3Zjk2NDJiY2JjMzFhMTFiMmNiLi5mODBlNzFkOWI4M2YwY2Y3YzE4
ZmQ1YzE1OGM4OGMzZjBlNDJkNWI4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMK
QEAgLTQ3LDUyICs0NywxMDMgQEAgZnVuY3Rpb24gc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKQog
ICAgICQoJyNmYXZpY29uJykuYXR0cignaHJlZicsIGZhdmljb25VUkwpOwogfQogCi1mdW5jdGlv
biBzaG93UmVzdWx0cyhvbnN1Y2Nlc3MpCitmdW5jdGlvbiB0b2dnbGVQYXJ0eVRpbWUoaGFzRmFp
bHVyZXMpCit7CisgICAgaWYgKCFoYXNGYWlsdXJlcykgeworICAgICAgICAkKCcucmVzdWx0cycp
LnRleHQoJ05vIGZhaWx1cmVzLiBQYXJ0eSB0aW1lIScpOworICAgICAgICB2YXIgcGFydHlUaW1l
ID0gJCgnPGRpdiBjbGFzcz0icGFydHl0aW1lIj48aW1nIHNyYz0icGFydHl0aW1lLmdpZiI+PC9k
aXY+Jyk7CisgICAgICAgICQoJy5yZXN1bHRzJykuYXBwZW5kKHBhcnR5VGltZSk7CisgICAgICAg
IHBhcnR5VGltZS5mYWRlSW4oMTIwMCkuZGVsYXkoNzAwMCkuZmFkZU91dCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICQoJy5yZXN1bHRzJykuZW1wdHkoKTsKK30KKworZnVuY3Rpb24g
ZW5zdXJlUmVzdWx0c1N1bW1hcnlDb250YWluZXIoKQoreworICAgIHZhciBjb250YWluZXIgPSAk
KCcucmVzdWx0cy1zdW1tYXJ5Jyk7CisgICAgaWYgKGNvbnRhaW5lci5sZW5ndGgpCisgICAgICAg
IHJldHVybiBjb250YWluZXI7CisgICAgY29udGFpbmVyID0gdWkucmVncmVzc2lvbnNDb250YWlu
ZXIoKTsKKyAgICAkKCcucmVzdWx0cycpLmFwcGVuZChjb250YWluZXIpOworICAgIHJldHVybiBj
b250YWluZXI7Cit9CisKK2Z1bmN0aW9uIGRldGFjaFJlcGFpcmVkVGVzdHNBbmRQcmVwYXJlVGVz
dE1hcCh1bmV4cGVjdGVkRmFpbHVyZXMpCit7CisgICAgdmFyIHRlc3RNYXAgPSB7fTsKKworICAg
ICQoJy50ZXN0JykuZWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHRlc3RTdW1tYXJ5ID0g
JCh0aGlzKTsKKyAgICAgICAgdmFyIHRlc3ROYW1lID0gdGVzdFN1bW1hcnkuYXR0cihjb25maWcu
a1Rlc3ROYW1lQXR0cik7CisgICAgICAgIGlmICghKHRlc3ROYW1lIGluIHVuZXhwZWN0ZWRGYWls
dXJlcykpCisgICAgICAgICAgICB0ZXN0U3VtbWFyeS5zbGlkZVVwKGZ1bmN0aW9uKCkgeyB0ZXN0
U3VtbWFyeS5kZXRhY2goKTsgfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RNYXBb
dGVzdE5hbWVdID0gdGVzdFN1bW1hcnk7CisgICAgfSk7CisKKyAgICByZXR1cm4gdGVzdE1hcDsK
K30KKworZnVuY3Rpb24gcHJlcGFyZVRlc3RTdW1tYXJ5KHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5
QnVpbGRlciwgY2FsbGJhY2spCit7CisgICAgdmFyIHRlc3RTdW1tYXJ5ID0gdWkuc3VtbWFyaXpl
VGVzdCh0ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpOworICAgIHZhciBidWlsZGVyTmFt
ZUxpc3QgPSBiYXNlLmtleXMocmVzdWx0Tm9kZXNCeUJ1aWxkZXIpOworCisgICAgcmVzdWx0cy51
bmlmeVJlZ3Jlc3Npb25SYW5nZXMoYnVpbGRlck5hbWVMaXN0LCB0ZXN0TmFtZSwgZnVuY3Rpb24o
b2xkZXN0RmFpbGluZ1JldmlzaW9uLCBuZXdlc3RQYXNzaW5nUmV2aXNpb24pIHsKKyAgICAgICAg
JCgnLndoZW4nLCB0ZXN0U3VtbWFyeSkuYXBwZW5kKHVpLnN1bW1hcml6ZVJlZ3Jlc3Npb25SYW5n
ZShvbGRlc3RGYWlsaW5nUmV2aXNpb24sIG5ld2VzdFBhc3NpbmdSZXZpc2lvbikpOworICAgIH0p
OworCisgICAgcmVzdWx0cy5jb3VudEZhaWx1cmVPY2N1cmFuY2VzKGJ1aWxkZXJOYW1lTGlzdCwg
dGVzdE5hbWUsIGZ1bmN0aW9uKGZhaWx1cmVDb3VudCkgeworICAgICAgICAkKHRlc3RTdW1tYXJ5
KS5hdHRyKGNvbmZpZy5rRmFpbHVyZUNvdW50QXR0ciwgZmFpbHVyZUNvdW50KTsKKyAgICAgICAg
JCgnLmhvdy1tYW55JywgdGVzdFN1bW1hcnkpLnRleHQodWkuZmFpbHVyZUNvdW50KGZhaWx1cmVD
b3VudCkpOworICAgIH0pOworCisgICAgY2FsbGJhY2sodGVzdFN1bW1hcnkpOworfQorCitmdW5j
dGlvbiB1cGRhdGVSZXN1bHRzU3VtbWFyeShjYWxsYmFjaykKIHsKICAgICByZXN1bHRzLmZldGNo
UmVzdWx0c0J5QnVpbGRlcihjb25maWcua0J1aWxkZXJzLCBmdW5jdGlvbihyZXN1bHRzQnlCdWls
ZGVyKSB7CiAgICAgICAgIHZhciB1bmV4cGVjdGVkRmFpbHVyZXMgPSByZXN1bHRzLnVuZXhwZWN0
ZWRGYWlsdXJlc0J5VGVzdChyZXN1bHRzQnlCdWlsZGVyKTsKICAgICAgICAgdmFyIGhhc0ZhaWx1
cmVzID0gISQuaXNFbXB0eU9iamVjdCh1bmV4cGVjdGVkRmFpbHVyZXMpCi0gICAgICAgIGlmICgh
aGFzRmFpbHVyZXMpIHsKLSAgICAgICAgICAgICQoJy5yZXN1bHRzJykudGV4dCgnTm8gZmFpbHVy
ZXMuIFBhcnR5IHRpbWUhJyk7Ci0gICAgICAgICAgICB2YXIgcGFydHlUaW1lID0gJCgnPGRpdiBj
bGFzcz0icGFydHl0aW1lIj48aW1nIHNyYz0icGFydHl0aW1lLmdpZiI+PC9kaXY+Jyk7Ci0gICAg
ICAgICAgICAkKCcucmVzdWx0cycpLmFwcGVuZChwYXJ0eVRpbWUpOwotICAgICAgICAgICAgcGFy
dHlUaW1lLmZhZGVJbigxMjAwKS5kZWxheSg3MDAwKS5mYWRlT3V0KCk7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICB2YXIgcmVncmVzc2lvbnMgPSB1aS5yZWdyZXNzaW9uc0NvbnRhaW5l
cigpOwotCi0gICAgICAgICAgICAkLmVhY2godW5leHBlY3RlZEZhaWx1cmVzLCBmdW5jdGlvbih0
ZXN0TmFtZSwgcmVzdWx0Tm9kZXNCeUJ1aWxkZXIpIHsKLSAgICAgICAgICAgICAgICB2YXIgdGVz
dFN1bW1hcnkgPSB1aS5zdW1tYXJpemVUZXN0KHRlc3ROYW1lLCByZXN1bHROb2Rlc0J5QnVpbGRl
cik7Ci0gICAgICAgICAgICAgICAgJCgndGJvZHknLCByZWdyZXNzaW9ucykuYXBwZW5kKHRlc3RT
dW1tYXJ5KTsKLQotICAgICAgICAgICAgICAgIHZhciBidWlsZGVyTmFtZUxpc3QgPSBiYXNlLmtl
eXMocmVzdWx0Tm9kZXNCeUJ1aWxkZXIpOwotICAgICAgICAgICAgICAgIHJlc3VsdHMudW5pZnlS
ZWdyZXNzaW9uUmFuZ2VzKGJ1aWxkZXJOYW1lTGlzdCwgdGVzdE5hbWUsIGZ1bmN0aW9uKG9sZGVz
dEZhaWxpbmdSZXZpc2lvbiwgbmV3ZXN0UGFzc2luZ1JldmlzaW9uKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICQoJy53aGVuJywgdGVzdFN1bW1hcnkpLmFwcGVuZCh1aS5zdW1tYXJpemVSZWdyZXNz
aW9uUmFuZ2Uob2xkZXN0RmFpbGluZ1JldmlzaW9uLCBuZXdlc3RQYXNzaW5nUmV2aXNpb24pKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXdlc3RQYXNzaW5nUmV2aXNpb24pCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0LmV4
aXN0c0F0UmV2aXNpb24oY2hlY2tvdXQuc3VidmVyc2lvblVSTEZvclRlc3QodGVzdE5hbWUpLCBu
ZXdlc3RQYXNzaW5nUmV2aXNpb24sIGZ1bmN0aW9uKHRlc3RFeGlzdGVkQmVmb3JlRmFpbHVyZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgJCh0ZXN0U3VtbWFyeSkuYXR0cignZGF0YS1uZXct
dGVzdCcsICF0ZXN0RXhpc3RlZEJlZm9yZUZhaWx1cmUpOwotICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICByZXN1bHRzLmNvdW50RmFp
bHVyZU9jY3VyYW5jZXMoYnVpbGRlck5hbWVMaXN0LCB0ZXN0TmFtZSwgZnVuY3Rpb24oZmFpbHVy
ZUNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICQodGVzdFN1bW1hcnkpLmF0dHIoY29uZmln
LmtGYWlsdXJlQ291bnRBdHRyLCBmYWlsdXJlQ291bnQpOwotICAgICAgICAgICAgICAgICAgICAk
KCcuaG93LW1hbnknLCB0ZXN0U3VtbWFyeSkudGV4dCh1aS5mYWlsdXJlQ291bnQoZmFpbHVyZUNv
dW50KSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICQoJy5yZXN1bHRzJykuYXBwZW5kKHJlZ3Jlc3Npb25zKTsKLSAgICAgICAgfQorCisgICAgICAg
IHRvZ2dsZVBhcnR5VGltZShoYXNGYWlsdXJlcyk7CiAgICAgICAgIHNldEljb25TdGF0ZShoYXNG
YWlsdXJlcyk7Ci0gICAgICAgIG9uc3VjY2VzcygpOworCisgICAgICAgIHZhciBjb250YWluZXIg
PSBlbnN1cmVSZXN1bHRzU3VtbWFyeUNvbnRhaW5lcigpOworICAgICAgICB2YXIgdGVzdE1hcCA9
IGRldGFjaFJlcGFpcmVkVGVzdHNBbmRQcmVwYXJlVGVzdE1hcCh1bmV4cGVjdGVkRmFpbHVyZXMp
OworCisgICAgICAgIHZhciBuZXdUZXN0U3VtbWFyaWVzID0gJCgpOworICAgICAgICB2YXIgcmVx
dWVzdFRyYWNrZXIgPSBuZXcgYmFzZS5SZXF1ZXN0VHJhY2tlcihiYXNlLmtleXModW5leHBlY3Rl
ZEZhaWx1cmVzKS5sZW5ndGgsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgbmV3VGVzdFN1bW1h
cmllcy5mYWRlSW4oKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCkKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgJC5lYWNoKHVuZXhwZWN0ZWRGYWlsdXJlcywgZnVuY3Rpb24odGVzdE5hbWUsIHJlc3Vs
dE5vZGVzQnlCdWlsZGVyKSB7CisgICAgICAgICAgICBwcmVwYXJlVGVzdFN1bW1hcnkodGVzdE5h
bWUsIHJlc3VsdE5vZGVzQnlCdWlsZGVyLCBmdW5jdGlvbih0ZXN0U3VtbWFyeSkgeworICAgICAg
ICAgICAgICAgIHZhciBleGlzdGluZ0VsZW1lbnQgPSB0ZXN0TWFwW3Rlc3ROYW1lXTsKKyAgICAg
ICAgICAgICAgICBpZiAoZXhpc3RpbmdFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIGV4
aXN0aW5nRWxlbWVudC5yZXBsYWNlV2l0aCh0ZXN0U3VtbWFyeSk7CisgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RUcmFja2VyLnJlcXVlc3RDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICQoJ3Rib2R5Jywg
Y29udGFpbmVyKS5hcHBlbmQodGVzdFN1bW1hcnkpOworICAgICAgICAgICAgICAgIG5ld1Rlc3RT
dW1tYXJpZXMgPSBuZXdUZXN0U3VtbWFyaWVzLmFkZCh0ZXN0U3VtbWFyeSk7CisgICAgICAgICAg
ICAgICAgcmVxdWVzdFRyYWNrZXIucmVxdWVzdENvbXBsZXRlKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIHNob3dSZXN1bHRzRGV0YWlsKCkK
IHsKLSAgICB2YXIgdGVzdEJsb2NrID0gJCh0aGlzKS5wYXJlbnRzKCcudGVzdCcpOworICAgIHZh
ciB0ZXN0U3VtbWFyeSA9ICQodGhpcykucGFyZW50cygnLnRlc3QnKTsKICAgICB2YXIgYnVpbGRl
ck5hbWUgPSAkKHRoaXMpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIpOwotICAgIHZhciB0
ZXN0TmFtZSA9ICQoJy53aGF0JywgdGVzdEJsb2NrKS50ZXh0KCk7CisgICAgdmFyIHRlc3ROYW1l
ID0gdGVzdFN1bW1hcnkuYXR0cihjb25maWcua1Rlc3ROYW1lQXR0cik7CiAKICAgICAvLyBGSVhN
RTogSXQncyBsYW1lIHRoYXQgd2UgaGF2ZSB0d28gZGlmZmVyZW50IHJlcHJlc2VudGF0aW9ucyBv
ZiBtdWx0aXBsZSBmYWlsdXJlIHR5cGVzLgotICAgIHZhciBmYWlsdXJlVHlwZXMgPSB0ZXN0Qmxv
Y2suYXR0cihjb25maWcua0ZhaWx1cmVUeXBlc0F0dHIpOworICAgIHZhciBmYWlsdXJlVHlwZXMg
PSB0ZXN0U3VtbWFyeS5hdHRyKGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0cik7CiAgICAgdmFyIGZh
aWx1cmVUeXBlTGlzdCA9IGZhaWx1cmVUeXBlcy5zcGxpdCgnICcpOwogCiAgICAgdmFyIGNvbnRl
bnQgPSAkKCcucmVzdWx0cy1kZXRhaWwgLmNvbnRlbnQnKTsKQEAgLTE2Niw2ICsyMTcsOCBAQCBm
dW5jdGlvbiBjaGVja0J1aWxkZXJTdGF0dXNlcygpCiAKIGZ1bmN0aW9uIHVwZGF0ZSgpCiB7Cisg
ICAgZGlzcGxheU9uQnV0dGVyYmFyKCdMb2FkaW5nLi4uJyk7CisgICAgdXBkYXRlUmVzdWx0c1N1
bW1hcnkoZGlzbWlzc0J1dHRlcmJhcik7CiAgICAgY2hlY2tCdWlsZGVyU3RhdHVzZXMoKTsKIH0K
IApAQCAtMTc0LDkgKzIyNyw2IEBAICQoJy5yZXN1bHRzLWRldGFpbCAuYWN0aW9ucyAuZGlzbWlz
cycpLmxpdmUoJ2NsaWNrJywgaGlkZVJlc3VsdHNEZXRhaWwpOwogJCgnLnJlc3VsdHMtZGV0YWls
IC5hY3Rpb25zIC5yZWJhc2VsaW5lJykubGl2ZSgnY2xpY2snLCByZWJhc2VsaW5lUmVzdWx0cyk7
CiAKICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewotICAgIHNob3dSZXN1bHRzKGZ1bmN0
aW9uKCkgewotICAgICAgICAkKCcuYnV0dGVyYmFyJykuZmFkZU91dCgpOwotICAgIH0pOwogICAg
IGdfdXBkYXRlVGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGUsIGNvbmZpZy5rVXBk
YXRlRnJlcXVlbmN5KTsKICAgICB1cGRhdGUoKTsKIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5q
cyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2Vy
dmVyL3Jlc3VsdHMuanMKaW5kZXggOTI3NDJhOTdkYmFhNzFhMTRkM2ViZWFjNjUyMDRmYmZhYzU3
MjY2My4uZjY1ZTA5MWYwODY3YzhiMmM4YjZlZWJmNWYxMTdjZTM0NTU2OTlhNCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvcmVzdWx0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9k
YXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCkBAIC0xNzcsNyArMTc3LDcgQEAgUmVzdWx0
c0NhY2hlLnByb3RvdHlwZS5fZmV0Y2ggPSBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogLy8gRklY
TUU6IENvbnNpZGVyIHVzaW5nIHNldFRpbWVvdXQgdG8gbWFrZSB0aGlzIG1ldGhvZCBhbHdheXMg
YXN5bmNocm9ub3VzLgogUmVzdWx0c0NhY2hlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihrZXks
IGNhbGxiYWNrKQogewotICAgIGlmIChrZXkgaW4gdGhpcy5fY2FjaGUpIHsKKyAgICBpZiAodGhp
cy5fY2FjaGVba2V5XSkgewogICAgICAgICBjYWxsYmFjayh0aGlzLl9jYWNoZVtrZXldKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3VpLmpzIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMKaW5kZXggNmYw
NTBlMTUyMjc1YjQ0MTcyMGMxNzExNWZjYTU5NmE4YWE5MzU2OS4uZWM3ZDE4ZWQyZDA0YmVhMjA2
MGJlZDdlYmZiNzVlY2Y0NTUzN2JkMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvdWkuanMKQEAg
LTU0LDYgKzU0LDcgQEAgdWkuc3VtbWFyaXplVGVzdCA9IGZ1bmN0aW9uKHRlc3ROYW1lLCByZXN1
bHROb2Rlc0J5QnVpbGRlcikKICAgICAgICAgICAnPHRkIGNsYXNzPSJob3ctbWFueSI+PC90ZD4n
ICsKICAgICAgICAgJzwvdHI+Jyk7CiAgICAgJCgnLndoYXQgYScsIGJsb2NrKS50ZXh0KHRlc3RO
YW1lKS5hdHRyKCdocmVmJywgdWkudXJsRm9yVGVzdCh0ZXN0TmFtZSkpLmF0dHIoJ2NsYXNzJywg
dW5leHBlY3RlZFJlc3VsdHMuam9pbignICcpKTsKKyAgICBibG9jay5hdHRyKGNvbmZpZy5rVGVz
dE5hbWVBdHRyLCB0ZXN0TmFtZSk7CiAgICAgYmxvY2suYXR0cihjb25maWcua0ZhaWx1cmVUeXBl
c0F0dHIsIHVuZXhwZWN0ZWRSZXN1bHRzKTsKIAogICAgIHZhciB3aGVyZSA9ICQoJy53aGVyZScs
IGJsb2NrKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>