<?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>36771</bug_id>
          
          <creation_ts>2010-03-29 12:24:11 -0700</creation_ts>
          <short_desc>new-run-webkit-tests shouldn&apos;t report &quot;unexpected passes&quot; when pixel tests are disabled</short_desc>
          <delta_ts>2010-03-31 14:51:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>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>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>senorblanco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>205600</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 12:24:11 -0700</bug_when>
    <thetext>Currently, if you have a test marked as expected to fail with an IMAGE failure, and you disable pixel tests, you&apos;ll get &quot;unexpected passes&quot;. Strictly speaking, this isn&apos;t true, because you would expect this test to pass. More importantly, it&apos;s confusing if you&apos;re trying to get new-run-webkit-tests&apos;s output to match run-webkit-tests&apos;s default output (which has pixel tests disabled).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205624</commentid>
    <comment_count>1</comment_count>
      <attachid>51956</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 13:13:15 -0700</bug_when>
    <thetext>Created attachment 51956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205627</commentid>
    <comment_count>2</comment_count>
      <attachid>51956</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-29 13:15:50 -0700</bug_when>
    <thetext>Comment on attachment 51956
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205664</commentid>
    <comment_count>3</comment_count>
      <attachid>51956</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-03-29 14:18:02 -0700</bug_when>
    <thetext>Comment on attachment 51956
Patch

&gt; +    def _matches_an_expected_result(self, test, result):
&gt; +        &quot;&quot;&quot;Returns whether we got one of the expected results for this test.&quot;&quot;&quot;
&gt; +        expected_failures = self._expectations.get_expectations(test)

Isn&apos;t this modifying the list inside self._expectations? I think you should make a copy of this list ([:]) and modify that. 

&gt; +        if self._options.no_pixel_tests:
&gt; +            if test_expectations.IMAGE in expected_failures:
&gt; +                expected_failures.remove(test_expectations.IMAGE)
&gt; +                expected_failures.add(test_expectations.PASS)
&gt; +            if test_expectations.IMAGE_PLUS_TEXT in expected_failures:
&gt; +                expected_failures.remove(test_expectations.IMAGE_PLUS_TEXT)
&gt; +                expected_failures.add(test_expectations.TEXT)
&gt; +        return ((result in expected_failures) or
&gt; +                (result in (test_expectations.IMAGE, test_expectations.TEXT,
&gt; +                            test_expectations.IMAGE_PLUS_TEXT) and
&gt; +                 test_expectations.FAIL in expected_failures) or
&gt; +                (result == test_expectations.MISSING and
&gt; +                 self.is_rebaselining(test)) or
&gt; +                (result == test_expectations.SKIP and
&gt; +                 self._expected_failures.has_modifier(test,
&gt; +                                                      test_expectations.SKIP)))
&gt; +
&gt;      def _display_one_line_progress(self, result_summary):
&gt;          &quot;&quot;&quot;Displays the progress through the test run.&quot;&quot;&quot;
&gt;          self._meter.update(&quot;Testing: %d ran as expected, %d didn&apos;t, %d left&quot; %</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205668</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 14:25:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 51956 [details])
&gt; &gt; +    def _matches_an_expected_result(self, test, result):
&gt; &gt; +        &quot;&quot;&quot;Returns whether we got one of the expected results for this test.&quot;&quot;&quot;
&gt; &gt; +        expected_failures = self._expectations.get_expectations(test)
&gt; 
&gt; Isn&apos;t this modifying the list inside self._expectations? I think you should
&gt; make a copy of this list ([:]) and modify that. 
&gt; 

This is actually a set, but otherwise I think you&apos;re right. I&apos;ll make a copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205677</commentid>
    <comment_count>5</comment_count>
      <attachid>51967</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 14:58:50 -0700</bug_when>
    <thetext>Created attachment 51967
only modify a copy of the expectation - thanks Ojan!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205679</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 15:00:20 -0700</bug_when>
    <thetext>*** Bug 36689 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205704</commentid>
    <comment_count>7</comment_count>
      <attachid>51967</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-29 15:33:00 -0700</bug_when>
    <thetext>Comment on attachment 51967
only modify a copy of the expectation - thanks Ojan!

I would have probably written those as a series of ifs, instead of one long if with a bunch of ors.

Your ChangeLog is not at the top of the file, which will cause badness and confusion. :)  resolve-ChangeLogs (optionally --force) is your friend.  Git is not friendly to changelogs. :(

Wow, this is also really noisy now that it&apos;s been moved out of  test_expectations.  Was much easier to read when every other word wasn&apos;t test_expectations. :)

Does TestRunner have a self._expected_failures like TestExpecations does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205715</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 15:50:40 -0700</bug_when>
    <thetext>&gt; (From update of attachment 51967)
&gt; I would have probably written those as a series of ifs, instead of one long if
&gt; with a bunch of ors.
&gt;
&gt; Your ChangeLog is not at the top of the file, which will cause badness and
&gt; confusion. :)  resolve-ChangeLogs (optionally --force) is your friend.  Git is
&gt; not friendly to changelogs. :(
&gt;

Normally I have resolve-ChangeLogs run as part of the merge handler.
I&apos;m not sure what happened here.

&gt; Wow, this is also really noisy now that it&apos;s been moved out of
&gt; test_expectations.  Was much easier to read when every other word wasn&apos;t
&gt; test_expectations. :)
&gt;

Agreed. That&apos;s why it was in test_expectations in the first place. I
wish there was an easy way to import just the constants.

&gt; Does TestRunner have a self._expected_failures like TestExpecations does?
&gt;

No. Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205721</commentid>
    <comment_count>9</comment_count>
      <attachid>51978</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 16:01:52 -0700</bug_when>
    <thetext>Created attachment 51978
fix changelog entry, fix typo from review by eseidel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205744</commentid>
    <comment_count>10</comment_count>
      <attachid>51983</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 16:54:59 -0700</bug_when>
    <thetext>Created attachment 51983
update w/ feedback from eseidel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205763</commentid>
    <comment_count>11</comment_count>
      <attachid>51983</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-29 17:36:19 -0700</bug_when>
    <thetext>Comment on attachment 51983
update w/ feedback from eseidel

I&apos;m confused as to how this line:
 725         if result in expected_failures:

and this line:
 734         if (result == test_expectations.SKIP and

actually are dealing with the same &quot;result&quot; variable.

One seems like it should be a path, the other seems like it should be some sort of ENUM.

I might have put this sort of translation code (including the copy) inside test_expectations.py to limit the number of times that you need to write &quot;test_expecations&quot;:
 718             expected_failures = expected_failures.copy()
 719             if test_expectations.IMAGE in expected_failures:
 720                 expected_failures.remove(test_expectations.IMAGE)
 721                 expected_failures.add(test_expectations.PASS)
 722             if test_expectations.IMAGE_PLUS_TEXT in expected_failures:
 723                 expected_failures.remove(test_expectations.IMAGE_PLUS_TEXT)
 724                 expected_failures.add(test_expectations.TEXT)

 That and it&apos;s relatively self-contained from the rest of the function.

Actually.. if you ahve some sort of epectations_ignoring_pixel_failures() translation function, can&apos;t we then just pipe those results into some very slightly modified version of the original matches_an_expected_result which takes an expecations?

I mean, in general the change looks OK.  But the &quot;result&quot; confusion makes me wonder if part of it is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205809</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 19:33:00 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 51983 [details])
&gt; I&apos;m confused as to how this line:
&gt;  725         if result in expected_failures:
&gt; 
&gt; and this line:
&gt;  734         if (result == test_expectations.SKIP and
&gt; 
&gt; actually are dealing with the same &quot;result&quot; variable.
&gt; 
&gt; One seems like it should be a path, the other seems like it should be some sort
&gt; of ENUM.

I see. It looks like a bad choice of variable name has confused you.

Okay, I&apos;m going to restructure this patch again and resubmit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205810</commentid>
    <comment_count>13</comment_count>
      <attachid>51996</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-29 19:34:53 -0700</bug_when>
    <thetext>Created attachment 51996
update after more feedback from eseidel

Okay, I&apos;m adopting a different approach here. We&apos;ll keep as much of the logic in test_expectations as possible, but make the decision of how to handle pixel test failures passed in from run_webkit_tests.

Also, I&apos;ve split the logic out into separate testable pure function calls, and added more unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206291</commentid>
    <comment_count>14</comment_count>
      <attachid>51996</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-03-30 17:46:31 -0700</bug_when>
    <thetext>Comment on attachment 51996
update after more feedback from eseidel

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206661</commentid>
    <comment_count>15</comment_count>
      <attachid>51996</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-31 12:48:41 -0700</bug_when>
    <thetext>Comment on attachment 51996
update after more feedback from eseidel

You compute &quot;test_is_skipped&quot; here but never use it?
 165         test_is_skipped = self._expected_failures.has_modifier(test, SKIP)

I don&apos;t really understand the use of the name &quot;t&quot;, &quot;m&quot; and &quot;f&quot;.  I don&apos;t think they add to readability being so short.

In general this looks great and much cleaner than before.  Thank you for workign through it again.

r=me.  Please fix some subset of the above nits when you go to land it.  No need to post it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206717</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-31 14:21:55 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 51996 [details])
&gt; You compute &quot;test_is_skipped&quot; here but never use it?
&gt;  165         test_is_skipped = self._expected_failures.has_modifier(test, SKIP)
&gt;

This line was unnecessary and left over from a prior rev. I&apos;ve deleted it.
 
&gt; I don&apos;t really understand the use of the name &quot;t&quot;, &quot;m&quot; and &quot;f&quot;.  I don&apos;t think
&gt; they add to readability being so short.

I&apos;ve renamed m() to match() and changed t() and f() to self.assertTrue(match()) 
and self.assertFalse(match()). That&apos;s as far as I&apos;m willing to go, longer-names-wise :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206739</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-31 14:51:14 -0700</bug_when>
    <thetext>Committed r56871: &lt;http://trac.webkit.org/changeset/56871&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51956</attachid>
            <date>2010-03-29 13:13:15 -0700</date>
            <delta_ts>2010-03-29 14:58:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36771-20100329131314.patch</filename>
            <type>text/plain</type>
            <size>4627</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiMGNhNmI5Li5lNDQxYWU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMt
MjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGxvZ2dpbmcgaW4gbmV3LXJ1bi13
ZWJraXQtdGVzdHMgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgSU1BR0UKKyAgICAgICAgZXhwZWN0
ZWQgZmFpbHVyZXMgYXMgdW5leHBlY3RlZCBwYXNzZXMgd2hlbiB3ZSBydW4gd2l0aCBwaXhlbCB0
ZXN0cworICAgICAgICBkaXNhYmxlZC4KKworICAgICAgICBUaGlzIG1vdmVzIG1hdGNoZXNfYW5f
ZXhwZWN0ZWRfcmVzdWx0KCkgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucyB0bworICAgICAgICBydW5f
d2Via2l0X3Rlc3RzLCBzbyB0aGF0IHRlc3RfZXhwZWN0YXRpb25zIGNhbiBmb2N1cyBvbiBiZWlu
ZyBhCisgICAgICAgIGNvbmZpZyBmaWxlIHBhcnNlciwgYW5kIGJlIGxlc3MgaW5mbHVlbmNlZCBi
eSBydW50aW1lIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NzcxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorCiAy
MDEwLTAzLTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0
X2V4cGVjdGF0aW9ucy5weQppbmRleCAzODc5NGNkLi5kMGQ1Zjc2IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0
X2V4cGVjdGF0aW9ucy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtMTI1LDE1ICsx
MjUsNiBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgIGRlZiBnZXRfdGVzdHNfd2l0aF90
aW1lbGluZShzZWxmLCB0aW1lbGluZSk6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF9m
YWlsdXJlcy5nZXRfdGVzdHNfd2l0aF90aW1lbGluZSh0aW1lbGluZSkKIAotICAgIGRlZiBtYXRj
aGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0ZXN0LCByZXN1bHQpOgotICAgICAgICAiIiJS
ZXR1cm5zIHdoZXRoZXIgd2UgZ290IG9uZSBvZiB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhp
cyB0ZXN0LiIiIgotICAgICAgICByZXR1cm4gKHJlc3VsdCBpbiBzZWxmLl9leHBlY3RlZF9mYWls
dXJlcy5nZXRfZXhwZWN0YXRpb25zKHRlc3QpIG9yCi0gICAgICAgICAgICAgICAgKHJlc3VsdCBp
biAoSU1BR0UsIFRFWFQsIElNQUdFX1BMVVNfVEVYVCkgYW5kCi0gICAgICAgICAgICAgICAgRkFJ
TCBpbiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5nZXRfZXhwZWN0YXRpb25zKHRlc3QpKSBvcgot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9PSBNSVNTSU5HIGFuZCBzZWxmLmlzX3JlYmFzZWxpbmlu
Zyh0ZXN0KSBvcgotICAgICAgICAgICAgICAgIHJlc3VsdCA9PSBTS0lQIGFuZCBzZWxmLl9leHBl
Y3RlZF9mYWlsdXJlcy5oYXNfbW9kaWZpZXIodGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNLSVApKQot
CiAgICAgZGVmIGlzX3JlYmFzZWxpbmluZyhzZWxmLCB0ZXN0KToKICAgICAgICAgcmV0dXJuIHNl
bGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmhhc19tb2RpZmllcih0ZXN0LCBSRUJBU0VMSU5FKQogCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCBmYjI4OTZlLi42ZGE2ZGI0IDEwMDc1NQotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKQEAgLTY5OCw4ICs2OTgsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgog
ICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICh0ZXN0LCBmYWlsX2xpc3QpID0gc2Vs
Zi5fcmVzdWx0X3F1ZXVlLmdldF9ub3dhaXQoKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRl
c3RfZmFpbHVyZXMuZGV0ZXJtaW5lX3Jlc3VsdF90eXBlKGZhaWxfbGlzdCkKLSAgICAgICAgICAg
ICAgICBleHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jl
c3VsdCh0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkKKyAgICAgICAgICAgICAgICBleHBlY3Rl
ZCA9IHNlbGYuX21hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKICAgICAg
ICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQodGVzdCwgZmFpbF9saXN0LCByZXN1bHQsIGV4
cGVjdGVkKQogICAgICAgICAgICAgICAgIGlmIChMT0dfREVUQUlMRURfUFJPR1JFU1MgaW4gc2Vs
Zi5fb3B0aW9ucy5sb2cgYW5kCiAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9vcHRpb25zLmV4
cGVyaW1lbnRhbF9mdWxseV9wYXJhbGxlbCBvcgpAQCAtNzEyLDYgKzcxMSwyNiBAQCBjbGFzcyBU
ZXN0UnVubmVyOgogICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgogICAgICAgICAgICAg
ICAgIHJldHVybgogCisgICAgZGVmIF9tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0
ZXN0LCByZXN1bHQpOgorICAgICAgICAiIiJSZXR1cm5zIHdoZXRoZXIgd2UgZ290IG9uZSBvZiB0
aGUgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhpcyB0ZXN0LiIiIgorICAgICAgICBleHBlY3RlZF9m
YWlsdXJlcyA9IHNlbGYuX2V4cGVjdGF0aW9ucy5nZXRfZXhwZWN0YXRpb25zKHRlc3QpCisgICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMubm9fcGl4ZWxfdGVzdHM6CisgICAgICAgICAgICBpZiB0ZXN0
X2V4cGVjdGF0aW9ucy5JTUFHRSBpbiBleHBlY3RlZF9mYWlsdXJlczoKKyAgICAgICAgICAgICAg
ICBleHBlY3RlZF9mYWlsdXJlcy5yZW1vdmUodGVzdF9leHBlY3RhdGlvbnMuSU1BR0UpCisgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZmFpbHVyZXMuYWRkKHRlc3RfZXhwZWN0YXRpb25zLlBBU1Mp
CisgICAgICAgICAgICBpZiB0ZXN0X2V4cGVjdGF0aW9ucy5JTUFHRV9QTFVTX1RFWFQgaW4gZXhw
ZWN0ZWRfZmFpbHVyZXM6CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmFpbHVyZXMucmVtb3Zl
KHRlc3RfZXhwZWN0YXRpb25zLklNQUdFX1BMVVNfVEVYVCkKKyAgICAgICAgICAgICAgICBleHBl
Y3RlZF9mYWlsdXJlcy5hZGQodGVzdF9leHBlY3RhdGlvbnMuVEVYVCkKKyAgICAgICAgcmV0dXJu
ICgocmVzdWx0IGluIGV4cGVjdGVkX2ZhaWx1cmVzKSBvcgorICAgICAgICAgICAgICAgIChyZXN1
bHQgaW4gKHRlc3RfZXhwZWN0YXRpb25zLklNQUdFLCB0ZXN0X2V4cGVjdGF0aW9ucy5URVhULAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFX1BMVVNf
VEVYVCkgYW5kCisgICAgICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLkZBSUwgaW4gZXhw
ZWN0ZWRfZmFpbHVyZXMpIG9yCisgICAgICAgICAgICAgICAgKHJlc3VsdCA9PSB0ZXN0X2V4cGVj
dGF0aW9ucy5NSVNTSU5HIGFuZAorICAgICAgICAgICAgICAgICBzZWxmLmlzX3JlYmFzZWxpbmlu
Zyh0ZXN0KSkgb3IKKyAgICAgICAgICAgICAgICAocmVzdWx0ID09IHRlc3RfZXhwZWN0YXRpb25z
LlNLSVAgYW5kCisgICAgICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmhhc19t
b2RpZmllcih0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuU0tJUCkpKQorCiAgICAgZGVmIF9kaXNwbGF5
X29uZV9saW5lX3Byb2dyZXNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIiIiRGlz
cGxheXMgdGhlIHByb2dyZXNzIHRocm91Z2ggdGhlIHRlc3QgcnVuLiIiIgogICAgICAgICBzZWxm
Ll9tZXRlci51cGRhdGUoIlRlc3Rpbmc6ICVkIHJhbiBhcyBleHBlY3RlZCwgJWQgZGlkbid0LCAl
ZCBsZWZ0IiAlCg==
</data>
<flag name="review"
          id="35335"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51967</attachid>
            <date>2010-03-29 14:58:50 -0700</date>
            <delta_ts>2010-03-29 16:01:52 -0700</delta_ts>
            <desc>only modify a copy of the expectation - thanks Ojan!</desc>
            <filename>wk36771_text_only.diff</filename>
            <type>text/plain</type>
            <size>4746</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjZWZmYmIxLi43NWYzOTViIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0zODEsNiArMzgxLDIzIEBACiAKICAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5OgogCisyMDEw
LTAzLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBsb2dnaW5nIGluIG5ldy1y
dW4td2Via2l0LXRlc3RzIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IElNQUdFCisgICAgICAgIGV4
cGVjdGVkIGZhaWx1cmVzIGFzIHVuZXhwZWN0ZWQgcGFzc2VzIHdoZW4gd2UgcnVuIHdpdGggcGl4
ZWwgdGVzdHMKKyAgICAgICAgZGlzYWJsZWQuCisKKyAgICAgICAgVGhpcyBtb3ZlcyBtYXRjaGVz
X2FuX2V4cGVjdGVkX3Jlc3VsdCgpIGZyb20gdGVzdF9leHBlY3RhdGlvbnMgdG8KKyAgICAgICAg
cnVuX3dlYmtpdF90ZXN0cywgc28gdGhhdCB0ZXN0X2V4cGVjdGF0aW9ucyBjYW4gZm9jdXMgb24g
YmVpbmcgYQorICAgICAgICBjb25maWcgZmlsZSBwYXJzZXIsIGFuZCBiZSBsZXNzIGluZmx1ZW5j
ZWQgYnkgcnVudGltZSBjb25maWd1cmF0aW9uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjc3MQorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToK
KwogMjAxMC0wMy0yNiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
dGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggMzg3OTRjZC4uZDBkNWY3NiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
dGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTEyNSwx
NSArMTI1LDYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICBkZWYgZ2V0X3Rlc3RzX3dp
dGhfdGltZWxpbmUoc2VsZiwgdGltZWxpbmUpOgogICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0
ZWRfZmFpbHVyZXMuZ2V0X3Rlc3RzX3dpdGhfdGltZWxpbmUodGltZWxpbmUpCiAKLSAgICBkZWYg
bWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2VsZiwgdGVzdCwgcmVzdWx0KToKLSAgICAgICAg
IiIiUmV0dXJucyB3aGV0aGVyIHdlIGdvdCBvbmUgb2YgdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9y
IHRoaXMgdGVzdC4iIiIKLSAgICAgICAgcmV0dXJuIChyZXN1bHQgaW4gc2VsZi5fZXhwZWN0ZWRf
ZmFpbHVyZXMuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0KSBvcgotICAgICAgICAgICAgICAgIChyZXN1
bHQgaW4gKElNQUdFLCBURVhULCBJTUFHRV9QTFVTX1RFWFQpIGFuZAotICAgICAgICAgICAgICAg
IEZBSUwgaW4gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0KSkg
b3IKLSAgICAgICAgICAgICAgICByZXN1bHQgPT0gTUlTU0lORyBhbmQgc2VsZi5pc19yZWJhc2Vs
aW5pbmcodGVzdCkgb3IKLSAgICAgICAgICAgICAgICByZXN1bHQgPT0gU0tJUCBhbmQgc2VsZi5f
ZXhwZWN0ZWRfZmFpbHVyZXMuaGFzX21vZGlmaWVyKHRlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTS0lQ
KSkKLQogICAgIGRlZiBpc19yZWJhc2VsaW5pbmcoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJldHVy
biBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5oYXNfbW9kaWZpZXIodGVzdCwgUkVCQVNFTElORSkK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggZmIyODk2ZS4uNzgzMWMwYSAxMDA3NTUK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC02OTgsOCArNjk4LDcgQEAgY2xhc3MgVGVzdFJ1bm5l
cjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAodGVzdCwgZmFpbF9saXN0KSA9
IHNlbGYuX3Jlc3VsdF9xdWV1ZS5nZXRfbm93YWl0KCkKICAgICAgICAgICAgICAgICByZXN1bHQg
PSB0ZXN0X2ZhaWx1cmVzLmRldGVybWluZV9yZXN1bHRfdHlwZShmYWlsX2xpc3QpCi0gICAgICAg
ICAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3Rl
ZF9yZXN1bHQodGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpCisgICAgICAgICAgICAgICAgZXhw
ZWN0ZWQgPSBzZWxmLl9tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0LCByZXN1bHQpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuYWRkKHRlc3QsIGZhaWxfbGlzdCwgcmVzdWx0
LCBleHBlY3RlZCkKICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFVEFJTEVEX1BST0dSRVNTIGlu
IHNlbGYuX29wdGlvbnMubG9nIGFuZAogICAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9u
cy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwgb3IKQEAgLTcxMiw2ICs3MTEsMjcgQEAgY2xh
c3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKICAgICAgICAg
ICAgICAgICByZXR1cm4KIAorICAgIGRlZiBfbWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2Vs
ZiwgdGVzdCwgcmVzdWx0KToKKyAgICAgICAgIiIiUmV0dXJucyB3aGV0aGVyIHdlIGdvdCBvbmUg
b2YgdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHRoaXMgdGVzdC4iIiIKKyAgICAgICAgZXhwZWN0
ZWRfZmFpbHVyZXMgPSBzZWxmLl9leHBlY3RhdGlvbnMuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0KQor
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vX3BpeGVsX3Rlc3RzOgorICAgICAgICAgICAgZXhw
ZWN0ZWRfZmFpbHVyZXMgPSBleHBlY3RlZF9mYWlsdXJlcy5jb3B5KCkKKyAgICAgICAgICAgIGlm
IHRlc3RfZXhwZWN0YXRpb25zLklNQUdFIGluIGV4cGVjdGVkX2ZhaWx1cmVzOgorICAgICAgICAg
ICAgICAgIGV4cGVjdGVkX2ZhaWx1cmVzLnJlbW92ZSh0ZXN0X2V4cGVjdGF0aW9ucy5JTUFHRSkK
KyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5hZGQodGVzdF9leHBlY3RhdGlvbnMu
UEFTUykKKyAgICAgICAgICAgIGlmIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFX1BMVVNfVEVYVCBp
biBleHBlY3RlZF9mYWlsdXJlczoKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5y
ZW1vdmUodGVzdF9leHBlY3RhdGlvbnMuSU1BR0VfUExVU19URVhUKQorICAgICAgICAgICAgICAg
IGV4cGVjdGVkX2ZhaWx1cmVzLmFkZCh0ZXN0X2V4cGVjdGF0aW9ucy5URVhUKQorICAgICAgICBy
ZXR1cm4gKChyZXN1bHQgaW4gZXhwZWN0ZWRfZmFpbHVyZXMpIG9yCisgICAgICAgICAgICAgICAg
KHJlc3VsdCBpbiAodGVzdF9leHBlY3RhdGlvbnMuSU1BR0UsIHRlc3RfZXhwZWN0YXRpb25zLlRF
WFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuSU1BR0Vf
UExVU19URVhUKSBhbmQKKyAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuRkFJTCBp
biBleHBlY3RlZF9mYWlsdXJlcykgb3IKKyAgICAgICAgICAgICAgICAocmVzdWx0ID09IHRlc3Rf
ZXhwZWN0YXRpb25zLk1JU1NJTkcgYW5kCisgICAgICAgICAgICAgICAgIHNlbGYuaXNfcmViYXNl
bGluaW5nKHRlc3QpKSBvcgorICAgICAgICAgICAgICAgIChyZXN1bHQgPT0gdGVzdF9leHBlY3Rh
dGlvbnMuU0tJUCBhbmQKKyAgICAgICAgICAgICAgICAgc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMu
aGFzX21vZGlmaWVyKHRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKSkpCisKICAgICBkZWYgX2Rp
c3BsYXlfb25lX2xpbmVfcHJvZ3Jlc3Moc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgogICAgICAgICAi
IiJEaXNwbGF5cyB0aGUgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgdGVzdCBydW4uIiIiCiAgICAgICAg
IHNlbGYuX21ldGVyLnVwZGF0ZSgiVGVzdGluZzogJWQgcmFuIGFzIGV4cGVjdGVkLCAlZCBkaWRu
J3QsICVkIGxlZnQiICUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>51978</attachid>
            <date>2010-03-29 16:01:52 -0700</date>
            <delta_ts>2010-03-29 16:54:59 -0700</delta_ts>
            <desc>fix changelog entry, fix typo from review by eseidel.</desc>
            <filename>wk36771_text_only.diff</filename>
            <type>text/plain</type>
            <size>4764</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyYzVhODQ1Li45YWE5ZDRiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTAtMDMt
MjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGxvZ2dpbmcgaW4gbmV3LXJ1bi13
ZWJraXQtdGVzdHMgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgSU1BR0UKKyAgICAgICAgZXhwZWN0
ZWQgZmFpbHVyZXMgYXMgdW5leHBlY3RlZCBwYXNzZXMgd2hlbiB3ZSBydW4gd2l0aCBwaXhlbCB0
ZXN0cworICAgICAgICBkaXNhYmxlZC4KKworICAgICAgICBUaGlzIG1vdmVzIG1hdGNoZXNfYW5f
ZXhwZWN0ZWRfcmVzdWx0KCkgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucyB0bworICAgICAgICBydW5f
d2Via2l0X3Rlc3RzLCBzbyB0aGF0IHRlc3RfZXhwZWN0YXRpb25zIGNhbiBmb2N1cyBvbiBiZWlu
ZyBhCisgICAgICAgIGNvbmZpZyBmaWxlIHBhcnNlciwgYW5kIGJlIGxlc3MgaW5mbHVlbmNlZCBi
eSBydW50aW1lIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NzcxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorCisy
MDEwLTAzLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KIAogICAgICAgICBDaGFuZ2UgbmV3LXJ1bi13
ZWJraXQtdGVzdHMgdG8gbm90IHVzZSBtb3JlIHRoYW4gZm91ciB0aHJlYWRzIGJ5CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDM4
Nzk0Y2QuLmQwZDVmNzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rl
c3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xMjUsMTUgKzEyNSw2IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnM6CiAgICAgZGVmIGdldF90ZXN0c193aXRoX3RpbWVsaW5lKHNlbGYsIHRpbWVsaW5lKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmdldF90ZXN0c193aXRoX3Rp
bWVsaW5lKHRpbWVsaW5lKQogCi0gICAgZGVmIG1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNl
bGYsIHRlc3QsIHJlc3VsdCk6Ci0gICAgICAgICIiIlJldHVybnMgd2hldGhlciB3ZSBnb3Qgb25l
IG9mIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0aGlzIHRlc3QuIiIiCi0gICAgICAgIHJldHVy
biAocmVzdWx0IGluIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmdldF9leHBlY3RhdGlvbnModGVz
dCkgb3IKLSAgICAgICAgICAgICAgICAocmVzdWx0IGluIChJTUFHRSwgVEVYVCwgSU1BR0VfUExV
U19URVhUKSBhbmQKLSAgICAgICAgICAgICAgICBGQUlMIGluIHNlbGYuX2V4cGVjdGVkX2ZhaWx1
cmVzLmdldF9leHBlY3RhdGlvbnModGVzdCkpIG9yCi0gICAgICAgICAgICAgICAgcmVzdWx0ID09
IE1JU1NJTkcgYW5kIHNlbGYuaXNfcmViYXNlbGluaW5nKHRlc3QpIG9yCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ID09IFNLSVAgYW5kIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmhhc19tb2RpZmll
cih0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU0tJUCkpCi0KICAgICBkZWYgaXNfcmViYXNlbGluaW5n
KHNlbGYsIHRlc3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMuaGFz
X21vZGlmaWVyKHRlc3QsIFJFQkFTRUxJTkUpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Cmlu
ZGV4IGZiMjg5NmUuLjJhYWJjYmMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNjk4
LDggKzY5OCw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAg
ICAgICAgICAgKHRlc3QsIGZhaWxfbGlzdCkgPSBzZWxmLl9yZXN1bHRfcXVldWUuZ2V0X25vd2Fp
dCgpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVzdF9mYWlsdXJlcy5kZXRlcm1pbmVfcmVz
dWx0X3R5cGUoZmFpbF9saXN0KQotICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fZXhw
ZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0KQorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fbWF0Y2hlc19hbl9leHBl
Y3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0KQogICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5
LmFkZCh0ZXN0LCBmYWlsX2xpc3QsIHJlc3VsdCwgZXhwZWN0ZWQpCiAgICAgICAgICAgICAgICAg
aWYgKExPR19ERVRBSUxFRF9QUk9HUkVTUyBpbiBzZWxmLl9vcHRpb25zLmxvZyBhbmQKICAgICAg
ICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVs
IG9yCkBAIC03MTIsNiArNzExLDI3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICBl
eGNlcHQgUXVldWUuRW1wdHk6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKKyAgICBkZWYgX21h
dGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgICAgICIi
IlJldHVybnMgd2hldGhlciB3ZSBnb3Qgb25lIG9mIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0
aGlzIHRlc3QuIiIiCisgICAgICAgIGV4cGVjdGVkX2ZhaWx1cmVzID0gc2VsZi5fZXhwZWN0YXRp
b25zLmdldF9leHBlY3RhdGlvbnModGVzdCkKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ub19w
aXhlbF90ZXN0czoKKyAgICAgICAgICAgIGV4cGVjdGVkX2ZhaWx1cmVzID0gZXhwZWN0ZWRfZmFp
bHVyZXMuY29weSgpCisgICAgICAgICAgICBpZiB0ZXN0X2V4cGVjdGF0aW9ucy5JTUFHRSBpbiBl
eHBlY3RlZF9mYWlsdXJlczoKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5yZW1v
dmUodGVzdF9leHBlY3RhdGlvbnMuSU1BR0UpCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmFp
bHVyZXMuYWRkKHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpCisgICAgICAgICAgICBpZiB0ZXN0X2V4
cGVjdGF0aW9ucy5JTUFHRV9QTFVTX1RFWFQgaW4gZXhwZWN0ZWRfZmFpbHVyZXM6CisgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfZmFpbHVyZXMucmVtb3ZlKHRlc3RfZXhwZWN0YXRpb25zLklNQUdF
X1BMVVNfVEVYVCkKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5hZGQodGVzdF9l
eHBlY3RhdGlvbnMuVEVYVCkKKyAgICAgICAgcmV0dXJuICgocmVzdWx0IGluIGV4cGVjdGVkX2Zh
aWx1cmVzKSBvcgorICAgICAgICAgICAgICAgIChyZXN1bHQgaW4gKHRlc3RfZXhwZWN0YXRpb25z
LklNQUdFLCB0ZXN0X2V4cGVjdGF0aW9ucy5URVhULAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFX1BMVVNfVEVYVCkgYW5kCisgICAgICAgICAgICAg
ICAgIHRlc3RfZXhwZWN0YXRpb25zLkZBSUwgaW4gZXhwZWN0ZWRfZmFpbHVyZXMpIG9yCisgICAg
ICAgICAgICAgICAgKHJlc3VsdCA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5NSVNTSU5HIGFuZAorICAg
ICAgICAgICAgICAgICBzZWxmLmlzX3JlYmFzZWxpbmluZyh0ZXN0KSkgb3IKKyAgICAgICAgICAg
ICAgICAocmVzdWx0ID09IHRlc3RfZXhwZWN0YXRpb25zLlNLSVAgYW5kCisgICAgICAgICAgICAg
ICAgIHNlbGYuX2V4cGVjdGF0aW9ucy5oYXNfbW9kaWZpZXIodGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQ
KSkpCisKICAgICBkZWYgX2Rpc3BsYXlfb25lX2xpbmVfcHJvZ3Jlc3Moc2VsZiwgcmVzdWx0X3N1
bW1hcnkpOgogICAgICAgICAiIiJEaXNwbGF5cyB0aGUgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgdGVz
dCBydW4uIiIiCiAgICAgICAgIHNlbGYuX21ldGVyLnVwZGF0ZSgiVGVzdGluZzogJWQgcmFuIGFz
IGV4cGVjdGVkLCAlZCBkaWRuJ3QsICVkIGxlZnQiICUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51983</attachid>
            <date>2010-03-29 16:54:59 -0700</date>
            <delta_ts>2010-03-29 19:34:53 -0700</delta_ts>
            <desc>update w/ feedback from eseidel</desc>
            <filename>wk36771_text_only.diff</filename>
            <type>text/plain</type>
            <size>4802</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyYzVhODQ1Li45YWE5ZDRiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTAtMDMt
MjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGxvZ2dpbmcgaW4gbmV3LXJ1bi13
ZWJraXQtdGVzdHMgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgSU1BR0UKKyAgICAgICAgZXhwZWN0
ZWQgZmFpbHVyZXMgYXMgdW5leHBlY3RlZCBwYXNzZXMgd2hlbiB3ZSBydW4gd2l0aCBwaXhlbCB0
ZXN0cworICAgICAgICBkaXNhYmxlZC4KKworICAgICAgICBUaGlzIG1vdmVzIG1hdGNoZXNfYW5f
ZXhwZWN0ZWRfcmVzdWx0KCkgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucyB0bworICAgICAgICBydW5f
d2Via2l0X3Rlc3RzLCBzbyB0aGF0IHRlc3RfZXhwZWN0YXRpb25zIGNhbiBmb2N1cyBvbiBiZWlu
ZyBhCisgICAgICAgIGNvbmZpZyBmaWxlIHBhcnNlciwgYW5kIGJlIGxlc3MgaW5mbHVlbmNlZCBi
eSBydW50aW1lIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NzcxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorCisy
MDEwLTAzLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KIAogICAgICAgICBDaGFuZ2UgbmV3LXJ1bi13
ZWJraXQtdGVzdHMgdG8gbm90IHVzZSBtb3JlIHRoYW4gZm91ciB0aHJlYWRzIGJ5CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDM4
Nzk0Y2QuLmQwZDVmNzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rl
c3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xMjUsMTUgKzEyNSw2IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnM6CiAgICAgZGVmIGdldF90ZXN0c193aXRoX3RpbWVsaW5lKHNlbGYsIHRpbWVsaW5lKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmdldF90ZXN0c193aXRoX3Rp
bWVsaW5lKHRpbWVsaW5lKQogCi0gICAgZGVmIG1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNl
bGYsIHRlc3QsIHJlc3VsdCk6Ci0gICAgICAgICIiIlJldHVybnMgd2hldGhlciB3ZSBnb3Qgb25l
IG9mIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0aGlzIHRlc3QuIiIiCi0gICAgICAgIHJldHVy
biAocmVzdWx0IGluIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmdldF9leHBlY3RhdGlvbnModGVz
dCkgb3IKLSAgICAgICAgICAgICAgICAocmVzdWx0IGluIChJTUFHRSwgVEVYVCwgSU1BR0VfUExV
U19URVhUKSBhbmQKLSAgICAgICAgICAgICAgICBGQUlMIGluIHNlbGYuX2V4cGVjdGVkX2ZhaWx1
cmVzLmdldF9leHBlY3RhdGlvbnModGVzdCkpIG9yCi0gICAgICAgICAgICAgICAgcmVzdWx0ID09
IE1JU1NJTkcgYW5kIHNlbGYuaXNfcmViYXNlbGluaW5nKHRlc3QpIG9yCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ID09IFNLSVAgYW5kIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmhhc19tb2RpZmll
cih0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU0tJUCkpCi0KICAgICBkZWYgaXNfcmViYXNlbGluaW5n
KHNlbGYsIHRlc3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMuaGFz
X21vZGlmaWVyKHRlc3QsIFJFQkFTRUxJTkUpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Cmlu
ZGV4IGZiMjg5NmUuLjRjZWFjODYgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNjk4
LDggKzY5OCw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAg
ICAgICAgICAgKHRlc3QsIGZhaWxfbGlzdCkgPSBzZWxmLl9yZXN1bHRfcXVldWUuZ2V0X25vd2Fp
dCgpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVzdF9mYWlsdXJlcy5kZXRlcm1pbmVfcmVz
dWx0X3R5cGUoZmFpbF9saXN0KQotICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fZXhw
ZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0KQorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fbWF0Y2hlc19hbl9leHBl
Y3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0KQogICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5
LmFkZCh0ZXN0LCBmYWlsX2xpc3QsIHJlc3VsdCwgZXhwZWN0ZWQpCiAgICAgICAgICAgICAgICAg
aWYgKExPR19ERVRBSUxFRF9QUk9HUkVTUyBpbiBzZWxmLl9vcHRpb25zLmxvZyBhbmQKICAgICAg
ICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVs
IG9yCkBAIC03MTIsNiArNzExLDMxIEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICBl
eGNlcHQgUXVldWUuRW1wdHk6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKKyAgICBkZWYgX21h
dGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgICAgICIi
IlJldHVybnMgd2hldGhlciB3ZSBnb3Qgb25lIG9mIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0
aGlzIHRlc3QuIiIiCisgICAgICAgIGV4cGVjdGVkX2ZhaWx1cmVzID0gc2VsZi5fZXhwZWN0YXRp
b25zLmdldF9leHBlY3RhdGlvbnModGVzdCkKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ub19w
aXhlbF90ZXN0czoKKyAgICAgICAgICAgIGV4cGVjdGVkX2ZhaWx1cmVzID0gZXhwZWN0ZWRfZmFp
bHVyZXMuY29weSgpCisgICAgICAgICAgICBpZiB0ZXN0X2V4cGVjdGF0aW9ucy5JTUFHRSBpbiBl
eHBlY3RlZF9mYWlsdXJlczoKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5yZW1v
dmUodGVzdF9leHBlY3RhdGlvbnMuSU1BR0UpCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmFp
bHVyZXMuYWRkKHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpCisgICAgICAgICAgICBpZiB0ZXN0X2V4
cGVjdGF0aW9ucy5JTUFHRV9QTFVTX1RFWFQgaW4gZXhwZWN0ZWRfZmFpbHVyZXM6CisgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfZmFpbHVyZXMucmVtb3ZlKHRlc3RfZXhwZWN0YXRpb25zLklNQUdF
X1BMVVNfVEVYVCkKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9mYWlsdXJlcy5hZGQodGVzdF9l
eHBlY3RhdGlvbnMuVEVYVCkKKyAgICAgICAgaWYgcmVzdWx0IGluIGV4cGVjdGVkX2ZhaWx1cmVz
OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgKHJlc3VsdCBpbiAodGVzdF9l
eHBlY3RhdGlvbnMuSU1BR0UsIHRlc3RfZXhwZWN0YXRpb25zLlRFWFQsCisgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFX1BMVVNfVEVYVCkgYW5kCisgICAgICAg
ICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMIGluIGV4cGVjdGVkX2ZhaWx1cmVzKToKKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIChyZXN1bHQgPT0gdGVzdF9leHBlY3RhdGlv
bnMuTUlTU0lORyBhbmQKKyAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucy5pc19yZWJhc2Vs
aW5pbmcodGVzdCkpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgKHJlc3Vs
dCA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQIGFuZAorICAgICAgICAgICAgc2VsZi5fZXhwZWN0
YXRpb25zLmhhc19tb2RpZmllcih0ZXN0LCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKSk6CisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgIGRlZiBfZGlz
cGxheV9vbmVfbGluZV9wcm9ncmVzcyhzZWxmLCByZXN1bHRfc3VtbWFyeSk6CiAgICAgICAgICIi
IkRpc3BsYXlzIHRoZSBwcm9ncmVzcyB0aHJvdWdoIHRoZSB0ZXN0IHJ1bi4iIiIKICAgICAgICAg
c2VsZi5fbWV0ZXIudXBkYXRlKCJUZXN0aW5nOiAlZCByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4n
dCwgJWQgbGVmdCIgJQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51996</attachid>
            <date>2010-03-29 19:34:53 -0700</date>
            <delta_ts>2010-03-31 12:48:41 -0700</delta_ts>
            <desc>update after more feedback from eseidel</desc>
            <filename>wk36771_text_only.diff</filename>
            <type>text/plain</type>
            <size>10635</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyYzVhODQ1Li4xMTEzNmJjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTAtMDMt
MjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGxvZ2dpbmcgaW4gbmV3LXJ1bi13
ZWJraXQtdGVzdHMgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgSU1BR0UKKyAgICAgICAgZXhwZWN0
ZWQgZmFpbHVyZXMgYXMgdW5leHBlY3RlZCBwYXNzZXMgd2hlbiB3ZSBydW4gd2l0aCBwaXhlbCB0
ZXN0cworICAgICAgICBkaXNhYmxlZC4KKworICAgICAgICBUaGlzIGNoYW5nZSBzcGxpdHMgc29t
ZSBvZiB0aGUgbG9naWMgZW1iZWRkZWQgaW50byB0aGUgVGVzdEV4cGVjdGF0aW9ucworICAgICAg
ICBjbGFzc2VzIG91dCBpbnRvIHNlcGFyYXRlIHB1cmUgZnVuY3Rpb25zIChyZXN1bHRfd2FzX2V4
cGVjdGVkLAorICAgICAgICByZW1vdmVfaW1hZ2VfZmFpbHVyZXMpIHRvIG1ha2UgdGhlbSBlYXNp
ZXIgdG8gdGVzdC4gVGhpcyBhbHNvIGFkZHMKKyAgICAgICAgYSBwYXJhbWV0ZXIgdG8gbWF0Y2hl
c19hbl9leHBlY3RlZF9yZXN1bHQoKSB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yCisgICAgICAgIG5v
dCBwaXhlbCB0ZXN0IHJlc3VsdHMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBleHBlY3RhdGlv
bnMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2
NzcxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc190ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6
CisKKzIwMTAtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgogCiAgICAgICAgIENoYW5nZSBuZXct
cnVuLXdlYmtpdC10ZXN0cyB0byBub3QgdXNlIG1vcmUgdGhhbiBmb3VyIHRocmVhZHMgYnkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5k
ZXggMzg3OTRjZC4uMGNmNTVhMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTQ4LDYgKzQ4LDM4IEBAIF9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlLiIKICMgVGVz
dCBleHBlY3RhdGlvbiBmaWxlIHVwZGF0ZSBhY3Rpb24gY29uc3RhbnRzCiAoTk9fQ0hBTkdFLCBS
RU1PVkVfVEVTVCwgUkVNT1ZFX1BMQVRGT1JNLCBBRERfUExBVEZPUk1TX0VYQ0VQVF9USElTKSA9
IHJhbmdlKDQpCiAKK2RlZiByZXN1bHRfd2FzX2V4cGVjdGVkKHJlc3VsdCwgZXhwZWN0ZWRfcmVz
dWx0cywgdGVzdF9uZWVkc19yZWJhc2VsaW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X2lzX3NraXBwZWQpOgorICAgICIiIlJldHVybnMgd2hldGhlciB3ZSBnb3QgYSByZXN1bHQg
d2Ugd2VyZSBleHBlY3RpbmcuCisgICAgQXJnczoKKyAgICAgICAgcmVzdWx0OiBhY3R1YWwgcmVz
dWx0IG9mIGEgdGVzdCBleGVjdXRpb24KKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0czogc2V0IG9m
IHJlc3VsdHMgbGlzdGVkIGluIHRlc3RfZXhwZWN0YXRpb25zCisgICAgICAgIHRlc3RfbmVlZHNf
cmViYXNlbGluaW5nOiB3aGV0aGVyIHRlc3Qgd2FzIG1hcmtlZCBhcyBSRUJBU0VMSU5FCisgICAg
ICAgIHRlc3RfaXNfc2tpcHBlZDogd2hldGhlciB0ZXN0IHdhcyBtYXJrZWQgYXMgU0tJUCIiIgor
ICAgIGlmIHJlc3VsdCBpbiBleHBlY3RlZF9yZXN1bHRzOgorICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgIGlmIHJlc3VsdCBpbiAoSU1BR0UsIFRFWFQsIElNQUdFX1BMVVNfVEVYVCkgYW5kIEZBSUwg
aW4gZXhwZWN0ZWRfcmVzdWx0czoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBpZiByZXN1bHQg
PT0gTUlTU0lORyBhbmQgdGVzdF9uZWVkc19yZWJhc2VsaW5pbmc6CisgICAgICAgcmV0dXJuIFRy
dWUKKyAgICBpZiByZXN1bHQgPT0gU0tJUCBhbmQgdGVzdF9pc19za2lwcGVkOgorICAgICAgIHJl
dHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKK2RlZiByZW1vdmVfcGl4ZWxfZmFpbHVyZXMo
ZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgIiIiUmV0dXJucyBhIGNvcHkgb2YgdGhlIGV4cGVjdGVk
IHJlc3VsdHMgZm9yIGEgdGVzdCwgZXhjZXB0IHRoYXQgd2UKKyAgICBkcm9wIGFueSBwaXhlbCBm
YWlsdXJlcyBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgZXhwZWN0YXRpb25zLiBGb3IgZXhhbXBs
ZSwKKyAgICBpZiB3ZSdyZSBub3QgcnVubmluZyBwaXhlbCB0ZXN0cywgdGhlbiB0ZXN0cyBleHBl
Y3RlZCB0byBmYWlsIGFzIElNQUdFCisgICAgd2lsbCBQQVNTLiIiIgorICAgIGV4cGVjdGVkX3Jl
c3VsdHMgPSBleHBlY3RlZF9yZXN1bHRzLmNvcHkoKQorICAgIGlmIElNQUdFIGluIGV4cGVjdGVk
X3Jlc3VsdHM6CisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMucmVtb3ZlKElNQUdFKQorICAgICAg
ICBleHBlY3RlZF9yZXN1bHRzLmFkZChQQVNTKQorICAgIGlmIElNQUdFX1BMVVNfVEVYVCBpbiBl
eHBlY3RlZF9yZXN1bHRzOgorICAgICAgICBleHBlY3RlZF9yZXN1bHRzLnJlbW92ZShJTUFHRV9Q
TFVTX1RFWFQpCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMuYWRkKFRFWFQpCisgICAgcmV0dXJu
IGV4cGVjdGVkX3Jlc3VsdHMKKwogCiBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgIFRFU1Rf
TElTVCA9ICJ0ZXN0X2V4cGVjdGF0aW9ucy50eHQiCkBAIC0xMjUsMTQgKzE1NywxNCBAQCBjbGFz
cyBUZXN0RXhwZWN0YXRpb25zOgogICAgIGRlZiBnZXRfdGVzdHNfd2l0aF90aW1lbGluZShzZWxm
LCB0aW1lbGluZSk6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5nZXRf
dGVzdHNfd2l0aF90aW1lbGluZSh0aW1lbGluZSkKIAotICAgIGRlZiBtYXRjaGVzX2FuX2V4cGVj
dGVkX3Jlc3VsdChzZWxmLCB0ZXN0LCByZXN1bHQpOgotICAgICAgICAiIiJSZXR1cm5zIHdoZXRo
ZXIgd2UgZ290IG9uZSBvZiB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhpcyB0ZXN0LiIiIgot
ICAgICAgICByZXR1cm4gKHJlc3VsdCBpbiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5nZXRfZXhw
ZWN0YXRpb25zKHRlc3QpIG9yCi0gICAgICAgICAgICAgICAgKHJlc3VsdCBpbiAoSU1BR0UsIFRF
WFQsIElNQUdFX1BMVVNfVEVYVCkgYW5kCi0gICAgICAgICAgICAgICAgRkFJTCBpbiBzZWxmLl9l
eHBlY3RlZF9mYWlsdXJlcy5nZXRfZXhwZWN0YXRpb25zKHRlc3QpKSBvcgotICAgICAgICAgICAg
ICAgIHJlc3VsdCA9PSBNSVNTSU5HIGFuZCBzZWxmLmlzX3JlYmFzZWxpbmluZyh0ZXN0KSBvcgot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9PSBTS0lQIGFuZCBzZWxmLl9leHBlY3RlZF9mYWlsdXJl
cy5oYXNfbW9kaWZpZXIodGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNLSVApKQorICAgIGRlZiBtYXRj
aGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0ZXN0LCByZXN1bHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBpeGVsX3Rlc3RzX2FyZV9kaXNhYmxlZCk6CisgICAgICAg
IGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5nZXRfZXhwZWN0YXRp
b25zKHRlc3QpCisgICAgICAgIGlmIHBpeGVsX3Rlc3RzX2FyZV9kaXNhYmxlZDoKKyAgICAgICAg
ICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSByZW1vdmVfcGl4ZWxfZmFpbHVyZXMoZXhwZWN0ZWRfcmVz
dWx0cykKKyAgICAgICAgdGVzdF9pc19za2lwcGVkID0gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMu
aGFzX21vZGlmaWVyKHRlc3QsIFNLSVApCisgICAgICAgIHJldHVybiByZXN1bHRfd2FzX2V4cGVj
dGVkKHJlc3VsdCwgZXhwZWN0ZWRfcmVzdWx0cywKKyAgICAgICAgICAgIHNlbGYuaXNfcmViYXNl
bGluaW5nKHRlc3QpLCBzZWxmLmhhc19tb2RpZmllcih0ZXN0LCBTS0lQKSkKIAogICAgIGRlZiBp
c19yZWJhc2VsaW5pbmcoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3Rl
ZF9mYWlsdXJlcy5oYXNfbW9kaWZpZXIodGVzdCwgUkVCQVNFTElORSkKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rl
c3RfZXhwZWN0YXRpb25zX3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc190ZXN0LnB5CmluZGV4
IGY0NWE0YzYuLjA3Y2VhOTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3Rlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdGVzdC5weQpAQCAtNDQsNiArNDQsNDkgQEAgc3lzLnBh
dGguYXBwZW5kKG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oZCwgJy4uLy4uL3RoaXJkcGFy
dHknKSkpCiBpbXBvcnQgcG9ydAogZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucyBpbXBvcnQgKgogCitj
bGFzcyBGdW5jdGlvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1
bHRfd2FzX2V4cGVjdGVkKHNlbGYpOgorICAgICAgICAjIHRlc3QgYmFzaWNzCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHJlc3VsdF93YXNfZXhwZWN0ZWQoUEFTUywgc2V0KFtQQVNTXSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIEZhbHNl
KSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0X3dhc19leHBlY3RlZChU
RVhULCBzZXQoW1BBU1NdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGYWxzZSwgRmFsc2UpLCBGYWxzZSkKKworICAgICAgICAjIHRlc3QgaGFuZGxpbmcg
b2YgRkFJTCBleHBlY3RhdGlvbnMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0X3dh
c19leHBlY3RlZChJTUFHRV9QTFVTX1RFWFQsIHNldChbRkFJTF0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLCBGYWxzZSksIFRydWUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdF93YXNfZXhwZWN0ZWQoSU1BR0UsIHNldChbRkFJ
TF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNl
LCBGYWxzZSksIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdF93YXNfZXhw
ZWN0ZWQoVEVYVCwgc2V0KFtGQUlMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmFsc2UsIEZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMocmVzdWx0X3dhc19leHBlY3RlZChDUkFTSCwgc2V0KFtGQUlMXSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIEZhbHNlKSwgRmFsc2Up
CisKKyAgICAgICAgIyB0ZXN0IGhhbmRsaW5nIG9mIFNLSVBwZWQgdGVzdHMgYW5kIHJlc3VsdHMK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0X3dhc19leHBlY3RlZChTS0lQLCBzZXQo
W0NSQVNIXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmFsc2UsIFRydWUpLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRfd2Fz
X2V4cGVjdGVkKFNLSVAsIHNldChbQ1JBU0hdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGYWxzZSwgRmFsc2UpLCBGYWxzZSkKKworICAgICAgICAjIHRl
c3QgaGFuZGxpbmcgb2YgTUlTU0lORyByZXN1bHRzIGFuZCB0aGUgUkVCQVNFTElORSBtb2RpZmll
cgorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRfd2FzX2V4cGVjdGVkKE1JU1NJTkcs
IHNldChbUEFTU10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRydWUsIEZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0
X3dhc19leHBlY3RlZChNSVNTSU5HLCBzZXQoW1BBU1NdKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwgRmFsc2UpLCBGYWxzZSkKKyAKKyAgICBk
ZWYgdGVzdF9yZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHJlbW92ZV9waXhlbF9mYWlsdXJlcyhzZXQoW1RFWFRdKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldChbVEVYVF0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZW1v
dmVfcGl4ZWxfZmFpbHVyZXMoc2V0KFtQQVNTXSkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXQoW1BBU1NdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVtb3ZlX3BpeGVsX2Zh
aWx1cmVzKHNldChbSU1BR0VdKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChbUEFT
U10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2V0
KFtJTUFHRV9QTFVTX1RFWFRdKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChbVEVY
VF0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2V0
KFtQQVNTLCBJTUFHRSwgQ1JBU0hdKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChb
UEFTUywgQ1JBU0hdKSkgCisKKwogY2xhc3MgVGVzdEV4cGVjdGF0aW9uc1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RGdW5jLCBzZXRVcD1Ob25l
LCB0ZWFyRG93bj1Ob25lLCBkZXNjcmlwdGlvbj1Ob25lKToKQEAgLTU3LDEyICsxMDAsMTYgQEAg
Y2xhc3MgVGVzdEV4cGVjdGF0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBn
ZXRfYmFzaWNfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5nZXRfdGVzdCgnZmFz
dC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJyksCiAgICAgICAgICAgICAgICAgc2VsZi5nZXRf
dGVzdCgnZmFzdC9odG1sL2hlYWRlci1lbGVtZW50Lmh0bWwnKSwKKyAgICAgICAgICAgICAgICBz
ZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwva2V5Z2VuLmh0bWwnKSwKKyAgICAgICAgICAgICAgICBz
ZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwvdGFiLW9yZGVyLmh0bWwnKSwKICAgICAgICAgICAgICAg
ICBzZWxmLmdldF90ZXN0KCdmYXN0L2V2ZW50cy9zcGFjZS1zY3JvbGwtZXZlbnQuaHRtbCcpLAog
ICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2Zhc3QvZXZlbnRzL3RhYi1pbWFnZW1hcC5o
dG1sJyldCiAKICAgICBkZWYgZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAg
cmV0dXJuICIiIgogQlVHX1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBU
RVhUCitCVUdfVEVTVCBTS0lQIDogZmFzdC9odG1sL2tleWdlbi5odG1sID0gQ1JBU0gKK0JVR19U
RVNUIFJFQkFTRUxJTkUgOiBmYXN0L2h0bWx0YWItb3JkZXIuaHRtbCA9IE1JU1NJTkcKIEJVR19U
RVNUIDogZmFzdC9ldmVudHMgPSBJTUFHRQogIiIiCiAKQEAgLTEwMCw1ICsxNDcsMjkgQEAgQlVH
X1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBJTUFHRSIiIikKIEJVR19P
VkVSUklERSA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IElNQUdFIiIiKQogICAg
ICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgSU1B
R0UpCiAKKyAgICBkZWYgdGVzdF9tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmKToKKyAg
ICAgICAKKyAgICAgICBkZWYgbSh0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKToK
KyAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChz
ZWxmLmdldF90ZXN0KHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbF90ZXN0c19kaXNhYmxlZCkKKyAgICAgICBk
ZWYgdCh0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKToKKyAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG0odGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19kaXNhYmxlZCkpCisKKyAg
ICAgICBkZWYgZih0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKToKKyAgICAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShtKHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZGlzYWJsZWQp
KQorCisgICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkp
CisgICAgICAgdCgnZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgVEVYVCwgRmFsc2Up
CisgICAgICAgdCgnZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgVEVYVCwgVHJ1ZSkK
KyAgICAgICBmKCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBDUkFTSCwgRmFsc2Up
CisgICAgICAgZignZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgQ1JBU0gsIFRydWUp
CisgICAgICAgCisgICAgICAgdCgnZmFzdC9ldmVudHMvdGFiLWltYWdlbWFwLmh0bWwnLCBJTUFH
RSwgRmFsc2UpCisgICAgICAgdCgnZmFzdC9ldmVudHMvdGFiLWltYWdlbWFwLmh0bWwnLCBQQVNT
LCBUcnVlKQorICAgICAgIAorICAgICAgIHQoJ2Zhc3QvaHRtbC9rZXlnZW4uaHRtbCcsIFNLSVAs
IFRydWUpCisgICAgICAgdCgnZmFzdC9odG1sL3RhYi1vcmRlci5odG1sJywgUEFTUywgVHJ1ZSkK
KwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IGZiMjg5NmUuLjI2ODBhNmQgMTAwNzU1Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQpAQCAtNjk4LDggKzY5OCw4IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAg
ICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgKHRlc3QsIGZhaWxfbGlzdCkgPSBzZWxmLl9y
ZXN1bHRfcXVldWUuZ2V0X25vd2FpdCgpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVzdF9m
YWlsdXJlcy5kZXRlcm1pbmVfcmVzdWx0X3R5cGUoZmFpbF9saXN0KQotICAgICAgICAgICAgICAg
IGV4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0
KHRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KQorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0g
c2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsIAorICAg
ICAgICAgICAgICAgICAgICByZXN1bHQsIHNlbGYuX29wdGlvbnMubm9fcGl4ZWxfdGVzdHMpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuYWRkKHRlc3QsIGZhaWxfbGlzdCwgcmVzdWx0
LCBleHBlY3RlZCkKICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFVEFJTEVEX1BST0dSRVNTIGlu
IHNlbGYuX29wdGlvbnMubG9nIGFuZAogICAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9u
cy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwgb3IK
</data>
<flag name="review"
          id="35381"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>