<?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>72841</bug_id>
          
          <creation_ts>2011-11-20 17:37:32 -0800</creation_ts>
          <short_desc>NRWT: option --skip-pixel-test-if-no-baseline support on DRT</short_desc>
          <delta_ts>2012-04-20 15:32:20 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>70484</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fehér Zsolt">feherzs</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>bank</cc>
    
    <cc>dpranke</cc>
    
    <cc>hnandor</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506628</commentid>
    <comment_count>0</comment_count>
      <attachid>116014</attachid>
    <who name="Fehér Zsolt">feherzs</who>
    <bug_when>2011-11-20 17:37:32 -0800</bug_when>
    <thetext>Created attachment 116014
Patch

Would so good this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511662</commentid>
    <comment_count>1</comment_count>
      <attachid>116014</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-30 05:34:51 -0800</bug_when>
    <thetext>Comment on attachment 116014
Patch

If m_expectedHash.isEmpty() is true then DRT won&apos;t dump the image.
So how can we generate pixel results for new tests after this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570498</commentid>
    <comment_count>2</comment_count>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-05 01:09:46 -0800</bug_when>
    <thetext>If there is no objection, I would like to continue fixing the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570571</commentid>
    <comment_count>3</comment_count>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-05 04:21:54 -0800</bug_when>
    <thetext>Reproducing the bug:

1 - doing a missing test
mv LayoutTests/svg/custom/text-zoom-expected.png LayoutTests/svg/custom/text-zoom-renamed.png

2 - gives missing result, uses WebkitTestRunner
Tools/Scripts/new-run-webkit-tests --qt -p --no-new-test-results -2 svg/custom/text-zoom.xhtml

3 - the test won&apos;t fail, uses WebkitTestRunner
Tools/Scripts/new-run-webkit-tests --qt -p --no-new-test-results --skip-pixel-test-if-no-baseline -2 svg/custom/text-zoom.xhtml


The goal is for

4 - uses DumpRenderTree
Tools/Scripts/new-run-webkit-tests --qt -p --no-new-test-results --skip-pixel-test-if-no-baseline svg/custom/text-zoom.xhtml

to not give fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572768</commentid>
    <comment_count>4</comment_count>
      <attachid>130591</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-07 03:55:15 -0800</bug_when>
    <thetext>Created attachment 130591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573192</commentid>
    <comment_count>5</comment_count>
      <attachid>130591</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-07 13:41:11 -0800</bug_when>
    <thetext>Comment on attachment 130591
Patch

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

Technology in new-run-webkit-tests has evolved over the past few months, and I think we should use a different approach for this patch. We now have the ability to run different tests with different command line flags (using the code in DriverProxy in webkitpy/layout_tests/port/driver.py), and given that we know whether we should run pixel tests or not in worker.py (as your change indicates), we should combine pass test_input.should_run_pixel_test to driver_input and pass run_pixel_test to driver_input and just use a different DRT instance to run the test in this case. 

If we do that, then you don&apos;t need to modify DRT at all and the logic of needing pixel tests or not stays where it should be, in worker.py and single_test_runner.py.

Let me know if that&apos;s enough for you to work on, or if you would like me to work up a patch to illustrate this.

Thanks!

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/worker.py:126
&gt; +            if (driver_name == &quot;WebKitTestRunner&quot; or driver_name == &quot;DumpRenderTree&quot;) and self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;) and self._port.get_option(&apos;pixel_tests&apos;):

drivers are basically always either named &apos;WebKitTestRunner&apos; or &apos;DumpRenderTree&apos;. You can remove these checks and just check the port.get_option(X) values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573204</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-07 13:54:41 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 130591 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130591&amp;action=review
&gt; 
&gt; Technology in new-run-webkit-tests has evolved over the past few months, and I think we should use a different approach for this patch. We now have the ability to run different tests with different command line flags (using the code in DriverProxy in webkitpy/layout_tests/port/driver.py), and given that we know whether we should run pixel tests or not in worker.py (as your change indicates), we should combine pass test_input.should_run_pixel_test to driver_input and pass run_pixel_test to driver_input and just use a different DRT instance to run the test in this case. 

I thought we wanted to stop running multiple DRTs with different command lines (and remove the current multiple command line cases)?  For example, on Qt and GTK+, each new DRT will likely require a new Xvfb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573210</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-07 13:59:02 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 130591 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130591&amp;action=review
&gt; &gt; 
&gt; &gt; Technology in new-run-webkit-tests has evolved over the past few months, and I think we should use a different approach for this patch. We now have the ability to run different tests with different command line flags (using the code in DriverProxy in webkitpy/layout_tests/port/driver.py), and given that we know whether we should run pixel tests or not in worker.py (as your change indicates), we should combine pass test_input.should_run_pixel_test to driver_input and pass run_pixel_test to driver_input and just use a different DRT instance to run the test in this case. 
&gt; 
&gt; I thought we wanted to stop running multiple DRTs with different command lines (and remove the current multiple command line cases)?  For example, on Qt and GTK+, each new DRT will likely require a new Xvfb.

We do, but I want to make that change uniformly across all of the ports. Adding another command line flag like in this patch (which affects the behavior on all tests) is just going to complicate thing further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573784</commentid>
    <comment_count>8</comment_count>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-08 06:01:02 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; drivers are basically always either named &apos;WebKitTestRunner&apos; or &apos;DumpRenderTree&apos;. You can remove these checks and just check the port.get_option(X) values.

Ok, I see it.

&gt; We now have the ability to run different tests with different command line flags (using the code in DriverProxy in webkitpy/layout_tests/port/driver.py), 

I have found it, it is DriverProxy&apos;s run_test method which is called by SingleTestRunner, but there are some thing that aren&apos;t clear for me.

&gt; given that we know whether we should run pixel tests or not in worker.py (as your change indicates), we should combine pass test_input.should_run_pixel_test to driver_input and pass run_pixel_test to driver_input and just use a different DRT instance to run the test in this case. 

I can&apos;t found the run_pixel_test you have mentioned. Is it a method, or a member? I don&apos;t understand how should the combined passing mechanism work.

&gt; If we do that, then you don&apos;t need to modify DRT at all and the logic of needing pixel tests or not stays where it should be, in worker.py and single_test_runner.py.

Should we remove all of the modifications from WebkitTestRunner that were made by https://bugs.webkit.org/show_bug.cgi?id=70484, and we don&apos;t need those ones in DRT that can be found in the patch above too? I mean we should handle it only with Python code?
If I understood it correctly, we should always skip pixeltest for a test if there isn&apos;t any expected png which belongs to it. So we won&apos;t use the command line argument --skip-pixel-test-if-no-baseline for evoking this behavior, will we?

It is difficult for me to comprehent, please descibe your request more detailed. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574095</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-08 12:40:21 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; given that we know whether we should run pixel tests or not in worker.py (as your change indicates), we should combine pass test_input.should_run_pixel_test to driver_input and pass run_pixel_test to driver_input and just use a different DRT instance to run the test in this case. 
&gt; 
&gt; I can&apos;t found the run_pixel_test you have mentioned. Is it a method, or a member? I don&apos;t understand how should the combined passing mechanism work.
&gt;

I&apos;m sorry, I could have been a little clearer. Change the is_reftest member of DriverInput to run_pixel_test and assign it the value we compute in worker and singletestrunner.
 
&gt; &gt; If we do that, then you don&apos;t need to modify DRT at all and the logic of needing pixel tests or not stays where it should be, in worker.py and single_test_runner.py.
&gt; 
&gt; Should we remove all of the modifications from WebkitTestRunner that were made by https://bugs.webkit.org/show_bug.cgi?id=70484, and we don&apos;t need those ones in DRT that can be found in the patch above too? I mean we should handle it only with Python code?

I probably would remove the previous changes in WebkitTestRunner, yes. I am saying we can handle it completely in Python code (for now; eventually we want to pass in whether we need pixel results or not as part of the per-test input, but that&apos;s a whole different discussion you should ignore for now :).

&gt; If I understood it correctly, we should always skip pixeltest for a test if there isn&apos;t any expected png which belongs to it. So we won&apos;t use the command line argument --skip-pixel-test-if-no-baseline for evoking this behavior, will we?

Different webkit ports want different behavior. The Qt port wants to skip the pixel tests, but the Chromium port doesn&apos;t, for example. So we still need the flag on new-run-webkit-tests.

I hope this helps; let me know if you have further questions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577214</commentid>
    <comment_count>10</comment_count>
      <attachid>131584</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-13 03:40:53 -0700</bug_when>
    <thetext>Created attachment 131584
WIP patch

(In reply to comment #9)
&gt; I hope this helps; let me know if you have further questions?
It helped, thank you. Is this similar to your notion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577254</commentid>
    <comment_count>11</comment_count>
      <attachid>131598</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-13 05:55:22 -0700</bug_when>
    <thetext>Created attachment 131598
WIP patch

Newer version of the patch, I have refactored it.

If we run the command

Tools/Scripts/new-run-webkit-tests --qt -p --no-new-test-results --skip-pixel-test-if-no-baseline svg/custom/text-zoom.xhtml

the pixel_tests_needed and self._run_pixel_test are False in DriverProxy&apos; run_test method. I do not understand why cmd_line_key contains the --pixel-test option in DriverProxy/run_test in this case. Dirk, do you have any idea for this? Aside from, will it be approximately the proper way for handling tests that do not have pngs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577660</commentid>
    <comment_count>12</comment_count>
      <attachid>131598</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-13 12:27:20 -0700</bug_when>
    <thetext>Comment on attachment 131598
WIP patch

This looks pretty close to what I had in mind. If you make the changes I suggest below, that might fix your problems; if not, I&apos;ll probably have to take another look at it to figure out what&apos;s going on.

Thanks!

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

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:114
&gt; +        # because it still does pixeltests in this case

this logic should be inside self._driver_input().

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/worker.py:126
&gt; +            if self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;) and self._port.get_option(&apos;pixel_tests&apos;):

I think the logic in this branch looks shady, but that&apos;s probably because we have the self._pixel_tests logic in other places as well. We should consolidate it all here, probably to something like:

if self._port.get_option(&apos;pixel_tests&apos;):
    if self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;):
        test_input.should_run_pixel_test = (self._port.expected_image(test_input.test_name) != None)
    else:
        test_input.should_run_pixel_test = True
else:
    test_input.should_run_pixel_test = False

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:211
&gt; +        pixel_tests_needed = self._pixel_tests or driver_input.run_pixel_test

I think you can get rid of the self._pixel_tests member completely and just use driver_input.run_pixel_test here.

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:559
&gt; +            self._start(driver_input.run_pixel_test or self._pixel_tests, [])

See comment above and see if we can remove self._pixel_tests here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578316</commentid>
    <comment_count>13</comment_count>
      <attachid>131828</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-14 05:00:29 -0700</bug_when>
    <thetext>Created attachment 131828
Patch

(In reply to comment #12
I had to modify the WebKitDriver&apos;s cmd_line method too, because it passes the --pixel-test option to the drivers every time, but it should not. This was the cause of the problem I have mentioned in the previous comment.
Thank you for the information again, now it was detailed enough. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578626</commentid>
    <comment_count>14</comment_count>
      <attachid>116014</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-14 12:08:46 -0700</bug_when>
    <thetext>Comment on attachment 116014
Patch

clearing r? on this patch since we&apos;re taking a different approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578628</commentid>
    <comment_count>15</comment_count>
      <attachid>131828</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-14 12:14:30 -0700</bug_when>
    <thetext>Comment on attachment 131828
Patch

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

Almost there. Make sure that test-webkitpy passes after this next iteration and you should be all set.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:97
&gt; +            self._driver._pixel_tests = False

instead of modifying self._driver._pixel_tests here (which should be a private member of driver), just modify the driver implementations and delete the _pixel_tests member from them.

&gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:213
&gt; +        if test_input.run_pixel_test:

This won&apos;t actually work. This code needs to know if something is actually a reftest. You will need to modify the run(), input_from_line(), and output_for_test() methods to pass around is_reftest as a separate argument.

&gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:276
&gt; +        if self._options.pixel_tests and (test_input.image_hash or test_input.run_pixel_test):

See above. This needs to stay as is_reftest, as a separate argument.

&gt; Tools/Scripts/webkitpy/layout_tests/port/webkit.py:482
&gt; +        if pixel_tests and self._pixel_tests:

Just remove the reference to self._pixel_tests completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588798</commentid>
    <comment_count>16</comment_count>
      <attachid>134036</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-27 05:21:46 -0700</bug_when>
    <thetext>Created attachment 134036
Patch

(In reply to comment #15)
&gt; just modify the driver implementations and delete the _pixel_tests member from them.

I have made the modifications that you suggested, and removed self._pixel_tests from DriverProxy. How should I modify the driver implementations? And in your opinion what cause the fail in it:

FAIL: test_crash_log (webkitpy.layout_tests.port.chromium_unittest.ChromiumDriverTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/home/hnandor/clean/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py&quot;, line 110, in test_crash_log
    self.assertEqual(driver_output.crash_log, &apos;mockcrashlog&apos;)
AssertionError: &lt;webkitpy.thirdparty.mock.Mock object at 0x3a8ed50&gt; != &apos;mockcrashlog&apos;

Only this one unittest fails and it seems --skip-pixel-test-if-no-baseline option works good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589580</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-27 19:04:43 -0700</bug_when>
    <thetext>The py(In reply to comment #16)
&gt; Created an attachment (id=134036) [details]
&gt; Patch
&gt; 
&gt; (In reply to comment #15)
&gt; &gt; just modify the driver implementations and delete the _pixel_tests member from them.
&gt; 
&gt; I have made the modifications that you suggested, and removed self._pixel_tests from DriverProxy. How should I modify the driver implementations?

You should be able to remove any references to self._pixel_tests in driver.py, chromium.py, and webkit.py as well. 

&gt; And in your opinion what cause the fail in it:
&gt; 
&gt; FAIL: test_crash_log (webkitpy.layout_tests.port.chromium_unittest.ChromiumDriverTest)

I would bet this is unrelated. Does it still happen if you sync to the current tip of the tree?

The patch looks good to me otherwise, but I&apos;d like someone else to sanity check the changes to TestController .. ossy or tony or adam, can you do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589751</commentid>
    <comment_count>18</comment_count>
      <attachid>134238</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-28 01:49:35 -0700</bug_when>
    <thetext>Created attachment 134238
Patch

(In reply to comment #17)
&gt; I would bet this is unrelated. Does it still happen if you sync to the current tip of the tree?
Yes, this was the problem, now every unittest pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589754</commentid>
    <comment_count>19</comment_count>
      <attachid>134238</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-28 01:54:09 -0700</bug_when>
    <thetext>Comment on attachment 134238
Patch

Attachment 134238 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12153041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589755</commentid>
    <comment_count>20</comment_count>
      <attachid>134238</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-28 01:54:13 -0700</bug_when>
    <thetext>Comment on attachment 134238
Patch

Attachment 134238 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12153040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589757</commentid>
    <comment_count>21</comment_count>
      <attachid>134238</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-28 01:58:17 -0700</bug_when>
    <thetext>Comment on attachment 134238
Patch

Attachment 134238 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12153043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589771</commentid>
    <comment_count>22</comment_count>
      <attachid>134242</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-28 02:19:23 -0700</bug_when>
    <thetext>Created attachment 134242
Patch

(In reply to comment #21)
&gt; (From update of attachment 134238 [details])
&gt; Attachment 134238 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/12153043

Oops, I forgot removing a line from WebkitTestRunner and renaming an is_reftest reference. I hope now it will be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590092</commentid>
    <comment_count>23</comment_count>
      <attachid>134242</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-28 10:19:22 -0700</bug_when>
    <thetext>Comment on attachment 134242
Patch

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

The changes to WTR seem fine. Just some style nits in the python code. I&apos;ll let Dirk give the final review.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:99
&gt; +        driver_input = DriverInput(self._test_name, self._timeout, image_hash, bool(self._reference_files))
&gt; +        if not self._should_run_pixel_test:
&gt; +            driver_input.run_pixel_test = False
&gt; +        else:
&gt; +            driver_input.run_pixel_test = True

Can we pass &quot;not self._should_run_pixel_test&quot; as the 4th argument to the DriverInput constructor?  It looks like we&apos;re just overwriting the value after it&apos;s set.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/worker.py:149
&gt; +            if self._port.get_option(&apos;pixel_tests&apos;):
&gt; +                if self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;):
&gt; +                    test_input.should_run_pixel_test = (self._port.expected_image(test_input.test_name) != None)
&gt; +                else:
&gt; +                    test_input.should_run_pixel_test = True
&gt; +            else:
&gt; +                test_input.should_run_pixel_test = False

This could be:

if self._port.get_option(&apos;pixel_tests&apos;) and self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;):
    test_input.should_run_pixel_test = (self._port.expected_image(test_input.test_name) != None)
else:
     test_input.should_run_pixel_test = self._port.get_option(&apos;pixel_tests&apos;)

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:41
&gt; -        self.is_reftest = is_reftest
&gt; +        self.run_pixel_test = run_pixel_test

Nit: I like should_run_pixel_test (sounds like a bool) better than run_pixel_test (sounds like an action or function).

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:227
&gt; -        self._driver.start(self._pixel_tests, [])
&gt; +        self._driver.start(True, [])

It&apos;s not obvious to me why we pass True here? Does this mean perftestrunner will have pixel dumping enabled (is that the old behavior)? Maybe it&apos;s OK because DriverProxy.start will be removed soon?

&gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:207
&gt;          return DriverInput(test_name, 0, checksum, is_reftest)

Nit: It might be more readable to make the 4th argument more explicit.  E.g., run_pixel_test=is_reftest.

&gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:272
&gt;          return DriverInput(test_name, timeout, checksum, is_reftest)

Nit: It might be more readable to make the 4th argument more explicit.  E.g., run_pixel_test=is_reftest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590268</commentid>
    <comment_count>24</comment_count>
      <attachid>134242</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-28 12:24:26 -0700</bug_when>
    <thetext>Comment on attachment 134242
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/worker.py:149
&gt;&gt; +                test_input.should_run_pixel_test = False
&gt; 
&gt; This could be:
&gt; 
&gt; if self._port.get_option(&apos;pixel_tests&apos;) and self._port.get_option(&apos;skip_pixel_test_if_no_baseline&apos;):
&gt;     test_input.should_run_pixel_test = (self._port.expected_image(test_input.test_name) != None)
&gt; else:
&gt;      test_input.should_run_pixel_test = self._port.get_option(&apos;pixel_tests&apos;)

I&apos;m not sure that this is clearer; the logic is kinda convoluted either way.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:41
&gt;&gt; +        self.run_pixel_test = run_pixel_test
&gt; 
&gt; Nit: I like should_run_pixel_test (sounds like a bool) better than run_pixel_test (sounds like an action or function).

works for me.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:227
&gt;&gt; +        self._driver.start(True, [])
&gt; 
&gt; It&apos;s not obvious to me why we pass True here? Does this mean perftestrunner will have pixel dumping enabled (is that the old behavior)? Maybe it&apos;s OK because DriverProxy.start will be removed soon?

The value is overridden in practice by the run_test() call, but picking the right default might save us from starting a non-pixel-test DRT and then having to start a second one down the road (or vice versa). This should probably either be self._port.get_option(&apos;pixel_tests&apos;) or stay as self._pixel_tests (and then keep line 184 as well.

Tony&apos;s other nits seem fine to me. I&apos;ll mark this R+, CQ-; you can upload another patch w/ the nits addressed and then anyone should be able to CQ+ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590964</commentid>
    <comment_count>25</comment_count>
      <attachid>134530</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-03-29 02:08:38 -0700</bug_when>
    <thetext>Created attachment 134530
Patch

Tony, Dirk, thank you for the comments, I fixed the lines you have suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599145</commentid>
    <comment_count>26</comment_count>
      <attachid>134530</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-10 04:13:39 -0700</bug_when>
    <thetext>Comment on attachment 134530
Patch

It conflicts with ToT now. :( Could you update it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600194</commentid>
    <comment_count>27</comment_count>
      <attachid>136656</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-04-11 04:21:59 -0700</bug_when>
    <thetext>Created attachment 136656
Patch

(In reply to comment #26)
&gt; (From update of attachment 134530 [details])
&gt; It conflicts with ToT now. :( Could you update it, please?

Of course, I have updated, and uploaded it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600482</commentid>
    <comment_count>28</comment_count>
      <attachid>136656</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-11 12:22:42 -0700</bug_when>
    <thetext>Comment on attachment 136656
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:188
&gt; +            is_reftest = driver_input.should_run_pixel_test

I think this is probably wrong, and that you need to use the logic on lines 205-206 to set is_reftest, and then probably (I haven&apos;t tried this) set should_run_pixel_tests to (self._options.pixel_tests or driver_input.image_hash).

I don&apos;t think I have all the unit tests I need yet to make sure mock_drt doesn&apos;t break, but I&apos;d be curious to know if mock_drt_unittest.py actually passes with this change? You should also do something like &apos;run-webkit-tests --platform mock-mac-lion&apos; and &apos;run-webkit-tests --platform mock-gtk&apos; and make sure the script runs to completion without any crashes or anything else weird happening.

Note that if you can actually run these steps with this patch as-is and everything looks right, then it&apos;s possible that I&apos;m wrong and your patch is right :).

The mock_drt logic is kind of subtle  and confusing, and I&apos;m probably the only one who&apos;s ever really used it; if it&apos;s not clear what the right changes are to get things to work, let me know and I&apos;ll see if I can update the patch correctly.

(And note that until very recently, all of this code was just broken anyway, which is why you weren&apos;t getting the feedback until now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601910</commentid>
    <comment_count>29</comment_count>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-04-13 01:20:34 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 136656 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136656&amp;action=review 
&gt; I don&apos;t think I have all the unit tests I need yet to make sure mock_drt doesn&apos;t break, but I&apos;d be curious to know if mock_drt_unittest.py actually passes with this change? You should also do something like &apos;run-webkit-tests --platform mock-mac-lion&apos; and &apos;run-webkit-tests --platform mock-gtk&apos; and make sure the script runs to completion without any crashes or anything else weird happening.

You are right, these commands fail with this error:
File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/webkit.py&quot;, line 545, in run_test
    self._driver.start(self._port.get_option(&apos;pixel_tests&apos;), [])
AttributeError: &apos;GtkDriver&apos; object has no attribute &apos;_driver&apos;

But I do not understand why the system is missing the _driver member. I did not removed it, is this because of this
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py:188
&gt; &gt; +            is_reftest = driver_input.should_run_pixel_test
&gt; 

modification in your opinion? I do not have any idea for it, what could we do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602267</commentid>
    <comment_count>30</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-13 11:28:50 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; You are right, these commands fail with this error:
&gt; File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/webkit.py&quot;, line 545, in run_test
&gt;     self._driver.start(self._port.get_option(&apos;pixel_tests&apos;), [])
&gt; AttributeError: &apos;GtkDriver&apos; object has no attribute &apos;_driver&apos;
&gt; 
&gt; But I do not understand why the system is missing the _driver member. I did not removed it, is this because of this

That object is a driver (a GtkDriver). You changed that line from self._start() to self._driver.start() (probably a cut&amp;paste from DriverProxy in driver.py). Change it back :).

-- Dirk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603032</commentid>
    <comment_count>31</comment_count>
      <attachid>137313</attachid>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-04-16 04:16:12 -0700</bug_when>
    <thetext>Created attachment 137313
Patch

&gt; That object is a driver (a GtkDriver). You changed that line from self._start() to self._driver.start() (probably a cut&amp;paste from DriverProxy in driver.py). Change it back :).
Thank you, it was a carelessness on my part.

&gt; I think this is probably wrong, and that you need to use the logic on lines 205-206 to set is_reftest, and then probably (I haven&apos;t tried this) set should_run_pixel_tests to (self._options.pixel_tests or driver_input.image_hash).
I have run unittests with
    is_reftest = driver_input.should_run_pixel_test
    driver_input.should_run_pixel_test = (self._options.pixel_tests or driver_input.image_hash)
modifications in mock_drt.py:188, but 16 fail appeared, they were similar to this one:

ERROR: webkitpy.layout_tests.port.mock_drt_unittest.MockDRTTest.test_textonly
--------------------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py&quot;, line 192, in test_textonly
    self.assertTest(&apos;passes/image.html&apos;, False)
  File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py&quot;, line 154, in assertTest
    res = drt.run()
  File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt.py&quot;, line 188, in run
    is_reftest = (self._port.reference_files(test_name) or
NameError: global name &apos;test_name&apos; is not defined

Then I tried this:
    is_reftest = driver_input.should_run_pixel_test
    driver_input.should_run_pixel_test = (self._options.pixel_tests or driver_input.image_hash)
Only one unittest failed with it:

FAILURE: webkitpy.layout_tests.port.mock_drt_unittest.MockDRTTest.test_missing_image
--------------------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py&quot;, line 198, in test_missing_image
    self.assertTest(&apos;failures/expected/missing_image.html&apos;, True)
  File &quot;/home/hnandor/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py&quot;, line 160, in assertTest
    self.assertEqual(stdout.buflist, drt_output)
AssertionError: Lists differ: [&apos;Content-Type: text/plain\n&apos;,... != [&apos;Content-Type: text/plain\n&apos;,...

First differing element 3:

#EOF

First list contains 3 additional elements.
First extra element 4:
ActualHash: None

+ [&apos;Content-Type: text/plain\n&apos;, &apos;missing_image-txt&apos;, &apos;#EOF\n&apos;, &apos;#EOF\n&apos;]
- [&apos;Content-Type: text/plain\n&apos;,
-  &apos;missing_image-txt&apos;,
-  &apos;#EOF\n&apos;,
-  &apos;\n&apos;,
-  &apos;ActualHash: None\n&apos;,
-  &apos;ExpectedHash: None\n&apos;,
-  &apos;#EOF\n&apos;]

And with this combination:
    driver_input.should_run_pixel_test = (self._options.pixel_tests or driver_input.image_hash)
    is_reftest = driver_input.should_run_pixel_tests
11 fails were generated.

But with only this line:
    is_reftest = driver_input.should_run_pixel_test
all of the unittests passed. It means that there is no need for the logic on lines 205-206 here?
You were right, I have not run unittests before uploading the last patch and some other unittests failed because of wrong parameter number (output_for_test) and missing renaming (test_input.is_reftest) in mock_drt.py.
Now the run-webkit-tests --platform mock-gtk, run-webkit-tests --platform mock-mac-lion and testwebkitpy run without any errors, and I hope it means everything is OK with this version of patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606177</commentid>
    <comment_count>32</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-19 16:52:44 -0700</bug_when>
    <thetext>Argh, this logic is convoluted. I&apos;ve applied your patch locally and it doesn&apos;t do the right thing, and now it&apos;s not clear what the right thing is :) ... I&apos;m working on it and will report back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606184</commentid>
    <comment_count>33</comment_count>
      <attachid>134242</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-19 16:54:17 -0700</bug_when>
    <thetext>Comment on attachment 134242
Patch

Cleared Dirk Pranke&apos;s review+ from obsolete attachment 134242 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606253</commentid>
    <comment_count>34</comment_count>
      <attachid>138019</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-19 18:11:26 -0700</bug_when>
    <thetext>Created attachment 138019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606261</commentid>
    <comment_count>35</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-19 18:16:40 -0700</bug_when>
    <thetext>Okay, it turns out that your patch wasn&apos;t properly accounting for whether a test was a reftest or not in worker.py and single_test_runner.py: we always want to tell DRT/WTR to run a pixel test if the test is a reftest.

So, I&apos;ve uploaded a new, revised patch that makes things work (as far as I can tell) and cleans things up as well.

I moved the logic for figuring out if a test is reftest or not from single_test_runner to worker so that we could set should_run_pixel_test correctly.

That allowed me to see that MockDRT should *only* rely on the --pixel-tests parameter to figure out whether or not to look for and return image data - since reference tests should always have this flag be true - and thus split out whether or not to write pixel data (yes if --pixel-tests is on the command line) from *what* data to write (varies depending on if the test is a ref test or not).

Sheesh. You wouldn&apos;t have thought this change would be so hard to get right, but I think the code is cleaner as a result.

Let me know if this looks good to you, and I&apos;ll land it. Thanks for hanging in there!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606441</commentid>
    <comment_count>36</comment_count>
    <who name="Nandor Huszka">hnandor</who>
    <bug_when>2012-04-20 01:20:12 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Okay, it turns out that your patch wasn&apos;t properly accounting for whether a test was a reftest or not in worker.py and single_test_runner.py: we always want to tell DRT/WTR to run a pixel test if the test is a reftest.

Oh, good to know this, now I am aware of it. 

&gt; So, I&apos;ve uploaded a new, revised patch that makes things work (as far as I can tell) and cleans things up as well.
&gt; 
&gt; I moved the logic for figuring out if a test is reftest or not from single_test_runner to worker so that we could set should_run_pixel_test correctly.
&gt; 
&gt; Sheesh. You wouldn&apos;t have thought this change would be so hard to get right, but I think the code is cleaner as a result.

This is my opinion too, now it is more comprehensive.

&gt; Let me know if this looks good to you, and I&apos;ll land it. Thanks for hanging in there!

I have applied the patch and there is no trouble with it. Thank you for speeding up the process, and uploading this patch. It would take much more time if you had not done this. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606965</commentid>
    <comment_count>37</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-20 15:32:15 -0700</bug_when>
    <thetext>Committed r114788: &lt;http://trac.webkit.org/changeset/114788&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116014</attachid>
            <date>2011-11-20 17:37:32 -0800</date>
            <delta_ts>2012-04-19 18:11:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>drt_patch.txt</filename>
            <type>text/plain</type>
            <size>833</size>
            <attacher name="Fehér Zsolt">feherzs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHANCmluZGV4IGYz
ZTMwZGQuLmZmZDI2NDggMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcA0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVRdC5jcHANCkBAIC05NzIsMTQgKzk3MiwxNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpk
dW1wKCkNCiANCiAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiXG5BY3R1YWxIYXNoOiAlc1xuIiwg
cVByaW50YWJsZShhY3R1YWxIYXNoKSk7DQogDQotICAgICAgICBib29sIGR1bXBJbWFnZSA9IHRy
dWU7DQorICAgICAgICBib29sIGR1bXBJbWFnZSA9IGZhbHNlOw0KIA0KICAgICAgICAgaWYgKCFt
X2V4cGVjdGVkSGFzaC5pc0VtcHR5KCkpIHsNCiAgICAgICAgICAgICBRX0FTU0VSVChtX2V4cGVj
dGVkSGFzaC5sZW5ndGgoKSA9PSAzMik7DQogICAgICAgICAgICAgZnByaW50ZihzdGRvdXQsICJc
bkV4cGVjdGVkSGFzaDogJXNcbiIsIHFQcmludGFibGUobV9leHBlY3RlZEhhc2gpKTsNCg0KLSAg
ICAgICAgICAgIGlmIChtX2V4cGVjdGVkSGFzaCA9PSBhY3R1YWxIYXNoKQ0KLSAgICAgICAgICAg
ICAgICBkdW1wSW1hZ2UgPSBmYWxzZTsNCisgICAgICAgICAgICBpZiAobV9leHBlY3RlZEhhc2gg
IT0gYWN0dWFsSGFzaCkNCisgICAgICAgICAgICAgICAgZHVtcEltYWdlID0gdHJ1ZTsNCiAgICAg
ICAgIH0NCiANCiAgICAgICAgIGlmIChkdW1wSW1hZ2UpIHs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130591</attachid>
            <date>2012-03-07 03:55:15 -0800</date>
            <delta_ts>2012-03-14 05:00:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltestDRT.diff</filename>
            <type>text/plain</type>
            <size>5420</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjM2
NDI2Li41NTI1ZTZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDMtMDcgIE7DoW5kb3IgSHVzemthICA8aHVz
emthLm5hbmRvckBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtRdF0gTlJXVCBvcHRpb24g
LS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgc2hvdWxkIGhhdmUgc3VwcG9ydCBvbiBE
UlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG5l
dy1ydW4td2Via2l0LXRlc3RzIG5vdyBwYXNzZXMgdGhlIC0tc2tpcC1waXhlbC10ZXN0LWlmLW5v
LWJhc2VsaW5lCisgICAgICAgIG9wdGlvbiB0byBEUlQsIHdoaWNoIHdvbid0IHJ1biBwaXhlbHRl
c3QgaWYgdGhlcmUgaXNuJ3QgYW55IGV4cGVjdGVkIHBuZyB0aGF0CisgICAgICAgIGJlbG9uZ3Mg
dG8gdGhlIGFjdHVhbCB0ZXN0LiBBcyBhIHJlc3VsdCBhIG1pc3NpbmcgcG5nIGRvZXNuJ3QgY2F1
c2UgdGVzdCBmYWlsCisgICAgICAgIHdpdGggdGhpcyBvcHRpb24uCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkR1
bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVu
ZGVyVHJlZTo6ZHVtcCk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6c2V0U2tp
cFBpeGVsVGVzdElmTm9CYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0Lmg6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHA6CisgICAgICAgIChp
c09wdGlvbik6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxl
X3Rlc3RfbGlzdCk6CisKIDIwMTItMDMtMDcgIEJ5dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEJ1aWxkIHdhcm5pbmc6IEZpeCB3YXJuX3VudXNlZF9y
ZXN1bHQgd2FybmluZ3MuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuY3BwCmluZGV4IDU1ZDY0ZWYuLjdmZTdlODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0zODYsNiArMzg2LDcgQEAgV2ViVmlld0dyYXBo
aWNzQmFzZWQ6OldlYlZpZXdHcmFwaGljc0Jhc2VkKFFXaWRnZXQqIHBhcmVudCkKIAogRHVtcFJl
bmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKCkKICAgICA6IG1fZHVtcFBpeGVscyhmYWxzZSkKKyAg
ICAsIG1fc2tpcFBpeGVsVGVzdElmTm9CYXNlbGluZShmYWxzZSkKICAgICAsIG1fc3RkaW4oMCkK
ICAgICAsIG1fZW5hYmxlVGV4dE91dHB1dChmYWxzZSkKICAgICAsIG1fc3RhbmRBbG9uZU1vZGUo
ZmFsc2UpCkBAIC05NDgsOCArOTQ5LDEyIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OmR1bXAoKQog
ICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRvdXQpOwogICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRlcnIp
OwogCisgICAgYm9vbCBzaG91bGRTa2lwUGl4ZWxUZXN0ID0gZmFsc2U7CisgICAgaWYgKG1fc2tp
cFBpeGVsVGVzdElmTm9CYXNlbGluZSAmJiBtX2V4cGVjdGVkSGFzaC5pc0VtcHR5KCkpCisgICAg
ICAgIHNob3VsZFNraXBQaXhlbFRlc3QgPSB0cnVlOworCiAgICAgLy8gRklYTUU6IEFsbCBvdGhl
ciBwb3J0cyBkb24ndCBkdW1wIHBpeGVscywgaWYgZ2VuZXJhdGVQaXhlbFJlc3VsdHMgaXMgZmFs
c2UuCi0gICAgaWYgKG1fZHVtcFBpeGVscykgeworICAgIGlmIChtX2R1bXBQaXhlbHMgJiYgIXNo
b3VsZFNraXBQaXhlbFRlc3QpIHsKICAgICAgICAgUUltYWdlIGltYWdlKG1fcGFnZS0+dmlld3Bv
cnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CiAgICAgICAgIGltYWdlLmZpbGwoUXQ6
OndoaXRlKTsKICAgICAgICAgUVBhaW50ZXIgcGFpbnRlcigmaW1hZ2UpOwpAQCAtMTE0NSw0ICsx
MTUwLDkgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0U2hvdWxkVGltZW91dChib29sIGZsYWcp
CiAgICAgbV9jb250cm9sbGVyLT5zZXRTaG91bGRUaW1lb3V0KGZsYWcpOwogfQogCit2b2lkIER1
bXBSZW5kZXJUcmVlOjpzZXRTa2lwUGl4ZWxUZXN0SWZOb0Jhc2VsaW5lKGJvb2wgZmxhZykKK3sK
KyAgICBtX3NraXBQaXhlbFRlc3RJZk5vQmFzZWxpbmUgPSBmbGFnOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggZDM5MjhiYy4uYjQzZWRi
NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0dyYXBoaWNzQmFzZWQoKSB7IHJldHVybiBt
X2dyYXBoaWNzQmFzZWQ7IH0KIAogICAgIHZvaWQgc2V0RHVtcFBpeGVscyhib29sKTsKKyAgICB2
b2lkIHNldFNraXBQaXhlbFRlc3RJZk5vQmFzZWxpbmUoYm9vbCBmbGFnKTsKIAogICAgIHZvaWQg
Y2xvc2VSZW1haW5pbmdXaW5kb3dzKCk7CiAgICAgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRl
QmVmb3JlVGVzdGluZyhjb25zdCBRVXJsJik7CkBAIC0xNDMsNiArMTQ0LDcgQEAgcHJpdmF0ZToK
ICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciAqbV9jb250cm9sbGVyOwogCiAgICAgYm9vbCBtX2R1
bXBQaXhlbHM7CisgICAgYm9vbCBtX3NraXBQaXhlbFRlc3RJZk5vQmFzZWxpbmU7CiAgICAgUVN0
cmluZyBtX2V4cGVjdGVkSGFzaDsKICAgICBRU3RyaW5nTGlzdCBtX3N0YW5kQWxvbmVNb2RlVGVz
dExpc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L21haW4uY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHAKaW5kZXggMTc2MzM2Ny4uMTMxZjIzZSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvbWFpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBpc09wdGlv
bihjb25zdCBRU3RyaW5nJiBzdHIpCiAgICAgcmV0dXJuIHN0ciA9PSBRU3RyaW5nKCItdiIpIHx8
IHN0ciA9PSBRU3RyaW5nKCItLXBpeGVsLXRlc3RzIikKICAgICAgICAgICAgfHwgc3RyID09IFFT
dHJpbmcoIi0tc3Rkb3V0IikgfHwgc3RyID09IFFTdHJpbmcoIi0tc3RkZXJyIikKICAgICAgICAg
ICAgfHwgc3RyID09IFFTdHJpbmcoIi0tdGltZW91dCIpIHx8IHN0ciA9PSBRU3RyaW5nKCItLW5v
LXRpbWVvdXQiKQotICAgICAgICAgICB8fCBzdHIgPT0gUVN0cmluZygiLSIpOworICAgICAgICAg
ICB8fCBzdHIgPT0gUVN0cmluZygiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUiKSB8
fCBzdHIgPT0gUVN0cmluZygiLSIpOwogfQogCiBRU3RyaW5nIHRha2VPcHRpb25WYWx1ZShRU3Ry
aW5nTGlzdCYgYXJndW1lbnRzLCBpbnQgaW5kZXgpCkBAIC0yMjksNiArMjI5LDEyIEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIGFyZ3MucmVtb3ZlQXQoaW5kZXgp
OwogICAgIH0KIAorICAgIGluZGV4ID0gYXJncy5pbmRleE9mKFFMYXRpbjFTdHJpbmcoIi0tc2tp
cC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIikpOworICAgIGlmIChpbmRleCAhPSAtMSkgewor
ICAgICAgICBkdW1wZXIuc2V0U2tpcFBpeGVsVGVzdElmTm9CYXNlbGluZSh0cnVlKTsKKyAgICAg
ICAgYXJncy5yZW1vdmVBdChpbmRleCk7CisgICAgfQorCiAgICAgaW5kZXggPSBhcmdzLmluZGV4
T2YoUUxhdGluMVN0cmluZygiLSIpKTsKICAgICBpZiAoaW5kZXggIT0gLTEpIHsKICAgICAgICAg
YXJncy5yZW1vdmVBdChpbmRleCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKaW5kZXggMjJjMGE1Zi4uZDM1
YjVlZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQpAQCAtMTIyLDggKzEyMiw4IEBAIGNsYXNzIFdvcmtl
cihtYW5hZ2VyX3dvcmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBzdGFydF90
aW1lID0gdGltZS50aW1lKCkKICAgICAgICAgbnVtX3Rlc3RzID0gMAogICAgICAgICBmb3IgdGVz
dF9pbnB1dCBpbiB0ZXN0X2xpc3Q6Ci0gICAgICAgICAgICAjRklYTUU6IFdoZW4gdGhlIERSVCBz
dXBwb3J0IGFsc28gdGhpcyBmdW5jdGlvbiwgdGhhdCB3b3VsZCBiZSB1c2VmdWwKLSAgICAgICAg
ICAgIGlmIHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKSA9PSAiV2ViS2l0VGVzdFJ1bm5lciIgYW5k
IHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5lJykg
YW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKKyAgICAgICAgICAgIGRy
aXZlcl9uYW1lID0gc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgpCisgICAgICAgICAgICBpZiAoZHJp
dmVyX25hbWUgPT0gIldlYktpdFRlc3RSdW5uZXIiIG9yIGRyaXZlcl9uYW1lID09ICJEdW1wUmVu
ZGVyVHJlZSIpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9u
b19iYXNlbGluZScpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CiAg
ICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5f
cG9ydC5leHBlY3RlZF9pbWFnZSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkgIT0gTm9uZSkKICAgICAg
ICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCiAgICAgICAgICAgICBudW1fdGVzdHMg
Kz0gMQo=
</data>
<flag name="review"
          id="133645"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="133646"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131584</attachid>
            <date>2012-03-13 03:40:53 -0700</date>
            <delta_ts>2012-03-13 05:55:22 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wipptest.diff</filename>
            <type>text/plain</type>
            <size>8325</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM0NmVhNy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RleHQtem9vbS1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVs
bCBkaWZmZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCA2
Mzc1ODIwLi4yMDA2Y2Y2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CkBAIC0xMDIsNyArMTAyLDMzIEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX3JlZnRlc3QoKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25z
Lm5ld19iYXNlbGluZSBvciBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHM6CiAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcnVuX3JlYmFzZWxpbmUoKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbXBhcmVfdGVzdCgpCisgICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfcnVuX3BpeGVsX3Rl
c3Q6CisgICAgICAgICAgICAjIERvIG5vdCBydW4gcGl4ZWwgdGVzdCwgYmVjYXVzZSBvZiBtaXNz
aW5nIHBuZy4KKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tcGFyZV90ZXN0X3dpdGhv
dXRfcG5nX3Rlc3QoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBSdW4gcGl4ZWwgdGVz
dCwgcG5nIGNvdWxkIGJlIGZvdW5kLgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21w
YXJlX3Rlc3QoKQorCisgICAgZGVmIF9ydW5fY29tcGFyZV90ZXN0X3dpdGhvdXRfcG5nX3Rlc3Qo
c2VsZik6CisgICAgICAgIGRyaXZlcl9pbnB1dCA9IHNlbGYuX2RyaXZlcl9pbnB1dCgpCisKKyAg
ICAgICAgIyBiZWNhdXNlIG9mIHRoZXNlIHR3byBjb21tYW5kIHBpeGVsX3Rlc3RzX25lZWRlZCB3
aWxsIGJlIEZhbHNlIGluIERyaXZlclByb3h5J3MgcnVuX3Rlc3QgbWV0aG9kCisgICAgICAgIHNl
bGYuX2RyaXZlci5fcGl4ZWxfdGVzdHMgPSBGYWxzZQorICAgICAgICBkcml2ZXJfaW5wdXQucnVu
X3BpeGVsX3Rlc3QgPSBGYWxzZQorCisgICAgICAgICMgc29tZWhvdyB3ZSBzaG91bGQgcmVtb3Zl
IC0tcGl4ZWwtdGVzdCBhbmQgLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgb3B0aW9u
cyBmcm9tIGFyZ3MKKyAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVz
dChkcml2ZXJfaW5wdXQpCisgICAgICAgIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQgPSBzZWxmLl9l
eHBlY3RlZF9kcml2ZXJfb3V0cHV0KCkKKworICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmlnbm9y
ZV9tZXRyaWNzOgorICAgICAgICAgICAgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5zdHJpcF9tZXRy
aWNzKCkKKyAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuc3RyaXBfbWV0cmljcygpCisKKyAgICAg
ICAgdGVzdF9yZXN1bHQgPSBzZWxmLl9jb21wYXJlX291dHB1dChkcml2ZXJfb3V0cHV0LCBleHBl
Y3RlZF9kcml2ZXJfb3V0cHV0KQorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5ld190ZXN0X3Jl
c3VsdHM6CisgICAgICAgICAgICBzZWxmLl9hZGRfbWlzc2luZ19iYXNlbGluZXModGVzdF9yZXN1
bHQsIGRyaXZlcl9vdXRwdXQpCisgICAgICAgIHRlc3RfcmVzdWx0X3dyaXRlci53cml0ZV90ZXN0
X3Jlc3VsdChzZWxmLl9wb3J0LCBzZWxmLl90ZXN0X25hbWUsIGRyaXZlcl9vdXRwdXQsIGV4cGVj
dGVkX2RyaXZlcl9vdXRwdXQsIHRlc3RfcmVzdWx0LmZhaWx1cmVzKQorICAgICAgICByZXR1cm4g
dGVzdF9yZXN1bHQKIAogICAgIGRlZiBfcnVuX2NvbXBhcmVfdGVzdChzZWxmKToKICAgICAgICAg
ZHJpdmVyX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChzZWxmLl9kcml2ZXJfaW5wdXQo
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL3dvcmtlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3dvcmtlci5weQppbmRleCAyMmMwYTVmLi5mMDFhNGRlIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29y
a2VyLnB5CkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jy
b2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgIG51bV90ZXN0cyA9IDAKICAgICAgICAgZm9y
IHRlc3RfaW5wdXQgaW4gdGVzdF9saXN0OgogICAgICAgICAgICAgI0ZJWE1FOiBXaGVuIHRoZSBE
UlQgc3VwcG9ydCBhbHNvIHRoaXMgZnVuY3Rpb24sIHRoYXQgd291bGQgYmUgdXNlZnVsCi0gICAg
ICAgICAgICBpZiBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkgPT0gIldlYktpdFRlc3RSdW5uZXIi
IGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGlu
ZScpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CisgICAgICAgICAg
ICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGlu
ZScpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CiAgICAgICAgICAg
ICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5fcG9ydC5leHBl
Y3RlZF9pbWFnZSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkgIT0gTm9uZSkKICAgICAgICAgICAgIHNl
bGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCiAgICAgICAgICAgICBudW1fdGVzdHMgKz0gMQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpp
bmRleCBmYTZlODFiLi42YTQ5OThhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMzQsMTEgKzM0LDExIEBAIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgcGF0aAogCiAKIGNsYXNzIERyaXZlcklucHV0KG9i
amVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dCwgaW1hZ2Vf
aGFzaCwgaXNfcmVmdGVzdCwgYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVz
dF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBydW5fcGl4ZWxfdGVzdCwgYXJncz1Ob25lKToK
ICAgICAgICAgc2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2VsZi50aW1lb3V0
ID0gdGltZW91dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBpbWFnZV9oYXNo
Ci0gICAgICAgIHNlbGYuaXNfcmVmdGVzdCA9IGlzX3JlZnRlc3QKKyAgICAgICAgc2VsZi5ydW5f
cGl4ZWxfdGVzdCA9IHJ1bl9waXhlbF90ZXN0CiAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3Mgb3Ig
W10KIAogCkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAg
ICAgICAgICAgIHZpcnR1YWxfZHJpdmVyX2lucHV0LmFyZ3MgPSBzZWxmLl9wb3J0Lmxvb2t1cF92
aXJ0dWFsX3Rlc3RfYXJncyhkcml2ZXJfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICAgICAgcmV0
dXJuIHNlbGYucnVuX3Rlc3QodmlydHVhbF9kcml2ZXJfaW5wdXQpCiAKLSAgICAgICAgcGl4ZWxf
dGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVzdHMgb3IgZHJpdmVyX2lucHV0LmlzX3JlZnRl
c3QKKyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVzdHMgb3IgZHJp
dmVyX2lucHV0LnJ1bl9waXhlbF90ZXN0CiAgICAgICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2Nt
ZF9saW5lX2FzX2tleShwaXhlbF90ZXN0c19uZWVkZWQsIGRyaXZlcl9pbnB1dC5hcmdzKQogICAg
ICAgICBpZiBub3QgY21kX2xpbmVfa2V5IGluIHNlbGYuX3J1bm5pbmdfZHJpdmVyczoKICAgICAg
ICAgICAgIHNlbGYuX3J1bm5pbmdfZHJpdmVyc1tjbWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9k
cml2ZXIocGl4ZWxfdGVzdHNfbmVlZGVkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCBjYzNiMGM3Li5jNTg5MDQyIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQpAQCAtNTU2LDcgKzU1Niw3IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogCiAgICAg
ZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9z
ZXJ2ZXJfcHJvY2VzczoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5pc19y
ZWZ0ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAgICAgICAgIHNlbGYuX3N0YXJ0
KGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCBvciBzZWxmLl9waXhlbF90ZXN0cywgW10pCiAg
ICAgICAgIHNlbGYuZXJyb3JfZnJvbV90ZXN0ID0gc3RyKCkKICAgICAgICAgc2VsZi5lcnJfc2Vl
bl9lb2YgPSBGYWxzZQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDQyZTBjNzIuLjJjZTFjY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC02NCw3ICs2NCw2IEBAIFRlc3RDb250cm9sbGVyJiBUZXN0Q29udHJv
bGxlcjo6c2hhcmVkKCkKIAogVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdj
LCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgOiBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBt
X3NraXBQaXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX3ZlcmJvc2UoZmFsc2UpCiAgICAg
LCBtX3ByaW50U2VwYXJhdG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJNb2RlKGZhbHNl
KQpAQCAtMjU2LDExICsyNTUsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGlu
dCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8t
YmFzZWxpbmUiKSB7Ci0gICAgICAgICAgICBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSB0cnVlOwot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXJndW1lbnQg
PT0gIi0tcGl4ZWwtdGVzdHMiKSB7CiAgICAgICAgICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwog
ICAgICAgICAgICAgY29udGludWU7CkBAIC01MDUsNyArNDk5LDYgQEAgYm9vbCBUZXN0Q29udHJv
bGxlcjo6cnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0KQogICAgIG1fc3RhdGUgPSBSdW5uaW5nVGVz
dDsKIAogICAgIG1fY3VycmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVzdEludm9jYXRp
b24ocGF0aE9yVVJMKSk7Ci0gICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0U2tpcFBpeGVsVGVz
dE9wdGlvbihtX3NraXBQaXhlbFRlc3RPcHRpb24pOwogICAgIGlmIChtX2R1bXBQaXhlbHMpCiAg
ICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGV4cGVjdGVkUGl4ZWxI
YXNoKTsgICAgCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBh
YzlmMWZmLi5iOTQ2NWVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC0xMDUsNyArMTA1LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8VGVzdEludm9jYXRpb24+
IG1fY3VycmVudEludm9jYXRpb247CiAKICAgICBib29sIG1fZHVtcFBpeGVsczsKLSAgICBib29s
IG1fc2tpcFBpeGVsVGVzdE9wdGlvbjsKICAgICBib29sIG1fdmVyYm9zZTsKICAgICBib29sIG1f
cHJpbnRTZXBhcmF0b3JzOwogICAgIGJvb2wgbV91c2luZ1NlcnZlck1vZGU7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGY2ZmIzMTEuLjg4OTNjM2EgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC05NSw3ICs5NSw2
IEBAIFRlc3RJbnZvY2F0aW9uOjpUZXN0SW52b2NhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aE9yVVJMKQogICAgIDogbV91cmwoQWRvcHRXSywgY3JlYXRlV0tVUkwocGF0aE9yVVJMLmNfc3Ry
KCkpKQogICAgICwgbV9wYXRoT3JVUkwocGF0aE9yVVJMKQogICAgICwgbV9kdW1wUGl4ZWxzKGZh
bHNlKQotICAgICwgbV9za2lwUGl4ZWxUZXN0T3B0aW9uKGZhbHNlKQogICAgICwgbV9nb3RJbml0
aWFsUmVzcG9uc2UoZmFsc2UpCiAgICAgLCBtX2dvdEZpbmFsTWVzc2FnZShmYWxzZSkKICAgICAs
IG1fZ290UmVwYWludChmYWxzZSkKQEAgLTEwOSw4ICsxMDgsNiBAQCBUZXN0SW52b2NhdGlvbjo6
flRlc3RJbnZvY2F0aW9uKCkKIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogewotICAgIGlmIChtX3NraXBQ
aXhlbFRlc3RPcHRpb24gJiYgIWV4cGVjdGVkUGl4ZWxIYXNoLmxlbmd0aCgpKQotICAgICAgICBy
ZXR1cm47CiAgICAgbV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICBtX2V4cGVjdGVkUGl4ZWxIYXNo
ID0gZXhwZWN0ZWRQaXhlbEhhc2g7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmgKaW5kZXggYWY5ZjM4Zi4uOTE2NTIwNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uaApAQCAtMzksNyArMzksNiBAQCBwdWJsaWM6CiAgICAgflRlc3RJbnZvY2F0
aW9uKCk7CiAKICAgICB2b2lkIHNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBl
Y3RlZFBpeGVsSGFzaCk7Ci0gICAgdm9pZCBzZXRTa2lwUGl4ZWxUZXN0T3B0aW9uKGJvb2wgb3B0
aW9uKSB7IG1fc2tpcFBpeGVsVGVzdE9wdGlvbiA9IG9wdGlvbjsgfQogCiAgICAgdm9pZCBpbnZv
a2UoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpOwpAQCAtNTUsNyArNTQs
NiBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3Ry
aW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7Ci0gICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247
CiAKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRpYWxSZXNwb25z
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131598</attachid>
            <date>2012-03-13 05:55:22 -0700</date>
            <delta_ts>2012-03-14 05:00:29 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wipptest.diff</filename>
            <type>text/plain</type>
            <size>7492</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM0NmVhNy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RleHQtem9vbS1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVs
bCBkaWZmZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCA2
Mzc1ODIwLi4xZTY1YTY3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CkBAIC0xMDUsNyArMTA1LDE0IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tcGFyZV90ZXN0KCkKIAogICAgIGRlZiBfcnVuX2NvbXBhcmVf
dGVzdChzZWxmKToKLSAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVz
dChzZWxmLl9kcml2ZXJfaW5wdXQoKSkKKyAgICAgICAgZHJpdmVyX2lucHV0ID0gc2VsZi5fZHJp
dmVyX2lucHV0KCkKKyAgICAgICAgIyBiZWNhdXNlIG9mIHRoZXNlIHR3byB2YXJpYWJsZSBwaXhl
bF90ZXN0c19uZWVkZWQgd2lsbCBiZSBGYWxzZSBpbiBEcml2ZXJQcm94eSdzIHJ1bl90ZXN0IG1l
dGhvZAorICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX3J1bl9waXhlbF90ZXN0OgorICAgICAg
ICAgICAgZHJpdmVyX2lucHV0LnJ1bl9waXhlbF90ZXN0ID0gRmFsc2UKKyAgICAgICAgICAgIHNl
bGYuX2RyaXZlci5fcGl4ZWxfdGVzdHMgPSBGYWxzZQorICAgICAgICAjIGJ1dCBzb21laG93IHdl
IHNob3VsZCByZW1vdmUgLS1waXhlbC10ZXN0IGFuZCAtLXNraXAtcGl4ZWwtdGVzdC1pZi1uby1i
YXNlbGluZSBvcHRpb25zIGZyb20gYXJncworICAgICAgICAjIGJlY2F1c2UgaXQgc3RpbGwgZG9l
cyBwaXhlbHRlc3RzIGluIHRoaXMgY2FzZQorICAgICAgICBkcml2ZXJfb3V0cHV0ID0gc2VsZi5f
ZHJpdmVyLnJ1bl90ZXN0KGRyaXZlcl9pbnB1dCkKICAgICAgICAgZXhwZWN0ZWRfZHJpdmVyX291
dHB1dCA9IHNlbGYuX2V4cGVjdGVkX2RyaXZlcl9vdXRwdXQoKQogCiAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMuaWdub3JlX21ldHJpY3M6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKaW5kZXggMjJjMGE1Zi4u
ZjAxYTRkZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQpAQCAtMTIzLDcgKzEyMyw3IEBAIGNsYXNzIFdv
cmtlcihtYW5hZ2VyX3dvcmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBudW1f
dGVzdHMgPSAwCiAgICAgICAgIGZvciB0ZXN0X2lucHV0IGluIHRlc3RfbGlzdDoKICAgICAgICAg
ICAgICNGSVhNRTogV2hlbiB0aGUgRFJUIHN1cHBvcnQgYWxzbyB0aGlzIGZ1bmN0aW9uLCB0aGF0
IHdvdWxkIGJlIHVzZWZ1bAotICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgp
ID09ICJXZWJLaXRUZXN0UnVubmVyIiBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lwX3Bp
eGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKSBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhl
bF90ZXN0cycpOgorICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lwX3Bp
eGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKSBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhl
bF90ZXN0cycpOgogICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90
ZXN0ID0gKHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UodGVzdF9pbnB1dC50ZXN0X25hbWUpICE9
IE5vbmUpCiAgICAgICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2lucHV0KQogICAgICAgICAg
ICAgbnVtX3Rlc3RzICs9IDEKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9kcml2ZXIucHkKaW5kZXggZmE2ZTgxYi4uNmE0OTk4YSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTM0
LDExICszNCwxMSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIAog
CiBjbGFzcyBEcml2ZXJJbnB1dChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0
X25hbWUsIHRpbWVvdXQsIGltYWdlX2hhc2gsIGlzX3JlZnRlc3QsIGFyZ3M9Tm9uZSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgcnVuX3Bp
eGVsX3Rlc3QsIGFyZ3M9Tm9uZSk6CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1l
CiAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5p
bWFnZV9oYXNoID0gaW1hZ2VfaGFzaAotICAgICAgICBzZWxmLmlzX3JlZnRlc3QgPSBpc19yZWZ0
ZXN0CisgICAgICAgIHNlbGYucnVuX3BpeGVsX3Rlc3QgPSBydW5fcGl4ZWxfdGVzdAogICAgICAg
ICBzZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCiAKIApAQCAtMjA4LDcgKzIwOCw3IEBAIGNsYXNzIERy
aXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgICAgICB2aXJ0dWFsX2RyaXZlcl9pbnB1dC5hcmdz
ID0gc2VsZi5fcG9ydC5sb29rdXBfdmlydHVhbF90ZXN0X2FyZ3MoZHJpdmVyX2lucHV0LnRlc3Rf
bmFtZSkKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bl90ZXN0KHZpcnR1YWxfZHJpdmVyX2lu
cHV0KQogCi0gICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IHNlbGYuX3BpeGVsX3Rlc3RzIG9y
IGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0CisgICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IHNl
bGYuX3BpeGVsX3Rlc3RzIG9yIGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdAogICAgICAgICBj
bWRfbGluZV9rZXkgPSBzZWxmLl9jbWRfbGluZV9hc19rZXkocGl4ZWxfdGVzdHNfbmVlZGVkLCBk
cml2ZXJfaW5wdXQuYXJncykKICAgICAgICAgaWYgbm90IGNtZF9saW5lX2tleSBpbiBzZWxmLl9y
dW5uaW5nX2RyaXZlcnM6CiAgICAgICAgICAgICBzZWxmLl9ydW5uaW5nX2RyaXZlcnNbY21kX2xp
bmVfa2V5XSA9IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzX25lZWRlZCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXgg
Y2MzYjBjNy4uYzU4OTA0MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTU1Niw3ICs1NTYsNyBAQCBjbGFzcyBXZWJLaXRE
cml2ZXIoRHJpdmVyKToKIAogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpOgog
ICAgICAgICBpZiBub3Qgc2VsZi5fc2VydmVyX3Byb2Nlc3M6Ci0gICAgICAgICAgICBzZWxmLl9z
dGFydChkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdCBvciBzZWxmLl9waXhlbF90ZXN0cywgW10pCisg
ICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQucnVuX3BpeGVsX3Rlc3Qgb3Igc2Vs
Zi5fcGl4ZWxfdGVzdHMsIFtdKQogICAgICAgICBzZWxmLmVycm9yX2Zyb21fdGVzdCA9IHN0cigp
CiAgICAgICAgIHNlbGYuZXJyX3NlZW5fZW9mID0gRmFsc2UKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0MmUwYzcyLi4yY2UxY2NiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNjQsNyArNjQsNiBAQCBUZXN0
Q29udHJvbGxlciYgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpCiAKIFRlc3RDb250cm9sbGVyOjpU
ZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIDogbV9kdW1w
UGl4ZWxzKGZhbHNlKQotICAgICwgbV9za2lwUGl4ZWxUZXN0T3B0aW9uKGZhbHNlKQogICAgICwg
bV92ZXJib3NlKGZhbHNlKQogICAgICwgbV9wcmludFNlcGFyYXRvcnMoZmFsc2UpCiAgICAgLCBt
X3VzaW5nU2VydmVyTW9kZShmYWxzZSkKQEAgLTI1NiwxMSArMjU1LDYgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0t
c2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIikgewotICAgICAgICAgICAgbV9za2lwUGl4
ZWxUZXN0T3B0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0K
ICAgICAgICAgaWYgKGFyZ3VtZW50ID09ICItLXBpeGVsLXRlc3RzIikgewogICAgICAgICAgICAg
bV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTA1LDcgKzQ5
OSw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogdGVzdCkKICAg
ICBtX3N0YXRlID0gUnVubmluZ1Rlc3Q7CiAKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uID0gYWRv
cHRQdHIobmV3IFRlc3RJbnZvY2F0aW9uKHBhdGhPclVSTCkpOwotICAgIG1fY3VycmVudEludm9j
YXRpb24tPnNldFNraXBQaXhlbFRlc3RPcHRpb24obV9za2lwUGl4ZWxUZXN0T3B0aW9uKTsKICAg
ICBpZiAobV9kdW1wUGl4ZWxzKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRJc1Bp
eGVsVGVzdChleHBlY3RlZFBpeGVsSGFzaCk7ICAgIAogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYWM5ZjFmZi4uYjk0NjVlZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTA1LDcgKzEwNSw2IEBAIHByaXZhdGU6CiAgICAg
T3duUHRyPFRlc3RJbnZvY2F0aW9uPiBtX2N1cnJlbnRJbnZvY2F0aW9uOwogCiAgICAgYm9vbCBt
X2R1bXBQaXhlbHM7Ci0gICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247CiAgICAgYm9vbCBt
X3ZlcmJvc2U7CiAgICAgYm9vbCBtX3ByaW50U2VwYXJhdG9yczsKICAgICBib29sIG1fdXNpbmdT
ZXJ2ZXJNb2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRl
eCBmNmZiMzExLi44ODkzYzNhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtOTUsNyArOTUsNiBAQCBUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24o
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCkKICAgICA6IG1fdXJsKEFkb3B0V0ssIGNyZWF0
ZVdLVVJMKHBhdGhPclVSTC5jX3N0cigpKSkKICAgICAsIG1fcGF0aE9yVVJMKHBhdGhPclVSTCkK
ICAgICAsIG1fZHVtcFBpeGVscyhmYWxzZSkKLSAgICAsIG1fc2tpcFBpeGVsVGVzdE9wdGlvbihm
YWxzZSkKICAgICAsIG1fZ290SW5pdGlhbFJlc3BvbnNlKGZhbHNlKQogICAgICwgbV9nb3RGaW5h
bE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX2dvdFJlcGFpbnQoZmFsc2UpCkBAIC0xMDksOCArMTA4
LDYgQEAgVGVzdEludm9jYXRpb246On5UZXN0SW52b2NhdGlvbigpCiAKIHZvaWQgVGVzdEludm9j
YXRpb246OnNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFz
aCkKIHsKLSAgICBpZiAobV9za2lwUGl4ZWxUZXN0T3B0aW9uICYmICFleHBlY3RlZFBpeGVsSGFz
aC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwogICAgIG1fZHVtcFBpeGVscyA9IHRydWU7CiAg
ICAgbV9leHBlY3RlZFBpeGVsSGFzaCA9IGV4cGVjdGVkUGl4ZWxIYXNoOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGFmOWYzOGYuLjkxNjUyMDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTM5LDcgKzM5LDYgQEAgcHVi
bGljOgogICAgIH5UZXN0SW52b2NhdGlvbigpOwogCiAgICAgdm9pZCBzZXRJc1BpeGVsVGVzdChj
b25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwotICAgIHZvaWQgc2V0U2tpcFBp
eGVsVGVzdE9wdGlvbihib29sIG9wdGlvbikgeyBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSBvcHRp
b247IH0KIAogICAgIHZvaWQgaW52b2tlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5KTsKQEAgLTU1LDcgKzU0LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fZHVt
cFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBtX2V4cGVjdGVkUGl4ZWxIYXNoOwotICAgIGJvb2wg
bV9za2lwUGl4ZWxUZXN0T3B0aW9uOwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJv
b2wgbV9nb3RJbml0aWFsUmVzcG9uc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131828</attachid>
            <date>2012-03-14 05:00:29 -0700</date>
            <delta_ts>2012-03-27 05:21:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltest.diff</filename>
            <type>text/plain</type>
            <size>14161</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZmVl
MTQxLi44N2NkZTUxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDMtMTQgIE7DoW5kb3IgSHVzemthICA8aHVz
emthLm5hbmRvckBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtOUldUXSBOUldUOiBvcHRp
b24gLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgc3VwcG9ydCBvbiBEUlQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODQxCisKKyAgICAg
ICAgTWFrZSBOUldUIHRvIGhhbmRsZSAtLXNraXAtcGl4ZWwtdGVzdC1pZi1uby1iYXNlbGluZSBv
cHRpb24gb24gZXZlcnkgZHJpdmVycywKKyAgICAgICAgbm90IG9ubHkgb24gRFJULiBUaGUgcGF0
Y2ggaXRzZWxmIHBhc3NlcyB0aGUgaW5mb3JtYXRpb24gd2hldGhlciBydW5uaW5nIHBpeGVsdGVz
dAorICAgICAgICBpcyBuZWVkZWQgdG8gZXZlcnkgdGVzdGlucHV0LiBJZiBhIHRlc3QgZG9lcyBu
b3QgaGF2ZSBhbnkgZXhwZWN0ZWQgcG5nLCBwaXhlbHRlc3QKKyAgICAgICAgd2lsbCBub3QgcnVu
bmVkLCBhcyBhIHJlc3VsdCBpdCB3aWxsIG5vdCBjYXVzZSBhIG1pc3NpbmcgZXJyb3IuCisgICAg
ICAgIFRoZSBEcml2ZXIncyBpc19yZWZ0ZXN0IG9wdGlvbiBoYXMgYmVlbiByZW5hbWVkLCB0aGF0
IGlzIHdoeSBtYW55IHVuaXR0ZXN0CisgICAgICAgIGFuZCBvdGhlciBtZXRob2RzIGFyZSBtb2Rp
ZmllZC4KKyAgICAgICAgT3JpZ2luYWwgb3B0aW9uIGhhbmRsaW5nIGlzIHJlbW92ZWQgZnJvbSBX
ZWJLaXRUZXN0UnVubmVyLCBiZWNhdXNlIGl0IGNhbiBiZQorICAgICAgICBkb25lIG9ubHkgd2l0
aCBQeXRob24gY29kZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Npbmds
ZV90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2RyaXZlcl9pbnB1
dCk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9ydW5fcmVmdGVzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5OgorICAg
ICAgICAoV29ya2VyLmhhbmRsZV90ZXN0X2xpc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAgICAgIChDaHJv
bWl1bURyaXZlclRlc3QudGVzdF9jcmFzaGVkX3Byb2Nlc3NfbmFtZSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2
ZXJJbnB1dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXJQcm94eS5ydW5fdGVzdCk6CisgICAg
ICAgIChEcml2ZXJQcm94eS5jbWRfbGluZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weToKKyAgICAgICAgKE1vY2tEUlQub3V0cHV0X2Zv
cl90ZXN0KToKKyAgICAgICAgKE1vY2tDaHJvbWl1bURSVC5ydW5fb25lX3Rlc3QpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5OgorICAgICAg
ICAoV2ViS2l0RHJpdmVyLmNtZF9saW5lKToKKyAgICAgICAgKFdlYktpdERyaXZlci5ydW5fdGVz
dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnJ1blRlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OlRlc3RJ
bnZvY2F0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OnNldElzUGl4ZWxUZXN0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAg
IChUZXN0SW52b2NhdGlvbik6CisKIDIwMTItMDMtMTEgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgLS1pbnN0cnVtZW50cyBvcHRpb24gdG8gc3Vuc3Bp
ZGVyIHRvIHByb2ZpbGUgd2l0aCBJbnN0cnVtZW50cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xl
X3Rlc3RfcnVubmVyLnB5CmluZGV4IDYzNzU4MjAuLjgyNjE5MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1
bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAgLTkxLDcgKzkxLDE0IEBAIGNsYXNzIFNpbmds
ZVRlc3RSdW5uZXI6CiAgICAgICAgIGltYWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYu
X3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFz
aCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQotICAgICAg
ICByZXR1cm4gRHJpdmVySW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFn
ZV9oYXNoLCBib29sKHNlbGYuX3JlZmVyZW5jZV9maWxlcykpCisgICAgICAgIGRyaXZlcl9pbnB1
dCA9IERyaXZlcklucHV0KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFz
aCwgYm9vbChzZWxmLl9yZWZlcmVuY2VfZmlsZXMpKQorICAgICAgICBpZiBub3Qgc2VsZi5fc2hv
dWxkX3J1bl9waXhlbF90ZXN0OgorICAgICAgICAgICAgZHJpdmVyX2lucHV0LnJ1bl9waXhlbF90
ZXN0ID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYuX2RyaXZlci5fcGl4ZWxfdGVzdHMgPSBGYWxz
ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZHJpdmVyX2lucHV0LnJ1bl9waXhlbF90ZXN0
ID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5fZHJpdmVyLl9waXhlbF90ZXN0cyA9IFRydWUKKyAg
ICAgICAgcmV0dXJuIGRyaXZlcl9pbnB1dAogCiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAg
aWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgpAQCAtMjg3LDcgKzI5NCw3IEBAIGNsYXNzIFNpbmds
ZVRlc3RSdW5uZXI6CiAgICAgICAgIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2ggPSBzb3J0ZWQK
ICAgICAgICAgZm9yIGV4cGVjdGF0aW9uLCByZWZlcmVuY2VfZmlsZW5hbWUgaW4gcHV0QWxsTWlz
bWF0Y2hCZWZvcmVNYXRjaChzZWxmLl9yZWZlcmVuY2VfZmlsZXMpOgogICAgICAgICAgICAgcmVm
ZXJlbmNlX3Rlc3RfbmFtZSA9IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShyZWZl
cmVuY2VfZmlsZW5hbWUpCi0gICAgICAgICAgICByZWZlcmVuY2Vfb3V0cHV0ID0gc2VsZi5fZHJp
dmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHJlZmVyZW5jZV90ZXN0X25hbWUsIHNlbGYuX3RpbWVv
dXQsIHRlc3Rfb3V0cHV0LmltYWdlX2hhc2gsIGlzX3JlZnRlc3Q9VHJ1ZSkpCisgICAgICAgICAg
ICByZWZlcmVuY2Vfb3V0cHV0ID0gc2VsZi5fZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHJl
ZmVyZW5jZV90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIHRlc3Rfb3V0cHV0LmltYWdlX2hhc2gs
IHJ1bl9waXhlbF90ZXN0PVRydWUpKQogICAgICAgICAgICAgdGVzdF9yZXN1bHQgPSBzZWxmLl9j
b21wYXJlX291dHB1dF93aXRoX3JlZmVyZW5jZSh0ZXN0X291dHB1dCwgcmVmZXJlbmNlX291dHB1
dCwgcmVmZXJlbmNlX2ZpbGVuYW1lLCBleHBlY3RhdGlvbiA9PSAnIT0nKQogCiAgICAgICAgICAg
ICBpZiAoZXhwZWN0YXRpb24gPT0gJyE9JyBhbmQgdGVzdF9yZXN1bHQuZmFpbHVyZXMpIG9yIChl
eHBlY3RhdGlvbiA9PSAnPT0nIGFuZCBub3QgdGVzdF9yZXN1bHQuZmFpbHVyZXMpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29y
a2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
d29ya2VyLnB5CmluZGV4IDIyYzBhNWYuLmM1NTQ4NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKQEAg
LTEyMiw5ICsxMjIsMTMgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0
cmFjdFdvcmtlcik6CiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBu
dW1fdGVzdHMgPSAwCiAgICAgICAgIGZvciB0ZXN0X2lucHV0IGluIHRlc3RfbGlzdDoKLSAgICAg
ICAgICAgICNGSVhNRTogV2hlbiB0aGUgRFJUIHN1cHBvcnQgYWxzbyB0aGlzIGZ1bmN0aW9uLCB0
aGF0IHdvdWxkIGJlIHVzZWZ1bAotICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5kcml2ZXJfbmFt
ZSgpID09ICJXZWJLaXRUZXN0UnVubmVyIiBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lw
X3BpeGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKSBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdw
aXhlbF90ZXN0cycpOgotICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhl
bF90ZXN0ID0gKHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UodGVzdF9pbnB1dC50ZXN0X25hbWUp
ICE9IE5vbmUpCisgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rl
c3RzJyk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lwX3Bp
eGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKToKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1
dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5fcG9ydC5leHBlY3RlZF9pbWFnZSh0ZXN0
X2lucHV0LnRlc3RfbmFtZSkgIT0gTm9uZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IFRydWUKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3Bp
eGVsX3Rlc3QgPSBGYWxzZQogICAgICAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9pbnB1dCkK
ICAgICAgICAgICAgIG51bV90ZXN0cyArPSAxCiAgICAgICAgICAgICBzZWxmLl93b3JrZXJfY29u
bmVjdGlvbi55aWVsZF90b19icm9rZXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKaW5kZXgg
YTQ2Y2I1MC4uMzI2OTllZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CkBAIC0xMDAsNyAr
MTAwLDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgc2VsZi5kcml2ZXIuX3Byb2Muc3Rkb3V0LnJlYWRsaW5lID0gbW9ja19yZWFkbGluZQog
CiAgICAgICAgIHNlbGYuZHJpdmVyLnRlc3RfdG9fdXJpID0gbGFtYmRhIHRlc3Q6ICdtb2NrdGVz
dHVyaScKLSAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuZHJpdmVyLnJ1bl90ZXN0KERyaXZl
cklucHV0KHRlc3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0aW1lb3V0PTEsIGltYWdlX2hhc2g9
Tm9uZSwgaXNfcmVmdGVzdD1GYWxzZSkpCisgICAgICAgIGRyaXZlcl9vdXRwdXQgPSBzZWxmLmRy
aXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dCh0ZXN0X25hbWU9J3NvbWUvdGVzdC5odG1sJywgdGlt
ZW91dD0xLCBpbWFnZV9oYXNoPU5vbmUsIHJ1bl9waXhlbF90ZXN0PUZhbHNlKSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLmRyaXZlci5fcG9ydC5kcml2ZXJfbmFtZSgpLCBkcml2ZXJf
b3V0cHV0LmNyYXNoZWRfcHJvY2Vzc19uYW1lKQogCiAgICAgZGVmIHRlc3Rfc3RvcChzZWxmKToK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJp
dmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIu
cHkKaW5kZXggZmE2ZTgxYi4uMGIzNzIzNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTM0LDExICszNCwxMSBAQCBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIAogCiBjbGFzcyBEcml2ZXJJbnB1
dChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGlt
YWdlX2hhc2gsIGlzX3JlZnRlc3QsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHRlc3RfbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgcnVuX3BpeGVsX3Rlc3QsIGFyZ3M9Tm9u
ZSk6CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYudGlt
ZW91dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1hZ2Vf
aGFzaAotICAgICAgICBzZWxmLmlzX3JlZnRlc3QgPSBpc19yZWZ0ZXN0CisgICAgICAgIHNlbGYu
cnVuX3BpeGVsX3Rlc3QgPSBydW5fcGl4ZWxfdGVzdAogICAgICAgICBzZWxmLmFyZ3MgPSBhcmdz
IG9yIFtdCiAKIApAQCAtMjA4LDcgKzIwOCw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6
CiAgICAgICAgICAgICB2aXJ0dWFsX2RyaXZlcl9pbnB1dC5hcmdzID0gc2VsZi5fcG9ydC5sb29r
dXBfdmlydHVhbF90ZXN0X2FyZ3MoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkKICAgICAgICAgICAg
IHJldHVybiBzZWxmLnJ1bl90ZXN0KHZpcnR1YWxfZHJpdmVyX2lucHV0KQogCi0gICAgICAgIHBp
eGVsX3Rlc3RzX25lZWRlZCA9IHNlbGYuX3BpeGVsX3Rlc3RzIG9yIGRyaXZlcl9pbnB1dC5pc19y
ZWZ0ZXN0CisgICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IGRyaXZlcl9pbnB1dC5ydW5fcGl4
ZWxfdGVzdAogICAgICAgICBjbWRfbGluZV9rZXkgPSBzZWxmLl9jbWRfbGluZV9hc19rZXkocGl4
ZWxfdGVzdHNfbmVlZGVkLCBkcml2ZXJfaW5wdXQuYXJncykKICAgICAgICAgaWYgbm90IGNtZF9s
aW5lX2tleSBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnM6CiAgICAgICAgICAgICBzZWxmLl9ydW5u
aW5nX2RyaXZlcnNbY21kX2xpbmVfa2V5XSA9IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3Rz
X25lZWRlZCkKQEAgLTIzNCw3ICsyMzQsNyBAQCBjbGFzcyBEcml2ZXJQcm94eShvYmplY3QpOgog
CiAgICAgIyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBAY2xhc3NtZXRob2QgKG9yIGltcGxlbWVu
dGVkIG9uIFBvcnQgaW5zdGVhZCkuCiAgICAgZGVmIGNtZF9saW5lKHNlbGYsIHBpeGVsX3Rlc3Rz
PU5vbmUsIHBlcl90ZXN0X2FyZ3M9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIu
Y21kX2xpbmUocGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3Mg
b3IgW10pCisgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIuY21kX2xpbmUocGl4ZWxfdGVzdHMs
IHBlcl90ZXN0X2FyZ3Mgb3IgW10pCiAKICAgICBkZWYgX2NtZF9saW5lX2FzX2tleShzZWxmLCBw
aXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIHJldHVybiAnICcuam9pbihzZWxm
LmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CmluZGV4IDNkNDFl
YmQuLmU0NTdkMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbW9ja19kcnQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tb2NrX2RydC5weQpAQCAtMjEwLDcgKzIxMCw3IEBAIGNsYXNzIE1vY2tEUlQo
b2JqZWN0KToKICAgICAgICAgYWN0dWFsX2F1ZGlvID0gcG9ydC5leHBlY3RlZF9hdWRpbyh0ZXN0
X2lucHV0LnRlc3RfbmFtZSkKICAgICAgICAgYWN0dWFsX2ltYWdlID0gTm9uZQogICAgICAgICBh
Y3R1YWxfY2hlY2tzdW0gPSBOb25lCi0gICAgICAgIGlmIHRlc3RfaW5wdXQuaXNfcmVmdGVzdDoK
KyAgICAgICAgaWYgdGVzdF9pbnB1dC5ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgICMgTWFr
ZSB1cCBzb21lIG91dHB1dCBmb3IgcmVmdGVzdHMuCiAgICAgICAgICAgICBhY3R1YWxfdGV4dCA9
ICdyZWZlcmVuY2UgdGV4dFxuJwogICAgICAgICAgICAgYWN0dWFsX2NoZWNrc3VtID0gJ05vbmUn
CkBAIC0yNzMsNyArMjczLDcgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgogICAg
ICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0KQogCiAgICAgICAg
IHNlbGYuX3N0ZG91dC53cml0ZSgiI1VSTDolc1xuIiAlIHNlbGYuX2RyaXZlci50ZXN0X3RvX3Vy
aSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMucGl4ZWxf
dGVzdHMgYW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1dC5pc19yZWZ0ZXN0
KToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQu
aW1hZ2VfaGFzaCBvciB0ZXN0X2lucHV0LnJ1bl9waXhlbF90ZXN0KToKICAgICAgICAgICAgIHNl
bGYuX3N0ZG91dC53cml0ZSgiI01ENTolc1xuIiAlIG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAg
ICAgICAgc2VsZi5faG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hv
c3QuZmlsZXN5c3RlbS5kaXJuYW1lKHNlbGYuX29wdGlvbnMucGl4ZWxfcGF0aCkpCiAgICAgICAg
ICAgICBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUoc2VsZi5fb3B0aW9u
cy5waXhlbF9wYXRoLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weQppbmRleCBjYzNiMGM3Li4yMDBlYTlkIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtNDY3LDgg
KzQ2Nyw2IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShz
ZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2Nv
bW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAg
Y21kLmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQotICAgICAgICBpZiBzZWxm
Ll9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgotICAg
ICAgICAgICAgY21kLmFwcGVuZCgnLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQog
ICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAg
ICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZ2MtYmV0d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNl
bGYuX3BvcnQuZ2V0X29wdGlvbignY29tcGxleF90ZXh0Jyk6CkBAIC00ODEsNyArNDc5LDcgQEAg
Y2xhc3MgV2ViS2l0RHJpdmVyKERyaXZlcik6CiAKICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9w
b3J0LmdldF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYg
cGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3Rz
IGFuZCBzZWxmLl9waXhlbF90ZXN0czoKICAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tcGl4ZWwt
dGVzdHMnKQogICAgICAgICBjbWQuZXh0ZW5kKHBlcl90ZXN0X2FyZ3MpCiAKQEAgLTU1Niw3ICs1
NTQsNyBAQCBjbGFzcyBXZWJLaXREcml2ZXIoRHJpdmVyKToKIAogICAgIGRlZiBydW5fdGVzdChz
ZWxmLCBkcml2ZXJfaW5wdXQpOgogICAgICAgICBpZiBub3Qgc2VsZi5fc2VydmVyX3Byb2Nlc3M6
Ci0gICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdCBvciBzZWxm
Ll9waXhlbF90ZXN0cywgW10pCisgICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQu
cnVuX3BpeGVsX3Rlc3QsIFtdKQogICAgICAgICBzZWxmLmVycm9yX2Zyb21fdGVzdCA9IHN0cigp
CiAgICAgICAgIHNlbGYuZXJyX3NlZW5fZW9mID0gRmFsc2UKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0MmUwYzcyLi4yY2UxY2NiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNjQsNyArNjQsNiBAQCBUZXN0
Q29udHJvbGxlciYgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpCiAKIFRlc3RDb250cm9sbGVyOjpU
ZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIDogbV9kdW1w
UGl4ZWxzKGZhbHNlKQotICAgICwgbV9za2lwUGl4ZWxUZXN0T3B0aW9uKGZhbHNlKQogICAgICwg
bV92ZXJib3NlKGZhbHNlKQogICAgICwgbV9wcmludFNlcGFyYXRvcnMoZmFsc2UpCiAgICAgLCBt
X3VzaW5nU2VydmVyTW9kZShmYWxzZSkKQEAgLTI1NiwxMSArMjU1LDYgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0t
c2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIikgewotICAgICAgICAgICAgbV9za2lwUGl4
ZWxUZXN0T3B0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0K
ICAgICAgICAgaWYgKGFyZ3VtZW50ID09ICItLXBpeGVsLXRlc3RzIikgewogICAgICAgICAgICAg
bV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTA1LDcgKzQ5
OSw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogdGVzdCkKICAg
ICBtX3N0YXRlID0gUnVubmluZ1Rlc3Q7CiAKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uID0gYWRv
cHRQdHIobmV3IFRlc3RJbnZvY2F0aW9uKHBhdGhPclVSTCkpOwotICAgIG1fY3VycmVudEludm9j
YXRpb24tPnNldFNraXBQaXhlbFRlc3RPcHRpb24obV9za2lwUGl4ZWxUZXN0T3B0aW9uKTsKICAg
ICBpZiAobV9kdW1wUGl4ZWxzKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRJc1Bp
eGVsVGVzdChleHBlY3RlZFBpeGVsSGFzaCk7ICAgIAogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYWM5ZjFmZi4uYjk0NjVlZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTA1LDcgKzEwNSw2IEBAIHByaXZhdGU6CiAgICAg
T3duUHRyPFRlc3RJbnZvY2F0aW9uPiBtX2N1cnJlbnRJbnZvY2F0aW9uOwogCiAgICAgYm9vbCBt
X2R1bXBQaXhlbHM7Ci0gICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247CiAgICAgYm9vbCBt
X3ZlcmJvc2U7CiAgICAgYm9vbCBtX3ByaW50U2VwYXJhdG9yczsKICAgICBib29sIG1fdXNpbmdT
ZXJ2ZXJNb2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRl
eCBmNmZiMzExLi44ODkzYzNhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtOTUsNyArOTUsNiBAQCBUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24o
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCkKICAgICA6IG1fdXJsKEFkb3B0V0ssIGNyZWF0
ZVdLVVJMKHBhdGhPclVSTC5jX3N0cigpKSkKICAgICAsIG1fcGF0aE9yVVJMKHBhdGhPclVSTCkK
ICAgICAsIG1fZHVtcFBpeGVscyhmYWxzZSkKLSAgICAsIG1fc2tpcFBpeGVsVGVzdE9wdGlvbihm
YWxzZSkKICAgICAsIG1fZ290SW5pdGlhbFJlc3BvbnNlKGZhbHNlKQogICAgICwgbV9nb3RGaW5h
bE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX2dvdFJlcGFpbnQoZmFsc2UpCkBAIC0xMDksOCArMTA4
LDYgQEAgVGVzdEludm9jYXRpb246On5UZXN0SW52b2NhdGlvbigpCiAKIHZvaWQgVGVzdEludm9j
YXRpb246OnNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFz
aCkKIHsKLSAgICBpZiAobV9za2lwUGl4ZWxUZXN0T3B0aW9uICYmICFleHBlY3RlZFBpeGVsSGFz
aC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwogICAgIG1fZHVtcFBpeGVscyA9IHRydWU7CiAg
ICAgbV9leHBlY3RlZFBpeGVsSGFzaCA9IGV4cGVjdGVkUGl4ZWxIYXNoOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGFmOWYzOGYuLjkxNjUyMDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTM5LDcgKzM5LDYgQEAgcHVi
bGljOgogICAgIH5UZXN0SW52b2NhdGlvbigpOwogCiAgICAgdm9pZCBzZXRJc1BpeGVsVGVzdChj
b25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwotICAgIHZvaWQgc2V0U2tpcFBp
eGVsVGVzdE9wdGlvbihib29sIG9wdGlvbikgeyBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSBvcHRp
b247IH0KIAogICAgIHZvaWQgaW52b2tlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5KTsKQEAgLTU1LDcgKzU0LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fZHVt
cFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBtX2V4cGVjdGVkUGl4ZWxIYXNoOwotICAgIGJvb2wg
bV9za2lwUGl4ZWxUZXN0T3B0aW9uOwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJv
b2wgbV9nb3RJbml0aWFsUmVzcG9uc2U7Cg==
</data>
<flag name="review"
          id="135269"
          type_id="1"
          status="-"
          setter="dpranke"
    />
    <flag name="commit-queue"
          id="135270"
          type_id="3"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134036</attachid>
            <date>2012-03-27 05:21:46 -0700</date>
            <delta_ts>2012-03-28 01:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltest.diff</filename>
            <type>text/plain</type>
            <size>14411</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdGV4dC16b29tLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM0NmVhNy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RleHQtem9vbS1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVs
bCBkaWZmZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCAy
Zjg5MGIwLi4zYWViNTgzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CkBAIC05Miw3ICs5MiwxNCBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBp
bWFnZV9oYXNoID0gTm9uZQogICAgICAgICBpZiBzZWxmLl9zaG91bGRfZmV0Y2hfZXhwZWN0ZWRf
Y2hlY2tzdW0oKToKICAgICAgICAgICAgIGltYWdlX2hhc2ggPSBzZWxmLl9wb3J0LmV4cGVjdGVk
X2NoZWNrc3VtKHNlbGYuX3Rlc3RfbmFtZSkKLSAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHNl
bGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFzaCwgYm9vbChzZWxmLl9yZWZl
cmVuY2VfZmlsZXMpKQorICAgICAgICBkcml2ZXJfaW5wdXQgPSBEcml2ZXJJbnB1dChzZWxmLl90
ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIGJvb2woc2VsZi5fcmVmZXJlbmNl
X2ZpbGVzKSkKKyAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdDoKKyAg
ICAgICAgICAgIGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCA9IEZhbHNlCisgICAgICAgICAg
ICBzZWxmLl9kcml2ZXIuX3BpeGVsX3Rlc3RzID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCA9IFRydWUKKyAgICAgICAgICAgIHNl
bGYuX2RyaXZlci5fcGl4ZWxfdGVzdHMgPSBUcnVlCisgICAgICAgIHJldHVybiBkcml2ZXJfaW5w
dXQKIAogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxl
czoKQEAgLTI5MCw3ICsyOTcsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBw
dXRBbGxNaXNtYXRjaEJlZm9yZU1hdGNoID0gc29ydGVkCiAgICAgICAgIGZvciBleHBlY3RhdGlv
biwgcmVmZXJlbmNlX2ZpbGVuYW1lIGluIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2goc2VsZi5f
cmVmZXJlbmNlX2ZpbGVzKToKICAgICAgICAgICAgIHJlZmVyZW5jZV90ZXN0X25hbWUgPSBzZWxm
Ll9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUocmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAg
ICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1
dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9o
YXNoLCBpc19yZWZ0ZXN0PVRydWUpKQorICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNl
bGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxm
Ll90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBydW5fcGl4ZWxfdGVzdD1UcnVlKSkK
ICAgICAgICAgICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5fY29tcGFyZV9vdXRwdXRfd2l0aF9yZWZl
cmVuY2UodGVzdF9vdXRwdXQsIHJlZmVyZW5jZV9vdXRwdXQsIHJlZmVyZW5jZV9maWxlbmFtZSwg
ZXhwZWN0YXRpb24gPT0gJyE9JykKIAogICAgICAgICAgICAgaWYgKGV4cGVjdGF0aW9uID09ICch
PScgYW5kIHRlc3RfcmVzdWx0LmZhaWx1cmVzKSBvciAoZXhwZWN0YXRpb24gPT0gJz09JyBhbmQg
bm90IHRlc3RfcmVzdWx0LmZhaWx1cmVzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQppbmRleCBiMDU4OGFi
Li5mM2NiOWZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy93b3JrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5CkBAIC0xNDAsOSArMTQwLDEzIEBAIGNsYXNz
IFdvcmtlcihtYW5hZ2VyX3dvcmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBz
dGFydF90aW1lID0gdGltZS50aW1lKCkKICAgICAgICAgbnVtX3Rlc3RzID0gMAogICAgICAgICBm
b3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2xpc3Q6Ci0gICAgICAgICAgICAjRklYTUU6IFdoZW4gdGhl
IERSVCBzdXBwb3J0IGFsc28gdGhpcyBmdW5jdGlvbiwgdGhhdCB3b3VsZCBiZSB1c2VmdWwKLSAg
ICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKSA9PSAiV2ViS2l0VGVzdFJ1bm5l
ciIgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2Vs
aW5lJykgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKLSAgICAgICAg
ICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IChzZWxmLl9wb3J0LmV4
cGVjdGVkX2ltYWdlKHRlc3RfaW5wdXQudGVzdF9uYW1lKSAhPSBOb25lKQorICAgICAgICAgICAg
aWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgorICAgICAgICAgICAgICAg
IGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5l
Jyk6CisgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0
ID0gKHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UodGVzdF9pbnB1dC50ZXN0X25hbWUpICE9IE5v
bmUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1
dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gRmFsc2UKICAgICAg
ICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCiAgICAgICAgICAgICBudW1fdGVzdHMg
Kz0gMQogICAgICAgICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24ueWllbGRfdG9fYnJva2Vy
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDgwNzQzMGUuLjZmMTcwNjYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtMTAzLDggKzEwMyw3IEBAIGNsYXNzIENocm9taXVt
RHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgc2VsZi5kcml2ZXIudGVz
dF90b191cmkgPSBsYW1iZGEgdGVzdDogJ21vY2t0ZXN0dXJpJwogICAgICAgICBzZWxmLmRyaXZl
ci5fcG9ydC5kcml2ZXJfbmFtZSA9IGxhbWJkYTogJ21vY2tkcml2ZXInCi0gICAgICAgIHNlbGYu
ZHJpdmVyLl9wb3J0Ll9nZXRfY3Jhc2hfbG9nID0gbGFtYmRhIG5hbWUsIHBpZCwgb3V0LCBlcnI6
ICdtb2NrY3Jhc2hsb2cnCi0gICAgICAgIGRyaXZlcl9vdXRwdXQgPSBzZWxmLmRyaXZlci5ydW5f
dGVzdChEcml2ZXJJbnB1dCh0ZXN0X25hbWU9J3NvbWUvdGVzdC5odG1sJywgdGltZW91dD0xLCBp
bWFnZV9oYXNoPU5vbmUsIGlzX3JlZnRlc3Q9RmFsc2UpKQorICAgICAgICBkcml2ZXJfb3V0cHV0
ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3QoRHJpdmVySW5wdXQodGVzdF9uYW1lPSdzb21lL3Rlc3Qu
aHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2VfaGFzaD1Ob25lLCBydW5fcGl4ZWxfdGVzdD1GYWxzZSkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkcml2ZXJfb3V0cHV0LmNyYXNoKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGRyaXZlcl9vdXRwdXQuY3Jhc2hlZF9wcm9jZXNzX25hbWUsICdtb2Nr
ZHJpdmVyJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXJfb3V0cHV0LmNyYXNoZWRf
cGlkLCAxMjM0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2RyaXZlci5weQppbmRleCBlMWQ4YTRiLi5jODBlMzA3IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMzQsMTEgKzM0
LDExIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgcGF0aAogCiAKIGNsYXNz
IERyaXZlcklucHV0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwg
dGltZW91dCwgaW1hZ2VfaGFzaCwgaXNfcmVmdGVzdCwgYXJncz1Ob25lKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBydW5fcGl4ZWxfdGVz
dCwgYXJncz1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAgICAg
ICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmltYWdlX2hh
c2ggPSBpbWFnZV9oYXNoCi0gICAgICAgIHNlbGYuaXNfcmVmdGVzdCA9IGlzX3JlZnRlc3QKKyAg
ICAgICAgc2VsZi5ydW5fcGl4ZWxfdGVzdCA9IHJ1bl9waXhlbF90ZXN0CiAgICAgICAgIHNlbGYu
YXJncyA9IGFyZ3Mgb3IgW10KIAogCkBAIC0xODEsNyArMTgxLDYgQEAgY2xhc3MgRHJpdmVyUHJv
eHkob2JqZWN0KToKICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIK
ICAgICAgICAgc2VsZi5fZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yID0gZHJpdmVyX2luc3Rh
bmNlX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYuX25vX3RpbWVvdXQgPSBub190aW1lb3V0Ci0g
ICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxfdGVzdHMKIAogICAgICAgICAjIEZJWE1F
OiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjcmVhdGUgYSBkcml2ZXIgdW50aWwgd2UgYWN0dWFsbHkg
cnVuIGEgdGVzdC4KICAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4
ZWxfdGVzdHMpCkBAIC0yMTEsNyArMjEwLDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToK
ICAgICAgICAgICAgIHZpcnR1YWxfZHJpdmVyX2lucHV0LmFyZ3MgPSBzZWxmLl9wb3J0Lmxvb2t1
cF92aXJ0dWFsX3Rlc3RfYXJncyhkcml2ZXJfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICAgICAg
cmV0dXJuIHNlbGYucnVuX3Rlc3QodmlydHVhbF9kcml2ZXJfaW5wdXQpCiAKLSAgICAgICAgcGl4
ZWxfdGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVzdHMgb3IgZHJpdmVyX2lucHV0LmlzX3Jl
ZnRlc3QKKyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gZHJpdmVyX2lucHV0LnJ1bl9waXhl
bF90ZXN0CiAgICAgICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2NtZF9saW5lX2FzX2tleShwaXhl
bF90ZXN0c19uZWVkZWQsIGRyaXZlcl9pbnB1dC5hcmdzKQogICAgICAgICBpZiBub3QgY21kX2xp
bmVfa2V5IGluIHNlbGYuX3J1bm5pbmdfZHJpdmVyczoKICAgICAgICAgICAgIHNlbGYuX3J1bm5p
bmdfZHJpdmVyc1tjbWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHNf
bmVlZGVkKQpAQCAtMjI2LDcgKzIyNSw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAg
ICAgICAgICMgVGhlIG9ubHkgcmVhc29uIHdlIGhhdmUgdGhpcyByb3V0aW5lIGF0IGFsbCBpcyBz
byB0aGUgcGVyZnRlc3RydW5uZXIKICAgICAgICAgIyBjYW4gcGF1c2UgYmVmb3JlIHJ1bm5pbmcg
YSB0ZXN0OyBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gcHVzaCB0aGF0CiAgICAgICAgICMgaW50byBy
dW5fdGVzdCgpIGRpcmVjdGx5LgotICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2VsZi5fcGl4
ZWxfdGVzdHMsIFtdKQorICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoVHJ1ZSwgW10pCiAKICAg
ICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBhbnkoZHJpdmVyLmhhc19j
cmFzaGVkKCkgZm9yIGRyaXZlciBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVzKCkpCkBA
IC0yMzcsNyArMjM2LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKIAogICAgICMgRklY
TUU6IHRoaXMgc2hvdWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBvbiBQb3J0
IGluc3RlYWQpLgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cz1Ob25lLCBwZXJf
dGVzdF9hcmdzPU5vbmUpOgotICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBp
eGVsX3Rlc3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzIG9yIFtdKQorICAg
ICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9h
cmdzIG9yIFtdKQogCiAgICAgZGVmIF9jbWRfbGluZV9hc19rZXkoc2VsZiwgcGl4ZWxfdGVzdHMs
IHBlcl90ZXN0X2FyZ3MpOgogICAgICAgICByZXR1cm4gJyAnLmpvaW4oc2VsZi5jbWRfbGluZShw
aXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQppbmRleCAzZDQxZWJkLi5iNGQ1ZTZl
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21v
Y2tfZHJ0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
bW9ja19kcnQucHkKQEAgLTE4NCw3ICsxODQsOSBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAg
ICAgICAgICAgICBsaW5lID0gc2VsZi5fc3RkaW4ucmVhZGxpbmUoKQogICAgICAgICAgICAgaWYg
bm90IGxpbmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIHNlbGYucnVu
X29uZV90ZXN0KHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpKQorICAgICAgICAgICAgZHJpdmVy
X2lucHV0ID0gc2VsZi5pbnB1dF9mcm9tX2xpbmUobGluZSkKKyAgICAgICAgICAgIGlzX3JlZnRl
c3QgPSBkcml2ZXJfaW5wdXQucnVuX3BpeGVsX3Rlc3QKKyAgICAgICAgICAgIHNlbGYucnVuX29u
ZV90ZXN0KGRyaXZlcl9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgIGRlZiBpbnB1dF9mcm9tX2xp
bmUoc2VsZiwgbGluZSk6CiAgICAgICAgIHZhbHMgPSBsaW5lLnN0cmlwKCkuc3BsaXQoIiciKQpA
QCAtMjA0LDEzICsyMDYsMTMgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLW1pc21hdGNoLmh0bWwnKSkKICAgICAgICAg
cmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwgY2hlY2tzdW0sIGlzX3JlZnRlc3QpCiAK
LSAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgIGRlZiBvdXRw
dXRfZm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgaXNfcmVmdGVzdCk6CiAgICAgICAgIHBvcnQg
PSBzZWxmLl9wb3J0CiAgICAgICAgIGFjdHVhbF90ZXh0ID0gcG9ydC5leHBlY3RlZF90ZXh0KHRl
c3RfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfYXVkaW8gPSBwb3J0LmV4cGVjdGVk
X2F1ZGlvKHRlc3RfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfaW1hZ2UgPSBOb25l
CiAgICAgICAgIGFjdHVhbF9jaGVja3N1bSA9IE5vbmUKLSAgICAgICAgaWYgdGVzdF9pbnB1dC5p
c19yZWZ0ZXN0OgorICAgICAgICBpZiB0ZXN0X2lucHV0LnJ1bl9waXhlbF90ZXN0IGFuZCBpc19y
ZWZ0ZXN0OgogICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWUgb3V0cHV0IGZvciByZWZ0ZXN0cy4K
ICAgICAgICAgICAgIGFjdHVhbF90ZXh0ID0gJ3JlZmVyZW5jZSB0ZXh0XG4nCiAgICAgICAgICAg
ICBhY3R1YWxfY2hlY2tzdW0gPSAnTm9uZScKQEAgLTIyNCw4ICsyMjYsOCBAQCBjbGFzcyBNb2Nr
RFJUKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dChhY3R1YWxfdGV4dCwg
YWN0dWFsX2ltYWdlLCBhY3R1YWxfY2hlY2tzdW0sIGFjdHVhbF9hdWRpbykKIAotICAgIGRlZiBy
dW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1dCA9IHNlbGYub3V0
cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0
X2lucHV0LCBpc19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rl
c3QodGVzdF9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBpZiBvdXRwdXQuYXVkaW86CiAg
ICAgICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTogYXVkaW8vd2F2XG4n
KQpAQCAtMjY5LDExICsyNzEsMTEgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgog
CiAgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUsIHRpbWVvdXQsIGNoZWNrc3Vt
LCBpc19yZWZ0ZXN0KQogCi0gICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToK
LSAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rlc3QodGVzdF9pbnB1dCkKKyAgICBk
ZWYgcnVuX29uZV90ZXN0KHNlbGYsIHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpOgorICAgICAgICBv
dXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KQogCiAg
ICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgiI1VSTDolc1xuIiAlIHNlbGYuX2RyaXZlci50ZXN0
X3RvX3VyaSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
cGl4ZWxfdGVzdHMgYW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1dC5pc19y
ZWZ0ZXN0KToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgKHRlc3Rf
aW5wdXQuaW1hZ2VfaGFzaCBvciBpc19yZWZ0ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3N0ZG91
dC53cml0ZSgiI01ENTolc1xuIiAlIG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAgICAgICAgc2Vs
Zi5faG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hvc3QuZmlsZXN5
c3RlbS5kaXJuYW1lKHNlbGYuX29wdGlvbnMucGl4ZWxfcGF0aCkpCiAgICAgICAgICAgICBzZWxm
Ll9ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUoc2VsZi5fb3B0aW9ucy5waXhlbF9w
YXRoLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dl
YmtpdC5weQppbmRleCBlMGJmNmY3Li4wODk0NjM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtNDU2LDggKzQ1Niw2IEBA
IGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhl
bF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRfd3Jh
cHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAgY21kLmFwcGVu
ZChzZWxmLl9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQotICAgICAgICBpZiBzZWxmLl9wb3J0Lmdl
dF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgotICAgICAgICAgICAg
Y21kLmFwcGVuZCgnLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQogICAgICAgICBp
ZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAgICAgICAgICAg
IGNtZC5hcHBlbmQoJy0tZ2MtYmV0d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNlbGYuX3BvcnQu
Z2V0X29wdGlvbignY29tcGxleF90ZXh0Jyk6CkBAIC00NzAsNyArNDY4LDcgQEAgY2xhc3MgV2Vi
S2l0RHJpdmVyKERyaXZlcik6CiAKICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYgcGl4ZWxfdGVz
dHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgogICAgICAg
ICAgICAgY21kLmFwcGVuZCgnLS1waXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRlbmQocGVy
X3Rlc3RfYXJncykKIApAQCAtNTQ3LDcgKzU0NSw3IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2
ZXIpOgogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlm
IG5vdCBzZWxmLl9zZXJ2ZXJfcHJvY2VzczoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZl
cl9pbnB1dC5pc19yZWZ0ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAgICAgICAg
IHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCwgW10pCiAgICAgICAgIHNl
bGYuZXJyb3JfZnJvbV90ZXN0ID0gc3RyKCkKICAgICAgICAgc2VsZi5lcnJfc2Vlbl9lb2YgPSBG
YWxzZQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGM5
ZTBlNTYuLjQxMTk2NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC02OCw3ICs2OCw2IEBAIFRlc3RDb250cm9sbGVyJiBUZXN0Q29udHJvbGxlcjo6c2hh
cmVkKCkKIAogVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgOiBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQaXhl
bFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX3ZlcmJvc2UoZmFsc2UpCiAgICAgLCBtX3ByaW50
U2VwYXJhdG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJNb2RlKGZhbHNlKQpAQCAtMjYw
LDExICsyNTksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBj
b25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUi
KSB7Ci0gICAgICAgICAgICBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSB0cnVlOwotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tcGl4
ZWwtdGVzdHMiKSB7CiAgICAgICAgICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAg
ICAgY29udGludWU7CkBAIC01MTUsNyArNTA5LDYgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVu
VGVzdChjb25zdCBjaGFyKiB0ZXN0KQogICAgIG1fc3RhdGUgPSBSdW5uaW5nVGVzdDsKIAogICAg
IG1fY3VycmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVzdEludm9jYXRpb24ocGF0aE9y
VVJMKSk7Ci0gICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0U2tpcFBpeGVsVGVzdE9wdGlvbiht
X3NraXBQaXhlbFRlc3RPcHRpb24pOwogICAgIGlmIChtX2R1bXBQaXhlbHMpCiAgICAgICAgIG1f
Y3VycmVudEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFjOWYxZmYuLmI5NDY1
ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTEwNSw3ICsx
MDUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50SW52
b2NhdGlvbjsKIAogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwotICAgIGJvb2wgbV9za2lwUGl4ZWxU
ZXN0T3B0aW9uOwogICAgIGJvb2wgbV92ZXJib3NlOwogICAgIGJvb2wgbV9wcmludFNlcGFyYXRv
cnM7CiAgICAgYm9vbCBtX3VzaW5nU2VydmVyTW9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYWJlYThlNC4uMjQ5MzQ5ZSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDYgQEAgVGVzdEludm9j
YXRpb246OlRlc3RJbnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwpCiAgICAg
OiBtX3VybChBZG9wdFdLLCBjcmVhdGVXS1VSTChwYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgLCBt
X3BhdGhPclVSTChwYXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBt
X3NraXBQaXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX2dvdEluaXRpYWxSZXNwb25zZShm
YWxzZSkKICAgICAsIG1fZ290RmluYWxNZXNzYWdlKGZhbHNlKQogICAgICwgbV9nb3RSZXBhaW50
KGZhbHNlKQpAQCAtMTEwLDggKzEwOSw2IEBAIFRlc3RJbnZvY2F0aW9uOjp+VGVzdEludm9jYXRp
b24oKQogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0
cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiB7Ci0gICAgaWYgKG1fc2tpcFBpeGVsVGVzdE9wdGlv
biAmJiAhZXhwZWN0ZWRQaXhlbEhhc2gubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybjsKICAgICBt
X2R1bXBQaXhlbHMgPSB0cnVlOwogICAgIG1fZXhwZWN0ZWRQaXhlbEhhc2ggPSBleHBlY3RlZFBp
eGVsSGFzaDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBh
ZjlmMzhmLi45MTY1MjA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5o
CkBAIC0zOSw3ICszOSw2IEBAIHB1YmxpYzoKICAgICB+VGVzdEludm9jYXRpb24oKTsKIAogICAg
IHZvaWQgc2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNo
KTsKLSAgICB2b2lkIHNldFNraXBQaXhlbFRlc3RPcHRpb24oYm9vbCBvcHRpb24pIHsgbV9za2lw
UGl4ZWxUZXN0T3B0aW9uID0gb3B0aW9uOyB9CiAKICAgICB2b2lkIGludm9rZSgpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CkBAIC01NSw3ICs1NCw2IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgYm9vbCBtX2R1bXBQaXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3Rl
ZFBpeGVsSGFzaDsKLSAgICBib29sIG1fc2tpcFBpeGVsVGVzdE9wdGlvbjsKIAogICAgIC8vIElu
dm9jYXRpb24gc3RhdGUKICAgICBib29sIG1fZ290SW5pdGlhbFJlc3BvbnNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134238</attachid>
            <date>2012-03-28 01:49:35 -0700</date>
            <delta_ts>2012-03-28 02:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltest.diff</filename>
            <type>text/plain</type>
            <size>17623</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZWU3
MzZhLi41MzBkY2ZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTItMDMtMjggIE7DoW5kb3IgSHVzemthICA8aHVz
emthLm5hbmRvckBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtOUldUXSBOUldUOiBvcHRp
b24gLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgc3VwcG9ydCBvbiBEUlQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODQxCisKKyAgICAg
ICAgTWFrZSBOUldUIHRvIGhhbmRsZSAtLXNraXAtcGl4ZWwtdGVzdC1pZi1uby1iYXNlbGluZSBv
cHRpb24gb24gZXZlcnkgZHJpdmVycywKKyAgICAgICAgbm90IG9ubHkgb24gRFJULiBUaGUgcGF0
Y2ggaXRzZWxmIHBhc3NlcyB0aGUgaW5mb3JtYXRpb24gd2hldGhlciBydW5uaW5nIHBpeGVsdGVz
dAorICAgICAgICBpcyBuZWVkZWQgdG8gZXZlcnkgdGVzdGlucHV0LiBJZiBhIHRlc3QgZG9lcyBu
b3QgaGF2ZSBhbnkgZXhwZWN0ZWQgcG5nLCBwaXhlbHRlc3QKKyAgICAgICAgd2lsbCBub3QgcnVu
bmVkLCBhcyBhIHJlc3VsdCBpdCB3aWxsIG5vdCBjYXVzZSBhIG1pc3NpbmcgZXJyb3IuCisgICAg
ICAgIFRoZSBEcml2ZXIncyBpc19yZWZ0ZXN0IG9wdGlvbiBoYXMgYmVlbiByZW5hbWVkIHRvIHJ1
bl9waXhlbF90ZXN0cywKKyAgICAgICAgdGhhdCBpcyB3aHkgdW5pdHRlc3QgYW5kIG90aGVyIG1l
dGhvZHMgYXJlIG1vZGlmaWVkLgorICAgICAgICBPcmlnaW5hbCBvcHRpb24gaGFuZGxpbmcgaXMg
cmVtb3ZlZCBmcm9tIFdlYktpdFRlc3RSdW5uZXIsIGJlY2F1c2UgaXQgY2FuIGJlCisgICAgICAg
IGRvbmUgb25seSB3aXRoIFB5dGhvbiBjb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5l
ci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3J1bl9yZWZ0ZXN0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93
b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlX3Rlc3RfbGlzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAg
KENocm9taXVtRHJpdmVyLl93cmFwcGVyX29wdGlvbnMpOgorICAgICAgICAoQ2hyb21pdW1Ecml2
ZXIucnVuX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAgICAgIChDaHJvbWl1bURyaXZlclRlc3QudGVz
dF9jcmFzaF9sb2cpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVySW5wdXQuX19pbml0X18pOgorICAgICAgICAo
RHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAg
ICAgKERyaXZlclByb3h5LnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlclByb3h5LnN0YXJ0KToK
KyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5OgorICAgICAgICAoTW9ja0RSVC5ydW4p
OgorICAgICAgICAoTW9ja0RSVC5vdXRwdXRfZm9yX3Rlc3QpOgorICAgICAgICAoTW9ja0RSVC5y
dW5fb25lX3Rlc3QpOgorICAgICAgICAoTW9ja0Nocm9taXVtRFJULnJ1bl9vbmVfdGVzdCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6Cisg
ICAgICAgIChXZWJLaXREcml2ZXIuY21kX2xpbmUpOgorICAgICAgICAoV2ViS2l0RHJpdmVyLnJ1
bl90ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OlRlc3RJbnZvY2F0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OnNldElzUGl4ZWxUZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmg6CisgICAgICAgIChUZXN0SW52b2NhdGlvbik6CisKIDIwMTItMDMtMjcgIEhh
byBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBIYW5kbGUgRFJUIGNy
YXNoIGNhdXNlZCBieSBBbmRyb2lkIE9PTS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0
X3J1bm5lci5weQppbmRleCAyZjg5MGIwLi4xZDk1NjhlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
c2luZ2xlX3Rlc3RfcnVubmVyLnB5CkBAIC05Miw3ICs5MiwxMiBAQCBjbGFzcyBTaW5nbGVUZXN0
UnVubmVyOgogICAgICAgICBpbWFnZV9oYXNoID0gTm9uZQogICAgICAgICBpZiBzZWxmLl9zaG91
bGRfZmV0Y2hfZXhwZWN0ZWRfY2hlY2tzdW0oKToKICAgICAgICAgICAgIGltYWdlX2hhc2ggPSBz
ZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKHNlbGYuX3Rlc3RfbmFtZSkKLSAgICAgICAgcmV0
dXJuIERyaXZlcklucHV0KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFz
aCwgYm9vbChzZWxmLl9yZWZlcmVuY2VfZmlsZXMpKQorICAgICAgICBkcml2ZXJfaW5wdXQgPSBE
cml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIGJv
b2woc2VsZi5fcmVmZXJlbmNlX2ZpbGVzKSkKKyAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9y
dW5fcGl4ZWxfdGVzdDoKKyAgICAgICAgICAgIGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCA9
IEZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkcml2ZXJfaW5wdXQucnVuX3BpeGVs
X3Rlc3QgPSBUcnVlCisgICAgICAgIHJldHVybiBkcml2ZXJfaW5wdXQKIAogICAgIGRlZiBydW4o
c2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKQEAgLTI5MCw3ICsyOTUs
NyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBwdXRBbGxNaXNtYXRjaEJlZm9y
ZU1hdGNoID0gc29ydGVkCiAgICAgICAgIGZvciBleHBlY3RhdGlvbiwgcmVmZXJlbmNlX2ZpbGVu
YW1lIGluIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2goc2VsZi5fcmVmZXJlbmNlX2ZpbGVzKToK
ICAgICAgICAgICAgIHJlZmVyZW5jZV90ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rl
c3RfZmlsZW5hbWUocmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAgICAgICAgcmVmZXJlbmNlX291
dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9u
YW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBpc19yZWZ0ZXN0PVRy
dWUpKQorICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVz
dChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291
dHB1dC5pbWFnZV9oYXNoLCBydW5fcGl4ZWxfdGVzdD1UcnVlKSkKICAgICAgICAgICAgIHRlc3Rf
cmVzdWx0ID0gc2VsZi5fY29tcGFyZV9vdXRwdXRfd2l0aF9yZWZlcmVuY2UodGVzdF9vdXRwdXQs
IHJlZmVyZW5jZV9vdXRwdXQsIHJlZmVyZW5jZV9maWxlbmFtZSwgZXhwZWN0YXRpb24gPT0gJyE9
JykKIAogICAgICAgICAgICAgaWYgKGV4cGVjdGF0aW9uID09ICchPScgYW5kIHRlc3RfcmVzdWx0
LmZhaWx1cmVzKSBvciAoZXhwZWN0YXRpb24gPT0gJz09JyBhbmQgbm90IHRlc3RfcmVzdWx0LmZh
aWx1cmVzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3dvcmtlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQppbmRleCBiMDU4OGFiLi5mM2NiOWZkIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3Jr
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvd29ya2VyLnB5CkBAIC0xNDAsOSArMTQwLDEzIEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dv
cmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBzdGFydF90aW1lID0gdGltZS50
aW1lKCkKICAgICAgICAgbnVtX3Rlc3RzID0gMAogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0
ZXN0X2xpc3Q6Ci0gICAgICAgICAgICAjRklYTUU6IFdoZW4gdGhlIERSVCBzdXBwb3J0IGFsc28g
dGhpcyBmdW5jdGlvbiwgdGhhdCB3b3VsZCBiZSB1c2VmdWwKLSAgICAgICAgICAgIGlmIHNlbGYu
X3BvcnQuZHJpdmVyX25hbWUoKSA9PSAiV2ViS2l0VGVzdFJ1bm5lciIgYW5kIHNlbGYuX3BvcnQu
Z2V0X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5lJykgYW5kIHNlbGYuX3Bv
cnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKLSAgICAgICAgICAgICAgICB0ZXN0X2lucHV0
LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IChzZWxmLl9wb3J0LmV4cGVjdGVkX2ltYWdlKHRlc3Rf
aW5wdXQudGVzdF9uYW1lKSAhPSBOb25lKQorICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRf
b3B0aW9uKCdwaXhlbF90ZXN0cycpOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0
X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5lJyk6CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gKHNlbGYuX3BvcnQuZXhw
ZWN0ZWRfaW1hZ2UodGVzdF9pbnB1dC50ZXN0X25hbWUpICE9IE5vbmUpCisgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVs
X3Rlc3QgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRlc3RfaW5w
dXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gRmFsc2UKICAgICAgICAgICAgIHNlbGYuX3J1bl90
ZXN0KHRlc3RfaW5wdXQpCiAgICAgICAgICAgICBudW1fdGVzdHMgKz0gMQogICAgICAgICAgICAg
c2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24ueWllbGRfdG9fYnJva2VyKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IGJj
YTFkYjguLmE4YmI5NzQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtNDA1LDcgKzQwNSw3IEBAIGNsYXNzIENocm9t
aXVtRHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYgX3dyYXBwZXJfb3B0aW9ucyhzZWxmLCBwaXhl
bF90ZXN0cyk6CiAgICAgICAgIGNtZCA9IFtdCi0gICAgICAgIGlmIHBpeGVsX3Rlc3RzIG9yIHNl
bGYuX3BpeGVsX3Rlc3RzOgorICAgICAgICBpZiBwaXhlbF90ZXN0czoKICAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl9pbWFnZV9wYXRoOgogICAgICAgICAgICAgICAgIHNlbGYuX2ltYWdlX3BhdGgg
PSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9y
eSgpLCAncG5nX3Jlc3VsdCVzLnBuZycgJSBzZWxmLl93b3JrZXJfbnVtYmVyKQogICAgICAgICAg
ICAgIyBTZWUgbm90ZSBhYm92ZSBpbiBkaWZmX2ltYWdlKCkgZm9yIHdoeSB3ZSBuZWVkIF9jb252
ZXJ0X3BhdGgoKS4KQEAgLTUxNyw3ICs1MTcsNyBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihEcml2
ZXIpOgogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlm
IG5vdCBzZWxmLl9wcm9jOgotICAgICAgICAgICAgc2VsZi5fc3RhcnQoZHJpdmVyX2lucHV0Lmlz
X3JlZnRlc3Qgb3Igc2VsZi5fcGl4ZWxfdGVzdHMsIGRyaXZlcl9pbnB1dC5hcmdzKQorICAgICAg
ICAgICAgc2VsZi5fc3RhcnQoZHJpdmVyX2lucHV0LmlzX3JlZnRlc3QsIGRyaXZlcl9pbnB1dC5h
cmdzKQogCiAgICAgICAgIG91dHB1dCA9IFtdCiAgICAgICAgIGVycm9yID0gW10KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3VuaXR0ZXN0LnB5CmluZGV4IDgwNzQzMGUuLjg0YWMzOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91
bml0dGVzdC5weQpAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuZHJpdmVyLnRlc3RfdG9fdXJpID0gbGFt
YmRhIHRlc3Q6ICdtb2NrdGVzdHVyaScKICAgICAgICAgc2VsZi5kcml2ZXIuX3BvcnQuZHJpdmVy
X25hbWUgPSBsYW1iZGE6ICdtb2NrZHJpdmVyJwogICAgICAgICBzZWxmLmRyaXZlci5fcG9ydC5f
Z2V0X2NyYXNoX2xvZyA9IGxhbWJkYSBuYW1lLCBwaWQsIG91dCwgZXJyOiAnbW9ja2NyYXNobG9n
JwotICAgICAgICBkcml2ZXJfb3V0cHV0ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3QoRHJpdmVySW5w
dXQodGVzdF9uYW1lPSdzb21lL3Rlc3QuaHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2VfaGFzaD1Ob25l
LCBpc19yZWZ0ZXN0PUZhbHNlKSkKKyAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuZHJpdmVy
LnJ1bl90ZXN0KERyaXZlcklucHV0KHRlc3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0aW1lb3V0
PTEsIGltYWdlX2hhc2g9Tm9uZSwgcnVuX3BpeGVsX3Rlc3Q9RmFsc2UpKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUoZHJpdmVyX291dHB1dC5jcmFzaCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkcml2ZXJfb3V0cHV0LmNyYXNoZWRfcHJvY2Vzc19uYW1lLCAnbW9ja2RyaXZlcicpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyX291dHB1dC5jcmFzaGVkX3BpZCwgMTIzNCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkK
aW5kZXggZTFkOGE0Yi4uNWIyMDU4YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTM0LDExICszNCwxMSBAQCBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIAogCiBjbGFzcyBEcml2ZXJJbnB1dChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdl
X2hhc2gsIGlzX3JlZnRlc3QsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRl
c3RfbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgcnVuX3BpeGVsX3Rlc3QsIGFyZ3M9Tm9uZSk6
CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYudGltZW91
dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1hZ2VfaGFz
aAotICAgICAgICBzZWxmLmlzX3JlZnRlc3QgPSBpc19yZWZ0ZXN0CisgICAgICAgIHNlbGYucnVu
X3BpeGVsX3Rlc3QgPSBydW5fcGl4ZWxfdGVzdAogICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzIG9y
IFtdCiAKIApAQCAtMTA0LDcgKzEwNCw2IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAg
ICAiIiIKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fd29ya2VyX251
bWJlciA9IHdvcmtlcl9udW1iZXIKLSAgICAgICAgc2VsZi5fcGl4ZWxfdGVzdHMgPSBwaXhlbF90
ZXN0cwogICAgICAgICBzZWxmLl9ub190aW1lb3V0ID0gbm9fdGltZW91dAogCiAgICAgZGVmIHJ1
bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CkBAIC0xODEsNyArMTgwLDYgQEAgY2xhc3MgRHJp
dmVyUHJveHkob2JqZWN0KToKICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9u
dW1iZXIKICAgICAgICAgc2VsZi5fZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yID0gZHJpdmVy
X2luc3RhbmNlX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYuX25vX3RpbWVvdXQgPSBub190aW1l
b3V0Ci0gICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxfdGVzdHMKIAogICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjcmVhdGUgYSBkcml2ZXIgdW50aWwgd2UgYWN0
dWFsbHkgcnVuIGEgdGVzdC4KICAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fbWFrZV9kcml2
ZXIocGl4ZWxfdGVzdHMpCkBAIC0yMTEsNyArMjA5LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2Jq
ZWN0KToKICAgICAgICAgICAgIHZpcnR1YWxfZHJpdmVyX2lucHV0LmFyZ3MgPSBzZWxmLl9wb3J0
Lmxvb2t1cF92aXJ0dWFsX3Rlc3RfYXJncyhkcml2ZXJfaW5wdXQudGVzdF9uYW1lKQogICAgICAg
ICAgICAgcmV0dXJuIHNlbGYucnVuX3Rlc3QodmlydHVhbF9kcml2ZXJfaW5wdXQpCiAKLSAgICAg
ICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVzdHMgb3IgZHJpdmVyX2lucHV0
LmlzX3JlZnRlc3QKKyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gZHJpdmVyX2lucHV0LnJ1
bl9waXhlbF90ZXN0CiAgICAgICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2NtZF9saW5lX2FzX2tl
eShwaXhlbF90ZXN0c19uZWVkZWQsIGRyaXZlcl9pbnB1dC5hcmdzKQogICAgICAgICBpZiBub3Qg
Y21kX2xpbmVfa2V5IGluIHNlbGYuX3J1bm5pbmdfZHJpdmVyczoKICAgICAgICAgICAgIHNlbGYu
X3J1bm5pbmdfZHJpdmVyc1tjbWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxf
dGVzdHNfbmVlZGVkKQpAQCAtMjI2LDcgKzIyNCw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVj
dCk6CiAgICAgICAgICMgVGhlIG9ubHkgcmVhc29uIHdlIGhhdmUgdGhpcyByb3V0aW5lIGF0IGFs
bCBpcyBzbyB0aGUgcGVyZnRlc3RydW5uZXIKICAgICAgICAgIyBjYW4gcGF1c2UgYmVmb3JlIHJ1
bm5pbmcgYSB0ZXN0OyBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gcHVzaCB0aGF0CiAgICAgICAgICMg
aW50byBydW5fdGVzdCgpIGRpcmVjdGx5LgotICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2Vs
Zi5fcGl4ZWxfdGVzdHMsIFtdKQorICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoVHJ1ZSwgW10p
CiAKICAgICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBhbnkoZHJpdmVy
Lmhhc19jcmFzaGVkKCkgZm9yIGRyaXZlciBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVz
KCkpCkBAIC0yMzcsNyArMjM1LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKIAogICAg
ICMgRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBv
biBQb3J0IGluc3RlYWQpLgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cz1Ob25l
LCBwZXJfdGVzdF9hcmdzPU5vbmUpOgotICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9s
aW5lKHBpeGVsX3Rlc3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzIG9yIFtd
KQorICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJf
dGVzdF9hcmdzIG9yIFtdKQogCiAgICAgZGVmIF9jbWRfbGluZV9hc19rZXkoc2VsZiwgcGl4ZWxf
dGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgogICAgICAgICByZXR1cm4gJyAnLmpvaW4oc2VsZi5jbWRf
bGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQppbmRleCAzZDQxZWJkLi5i
NGQ1ZTZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21vY2tfZHJ0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbW9ja19kcnQucHkKQEAgLTE4NCw3ICsxODQsOSBAQCBjbGFzcyBNb2NrRFJUKG9iamVj
dCk6CiAgICAgICAgICAgICBsaW5lID0gc2VsZi5fc3RkaW4ucmVhZGxpbmUoKQogICAgICAgICAg
ICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIHNl
bGYucnVuX29uZV90ZXN0KHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpKQorICAgICAgICAgICAg
ZHJpdmVyX2lucHV0ID0gc2VsZi5pbnB1dF9mcm9tX2xpbmUobGluZSkKKyAgICAgICAgICAgIGlz
X3JlZnRlc3QgPSBkcml2ZXJfaW5wdXQucnVuX3BpeGVsX3Rlc3QKKyAgICAgICAgICAgIHNlbGYu
cnVuX29uZV90ZXN0KGRyaXZlcl9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgIGRlZiBpbnB1dF9m
cm9tX2xpbmUoc2VsZiwgbGluZSk6CiAgICAgICAgIHZhbHMgPSBsaW5lLnN0cmlwKCkuc3BsaXQo
IiciKQpAQCAtMjA0LDEzICsyMDYsMTMgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLW1pc21hdGNoLmh0bWwnKSkKICAg
ICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwgY2hlY2tzdW0sIGlzX3JlZnRl
c3QpCiAKLSAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgIGRl
ZiBvdXRwdXRfZm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgaXNfcmVmdGVzdCk6CiAgICAgICAg
IHBvcnQgPSBzZWxmLl9wb3J0CiAgICAgICAgIGFjdHVhbF90ZXh0ID0gcG9ydC5leHBlY3RlZF90
ZXh0KHRlc3RfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfYXVkaW8gPSBwb3J0LmV4
cGVjdGVkX2F1ZGlvKHRlc3RfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfaW1hZ2Ug
PSBOb25lCiAgICAgICAgIGFjdHVhbF9jaGVja3N1bSA9IE5vbmUKLSAgICAgICAgaWYgdGVzdF9p
bnB1dC5pc19yZWZ0ZXN0OgorICAgICAgICBpZiB0ZXN0X2lucHV0LnJ1bl9waXhlbF90ZXN0IGFu
ZCBpc19yZWZ0ZXN0OgogICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWUgb3V0cHV0IGZvciByZWZ0
ZXN0cy4KICAgICAgICAgICAgIGFjdHVhbF90ZXh0ID0gJ3JlZmVyZW5jZSB0ZXh0XG4nCiAgICAg
ICAgICAgICBhY3R1YWxfY2hlY2tzdW0gPSAnTm9uZScKQEAgLTIyNCw4ICsyMjYsOCBAQCBjbGFz
cyBNb2NrRFJUKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dChhY3R1YWxf
dGV4dCwgYWN0dWFsX2ltYWdlLCBhY3R1YWxfY2hlY2tzdW0sIGFjdHVhbF9hdWRpbykKIAotICAg
IGRlZiBydW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1dCA9IHNl
bGYub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxm
LCB0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRf
Zm9yX3Rlc3QodGVzdF9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBpZiBvdXRwdXQuYXVk
aW86CiAgICAgICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTogYXVkaW8v
d2F2XG4nKQpAQCAtMjY5LDExICsyNzEsMTEgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tE
UlQpOgogCiAgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUsIHRpbWVvdXQsIGNo
ZWNrc3VtLCBpc19yZWZ0ZXN0KQogCi0gICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lu
cHV0KToKLSAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rlc3QodGVzdF9pbnB1dCkK
KyAgICBkZWYgcnVuX29uZV90ZXN0KHNlbGYsIHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpOgorICAg
ICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0
KQogCiAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgiI1VSTDolc1xuIiAlIHNlbGYuX2RyaXZl
ci50ZXN0X3RvX3VyaSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkpCi0gICAgICAgIGlmIHNlbGYuX29w
dGlvbnMucGl4ZWxfdGVzdHMgYW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1
dC5pc19yZWZ0ZXN0KToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQg
KHRlc3RfaW5wdXQuaW1hZ2VfaGFzaCBvciBpc19yZWZ0ZXN0KToKICAgICAgICAgICAgIHNlbGYu
X3N0ZG91dC53cml0ZSgiI01ENTolc1xuIiAlIG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAgICAg
ICAgc2VsZi5faG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hvc3Qu
ZmlsZXN5c3RlbS5kaXJuYW1lKHNlbGYuX29wdGlvbnMucGl4ZWxfcGF0aCkpCiAgICAgICAgICAg
ICBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUoc2VsZi5fb3B0aW9ucy5w
aXhlbF9wYXRoLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdC5weQppbmRleCBlMGJmNmY3Li4wODk0NjM2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtNDU2LDggKzQ1
Niw2IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShzZWxm
LCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2NvbW1h
bmRfd3JhcHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAgY21k
LmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQotICAgICAgICBpZiBzZWxmLl9w
b3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgotICAgICAg
ICAgICAgY21kLmFwcGVuZCgnLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQogICAg
ICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAgICAg
ICAgICAgIGNtZC5hcHBlbmQoJy0tZ2MtYmV0d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNlbGYu
X3BvcnQuZ2V0X29wdGlvbignY29tcGxleF90ZXh0Jyk6CkBAIC00NzAsNyArNDY4LDcgQEAgY2xh
c3MgV2ViS2l0RHJpdmVyKERyaXZlcik6CiAKICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0
LmdldF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYgcGl4
ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgog
ICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1waXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRl
bmQocGVyX3Rlc3RfYXJncykKIApAQCAtNTQ3LDcgKzU0NSw3IEBAIGNsYXNzIFdlYktpdERyaXZl
cihEcml2ZXIpOgogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9zZXJ2ZXJfcHJvY2VzczoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0
KGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAg
ICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCwgW10pCiAgICAg
ICAgIHNlbGYuZXJyb3JfZnJvbV90ZXN0ID0gc3RyKCkKICAgICAgICAgc2VsZi5lcnJfc2Vlbl9l
b2YgPSBGYWxzZQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGM5ZTBlNTYuLjNmNTM5YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCkBAIC02OCw3ICs2OCw2IEBAIFRlc3RDb250cm9sbGVyJiBUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkKIAogVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBj
b25zdCBjaGFyKiBhcmd2W10pCiAgICAgOiBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3Nr
aXBQaXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX3ZlcmJvc2UoZmFsc2UpCiAgICAgLCBt
X3ByaW50U2VwYXJhdG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJNb2RlKGZhbHNlKQpA
QCAtMjYwLDExICsyNTksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBh
cmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFz
ZWxpbmUiKSB7Ci0gICAgICAgICAgICBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSB0cnVlOwotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXJndW1lbnQgPT0g
Ii0tcGl4ZWwtdGVzdHMiKSB7CiAgICAgICAgICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggYWM5ZjFmZi4uYjk0NjVlZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaApAQCAtMTA1LDcgKzEwNSw2IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFRlc3RJbnZv
Y2F0aW9uPiBtX2N1cnJlbnRJbnZvY2F0aW9uOwogCiAgICAgYm9vbCBtX2R1bXBQaXhlbHM7Ci0g
ICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247CiAgICAgYm9vbCBtX3ZlcmJvc2U7CiAgICAg
Ym9vbCBtX3ByaW50U2VwYXJhdG9yczsKICAgICBib29sIG1fdXNpbmdTZXJ2ZXJNb2RlOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBhYmVhOGU0Li4yNDkz
NDllIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtOTYs
NyArOTYsNiBAQCBUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24oY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGhPclVSTCkKICAgICA6IG1fdXJsKEFkb3B0V0ssIGNyZWF0ZVdLVVJMKHBhdGhPclVS
TC5jX3N0cigpKSkKICAgICAsIG1fcGF0aE9yVVJMKHBhdGhPclVSTCkKICAgICAsIG1fZHVtcFBp
eGVscyhmYWxzZSkKLSAgICAsIG1fc2tpcFBpeGVsVGVzdE9wdGlvbihmYWxzZSkKICAgICAsIG1f
Z290SW5pdGlhbFJlc3BvbnNlKGZhbHNlKQogICAgICwgbV9nb3RGaW5hbE1lc3NhZ2UoZmFsc2Up
CiAgICAgLCBtX2dvdFJlcGFpbnQoZmFsc2UpCkBAIC0xMTAsOCArMTA5LDYgQEAgVGVzdEludm9j
YXRpb246On5UZXN0SW52b2NhdGlvbigpCiAKIHZvaWQgVGVzdEludm9jYXRpb246OnNldElzUGl4
ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKIHsKLSAgICBpZiAo
bV9za2lwUGl4ZWxUZXN0T3B0aW9uICYmICFleHBlY3RlZFBpeGVsSGFzaC5sZW5ndGgoKSkKLSAg
ICAgICAgcmV0dXJuOwogICAgIG1fZHVtcFBpeGVscyA9IHRydWU7CiAgICAgbV9leHBlY3RlZFBp
eGVsSGFzaCA9IGV4cGVjdGVkUGl4ZWxIYXNoOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5oCmluZGV4IGFmOWYzOGYuLjkxNjUyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTM5LDcgKzM5LDYgQEAgcHVibGljOgogICAgIH5UZXN0
SW52b2NhdGlvbigpOwogCiAgICAgdm9pZCBzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmlu
ZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwotICAgIHZvaWQgc2V0U2tpcFBpeGVsVGVzdE9wdGlvbihi
b29sIG9wdGlvbikgeyBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSBvcHRpb247IH0KIAogICAgIHZv
aWQgaW52b2tlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKQEAgLTU1
LDcgKzU0LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fZHVtcFBpeGVsczsKICAgICBz
dGQ6OnN0cmluZyBtX2V4cGVjdGVkUGl4ZWxIYXNoOwotICAgIGJvb2wgbV9za2lwUGl4ZWxUZXN0
T3B0aW9uOwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJvb2wgbV9nb3RJbml0aWFs
UmVzcG9uc2U7Cg==
</data>
<flag name="commit-queue"
          id="138454"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134242</attachid>
            <date>2012-03-28 02:19:23 -0700</date>
            <delta_ts>2012-04-19 16:54:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltest.diff</filename>
            <type>text/plain</type>
            <size>17996</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZWU3
MzZhLi5mNDZjMWM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMDMtMjggIE7DoW5kb3IgSHVzemthICA8aHVz
emthLm5hbmRvckBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFtOUldUXSBOUldUOiBvcHRp
b24gLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgc3VwcG9ydCBvbiBEUlQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODQxCisKKyAgICAg
ICAgTWFrZSBOUldUIHRvIGhhbmRsZSAtLXNraXAtcGl4ZWwtdGVzdC1pZi1uby1iYXNlbGluZSBv
cHRpb24gb24gZXZlcnkgZHJpdmVycywKKyAgICAgICAgbm90IG9ubHkgb24gRFJULiBUaGUgcGF0
Y2ggaXRzZWxmIHBhc3NlcyB0aGUgaW5mb3JtYXRpb24gd2hldGhlciBydW5uaW5nIHBpeGVsdGVz
dAorICAgICAgICBpcyBuZWVkZWQgdG8gZXZlcnkgdGVzdGlucHV0LiBJZiBhIHRlc3QgZG9lcyBu
b3QgaGF2ZSBhbnkgZXhwZWN0ZWQgcG5nLCBwaXhlbHRlc3QKKyAgICAgICAgd2lsbCBub3QgcnVu
bmVkLCBhcyBhIHJlc3VsdCBpdCB3aWxsIG5vdCBjYXVzZSBhIG1pc3NpbmcgZXJyb3IuCisgICAg
ICAgIFRoZSBEcml2ZXIncyBpc19yZWZ0ZXN0IG9wdGlvbiBoYXMgYmVlbiByZW5hbWVkIHRvIHJ1
bl9waXhlbF90ZXN0cywKKyAgICAgICAgdGhhdCBpcyB3aHkgdW5pdHRlc3QgYW5kIG90aGVyIG1l
dGhvZHMgYXJlIG1vZGlmaWVkLgorICAgICAgICBPcmlnaW5hbCBvcHRpb24gaGFuZGxpbmcgaXMg
cmVtb3ZlZCBmcm9tIFdlYktpdFRlc3RSdW5uZXIsIGJlY2F1c2UgaXQgY2FuIGJlCisgICAgICAg
IGRvbmUgb25seSB3aXRoIFB5dGhvbiBjb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5l
ci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3J1bl9yZWZ0ZXN0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93
b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlX3Rlc3RfbGlzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAg
KENocm9taXVtRHJpdmVyLl93cmFwcGVyX29wdGlvbnMpOgorICAgICAgICAoQ2hyb21pdW1Ecml2
ZXIucnVuX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAgICAgIChDaHJvbWl1bURyaXZlclRlc3QudGVz
dF9jcmFzaF9sb2cpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVySW5wdXQuX19pbml0X18pOgorICAgICAgICAo
RHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAg
ICAgKERyaXZlclByb3h5LnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlclByb3h5LnN0YXJ0KToK
KyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5OgorICAgICAgICAoTW9ja0RSVC5ydW4p
OgorICAgICAgICAoTW9ja0RSVC5vdXRwdXRfZm9yX3Rlc3QpOgorICAgICAgICAoTW9ja0RSVC5y
dW5fb25lX3Rlc3QpOgorICAgICAgICAoTW9ja0Nocm9taXVtRFJULnJ1bl9vbmVfdGVzdCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6Cisg
ICAgICAgIChXZWJLaXREcml2ZXIuY21kX2xpbmUpOgorICAgICAgICAoV2ViS2l0RHJpdmVyLnJ1
bl90ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cnVuVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoVGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
VGVzdEludm9jYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhl
bFRlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAg
ICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKwogMjAxMi0wMy0yNyAgSGFvIFpoZW5nICA8emhlbmdo
YW9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEhhbmRsZSBEUlQgY3Jhc2ggY2F1c2VkIGJ5IEFu
ZHJvaWQgT09NLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4
IDJmODkwYjAuLjFkOTU2OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5u
ZXIucHkKQEAgLTkyLDcgKzkyLDEyIEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAg
IGltYWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3Rl
ZF9jaGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0
ZWRfY2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQotICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQo
c2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoLCBib29sKHNlbGYuX3Jl
ZmVyZW5jZV9maWxlcykpCisgICAgICAgIGRyaXZlcl9pbnB1dCA9IERyaXZlcklucHV0KHNlbGYu
X3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFzaCwgYm9vbChzZWxmLl9yZWZlcmVu
Y2VfZmlsZXMpKQorICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX3J1bl9waXhlbF90ZXN0Ogor
ICAgICAgICAgICAgZHJpdmVyX2lucHV0LnJ1bl9waXhlbF90ZXN0ID0gRmFsc2UKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCA9IFRydWUKKyAg
ICAgICAgcmV0dXJuIGRyaXZlcl9pbnB1dAogCiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAg
aWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgpAQCAtMjkwLDcgKzI5NSw3IEBAIGNsYXNzIFNpbmds
ZVRlc3RSdW5uZXI6CiAgICAgICAgIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2ggPSBzb3J0ZWQK
ICAgICAgICAgZm9yIGV4cGVjdGF0aW9uLCByZWZlcmVuY2VfZmlsZW5hbWUgaW4gcHV0QWxsTWlz
bWF0Y2hCZWZvcmVNYXRjaChzZWxmLl9yZWZlcmVuY2VfZmlsZXMpOgogICAgICAgICAgICAgcmVm
ZXJlbmNlX3Rlc3RfbmFtZSA9IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShyZWZl
cmVuY2VfZmlsZW5hbWUpCi0gICAgICAgICAgICByZWZlcmVuY2Vfb3V0cHV0ID0gc2VsZi5fZHJp
dmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHJlZmVyZW5jZV90ZXN0X25hbWUsIHNlbGYuX3RpbWVv
dXQsIHRlc3Rfb3V0cHV0LmltYWdlX2hhc2gsIGlzX3JlZnRlc3Q9VHJ1ZSkpCisgICAgICAgICAg
ICByZWZlcmVuY2Vfb3V0cHV0ID0gc2VsZi5fZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHJl
ZmVyZW5jZV90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIHRlc3Rfb3V0cHV0LmltYWdlX2hhc2gs
IHJ1bl9waXhlbF90ZXN0PVRydWUpKQogICAgICAgICAgICAgdGVzdF9yZXN1bHQgPSBzZWxmLl9j
b21wYXJlX291dHB1dF93aXRoX3JlZmVyZW5jZSh0ZXN0X291dHB1dCwgcmVmZXJlbmNlX291dHB1
dCwgcmVmZXJlbmNlX2ZpbGVuYW1lLCBleHBlY3RhdGlvbiA9PSAnIT0nKQogCiAgICAgICAgICAg
ICBpZiAoZXhwZWN0YXRpb24gPT0gJyE9JyBhbmQgdGVzdF9yZXN1bHQuZmFpbHVyZXMpIG9yIChl
eHBlY3RhdGlvbiA9PSAnPT0nIGFuZCBub3QgdGVzdF9yZXN1bHQuZmFpbHVyZXMpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29y
a2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
d29ya2VyLnB5CmluZGV4IGIwNTg4YWIuLmYzY2I5ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKQEAg
LTE0MCw5ICsxNDAsMTMgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0
cmFjdFdvcmtlcik6CiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBu
dW1fdGVzdHMgPSAwCiAgICAgICAgIGZvciB0ZXN0X2lucHV0IGluIHRlc3RfbGlzdDoKLSAgICAg
ICAgICAgICNGSVhNRTogV2hlbiB0aGUgRFJUIHN1cHBvcnQgYWxzbyB0aGlzIGZ1bmN0aW9uLCB0
aGF0IHdvdWxkIGJlIHVzZWZ1bAotICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5kcml2ZXJfbmFt
ZSgpID09ICJXZWJLaXRUZXN0UnVubmVyIiBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lw
X3BpeGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKSBhbmQgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdw
aXhlbF90ZXN0cycpOgotICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhl
bF90ZXN0ID0gKHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UodGVzdF9pbnB1dC50ZXN0X25hbWUp
ICE9IE5vbmUpCisgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rl
c3RzJyk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdza2lwX3Bp
eGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKToKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1
dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5fcG9ydC5leHBlY3RlZF9pbWFnZSh0ZXN0
X2lucHV0LnRlc3RfbmFtZSkgIT0gTm9uZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IFRydWUKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3Bp
eGVsX3Rlc3QgPSBGYWxzZQogICAgICAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9pbnB1dCkK
ICAgICAgICAgICAgIG51bV90ZXN0cyArPSAxCiAgICAgICAgICAgICBzZWxmLl93b3JrZXJfY29u
bmVjdGlvbi55aWVsZF90b19icm9rZXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggYmNhMWRiOC4uNmM3MDZkMyAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtLnB5CkBAIC00MDUsNyArNDA1LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVy
KToKIAogICAgIGRlZiBfd3JhcHBlcl9vcHRpb25zKHNlbGYsIHBpeGVsX3Rlc3RzKToKICAgICAg
ICAgY21kID0gW10KLSAgICAgICAgaWYgcGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6
CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX2ltYWdl
X3BhdGg6CiAgICAgICAgICAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IHNlbGYuX3BvcnQuX2Zp
bGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksICdwbmdfcmVzdWx0
JXMucG5nJyAlIHNlbGYuX3dvcmtlcl9udW1iZXIpCiAgICAgICAgICAgICAjIFNlZSBub3RlIGFi
b3ZlIGluIGRpZmZfaW1hZ2UoKSBmb3Igd2h5IHdlIG5lZWQgX2NvbnZlcnRfcGF0aCgpLgpAQCAt
NTE3LDcgKzUxNyw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYg
cnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0KToKICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2M6
Ci0gICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdCBvciBzZWxm
Ll9waXhlbF90ZXN0cywgZHJpdmVyX2lucHV0LmFyZ3MpCisgICAgICAgICAgICBzZWxmLl9zdGFy
dChkcml2ZXJfaW5wdXQucnVuX3BpeGVsX3Rlc3QsIGRyaXZlcl9pbnB1dC5hcmdzKQogCiAgICAg
ICAgIG91dHB1dCA9IFtdCiAgICAgICAgIGVycm9yID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0
LnB5CmluZGV4IDgwNzQzMGUuLjg0YWMzOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpA
QCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIHNlbGYuZHJpdmVyLnRlc3RfdG9fdXJpID0gbGFtYmRhIHRlc3Q6ICdt
b2NrdGVzdHVyaScKICAgICAgICAgc2VsZi5kcml2ZXIuX3BvcnQuZHJpdmVyX25hbWUgPSBsYW1i
ZGE6ICdtb2NrZHJpdmVyJwogICAgICAgICBzZWxmLmRyaXZlci5fcG9ydC5fZ2V0X2NyYXNoX2xv
ZyA9IGxhbWJkYSBuYW1lLCBwaWQsIG91dCwgZXJyOiAnbW9ja2NyYXNobG9nJwotICAgICAgICBk
cml2ZXJfb3V0cHV0ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3QoRHJpdmVySW5wdXQodGVzdF9uYW1l
PSdzb21lL3Rlc3QuaHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2VfaGFzaD1Ob25lLCBpc19yZWZ0ZXN0
PUZhbHNlKSkKKyAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuZHJpdmVyLnJ1bl90ZXN0KERy
aXZlcklucHV0KHRlc3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0aW1lb3V0PTEsIGltYWdlX2hh
c2g9Tm9uZSwgcnVuX3BpeGVsX3Rlc3Q9RmFsc2UpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
ZHJpdmVyX291dHB1dC5jcmFzaCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXJfb3V0
cHV0LmNyYXNoZWRfcHJvY2Vzc19uYW1lLCAnbW9ja2RyaXZlcicpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZHJpdmVyX291dHB1dC5jcmFzaGVkX3BpZCwgMTIzNCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKaW5kZXggZTFkOGE0
Yi4uNWIyMDU4YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9kcml2ZXIucHkKQEAgLTM0LDExICszNCwxMSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0gaW1wb3J0IHBhdGgKIAogCiBjbGFzcyBEcml2ZXJJbnB1dChvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hhc2gsIGlzX3Jl
ZnRlc3QsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGlt
ZW91dCwgaW1hZ2VfaGFzaCwgcnVuX3BpeGVsX3Rlc3QsIGFyZ3M9Tm9uZSk6CiAgICAgICAgIHNl
bGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQg
ICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1hZ2VfaGFzaAotICAgICAgICBz
ZWxmLmlzX3JlZnRlc3QgPSBpc19yZWZ0ZXN0CisgICAgICAgIHNlbGYucnVuX3BpeGVsX3Rlc3Qg
PSBydW5fcGl4ZWxfdGVzdAogICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCiAKIApAQCAt
MTA0LDcgKzEwNCw2IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAg
ICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtl
cl9udW1iZXIKLSAgICAgICAgc2VsZi5fcGl4ZWxfdGVzdHMgPSBwaXhlbF90ZXN0cwogICAgICAg
ICBzZWxmLl9ub190aW1lb3V0ID0gbm9fdGltZW91dAogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYs
IGRyaXZlcl9pbnB1dCk6CkBAIC0xODEsNyArMTgwLDYgQEAgY2xhc3MgRHJpdmVyUHJveHkob2Jq
ZWN0KToKICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKICAgICAg
ICAgc2VsZi5fZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yID0gZHJpdmVyX2luc3RhbmNlX2Nv
bnN0cnVjdG9yCiAgICAgICAgIHNlbGYuX25vX3RpbWVvdXQgPSBub190aW1lb3V0Ci0gICAgICAg
IHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxfdGVzdHMKIAogICAgICAgICAjIEZJWE1FOiBXZSBz
aG91bGRuJ3QgbmVlZCB0byBjcmVhdGUgYSBkcml2ZXIgdW50aWwgd2UgYWN0dWFsbHkgcnVuIGEg
dGVzdC4KICAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVz
dHMpCkBAIC0yMTEsNyArMjA5LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAgICAg
ICAgICAgIHZpcnR1YWxfZHJpdmVyX2lucHV0LmFyZ3MgPSBzZWxmLl9wb3J0Lmxvb2t1cF92aXJ0
dWFsX3Rlc3RfYXJncyhkcml2ZXJfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICAgICAgcmV0dXJu
IHNlbGYucnVuX3Rlc3QodmlydHVhbF9kcml2ZXJfaW5wdXQpCiAKLSAgICAgICAgcGl4ZWxfdGVz
dHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVzdHMgb3IgZHJpdmVyX2lucHV0LmlzX3JlZnRlc3QK
KyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gZHJpdmVyX2lucHV0LnJ1bl9waXhlbF90ZXN0
CiAgICAgICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2NtZF9saW5lX2FzX2tleShwaXhlbF90ZXN0
c19uZWVkZWQsIGRyaXZlcl9pbnB1dC5hcmdzKQogICAgICAgICBpZiBub3QgY21kX2xpbmVfa2V5
IGluIHNlbGYuX3J1bm5pbmdfZHJpdmVyczoKICAgICAgICAgICAgIHNlbGYuX3J1bm5pbmdfZHJp
dmVyc1tjbWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHNfbmVlZGVk
KQpAQCAtMjI2LDcgKzIyNCw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAg
ICMgVGhlIG9ubHkgcmVhc29uIHdlIGhhdmUgdGhpcyByb3V0aW5lIGF0IGFsbCBpcyBzbyB0aGUg
cGVyZnRlc3RydW5uZXIKICAgICAgICAgIyBjYW4gcGF1c2UgYmVmb3JlIHJ1bm5pbmcgYSB0ZXN0
OyBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gcHVzaCB0aGF0CiAgICAgICAgICMgaW50byBydW5fdGVz
dCgpIGRpcmVjdGx5LgotICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2VsZi5fcGl4ZWxfdGVz
dHMsIFtdKQorICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoVHJ1ZSwgW10pCiAKICAgICBkZWYg
aGFzX2NyYXNoZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBhbnkoZHJpdmVyLmhhc19jcmFzaGVk
KCkgZm9yIGRyaXZlciBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVzKCkpCkBAIC0yMzcs
NyArMjM1LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKIAogICAgICMgRklYTUU6IHRo
aXMgc2hvdWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBvbiBQb3J0IGluc3Rl
YWQpLgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cz1Ob25lLCBwZXJfdGVzdF9h
cmdzPU5vbmUpOgotICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rl
c3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzIG9yIFtdKQorICAgICAgICBy
ZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzIG9y
IFtdKQogCiAgICAgZGVmIF9jbWRfbGluZV9hc19rZXkoc2VsZiwgcGl4ZWxfdGVzdHMsIHBlcl90
ZXN0X2FyZ3MpOgogICAgICAgICByZXR1cm4gJyAnLmpvaW4oc2VsZi5jbWRfbGluZShwaXhlbF90
ZXN0cywgcGVyX3Rlc3RfYXJncykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQppbmRleCAzZDQxZWJkLi5iNGQ1ZTZlIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19k
cnQucHkKQEAgLTE4NCw3ICsxODQsOSBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAgICAgICAg
ICAgICBsaW5lID0gc2VsZi5fc3RkaW4ucmVhZGxpbmUoKQogICAgICAgICAgICAgaWYgbm90IGxp
bmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIHNlbGYucnVuX29uZV90
ZXN0KHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpKQorICAgICAgICAgICAgZHJpdmVyX2lucHV0
ID0gc2VsZi5pbnB1dF9mcm9tX2xpbmUobGluZSkKKyAgICAgICAgICAgIGlzX3JlZnRlc3QgPSBk
cml2ZXJfaW5wdXQucnVuX3BpeGVsX3Rlc3QKKyAgICAgICAgICAgIHNlbGYucnVuX29uZV90ZXN0
KGRyaXZlcl9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgIGRlZiBpbnB1dF9mcm9tX2xpbmUoc2Vs
ZiwgbGluZSk6CiAgICAgICAgIHZhbHMgPSBsaW5lLnN0cmlwKCkuc3BsaXQoIiciKQpAQCAtMjA0
LDEzICsyMDYsMTMgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLW1pc21hdGNoLmh0bWwnKSkKICAgICAgICAgcmV0dXJu
IERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwgY2hlY2tzdW0sIGlzX3JlZnRlc3QpCiAKLSAgICBk
ZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgIGRlZiBvdXRwdXRfZm9y
X3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgaXNfcmVmdGVzdCk6CiAgICAgICAgIHBvcnQgPSBzZWxm
Ll9wb3J0CiAgICAgICAgIGFjdHVhbF90ZXh0ID0gcG9ydC5leHBlY3RlZF90ZXh0KHRlc3RfaW5w
dXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfYXVkaW8gPSBwb3J0LmV4cGVjdGVkX2F1ZGlv
KHRlc3RfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICBhY3R1YWxfaW1hZ2UgPSBOb25lCiAgICAg
ICAgIGFjdHVhbF9jaGVja3N1bSA9IE5vbmUKLSAgICAgICAgaWYgdGVzdF9pbnB1dC5pc19yZWZ0
ZXN0OgorICAgICAgICBpZiB0ZXN0X2lucHV0LnJ1bl9waXhlbF90ZXN0IGFuZCBpc19yZWZ0ZXN0
OgogICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWUgb3V0cHV0IGZvciByZWZ0ZXN0cy4KICAgICAg
ICAgICAgIGFjdHVhbF90ZXh0ID0gJ3JlZmVyZW5jZSB0ZXh0XG4nCiAgICAgICAgICAgICBhY3R1
YWxfY2hlY2tzdW0gPSAnTm9uZScKQEAgLTIyNCw4ICsyMjYsOCBAQCBjbGFzcyBNb2NrRFJUKG9i
amVjdCk6CiAKICAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dChhY3R1YWxfdGV4dCwgYWN0dWFs
X2ltYWdlLCBhY3R1YWxfY2hlY2tzdW0sIGFjdHVhbF9hdWRpbykKIAotICAgIGRlZiBydW5fb25l
X3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1dCA9IHNlbGYub3V0cHV0X2Zv
cl90ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0
LCBpc19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rlc3QodGVz
dF9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBpZiBvdXRwdXQuYXVkaW86CiAgICAgICAg
ICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTogYXVkaW8vd2F2XG4nKQpAQCAt
MjY5LDExICsyNzEsMTEgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgogCiAgICAg
ICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUsIHRpbWVvdXQsIGNoZWNrc3VtLCBpc19y
ZWZ0ZXN0KQogCi0gICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKLSAgICAg
ICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rlc3QodGVzdF9pbnB1dCkKKyAgICBkZWYgcnVu
X29uZV90ZXN0KHNlbGYsIHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpOgorICAgICAgICBvdXRwdXQg
PSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KQogCiAgICAgICAg
IHNlbGYuX3N0ZG91dC53cml0ZSgiI1VSTDolc1xuIiAlIHNlbGYuX2RyaXZlci50ZXN0X3RvX3Vy
aSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMucGl4ZWxf
dGVzdHMgYW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1dC5pc19yZWZ0ZXN0
KToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQu
aW1hZ2VfaGFzaCBvciBpc19yZWZ0ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0
ZSgiI01ENTolc1xuIiAlIG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAgICAgICAgc2VsZi5faG9z
dC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5k
aXJuYW1lKHNlbGYuX29wdGlvbnMucGl4ZWxfcGF0aCkpCiAgICAgICAgICAgICBzZWxmLl9ob3N0
LmZpbGVzeXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUoc2VsZi5fb3B0aW9ucy5waXhlbF9wYXRoLApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJr
aXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQppbmRleCBlMGJmNmY3Li4wODk0NjM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtNDU2LDggKzQ1Niw2IEBAIGNsYXNz
IFdlYktpdERyaXZlcihEcml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0
cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRfd3JhcHBlcihz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAgY21kLmFwcGVuZChzZWxm
Ll9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQotICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRp
b24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgotICAgICAgICAgICAgY21kLmFw
cGVuZCgnLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQogICAgICAgICBpZiBzZWxm
Ll9wb3J0LmdldF9vcHRpb24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAgICAgICAgICAgIGNtZC5h
cHBlbmQoJy0tZ2MtYmV0d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29w
dGlvbignY29tcGxleF90ZXh0Jyk6CkBAIC00NzAsNyArNDY4LDcgQEAgY2xhc3MgV2ViS2l0RHJp
dmVyKERyaXZlcik6CiAKICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0LmdldF9vcHRpb24o
J2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYgcGl4ZWxfdGVzdHMgb3Ig
c2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgogICAgICAgICAgICAg
Y21kLmFwcGVuZCgnLS1waXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRlbmQocGVyX3Rlc3Rf
YXJncykKIApAQCAtNTQ3LDcgKzU0NSw3IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgog
CiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9zZXJ2ZXJfcHJvY2VzczoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1
dC5pc19yZWZ0ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAgICAgICAgIHNlbGYu
X3N0YXJ0KGRyaXZlcl9pbnB1dC5ydW5fcGl4ZWxfdGVzdCwgW10pCiAgICAgICAgIHNlbGYuZXJy
b3JfZnJvbV90ZXN0ID0gc3RyKCkKICAgICAgICAgc2VsZi5lcnJfc2Vlbl9lb2YgPSBGYWxzZQog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGM5ZTBlNTYu
LjQxMTk2NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC02OCw3ICs2OCw2IEBAIFRlc3RDb250cm9sbGVyJiBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkK
IAogVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAgICAgOiBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQaXhlbFRlc3RP
cHRpb24oZmFsc2UpCiAgICAgLCBtX3ZlcmJvc2UoZmFsc2UpCiAgICAgLCBtX3ByaW50U2VwYXJh
dG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJNb2RlKGZhbHNlKQpAQCAtMjYwLDExICsy
NTksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChhcmd1bWVudCA9PSAiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUiKSB7Ci0g
ICAgICAgICAgICBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tcGl4ZWwtdGVz
dHMiKSB7CiAgICAgICAgICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAgICAgY29u
dGludWU7CkBAIC01MTUsNyArNTA5LDYgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChj
b25zdCBjaGFyKiB0ZXN0KQogICAgIG1fc3RhdGUgPSBSdW5uaW5nVGVzdDsKIAogICAgIG1fY3Vy
cmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVzdEludm9jYXRpb24ocGF0aE9yVVJMKSk7
Ci0gICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0U2tpcFBpeGVsVGVzdE9wdGlvbihtX3NraXBQ
aXhlbFRlc3RPcHRpb24pOwogICAgIGlmIChtX2R1bXBQaXhlbHMpCiAgICAgICAgIG1fY3VycmVu
dEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFjOWYxZmYuLmI5NDY1ZWYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTEwNSw3ICsxMDUsNiBA
QCBwcml2YXRlOgogICAgIE93blB0cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50SW52b2NhdGlv
bjsKIAogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwotICAgIGJvb2wgbV9za2lwUGl4ZWxUZXN0T3B0
aW9uOwogICAgIGJvb2wgbV92ZXJib3NlOwogICAgIGJvb2wgbV9wcmludFNlcGFyYXRvcnM7CiAg
ICAgYm9vbCBtX3VzaW5nU2VydmVyTW9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggYWJlYThlNC4uMjQ5MzQ5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDYgQEAgVGVzdEludm9jYXRpb246
OlRlc3RJbnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwpCiAgICAgOiBtX3Vy
bChBZG9wdFdLLCBjcmVhdGVXS1VSTChwYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgLCBtX3BhdGhP
clVSTChwYXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQ
aXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX2dvdEluaXRpYWxSZXNwb25zZShmYWxzZSkK
ICAgICAsIG1fZ290RmluYWxNZXNzYWdlKGZhbHNlKQogICAgICwgbV9nb3RSZXBhaW50KGZhbHNl
KQpAQCAtMTEwLDggKzEwOSw2IEBAIFRlc3RJbnZvY2F0aW9uOjp+VGVzdEludm9jYXRpb24oKQog
CiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYg
ZXhwZWN0ZWRQaXhlbEhhc2gpCiB7Ci0gICAgaWYgKG1fc2tpcFBpeGVsVGVzdE9wdGlvbiAmJiAh
ZXhwZWN0ZWRQaXhlbEhhc2gubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybjsKICAgICBtX2R1bXBQ
aXhlbHMgPSB0cnVlOwogICAgIG1fZXhwZWN0ZWRQaXhlbEhhc2ggPSBleHBlY3RlZFBpeGVsSGFz
aDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBhZjlmMzhm
Li45MTY1MjA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC0z
OSw3ICszOSw2IEBAIHB1YmxpYzoKICAgICB+VGVzdEludm9jYXRpb24oKTsKIAogICAgIHZvaWQg
c2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKLSAg
ICB2b2lkIHNldFNraXBQaXhlbFRlc3RPcHRpb24oYm9vbCBvcHRpb24pIHsgbV9za2lwUGl4ZWxU
ZXN0T3B0aW9uID0gb3B0aW9uOyB9CiAKICAgICB2b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUs
IFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CkBAIC01NSw3ICs1NCw2IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgYm9vbCBtX2R1bXBQaXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVs
SGFzaDsKLSAgICBib29sIG1fc2tpcFBpeGVsVGVzdE9wdGlvbjsKIAogICAgIC8vIEludm9jYXRp
b24gc3RhdGUKICAgICBib29sIG1fZ290SW5pdGlhbFJlc3BvbnNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134530</attachid>
            <date>2012-03-29 02:08:38 -0700</date>
            <delta_ts>2012-04-11 04:21:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skippixeltest.diff</filename>
            <type>text/plain</type>
            <size>18387</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMDI1
NDAyLi43ZmIzMGRhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDMtMjkgIE5hbmRvciBIdXN6a2EgIDxobmFu
ZG9yQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbTlJXVF0gTlJXVDogb3B0aW9uIC0tc2tp
cC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIHN1cHBvcnQgb24gRFJUCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg0MQorCisgICAgICAgIE1ha2Ug
TlJXVCB0byBoYW5kbGUgLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgb3B0aW9uIG9u
IGV2ZXJ5IGRyaXZlcnMsCisgICAgICAgIG5vdCBvbmx5IG9uIERSVC4gVGhlIHBhdGNoIGl0c2Vs
ZiBwYXNzZXMgdGhlIGluZm9ybWF0aW9uIHdoZXRoZXIgcnVubmluZyBwaXhlbHRlc3QKKyAgICAg
ICAgaXMgbmVlZGVkIHRvIGV2ZXJ5IHRlc3RpbnB1dC4gSWYgYSB0ZXN0IGRvZXMgbm90IGhhdmUg
YW55IGV4cGVjdGVkIHBuZywgcGl4ZWx0ZXN0CisgICAgICAgIHdpbGwgbm90IHJ1bm5lZCwgYXMg
YSByZXN1bHQgaXQgd2lsbCBub3QgY2F1c2UgYSBtaXNzaW5nIGVycm9yLgorICAgICAgICBUaGUg
RHJpdmVyJ3MgaXNfcmVmdGVzdCBvcHRpb24gaGFzIGJlZW4gcmVuYW1lZCB0byBzaG91bGRfcnVu
X3BpeGVsX3Rlc3RzLAorICAgICAgICB0aGF0IGlzIHdoeSB1bml0dGVzdCBhbmQgb3RoZXIgbWV0
aG9kcyBhcmUgbW9kaWZpZWQuCisgICAgICAgIE9yaWdpbmFsIG9wdGlvbiBoYW5kbGluZyBpcyBy
ZW1vdmVkIGZyb20gV2ViS2l0VGVzdFJ1bm5lciwgYmVjYXVzZSBpdCBjYW4gYmUKKyAgICAgICAg
ZG9uZSBvbmx5IHdpdGggUHl0aG9uIGNvZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVy
Ll9kcml2ZXJfaW5wdXQpOgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lci5fcnVuX3JlZnRlc3Qp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dv
cmtlci5weToKKyAgICAgICAgKFdvcmtlci5oYW5kbGVfdGVzdF9saXN0KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAgICAgICAo
Q2hyb21pdW1Ecml2ZXIuX3dyYXBwZXJfb3B0aW9ucyk6CisgICAgICAgIChDaHJvbWl1bURyaXZl
ci5ydW5fdGVzdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV91bml0dGVzdC5weToKKyAgICAgICAgKENocm9taXVtRHJpdmVyVGVzdC50ZXN0
X2NyYXNoX2xvZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXJJbnB1dC5fX2luaXRfXyk6CisgICAgICAgIChE
cml2ZXIuX19pbml0X18pOgorICAgICAgICAoRHJpdmVyUHJveHkuX19pbml0X18pOgorICAgICAg
ICAoRHJpdmVyUHJveHkucnVuX3Rlc3QpOgorICAgICAgICAoRHJpdmVyUHJveHkuc3RhcnQpOgor
ICAgICAgICAoRHJpdmVyUHJveHkuY21kX2xpbmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHk6CisgICAgICAgIChNb2NrRFJULnJ1bik6
CisgICAgICAgIChNb2NrRFJULmlucHV0X2Zyb21fbGluZSk6CisgICAgICAgIChNb2NrRFJULm91
dHB1dF9mb3JfdGVzdCk6CisgICAgICAgIChNb2NrRFJULnJ1bl9vbmVfdGVzdCk6CisgICAgICAg
IChNb2NrQ2hyb21pdW1EUlQuaW5wdXRfZnJvbV9saW5lKToKKyAgICAgICAgKE1vY2tDaHJvbWl1
bURSVC5ydW5fb25lX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Via2l0LnB5OgorICAgICAgICAoV2ViS2l0RHJpdmVyLmNtZF9saW5lKToKKyAg
ICAgICAgKFdlYktpdERyaXZlci5ydW5fdGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpUZXN0
Q29udHJvbGxlcik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJ1blRlc3QpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFRlc3RDb250cm9sbGVyKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdEludm9jYXRpb246OlRlc3RJbnZvY2F0aW9uKToKKyAgICAgICAgKFdUUjo6VGVz
dEludm9jYXRpb246OnNldElzUGl4ZWxUZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgIChUZXN0SW52b2NhdGlvbik6CisKIDIwMTItMDMt
MjggIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggLS1uby1zYXZl
ZC1zdGF0ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCAy
Zjg5MGIwLi5mMzY5OTNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAgIGlt
YWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9j
aGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRf
Y2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQotICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQoc2Vs
Zi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoLCBib29sKHNlbGYuX3JlZmVy
ZW5jZV9maWxlcykpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUs
IHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCkK
IAogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoK
QEAgLTI5MCw3ICsyOTAsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBwdXRB
bGxNaXNtYXRjaEJlZm9yZU1hdGNoID0gc29ydGVkCiAgICAgICAgIGZvciBleHBlY3RhdGlvbiwg
cmVmZXJlbmNlX2ZpbGVuYW1lIGluIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2goc2VsZi5fcmVm
ZXJlbmNlX2ZpbGVzKToKICAgICAgICAgICAgIHJlZmVyZW5jZV90ZXN0X25hbWUgPSBzZWxmLl9w
b3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUocmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAgICAg
ICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChy
ZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNo
LCBpc19yZWZ0ZXN0PVRydWUpKQorICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYu
X2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90
aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9VHJ1
ZSkpCiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYuX2NvbXBhcmVfb3V0cHV0X3dpdGhf
cmVmZXJlbmNlKHRlc3Rfb3V0cHV0LCByZWZlcmVuY2Vfb3V0cHV0LCByZWZlcmVuY2VfZmlsZW5h
bWUsIGV4cGVjdGF0aW9uID09ICchPScpCiAKICAgICAgICAgICAgIGlmIChleHBlY3RhdGlvbiA9
PSAnIT0nIGFuZCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcykgb3IgKGV4cGVjdGF0aW9uID09ICc9PScg
YW5kIG5vdCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKaW5kZXggYjA1
ODhhYi4uZjNjYjlmZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQpAQCAtMTQwLDkgKzE0MCwxMyBAQCBj
bGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJfYnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAg
ICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIG51bV90ZXN0cyA9IDAKICAgICAg
ICAgZm9yIHRlc3RfaW5wdXQgaW4gdGVzdF9saXN0OgotICAgICAgICAgICAgI0ZJWE1FOiBXaGVu
IHRoZSBEUlQgc3VwcG9ydCBhbHNvIHRoaXMgZnVuY3Rpb24sIHRoYXQgd291bGQgYmUgdXNlZnVs
Ci0gICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkgPT0gIldlYktpdFRlc3RS
dW5uZXIiIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19i
YXNlbGluZScpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6Ci0gICAg
ICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5fcG9y
dC5leHBlY3RlZF9pbWFnZSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkgIT0gTm9uZSkKKyAgICAgICAg
ICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKKyAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNl
bGluZScpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxf
dGVzdCA9IChzZWxmLl9wb3J0LmV4cGVjdGVkX2ltYWdlKHRlc3RfaW5wdXQudGVzdF9uYW1lKSAh
PSBOb25lKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHRlc3Rf
aW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IEZhbHNlCiAg
ICAgICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2lucHV0KQogICAgICAgICAgICAgbnVtX3Rl
c3RzICs9IDEKICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9jb25uZWN0aW9uLnlpZWxkX3RvX2Jy
b2tlcigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bS5weQppbmRleCBiY2ExZGI4Li44NzdmNjUwIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTQwNSw3
ICs0MDUsNyBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIF93cmFw
cGVyX29wdGlvbnMoc2VsZiwgcGl4ZWxfdGVzdHMpOgogICAgICAgICBjbWQgPSBbXQotICAgICAg
ICBpZiBwaXhlbF90ZXN0cyBvciBzZWxmLl9waXhlbF90ZXN0czoKKyAgICAgICAgaWYgcGl4ZWxf
dGVzdHM6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5faW1hZ2VfcGF0aDoKICAgICAgICAgICAg
ICAgICBzZWxmLl9pbWFnZV9wYXRoID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgJ3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5fd29y
a2VyX251bWJlcikKICAgICAgICAgICAgICMgU2VlIG5vdGUgYWJvdmUgaW4gZGlmZl9pbWFnZSgp
IGZvciB3aHkgd2UgbmVlZCBfY29udmVydF9wYXRoKCkuCkBAIC01MTcsNyArNTE3LDcgQEAgY2xh
c3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVyKToKIAogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2
ZXJfaW5wdXQpOgogICAgICAgICBpZiBub3Qgc2VsZi5fcHJvYzoKLSAgICAgICAgICAgIHNlbGYu
X3N0YXJ0KGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBkcml2
ZXJfaW5wdXQuYXJncykKKyAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5zaG91
bGRfcnVuX3BpeGVsX3Rlc3QsIGRyaXZlcl9pbnB1dC5hcmdzKQogCiAgICAgICAgIG91dHB1dCA9
IFtdCiAgICAgICAgIGVycm9yID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDgw
NzQzMGUuLjgwY2RkMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpAQCAtMTA0LDcgKzEw
NCw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIHNlbGYuZHJpdmVyLnRlc3RfdG9fdXJpID0gbGFtYmRhIHRlc3Q6ICdtb2NrdGVzdHVyaScK
ICAgICAgICAgc2VsZi5kcml2ZXIuX3BvcnQuZHJpdmVyX25hbWUgPSBsYW1iZGE6ICdtb2NrZHJp
dmVyJwogICAgICAgICBzZWxmLmRyaXZlci5fcG9ydC5fZ2V0X2NyYXNoX2xvZyA9IGxhbWJkYSBu
YW1lLCBwaWQsIG91dCwgZXJyOiAnbW9ja2NyYXNobG9nJwotICAgICAgICBkcml2ZXJfb3V0cHV0
ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3QoRHJpdmVySW5wdXQodGVzdF9uYW1lPSdzb21lL3Rlc3Qu
aHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2VfaGFzaD1Ob25lLCBpc19yZWZ0ZXN0PUZhbHNlKSkKKyAg
ICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHRl
c3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0aW1lb3V0PTEsIGltYWdlX2hhc2g9Tm9uZSwgc2hv
dWxkX3J1bl9waXhlbF90ZXN0PUZhbHNlKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRyaXZl
cl9vdXRwdXQuY3Jhc2gpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyX291dHB1dC5j
cmFzaGVkX3Byb2Nlc3NfbmFtZSwgJ21vY2tkcml2ZXInKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGRyaXZlcl9vdXRwdXQuY3Jhc2hlZF9waWQsIDEyMzQpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CmluZGV4IGUxZDhhNGIuLmEx
MTNkYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CkBAIC0zNCwxMSArMzQsMTEgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtIGltcG9ydCBwYXRoCiAKIAogY2xhc3MgRHJpdmVySW5wdXQob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBpc19yZWZ0ZXN0
LCBhcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQs
IGltYWdlX2hhc2gsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgYXJncz1Ob25lKToKICAgICAgICAg
c2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91
dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBpbWFnZV9oYXNoCi0gICAgICAg
IHNlbGYuaXNfcmVmdGVzdCA9IGlzX3JlZnRlc3QKKyAgICAgICAgc2VsZi5zaG91bGRfcnVuX3Bp
eGVsX3Rlc3QgPSBzaG91bGRfcnVuX3BpeGVsX3Rlc3QKICAgICAgICAgc2VsZi5hcmdzID0gYXJn
cyBvciBbXQogCiAKQEAgLTEwNCw3ICsxMDQsNiBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAg
ICAgICAgIiIiCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3dvcmtl
cl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCi0gICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4
ZWxfdGVzdHMKICAgICAgICAgc2VsZi5fbm9fdGltZW91dCA9IG5vX3RpbWVvdXQKIAogICAgIGRl
ZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpOgpAQCAtMTgxLDcgKzE4MCw2IEBAIGNsYXNz
IERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3Jr
ZXJfbnVtYmVyCiAgICAgICAgIHNlbGYuX2RyaXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3RvciA9IGRy
aXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3RvcgogICAgICAgICBzZWxmLl9ub190aW1lb3V0ID0gbm9f
dGltZW91dAotICAgICAgICBzZWxmLl9waXhlbF90ZXN0cyA9IHBpeGVsX3Rlc3RzCiAKICAgICAg
ICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IG5lZWQgdG8gY3JlYXRlIGEgZHJpdmVyIHVudGlsIHdl
IGFjdHVhbGx5IHJ1biBhIHRlc3QuCiAgICAgICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX21ha2Vf
ZHJpdmVyKHBpeGVsX3Rlc3RzKQpAQCAtMjExLDcgKzIwOSw3IEBAIGNsYXNzIERyaXZlclByb3h5
KG9iamVjdCk6CiAgICAgICAgICAgICB2aXJ0dWFsX2RyaXZlcl9pbnB1dC5hcmdzID0gc2VsZi5f
cG9ydC5sb29rdXBfdmlydHVhbF90ZXN0X2FyZ3MoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkKICAg
ICAgICAgICAgIHJldHVybiBzZWxmLnJ1bl90ZXN0KHZpcnR1YWxfZHJpdmVyX2lucHV0KQogCi0g
ICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IHNlbGYuX3BpeGVsX3Rlc3RzIG9yIGRyaXZlcl9p
bnB1dC5pc19yZWZ0ZXN0CisgICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IGRyaXZlcl9pbnB1
dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QKICAgICAgICAgY21kX2xpbmVfa2V5ID0gc2VsZi5fY21k
X2xpbmVfYXNfa2V5KHBpeGVsX3Rlc3RzX25lZWRlZCwgZHJpdmVyX2lucHV0LmFyZ3MpCiAgICAg
ICAgIGlmIG5vdCBjbWRfbGluZV9rZXkgaW4gc2VsZi5fcnVubmluZ19kcml2ZXJzOgogICAgICAg
ICAgICAgc2VsZi5fcnVubmluZ19kcml2ZXJzW2NtZF9saW5lX2tleV0gPSBzZWxmLl9tYWtlX2Ry
aXZlcihwaXhlbF90ZXN0c19uZWVkZWQpCkBAIC0yMjYsNyArMjI0LDcgQEAgY2xhc3MgRHJpdmVy
UHJveHkob2JqZWN0KToKICAgICAgICAgIyBUaGUgb25seSByZWFzb24gd2UgaGF2ZSB0aGlzIHJv
dXRpbmUgYXQgYWxsIGlzIHNvIHRoZSBwZXJmdGVzdHJ1bm5lcgogICAgICAgICAjIGNhbiBwYXVz
ZSBiZWZvcmUgcnVubmluZyBhIHRlc3Q7IGl0IG1pZ2h0IGJlIGJldHRlciB0byBwdXNoIHRoYXQK
ICAgICAgICAgIyBpbnRvIHJ1bl90ZXN0KCkgZGlyZWN0bHkuCi0gICAgICAgIHNlbGYuX2RyaXZl
ci5zdGFydChzZWxmLl9waXhlbF90ZXN0cywgW10pCisgICAgICAgIHNlbGYuX2RyaXZlci5zdGFy
dChzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyksIFtdKQogCiAgICAgZGVmIGhh
c19jcmFzaGVkKHNlbGYpOgogICAgICAgICByZXR1cm4gYW55KGRyaXZlci5oYXNfY3Jhc2hlZCgp
IGZvciBkcml2ZXIgaW4gc2VsZi5fcnVubmluZ19kcml2ZXJzLnZhbHVlcygpKQpAQCAtMjM3LDcg
KzIzNSw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAKICAgICAjIEZJWE1FOiB0aGlz
IHNob3VsZCBiZSBhIEBjbGFzc21ldGhvZCAob3IgaW1wbGVtZW50ZWQgb24gUG9ydCBpbnN0ZWFk
KS4KICAgICBkZWYgY21kX2xpbmUoc2VsZiwgcGl4ZWxfdGVzdHM9Tm9uZSwgcGVyX3Rlc3RfYXJn
cz1Ob25lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5jbWRfbGluZShwaXhlbF90ZXN0
cyBvciBzZWxmLl9waXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyBvciBbXSkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2RyaXZlci5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyBvciBb
XSkKIAogICAgIGRlZiBfY21kX2xpbmVfYXNfa2V5KHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVz
dF9hcmdzKToKICAgICAgICAgcmV0dXJuICcgJy5qb2luKHNlbGYuY21kX2xpbmUocGl4ZWxfdGVz
dHMsIHBlcl90ZXN0X2FyZ3MpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkKaW5kZXggM2Q0MWViZC4uMzg5MmM3OSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0
LnB5CkBAIC0xODQsNyArMTg0LDkgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogICAgICAgICAg
ICAgbGluZSA9IHNlbGYuX3N0ZGluLnJlYWRsaW5lKCkKICAgICAgICAgICAgIGlmIG5vdCBsaW5l
OgogICAgICAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgICAgICBzZWxmLnJ1bl9vbmVfdGVz
dChzZWxmLmlucHV0X2Zyb21fbGluZShsaW5lKSkKKyAgICAgICAgICAgIGRyaXZlcl9pbnB1dCA9
IHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpCisgICAgICAgICAgICBpc19yZWZ0ZXN0ID0gZHJp
dmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAorICAgICAgICAgICAgc2VsZi5ydW5fb25l
X3Rlc3QoZHJpdmVyX2lucHV0LCBpc19yZWZ0ZXN0KQogCiAgICAgZGVmIGlucHV0X2Zyb21fbGlu
ZShzZWxmLCBsaW5lKToKICAgICAgICAgdmFscyA9IGxpbmUuc3RyaXAoKS5zcGxpdCgiJyIpCkBA
IC0yMDIsMTUgKzIwNCwxNSBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAgICAgICAgIGlzX3Jl
ZnRlc3QgPSAoc2VsZi5fcG9ydC5yZWZlcmVuY2VfZmlsZXModGVzdF9uYW1lKSBvcgogICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLWV4cGVjdGVkLmh0bWwnKSBvcgog
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLW1pc21hdGNoLmh0bWwn
KSkKLSAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwgY2hlY2tzdW0sIGlz
X3JlZnRlc3QpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUsIDAsIGNoZWNr
c3VtLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9aXNfcmVmdGVzdCkKIAotICAgIGRlZiBvdXRwdXRf
Zm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6CisgICAgZGVmIG91dHB1dF9mb3JfdGVzdChzZWxm
LCB0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KToKICAgICAgICAgcG9ydCA9IHNlbGYuX3BvcnQKICAg
ICAgICAgYWN0dWFsX3RleHQgPSBwb3J0LmV4cGVjdGVkX3RleHQodGVzdF9pbnB1dC50ZXN0X25h
bWUpCiAgICAgICAgIGFjdHVhbF9hdWRpbyA9IHBvcnQuZXhwZWN0ZWRfYXVkaW8odGVzdF9pbnB1
dC50ZXN0X25hbWUpCiAgICAgICAgIGFjdHVhbF9pbWFnZSA9IE5vbmUKICAgICAgICAgYWN0dWFs
X2NoZWNrc3VtID0gTm9uZQotICAgICAgICBpZiB0ZXN0X2lucHV0LmlzX3JlZnRlc3Q6CisgICAg
ICAgIGlmIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0IGFuZCBpc19yZWZ0ZXN0Ogog
ICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWUgb3V0cHV0IGZvciByZWZ0ZXN0cy4KICAgICAgICAg
ICAgIGFjdHVhbF90ZXh0ID0gJ3JlZmVyZW5jZSB0ZXh0XG4nCiAgICAgICAgICAgICBhY3R1YWxf
Y2hlY2tzdW0gPSAnTm9uZScKQEAgLTIyNCw4ICsyMjYsOCBAQCBjbGFzcyBNb2NrRFJUKG9iamVj
dCk6CiAKICAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dChhY3R1YWxfdGV4dCwgYWN0dWFsX2lt
YWdlLCBhY3R1YWxfY2hlY2tzdW0sIGFjdHVhbF9hdWRpbykKIAotICAgIGRlZiBydW5fb25lX3Rl
c3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1dCA9IHNlbGYub3V0cHV0X2Zvcl90
ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0LCBp
c19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRfZm9yX3Rlc3QodGVzdF9p
bnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBpZiBvdXRwdXQuYXVkaW86CiAgICAgICAgICAg
ICBzZWxmLl9zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTogYXVkaW8vd2F2XG4nKQpAQCAtMjY3
LDEzICsyNjksMTMgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgogICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLWV4cGVjdGVkLmh0bWwnKSBvcgogICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZS5lbmRzd2l0aCgnLW1pc21hdGNoLmh0bWwnKSkK
IAotICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQodGVzdF9uYW1lLCB0aW1lb3V0LCBjaGVja3N1
bSwgaXNfcmVmdGVzdCkKKyAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgdGlt
ZW91dCwgY2hlY2tzdW0sIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD1pc19yZWZ0ZXN0KQogCi0gICAg
ZGVmIHJ1bl9vbmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKLSAgICAgICAgb3V0cHV0ID0gc2Vs
Zi5vdXRwdXRfZm9yX3Rlc3QodGVzdF9pbnB1dCkKKyAgICBkZWYgcnVuX29uZV90ZXN0KHNlbGYs
IHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpOgorICAgICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9m
b3JfdGVzdCh0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KQogCiAgICAgICAgIHNlbGYuX3N0ZG91dC53
cml0ZSgiI1VSTDolc1xuIiAlIHNlbGYuX2RyaXZlci50ZXN0X3RvX3VyaSh0ZXN0X2lucHV0LnRl
c3RfbmFtZSkpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgYW5kICh0ZXN0
X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1dC5pc19yZWZ0ZXN0KToKKyAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQuaW1hZ2VfaGFzaCBvciBp
c19yZWZ0ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgiI01ENTolc1xuIiAl
IG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAgICAgICAgc2VsZi5faG9zdC5maWxlc3lzdGVtLm1h
eWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5kaXJuYW1lKHNlbGYuX29w
dGlvbnMucGl4ZWxfcGF0aCkpCiAgICAgICAgICAgICBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ud3Jp
dGVfYmluYXJ5X2ZpbGUoc2VsZi5fb3B0aW9ucy5waXhlbF9wYXRoLApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCBlMGJmNmY3
Li5kOWJiZDY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weQpAQCAtNDU2LDggKzQ1Niw2IEBAIGNsYXNzIFdlYktpdERyaXZlcihE
cml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJn
cyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAgY21kLmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRoX3Rv
X2RyaXZlcigpKQotICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxf
dGVzdF9pZl9ub19iYXNlbGluZScpOgotICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1za2lwLXBp
eGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRp
b24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZ2MtYmV0
d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignY29tcGxleF90
ZXh0Jyk6CkBAIC00NzAsNyArNDY4LDcgQEAgY2xhc3MgV2ViS2l0RHJpdmVyKERyaXZlcik6CiAK
ICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0
X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYgcGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVz
dHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1w
aXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRlbmQocGVyX3Rlc3RfYXJncykKIApAQCAtNTQ3
LDcgKzU0NSw3IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIHJ1bl90
ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9zZXJ2ZXJfcHJv
Y2VzczoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0IG9y
IHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9p
bnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QsIFtdKQogICAgICAgICBzZWxmLmVycm9yX2Zyb21f
dGVzdCA9IHN0cigpCiAgICAgICAgIHNlbGYuZXJyX3NlZW5fZW9mID0gRmFsc2UKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzYzgwZjlhLi4xMGEyNTgw
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNjgsNyAr
NjgsNiBAQCBUZXN0Q29udHJvbGxlciYgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpCiAKIFRlc3RD
b250cm9sbGVyOjpUZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQog
ICAgIDogbV9kdW1wUGl4ZWxzKGZhbHNlKQotICAgICwgbV9za2lwUGl4ZWxUZXN0T3B0aW9uKGZh
bHNlKQogICAgICwgbV92ZXJib3NlKGZhbHNlKQogICAgICwgbV9wcmludFNlcGFyYXRvcnMoZmFs
c2UpCiAgICAgLCBtX3VzaW5nU2VydmVyTW9kZShmYWxzZSkKQEAgLTI2MCwxMSArMjU5LDYgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJn
dltdKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYXJn
dW1lbnQgPT0gIi0tc2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIikgewotICAgICAgICAg
ICAgbV9za2lwUGl4ZWxUZXN0T3B0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0KICAgICAgICAgaWYgKGFyZ3VtZW50ID09ICItLXBpeGVsLXRlc3RzIikgewog
ICAgICAgICAgICAgbV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtNTE2LDcgKzUxMCw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hh
ciogdGVzdCkKICAgICBtX3N0YXRlID0gUnVubmluZ1Rlc3Q7CiAKICAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uID0gYWRvcHRQdHIobmV3IFRlc3RJbnZvY2F0aW9uKHBhdGhPclVSTCkpOwotICAgIG1f
Y3VycmVudEludm9jYXRpb24tPnNldFNraXBQaXhlbFRlc3RPcHRpb24obV9za2lwUGl4ZWxUZXN0
T3B0aW9uKTsKICAgICBpZiAobV9kdW1wUGl4ZWxzKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5zZXRJc1BpeGVsVGVzdChleHBlY3RlZFBpeGVsSGFzaCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhYzlmMWZmLi5iOTQ2NWVmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xMDUsNyArMTA1LDYgQEAgcHJpdmF0
ZToKICAgICBPd25QdHI8VGVzdEludm9jYXRpb24+IG1fY3VycmVudEludm9jYXRpb247CiAKICAg
ICBib29sIG1fZHVtcFBpeGVsczsKLSAgICBib29sIG1fc2tpcFBpeGVsVGVzdE9wdGlvbjsKICAg
ICBib29sIG1fdmVyYm9zZTsKICAgICBib29sIG1fcHJpbnRTZXBhcmF0b3JzOwogICAgIGJvb2wg
bV91c2luZ1NlcnZlck1vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IGFiZWE4ZTQuLjI0OTM0OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC05Niw3ICs5Niw2IEBAIFRlc3RJbnZvY2F0aW9uOjpUZXN0SW52
b2NhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMKQogICAgIDogbV91cmwoQWRvcHRX
SywgY3JlYXRlV0tVUkwocGF0aE9yVVJMLmNfc3RyKCkpKQogICAgICwgbV9wYXRoT3JVUkwocGF0
aE9yVVJMKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQotICAgICwgbV9za2lwUGl4ZWxUZXN0
T3B0aW9uKGZhbHNlKQogICAgICwgbV9nb3RJbml0aWFsUmVzcG9uc2UoZmFsc2UpCiAgICAgLCBt
X2dvdEZpbmFsTWVzc2FnZShmYWxzZSkKICAgICAsIG1fZ290UmVwYWludChmYWxzZSkKQEAgLTEx
MCw4ICsxMDksNiBAQCBUZXN0SW52b2NhdGlvbjo6flRlc3RJbnZvY2F0aW9uKCkKIAogdm9pZCBU
ZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVk
UGl4ZWxIYXNoKQogewotICAgIGlmIChtX3NraXBQaXhlbFRlc3RPcHRpb24gJiYgIWV4cGVjdGVk
UGl4ZWxIYXNoLmxlbmd0aCgpKQotICAgICAgICByZXR1cm47CiAgICAgbV9kdW1wUGl4ZWxzID0g
dHJ1ZTsKICAgICBtX2V4cGVjdGVkUGl4ZWxIYXNoID0gZXhwZWN0ZWRQaXhlbEhhc2g7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggYWY5ZjM4Zi4uOTE2NTIw
NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApAQCAtMzksNyArMzks
NiBAQCBwdWJsaWM6CiAgICAgflRlc3RJbnZvY2F0aW9uKCk7CiAKICAgICB2b2lkIHNldElzUGl4
ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCk7Ci0gICAgdm9pZCBz
ZXRTa2lwUGl4ZWxUZXN0T3B0aW9uKGJvb2wgb3B0aW9uKSB7IG1fc2tpcFBpeGVsVGVzdE9wdGlv
biA9IG9wdGlvbjsgfQogCiAgICAgdm9pZCBpbnZva2UoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVS
ZWYgbWVzc2FnZUJvZHkpOwpAQCAtNTUsNyArNTQsNiBAQCBwcml2YXRlOgogICAgIAogICAgIGJv
b2wgbV9kdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7Ci0g
ICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247CiAKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRl
CiAgICAgYm9vbCBtX2dvdEluaXRpYWxSZXNwb25zZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136656</attachid>
            <date>2012-04-11 04:21:59 -0700</date>
            <delta_ts>2012-04-16 04:16:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skipNew.diff</filename>
            <type>text/plain</type>
            <size>18716</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNWEy
OWVhLi5lYjJlMDE2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDQtMTEgIE5hbmRvciBIdXN6a2EgIDxobmFu
ZG9yQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbTlJXVF0gTlJXVDogb3B0aW9uIC0tc2tp
cC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIHN1cHBvcnQgb24gRFJUCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg0MQorCisgICAgICAgIE1ha2Ug
TlJXVCB0byBoYW5kbGUgLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgb3B0aW9uIG9u
IGV2ZXJ5IGRyaXZlcnMsCisgICAgICAgIG5vdCBvbmx5IG9uIERSVC4gVGhlIHBhdGNoIGl0c2Vs
ZiBwYXNzZXMgdGhlIGluZm9ybWF0aW9uIHdoZXRoZXIgcnVubmluZyBwaXhlbHRlc3QKKyAgICAg
ICAgaXMgbmVlZGVkIHRvIGV2ZXJ5IHRlc3RpbnB1dC4gSWYgYSB0ZXN0IGRvZXMgbm90IGhhdmUg
YW55IGV4cGVjdGVkIHBuZywgcGl4ZWx0ZXN0CisgICAgICAgIHdpbGwgbm90IHJ1bm5lZCwgYXMg
YSByZXN1bHQgaXQgd2lsbCBub3QgY2F1c2UgYSBtaXNzaW5nIGVycm9yLgorICAgICAgICBUaGUg
RHJpdmVyJ3MgaXNfcmVmdGVzdCBvcHRpb24gaGFzIGJlZW4gcmVuYW1lZCB0byBzaG91bGRfcnVu
X3BpeGVsX3Rlc3RzLAorICAgICAgICB0aGF0IGlzIHdoeSB1bml0dGVzdHMgYW5kIG90aGVyIG1l
dGhvZHMgYXJlIG1vZGlmaWVkLgorICAgICAgICBPcmlnaW5hbCBvcHRpb24gaGFuZGxpbmcgaXMg
cmVtb3ZlZCBmcm9tIFdlYktpdFRlc3RSdW5uZXIsIGJlY2F1c2UgaXQgY2FuIGJlCisgICAgICAg
IGRvbmUgb25seSB3aXRoIFB5dGhvbiBjb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5l
ci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3J1bl9yZWZ0ZXN0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93
b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlX3Rlc3RfbGlzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAg
KENocm9taXVtRHJpdmVyLl93cmFwcGVyX29wdGlvbnMpOgorICAgICAgICAoQ2hyb21pdW1Ecml2
ZXIucnVuX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAgICAgIChDaHJvbWl1bURyaXZlclRlc3QudGVz
dF9jcmFzaF9sb2cpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVySW5wdXQuX19pbml0X18pOgorICAgICAgICAo
RHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAg
ICAgKERyaXZlclByb3h5LnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlclByb3h5LnN0YXJ0KToK
KyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5OgorICAgICAgICAoTW9ja0RSVC5ydW4p
OgorICAgICAgICAoTW9ja0RSVC5pbnB1dF9mcm9tX2xpbmUpOgorICAgICAgICAoTW9ja0RSVC5v
dXRwdXRfZm9yX3Rlc3QpOgorICAgICAgICAoTW9ja0RSVC5ydW5fb25lX3Rlc3QpOgorICAgICAg
ICAoTW9ja0Nocm9taXVtRFJULmlucHV0X2Zyb21fbGluZSk6CisgICAgICAgIChNb2NrQ2hyb21p
dW1EUlQucnVuX29uZV90ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKFdlYktpdERyaXZlci5jbWRfbGluZSk6Cisg
ICAgICAgIChXZWJLaXREcml2ZXIucnVuX3Rlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVz
dENvbnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RJbnZvY2F0aW9uOjpUZXN0SW52b2NhdGlvbik6CisgICAgICAgIChXVFI6OlRl
c3RJbnZvY2F0aW9uOjpzZXRJc1BpeGVsVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5oOgorICAgICAgICAoVGVzdEludm9jYXRpb24pOgorCiAyMDEyLTA0
LTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9y
IFBlcmZUZXN0UnVubmVyIHRvIGluY2x1ZGUgZmlsZSBleHRlbnNpb25zIGluIHRlc3QgbmFtZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCAyZjg5MGIwLi5m
MzY5OTNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CkBAIC05
Miw3ICs5Miw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAgIGltYWdlX2hhc2gg
PSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bSgp
OgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0o
c2VsZi5fdGVzdF9uYW1lKQotICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQoc2VsZi5fdGVzdF9u
YW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoLCBib29sKHNlbGYuX3JlZmVyZW5jZV9maWxl
cykpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3Rp
bWVvdXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCkKIAogICAgIGRl
ZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKQEAgLTI5MCw3
ICsyOTAsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBwdXRBbGxNaXNtYXRj
aEJlZm9yZU1hdGNoID0gc29ydGVkCiAgICAgICAgIGZvciBleHBlY3RhdGlvbiwgcmVmZXJlbmNl
X2ZpbGVuYW1lIGluIHB1dEFsbE1pc21hdGNoQmVmb3JlTWF0Y2goc2VsZi5fcmVmZXJlbmNlX2Zp
bGVzKToKICAgICAgICAgICAgIHJlZmVyZW5jZV90ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0
aXZlX3Rlc3RfZmlsZW5hbWUocmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAgICAgICAgcmVmZXJl
bmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2Vf
dGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBpc19yZWZ0
ZXN0PVRydWUpKQorICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5y
dW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0
ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9VHJ1ZSkpCiAgICAg
ICAgICAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNl
KHRlc3Rfb3V0cHV0LCByZWZlcmVuY2Vfb3V0cHV0LCByZWZlcmVuY2VfZmlsZW5hbWUsIGV4cGVj
dGF0aW9uID09ICchPScpCiAKICAgICAgICAgICAgIGlmIChleHBlY3RhdGlvbiA9PSAnIT0nIGFu
ZCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcykgb3IgKGV4cGVjdGF0aW9uID09ICc9PScgYW5kIG5vdCB0
ZXN0X3Jlc3VsdC5mYWlsdXJlcyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkKaW5kZXggYjA1ODhhYi4uNDU2
NTE5NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQpAQCAtMTQxLDggKzE0MSwxMyBAQCBjbGFzcyBXb3Jr
ZXIobWFuYWdlcl93b3JrZXJfYnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAgICAgbnVtX3Rl
c3RzID0gMAogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2xpc3Q6CiAgICAgICAgICAg
ICAjRklYTUU6IFdoZW4gdGhlIERSVCBzdXBwb3J0IGFsc28gdGhpcyBmdW5jdGlvbiwgdGhhdCB3
b3VsZCBiZSB1c2VmdWwKLSAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKSA9
PSAiV2ViS2l0VGVzdFJ1bm5lciIgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhl
bF90ZXN0X2lmX25vX2Jhc2VsaW5lJykgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxf
dGVzdHMnKToKLSAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVz
dCA9IChzZWxmLl9wb3J0LmV4cGVjdGVkX2ltYWdlKHRlc3RfaW5wdXQudGVzdF9uYW1lKSAhPSBO
b25lKQorICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycp
OgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhlbF90
ZXN0X2lmX25vX2Jhc2VsaW5lJyk6CisgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hv
dWxkX3J1bl9waXhlbF90ZXN0ID0gKHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UodGVzdF9pbnB1
dC50ZXN0X25hbWUpICE9IE5vbmUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBUcnVlCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90
ZXN0ID0gRmFsc2UKICAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCiAgICAg
ICAgICAgICBudW1fdGVzdHMgKz0gMQogICAgICAgICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rp
b24ueWllbGRfdG9fYnJva2VyKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDY0YWZkZjUuLjQwNjY3NzQgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weQpAQCAtNDA5LDcgKzQwOSw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVyKERyaXZlcik6CiAK
ICAgICBkZWYgX3dyYXBwZXJfb3B0aW9ucyhzZWxmLCBwaXhlbF90ZXN0cyk6CiAgICAgICAgIGNt
ZCA9IFtdCi0gICAgICAgIGlmIHBpeGVsX3Rlc3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3RzOgorICAg
ICAgICBpZiBwaXhlbF90ZXN0czoKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pbWFnZV9wYXRo
OgogICAgICAgICAgICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBzZWxmLl9wb3J0Ll9maWxlc3lz
dGVtLmpvaW4oc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCAncG5nX3Jlc3VsdCVzLnBu
ZycgJSBzZWxmLl93b3JrZXJfbnVtYmVyKQogICAgICAgICAgICAgIyBTZWUgbm90ZSBhYm92ZSBp
biBkaWZmX2ltYWdlKCkgZm9yIHdoeSB3ZSBuZWVkIF9jb252ZXJ0X3BhdGgoKS4KQEAgLTUyMSw3
ICs1MjEsNyBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihEcml2ZXIpOgogCiAgICAgZGVmIHJ1bl90
ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9wcm9jOgotICAg
ICAgICAgICAgc2VsZi5fc3RhcnQoZHJpdmVyX2lucHV0LmlzX3JlZnRlc3Qgb3Igc2VsZi5fcGl4
ZWxfdGVzdHMsIGRyaXZlcl9pbnB1dC5hcmdzKQorICAgICAgICAgICAgc2VsZi5fc3RhcnQoZHJp
dmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgZHJpdmVyX2lucHV0LmFyZ3MpCiAKICAg
ICAgICAgb3V0cHV0ID0gW10KICAgICAgICAgZXJyb3IgPSBbXQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRl
c3QucHkKaW5kZXggODA3NDMwZS4uODBjZGQxMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5
CkBAIC0xMDQsNyArMTA0LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgc2VsZi5kcml2ZXIudGVzdF90b191cmkgPSBsYW1iZGEgdGVzdDog
J21vY2t0ZXN0dXJpJwogICAgICAgICBzZWxmLmRyaXZlci5fcG9ydC5kcml2ZXJfbmFtZSA9IGxh
bWJkYTogJ21vY2tkcml2ZXInCiAgICAgICAgIHNlbGYuZHJpdmVyLl9wb3J0Ll9nZXRfY3Jhc2hf
bG9nID0gbGFtYmRhIG5hbWUsIHBpZCwgb3V0LCBlcnI6ICdtb2NrY3Jhc2hsb2cnCi0gICAgICAg
IGRyaXZlcl9vdXRwdXQgPSBzZWxmLmRyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dCh0ZXN0X25h
bWU9J3NvbWUvdGVzdC5odG1sJywgdGltZW91dD0xLCBpbWFnZV9oYXNoPU5vbmUsIGlzX3JlZnRl
c3Q9RmFsc2UpKQorICAgICAgICBkcml2ZXJfb3V0cHV0ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3Qo
RHJpdmVySW5wdXQodGVzdF9uYW1lPSdzb21lL3Rlc3QuaHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2Vf
aGFzaD1Ob25lLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9RmFsc2UpKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUoZHJpdmVyX291dHB1dC5jcmFzaCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
cml2ZXJfb3V0cHV0LmNyYXNoZWRfcHJvY2Vzc19uYW1lLCAnbW9ja2RyaXZlcicpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyX291dHB1dC5jcmFzaGVkX3BpZCwgMTIzNCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKaW5k
ZXggZTFkOGE0Yi4uYTExM2RhMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTM0LDExICszNCwxMSBAQCBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIAogCiBjbGFzcyBEcml2ZXJJbnB1dChvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hh
c2gsIGlzX3JlZnRlc3QsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3Rf
bmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBhcmdzPU5v
bmUpOgogICAgICAgICBzZWxmLnRlc3RfbmFtZSA9IHRlc3RfbmFtZQogICAgICAgICBzZWxmLnRp
bWVvdXQgPSB0aW1lb3V0ICAjIGluIG1zCiAgICAgICAgIHNlbGYuaW1hZ2VfaGFzaCA9IGltYWdl
X2hhc2gKLSAgICAgICAgc2VsZi5pc19yZWZ0ZXN0ID0gaXNfcmVmdGVzdAorICAgICAgICBzZWxm
LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IHNob3VsZF9ydW5fcGl4ZWxfdGVzdAogICAgICAgICBz
ZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCiAKIApAQCAtMTA0LDcgKzEwNCw2IEBAIGNsYXNzIERyaXZl
cihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAg
ICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKLSAgICAgICAgc2VsZi5fcGl4
ZWxfdGVzdHMgPSBwaXhlbF90ZXN0cwogICAgICAgICBzZWxmLl9ub190aW1lb3V0ID0gbm9fdGlt
ZW91dAogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CkBAIC0xODEsNyAr
MTgwLDYgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAgICAgICAgc2VsZi5fd29ya2Vy
X251bWJlciA9IHdvcmtlcl9udW1iZXIKICAgICAgICAgc2VsZi5fZHJpdmVyX2luc3RhbmNlX2Nv
bnN0cnVjdG9yID0gZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yCiAgICAgICAgIHNlbGYuX25v
X3RpbWVvdXQgPSBub190aW1lb3V0Ci0gICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxf
dGVzdHMKIAogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjcmVhdGUgYSBk
cml2ZXIgdW50aWwgd2UgYWN0dWFsbHkgcnVuIGEgdGVzdC4KICAgICAgICAgc2VsZi5fZHJpdmVy
ID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHMpCkBAIC0yMTEsNyArMjA5LDcgQEAgY2xh
c3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAgICAgICAgICAgIHZpcnR1YWxfZHJpdmVyX2lucHV0
LmFyZ3MgPSBzZWxmLl9wb3J0Lmxvb2t1cF92aXJ0dWFsX3Rlc3RfYXJncyhkcml2ZXJfaW5wdXQu
dGVzdF9uYW1lKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYucnVuX3Rlc3QodmlydHVhbF9kcml2
ZXJfaW5wdXQpCiAKLSAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4ZWxfdGVz
dHMgb3IgZHJpdmVyX2lucHV0LmlzX3JlZnRlc3QKKyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVk
ID0gZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAogICAgICAgICBjbWRfbGluZV9r
ZXkgPSBzZWxmLl9jbWRfbGluZV9hc19rZXkocGl4ZWxfdGVzdHNfbmVlZGVkLCBkcml2ZXJfaW5w
dXQuYXJncykKICAgICAgICAgaWYgbm90IGNtZF9saW5lX2tleSBpbiBzZWxmLl9ydW5uaW5nX2Ry
aXZlcnM6CiAgICAgICAgICAgICBzZWxmLl9ydW5uaW5nX2RyaXZlcnNbY21kX2xpbmVfa2V5XSA9
IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzX25lZWRlZCkKQEAgLTIyNiw3ICsyMjQsNyBA
QCBjbGFzcyBEcml2ZXJQcm94eShvYmplY3QpOgogICAgICAgICAjIFRoZSBvbmx5IHJlYXNvbiB3
ZSBoYXZlIHRoaXMgcm91dGluZSBhdCBhbGwgaXMgc28gdGhlIHBlcmZ0ZXN0cnVubmVyCiAgICAg
ICAgICMgY2FuIHBhdXNlIGJlZm9yZSBydW5uaW5nIGEgdGVzdDsgaXQgbWlnaHQgYmUgYmV0dGVy
IHRvIHB1c2ggdGhhdAogICAgICAgICAjIGludG8gcnVuX3Rlc3QoKSBkaXJlY3RseS4KLSAgICAg
ICAgc2VsZi5fZHJpdmVyLnN0YXJ0KHNlbGYuX3BpeGVsX3Rlc3RzLCBbXSkKKyAgICAgICAgc2Vs
Zi5fZHJpdmVyLnN0YXJ0KHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKSwgW10p
CiAKICAgICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBhbnkoZHJpdmVy
Lmhhc19jcmFzaGVkKCkgZm9yIGRyaXZlciBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVz
KCkpCkBAIC0yMzcsNyArMjM1LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKIAogICAg
ICMgRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBv
biBQb3J0IGluc3RlYWQpLgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cz1Ob25l
LCBwZXJfdGVzdF9hcmdzPU5vbmUpOgotICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9s
aW5lKHBpeGVsX3Rlc3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzIG9yIFtd
KQorICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJf
dGVzdF9hcmdzIG9yIFtdKQogCiAgICAgZGVmIF9jbWRfbGluZV9hc19rZXkoc2VsZiwgcGl4ZWxf
dGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgogICAgICAgICByZXR1cm4gJyAnLmpvaW4oc2VsZi5jbWRf
bGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQppbmRleCA4YzA2MmMwLi5m
OGQzNjkxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21vY2tfZHJ0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbW9ja19kcnQucHkKQEAgLTE4NCw3ICsxODQsOSBAQCBjbGFzcyBNb2NrRFJUKG9iamVj
dCk6CiAgICAgICAgICAgICBsaW5lID0gc2VsZi5fc3RkaW4ucmVhZGxpbmUoKQogICAgICAgICAg
ICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIHNl
bGYucnVuX29uZV90ZXN0KHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpKQorICAgICAgICAgICAg
ZHJpdmVyX2lucHV0ID0gc2VsZi5pbnB1dF9mcm9tX2xpbmUobGluZSkKKyAgICAgICAgICAgIGlz
X3JlZnRlc3QgPSBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CisgICAgICAgICAg
ICBzZWxmLnJ1bl9vbmVfdGVzdChkcml2ZXJfaW5wdXQsIGlzX3JlZnRlc3QpCiAKICAgICBkZWYg
aW5wdXRfZnJvbV9saW5lKHNlbGYsIGxpbmUpOgogICAgICAgICB2YWxzID0gbGluZS5zdHJpcCgp
LnNwbGl0KCInIikKQEAgLTIwMiwxNSArMjA0LDE1IEBAIGNsYXNzIE1vY2tEUlQob2JqZWN0KToK
ICAgICAgICAgZGlybmFtZSwgYmFzZW5hbWUgPSBzZWxmLl9wb3J0LnNwbGl0X3Rlc3QodGVzdF9u
YW1lKQogICAgICAgICBpc19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKHRl
c3RfbmFtZSkgb3IKICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0LmlzX3JlZmVyZW5j
ZV9odG1sX2ZpbGUoc2VsZi5fcG9ydC5fZmlsZXN5c3RlbSwgZGlybmFtZSwgYmFzZW5hbWUpKQot
ICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQodGVzdF9uYW1lLCAwLCBjaGVja3N1bSwgaXNfcmVm
dGVzdCkKKyAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwgY2hlY2tzdW0s
IHNob3VsZF9ydW5fcGl4ZWxfdGVzdD1pc19yZWZ0ZXN0KQogCi0gICAgZGVmIG91dHB1dF9mb3Jf
dGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYsIHRl
c3RfaW5wdXQsIGlzX3JlZnRlc3QpOgogICAgICAgICBwb3J0ID0gc2VsZi5fcG9ydAogICAgICAg
ICBhY3R1YWxfdGV4dCA9IHBvcnQuZXhwZWN0ZWRfdGV4dCh0ZXN0X2lucHV0LnRlc3RfbmFtZSkK
ICAgICAgICAgYWN0dWFsX2F1ZGlvID0gcG9ydC5leHBlY3RlZF9hdWRpbyh0ZXN0X2lucHV0LnRl
c3RfbmFtZSkKICAgICAgICAgYWN0dWFsX2ltYWdlID0gTm9uZQogICAgICAgICBhY3R1YWxfY2hl
Y2tzdW0gPSBOb25lCi0gICAgICAgIGlmIHRlc3RfaW5wdXQuaXNfcmVmdGVzdDoKKyAgICAgICAg
aWYgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgYW5kIGlzX3JlZnRlc3Q6CiAgICAg
ICAgICAgICAjIE1ha2UgdXAgc29tZSBvdXRwdXQgZm9yIHJlZnRlc3RzLgogICAgICAgICAgICAg
YWN0dWFsX3RleHQgPSAncmVmZXJlbmNlIHRleHRcbicKICAgICAgICAgICAgIGFjdHVhbF9jaGVj
a3N1bSA9ICdtb2NrLWNoZWNrc3VtJwpAQCAtMjI1LDggKzIyNyw4IEBAIGNsYXNzIE1vY2tEUlQo
b2JqZWN0KToKIAogICAgICAgICByZXR1cm4gRHJpdmVyT3V0cHV0KGFjdHVhbF90ZXh0LCBhY3R1
YWxfaW1hZ2UsIGFjdHVhbF9jaGVja3N1bSwgYWN0dWFsX2F1ZGlvKQogCi0gICAgZGVmIHJ1bl9v
bmVfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKLSAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRf
Zm9yX3Rlc3QodGVzdF9pbnB1dCkKKyAgICBkZWYgcnVuX29uZV90ZXN0KHNlbGYsIHRlc3RfaW5w
dXQsIGlzX3JlZnRlc3QpOgorICAgICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0
ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KQogCiAgICAgICAgIGlmIG91dHB1dC5hdWRpbzoKICAgICAg
ICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgnQ29udGVudC1UeXBlOiBhdWRpby93YXZcbicpCkBA
IC0yNjksNyArMjcxLDcgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgogICAgICAg
ICBpc19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKHRlc3RfbmFtZSkgb3IK
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0LmlzX3JlZmVyZW5jZV9odG1sX2ZpbGUo
c2VsZi5fcG9ydC5fZmlsZXN5c3RlbSwgZGlybmFtZSwgYmFzZW5hbWUpKQogCi0gICAgICAgIHJl
dHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUsIHRpbWVvdXQsIGNoZWNrc3VtLCBpc19yZWZ0ZXN0
KQorICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQodGVzdF9uYW1lLCB0aW1lb3V0LCBjaGVja3N1
bSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PWlzX3JlZnRlc3QpCiAKICAgICBkZWYgb3V0cHV0X2Zv
cl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFj
ayB0byBtYWtlIHZpcnR1YWwgdGVzdHMgd29yay4gTmVlZCBzb21ldGhpbmcgbW9yZSBnZW5lcmFs
LgpAQCAtMjgwLDExICsyODIsMTEgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUKE1vY2tEUlQpOgog
ICAgICAgICB0ZXN0X2lucHV0LnRlc3RfbmFtZSA9IG9yaWdpbmFsX3Rlc3RfbmFtZQogICAgICAg
ICByZXR1cm4gb3V0cHV0CiAKLSAgICBkZWYgcnVuX29uZV90ZXN0KHNlbGYsIHRlc3RfaW5wdXQp
OgotICAgICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0KQorICAg
IGRlZiBydW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgaXNfcmVmdGVzdCk6CisgICAgICAg
IG91dHB1dCA9IHNlbGYub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpCiAK
ICAgICAgICAgc2VsZi5fc3Rkb3V0LndyaXRlKCIjVVJMOiVzXG4iICUgc2VsZi5fZHJpdmVyLnRl
c3RfdG9fdXJpKHRlc3RfaW5wdXQudGVzdF9uYW1lKSkKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQuaW1hZ2VfaGFzaCBvciB0ZXN0X2lucHV0Lmlz
X3JlZnRlc3QpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCAodGVz
dF9pbnB1dC5pbWFnZV9oYXNoIG9yIGlzX3JlZnRlc3QpOgogICAgICAgICAgICAgc2VsZi5fc3Rk
b3V0LndyaXRlKCIjTUQ1OiVzXG4iICUgb3V0cHV0LmltYWdlX2hhc2gpCiAgICAgICAgICAgICBp
ZiBvdXRwdXQuaW1hZ2U6CiAgICAgICAgICAgICAgICAgc2VsZi5faG9zdC5maWxlc3lzdGVtLm1h
eWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5kaXJuYW1lKHNlbGYuX29w
dGlvbnMucGl4ZWxfcGF0aCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IDg3ZmE1ZDkuLjViMmYwN2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC00
NTYsOCArNDU2LDYgQEAgY2xhc3MgV2ViS2l0RHJpdmVyKERyaXZlcik6CiAgICAgZGVmIGNtZF9s
aW5lKHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKICAgICAgICAgY21kID0gc2Vs
Zi5fY29tbWFuZF93cmFwcGVyKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd3JhcHBlcicpKQogICAg
ICAgICBjbWQuYXBwZW5kKHNlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCkpCi0gICAgICAgIGlm
IHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5lJyk6
Ci0gICAgICAgICAgICBjbWQuYXBwZW5kKCctLXNraXAtcGl4ZWwtdGVzdC1pZi1uby1iYXNlbGlu
ZScpCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignZ2NfYmV0d2Vlbl90ZXN0cycp
OgogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1nYy1iZXR3ZWVuLXRlc3RzJykKICAgICAgICAg
aWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdjb21wbGV4X3RleHQnKToKQEAgLTQ3MCw3ICs0Njgs
NyBAQCBjbGFzcyBXZWJLaXREcml2ZXIoRHJpdmVyKToKIAogICAgICAgICBjbWQuZXh0ZW5kKHNl
bGYuX3BvcnQuZ2V0X29wdGlvbignYWRkaXRpb25hbF9kcnRfZmxhZycsIFtdKSkKIAotICAgICAg
ICBpZiBwaXhlbF90ZXN0cyBvciBzZWxmLl9waXhlbF90ZXN0czoKKyAgICAgICAgaWYgcGl4ZWxf
dGVzdHM6CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXBpeGVsLXRlc3RzJykKICAgICAgICAg
Y21kLmV4dGVuZChwZXJfdGVzdF9hcmdzKQogCkBAIC01NDgsNyArNTQ2LDcgQEAgY2xhc3MgV2Vi
S2l0RHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0
KToKICAgICAgICAgaWYgbm90IHNlbGYuX3NlcnZlcl9wcm9jZXNzOgotICAgICAgICAgICAgc2Vs
Zi5fc3RhcnQoZHJpdmVyX2lucHV0LmlzX3JlZnRlc3Qgb3Igc2VsZi5fcGl4ZWxfdGVzdHMsIFtd
KQorICAgICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KHNlbGYuX3BvcnQuZ2V0X29wdGlvbign
cGl4ZWxfdGVzdHMnKSwgW10pCiAgICAgICAgIHNlbGYuZXJyb3JfZnJvbV90ZXN0ID0gc3RyKCkK
ICAgICAgICAgc2VsZi5lcnJfc2Vlbl9lb2YgPSBGYWxzZQogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNjODBmOWEuLjEwYTI1ODAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02OCw3ICs2OCw2IEBAIFRlc3RD
b250cm9sbGVyJiBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkKIAogVGVzdENvbnRyb2xsZXI6OlRl
c3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgOiBtX2R1bXBQ
aXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQaXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBt
X3ZlcmJvc2UoZmFsc2UpCiAgICAgLCBtX3ByaW50U2VwYXJhdG9ycyhmYWxzZSkKICAgICAsIG1f
dXNpbmdTZXJ2ZXJNb2RlKGZhbHNlKQpAQCAtMjYwLDExICsyNTksNiBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1z
a2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUiKSB7Ci0gICAgICAgICAgICBtX3NraXBQaXhl
bFRlc3RPcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQog
ICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tcGl4ZWwtdGVzdHMiKSB7CiAgICAgICAgICAgICBt
X2R1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CkBAIC01MTYsNyArNTEw
LDYgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0KQogICAg
IG1fc3RhdGUgPSBSdW5uaW5nVGVzdDsKIAogICAgIG1fY3VycmVudEludm9jYXRpb24gPSBhZG9w
dFB0cihuZXcgVGVzdEludm9jYXRpb24ocGF0aE9yVVJMKSk7Ci0gICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+c2V0U2tpcFBpeGVsVGVzdE9wdGlvbihtX3NraXBQaXhlbFRlc3RPcHRpb24pOwogICAg
IGlmIChtX2R1bXBQaXhlbHMpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldElzUGl4
ZWxUZXN0KGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IGFjOWYxZmYuLmI5NDY1ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKQEAgLTEwNSw3ICsxMDUsNiBAQCBwcml2YXRlOgogICAgIE93blB0
cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50SW52b2NhdGlvbjsKIAogICAgIGJvb2wgbV9kdW1w
UGl4ZWxzOwotICAgIGJvb2wgbV9za2lwUGl4ZWxUZXN0T3B0aW9uOwogICAgIGJvb2wgbV92ZXJi
b3NlOwogICAgIGJvb2wgbV9wcmludFNlcGFyYXRvcnM7CiAgICAgYm9vbCBtX3VzaW5nU2VydmVy
TW9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMWFm
ZTNiMy4uZTVhZDliNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTk2LDcgKzk2LDYgQEAgVGVzdEludm9jYXRpb246OlRlc3RJbnZvY2F0aW9uKGNvbnN0
IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwpCiAgICAgOiBtX3VybChBZG9wdFdLLCBjcmVhdGVXS1VS
TChwYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgLCBtX3BhdGhPclVSTChwYXRoT3JVUkwpCiAgICAg
LCBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQaXhlbFRlc3RPcHRpb24oZmFsc2Up
CiAgICAgLCBtX2dvdEluaXRpYWxSZXNwb25zZShmYWxzZSkKICAgICAsIG1fZ290RmluYWxNZXNz
YWdlKGZhbHNlKQogICAgICwgbV9nb3RSZXBhaW50KGZhbHNlKQpAQCAtMTEwLDggKzEwOSw2IEBA
IFRlc3RJbnZvY2F0aW9uOjp+VGVzdEludm9jYXRpb24oKQogCiB2b2lkIFRlc3RJbnZvY2F0aW9u
OjpzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiB7
Ci0gICAgaWYgKG1fc2tpcFBpeGVsVGVzdE9wdGlvbiAmJiAhZXhwZWN0ZWRQaXhlbEhhc2gubGVu
Z3RoKCkpCi0gICAgICAgIHJldHVybjsKICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAgIG1f
ZXhwZWN0ZWRQaXhlbEhhc2ggPSBleHBlY3RlZFBpeGVsSGFzaDsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBhZjlmMzhmLi45MTY1MjA1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC0zOSw3ICszOSw2IEBAIHB1YmxpYzoK
ICAgICB+VGVzdEludm9jYXRpb24oKTsKIAogICAgIHZvaWQgc2V0SXNQaXhlbFRlc3QoY29uc3Qg
c3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKLSAgICB2b2lkIHNldFNraXBQaXhlbFRl
c3RPcHRpb24oYm9vbCBvcHRpb24pIHsgbV9za2lwUGl4ZWxUZXN0T3B0aW9uID0gb3B0aW9uOyB9
CiAKICAgICB2b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9k
eSk7CkBAIC01NSw3ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX2R1bXBQaXhl
bHM7CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKLSAgICBib29sIG1fc2tp
cFBpeGVsVGVzdE9wdGlvbjsKIAogICAgIC8vIEludm9jYXRpb24gc3RhdGUKICAgICBib29sIG1f
Z290SW5pdGlhbFJlc3BvbnNlOwo=
</data>
<flag name="review"
          id="141534"
          type_id="1"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137313</attachid>
            <date>2012-04-16 04:16:12 -0700</date>
            <delta_ts>2012-04-19 18:11:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>skipLEGUJABB.diff</filename>
            <type>text/plain</type>
            <size>20511</size>
            <attacher name="Nandor Huszka">hnandor</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMTI2
YzU1Li4wODQ5OTlmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTItMDQtMTYgIE5hbmRvciBIdXN6a2EgIDxobmFu
ZG9yQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbTlJXVF0gTlJXVDogb3B0aW9uIC0tc2tp
cC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lIHN1cHBvcnQgb24gRFJUCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg0MQorCisgICAgICAgIE1ha2Ug
TlJXVCB0byBoYW5kbGUgLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUgb3B0aW9uIG9u
IGV2ZXJ5IGRyaXZlcnMsCisgICAgICAgIG5vdCBvbmx5IG9uIERSVC4gVGhlIHBhdGNoIGl0c2Vs
ZiBwYXNzZXMgdGhlIGluZm9ybWF0aW9uIHdoZXRoZXIgcnVubmluZyBwaXhlbHRlc3QKKyAgICAg
ICAgaXMgbmVlZGVkIHRvIGV2ZXJ5IHRlc3RpbnB1dC4gSWYgYSB0ZXN0IGRvZXMgbm90IGhhdmUg
YW55IGV4cGVjdGVkIHBuZywgcGl4ZWx0ZXN0CisgICAgICAgIHdpbGwgbm90IHJ1bm5lZCwgYXMg
YSByZXN1bHQgaXQgd2lsbCBub3QgY2F1c2UgYSBtaXNzaW5nIGVycm9yLgorICAgICAgICBUaGUg
RHJpdmVyJ3MgaXNfcmVmdGVzdCBvcHRpb24gaGFzIGJlZW4gcmVuYW1lZCB0byBzaG91bGRfcnVu
X3BpeGVsX3Rlc3RzLAorICAgICAgICB0aGF0IGlzIHdoeSB1bml0dGVzdHMgYW5kIG90aGVyIG1l
dGhvZHMgYXJlIG1vZGlmaWVkLgorICAgICAgICBPcmlnaW5hbCBvcHRpb24gaGFuZGxpbmcgaXMg
cmVtb3ZlZCBmcm9tIFdlYktpdFRlc3RSdW5uZXIsIGJlY2F1c2UgaXQgY2FuIGJlCisgICAgICAg
IGRvbmUgb25seSB3aXRoIFB5dGhvbiBjb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5l
ci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3J1bl9yZWZ0ZXN0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93
b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlX3Rlc3RfbGlzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAg
KENocm9taXVtRHJpdmVyLl93cmFwcGVyX29wdGlvbnMpOgorICAgICAgICAoQ2hyb21pdW1Ecml2
ZXIucnVuX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAgICAgIChDaHJvbWl1bURyaXZlclRlc3QudGVz
dF9jcmFzaF9sb2cpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVySW5wdXQuX19pbml0X18pOgorICAgICAgICAo
RHJpdmVyLl9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAg
ICAgKERyaXZlclByb3h5LnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlclByb3h5LnN0YXJ0KToK
KyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weToKKyAgICAgICAgKEd0a0RyaXZlci5fc3RhcnQp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQu
cHk6CisgICAgICAgIChNb2NrRFJULnJ1bik6CisgICAgICAgIChNb2NrRFJULmlucHV0X2Zyb21f
bGluZSk6CisgICAgICAgIChNb2NrRFJULm91dHB1dF9mb3JfdGVzdCk6CisgICAgICAgIChNb2Nr
RFJULnJ1bl9vbmVfdGVzdCk6CisgICAgICAgIChNb2NrQ2hyb21pdW1EUlQuaW5wdXRfZnJvbV9s
aW5lKToKKyAgICAgICAgKE1vY2tDaHJvbWl1bURSVC5vdXRwdXRfZm9yX3Rlc3QpOgorICAgICAg
ICAoTW9ja0Nocm9taXVtRFJULnJ1bl9vbmVfdGVzdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgIChXZWJLaXREcml2ZXIu
Y21kX2xpbmUpOgorICAgICAgICAoV2ViS2l0RHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuVGVzdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoVGVz
dENvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24pOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3QpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKFRlc3RJbnZvY2F0aW9u
KToKKwogMjAxMi0wNC0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1
bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCAyZjg5MGIwLi5mMzY5OTNmIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVf
dGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CkBAIC05Miw3ICs5Miw3IEBAIGNsYXNz
IFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAgIGltYWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlm
IHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bSgpOgogICAgICAgICAgICAgaW1h
Z2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQot
ICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0
LCBpbWFnZV9oYXNoLCBib29sKHNlbGYuX3JlZmVyZW5jZV9maWxlcykpCisgICAgICAgIHJldHVy
biBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gs
IHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCkKIAogICAgIGRlZiBydW4oc2VsZik6CiAgICAg
ICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKQEAgLTI5MCw3ICsyOTAsNyBAQCBjbGFzcyBT
aW5nbGVUZXN0UnVubmVyOgogICAgICAgICBwdXRBbGxNaXNtYXRjaEJlZm9yZU1hdGNoID0gc29y
dGVkCiAgICAgICAgIGZvciBleHBlY3RhdGlvbiwgcmVmZXJlbmNlX2ZpbGVuYW1lIGluIHB1dEFs
bE1pc21hdGNoQmVmb3JlTWF0Y2goc2VsZi5fcmVmZXJlbmNlX2ZpbGVzKToKICAgICAgICAgICAg
IHJlZmVyZW5jZV90ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUo
cmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYu
X2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90
aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBpc19yZWZ0ZXN0PVRydWUpKQorICAgICAg
ICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1
dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9o
YXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9VHJ1ZSkpCiAgICAgICAgICAgICB0ZXN0X3Jlc3Vs
dCA9IHNlbGYuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKHRlc3Rfb3V0cHV0LCByZWZl
cmVuY2Vfb3V0cHV0LCByZWZlcmVuY2VfZmlsZW5hbWUsIGV4cGVjdGF0aW9uID09ICchPScpCiAK
ICAgICAgICAgICAgIGlmIChleHBlY3RhdGlvbiA9PSAnIT0nIGFuZCB0ZXN0X3Jlc3VsdC5mYWls
dXJlcykgb3IgKGV4cGVjdGF0aW9uID09ICc9PScgYW5kIG5vdCB0ZXN0X3Jlc3VsdC5mYWlsdXJl
cyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy93b3JrZXIucHkKaW5kZXggYjA1ODhhYi4uZjNjYjlmZCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dv
cmtlci5weQpAQCAtMTQwLDkgKzE0MCwxMyBAQCBjbGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJf
YnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgp
CiAgICAgICAgIG51bV90ZXN0cyA9IDAKICAgICAgICAgZm9yIHRlc3RfaW5wdXQgaW4gdGVzdF9s
aXN0OgotICAgICAgICAgICAgI0ZJWE1FOiBXaGVuIHRoZSBEUlQgc3VwcG9ydCBhbHNvIHRoaXMg
ZnVuY3Rpb24sIHRoYXQgd291bGQgYmUgdXNlZnVsCi0gICAgICAgICAgICBpZiBzZWxmLl9wb3J0
LmRyaXZlcl9uYW1lKCkgPT0gIldlYktpdFRlc3RSdW5uZXIiIGFuZCBzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpIGFuZCBzZWxmLl9wb3J0Lmdl
dF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6Ci0gICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91
bGRfcnVuX3BpeGVsX3Rlc3QgPSAoc2VsZi5fcG9ydC5leHBlY3RlZF9pbWFnZSh0ZXN0X2lucHV0
LnRlc3RfbmFtZSkgIT0gTm9uZSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlv
bigncGl4ZWxfdGVzdHMnKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRp
b24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgorICAgICAgICAgICAgICAgICAg
ICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IChzZWxmLl9wb3J0LmV4cGVjdGVk
X2ltYWdlKHRlc3RfaW5wdXQudGVzdF9uYW1lKSAhPSBOb25lKQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0
ID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNo
b3VsZF9ydW5fcGl4ZWxfdGVzdCA9IEZhbHNlCiAgICAgICAgICAgICBzZWxmLl9ydW5fdGVzdCh0
ZXN0X2lucHV0KQogICAgICAgICAgICAgbnVtX3Rlc3RzICs9IDEKICAgICAgICAgICAgIHNlbGYu
X3dvcmtlcl9jb25uZWN0aW9uLnlpZWxkX3RvX2Jyb2tlcigpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBkMzc3NDc1
Li5hMGZlOTA5IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTM5NSw3ICszOTUsNyBAQCBjbGFzcyBDaHJvbWl1bURy
aXZlcihEcml2ZXIpOgogCiAgICAgZGVmIF93cmFwcGVyX29wdGlvbnMoc2VsZiwgcGl4ZWxfdGVz
dHMpOgogICAgICAgICBjbWQgPSBbXQotICAgICAgICBpZiBwaXhlbF90ZXN0cyBvciBzZWxmLl9w
aXhlbF90ZXN0czoKKyAgICAgICAgaWYgcGl4ZWxfdGVzdHM6CiAgICAgICAgICAgICBpZiBub3Qg
c2VsZi5faW1hZ2VfcGF0aDoKICAgICAgICAgICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gc2Vs
Zi5fcG9ydC5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwg
J3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5fd29ya2VyX251bWJlcikKICAgICAgICAgICAgICMg
U2VlIG5vdGUgYWJvdmUgaW4gZGlmZl9pbWFnZSgpIGZvciB3aHkgd2UgbmVlZCBfY29udmVydF9w
YXRoKCkuCkBAIC01MDcsNyArNTA3LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVyKToK
IAogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpOgogICAgICAgICBpZiBub3Qg
c2VsZi5fcHJvYzoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5pc19yZWZ0
ZXN0IG9yIHNlbGYuX3BpeGVsX3Rlc3RzLCBkcml2ZXJfaW5wdXQuYXJncykKKyAgICAgICAgICAg
IHNlbGYuX3N0YXJ0KGRyaXZlcl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QsIGRyaXZlcl9p
bnB1dC5hcmdzKQogCiAgICAgICAgIG91dHB1dCA9IFtdCiAgICAgICAgIGVycm9yID0gW10KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IGE3MjA0ODkuLjhhNzk2YWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV91bml0dGVzdC5weQpAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIENocm9taXVtRHJpdmVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuZHJpdmVyLnRlc3RfdG9fdXJp
ID0gbGFtYmRhIHRlc3Q6ICdtb2NrdGVzdHVyaScKICAgICAgICAgc2VsZi5kcml2ZXIuX3BvcnQu
ZHJpdmVyX25hbWUgPSBsYW1iZGE6ICdtb2NrZHJpdmVyJwogICAgICAgICBzZWxmLmRyaXZlci5f
cG9ydC5fZ2V0X2NyYXNoX2xvZyA9IGxhbWJkYSBuYW1lLCBwaWQsIG91dCwgZXJyOiAnbW9ja2Ny
YXNobG9nJwotICAgICAgICBkcml2ZXJfb3V0cHV0ID0gc2VsZi5kcml2ZXIucnVuX3Rlc3QoRHJp
dmVySW5wdXQodGVzdF9uYW1lPSdzb21lL3Rlc3QuaHRtbCcsIHRpbWVvdXQ9MSwgaW1hZ2VfaGFz
aD1Ob25lLCBpc19yZWZ0ZXN0PUZhbHNlKSkKKyAgICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYu
ZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHRlc3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0
aW1lb3V0PTEsIGltYWdlX2hhc2g9Tm9uZSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PUZhbHNlKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRyaXZlcl9vdXRwdXQuY3Jhc2gpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZHJpdmVyX291dHB1dC5jcmFzaGVkX3Byb2Nlc3NfbmFtZSwgJ21vY2tk
cml2ZXInKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlcl9vdXRwdXQuY3Jhc2hlZF9w
aWQsIDEyMzQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CmluZGV4IGUxZDhhNGIuLmExMTNkYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CkBAIC0zNCwxMSArMzQs
MTEgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBwYXRoCiAKIAogY2xhc3Mg
RHJpdmVySW5wdXQob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0
aW1lb3V0LCBpbWFnZV9oYXNoLCBpc19yZWZ0ZXN0LCBhcmdzPU5vbmUpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hhc2gsIHNob3VsZF9ydW5fcGl4
ZWxfdGVzdCwgYXJncz1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUK
ICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmlt
YWdlX2hhc2ggPSBpbWFnZV9oYXNoCi0gICAgICAgIHNlbGYuaXNfcmVmdGVzdCA9IGlzX3JlZnRl
c3QKKyAgICAgICAgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzaG91bGRfcnVuX3BpeGVs
X3Rlc3QKICAgICAgICAgc2VsZi5hcmdzID0gYXJncyBvciBbXQogCiAKQEAgLTEwNCw3ICsxMDQs
NiBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuX3Bv
cnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCi0g
ICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxfdGVzdHMKICAgICAgICAgc2VsZi5fbm9f
dGltZW91dCA9IG5vX3RpbWVvdXQKIAogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5w
dXQpOgpAQCAtMTgxLDcgKzE4MCw2IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAg
ICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCiAgICAgICAgIHNlbGYuX2Ry
aXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3RvciA9IGRyaXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3Rvcgog
ICAgICAgICBzZWxmLl9ub190aW1lb3V0ID0gbm9fdGltZW91dAotICAgICAgICBzZWxmLl9waXhl
bF90ZXN0cyA9IHBpeGVsX3Rlc3RzCiAKICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IG5l
ZWQgdG8gY3JlYXRlIGEgZHJpdmVyIHVudGlsIHdlIGFjdHVhbGx5IHJ1biBhIHRlc3QuCiAgICAg
ICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzKQpAQCAtMjEx
LDcgKzIwOSw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgICAgICB2aXJ0
dWFsX2RyaXZlcl9pbnB1dC5hcmdzID0gc2VsZi5fcG9ydC5sb29rdXBfdmlydHVhbF90ZXN0X2Fy
Z3MoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bl90
ZXN0KHZpcnR1YWxfZHJpdmVyX2lucHV0KQogCi0gICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9
IHNlbGYuX3BpeGVsX3Rlc3RzIG9yIGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0CisgICAgICAgIHBp
eGVsX3Rlc3RzX25lZWRlZCA9IGRyaXZlcl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QKICAg
ICAgICAgY21kX2xpbmVfa2V5ID0gc2VsZi5fY21kX2xpbmVfYXNfa2V5KHBpeGVsX3Rlc3RzX25l
ZWRlZCwgZHJpdmVyX2lucHV0LmFyZ3MpCiAgICAgICAgIGlmIG5vdCBjbWRfbGluZV9rZXkgaW4g
c2VsZi5fcnVubmluZ19kcml2ZXJzOgogICAgICAgICAgICAgc2VsZi5fcnVubmluZ19kcml2ZXJz
W2NtZF9saW5lX2tleV0gPSBzZWxmLl9tYWtlX2RyaXZlcihwaXhlbF90ZXN0c19uZWVkZWQpCkBA
IC0yMjYsNyArMjI0LDcgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAgICAgICAgIyBU
aGUgb25seSByZWFzb24gd2UgaGF2ZSB0aGlzIHJvdXRpbmUgYXQgYWxsIGlzIHNvIHRoZSBwZXJm
dGVzdHJ1bm5lcgogICAgICAgICAjIGNhbiBwYXVzZSBiZWZvcmUgcnVubmluZyBhIHRlc3Q7IGl0
IG1pZ2h0IGJlIGJldHRlciB0byBwdXNoIHRoYXQKICAgICAgICAgIyBpbnRvIHJ1bl90ZXN0KCkg
ZGlyZWN0bHkuCi0gICAgICAgIHNlbGYuX2RyaXZlci5zdGFydChzZWxmLl9waXhlbF90ZXN0cywg
W10pCisgICAgICAgIHNlbGYuX2RyaXZlci5zdGFydChzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3Bp
eGVsX3Rlc3RzJyksIFtdKQogCiAgICAgZGVmIGhhc19jcmFzaGVkKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gYW55KGRyaXZlci5oYXNfY3Jhc2hlZCgpIGZvciBkcml2ZXIgaW4gc2VsZi5fcnVubmlu
Z19kcml2ZXJzLnZhbHVlcygpKQpAQCAtMjM3LDcgKzIzNSw3IEBAIGNsYXNzIERyaXZlclByb3h5
KG9iamVjdCk6CiAKICAgICAjIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIEBjbGFzc21ldGhvZCAo
b3IgaW1wbGVtZW50ZWQgb24gUG9ydCBpbnN0ZWFkKS4KICAgICBkZWYgY21kX2xpbmUoc2VsZiwg
cGl4ZWxfdGVzdHM9Tm9uZSwgcGVyX3Rlc3RfYXJncz1Ob25lKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX2RyaXZlci5jbWRfbGluZShwaXhlbF90ZXN0cyBvciBzZWxmLl9waXhlbF90ZXN0cywgcGVy
X3Rlc3RfYXJncyBvciBbXSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5jbWRfbGluZShw
aXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyBvciBbXSkKIAogICAgIGRlZiBfY21kX2xpbmVfYXNf
a2V5KHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKICAgICAgICAgcmV0dXJuICcg
Jy5qb2luKHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQppbmRleCA3MWU1
YTNiLi40ZDUxMjZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2d0ay5weQpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBHdGtEcml2ZXIoV2ViS2l0RHJp
dmVyKToKICAgICAgICAgIyBEcml2ZXJQcm94eSBjcmVhdGVzIHR3byBkcml2ZXJzLCBvbmUgZm9y
IG5vcm1hbCBhbmQgdGhlIG90aGVyIGZvciByZWYgdGVzdHMuIEJvdGggaGF2ZQogICAgICAgICAj
IHRoZSBzYW1lIHdvcmtlciBudW1iZXIsIHNvIHRoaXMgcHJldmVudHMgdGhlbSBmcm9tIHVzaW5n
IHRoZSBzYW1lIFh2ZmIgaW5zdGFuY2UuCiAgICAgICAgIGRpc3BsYXlfaWQgPSBzZWxmLl93b3Jr
ZXJfbnVtYmVyICogMiArIDEKLSAgICAgICAgaWYgc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAg
IGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKICAgICAgICAgICAgIGRp
c3BsYXlfaWQgKz0gMQogICAgICAgICBydW5feHZmYiA9IFsiWHZmYiIsICI6JWQiICUgKGRpc3Bs
YXlfaWQpLCAiLXNjcmVlbiIsICAiMCIsICI4MDB4NjAweDI0IiwgIi1ub2xpc3RlbiIsICJ0Y3Ai
XQogICAgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBkZXZudWxsOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkK
aW5kZXggOGMwNjJjMC4uODAxMTg4MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CkBAIC0xODQsNyArMTg0LDkgQEAgY2xh
c3MgTW9ja0RSVChvYmplY3QpOgogICAgICAgICAgICAgbGluZSA9IHNlbGYuX3N0ZGluLnJlYWRs
aW5lKCkKICAgICAgICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAgICAgIHJldHVybiAw
Ci0gICAgICAgICAgICBzZWxmLnJ1bl9vbmVfdGVzdChzZWxmLmlucHV0X2Zyb21fbGluZShsaW5l
KSkKKyAgICAgICAgICAgIGRyaXZlcl9pbnB1dCA9IHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUp
CisgICAgICAgICAgICBpc19yZWZ0ZXN0ID0gZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxf
dGVzdAorICAgICAgICAgICAgc2VsZi5ydW5fb25lX3Rlc3QoZHJpdmVyX2lucHV0LCBpc19yZWZ0
ZXN0KQogCiAgICAgZGVmIGlucHV0X2Zyb21fbGluZShzZWxmLCBsaW5lKToKICAgICAgICAgdmFs
cyA9IGxpbmUuc3RyaXAoKS5zcGxpdCgiJyIpCkBAIC0yMDIsMTUgKzIwNCwxNSBAQCBjbGFzcyBN
b2NrRFJUKG9iamVjdCk6CiAgICAgICAgIGRpcm5hbWUsIGJhc2VuYW1lID0gc2VsZi5fcG9ydC5z
cGxpdF90ZXN0KHRlc3RfbmFtZSkKICAgICAgICAgaXNfcmVmdGVzdCA9IChzZWxmLl9wb3J0LnJl
ZmVyZW5jZV9maWxlcyh0ZXN0X25hbWUpIG9yCiAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cG9ydC5pc19yZWZlcmVuY2VfaHRtbF9maWxlKHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0sIGRpcm5h
bWUsIGJhc2VuYW1lKSkKLSAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwg
Y2hlY2tzdW0sIGlzX3JlZnRlc3QpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25h
bWUsIDAsIGNoZWNrc3VtLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9aXNfcmVmdGVzdCkKIAotICAg
IGRlZiBvdXRwdXRfZm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6CisgICAgZGVmIG91dHB1dF9m
b3JfdGVzdChzZWxmLCB0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KToKICAgICAgICAgcG9ydCA9IHNl
bGYuX3BvcnQKICAgICAgICAgYWN0dWFsX3RleHQgPSBwb3J0LmV4cGVjdGVkX3RleHQodGVzdF9p
bnB1dC50ZXN0X25hbWUpCiAgICAgICAgIGFjdHVhbF9hdWRpbyA9IHBvcnQuZXhwZWN0ZWRfYXVk
aW8odGVzdF9pbnB1dC50ZXN0X25hbWUpCiAgICAgICAgIGFjdHVhbF9pbWFnZSA9IE5vbmUKICAg
ICAgICAgYWN0dWFsX2NoZWNrc3VtID0gTm9uZQotICAgICAgICBpZiB0ZXN0X2lucHV0LmlzX3Jl
ZnRlc3Q6CisgICAgICAgIGlmIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0IGFuZCBp
c19yZWZ0ZXN0OgogICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWUgb3V0cHV0IGZvciByZWZ0ZXN0
cy4KICAgICAgICAgICAgIGFjdHVhbF90ZXh0ID0gJ3JlZmVyZW5jZSB0ZXh0XG4nCiAgICAgICAg
ICAgICBhY3R1YWxfY2hlY2tzdW0gPSAnbW9jay1jaGVja3N1bScKQEAgLTIyNSw4ICsyMjcsOCBA
QCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dChh
Y3R1YWxfdGV4dCwgYWN0dWFsX2ltYWdlLCBhY3R1YWxfY2hlY2tzdW0sIGFjdHVhbF9hdWRpbykK
IAotICAgIGRlZiBydW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1
dCA9IHNlbGYub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVz
dChzZWxmLCB0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5v
dXRwdXRfZm9yX3Rlc3QodGVzdF9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBpZiBvdXRw
dXQuYXVkaW86CiAgICAgICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTog
YXVkaW8vd2F2XG4nKQpAQCAtMjQxLDcgKzI0Myw3IEBAIGNsYXNzIE1vY2tEUlQob2JqZWN0KToK
IAogICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJyNFT0ZcbicpCiAKLSAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQuaW1hZ2VfaGFzaCBvciB0ZXN0
X2lucHV0LmlzX3JlZnRlc3QpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3Rz
IGFuZCAodGVzdF9pbnB1dC5pbWFnZV9oYXNoIG9yIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhl
bF90ZXN0KToKICAgICAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgnXG4nKQogICAgICAgICAg
ICAgc2VsZi5fc3Rkb3V0LndyaXRlKCdBY3R1YWxIYXNoOiAlc1xuJyAlIG91dHB1dC5pbWFnZV9o
YXNoKQogICAgICAgICAgICAgc2VsZi5fc3Rkb3V0LndyaXRlKCdFeHBlY3RlZEhhc2g6ICVzXG4n
ICUgdGVzdF9pbnB1dC5pbWFnZV9oYXNoKQpAQCAtMjY5LDIyICsyNzEsMjIgQEAgY2xhc3MgTW9j
a0Nocm9taXVtRFJUKE1vY2tEUlQpOgogICAgICAgICBpc19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQu
cmVmZXJlbmNlX2ZpbGVzKHRlc3RfbmFtZSkgb3IKICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9wb3J0LmlzX3JlZmVyZW5jZV9odG1sX2ZpbGUoc2VsZi5fcG9ydC5fZmlsZXN5c3RlbSwgZGly
bmFtZSwgYmFzZW5hbWUpKQogCi0gICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25hbWUs
IHRpbWVvdXQsIGNoZWNrc3VtLCBpc19yZWZ0ZXN0KQorICAgICAgICByZXR1cm4gRHJpdmVySW5w
dXQodGVzdF9uYW1lLCB0aW1lb3V0LCBjaGVja3N1bSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PWlz
X3JlZnRlc3QpCiAKLSAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgor
ICAgIGRlZiBvdXRwdXRfZm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgaXNfcmVmdGVzdCk6CiAg
ICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIG1ha2UgdmlydHVhbCB0ZXN0cyB3b3Jr
LiBOZWVkIHNvbWV0aGluZyBtb3JlIGdlbmVyYWwuCiAgICAgICAgIG9yaWdpbmFsX3Rlc3RfbmFt
ZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCiAgICAgICAgIGlmICctLWVuYWJsZS1hY2NlbGVyYXRl
ZC0yZC1jYW52YXMnIGluIHNlbGYuX2FyZ3MgYW5kICdjYW52YXMnIGluIHRlc3RfaW5wdXQudGVz
dF9uYW1lOgogICAgICAgICAgICAgdGVzdF9pbnB1dC50ZXN0X25hbWUgPSAncGxhdGZvcm0vY2hy
b21pdW0vdmlydHVhbC9ncHUvJyArIHRlc3RfaW5wdXQudGVzdF9uYW1lCi0gICAgICAgIG91dHB1
dCA9IHN1cGVyKE1vY2tDaHJvbWl1bURSVCwgc2VsZikub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5w
dXQpCisgICAgICAgIG91dHB1dCA9IHN1cGVyKE1vY2tDaHJvbWl1bURSVCwgc2VsZikub3V0cHV0
X2Zvcl90ZXN0KHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpCiAgICAgICAgIHRlc3RfaW5wdXQudGVz
dF9uYW1lID0gb3JpZ2luYWxfdGVzdF9uYW1lCiAgICAgICAgIHJldHVybiBvdXRwdXQKIAotICAg
IGRlZiBydW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIG91dHB1dCA9IHNl
bGYub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQpCisgICAgZGVmIHJ1bl9vbmVfdGVzdChzZWxm
LCB0ZXN0X2lucHV0LCBpc19yZWZ0ZXN0KToKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5vdXRwdXRf
Zm9yX3Rlc3QodGVzdF9pbnB1dCwgaXNfcmVmdGVzdCkKIAogICAgICAgICBzZWxmLl9zdGRvdXQu
d3JpdGUoIiNVUkw6JXNcbiIgJSBzZWxmLl9kcml2ZXIudGVzdF90b191cmkodGVzdF9pbnB1dC50
ZXN0X25hbWUpKQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCAodGVz
dF9pbnB1dC5pbWFnZV9oYXNoIG9yIHRlc3RfaW5wdXQuaXNfcmVmdGVzdCk6CisgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgYW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3Ig
aXNfcmVmdGVzdCk6CiAgICAgICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoIiNNRDU6JXNcbiIg
JSBvdXRwdXQuaW1hZ2VfaGFzaCkKICAgICAgICAgICAgIGlmIG91dHB1dC5pbWFnZToKICAgICAg
ICAgICAgICAgICBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2Vs
Zi5faG9zdC5maWxlc3lzdGVtLmRpcm5hbWUoc2VsZi5fb3B0aW9ucy5waXhlbF9wYXRoKSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkK
aW5kZXggNTExMDFlYy4uMzJmMDdlMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQ1Miw4ICs0NTIsNiBAQCBjbGFzcyBX
ZWJLaXREcml2ZXIoRHJpdmVyKToKICAgICBkZWYgY21kX2xpbmUoc2VsZiwgcGl4ZWxfdGVzdHMs
IHBlcl90ZXN0X2FyZ3MpOgogICAgICAgICBjbWQgPSBzZWxmLl9jb21tYW5kX3dyYXBwZXIoc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCiAgICAgICAgIGNtZC5hcHBlbmQoc2VsZi5f
cG9ydC5fcGF0aF90b19kcml2ZXIoKSkKLSAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9u
KCdza2lwX3BpeGVsX3Rlc3RfaWZfbm9fYmFzZWxpbmUnKToKLSAgICAgICAgICAgIGNtZC5hcHBl
bmQoJy0tc2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5lJykKICAgICAgICAgaWYgc2VsZi5f
cG9ydC5nZXRfb3B0aW9uKCdnY19iZXR3ZWVuX3Rlc3RzJyk6CiAgICAgICAgICAgICBjbWQuYXBw
ZW5kKCctLWdjLWJldHdlZW4tdGVzdHMnKQogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRp
b24oJ2NvbXBsZXhfdGV4dCcpOgpAQCAtNDY2LDcgKzQ2NCw3IEBAIGNsYXNzIFdlYktpdERyaXZl
cihEcml2ZXIpOgogCiAgICAgICAgIGNtZC5leHRlbmQoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdh
ZGRpdGlvbmFsX2RydF9mbGFnJywgW10pKQogCi0gICAgICAgIGlmIHBpeGVsX3Rlc3RzIG9yIHNl
bGYuX3BpeGVsX3Rlc3RzOgorICAgICAgICBpZiBwaXhlbF90ZXN0czoKICAgICAgICAgICAgIGNt
ZC5hcHBlbmQoJy0tcGl4ZWwtdGVzdHMnKQogICAgICAgICBjbWQuZXh0ZW5kKHBlcl90ZXN0X2Fy
Z3MpCiAKQEAgLTU0NCw3ICs1NDIsNyBAQCBjbGFzcyBXZWJLaXREcml2ZXIoRHJpdmVyKToKIAog
ICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpOgogICAgICAgICBpZiBub3Qgc2Vs
Zi5fc2VydmVyX3Byb2Nlc3M6Ci0gICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQu
aXNfcmVmdGVzdCBvciBzZWxmLl9waXhlbF90ZXN0cywgW10pCisgICAgICAgICAgICBzZWxmLl9z
dGFydChzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyksIFtdKQogICAgICAgICBz
ZWxmLmVycm9yX2Zyb21fdGVzdCA9IHN0cigpCiAgICAgICAgIHNlbGYuZXJyX3NlZW5fZW9mID0g
RmFsc2UKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2
ODY5MGU1Li5hYWE3NWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtNjgsNyArNjgsNiBAQCBUZXN0Q29udHJvbGxlciYgVGVzdENvbnRyb2xsZXI6OnNo
YXJlZCgpCiAKIFRlc3RDb250cm9sbGVyOjpUZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3Qg
Y2hhciogYXJndltdKQogICAgIDogbV9kdW1wUGl4ZWxzKGZhbHNlKQotICAgICwgbV9za2lwUGl4
ZWxUZXN0T3B0aW9uKGZhbHNlKQogICAgICwgbV92ZXJib3NlKGZhbHNlKQogICAgICwgbV9wcmlu
dFNlcGFyYXRvcnMoZmFsc2UpCiAgICAgLCBtX3VzaW5nU2VydmVyTW9kZShmYWxzZSkKQEAgLTI2
MCwxMSArMjU5LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywg
Y29uc3QgY2hhciogYXJndltdKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tc2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5l
IikgewotICAgICAgICAgICAgbV9za2lwUGl4ZWxUZXN0T3B0aW9uID0gdHJ1ZTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGFyZ3VtZW50ID09ICItLXBp
eGVsLXRlc3RzIikgewogICAgICAgICAgICAgbV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwpAQCAtNTE4LDcgKzUxMiw2IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1
blRlc3QoY29uc3QgY2hhciogdGVzdCkKICAgICBtX3N0YXRlID0gUnVubmluZ1Rlc3Q7CiAKICAg
ICBtX2N1cnJlbnRJbnZvY2F0aW9uID0gYWRvcHRQdHIobmV3IFRlc3RJbnZvY2F0aW9uKHBhdGhP
clVSTCkpOwotICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldFNraXBQaXhlbFRlc3RPcHRpb24o
bV9za2lwUGl4ZWxUZXN0T3B0aW9uKTsKICAgICBpZiAobV9kdW1wUGl4ZWxzKQogICAgICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRJc1BpeGVsVGVzdChleHBlY3RlZFBpeGVsSGFzaCk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhYzlmMWZmLi5iOTQ2
NWVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xMDUsNyAr
MTA1LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8VGVzdEludm9jYXRpb24+IG1fY3VycmVudElu
dm9jYXRpb247CiAKICAgICBib29sIG1fZHVtcFBpeGVsczsKLSAgICBib29sIG1fc2tpcFBpeGVs
VGVzdE9wdGlvbjsKICAgICBib29sIG1fdmVyYm9zZTsKICAgICBib29sIG1fcHJpbnRTZXBhcmF0
b3JzOwogICAgIGJvb2wgbV91c2luZ1NlcnZlck1vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IGFiZWE4ZTQuLjI0OTM0OWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC05Niw3ICs5Niw2IEBAIFRlc3RJbnZv
Y2F0aW9uOjpUZXN0SW52b2NhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMKQogICAg
IDogbV91cmwoQWRvcHRXSywgY3JlYXRlV0tVUkwocGF0aE9yVVJMLmNfc3RyKCkpKQogICAgICwg
bV9wYXRoT3JVUkwocGF0aE9yVVJMKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQotICAgICwg
bV9za2lwUGl4ZWxUZXN0T3B0aW9uKGZhbHNlKQogICAgICwgbV9nb3RJbml0aWFsUmVzcG9uc2Uo
ZmFsc2UpCiAgICAgLCBtX2dvdEZpbmFsTWVzc2FnZShmYWxzZSkKICAgICAsIG1fZ290UmVwYWlu
dChmYWxzZSkKQEAgLTExMCw4ICsxMDksNiBAQCBUZXN0SW52b2NhdGlvbjo6flRlc3RJbnZvY2F0
aW9uKCkKIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpz
dHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogewotICAgIGlmIChtX3NraXBQaXhlbFRlc3RPcHRp
b24gJiYgIWV4cGVjdGVkUGl4ZWxIYXNoLmxlbmd0aCgpKQotICAgICAgICByZXR1cm47CiAgICAg
bV9kdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICBtX2V4cGVjdGVkUGl4ZWxIYXNoID0gZXhwZWN0ZWRQ
aXhlbEhhc2g7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXgg
YWY5ZjM4Zi4uOTE2NTIwNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
aApAQCAtMzksNyArMzksNiBAQCBwdWJsaWM6CiAgICAgflRlc3RJbnZvY2F0aW9uKCk7CiAKICAg
ICB2b2lkIHNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFz
aCk7Ci0gICAgdm9pZCBzZXRTa2lwUGl4ZWxUZXN0T3B0aW9uKGJvb2wgb3B0aW9uKSB7IG1fc2tp
cFBpeGVsVGVzdE9wdGlvbiA9IG9wdGlvbjsgfQogCiAgICAgdm9pZCBpbnZva2UoKTsKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpOwpAQCAtNTUsNyArNTQsNiBAQCBwcml2YXRl
OgogICAgIAogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0
ZWRQaXhlbEhhc2g7Ci0gICAgYm9vbCBtX3NraXBQaXhlbFRlc3RPcHRpb247CiAKICAgICAvLyBJ
bnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRpYWxSZXNwb25zZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138019</attachid>
            <date>2012-04-19 18:11:26 -0700</date>
            <delta_ts>2012-04-20 15:32:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72841-20120419181124.patch</filename>
            <type>text/plain</type>
            <size>24806</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NjMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTVjMmRlMGZmYjRiYmQzNTk3YTc1MWRhNmJhMTU2OTlj
YjkyOTZiOS4uYmM4OGE2NTdiOWUwYjIyODMyZDY4ZjI4YTQwOTkzYmY0OGJhMmE2ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDEyLTA0LTE5ICBOYW5kb3IgSHVzemthICA8aG5hbmRvckBpbmYudS1zemVnZWQuaHU+
CisKKyAgICAgICAgTlJXVDogb3B0aW9uIC0tc2tpcC1waXhlbC10ZXN0LWlmLW5vLWJhc2VsaW5l
IHN1cHBvcnQgb24gRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03Mjg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudGVkIHdpdGggaGVscCBmcm9tIERpcmsgUHJhbmtlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciAtLXNraXAtcGl4ZWwtdGVzdC1pZi1u
by1iYXNlbGluZSBnZW5lcmljYWxseSBpbiBOUldULAorICAgICAgICBpbnN0ZWFkIG9mIGluIGV2
ZXJ5IERSVCBhbmQgV1RSIGltcGxlbWVudGF0aW9uLiBXZSBhZGQgJ3Nob3VsZF9ydW5fcGl4ZWxf
dGVzdCcKKyAgICAgICAgYW5kICdyZWZlcmVuY2VfZmlsZXMnIGZpZWxkcyB0byB0aGUgVGVzdElu
cHV0IG9iamVjdHMsIGFuZCB1c2UgdGhvc2UgZmxhZ3MKKyAgICAgICAgdG8gc2VsZWN0IHRoZSBy
aWdodCBkcml2ZXIgdG8gdXNlIGluIHRoZSBEcml2ZXJQcm94eS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5w
eToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX19pbml0X18pOgorICAgICAgICAoU2luZ2xl
VGVzdFJ1bm5lci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX3J1
bl9yZWZ0ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy93b3JrZXIucHk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlX3Rlc3RfbGlzdCk6Cisg
ICAgICAgIChXb3JrZXIuX3VwZGF0ZV90ZXN0X2lucHV0KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weToKKyAgICAgICAgKFRlc3RJ
bnB1dCk6CisgICAgICAgIChUZXN0SW5wdXQuX19pbml0X18pOgorICAgICAgICAoVGVzdElucHV0
Ll9fcmVwcl9fKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtLnB5OgorICAgICAgICAoQ2hyb21pdW1Ecml2ZXIuX3dyYXBwZXJfb3B0aW9ucyk6
CisgICAgICAgIChDaHJvbWl1bURyaXZlci5ydW5fdGVzdCk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weToKKyAgICAgICAg
KENocm9taXVtRHJpdmVyVGVzdC50ZXN0X2NyYXNoX2xvZyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXJJbnB1
dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoRHJpdmVy
UHJveHkuX19pbml0X18pOgorICAgICAgICAoRHJpdmVyUHJveHkucnVuX3Rlc3QpOgorICAgICAg
ICAoRHJpdmVyUHJveHkuc3RhcnQpOgorICAgICAgICAoRHJpdmVyUHJveHkuY21kX2xpbmUpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5OgorICAg
ICAgICAoR3RrRHJpdmVyLl9zdGFydCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weToKKyAgICAgICAgKE1vY2tEUlQucnVuKToKKyAgICAg
ICAgKE1vY2tEUlQuaW5wdXRfZnJvbV9saW5lKToKKyAgICAgICAgKE1vY2tEUlQub3V0cHV0X2Zv
cl90ZXN0KToKKyAgICAgICAgKE1vY2tEUlQud3JpdGVfdGVzdF9vdXRwdXQpOgorICAgICAgICAo
TW9ja0Nocm9taXVtRFJULmlucHV0X2Zyb21fbGluZSk6CisgICAgICAgIChNb2NrQ2hyb21pdW1E
UlQub3V0cHV0X2Zvcl90ZXN0KToKKyAgICAgICAgKE1vY2tDaHJvbWl1bURSVC53cml0ZV90ZXN0
X291dHB1dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHk6CisgICAgICAgIChXZWJLaXREcml2ZXIuY21kX2xpbmUpOgorICAgICAgICAoV2Vi
S2l0RHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVy
KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoVGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlv
bjo6c2V0SXNQaXhlbFRlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uaDoKKyAgICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKwogMjAxMi0wNC0xOCAgSGlyb25v
cmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTcGxpdCBTcGVsbENoZWNr
ZXI6OmRpZENoZWNrKCkgdG8gU3BlbGxDaGVja2VyOjpkaWRDaGVja1N1Y2NlZWRlZCgpIGFuZCBT
cGVsbENoZWNrZXI6OmRpZENoZWNrQ2FuY2VsZWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xl
X3Rlc3RfcnVubmVyLnB5CmluZGV4IDJmODkwYjBjMWZiZjQzMjJjNWRjZjA2ZDYyNjQwZGQxMDY5
ZjM2ZDguLjNmNTE0MTBjZmJhMmIzYzU3YzFlZGZkNTU5NTE5NDYxYjFhNmI2NGUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Npbmds
ZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAgLTU3LDkgKzU3LDcgQEAgY2xh
c3MgU2luZ2xlVGVzdFJ1bm5lcjoKICAgICAgICAgc2VsZi5fd29ya2VyX25hbWUgPSB3b3JrZXJf
bmFtZQogICAgICAgICBzZWxmLl90ZXN0X25hbWUgPSB0ZXN0X2lucHV0LnRlc3RfbmFtZQogICAg
ICAgICBzZWxmLl9zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSB0ZXN0X2lucHV0LnNob3VsZF9ydW5f
cGl4ZWxfdGVzdAotCi0gICAgICAgIHNlbGYuX2lzX3JlZnRlc3QgPSBGYWxzZQotICAgICAgICBz
ZWxmLl9yZWZlcmVuY2VfZmlsZXMgPSBwb3J0LnJlZmVyZW5jZV9maWxlcyhzZWxmLl90ZXN0X25h
bWUpCisgICAgICAgIHNlbGYuX3JlZmVyZW5jZV9maWxlcyA9IHRlc3RfaW5wdXQucmVmZXJlbmNl
X2ZpbGVzCiAKICAgICAgICAgaWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgogICAgICAgICAgICAg
IyBEZXRlY3QgYW5kIHJlcG9ydCBhIHRlc3Qgd2hpY2ggaGFzIGEgd3JvbmcgY29tYmluYXRpb24g
b2YgZXhwZWN0YXRpb24gZmlsZXMuCkBAIC05Miw3ICs5MCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RS
dW5uZXI6CiAgICAgICAgIGltYWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3Vs
ZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNl
bGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQotICAgICAgICByZXR1
cm4gRHJpdmVySW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNo
LCBib29sKHNlbGYuX3JlZmVyZW5jZV9maWxlcykpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1
dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3Vs
ZF9ydW5fcGl4ZWxfdGVzdCkKIAogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYu
X3JlZmVyZW5jZV9maWxlczoKQEAgLTI5MCw3ICsyODgsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVu
bmVyOgogICAgICAgICBwdXRBbGxNaXNtYXRjaEJlZm9yZU1hdGNoID0gc29ydGVkCiAgICAgICAg
IGZvciBleHBlY3RhdGlvbiwgcmVmZXJlbmNlX2ZpbGVuYW1lIGluIHB1dEFsbE1pc21hdGNoQmVm
b3JlTWF0Y2goc2VsZi5fcmVmZXJlbmNlX2ZpbGVzKToKICAgICAgICAgICAgIHJlZmVyZW5jZV90
ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUocmVmZXJlbmNlX2Zp
bGVuYW1lKQotICAgICAgICAgICAgcmVmZXJlbmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5f
dGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2VfdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0
X291dHB1dC5pbWFnZV9oYXNoLCBpc19yZWZ0ZXN0PVRydWUpKQorICAgICAgICAgICAgcmVmZXJl
bmNlX291dHB1dCA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChyZWZlcmVuY2Vf
dGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCB0ZXN0X291dHB1dC5pbWFnZV9oYXNoLCBzaG91bGRf
cnVuX3BpeGVsX3Rlc3Q9VHJ1ZSkpCiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYuX2Nv
bXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKHRlc3Rfb3V0cHV0LCByZWZlcmVuY2Vfb3V0cHV0
LCByZWZlcmVuY2VfZmlsZW5hbWUsIGV4cGVjdGF0aW9uID09ICchPScpCiAKICAgICAgICAgICAg
IGlmIChleHBlY3RhdGlvbiA9PSAnIT0nIGFuZCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcykgb3IgKGV4
cGVjdGF0aW9uID09ICc9PScgYW5kIG5vdCB0ZXN0X3Jlc3VsdC5mYWlsdXJlcyk6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3Jr
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93
b3JrZXIucHkKaW5kZXggYjA1ODhhYmRmMjMyNjNjM2M5N2NiNGRhOTdkOWIwNzJjMmQ0ODBmNy4u
YTFlM2JlZTcwZWIyOTJmMjdkNTBjMzFmODI2MTVjOGM3Y2RiNzkwYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtl
ci5weQpAQCAtMTQwLDkgKzE0MCw3IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dvcmtlcl9icm9r
ZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKICAg
ICAgICAgbnVtX3Rlc3RzID0gMAogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2xpc3Q6
Ci0gICAgICAgICAgICAjRklYTUU6IFdoZW4gdGhlIERSVCBzdXBwb3J0IGFsc28gdGhpcyBmdW5j
dGlvbiwgdGhhdCB3b3VsZCBiZSB1c2VmdWwKLSAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZHJp
dmVyX25hbWUoKSA9PSAiV2ViS2l0VGVzdFJ1bm5lciIgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlv
bignc2tpcF9waXhlbF90ZXN0X2lmX25vX2Jhc2VsaW5lJykgYW5kIHNlbGYuX3BvcnQuZ2V0X29w
dGlvbigncGl4ZWxfdGVzdHMnKToKLSAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9y
dW5fcGl4ZWxfdGVzdCA9IChzZWxmLl9wb3J0LmV4cGVjdGVkX2ltYWdlKHRlc3RfaW5wdXQudGVz
dF9uYW1lKSAhPSBOb25lKQorICAgICAgICAgICAgc2VsZi5fdXBkYXRlX3Rlc3RfaW5wdXQodGVz
dF9pbnB1dCkKICAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCiAgICAgICAg
ICAgICBudW1fdGVzdHMgKz0gMQogICAgICAgICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24u
eWllbGRfdG9fYnJva2VyKCkKQEAgLTE1Myw2ICsxNTEsMTggQEAgY2xhc3MgV29ya2VyKG1hbmFn
ZXJfd29ya2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgZGVmIGhhbmRsZV9zdG9wKHNl
bGYsIHNyYyk6CiAgICAgICAgIHNlbGYuc3RvcF9oYW5kbGluZ19tZXNzYWdlcygpCiAKKyAgICBk
ZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgICAgICB0ZXN0X2lu
cHV0LnJlZmVyZW5jZV9maWxlcyA9IHNlbGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKHRlc3RfaW5w
dXQudGVzdF9uYW1lKQorICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlczoKKyAg
ICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gVHJ1ZQorICAgICAg
ICBlbGlmIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHM6CisgICAgICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnNraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZToKKyAgICAgICAgICAgICAgICB0
ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IGJvb2woc2VsZi5fcG9ydC5leHBlY3Rl
ZF9pbWFnZSh0ZXN0X2lucHV0LnRlc3RfbmFtZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gVHJ1ZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBG
YWxzZQorCiAgICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKICAgICAgICAgdGVz
dF90aW1lb3V0X3NlYyA9IHNlbGYudGltZW91dCh0ZXN0X2lucHV0KQogICAgICAgICBzdGFydCA9
IHRpbWUudGltZSgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2lucHV0LnB5CmluZGV4IDVjOGIzMGQyZTA4MmJmMDQ5ODBiZDEw
NTAwZDA4YzgzMGQ1MmE1MmEuLjVhMDE2ZjYyMTE3MjM3ZTRlYjYzOGFlNmM2YzAyZDE4ZTk3Yzky
ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2lucHV0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X2lucHV0LnB5CkBAIC0yOSwyNCArMjksMjQgQEAKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogCi1jbGFzcyBUZXN0SW5wdXQ6CitjbGFzcyBUZXN0SW5wdXQob2JqZWN0KToKICAgICAiIiJH
cm91cHMgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IGZvciBlYXN5IHBhc3Npbmcgb2YgZGF0YS4i
IiIKIAotICAgICMgVG8gc2F2ZSBmb290cHJpbnRzIHNpbmNlIG1vc3QgVGVzdElucHV0IGluc3Rh
bmNlcyBkb24ndCBoYXZlIHRvIGhhdmUgdGhlc2UgZmllbGRzLgotICAgIHJlZl9maWxlID0gTm9u
ZQotICAgIGlzX21pc21hdGNoX3JlZnRlc3QgPSBOb25lCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9VHJ1ZSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dCk6CiAgICAgICAgICIiIkhvbGRz
IHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciBhIHRlc3QuCiAgICAgICAgIEFyZ3M6CiAgICAgICAg
ICAgdGVzdDogbmFtZSBvZiB0ZXN0IChub3QgYW4gYWJzb2x1dGUgcGF0aCEpCiAgICAgICAgICAg
dGltZW91dDogVGltZW91dCBpbiBtc2VjcyB0aGUgZHJpdmVyIHNob3VsZCB1c2Ugd2hpbGUgcnVu
bmluZyB0aGUgdGVzdAotICAgICAgICAgIHJlZl9maWxlOiBuYW1lIG9mIHJlZmVyZW5jZV9maWxl
bmFtZSAobm90IGFuIGFic29sdXRlIHBhdGghKQotICAgICAgICAgIGlzX21pc21hdGNoX3Rlc3Q6
IHRydWUgd2hlbiB0aGUgdGVzdCBpcyBhIG1pc21hdGNoIHJlZnRlc3QuCiAgICAgICAgICAgIiIi
CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYudGltZW91
dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzaG91bGRf
cnVuX3BpeGVsX3Rlc3QKKworICAgICAgICAjIFRlc3RJbnB1dCBvYmplY3RzIGFyZSBub3JtYWxs
eSBjb25zdHJ1Y3RlZCBieSB0aGUgbWFuYWdlciBhbmQgcGFzc2VkCisgICAgICAgICMgdG8gdGhl
IHdvcmtlcnMsIGJ1dCB0aGVzZSB0d28gZmllbGRzIGFyZSBzZXQgbGF6aWx5IGluIHRoZSB3b3Jr
ZXJzCisgICAgICAgICMgYmVjYXVzZSB0aGV5IHJlcXVpcmUgdXMgdG8gZmlndXJlIG91dCBpZiB0
aGUgdGVzdCBpcyBhIHJlZnRlc3Qgb3Igbm90CisgICAgICAgICMgYW5kIHdlIHdhbnQgdG8gYmUg
YWJsZSB0byBkbyB0aGF0IGluIHBhcmFsbGVsLgorICAgICAgICBzZWxmLnNob3VsZF9ydW5fcGl4
ZWxfdGVzdHMgPSBOb25lCisgICAgICAgIHNlbGYucmVmZXJlbmNlX2ZpbGVzID0gTm9uZQogCiAg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIlRlc3RJbnB1dCgnJXMnLCAl
ZCkiICUgKHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQpCisgICAgICAgIHJldHVybiAiVGVz
dElucHV0KCclcycsICVkLCAlcywgJXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0
LCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMsIHNlbGYucmVmZXJlbmNlX2ZpbGVzKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHkKaW5kZXggMDQyZjkyMWZhYWZmOTc4ODI1NmQzNjhmOWRmOTQ4MzUyNmNjNzg5ZS4uMDhmOTI2
YjdiOTM5MzQyZTAzZmJmODRjNjZjMDhlMTU4MzIzOGEzNiAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC00MDIsNyAr
NDAyLDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVyKToKIAogICAgIGRlZiBfd3JhcHBl
cl9vcHRpb25zKHNlbGYsIHBpeGVsX3Rlc3RzKToKICAgICAgICAgY21kID0gW10KLSAgICAgICAg
aWYgcGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rl
c3RzOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX2ltYWdlX3BhdGg6CiAgICAgICAgICAgICAg
ICAgc2VsZi5faW1hZ2VfcGF0aCA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9w
b3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksICdwbmdfcmVzdWx0JXMucG5nJyAlIHNlbGYuX3dvcmtl
cl9udW1iZXIpCiAgICAgICAgICAgICAjIFNlZSBub3RlIGFib3ZlIGluIGRpZmZfaW1hZ2UoKSBm
b3Igd2h5IHdlIG5lZWQgX2NvbnZlcnRfcGF0aCgpLgpAQCAtNTE0LDcgKzUxNCw3IEBAIGNsYXNz
IENocm9taXVtRHJpdmVyKERyaXZlcik6CiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVy
X2lucHV0KToKICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2M6Ci0gICAgICAgICAgICBzZWxmLl9z
dGFydChkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdCBvciBzZWxmLl9waXhlbF90ZXN0cywgZHJpdmVy
X2lucHV0LmFyZ3MpCisgICAgICAgICAgICBzZWxmLl9zdGFydChkcml2ZXJfaW5wdXQuc2hvdWxk
X3J1bl9waXhlbF90ZXN0LCBkcml2ZXJfaW5wdXQuYXJncykKIAogICAgICAgICBvdXRwdXQgPSBb
XQogICAgICAgICBlcnJvciA9IFtdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQppbmRleCAzMmFh
YTZmYWNjNzBmYzE4NDg1ZDE0NDkwOGNiNDA0N2FkODY0ZjgyLi4wY2YwNGFjM2I4NjgxZTNjYjUy
NjNiMmIzNDBjN2I3NGM5YWRlN2MwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKQEAgLTEw
NCw3ICsxMDQsNyBAQCBjbGFzcyBDaHJvbWl1bURyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLmRyaXZlci50ZXN0X3RvX3VyaSA9IGxhbWJkYSB0ZXN0OiAnbW9ja3Rl
c3R1cmknCiAgICAgICAgIHNlbGYuZHJpdmVyLl9wb3J0LmRyaXZlcl9uYW1lID0gbGFtYmRhOiAn
bW9ja2RyaXZlcicKICAgICAgICAgc2VsZi5kcml2ZXIuX3BvcnQuX2dldF9jcmFzaF9sb2cgPSBs
YW1iZGEgbmFtZSwgcGlkLCBvdXQsIGVyciwgbmV3ZXJfdGhhbjogJ21vY2tjcmFzaGxvZycKLSAg
ICAgICAgZHJpdmVyX291dHB1dCA9IHNlbGYuZHJpdmVyLnJ1bl90ZXN0KERyaXZlcklucHV0KHRl
c3RfbmFtZT0nc29tZS90ZXN0Lmh0bWwnLCB0aW1lb3V0PTEsIGltYWdlX2hhc2g9Tm9uZSwgaXNf
cmVmdGVzdD1GYWxzZSkpCisgICAgICAgIGRyaXZlcl9vdXRwdXQgPSBzZWxmLmRyaXZlci5ydW5f
dGVzdChEcml2ZXJJbnB1dCh0ZXN0X25hbWU9J3NvbWUvdGVzdC5odG1sJywgdGltZW91dD0xLCBp
bWFnZV9oYXNoPU5vbmUsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD1GYWxzZSkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShkcml2ZXJfb3V0cHV0LmNyYXNoKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGRyaXZlcl9vdXRwdXQuY3Jhc2hlZF9wcm9jZXNzX25hbWUsICdtb2NrZHJpdmVyJykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXJfb3V0cHV0LmNyYXNoZWRfcGlkLCAxMjM0KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5w
eQppbmRleCBlMWQ4YTRiZGM1OWNkMzIzY2VkOGI4NzZkZjhhNjRmZjM3OGI3NDRlLi5hMTEzZGEz
YThjYjdjMWVlMWM5Nzk0ZjFkMDA1ZWUwYmZhOTE0NGJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMzQsMTEgKzM0LDEx
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgcGF0aAogCiAKIGNsYXNzIERy
aXZlcklucHV0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGlt
ZW91dCwgaW1hZ2VfaGFzaCwgaXNfcmVmdGVzdCwgYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVs
X3Rlc3QsIGFyZ3M9Tm9uZSk6CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAg
ICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFn
ZV9oYXNoID0gaW1hZ2VfaGFzaAotICAgICAgICBzZWxmLmlzX3JlZnRlc3QgPSBpc19yZWZ0ZXN0
CisgICAgICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gc2hvdWxkX3J1bl9waXhlbF90
ZXN0CiAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3Mgb3IgW10KIAogCkBAIC0xMDQsNyArMTA0LDYg
QEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl9wb3J0
ID0gcG9ydAogICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgotICAg
ICAgICBzZWxmLl9waXhlbF90ZXN0cyA9IHBpeGVsX3Rlc3RzCiAgICAgICAgIHNlbGYuX25vX3Rp
bWVvdXQgPSBub190aW1lb3V0CiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0
KToKQEAgLTE4MSw3ICsxODAsNiBAQCBjbGFzcyBEcml2ZXJQcm94eShvYmplY3QpOgogICAgICAg
ICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9kcml2
ZXJfaW5zdGFuY2VfY29uc3RydWN0b3IgPSBkcml2ZXJfaW5zdGFuY2VfY29uc3RydWN0b3IKICAg
ICAgICAgc2VsZi5fbm9fdGltZW91dCA9IG5vX3RpbWVvdXQKLSAgICAgICAgc2VsZi5fcGl4ZWxf
dGVzdHMgPSBwaXhlbF90ZXN0cwogCiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCBuZWVk
IHRvIGNyZWF0ZSBhIGRyaXZlciB1bnRpbCB3ZSBhY3R1YWxseSBydW4gYSB0ZXN0LgogICAgICAg
ICBzZWxmLl9kcml2ZXIgPSBzZWxmLl9tYWtlX2RyaXZlcihwaXhlbF90ZXN0cykKQEAgLTIxMSw3
ICsyMDksNyBAQCBjbGFzcyBEcml2ZXJQcm94eShvYmplY3QpOgogICAgICAgICAgICAgdmlydHVh
bF9kcml2ZXJfaW5wdXQuYXJncyA9IHNlbGYuX3BvcnQubG9va3VwX3ZpcnR1YWxfdGVzdF9hcmdz
KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUpCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5fdGVz
dCh2aXJ0dWFsX2RyaXZlcl9pbnB1dCkKIAotICAgICAgICBwaXhlbF90ZXN0c19uZWVkZWQgPSBz
ZWxmLl9waXhlbF90ZXN0cyBvciBkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdAorICAgICAgICBwaXhl
bF90ZXN0c19uZWVkZWQgPSBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CiAgICAg
ICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2NtZF9saW5lX2FzX2tleShwaXhlbF90ZXN0c19uZWVk
ZWQsIGRyaXZlcl9pbnB1dC5hcmdzKQogICAgICAgICBpZiBub3QgY21kX2xpbmVfa2V5IGluIHNl
bGYuX3J1bm5pbmdfZHJpdmVyczoKICAgICAgICAgICAgIHNlbGYuX3J1bm5pbmdfZHJpdmVyc1tj
bWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHNfbmVlZGVkKQpAQCAt
MjI2LDcgKzIyNCw3IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgICMgVGhl
IG9ubHkgcmVhc29uIHdlIGhhdmUgdGhpcyByb3V0aW5lIGF0IGFsbCBpcyBzbyB0aGUgcGVyZnRl
c3RydW5uZXIKICAgICAgICAgIyBjYW4gcGF1c2UgYmVmb3JlIHJ1bm5pbmcgYSB0ZXN0OyBpdCBt
aWdodCBiZSBiZXR0ZXIgdG8gcHVzaCB0aGF0CiAgICAgICAgICMgaW50byBydW5fdGVzdCgpIGRp
cmVjdGx5LgotICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2VsZi5fcGl4ZWxfdGVzdHMsIFtd
KQorICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhl
bF90ZXN0cycpLCBbXSkKIAogICAgIGRlZiBoYXNfY3Jhc2hlZChzZWxmKToKICAgICAgICAgcmV0
dXJuIGFueShkcml2ZXIuaGFzX2NyYXNoZWQoKSBmb3IgZHJpdmVyIGluIHNlbGYuX3J1bm5pbmdf
ZHJpdmVycy52YWx1ZXMoKSkKQEAgLTIzNyw3ICsyMzUsNyBAQCBjbGFzcyBEcml2ZXJQcm94eShv
YmplY3QpOgogCiAgICAgIyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBAY2xhc3NtZXRob2QgKG9y
IGltcGxlbWVudGVkIG9uIFBvcnQgaW5zdGVhZCkuCiAgICAgZGVmIGNtZF9saW5lKHNlbGYsIHBp
eGVsX3Rlc3RzPU5vbmUsIHBlcl90ZXN0X2FyZ3M9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9kcml2ZXIuY21kX2xpbmUocGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHMsIHBlcl90
ZXN0X2FyZ3Mgb3IgW10pCisgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIuY21kX2xpbmUocGl4
ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3Mgb3IgW10pCiAKICAgICBkZWYgX2NtZF9saW5lX2FzX2tl
eShzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIHJldHVybiAnICcu
am9pbihzZWxmLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkKaW5kZXggN2Q2MjA2
YTcwNDJjOTI1NjNkNjIzNzcwNTRkYzYxMGMzOGM1NjJjYy4uNzE0ZDE2NmM3OTcyYTdmNDIwZDJj
MWM1NzRhYjg5YTE5MGYwNjBiZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9ndGsucHkKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgR3RrRHJpdmVyKFdl
YktpdERyaXZlcik6CiAgICAgICAgICMgRHJpdmVyUHJveHkgY3JlYXRlcyB0d28gZHJpdmVycywg
b25lIGZvciBub3JtYWwgYW5kIHRoZSBvdGhlciBmb3IgcmVmIHRlc3RzLiBCb3RoIGhhdmUKICAg
ICAgICAgIyB0aGUgc2FtZSB3b3JrZXIgbnVtYmVyLCBzbyB0aGlzIHByZXZlbnRzIHRoZW0gZnJv
bSB1c2luZyB0aGUgc2FtZSBYdmZiIGluc3RhbmNlLgogICAgICAgICBkaXNwbGF5X2lkID0gc2Vs
Zi5fd29ya2VyX251bWJlciAqIDIgKyBydW5uaW5nX2Rpc3BsYXlzCi0gICAgICAgIGlmIHNlbGYu
X3BpeGVsX3Rlc3RzOgorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rl
c3RzJyk6CiAgICAgICAgICAgICBkaXNwbGF5X2lkICs9IDEKICAgICAgICAgcnVuX3h2ZmIgPSBb
Ilh2ZmIiLCAiOiVkIiAlIChkaXNwbGF5X2lkKSwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgy
NCIsICItbm9saXN0ZW4iLCAidGNwIl0KICAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3
JykgYXMgZGV2bnVsbDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CmluZGV4IDhjMDYyYzBkMzMxZDVmYWZlYTU1ZGNmOWVlNDIz
MzIwNjBiMjIxYmMuLmNjM2RjN2U2M2NiNGFmMTJmYTUwNTBiM2QwNzhmOGIxNWMwODI1MTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19k
cnQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2Nr
X2RydC5weQpAQCAtMTg0LDcgKzE4NCwxMiBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAgICAg
ICAgICAgICBsaW5lID0gc2VsZi5fc3RkaW4ucmVhZGxpbmUoKQogICAgICAgICAgICAgaWYgbm90
IGxpbmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIHNlbGYucnVuX29u
ZV90ZXN0KHNlbGYuaW5wdXRfZnJvbV9saW5lKGxpbmUpKQorICAgICAgICAgICAgZHJpdmVyX2lu
cHV0ID0gc2VsZi5pbnB1dF9mcm9tX2xpbmUobGluZSkKKyAgICAgICAgICAgIGRpcm5hbWUsIGJh
c2VuYW1lID0gc2VsZi5fcG9ydC5zcGxpdF90ZXN0KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUpCisg
ICAgICAgICAgICBpc19yZWZ0ZXN0ID0gKHNlbGYuX3BvcnQucmVmZXJlbmNlX2ZpbGVzKGRyaXZl
cl9pbnB1dC50ZXN0X25hbWUpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Bv
cnQuaXNfcmVmZXJlbmNlX2h0bWxfZmlsZShzZWxmLl9wb3J0Ll9maWxlc3lzdGVtLCBkaXJuYW1l
LCBiYXNlbmFtZSkpCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdChk
cml2ZXJfaW5wdXQsIGlzX3JlZnRlc3QpCisgICAgICAgICAgICBzZWxmLndyaXRlX3Rlc3Rfb3V0
cHV0KGRyaXZlcl9pbnB1dCwgb3V0cHV0LCBpc19yZWZ0ZXN0KQogCiAgICAgZGVmIGlucHV0X2Zy
b21fbGluZShzZWxmLCBsaW5lKToKICAgICAgICAgdmFscyA9IGxpbmUuc3RyaXAoKS5zcGxpdCgi
JyIpCkBAIC0xOTksMTggKzIwNCwxNSBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICB0ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3Rf
ZmlsZW5hbWUodXJpKQogCi0gICAgICAgIGRpcm5hbWUsIGJhc2VuYW1lID0gc2VsZi5fcG9ydC5z
cGxpdF90ZXN0KHRlc3RfbmFtZSkKLSAgICAgICAgaXNfcmVmdGVzdCA9IChzZWxmLl9wb3J0LnJl
ZmVyZW5jZV9maWxlcyh0ZXN0X25hbWUpIG9yCi0gICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cG9ydC5pc19yZWZlcmVuY2VfaHRtbF9maWxlKHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0sIGRpcm5h
bWUsIGJhc2VuYW1lKSkKLSAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgMCwg
Y2hlY2tzdW0sIGlzX3JlZnRlc3QpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dCh0ZXN0X25h
bWUsIDAsIGNoZWNrc3VtLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzKQogCi0gICAgZGVmIG91
dHB1dF9mb3JfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0
KHNlbGYsIHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpOgogICAgICAgICBwb3J0ID0gc2VsZi5fcG9y
dAogICAgICAgICBhY3R1YWxfdGV4dCA9IHBvcnQuZXhwZWN0ZWRfdGV4dCh0ZXN0X2lucHV0LnRl
c3RfbmFtZSkKICAgICAgICAgYWN0dWFsX2F1ZGlvID0gcG9ydC5leHBlY3RlZF9hdWRpbyh0ZXN0
X2lucHV0LnRlc3RfbmFtZSkKICAgICAgICAgYWN0dWFsX2ltYWdlID0gTm9uZQogICAgICAgICBh
Y3R1YWxfY2hlY2tzdW0gPSBOb25lCi0gICAgICAgIGlmIHRlc3RfaW5wdXQuaXNfcmVmdGVzdDoK
KyAgICAgICAgaWYgaXNfcmVmdGVzdDoKICAgICAgICAgICAgICMgTWFrZSB1cCBzb21lIG91dHB1
dCBmb3IgcmVmdGVzdHMuCiAgICAgICAgICAgICBhY3R1YWxfdGV4dCA9ICdyZWZlcmVuY2UgdGV4
dFxuJwogICAgICAgICAgICAgYWN0dWFsX2NoZWNrc3VtID0gJ21vY2stY2hlY2tzdW0nCkBAIC0y
MjUsOSArMjI3LDcgQEAgY2xhc3MgTW9ja0RSVChvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBE
cml2ZXJPdXRwdXQoYWN0dWFsX3RleHQsIGFjdHVhbF9pbWFnZSwgYWN0dWFsX2NoZWNrc3VtLCBh
Y3R1YWxfYXVkaW8pCiAKLSAgICBkZWYgcnVuX29uZV90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgot
ICAgICAgICBvdXRwdXQgPSBzZWxmLm91dHB1dF9mb3JfdGVzdCh0ZXN0X2lucHV0KQotCisgICAg
ZGVmIHdyaXRlX3Rlc3Rfb3V0cHV0KHNlbGYsIHRlc3RfaW5wdXQsIG91dHB1dCwgaXNfcmVmdGVz
dCk6CiAgICAgICAgIGlmIG91dHB1dC5hdWRpbzoKICAgICAgICAgICAgIHNlbGYuX3N0ZG91dC53
cml0ZSgnQ29udGVudC1UeXBlOiBhdWRpby93YXZcbicpCiAgICAgICAgICAgICBzZWxmLl9zdGRv
dXQud3JpdGUoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NFxuJykKQEAgLTI0MSw3
ICsyNDEsNyBAQCBjbGFzcyBNb2NrRFJUKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5fc3Rkb3V0
LndyaXRlKCcjRU9GXG4nKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMg
YW5kICh0ZXN0X2lucHV0LmltYWdlX2hhc2ggb3IgdGVzdF9pbnB1dC5pc19yZWZ0ZXN0KToKKyAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBhbmQgb3V0cHV0LmltYWdlX2hhc2g6
CiAgICAgICAgICAgICBzZWxmLl9zdGRvdXQud3JpdGUoJ1xuJykKICAgICAgICAgICAgIHNlbGYu
X3N0ZG91dC53cml0ZSgnQWN0dWFsSGFzaDogJXNcbicgJSBvdXRwdXQuaW1hZ2VfaGFzaCkKICAg
ICAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgnRXhwZWN0ZWRIYXNoOiAlc1xuJyAlIHRlc3Rf
aW5wdXQuaW1hZ2VfaGFzaCkKQEAgLTI2NSwyNiArMjY1LDIwIEBAIGNsYXNzIE1vY2tDaHJvbWl1
bURSVChNb2NrRFJUKToKICAgICAgICAgICAgIGNoZWNrc3VtID0gTm9uZQogCiAgICAgICAgIHRl
c3RfbmFtZSA9IHNlbGYuX2RyaXZlci51cmlfdG9fdGVzdCh1cmkpCi0gICAgICAgIGRpcm5hbWUs
IGJhc2VuYW1lID0gc2VsZi5fcG9ydC5zcGxpdF90ZXN0KHRlc3RfbmFtZSkKLSAgICAgICAgaXNf
cmVmdGVzdCA9IChzZWxmLl9wb3J0LnJlZmVyZW5jZV9maWxlcyh0ZXN0X25hbWUpIG9yCi0gICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5pc19yZWZlcmVuY2VfaHRtbF9maWxlKHNlbGYu
X3BvcnQuX2ZpbGVzeXN0ZW0sIGRpcm5hbWUsIGJhc2VuYW1lKSkKLQotICAgICAgICByZXR1cm4g
RHJpdmVySW5wdXQodGVzdF9uYW1lLCB0aW1lb3V0LCBjaGVja3N1bSwgaXNfcmVmdGVzdCkKKyAg
ICAgICAgcmV0dXJuIERyaXZlcklucHV0KHRlc3RfbmFtZSwgdGltZW91dCwgY2hlY2tzdW0sIHNl
bGYuX29wdGlvbnMucGl4ZWxfdGVzdHMpCiAKLSAgICBkZWYgb3V0cHV0X2Zvcl90ZXN0KHNlbGYs
IHRlc3RfaW5wdXQpOgorICAgIGRlZiBvdXRwdXRfZm9yX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwg
aXNfcmVmdGVzdCk6CiAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIG1ha2Ugdmly
dHVhbCB0ZXN0cyB3b3JrLiBOZWVkIHNvbWV0aGluZyBtb3JlIGdlbmVyYWwuCiAgICAgICAgIG9y
aWdpbmFsX3Rlc3RfbmFtZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCiAgICAgICAgIGlmICctLWVu
YWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnIGluIHNlbGYuX2FyZ3MgYW5kICdjYW52YXMnIGlu
IHRlc3RfaW5wdXQudGVzdF9uYW1lOgogICAgICAgICAgICAgdGVzdF9pbnB1dC50ZXN0X25hbWUg
PSAncGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvJyArIHRlc3RfaW5wdXQudGVzdF9uYW1l
Ci0gICAgICAgIG91dHB1dCA9IHN1cGVyKE1vY2tDaHJvbWl1bURSVCwgc2VsZikub3V0cHV0X2Zv
cl90ZXN0KHRlc3RfaW5wdXQpCisgICAgICAgIG91dHB1dCA9IHN1cGVyKE1vY2tDaHJvbWl1bURS
VCwgc2VsZikub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQsIGlzX3JlZnRlc3QpCiAgICAgICAg
IHRlc3RfaW5wdXQudGVzdF9uYW1lID0gb3JpZ2luYWxfdGVzdF9uYW1lCiAgICAgICAgIHJldHVy
biBvdXRwdXQKIAotICAgIGRlZiBydW5fb25lX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAg
ICAgIG91dHB1dCA9IHNlbGYub3V0cHV0X2Zvcl90ZXN0KHRlc3RfaW5wdXQpCi0KKyAgICBkZWYg
d3JpdGVfdGVzdF9vdXRwdXQoc2VsZiwgdGVzdF9pbnB1dCwgb3V0cHV0LCBpc19yZWZ0ZXN0KToK
ICAgICAgICAgc2VsZi5fc3Rkb3V0LndyaXRlKCIjVVJMOiVzXG4iICUgc2VsZi5fZHJpdmVyLnRl
c3RfdG9fdXJpKHRlc3RfaW5wdXQudGVzdF9uYW1lKSkKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5waXhlbF90ZXN0cyBhbmQgKHRlc3RfaW5wdXQuaW1hZ2VfaGFzaCBvciB0ZXN0X2lucHV0Lmlz
X3JlZnRlc3QpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCBvdXRw
dXQuaW1hZ2VfaGFzaDoKICAgICAgICAgICAgIHNlbGYuX3N0ZG91dC53cml0ZSgiI01ENTolc1xu
IiAlIG91dHB1dC5pbWFnZV9oYXNoKQogICAgICAgICAgICAgaWYgb3V0cHV0LmltYWdlOgogICAg
ICAgICAgICAgICAgIHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShz
ZWxmLl9ob3N0LmZpbGVzeXN0ZW0uZGlybmFtZShzZWxmLl9vcHRpb25zLnBpeGVsX3BhdGgpKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJr
aXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5w
eQppbmRleCAzN2JmNTJhNDE1YTAzMGFiZTg1MGRkOTQ1YjdkODE1ZWQyZjEzYjQxLi5hOTFhZjlh
ZDYwNTU0OGI2NzNjYjg5MGQ1Mjk4MTMyOGY3MmVjZjA4IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtNDUyLDggKzQ1Miw2
IEBAIGNsYXNzIFdlYktpdERyaXZlcihEcml2ZXIpOgogICAgIGRlZiBjbWRfbGluZShzZWxmLCBw
aXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRf
d3JhcHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKICAgICAgICAgY21kLmFw
cGVuZChzZWxmLl9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQotICAgICAgICBpZiBzZWxmLl9wb3J0
LmdldF9vcHRpb24oJ3NraXBfcGl4ZWxfdGVzdF9pZl9ub19iYXNlbGluZScpOgotICAgICAgICAg
ICAgY21kLmFwcGVuZCgnLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUnKQogICAgICAg
ICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2djX2JldHdlZW5fdGVzdHMnKToKICAgICAgICAg
ICAgIGNtZC5hcHBlbmQoJy0tZ2MtYmV0d2Vlbi10ZXN0cycpCiAgICAgICAgIGlmIHNlbGYuX3Bv
cnQuZ2V0X29wdGlvbignY29tcGxleF90ZXh0Jyk6CkBAIC00NjYsNyArNDY0LDcgQEAgY2xhc3Mg
V2ViS2l0RHJpdmVyKERyaXZlcik6CiAKICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0Lmdl
dF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkpCiAKLSAgICAgICAgaWYgcGl4ZWxf
dGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHM6CisgICAgICAgIGlmIHBpeGVsX3Rlc3RzOgogICAg
ICAgICAgICAgY21kLmFwcGVuZCgnLS1waXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRlbmQo
cGVyX3Rlc3RfYXJncykKIApAQCAtNTQ1LDcgKzU0Myw3IEBAIGNsYXNzIFdlYktpdERyaXZlcihE
cml2ZXIpOgogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpOgogICAgICAgICBz
dGFydF90aW1lID0gdGltZS50aW1lKCkKICAgICAgICAgaWYgbm90IHNlbGYuX3NlcnZlcl9wcm9j
ZXNzOgotICAgICAgICAgICAgc2VsZi5fc3RhcnQoZHJpdmVyX2lucHV0LmlzX3JlZnRlc3Qgb3Ig
c2VsZi5fcGl4ZWxfdGVzdHMsIFtdKQorICAgICAgICAgICAgc2VsZi5fc3RhcnQoZHJpdmVyX2lu
cHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgW10pCiAgICAgICAgIHNlbGYuZXJyb3JfZnJvbV90
ZXN0ID0gc3RyKCkKICAgICAgICAgc2VsZi5lcnJfc2Vlbl9lb2YgPSBGYWxzZQogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDYyZDVjNzRlMmRiMjZiY2Mx
NDg1YjMyNjk5OTFiYWM4YzkwYTMyYjguLmUzMjRmNTdkZjMzYTZlZmViOGRjNjM5NDVmMjYyYjkw
OWQ0M2FiNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC02OCw3ICs2OCw2IEBAIFRlc3RDb250cm9sbGVyJiBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkK
IAogVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAgICAgOiBtX2R1bXBQaXhlbHMoZmFsc2UpCi0gICAgLCBtX3NraXBQaXhlbFRlc3RP
cHRpb24oZmFsc2UpCiAgICAgLCBtX3ZlcmJvc2UoZmFsc2UpCiAgICAgLCBtX3ByaW50U2VwYXJh
dG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJNb2RlKGZhbHNlKQpAQCAtMjYwLDExICsy
NTksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChhcmd1bWVudCA9PSAiLS1za2lwLXBpeGVsLXRlc3QtaWYtbm8tYmFzZWxpbmUiKSB7Ci0g
ICAgICAgICAgICBtX3NraXBQaXhlbFRlc3RPcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tcGl4ZWwtdGVz
dHMiKSB7CiAgICAgICAgICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAgICAgY29u
dGludWU7CkBAIC01MTksNyArNTEzLDYgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChj
b25zdCBjaGFyKiB0ZXN0KQogICAgIG1fc3RhdGUgPSBSdW5uaW5nVGVzdDsKIAogICAgIG1fY3Vy
cmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVzdEludm9jYXRpb24ocGF0aE9yVVJMKSk7
Ci0gICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0U2tpcFBpeGVsVGVzdE9wdGlvbihtX3NraXBQ
aXhlbFRlc3RPcHRpb24pOwogICAgIGlmIChtX2R1bXBQaXhlbHMpCiAgICAgICAgIG1fY3VycmVu
dEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFjOWYxZmY4OTUxNGNiNzdlZDEw
MGE4NGI3ZDIwYmRkNzY1NDAxOTMuLmI5NDY1ZWY5NmU1N2U3MzVjNDEwNDQ3ODU0MTkzODY3ZjBi
MDVjYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTEwNSw3
ICsxMDUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50
SW52b2NhdGlvbjsKIAogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwotICAgIGJvb2wgbV9za2lwUGl4
ZWxUZXN0T3B0aW9uOwogICAgIGJvb2wgbV92ZXJib3NlOwogICAgIGJvb2wgbV9wcmludFNlcGFy
YXRvcnM7CiAgICAgYm9vbCBtX3VzaW5nU2VydmVyTW9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMWFmZTNiM2Y5MDJhMDk4NzkwNDE0MmYxNjA3N2Rm
Y2JmMWM1NTdlNi4uZTVhZDliNmQxYWRhODhiOWJjNjgzOGJhOTU4MmM0MzZkYWFjOWZhMCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDYg
QEAgVGVzdEludm9jYXRpb246OlRlc3RJbnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRo
T3JVUkwpCiAgICAgOiBtX3VybChBZG9wdFdLLCBjcmVhdGVXS1VSTChwYXRoT3JVUkwuY19zdHIo
KSkpCiAgICAgLCBtX3BhdGhPclVSTChwYXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQaXhlbHMoZmFs
c2UpCi0gICAgLCBtX3NraXBQaXhlbFRlc3RPcHRpb24oZmFsc2UpCiAgICAgLCBtX2dvdEluaXRp
YWxSZXNwb25zZShmYWxzZSkKICAgICAsIG1fZ290RmluYWxNZXNzYWdlKGZhbHNlKQogICAgICwg
bV9nb3RSZXBhaW50KGZhbHNlKQpAQCAtMTEwLDggKzEwOSw2IEBAIFRlc3RJbnZvY2F0aW9uOjp+
VGVzdEludm9jYXRpb24oKQogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRJc1BpeGVsVGVzdChj
b25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiB7Ci0gICAgaWYgKG1fc2tpcFBp
eGVsVGVzdE9wdGlvbiAmJiAhZXhwZWN0ZWRQaXhlbEhhc2gubGVuZ3RoKCkpCi0gICAgICAgIHJl
dHVybjsKICAgICBtX2R1bXBQaXhlbHMgPSB0cnVlOwogICAgIG1fZXhwZWN0ZWRQaXhlbEhhc2gg
PSBleHBlY3RlZFBpeGVsSGFzaDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uaAppbmRleCBhZjlmMzhmYzA4NGZhNjMzYjAyNDE4N2E2ZmI0ODRiNDc5ODk1OTA3Li45MTY1
MjA1ZTMxZWFjMzc0MWIxNmY2Yzg3ZmRiYTA1NDk2MGQwZDlkIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC0zOSw3ICszOSw2IEBAIHB1YmxpYzoKICAgICB+VGVz
dEludm9jYXRpb24oKTsKIAogICAgIHZvaWQgc2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpzdHJp
bmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKLSAgICB2b2lkIHNldFNraXBQaXhlbFRlc3RPcHRpb24o
Ym9vbCBvcHRpb24pIHsgbV9za2lwUGl4ZWxUZXN0T3B0aW9uID0gb3B0aW9uOyB9CiAKICAgICB2
b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CkBAIC01
NSw3ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX2R1bXBQaXhlbHM7CiAgICAg
c3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKLSAgICBib29sIG1fc2tpcFBpeGVsVGVz
dE9wdGlvbjsKIAogICAgIC8vIEludm9jYXRpb24gc3RhdGUKICAgICBib29sIG1fZ290SW5pdGlh
bFJlc3BvbnNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>