<?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>53840</bug_id>
          
          <creation_ts>2011-02-04 20:22:31 -0800</creation_ts>
          <short_desc>nrwt multiprocessing: conclude refactoring of dump_render_tree_thread and single_test_runner</short_desc>
          <delta_ts>2011-02-08 22:18:50 -0800</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>Other</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>eric</cc>
    
    <cc>hayato</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>346040</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-04 20:22:31 -0800</bug_when>
    <thetext>nrwt multiprocessing: conclude refactoring of dump_render_tree_thread and single_test_runner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346041</commentid>
    <comment_count>1</comment_count>
      <attachid>81342</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-04 20:23:53 -0800</bug_when>
    <thetext>Created attachment 81342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346401</commentid>
    <comment_count>2</comment_count>
      <attachid>81342</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-02-06 16:29:39 -0800</bug_when>
    <thetext>Comment on attachment 81342
Patch

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

&gt; Tools/ChangeLog:23
&gt; +        new-run-webkit-tests: move remaining common logic out of
&gt; +        dump_render_tree_thread into single_test_runner so that we can
&gt; +        reuse it in the new multiprocessing worker class as well.
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=53840
&gt; +
&gt; +        * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
&gt; +        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
&gt; + 
&gt; +2011-01-10  Dirk Pranke  &lt;dpranke@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        new-run-webkit-tests: refactor common logic out of
&gt; +        dump_render_tree_thread into single_test_runner so that we can
&gt; +        reuse it in the new multiprocessing worker class as well.
&gt; +
&gt; +        * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
&gt; +        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:

duplicate entry

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:205
&gt; +                    self._http_lock_wait_begin = time.time()

Should you move http_lock_wait_* as well? Seems like it would make sense to keep it with the logic that starts/stops the server.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346710</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 12:15:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 81342 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81342&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:23
&gt; &gt; +        new-run-webkit-tests: move remaining common logic out of
&gt; &gt; +        dump_render_tree_thread into single_test_runner so that we can
&gt; &gt; +        reuse it in the new multiprocessing worker class as well.
&gt; &gt; +
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=53840
&gt; &gt; +
&gt; &gt; +        * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
&gt; &gt; +        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
&gt; &gt; + 
&gt; &gt; +2011-01-10  Dirk Pranke  &lt;dpranke@chromium.org&gt;
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        new-run-webkit-tests: refactor common logic out of
&gt; &gt; +        dump_render_tree_thread into single_test_runner so that we can
&gt; &gt; +        reuse it in the new multiprocessing worker class as well.
&gt; &gt; +
&gt; &gt; +        * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
&gt; &gt; +        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
&gt; 
&gt; duplicate entry
&gt; 

Will fix.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:205
&gt; &gt; +                    self._http_lock_wait_begin = time.time()
&gt; 
&gt; Should you move http_lock_wait_* as well? Seems like it would make sense to keep it with the logic that starts/stops the server.

Good question. I think the answer is no. The reason is non-obvious. the TestRunner thread reads the nextTimeout() value from the TestShellThread, and that timeout value includes the time being spent acquiring the lock (which could take an unbounded amount of time if some other NRWT is currently holding the lock). In order to account for this, the TestShellThread needs to offset the nextTimeout by both the being and end values. Which means both variables need to be exposed to TestShellThread.

On the other hand, the Worker code triggers timeouts differently, and doesn&apos;t need to account for the time spent getting the lock at all. So, it doesn&apos;t need timing code and hence if the code was pushed into single_test_runner it would go unused. 

So, only one caller needs the code, and the code is most easily expressed as before/after logic anyway =&gt; code stays in TestShellThread.

Make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347136</commentid>
    <comment_count>4</comment_count>
      <attachid>81591</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 23:06:09 -0800</bug_when>
    <thetext>Created attachment 81591
fix baseline for merge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347150</commentid>
    <comment_count>5</comment_count>
      <attachid>81597</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 23:23:06 -0800</bug_when>
    <thetext>Created attachment 81597
fix baseline for merge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347153</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 23:25:28 -0800</bug_when>
    <thetext>Okay, I think the bad baseline for the merge made this patch more confusing than it needed to be. I&apos;ve redone it, and it should be clearer. The one main change - in TestShellThread._run(), most of the code gets wrapped in a try...finally block to make sure we stop the servers and release the file lock if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347815</commentid>
    <comment_count>7</comment_count>
      <attachid>81597</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-02-08 16:58:15 -0800</bug_when>
    <thetext>Comment on attachment 81597
fix baseline for merge

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

Aside from the huge try/finally, seems fine.

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:193
&gt; +        try:
&gt; +            while True:
&gt; +                if self._canceled:
&gt; +                    _log.debug(&apos;Testing cancelled&apos;)

Having a huge try/finally block is hard to follow.  I would prefer splitting the code into a separate function and having the try/finally be around just the function call (still hard to follow, but makes the whitespace/indention easier to see).

Alternately, the try/finally part doesn&apos;t seem related to the refactoring.  Maybe it should be in a separate patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347822</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 17:06:26 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 81597 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81597&amp;action=review
&gt; 
&gt; Aside from the huge try/finally, seems fine.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:193
&gt; &gt; +        try:
&gt; &gt; +            while True:
&gt; &gt; +                if self._canceled:
&gt; &gt; +                    _log.debug(&apos;Testing cancelled&apos;)
&gt; 
&gt; Having a huge try/finally block is hard to follow.  I would prefer splitting the code into a separate function and having the try/finally be around just the function call (still hard to follow, but makes the whitespace/indention easier to see).
&gt; 
&gt; Alternately, the try/finally part doesn&apos;t seem related to the refactoring.  Maybe it should be in a separate patch?

Ok, I&apos;ll defer that to a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347824</commentid>
    <comment_count>9</comment_count>
      <attachid>81719</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 17:08:03 -0800</bug_when>
    <thetext>Created attachment 81719
remove giant try/finally</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347825</commentid>
    <comment_count>10</comment_count>
      <attachid>81720</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 17:10:31 -0800</bug_when>
    <thetext>Created attachment 81720
remove giant try/finally, take two</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347829</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 17:17:16 -0800</bug_when>
    <thetext>Committed r77998: &lt;http://trac.webkit.org/changeset/77998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347926</commentid>
    <comment_count>12</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-02-08 20:37:50 -0800</bug_when>
    <thetext>I am sorry that I should have mentioned my intention of introducing single_test_runner.
My intention of introducing single_test_runner module is that the module should not include any code related with thread management. I&apos;d like to separate concerns.

I meant that client of this module should only use single_test_runner.run_test() function. Any thread management should be done in caller side of this function, dump_render_tree. I meant that SingleTestRunner class is only used internally in this module and don&apos;t have to take care of state of driver. This module&apos;s only responsibility is to provide single_test_runner.run_test() function, which is used as if &apos;stateless&apos; function, and should not have any side effect, except for writing test result to result directory.

The patch itself is okay for me. Let me continue thinking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347987</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 22:16:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; I am sorry that I should have mentioned my intention of introducing single_test_runner.
&gt; My intention of introducing single_test_runner module is that the module should not include any code related with thread management. I&apos;d like to separate concerns.
&gt; 
&gt; I meant that client of this module should only use single_test_runner.run_test() function. Any thread management should be done in caller side of this function, dump_render_tree. I meant that SingleTestRunner class is only used internally in this module and don&apos;t have to take care of state of driver. This module&apos;s only responsibility is to provide single_test_runner.run_test() function, which is used as if &apos;stateless&apos; function, and should not have any side effect, except for writing test result to result directory.
&gt; 
&gt; The patch itself is okay for me. Let me continue thinking.

Hi Ito-san,

I think your intended design is good. At the moment I&apos;m stuck in mid-merge and trying to reduce the amount of code duplicated between classes, and so I stuffed some of the logic into SingleTestRunner that shouldn&apos;t necessarily have been there. I think I need to create a separate base class / mixin for both TestShellThread and the Worker class. I&apos;ll add that in an upcoming patch, so hopefully my abuse of your design won&apos;t last long :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347989</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 22:18:50 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Hi Ito-san,
&gt; 
&gt; I think your intended design is good. At the moment I&apos;m stuck in mid-merge and trying to reduce the amount of code duplicated between classes, and so I stuffed some of the logic into SingleTestRunner that shouldn&apos;t necessarily have been there. I think I need to create a separate base class / mixin for both TestShellThread and the Worker class. I&apos;ll add that in an upcoming patch, so hopefully my abuse of your design won&apos;t last long :)

Whoops, hit reply too soon. I should have mentioned that I&apos;m not sure that I necessarily agree with single_test_runner needing to be a only have a single function, however, or that the driver should be passed to it. Why is that better than having the SingleTestRunner create and own the driver?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81342</attachid>
            <date>2011-02-04 20:23:53 -0800</date>
            <delta_ts>2011-02-07 23:06:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53840-20110204202352.patch</filename>
            <type>text/plain</type>
            <size>12620</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjZm
ZDFiYmIxZmE0ZWY2NjQ5YTc1MTM0YzE0ZTQzYzY2NDc2NGM3Li5hNTQ4ZjdkNTUyYmQ4ZDBlYzM0
ZGY1OGZmZGE2YWZkZTllMDlhMTk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzEgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogbW92ZSByZW1h
aW5pbmcgY29tbW9uIGxvZ2ljIG91dCBvZgorICAgICAgICBkdW1wX3JlbmRlcl90cmVlX3RocmVh
ZCBpbnRvIHNpbmdsZV90ZXN0X3J1bm5lciBzbyB0aGF0IHdlIGNhbgorICAgICAgICByZXVzZSBp
dCBpbiB0aGUgbmV3IG11bHRpcHJvY2Vzc2luZyB3b3JrZXIgY2xhc3MgYXMgd2VsbC4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM4NDAKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBf
cmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weToKKyAKKzIwMTEtMDEt
MTAgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IHJl
ZmFjdG9yIGNvbW1vbiBsb2dpYyBvdXQgb2YKKyAgICAgICAgZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQgaW50byBzaW5nbGVfdGVzdF9ydW5uZXIgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgcmV1c2Ug
aXQgaW4gdGhlIG5ldyBtdWx0aXByb2Nlc3Npbmcgd29ya2VyIGNsYXNzIGFzIHdlbGwuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1w
X3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHk6CisKKyAgICAgICAg
CisyMDExLTAyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIG5ldy1ydW4td2Via2l0
LXRlc3RzOiBtb3ZlIGEgYnVuY2ggb2YgdGVzdGluZyBsb2dpYyBvdXQgb2YKICAgICAgICAgZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQgYW5kIGludG8gc2luZ2xlX3Rlc3RfcnVubmVyIHNvIHRoYXQg
d2UKICAgICAgICAgd2lsbCBiZSBhYmxlIHRvIHJldXNlIGl0IGluIHRoZSBuZXcgbXVsdGlwcm9j
ZXNzaW5nIHdvcmtlciBjbGFzcyBhcyB3ZWxsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCA0MDY2ODcxOTI2MWRjMjYwMDRhMTBl
OTZhMjRmZjNlOGQxNWE5OTEzLi42OWQzMDY1N2Y3MGNkMWJiYTA2YTgzZWM3ZDQ2MTVkNmU3YmJk
NzAyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3Ro
cmVhZC5weQpAQCAtNzAsMjQgKzcwLDE1IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZCh0aHJlYWRp
bmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5fbmFtZSA9IHdvcmtlcl9uYW1lCiAgICAgICAgIHNl
bGYuX2ZpbGVuYW1lX2xpc3RfcXVldWUgPSBmaWxlbmFtZV9saXN0X3F1ZXVlCiAgICAgICAgIHNl
bGYuX3Jlc3VsdF9xdWV1ZSA9IHJlc3VsdF9xdWV1ZQotICAgICAgICBzZWxmLl9jdXJyZW50X2dy
b3VwID0gTm9uZQogICAgICAgICBzZWxmLl9maWxlbmFtZV9saXN0ID0gW10KLSAgICAgICAgc2Vs
Zi5fc2luZ2xlX3Rlc3RfcnVubmVyID0gTm9uZQogICAgICAgICBzZWxmLl90ZXN0X2dyb3VwX3Rp
bWluZ19zdGF0cyA9IHt9CiAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IFtdCiAgICAgICAg
IHNlbGYuX251bV90ZXN0cyA9IDAKICAgICAgICAgc2VsZi5fc3RhcnRfdGltZSA9IDAKICAgICAg
ICAgc2VsZi5fc3RvcF90aW1lID0gMAotICAgICAgICBzZWxmLl9oYXZlX2h0dHBfbG9jayA9IEZh
bHNlCiAgICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2JlZ2luID0gMAogICAgICAgICBzZWxm
Ll9odHRwX2xvY2tfd2FpdF9lbmQgPSAwCiAKLSAgICBkZWYgY2xlYW51cChzZWxmKToKLSAgICAg
ICAgaWYgc2VsZi5fc2luZ2xlX3Rlc3RfcnVubmVyOgotICAgICAgICAgICAgc2VsZi5fc2luZ2xl
X3Rlc3RfcnVubmVyLmNsZWFudXAoKQotICAgICAgICBpZiBzZWxmLl9oYXZlX2h0dHBfbG9jazoK
LSAgICAgICAgICAgIHNlbGYuX3N0b3Bfc2VydmVyc193aXRoX2xvY2soKQotCiAgICAgICAgICMg
Q3VycmVudCBncm91cCBvZiB0ZXN0cyB3ZSdyZSBydW5uaW5nLgogICAgICAgICBzZWxmLl9jdXJy
ZW50X2dyb3VwID0gTm9uZQogICAgICAgICAjIE51bWJlciBvZiB0ZXN0cyBpbiBzZWxmLl9jdXJy
ZW50X2dyb3VwLgpAQCAtOTcsNyArODgsNiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFk
aW5nLlRocmVhZCk6CiAKICAgICBkZWYgY2FuY2VsKHNlbGYpOgogICAgICAgICAiIiJTZXQgYSBm
bGFnIHRlbGxpbmcgdGhpcyB0aHJlYWQgdG8gcXVpdC4iIiIKLSAgICAgICAgc2VsZi5jbGVhbnVw
KCkKICAgICAgICAgc2VsZi5fY2FuY2VsZWQgPSBUcnVlCiAKICAgICBkZWYgY2xlYXJfbmV4dF90
aW1lb3V0KHNlbGYpOgpAQCAtMTg5LDIzICsxNzksMTMgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFk
KHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgICAgIElmIHRlc3RfcnVubmVyIGlzIG5vdCBOb25l
LCB0aGVuIHdlIGNhbGwgdGVzdF9ydW5uZXIuVXBkYXRlU3VtbWFyeSgpCiAgICAgICAgIHdpdGgg
dGhlIHJlc3VsdHMgb2YgZWFjaCB0ZXN0LiIiIgotICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9y
dW5uZXIgPSBTaW5nbGVUZXN0UnVubmVyKHNlbGYuX29wdGlvbnMsIHNlbGYuX3BvcnQsCi0gICAg
ICAgICAgICBzZWxmLl9uYW1lLCBzZWxmLl93b3JrZXJfbnVtYmVyKQotCi0gICAgICAgIGJhdGNo
X3NpemUgPSBzZWxmLl9vcHRpb25zLmJhdGNoX3NpemUKLSAgICAgICAgYmF0Y2hfY291bnQgPSAw
Ci0KLSAgICAgICAgIyBBcHBlbmQgdGVzdHMgd2UncmUgcnVubmluZyB0byB0aGUgZXhpc3Rpbmcg
dGVzdHNfcnVuLnR4dCBmaWxlLgotICAgICAgICAjIFRoaXMgaXMgY3JlYXRlZCBpbiBydW5fd2Vi
a2l0X3Rlc3RzLnB5Ol9QcmVwYXJlTGlzdHNBbmRQcmludE91dHB1dC4KLSAgICAgICAgdGVzdHNf
cnVuX2ZpbGVuYW1lID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX29wdGlvbnMu
cmVzdWx0c19kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdHNfcnVuLnR4dCIpCi0gICAgICAgIHRlc3RzX3J1bl9m
aWxlID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0
ZXN0c19ydW5fZmlsZW5hbWUsIGFwcGVuZD1UcnVlKQorICAgICAgICBzaW5nbGVfdGVzdF9ydW5u
ZXIgPSBTaW5nbGVUZXN0UnVubmVyKHNlbGYuX29wdGlvbnMsIHNlbGYuX3BvcnQsIHNlbGYuX25h
bWUsCisgICAgICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyKQogCiAgICAgICAgIHdoaWxlIFRy
dWU6CiAgICAgICAgICAgICBpZiBzZWxmLl9jYW5jZWxlZDoKICAgICAgICAgICAgICAgICBfbG9n
LmRlYnVnKCdUZXN0aW5nIGNhbmNlbGxlZCcpCi0gICAgICAgICAgICAgICAgdGVzdHNfcnVuX2Zp
bGUuY2xvc2UoKQotICAgICAgICAgICAgICAgIHNlbGYuY2xlYW51cCgpCisgICAgICAgICAgICAg
ICAgc2luZ2xlX3Rlc3RfcnVubmVyLmNsZWFudXAoKQogICAgICAgICAgICAgICAgIHJldHVybgog
CiAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkgaXMgMDoKQEAgLTIxOCwx
NCArMTk4LDE1IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cCwgc2VsZi5fZmlsZW5hbWVfbGlz
dCA9IFwKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3RfcXVldWUu
Z2V0X25vd2FpdCgpCiAgICAgICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLmNsZWFudXAoKQotICAgICAgICAgICAgICAgICAgICB0ZXN0c19y
dW5fZmlsZS5jbG9zZSgpCisgICAgICAgICAgICAgICAgICAgIHNpbmdsZV90ZXN0X3J1bm5lci5j
bGVhbnVwKCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9jdXJyZW50X2dyb3VwID09ICJ0ZXN0c190b19odHRwX2xvY2siOgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0gICAgICAgICAgICAg
ICAgZWxpZiBzZWxmLl9oYXZlX2h0dHBfbG9jazoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2h0dHBf
bG9ja193YWl0X2JlZ2luID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgICAgICAgICAgc2luZ2xl
X3Rlc3RfcnVubmVyLnN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKCkKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfZW5kID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgICAg
ICBlbGlmIHNpbmdsZV90ZXN0X3J1bm5lci5oYXNfaHR0cF9sb2NrOgorICAgICAgICAgICAgICAg
ICAgICBzaW5nbGVfdGVzdF9ydW5uZXIuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCiAKICAgICAg
ICAgICAgICAgICBzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91cCA9IGxlbihzZWxmLl9m
aWxlbmFtZV9saXN0KQogICAgICAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRf
dGltZSA9IHRpbWUudGltZSgpCkBAIC0yMzMsNTYgKzIxNCwxMyBAQCBjbGFzcyBUZXN0U2hlbGxU
aHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICB0ZXN0X2lucHV0ID0gc2VsZi5f
ZmlsZW5hbWVfbGlzdC5wb3AoKQogCiAgICAgICAgICAgICAjIFdlIGhhdmUgYSB1cmwsIHJ1biB0
ZXN0cy4KLSAgICAgICAgICAgIGJhdGNoX2NvdW50ICs9IDEKICAgICAgICAgICAgIHNlbGYuX251
bV90ZXN0cyArPSAxCiAKLSAgICAgICAgICAgIHRpbWVvdXQgPSBzZWxmLl9zaW5nbGVfdGVzdF9y
dW5uZXIudGltZW91dCh0ZXN0X2lucHV0KQotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fc2lu
Z2xlX3Rlc3RfcnVubmVyLnJ1bl90ZXN0KHRlc3RfaW5wdXQsIHRpbWVvdXQpCi0KLSAgICAgICAg
ICAgIHRlc3RzX3J1bl9maWxlLndyaXRlKHRlc3RfaW5wdXQuZmlsZW5hbWUgKyAiXG4iKQotICAg
ICAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRl
c3RfaW5wdXQuZmlsZW5hbWUpCi0gICAgICAgICAgICBpZiByZXN1bHQuZmFpbHVyZXM6Ci0gICAg
ICAgICAgICAgICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVuZGVyVHJlZSBpZiB3ZSBuZWVkIHRv
LgotICAgICAgICAgICAgICAgIGlmIGFueShbZi5zaG91bGRfa2lsbF9kdW1wX3JlbmRlcl90cmVl
KCkgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzXSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3NpbmdsZV90ZXN0X3J1bm5lci5raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQotICAgICAgICAgICAg
ICAgICAgICAjIFJlc2V0IHRoZSBiYXRjaCBjb3VudCBzaW5jZSB0aGUgc2hlbGwganVzdCBib3Vu
Y2VkLgotICAgICAgICAgICAgICAgICAgICBiYXRjaF9jb3VudCA9IDAKLQotICAgICAgICAgICAg
ICAgICMgUHJpbnQgdGhlIGVycm9yIG1lc3NhZ2UocykuCi0gICAgICAgICAgICAgICAgX2xvZy5k
ZWJ1ZygiJXMgJXMgZmFpbGVkOiIgJSAoc2VsZi5fbmFtZSwgdGVzdF9uYW1lKSkKLSAgICAgICAg
ICAgICAgICBmb3IgZiBpbiByZXN1bHQuZmFpbHVyZXM6Ci0gICAgICAgICAgICAgICAgICAgIF9s
b2cuZGVidWcoIiVzICAlcyIgJSAoc2VsZi5fbmFtZSwgZi5tZXNzYWdlKCkpKQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCIlcyAlcyBwYXNzZWQiICUgKHNl
bGYuX25hbWUsIHRlc3RfbmFtZSkpCi0gICAgICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUucHV0
KHJlc3VsdC5kdW1wcygpKQorICAgICAgICAgICAgdGltZW91dCA9IHNpbmdsZV90ZXN0X3J1bm5l
ci50aW1lb3V0KHRlc3RfaW5wdXQpCisgICAgICAgICAgICByZXN1bHQgPSBzaW5nbGVfdGVzdF9y
dW5uZXIucnVuX3Rlc3QodGVzdF9pbnB1dCwgdGltZW91dCkKKyAgICAgICAgICAgIHNpbmdsZV90
ZXN0X3J1bm5lci5jbGVhbl91cF9hZnRlcl90ZXN0KHRlc3RfaW5wdXQsIHJlc3VsdCkKIAotICAg
ICAgICAgICAgaWYgYmF0Y2hfc2l6ZSA+IDAgYW5kIGJhdGNoX2NvdW50ID49IGJhdGNoX3NpemU6
Ci0gICAgICAgICAgICAgICAgIyBCb3VuY2UgdGhlIHNoZWxsIGFuZCByZXNldCBjb3VudC4KLSAg
ICAgICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIua2lsbF9kdW1wX3JlbmRlcl90
cmVlKCkKLSAgICAgICAgICAgICAgICBiYXRjaF9jb3VudCA9IDAKKyAgICAgICAgICAgIHNlbGYu
X3Jlc3VsdF9xdWV1ZS5wdXQocmVzdWx0LmR1bXBzKCkpCiAKICAgICAgICAgICAgIGlmIHRlc3Rf
cnVubmVyOgogICAgICAgICAgICAgICAgIHRlc3RfcnVubmVyLnVwZGF0ZV9zdW1tYXJ5KHJlc3Vs
dF9zdW1tYXJ5KQotCi0gICAgZGVmIF9zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKLSAg
ICAgICAgIiIiQWNxdWlyZSBodHRwIGxvY2sgYW5kIHN0YXJ0IHRoZSBzZXJ2ZXJzLiIiIgotICAg
ICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9iZWdpbiA9IHRpbWUudGltZSgpCi0gICAgICAgIF9s
b2cuZGVidWcoJ0FjcXVpcmUgaHR0cCBsb2NrIC4uLicpCi0gICAgICAgIHNlbGYuX3BvcnQuYWNx
dWlyZV9odHRwX2xvY2soKQotICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBIVFRQIHNlcnZl
ciAuLi4nKQotICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkKLSAgICAgICAg
X2xvZy5kZWJ1ZygnU3RhcnRpbmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQotICAgICAgICBzZWxm
Ll9wb3J0LnN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoKQotICAgICAgICBzZWxmLl9odHRwX2xvY2tf
d2FpdF9lbmQgPSB0aW1lLnRpbWUoKQotICAgICAgICBzZWxmLl9oYXZlX2h0dHBfbG9jayA9IFRy
dWUKLQotICAgIGRlZiBfc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKLSAgICAgICAgIiIi
U3RvcCB0aGUgc2VydmVycyBhbmQgcmVsZWFzZSBodHRwIGxvY2suIiIiCi0gICAgICAgIGlmIHNl
bGYuX2hhdmVfaHR0cF9sb2NrOgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBpbmcgSFRU
UCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRwX3NlcnZlcigp
Ci0gICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicp
Ci0gICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigpCi0gICAgICAg
ICAgICBfbG9nLmRlYnVnKCdSZWxlYXNlIGh0dHAgbG9jayAuLi4nKQotICAgICAgICAgICAgc2Vs
Zi5fcG9ydC5yZWxlYXNlX2h0dHBfbG9jaygpCi0gICAgICAgICAgICBzZWxmLl9oYXZlX2h0dHBf
bG9jayA9IEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIu
cHkKaW5kZXggZWRjZjZmZTg3M2M3MDkxZWY0ZDBiYmNiZTgxMzI3NzkyNDk2ZmVmMy4uMDFjMmZj
MDY1MWM2NDgzMzY1ZmUxYjcwZDhjNjEzZDVlNTU0YTZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVu
bmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtNTIsMjAgKzUyLDM3IEBAIGNsYXNzIEV4
cGVjdGVkRHJpdmVyT3V0cHV0OgogCiAKIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CisgICAgIiIi
VGhpcyBjbGFzcyBjb250YWlucyBhbGwgdGhlIGFjdHVhbCBsb2dpYyBmb3IgcnVubmluZyBhIHRl
c3QgYW5kIGZpZ3VyaW5nCisgICAgb3V0IHRoZSByZXN1bHRzLiIiIgogCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG9wdGlvbnMsIHBvcnQsIHdvcmtlcl9uYW1lLCB3b3JrZXJfbnVtYmVyKToKICAg
ICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQK
KyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IHBvcnQuX2ZpbGVzeXN0ZW0KICAgICAgICAgc2Vs
Zi5fd29ya2VyX25hbWUgPSB3b3JrZXJfbmFtZQogICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVy
ID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9kcml2ZXIgPSBOb25lCiAgICAgICAgIHNl
bGYuX3Rlc3RfdHlwZXMgPSBbXQorICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCA9IDAKKyAgICAg
ICAgc2VsZi5fYmF0Y2hfc2l6ZSA9IHNlbGYuX29wdGlvbnMuYmF0Y2hfc2l6ZQorICAgICAgICBz
ZWxmLmhhc19odHRwX2xvY2sgPSBGYWxzZQorCiAgICAgICAgIGZvciBjbHMgaW4gc2VsZi5fZ2V0
X3Rlc3RfdHlwZV9jbGFzc2VzKCk6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLmFwcGVu
ZChjbHMoc2VsZi5fcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5KSkKIAorICAgICAgICAjIEFwcGVuZCB0
ZXN0cyB3ZSdyZSBydW5uaW5nIHRvIHRoZSBleGlzdGluZyB0ZXN0c19ydW4udHh0IGZpbGUuCisg
ICAgICAgIHRlc3RzX3J1bl9maWxlbmFtZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9v
cHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRlc3RzX3J1bi50eHQiKQorICAgICAgICBzZWxmLl90ZXN0
c19ydW5fZmlsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmco
dGVzdHNfcnVuX2ZpbGVuYW1lLCBhcHBlbmQ9VHJ1ZSkKKwogICAgIGRlZiBjbGVhbnVwKHNlbGYp
OgotICAgICAgICBzZWxmLmtpbGxfZHVtcF9yZW5kZXJfdHJlZSgpCisgICAgICAgIHNlbGYuX2tp
bGxfZHVtcF9yZW5kZXJfdHJlZSgpCisgICAgICAgIGlmIHNlbGYuaGFzX2h0dHBfbG9jazoKKyAg
ICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisgICAgICAgIGlmIHNlbGYu
X3Rlc3RzX3J1bl9maWxlOgorICAgICAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGUuY2xvc2Uo
KQorICAgICAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGUgPSBOb25lCiAKICAgICBkZWYgX2dl
dF90ZXN0X3R5cGVfY2xhc3NlcyhzZWxmKToKICAgICAgICAgY2xhc3NlcyA9IFt0ZXh0X2RpZmYu
VGVzdFRleHREaWZmXQpAQCAtOTcsNiArMTE0LDI5IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3Rlc3RfaW5fdGhpc190aHJlYWQodGVzdF9p
bnB1dCkKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCisgICAgZGVmIGNsZWFuX3VwX2FmdGVyX3Rl
c3Qoc2VsZiwgdGVzdF9pbnB1dCwgcmVzdWx0KToKKyAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5f
cG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3RfaW5wdXQuZmlsZW5hbWUpCisgICAgICAg
IHNlbGYuX2JhdGNoX2NvdW50ICs9IDEKKyAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGUud3Jp
dGUodGVzdF9pbnB1dC5maWxlbmFtZSArICJcbiIpCisgICAgICAgIGlmIHJlc3VsdC5mYWlsdXJl
czoKKyAgICAgICAgICAgICMgQ2hlY2sgYW5kIGtpbGwgRHVtcFJlbmRlclRyZWUgaWYgd2UgbmVl
ZCB0by4KKyAgICAgICAgICAgIGlmIGFueShbZi5zaG91bGRfa2lsbF9kdW1wX3JlbmRlcl90cmVl
KCkgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzXSk6CisgICAgICAgICAgICAgICAgc2VsZi5fa2ls
bF9kdW1wX3JlbmRlcl90cmVlKCkKKyAgICAgICAgICAgICAgICAjIFJlc2V0IHRoZSBiYXRjaCBj
b3VudCBzaW5jZSB0aGUgc2hlbGwganVzdCBib3VuY2VkLgorICAgICAgICAgICAgICAgIHNlbGYu
X2JhdGNoX2NvdW50ID0gMAorCisgICAgICAgICAgICAjIFByaW50IHRoZSBlcnJvciBtZXNzYWdl
KHMpLgorICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMgZmFpbGVkOiIgJSAoc2VsZi5fd29y
a2VyX25hbWUsIHRlc3RfbmFtZSkpCisgICAgICAgICAgICBmb3IgZiBpbiByZXN1bHQuZmFpbHVy
ZXM6CisgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgICVzIiAlIChzZWxmLl93b3JrZXJf
bmFtZSwgZi5tZXNzYWdlKCkpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgX2xvZy5kZWJ1
ZygiJXMgJXMgcGFzc2VkIiAlIChzZWxmLl93b3JrZXJfbmFtZSwgdGVzdF9uYW1lKSkKKworICAg
ICAgICBpZiBzZWxmLl9iYXRjaF9zaXplID4gMCBhbmQgc2VsZi5fYmF0Y2hfY291bnQgPj0gc2Vs
Zi5fYmF0Y2hfc2l6ZToKKyAgICAgICAgICAgICMgQm91bmNlIHRoZSBzaGVsbCBhbmQgcmVzZXQg
Y291bnQuCisgICAgICAgICAgICBzZWxmLl9raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAgICAg
ICAgICAgc2VsZi5fYmF0Y2hfY291bnQgPSAwCisKICAgICBkZWYgX3J1bl90ZXN0X2luX2Fub3Ro
ZXJfdGhyZWFkKHNlbGYsIHRlc3RfaW5wdXQsIHRocmVhZF90aW1lb3V0X3NlYyk6CiAgICAgICAg
ICIiIlJ1biBhIHRlc3QgaW4gYSBzZXBhcmF0ZSB0aHJlYWQsIGVuZm9yY2luZyBhIGhhcmQgdGlt
ZSBsaW1pdC4KIApAQCAtMjMyLDcgKzI3MiwyNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgog
ICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIGRyaXZl
cl9vdXRwdXQudGVzdF90aW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF90aW1l
X2Zvcl9hbGxfZGlmZnMsIHRpbWVfZm9yX2RpZmZzKQogCi0gICAgZGVmIGtpbGxfZHVtcF9yZW5k
ZXJfdHJlZShzZWxmKToKKyAgICBkZWYgc3RhcnRfc2VydmVyc193aXRoX2xvY2soc2VsZik6Cisg
ICAgICAgIF9sb2cuZGVidWcoJ0FjcXVpcmluZyBodHRwIGxvY2sgLi4uJykKKyAgICAgICAgc2Vs
Zi5fcG9ydC5hY3F1aXJlX2h0dHBfbG9jaygpCisgICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5n
IEhUVFAgc2VydmVyIC4uLicpCisgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIo
KQorICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCisg
ICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCisgICAgICAgIHNlbGYu
aGFzX2h0dHBfbG9jayA9IFRydWUKKworICAgIGRlZiBzdG9wX3NlcnZlcnNfd2l0aF9sb2NrKHNl
bGYpOgorICAgICAgICAiIiJTdG9wIHRoZSBzZXJ2ZXJzIGFuZCByZWxlYXNlIGh0dHAgbG9jay4i
IiIKKyAgICAgICAgaWYgc2VsZi5oYXNfaHR0cF9sb2NrOgorICAgICAgICAgICAgX2xvZy5kZWJ1
ZygnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3Rv
cF9odHRwX3NlcnZlcigpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBXZWJTb2Nr
ZXQgc2VydmVyIC4uLicpCisgICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29ja2V0X3Nl
cnZlcigpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCdSZWxlYXNpbmcgc2VydmVyIGxvY2sgLi4u
JykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsZWFzZV9odHRwX2xvY2soKQorICAgICAgICAg
ICAgc2VsZi5oYXNfaHR0cF9sb2NrID0gRmFsc2UKKworICAgIGRlZiBfa2lsbF9kdW1wX3JlbmRl
cl90cmVlKHNlbGYpOgogICAgICAgICAiIiJLaWxsIHRoZSBEdW1wUmVuZGVyVHJlZSBwcm9jZXNz
IGlmIGl0J3MgcnVubmluZy4iIiIKICAgICAgICAgaWYgc2VsZi5fZHJpdmVyOgogICAgICAgICAg
ICAgc2VsZi5fZHJpdmVyLnN0b3AoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81591</attachid>
            <date>2011-02-07 23:06:09 -0800</date>
            <delta_ts>2011-02-07 23:23:04 -0800</delta_ts>
            <desc>fix baseline for merge</desc>
            <filename>bug-53840-20110207230608.patch</filename>
            <type>text/plain</type>
            <size>3234</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjZm
ZDFiYmIxZmE0ZWY2NjQ5YTc1MTM0YzE0ZTQzYzY2NDc2NGM3Li44ZWQ0Yjk2ODliODAxNWY5YTcw
NTI1NDQ1ZmU4NThlYTMyNzdiODk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogbW92ZSB0aGUg
bG9naWMgdGhhdCBzdGFydHMgYW5kIHN0b3BzIHRoZQorICAgICAgICBzZXJ2ZXJzIGZyb20gZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQgaW50byBzaW5nbGVfdGVzdF9ydW5uZXIKKyAgICAgICAgc28g
dGhhdCB3ZSBjYW4gcmV1c2UgaXQgaW4gdGhlIG5ldyBtdWx0aXByb2Nlc3Npbmcgd29ya2VyIGNs
YXNzCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzODQwCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVf
dGVzdF9ydW5uZXIucHk6CisgCisyMDExLTAyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBtb3ZlIGEgYnVuY2ggb2YgdGVzdGluZyBsb2dpYyBv
dXQgb2YKICAgICAgICAgZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQgYW5kIGludG8gc2luZ2xlX3Rl
c3RfcnVubmVyIHNvIHRoYXQgd2UKICAgICAgICAgd2lsbCBiZSBhYmxlIHRvIHJldXNlIGl0IGlu
IHRoZSBuZXcgbXVsdGlwcm9jZXNzaW5nIHdvcmtlciBjbGFzcyBhcyB3ZWxsLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCA3MDRj
YzExYWY2YTQ2YjcxNTRjMzM4Y2EzYzYxOWZlZWRlOTA5ZmU2Li5jYWFiNWE1ZmI2MjIwNmFjMzEx
YTlmMmQwN2U0NmUzMzk1NGFjZDhmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtOTksNyArOTksNiBAQCBjbGFzcyBUZXN0U2hl
bGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAKICAgICBkZWYgY2FuY2VsKHNlbGYpOgogICAg
ICAgICAiIiJTZXQgYSBmbGFnIHRlbGxpbmcgdGhpcyB0aHJlYWQgdG8gcXVpdC4iIiIKLSAgICAg
ICAgc2VsZi5jbGVhbnVwKCkKICAgICAgICAgc2VsZi5fY2FuY2VsZWQgPSBUcnVlCiAKICAgICBk
ZWYgY2xlYXJfbmV4dF90aW1lb3V0KHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2lu
Z2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IGVkY2Y2ZmU4NzNjNzA5MWVmNGQwYmJjYmU4MTMyNzc5
MjQ5NmZlZjMuLmFkOGI3ZDViYWFmNDFjYzYxZDA1NGExMWNhOGNmZmUxNmQ1NjIxNzggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAgLTIzMiw2ICsy
MzIsMjYgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcjoKICAgICAgICAgcmV0dXJuIFRlc3RSZXN1
bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfdGltZV9mb3JfYWxsX2RpZmZzLCB0aW1lX2Zv
cl9kaWZmcykKIAorICAgIGRlZiBzdGFydF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKKyAgICAg
ICAgX2xvZy5kZWJ1ZygnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQorICAgICAgICBzZWxmLl9w
b3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAgICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgSFRU
UCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgc2VsZi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCisg
ICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAgICAg
ICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgc2VsZi5oYXNf
aHR0cF9sb2NrID0gVHJ1ZQorCisgICAgZGVmIHN0b3Bfc2VydmVyc193aXRoX2xvY2soc2VsZik6
CisgICAgICAgICIiIlN0b3AgdGhlIHNlcnZlcnMgYW5kIHJlbGVhc2UgaHR0cCBsb2NrLiIiIgor
ICAgICAgICBpZiBzZWxmLmhhc19odHRwX2xvY2s6CisgICAgICAgICAgICBfbG9nLmRlYnVnKCdT
dG9wcGluZyBIVFRQIHNlcnZlciAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX2h0
dHBfc2VydmVyKCkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1N0b3BwaW5nIFdlYlNvY2tldCBz
ZXJ2ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVy
KCkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1JlbGVhc2luZyBzZXJ2ZXIgbG9jayAuLi4nKQor
ICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxlYXNlX2h0dHBfbG9jaygpCisgICAgICAgICAgICBz
ZWxmLmhhc19odHRwX2xvY2sgPSBGYWxzZQorCiAgICAgZGVmIGtpbGxfZHVtcF9yZW5kZXJfdHJl
ZShzZWxmKToKICAgICAgICAgIiIiS2lsbCB0aGUgRHVtcFJlbmRlclRyZWUgcHJvY2VzcyBpZiBp
dCdzIHJ1bm5pbmcuIiIiCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlcjoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81597</attachid>
            <date>2011-02-07 23:23:06 -0800</date>
            <delta_ts>2011-02-08 17:08:00 -0800</delta_ts>
            <desc>fix baseline for merge</desc>
            <filename>bug-53840-20110207232305.patch</filename>
            <type>text/plain</type>
            <size>12009</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjZm
ZDFiYmIxZmE0ZWY2NjQ5YTc1MTM0YzE0ZTQzYzY2NDc2NGM3Li44ZWQ0Yjk2ODliODAxNWY5YTcw
NTI1NDQ1ZmU4NThlYTMyNzdiODk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogbW92ZSB0aGUg
bG9naWMgdGhhdCBzdGFydHMgYW5kIHN0b3BzIHRoZQorICAgICAgICBzZXJ2ZXJzIGZyb20gZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQgaW50byBzaW5nbGVfdGVzdF9ydW5uZXIKKyAgICAgICAgc28g
dGhhdCB3ZSBjYW4gcmV1c2UgaXQgaW4gdGhlIG5ldyBtdWx0aXByb2Nlc3Npbmcgd29ya2VyIGNs
YXNzCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzODQwCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVf
dGVzdF9ydW5uZXIucHk6CisgCisyMDExLTAyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBtb3ZlIGEgYnVuY2ggb2YgdGVzdGluZyBsb2dpYyBv
dXQgb2YKICAgICAgICAgZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQgYW5kIGludG8gc2luZ2xlX3Rl
c3RfcnVubmVyIHNvIHRoYXQgd2UKICAgICAgICAgd2lsbCBiZSBhYmxlIHRvIHJldXNlIGl0IGlu
IHRoZSBuZXcgbXVsdGlwcm9jZXNzaW5nIHdvcmtlciBjbGFzcyBhcyB3ZWxsLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCA3MDRj
YzExYWY2YTQ2YjcxNTRjMzM4Y2EzYzYxOWZlZWRlOTA5ZmU2Li5mYWMzMjQyZDA3MWE4YTc3OTFk
Yzk4MTYwNTdkZTBiYWZjMzlhNTc5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNzQsMzIgKzc0LDE2IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5fcmVzdWx0X3F1ZXVl
ID0gcmVzdWx0X3F1ZXVlCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3QgPSBbXQotICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9y
dW5uZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfZ3JvdXBfdGltaW5nX3N0YXRzID0ge30K
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gW10KICAgICAgICAgc2VsZi5fbnVtX3Rlc3Rz
ID0gMAogICAgICAgICBzZWxmLl9zdGFydF90aW1lID0gMAogICAgICAgICBzZWxmLl9zdG9wX3Rp
bWUgPSAwCi0gICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgc2Vs
Zi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0
X2VuZCA9IDAKIAotICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9zaW5n
bGVfdGVzdF9ydW5uZXI6Ci0gICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIuY2xl
YW51cCgpCi0gICAgICAgIGlmIHNlbGYuX2hhdmVfaHR0cF9sb2NrOgotICAgICAgICAgICAgc2Vs
Zi5fc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0KLSAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9m
IHRlc3RzIHdlJ3JlIHJ1bm5pbmcuCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25l
Ci0gICAgICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCi0gICAg
ICAgIHNlbGYuX251bV90ZXN0c19pbl9jdXJyZW50X2dyb3VwID0gTm9uZQotICAgICAgICAjIFRp
bWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3VycmVudF9n
cm91cC4KLSAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9uZQotCiAg
ICAgZGVmIGNhbmNlbChzZWxmKToKICAgICAgICAgIiIiU2V0IGEgZmxhZyB0ZWxsaW5nIHRoaXMg
dGhyZWFkIHRvIHF1aXQuIiIiCi0gICAgICAgIHNlbGYuY2xlYW51cCgpCiAgICAgICAgIHNlbGYu
X2NhbmNlbGVkID0gVHJ1ZQogCiAgICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKQEAg
LTE5MSw3ICsxNzUsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6
CiAKICAgICAgICAgSWYgdGVzdF9ydW5uZXIgaXMgbm90IE5vbmUsIHRoZW4gd2UgY2FsbCB0ZXN0
X3J1bm5lci5VcGRhdGVTdW1tYXJ5KCkKICAgICAgICAgd2l0aCB0aGUgcmVzdWx0cyBvZiBlYWNo
IHRlc3QuIiIiCi0gICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lciA9IFNpbmdsZVRlc3RS
dW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwKKyAgICAgICAgc2luZ2xlX3Rlc3RfcnVu
bmVyID0gU2luZ2xlVGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LAogICAgICAg
ICAgICAgc2VsZi5fbmFtZSwgc2VsZi5fd29ya2VyX251bWJlcikKIAogICAgICAgICBiYXRjaF9z
aXplID0gc2VsZi5fb3B0aW9ucy5iYXRjaF9zaXplCkBAIC0yMDMsODggKzE4Nyw2NyBAQCBjbGFz
cyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdHNfcnVuJWQudHh0IiAl
IHNlbGYuX3dvcmtlcl9udW1iZXIpCiAgICAgICAgIHRlc3RzX3J1bl9maWxlID0gc2VsZi5fcG9y
dC5fZmlsZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0ZXN0c19ydW5fZmlsZW5h
bWUsIGFwcGVuZD1GYWxzZSkKIAotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYg
c2VsZi5fY2FuY2VsZWQ6Ci0gICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnVGVzdGluZyBjYW5j
ZWxsZWQnKQotICAgICAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLmNsb3NlKCkKLSAgICAgICAg
ICAgICAgICBzZWxmLmNsZWFudXAoKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICAgICBpZiBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkgaXMgMDoKLSAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9jdXJyZW50X2dyb3VwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl90ZXN0X2dyb3VwX3RpbWluZ19zdGF0c1tzZWxmLl9jdXJyZW50X2dyb3VwXSA9IFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91cCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnRpbWUoKSAtIHNlbGYuX2N1cnJlbnRfZ3Jv
dXBfc3RhcnRfdGltZSkKLQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fY3VycmVudF9ncm91cCwgc2VsZi5fZmlsZW5hbWVfbGlzdCA9IFwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3RfcXVldWUuZ2V0X25vd2FpdCgpCi0g
ICAgICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLmNsZWFudXAoKQotICAgICAgICAgICAgICAgICAgICB0ZXN0c19ydW5fZmlsZS5jbG9zZSgp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5f
Y3VycmVudF9ncm91cCA9PSAidGVzdHNfdG9faHR0cF9sb2NrIjoKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fc3RhcnRfc2VydmVyc193aXRoX2xvY2soKQotICAgICAgICAgICAgICAgIGVsaWYg
c2VsZi5faGF2ZV9odHRwX2xvY2s6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0b3Bfc2Vy
dmVyc193aXRoX2xvY2soKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fbnVtX3Rlc3RzX2luX2N1
cnJlbnRfZ3JvdXAgPSBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9jdXJyZW50X2dyb3VwX3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotCi0gICAgICAgICAg
ICB0ZXN0X2lucHV0ID0gc2VsZi5fZmlsZW5hbWVfbGlzdC5wb3AoKQotCi0gICAgICAgICAgICAj
IFdlIGhhdmUgYSB1cmwsIHJ1biB0ZXN0cy4KLSAgICAgICAgICAgIGJhdGNoX2NvdW50ICs9IDEK
LSAgICAgICAgICAgIHNlbGYuX251bV90ZXN0cyArPSAxCi0KLSAgICAgICAgICAgIHRpbWVvdXQg
PSBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIudGltZW91dCh0ZXN0X2lucHV0KQotICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi5fc2luZ2xlX3Rlc3RfcnVubmVyLnJ1bl90ZXN0KHRlc3RfaW5wdXQs
IHRpbWVvdXQpCi0KLSAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLndyaXRlKHRlc3RfaW5wdXQu
ZmlsZW5hbWUgKyAiXG4iKQotICAgICAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5fcG9ydC5yZWxh
dGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3RfaW5wdXQuZmlsZW5hbWUpCi0gICAgICAgICAgICBpZiBy
ZXN1bHQuZmFpbHVyZXM6Ci0gICAgICAgICAgICAgICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVu
ZGVyVHJlZSBpZiB3ZSBuZWVkIHRvLgotICAgICAgICAgICAgICAgIGlmIGFueShbZi5zaG91bGRf
a2lsbF9kdW1wX3JlbmRlcl90cmVlKCkgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzXSk6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lci5raWxsX2R1bXBfcmVuZGVy
X3RyZWUoKQotICAgICAgICAgICAgICAgICAgICAjIFJlc2V0IHRoZSBiYXRjaCBjb3VudCBzaW5j
ZSB0aGUgc2hlbGwganVzdCBib3VuY2VkLgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGls
ZSBUcnVlOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2NhbmNlbGVkOgorICAgICAgICAgICAg
ICAgICAgICBfbG9nLmRlYnVnKCdUZXN0aW5nIGNhbmNlbGxlZCcpCisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkg
aXMgMDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY3VycmVudF9ncm91cCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfZ3JvdXBfdGltaW5nX3N0
YXRzW3NlbGYuX2N1cnJlbnRfZ3JvdXBdID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91cCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lLnRpbWUoKSAtIHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRfdGltZSkKKwor
ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9j
dXJyZW50X2dyb3VwLCBzZWxmLl9maWxlbmFtZV9saXN0ID0gXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3RfcXVldWUuZ2V0X25vd2FpdCgpCisgICAgICAg
ICAgICAgICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY3VycmVudF9ncm91cCA9PSAi
dGVzdHNfdG9faHR0cF9sb2NrIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2h0dHBf
bG9ja193YWl0X2JlZ2luID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNp
bmdsZV90ZXN0X3J1bm5lci5zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9lbmQgPSB0aW1lLnRpbWUoKQorICAgICAg
ICAgICAgICAgICAgICBlbGlmIHNpbmdsZV90ZXN0X3J1bm5lci5oYXNfaHR0cF9sb2NrOgorICAg
ICAgICAgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLnN0b3Bfc2VydmVyc193aXRo
X2xvY2soKQorCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX251bV90ZXN0c19pbl9jdXJyZW50
X2dyb3VwID0gbGVuKHNlbGYuX2ZpbGVuYW1lX2xpc3QpCisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisKKyAgICAgICAgICAg
ICAgICB0ZXN0X2lucHV0ID0gc2VsZi5fZmlsZW5hbWVfbGlzdC5wb3AoKQorCisgICAgICAgICAg
ICAgICAgIyBXZSBoYXZlIGEgdXJsLCBydW4gdGVzdHMuCisgICAgICAgICAgICAgICAgYmF0Y2hf
Y291bnQgKz0gMQorICAgICAgICAgICAgICAgIHNlbGYuX251bV90ZXN0cyArPSAxCisKKyAgICAg
ICAgICAgICAgICB0aW1lb3V0ID0gc2luZ2xlX3Rlc3RfcnVubmVyLnRpbWVvdXQodGVzdF9pbnB1
dCkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzaW5nbGVfdGVzdF9ydW5uZXIucnVuX3Rlc3Qo
dGVzdF9pbnB1dCwgdGltZW91dCkKKworICAgICAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLndy
aXRlKHRlc3RfaW5wdXQuZmlsZW5hbWUgKyAiXG4iKQorICAgICAgICAgICAgICAgIHRlc3RfbmFt
ZSA9IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZSh0ZXN0X2lucHV0LmZpbGVuYW1l
KQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdC5mYWlsdXJlczoKKyAgICAgICAgICAgICAgICAg
ICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVuZGVyVHJlZSBpZiB3ZSBuZWVkIHRvLgorICAgICAg
ICAgICAgICAgICAgICBpZiBhbnkoW2Yuc2hvdWxkX2tpbGxfZHVtcF9yZW5kZXJfdHJlZSgpIGZv
ciBmIGluIHJlc3VsdC5mYWlsdXJlc10pOgorICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xl
X3Rlc3RfcnVubmVyLmtpbGxfZHVtcF9yZW5kZXJfdHJlZSgpCisgICAgICAgICAgICAgICAgICAg
ICAgICAjIFJlc2V0IHRoZSBiYXRjaCBjb3VudCBzaW5jZSB0aGUgc2hlbGwganVzdCBib3VuY2Vk
LgorICAgICAgICAgICAgICAgICAgICAgICAgYmF0Y2hfY291bnQgPSAwCisKKyAgICAgICAgICAg
ICAgICAgICAgIyBQcmludCB0aGUgZXJyb3IgbWVzc2FnZShzKS4KKyAgICAgICAgICAgICAgICAg
ICAgX2xvZy5kZWJ1ZygiJXMgJXMgZmFpbGVkOiIgJSAoc2VsZi5fbmFtZSwgdGVzdF9uYW1lKSkK
KyAgICAgICAgICAgICAgICAgICAgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzOgorICAgICAgICAg
ICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgICVzIiAlIChzZWxmLl9uYW1lLCBmLm1lc3Nh
Z2UoKSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5k
ZWJ1ZygiJXMgJXMgcGFzc2VkIiAlIChzZWxmLl9uYW1lLCB0ZXN0X25hbWUpKQorICAgICAgICAg
ICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZS5wdXQocmVzdWx0LmR1bXBzKCkpCisKKyAgICAgICAg
ICAgICAgICBpZiBiYXRjaF9zaXplID4gMCBhbmQgYmF0Y2hfY291bnQgPj0gYmF0Y2hfc2l6ZToK
KyAgICAgICAgICAgICAgICAgICAgIyBCb3VuY2UgdGhlIHNoZWxsIGFuZCByZXNldCBjb3VudC4K
KyAgICAgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLmtpbGxfZHVtcF9yZW5kZXJf
dHJlZSgpCiAgICAgICAgICAgICAgICAgICAgIGJhdGNoX2NvdW50ID0gMAogCi0gICAgICAgICAg
ICAgICAgIyBQcmludCB0aGUgZXJyb3IgbWVzc2FnZShzKS4KLSAgICAgICAgICAgICAgICBfbG9n
LmRlYnVnKCIlcyAlcyBmYWlsZWQ6IiAlIChzZWxmLl9uYW1lLCB0ZXN0X25hbWUpKQotICAgICAg
ICAgICAgICAgIGZvciBmIGluIHJlc3VsdC5mYWlsdXJlczoKLSAgICAgICAgICAgICAgICAgICAg
X2xvZy5kZWJ1ZygiJXMgICVzIiAlIChzZWxmLl9uYW1lLCBmLm1lc3NhZ2UoKSkpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzICVzIHBhc3NlZCIgJSAo
c2VsZi5fbmFtZSwgdGVzdF9uYW1lKSkKLSAgICAgICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZS5w
dXQocmVzdWx0LmR1bXBzKCkpCi0KLSAgICAgICAgICAgIGlmIGJhdGNoX3NpemUgPiAwIGFuZCBi
YXRjaF9jb3VudCA+PSBiYXRjaF9zaXplOgotICAgICAgICAgICAgICAgICMgQm91bmNlIHRoZSBz
aGVsbCBhbmQgcmVzZXQgY291bnQuCi0gICAgICAgICAgICAgICAgc2VsZi5fc2luZ2xlX3Rlc3Rf
cnVubmVyLmtpbGxfZHVtcF9yZW5kZXJfdHJlZSgpCi0gICAgICAgICAgICAgICAgYmF0Y2hfY291
bnQgPSAwCi0KLSAgICAgICAgICAgIGlmIHRlc3RfcnVubmVyOgotICAgICAgICAgICAgICAgIHRl
c3RfcnVubmVyLnVwZGF0ZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQotCi0gICAgZGVmIF9zdGFy
dF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKLSAgICAgICAgIiIiQWNxdWlyZSBodHRwIGxvY2sg
YW5kIHN0YXJ0IHRoZSBzZXJ2ZXJzLiIiIgotICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9i
ZWdpbiA9IHRpbWUudGltZSgpCi0gICAgICAgIF9sb2cuZGVidWcoJ0FjcXVpcmUgaHR0cCBsb2Nr
IC4uLicpCi0gICAgICAgIHNlbGYuX3BvcnQuYWNxdWlyZV9odHRwX2xvY2soKQotICAgICAgICBf
bG9nLmRlYnVnKCdTdGFydGluZyBIVFRQIHNlcnZlciAuLi4nKQotICAgICAgICBzZWxmLl9wb3J0
LnN0YXJ0X2h0dHBfc2VydmVyKCkKLSAgICAgICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgV2ViU29j
a2V0IHNlcnZlciAuLi4nKQotICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X3dlYnNvY2tldF9zZXJ2
ZXIoKQotICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9lbmQgPSB0aW1lLnRpbWUoKQotICAg
ICAgICBzZWxmLl9oYXZlX2h0dHBfbG9jayA9IFRydWUKLQotICAgIGRlZiBfc3RvcF9zZXJ2ZXJz
X3dpdGhfbG9jayhzZWxmKToKLSAgICAgICAgIiIiU3RvcCB0aGUgc2VydmVycyBhbmQgcmVsZWFz
ZSBodHRwIGxvY2suIiIiCi0gICAgICAgIGlmIHNlbGYuX2hhdmVfaHR0cF9sb2NrOgotICAgICAg
ICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgICAg
IHNlbGYuX3BvcnQuc3RvcF9odHRwX3NlcnZlcigpCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdT
dG9wcGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnN0
b3Bfd2Vic29ja2V0X3NlcnZlcigpCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdSZWxlYXNlIGh0
dHAgbG9jayAuLi4nKQotICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxlYXNlX2h0dHBfbG9jaygp
Ci0gICAgICAgICAgICBzZWxmLl9oYXZlX2h0dHBfbG9jayA9IEZhbHNlCisgICAgICAgICAgICAg
ICAgaWYgdGVzdF9ydW5uZXI6CisgICAgICAgICAgICAgICAgICAgIHRlc3RfcnVubmVyLnVwZGF0
ZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
dGVzdHNfcnVuX2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLmNs
ZWFudXAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5Cmlu
ZGV4IGVkY2Y2ZmU4NzNjNzA5MWVmNGQwYmJjYmU4MTMyNzc5MjQ5NmZlZjMuLjhmMTUxZThjM2Ey
YWI4OWE5YzIwMDNiNjM5YjljNjRiOWI4ODJhZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAgLTYwLDEyICs2MCwxNSBAQCBjbGFzcyBTaW5nbGVU
ZXN0UnVubmVyOgogICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgog
ICAgICAgICBzZWxmLl9kcml2ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMgPSBb
XQorICAgICAgICBzZWxmLmhhc19odHRwX2xvY2sgPSBGYWxzZQogICAgICAgICBmb3IgY2xzIGlu
IHNlbGYuX2dldF90ZXN0X3R5cGVfY2xhc3NlcygpOgogICAgICAgICAgICAgc2VsZi5fdGVzdF90
eXBlcy5hcHBlbmQoY2xzKHNlbGYuX3BvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9yeSkpCiAKICAgICBkZWYg
Y2xlYW51cChzZWxmKToKICAgICAgICAgc2VsZi5raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAg
ICAgICBpZiBzZWxmLmhhc19odHRwX2xvY2s6CisgICAgICAgICAgICBzZWxmLnN0b3Bfc2VydmVy
c193aXRoX2xvY2soKQogCiAgICAgZGVmIF9nZXRfdGVzdF90eXBlX2NsYXNzZXMoc2VsZik6CiAg
ICAgICAgIGNsYXNzZXMgPSBbdGV4dF9kaWZmLlRlc3RUZXh0RGlmZl0KQEAgLTIzMiw2ICsyMzUs
MjYgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcjoKICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQo
c2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdG90YWxfdGltZV9mb3JfYWxsX2RpZmZzLCB0aW1lX2Zvcl9k
aWZmcykKIAorICAgIGRlZiBzdGFydF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKKyAgICAgICAg
X2xvZy5kZWJ1ZygnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQorICAgICAgICBzZWxmLl9wb3J0
LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAgICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgSFRUUCBz
ZXJ2ZXIgLi4uJykKKyAgICAgICAgc2VsZi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCisgICAg
ICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAgICAgICAg
c2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgc2VsZi5oYXNfaHR0
cF9sb2NrID0gVHJ1ZQorCisgICAgZGVmIHN0b3Bfc2VydmVyc193aXRoX2xvY2soc2VsZik6Cisg
ICAgICAgICIiIlN0b3AgdGhlIHNlcnZlcnMgYW5kIHJlbGVhc2UgaHR0cCBsb2NrLiIiIgorICAg
ICAgICBpZiBzZWxmLmhhc19odHRwX2xvY2s6CisgICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9w
cGluZyBIVFRQIHNlcnZlciAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX2h0dHBf
c2VydmVyKCkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1N0b3BwaW5nIFdlYlNvY2tldCBzZXJ2
ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkK
KyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1JlbGVhc2luZyBzZXJ2ZXIgbG9jayAuLi4nKQorICAg
ICAgICAgICAgc2VsZi5fcG9ydC5yZWxlYXNlX2h0dHBfbG9jaygpCisgICAgICAgICAgICBzZWxm
Lmhhc19odHRwX2xvY2sgPSBGYWxzZQorCiAgICAgZGVmIGtpbGxfZHVtcF9yZW5kZXJfdHJlZShz
ZWxmKToKICAgICAgICAgIiIiS2lsbCB0aGUgRHVtcFJlbmRlclRyZWUgcHJvY2VzcyBpZiBpdCdz
IHJ1bm5pbmcuIiIiCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlcjoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81719</attachid>
            <date>2011-02-08 17:08:03 -0800</date>
            <delta_ts>2011-02-08 17:10:27 -0800</delta_ts>
            <desc>remove giant try/finally</desc>
            <filename>bug-53840-20110208170802.patch</filename>
            <type>text/plain</type>
            <size>9256</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjZm
ZDFiYmIxZmE0ZWY2NjQ5YTc1MTM0YzE0ZTQzYzY2NDc2NGM3Li44ZWQ0Yjk2ODliODAxNWY5YTcw
NTI1NDQ1ZmU4NThlYTMyNzdiODk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogbW92ZSB0aGUg
bG9naWMgdGhhdCBzdGFydHMgYW5kIHN0b3BzIHRoZQorICAgICAgICBzZXJ2ZXJzIGZyb20gZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQgaW50byBzaW5nbGVfdGVzdF9ydW5uZXIKKyAgICAgICAgc28g
dGhhdCB3ZSBjYW4gcmV1c2UgaXQgaW4gdGhlIG5ldyBtdWx0aXByb2Nlc3Npbmcgd29ya2VyIGNs
YXNzCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzODQwCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVf
dGVzdF9ydW5uZXIucHk6CisgCisyMDExLTAyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBtb3ZlIGEgYnVuY2ggb2YgdGVzdGluZyBsb2dpYyBv
dXQgb2YKICAgICAgICAgZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQgYW5kIGludG8gc2luZ2xlX3Rl
c3RfcnVubmVyIHNvIHRoYXQgd2UKICAgICAgICAgd2lsbCBiZSBhYmxlIHRvIHJldXNlIGl0IGlu
IHRoZSBuZXcgbXVsdGlwcm9jZXNzaW5nIHdvcmtlciBjbGFzcyBhcyB3ZWxsLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCA3MDRj
YzExYWY2YTQ2YjcxNTRjMzM4Y2EzYzYxOWZlZWRlOTA5ZmU2Li4wMTVmOWU3MDM4Mzg4NzFhYWYx
NWYzNzdmYWJlMjc5NjIwMTc0YWRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNzQsMzIgKzc0LDE2IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5fcmVzdWx0X3F1ZXVl
ID0gcmVzdWx0X3F1ZXVlCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3QgPSBbXQotICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9y
dW5uZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfZ3JvdXBfdGltaW5nX3N0YXRzID0ge30K
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gW10KICAgICAgICAgc2VsZi5fbnVtX3Rlc3Rz
ID0gMAogICAgICAgICBzZWxmLl9zdGFydF90aW1lID0gMAogICAgICAgICBzZWxmLl9zdG9wX3Rp
bWUgPSAwCi0gICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgc2Vs
Zi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0
X2VuZCA9IDAKIAotICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9zaW5n
bGVfdGVzdF9ydW5uZXI6Ci0gICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIuY2xl
YW51cCgpCi0gICAgICAgIGlmIHNlbGYuX2hhdmVfaHR0cF9sb2NrOgotICAgICAgICAgICAgc2Vs
Zi5fc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0KLSAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9m
IHRlc3RzIHdlJ3JlIHJ1bm5pbmcuCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25l
Ci0gICAgICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCi0gICAg
ICAgIHNlbGYuX251bV90ZXN0c19pbl9jdXJyZW50X2dyb3VwID0gTm9uZQotICAgICAgICAjIFRp
bWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3VycmVudF9n
cm91cC4KLSAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9uZQotCiAg
ICAgZGVmIGNhbmNlbChzZWxmKToKICAgICAgICAgIiIiU2V0IGEgZmxhZyB0ZWxsaW5nIHRoaXMg
dGhyZWFkIHRvIHF1aXQuIiIiCi0gICAgICAgIHNlbGYuY2xlYW51cCgpCiAgICAgICAgIHNlbGYu
X2NhbmNlbGVkID0gVHJ1ZQogCiAgICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKQEAg
LTE5MSw3ICsxNzUsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6
CiAKICAgICAgICAgSWYgdGVzdF9ydW5uZXIgaXMgbm90IE5vbmUsIHRoZW4gd2UgY2FsbCB0ZXN0
X3J1bm5lci5VcGRhdGVTdW1tYXJ5KCkKICAgICAgICAgd2l0aCB0aGUgcmVzdWx0cyBvZiBlYWNo
IHRlc3QuIiIiCi0gICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lciA9IFNpbmdsZVRlc3RS
dW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwKKyAgICAgICAgc2luZ2xlX3Rlc3RfcnVu
bmVyID0gU2luZ2xlVGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LAogICAgICAg
ICAgICAgc2VsZi5fbmFtZSwgc2VsZi5fd29ya2VyX251bWJlcikKIAogICAgICAgICBiYXRjaF9z
aXplID0gc2VsZi5fb3B0aW9ucy5iYXRjaF9zaXplCkBAIC0yMDcsMjcgKzE5MSwyOSBAQCBjbGFz
cyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICBpZiBzZWxm
Ll9jYW5jZWxlZDoKICAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdUZXN0aW5nIGNhbmNlbGxl
ZCcpCiAgICAgICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUuY2xvc2UoKQotICAgICAgICAgICAg
ICAgIHNlbGYuY2xlYW51cCgpCisgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLmNs
ZWFudXAoKQogICAgICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgICAgICBpZiBsZW4oc2Vs
Zi5fZmlsZW5hbWVfbGlzdCkgaXMgMDoKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50
X2dyb3VwIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2dyb3Vw
X3RpbWluZ19zdGF0c1tzZWxmLl9jdXJyZW50X2dyb3VwXSA9IFwKICAgICAgICAgICAgICAgICAg
ICAgICAgIChzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91cCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lLnRpbWUoKSAtIHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRfdGltZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUudGltZSgpIC0gc2VsZi5fY3VycmVudF9ncm91
cF9zdGFydF90aW1lKQogCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9jdXJyZW50X2dyb3VwLCBzZWxmLl9maWxlbmFtZV9saXN0ID0gXAogICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fZmlsZW5hbWVfbGlzdF9xdWV1ZS5nZXRfbm93YWl0KCkKICAg
ICAgICAgICAgICAgICBleGNlcHQgUXVldWUuRW1wdHk6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuY2xlYW51cCgpCiAgICAgICAgICAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLmNsb3NlKCkK
KyAgICAgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLmNsZWFudXAoKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgICAgIGlmIHNlbGYuX2N1cnJlbnRf
Z3JvdXAgPT0gInRlc3RzX3RvX2h0dHBfbG9jayI6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3N0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKCkKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuX2hh
dmVfaHR0cF9sb2NrOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdG9wX3NlcnZlcnNfd2l0
aF9sb2NrKCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4g
PSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgICAgICAgICBzaW5nbGVfdGVzdF9ydW5uZXIuc3Rh
cnRfc2VydmVyc193aXRoX2xvY2soKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9odHRwX2xv
Y2tfd2FpdF9lbmQgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgICAgIGVsaWYgc2luZ2xlX3Rl
c3RfcnVubmVyLmhhc19odHRwX2xvY2s6CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZV90ZXN0
X3J1bm5lci5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAogICAgICAgICAgICAgICAgIHNlbGYu
X251bV90ZXN0c19pbl9jdXJyZW50X2dyb3VwID0gbGVuKHNlbGYuX2ZpbGVuYW1lX2xpc3QpCiAg
ICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gdGltZS50aW1l
KCkKQEAgLTIzOCwxNSArMjI0LDE1IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZCh0aHJlYWRpbmcu
VGhyZWFkKToKICAgICAgICAgICAgIGJhdGNoX2NvdW50ICs9IDEKICAgICAgICAgICAgIHNlbGYu
X251bV90ZXN0cyArPSAxCiAKLSAgICAgICAgICAgIHRpbWVvdXQgPSBzZWxmLl9zaW5nbGVfdGVz
dF9ydW5uZXIudGltZW91dCh0ZXN0X2lucHV0KQotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5f
c2luZ2xlX3Rlc3RfcnVubmVyLnJ1bl90ZXN0KHRlc3RfaW5wdXQsIHRpbWVvdXQpCisgICAgICAg
ICAgICB0aW1lb3V0ID0gc2luZ2xlX3Rlc3RfcnVubmVyLnRpbWVvdXQodGVzdF9pbnB1dCkKKyAg
ICAgICAgICAgIHJlc3VsdCA9IHNpbmdsZV90ZXN0X3J1bm5lci5ydW5fdGVzdCh0ZXN0X2lucHV0
LCB0aW1lb3V0KQogCiAgICAgICAgICAgICB0ZXN0c19ydW5fZmlsZS53cml0ZSh0ZXN0X2lucHV0
LmZpbGVuYW1lICsgIlxuIikKICAgICAgICAgICAgIHRlc3RfbmFtZSA9IHNlbGYuX3BvcnQucmVs
YXRpdmVfdGVzdF9maWxlbmFtZSh0ZXN0X2lucHV0LmZpbGVuYW1lKQogICAgICAgICAgICAgaWYg
cmVzdWx0LmZhaWx1cmVzOgogICAgICAgICAgICAgICAgICMgQ2hlY2sgYW5kIGtpbGwgRHVtcFJl
bmRlclRyZWUgaWYgd2UgbmVlZCB0by4KICAgICAgICAgICAgICAgICBpZiBhbnkoW2Yuc2hvdWxk
X2tpbGxfZHVtcF9yZW5kZXJfdHJlZSgpIGZvciBmIGluIHJlc3VsdC5mYWlsdXJlc10pOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIua2lsbF9kdW1wX3JlbmRl
cl90cmVlKCkKKyAgICAgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLmtpbGxfZHVt
cF9yZW5kZXJfdHJlZSgpCiAgICAgICAgICAgICAgICAgICAgICMgUmVzZXQgdGhlIGJhdGNoIGNv
dW50IHNpbmNlIHRoZSBzaGVsbCBqdXN0IGJvdW5jZWQuCiAgICAgICAgICAgICAgICAgICAgIGJh
dGNoX2NvdW50ID0gMAogCkBAIC0yNjAsMzEgKzI0Niw4IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVh
ZCh0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICAgICAgaWYgYmF0Y2hfc2l6ZSA+IDAgYW5k
IGJhdGNoX2NvdW50ID49IGJhdGNoX3NpemU6CiAgICAgICAgICAgICAgICAgIyBCb3VuY2UgdGhl
IHNoZWxsIGFuZCByZXNldCBjb3VudC4KLSAgICAgICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVz
dF9ydW5uZXIua2lsbF9kdW1wX3JlbmRlcl90cmVlKCkKKyAgICAgICAgICAgICAgICBzaW5nbGVf
dGVzdF9ydW5uZXIua2lsbF9kdW1wX3JlbmRlcl90cmVlKCkKICAgICAgICAgICAgICAgICBiYXRj
aF9jb3VudCA9IDAKIAogICAgICAgICAgICAgaWYgdGVzdF9ydW5uZXI6CiAgICAgICAgICAgICAg
ICAgdGVzdF9ydW5uZXIudXBkYXRlX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkpCi0KLSAgICBkZWYg
X3N0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgotICAgICAgICAiIiJBY3F1aXJlIGh0dHAg
bG9jayBhbmQgc3RhcnQgdGhlIHNlcnZlcnMuIiIiCi0gICAgICAgIHNlbGYuX2h0dHBfbG9ja193
YWl0X2JlZ2luID0gdGltZS50aW1lKCkKLSAgICAgICAgX2xvZy5kZWJ1ZygnQWNxdWlyZSBodHRw
IGxvY2sgLi4uJykKLSAgICAgICAgc2VsZi5fcG9ydC5hY3F1aXJlX2h0dHBfbG9jaygpCi0gICAg
ICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCi0gICAgICAgIHNlbGYu
X3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIoKQotICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBX
ZWJTb2NrZXQgc2VydmVyIC4uLicpCi0gICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vic29ja2V0
X3NlcnZlcigpCi0gICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9IHRpbWUudGltZSgp
Ci0gICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2NrID0gVHJ1ZQotCi0gICAgZGVmIF9zdG9wX3Nl
cnZlcnNfd2l0aF9sb2NrKHNlbGYpOgotICAgICAgICAiIiJTdG9wIHRoZSBzZXJ2ZXJzIGFuZCBy
ZWxlYXNlIGh0dHAgbG9jay4iIiIKLSAgICAgICAgaWYgc2VsZi5faGF2ZV9odHRwX2xvY2s6Ci0g
ICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBIVFRQIHNlcnZlciAuLi4nKQotICAgICAg
ICAgICAgc2VsZi5fcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkKLSAgICAgICAgICAgIF9sb2cuZGVi
dWcoJ1N0b3BwaW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgICAgIHNlbGYuX3Bv
cnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKLSAgICAgICAgICAgIF9sb2cuZGVidWcoJ1JlbGVh
c2UgaHR0cCBsb2NrIC4uLicpCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGVhc2VfaHR0cF9s
b2NrKCkKLSAgICAgICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2NrID0gRmFsc2UKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Np
bmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCBlZGNmNmZlODczYzcw
OTFlZjRkMGJiY2JlODEzMjc3OTI0OTZmZWYzLi44ZjE1MWU4YzNhMmFiODlhOWMyMDAzYjYzOWI5
YzY0YjliODgyYWQ5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVu
bmVyLnB5CkBAIC02MCwxMiArNjAsMTUgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcjoKICAgICAg
ICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKICAgICAgICAgc2VsZi5fZHJp
dmVyID0gTm9uZQogICAgICAgICBzZWxmLl90ZXN0X3R5cGVzID0gW10KKyAgICAgICAgc2VsZi5o
YXNfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgZm9yIGNscyBpbiBzZWxmLl9nZXRfdGVzdF90
eXBlX2NsYXNzZXMoKToKICAgICAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMuYXBwZW5kKGNscyhz
ZWxmLl9wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkpKQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAg
ICAgICAgIHNlbGYua2lsbF9kdW1wX3JlbmRlcl90cmVlKCkKKyAgICAgICAgaWYgc2VsZi5oYXNf
aHR0cF9sb2NrOgorICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAog
ICAgIGRlZiBfZ2V0X3Rlc3RfdHlwZV9jbGFzc2VzKHNlbGYpOgogICAgICAgICBjbGFzc2VzID0g
W3RleHRfZGlmZi5UZXN0VGV4dERpZmZdCkBAIC0yMzIsNiArMjM1LDI2IEBAIGNsYXNzIFNpbmds
ZVRlc3RSdW5uZXI6CiAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBm
YWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRvdGFsX3RpbWVfZm9yX2FsbF9kaWZmcywgdGltZV9mb3JfZGlmZnMpCiAKKyAgICBkZWYg
c3RhcnRfc2VydmVyc193aXRoX2xvY2soc2VsZik6CisgICAgICAgIF9sb2cuZGVidWcoJ0FjcXVp
cmluZyBodHRwIGxvY2sgLi4uJykKKyAgICAgICAgc2VsZi5fcG9ydC5hY3F1aXJlX2h0dHBfbG9j
aygpCisgICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCisgICAg
ICAgIHNlbGYuX3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICBfbG9nLmRlYnVnKCdT
dGFydGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCisgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRf
d2Vic29ja2V0X3NlcnZlcigpCisgICAgICAgIHNlbGYuaGFzX2h0dHBfbG9jayA9IFRydWUKKwor
ICAgIGRlZiBzdG9wX3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgorICAgICAgICAiIiJTdG9wIHRo
ZSBzZXJ2ZXJzIGFuZCByZWxlYXNlIGh0dHAgbG9jay4iIiIKKyAgICAgICAgaWYgc2VsZi5oYXNf
aHR0cF9sb2NrOgorICAgICAgICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIg
Li4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRwX3NlcnZlcigpCisgICAgICAg
ICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCisgICAgICAg
ICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigpCisgICAgICAgICAgICBfbG9n
LmRlYnVnKCdSZWxlYXNpbmcgc2VydmVyIGxvY2sgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3Bv
cnQucmVsZWFzZV9odHRwX2xvY2soKQorICAgICAgICAgICAgc2VsZi5oYXNfaHR0cF9sb2NrID0g
RmFsc2UKKwogICAgIGRlZiBraWxsX2R1bXBfcmVuZGVyX3RyZWUoc2VsZik6CiAgICAgICAgICIi
IktpbGwgdGhlIER1bXBSZW5kZXJUcmVlIHByb2Nlc3MgaWYgaXQncyBydW5uaW5nLiIiIgogICAg
ICAgICBpZiBzZWxmLl9kcml2ZXI6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81720</attachid>
            <date>2011-02-08 17:10:31 -0800</date>
            <delta_ts>2011-02-08 17:10:31 -0800</delta_ts>
            <desc>remove giant try/finally, take two</desc>
            <filename>bug-53840-20110208171030.patch</filename>
            <type>text/plain</type>
            <size>8961</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjZm
ZDFiYmIxZmE0ZWY2NjQ5YTc1MTM0YzE0ZTQzYzY2NDc2NGM3Li44ZWQ0Yjk2ODliODAxNWY5YTcw
NTI1NDQ1ZmU4NThlYTMyNzdiODk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogbW92ZSB0aGUg
bG9naWMgdGhhdCBzdGFydHMgYW5kIHN0b3BzIHRoZQorICAgICAgICBzZXJ2ZXJzIGZyb20gZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQgaW50byBzaW5nbGVfdGVzdF9ydW5uZXIKKyAgICAgICAgc28g
dGhhdCB3ZSBjYW4gcmV1c2UgaXQgaW4gdGhlIG5ldyBtdWx0aXByb2Nlc3Npbmcgd29ya2VyIGNs
YXNzCisgICAgICAgIGFzIHdlbGwuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzODQwCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVf
dGVzdF9ydW5uZXIucHk6CisgCisyMDExLTAyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBtb3ZlIGEgYnVuY2ggb2YgdGVzdGluZyBsb2dpYyBv
dXQgb2YKICAgICAgICAgZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQgYW5kIGludG8gc2luZ2xlX3Rl
c3RfcnVubmVyIHNvIHRoYXQgd2UKICAgICAgICAgd2lsbCBiZSBhYmxlIHRvIHJldXNlIGl0IGlu
IHRoZSBuZXcgbXVsdGlwcm9jZXNzaW5nIHdvcmtlciBjbGFzcyBhcyB3ZWxsLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQppbmRleCA3MDRj
YzExYWY2YTQ2YjcxNTRjMzM4Y2EzYzYxOWZlZWRlOTA5ZmU2Li43ZGRkN2IwZjlhYzE4YmE0ODA1
YzhkNDA5MThlZGFhNzgzYmQ4ODE1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9k
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtNzQsMzIgKzc0LDE2IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5fcmVzdWx0X3F1ZXVl
ID0gcmVzdWx0X3F1ZXVlCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25lCiAgICAg
ICAgIHNlbGYuX2ZpbGVuYW1lX2xpc3QgPSBbXQotICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9y
dW5uZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfZ3JvdXBfdGltaW5nX3N0YXRzID0ge30K
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gW10KICAgICAgICAgc2VsZi5fbnVtX3Rlc3Rz
ID0gMAogICAgICAgICBzZWxmLl9zdGFydF90aW1lID0gMAogICAgICAgICBzZWxmLl9zdG9wX3Rp
bWUgPSAwCi0gICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgc2Vs
Zi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPSAwCiAgICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0
X2VuZCA9IDAKIAotICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9zaW5n
bGVfdGVzdF9ydW5uZXI6Ci0gICAgICAgICAgICBzZWxmLl9zaW5nbGVfdGVzdF9ydW5uZXIuY2xl
YW51cCgpCi0gICAgICAgIGlmIHNlbGYuX2hhdmVfaHR0cF9sb2NrOgotICAgICAgICAgICAgc2Vs
Zi5fc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0KLSAgICAgICAgIyBDdXJyZW50IGdyb3VwIG9m
IHRlc3RzIHdlJ3JlIHJ1bm5pbmcuCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPSBOb25l
Ci0gICAgICAgICMgTnVtYmVyIG9mIHRlc3RzIGluIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCi0gICAg
ICAgIHNlbGYuX251bV90ZXN0c19pbl9jdXJyZW50X2dyb3VwID0gTm9uZQotICAgICAgICAjIFRp
bWUgYXQgd2hpY2ggd2Ugc3RhcnRlZCBydW5uaW5nIHRlc3RzIGZyb20gc2VsZi5fY3VycmVudF9n
cm91cC4KLSAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFydF90aW1lID0gTm9uZQotCiAg
ICAgZGVmIGNhbmNlbChzZWxmKToKICAgICAgICAgIiIiU2V0IGEgZmxhZyB0ZWxsaW5nIHRoaXMg
dGhyZWFkIHRvIHF1aXQuIiIiCi0gICAgICAgIHNlbGYuY2xlYW51cCgpCiAgICAgICAgIHNlbGYu
X2NhbmNlbGVkID0gVHJ1ZQogCiAgICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKQEAg
LTE5MSw3ICsxNzUsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6
CiAKICAgICAgICAgSWYgdGVzdF9ydW5uZXIgaXMgbm90IE5vbmUsIHRoZW4gd2UgY2FsbCB0ZXN0
X3J1bm5lci5VcGRhdGVTdW1tYXJ5KCkKICAgICAgICAgd2l0aCB0aGUgcmVzdWx0cyBvZiBlYWNo
IHRlc3QuIiIiCi0gICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lciA9IFNpbmdsZVRlc3RS
dW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwKKyAgICAgICAgc2luZ2xlX3Rlc3RfcnVu
bmVyID0gU2luZ2xlVGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LAogICAgICAg
ICAgICAgc2VsZi5fbmFtZSwgc2VsZi5fd29ya2VyX251bWJlcikKIAogICAgICAgICBiYXRjaF9z
aXplID0gc2VsZi5fb3B0aW9ucy5iYXRjaF9zaXplCkBAIC0yMDcsNyArMTkxLDcgQEAgY2xhc3Mg
VGVzdFNoZWxsVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgaWYgc2VsZi5f
Y2FuY2VsZWQ6CiAgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnVGVzdGluZyBjYW5jZWxsZWQn
KQogICAgICAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLmNsb3NlKCkKLSAgICAgICAgICAgICAg
ICBzZWxmLmNsZWFudXAoKQorICAgICAgICAgICAgICAgIHNpbmdsZV90ZXN0X3J1bm5lci5jbGVh
bnVwKCkKICAgICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgaWYgbGVuKHNlbGYu
X2ZpbGVuYW1lX2xpc3QpIGlzIDA6CkBAIC0yMjAsMTQgKzIwNCwxNiBAQCBjbGFzcyBUZXN0U2hl
bGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2N1
cnJlbnRfZ3JvdXAsIHNlbGYuX2ZpbGVuYW1lX2xpc3QgPSBcCiAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9maWxlbmFtZV9saXN0X3F1ZXVlLmdldF9ub3dhaXQoKQogICAgICAgICAgICAg
ICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGVhbnVw
KCkKICAgICAgICAgICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUuY2xvc2UoKQorICAgICAgICAg
ICAgICAgICAgICBzaW5nbGVfdGVzdF9ydW5uZXIuY2xlYW51cCgpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybgogCiAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY3VycmVudF9ncm91cCA9PSAi
dGVzdHNfdG9faHR0cF9sb2NrIjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3RhcnRfc2Vy
dmVyc193aXRoX2xvY2soKQotICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5faGF2ZV9odHRwX2xv
Y2s6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0b3Bfc2VydmVyc193aXRoX2xvY2soKQor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9iZWdpbiA9IHRpbWUudGlt
ZSgpCisgICAgICAgICAgICAgICAgICAgIHNpbmdsZV90ZXN0X3J1bm5lci5zdGFydF9zZXJ2ZXJz
X3dpdGhfbG9jaygpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2h0dHBfbG9ja193YWl0X2Vu
ZCA9IHRpbWUudGltZSgpCisgICAgICAgICAgICAgICAgZWxpZiBzaW5nbGVfdGVzdF9ydW5uZXIu
aGFzX2h0dHBfbG9jazoKKyAgICAgICAgICAgICAgICAgICAgc2luZ2xlX3Rlc3RfcnVubmVyLnN0
b3Bfc2VydmVyc193aXRoX2xvY2soKQogCiAgICAgICAgICAgICAgICAgc2VsZi5fbnVtX3Rlc3Rz
X2luX2N1cnJlbnRfZ3JvdXAgPSBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkKICAgICAgICAgICAg
ICAgICBzZWxmLl9jdXJyZW50X2dyb3VwX3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQpAQCAtMjM4
LDE1ICsyMjQsMTUgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgog
ICAgICAgICAgICAgYmF0Y2hfY291bnQgKz0gMQogICAgICAgICAgICAgc2VsZi5fbnVtX3Rlc3Rz
ICs9IDEKIAotICAgICAgICAgICAgdGltZW91dCA9IHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lci50
aW1lb3V0KHRlc3RfaW5wdXQpCi0gICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9zaW5nbGVfdGVz
dF9ydW5uZXIucnVuX3Rlc3QodGVzdF9pbnB1dCwgdGltZW91dCkKKyAgICAgICAgICAgIHRpbWVv
dXQgPSBzaW5nbGVfdGVzdF9ydW5uZXIudGltZW91dCh0ZXN0X2lucHV0KQorICAgICAgICAgICAg
cmVzdWx0ID0gc2luZ2xlX3Rlc3RfcnVubmVyLnJ1bl90ZXN0KHRlc3RfaW5wdXQsIHRpbWVvdXQp
CiAKICAgICAgICAgICAgIHRlc3RzX3J1bl9maWxlLndyaXRlKHRlc3RfaW5wdXQuZmlsZW5hbWUg
KyAiXG4iKQogICAgICAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0
X2ZpbGVuYW1lKHRlc3RfaW5wdXQuZmlsZW5hbWUpCiAgICAgICAgICAgICBpZiByZXN1bHQuZmFp
bHVyZXM6CiAgICAgICAgICAgICAgICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVuZGVyVHJlZSBp
ZiB3ZSBuZWVkIHRvLgogICAgICAgICAgICAgICAgIGlmIGFueShbZi5zaG91bGRfa2lsbF9kdW1w
X3JlbmRlcl90cmVlKCkgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzXSk6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lci5raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQor
ICAgICAgICAgICAgICAgICAgICBzaW5nbGVfdGVzdF9ydW5uZXIua2lsbF9kdW1wX3JlbmRlcl90
cmVlKCkKICAgICAgICAgICAgICAgICAgICAgIyBSZXNldCB0aGUgYmF0Y2ggY291bnQgc2luY2Ug
dGhlIHNoZWxsIGp1c3QgYm91bmNlZC4KICAgICAgICAgICAgICAgICAgICAgYmF0Y2hfY291bnQg
PSAwCiAKQEAgLTI2MCwzMSArMjQ2LDggQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKHRocmVhZGlu
Zy5UaHJlYWQpOgogCiAgICAgICAgICAgICBpZiBiYXRjaF9zaXplID4gMCBhbmQgYmF0Y2hfY291
bnQgPj0gYmF0Y2hfc2l6ZToKICAgICAgICAgICAgICAgICAjIEJvdW5jZSB0aGUgc2hlbGwgYW5k
IHJlc2V0IGNvdW50LgotICAgICAgICAgICAgICAgIHNlbGYuX3NpbmdsZV90ZXN0X3J1bm5lci5r
aWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAgICAgICAgICAgICAgIHNpbmdsZV90ZXN0X3J1bm5l
ci5raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQogICAgICAgICAgICAgICAgIGJhdGNoX2NvdW50ID0g
MAogCiAgICAgICAgICAgICBpZiB0ZXN0X3J1bm5lcjoKICAgICAgICAgICAgICAgICB0ZXN0X3J1
bm5lci51cGRhdGVfc3VtbWFyeShyZXN1bHRfc3VtbWFyeSkKLQotICAgIGRlZiBfc3RhcnRfc2Vy
dmVyc193aXRoX2xvY2soc2VsZik6Ci0gICAgICAgICIiIkFjcXVpcmUgaHR0cCBsb2NrIGFuZCBz
dGFydCB0aGUgc2VydmVycy4iIiIKLSAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4g
PSB0aW1lLnRpbWUoKQotICAgICAgICBfbG9nLmRlYnVnKCdBY3F1aXJlIGh0dHAgbG9jayAuLi4n
KQotICAgICAgICBzZWxmLl9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKLSAgICAgICAgX2xvZy5k
ZWJ1ZygnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgc2VsZi5fcG9ydC5zdGFy
dF9odHRwX3NlcnZlcigpCi0gICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIFdlYlNvY2tldCBz
ZXJ2ZXIgLi4uJykKLSAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkK
LSAgICAgICAgc2VsZi5faHR0cF9sb2NrX3dhaXRfZW5kID0gdGltZS50aW1lKCkKLSAgICAgICAg
c2VsZi5faGF2ZV9odHRwX2xvY2sgPSBUcnVlCi0KLSAgICBkZWYgX3N0b3Bfc2VydmVyc193aXRo
X2xvY2soc2VsZik6Ci0gICAgICAgICIiIlN0b3AgdGhlIHNlcnZlcnMgYW5kIHJlbGVhc2UgaHR0
cCBsb2NrLiIiIgotICAgICAgICBpZiBzZWxmLl9oYXZlX2h0dHBfbG9jazoKLSAgICAgICAgICAg
IF9sb2cuZGVidWcoJ1N0b3BwaW5nIEhUVFAgc2VydmVyIC4uLicpCi0gICAgICAgICAgICBzZWxm
Ll9wb3J0LnN0b3BfaHR0cF9zZXJ2ZXIoKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBp
bmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQotICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX3dl
YnNvY2tldF9zZXJ2ZXIoKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnUmVsZWFzZSBodHRwIGxv
Y2sgLi4uJykKLSAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsZWFzZV9odHRwX2xvY2soKQotICAg
ICAgICAgICAgc2VsZi5faGF2ZV9odHRwX2xvY2sgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3Rf
cnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IGVkY2Y2ZmU4NzNjNzA5MWVmNGQwYmJj
YmU4MTMyNzc5MjQ5NmZlZjMuLjhmMTUxZThjM2EyYWI4OWE5YzIwMDNiNjM5YjljNjRiOWI4ODJh
ZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAg
LTYwLDEyICs2MCwxNSBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBzZWxmLl93
b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9kcml2ZXIgPSBOb25l
CiAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMgPSBbXQorICAgICAgICBzZWxmLmhhc19odHRwX2xv
Y2sgPSBGYWxzZQogICAgICAgICBmb3IgY2xzIGluIHNlbGYuX2dldF90ZXN0X3R5cGVfY2xhc3Nl
cygpOgogICAgICAgICAgICAgc2VsZi5fdGVzdF90eXBlcy5hcHBlbmQoY2xzKHNlbGYuX3BvcnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5y
ZXN1bHRzX2RpcmVjdG9yeSkpCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgc2Vs
Zi5raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAgICAgICBpZiBzZWxmLmhhc19odHRwX2xvY2s6
CisgICAgICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQogCiAgICAgZGVmIF9n
ZXRfdGVzdF90eXBlX2NsYXNzZXMoc2VsZik6CiAgICAgICAgIGNsYXNzZXMgPSBbdGV4dF9kaWZm
LlRlc3RUZXh0RGlmZl0KQEAgLTIzMiw2ICsyMzUsMjYgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5l
cjoKICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBk
cml2ZXJfb3V0cHV0LnRlc3RfdGltZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxf
dGltZV9mb3JfYWxsX2RpZmZzLCB0aW1lX2Zvcl9kaWZmcykKIAorICAgIGRlZiBzdGFydF9zZXJ2
ZXJzX3dpdGhfbG9jayhzZWxmKToKKyAgICAgICAgX2xvZy5kZWJ1ZygnQWNxdWlyaW5nIGh0dHAg
bG9jayAuLi4nKQorICAgICAgICBzZWxmLl9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAg
ICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgc2VsZi5f
cG9ydC5zdGFydF9odHRwX3NlcnZlcigpCisgICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIFdl
YlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRf
c2VydmVyKCkKKyAgICAgICAgc2VsZi5oYXNfaHR0cF9sb2NrID0gVHJ1ZQorCisgICAgZGVmIHN0
b3Bfc2VydmVyc193aXRoX2xvY2soc2VsZik6CisgICAgICAgICIiIlN0b3AgdGhlIHNlcnZlcnMg
YW5kIHJlbGVhc2UgaHR0cCBsb2NrLiIiIgorICAgICAgICBpZiBzZWxmLmhhc19odHRwX2xvY2s6
CisgICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBIVFRQIHNlcnZlciAuLi4nKQorICAg
ICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkKKyAgICAgICAgICAgIF9sb2cu
ZGVidWcoJ1N0b3BwaW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYu
X3BvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ1Jl
bGVhc2luZyBzZXJ2ZXIgbG9jayAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxlYXNl
X2h0dHBfbG9jaygpCisgICAgICAgICAgICBzZWxmLmhhc19odHRwX2xvY2sgPSBGYWxzZQorCiAg
ICAgZGVmIGtpbGxfZHVtcF9yZW5kZXJfdHJlZShzZWxmKToKICAgICAgICAgIiIiS2lsbCB0aGUg
RHVtcFJlbmRlclRyZWUgcHJvY2VzcyBpZiBpdCdzIHJ1bm5pbmcuIiIiCiAgICAgICAgIGlmIHNl
bGYuX2RyaXZlcjoK
</data>

          </attachment>
      

    </bug>

</bugzilla>