<?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>38879</bug_id>
          
          <creation_ts>2010-05-10 18:06:19 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: implement &quot;--reset-results&quot;</short_desc>
          <delta_ts>2010-05-18 17:52:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>victorw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223633</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-10 18:06:19 -0700</bug_when>
    <thetext>new-run-webkit-tests: add an &apos;--update-baseline&apos; switch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223634</commentid>
    <comment_count>1</comment_count>
      <attachid>55631</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-10 18:07:19 -0700</bug_when>
    <thetext>Created attachment 55631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223635</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-10 18:08:21 -0700</bug_when>
    <thetext>Note that the patch I just uploaded does not have any unit tests yet and so it isn&apos;t ready to land, but the change itself is complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224152</commentid>
    <comment_count>3</comment_count>
      <attachid>55755</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-11 14:22:08 -0700</bug_when>
    <thetext>Created attachment 55755
cleaned-up patch, still no tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224221</commentid>
    <comment_count>4</comment_count>
      <attachid>55772</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-11 16:03:29 -0700</bug_when>
    <thetext>Created attachment 55772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224222</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-11 16:04:15 -0700</bug_when>
    <thetext>Okay, the latest patch has unit tests and is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225557</commentid>
    <comment_count>6</comment_count>
      <attachid>55772</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-13 16:20:20 -0700</bug_when>
    <thetext>Comment on attachment 55772
Patch

The code logic looks correct and I agree that this is necessary functionality. r- mostly just due to naming nits.
---------------------------------
http://wkrietveld.appspot.com/38879/diff/1/5
File WebKitTools/Scripts/webkitpy/layout_tests/port/test.py (left):

http://wkrietveld.appspot.com/38879/diff/1/5#oldcode141
WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:141: 
did you mean to delete these two blank lines?

http://wkrietveld.appspot.com/38879/diff/1/5
File WebKitTools/Scripts/webkitpy/layout_tests/port/test.py (right):

http://wkrietveld.appspot.com/38879/diff/1/5#newcode31
WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:31: from __future__ import with_statement
Is this just to satisfy the linter? __future__ is new to me.

http://wkrietveld.appspot.com/38879/diff/1/6
File WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py (right):

http://wkrietveld.appspot.com/38879/diff/1/6#newcode1527
WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527: &quot;generated results&quot;),
This description makes it sound like it will update every expected result for this test, when, in practice, it will update only the result that happens to be used on this platform.

--new-baseline and --update-baseline are too similar of names. We shouldn&apos;t need the help text to remember which is which. How about:

--new-baseline --&gt; --update-platform-baseline
--update-baseline --&gt; --update-used-baseline

It&apos;s a bit more wordy, but at least it&apos;s clear which is which. We could add short versions for easier typing (e.g. -b and -u?).

http://wkrietveld.appspot.com/38879/diff/1/7
File WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py (right):

http://wkrietveld.appspot.com/38879/diff/1/7#newcode106
WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:106: return original_open(name, mode, encoding)
Should we make sure the mode here is &apos;r&apos; to avoid ever writing to disk?

http://wkrietveld.appspot.com/38879/diff/1/7#newcode124
WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:124: &apos;fast/canvas/canvas-zoom.html&apos;])
Should we also test a case where --update-baseline would update the results in platform/mac?

http://wkrietveld.appspot.com/38879/diff/1/9
File WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py (right):

http://wkrietveld.appspot.com/38879/diff/1/9#newcode97
WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py:97: new_baseline=True):
docstring?

I don&apos;t like this argument name. It reads like this is the actual new baseline, not like a boolean. How about save_new_baseline?

Also, if we end up changing the name of the command-line flag, I think this would be clearer. This could be update_platform_baseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225573</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-13 17:01:51 -0700</bug_when>
    <thetext>How does this differ from --reset-results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225602</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-13 18:07:35 -0700</bug_when>
    <thetext>Okay, I attempted to use rietveld, but how do you publish the comments?

Repeating them here in line ...

(In reply to comment #6)
&gt; (From update of attachment 55772 [details])
&gt; The code logic looks correct and I agree that this is necessary functionality. r- mostly just due to naming nits.
&gt; ---------------------------------
&gt; http://wkrietveld.appspot.com/38879/diff/1/5
&gt; File WebKitTools/Scripts/webkitpy/layout_tests/port/test.py (left):
&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/5#oldcode141
&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:141: 
&gt; did you mean to delete these two blank lines?

No. good catch.

&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/5
&gt; File WebKitTools/Scripts/webkitpy/layout_tests/port/test.py (right):
&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/5#newcode31
&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:31: from __future__ import with_statement
&gt; Is this just to satisfy the linter? __future__ is new to me.
&gt; 

You need &quot;from __future__&quot; to be able to use the &quot;with&quot; statement in Python 2.5.

&gt; http://wkrietveld.appspot.com/38879/diff/1/6
&gt; File WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py (right):
&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/6#newcode1527
&gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527: &quot;generated results&quot;),
&gt; This description makes it sound like it will update every expected result for this test, when, in practice, it will update only the result that happens to be used on this platform.
&gt; 
&gt; --new-baseline and --update-baseline are too similar of names. We shouldn&apos;t need the help text to remember which is which. How about:
&gt; 
&gt; --new-baseline --&gt; --update-platform-baseline
&gt; --update-baseline --&gt; --update-used-baseline
&gt; 
&gt; It&apos;s a bit more wordy, but at least it&apos;s clear which is which. We could add short versions for easier typing (e.g. -b and -u?).

I will take another spin at the names and the help text. I don&apos;t think these features are used enough to justify short versions.

&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/7
&gt; File WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py (right):
&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/7#newcode106
&gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:106: return original_open(name, mode, encoding)
&gt; Should we make sure the mode here is &apos;r&apos; to avoid ever writing to disk?

No, you need to be able to write some files (e.g., the images so they can be diffed, or the results files).

&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/7#newcode124
&gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:124: &apos;fast/canvas/canvas-zoom.html&apos;])
&gt; Should we also test a case where --update-baseline would update the results in platform/mac?

I don&apos;t see how this tests something interestingly different?

&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/9
&gt; File WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py (right):
&gt; 
&gt; http://wkrietveld.appspot.com/38879/diff/1/9#newcode97
&gt; WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py:97: new_baseline=True):
&gt; docstring?
&gt; 
&gt; I don&apos;t like this argument name. It reads like this is the actual new baseline, not like a boolean. How about save_new_baseline?
&gt; 
&gt; Also, if we end up changing the name of the command-line flag, I think this would be clearer. This could be update_platform_baseline.

how about &quot;use_platform_dir&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225610</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-13 18:15:11 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; How does this differ from --reset-results?

Hmm. I was not familiar with --reset-results in old-run-webkit-tests (new-run-webkit-tests doesn&apos;t have such a flag).

The intended behavior of this new flag is to update the existing baseline wherever it may be found, rather than just writing a new baseline into the platform dir. Is that what reset-results is supposed to do? If so, I&apos;d be happy to use that flag name instead of creating new ones.

It looks like ORWT also has --add-platform-exceptions and --new-test-results, which look like they&apos;re similar to --new-baseline in NRWT; I&apos;m not sure quite what the difference is between the two flags, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226976</commentid>
    <comment_count>10</comment_count>
      <attachid>56287</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 16:18:39 -0700</bug_when>
    <thetext>Created attachment 56287
update w/ feedback from ojan, eseidel, abarth

okay, this changes the flag name from --update-baseline to --reset-results (for consistency with old-run-webkit-tests), and adds tests for what happens when the baseline is missing because the file is &quot;new&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226979</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 16:20:00 -0700</bug_when>
    <thetext>change bug subject line from &quot;add an --update-baseline switch&quot; to &quot;implement &apos;--reset-results&apos;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226981</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 16:25:47 -0700</bug_when>
    <thetext>Although fast/harness has been used for testing DumpRenderTree bugs in the past.  It seems rather strange to add this test here since you had to make so many Skipped edits as well as hack the path into run-webkit-tests itself!   Seems this test would make more sense as a python unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226984</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 16:40:58 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Although fast/harness has been used for testing DumpRenderTree bugs in the past.  It seems rather strange to add this test here since you had to make so many Skipped edits as well as hack the path into run-webkit-tests itself!   Seems this test would make more sense as a python unit test.

I don&apos;t think it&apos;s actually possible to do this as a python unit test, at least not any more cleanly than this (you&apos;d end up duplicating logic to mock expectations all over the place).

I would eventually like to have a set of tests that are supposed to provoke expected behavior in DRT (one that crashes, one that produces an IMAGE diff, etc) that are actually run. Unfortunately, there&apos;s no way with the Skipped files to indicate that. 

Thinking about it, though, I need to change the expectation in the chromium test_expectations from WONTFIX SKIP = FAIL to WONTFIX = MISSING.

As far as hacking the file into test.py itself, that had to be done because there&apos;s no way for the test code to know whether there should be an image file or not if the expectation doesn&apos;t exist. A more general solution would be a way to mock expected results into test.py, but I didn&apos;t want to clutter this particular CL with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226985</commentid>
    <comment_count>14</comment_count>
      <attachid>56289</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 16:43:04 -0700</bug_when>
    <thetext>Created attachment 56289
change chromium expectation from WONTFIX SKIP = FAIL to WONTFIX = MISSING</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226991</commentid>
    <comment_count>15</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-17 16:59:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Thinking about it, though, I need to change the expectation in the chromium test_expectations from WONTFIX SKIP = FAIL to WONTFIX = MISSING.

I&apos;m confused, shouldn&apos;t we be skipping anything in the harness directory? These are only for the python tests, right?

WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:146
 +          if uri.find(&apos;fast/harness/missing-expectation&apos;) != -1:
No need to put this under fast. I think just a top-level harness directory makes sense if we do need this.

WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527
 +                   &quot;generated results&quot;),
If we&apos;re going to go the route of matching old-run-webkit-tests, then you should change --new-baseline to --add-platform-exceptions.

(In reply to comment #8)
&gt; Okay, I attempted to use rietveld, but how do you publish the comments?

1. Click on the rietveld review link.
2. Leave comments. 
3. Click submit.

It&apos;s a bit confusing because you go to the review page in order to respond to review feedback. Not sure how to make it better.

&gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/7#newcode124
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:124: &apos;fast/canvas/canvas-zoom.html&apos;])
&gt; &gt; Should we also test a case where --update-baseline would update the results in platform/mac?
&gt; 
&gt; I don&apos;t see how this tests something interestingly different?

It tests that we don&apos;t always just update the results next to the test when using --reset-results.

&gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/9
&gt; &gt; File WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py (right):
&gt; &gt; 
&gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/9#newcode97
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py:97: new_baseline=True):
&gt; &gt; docstring?
&gt; &gt; 
&gt; &gt; I don&apos;t like this argument name. It reads like this is the actual new baseline, not like a boolean. How about save_new_baseline?
&gt; &gt; 
&gt; &gt; Also, if we end up changing the name of the command-line flag, I think this would be clearer. This could be update_platform_baseline.
&gt; 
&gt; how about &quot;use_platform_dir&quot;?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226993</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 17:05:44 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; Thinking about it, though, I need to change the expectation in the chromium test_expectations from WONTFIX SKIP = FAIL to WONTFIX = MISSING.
&gt; 
&gt; I&apos;m confused, shouldn&apos;t we be skipping anything in the harness directory? These are only for the python tests, right?
&gt; 
&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:146
&gt;  +          if uri.find(&apos;fast/harness/missing-expectation&apos;) != -1:
&gt; No need to put this under fast. I think just a top-level harness directory makes sense if we do need this.
&gt; 

I&apos;m reusing the existing fast/harness directory, which is used for some DRT-related tests as well (per comments from eseidel). I can certainly create a separate directory if that would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226995</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 17:09:14 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527
&gt;  +                   &quot;generated results&quot;),
&gt; If we&apos;re going to go the route of matching old-run-webkit-tests, then you should change --new-baseline to --add-platform-exceptions.
&gt;

It looked like --add-platform-exceptions did something slightly different; I&apos;m not sure what the difference between --add-platform-exceptions and --new-test-results is in old-run-webkit-tests.

&gt; &gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/7#newcode124
&gt; &gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:124: &apos;fast/canvas/canvas-zoom.html&apos;])
&gt; &gt; &gt; Should we also test a case where --update-baseline would update the results in platform/mac?
&gt; &gt; 
&gt; &gt; I don&apos;t see how this tests something interestingly different?
&gt; 
&gt; It tests that we don&apos;t always just update the results next to the test when using --reset-results.

I gotcha. Good idea; I&apos;ll add that.

&gt; 
&gt; &gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/9
&gt; &gt; &gt; File WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py (right):
&gt; &gt; &gt; 
&gt; &gt; &gt; http://wkrietveld.appspot.com/38879/diff/1/9#newcode97
&gt; &gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/test_types/test_type_base.py:97: new_baseline=True):
&gt; &gt; &gt; docstring?
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t like this argument name. It reads like this is the actual new baseline, not like a boolean. How about save_new_baseline?
&gt; &gt; &gt; 
&gt; &gt; &gt; Also, if we end up changing the name of the command-line flag, I think this would be clearer. This could be update_platform_baseline.
&gt; &gt; 
&gt; &gt; how about &quot;use_platform_dir&quot;?
&gt; 
&gt; Sure.

I ended up with generate_new_baseline, which was close to your save_new_baseline suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227000</commentid>
    <comment_count>18</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-17 17:13:44 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; Thinking about it, though, I need to change the expectation in the chromium test_expectations from WONTFIX SKIP = FAIL to WONTFIX = MISSING.
&gt; &gt; 
&gt; &gt; I&apos;m confused, shouldn&apos;t we be skipping anything in the harness directory? These are only for the python tests, right?
&gt; &gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:146
&gt; &gt;  +          if uri.find(&apos;fast/harness/missing-expectation&apos;) != -1:
&gt; &gt; No need to put this under fast. I think just a top-level harness directory makes sense if we do need this.
&gt; &gt; 
&gt; 
&gt; I&apos;m reusing the existing fast/harness directory, which is used for some DRT-related tests as well (per comments from eseidel). I can certainly create a separate directory if that would be better.

Oh. NM. I didn&apos;t realize the directory already existed.

Anyways, Eric and I talked about this in person. Instead of using codecs, could you create a python unittest by doing the following?

1. Create a temp directory and populate it with a few dummy tests that test the cases you care about.
2. Have the port look at the temp directory instead of LayoutTests.

Then you could actually just have unittests. They write to the real file system, but they don&apos;t need to do anything involving the real checkout.


&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527
&gt; &gt;  +                   &quot;generated results&quot;),
&gt; &gt; If we&apos;re going to go the route of matching old-run-webkit-tests, then you should change --new-baseline to --add-platform-exceptions.
&gt; 
&gt; It looked like --add-platform-exceptions did something slightly different; I&apos;m not sure what the difference between --add-platform-exceptions and --new-test-results is in old-run-webkit-tests.

I think --new-test-results is whether to generate new results if you run a test and it&apos;s missing expectations. old-run-webkit-tests does this by default. It&apos;s like --reset-results, but only for tests that are currently missing expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227016</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 17:34:26 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; I&apos;m reusing the existing fast/harness directory, which is used for some DRT-related tests as well (per comments from eseidel). I can certainly create a separate directory if that would be better.
&gt; 
&gt; Oh. NM. I didn&apos;t realize the directory already existed.
&gt; 
&gt; Anyways, Eric and I talked about this in person. Instead of using codecs, could you create a python unittest by doing the following?
&gt; 
&gt; 1. Create a temp directory and populate it with a few dummy tests that test the cases you care about.
&gt; 2. Have the port look at the temp directory instead of LayoutTests.
&gt; 
&gt; Then you could actually just have unittests. They write to the real file system, but they don&apos;t need to do anything involving the real checkout.
&gt;

I could do this, but (a) this would involve writing more code in the unit tests module to do setup and cleanup, and (b) it would be slower - you&apos;d actually be creating, writing, and deleting files. Mocking out codecs.open() seems pretty straightforward, so I&apos;m not seeing much upside to your idea. Am I missing something?
 
&gt; 
&gt; &gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:1527
&gt; &gt; &gt;  +                   &quot;generated results&quot;),
&gt; &gt; &gt; If we&apos;re going to go the route of matching old-run-webkit-tests, then you should change --new-baseline to --add-platform-exceptions.
&gt; &gt; 
&gt; &gt; It looked like --add-platform-exceptions did something slightly different; I&apos;m not sure what the difference between --add-platform-exceptions and --new-test-results is in old-run-webkit-tests.
&gt; 
&gt; I think --new-test-results is whether to generate new results if you run a test and it&apos;s missing expectations. old-run-webkit-tests does this by default. It&apos;s like --reset-results, but only for tests that are currently missing expectations.

Okay. We can certainly rename --new-baseline to --add-platform-exceptions, although I think this name is not an improvement in clarity (nor is --reset-results). And, in this case, there may be Chromium people used to --new-baseline so there&apos;s a minor compatibility question.

How about you and Eric reach a consensus and I&apos;ll do whatever you two say?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227024</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-17 17:52:43 -0700</bug_when>
    <thetext>Thinking about this a bit more ...

If the primary objection is having to put test expectations into the real tree for this, we could create a separate tree outside of WebKit/LayoutTests, and point to that instead of WebKit/LayoutTests/* (i.e., test.py would override layout_tests_dir()). The files would still be checked in.

Also, you&apos;d probably still want to mock out the file write() calls since overwriting existing files could be fragile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227523</commentid>
    <comment_count>21</comment_count>
      <attachid>56416</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-18 15:37:14 -0700</bug_when>
    <thetext>Created attachment 56416
add test for platform-specific baseline, refactor into two unit tests, one for each switch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227565</commentid>
    <comment_count>22</comment_count>
      <attachid>56428</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-18 17:11:26 -0700</bug_when>
    <thetext>Created attachment 56428
okay, use a separate layout_tests_dir under webkitpy/layout_tests/data to isolate unit test data from actual layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227569</commentid>
    <comment_count>23</comment_count>
      <attachid>56430</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-18 17:13:13 -0700</bug_when>
    <thetext>Created attachment 56430
lint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227572</commentid>
    <comment_count>24</comment_count>
      <attachid>56428</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-18 17:23:58 -0700</bug_when>
    <thetext>Comment on attachment 56428
okay, use a separate layout_tests_dir under webkitpy/layout_tests/data to isolate unit test data from actual layout tests

WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:115
 +          with codecs.open(expectations_path, &quot;r&quot;, &quot;utf-8&quot;) as file:
can we just use regular open here?

WebKitTools/Scripts/webkitpy/layout_tests/test_types/image_diff.py:84
 +            generate_new_baseline: is this a new baseline or an updated one?
This description is wrong. Makes it sound like this is actually a baseline, not a boolean. The description you have below in test_type_base.py would be fine. Although, I still prefer these descriptions to be statements, not questions, e.g. &quot;whether to generate a new baseline or update an existing one&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227574</commentid>
    <comment_count>25</comment_count>
      <attachid>56430</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-18 17:24:54 -0700</bug_when>
    <thetext>Comment on attachment 56430
lint

r=me, but please address the two comments for the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227578</commentid>
    <comment_count>26</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-18 17:31:17 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 56428 [details])
&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/test.py:115
&gt;  +          with codecs.open(expectations_path, &quot;r&quot;, &quot;utf-8&quot;) as file:
&gt; can we just use regular open here?
&gt; 

We probably could, but the other files use codecs.open() and I thought eric wanted us to consistently use codecs.open() all over the place. I&apos;ll leave it like this when I commit the change; if eric indicates that it&apos;s okay to change this to a regular file open I&apos;ll do a separate change for that.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/test_types/image_diff.py:84
&gt;  +            generate_new_baseline: is this a new baseline or an updated one?
&gt; This description is wrong. Makes it sound like this is actually a baseline, not a boolean. The description you have below in test_type_base.py would be fine. Although, I still prefer these descriptions to be statements, not questions, e.g. &quot;whether to generate a new baseline or update an existing one&quot;.

I will update the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227591</commentid>
    <comment_count>27</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-18 17:52:32 -0700</bug_when>
    <thetext>Committed r59725: &lt;http://trac.webkit.org/changeset/59725&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55631</attachid>
            <date>2010-05-10 18:07:19 -0700</date>
            <delta_ts>2010-05-11 14:22:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38879-20100510180718.patch</filename>
            <type>text/plain</type>
            <size>20771</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwva2V5Z2VuLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwva2V5Z2VuLWV4
cGVjdGVkLnBuZwppbmRleCAyZjBjMjc5ZGI1NjE1YTAzNmNmNGE5N2E0Y2RjNzc5MDM3YTMxNjc4
Li43MzljNWMwNjQ2NTljZWQzZTUzNDMwMzFkNWYyOTVhYTMzNGU2MzUxIDEwMDY0NApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgNjkwMQp6Y21lSE1YPEprMHgoLUBwRD1Pe2ZSVkBtbE1XaVQwQkBo
VHg+XyRhNDNkZHRERzZyUTU4Rz9pPEtvVzwmckJvbW8KekRoTDVtM3FzdXAkUH5zOXM0XyFSS25W
I0RMX3o9PUxJd3lTKHxLM19LPk9pKjxsRDsxOGxIN09fd2MtSHJUPnFJCno+O0FuKl9RR0pXe2Nl
fWV8MVMpLV5FZUUpPEhrUkJnRk9XYTRgTmBqQlctVHl6eHpJXmFBaGp4d083MUtDfU93Mgp6KXwk
KXhDR2QzVilxazBxOFhSMT15TzIoSHYmR2h6b2VIfSVBYCgtfC1pZE9yanNAUGlvdl9VQjMkYEJr
Q2pOaioKemA2U0VjRFQ5ajAmOzM1PGA9MU9YeUZYcTtFYm17UWtTVmBRQzYwN3xfQmlubnNiXjNm
TH1ZS2hZR19YcHFRPGJxCnp2OH00eWl6VVBWZldnaylBMHRZJkt1SGR8VDAzQntwVDdWX3A0MG9R
JkhSbE9nUzg8SDBiY1AjV2swdGVCSnIoZwp6JX1QZXA7RGFBRVV9ViVROF8oPWNWPDxLQG51SVkq
ViNpZjIqYyQ4QzdzSSEkWCgzJH5PUCZsXnczPH5IaTJ2S1IKel99VnQpX2tadGsqY3dtTF5OSDJg
djx6U1RhPjhsVmxUXnR4WHc9eF9vc05uI21wblkmLTNKY1gqfjRHfnQyRUBmCno9eXRpXzZgSjhK
Qio8RmZzaGV4e3czZyhFRmxsODl3TGZBKmsxO2lpa25SdEA7ej98bUgpIzRaKmNyXk9gOVlxUgp6
dDJWNC1VPCU+eUtGVmgyWCYqfkVFPS0rd2ZWT2pVT1g+TFdFTjRXKEJsfWlHVUJhNlY5U2NxOE0r
I1FqJTB1emoKekd4MkBnJSlTYnFvejNHenN4WVF6KTdMOFU4Ukc9KFVlT1JqYCU9a3BaJTQ8dW1l
eTlkb3Q+M3xmaUtsPWFkbm0xCno2MkR9MV92NzBXMTdwPV9Ed0R9dlplUnlZO0N+QCpqWiRsNnlj
RXJRX3ImRG48bDM4Vzl4Yy0qcTleRjhOOyF1YAp6JFBGdlRvJDRfcERpTmZgI2xebF41fnxvcUhW
SDNyQzg7VC1vNVIwZSRWV3VebHpDRnktX0k/TFJsMXxtPW02MUEKekQtNSR3RkskZHdxfHp1biQ1
UG1RaEUxNEpXXyQlZDBhd3JHIXU5PV52fV5CN29nPnRoKjtGS1JONyF0V2IxKyFLCnpLUGBfTyYl
OXtsQDkjZzkoez15O2VFfVEyKXVIWDJUfiQ+VDdaK0VgVjQhcGtUTVRaQkM+Q3Qqd3hxajwleCt8
eAp6VU1tWnA/YXVVV2luKkQ8M0NUMD5NJnNBdEwlI159MFc8PXdTbzk8byRSK2IoJTFzZSZiMCFU
dFdXJGJKNF5FQVYKemBGNmYyRitlYXgkPWp1S2h+TE9pTU9EIV54Qn5IR2k8V1FQI0xYPGMxelBw
VnQxZ21MPmxncTJJJnF5b1AxTEJvCnpYXzRNTV4rcUZPb01kfERoZ1pFT0QwIWI1eTRfSysodWg4
bXl6cEdRekNQIzAqbjBtc09CSGQqR04yR0ppcEB+Mwp6YH0qXl4reVdob3JzRno/JXIzZFFfRHQ3
VE43WTJuMV9EQjR2TkRlKiRJZjEtZFhPaVItZ257RnJFbFA9e0htY2oKelJjNyFuITxYRUJNITA5
cTAzZHFFKndVMm0wN2gwNSk7bVhUVFUka3J6cGsmWjR9U0Ejem4qaHkodzBKel9OcDxrCnpeTVBQ
ITV3dDVieEBFRGZATlR6V3hiPX17S0gwckN4UWA2QUd+WDV6NUtVaG5ZdHlKU18/SnZlZzZPZVhL
JTFRIwp6Wkc3WHdFKiZjanVrQTlgKn54WX42JnV8Jl5DKSNqMm1NdjhhS010YG41R3xsRFBieX16
MzskKnZmPG0ySEFTN0IKem9kT3o0YGRsfDhDTUtwckkzdVVnaVZsbTFOZClVXiFnPlcod2EmSGBs
RHVuZmJzO2lVNWVTd2V7ZmA3TG11blRxCnpFYzhwN2BBPEhJc1F3ZCNjRmVhJjY9fVBCOE5edikk
ZCEzYGMhWGhZKSUlTHQmRiVfRzZ7KFF6KklyWm9xP3wxKwp6ZjYtdFpXdzY1T185ZWshbn1fUiRz
TzJxayN1ODtgQFleNTFhMmVDSGpyTm5BJDR4ZmZePV4oMDBib0ZseUlmPiUKejZWI3BJTWtFcm1r
Yi1CYU9UTj9uPV9iWGBQSXxXe0xAQHp7cTBTPWJlIWZQdDt+YUJKanlxKVReUnI0ZWpnbjBoCnpp
OURzaTdQQjYjT3FvXiQ1WWA/VkxmbWAhQFMpMyZTLURwMWZPJXVFVHMoKT1DP3o+M3kjakN7KDN5
SjxwNW91egp6ZDd5VndHPmNXcz1mZVFRQE9YVWwrVjQ3YjBET0pJPThTd0t1aWN1QCp3QSZ9M3x3
cyR3aHZObHREQSk8Xi16UlYKelBfYVpZdCNMbD1BOXN9fSZUWnN4RW1nQlhnKmxZeTdTcU9RTGRz
WmBLY3l0Z3t4bnJCRSNve2FFLW8mX0dMaGFiCnphcDkqdGl3bDd+TGhtVT5CO3VmbnZuWDlFbD9G
MmxreDBvUGUzWnY0RStJTUY9bFI5PFFIM2x7NFNlcXNWcWQ3cwp6Xm9NTUE3OyFCcFUpQVh1RSNn
WXB6RWtrKl40Nl9VRjFiRndOeEJ5bjd9aFlQUmcycXdrYHFVRF80SCl2UjRLLVQKek5PTV5adEcj
Jik8eT40c2YqPWoweXhFOylLbWomI2w1JEg+b1UkNURBYT9GTCV6dFI4NEQ4TyglWWhpTzxRQlda
CnozN2h2OUNWUTxtJjFNYmUhJWc1fSUqazZndkxoJk9hY09Dd3okU3RtWGBmRX5hOT14Q2tST0kl
JVlrfDR5d09FRAp6NzhNbCV7Iys8ZHtgMzt1RkJBWVMyZylsdDhyXmlfT2AweGk5O0p+PkgjVy1a
PmZsYUpQVHNZX1pxQVo/N1hSSGYKeiYhSWdnaDFwYWstXjlnMiVOSyZeXjBSRVdvS3lSZXczRlRx
Y2RqMnhgZnkpQXtAcXBSNnYhWH1NRmV6WFMzYFc5CnpoeTd5ZGEhdD4lPGB2cFJFa1UpRkRyPW57
SV9UOzZxPmtuNkZmfSFgeFYkezVsdU5NVUs5bClNM19nTnN6d2A+eQp6aT8oNUUzXzFBU1omJjRW
N1AwdXt3ZXNpKk9SNGNFP2pIcUk0UCQtNnNjUUk9NTRvTzNEe1RsO1A+cHVMSXY5XnUKel9HWFdi
alMwTElJKnU4dXE4Pnc1XkwjUEktSTh2dHRzaXJhZD9qeUIxQzUzZDhpaXZwN3k9X25eem9Ie0Qq
XyVtCnoqeFVjfjRFKTx+diE5O3ZMU1ZqVWkyS2lBS2ZOcTNZaXpWLWB6UUp6dXdWRV5LVmBZYmNO
cSlOJUQyMEYzIyo4Vgp6aXBxRHkjZDxpKWAydUBlVVEhVTIlMGQrellCcWIyOyQ5PCkhZVI1bkwm
QDQzVTBiJXApPE93KEBAfGlAOF5vekYKekRuNmxpWGNVfTJMPig0ZkBAPFV2azhZbUpFc1g2cTF4
MnhycjdTPFc9N0ReSDRFXi0oQn5DaSpTe0p1Q1FzMi1wCnojfGZoajEqRUp6Tzw4Uj1zUzlIPGY0
Zj56dDVHWSRgaFBZSmtCRCN3eGlwbkhUfnJnKUJrMHNOeXpKJVcxdH4hdgp6YyY4Zn5ebDB2aD4j
QEgyQEtNXmoqQV9ZQjImY2ZgSEJ6JiR5U3JWeiZsO2d4ZDhWWlc4Xj1ZbGpjPUhubi02VnsKemJO
OTE2UUt+cW80fWpzdWBEY1NKTzRnMEM/N2p3SmhRU1ZnZFM4Slp6blMpO3F7UFY2U3N1SzVfaWl6
V0dYJE1aCnpfcFNAUVZuTFVWX0AlNWc7NlRmM0xHXnhqeVN7V282eEV8YWpec05ldHt6ZXBmbjU4
Yygmem1vIVBuUWZuYEFpYwp6aTFae28yOzF1OSZMQ280VTB1TnlNfX4pTXkyZ2hGZlZ0NmIoMnpj
QUZgWGY+c3FYdmxeJFBKSEYxantoQyF3cjgKelFgUGpmcDw9d0o7QXxha14yM0tmczJ5IUhgIVQo
RGRrcGZmbVJ6KFVtTyZNRVhDN3R5SE5KUlp5dDErYSNOcURnCno9QH5qeUBEeEk4YkMkJlZfbncw
Vk9IUFhBSV4+NllJfTxpRDdoMUQhYk1EK3plbmVGYjchczBHQm5uZSloQjE2dgp6Q05kdmU2aSFS
T1YxYDFlM0w8e2JuQmReWSVBJHFoTD4+KylkVjNJIzYlM2pPcHc+RWVOX3ZlKnJSQykmQVZVWkkK
ejZRYGErPW91SW9BbTxDUTs5ZUB9RDJ8b0YlbFZKYTtadk1BP19xI3ctUUMmbGpBS3NydHQmTCZq
WSV4KWdyZTlnCnpxYCVCb0dOMW8rLXR9IUxDQ242JikrSVJwJXFiOy1YKlpqcCsrczY0ej1RbDVK
RUJhQ2VyKjh4YTdNTEB1OUd6cwp6RCh6cXdLaWxPJS18TCVpM2hHWFJUTXUhNTloeG1wYGp+RiFP
RWE2NkdaUk9xcmkjPlJ3ZV51cUZhKz5fRTZNN0kKekM9XjY7TFhlIWRacyhmJjx+QyNKTHFFUHZN
fXBfNk9PPVpZMzBzUlVncENUWFlObTg/Rzt3cTEqTkZ4a3ZjS3lBCnopcyUrQkZgMnRCUjAkKCok
b3dBZHBFZWRjMnFTITcqP3YzVGAtckNvOHZUPUU+R1Y+KVkjTlFXJihKeWJAZjxXcwp6KHElbCMz
LT4laEt9M31zZDljWEFIVjtqfWsqXnAmT2NgLUEyQCYpQUFUUjRXakNLcUBOfER2YipUR29BdU9J
YW8KelExRTIhJVlmbkReeUdNcHJWa0hKJSN0QjxtYUFuOXM7cGZgQU5tfXBQNmpFcXhpO2YjaEZY
NjhNKlB3ZmU7VF5ACnoyNilKfVNwKHJFM2BVcn1QU3phQXUzWFZYcGNPdCQoM2A7bW49e29aUSVr
a0N4Xy1KYD8xJSkwWGVlJnFuN31aZwp6ZTwwbnhPK05eNktTWnNSSD4pLSNCczAyMUo4MHNgdml0
YT5lJXY0NTtaYEVoNk87Ml4/YyUzfTNFWGhWQH5vbUsKem83el5RRmF0ZCh3TWU8KGl0NEJFcS03
Y1UkWEgpdWt0TjUlJGZ0SlQkTEImfi1XU3pfSEhPVzBqflVZUndpVEU4CnomPUZAdlI4NlcyaFJF
Z21qRS1eZD9FVlpFWGZpZ0Vebn5SU1dxa3hQQHpwajdeRCtmdEtIRWNMMFl7KjFuY2xFMAp6MUZR
b2MmcSkhfDh6Y05jTmRIamZtay1yTGo0dkFYTF4rfEE5fWpFRnZ8JnR1d248Xms/fXVhJmspK2t0
UlkkO0kKej0laDVxZEE/PChjaXBMPW9+JGNtTjcqRDZuZ1h5S0YhWkM+QEs5c2BNX3ljNTAwM2U8
UCU1Yig3enswMjc+cVFICno8aXFPPjFIfSRTeE9NRShePzNuWmxNd0VzKT0jQ3glY1NMITxfMjdC
U0FrT1c5TDErbD9ZPW9eO3Z2PWw5OEFATgp6azlTfEhUfDYmO2JUcW1iPFFSd3FNZXlMV3Z6QUUq
d0BAUD4jY0Z7cnB6eFMqNnVjfWk/bXllM3BPWCZ7NkZgT3IKenZOMzxEczxrUUBGKGJVVyFmayo/
QGx2Oyhle0QzYio7ZVd+QnElSk9iNj1tcFJhS3lmc3IpYGluVzdjRCZjUllkCnp5ST52NkFqO2Bt
e041KmVYSyRVQ2pKXno1SUY/UFUyaDZ+P19GVEBsR0cte0lnYjV3UEA0Zjt2Z2R8K0A8d2Vycwp6
ensxJUgmRjdzUHc5ZCRkI2VyVTR4bnY4VXRQYkN5MyVrZHRqQHB+T3Y5U1NoMWcrVShqezsjQ2tz
UVV3TWF2UXYKeldePTdRWlhiT1l8M1h5S0QoOTdhJTk0eXloSzF0IU13U0Q1KjEkJkVxRk8jWDww
ZVZ4Qn5IYkE8eXhZN3NhKUkwCnojfntVKSFHTXd2KUdwfngyOFRJTT1wWE1ab0EoMFE0RCE2IyZD
ODNPPCFHVnElRnUoSzB6eWMheDNeRSZibHRUUgp6d2tCQHkqUSlnZmlReFdLd0AwSnw5dD93eEhg
N2FEVjlsM2c+Wmh+d1o/RjBPYSM2VF96fjVYd1p2KFhyKUwqfTIKeio9RVQkT1NXMF5jaSV7RXQ3
VGcpK2lLWlglaXM4VHYyN0xxNF58PTk3fiRtaVdxWGhHZk53YEl3K2tOVXROdDFJCkc7UXMoZUI2
WntkCgpsaXRlcmFsIDE0ODMzCnpjbWVIT2BDcFAqYCZQP3heNHJ2bT9XUTw2V203M3JuVjFgeW02
aiYlVDVoR09sX3tkKDBzPmxUamhaeC14bDNqNAp6aW59TigqZTIkaHh1REB2cCkhSSVybDlPRXow
PnYmZTFDYUF7S25gMG9jbk58Yk1FYFB1bHN0PV5PdTlZXzFaUHQKeikraXx7dHZ6WFQldD1YVWde
clN2aWlnQE54Z3smfFRBMThtZGRiU2w7aVEkN2p6YyYhQFkwbjRDOGNRUGche0deCnoyT1R5ZiUy
TktnUihHd3FlJClNVE4wYU16VEQocWpwazFtVHt1e1BNXm08MiFWTU5maigrQnJ3WlV4LTN1XmJi
ZQp6UDB8RzFPNVhGfkRBNklUSz5oRWR0WUY4THUhMEA4ailJKXBXeExwUmQpJEQoMyZNTGJlWEsr
ISpMQlhSez5LZl4KempyMkNaIVdUI1deRChYPVRFKF40QD0mOHdCQk1fNFJ9cmV2JjROKW1PS15B
K1A7O185aUttc1pUbz1OViprYiotCnp0VVNJalBhdXFlOXh+OFNOamt3d3kzKiNrYktSO0lfZk19
ez9pSjE0eTVQUyVaSXxpUDM0LTNKQ0NTbiFZd2k1Rwp6VExhR3kjKzRkZjRvez5YdSltPCVSQi1W
XksofUt9WHdtNnh2el9jcWVPbjM+QmA0NHdYSXs2YlZVO1VfPEJrTE8KekhZbCYjKHlDczUqMD1p
NXB6PlooZTZ7e1lUSGd+ZXBkZk9yPiZvY2RQM099NUA+IzJyI1ImN048IXlnUClWbTFiCnpXaURB
d0o9QEZhbkVATmQ5IzttT0A3JHxYMz54V0tlcyVjbHQ/UE5RdUlnZDtCSWJObVVLbDcqITc3XkNO
P217egp6ZXtGamh3MFp8KUcmRjRiPHNaR098OHlLS0A7KyNLcEs4UHNNcG9vbkAydn1eVD9gI2Bk
UWMhUmZKN3dkalhreWoKemBIJD1nPnlANXVON2gjJSpMYHs9LU5DcClLdDQkT2ApY1hFK0c3VzQh
bj5QdG5fdTBZTFQtKEtmU1RmfEY3NHczCnpucEhMWi1CQypgeDZqc0E4MjI1JnlhVWNaQ3N4WHct
I0dOamRmTSFGWjFsX1AyTVZGITJYRTdMcn5gUnNkQzRiRgp6Pm59Q3JaZV9tVGRlV2BAcHExQUE4
OG15LS0yK15jJU4qa2V2WXkoOGopPzd2cz4mS2hUcURFWmB4QUMmeT15IUUKel5IemwyOT1vI3p6
T09Hb2RwPUx6cXlLd25eUyhYQWtDe2pkNXpfdSkreFApQTs0dik0QFBZMHtwe1hRV2RWKlhzCnoq
LSFRPDBVRWxQPjJlJGd3dmZmU3V6PGlid15LOStjaGtHRnR9VS1CM25gKT1lSzM2OSN9ZVhtV154
MUd6fjhxNwp6aCYwVCFAPUFmK0J5TTxRY1k0Yk92KGZyRmwxOzwlRV4lemM9JXlefmRTSV9iTiFi
KTRLVUZLVTkxU3pfU3twMkAKekVqI3o3cnRJVT8/Sz1pJCFIQDgrcHB4OyskOzFefE1CNU4mJm1u
c2YraHIqfFlCQWh4bXdpb1dgY1RveF8xZ29CCnpadVowam8tMVhXKEVHKGVfKW5nVmdeeWxnRTxX
b0N1KE1yR2VhOG54KiQ5Qip3YU4oXypUJmtLbmtwJmpENGpmSgp6PUBQQlg5Kj8/SDBCX1IhSU43
IzdAcSpqYC1CUnhVI29hRldyeVlTVzt7dFo7bSVNVDYzUUltKCY9JUwhb3p6R34KelNuNkI0KnVt
Iyg2NkkhaGVUYGs2K2RXb1grbVUlYkB1eUhRNVEjdSR3OW4yPVdGblM3OW99UlEhN1pCTXhNQ1Bk
CnpsREQqJmd6NUg5Ujk5QTZza1VDe05TdT1WTT8tdkRCPDxae0d1MG9CeU9kUjVmTEghRkRsPC17
cmw7OGFtbWZ5MAp6eHJKSHJlSUIoZDJiRVBYV0lHfnZ7TlQxPnk9PkxEZV5PZ041fiNBSyF6aURC
Pjw3MnFJP31hWSpDSFFVKXc2UUwKem9zYmpremtZREBYITUjdDRgTENNZ1hBPlBLT19UdklOc3dI
TjhVfEpROX5vPXIpeS1SRFZtY1AyKFpganE3K09fCnp8ODxvTzxeTWpLZTJPcipzKy11S1EqKzt4
K0I1TyMwVV5iY2pWaH5fcTQpcSQlbG96STtVTDBLOHB+ciNlT3I8Mgp6bkFRTCZqez9wQ2xmdkZZ
RDghLVFfTEYqTTBwJVhtZXh1bTtLWXY+Pkg4eV9kPH52eF9vSWt5JCVSbSMwOUhZMH0Kem8zYWZY
WHVadEB5a0gpUHhzRkElZmN9JU1wO2RGSF8lbnBfVVgyS2V2MHp6ZCZaazghIU1iaE5gU0FUNFNB
NTtiCnp3bk0oPlBJMyMqNUpKYjdwUlBteXNWeTN6cXpafVg9K15NKnBRJlBZTlkkMTIxcHt4ZWZs
dXhHSj1+PmZYUndpVwp6YyF4OG44Tzxpe0h9RWxTdWkoYDg4QmdEclpMdFFSK2VYZj5tTChjcHxG
cmhZQXNsSUp5UV4tfnN2Nyh9YVZgQ2cKekVsXjduZ3hfWSRYPFJsWEZvbWBUTyY3K2RjN2FBeUBU
bWBUcTkkVktHYSN9Y2tReT9waTRvSFE2I1k8R0dEYkxACnpKNT1WNUpycTJnIXQje35KclJ2Tnk9
QSVGKmRRPyppcVhXUDd4VUF2aWluT3FBQihffU9Kaj9MQWd5TEROcHpQUgp6PHE5Jkp6VkY8dyNm
XyVHMitpWG17bl97N1kwcF5SUHlzYWc/NG1OXlZeMTs9TX15KCpfQypUYmdVRSZ4dllDOEoKekZM
RXF3WmZPIV57dFZWMXB4TkcoZXF+RkxTTDMqRzZwdWc5eXs1eDJpRGRvWHM4dzZ2djEhQ2x4I1I8
XnxNPXp9CnpTc24zSSN+Z1hAZkVvSnxCcztYM29AJCFQVl5PaXxRMiR1YlNBaU5vdXVZMmM1WEAr
Yj5CTjVpMWQ+fUYkJG1SYQp6Xm98QDJ4T2RaLSg/fkRtJTBBdSU9ZzZjNHZWPVh+NGtFITJJZ3tj
VTVaIztgKUF0ekk0aGtKSlBCbWNgJm9rWjAKejJ0KiFFRzhhVWJhNHxBNXoyKEVrJF94QCghdHc9
QUVSbUxPYC0ocW9yalBoemJJSXN4QVcwX1NMSX10Z3k0dXd2CnpMKW8kMW9RVTQ3Sz1nYnZnXk9O
bGhHbztuMD54cW04MFR8QUhsK3Qxb3I+JnwqZnpQWWlYdHVLWmYqXjMtTio/NQp6QjFoe1lueE8y
aW94en5nTG82ZDhFfF4tYnQqMCQyb3Q9ZjRAaVNudz01Z3A7LURSbyhIcnpLSkBPKF5yP35JZiUK
em9AIzAqdnY7ZEYlWSYjLWkqciR5VXZeQXF5PjhWQDZ7cVpCXj5ATmNATFhkcj5uK1VmY2xLOz9D
JUhWJCRqeTtICnorZWB8Sm96ZXd0MXg3enJGQkZrRUBKZGFiWHBCKnF1aV5UdWc9N3xqRXdiUnIk
Z1lnVjBTSktTKktEODtYeDZSYAp6XnxlLUZuJSFUQVMkPENNZnVhfUVhRUtPTzF5cE9QZzwoIz9I
Ki12KVpVb1g3YkpQSnZCb0p+ZyRjKDtxQVlfdmQKemQyfmZEJUQ8WCZXLWdNfjhVei1OKGk7ZV4/
QiNjPiFOd1QwVUR7b0piQmUzXiNHSSZCN3ZqentyYXtTKT07aH1DCnozbUBzSGJqYjBMTk9BPl81
eF9EXnRzbU5qemJhVXxDIzV1Z1kkNHhmR2JYYTRgVVErc1hOWHpvX0R8KmNHdGx9LQp6ZHxlTGV5
fENKXmQ4NUJiJWlVaGs/S2BYZjZ7NnlVWkAxbERWe0BxK098O21uVzZFdD0yKCtRTGFeTVcjRmUo
KXoKektoK3tLd0xjTlg5fVN3VHJmM2dMMCkoJGByaGJsamBiaH1sJkVnaWAtejAxOG41bkRCSzIk
eWJJVUFFZ3RlSSRjCnpmbSN0SVkkJXZ7PiYxMkwjZlBXeXhWN2A2ZWR4JG9MNj5oSHpVK2c4T2gy
fXRSMjNKP2JqRD8reEA8PStfNzk5dAp6M1ZOZ0xgeThpZGV+eE49ZXptUnVVblV4KVdpd3gqKHV6
ZG1Ucn1PQWk9WU9BPnQrMnx2PnsxdXV8SXheS2dNZj0KekZCU3paNF5eVE1HMWE9MlM4eEF3PDkr
IUZXSUc9PVchRFc5VmheSTx0cEZKTkBKamNsWTdjcmdgVXV+b3J2aFpsCno2IzRAfiVrPFNKNF54
ZVk9czdWbm5lPHpfc1RtVjl0X0F0MENPWHNoUW1uSzstRW1hcUNNYHJYYUVmZmJZWUoyMgp6eWN9
bCZgOD51YDJ4Zms5QCk9alpXbjU0T05+cn4mMTx3ZDZVZGt7STwqMSZvIytRPFVLZG9ZR3BpYEA+
bGk8dlYKejhDMEp4Qlp9WHohKSk8Z2V6dioyY35aaWUmQjBkMlBWYzNnUEA4JWU7cDBWfWNDQmlh
M3prZUw9eCskJjBNMjZMCnplU3xWdGchVyMjbzhFRl5kdzlvaDFONU99aiEyJGgqPFFZY2tfQUtO
JWNYP1BKfDM5ZHpfTlFZRUxHdUxjPkM1TQp6SkpyWTkmOGM/Y1gmQCQzeUorRzdaeXQrQEhLfXAz
ai0yP0kydWtTIWw0RlZaJG5wPktTPTUkNXYhJGohRWxCSksKejRHTlZrPEBIUmN4Q0sxdz84PWlE
bjkoYWRGJVJpe0lkOUs0VWkzNiE1LXNZJWN7LV9uY20rWCFZTWozZkhNM2FBCno/NmJvZUAjVGhh
djdpcj0kRkhQTyQ5UWdhTVB9MX4oQiU7UkZ9Z3E1JEZLKGBGQWVAQFZUQUVXJX1NIyUzbT0xTQp6
Rn5RPVB7dyNMO2xDJj9OMztqPmleQHxadSh6WGNlbkBvS1ZUV0p0c2pzYVchRWlALW9ZfCVTQ1JH
OypNRzk+UWMKejd+ZVQzeT5yejU2ajFCej40RSttI003OyhpI1pfRSorITEzMi0oVW1PXnE4PXw3
N0NsMVpHISlnWS0oTntlTDBtCnplR0FeKig2SFlVKXluZHdKbEV6fG96NWVrSStuWD1mZk9UMUNJ
fD1NYThTQWkjMCh9cXl0I0x3ejdpRTtfRCo/Uwp6MjhNKk5ea3JsWGBWWDs3eDBgK1g4PUlxRHNK
JFJaSkNTJnlUZX5eYkopUEokeDh5bmE+T0s2KWJYQWtDTmopP3oKelMlYD0lKExHOSoxNzRBPzdG
Pm9IZCl0JldgZ0FxR3RraHg5NW9aIXFoXzU5MHEzRHtFOEEpRFJ1IyR5dldecT81Cno3c1p8WnR4
UFFENlVlI3Q5eW9LI0BOeHZmbTNHQFolMThRM048Q30xRkx5PXdPRVNSdk5XK04oK1Y/KVFtQ3El
Owp6WFQzK3VAcUd1N1RKXj03c2psMFpzPVBWPEd3TSk7SldDPHEldTIhdipHQyFOOVFrXiZQISE4
XlZkPTA7eWcpJjUKekI1PD9acGpgTntpOzBpdUUhQlEhZXlYMktPbz5KWiVqVDRwY1FsUFFWUHgq
b2RhPT9zYVhFdXg3Ull9K2ZhQ3EpCnoyKX0+YyRocX1nQj5+KnlsUzkydFQ3QyglQ3NmYnxkRyoj
UD99UT8kU009bTQ5TndIaj9LdzN0KkQkYzZTMjlUdwp6YVpKckl4elFHO0l+O00jdGBUNnk7bDUx
WiFDS0xmVzhOTz9ENihrMERCTC1+S2slJEprNiU5OygkI2A1KD1+JTEKem5gdjlJRjZXZEQ+VlVm
ekphWmhzIzt6NTBnfSpkPE1LKi10NUVxaDt0OVEpR1NVMldiUEBJd01Ec3F3QDJiOzg3CnpobSM+
dSlvOTVeITIzRDFqJFFrdE41NFJRcXVXcFduJlJaQjIxWik4akhyKGJIPFglRz0xPVVae31gVSRK
UWc2Rgp6amN0dj9aPklYbjUjZERJVHx8bj48b1U9Rm00IyZyNyVsdzBUPEZ2S1hKdzVPRjNYajFa
SUhxbXJxRnhAT3wwRlAKei1wbTk8K0ttS05mMSkycCN6ZXdQTThua0RhN1N4Ujx9bT9JeD56KXpF
O2N6Vl47c2ZQMHx7bEtWZ0o2UXFZX2tQCnokenh9fEhyJi1XQ2tKbz11Q2skbXloX2VONW04IUJh
MnR4Kms2VjdCUzRpKzU1QF5BMTxjRTRmMlRKQVBiSDZDewp6JkxGIXFaME1KfkBiWX1+SzgkcHNo
fmx9N25SZH0qUWQyd15ZRk1SQkRtOWxFQVQlTCNIOEA4NnUydlJOLVpYV3MKemBuaTJgaVdTeGJl
VUJEMHZXJV5zYFAzOX5yMTBNQmJqLT90VjlyJGFQaFdYdkwrKmNCayNVfXVhPi1eY29iPStFCnp0
eVgrLXsmeDZfI308MUMyRTFvWTdQK01jQEx3Wnk4NGdoWVFycnc2cUktWH5kSGRZcUsmPCE2ND41
aG4zRkYxcgp6UitJe1BmUiZeUzNVPGA4aWRJVzhHSXokIVNtXj18MEV2RjRGX1laIWpNbFRwMV9n
QzxWWHtucVVGZFd0Zz1me34KeihIKmdmIUs9VHxiUH4jbkdCQDV5ej94PmlVIzRTbW9pMTlCOFY3
UFloUGdwYiZCR3k7RSQlMmc9czNPO3ZOMVg5CnpRN15hbi1XIX50SklFZk89Y1FVUDVnT1N7OHhQ
R1FYZnItMShVYz9PRlBGYmZ8OU49NXtyeWRWMXhZd21uSlFWRAp6IzAqbTJoTylhMUJDTC1Aaj5a
aGt1P3xPIzNJZ2ZwYCVENkpnbX5SeyVSYn1xeGg4NmUoYmpAYTNaS0BPX1BwdVoKemxzdD9LZSs7
QVk0QUNwbTQ2Y00yX1lqWjIqVEItWjxHQj9mZn1PUThKPzVPTkhqUmIhMTZnVnx4cHYtVWhwQHh4
CnpDUHk2QDMxZjRDcHl0bHpwJTcrQTgqTmdgbWtrMXklSE8hP1dkaj1DI29qSzllUkNYTnRrS1I9
dnR+ejZQZXoxSwp6WEgjaUMlcWNPXkU5fE1OYjRrV3tWUStGJXNxWTFrIzVCdXwqKFJWdUs3UjYx
TyN2Z0BvUjY5NSEkfHNuanlNUHYKemlhY2lrUHxqcCQ1IU84MT83aT1WcDw4I19VXyFkQmRuSkoz
OVg0O3clMkI2ZWZATTVvIUw0VGQ+OVNLNS08cURiCnpkaDJ0XnMhdyheNlQmNlorbGImSEEwK3pf
Pmc+PjUkbm82YiVle3paeDc/NGRnU016YFptNH0+WSZTZ14pdzZ8cAp6VkpRUz1jKXNNSXczZz1U
U258ZU0/LTRZKT50XnByQ19aa1ZPeTREZlkhVEA3PWhGVWBBU3U1Yl9PejA7S05iMVAKemYyTkR0
a1VAKzE4ZyopbT5wazloUnh3e2pZdDNoJU9vc2R6bVJDSShDcVRzaDhjSCFDTSlFMTA/OFRRNSN+
IThICnozfUktQDhqJmB1b3I0cSlUbnxpNnRxQikzTyMqNVY7fnNGcUQ3X2IxTDJCUjdheSkoaF50
VzxScmVGMCQjVkh9Ygp6X3Nud0pZS3VRNWIqJlorZH1obENgSz5lMlVvJD44QCs+SEZPdVhUYWVs
S0M+OFgycE9pNGtyZ09SPXpid1J3ankKemUkcXxjZV4hMCNhVTR9XzUkYkxzVUpRPng9cHI2Y1JT
Tk1kI29tU2dSXjx8SjU+S2AjUmNkZzleb0RedlFzYEdVCnp1NShBWFlEJmR2dWxzRUF5Knc1T085
ZWlRXyZuVTRLakxxNCotZnQoJUVxcW9WY0xDbnNBOCk9YTZKLThBSlgjPQp6ZEg9ak41WDk0cUts
I3Z0LUtwbXpwblVKJj5lcnxsZVNPQnlgMHUzXlVtKiZ2dD9XSTx2SEhxdWtIajQqazVsPG8KenYq
UDlWcmcyZmo7Zk9INj99dWl6VDRqeVJtQVh5My17eVZ8SWlmdDl7P2B3az04SEFFYipsVCVyaEtW
MUBfRTZeCnpzIXgxKD9iYDlwWTVtQFphVzc1O0BCaDlnaU0oTSZYSip7YD94YX1FemVHXjZHeWdJ
Y01hPXcqRVEpT1Uwd1c1WAp6YDhQMlgyPmdXYEN+REtjd09tb1B6YVhXOExNU01OZl9BRFkzWjxl
QER3O1MmZDs3Sm97fnpycmQwUVU+bCQxNkYKemU3Kn55UCRjOStpaD5VLV9ePzchKEBfWFYzZ0pq
MFAlRnk4bXdPZHozVkIyIWswezxmRGM7SWAjUkcqcnFMND12CnpAYHlxbmA1JWBANnExTlM2OFYw
S05eIUMwenYtXkheN0pKbnt6bzw4e355cTZsZDA7KTI7eE8mKHg+RX5hdz9yWApNWmhzN2FeeFU9
bzBHZ0kzdUspbDUKCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKaW5kZXggNjQxNDUxYzczYzNmY2YyNGQ0YmNiYmFlMzNlYzFjZDk3MGIx
ODllYS4uYWVhMDFhOTdkMmIzNmI3NTgzNjJhNmYzNjFmMjBkZWI4MjViMTY1ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDIzIEBACiAyMDEwLTA1LTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0u
b3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG5l
dy1ydW4td2Via2l0LXRlc3RzOiBhZGQgYSAnLS11cGRhdGUtYmFzZWxpbmUnIGZsYWcgdG8gY29t
cGxlbWVudCB0aGUKKyAgICAgICAgJy0tbmV3LWJhc2VsaW5lJyBmbGFnLiAnLS1uZXctYmFzZWxp
bmUnIHdpbGwgYWx3YXlzIHdyaXRlIHRoZSByZXN1bHRzCisgICAgICAgIGludG8gdGhlIHBsYXRm
b3JtIGRpcmVjdG9yeTsgJy0tdXBkYXRlLWJhc2VsaW5lJyB3aWxsIHVwZGF0ZSB0aGUKKyAgICAg
ICAgZXhpc3RpbmcgYmFzZWxpbmUgd2hlcmV2ZXIgaXQgaGFwcGVucyB0byBiZS4gQm90aCBzZXRz
IG9mIGJlaGF2aW9yCisgICAgICAgIGFyZSB1c2VmdWwgaW4gZGlmZmVyZW50IGNpcmN1bXN0YW5j
ZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
ODc5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNl
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMv
dGV4dF9kaWZmLnB5OgorCisyMDEwLTA1LTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgogCiAgICAgICAgIG5l
dy1ydW4td2Via2l0LXRlc3RzOiBsb29rcyBsaWtlIHRoZSB1bmljb2RlIGNvbnZlcnNpb24gYnJv
a2UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJf
dHJlZV90aHJlYWQucHkKaW5kZXggNjk1N2ZjZDk4ZTVhYzBkYThkZGVhMzkwYzg4OTRkNzc1MzU2
YmM5ZS4uYjQzNzZjODA2ODY1YzM4MWQxNWRlNDUyMDkwMTNhYjBlZGMwM2I4ZSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkKQEAgLTQyNSw3ICs0MjUsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgICAgICMgYXJlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAoT3Ro
ZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAgICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBj
b3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQogICAgICAgICBpbWFnZV9oYXNoID0gdGVzdF9pbmZv
LmltYWdlX2hhc2goKQotICAgICAgICBpZiBpbWFnZV9oYXNoIGFuZCBzZWxmLl90ZXN0X2FyZ3Mu
bmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiAoaW1hZ2VfaGFzaCBhbmQKKyAgICAgICAgICAgIChz
ZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHNlbGYuX3Rlc3RfYXJncy51cGRhdGVfYmFz
ZWxpbmUpKToKICAgICAgICAgICAgIGltYWdlX2hhc2ggPSAiIgogICAgICAgICBzdGFydCA9IHRp
bWUudGltZSgpCiAgICAgICAgIGNyYXNoLCB0aW1lb3V0LCBhY3R1YWxfY2hlY2tzdW0sIG91dHB1
dCwgZXJyb3IgPSBcCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAxNDgxNzRkYjMzMzE2
Yjk3YjM0MDUyOGVhZTZkYzBmNWRkODIwMWY1Li4xMDAwNGNhZTAxOGZmYWUyMjgyYzE5ODM3YWQx
ODhmNGE4YTc3OWMxIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTU3NSw2ICs1NzUs
NyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRoID0g
cG5nX3BhdGgKIAogICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lID0gc2VsZi5fb3B0aW9u
cy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnVwZGF0ZV9iYXNlbGluZSA9IHNlbGYu
X29wdGlvbnMudXBkYXRlX2Jhc2VsaW5lCiAKICAgICAgICAgdGVzdF9hcmdzLnNob3dfc291cmNl
cyA9IHNlbGYuX29wdGlvbnMuc291cmNlcwogCkBAIC0xNTIxLDYgKzE1MjIsOSBAQCBkZWYgcGFy
c2VfYXJncyhhcmdzPU5vbmUpOgogICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iU2F2
ZSBhbGwgZ2VuZXJhdGVkIHJlc3VsdHMgYXMgbmV3IGJhc2VsaW5lcyAiCiAgICAgICAgICAgICAg
ICAgICJpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnksIG92ZXJ3cml0aW5nIHdoYXRldmVyJ3Mg
IgogICAgICAgICAgICAgICAgICAiYWxyZWFkeSB0aGVyZS4iKSwKKyAgICAgICAgb3B0cGFyc2Uu
bWFrZV9vcHRpb24oIi0tdXBkYXRlLWJhc2VsaW5lIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlVwZGF0ZSBhbnkgZXhpc3RpbmcgYmFzZWxp
bmVzIHdpdGggdGhlICIKKyAgICAgICAgICAgICAgICAgImdlbmVyYXRlZCByZXN1bHRzIiksCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW5vLXNob3ctcmVzdWx0cyIsIGFjdGlvbj0i
c3RvcmVfZmFsc2UiLAogICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBkZXN0PSJzaG93X3Jlc3Vs
dHMiLAogICAgICAgICAgICAgaGVscD0iRG9uJ3QgbGF1bmNoIGEgYnJvd3NlciB3aXRoIHJlc3Vs
dHMgYWZ0ZXIgdGhlIHRlc3RzICIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQpp
bmRleCBiMzdmNGIzMTUwNGY0MWI2ZjQzODY5ZWFjNTA0Y2RlNzdkZmM4YmMwLi4xMmU3NDQyODM0
OGMzY2VjYjYxNjRmZDMyYzBkOTQ2YzhkNzBlOTMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9p
bWFnZV9kaWZmLnB5CkBAIC03MywxOCArNzMsMjEgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlw
ZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICBpZiBlcnJuby5FTk9FTlQgIT0gZS5l
cnJubzoKICAgICAgICAgICAgICAgICByYWlzZQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2Zp
bGVzKHNlbGYsIGZpbGVuYW1lLCBwbmdfcGF0aCwgY2hlY2tzdW0pOgorICAgIGRlZiBfc2F2ZV9i
YXNlbGluZV9maWxlcyhzZWxmLCBmaWxlbmFtZSwgcG5nX3BhdGgsIGNoZWNrc3VtLCBuZXdfYmFz
ZWxpbmUpOgogICAgICAgICAiIiJTYXZlcyBuZXcgYmFzZWxpbmVzIGZvciB0aGUgUE5HIGFuZCBj
aGVja3N1bS4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVuYW1lOiB0ZXN0IGZpbGVu
YW1lCiAgICAgICAgICAgcG5nX3BhdGg6IHBhdGggdG8gdGhlIGFjdHVhbCBQTkcgcmVzdWx0IGZp
bGUKICAgICAgICAgICBjaGVja3N1bTogdmFsdWUgb2YgdGhlIGFjdHVhbCBjaGVja3N1bSByZXN1
bHQKKyAgICAgICAgICBuZXdfYmFzZWxpbmU6IGlzIHRoaXMgYSBuZXcgYmFzZWxpbmUgb3IgYW4g
dXBkYXRlZCBvbmU/CiAgICAgICAgICIiIgogICAgICAgICB3aXRoIG9wZW4ocG5nX3BhdGgsICJy
YiIpIGFzIHBuZ19maWxlOgogICAgICAgICAgICAgcG5nX2RhdGEgPSBwbmdfZmlsZS5yZWFkKCkK
LSAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5w
bmciLCBlbmNvZGluZz1Ob25lKQotICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmls
ZW5hbWUsIGNoZWNrc3VtLCAiLmNoZWNrc3VtIiwgZW5jb2Rpbmc9ImFzY2lpIikKKyAgICAgICAg
c2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNv
ZGluZz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Jhc2VsaW5l
PW5ld19iYXNlbGluZSkKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1l
LCBjaGVja3N1bSwgIi5jaGVja3N1bSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmNvZGluZz0iYXNjaWkiLCBuZXdfYmFzZWxpbmU9bmV3X2Jhc2VsaW5lKQogCiAgICAgZGVm
IF9jcmVhdGVfaW1hZ2VfZGlmZihzZWxmLCBwb3J0LCBmaWxlbmFtZSwgY29uZmlndXJhdGlvbik6
CiAgICAgICAgICIiIkNyZWF0ZXMgdGhlIHZpc3VhbCBkaWZmIG9mIHRoZSBleHBlY3RlZC9hY3R1
YWwgUE5Hcy4KQEAgLTEyOCw5ICsxMzEsMTEgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9i
YXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAg
ICAjIElmIHdlJ3JlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUsIHdlIHBhc3MuCi0gICAgICAg
IGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmU6CisgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAg
cGRiLnNldF90cmFjZSgpCisgICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgb3IgdGVz
dF9hcmdzLnVwZGF0ZV9iYXNlbGluZToKICAgICAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVf
ZmlsZXMoZmlsZW5hbWUsIHRlc3RfYXJncy5wbmdfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfYXJncy5oYXNoKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdF9hcmdzLmhhc2gsIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUpCiAgICAg
ICAgICAgICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAgICAjIENvbXBhcmUgaGFzaGVzLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90
eXBlcy90ZXN0X3R5cGVfYmFzZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKaW5kZXggY2YwYjllY2VlNzYx
OGEyN2M3MTZmNGNiZTMxOTFmMmVhZTI0ODQ4Yy4uZjJmODhhNGM1NDFkY2QwYjNjNWQxMjFhMjc1
NjlkZGI2NzMyYzgzOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNl
LnB5CkBAIC05Myw3ICs5Myw4IEBAIGNsYXNzIFRlc3RUeXBlQmFzZShvYmplY3QpOgogICAgICAg
ICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkKICAgICAg
ICAgc2VsZi5fcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5wYXRoLnNwbGl0KG91dHB1dF9m
aWxlbmFtZSlbMF0pCiAKLSAgICBkZWYgX3NhdmVfYmFzZWxpbmVfZGF0YShzZWxmLCBmaWxlbmFt
ZSwgZGF0YSwgbW9kaWZpZXIsIGVuY29kaW5nKToKKyAgICBkZWYgX3NhdmVfYmFzZWxpbmVfZGF0
YShzZWxmLCBmaWxlbmFtZSwgZGF0YSwgbW9kaWZpZXIsIGVuY29kaW5nLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld19iYXNlbGluZT1UcnVlKToKICAgICAgICAgIiIiU2F2ZXMgYSBu
ZXcgYmFzZWxpbmUgZmlsZSBpbnRvIHRoZSBwb3J0J3MgYmFzZWxpbmUgZGlyZWN0b3J5LgogCiAg
ICAgICAgIFRoZSBmaWxlIHdpbGwgYmUgbmFtZWQgc2ltcGx5ICI8dGVzdD4tZXhwZWN0ZWQ8bW9k
aWZpZXI+Iiwgc3VpdGFibGUgZm9yCkBAIC0xMDQsMTcgKzEwNSwyMSBAQCBjbGFzcyBUZXN0VHlw
ZUJhc2Uob2JqZWN0KToKICAgICAgICAgICBkYXRhOiByZXN1bHQgdG8gYmUgc2F2ZWQgYXMgdGhl
IG5ldyBiYXNlbGluZQogICAgICAgICAgIG1vZGlmaWVyOiB0eXBlIG9mIHRoZSByZXN1bHQgZmls
ZSwgZS5nLiAiLnR4dCIgb3IgIi5wbmciCiAgICAgICAgICIiIgotICAgICAgICByZWxhdGl2ZV9k
aXIgPSBvcy5wYXRoLmRpcm5hbWUoCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rl
c3RfZmlsZW5hbWUoZmlsZW5hbWUpKQogCi0gICAgICAgIGJhc2VsaW5lX3BhdGggPSBzZWxmLl9w
b3J0LmJhc2VsaW5lX3BhdGgoKQotICAgICAgICBvdXRwdXRfZGlyID0gb3MucGF0aC5qb2luKGJh
c2VsaW5lX3BhdGgsIHJlbGF0aXZlX2RpcikKLSAgICAgICAgb3V0cHV0X2ZpbGUgPSBvcy5wYXRo
LmJhc2VuYW1lKG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsKLSAgICAgICAgICAgIHNl
bGYuRklMRU5BTUVfU1VGRklYX0VYUEVDVEVEICsgbW9kaWZpZXIpCisgICAgICAgIGlmIG5ld19i
YXNlbGluZToKKyAgICAgICAgICAgIHJlbGF0aXZlX2RpciA9IG9zLnBhdGguZGlybmFtZSgKKyAg
ICAgICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUp
KQorICAgICAgICAgICAgYmFzZWxpbmVfcGF0aCA9IHNlbGYuX3BvcnQuYmFzZWxpbmVfcGF0aCgp
CisgICAgICAgICAgICBvdXRwdXRfZGlyID0gb3MucGF0aC5qb2luKGJhc2VsaW5lX3BhdGgsIHJl
bGF0aXZlX2RpcikKKyAgICAgICAgICAgIG91dHB1dF9maWxlID0gb3MucGF0aC5iYXNlbmFtZShv
cy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVswXSArCisgICAgICAgICAgICAgICAgc2VsZi5GSUxF
TkFNRV9TVUZGSVhfRVhQRUNURUQgKyBtb2RpZmllcikKKyAgICAgICAgICAgIHNlbGYuX3BvcnQu
bWF5YmVfbWFrZV9kaXJlY3Rvcnkob3V0cHV0X2RpcikKKyAgICAgICAgICAgIG91dHB1dF9wYXRo
ID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIG91dHB1dF9maWxlKQorICAgICAgICAgICAgX2xv
Zy5kZWJ1Zygnd3JpdGluZyBuZXcgYmFzZWxpbmUgdG8gIiVzIicgJSAob3V0cHV0X3BhdGgpKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0cHV0X3BhdGggPSBzZWxmLl9wb3J0LmV4cGVj
dGVkX2ZpbGVuYW1lKGZpbGVuYW1lLCBtb2RpZmllcikKKyAgICAgICAgICAgIF9sb2cuZGVidWco
J3VwZGF0aW5nIGJhc2VsaW5lICIlcyInICUgb3V0cHV0X3BhdGgpCiAKLSAgICAgICAgc2VsZi5f
cG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvdXRwdXRfZGlyKQotICAgICAgICBvdXRwdXRfcGF0
aCA9IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCBvdXRwdXRfZmlsZSkKLSAgICAgICAgX2xvZy5k
ZWJ1Zygnd3JpdGluZyBuZXcgYmFzZWxpbmUgdG8gIiVzIicgJSAob3V0cHV0X3BhdGgpKQogICAg
ICAgICBzZWxmLl93cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChvdXRwdXRfcGF0aCwgZGF0YSwgZW5j
b2RpbmcpCiAKICAgICBkZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYsIGZpbGVuYW1lLCBtb2RpZmll
cik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CmluZGV4IDlmZWQ0NzRlNDcyNjUz
OWUxZTllNWE0YzBjN2VhMmNlYzFjMWIxMjEuLmZlNTIzOTFlYzY1OWEwMjdhZjIzODkyYjY5ZTY2
YzRkMmE5YzE5YmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CkBAIC04OSwx
MSArODksMTQgQEAgY2xhc3MgVGVzdFRleHREaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFz
ZSk6CiAgICAgICAgIGZhaWx1cmVzID0gW10KIAogICAgICAgICAjIElmIHdlJ3JlIGdlbmVyYXRp
bmcgYSBuZXcgYmFzZWxpbmUsIHdlIHBhc3MuCi0gICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFz
ZWxpbmU6CisgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgcGRiLnNldF90cmFjZSgpCisgICAg
ICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgb3IgdGVzdF9hcmdzLnVwZGF0ZV9iYXNlbGlu
ZToKICAgICAgICAgICAgICMgQWx0aG91Z2ggYWxsIHRlc3Rfc2hlbGwvRHVtcFJlbmRlclRyZWUg
b3V0cHV0IHNob3VsZCBiZSB1dGYtOCwKICAgICAgICAgICAgICMgd2UgZG8gbm90IGV2ZXIgZGVj
b2RlIGl0IGluc2lkZSBydW4td2Via2l0LXRlc3RzLiAgRm9yIHNvbWUgdGVzdHMKICAgICAgICAg
ICAgICMgRHVtcFJlbmRlclRyZWUgbWF5IG5vdCBvdXRwdXQgdXRmLTggdGV4dCAoZS5nLiB3ZWJh
cmNoaXZlcykuCi0gICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUs
IG91dHB1dCwgIi50eHQiLCBlbmNvZGluZz1Ob25lKQorICAgICAgICAgICAgc2VsZi5fc2F2ZV9i
YXNlbGluZV9kYXRhKGZpbGVuYW1lLCBvdXRwdXQsICIudHh0IiwgZW5jb2Rpbmc9Tm9uZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYmFzZWxpbmU9dGVzdF9hcmdz
Lm5ld19iYXNlbGluZSkKICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlcwogCiAgICAgICAgICMg
Tm9ybWFsaXplIHRleHQgdG8gZGlmZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55755</attachid>
            <date>2010-05-11 14:22:08 -0700</date>
            <delta_ts>2010-05-11 16:03:25 -0700</delta_ts>
            <desc>cleaned-up patch, still no tests</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>9220</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwva2V5Z2VuLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwva2V5Z2VuLWV4
cGVjdGVkLnBuZwppbmRleCAyZjBjMjc5Li43MzljNWMwIDEwMDY0NApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9odG1sL2tleWdlbi1leHBlY3RlZC5wbmcgYW5k
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaHRtbC9rZXlnZW4tZXhwZWN0ZWQucG5n
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDJkOThiZTYuLjhiMjYwMTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAog
MjAxMC0wNS0xMCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBuZXctcnVuLXdlYmtpdC10
ZXN0czogYWRkIGEgJy0tdXBkYXRlLWJhc2VsaW5lJyBmbGFnIHRvIGNvbXBsZW1lbnQgdGhlCisg
ICAgICAgICctLW5ldy1iYXNlbGluZScgZmxhZy4gJy0tbmV3LWJhc2VsaW5lJyB3aWxsIGFsd2F5
cyB3cml0ZSB0aGUgcmVzdWx0cworICAgICAgICBpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3Rvcnk7
ICctLXVwZGF0ZS1iYXNlbGluZScgd2lsbCB1cGRhdGUgdGhlCisgICAgICAgIGV4aXN0aW5nIGJh
c2VsaW5lIHdoZXJldmVyIGl0IGhhcHBlbnMgdG8gYmUuIEJvdGggc2V0cyBvZiBiZWhhdmlvcgor
ICAgICAgICBhcmUgdXNlZnVsIGluIGRpZmZlcmVudCBjaXJjdW1zdGFuY2VzLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODg3OQorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5k
ZXJfdHJlZV90aHJlYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weToK
KworMjAxMC0wNS0xMCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAg
ICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCiAKICAgICAgICAgRml4IGEgYnVpbGQgZmFpbHVy
ZSBjYXVzZWQgYnkgYXNzdW1pbmcgdGhlIGRlZmF1bHQgcGxhdGZvcm0gaW4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkK
aW5kZXggNjk1N2ZjZC4uYjQzNzZjOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTQyNSw3ICs0MjUsOCBA
QCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICMgYXJl
IGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAoT3RoZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEK
ICAgICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYmFzZWxpbmUu
KQogICAgICAgICBpbWFnZV9oYXNoID0gdGVzdF9pbmZvLmltYWdlX2hhc2goKQotICAgICAgICBp
ZiBpbWFnZV9oYXNoIGFuZCBzZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lOgorICAgICAgICBp
ZiAoaW1hZ2VfaGFzaCBhbmQKKyAgICAgICAgICAgIChzZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2Vs
aW5lIG9yIHNlbGYuX3Rlc3RfYXJncy51cGRhdGVfYmFzZWxpbmUpKToKICAgICAgICAgICAgIGlt
YWdlX2hhc2ggPSAiIgogICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgICAgIGNyYXNo
LCB0aW1lb3V0LCBhY3R1YWxfY2hlY2tzdW0sIG91dHB1dCwgZXJyb3IgPSBcCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQppbmRleCAxNDgxNzRkLi4xMDAwNGNhIDEwMDc1NQotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKQEAgLTU3NSw2ICs1NzUsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAg
ICAgdGVzdF9hcmdzLnBuZ19wYXRoID0gcG5nX3BhdGgKIAogICAgICAgICB0ZXN0X2FyZ3MubmV3
X2Jhc2VsaW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdz
LnVwZGF0ZV9iYXNlbGluZSA9IHNlbGYuX29wdGlvbnMudXBkYXRlX2Jhc2VsaW5lCiAKICAgICAg
ICAgdGVzdF9hcmdzLnNob3dfc291cmNlcyA9IHNlbGYuX29wdGlvbnMuc291cmNlcwogCkBAIC0x
NTIxLDYgKzE1MjIsOSBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgICAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgaGVscD0iU2F2ZSBhbGwgZ2VuZXJhdGVkIHJlc3VsdHMgYXMgbmV3IGJh
c2VsaW5lcyAiCiAgICAgICAgICAgICAgICAgICJpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3Rvcnks
IG92ZXJ3cml0aW5nIHdoYXRldmVyJ3MgIgogICAgICAgICAgICAgICAgICAiYWxyZWFkeSB0aGVy
ZS4iKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdXBkYXRlLWJhc2VsaW5lIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlVw
ZGF0ZSBhbnkgZXhpc3RpbmcgYmFzZWxpbmVzIHdpdGggdGhlICIKKyAgICAgICAgICAgICAgICAg
ImdlbmVyYXRlZCByZXN1bHRzIiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW5v
LXNob3ctcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAogICAgICAgICAgICAgZGVmYXVs
dD1UcnVlLCBkZXN0PSJzaG93X3Jlc3VsdHMiLAogICAgICAgICAgICAgaGVscD0iRG9uJ3QgbGF1
bmNoIGEgYnJvd3NlciB3aXRoIHJlc3VsdHMgYWZ0ZXIgdGhlIHRlc3RzICIKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1h
Z2VfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvaW1hZ2VfZGlmZi5weQppbmRleCBiMzdmNGIzLi42MWNjNWE2IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL2lt
YWdlX2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5CkBAIC03MywxOCArNzMsMjEgQEAgY2xhc3MgSW1h
Z2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICBpZiBlcnJu
by5FTk9FTlQgIT0gZS5lcnJubzoKICAgICAgICAgICAgICAgICByYWlzZQogCi0gICAgZGVmIF9z
YXZlX2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGZpbGVuYW1lLCBwbmdfcGF0aCwgY2hlY2tzdW0pOgor
ICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9maWxlcyhzZWxmLCBmaWxlbmFtZSwgcG5nX3BhdGgsIGNo
ZWNrc3VtLCBuZXdfYmFzZWxpbmUpOgogICAgICAgICAiIiJTYXZlcyBuZXcgYmFzZWxpbmVzIGZv
ciB0aGUgUE5HIGFuZCBjaGVja3N1bS4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVu
YW1lOiB0ZXN0IGZpbGVuYW1lCiAgICAgICAgICAgcG5nX3BhdGg6IHBhdGggdG8gdGhlIGFjdHVh
bCBQTkcgcmVzdWx0IGZpbGUKICAgICAgICAgICBjaGVja3N1bTogdmFsdWUgb2YgdGhlIGFjdHVh
bCBjaGVja3N1bSByZXN1bHQKKyAgICAgICAgICBuZXdfYmFzZWxpbmU6IGlzIHRoaXMgYSBuZXcg
YmFzZWxpbmUgb3IgYW4gdXBkYXRlZCBvbmU/CiAgICAgICAgICIiIgogICAgICAgICB3aXRoIG9w
ZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBuZ19maWxlOgogICAgICAgICAgICAgcG5nX2RhdGEgPSBw
bmdfZmlsZS5yZWFkKCkKLSAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1l
LCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lKQotICAgICAgICBzZWxmLl9zYXZlX2Jh
c2VsaW5lX2RhdGEoZmlsZW5hbWUsIGNoZWNrc3VtLCAiLmNoZWNrc3VtIiwgZW5jb2Rpbmc9ImFz
Y2lpIikKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0
YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3X2Jhc2VsaW5lPW5ld19iYXNlbGluZSkKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGlu
ZV9kYXRhKGZpbGVuYW1lLCBjaGVja3N1bSwgIi5jaGVja3N1bSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLCBuZXdfYmFzZWxpbmU9bmV3X2Jhc2Vs
aW5lKQogCiAgICAgZGVmIF9jcmVhdGVfaW1hZ2VfZGlmZihzZWxmLCBwb3J0LCBmaWxlbmFtZSwg
Y29uZmlndXJhdGlvbik6CiAgICAgICAgICIiIkNyZWF0ZXMgdGhlIHZpc3VhbCBkaWZmIG9mIHRo
ZSBleHBlY3RlZC9hY3R1YWwgUE5Hcy4KQEAgLTEyOCw5ICsxMzEsOSBAQCBjbGFzcyBJbWFnZURp
ZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAgICAgICAgICAgIHJldHVybiBmYWls
dXJlcwogCiAgICAgICAgICMgSWYgd2UncmUgZ2VuZXJhdGluZyBhIG5ldyBiYXNlbGluZSwgd2Ug
cGFzcy4KLSAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZToKKyAgICAgICAgaWYgdGVz
dF9hcmdzLm5ld19iYXNlbGluZSBvciB0ZXN0X2FyZ3MudXBkYXRlX2Jhc2VsaW5lOgogICAgICAg
ICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9maWxlcyhmaWxlbmFtZSwgdGVzdF9hcmdzLnBuZ19w
YXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9hcmdzLmhhc2gp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FyZ3MuaGFzaCwgdGVz
dF9hcmdzLm5ld19iYXNlbGluZSkKICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlcwogCiAgICAg
ICAgICMgQ29tcGFyZSBoYXNoZXMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVf
YmFzZS5weQppbmRleCBjZjBiOWVjLi5mMmY4OGE0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlw
ZXMvdGVzdF90eXBlX2Jhc2UucHkKQEAgLTkzLDcgKzkzLDggQEAgY2xhc3MgVGVzdFR5cGVCYXNl
KG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUo
ZmlsZW5hbWUpKQogICAgICAgICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG9zLnBh
dGguc3BsaXQob3V0cHV0X2ZpbGVuYW1lKVswXSkKIAotICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9k
YXRhKHNlbGYsIGZpbGVuYW1lLCBkYXRhLCBtb2RpZmllciwgZW5jb2RpbmcpOgorICAgIGRlZiBf
c2F2ZV9iYXNlbGluZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBkYXRhLCBtb2RpZmllciwgZW5jb2Rp
bmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Jhc2VsaW5lPVRydWUpOgogICAg
ICAgICAiIiJTYXZlcyBhIG5ldyBiYXNlbGluZSBmaWxlIGludG8gdGhlIHBvcnQncyBiYXNlbGlu
ZSBkaXJlY3RvcnkuCiAKICAgICAgICAgVGhlIGZpbGUgd2lsbCBiZSBuYW1lZCBzaW1wbHkgIjx0
ZXN0Pi1leHBlY3RlZDxtb2RpZmllcj4iLCBzdWl0YWJsZSBmb3IKQEAgLTEwNCwxNyArMTA1LDIx
IEBAIGNsYXNzIFRlc3RUeXBlQmFzZShvYmplY3QpOgogICAgICAgICAgIGRhdGE6IHJlc3VsdCB0
byBiZSBzYXZlZCBhcyB0aGUgbmV3IGJhc2VsaW5lCiAgICAgICAgICAgbW9kaWZpZXI6IHR5cGUg
b2YgdGhlIHJlc3VsdCBmaWxlLCBlLmcuICIudHh0IiBvciAiLnBuZyIKICAgICAgICAgIiIiCi0g
ICAgICAgIHJlbGF0aXZlX2RpciA9IG9zLnBhdGguZGlybmFtZSgKLSAgICAgICAgICAgIHNlbGYu
X3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSkpCiAKLSAgICAgICAgYmFzZWxp
bmVfcGF0aCA9IHNlbGYuX3BvcnQuYmFzZWxpbmVfcGF0aCgpCi0gICAgICAgIG91dHB1dF9kaXIg
PSBvcy5wYXRoLmpvaW4oYmFzZWxpbmVfcGF0aCwgcmVsYXRpdmVfZGlyKQotICAgICAgICBvdXRw
dXRfZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0g
KwotICAgICAgICAgICAgc2VsZi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBtb2RpZmllcikK
KyAgICAgICAgaWYgbmV3X2Jhc2VsaW5lOgorICAgICAgICAgICAgcmVsYXRpdmVfZGlyID0gb3Mu
cGF0aC5kaXJuYW1lKAorICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9m
aWxlbmFtZShmaWxlbmFtZSkpCisgICAgICAgICAgICBiYXNlbGluZV9wYXRoID0gc2VsZi5fcG9y
dC5iYXNlbGluZV9wYXRoKCkKKyAgICAgICAgICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4o
YmFzZWxpbmVfcGF0aCwgcmVsYXRpdmVfZGlyKQorICAgICAgICAgICAgb3V0cHV0X2ZpbGUgPSBv
cy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsKKyAgICAgICAg
ICAgICAgICBzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIG1vZGlmaWVyKQorICAgICAg
ICAgICAgc2VsZi5fcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvdXRwdXRfZGlyKQorICAgICAg
ICAgICAgb3V0cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGUp
CisgICAgICAgICAgICBfbG9nLmRlYnVnKCd3cml0aW5nIG5ldyBiYXNlbGluZSB0byAiJXMiJyAl
IChvdXRwdXRfcGF0aCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUoZmlsZW5hbWUsIG1vZGlmaWVyKQorICAgICAg
ICAgICAgX2xvZy5kZWJ1ZygndXBkYXRpbmcgYmFzZWxpbmUgIiVzIicgJSBvdXRwdXRfcGF0aCkK
IAotICAgICAgICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCi0g
ICAgICAgIG91dHB1dF9wYXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIG91dHB1dF9maWxl
KQotICAgICAgICBfbG9nLmRlYnVnKCd3cml0aW5nIG5ldyBiYXNlbGluZSB0byAiJXMiJyAlIChv
dXRwdXRfcGF0aCkpCiAgICAgICAgIHNlbGYuX3dyaXRlX2ludG9fZmlsZV9hdF9wYXRoKG91dHB1
dF9wYXRoLCBkYXRhLCBlbmNvZGluZykKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZiwg
ZmlsZW5hbWUsIG1vZGlmaWVyKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKaW5k
ZXggOWZlZDQ3NC4uYmMwNzg0YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkK
QEAgLTg5LDExICs4OSwxMiBAQCBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVz
dFR5cGVCYXNlKToKICAgICAgICAgZmFpbHVyZXMgPSBbXQogCiAgICAgICAgICMgSWYgd2UncmUg
Z2VuZXJhdGluZyBhIG5ldyBiYXNlbGluZSwgd2UgcGFzcy4KLSAgICAgICAgaWYgdGVzdF9hcmdz
Lm5ld19iYXNlbGluZToKKyAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciB0ZXN0
X2FyZ3MudXBkYXRlX2Jhc2VsaW5lOgogICAgICAgICAgICAgIyBBbHRob3VnaCBhbGwgdGVzdF9z
aGVsbC9EdW1wUmVuZGVyVHJlZSBvdXRwdXQgc2hvdWxkIGJlIHV0Zi04LAogICAgICAgICAgICAg
IyB3ZSBkbyBub3QgZXZlciBkZWNvZGUgaXQgaW5zaWRlIHJ1bi13ZWJraXQtdGVzdHMuICBGb3Ig
c29tZSB0ZXN0cwogICAgICAgICAgICAgIyBEdW1wUmVuZGVyVHJlZSBtYXkgbm90IG91dHB1dCB1
dGYtOCB0ZXh0IChlLmcuIHdlYmFyY2hpdmVzKS4KLSAgICAgICAgICAgIHNlbGYuX3NhdmVfYmFz
ZWxpbmVfZGF0YShmaWxlbmFtZSwgb3V0cHV0LCAiLnR4dCIsIGVuY29kaW5nPU5vbmUpCisgICAg
ICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIG91dHB1dCwgIi50eHQi
LCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l
d19iYXNlbGluZT10ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZh
aWx1cmVzCiAKICAgICAgICAgIyBOb3JtYWxpemUgdGV4dCB0byBkaWZmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55772</attachid>
            <date>2010-05-11 16:03:29 -0700</date>
            <delta_ts>2010-05-17 16:18:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38879-20100511160328.patch</filename>
            <type>text/plain</type>
            <size>15301</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyZDk4YmU2OTkxYzkzNmU4MDZjNzVhMzYyMTNhNDZjNmMzYWIzYmVjLi4zOWZjZDNk
ZjA4OGIyYTZkMWYzZWU3ZTMzYzI3NjQ5ODhjNmI0MDBmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDUtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IGFkZCBhICctLXVwZGF0ZS1iYXNlbGluZScgZmxhZyB0byBjb21wbGVtZW50IHRoZQor
ICAgICAgICAnLS1uZXctYmFzZWxpbmUnIGZsYWcuICctLW5ldy1iYXNlbGluZScgd2lsbCBhbHdh
eXMgd3JpdGUgdGhlIHJlc3VsdHMKKyAgICAgICAgaW50byB0aGUgcGxhdGZvcm0gZGlyZWN0b3J5
OyAnLS11cGRhdGUtYmFzZWxpbmUnIHdpbGwgdXBkYXRlIHRoZQorICAgICAgICBleGlzdGluZyBi
YXNlbGluZSB3aGVyZXZlciBpdCBoYXBwZW5zIHRvIGJlLiBCb3RoIHNldHMgb2YgYmVoYXZpb3IK
KyAgICAgICAgYXJlIHVzZWZ1bCBpbiBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNlcy4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzkKKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVu
ZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5Ogor
CiAyMDEwLTA1LTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVf
dGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggNjk1N2ZjZDk4ZTVh
YzBkYThkZGVhMzkwYzg4OTRkNzc1MzU2YmM5ZS4uYjQzNzZjODA2ODY1YzM4MWQxNWRlNDUyMDkw
MTNhYjBlZGMwM2I4ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTQyNSw3ICs0MjUsOCBAQCBjbGFzcyBU
ZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICMgYXJlIGdlbmVyYXRp
bmcgYSBuZXcgYmFzZWxpbmUuICAoT3RoZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAgICAgICAg
IyBwcmV2aW91cyBydW4gd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQogICAgICAg
ICBpbWFnZV9oYXNoID0gdGVzdF9pbmZvLmltYWdlX2hhc2goKQotICAgICAgICBpZiBpbWFnZV9o
YXNoIGFuZCBzZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiAoaW1hZ2Vf
aGFzaCBhbmQKKyAgICAgICAgICAgIChzZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHNl
bGYuX3Rlc3RfYXJncy51cGRhdGVfYmFzZWxpbmUpKToKICAgICAgICAgICAgIGltYWdlX2hhc2gg
PSAiIgogICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgICAgIGNyYXNoLCB0aW1lb3V0
LCBhY3R1YWxfY2hlY2tzdW0sIG91dHB1dCwgZXJyb3IgPSBcCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CmluZGV4
IDJjYmIxYjk2MTcyZmFkZmFmMzhlMzZlNjRkNDI4ZjI3MDAxZjBmYmMuLmRhYWNiM2M4YTI5Nzk3
NjM1MjQxYzhkYWIwYTczZDE0ZmRlZTNjNjMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CkBAIC0xNDEsNyAr
MTQxLDcgQEAgY2xhc3MgRHJ5cnVuRHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAgICAgdGV4dF9m
aWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLnR4dCcp
CiAgICAgICAgIHRleHRfb3V0cHV0ID0gX3JlYWRfZmlsZSh0ZXh0X2ZpbGVuYW1lKQogCi0gICAg
ICAgIGlmIGltYWdlX2hhc2g6CisgICAgICAgIGlmIGltYWdlX2hhc2ggaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBpbWFnZV9maWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUo
dGVzdF9uYW1lLCAnLnBuZycpCiAgICAgICAgICAgICBpbWFnZSA9IF9yZWFkX2ZpbGUoaW1hZ2Vf
ZmlsZW5hbWUsICdyYicpCiAgICAgICAgICAgICBpZiBzZWxmLl9pbWFnZV9wYXRoOgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0
LnB5CmluZGV4IDVkNTYzY2QzOGU3ZTUyMTMyM2NjMzc1NTEzZDE5OGRmMzRjYzZmYjAuLjM5ODMw
MTgxMjdmYzVmNmE3YmJlNmViMmMyYzE1YjM3NWM1ODc4ZTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTI4
LDYgKzI4LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogIiIiRHVtbXkgUG9ydCBpbXBsZW1lbnRhdGlv
biB1c2VkIGZvciB0ZXN0aW5nLiIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRl
bWVudAogCiBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNzIFRl
c3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIGJhc2VsaW5lX3BhdGgoc2VsZik6CiAgICAgICAg
IGN1cmRpciA9IG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykKICAgICAgICAgc2VsZi50b3BkaXIg
PSBjdXJkaXJbMDpjdXJkaXIuaW5kZXgoIldlYktpdFRvb2xzIildCi0gICAgICAgIHJldHVybiBv
cy5wYXRoLmpvaW4oc2VsZi50b3BkaXIsICdMYXlvdXRUZXN0cycsICdwbGF0Zm9ybScsICd0ZXN0
JykKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLnRvcGRpciwgJ0xheW91dFRlc3Rz
JywgJ3BsYXRmb3JtJywgJ21hYycpCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iYXNlbGluZV9wYXRoKCldCkBAIC02NiwxMiArNjcs
OSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgICAgICAgZXhwZWN0
ZWRfZmlsZW5hbWUsIGFjdHVhbF9maWxlbmFtZSk6CiAgICAgICAgIHJldHVybiAnJwogCi0gICAg
ZGVmIHJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUpOgotICAgICAgICByZXR1
cm4gZmlsZW5hbWUKLQogICAgIGRlZiBleHBlY3RlZF9maWxlbmFtZShzZWxmLCBmaWxlbmFtZSwg
c3VmZml4KToKICAgICAgICAgKGJhc2VuYW1lLCBleHQpID0gb3MucGF0aC5zcGxpdGV4dChmaWxl
bmFtZSkKLSAgICAgICAgcmV0dXJuIGJhc2VuYW1lICsgJy4nICsgc3VmZml4CisgICAgICAgIHJl
dHVybiBiYXNlbmFtZSArICctZXhwZWN0ZWQnICsgc3VmZml4CiAKICAgICBkZWYgbmFtZShzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKQEAgLTEyOSw2ICsxMjcsNyBAQCBjbGFzcyBU
ZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAgICAgc2VsZi5fZHJpdmVyX29wdGlvbnMgPSB0
ZXN0X2RyaXZlcl9vcHRpb25zCiAgICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9wYXRo
CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CisgICAgICAgIHNlbGYuX2ltYWdlX3dyaXR0ZW4g
PSBGYWxzZQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBUcnVlCkBAIC0x
MzcsMTAgKzEzNiwxMyBAQCBjbGFzcyBUZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAgICAg
cmV0dXJuIDAKIAogICAgIGRlZiBydW5fdGVzdChzZWxmLCB1cmksIHRpbWVvdXRtcywgaW1hZ2Vf
aGFzaCk6Ci0gICAgICAgIHJldHVybiAoRmFsc2UsIEZhbHNlLCBpbWFnZV9oYXNoLCAnJywgTm9u
ZSkKKyAgICAgICAgaWYgaW1hZ2VfaGFzaCBpcyBub3QgTm9uZSBhbmQgbm90IHNlbGYuX2ltYWdl
X3dyaXR0ZW46CisgICAgICAgICAgICB3aXRoIG9wZW4oc2VsZi5faW1hZ2VfcGF0aCwgInciKSBh
cyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUoImJhZCBwbmcgZmlsZSBmcm9tIFRlc3REcml2
ZXIiKQorICAgICAgICAgICAgICAgIHNlbGYuX2ltYWdlX3dyaXR0ZW4gPSBUcnVlCiAKKyAgICAg
ICAgcmV0dXJuIChGYWxzZSwgRmFsc2UsIGltYWdlX2hhc2gsICcnLCBOb25lKQogICAgIGRlZiBz
dGFydChzZWxmKToKICAgICAgICAgcGFzcwotCiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAg
IHBhc3MKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDE0ODE3NGRiMzMzMTZiOTdiMzQw
NTI4ZWFlNmRjMGY1ZGQ4MjAxZjUuLjEwMDA0Y2FlMDE4ZmZhZTIyODJjMTk4MzdhZDE4OGY0YThh
Nzc5YzEgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNTc1LDYgKzU3NSw3IEBAIGNs
YXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICB0ZXN0X2FyZ3MucG5nX3BhdGggPSBwbmdfcGF0
aAogCiAgICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgPSBzZWxmLl9vcHRpb25zLm5ld19i
YXNlbGluZQorICAgICAgICB0ZXN0X2FyZ3MudXBkYXRlX2Jhc2VsaW5lID0gc2VsZi5fb3B0aW9u
cy51cGRhdGVfYmFzZWxpbmUKIAogICAgICAgICB0ZXN0X2FyZ3Muc2hvd19zb3VyY2VzID0gc2Vs
Zi5fb3B0aW9ucy5zb3VyY2VzCiAKQEAgLTE1MjEsNiArMTUyMiw5IEBAIGRlZiBwYXJzZV9hcmdz
KGFyZ3M9Tm9uZSk6CiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJTYXZlIGFsbCBn
ZW5lcmF0ZWQgcmVzdWx0cyBhcyBuZXcgYmFzZWxpbmVzICIKICAgICAgICAgICAgICAgICAgImlu
dG8gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeSwgb3ZlcndyaXRpbmcgd2hhdGV2ZXIncyAiCiAgICAg
ICAgICAgICAgICAgICJhbHJlYWR5IHRoZXJlLiIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLS11cGRhdGUtYmFzZWxpbmUiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAg
ICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iVXBkYXRlIGFueSBleGlzdGluZyBiYXNlbGluZXMgd2l0
aCB0aGUgIgorICAgICAgICAgICAgICAgICAiZ2VuZXJhdGVkIHJlc3VsdHMiKSwKICAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm8tc2hvdy1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV9m
YWxzZSIsCiAgICAgICAgICAgICBkZWZhdWx0PVRydWUsIGRlc3Q9InNob3dfcmVzdWx0cyIsCiAg
ICAgICAgICAgICBoZWxwPSJEb24ndCBsYXVuY2ggYSBicm93c2VyIHdpdGggcmVzdWx0cyBhZnRl
ciB0aGUgdGVzdHMgIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkK
aW5kZXggNTA4OWEyZTFlZmEwOWRlNzIzZmMwN2JlZGI5ZDIzMmYyNDk3YjE0MC4uY2FjZjEwMjEx
NDIwYzJmNjFmYzZjMTNjYzk1ZGI2MDFkYzkwZGYwZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC0yOSw2ICsyOSw3IEBACiAKICIiIlVuaXQgdGVzdHMg
Zm9yIHJ1bl93ZWJraXRfdGVzdHMuIiIiCiAKK2ltcG9ydCBjb2RlY3MKIGltcG9ydCBvcwogaW1w
b3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CkBAIC05NSw2ICs5Niw1NCBAQCBjbGFzcyBNYWluVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRib3Rf
b3V0cHV0LmdldCgpLCBbXSkKIAogCitkZWYgX21vY2tlZF9vcGVuKG9yaWdpbmFsX29wZW4sIGZp
bGVfbGlzdCk6CisgICAgZGVmIF93cmFwcGVyKG5hbWUsIG1vZGUsIGVuY29kaW5nKToKKyAgICAg
ICAgaWYgbmFtZS5maW5kKCItZXhwZWN0ZWQuIikgIT0gLTEgYW5kIG1vZGUgPT0gInciOgorICAg
ICAgICAgICAgIyB3ZSBkb24ndCB3YW50IHRvIGFjdHVhbGx5IHdyaXRlIG5ldyBiYXNlbGluZXMs
IHNvIHN0dWIgdGhlc2Ugb3V0CisgICAgICAgICAgICBuYW1lLnJlcGxhY2UoJ1xcJywgJy8nKQor
ICAgICAgICAgICAgZmlsZV9saXN0LmFwcGVuZChuYW1lKQorICAgICAgICAgICAgcmV0dXJuIG9y
aWdpbmFsX29wZW4ob3MuZGV2bnVsbCwgbW9kZSwgZW5jb2RpbmcpCisgICAgICAgIHJldHVybiBv
cmlnaW5hbF9vcGVuKG5hbWUsIG1vZGUsIGVuY29kaW5nKQorICAgIHJldHVybiBfd3JhcHBlcgor
CisKK2RlZiBfbGlzdF9jb250YWluc19zdWJzdHJpbmcobGlzdCwgc3Vic3RyaW5nKToKKyAgICAi
RG9lcyBvbmUgb2YgdGhlIHN0cmluZ3MgaW4gdGhlIGxpc3QgY29udGFpbnMgdGhlIHN1YnN0cmlu
Zz8iCisgICAgcmV0dXJuIGFueShmLmZpbmQoc3Vic3RyaW5nKSAhPSAtMSBmb3IgZiBpbiBsaXN0
KQorCisKK2NsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
dGVzdF9iYXNlbGluZXMoc2VsZik6CisgICAgICAgIGZpbGVfbGlzdCA9IFtdCisgICAgICAgIG9y
aWdpbmFsX29wZW4gPSBjb2RlY3Mub3BlbgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmaWxl
X2xpc3QgPSBbXQorICAgICAgICAgICAgY29kZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2lu
YWxfb3BlbiwgZmlsZV9saXN0KQorICAgICAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3Jt
JywgJ3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0t
dXBkYXRlLWJhc2VsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZmFzdC9jYW52YXMv
Y2FudmFzLXpvb20uaHRtbCddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmls
ZV9saXN0KSwgMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShfbGlzdF9jb250YWluc19z
dWJzdHJpbmcoZmlsZV9saXN0LAorICAgICAgICAgICAgICAgICJMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtem9vbS1leHBlY3RlZC50eHQiKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShfbGlzdF9jb250YWluc19zdWJzdHJpbmcoZmlsZV9saXN0LAorICAgICAgICAgICAgICAg
ICJMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtem9vbS1leHBlY3RlZC5wbmciKSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShfbGlzdF9jb250YWluc19zdWJzdHJpbmcoZmlsZV9s
aXN0LAorICAgICAgICAgICAgICAgICJMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtem9v
bS1leHBlY3RlZC5jaGVja3N1bSIpKQorICAgICAgICAgICAgZmlsZV9saXN0ID0gW10KKyAgICAg
ICAgICAgIGNvZGVjcy5vcGVuID0gX21vY2tlZF9vcGVuKG9yaWdpbmFsX29wZW4sIGZpbGVfbGlz
dCkKKyAgICAgICAgICAgIHBhc3NpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICd0ZXN0JywgJy0tcGl4
ZWwtdGVzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICctLW5ldy1iYXNlbGluZScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2Zhc3QvY2FudmFzL2NhbnZhcy16b29tLmh0bWwnXSkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDMpCisgICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUoX2xpc3RfY29udGFpbnNfc3Vic3RyaW5nKGZpbGVfbGlzdCwK
KyAgICAgICAgICAgICAgICAicGxhdGZvcm0vbWFjL2Zhc3QvY2FudmFzL2NhbnZhcy16b29tLWV4
cGVjdGVkLnR4dCIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKF9saXN0X2NvbnRhaW5z
X3N1YnN0cmluZyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtL21hYy9mYXN0
L2NhbnZhcy9jYW52YXMtem9vbS1leHBlY3RlZC5wbmciKSkKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShfbGlzdF9jb250YWluc19zdWJzdHJpbmcoZmlsZV9saXN0LAorICAgICAgICAgICAg
ICAgICJwbGF0Zm9ybS9tYWMvZmFzdC9jYW52YXMvY2FudmFzLXpvb20tZXhwZWN0ZWQuY2hlY2tz
dW0iKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNvZGVjcy5vcGVuID0gb3JpZ2lu
YWxfb3BlbgorCiBjbGFzcyBUZXN0UnVubmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ZGVmIHRlc3RfcmVzdWx0c19odG1sKHNlbGYpOgogICAgICAgICBtb2NrX3BvcnQgPSBNb2NrKCkK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvaW1hZ2VfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQppbmRleCBiMzdmNGIzMTUwNGY0MWI2
ZjQzODY5ZWFjNTA0Y2RlNzdkZmM4YmMwLi42MWNjNWE2OWJjNWMxN2VkMjg4NjA3YjJiYzQyMjEy
NDI0MmJhODBkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5CkBAIC03Mywx
OCArNzMsMjEgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6
CiAgICAgICAgICAgICBpZiBlcnJuby5FTk9FTlQgIT0gZS5lcnJubzoKICAgICAgICAgICAgICAg
ICByYWlzZQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGZpbGVuYW1lLCBw
bmdfcGF0aCwgY2hlY2tzdW0pOgorICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9maWxlcyhzZWxmLCBm
aWxlbmFtZSwgcG5nX3BhdGgsIGNoZWNrc3VtLCBuZXdfYmFzZWxpbmUpOgogICAgICAgICAiIiJT
YXZlcyBuZXcgYmFzZWxpbmVzIGZvciB0aGUgUE5HIGFuZCBjaGVja3N1bS4KIAogICAgICAgICBB
cmdzOgogICAgICAgICAgIGZpbGVuYW1lOiB0ZXN0IGZpbGVuYW1lCiAgICAgICAgICAgcG5nX3Bh
dGg6IHBhdGggdG8gdGhlIGFjdHVhbCBQTkcgcmVzdWx0IGZpbGUKICAgICAgICAgICBjaGVja3N1
bTogdmFsdWUgb2YgdGhlIGFjdHVhbCBjaGVja3N1bSByZXN1bHQKKyAgICAgICAgICBuZXdfYmFz
ZWxpbmU6IGlzIHRoaXMgYSBuZXcgYmFzZWxpbmUgb3IgYW4gdXBkYXRlZCBvbmU/CiAgICAgICAg
ICIiIgogICAgICAgICB3aXRoIG9wZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBuZ19maWxlOgogICAg
ICAgICAgICAgcG5nX2RhdGEgPSBwbmdfZmlsZS5yZWFkKCkKLSAgICAgICAgc2VsZi5fc2F2ZV9i
YXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lKQot
ICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIGNoZWNrc3VtLCAiLmNo
ZWNrc3VtIiwgZW5jb2Rpbmc9ImFzY2lpIikKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9k
YXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Jhc2VsaW5lPW5ld19iYXNlbGluZSkKKyAgICAg
ICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBjaGVja3N1bSwgIi5jaGVja3N1
bSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLCBu
ZXdfYmFzZWxpbmU9bmV3X2Jhc2VsaW5lKQogCiAgICAgZGVmIF9jcmVhdGVfaW1hZ2VfZGlmZihz
ZWxmLCBwb3J0LCBmaWxlbmFtZSwgY29uZmlndXJhdGlvbik6CiAgICAgICAgICIiIkNyZWF0ZXMg
dGhlIHZpc3VhbCBkaWZmIG9mIHRoZSBleHBlY3RlZC9hY3R1YWwgUE5Hcy4KQEAgLTEyOCw5ICsx
MzEsOSBAQCBjbGFzcyBJbWFnZURpZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAg
ICAgICAgICAgIHJldHVybiBmYWlsdXJlcwogCiAgICAgICAgICMgSWYgd2UncmUgZ2VuZXJhdGlu
ZyBhIG5ldyBiYXNlbGluZSwgd2UgcGFzcy4KLSAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNl
bGluZToKKyAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciB0ZXN0X2FyZ3MudXBk
YXRlX2Jhc2VsaW5lOgogICAgICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9maWxlcyhmaWxl
bmFtZSwgdGVzdF9hcmdzLnBuZ19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9hcmdzLmhhc2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X2FyZ3MuaGFzaCwgdGVzdF9hcmdzLm5ld19iYXNlbGluZSkKICAgICAgICAgICAgIHJl
dHVybiBmYWlsdXJlcwogCiAgICAgICAgICMgQ29tcGFyZSBoYXNoZXMuCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3Rf
dHlwZV9iYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQppbmRleCBjZjBiOWVjZWU3NjE4YTI3YzcxNmY0
Y2JlMzE5MWYyZWFlMjQ4NDhjLi5mMmY4OGE0YzU0MWRjZDBiM2M1ZDEyMWEyNzU2OWRkYjY3MzJj
ODM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKQEAgLTkz
LDcgKzkzLDggQEAgY2xhc3MgVGVzdFR5cGVCYXNlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxm
Ll9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUpKQogICAgICAgICBzZWxmLl9w
b3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG9zLnBhdGguc3BsaXQob3V0cHV0X2ZpbGVuYW1lKVsw
XSkKIAotICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBkYXRhLCBt
b2RpZmllciwgZW5jb2RpbmcpOgorICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9kYXRhKHNlbGYsIGZp
bGVuYW1lLCBkYXRhLCBtb2RpZmllciwgZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3X2Jhc2VsaW5lPVRydWUpOgogICAgICAgICAiIiJTYXZlcyBhIG5ldyBiYXNlbGlu
ZSBmaWxlIGludG8gdGhlIHBvcnQncyBiYXNlbGluZSBkaXJlY3RvcnkuCiAKICAgICAgICAgVGhl
IGZpbGUgd2lsbCBiZSBuYW1lZCBzaW1wbHkgIjx0ZXN0Pi1leHBlY3RlZDxtb2RpZmllcj4iLCBz
dWl0YWJsZSBmb3IKQEAgLTEwNCwxNyArMTA1LDIxIEBAIGNsYXNzIFRlc3RUeXBlQmFzZShvYmpl
Y3QpOgogICAgICAgICAgIGRhdGE6IHJlc3VsdCB0byBiZSBzYXZlZCBhcyB0aGUgbmV3IGJhc2Vs
aW5lCiAgICAgICAgICAgbW9kaWZpZXI6IHR5cGUgb2YgdGhlIHJlc3VsdCBmaWxlLCBlLmcuICIu
dHh0IiBvciAiLnBuZyIKICAgICAgICAgIiIiCi0gICAgICAgIHJlbGF0aXZlX2RpciA9IG9zLnBh
dGguZGlybmFtZSgKLSAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFt
ZShmaWxlbmFtZSkpCiAKLSAgICAgICAgYmFzZWxpbmVfcGF0aCA9IHNlbGYuX3BvcnQuYmFzZWxp
bmVfcGF0aCgpCi0gICAgICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4oYmFzZWxpbmVfcGF0
aCwgcmVsYXRpdmVfZGlyKQotICAgICAgICBvdXRwdXRfZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUo
b3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gKwotICAgICAgICAgICAgc2VsZi5GSUxFTkFN
RV9TVUZGSVhfRVhQRUNURUQgKyBtb2RpZmllcikKKyAgICAgICAgaWYgbmV3X2Jhc2VsaW5lOgor
ICAgICAgICAgICAgcmVsYXRpdmVfZGlyID0gb3MucGF0aC5kaXJuYW1lKAorICAgICAgICAgICAg
ICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSkpCisgICAgICAg
ICAgICBiYXNlbGluZV9wYXRoID0gc2VsZi5fcG9ydC5iYXNlbGluZV9wYXRoKCkKKyAgICAgICAg
ICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4oYmFzZWxpbmVfcGF0aCwgcmVsYXRpdmVfZGly
KQorICAgICAgICAgICAgb3V0cHV0X2ZpbGUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguc3Bs
aXRleHQoZmlsZW5hbWUpWzBdICsKKyAgICAgICAgICAgICAgICBzZWxmLkZJTEVOQU1FX1NVRkZJ
WF9FWFBFQ1RFRCArIG1vZGlmaWVyKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5tYXliZV9tYWtl
X2RpcmVjdG9yeShvdXRwdXRfZGlyKQorICAgICAgICAgICAgb3V0cHV0X3BhdGggPSBvcy5wYXRo
LmpvaW4ob3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGUpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCd3
cml0aW5nIG5ldyBiYXNlbGluZSB0byAiJXMiJyAlIChvdXRwdXRfcGF0aCkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5h
bWUoZmlsZW5hbWUsIG1vZGlmaWVyKQorICAgICAgICAgICAgX2xvZy5kZWJ1ZygndXBkYXRpbmcg
YmFzZWxpbmUgIiVzIicgJSBvdXRwdXRfcGF0aCkKIAotICAgICAgICBzZWxmLl9wb3J0Lm1heWJl
X21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCi0gICAgICAgIG91dHB1dF9wYXRoID0gb3MucGF0
aC5qb2luKG91dHB1dF9kaXIsIG91dHB1dF9maWxlKQotICAgICAgICBfbG9nLmRlYnVnKCd3cml0
aW5nIG5ldyBiYXNlbGluZSB0byAiJXMiJyAlIChvdXRwdXRfcGF0aCkpCiAgICAgICAgIHNlbGYu
X3dyaXRlX2ludG9fZmlsZV9hdF9wYXRoKG91dHB1dF9wYXRoLCBkYXRhLCBlbmNvZGluZykKIAog
ICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUsIG1vZGlmaWVyKToKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlw
ZXMvdGV4dF9kaWZmLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKaW5kZXggOWZlZDQ3NGU0NzI2NTM5ZTFlOWU1YTRj
MGM3ZWEyY2VjMWMxYjEyMS4uYmMwNzg0Yjg0ZGVkM2ZlZTJkNmIzZTA1Njg4N2ZhMDMyZWIwODhm
MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dGVzdF90eXBlcy90ZXh0X2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKQEAgLTg5LDExICs4OSwxMiBA
QCBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAgICAg
ICAgZmFpbHVyZXMgPSBbXQogCiAgICAgICAgICMgSWYgd2UncmUgZ2VuZXJhdGluZyBhIG5ldyBi
YXNlbGluZSwgd2UgcGFzcy4KLSAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZToKKyAg
ICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciB0ZXN0X2FyZ3MudXBkYXRlX2Jhc2Vs
aW5lOgogICAgICAgICAgICAgIyBBbHRob3VnaCBhbGwgdGVzdF9zaGVsbC9EdW1wUmVuZGVyVHJl
ZSBvdXRwdXQgc2hvdWxkIGJlIHV0Zi04LAogICAgICAgICAgICAgIyB3ZSBkbyBub3QgZXZlciBk
ZWNvZGUgaXQgaW5zaWRlIHJ1bi13ZWJraXQtdGVzdHMuICBGb3Igc29tZSB0ZXN0cwogICAgICAg
ICAgICAgIyBEdW1wUmVuZGVyVHJlZSBtYXkgbm90IG91dHB1dCB1dGYtOCB0ZXh0IChlLmcuIHdl
YmFyY2hpdmVzKS4KLSAgICAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFt
ZSwgb3V0cHV0LCAiLnR4dCIsIGVuY29kaW5nPU5vbmUpCisgICAgICAgICAgICBzZWxmLl9zYXZl
X2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIG91dHB1dCwgIi50eHQiLCBlbmNvZGluZz1Ob25lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19iYXNlbGluZT10ZXN0X2Fy
Z3MubmV3X2Jhc2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmVzCiAKICAgICAgICAg
IyBOb3JtYWxpemUgdGV4dCB0byBkaWZmCg==
</data>
<flag name="review"
          id="40041"
          type_id="1"
          status="-"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56287</attachid>
            <date>2010-05-17 16:18:39 -0700</date>
            <delta_ts>2010-05-17 16:43:04 -0700</delta_ts>
            <desc>update w/ feedback from ojan, eseidel, abarth</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>20745</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZTcwNDZkLi40N2ZiZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTAtMDUt
MTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB3aXRoIGludGVudGlv
bmFsbHkgbWlzc2luZyBleHBlY3RhdGlvbnMsIGZvciB1bml0IHRlc3RpbmcKKyAgICAgICAgbmV3
LXJ1bi13ZWJraXQtdGVzdHMuIFNraXAgdGhlIHRlc3QgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5j
ZXMuCisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKworMjAxMC0wNS0xMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCiAKICAgICAgICAg
Q2hhbmdlIGV4cGVjdGF0aW9uIGZyb20gSU1BR0UgdG8gSU1BR0UrVEVYVCBmb3IgQ2hyb21pdW0g
TGludXg7IEknbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL21pc3Npbmct
ZXhwZWN0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwMGI1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IGlu
dGVudGlvbmFsbHkgZG9lc24ndCBoYXZlIGFuIGV4cGVjdGVkIHJlc3VsdCBjaGVja2VkIGluLgor
PC9ib2R5PgorPC9odG1sPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwYWNiNWFiLi4zMWZhNzYyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yMDUsNiArMjA1LDkgQEAgV09OVEZJWCBTS0lQIDogamF2YS9sYzMgPSBURVhUCiAvLyBUT0RP
OiBtb3ZlIHRvIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4Ly4KIFdPTlRGSVggU0tJUCBNQUMgV0lO
IDogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC90ZXh0L2Nocm9taXVtLWxpbnV4LWZvbnRjb25maWct
cmVuZGVyc3R5bGUuaHRtbCA9IEZBSUwKIAorLy8gdGhpcyB0ZXN0IGlzIHVzZWQgb25seSBieSB0
aGUgdW5pdCB0ZXN0cyBmb3IgcnVuLXdlYmtpdC10ZXN0cworV09OVEZJWCBTS0lQIDogZmFzdC9o
YXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbCA9IEZBSUwKKwogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8v
IFdPTlRGSVggVEVTVFMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4
IDI5NTA4MGYuLjg0ZWU2MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC02MDI5LDMg
KzYwMjksNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgtZGVmYXVsdC5o
dG1sCiAjIFNWRyByZXN1bHRzIGFyZSBvbmUgcGl4ZWwgb2ZmIG9uIHRoZSA2NC1iaXQgYm90CiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTAyMgogc3ZnL2N1c3Rv
bS9zdmctZm9udHMtd2l0aC1uby1lbGVtZW50LXJlZmVyZW5jZS5odG1sCisKKyMgdXNlZCBvbmx5
IGJ5IG5ldy1ydW4td2Via2l0LXRlc3RzIHVuaXQgdGVzdHMKK2Zhc3QvaGFybmVzcy9taXNzaW5n
LWV4cGVjdGF0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNjEyNmQ0NC4u
MjdjMTA3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTE4MSwzICsxODEsNiBAQCBm
YXN0L2Nzcy9mb250LWZhY2Utd29mZi5odG1sCiAKICMgRXZlbnRTZW5kaW5nQ29udHJvbGxlciBk
b2VzIG5vdCBzZW5kIGV2ZW50cyBvbiBhcmVhcyBvdXRzaWRlIHRoZSBXZWJWaWV3Lgogc2Nyb2xs
YmFycy9zY3JvbGxiYXItY2xpY2stZG9lcy1ub3QtYmx1ci1jb250ZW50Lmh0bWwKKworIyB1c2Vk
IG9ubHkgYnkgbmV3LXJ1bi13ZWJraXQtdGVzdHMgdW5pdCB0ZXN0cworZmFzdC9oYXJuZXNzL21p
c3NpbmctZXhwZWN0YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggM2RmNzdj
Mi4uNDdjNDM3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01MDk4LDMgKzUwOTgsNiBA
QCBmYXN0L2pzL3NwdXRuaWsvVW5pY29kZS9Vbmljb2RlXzIxOC9TNy42X0E1LjNfVDIuaHRtbAog
CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODY1NgogZWRpdGlu
Zy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbAorCisjIHVzZWQgb25seSBieSBuZXctcnVuLXdl
YmtpdC10ZXN0cyB1bml0IHRlc3RzCitmYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IGUyMmM1MzYuLjc2YWU0OWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NzIsMyArODcyLDYgQEAgZmFzdC9jc3MvZGlzcGxh
eS1ub25lLWlubGluZS1zdHlsZS1jaGFuZ2UtY3Jhc2guaHRtbAogCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODc5NSAtIGRvZXNuJ3QgcHJpbnQgUGFpbnRFdmVu
dCBpbnN0cnVtZW50YXRpb24gb3V0cHV0CiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQuaHRtbAor
CisjIHVzZWQgb25seSBieSBuZXctcnVuLXdlYmtpdC10ZXN0cyB1bml0IHRlc3RzCitmYXN0L2hh
cm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9D
aGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggZmY4ZjNlYS4uMTIxMjZmYiAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA1LTExICBEaXJrIFByYW5rZSAgPGRwcmFua2VA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIG5ldy1ydW4td2Via2l0LXRlc3RzOiBpbXBsZW1lbnQgJy0tcmVzZXQtcmVzdWx0cycg
ZmxhZyB0byBjb21wbGVtZW50CisgICAgICAgIHRoZSAnLS1uZXctYmFzZWxpbmUnIGZsYWcuICct
LW5ldy1iYXNlbGluZScgd2lsbCBhbHdheXMgd3JpdGUgdGhlCisgICAgICAgIHJlc3VsdHMgaW50
byB0aGUgcGxhdGZvcm0gZGlyZWN0b3J5OyAnLS1yZXNldC1yZXN1bHRzJyB3aWxsIHVwZGF0ZSB0
aGUKKyAgICAgICAgZXhpc3RpbmcgYmFzZWxpbmUgd2hlcmV2ZXIgaXQgaGFwcGVucyB0byBiZS4g
Qm90aCBzZXRzIG9mIGJlaGF2aW9yCisgICAgICAgIGFyZSB1c2VmdWwgaW4gZGlmZmVyZW50IGNp
cmN1bXN0YW5jZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4ODc5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVz
dC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3Rf
dHlwZXMvaW1hZ2VfZGlmZi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weToKKwogMjAxMC0wNS0xMiAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggNjk1N2ZjZC4uMDlmOWFjNyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90
aHJlYWQucHkKQEAgLTQyNSw3ICs0MjUsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFk
aW5nLlRocmVhZCk6CiAgICAgICAgICMgYXJlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAo
T3RoZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAgICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBi
ZSBjb3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQogICAgICAgICBpbWFnZV9oYXNoID0gdGVzdF9p
bmZvLmltYWdlX2hhc2goKQotICAgICAgICBpZiBpbWFnZV9oYXNoIGFuZCBzZWxmLl90ZXN0X2Fy
Z3MubmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiAoaW1hZ2VfaGFzaCBhbmQKKyAgICAgICAgICAg
IChzZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHNlbGYuX3Rlc3RfYXJncy5yZXNldF9y
ZXN1bHRzKSk6CiAgICAgICAgICAgICBpbWFnZV9oYXNoID0gIiIKICAgICAgICAgc3RhcnQgPSB0
aW1lLnRpbWUoKQogICAgICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2NoZWNrc3VtLCBvdXRw
dXQsIGVycm9yID0gXApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGlu
Z191bml0dGVzdC5weQppbmRleCBkYmExMTk0Li4zODA0MjEwIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGlu
Z191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weQpAQCAtMjM5LDYgKzIzOSw4
IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rf
cHJpbnRfdGVzdF9yZXN1bHQoc2VsZik6CiAgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQoJ2Zv
by5odG1sJykKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsn
LS1wcmludCcsICdub3RoaW5nJ10pCisgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQob3MucGF0
aC5qb2luKHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnZm9vLmh0bWwnKSkKICAgICAgICAgcHJpbnRlci5wcmlu
dF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShlcnIuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKaW5kZXggMmM5Mjg2NS4uZTAxYmQy
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9kcnlydW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9kcnlydW4ucHkKQEAgLTE0Myw3ICsxNDMsNyBAQCBjbGFzcyBEcnlydW5Ecml2
ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICB0ZXh0X2ZpbGVuYW1lID0gc2VsZi5fcG9ydC5leHBl
Y3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcudHh0JykKICAgICAgICAgdGV4dF9vdXRwdXQgPSBf
cmVhZF9maWxlKHRleHRfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgaW1hZ2VfaGFzaDoKKyAgICAg
ICAgaWYgaW1hZ2VfaGFzaCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGltYWdlX2ZpbGVuYW1l
ID0gc2VsZi5fcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcucG5nJykKICAgICAg
ICAgICAgIGltYWdlID0gX3JlYWRfZmlsZShpbWFnZV9maWxlbmFtZSwgJ3JiJykKICAgICAgICAg
ICAgIGlmIHNlbGYuX2ltYWdlX3BhdGg6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggNWQ1NjNjZC4uMWQxMWY0
MyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC90ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvdGVzdC5weQpAQCAtMjgsNiArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAiIiJE
dW1teSBQb3J0IGltcGxlbWVudGF0aW9uIHVzZWQgZm9yIHRlc3RpbmcuIiIiCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CiAKIGltcG9ydCBvcwogaW1wb3J0IHRpbWUKQEAg
LTQ3LDcgKzQ4LDcgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgYmFzZWxp
bmVfcGF0aChzZWxmKToKICAgICAgICAgY3VyZGlyID0gb3MucGF0aC5hYnNwYXRoKF9fZmlsZV9f
KQogICAgICAgICBzZWxmLnRvcGRpciA9IGN1cmRpclswOmN1cmRpci5pbmRleCgiV2ViS2l0VG9v
bHMiKV0KLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLnRvcGRpciwgJ0xheW91dFRl
c3RzJywgJ3BsYXRmb3JtJywgJ3Rlc3QnKQorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNl
bGYudG9wZGlyLCAnTGF5b3V0VGVzdHMnLCAncGxhdGZvcm0nLCAnbWFjJykKIAogICAgIGRlZiBi
YXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJhc2VsaW5l
X3BhdGgoKV0KQEAgLTY2LDEyICs2Nyw5IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKToKICAg
ICAgICAgcmV0dXJuICcnCiAKLSAgICBkZWYgcmVsYXRpdmVfdGVzdF9maWxlbmFtZShzZWxmLCBm
aWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBmaWxlbmFtZQotCiAgICAgZGVmIGV4cGVjdGVkX2Zp
bGVuYW1lKHNlbGYsIGZpbGVuYW1lLCBzdWZmaXgpOgogICAgICAgICAoYmFzZW5hbWUsIGV4dCkg
PSBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKQotICAgICAgICByZXR1cm4gYmFzZW5hbWUgKyAn
LicgKyBzdWZmaXgKKyAgICAgICAgcmV0dXJuIGJhc2VuYW1lICsgJy1leHBlY3RlZCcgKyBzdWZm
aXgKIAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQpAQCAt
MTI5LDYgKzEyNyw3IEBAIGNsYXNzIFRlc3REcml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICBz
ZWxmLl9kcml2ZXJfb3B0aW9ucyA9IHRlc3RfZHJpdmVyX29wdGlvbnMKICAgICAgICAgc2VsZi5f
aW1hZ2VfcGF0aCA9IGltYWdlX3BhdGgKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAg
ICAgc2VsZi5faW1hZ2Vfd3JpdHRlbiA9IEZhbHNlCiAKICAgICBkZWYgcG9sbChzZWxmKToKICAg
ICAgICAgcmV0dXJuIFRydWUKQEAgLTEzNyw2ICsxMzYsMTUgQEAgY2xhc3MgVGVzdERyaXZlcihi
YXNlLkRyaXZlcik6CiAgICAgICAgIHJldHVybiAwCiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwg
dXJpLCB0aW1lb3V0bXMsIGltYWdlX2hhc2gpOgorICAgICAgICBpZiBub3Qgc2VsZi5faW1hZ2Vf
d3JpdHRlbiBhbmQgc2VsZi5fcG9ydC5fb3B0aW9ucy5waXhlbF90ZXN0czoKKyAgICAgICAgICAg
IHdpdGggb3BlbihzZWxmLl9pbWFnZV9wYXRoLCAidyIpIGFzIGY6CisgICAgICAgICAgICAgICAg
Zi53cml0ZSgiYmFkIHBuZyBmaWxlIGZyb20gVGVzdERyaXZlciIpCisgICAgICAgICAgICAgICAg
c2VsZi5faW1hZ2Vfd3JpdHRlbiA9IFRydWUKKworICAgICAgICAjIFdlIHNwZWNpYWwtY2FzZSB0
aGlzIGJlY2F1c2Ugd2UgY2FuJ3QgZmFrZSBhbiBpbWFnZSBoYXNoIGZvciBhCisgICAgICAgICMg
bWlzc2luZyBleHBlY3RhdGlvbi4KKyAgICAgICAgaWYgdXJpLmZpbmQoJ2Zhc3QvaGFybmVzcy9t
aXNzaW5nLWV4cGVjdGF0aW9uJykgIT0gLTE6CisgICAgICAgICAgICByZXR1cm4gKEZhbHNlLCBG
YWxzZSwgJ2RlYWRiZWVmZGVhZGJlZWZkZWFkYmVlZmRlYWRiZWVmJywgJycsIE5vbmUpCiAgICAg
ICAgIHJldHVybiAoRmFsc2UsIEZhbHNlLCBpbWFnZV9oYXNoLCAnJywgTm9uZSkKIAogICAgIGRl
ZiBzdGFydChzZWxmKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDE0ODE3NGQuLjZk
NTU0M2QgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNTc1LDYgKzU3NSw3IEBAIGNs
YXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICB0ZXN0X2FyZ3MucG5nX3BhdGggPSBwbmdfcGF0
aAogCiAgICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgPSBzZWxmLl9vcHRpb25zLm5ld19i
YXNlbGluZQorICAgICAgICB0ZXN0X2FyZ3MucmVzZXRfcmVzdWx0cyA9IHNlbGYuX29wdGlvbnMu
cmVzZXRfcmVzdWx0cwogCiAgICAgICAgIHRlc3RfYXJncy5zaG93X3NvdXJjZXMgPSBzZWxmLl9v
cHRpb25zLnNvdXJjZXMKIApAQCAtMTUyMSw2ICsxNTIyLDkgQEAgZGVmIHBhcnNlX2FyZ3MoYXJn
cz1Ob25lKToKICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlNhdmUgYWxsIGdlbmVy
YXRlZCByZXN1bHRzIGFzIG5ldyBiYXNlbGluZXMgIgogICAgICAgICAgICAgICAgICAiaW50byB0
aGUgcGxhdGZvcm0gZGlyZWN0b3J5LCBvdmVyd3JpdGluZyB3aGF0ZXZlcidzICIKICAgICAgICAg
ICAgICAgICAgImFscmVhZHkgdGhlcmUuIiksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9u
KCItLXJlc2V0LXJlc3VsdHMiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgZGVm
YXVsdD1GYWxzZSwgaGVscD0iUmVzZXQgYW55IGV4aXN0aW5nIGJhc2VsaW5lcyB0byB0aGUgIgor
ICAgICAgICAgICAgICAgICAiZ2VuZXJhdGVkIHJlc3VsdHMiKSwKICAgICAgICAgb3B0cGFyc2Uu
bWFrZV9vcHRpb24oIi0tbm8tc2hvdy1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCiAg
ICAgICAgICAgICBkZWZhdWx0PVRydWUsIGRlc3Q9InNob3dfcmVzdWx0cyIsCiAgICAgICAgICAg
ICBoZWxwPSJEb24ndCBsYXVuY2ggYSBicm93c2VyIHdpdGggcmVzdWx0cyBhZnRlciB0aGUgdGVz
dHMgIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggZTA1
MGNiYS4uMDkyNTFhOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0
LnB5CkBAIC0yOSw2ICsyOSw3IEBACiAKICIiIlVuaXQgdGVzdHMgZm9yIHJ1bl93ZWJraXRfdGVz
dHMuIiIiCiAKK2ltcG9ydCBjb2RlY3MKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHVu
aXR0ZXN0CkBAIC05NSw2ICs5Niw2NiBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRib3Rfb3V0cHV0LmdldCgpLCBbXSkK
IAogCitkZWYgX21vY2tlZF9vcGVuKG9yaWdpbmFsX29wZW4sIGZpbGVfbGlzdCk6CisgICAgZGVm
IF93cmFwcGVyKG5hbWUsIG1vZGUsIGVuY29kaW5nKToKKyAgICAgICAgaWYgbmFtZS5maW5kKCIt
ZXhwZWN0ZWQuIikgIT0gLTEgYW5kIG1vZGUgPT0gInciOgorICAgICAgICAgICAgIyB3ZSBkb24n
dCB3YW50IHRvIGFjdHVhbGx5IHdyaXRlIG5ldyBiYXNlbGluZXMsIHNvIHN0dWIgdGhlc2Ugb3V0
CisgICAgICAgICAgICBuYW1lLnJlcGxhY2UoJ1xcJywgJy8nKQorICAgICAgICAgICAgZmlsZV9s
aXN0LmFwcGVuZChuYW1lKQorICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsX29wZW4ob3MuZGV2
bnVsbCwgbW9kZSwgZW5jb2RpbmcpCisgICAgICAgIHJldHVybiBvcmlnaW5hbF9vcGVuKG5hbWUs
IG1vZGUsIGVuY29kaW5nKQorICAgIHJldHVybiBfd3JhcHBlcgorCisKK2NsYXNzIFJlYmFzZWxp
bmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgYXNzZXJ0QmFzZWxpbmUoc2VsZiwg
ZmlsZV9saXN0LCBiYXNlbGluZSk6CisgICAgICAgICJhc3NlcnQgdGhhdCB0aGUgZmlsZV9saXN0
IGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgYmFzZWxpbmUuIiIiCisgICAgICAgIHJldHVybiBhbnko
Zi5maW5kKGJhc2VsaW5lKSAhPSAtMSBmb3IgZiBpbiBmaWxlX2xpc3QpCisKKyAgICBkZWYgdGVz
dF9iYXNlbGluZXMoc2VsZik6CisgICAgICAgIGZpbGVfbGlzdCA9IFtdCisgICAgICAgIG9yaWdp
bmFsX29wZW4gPSBjb2RlY3Mub3BlbgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRlc3Qg
dGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24K
KyAgICAgICAgICAgICMgaXMgbXNzaW5nLCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9j
YXRpb24uCisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAgICAgY29kZWNzLm9w
ZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQorICAgICAgICAgICAg
cGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJy0tcmVzZXQtcmVzdWx0cycsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Zhc3QvY2FudmFzL2NhbnZhcy16b29tLmh0bWwnLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbCddKQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZV9saXN0KSwgNikKKyAgICAgICAgICAg
IGJhc2VsaW5lID0gIkxheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy16b29tLWV4cGVjdGVk
IgorICAgICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZShmaWxlX2xpc3QsIGJhc2VsaW5lICsg
Ii50eHQiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZShmaWxlX2xpc3QsIGJhc2Vs
aW5lICsgIi5wbmciKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZShmaWxlX2xpc3Qs
IGJhc2VsaW5lICsgIi5jaGVja3N1bSIpCisgICAgICAgICAgICBiYXNlbGluZSA9ICJMYXlvdXRU
ZXN0cy9mYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi1leHBlY3RlZCIKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBiYXNlbGluZSArICIudHh0IikKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBiYXNlbGluZSArICIucG5n
IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBiYXNlbGluZSAr
ICIuY2hlY2tzdW0iKQorCisgICAgICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgdGhlIHBs
YXRmb3JtIGV4cGVjdGF0aW9ucy4gSWYgdGhlIGV4cGVjdGF0aW9uCisgICAgICAgICAgICAjIGlz
IG1zc2luZywgdGhlbiBjcmVhdGUgYSBuZXcgZXhwZWN0YXRpb24gaW4gdGhlIHBsYXRmb3JtIGRp
ci4KKyAgICAgICAgICAgIGZpbGVfbGlzdCA9IFtdCisgICAgICAgICAgICBjb2RlY3Mub3BlbiA9
IF9tb2NrZWRfb3BlbihvcmlnaW5hbF9vcGVuLCBmaWxlX2xpc3QpCisgICAgICAgICAgICBwYXNz
aW5nX3J1bihbJy0tcGxhdGZvcm0nLCAndGVzdCcsICctLXBpeGVsLXRlc3RzJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAnLS1uZXctYmFzZWxpbmUnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICdmYXN0L2NhbnZhcy9jYW52YXMtem9vbS5odG1sJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAnZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbCddKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZV9saXN0KSwgNikKKyAgICAgICAgICAgIGJhc2Vs
aW5lID0gKCJMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvIiAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJmYXN0L2NhbnZhcy9jYW52YXMtem9vbS1leHBlY3RlZCIpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLnR4dCIpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLnBuZyIpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLmNoZWNr
c3VtIikKKyAgICAgICAgICAgIGJhc2VsaW5lID0gKCJMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
IgorICAgICAgICAgICAgICAgICAgICAgICAgImZhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVjdGF0
aW9uLWV4cGVjdGVkIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0
LCBiYXNlbGluZSArICIudHh0IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmls
ZV9saXN0LCBiYXNlbGluZSArICIucG5nIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxp
bmUoZmlsZV9saXN0LCBiYXNlbGluZSArICIuY2hlY2tzdW0iKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgY29kZWNzLm9wZW4gPSBvcmlnaW5hbF9vcGVuCisKIGNsYXNzIFRlc3RSdW5u
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9yZXN1bHRzX2h0bWwoc2Vs
Zik6CiAgICAgICAgIG1vY2tfcG9ydCA9IE1vY2soKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFn
ZV9kaWZmLnB5CmluZGV4IGIzN2Y0YjMuLmIxODY4OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVz
L2ltYWdlX2RpZmYucHkKQEAgLTczLDE4ICs3MywyMyBAQCBjbGFzcyBJbWFnZURpZmYodGVzdF90
eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAgICAgICAgICAgIGlmIGVycm5vLkVOT0VOVCAhPSBl
LmVycm5vOgogICAgICAgICAgICAgICAgIHJhaXNlCiAKLSAgICBkZWYgX3NhdmVfYmFzZWxpbmVf
ZmlsZXMoc2VsZiwgZmlsZW5hbWUsIHBuZ19wYXRoLCBjaGVja3N1bSk6CisgICAgZGVmIF9zYXZl
X2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGZpbGVuYW1lLCBwbmdfcGF0aCwgY2hlY2tzdW0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNlbGluZSk6CiAgICAgICAg
ICIiIlNhdmVzIG5ldyBiYXNlbGluZXMgZm9yIHRoZSBQTkcgYW5kIGNoZWNrc3VtLgogCiAgICAg
ICAgIEFyZ3M6CiAgICAgICAgICAgZmlsZW5hbWU6IHRlc3QgZmlsZW5hbWUKICAgICAgICAgICBw
bmdfcGF0aDogcGF0aCB0byB0aGUgYWN0dWFsIFBORyByZXN1bHQgZmlsZQogICAgICAgICAgIGNo
ZWNrc3VtOiB2YWx1ZSBvZiB0aGUgYWN0dWFsIGNoZWNrc3VtIHJlc3VsdAorICAgICAgICAgIGdl
bmVyYXRlX25ld19iYXNlbGluZTogaXMgdGhpcyBhIG5ldyBiYXNlbGluZSBvciBhbiB1cGRhdGVk
IG9uZT8KICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggb3BlbihwbmdfcGF0aCwgInJiIikgYXMg
cG5nX2ZpbGU6CiAgICAgICAgICAgICBwbmdfZGF0YSA9IHBuZ19maWxlLnJlYWQoKQotICAgICAg
ICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIHBuZ19kYXRhLCAiLnBuZyIsIGVu
Y29kaW5nPU5vbmUpCi0gICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwg
Y2hlY2tzdW0sICIuY2hlY2tzdW0iLCBlbmNvZGluZz0iYXNjaWkiKQorICAgICAgICBzZWxmLl9z
YXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIHBuZ19kYXRhLCAiLnBuZyIsIGVuY29kaW5nPU5v
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxp
bmU9Z2VuZXJhdGVfbmV3X2Jhc2VsaW5lKQorICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2Rh
dGEoZmlsZW5hbWUsIGNoZWNrc3VtLCAiLmNoZWNrc3VtIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU9Z2VuZXJhdGVfbmV3X2Jhc2VsaW5lKQogCiAg
ICAgZGVmIF9jcmVhdGVfaW1hZ2VfZGlmZihzZWxmLCBwb3J0LCBmaWxlbmFtZSwgY29uZmlndXJh
dGlvbik6CiAgICAgICAgICIiIkNyZWF0ZXMgdGhlIHZpc3VhbCBkaWZmIG9mIHRoZSBleHBlY3Rl
ZC9hY3R1YWwgUE5Hcy4KQEAgLTEyOCw5ICsxMzMsOSBAQCBjbGFzcyBJbWFnZURpZmYodGVzdF90
eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlcwogCiAg
ICAgICAgICMgSWYgd2UncmUgZ2VuZXJhdGluZyBhIG5ldyBiYXNlbGluZSwgd2UgcGFzcy4KLSAg
ICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZToKKyAgICAgICAgaWYgdGVzdF9hcmdzLm5l
d19iYXNlbGluZSBvciB0ZXN0X2FyZ3MucmVzZXRfcmVzdWx0czoKICAgICAgICAgICAgIHNlbGYu
X3NhdmVfYmFzZWxpbmVfZmlsZXMoZmlsZW5hbWUsIHRlc3RfYXJncy5wbmdfcGF0aCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYXJncy5oYXNoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9hcmdzLmhhc2gsIHRlc3RfYXJncy5uZXdf
YmFzZWxpbmUpCiAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAgICAjIENvbXBh
cmUgaGFzaGVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKaW5k
ZXggY2YwYjllYy4uYWQ1ZDhjYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlw
ZV9iYXNlLnB5CkBAIC05Myw3ICs5Myw4IEBAIGNsYXNzIFRlc3RUeXBlQmFzZShvYmplY3QpOgog
ICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkK
ICAgICAgICAgc2VsZi5fcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5wYXRoLnNwbGl0KG91
dHB1dF9maWxlbmFtZSlbMF0pCiAKLSAgICBkZWYgX3NhdmVfYmFzZWxpbmVfZGF0YShzZWxmLCBm
aWxlbmFtZSwgZGF0YSwgbW9kaWZpZXIsIGVuY29kaW5nKToKKyAgICBkZWYgX3NhdmVfYmFzZWxp
bmVfZGF0YShzZWxmLCBmaWxlbmFtZSwgZGF0YSwgbW9kaWZpZXIsIGVuY29kaW5nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNlbGluZT1UcnVlKToKICAgICAg
ICAgIiIiU2F2ZXMgYSBuZXcgYmFzZWxpbmUgZmlsZSBpbnRvIHRoZSBwb3J0J3MgYmFzZWxpbmUg
ZGlyZWN0b3J5LgogCiAgICAgICAgIFRoZSBmaWxlIHdpbGwgYmUgbmFtZWQgc2ltcGx5ICI8dGVz
dD4tZXhwZWN0ZWQ8bW9kaWZpZXI+Iiwgc3VpdGFibGUgZm9yCkBAIC0xMDMsMTggKzEwNCwyNSBA
QCBjbGFzcyBUZXN0VHlwZUJhc2Uob2JqZWN0KToKICAgICAgICAgICBmaWxlbmFtZTogcGF0aCB0
byB0aGUgdGVzdCBmaWxlCiAgICAgICAgICAgZGF0YTogcmVzdWx0IHRvIGJlIHNhdmVkIGFzIHRo
ZSBuZXcgYmFzZWxpbmUKICAgICAgICAgICBtb2RpZmllcjogdHlwZSBvZiB0aGUgcmVzdWx0IGZp
bGUsIGUuZy4gIi50eHQiIG9yICIucG5nIgorICAgICAgICAgIGVuY29kaW5nOiBmaWxlIGVuY29k
aW5nIChub25lLCAidXRmLTgiLCBldGMuKQorICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNlbGlu
ZTogc2hvdWxkIHdlIGdlbmVyYXRlIGEgbmV3LCBwbGF0Zm9ybS1zcGVjaWZpYworICAgICAgICAg
ICAgYmFzZWxpbmUsIG9yIHVwZGF0ZSB0aGUgZXhpc3RpbmcgYmFzZWxpbmU/CiAgICAgICAgICIi
IgotICAgICAgICByZWxhdGl2ZV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoCi0gICAgICAgICAgICBz
ZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUpKQogCi0gICAgICAgIGJh
c2VsaW5lX3BhdGggPSBzZWxmLl9wb3J0LmJhc2VsaW5lX3BhdGgoKQotICAgICAgICBvdXRwdXRf
ZGlyID0gb3MucGF0aC5qb2luKGJhc2VsaW5lX3BhdGgsIHJlbGF0aXZlX2RpcikKLSAgICAgICAg
b3V0cHV0X2ZpbGUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUp
WzBdICsKLSAgICAgICAgICAgIHNlbGYuRklMRU5BTUVfU1VGRklYX0VYUEVDVEVEICsgbW9kaWZp
ZXIpCisgICAgICAgIGlmIGdlbmVyYXRlX25ld19iYXNlbGluZToKKyAgICAgICAgICAgIHJlbGF0
aXZlX2RpciA9IG9zLnBhdGguZGlybmFtZSgKKyAgICAgICAgICAgICAgICBzZWxmLl9wb3J0LnJl
bGF0aXZlX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUpKQorICAgICAgICAgICAgYmFzZWxpbmVfcGF0
aCA9IHNlbGYuX3BvcnQuYmFzZWxpbmVfcGF0aCgpCisgICAgICAgICAgICBvdXRwdXRfZGlyID0g
b3MucGF0aC5qb2luKGJhc2VsaW5lX3BhdGgsIHJlbGF0aXZlX2RpcikKKyAgICAgICAgICAgIG91
dHB1dF9maWxlID0gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsw
XSArCisgICAgICAgICAgICAgICAgc2VsZi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBtb2Rp
ZmllcikKKyAgICAgICAgICAgIHNlbGYuX3BvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3V0cHV0
X2RpcikKKyAgICAgICAgICAgIG91dHB1dF9wYXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIs
IG91dHB1dF9maWxlKQorICAgICAgICAgICAgX2xvZy5kZWJ1Zygnd3JpdGluZyBuZXcgYmFzZWxp
bmUgcmVzdWx0ICIlcyInICUgKG91dHB1dF9wYXRoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIG91dHB1dF9wYXRoID0gc2VsZi5fcG9ydC5leHBlY3RlZF9maWxlbmFtZShmaWxlbmFtZSwg
bW9kaWZpZXIpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCdyZXNldHRpbmcgYmFzZWxpbmUgcmVz
dWx0ICIlcyInICUgb3V0cHV0X3BhdGgpCiAKLSAgICAgICAgc2VsZi5fcG9ydC5tYXliZV9tYWtl
X2RpcmVjdG9yeShvdXRwdXRfZGlyKQotICAgICAgICBvdXRwdXRfcGF0aCA9IG9zLnBhdGguam9p
bihvdXRwdXRfZGlyLCBvdXRwdXRfZmlsZSkKLSAgICAgICAgX2xvZy5kZWJ1Zygnd3JpdGluZyBu
ZXcgYmFzZWxpbmUgdG8gIiVzIicgJSAob3V0cHV0X3BhdGgpKQogICAgICAgICBzZWxmLl93cml0
ZV9pbnRvX2ZpbGVfYXRfcGF0aChvdXRwdXRfcGF0aCwgZGF0YSwgZW5jb2RpbmcpCiAKICAgICBk
ZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYsIGZpbGVuYW1lLCBtb2RpZmllcik6CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rl
eHRfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvdGV4dF9kaWZmLnB5CmluZGV4IDlmZWQ0NzQuLjE4Zjc0YjggMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4
dF9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CkBAIC04OSwxMSArODksMTIgQEAgY2xhc3MgVGVzdFRl
eHREaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgIGZhaWx1cmVzID0g
W10KIAogICAgICAgICAjIElmIHdlJ3JlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUsIHdlIHBh
c3MuCi0gICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmU6CisgICAgICAgIGlmIHRlc3Rf
YXJncy5uZXdfYmFzZWxpbmUgb3IgdGVzdF9hcmdzLnJlc2V0X3Jlc3VsdHM6CiAgICAgICAgICAg
ICAjIEFsdGhvdWdoIGFsbCB0ZXN0X3NoZWxsL0R1bXBSZW5kZXJUcmVlIG91dHB1dCBzaG91bGQg
YmUgdXRmLTgsCiAgICAgICAgICAgICAjIHdlIGRvIG5vdCBldmVyIGRlY29kZSBpdCBpbnNpZGUg
cnVuLXdlYmtpdC10ZXN0cy4gIEZvciBzb21lIHRlc3RzCiAgICAgICAgICAgICAjIER1bXBSZW5k
ZXJUcmVlIG1heSBub3Qgb3V0cHV0IHV0Zi04IHRleHQgKGUuZy4gd2ViYXJjaGl2ZXMpLgotICAg
ICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBvdXRwdXQsICIudHh0
IiwgZW5jb2Rpbmc9Tm9uZSkKKyAgICAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShm
aWxlbmFtZSwgb3V0cHV0LCAiLnR4dCIsIGVuY29kaW5nPU5vbmUsCisgICAgICAgICAgICAgICAg
Z2VuZXJhdGVfbmV3X2Jhc2VsaW5lPXRlc3RfYXJncy5uZXdfYmFzZWxpbmUpCiAgICAgICAgICAg
ICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAgICAjIE5vcm1hbGl6ZSB0ZXh0IHRvIGRpZmYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56289</attachid>
            <date>2010-05-17 16:43:04 -0700</date>
            <delta_ts>2010-05-18 15:37:14 -0700</delta_ts>
            <desc>change chromium expectation from WONTFIX SKIP = FAIL to WONTFIX = MISSING</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>20743</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZTcwNDZkLi40N2ZiZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTAtMDUt
MTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB3aXRoIGludGVudGlv
bmFsbHkgbWlzc2luZyBleHBlY3RhdGlvbnMsIGZvciB1bml0IHRlc3RpbmcKKyAgICAgICAgbmV3
LXJ1bi13ZWJraXQtdGVzdHMuIFNraXAgdGhlIHRlc3QgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5j
ZXMuCisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKworMjAxMC0wNS0xMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCiAKICAgICAgICAg
Q2hhbmdlIGV4cGVjdGF0aW9uIGZyb20gSU1BR0UgdG8gSU1BR0UrVEVYVCBmb3IgQ2hyb21pdW0g
TGludXg7IEknbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL21pc3Npbmct
ZXhwZWN0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwMGI1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IGlu
dGVudGlvbmFsbHkgZG9lc24ndCBoYXZlIGFuIGV4cGVjdGVkIHJlc3VsdCBjaGVja2VkIGluLgor
PC9ib2R5PgorPC9odG1sPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwYWNiNWFiLi5jNTVmYzI5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yMDUsNiArMjA1LDkgQEAgV09OVEZJWCBTS0lQIDogamF2YS9sYzMgPSBURVhUCiAvLyBUT0RP
OiBtb3ZlIHRvIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4Ly4KIFdPTlRGSVggU0tJUCBNQUMgV0lO
IDogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC90ZXh0L2Nocm9taXVtLWxpbnV4LWZvbnRjb25maWct
cmVuZGVyc3R5bGUuaHRtbCA9IEZBSUwKIAorLy8gdGhpcyB0ZXN0IGlzIHVzZWQgb25seSBieSB0
aGUgdW5pdCB0ZXN0cyBmb3IgcnVuLXdlYmtpdC10ZXN0cworV09OVEZJWCA6IGZhc3QvaGFybmVz
cy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNTSU5HCisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBX
T05URklYIFRFU1RTCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCAy
OTUwODBmLi44NGVlNjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNjAyOSwzICs2
MDI5LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLWRlZmF1bHQuaHRt
bAogIyBTVkcgcmVzdWx0cyBhcmUgb25lIHBpeGVsIG9mZiBvbiB0aGUgNjQtYml0IGJvdAogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkwMjIKIHN2Zy9jdXN0b20v
c3ZnLWZvbnRzLXdpdGgtbm8tZWxlbWVudC1yZWZlcmVuY2UuaHRtbAorCisjIHVzZWQgb25seSBi
eSBuZXctcnVuLXdlYmtpdC10ZXN0cyB1bml0IHRlc3RzCitmYXN0L2hhcm5lc3MvbWlzc2luZy1l
eHBlY3RhdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDYxMjZkNDQuLjI3
YzEwN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xODEsMyArMTgxLDYgQEAgZmFz
dC9jc3MvZm9udC1mYWNlLXdvZmYuaHRtbAogCiAjIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgZG9l
cyBub3Qgc2VuZCBldmVudHMgb24gYXJlYXMgb3V0c2lkZSB0aGUgV2ViVmlldy4KIHNjcm9sbGJh
cnMvc2Nyb2xsYmFyLWNsaWNrLWRvZXMtbm90LWJsdXItY29udGVudC5odG1sCisKKyMgdXNlZCBv
bmx5IGJ5IG5ldy1ydW4td2Via2l0LXRlc3RzIHVuaXQgdGVzdHMKK2Zhc3QvaGFybmVzcy9taXNz
aW5nLWV4cGVjdGF0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDNkZjc3YzIu
LjQ3YzQzNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNTA5OCwzICs1MDk4LDYgQEAg
ZmFzdC9qcy9zcHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgvUzcuNl9BNS4zX1QyLmh0bWwKIAog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NTYKIGVkaXRpbmcv
c2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwKKworIyB1c2VkIG9ubHkgYnkgbmV3LXJ1bi13ZWJr
aXQtdGVzdHMgdW5pdCB0ZXN0cworZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlMjJjNTM2Li43NmFlNDlmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODcyLDMgKzg3Miw2IEBAIGZhc3QvY3NzL2Rpc3BsYXkt
bm9uZS1pbmxpbmUtc3R5bGUtY2hhbmdlLWNyYXNoLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3OTUgLSBkb2Vzbid0IHByaW50IFBhaW50RXZlbnQg
aW5zdHJ1bWVudGF0aW9uIG91dHB1dAogaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50Lmh0bWwKKwor
IyB1c2VkIG9ubHkgYnkgbmV3LXJ1bi13ZWJraXQtdGVzdHMgdW5pdCB0ZXN0cworZmFzdC9oYXJu
ZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZmOGYzZWEuLjEyMTI2ZmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogaW1wbGVtZW50ICctLXJlc2V0LXJlc3VsdHMnIGZs
YWcgdG8gY29tcGxlbWVudAorICAgICAgICB0aGUgJy0tbmV3LWJhc2VsaW5lJyBmbGFnLiAnLS1u
ZXctYmFzZWxpbmUnIHdpbGwgYWx3YXlzIHdyaXRlIHRoZQorICAgICAgICByZXN1bHRzIGludG8g
dGhlIHBsYXRmb3JtIGRpcmVjdG9yeTsgJy0tcmVzZXQtcmVzdWx0cycgd2lsbCB1cGRhdGUgdGhl
CisgICAgICAgIGV4aXN0aW5nIGJhc2VsaW5lIHdoZXJldmVyIGl0IGhhcHBlbnMgdG8gYmUuIEJv
dGggc2V0cyBvZiBiZWhhdmlvcgorICAgICAgICBhcmUgdXNlZnVsIGluIGRpZmZlcmVudCBjaXJj
dW1zdGFuY2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODg3OQorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5
cGVzL2ltYWdlX2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHk6CisKIDIwMTAtMDUtMTIgIERp
cmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1
bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CmluZGV4IDY5NTdmY2QuLjA5ZjlhYzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhy
ZWFkLnB5CkBAIC00MjUsNyArNDI1LDggQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICAjIGFyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLiAgKE90
aGVyd2lzZSwgYW4gaW1hZ2UgZnJvbSBhCiAgICAgICAgICMgcHJldmlvdXMgcnVuIHdpbGwgYmUg
Y29waWVkIGludG8gdGhlIGJhc2VsaW5lLikKICAgICAgICAgaW1hZ2VfaGFzaCA9IHRlc3RfaW5m
by5pbWFnZV9oYXNoKCkKLSAgICAgICAgaWYgaW1hZ2VfaGFzaCBhbmQgc2VsZi5fdGVzdF9hcmdz
Lm5ld19iYXNlbGluZToKKyAgICAgICAgaWYgKGltYWdlX2hhc2ggYW5kCisgICAgICAgICAgICAo
c2VsZi5fdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciBzZWxmLl90ZXN0X2FyZ3MucmVzZXRfcmVz
dWx0cykpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9ICIiCiAgICAgICAgIHN0YXJ0ID0gdGlt
ZS50aW1lKCkKICAgICAgICAgY3Jhc2gsIHRpbWVvdXQsIGFjdHVhbF9jaGVja3N1bSwgb3V0cHV0
LCBlcnJvciA9IFwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdf
dW5pdHRlc3QucHkKaW5kZXggZGJhMTE5NC4uMzgwNDIxMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTIzOSw2ICsyMzksOCBA
QCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3By
aW50X3Rlc3RfcmVzdWx0KHNlbGYpOgogICAgICAgICByZXN1bHQgPSBnZXRfcmVzdWx0KCdmb28u
aHRtbCcpCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0t
cHJpbnQnLCAnbm90aGluZyddKQorICAgICAgICByZXN1bHQgPSBnZXRfcmVzdWx0KG9zLnBhdGgu
am9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Zvby5odG1sJykpCiAgICAgICAgIHByaW50ZXIucHJpbnRf
dGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoZXJyLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CmluZGV4IDJjOTI4NjUuLmUwMWJkMmYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJ5cnVuLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvZHJ5cnVuLnB5CkBAIC0xNDMsNyArMTQzLDcgQEAgY2xhc3MgRHJ5cnVuRHJpdmVy
KGJhc2UuRHJpdmVyKToKICAgICAgICAgdGV4dF9maWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0
ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLnR4dCcpCiAgICAgICAgIHRleHRfb3V0cHV0ID0gX3Jl
YWRfZmlsZSh0ZXh0X2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIGltYWdlX2hhc2g6CisgICAgICAg
IGlmIGltYWdlX2hhc2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpbWFnZV9maWxlbmFtZSA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLnBuZycpCiAgICAgICAg
ICAgICBpbWFnZSA9IF9yZWFkX2ZpbGUoaW1hZ2VfZmlsZW5hbWUsICdyYicpCiAgICAgICAgICAg
ICBpZiBzZWxmLl9pbWFnZV9wYXRoOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDVkNTYzY2QuLjFkMTFmNDMg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3QucHkKQEAgLTI4LDYgKzI4LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogIiIiRHVt
bXkgUG9ydCBpbXBsZW1lbnRhdGlvbiB1c2VkIGZvciB0ZXN0aW5nLiIiIgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAogCiBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCkBAIC00
Nyw3ICs0OCw3IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIGJhc2VsaW5l
X3BhdGgoc2VsZik6CiAgICAgICAgIGN1cmRpciA9IG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykK
ICAgICAgICAgc2VsZi50b3BkaXIgPSBjdXJkaXJbMDpjdXJkaXIuaW5kZXgoIldlYktpdFRvb2xz
IildCi0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi50b3BkaXIsICdMYXlvdXRUZXN0
cycsICdwbGF0Zm9ybScsICd0ZXN0JykKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxm
LnRvcGRpciwgJ0xheW91dFRlc3RzJywgJ3BsYXRmb3JtJywgJ21hYycpCiAKICAgICBkZWYgYmFz
ZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iYXNlbGluZV9w
YXRoKCldCkBAIC02NiwxMiArNjcsOSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmlsZW5hbWUsIGFjdHVhbF9maWxlbmFtZSk6CiAgICAg
ICAgIHJldHVybiAnJwogCi0gICAgZGVmIHJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoc2VsZiwgZmls
ZW5hbWUpOgotICAgICAgICByZXR1cm4gZmlsZW5hbWUKLQogICAgIGRlZiBleHBlY3RlZF9maWxl
bmFtZShzZWxmLCBmaWxlbmFtZSwgc3VmZml4KToKICAgICAgICAgKGJhc2VuYW1lLCBleHQpID0g
b3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSkKLSAgICAgICAgcmV0dXJuIGJhc2VuYW1lICsgJy4n
ICsgc3VmZml4CisgICAgICAgIHJldHVybiBiYXNlbmFtZSArICctZXhwZWN0ZWQnICsgc3VmZml4
CiAKICAgICBkZWYgbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKQEAgLTEy
OSw2ICsxMjcsNyBAQCBjbGFzcyBUZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAgICAgc2Vs
Zi5fZHJpdmVyX29wdGlvbnMgPSB0ZXN0X2RyaXZlcl9vcHRpb25zCiAgICAgICAgIHNlbGYuX2lt
YWdlX3BhdGggPSBpbWFnZV9wYXRoCiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CisgICAgICAg
IHNlbGYuX2ltYWdlX3dyaXR0ZW4gPSBGYWxzZQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAg
ICAgIHJldHVybiBUcnVlCkBAIC0xMzcsNiArMTM2LDE1IEBAIGNsYXNzIFRlc3REcml2ZXIoYmFz
ZS5Ecml2ZXIpOgogICAgICAgICByZXR1cm4gMAogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHVy
aSwgdGltZW91dG1zLCBpbWFnZV9oYXNoKToKKyAgICAgICAgaWYgbm90IHNlbGYuX2ltYWdlX3dy
aXR0ZW4gYW5kIHNlbGYuX3BvcnQuX29wdGlvbnMucGl4ZWxfdGVzdHM6CisgICAgICAgICAgICB3
aXRoIG9wZW4oc2VsZi5faW1hZ2VfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGYu
d3JpdGUoImJhZCBwbmcgZmlsZSBmcm9tIFRlc3REcml2ZXIiKQorICAgICAgICAgICAgICAgIHNl
bGYuX2ltYWdlX3dyaXR0ZW4gPSBUcnVlCisKKyAgICAgICAgIyBXZSBzcGVjaWFsLWNhc2UgdGhp
cyBiZWNhdXNlIHdlIGNhbid0IGZha2UgYW4gaW1hZ2UgaGFzaCBmb3IgYQorICAgICAgICAjIG1p
c3NpbmcgZXhwZWN0YXRpb24uCisgICAgICAgIGlmIHVyaS5maW5kKCdmYXN0L2hhcm5lc3MvbWlz
c2luZy1leHBlY3RhdGlvbicpICE9IC0xOgorICAgICAgICAgICAgcmV0dXJuIChGYWxzZSwgRmFs
c2UsICdkZWFkYmVlZmRlYWRiZWVmZGVhZGJlZWZkZWFkYmVlZicsICcnLCBOb25lKQogICAgICAg
ICByZXR1cm4gKEZhbHNlLCBGYWxzZSwgaW1hZ2VfaGFzaCwgJycsIE5vbmUpCiAKICAgICBkZWYg
c3RhcnQoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAxNDgxNzRkLi42ZDU1
NDNkIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTU3NSw2ICs1NzUsNyBAQCBjbGFz
cyBUZXN0UnVubmVyOgogICAgICAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRoID0gcG5nX3BhdGgK
IAogICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFz
ZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0X3Jlc3VsdHMgPSBzZWxmLl9vcHRpb25zLnJl
c2V0X3Jlc3VsdHMKIAogICAgICAgICB0ZXN0X2FyZ3Muc2hvd19zb3VyY2VzID0gc2VsZi5fb3B0
aW9ucy5zb3VyY2VzCiAKQEAgLTE1MjEsNiArMTUyMiw5IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9
Tm9uZSk6CiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJTYXZlIGFsbCBnZW5lcmF0
ZWQgcmVzdWx0cyBhcyBuZXcgYmFzZWxpbmVzICIKICAgICAgICAgICAgICAgICAgImludG8gdGhl
IHBsYXRmb3JtIGRpcmVjdG9yeSwgb3ZlcndyaXRpbmcgd2hhdGV2ZXIncyAiCiAgICAgICAgICAg
ICAgICAgICJhbHJlYWR5IHRoZXJlLiIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigi
LS1yZXNldC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGRlZmF1
bHQ9RmFsc2UsIGhlbHA9IlJlc2V0IGFueSBleGlzdGluZyBiYXNlbGluZXMgdG8gdGhlICIKKyAg
ICAgICAgICAgICAgICAgImdlbmVyYXRlZCByZXN1bHRzIiksCiAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItLW5vLXNob3ctcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAogICAg
ICAgICAgICAgZGVmYXVsdD1UcnVlLCBkZXN0PSJzaG93X3Jlc3VsdHMiLAogICAgICAgICAgICAg
aGVscD0iRG9uJ3QgbGF1bmNoIGEgYnJvd3NlciB3aXRoIHJlc3VsdHMgYWZ0ZXIgdGhlIHRlc3Rz
ICIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGUwNTBj
YmEuLjA5MjUxYTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQpAQCAtMjksNiArMjksNyBAQAogCiAiIiJVbml0IHRlc3RzIGZvciBydW5fd2Via2l0X3Rlc3Rz
LiIiIgogCitpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0
dGVzdApAQCAtOTUsNiArOTYsNjYgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkYm90X291dHB1dC5nZXQoKSwgW10pCiAK
IAorZGVmIF9tb2NrZWRfb3BlbihvcmlnaW5hbF9vcGVuLCBmaWxlX2xpc3QpOgorICAgIGRlZiBf
d3JhcHBlcihuYW1lLCBtb2RlLCBlbmNvZGluZyk6CisgICAgICAgIGlmIG5hbWUuZmluZCgiLWV4
cGVjdGVkLiIpICE9IC0xIGFuZCBtb2RlID09ICJ3IjoKKyAgICAgICAgICAgICMgd2UgZG9uJ3Qg
d2FudCB0byBhY3R1YWxseSB3cml0ZSBuZXcgYmFzZWxpbmVzLCBzbyBzdHViIHRoZXNlIG91dAor
ICAgICAgICAgICAgbmFtZS5yZXBsYWNlKCdcXCcsICcvJykKKyAgICAgICAgICAgIGZpbGVfbGlz
dC5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbF9vcGVuKG9zLmRldm51
bGwsIG1vZGUsIGVuY29kaW5nKQorICAgICAgICByZXR1cm4gb3JpZ2luYWxfb3BlbihuYW1lLCBt
b2RlLCBlbmNvZGluZykKKyAgICByZXR1cm4gX3dyYXBwZXIKKworCitjbGFzcyBSZWJhc2VsaW5l
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIGFzc2VydEJhc2VsaW5lKHNlbGYsIGZp
bGVfbGlzdCwgYmFzZWxpbmUpOgorICAgICAgICAiYXNzZXJ0IHRoYXQgdGhlIGZpbGVfbGlzdCBj
b250YWlucyB0aGUgc3BlY2lmaWVkIGJhc2VsaW5lLiIiIgorICAgICAgICByZXR1cm4gYW55KGYu
ZmluZChiYXNlbGluZSkgIT0gLTEgZm9yIGYgaW4gZmlsZV9saXN0KQorCisgICAgZGVmIHRlc3Rf
YmFzZWxpbmVzKHNlbGYpOgorICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICBvcmlnaW5h
bF9vcGVuID0gY29kZWNzLm9wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBUZXN0IHRo
YXQgd2UgdXBkYXRlIGV4cGVjdGF0aW9ucyBpbiBwbGFjZS4gSWYgdGhlIGV4cGVjdGF0aW9uCisg
ICAgICAgICAgICAjIGlzIG1zc2luZywgdXBkYXRlIHRoZSBleHBlY3RlZCBnZW5lcmljIGxvY2F0
aW9uLgorICAgICAgICAgICAgZmlsZV9saXN0ID0gW10KKyAgICAgICAgICAgIGNvZGVjcy5vcGVu
ID0gX21vY2tlZF9vcGVuKG9yaWdpbmFsX29wZW4sIGZpbGVfbGlzdCkKKyAgICAgICAgICAgIHBh
c3NpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICd0ZXN0JywgJy0tcGl4ZWwtdGVzdHMnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICctLXJlc2V0LXJlc3VsdHMnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICdmYXN0L2NhbnZhcy9jYW52YXMtem9vbS5odG1sJywgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwnXSkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDYpCisgICAgICAgICAgICBi
YXNlbGluZSA9ICJMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtem9vbS1leHBlY3RlZCIK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBiYXNlbGluZSArICIu
dHh0IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBiYXNlbGlu
ZSArICIucG5nIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmUoZmlsZV9saXN0LCBi
YXNlbGluZSArICIuY2hlY2tzdW0iKQorICAgICAgICAgICAgYmFzZWxpbmUgPSAiTGF5b3V0VGVz
dHMvZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24tZXhwZWN0ZWQiCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLnR4dCIpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLnBuZyIp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAi
LmNoZWNrc3VtIikKKworICAgICAgICAgICAgIyBUZXN0IHRoYXQgd2UgdXBkYXRlIHRoZSBwbGF0
Zm9ybSBleHBlY3RhdGlvbnMuIElmIHRoZSBleHBlY3RhdGlvbgorICAgICAgICAgICAgIyBpcyBt
c3NpbmcsIHRoZW4gY3JlYXRlIGEgbmV3IGV4cGVjdGF0aW9uIGluIHRoZSBwbGF0Zm9ybSBkaXIu
CisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAgICAgY29kZWNzLm9wZW4gPSBf
bW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQorICAgICAgICAgICAgcGFzc2lu
Z19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJy0tbmV3LWJhc2VsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAnZmFzdC9jYW52YXMvY2FudmFzLXpvb20uaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwnXSkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDYpCisgICAgICAgICAgICBiYXNlbGlu
ZSA9ICgiTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLyIgCisgICAgICAgICAgICAgICAgICAgICAg
ICAiZmFzdC9jYW52YXMvY2FudmFzLXpvb20tZXhwZWN0ZWQiKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRCYXNlbGluZShmaWxlX2xpc3QsIGJhc2VsaW5lICsgIi50eHQiKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRCYXNlbGluZShmaWxlX2xpc3QsIGJhc2VsaW5lICsgIi5wbmciKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZShmaWxlX2xpc3QsIGJhc2VsaW5lICsgIi5jaGVja3N1
bSIpCisgICAgICAgICAgICBiYXNlbGluZSA9ICgiTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLyIK
KyAgICAgICAgICAgICAgICAgICAgICAgICJmYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlv
bi1leHBlY3RlZCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVfbGlzdCwg
YmFzZWxpbmUgKyAiLnR4dCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lKGZpbGVf
bGlzdCwgYmFzZWxpbmUgKyAiLnBuZyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5l
KGZpbGVfbGlzdCwgYmFzZWxpbmUgKyAiLmNoZWNrc3VtIikKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIGNvZGVjcy5vcGVuID0gb3JpZ2luYWxfb3BlbgorCiBjbGFzcyBUZXN0UnVubmVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcmVzdWx0c19odG1sKHNlbGYp
OgogICAgICAgICBtb2NrX3BvcnQgPSBNb2NrKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2Vf
ZGlmZi5weQppbmRleCBiMzdmNGIzLi5iMTg2ODkyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9p
bWFnZV9kaWZmLnB5CkBAIC03MywxOCArNzMsMjMgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlw
ZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICBpZiBlcnJuby5FTk9FTlQgIT0gZS5l
cnJubzoKICAgICAgICAgICAgICAgICByYWlzZQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2Zp
bGVzKHNlbGYsIGZpbGVuYW1lLCBwbmdfcGF0aCwgY2hlY2tzdW0pOgorICAgIGRlZiBfc2F2ZV9i
YXNlbGluZV9maWxlcyhzZWxmLCBmaWxlbmFtZSwgcG5nX3BhdGgsIGNoZWNrc3VtLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmUpOgogICAgICAgICAi
IiJTYXZlcyBuZXcgYmFzZWxpbmVzIGZvciB0aGUgUE5HIGFuZCBjaGVja3N1bS4KIAogICAgICAg
ICBBcmdzOgogICAgICAgICAgIGZpbGVuYW1lOiB0ZXN0IGZpbGVuYW1lCiAgICAgICAgICAgcG5n
X3BhdGg6IHBhdGggdG8gdGhlIGFjdHVhbCBQTkcgcmVzdWx0IGZpbGUKICAgICAgICAgICBjaGVj
a3N1bTogdmFsdWUgb2YgdGhlIGFjdHVhbCBjaGVja3N1bSByZXN1bHQKKyAgICAgICAgICBnZW5l
cmF0ZV9uZXdfYmFzZWxpbmU6IGlzIHRoaXMgYSBuZXcgYmFzZWxpbmUgb3IgYW4gdXBkYXRlZCBv
bmU/CiAgICAgICAgICIiIgogICAgICAgICB3aXRoIG9wZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBu
Z19maWxlOgogICAgICAgICAgICAgcG5nX2RhdGEgPSBwbmdfZmlsZS5yZWFkKCkKLSAgICAgICAg
c2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNv
ZGluZz1Ob25lKQotICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIGNo
ZWNrc3VtLCAiLmNoZWNrc3VtIiwgZW5jb2Rpbmc9ImFzY2lpIikKKyAgICAgICAgc2VsZi5fc2F2
ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5l
PWdlbmVyYXRlX25ld19iYXNlbGluZSkKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRh
KGZpbGVuYW1lLCBjaGVja3N1bSwgIi5jaGVja3N1bSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lPWdlbmVyYXRlX25ld19iYXNlbGluZSkKIAogICAg
IGRlZiBfY3JlYXRlX2ltYWdlX2RpZmYoc2VsZiwgcG9ydCwgZmlsZW5hbWUsIGNvbmZpZ3VyYXRp
b24pOgogICAgICAgICAiIiJDcmVhdGVzIHRoZSB2aXN1YWwgZGlmZiBvZiB0aGUgZXhwZWN0ZWQv
YWN0dWFsIFBOR3MuCkBAIC0xMjgsOSArMTMzLDkgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlw
ZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZXMKIAogICAg
ICAgICAjIElmIHdlJ3JlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUsIHdlIHBhc3MuCi0gICAg
ICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmU6CisgICAgICAgIGlmIHRlc3RfYXJncy5uZXdf
YmFzZWxpbmUgb3IgdGVzdF9hcmdzLnJlc2V0X3Jlc3VsdHM6CiAgICAgICAgICAgICBzZWxmLl9z
YXZlX2Jhc2VsaW5lX2ZpbGVzKGZpbGVuYW1lLCB0ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FyZ3MuaGFzaCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYXJncy5oYXNoLCB0ZXN0X2FyZ3MubmV3X2Jh
c2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmVzCiAKICAgICAgICAgIyBDb21wYXJl
IGhhc2hlcy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5CmluZGV4
IGNmMGI5ZWMuLmFkNWQ4Y2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVf
YmFzZS5weQpAQCAtOTMsNyArOTMsOCBAQCBjbGFzcyBUZXN0VHlwZUJhc2Uob2JqZWN0KToKICAg
ICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSkpCiAg
ICAgICAgIHNlbGYuX3BvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3MucGF0aC5zcGxpdChvdXRw
dXRfZmlsZW5hbWUpWzBdKQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2RhdGEoc2VsZiwgZmls
ZW5hbWUsIGRhdGEsIG1vZGlmaWVyLCBlbmNvZGluZyk6CisgICAgZGVmIF9zYXZlX2Jhc2VsaW5l
X2RhdGEoc2VsZiwgZmlsZW5hbWUsIGRhdGEsIG1vZGlmaWVyLCBlbmNvZGluZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU9VHJ1ZSk6CiAgICAgICAg
ICIiIlNhdmVzIGEgbmV3IGJhc2VsaW5lIGZpbGUgaW50byB0aGUgcG9ydCdzIGJhc2VsaW5lIGRp
cmVjdG9yeS4KIAogICAgICAgICBUaGUgZmlsZSB3aWxsIGJlIG5hbWVkIHNpbXBseSAiPHRlc3Q+
LWV4cGVjdGVkPG1vZGlmaWVyPiIsIHN1aXRhYmxlIGZvcgpAQCAtMTAzLDE4ICsxMDQsMjUgQEAg
Y2xhc3MgVGVzdFR5cGVCYXNlKG9iamVjdCk6CiAgICAgICAgICAgZmlsZW5hbWU6IHBhdGggdG8g
dGhlIHRlc3QgZmlsZQogICAgICAgICAgIGRhdGE6IHJlc3VsdCB0byBiZSBzYXZlZCBhcyB0aGUg
bmV3IGJhc2VsaW5lCiAgICAgICAgICAgbW9kaWZpZXI6IHR5cGUgb2YgdGhlIHJlc3VsdCBmaWxl
LCBlLmcuICIudHh0IiBvciAiLnBuZyIKKyAgICAgICAgICBlbmNvZGluZzogZmlsZSBlbmNvZGlu
ZyAobm9uZSwgInV0Zi04IiwgZXRjLikKKyAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU6
IHNob3VsZCB3ZSBnZW5lcmF0ZSBhIG5ldywgcGxhdGZvcm0tc3BlY2lmaWMKKyAgICAgICAgICAg
IGJhc2VsaW5lLCBvciB1cGRhdGUgdGhlIGV4aXN0aW5nIGJhc2VsaW5lPwogICAgICAgICAiIiIK
LSAgICAgICAgcmVsYXRpdmVfZGlyID0gb3MucGF0aC5kaXJuYW1lKAotICAgICAgICAgICAgc2Vs
Zi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkKIAotICAgICAgICBiYXNl
bGluZV9wYXRoID0gc2VsZi5fcG9ydC5iYXNlbGluZV9wYXRoKCkKLSAgICAgICAgb3V0cHV0X2Rp
ciA9IG9zLnBhdGguam9pbihiYXNlbGluZV9wYXRoLCByZWxhdGl2ZV9kaXIpCi0gICAgICAgIG91
dHB1dF9maWxlID0gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsw
XSArCi0gICAgICAgICAgICBzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIG1vZGlmaWVy
KQorICAgICAgICBpZiBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU6CisgICAgICAgICAgICByZWxhdGl2
ZV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoCisgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxh
dGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkKKyAgICAgICAgICAgIGJhc2VsaW5lX3BhdGgg
PSBzZWxmLl9wb3J0LmJhc2VsaW5lX3BhdGgoKQorICAgICAgICAgICAgb3V0cHV0X2RpciA9IG9z
LnBhdGguam9pbihiYXNlbGluZV9wYXRoLCByZWxhdGl2ZV9kaXIpCisgICAgICAgICAgICBvdXRw
dXRfZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0g
KworICAgICAgICAgICAgICAgIHNlbGYuRklMRU5BTUVfU1VGRklYX0VYUEVDVEVEICsgbW9kaWZp
ZXIpCisgICAgICAgICAgICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG91dHB1dF9k
aXIpCisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCBv
dXRwdXRfZmlsZSkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ3dyaXRpbmcgbmV3IGJhc2VsaW5l
IHJlc3VsdCAiJXMiJyAlIChvdXRwdXRfcGF0aCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBvdXRwdXRfcGF0aCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUoZmlsZW5hbWUsIG1v
ZGlmaWVyKQorICAgICAgICAgICAgX2xvZy5kZWJ1ZygncmVzZXR0aW5nIGJhc2VsaW5lIHJlc3Vs
dCAiJXMiJyAlIG91dHB1dF9wYXRoKQogCi0gICAgICAgIHNlbGYuX3BvcnQubWF5YmVfbWFrZV9k
aXJlY3Rvcnkob3V0cHV0X2RpcikKLSAgICAgICAgb3V0cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4o
b3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGUpCi0gICAgICAgIF9sb2cuZGVidWcoJ3dyaXRpbmcgbmV3
IGJhc2VsaW5lIHRvICIlcyInICUgKG91dHB1dF9wYXRoKSkKICAgICAgICAgc2VsZi5fd3JpdGVf
aW50b19maWxlX2F0X3BhdGgob3V0cHV0X3BhdGgsIGRhdGEsIGVuY29kaW5nKQogCiAgICAgZGVm
IG91dHB1dF9maWxlbmFtZShzZWxmLCBmaWxlbmFtZSwgbW9kaWZpZXIpOgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0
X2RpZmYucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0
X3R5cGVzL3RleHRfZGlmZi5weQppbmRleCA5ZmVkNDc0Li4xOGY3NGI4IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRf
ZGlmZi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90
ZXN0X3R5cGVzL3RleHRfZGlmZi5weQpAQCAtODksMTEgKzg5LDEyIEBAIGNsYXNzIFRlc3RUZXh0
RGlmZih0ZXN0X3R5cGVfYmFzZS5UZXN0VHlwZUJhc2UpOgogICAgICAgICBmYWlsdXJlcyA9IFtd
CiAKICAgICAgICAgIyBJZiB3ZSdyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLCB3ZSBwYXNz
LgotICAgICAgICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiB0ZXN0X2Fy
Z3MubmV3X2Jhc2VsaW5lIG9yIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzOgogICAgICAgICAgICAg
IyBBbHRob3VnaCBhbGwgdGVzdF9zaGVsbC9EdW1wUmVuZGVyVHJlZSBvdXRwdXQgc2hvdWxkIGJl
IHV0Zi04LAogICAgICAgICAgICAgIyB3ZSBkbyBub3QgZXZlciBkZWNvZGUgaXQgaW5zaWRlIHJ1
bi13ZWJraXQtdGVzdHMuICBGb3Igc29tZSB0ZXN0cwogICAgICAgICAgICAgIyBEdW1wUmVuZGVy
VHJlZSBtYXkgbm90IG91dHB1dCB1dGYtOCB0ZXh0IChlLmcuIHdlYmFyY2hpdmVzKS4KLSAgICAg
ICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgb3V0cHV0LCAiLnR4dCIs
IGVuY29kaW5nPU5vbmUpCisgICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmls
ZW5hbWUsIG91dHB1dCwgIi50eHQiLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgIGdl
bmVyYXRlX25ld19iYXNlbGluZT10ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lKQogICAgICAgICAgICAg
cmV0dXJuIGZhaWx1cmVzCiAKICAgICAgICAgIyBOb3JtYWxpemUgdGV4dCB0byBkaWZmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56416</attachid>
            <date>2010-05-18 15:37:14 -0700</date>
            <delta_ts>2010-05-18 17:11:26 -0700</delta_ts>
            <desc>add test for platform-specific baseline, refactor into two unit tests, one for each switch</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>20591</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZTcwNDZkLi40N2ZiZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTAtMDUt
MTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB3aXRoIGludGVudGlv
bmFsbHkgbWlzc2luZyBleHBlY3RhdGlvbnMsIGZvciB1bml0IHRlc3RpbmcKKyAgICAgICAgbmV3
LXJ1bi13ZWJraXQtdGVzdHMuIFNraXAgdGhlIHRlc3QgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5j
ZXMuCisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKworMjAxMC0wNS0xMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCiAKICAgICAgICAg
Q2hhbmdlIGV4cGVjdGF0aW9uIGZyb20gSU1BR0UgdG8gSU1BR0UrVEVYVCBmb3IgQ2hyb21pdW0g
TGludXg7IEknbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL21pc3Npbmct
ZXhwZWN0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwMGI1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVj
dGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IGlu
dGVudGlvbmFsbHkgZG9lc24ndCBoYXZlIGFuIGV4cGVjdGVkIHJlc3VsdCBjaGVja2VkIGluLgor
PC9ib2R5PgorPC9odG1sPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwYWNiNWFiLi5jNTVmYzI5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yMDUsNiArMjA1LDkgQEAgV09OVEZJWCBTS0lQIDogamF2YS9sYzMgPSBURVhUCiAvLyBUT0RP
OiBtb3ZlIHRvIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4Ly4KIFdPTlRGSVggU0tJUCBNQUMgV0lO
IDogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC90ZXh0L2Nocm9taXVtLWxpbnV4LWZvbnRjb25maWct
cmVuZGVyc3R5bGUuaHRtbCA9IEZBSUwKIAorLy8gdGhpcyB0ZXN0IGlzIHVzZWQgb25seSBieSB0
aGUgdW5pdCB0ZXN0cyBmb3IgcnVuLXdlYmtpdC10ZXN0cworV09OVEZJWCA6IGZhc3QvaGFybmVz
cy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNTSU5HCisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBX
T05URklYIFRFU1RTCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCAy
OTUwODBmLi44NGVlNjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNjAyOSwzICs2
MDI5LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLWRlZmF1bHQuaHRt
bAogIyBTVkcgcmVzdWx0cyBhcmUgb25lIHBpeGVsIG9mZiBvbiB0aGUgNjQtYml0IGJvdAogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkwMjIKIHN2Zy9jdXN0b20v
c3ZnLWZvbnRzLXdpdGgtbm8tZWxlbWVudC1yZWZlcmVuY2UuaHRtbAorCisjIHVzZWQgb25seSBi
eSBuZXctcnVuLXdlYmtpdC10ZXN0cyB1bml0IHRlc3RzCitmYXN0L2hhcm5lc3MvbWlzc2luZy1l
eHBlY3RhdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDYxMjZkNDQuLjI3
YzEwN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xODEsMyArMTgxLDYgQEAgZmFz
dC9jc3MvZm9udC1mYWNlLXdvZmYuaHRtbAogCiAjIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgZG9l
cyBub3Qgc2VuZCBldmVudHMgb24gYXJlYXMgb3V0c2lkZSB0aGUgV2ViVmlldy4KIHNjcm9sbGJh
cnMvc2Nyb2xsYmFyLWNsaWNrLWRvZXMtbm90LWJsdXItY29udGVudC5odG1sCisKKyMgdXNlZCBv
bmx5IGJ5IG5ldy1ydW4td2Via2l0LXRlc3RzIHVuaXQgdGVzdHMKK2Zhc3QvaGFybmVzcy9taXNz
aW5nLWV4cGVjdGF0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDNkZjc3YzIu
LjQ3YzQzNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNTA5OCwzICs1MDk4LDYgQEAg
ZmFzdC9qcy9zcHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgvUzcuNl9BNS4zX1QyLmh0bWwKIAog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NTYKIGVkaXRpbmcv
c2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0bWwKKworIyB1c2VkIG9ubHkgYnkgbmV3LXJ1bi13ZWJr
aXQtdGVzdHMgdW5pdCB0ZXN0cworZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlMjJjNTM2Li43NmFlNDlmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODcyLDMgKzg3Miw2IEBAIGZhc3QvY3NzL2Rpc3BsYXkt
bm9uZS1pbmxpbmUtc3R5bGUtY2hhbmdlLWNyYXNoLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3OTUgLSBkb2Vzbid0IHByaW50IFBhaW50RXZlbnQg
aW5zdHJ1bWVudGF0aW9uIG91dHB1dAogaW5zcGVjdG9yL3RpbWVsaW5lLXBhaW50Lmh0bWwKKwor
IyB1c2VkIG9ubHkgYnkgbmV3LXJ1bi13ZWJraXQtdGVzdHMgdW5pdCB0ZXN0cworZmFzdC9oYXJu
ZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZmOGYzZWEuLjEyMTI2ZmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogaW1wbGVtZW50ICctLXJlc2V0LXJlc3VsdHMnIGZs
YWcgdG8gY29tcGxlbWVudAorICAgICAgICB0aGUgJy0tbmV3LWJhc2VsaW5lJyBmbGFnLiAnLS1u
ZXctYmFzZWxpbmUnIHdpbGwgYWx3YXlzIHdyaXRlIHRoZQorICAgICAgICByZXN1bHRzIGludG8g
dGhlIHBsYXRmb3JtIGRpcmVjdG9yeTsgJy0tcmVzZXQtcmVzdWx0cycgd2lsbCB1cGRhdGUgdGhl
CisgICAgICAgIGV4aXN0aW5nIGJhc2VsaW5lIHdoZXJldmVyIGl0IGhhcHBlbnMgdG8gYmUuIEJv
dGggc2V0cyBvZiBiZWhhdmlvcgorICAgICAgICBhcmUgdXNlZnVsIGluIGRpZmZlcmVudCBjaXJj
dW1zdGFuY2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODg3OQorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5
cGVzL2ltYWdlX2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHk6CisKIDIwMTAtMDUtMTIgIERp
cmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1
bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CmluZGV4IDY5NTdmY2QuLjA5ZjlhYzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhy
ZWFkLnB5CkBAIC00MjUsNyArNDI1LDggQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICAjIGFyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLiAgKE90
aGVyd2lzZSwgYW4gaW1hZ2UgZnJvbSBhCiAgICAgICAgICMgcHJldmlvdXMgcnVuIHdpbGwgYmUg
Y29waWVkIGludG8gdGhlIGJhc2VsaW5lLikKICAgICAgICAgaW1hZ2VfaGFzaCA9IHRlc3RfaW5m
by5pbWFnZV9oYXNoKCkKLSAgICAgICAgaWYgaW1hZ2VfaGFzaCBhbmQgc2VsZi5fdGVzdF9hcmdz
Lm5ld19iYXNlbGluZToKKyAgICAgICAgaWYgKGltYWdlX2hhc2ggYW5kCisgICAgICAgICAgICAo
c2VsZi5fdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciBzZWxmLl90ZXN0X2FyZ3MucmVzZXRfcmVz
dWx0cykpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9ICIiCiAgICAgICAgIHN0YXJ0ID0gdGlt
ZS50aW1lKCkKICAgICAgICAgY3Jhc2gsIHRpbWVvdXQsIGFjdHVhbF9jaGVja3N1bSwgb3V0cHV0
LCBlcnJvciA9IFwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdf
dW5pdHRlc3QucHkKaW5kZXggZGJhMTE5NC4uMzgwNDIxMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTIzOSw2ICsyMzksOCBA
QCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3By
aW50X3Rlc3RfcmVzdWx0KHNlbGYpOgogICAgICAgICByZXN1bHQgPSBnZXRfcmVzdWx0KCdmb28u
aHRtbCcpCiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0t
cHJpbnQnLCAnbm90aGluZyddKQorICAgICAgICByZXN1bHQgPSBnZXRfcmVzdWx0KG9zLnBhdGgu
am9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Zvby5odG1sJykpCiAgICAgICAgIHByaW50ZXIucHJpbnRf
dGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZD1GYWxzZSwgZXhwX3N0cj0nJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rfc3RyPScnKQogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoZXJyLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CmluZGV4IDJjOTI4NjUuLmUwMWJkMmYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJ5cnVuLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvZHJ5cnVuLnB5CkBAIC0xNDMsNyArMTQzLDcgQEAgY2xhc3MgRHJ5cnVuRHJpdmVy
KGJhc2UuRHJpdmVyKToKICAgICAgICAgdGV4dF9maWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0
ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLnR4dCcpCiAgICAgICAgIHRleHRfb3V0cHV0ID0gX3Jl
YWRfZmlsZSh0ZXh0X2ZpbGVuYW1lKQogCi0gICAgICAgIGlmIGltYWdlX2hhc2g6CisgICAgICAg
IGlmIGltYWdlX2hhc2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpbWFnZV9maWxlbmFtZSA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9uYW1lLCAnLnBuZycpCiAgICAgICAg
ICAgICBpbWFnZSA9IF9yZWFkX2ZpbGUoaW1hZ2VfZmlsZW5hbWUsICdyYicpCiAgICAgICAgICAg
ICBpZiBzZWxmLl9pbWFnZV9wYXRoOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDVkNTYzY2QuLjA0ZGI5MDIg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3QucHkKQEAgLTI4LDYgKzI4LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogIiIiRHVt
bXkgUG9ydCBpbXBsZW1lbnRhdGlvbiB1c2VkIGZvciB0ZXN0aW5nLiIiIgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAogCiBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCkBAIC00
NSw5ICs0Niw3IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiAo
J3Rlc3QnLCkKIAogICAgIGRlZiBiYXNlbGluZV9wYXRoKHNlbGYpOgotICAgICAgICBjdXJkaXIg
PSBvcy5wYXRoLmFic3BhdGgoX19maWxlX18pCi0gICAgICAgIHNlbGYudG9wZGlyID0gY3VyZGly
WzA6Y3VyZGlyLmluZGV4KCJXZWJLaXRUb29scyIpXQotICAgICAgICByZXR1cm4gb3MucGF0aC5q
b2luKHNlbGYudG9wZGlyLCAnTGF5b3V0VGVzdHMnLCAncGxhdGZvcm0nLCAndGVzdCcpCisgICAg
ICAgIHJldHVybiBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjJykKIAogICAgIGRlZiBi
YXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLmJhc2VsaW5l
X3BhdGgoKV0KQEAgLTY2LDEzICs2NSw2IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKToKICAg
ICAgICAgcmV0dXJuICcnCiAKLSAgICBkZWYgcmVsYXRpdmVfdGVzdF9maWxlbmFtZShzZWxmLCBm
aWxlbmFtZSk6Ci0gICAgICAgIHJldHVybiBmaWxlbmFtZQotCi0gICAgZGVmIGV4cGVjdGVkX2Zp
bGVuYW1lKHNlbGYsIGZpbGVuYW1lLCBzdWZmaXgpOgotICAgICAgICAoYmFzZW5hbWUsIGV4dCkg
PSBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKQotICAgICAgICByZXR1cm4gYmFzZW5hbWUgKyAn
LicgKyBzdWZmaXgKLQogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f
bmFtZQogCkBAIC0xMjksNiArMTIxLDcgQEAgY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6
CiAgICAgICAgIHNlbGYuX2RyaXZlcl9vcHRpb25zID0gdGVzdF9kcml2ZXJfb3B0aW9ucwogICAg
ICAgICBzZWxmLl9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAorICAgICAgICBzZWxmLl9pbWFnZV93cml0dGVuID0gRmFsc2UKIAogICAgIGRlZiBwb2xs
KHNlbGYpOgogICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtMTM3LDYgKzEzMCwxNSBAQCBjbGFzcyBU
ZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAgICAgcmV0dXJuIDAKIAogICAgIGRlZiBydW5f
dGVzdChzZWxmLCB1cmksIHRpbWVvdXRtcywgaW1hZ2VfaGFzaCk6CisgICAgICAgIGlmIG5vdCBz
ZWxmLl9pbWFnZV93cml0dGVuIGFuZCBzZWxmLl9wb3J0Ll9vcHRpb25zLnBpeGVsX3Rlc3RzOgor
ICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYuX2ltYWdlX3BhdGgsICJ3IikgYXMgZjoKKyAgICAg
ICAgICAgICAgICBmLndyaXRlKCJiYWQgcG5nIGZpbGUgZnJvbSBUZXN0RHJpdmVyIikKKyAgICAg
ICAgICAgICAgICBzZWxmLl9pbWFnZV93cml0dGVuID0gVHJ1ZQorCisgICAgICAgICMgV2Ugc3Bl
Y2lhbC1jYXNlIHRoaXMgYmVjYXVzZSB3ZSBjYW4ndCBmYWtlIGFuIGltYWdlIGhhc2ggZm9yIGEK
KyAgICAgICAgIyBtaXNzaW5nIGV4cGVjdGF0aW9uLgorICAgICAgICBpZiB1cmkuZmluZCgnZmFz
dC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24nKSAhPSAtMToKKyAgICAgICAgICAgIHJldHVy
biAoRmFsc2UsIEZhbHNlLCAnZGVhZGJlZWZkZWFkYmVlZmRlYWRiZWVmZGVhZGJlZWYnLCAnJywg
Tm9uZSkKICAgICAgICAgcmV0dXJuIChGYWxzZSwgRmFsc2UsIGltYWdlX2hhc2gsICcnLCBOb25l
KQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXgg
MTQ4MTc0ZC4uNmQ1NTQzZCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC01NzUsNiAr
NTc1LDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIHRlc3RfYXJncy5wbmdfcGF0
aCA9IHBuZ19wYXRoCiAKICAgICAgICAgdGVzdF9hcmdzLm5ld19iYXNlbGluZSA9IHNlbGYuX29w
dGlvbnMubmV3X2Jhc2VsaW5lCisgICAgICAgIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzID0gc2Vs
Zi5fb3B0aW9ucy5yZXNldF9yZXN1bHRzCiAKICAgICAgICAgdGVzdF9hcmdzLnNob3dfc291cmNl
cyA9IHNlbGYuX29wdGlvbnMuc291cmNlcwogCkBAIC0xNTIxLDYgKzE1MjIsOSBAQCBkZWYgcGFy
c2VfYXJncyhhcmdzPU5vbmUpOgogICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iU2F2
ZSBhbGwgZ2VuZXJhdGVkIHJlc3VsdHMgYXMgbmV3IGJhc2VsaW5lcyAiCiAgICAgICAgICAgICAg
ICAgICJpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnksIG92ZXJ3cml0aW5nIHdoYXRldmVyJ3Mg
IgogICAgICAgICAgICAgICAgICAiYWxyZWFkeSB0aGVyZS4iKSwKKyAgICAgICAgb3B0cGFyc2Uu
bWFrZV9vcHRpb24oIi0tcmVzZXQtcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAg
ICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJSZXNldCBhbnkgZXhpc3RpbmcgYmFzZWxpbmVz
IHRvIHRoZSAiCisgICAgICAgICAgICAgICAgICJnZW5lcmF0ZWQgcmVzdWx0cyIpLAogICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1uby1zaG93LXJlc3VsdHMiLCBhY3Rpb249InN0b3Jl
X2ZhbHNlIiwKICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1ZSwgZGVzdD0ic2hvd19yZXN1bHRzIiwK
ICAgICAgICAgICAgIGhlbHA9IkRvbid0IGxhdW5jaCBhIGJyb3dzZXIgd2l0aCByZXN1bHRzIGFm
dGVyIHRoZSB0ZXN0cyAiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQppbmRleCBlMDUwY2JhLi5jNzZkZDE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHNfdW5pdHRlc3QucHkKQEAgLTI5LDYgKzI5LDcgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgcnVu
X3dlYmtpdF90ZXN0cy4iIiIKIAoraW1wb3J0IGNvZGVjcwogaW1wb3J0IG9zCiBpbXBvcnQgc3lz
CiBpbXBvcnQgdW5pdHRlc3QKQEAgLTk1LDYgKzk2LDcwIEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGJvdF9vdXRwdXQu
Z2V0KCksIFtdKQogCiAKK2RlZiBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0
KToKKyAgICBkZWYgX3dyYXBwZXIobmFtZSwgbW9kZSwgZW5jb2RpbmcpOgorICAgICAgICBpZiBu
YW1lLmZpbmQoIi1leHBlY3RlZC4iKSAhPSAtMSBhbmQgbW9kZSA9PSAidyI6CisgICAgICAgICAg
ICAjIHdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkgd3JpdGUgbmV3IGJhc2VsaW5lcywgc28gc3R1
YiB0aGVzZSBvdXQKKyAgICAgICAgICAgIG5hbWUucmVwbGFjZSgnXFwnLCAnLycpCisgICAgICAg
ICAgICBmaWxlX2xpc3QuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxf
b3Blbihvcy5kZXZudWxsLCBtb2RlLCBlbmNvZGluZykKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFs
X29wZW4obmFtZSwgbW9kZSwgZW5jb2RpbmcpCisgICAgcmV0dXJuIF93cmFwcGVyCisKKworY2xh
c3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBhc3NlcnRCYXNl
bGluZXMoc2VsZiwgZmlsZV9saXN0LCBmaWxlKToKKyAgICAgICAgImFzc2VydCB0aGF0IHRoZSBm
aWxlX2xpc3QgY29udGFpbnMgdGhlIGJhc2VsaW5lcy4iIiIKKyAgICAgICAgZm9yIGV4dCBpbiBb
Ii50eHQiLCAiLnBuZyIsICIuY2hlY2tzdW0iXToKKyAgICAgICAgICAgIGJhc2VsaW5lID0gZmls
ZSArICItZXhwZWN0ZWQiICsgZXh0CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KGYu
ZmluZChiYXNlbGluZSkgIT0gLTEgZm9yIGYgaW4gZmlsZV9saXN0KSkKKworICAgIGRlZiB0ZXN0
X3Jlc2V0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGZpbGVfbGlzdCA9IFtdCisgICAgICAgIG9y
aWdpbmFsX29wZW4gPSBjb2RlY3Mub3BlbgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRl
c3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25zIGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRp
b24KKyAgICAgICAgICAgICMgaXMgbXNzaW5nLCB1cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMg
bG9jYXRpb24uCisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAgICAgY29kZWNz
Lm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQorICAgICAgICAg
ICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJy0tcmVzZXQtcmVzdWx0cycsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2Zhc3QvY2FudmFzL2NhbnZhcy1iZy5odG1sJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmFzdC9jYW52YXMvY2FudmFzLXpvb20uaHRtbCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2Zhc3QvaGFybmVzcy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwnXSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgIkxheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy16b29tIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
QmFzZWxpbmVzKGZpbGVfbGlzdCwKKyAgICAgICAgICAgICAgICAiTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY2FudmFzL2NhbnZhcy1iZyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJh
c2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgIkxheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy9taXNzaW5nLWV4cGVjdGF0aW9uIikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IGNvZGVjcy5vcGVuID0gb3JpZ2luYWxfb3BlbgorCisgICAgZGVmIHRlc3RfbmV3X2Jhc2VsaW5l
KHNlbGYpOgorICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICBvcmlnaW5hbF9vcGVuID0g
Y29kZWNzLm9wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBUZXN0IHRoYXQgd2UgdXBk
YXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMuIElmIHRoZSBleHBlY3RhdGlvbgorICAgICAg
ICAgICAgIyBpcyBtc3NpbmcsIHRoZW4gY3JlYXRlIGEgbmV3IGV4cGVjdGF0aW9uIGluIHRoZSBw
bGF0Zm9ybSBkaXIuCisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAgICAgY29k
ZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQorICAgICAg
ICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10ZXN0cycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbmV3LWJhc2VsaW5lJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnZmFzdC9jYW52YXMvY2FudmFzLXpvb20uaHRtbCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2Zhc3QvY2FudmFzL2NhbnZhcy1iZy5odG1sJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnZmFzdC9oYXJuZXNzL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbCddKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZV9saXN0KSwgOSkKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwKKyAgICAgICAgICAgICAgICAiTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY2FudmFzL2NhbnZhcy16b29tIikKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwKKyAgICAgICAgICAgICAgICAiTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY2FudmFzL2NhbnZhcy1iZyIpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgIkxheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2hhcm5lc3MvbWlzc2luZy1leHBlY3RhdGlvbiIpCisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBjb2RlY3Mub3BlbiA9IG9yaWdpbmFsX29wZW4K
KwogY2xhc3MgVGVzdFJ1bm5lclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0
X3Jlc3VsdHNfaHRtbChzZWxmKToKICAgICAgICAgbW9ja19wb3J0ID0gTW9jaygpCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVz
L2ltYWdlX2RpZmYucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHkKaW5kZXggYjM3ZjRiMy4uYjE4Njg5MiAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBl
cy9pbWFnZV9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQpAQCAtNzMsMTggKzczLDIzIEBAIGNsYXNz
IEltYWdlRGlmZih0ZXN0X3R5cGVfYmFzZS5UZXN0VHlwZUJhc2UpOgogICAgICAgICAgICAgaWYg
ZXJybm8uRU5PRU5UICE9IGUuZXJybm86CiAgICAgICAgICAgICAgICAgcmFpc2UKIAotICAgIGRl
ZiBfc2F2ZV9iYXNlbGluZV9maWxlcyhzZWxmLCBmaWxlbmFtZSwgcG5nX3BhdGgsIGNoZWNrc3Vt
KToKKyAgICBkZWYgX3NhdmVfYmFzZWxpbmVfZmlsZXMoc2VsZiwgZmlsZW5hbWUsIHBuZ19wYXRo
LCBjaGVja3N1bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jh
c2VsaW5lKToKICAgICAgICAgIiIiU2F2ZXMgbmV3IGJhc2VsaW5lcyBmb3IgdGhlIFBORyBhbmQg
Y2hlY2tzdW0uCiAKICAgICAgICAgQXJnczoKICAgICAgICAgICBmaWxlbmFtZTogdGVzdCBmaWxl
bmFtZQogICAgICAgICAgIHBuZ19wYXRoOiBwYXRoIHRvIHRoZSBhY3R1YWwgUE5HIHJlc3VsdCBm
aWxlCiAgICAgICAgICAgY2hlY2tzdW06IHZhbHVlIG9mIHRoZSBhY3R1YWwgY2hlY2tzdW0gcmVz
dWx0CisgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lOiBpcyB0aGlzIGEgbmV3IGJhc2Vs
aW5lIG9yIGFuIHVwZGF0ZWQgb25lPwogICAgICAgICAiIiIKICAgICAgICAgd2l0aCBvcGVuKHBu
Z19wYXRoLCAicmIiKSBhcyBwbmdfZmlsZToKICAgICAgICAgICAgIHBuZ19kYXRhID0gcG5nX2Zp
bGUucmVhZCgpCi0gICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgcG5n
X2RhdGEsICIucG5nIiwgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGlu
ZV9kYXRhKGZpbGVuYW1lLCBjaGVja3N1bSwgIi5jaGVja3N1bSIsIGVuY29kaW5nPSJhc2NpaSIp
CisgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgcG5nX2RhdGEsICIu
cG5nIiwgZW5jb2Rpbmc9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdl
bmVyYXRlX25ld19iYXNlbGluZT1nZW5lcmF0ZV9uZXdfYmFzZWxpbmUpCisgICAgICAgIHNlbGYu
X3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgY2hlY2tzdW0sICIuY2hlY2tzdW0iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9ImFzY2lpIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNlbGluZT1nZW5lcmF0ZV9u
ZXdfYmFzZWxpbmUpCiAKICAgICBkZWYgX2NyZWF0ZV9pbWFnZV9kaWZmKHNlbGYsIHBvcnQsIGZp
bGVuYW1lLCBjb25maWd1cmF0aW9uKToKICAgICAgICAgIiIiQ3JlYXRlcyB0aGUgdmlzdWFsIGRp
ZmYgb2YgdGhlIGV4cGVjdGVkL2FjdHVhbCBQTkdzLgpAQCAtMTI4LDkgKzEzMyw5IEBAIGNsYXNz
IEltYWdlRGlmZih0ZXN0X3R5cGVfYmFzZS5UZXN0VHlwZUJhc2UpOgogICAgICAgICAgICAgcmV0
dXJuIGZhaWx1cmVzCiAKICAgICAgICAgIyBJZiB3ZSdyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2Vs
aW5lLCB3ZSBwYXNzLgotICAgICAgICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lOgorICAgICAg
ICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzOgog
ICAgICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9maWxlcyhmaWxlbmFtZSwgdGVzdF9hcmdz
LnBuZ19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9hcmdz
Lmhhc2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FyZ3MuaGFz
aCwgdGVzdF9hcmdzLm5ld19iYXNlbGluZSkKICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlcwog
CiAgICAgICAgICMgQ29tcGFyZSBoYXNoZXMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0
X3R5cGVfYmFzZS5weQppbmRleCBjZjBiOWVjLi5hZDVkOGNjIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9i
YXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKQEAgLTkzLDcgKzkzLDggQEAgY2xhc3MgVGVzdFR5
cGVCYXNlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmls
ZW5hbWUoZmlsZW5hbWUpKQogICAgICAgICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5
KG9zLnBhdGguc3BsaXQob3V0cHV0X2ZpbGVuYW1lKVswXSkKIAotICAgIGRlZiBfc2F2ZV9iYXNl
bGluZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBkYXRhLCBtb2RpZmllciwgZW5jb2RpbmcpOgorICAg
IGRlZiBfc2F2ZV9iYXNlbGluZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBkYXRhLCBtb2RpZmllciwg
ZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2Vs
aW5lPVRydWUpOgogICAgICAgICAiIiJTYXZlcyBhIG5ldyBiYXNlbGluZSBmaWxlIGludG8gdGhl
IHBvcnQncyBiYXNlbGluZSBkaXJlY3RvcnkuCiAKICAgICAgICAgVGhlIGZpbGUgd2lsbCBiZSBu
YW1lZCBzaW1wbHkgIjx0ZXN0Pi1leHBlY3RlZDxtb2RpZmllcj4iLCBzdWl0YWJsZSBmb3IKQEAg
LTEwMywxOCArMTA0LDI1IEBAIGNsYXNzIFRlc3RUeXBlQmFzZShvYmplY3QpOgogICAgICAgICAg
IGZpbGVuYW1lOiBwYXRoIHRvIHRoZSB0ZXN0IGZpbGUKICAgICAgICAgICBkYXRhOiByZXN1bHQg
dG8gYmUgc2F2ZWQgYXMgdGhlIG5ldyBiYXNlbGluZQogICAgICAgICAgIG1vZGlmaWVyOiB0eXBl
IG9mIHRoZSByZXN1bHQgZmlsZSwgZS5nLiAiLnR4dCIgb3IgIi5wbmciCisgICAgICAgICAgZW5j
b2Rpbmc6IGZpbGUgZW5jb2RpbmcgKG5vbmUsICJ1dGYtOCIsIGV0Yy4pCisgICAgICAgICAgZ2Vu
ZXJhdGVfbmV3X2Jhc2VsaW5lOiBzaG91bGQgd2UgZ2VuZXJhdGUgYSBuZXcsIHBsYXRmb3JtLXNw
ZWNpZmljCisgICAgICAgICAgICBiYXNlbGluZSwgb3IgdXBkYXRlIHRoZSBleGlzdGluZyBiYXNl
bGluZT8KICAgICAgICAgIiIiCi0gICAgICAgIHJlbGF0aXZlX2RpciA9IG9zLnBhdGguZGlybmFt
ZSgKLSAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFt
ZSkpCiAKLSAgICAgICAgYmFzZWxpbmVfcGF0aCA9IHNlbGYuX3BvcnQuYmFzZWxpbmVfcGF0aCgp
Ci0gICAgICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4oYmFzZWxpbmVfcGF0aCwgcmVsYXRp
dmVfZGlyKQotICAgICAgICBvdXRwdXRfZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5z
cGxpdGV4dChmaWxlbmFtZSlbMF0gKwotICAgICAgICAgICAgc2VsZi5GSUxFTkFNRV9TVUZGSVhf
RVhQRUNURUQgKyBtb2RpZmllcikKKyAgICAgICAgaWYgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lOgor
ICAgICAgICAgICAgcmVsYXRpdmVfZGlyID0gb3MucGF0aC5kaXJuYW1lKAorICAgICAgICAgICAg
ICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSkpCisgICAgICAg
ICAgICBiYXNlbGluZV9wYXRoID0gc2VsZi5fcG9ydC5iYXNlbGluZV9wYXRoKCkKKyAgICAgICAg
ICAgIG91dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4oYmFzZWxpbmVfcGF0aCwgcmVsYXRpdmVfZGly
KQorICAgICAgICAgICAgb3V0cHV0X2ZpbGUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguc3Bs
aXRleHQoZmlsZW5hbWUpWzBdICsKKyAgICAgICAgICAgICAgICBzZWxmLkZJTEVOQU1FX1NVRkZJ
WF9FWFBFQ1RFRCArIG1vZGlmaWVyKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5tYXliZV9tYWtl
X2RpcmVjdG9yeShvdXRwdXRfZGlyKQorICAgICAgICAgICAgb3V0cHV0X3BhdGggPSBvcy5wYXRo
LmpvaW4ob3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGUpCisgICAgICAgICAgICBfbG9nLmRlYnVnKCd3
cml0aW5nIG5ldyBiYXNlbGluZSByZXN1bHQgIiVzIicgJSAob3V0cHV0X3BhdGgpKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgb3V0cHV0X3BhdGggPSBzZWxmLl9wb3J0LmV4cGVjdGVkX2Zp
bGVuYW1lKGZpbGVuYW1lLCBtb2RpZmllcikKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJ3Jlc2V0
dGluZyBiYXNlbGluZSByZXN1bHQgIiVzIicgJSBvdXRwdXRfcGF0aCkKIAotICAgICAgICBzZWxm
Ll9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCi0gICAgICAgIG91dHB1dF9w
YXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIG91dHB1dF9maWxlKQotICAgICAgICBfbG9n
LmRlYnVnKCd3cml0aW5nIG5ldyBiYXNlbGluZSB0byAiJXMiJyAlIChvdXRwdXRfcGF0aCkpCiAg
ICAgICAgIHNlbGYuX3dyaXRlX2ludG9fZmlsZV9hdF9wYXRoKG91dHB1dF9wYXRoLCBkYXRhLCBl
bmNvZGluZykKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUsIG1vZGlm
aWVyKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKaW5kZXggOWZlZDQ3NC4uMThm
NzRiOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKQEAgLTg5LDExICs4OSwx
MiBAQCBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAg
ICAgICAgZmFpbHVyZXMgPSBbXQogCiAgICAgICAgICMgSWYgd2UncmUgZ2VuZXJhdGluZyBhIG5l
dyBiYXNlbGluZSwgd2UgcGFzcy4KLSAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZToK
KyAgICAgICAgaWYgdGVzdF9hcmdzLm5ld19iYXNlbGluZSBvciB0ZXN0X2FyZ3MucmVzZXRfcmVz
dWx0czoKICAgICAgICAgICAgICMgQWx0aG91Z2ggYWxsIHRlc3Rfc2hlbGwvRHVtcFJlbmRlclRy
ZWUgb3V0cHV0IHNob3VsZCBiZSB1dGYtOCwKICAgICAgICAgICAgICMgd2UgZG8gbm90IGV2ZXIg
ZGVjb2RlIGl0IGluc2lkZSBydW4td2Via2l0LXRlc3RzLiAgRm9yIHNvbWUgdGVzdHMKICAgICAg
ICAgICAgICMgRHVtcFJlbmRlclRyZWUgbWF5IG5vdCBvdXRwdXQgdXRmLTggdGV4dCAoZS5nLiB3
ZWJhcmNoaXZlcykuCi0gICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5h
bWUsIG91dHB1dCwgIi50eHQiLCBlbmNvZGluZz1Ob25lKQorICAgICAgICAgICAgc2VsZi5fc2F2
ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBvdXRwdXQsICIudHh0IiwgZW5jb2Rpbmc9Tm9uZSwK
KyAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU9dGVzdF9hcmdzLm5ld19iYXNl
bGluZSkKICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlcwogCiAgICAgICAgICMgTm9ybWFsaXpl
IHRleHQgdG8gZGlmZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56428</attachid>
            <date>2010-05-18 17:11:26 -0700</date>
            <delta_ts>2010-05-18 17:23:58 -0700</delta_ts>
            <desc>okay, use a separate layout_tests_dir under webkitpy/layout_tests/data to isolate unit test data from actual layout tests</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>35548</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjhmM2VhLi4zNWQ4ZmM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDUt
MTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IGlt
cGxlbWVudCAnLS1yZXNldC1yZXN1bHRzJyBmbGFnIHRvIGNvbXBsZW1lbnQKKyAgICAgICAgdGhl
ICctLW5ldy1iYXNlbGluZScgZmxhZy4gJy0tbmV3LWJhc2VsaW5lJyB3aWxsIGFsd2F5cyB3cml0
ZSB0aGUKKyAgICAgICAgcmVzdWx0cyBpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3Rvcnk7ICctLXJl
c2V0LXJlc3VsdHMnIHdpbGwgdXBkYXRlIHRoZQorICAgICAgICBleGlzdGluZyBiYXNlbGluZSB3
aGVyZXZlciBpdCBoYXBwZW5zIHRvIGJlLiBCb3RoIHNldHMgb2YgYmVoYXZpb3IKKyAgICAgICAg
YXJlIHVzZWZ1bCBpbiBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNlcy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzkKKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJnLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2Fu
dmFzLXpvb20tZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20tZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdl
L2NhbnZhcy16b29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvZGF0YS9pbWFnZS9jYW52YXMtem9vbS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvY3Jhc2gtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9kYXRhL21pc2MvY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL3Bhc3Np
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9kYXRhL21pc2MvcGFzc2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJn
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9w
bGF0Zm9ybS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC90ZXN0
X2V4cGVjdGF0aW9ucy50eHQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3RleHQvYXJ0aWNs
ZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0
ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9p
bWFnZV9kaWZmLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5OgorCiAyMDEwLTA1LTEyICBEaXJrIFBy
YW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9pbWFnZS9jYW52YXMtYmcuaHRtbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJnLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAyMjY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJn
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPGh0bWw+CisgPGhlYWQ+CisgPHN0eWxlPgorIGRpdiB7
IGJhY2tncm91bmQ6IC13ZWJraXQtY2FudmFzKHNxdWFyZXMpOyB3aWR0aDo2MDBweDsgaGVpZ2h0
OjYwMHB4OyBib3JkZXI6MnB4IHNvbGlkIGJsYWNrIH0KKyA8L3N0eWxlPgorIAorICA8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CitmdW5jdGlvbiBkcmF3KHcsIGgpIHsK
KyB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAic3F1YXJlcyIs
IHcsIGgpOworCisgY3R4LmZpbGxTdHlsZSA9ICJyZ2IoMjAwLDAsMCkiOworIGN0eC5maWxsUmVj
dCAoMTAsIDEwLCA1NSwgNTApOworCisgY3R4LmZpbGxTdHlsZSA9ICJyZ2JhKDAsIDAsIDIwMCwg
MC41KSI7CisgY3R4LmZpbGxSZWN0ICgzMCwgMzAsIDU1LCA1MCk7Cit9CisgIDwvc2NyaXB0Pgor
IDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9ImRyYXcoMzAwLCAzMDApIj4KKyAgIDxkaXY+PC9kaXY+
CisgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2Uv
Y2FudmFzLXpvb20tZXhwZWN0ZWQuY2hlY2tzdW0gYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLmNoZWNrc3Vt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNzNmZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2lt
YWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKK2FmYTBmMmQy
NDYxMjBjMTgwMDA1ZDY3ZDQ3NjM2YjkyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9p
bWFnZS9jYW52YXMtem9vbS1leHBlY3RlZC5wbmcgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDk1MmI0CkJpbmFyeSBmaWxlcyAvZGV2
L251bGwgYW5kIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0
YS9pbWFnZS9jYW52YXMtem9vbS1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16
b29tLWV4cGVjdGVkLnR4dCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI4ODQ1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNjI0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjI0
OiAiVGhlc2Ugc2hvdWxkIGJlIGZvdXIgZ3JlZW4gaG9sbG93IGJveGVzIHdpdGggZGltZW5zaW9u
cyA2MDB4MzAwLCAxMDB4MzAwLCA2MDB4MTAwLCAxMDB4MTAwLiIKKyAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXplIDc4NHg0MjAKKyAgICAgICAgUmVuZGVySFRNTENh
bnZhcyB7Q0FOVkFTfSBhdCAoMCwwKSBzaXplIDYwNngzMDYgW2JvcmRlcjogKDNweCBzb2xpZCAj
MDA4MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2MDYsMjkyKSBzaXplIDR4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjA2LDI5Mikgd2lkdGggNDogIiAiCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJIVE1M
Q2FudmFzIHtDQU5WQVN9IGF0ICg2MTAsMCkgc2l6ZSAxMDZ4MzA2IFtib3JkZXI6ICgzcHggc29s
aWQgIzAwODAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAg
UmVuZGVySFRNTENhbnZhcyB7Q0FOVkFTfSBhdCAoMCwzMTApIHNpemUgNjA2eDEwNiBbYm9yZGVy
OiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYw
Niw0MDIpIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MDYsNDAyKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30gYXQgKDYxMCwzMTApIHNpemUgMTA2eDEwNiBb
Ym9yZGVyOiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20uaHRtbCBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGFiY2UxCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9p
bWFnZS9jYW52YXMtem9vbS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdHlsZT4KKyAgICBjYW52
YXMgeyBib3JkZXI6IHNvbGlkIGdyZWVuOworICAgICAgICAgICAgIHpvb206IDI7IH0KKzwvc3R5
bGU+Cis8cD4KKyAgICBUaGVzZSBzaG91bGQgYmUgZm91ciBncmVlbiBob2xsb3cgYm94ZXMgd2l0
aCBkaW1lbnNpb25zIDYwMHgzMDAsIDEwMHgzMDAsIDYwMHgxMDAsIDEwMHgxMDAuCis8L3A+Cis8
IS0tIDMwMHgxNTAgLS0+Cis8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorPCEtLSA1MHgx
NTAgLS0+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI1MCI+PC9jYW52YXM+Cis8IS0tIDMw
MHg1MCAtLT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Cis8IS0t
IDUweDUwIC0tPgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwv
Y2FudmFzPgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9taXNjL2NyYXNoLWV4cGVjdGVkLnR4dCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIxYzNmNQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9jcmFz
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGNy
YXNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9taXNjL2NyYXNoLmh0bWwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kYXRhL21pc2MvY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5iOTgyMGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL2NyYXNoLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGNyYXNoLgorPC9i
b2R5PgorPC9odG1sPiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvbWlzc2luZy1leHBl
Y3RhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMDBiNTAK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9kYXRhL21pc2MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sCkBAIC0wLDAgKzEsNSBAQAor
PGh0bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBpbnRlbnRpb25hbGx5IGRvZXNuJ3QgaGF2ZSBhbiBl
eHBlY3RlZCByZXN1bHQgY2hlY2tlZCBpbi4KKzwvYm9keT4KKzwvaHRtbD4gCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvcGFz
c2luZy1leHBlY3RlZC50eHQgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9kYXRhL21pc2MvcGFzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjZiZDMxNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9wYXNzaW5nLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8gcGFzcy4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9w
YXNzaW5nLmh0bWwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9k
YXRhL21pc2MvcGFzc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmRiN2UzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kYXRhL21pc2MvcGFzc2luZy5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0
bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBpcyBleHBlY3RlZCB0byBwYXNzLgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9wbGF0Zm9ybS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC5jaGVja3N1bSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0v
dGVzdC9pbWFnZS9jYW52YXMtYmctZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNGNkOGRhYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9j
YW52YXMtYmctZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNzkwYjY4MWE0MTY5NzYz
NGZjZjJhMjU4N2FmYjg5YzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3Jt
L3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVkLnBuZyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52YXMtYmct
ZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMDA0NTAK
QmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVk
LnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52YXMtYmctZXhwZWN0ZWQudHh0
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9y
bS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjQxMWMwYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52
YXMtYmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
ODV4NjIwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDc4NXg2MjAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYy
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDYwNAorICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA2MDR4NjA0IFtib3JkZXI6ICgycHggc29saWQg
IzAwMDAwMCldCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9ybS90ZXN0L3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
NzhhMDFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
MCwwICsxIEBACitXT05URklYIDogbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNT
SU5HIFBBU1MKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS90ZXh0L2FydGljbGUtZWxlbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYwYWMz
OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjAgQEAKK1ZhcmlvdXMgdGVzdHMgZm9yIHRoZSBhcnRpY2xlIGVsZW1lbnQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCis8YXJ0aWNsZT4gY2xvc2VzIDxwPjoKK1BBU1MgYXJ0aWNs
ZTEucGFyZW50Tm9kZS5ub2RlTmFtZSA9PSAicCIgaXMgZmFsc2UKKzxwPiBkb2VzIG5vdCBjbG9z
ZSA8YXJ0aWNsZT46CitQQVNTIHAxLnBhcmVudE5vZGUubm9kZU5hbWUgaXMgIkFSVElDTEUiCis8
YXJ0aWNsZT4gY2FuIGJlIG5lc3RlZCBpbnNpZGUgPGFydGljbGU+OgorUEFTUyBhcnRpY2xlMy5w
YXJlbnROb2RlLmlkIGlzICJhcnRpY2xlMiIKK1Jlc2lkdWFsIHN0eWxlOgorUEFTUyBnZXRXZWln
aHQoImFydGljbGU0IikgaXMgImJvbGQiCitQQVNTIGdldFdlaWdodCgic3BhbjEiKSBpcyAiYm9s
ZCIKK0Zvcm1hdEJsb2NrOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lIGlzICJBUlRJQ0xFIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRp
Y2xlLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGY0
NTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvZGF0YS90ZXh0L2FydGljbGUtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggNjk1N2ZjZC4uMDlmOWFjNyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkKQEAgLTQyNSw3ICs0MjUsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgICAgICMgYXJlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAoT3Ro
ZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAgICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBj
b3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQogICAgICAgICBpbWFnZV9oYXNoID0gdGVzdF9pbmZv
LmltYWdlX2hhc2goKQotICAgICAgICBpZiBpbWFnZV9oYXNoIGFuZCBzZWxmLl90ZXN0X2FyZ3Mu
bmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiAoaW1hZ2VfaGFzaCBhbmQKKyAgICAgICAgICAgIChz
ZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHNlbGYuX3Rlc3RfYXJncy5yZXNldF9yZXN1
bHRzKSk6CiAgICAgICAgICAgICBpbWFnZV9oYXNoID0gIiIKICAgICAgICAgc3RhcnQgPSB0aW1l
LnRpbWUoKQogICAgICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2NoZWNrc3VtLCBvdXRwdXQs
IGVycm9yID0gXApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191
bml0dGVzdC5weQppbmRleCBkYmExMTk0Li4zODA0MjEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weQpAQCAtMjM5LDYgKzIzOSw4IEBA
IGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcHJp
bnRfdGVzdF9yZXN1bHQoc2VsZik6CiAgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQoJ2Zvby5o
dG1sJykKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1w
cmludCcsICdub3RoaW5nJ10pCisgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQob3MucGF0aC5q
b2luKHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZm9vLmh0bWwnKSkKICAgICAgICAgcHJpbnRlci5wcmludF90
ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShlcnIuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggZDExZjNlMi4uMGEzMDdk
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTk4LDE5ICs5OCwxOCBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiBvcy5wYXRo
LmpvaW4oc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFtZSkKIAogICAgIGRl
ZiBnZXRfYmFzaWNfdGVzdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5nZXRfdGVzdCgn
ZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJyksCi0gICAgICAgICAgICAgICAgc2VsZi5n
ZXRfdGVzdCgnZmFzdC9odG1sL2hlYWRlci1lbGVtZW50Lmh0bWwnKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwva2V5Z2VuLmh0bWwnKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwvdGFiLW9yZGVyLmh0bWwnKSwKLSAgICAgICAgICAg
ICAgICBzZWxmLmdldF90ZXN0KCdmYXN0L2V2ZW50cy9zcGFjZS1zY3JvbGwtZXZlbnQuaHRtbCcp
LAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2Zhc3QvZXZlbnRzL3RhYi1pbWFnZW1h
cC5odG1sJyldCisgICAgICAgIHJldHVybiBbc2VsZi5nZXRfdGVzdCgndGV4dC9hcnRpY2xlLWVs
ZW1lbnQuaHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2ltYWdlL2NhbnZh
cy1iZy5odG1sJyksCisgICAgICAgICAgICAgICAgc2VsZi5nZXRfdGVzdCgnaW1hZ2UvY2FudmFz
LXpvb20uaHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ21pc2MvY3Jhc2gu
aHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ21pc2MvcGFzc2luZy5odG1s
JyldCiAKICAgICBkZWYgZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0
dXJuICIiIgotQlVHX1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBURVhU
Ci1CVUdfVEVTVCBTS0lQIDogZmFzdC9odG1sL2tleWdlbi5odG1sID0gQ1JBU0gKLUJVR19URVNU
IFJFQkFTRUxJTkUgOiBmYXN0L2h0bWx0YWItb3JkZXIuaHRtbCA9IE1JU1NJTkcKLUJVR19URVNU
IDogZmFzdC9ldmVudHMgPSBJTUFHRQorQlVHX1RFU1QgOiB0ZXh0L2FydGljbGUtZWxlbWVudC5o
dG1sID0gVEVYVAorQlVHX1RFU1QgU0tJUCA6IG1pc2MvY3Jhc2guaHRtbCA9IENSQVNICitCVUdf
VEVTVCBSRUJBU0VMSU5FIDogbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNTSU5H
CitCVUdfVEVTVCA6IGltYWdlID0gSU1BR0UKICIiIgogCiAgICAgZGVmIHBhcnNlX2V4cChzZWxm
LCBleHBlY3RhdGlvbnMsIG92ZXJyaWRlcz1Ob25lKToKQEAgLTEyOSw0MSArMTI4LDQzIEBAIEJV
R19URVNUIDogZmFzdC9ldmVudHMgPSBJTUFHRQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6
CiAgICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCi0g
ICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBU
RVhUKQotICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFzdC9ldmVudHMvdGFiLWltYWdlbWFwLmh0
bWwnLCBJTUFHRSkKLSAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zhc3QvaHRtbC9oZWFkZXItZWxl
bWVudC5odG1sJywgUEFTUykKKyAgICAgICBzZWxmLmFzc2VydF9leHAoJ3RleHQvYXJ0aWNsZS1l
bGVtZW50Lmh0bWwnLCBURVhUKQorICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnaW1hZ2UvY2FudmFz
LXpvb20uaHRtbCcsIElNQUdFKQorICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnbWlzYy9wYXNzaW5n
Lmh0bWwnLCBQQVNTKQogCiAgICAgZGVmIHRlc3RfZHVwbGljYXRlcyhzZWxmKToKICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgc2VsZi5wYXJzZV9leHAsICIiIgotQlVHX1RF
U1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBURVhUCi1CVUdfVEVTVCA6IGZh
c3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IElNQUdFIiIiKQorQlVHX1RFU1QgOiB0ZXh0
L2FydGljbGUtZWxlbWVudC5odG1sID0gVEVYVAorQlVHX1RFU1QgOiB0ZXh0L2FydGljbGUtZWxl
bWVudC5odG1sID0gSU1BR0UiIiIpCiAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJy
b3IsIHNlbGYucGFyc2VfZXhwLAogICAgICAgICAgICBzZWxmLmdldF9iYXNpY19leHBlY3RhdGlv
bnMoKSwgIiIiCi1CVUdfVEVTVCA6IGZhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IFRF
WFQKLUJVR19URVNUIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sID0gSU1BR0UiIiIp
CitCVUdfVEVTVCA6IHRleHQvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBURVhUCitCVUdfVEVTVCA6
IHRleHQvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBJTUFHRSIiIikKIAogICAgIGRlZiB0ZXN0X292
ZXJyaWRlcyhzZWxmKToKICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBl
Y3RhdGlvbnMoKSwgIiIiCi1CVUdfT1ZFUlJJREUgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50
Lmh0bWwgPSBJTUFHRSIiIikKLSAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zhc3QvaHRtbC9hcnRp
Y2xlLWVsZW1lbnQuaHRtbCcsIElNQUdFKQorQlVHX09WRVJSSURFIDogdGV4dC9hcnRpY2xlLWVs
ZW1lbnQuaHRtbCA9IElNQUdFIiIiKQorICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgndGV4dC9hcnRp
Y2xlLWVsZW1lbnQuaHRtbCcsIElNQUdFKQogCiAgICAgZGVmIHRlc3RfbWF0Y2hlc19hbl9leHBl
Y3RlZF9yZXN1bHQoc2VsZik6CiAKLSAgICAgICBkZWYgbWF0Y2godGVzdCwgcmVzdWx0LCBwaXhl
bF90ZXN0c19lbmFibGVkKToKLSAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2Fu
X2V4cGVjdGVkX3Jlc3VsdCgKLSAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QodGVzdCksIHJl
c3VsdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCkKKyAgICAgICAgZGVmIG1hdGNoKHRlc3QsIHJlc3Vs
dCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhwLm1h
dGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3Qo
dGVzdCksIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCkKIAotICAgICAgIHNlbGYucGFyc2Vf
ZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQotICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtYXRjaCgnZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgVEVYVCwgVHJ1ZSkpCi0g
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0
bWwnLCBURVhULCBGYWxzZSkpCi0gICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFzdC9o
dG1sL2FydGljbGUtZWxlbWVudC5odG1sJywgQ1JBU0gsIFRydWUpKQotICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UobWF0Y2goJ2Zhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcsIENSQVNILCBG
YWxzZSkpCisgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgcGRiLnNldF90cmFjZSgpCisgICAg
ICAgIHNlbGYucGFyc2VfZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ3RleHQvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBURVhU
LCBUcnVlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCd0ZXh0L2FydGljbGUtZWxl
bWVudC5odG1sJywgVEVYVCwgRmFsc2UpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNo
KCd0ZXh0L2FydGljbGUtZWxlbWVudC5odG1sJywgQ1JBU0gsIFRydWUpKQorICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKG1hdGNoKCd0ZXh0L2FydGljbGUtZWxlbWVudC5odG1sJywgQ1JBU0gsIEZh
bHNlKSkKIAotICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9ldmVudHMvdGFiLWlt
YWdlbWFwLmh0bWwnLCBJTUFHRSwgVHJ1ZSkpCi0gICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNo
KCdmYXN0L2V2ZW50cy90YWItaW1hZ2VtYXAuaHRtbCcsIFBBU1MsIEZhbHNlKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdpbWFnZS9jYW52YXMtYmcuaHRtbCcsIElNQUdFLCBUcnVl
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdpbWFnZS9jYW52YXMtYmcuaHRtbCcs
IFBBU1MsIEZhbHNlKSkKIAotICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9odG1s
L2tleWdlbi5odG1sJywgU0tJUCwgRmFsc2UpKQotICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRj
aCgnZmFzdC9odG1sL3RhYi1vcmRlci5odG1sJywgUEFTUywgRmFsc2UpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUobWF0Y2goJ21pc2MvY3Jhc2guaHRtbCcsIFNLSVAsIEZhbHNlKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdtaXNjL3Bhc3NpbmcuaHRtbCcsIFBBU1MsIEZhbHNl
KSkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
ZHJ5cnVuLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9kcnlydW4ucHkKaW5kZXggMmM5Mjg2NS4uZTAxYmQyZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKQEAg
LTE0Myw3ICsxNDMsNyBAQCBjbGFzcyBEcnlydW5Ecml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAg
ICB0ZXh0X2ZpbGVuYW1lID0gc2VsZi5fcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUs
ICcudHh0JykKICAgICAgICAgdGV4dF9vdXRwdXQgPSBfcmVhZF9maWxlKHRleHRfZmlsZW5hbWUp
CiAKLSAgICAgICAgaWYgaW1hZ2VfaGFzaDoKKyAgICAgICAgaWYgaW1hZ2VfaGFzaCBpcyBub3Qg
Tm9uZToKICAgICAgICAgICAgIGltYWdlX2ZpbGVuYW1lID0gc2VsZi5fcG9ydC5leHBlY3RlZF9m
aWxlbmFtZSh0ZXN0X25hbWUsICcucG5nJykKICAgICAgICAgICAgIGltYWdlID0gX3JlYWRfZmls
ZShpbWFnZV9maWxlbmFtZSwgJ3JiJykKICAgICAgICAgICAgIGlmIHNlbGYuX2ltYWdlX3BhdGg6
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkKaW5kZXggNWQ1NjNjZC4uZTZkNGM5OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjgs
NyArMjgsOSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAiIiJEdW1teSBQb3J0IGltcGxlbWVudGF0aW9u
IHVzZWQgZm9yIHRlc3RpbmcuIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVt
ZW50CiAKK2ltcG9ydCBjb2RlY3MKIGltcG9ydCBvcwogaW1wb3J0IHRpbWUKIApAQCAtNDUsOSAr
NDcsOCBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICByZXR1cm4gKCd0ZXN0
JywpCiAKICAgICBkZWYgYmFzZWxpbmVfcGF0aChzZWxmKToKLSAgICAgICAgY3VyZGlyID0gb3Mu
cGF0aC5hYnNwYXRoKF9fZmlsZV9fKQotICAgICAgICBzZWxmLnRvcGRpciA9IGN1cmRpclswOmN1
cmRpci5pbmRleCgiV2ViS2l0VG9vbHMiKV0KLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihz
ZWxmLnRvcGRpciwgJ0xheW91dFRlc3RzJywgJ3BsYXRmb3JtJywgJ3Rlc3QnKQorICAgICAgICBy
ZXR1cm4gb3MucGF0aC5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCAncGxhdGZvcm0nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmFtZSgpKQogCiAgICAgZGVmIGJhc2Vs
aW5lX3NlYXJjaF9wYXRoKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmFzZWxpbmVfcGF0
aCgpXQpAQCAtNjYsMTIgKzY3LDkgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lLCBhY3R1YWxfZmlsZW5hbWUpOgogICAgICAg
ICByZXR1cm4gJycKIAotICAgIGRlZiByZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHNlbGYsIGZpbGVu
YW1lKToKLSAgICAgICAgcmV0dXJuIGZpbGVuYW1lCi0KLSAgICBkZWYgZXhwZWN0ZWRfZmlsZW5h
bWUoc2VsZiwgZmlsZW5hbWUsIHN1ZmZpeCk6Ci0gICAgICAgIChiYXNlbmFtZSwgZXh0KSA9IG9z
LnBhdGguc3BsaXRleHQoZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBiYXNlbmFtZSArICcuJyAr
IHN1ZmZpeAorICAgIGRlZiBsYXlvdXRfdGVzdHNfZGlyKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1dlYktpdFRvb2xzJywgJ1NjcmlwdHMnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dlYmtpdHB5JywgJ2xheW91
dF90ZXN0cycsICdkYXRhJykKIAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi5fbmFtZQpAQCAtNzksNiArNzcsMTEgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToK
ICAgICBkZWYgb3B0aW9ucyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX29wdGlvbnMKIAor
ICAgIGRlZiBwYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViS2l0VG9vbHMnLCAnU2NyaXB0cycs
CisgICAgICAgICAgICAnd2Via2l0cHknLCAnbGF5b3V0X3Rlc3RzJywgJ2RhdGEnLCAncGxhdGZv
cm0nLCAndGVzdCcsCisgICAgICAgICAgICAndGVzdF9leHBlY3RhdGlvbnMudHh0JykKKwogICAg
IGRlZiByZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgcmV0dXJuICcvdG1wLycgKyBz
ZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5CiAKQEAgLTEwNCw3ICsxMDcsMTMgQEAgY2xh
c3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgcGFzcwogCiAgICAgZGVmIHRlc3RfZXhw
ZWN0YXRpb25zKHNlbGYpOgotICAgICAgICByZXR1cm4gJycKKyAgICAgICAgIiIiUmV0dXJucyB0
aGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIHRoaXMgcG9ydC4KKworICAgICAgICBCYXNpY2FsbHkg
dGhpcyBzdHJpbmcgc2hvdWxkIGNvbnRhaW4gdGhlIGVxdWl2YWxlbnQgb2YgYQorICAgICAgICB0
ZXN0X2V4cGVjdGF0aW9ucyBmaWxlLiBTZWUgdGVzdF9leHBlY3RhdGlvbnMucHkgZm9yIG1vcmUg
ZGV0YWlscy4iIiIKKyAgICAgICAgZXhwZWN0YXRpb25zX3BhdGggPSBzZWxmLnBhdGhfdG9fdGVz
dF9leHBlY3RhdGlvbnNfZmlsZSgpCisgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZXhwZWN0YXRp
b25zX3BhdGgsICJyIiwgInV0Zi04IikgYXMgZmlsZToKKyAgICAgICAgICAgIHJldHVybiBmaWxl
LnJlYWQoKQogCiAgICAgZGVmIHRlc3RfYmFzZV9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKICAgICAg
ICAgcmV0dXJuICgndGVzdCcsKQpAQCAtMTI5LDYgKzEzOCw3IEBAIGNsYXNzIFRlc3REcml2ZXIo
YmFzZS5Ecml2ZXIpOgogICAgICAgICBzZWxmLl9kcml2ZXJfb3B0aW9ucyA9IHRlc3RfZHJpdmVy
X29wdGlvbnMKICAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IGltYWdlX3BhdGgKICAgICAgICAg
c2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5faW1hZ2Vfd3JpdHRlbiA9IEZhbHNlCiAK
ICAgICBkZWYgcG9sbChzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTEzNyw2ICsxNDcs
MTUgQEAgY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgIHJldHVybiAwCiAK
ICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdXJpLCB0aW1lb3V0bXMsIGltYWdlX2hhc2gpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5faW1hZ2Vfd3JpdHRlbiBhbmQgc2VsZi5fcG9ydC5fb3B0aW9ucy5w
aXhlbF90ZXN0czoKKyAgICAgICAgICAgIHdpdGggb3BlbihzZWxmLl9pbWFnZV9wYXRoLCAidyIp
IGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZSgiYmFkIHBuZyBmaWxlIGZyb20gVGVzdERy
aXZlciIpCisgICAgICAgICAgICAgICAgc2VsZi5faW1hZ2Vfd3JpdHRlbiA9IFRydWUKKworICAg
ICAgICAjIFdlIHNwZWNpYWwtY2FzZSB0aGlzIGJlY2F1c2Ugd2UgY2FuJ3QgZmFrZSBhbiBpbWFn
ZSBoYXNoIGZvciBhCisgICAgICAgICMgbWlzc2luZyBleHBlY3RhdGlvbi4KKyAgICAgICAgaWYg
dXJpLmZpbmQoJ21pc2MvbWlzc2luZy1leHBlY3RhdGlvbicpICE9IC0xOgorICAgICAgICAgICAg
cmV0dXJuIChGYWxzZSwgRmFsc2UsICdkZWFkYmVlZmRlYWRiZWVmZGVhZGJlZWZkZWFkYmVlZics
ICcnLCBOb25lKQogICAgICAgICByZXR1cm4gKEZhbHNlLCBGYWxzZSwgaW1hZ2VfaGFzaCwgJycs
IE5vbmUpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpp
bmRleCAxNDgxNzRkLi42ZDU1NDNkIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTU3
NSw2ICs1NzUsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAgICAgdGVzdF9hcmdzLnBu
Z19wYXRoID0gcG5nX3BhdGgKIAogICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lID0gc2Vs
Zi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0X3Jlc3VsdHMg
PSBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHMKIAogICAgICAgICB0ZXN0X2FyZ3Muc2hvd19z
b3VyY2VzID0gc2VsZi5fb3B0aW9ucy5zb3VyY2VzCiAKQEAgLTE1MjEsNiArMTUyMiw5IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3M9Tm9uZSk6CiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxw
PSJTYXZlIGFsbCBnZW5lcmF0ZWQgcmVzdWx0cyBhcyBuZXcgYmFzZWxpbmVzICIKICAgICAgICAg
ICAgICAgICAgImludG8gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeSwgb3ZlcndyaXRpbmcgd2hhdGV2
ZXIncyAiCiAgICAgICAgICAgICAgICAgICJhbHJlYWR5IHRoZXJlLiIpLAorICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbigiLS1yZXNldC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlJlc2V0IGFueSBleGlzdGluZyBiYXNl
bGluZXMgdG8gdGhlICIKKyAgICAgICAgICAgICAgICAgImdlbmVyYXRlZCByZXN1bHRzIiksCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW5vLXNob3ctcmVzdWx0cyIsIGFjdGlvbj0i
c3RvcmVfZmFsc2UiLAogICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBkZXN0PSJzaG93X3Jlc3Vs
dHMiLAogICAgICAgICAgICAgaGVscD0iRG9uJ3QgbGF1bmNoIGEgYnJvd3NlciB3aXRoIHJlc3Vs
dHMgYWZ0ZXIgdGhlIHRlc3RzICIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0
ZXN0LnB5CmluZGV4IGUwNTBjYmEuLjFjNzUxZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0c191bml0dGVzdC5weQpAQCAtMjksNiArMjksNyBAQAogCiAiIiJVbml0IHRlc3RzIGZv
ciBydW5fd2Via2l0X3Rlc3RzLiIiIgogCitpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9y
dCBzeXMKIGltcG9ydCB1bml0dGVzdApAQCAtNjIsMzkgKzYzLDk5IEBAIGRlZiBsb2dnaW5nX3J1
bihhcmdzKToKIAogY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0
ZXN0X2Zhc3Qoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXNzaW5nX3J1bihbJy0t
cGxhdGZvcm0nLCAndGVzdCddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVu
KFsnLS1wbGF0Zm9ybScsICd0ZXN0JywgJy0tcnVuLXNpbmdseSddKSkKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICd0ZXN0JywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFzdC9odG1sJ10pKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUocGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICctLXJ1bi1zaW5nbHknLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdmYXN0L2h0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShwYXNzaW5nX3J1bihbJy0tcGxhdGZvcm0nLCAndGVzdCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Zhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCddKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9hcnRpY2xlLWVsZW1l
bnQuaHRtbCddKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1wbGF0
Zm9ybScsICd0ZXN0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWNo
aWxkLXByb2Nlc3NlcycsICcxJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnLS1wcmludCcsICd1bmV4cGVjdGVkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZmFzdC9odG1sJ10pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICctLXByaW50JywgJ3VuZXhwZWN0ZWQnXSkpCiAKICAgICBkZWYgdGVzdF9jaGlsZF9wcm9j
ZXNzZXMoc2VsZik6CiAgICAgICAgIChyZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRw
dXQpID0gbG9nZ2luZ19ydW4oCiAgICAgICAgICAgICAgWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAn
LS1wcmludCcsICdjb25maWcnLCAnLS1jaGlsZC1wcm9jZXNzZXMnLAotICAgICAgICAgICAgICAn
MScsICdmYXN0L2h0bWwnXSkKKyAgICAgICAgICAgICAgJzEnXSkKICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKCdSdW5uaW5nIG9uZSBEdW1wUmVuZGVyVHJlZVxuJwogICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gcmVndWxhcl9vdXRwdXQuZ2V0KCkpCiAKICAgICAgICAgKHJlcywgYnVpbGRib3Rf
b3V0cHV0LCByZWd1bGFyX291dHB1dCkgPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgICBbJy0t
cGxhdGZvcm0nLCAndGVzdCcsICctLXByaW50JywgJ2NvbmZpZycsICctLWNoaWxkLXByb2Nlc3Nl
cycsCi0gICAgICAgICAgICAgICcyJywgJ2Zhc3QvaHRtbCddKQorICAgICAgICAgICAgICAnMidd
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1J1bm5pbmcgMiBEdW1wUmVuZGVyVHJlZXMgaW4g
cGFyYWxsZWxcbicKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHJlZ3VsYXJfb3V0cHV0Lmdl
dCgpKQogCiAgICAgZGVmIHRlc3RfbGFzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICBwYXNzaW5n
X3J1bihbJy0tcGxhdGZvcm0nLCAndGVzdCcsICdmYXN0L2h0bWwnXSkKKyAgICAgICAgcGFzc2lu
Z19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnXSkKICAgICAgICAgKHJlcywgYnVpbGRib3Rfb3V0
cHV0LCByZWd1bGFyX291dHB1dCkgPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1wbGF0
Zm9ybScsICd0ZXN0JywgJy0tcHJpbnQtbGFzdC1mYWlsdXJlcyddKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlZ3VsYXJfb3V0cHV0LmdldCgpLCBbJ1xuXG4nXSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChidWlsZGJvdF9vdXRwdXQuZ2V0KCksIFtdKQogCiAKK2RlZiBfbW9ja2VkX29w
ZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KToKKyAgICBkZWYgX3dyYXBwZXIobmFtZSwgbW9k
ZSwgZW5jb2RpbmcpOgorICAgICAgICBpZiBuYW1lLmZpbmQoIi1leHBlY3RlZC4iKSAhPSAtMSBh
bmQgbW9kZSA9PSAidyI6CisgICAgICAgICAgICAjIHdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkg
d3JpdGUgbmV3IGJhc2VsaW5lcywgc28gc3R1YiB0aGVzZSBvdXQKKyAgICAgICAgICAgIG5hbWUu
cmVwbGFjZSgnXFwnLCAnLycpCisgICAgICAgICAgICBmaWxlX2xpc3QuYXBwZW5kKG5hbWUpCisg
ICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxfb3Blbihvcy5kZXZudWxsLCBtb2RlLCBlbmNvZGlu
ZykKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsX29wZW4obmFtZSwgbW9kZSwgZW5jb2RpbmcpCisg
ICAgcmV0dXJuIF93cmFwcGVyCisKKworY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiBhc3NlcnRCYXNlbGluZXMoc2VsZiwgZmlsZV9saXN0LCBmaWxlKToK
KyAgICAgICAgImFzc2VydCB0aGF0IHRoZSBmaWxlX2xpc3QgY29udGFpbnMgdGhlIGJhc2VsaW5l
cy4iIiIKKyAgICAgICAgZm9yIGV4dCBpbiBbIi50eHQiLCAiLnBuZyIsICIuY2hlY2tzdW0iXToK
KyAgICAgICAgICAgIGJhc2VsaW5lID0gZmlsZSArICItZXhwZWN0ZWQiICsgZXh0CisgICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUoYW55KGYuZmluZChiYXNlbGluZSkgIT0gLTEgZm9yIGYgaW4g
ZmlsZV9saXN0KSkKKworICAgIGRlZiB0ZXN0X3Jlc2V0X3Jlc3VsdHMoc2VsZik6CisgICAgICAg
IGZpbGVfbGlzdCA9IFtdCisgICAgICAgIG9yaWdpbmFsX29wZW4gPSBjb2RlY3Mub3BlbgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25z
IGluIHBsYWNlLiBJZiB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAgICAgICMgaXMgbXNzaW5nLCB1
cGRhdGUgdGhlIGV4cGVjdGVkIGdlbmVyaWMgbG9jYXRpb24uCisgICAgICAgICAgICBmaWxlX2xp
c3QgPSBbXQorICAgICAgICAgICAgY29kZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxf
b3BlbiwgZmlsZV9saXN0KQorICAgICAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywg
J3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcmVz
ZXQtcmVzdWx0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlL2NhbnZhcy1iZy5o
dG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvY2FudmFzLXpvb20uaHRtbCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgJ21pc2MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1s
J10pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA5KQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LAorICAgICAgICAgICAgICAg
ICJkYXRhL2ltYWdlL2NhbnZhcy16b29tIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxp
bmVzKGZpbGVfbGlzdCwKKyAgICAgICAgICAgICAgICAiZGF0YS9wbGF0Zm9ybS90ZXN0L2ltYWdl
L2NhbnZhcy1iZyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3Qs
CisgICAgICAgICAgICAgICAgImRhdGEvbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uIikKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIGNvZGVjcy5vcGVuID0gb3JpZ2luYWxfb3BlbgorCisg
ICAgZGVmIHRlc3RfbmV3X2Jhc2VsaW5lKHNlbGYpOgorICAgICAgICBmaWxlX2xpc3QgPSBbXQor
ICAgICAgICBvcmlnaW5hbF9vcGVuID0gY29kZWNzLm9wZW4KKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgIyBUZXN0IHRoYXQgd2UgdXBkYXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMuIElm
IHRoZSBleHBlY3RhdGlvbgorICAgICAgICAgICAgIyBpcyBtc3NpbmcsIHRoZW4gY3JlYXRlIGEg
bmV3IGV4cGVjdGF0aW9uIGluIHRoZSBwbGF0Zm9ybSBkaXIuCisgICAgICAgICAgICBmaWxlX2xp
c3QgPSBbXQorICAgICAgICAgICAgY29kZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxf
b3BlbiwgZmlsZV9saXN0KQorICAgICAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywg
J3Rlc3QnLCAnLS1waXhlbC10ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbmV3
LWJhc2VsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvY2FudmFzLXpvb20u
aHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlL2NhbnZhcy1iZy5odG1sJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwn
XSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDkpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAg
ImRhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52YXMtem9vbSIpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgImRhdGEvcGxhdGZv
cm0vdGVzdC9pbWFnZS9jYW52YXMtYmciKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGlu
ZXMoZmlsZV9saXN0LAorICAgICAgICAgICAgICAgICJkYXRhL3BsYXRmb3JtL3Rlc3QvbWlzYy9t
aXNzaW5nLWV4cGVjdGF0aW9uIikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNvZGVj
cy5vcGVuID0gb3JpZ2luYWxfb3BlbgorCiBjbGFzcyBUZXN0UnVubmVyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcmVzdWx0c19odG1sKHNlbGYpOgogICAgICAgICBtb2Nr
X3BvcnQgPSBNb2NrKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQppbmRleCBi
MzdmNGIzLi5iMTg2ODkyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdlX2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5CkBA
IC03MywxOCArNzMsMjMgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBl
QmFzZSk6CiAgICAgICAgICAgICBpZiBlcnJuby5FTk9FTlQgIT0gZS5lcnJubzoKICAgICAgICAg
ICAgICAgICByYWlzZQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGZpbGVu
YW1lLCBwbmdfcGF0aCwgY2hlY2tzdW0pOgorICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9maWxlcyhz
ZWxmLCBmaWxlbmFtZSwgcG5nX3BhdGgsIGNoZWNrc3VtLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmUpOgogICAgICAgICAiIiJTYXZlcyBuZXcgYmFz
ZWxpbmVzIGZvciB0aGUgUE5HIGFuZCBjaGVja3N1bS4KIAogICAgICAgICBBcmdzOgogICAgICAg
ICAgIGZpbGVuYW1lOiB0ZXN0IGZpbGVuYW1lCiAgICAgICAgICAgcG5nX3BhdGg6IHBhdGggdG8g
dGhlIGFjdHVhbCBQTkcgcmVzdWx0IGZpbGUKICAgICAgICAgICBjaGVja3N1bTogdmFsdWUgb2Yg
dGhlIGFjdHVhbCBjaGVja3N1bSByZXN1bHQKKyAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxp
bmU6IGlzIHRoaXMgYSBuZXcgYmFzZWxpbmUgb3IgYW4gdXBkYXRlZCBvbmU/CiAgICAgICAgICIi
IgogICAgICAgICB3aXRoIG9wZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBuZ19maWxlOgogICAgICAg
ICAgICAgcG5nX2RhdGEgPSBwbmdfZmlsZS5yZWFkKCkKLSAgICAgICAgc2VsZi5fc2F2ZV9iYXNl
bGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lKQotICAg
ICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIGNoZWNrc3VtLCAiLmNoZWNr
c3VtIiwgZW5jb2Rpbmc9ImFzY2lpIikKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRh
KGZpbGVuYW1lLCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lPWdlbmVyYXRlX25ld19i
YXNlbGluZSkKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBjaGVj
a3N1bSwgIi5jaGVja3N1bSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNv
ZGluZz0iYXNjaWkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVf
bmV3X2Jhc2VsaW5lPWdlbmVyYXRlX25ld19iYXNlbGluZSkKIAogICAgIGRlZiBfY3JlYXRlX2lt
YWdlX2RpZmYoc2VsZiwgcG9ydCwgZmlsZW5hbWUsIGNvbmZpZ3VyYXRpb24pOgogICAgICAgICAi
IiJDcmVhdGVzIHRoZSB2aXN1YWwgZGlmZiBvZiB0aGUgZXhwZWN0ZWQvYWN0dWFsIFBOR3MuCkBA
IC0xMjgsOSArMTMzLDkgQEAgY2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBl
QmFzZSk6CiAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAgICAjIElmIHdlJ3Jl
IGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUsIHdlIHBhc3MuCi0gICAgICAgIGlmIHRlc3RfYXJn
cy5uZXdfYmFzZWxpbmU6CisgICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgb3IgdGVz
dF9hcmdzLnJlc2V0X3Jlc3VsdHM6CiAgICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2Zp
bGVzKGZpbGVuYW1lLCB0ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2FyZ3MuaGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfYXJncy5oYXNoLCB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lKQogICAgICAg
ICAgICAgcmV0dXJuIGZhaWx1cmVzCiAKICAgICAgICAgIyBDb21wYXJlIGhhc2hlcy4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlw
ZXMvdGVzdF90eXBlX2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5CmluZGV4IGNmMGI5ZWMuLmFkNWQ4
Y2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQpAQCAtOTMs
NyArOTMsOCBAQCBjbGFzcyBUZXN0VHlwZUJhc2Uob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYu
X3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSkpCiAgICAgICAgIHNlbGYuX3Bv
cnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3MucGF0aC5zcGxpdChvdXRwdXRfZmlsZW5hbWUpWzBd
KQogCi0gICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2RhdGEoc2VsZiwgZmlsZW5hbWUsIGRhdGEsIG1v
ZGlmaWVyLCBlbmNvZGluZyk6CisgICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2RhdGEoc2VsZiwgZmls
ZW5hbWUsIGRhdGEsIG1vZGlmaWVyLCBlbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU9VHJ1ZSk6CiAgICAgICAgICIiIlNhdmVzIGEgbmV3
IGJhc2VsaW5lIGZpbGUgaW50byB0aGUgcG9ydCdzIGJhc2VsaW5lIGRpcmVjdG9yeS4KIAogICAg
ICAgICBUaGUgZmlsZSB3aWxsIGJlIG5hbWVkIHNpbXBseSAiPHRlc3Q+LWV4cGVjdGVkPG1vZGlm
aWVyPiIsIHN1aXRhYmxlIGZvcgpAQCAtMTAzLDE4ICsxMDQsMjUgQEAgY2xhc3MgVGVzdFR5cGVC
YXNlKG9iamVjdCk6CiAgICAgICAgICAgZmlsZW5hbWU6IHBhdGggdG8gdGhlIHRlc3QgZmlsZQog
ICAgICAgICAgIGRhdGE6IHJlc3VsdCB0byBiZSBzYXZlZCBhcyB0aGUgbmV3IGJhc2VsaW5lCiAg
ICAgICAgICAgbW9kaWZpZXI6IHR5cGUgb2YgdGhlIHJlc3VsdCBmaWxlLCBlLmcuICIudHh0IiBv
ciAiLnBuZyIKKyAgICAgICAgICBlbmNvZGluZzogZmlsZSBlbmNvZGluZyAobm9uZSwgInV0Zi04
IiwgZXRjLikKKyAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU6IHNob3VsZCB3ZSBnZW5l
cmF0ZSBhIG5ldywgcGxhdGZvcm0tc3BlY2lmaWMKKyAgICAgICAgICAgIGJhc2VsaW5lLCBvciB1
cGRhdGUgdGhlIGV4aXN0aW5nIGJhc2VsaW5lPwogICAgICAgICAiIiIKLSAgICAgICAgcmVsYXRp
dmVfZGlyID0gb3MucGF0aC5kaXJuYW1lKAotICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2
ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkKIAotICAgICAgICBiYXNlbGluZV9wYXRoID0gc2Vs
Zi5fcG9ydC5iYXNlbGluZV9wYXRoKCkKLSAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9p
bihiYXNlbGluZV9wYXRoLCByZWxhdGl2ZV9kaXIpCi0gICAgICAgIG91dHB1dF9maWxlID0gb3Mu
cGF0aC5iYXNlbmFtZShvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVswXSArCi0gICAgICAgICAg
ICBzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIG1vZGlmaWVyKQorICAgICAgICBpZiBn
ZW5lcmF0ZV9uZXdfYmFzZWxpbmU6CisgICAgICAgICAgICByZWxhdGl2ZV9kaXIgPSBvcy5wYXRo
LmRpcm5hbWUoCisgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVu
YW1lKGZpbGVuYW1lKSkKKyAgICAgICAgICAgIGJhc2VsaW5lX3BhdGggPSBzZWxmLl9wb3J0LmJh
c2VsaW5lX3BhdGgoKQorICAgICAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9pbihiYXNl
bGluZV9wYXRoLCByZWxhdGl2ZV9kaXIpCisgICAgICAgICAgICBvdXRwdXRfZmlsZSA9IG9zLnBh
dGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gKworICAgICAgICAgICAg
ICAgIHNlbGYuRklMRU5BTUVfU1VGRklYX0VYUEVDVEVEICsgbW9kaWZpZXIpCisgICAgICAgICAg
ICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCisgICAgICAgICAg
ICBvdXRwdXRfcGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCBvdXRwdXRfZmlsZSkKKyAg
ICAgICAgICAgIF9sb2cuZGVidWcoJ3dyaXRpbmcgbmV3IGJhc2VsaW5lIHJlc3VsdCAiJXMiJyAl
IChvdXRwdXRfcGF0aCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUoZmlsZW5hbWUsIG1vZGlmaWVyKQorICAgICAg
ICAgICAgX2xvZy5kZWJ1ZygncmVzZXR0aW5nIGJhc2VsaW5lIHJlc3VsdCAiJXMiJyAlIG91dHB1
dF9wYXRoKQogCi0gICAgICAgIHNlbGYuX3BvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3V0cHV0
X2RpcikKLSAgICAgICAgb3V0cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0X2Rpciwgb3V0
cHV0X2ZpbGUpCi0gICAgICAgIF9sb2cuZGVidWcoJ3dyaXRpbmcgbmV3IGJhc2VsaW5lIHRvICIl
cyInICUgKG91dHB1dF9wYXRoKSkKICAgICAgICAgc2VsZi5fd3JpdGVfaW50b19maWxlX2F0X3Bh
dGgob3V0cHV0X3BhdGgsIGRhdGEsIGVuY29kaW5nKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFt
ZShzZWxmLCBmaWxlbmFtZSwgbW9kaWZpZXIpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlm
Zi5weQppbmRleCA5ZmVkNDc0Li4xOGY3NGI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRf
ZGlmZi5weQpAQCAtODksMTEgKzg5LDEyIEBAIGNsYXNzIFRlc3RUZXh0RGlmZih0ZXN0X3R5cGVf
YmFzZS5UZXN0VHlwZUJhc2UpOgogICAgICAgICBmYWlsdXJlcyA9IFtdCiAKICAgICAgICAgIyBJ
ZiB3ZSdyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLCB3ZSBwYXNzLgotICAgICAgICBpZiB0
ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5l
IG9yIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzOgogICAgICAgICAgICAgIyBBbHRob3VnaCBhbGwg
dGVzdF9zaGVsbC9EdW1wUmVuZGVyVHJlZSBvdXRwdXQgc2hvdWxkIGJlIHV0Zi04LAogICAgICAg
ICAgICAgIyB3ZSBkbyBub3QgZXZlciBkZWNvZGUgaXQgaW5zaWRlIHJ1bi13ZWJraXQtdGVzdHMu
ICBGb3Igc29tZSB0ZXN0cwogICAgICAgICAgICAgIyBEdW1wUmVuZGVyVHJlZSBtYXkgbm90IG91
dHB1dCB1dGYtOCB0ZXh0IChlLmcuIHdlYmFyY2hpdmVzKS4KLSAgICAgICAgICAgIHNlbGYuX3Nh
dmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgb3V0cHV0LCAiLnR4dCIsIGVuY29kaW5nPU5vbmUp
CisgICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIG91dHB1dCwg
Ii50eHQiLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNl
bGluZT10ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmVz
CiAKICAgICAgICAgIyBOb3JtYWxpemUgdGV4dCB0byBkaWZmCg==
</data>
<flag name="review"
          id="40848"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56430</attachid>
            <date>2010-05-18 17:13:13 -0700</date>
            <delta_ts>2010-05-18 17:24:54 -0700</delta_ts>
            <desc>lint</desc>
            <filename>wk38879_update_baseline.diff</filename>
            <type>text/plain</type>
            <size>35872</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjhmM2VhLi4zNWQ4ZmM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDUt
MTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IGlt
cGxlbWVudCAnLS1yZXNldC1yZXN1bHRzJyBmbGFnIHRvIGNvbXBsZW1lbnQKKyAgICAgICAgdGhl
ICctLW5ldy1iYXNlbGluZScgZmxhZy4gJy0tbmV3LWJhc2VsaW5lJyB3aWxsIGFsd2F5cyB3cml0
ZSB0aGUKKyAgICAgICAgcmVzdWx0cyBpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3Rvcnk7ICctLXJl
c2V0LXJlc3VsdHMnIHdpbGwgdXBkYXRlIHRoZQorICAgICAgICBleGlzdGluZyBiYXNlbGluZSB3
aGVyZXZlciBpdCBoYXBwZW5zIHRvIGJlLiBCb3RoIHNldHMgb2YgYmVoYXZpb3IKKyAgICAgICAg
YXJlIHVzZWZ1bCBpbiBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNlcy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzkKKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJnLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2Fu
dmFzLXpvb20tZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20tZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdl
L2NhbnZhcy16b29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvZGF0YS9pbWFnZS9jYW52YXMtem9vbS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvY3Jhc2gtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9kYXRhL21pc2MvY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL21pc3NpbmctZXhwZWN0YXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL3Bhc3Np
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9kYXRhL21pc2MvcGFzc2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJn
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9w
bGF0Zm9ybS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC90ZXN0
X2V4cGVjdGF0aW9ucy50eHQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3RleHQvYXJ0aWNs
ZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0
ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9p
bWFnZV9kaWZmLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5OgorCiAyMDEwLTA1LTEyICBEaXJrIFBy
YW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9pbWFnZS9jYW52YXMtYmcuaHRtbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJnLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAyMjY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLWJn
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPGh0bWw+CisgPGhlYWQ+CisgPHN0eWxlPgorIGRpdiB7
IGJhY2tncm91bmQ6IC13ZWJraXQtY2FudmFzKHNxdWFyZXMpOyB3aWR0aDo2MDBweDsgaGVpZ2h0
OjYwMHB4OyBib3JkZXI6MnB4IHNvbGlkIGJsYWNrIH0KKyA8L3N0eWxlPgorIAorICA8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CitmdW5jdGlvbiBkcmF3KHcsIGgpIHsK
KyB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0Q1NTQ2FudmFzQ29udGV4dCgiMmQiLCAic3F1YXJlcyIs
IHcsIGgpOworCisgY3R4LmZpbGxTdHlsZSA9ICJyZ2IoMjAwLDAsMCkiOworIGN0eC5maWxsUmVj
dCAoMTAsIDEwLCA1NSwgNTApOworCisgY3R4LmZpbGxTdHlsZSA9ICJyZ2JhKDAsIDAsIDIwMCwg
MC41KSI7CisgY3R4LmZpbGxSZWN0ICgzMCwgMzAsIDU1LCA1MCk7Cit9CisgIDwvc2NyaXB0Pgor
IDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9ImRyYXcoMzAwLCAzMDApIj4KKyAgIDxkaXY+PC9kaXY+
CisgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2Uv
Y2FudmFzLXpvb20tZXhwZWN0ZWQuY2hlY2tzdW0gYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLmNoZWNrc3Vt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNzNmZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2lt
YWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKK2FmYTBmMmQy
NDYxMjBjMTgwMDA1ZDY3ZDQ3NjM2YjkyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9p
bWFnZS9jYW52YXMtem9vbS1leHBlY3RlZC5wbmcgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDk1MmI0CkJpbmFyeSBmaWxlcyAvZGV2
L251bGwgYW5kIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0
YS9pbWFnZS9jYW52YXMtem9vbS1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16
b29tLWV4cGVjdGVkLnR4dCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI4ODQ1OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ltYWdlL2NhbnZhcy16b29tLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNjI0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjI0
OiAiVGhlc2Ugc2hvdWxkIGJlIGZvdXIgZ3JlZW4gaG9sbG93IGJveGVzIHdpdGggZGltZW5zaW9u
cyA2MDB4MzAwLCAxMDB4MzAwLCA2MDB4MTAwLCAxMDB4MTAwLiIKKyAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXplIDc4NHg0MjAKKyAgICAgICAgUmVuZGVySFRNTENh
bnZhcyB7Q0FOVkFTfSBhdCAoMCwwKSBzaXplIDYwNngzMDYgW2JvcmRlcjogKDNweCBzb2xpZCAj
MDA4MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2MDYsMjkyKSBzaXplIDR4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjA2LDI5Mikgd2lkdGggNDogIiAiCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJIVE1M
Q2FudmFzIHtDQU5WQVN9IGF0ICg2MTAsMCkgc2l6ZSAxMDZ4MzA2IFtib3JkZXI6ICgzcHggc29s
aWQgIzAwODAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAg
UmVuZGVySFRNTENhbnZhcyB7Q0FOVkFTfSBhdCAoMCwzMTApIHNpemUgNjA2eDEwNiBbYm9yZGVy
OiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYw
Niw0MDIpIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MDYsNDAyKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30gYXQgKDYxMCwzMTApIHNpemUgMTA2eDEwNiBb
Ym9yZGVyOiAoM3B4IHNvbGlkICMwMDgwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20uaHRtbCBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaW1hZ2UvY2FudmFzLXpvb20uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGFiY2UxCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9p
bWFnZS9jYW52YXMtem9vbS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdHlsZT4KKyAgICBjYW52
YXMgeyBib3JkZXI6IHNvbGlkIGdyZWVuOworICAgICAgICAgICAgIHpvb206IDI7IH0KKzwvc3R5
bGU+Cis8cD4KKyAgICBUaGVzZSBzaG91bGQgYmUgZm91ciBncmVlbiBob2xsb3cgYm94ZXMgd2l0
aCBkaW1lbnNpb25zIDYwMHgzMDAsIDEwMHgzMDAsIDYwMHgxMDAsIDEwMHgxMDAuCis8L3A+Cis8
IS0tIDMwMHgxNTAgLS0+Cis8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorPCEtLSA1MHgx
NTAgLS0+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI1MCI+PC9jYW52YXM+Cis8IS0tIDMw
MHg1MCAtLT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Cis8IS0t
IDUweDUwIC0tPgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwv
Y2FudmFzPgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9taXNjL2NyYXNoLWV4cGVjdGVkLnR4dCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIxYzNmNQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9jcmFz
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGNy
YXNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9taXNjL2NyYXNoLmh0bWwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kYXRhL21pc2MvY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5iOTgyMGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9taXNjL2NyYXNoLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGNyYXNoLgorPC9i
b2R5PgorPC9odG1sPiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvbWlzc2luZy1leHBl
Y3RhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMDBiNTAK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9kYXRhL21pc2MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sCkBAIC0wLDAgKzEsNSBAQAor
PGh0bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBpbnRlbnRpb25hbGx5IGRvZXNuJ3QgaGF2ZSBhbiBl
eHBlY3RlZCByZXN1bHQgY2hlY2tlZCBpbi4KKzwvYm9keT4KKzwvaHRtbD4gCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL21pc2MvcGFz
c2luZy1leHBlY3RlZC50eHQgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9kYXRhL21pc2MvcGFzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjZiZDMxNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9wYXNzaW5nLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8gcGFzcy4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvbWlzYy9w
YXNzaW5nLmh0bWwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9k
YXRhL21pc2MvcGFzc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmRiN2UzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kYXRhL21pc2MvcGFzc2luZy5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0
bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBpcyBleHBlY3RlZCB0byBwYXNzLgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9wbGF0Zm9ybS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC5jaGVja3N1bSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0v
dGVzdC9pbWFnZS9jYW52YXMtYmctZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNGNkOGRhYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9j
YW52YXMtYmctZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNzkwYjY4MWE0MTY5NzYz
NGZjZjJhMjU4N2FmYjg5YzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3Jt
L3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVkLnBuZyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52YXMtYmct
ZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMDA0NTAK
QmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvaW1hZ2UvY2FudmFzLWJnLWV4cGVjdGVk
LnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52YXMtYmctZXhwZWN0ZWQudHh0
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9y
bS90ZXN0L2ltYWdlL2NhbnZhcy1iZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjQxMWMwYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52
YXMtYmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
ODV4NjIwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDc4NXg2MjAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYy
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDYwNAorICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA2MDR4NjA0IFtib3JkZXI6ICgycHggc29saWQg
IzAwMDAwMCldCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9ybS90ZXN0L3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
NzhhMDFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
MCwwICsxIEBACitXT05URklYIDogbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNT
SU5HIFBBU1MKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS90ZXh0L2FydGljbGUtZWxlbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYwYWMz
OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjAgQEAKK1ZhcmlvdXMgdGVzdHMgZm9yIHRoZSBhcnRpY2xlIGVsZW1lbnQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCis8YXJ0aWNsZT4gY2xvc2VzIDxwPjoKK1BBU1MgYXJ0aWNs
ZTEucGFyZW50Tm9kZS5ub2RlTmFtZSA9PSAicCIgaXMgZmFsc2UKKzxwPiBkb2VzIG5vdCBjbG9z
ZSA8YXJ0aWNsZT46CitQQVNTIHAxLnBhcmVudE5vZGUubm9kZU5hbWUgaXMgIkFSVElDTEUiCis8
YXJ0aWNsZT4gY2FuIGJlIG5lc3RlZCBpbnNpZGUgPGFydGljbGU+OgorUEFTUyBhcnRpY2xlMy5w
YXJlbnROb2RlLmlkIGlzICJhcnRpY2xlMiIKK1Jlc2lkdWFsIHN0eWxlOgorUEFTUyBnZXRXZWln
aHQoImFydGljbGU0IikgaXMgImJvbGQiCitQQVNTIGdldFdlaWdodCgic3BhbjEiKSBpcyAiYm9s
ZCIKK0Zvcm1hdEJsb2NrOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lIGlzICJBUlRJQ0xFIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvdGV4dC9hcnRp
Y2xlLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGY0
NTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvZGF0YS90ZXh0L2FydGljbGUtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggNjk1N2ZjZC4uMDlmOWFjNyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJl
YWQucHkKQEAgLTQyNSw3ICs0MjUsOCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgICAgICMgYXJlIGdlbmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAoT3Ro
ZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAgICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBj
b3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQogICAgICAgICBpbWFnZV9oYXNoID0gdGVzdF9pbmZv
LmltYWdlX2hhc2goKQotICAgICAgICBpZiBpbWFnZV9oYXNoIGFuZCBzZWxmLl90ZXN0X2FyZ3Mu
bmV3X2Jhc2VsaW5lOgorICAgICAgICBpZiAoaW1hZ2VfaGFzaCBhbmQKKyAgICAgICAgICAgIChz
ZWxmLl90ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHNlbGYuX3Rlc3RfYXJncy5yZXNldF9yZXN1
bHRzKSk6CiAgICAgICAgICAgICBpbWFnZV9oYXNoID0gIiIKICAgICAgICAgc3RhcnQgPSB0aW1l
LnRpbWUoKQogICAgICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2NoZWNrc3VtLCBvdXRwdXQs
IGVycm9yID0gXApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191
bml0dGVzdC5weQppbmRleCBkYmExMTk0Li4zODA0MjEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weQpAQCAtMjM5LDYgKzIzOSw4IEBA
IGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcHJp
bnRfdGVzdF9yZXN1bHQoc2VsZik6CiAgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQoJ2Zvby5o
dG1sJykKICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1w
cmludCcsICdub3RoaW5nJ10pCisgICAgICAgIHJlc3VsdCA9IGdldF9yZXN1bHQob3MucGF0aC5q
b2luKHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZm9vLmh0bWwnKSkKICAgICAgICAgcHJpbnRlci5wcmludF90
ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCBleHBfc3RyPScnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9zdHI9JycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShlcnIuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggZDExZjNlMi4uMjdjODE2
NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTk4LDE5ICs5OCwxOCBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiBvcy5wYXRo
LmpvaW4oc2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFtZSkKIAogICAgIGRl
ZiBnZXRfYmFzaWNfdGVzdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5nZXRfdGVzdCgn
ZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1sJyksCi0gICAgICAgICAgICAgICAgc2VsZi5n
ZXRfdGVzdCgnZmFzdC9odG1sL2hlYWRlci1lbGVtZW50Lmh0bWwnKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwva2V5Z2VuLmh0bWwnKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLmdldF90ZXN0KCdmYXN0L2h0bWwvdGFiLW9yZGVyLmh0bWwnKSwKLSAgICAgICAgICAg
ICAgICBzZWxmLmdldF90ZXN0KCdmYXN0L2V2ZW50cy9zcGFjZS1zY3JvbGwtZXZlbnQuaHRtbCcp
LAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2Zhc3QvZXZlbnRzL3RhYi1pbWFnZW1h
cC5odG1sJyldCisgICAgICAgIHJldHVybiBbc2VsZi5nZXRfdGVzdCgndGV4dC9hcnRpY2xlLWVs
ZW1lbnQuaHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2ltYWdlL2NhbnZh
cy1iZy5odG1sJyksCisgICAgICAgICAgICAgICAgc2VsZi5nZXRfdGVzdCgnaW1hZ2UvY2FudmFz
LXpvb20uaHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ21pc2MvY3Jhc2gu
aHRtbCcpLAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ21pc2MvcGFzc2luZy5odG1s
JyldCiAKICAgICBkZWYgZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0
dXJuICIiIgotQlVHX1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBURVhU
Ci1CVUdfVEVTVCBTS0lQIDogZmFzdC9odG1sL2tleWdlbi5odG1sID0gQ1JBU0gKLUJVR19URVNU
IFJFQkFTRUxJTkUgOiBmYXN0L2h0bWx0YWItb3JkZXIuaHRtbCA9IE1JU1NJTkcKLUJVR19URVNU
IDogZmFzdC9ldmVudHMgPSBJTUFHRQorQlVHX1RFU1QgOiB0ZXh0L2FydGljbGUtZWxlbWVudC5o
dG1sID0gVEVYVAorQlVHX1RFU1QgU0tJUCA6IG1pc2MvY3Jhc2guaHRtbCA9IENSQVNICitCVUdf
VEVTVCBSRUJBU0VMSU5FIDogbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwgPSBNSVNTSU5H
CitCVUdfVEVTVCA6IGltYWdlID0gSU1BR0UKICIiIgogCiAgICAgZGVmIHBhcnNlX2V4cChzZWxm
LCBleHBlY3RhdGlvbnMsIG92ZXJyaWRlcz1Ob25lKToKQEAgLTEyOCw0MiArMTI3LDQ0IEBAIEJV
R19URVNUIDogZmFzdC9ldmVudHMgPSBJTUFHRQogICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXQoW3Jlc3VsdF0pKQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6Ci0gICAgICAgc2VsZi5w
YXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCi0gICAgICAgc2VsZi5hc3Nl
cnRfZXhwKCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBURVhUKQotICAgICAgIHNl
bGYuYXNzZXJ0X2V4cCgnZmFzdC9ldmVudHMvdGFiLWltYWdlbWFwLmh0bWwnLCBJTUFHRSkKLSAg
ICAgICBzZWxmLmFzc2VydF9leHAoJ2Zhc3QvaHRtbC9oZWFkZXItZWxlbWVudC5odG1sJywgUEFT
UykKKyAgICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgndGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcsIFRF
WFQpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnaW1hZ2UvY2FudmFzLXpvb20uaHRtbCcsIElN
QUdFKQorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ21pc2MvcGFzc2luZy5odG1sJywgUEFTUykK
IAogICAgIGRlZiB0ZXN0X2R1cGxpY2F0ZXMoc2VsZik6Ci0gICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoU3ludGF4RXJyb3IsIHNlbGYucGFyc2VfZXhwLCAiIiIKLUJVR19URVNUIDogZmFzdC9odG1s
L2FydGljbGUtZWxlbWVudC5odG1sID0gVEVYVAotQlVHX1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNs
ZS1lbGVtZW50Lmh0bWwgPSBJTUFHRSIiIikKLSAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50
YXhFcnJvciwgc2VsZi5wYXJzZV9leHAsCi0gICAgICAgICAgIHNlbGYuZ2V0X2Jhc2ljX2V4cGVj
dGF0aW9ucygpLCAiIiIKLUJVR19URVNUIDogZmFzdC9odG1sL2FydGljbGUtZWxlbWVudC5odG1s
ID0gVEVYVAotQlVHX1RFU1QgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBJTUFH
RSIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIHNlbGYucGFyc2Vf
ZXhwLCAiIiIKK0JVR19URVNUIDogdGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IFRFWFQKK0JV
R19URVNUIDogdGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCA9IElNQUdFIiIiKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgc2VsZi5wYXJzZV9leHAsCisgICAgICAgICAg
ICBzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSwgIiIiCitCVUdfVEVTVCA6IHRleHQvYXJ0
aWNsZS1lbGVtZW50Lmh0bWwgPSBURVhUCitCVUdfVEVTVCA6IHRleHQvYXJ0aWNsZS1lbGVtZW50
Lmh0bWwgPSBJTUFHRSIiIikKIAogICAgIGRlZiB0ZXN0X292ZXJyaWRlcyhzZWxmKToKLSAgICAg
ICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSwgIiIiCi1CVUdf
T1ZFUlJJREUgOiBmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwgPSBJTUFHRSIiIikKLSAg
ICAgICBzZWxmLmFzc2VydF9leHAoJ2Zhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcsIElN
QUdFKQorICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMo
KSwgIiIiCitCVUdfT1ZFUlJJREUgOiB0ZXh0L2FydGljbGUtZWxlbWVudC5odG1sID0gSU1BR0Ui
IiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgndGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcs
IElNQUdFKQogCiAgICAgZGVmIHRlc3RfbWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2VsZik6
CiAKLSAgICAgICBkZWYgbWF0Y2godGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19lbmFibGVkKToK
LSAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCgK
LSAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QodGVzdCksIHJlc3VsdCwgcGl4ZWxfdGVzdHNf
ZW5hYmxlZCkKKyAgICAgICAgZGVmIG1hdGNoKHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZW5h
YmxlZCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRf
cmVzdWx0KAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QodGVzdCksIHJlc3VsdCwgcGl4
ZWxfdGVzdHNfZW5hYmxlZCkKIAotICAgICAgIHNlbGYucGFyc2VfZXhwKHNlbGYuZ2V0X2Jhc2lj
X2V4cGVjdGF0aW9ucygpKQotICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9odG1s
L2FydGljbGUtZWxlbWVudC5odG1sJywgVEVYVCwgVHJ1ZSkpCi0gICAgICAgc2VsZi5hc3NlcnRU
cnVlKG1hdGNoKCdmYXN0L2h0bWwvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBURVhULCBGYWxzZSkp
Ci0gICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFzdC9odG1sL2FydGljbGUtZWxlbWVu
dC5odG1sJywgQ1JBU0gsIFRydWUpKQotICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2goJ2Zh
c3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCcsIENSQVNILCBGYWxzZSkpCisgICAgICAgIGlt
cG9ydCBwZGIKKyAgICAgICAgcGRiLnNldF90cmFjZSgpCisgICAgICAgIHNlbGYucGFyc2VfZXhw
KHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
bWF0Y2goJ3RleHQvYXJ0aWNsZS1lbGVtZW50Lmh0bWwnLCBURVhULCBUcnVlKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG1hdGNoKCd0ZXh0L2FydGljbGUtZWxlbWVudC5odG1sJywgVEVYVCwg
RmFsc2UpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCd0ZXh0L2FydGljbGUtZWxl
bWVudC5odG1sJywgQ1JBU0gsIFRydWUpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNo
KCd0ZXh0L2FydGljbGUtZWxlbWVudC5odG1sJywgQ1JBU0gsIEZhbHNlKSkKIAotICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9ldmVudHMvdGFiLWltYWdlbWFwLmh0bWwnLCBJTUFH
RSwgVHJ1ZSkpCi0gICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYXN0L2V2ZW50cy90YWIt
aW1hZ2VtYXAuaHRtbCcsIFBBU1MsIEZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1h
dGNoKCdpbWFnZS9jYW52YXMtYmcuaHRtbCcsIElNQUdFLCBUcnVlKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG1hdGNoKCdpbWFnZS9jYW52YXMtYmcuaHRtbCcsIFBBU1MsIEZhbHNlKSkKIAot
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9odG1sL2tleWdlbi5odG1sJywgU0tJ
UCwgRmFsc2UpKQotICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFzdC9odG1sL3RhYi1v
cmRlci5odG1sJywgUEFTUywgRmFsc2UpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2go
J21pc2MvY3Jhc2guaHRtbCcsIFNLSVAsIEZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG1hdGNoKCdtaXNjL3Bhc3NpbmcuaHRtbCcsIFBBU1MsIEZhbHNlKSkKIAogaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKaW5kZXgg
MmM5Mjg2NS4uZTAxYmQyZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKQEAgLTE0Myw3ICsxNDMsNyBAQCBj
bGFzcyBEcnlydW5Ecml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICB0ZXh0X2ZpbGVuYW1lID0g
c2VsZi5fcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUsICcudHh0JykKICAgICAgICAg
dGV4dF9vdXRwdXQgPSBfcmVhZF9maWxlKHRleHRfZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgaW1h
Z2VfaGFzaDoKKyAgICAgICAgaWYgaW1hZ2VfaGFzaCBpcyBub3QgTm9uZToKICAgICAgICAgICAg
IGltYWdlX2ZpbGVuYW1lID0gc2VsZi5fcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0ZXN0X25hbWUs
ICcucG5nJykKICAgICAgICAgICAgIGltYWdlID0gX3JlYWRfZmlsZShpbWFnZV9maWxlbmFtZSwg
J3JiJykKICAgICAgICAgICAgIGlmIHNlbGYuX2ltYWdlX3BhdGg6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXgg
NWQ1NjNjZC4uZTZkNGM5OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjgsNyArMjgsOSBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiAiIiJEdW1teSBQb3J0IGltcGxlbWVudGF0aW9uIHVzZWQgZm9yIHRlc3Rpbmcu
IiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CiAKK2ltcG9ydCBjb2Rl
Y3MKIGltcG9ydCBvcwogaW1wb3J0IHRpbWUKIApAQCAtNDUsOSArNDcsOCBAQCBjbGFzcyBUZXN0
UG9ydChiYXNlLlBvcnQpOgogICAgICAgICByZXR1cm4gKCd0ZXN0JywpCiAKICAgICBkZWYgYmFz
ZWxpbmVfcGF0aChzZWxmKToKLSAgICAgICAgY3VyZGlyID0gb3MucGF0aC5hYnNwYXRoKF9fZmls
ZV9fKQotICAgICAgICBzZWxmLnRvcGRpciA9IGN1cmRpclswOmN1cmRpci5pbmRleCgiV2ViS2l0
VG9vbHMiKV0KLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLnRvcGRpciwgJ0xheW91
dFRlc3RzJywgJ3BsYXRmb3JtJywgJ3Rlc3QnKQorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2lu
KHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCAncGxhdGZvcm0nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYubmFtZSgpKQogCiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNl
bGYpOgogICAgICAgICByZXR1cm4gW3NlbGYuYmFzZWxpbmVfcGF0aCgpXQpAQCAtNjYsMTIgKzY3
LDkgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkX2ZpbGVuYW1lLCBhY3R1YWxfZmlsZW5hbWUpOgogICAgICAgICByZXR1cm4gJycKIAotICAg
IGRlZiByZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHNlbGYsIGZpbGVuYW1lKToKLSAgICAgICAgcmV0
dXJuIGZpbGVuYW1lCi0KLSAgICBkZWYgZXhwZWN0ZWRfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUs
IHN1ZmZpeCk6Ci0gICAgICAgIChiYXNlbmFtZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoZmls
ZW5hbWUpCi0gICAgICAgIHJldHVybiBiYXNlbmFtZSArICcuJyArIHN1ZmZpeAorICAgIGRlZiBs
YXlvdXRfdGVzdHNfZGlyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wYXRoX2Zyb21fd2Vi
a2l0X2Jhc2UoJ1dlYktpdFRvb2xzJywgJ1NjcmlwdHMnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dlYmtpdHB5JywgJ2xheW91dF90ZXN0cycsICdkYXRhJykK
IAogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQpAQCAtNzks
NiArNzcsMTEgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgb3B0aW9ucyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX29wdGlvbnMKIAorICAgIGRlZiBwYXRoX3RvX3Rl
c3RfZXhwZWN0YXRpb25zX2ZpbGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnBhdGhfZnJv
bV93ZWJraXRfYmFzZSgnV2ViS2l0VG9vbHMnLCAnU2NyaXB0cycsCisgICAgICAgICAgICAnd2Vi
a2l0cHknLCAnbGF5b3V0X3Rlc3RzJywgJ2RhdGEnLCAncGxhdGZvcm0nLCAndGVzdCcsCisgICAg
ICAgICAgICAndGVzdF9leHBlY3RhdGlvbnMudHh0JykKKwogICAgIGRlZiByZXN1bHRzX2RpcmVj
dG9yeShzZWxmKToKICAgICAgICAgcmV0dXJuICcvdG1wLycgKyBzZWxmLl9vcHRpb25zLnJlc3Vs
dHNfZGlyZWN0b3J5CiAKQEAgLTEwNCw3ICsxMDcsMTMgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Q
b3J0KToKICAgICAgICAgcGFzcwogCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgot
ICAgICAgICByZXR1cm4gJycKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgdGVzdCBleHBlY3RhdGlv
bnMgZm9yIHRoaXMgcG9ydC4KKworICAgICAgICBCYXNpY2FsbHkgdGhpcyBzdHJpbmcgc2hvdWxk
IGNvbnRhaW4gdGhlIGVxdWl2YWxlbnQgb2YgYQorICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucyBm
aWxlLiBTZWUgdGVzdF9leHBlY3RhdGlvbnMucHkgZm9yIG1vcmUgZGV0YWlscy4iIiIKKyAgICAg
ICAgZXhwZWN0YXRpb25zX3BhdGggPSBzZWxmLnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmls
ZSgpCisgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZXhwZWN0YXRpb25zX3BhdGgsICJyIiwgInV0
Zi04IikgYXMgZmlsZToKKyAgICAgICAgICAgIHJldHVybiBmaWxlLnJlYWQoKQogCiAgICAgZGVm
IHRlc3RfYmFzZV9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKICAgICAgICAgcmV0dXJuICgndGVzdCcs
KQpAQCAtMTI5LDYgKzEzOCw3IEBAIGNsYXNzIFRlc3REcml2ZXIoYmFzZS5Ecml2ZXIpOgogICAg
ICAgICBzZWxmLl9kcml2ZXJfb3B0aW9ucyA9IHRlc3RfZHJpdmVyX29wdGlvbnMKICAgICAgICAg
c2VsZi5faW1hZ2VfcGF0aCA9IGltYWdlX3BhdGgKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQK
KyAgICAgICAgc2VsZi5faW1hZ2Vfd3JpdHRlbiA9IEZhbHNlCiAKICAgICBkZWYgcG9sbChzZWxm
KToKICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTEzNyw2ICsxNDcsMTUgQEAgY2xhc3MgVGVzdERy
aXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgIHJldHVybiAwCiAKICAgICBkZWYgcnVuX3Rlc3Qo
c2VsZiwgdXJpLCB0aW1lb3V0bXMsIGltYWdlX2hhc2gpOgorICAgICAgICBpZiBub3Qgc2VsZi5f
aW1hZ2Vfd3JpdHRlbiBhbmQgc2VsZi5fcG9ydC5fb3B0aW9ucy5waXhlbF90ZXN0czoKKyAgICAg
ICAgICAgIHdpdGggb3BlbihzZWxmLl9pbWFnZV9wYXRoLCAidyIpIGFzIGY6CisgICAgICAgICAg
ICAgICAgZi53cml0ZSgiYmFkIHBuZyBmaWxlIGZyb20gVGVzdERyaXZlciIpCisgICAgICAgICAg
ICAgICAgc2VsZi5faW1hZ2Vfd3JpdHRlbiA9IFRydWUKKworICAgICAgICAjIFdlIHNwZWNpYWwt
Y2FzZSB0aGlzIGJlY2F1c2Ugd2UgY2FuJ3QgZmFrZSBhbiBpbWFnZSBoYXNoIGZvciBhCisgICAg
ICAgICMgbWlzc2luZyBleHBlY3RhdGlvbi4KKyAgICAgICAgaWYgdXJpLmZpbmQoJ21pc2MvbWlz
c2luZy1leHBlY3RhdGlvbicpICE9IC0xOgorICAgICAgICAgICAgcmV0dXJuIChGYWxzZSwgRmFs
c2UsICdkZWFkYmVlZmRlYWRiZWVmZGVhZGJlZWZkZWFkYmVlZicsICcnLCBOb25lKQogICAgICAg
ICByZXR1cm4gKEZhbHNlLCBGYWxzZSwgaW1hZ2VfaGFzaCwgJycsIE5vbmUpCiAKICAgICBkZWYg
c3RhcnQoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAxNDgxNzRkLi42ZDU1
NDNkIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTU3NSw2ICs1NzUsNyBAQCBjbGFz
cyBUZXN0UnVubmVyOgogICAgICAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRoID0gcG5nX3BhdGgK
IAogICAgICAgICB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lID0gc2VsZi5fb3B0aW9ucy5uZXdfYmFz
ZWxpbmUKKyAgICAgICAgdGVzdF9hcmdzLnJlc2V0X3Jlc3VsdHMgPSBzZWxmLl9vcHRpb25zLnJl
c2V0X3Jlc3VsdHMKIAogICAgICAgICB0ZXN0X2FyZ3Muc2hvd19zb3VyY2VzID0gc2VsZi5fb3B0
aW9ucy5zb3VyY2VzCiAKQEAgLTE1MjEsNiArMTUyMiw5IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9
Tm9uZSk6CiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJTYXZlIGFsbCBnZW5lcmF0
ZWQgcmVzdWx0cyBhcyBuZXcgYmFzZWxpbmVzICIKICAgICAgICAgICAgICAgICAgImludG8gdGhl
IHBsYXRmb3JtIGRpcmVjdG9yeSwgb3ZlcndyaXRpbmcgd2hhdGV2ZXIncyAiCiAgICAgICAgICAg
ICAgICAgICJhbHJlYWR5IHRoZXJlLiIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigi
LS1yZXNldC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGRlZmF1
bHQ9RmFsc2UsIGhlbHA9IlJlc2V0IGFueSBleGlzdGluZyBiYXNlbGluZXMgdG8gdGhlICIKKyAg
ICAgICAgICAgICAgICAgImdlbmVyYXRlZCByZXN1bHRzIiksCiAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItLW5vLXNob3ctcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAogICAg
ICAgICAgICAgZGVmYXVsdD1UcnVlLCBkZXN0PSJzaG93X3Jlc3VsdHMiLAogICAgICAgICAgICAg
aGVscD0iRG9uJ3QgbGF1bmNoIGEgYnJvd3NlciB3aXRoIHJlc3VsdHMgYWZ0ZXIgdGhlIHRlc3Rz
ICIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGUwNTBj
YmEuLjFjNzUxZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQpAQCAtMjksNiArMjksNyBAQAogCiAiIiJVbml0IHRlc3RzIGZvciBydW5fd2Via2l0X3Rlc3Rz
LiIiIgogCitpbXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0
dGVzdApAQCAtNjIsMzkgKzYzLDk5IEBAIGRlZiBsb2dnaW5nX3J1bihhcmdzKToKIAogY2xhc3Mg
TWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2Zhc3Qoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXNzaW5nX3J1bihbJy0tcGxhdGZvcm0nLCAndGVzdCdd
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICd0
ZXN0JywgJy0tcnVuLXNpbmdseSddKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3Npbmdf
cnVuKFsnLS1wbGF0Zm9ybScsICd0ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZmFzdC9odG1sJ10pKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocGFzc2luZ19y
dW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICctLXJ1bi1zaW5nbHknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdmYXN0L2h0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXNzaW5nX3J1bihb
Jy0tcGxhdGZvcm0nLCAndGVzdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2Zhc3QvaHRtbC9hcnRpY2xlLWVsZW1lbnQuaHRtbCddKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAndGV4dC9hcnRpY2xlLWVsZW1lbnQuaHRtbCddKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICd0ZXN0JywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWNoaWxkLXByb2Nlc3NlcycsICcx
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1wcmludCcsICd1bmV4
cGVjdGVkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFzdC9odG1s
J10pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXByaW50JywgJ3Vu
ZXhwZWN0ZWQnXSkpCiAKICAgICBkZWYgdGVzdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAg
ICAgIChyZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQpID0gbG9nZ2luZ19ydW4o
CiAgICAgICAgICAgICAgWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1wcmludCcsICdjb25maWcn
LCAnLS1jaGlsZC1wcm9jZXNzZXMnLAotICAgICAgICAgICAgICAnMScsICdmYXN0L2h0bWwnXSkK
KyAgICAgICAgICAgICAgJzEnXSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdSdW5uaW5nIG9u
ZSBEdW1wUmVuZGVyVHJlZVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gcmVndWxhcl9v
dXRwdXQuZ2V0KCkpCiAKICAgICAgICAgKHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291
dHB1dCkgPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgICBbJy0tcGxhdGZvcm0nLCAndGVzdCcs
ICctLXByaW50JywgJ2NvbmZpZycsICctLWNoaWxkLXByb2Nlc3NlcycsCi0gICAgICAgICAgICAg
ICcyJywgJ2Zhc3QvaHRtbCddKQorICAgICAgICAgICAgICAnMiddKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUoJ1J1bm5pbmcgMiBEdW1wUmVuZGVyVHJlZXMgaW4gcGFyYWxsZWxcbicKICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIHJlZ3VsYXJfb3V0cHV0LmdldCgpKQogCiAgICAgZGVmIHRl
c3RfbGFzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICBwYXNzaW5nX3J1bihbJy0tcGxhdGZvcm0n
LCAndGVzdCcsICdmYXN0L2h0bWwnXSkKKyAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3Jt
JywgJ3Rlc3QnXSkKICAgICAgICAgKHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1
dCkgPSBsb2dnaW5nX3J1bigKICAgICAgICAgICAgIFsnLS1wbGF0Zm9ybScsICd0ZXN0JywgJy0t
cHJpbnQtbGFzdC1mYWlsdXJlcyddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlZ3VsYXJf
b3V0cHV0LmdldCgpLCBbJ1xuXG4nXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGJv
dF9vdXRwdXQuZ2V0KCksIFtdKQogCiAKK2RlZiBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3Blbiwg
ZmlsZV9saXN0KToKKyAgICBkZWYgX3dyYXBwZXIobmFtZSwgbW9kZSwgZW5jb2RpbmcpOgorICAg
ICAgICBpZiBuYW1lLmZpbmQoIi1leHBlY3RlZC4iKSAhPSAtMSBhbmQgbW9kZSA9PSAidyI6Cisg
ICAgICAgICAgICAjIHdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkgd3JpdGUgbmV3IGJhc2VsaW5l
cywgc28gc3R1YiB0aGVzZSBvdXQKKyAgICAgICAgICAgIG5hbWUucmVwbGFjZSgnXFwnLCAnLycp
CisgICAgICAgICAgICBmaWxlX2xpc3QuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICByZXR1cm4g
b3JpZ2luYWxfb3Blbihvcy5kZXZudWxsLCBtb2RlLCBlbmNvZGluZykKKyAgICAgICAgcmV0dXJu
IG9yaWdpbmFsX29wZW4obmFtZSwgbW9kZSwgZW5jb2RpbmcpCisgICAgcmV0dXJuIF93cmFwcGVy
CisKKworY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBh
c3NlcnRCYXNlbGluZXMoc2VsZiwgZmlsZV9saXN0LCBmaWxlKToKKyAgICAgICAgImFzc2VydCB0
aGF0IHRoZSBmaWxlX2xpc3QgY29udGFpbnMgdGhlIGJhc2VsaW5lcy4iIiIKKyAgICAgICAgZm9y
IGV4dCBpbiBbIi50eHQiLCAiLnBuZyIsICIuY2hlY2tzdW0iXToKKyAgICAgICAgICAgIGJhc2Vs
aW5lID0gZmlsZSArICItZXhwZWN0ZWQiICsgZXh0CisgICAgICAgICAgICBzZWxmLmFzc2VydFRy
dWUoYW55KGYuZmluZChiYXNlbGluZSkgIT0gLTEgZm9yIGYgaW4gZmlsZV9saXN0KSkKKworICAg
IGRlZiB0ZXN0X3Jlc2V0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGZpbGVfbGlzdCA9IFtdCisg
ICAgICAgIG9yaWdpbmFsX29wZW4gPSBjb2RlY3Mub3BlbgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICAjIFRlc3QgdGhhdCB3ZSB1cGRhdGUgZXhwZWN0YXRpb25zIGluIHBsYWNlLiBJZiB0aGUg
ZXhwZWN0YXRpb24KKyAgICAgICAgICAgICMgaXMgbXNzaW5nLCB1cGRhdGUgdGhlIGV4cGVjdGVk
IGdlbmVyaWMgbG9jYXRpb24uCisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAg
ICAgY29kZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQor
ICAgICAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10
ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcmVzZXQtcmVzdWx0cycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlL2NhbnZhcy1iZy5odG1sJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnaW1hZ2UvY2FudmFzLXpvb20uaHRtbCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJ21pc2MvbWlzc2luZy1leHBlY3RhdGlvbi5odG1sJ10pCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRCYXNlbGluZXMoZmlsZV9saXN0LAorICAgICAgICAgICAgICAgICJkYXRhL2ltYWdlL2NhbnZh
cy16b29tIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwKKyAg
ICAgICAgICAgICAgICAiZGF0YS9wbGF0Zm9ybS90ZXN0L2ltYWdlL2NhbnZhcy1iZyIpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAg
ImRhdGEvbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uIikKKyAgICAgICAgZmluYWxseToKKyAgICAg
ICAgICAgIGNvZGVjcy5vcGVuID0gb3JpZ2luYWxfb3BlbgorCisgICAgZGVmIHRlc3RfbmV3X2Jh
c2VsaW5lKHNlbGYpOgorICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICBvcmlnaW5hbF9v
cGVuID0gY29kZWNzLm9wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBUZXN0IHRoYXQg
d2UgdXBkYXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMuIElmIHRoZSBleHBlY3RhdGlvbgor
ICAgICAgICAgICAgIyBpcyBtc3NpbmcsIHRoZW4gY3JlYXRlIGEgbmV3IGV4cGVjdGF0aW9uIGlu
IHRoZSBwbGF0Zm9ybSBkaXIuCisgICAgICAgICAgICBmaWxlX2xpc3QgPSBbXQorICAgICAgICAg
ICAgY29kZWNzLm9wZW4gPSBfbW9ja2VkX29wZW4ob3JpZ2luYWxfb3BlbiwgZmlsZV9saXN0KQor
ICAgICAgICAgICAgcGFzc2luZ19ydW4oWyctLXBsYXRmb3JtJywgJ3Rlc3QnLCAnLS1waXhlbC10
ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbmV3LWJhc2VsaW5lJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvY2FudmFzLXpvb20uaHRtbCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2ltYWdlL2NhbnZhcy1iZy5odG1sJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAnbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9uLmh0bWwnXSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDkpCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEJhc2VsaW5lcyhmaWxlX2xpc3QsCisgICAgICAgICAgICAgICAgImRhdGEvcGxhdGZvcm0vdGVz
dC9pbWFnZS9jYW52YXMtem9vbSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhm
aWxlX2xpc3QsCisgICAgICAgICAgICAgICAgImRhdGEvcGxhdGZvcm0vdGVzdC9pbWFnZS9jYW52
YXMtYmciKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmlsZV9saXN0LAorICAg
ICAgICAgICAgICAgICJkYXRhL3BsYXRmb3JtL3Rlc3QvbWlzYy9taXNzaW5nLWV4cGVjdGF0aW9u
IikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNvZGVjcy5vcGVuID0gb3JpZ2luYWxf
b3BlbgorCiBjbGFzcyBUZXN0UnVubmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVm
IHRlc3RfcmVzdWx0c19odG1sKHNlbGYpOgogICAgICAgICBtb2NrX3BvcnQgPSBNb2NrKCkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3Rf
dHlwZXMvaW1hZ2VfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQppbmRleCBiMzdmNGIzLi5iMTg2ODkyIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0
X3R5cGVzL2ltYWdlX2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFnZV9kaWZmLnB5CkBAIC03MywxOCArNzMsMjMgQEAg
Y2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAg
ICBpZiBlcnJuby5FTk9FTlQgIT0gZS5lcnJubzoKICAgICAgICAgICAgICAgICByYWlzZQogCi0g
ICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGZpbGVuYW1lLCBwbmdfcGF0aCwgY2hl
Y2tzdW0pOgorICAgIGRlZiBfc2F2ZV9iYXNlbGluZV9maWxlcyhzZWxmLCBmaWxlbmFtZSwgcG5n
X3BhdGgsIGNoZWNrc3VtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9u
ZXdfYmFzZWxpbmUpOgogICAgICAgICAiIiJTYXZlcyBuZXcgYmFzZWxpbmVzIGZvciB0aGUgUE5H
IGFuZCBjaGVja3N1bS4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVuYW1lOiB0ZXN0
IGZpbGVuYW1lCiAgICAgICAgICAgcG5nX3BhdGg6IHBhdGggdG8gdGhlIGFjdHVhbCBQTkcgcmVz
dWx0IGZpbGUKICAgICAgICAgICBjaGVja3N1bTogdmFsdWUgb2YgdGhlIGFjdHVhbCBjaGVja3N1
bSByZXN1bHQKKyAgICAgICAgICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU6IGlzIHRoaXMgYSBuZXcg
YmFzZWxpbmUgb3IgYW4gdXBkYXRlZCBvbmU/CiAgICAgICAgICIiIgogICAgICAgICB3aXRoIG9w
ZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBuZ19maWxlOgogICAgICAgICAgICAgcG5nX2RhdGEgPSBw
bmdfZmlsZS5yZWFkKCkKLSAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1l
LCBwbmdfZGF0YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lKQotICAgICAgICBzZWxmLl9zYXZlX2Jh
c2VsaW5lX2RhdGEoZmlsZW5hbWUsIGNoZWNrc3VtLCAiLmNoZWNrc3VtIiwgZW5jb2Rpbmc9ImFz
Y2lpIikKKyAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBwbmdfZGF0
YSwgIi5wbmciLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lPWdlbmVyYXRlX25ld19iYXNlbGluZSkKKyAgICAgICAg
c2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBjaGVja3N1bSwgIi5jaGVja3N1bSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0iYXNjaWkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2Jhc2VsaW5lPWdlbmVy
YXRlX25ld19iYXNlbGluZSkKIAogICAgIGRlZiBfY3JlYXRlX2ltYWdlX2RpZmYoc2VsZiwgcG9y
dCwgZmlsZW5hbWUsIGNvbmZpZ3VyYXRpb24pOgogICAgICAgICAiIiJDcmVhdGVzIHRoZSB2aXN1
YWwgZGlmZiBvZiB0aGUgZXhwZWN0ZWQvYWN0dWFsIFBOR3MuCkBAIC0xMjgsOSArMTMzLDkgQEAg
Y2xhc3MgSW1hZ2VEaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAg
ICByZXR1cm4gZmFpbHVyZXMKIAogICAgICAgICAjIElmIHdlJ3JlIGdlbmVyYXRpbmcgYSBuZXcg
YmFzZWxpbmUsIHdlIHBhc3MuCi0gICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmU6Cisg
ICAgICAgIGlmIHRlc3RfYXJncy5uZXdfYmFzZWxpbmUgb3IgdGVzdF9hcmdzLnJlc2V0X3Jlc3Vs
dHM6CiAgICAgICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lX2ZpbGVzKGZpbGVuYW1lLCB0ZXN0
X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X2FyZ3MuaGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYXJn
cy5oYXNoLCB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZhaWx1
cmVzCiAKICAgICAgICAgIyBDb21wYXJlIGhhc2hlcy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2Uu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVz
L3Rlc3RfdHlwZV9iYXNlLnB5CmluZGV4IGNmMGI5ZWMuLmFkNWQ4Y2MgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90
eXBlX2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQpAQCAtOTMsNyArOTMsOCBAQCBjbGFzcyBU
ZXN0VHlwZUJhc2Uob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRpdmVfdGVz
dF9maWxlbmFtZShmaWxlbmFtZSkpCiAgICAgICAgIHNlbGYuX3BvcnQubWF5YmVfbWFrZV9kaXJl
Y3Rvcnkob3MucGF0aC5zcGxpdChvdXRwdXRfZmlsZW5hbWUpWzBdKQogCi0gICAgZGVmIF9zYXZl
X2Jhc2VsaW5lX2RhdGEoc2VsZiwgZmlsZW5hbWUsIGRhdGEsIG1vZGlmaWVyLCBlbmNvZGluZyk6
CisgICAgZGVmIF9zYXZlX2Jhc2VsaW5lX2RhdGEoc2VsZiwgZmlsZW5hbWUsIGRhdGEsIG1vZGlm
aWVyLCBlbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdf
YmFzZWxpbmU9VHJ1ZSk6CiAgICAgICAgICIiIlNhdmVzIGEgbmV3IGJhc2VsaW5lIGZpbGUgaW50
byB0aGUgcG9ydCdzIGJhc2VsaW5lIGRpcmVjdG9yeS4KIAogICAgICAgICBUaGUgZmlsZSB3aWxs
IGJlIG5hbWVkIHNpbXBseSAiPHRlc3Q+LWV4cGVjdGVkPG1vZGlmaWVyPiIsIHN1aXRhYmxlIGZv
cgpAQCAtMTAzLDE4ICsxMDQsMjUgQEAgY2xhc3MgVGVzdFR5cGVCYXNlKG9iamVjdCk6CiAgICAg
ICAgICAgZmlsZW5hbWU6IHBhdGggdG8gdGhlIHRlc3QgZmlsZQogICAgICAgICAgIGRhdGE6IHJl
c3VsdCB0byBiZSBzYXZlZCBhcyB0aGUgbmV3IGJhc2VsaW5lCiAgICAgICAgICAgbW9kaWZpZXI6
IHR5cGUgb2YgdGhlIHJlc3VsdCBmaWxlLCBlLmcuICIudHh0IiBvciAiLnBuZyIKKyAgICAgICAg
ICBlbmNvZGluZzogZmlsZSBlbmNvZGluZyAobm9uZSwgInV0Zi04IiwgZXRjLikKKyAgICAgICAg
ICBnZW5lcmF0ZV9uZXdfYmFzZWxpbmU6IHNob3VsZCB3ZSBnZW5lcmF0ZSBhIG5ldywgcGxhdGZv
cm0tc3BlY2lmaWMKKyAgICAgICAgICAgIGJhc2VsaW5lLCBvciB1cGRhdGUgdGhlIGV4aXN0aW5n
IGJhc2VsaW5lPwogICAgICAgICAiIiIKLSAgICAgICAgcmVsYXRpdmVfZGlyID0gb3MucGF0aC5k
aXJuYW1lKAotICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZp
bGVuYW1lKSkKIAotICAgICAgICBiYXNlbGluZV9wYXRoID0gc2VsZi5fcG9ydC5iYXNlbGluZV9w
YXRoKCkKLSAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9pbihiYXNlbGluZV9wYXRoLCBy
ZWxhdGl2ZV9kaXIpCi0gICAgICAgIG91dHB1dF9maWxlID0gb3MucGF0aC5iYXNlbmFtZShvcy5w
YXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVswXSArCi0gICAgICAgICAgICBzZWxmLkZJTEVOQU1FX1NV
RkZJWF9FWFBFQ1RFRCArIG1vZGlmaWVyKQorICAgICAgICBpZiBnZW5lcmF0ZV9uZXdfYmFzZWxp
bmU6CisgICAgICAgICAgICByZWxhdGl2ZV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoCisgICAgICAg
ICAgICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkKKyAg
ICAgICAgICAgIGJhc2VsaW5lX3BhdGggPSBzZWxmLl9wb3J0LmJhc2VsaW5lX3BhdGgoKQorICAg
ICAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguam9pbihiYXNlbGluZV9wYXRoLCByZWxhdGl2
ZV9kaXIpCisgICAgICAgICAgICBvdXRwdXRfZmlsZSA9IG9zLnBhdGguYmFzZW5hbWUob3MucGF0
aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gKworICAgICAgICAgICAgICAgIHNlbGYuRklMRU5BTUVf
U1VGRklYX0VYUEVDVEVEICsgbW9kaWZpZXIpCisgICAgICAgICAgICBzZWxmLl9wb3J0Lm1heWJl
X21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9IG9z
LnBhdGguam9pbihvdXRwdXRfZGlyLCBvdXRwdXRfZmlsZSkKKyAgICAgICAgICAgIF9sb2cuZGVi
dWcoJ3dyaXRpbmcgbmV3IGJhc2VsaW5lIHJlc3VsdCAiJXMiJyAlIChvdXRwdXRfcGF0aCkpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXRfcGF0aCA9IHNlbGYuX3BvcnQuZXhwZWN0
ZWRfZmlsZW5hbWUoZmlsZW5hbWUsIG1vZGlmaWVyKQorICAgICAgICAgICAgX2xvZy5kZWJ1Zygn
cmVzZXR0aW5nIGJhc2VsaW5lIHJlc3VsdCAiJXMiJyAlIG91dHB1dF9wYXRoKQogCi0gICAgICAg
IHNlbGYuX3BvcnQubWF5YmVfbWFrZV9kaXJlY3Rvcnkob3V0cHV0X2RpcikKLSAgICAgICAgb3V0
cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGUpCi0gICAgICAg
IF9sb2cuZGVidWcoJ3dyaXRpbmcgbmV3IGJhc2VsaW5lIHRvICIlcyInICUgKG91dHB1dF9wYXRo
KSkKICAgICAgICAgc2VsZi5fd3JpdGVfaW50b19maWxlX2F0X3BhdGgob3V0cHV0X3BhdGgsIGRh
dGEsIGVuY29kaW5nKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmLCBmaWxlbmFtZSwg
bW9kaWZpZXIpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQppbmRleCA5ZmVkNDc0
Li4xOGY3NGI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQpAQCAtODksMTEg
Kzg5LDEyIEBAIGNsYXNzIFRlc3RUZXh0RGlmZih0ZXN0X3R5cGVfYmFzZS5UZXN0VHlwZUJhc2Up
OgogICAgICAgICBmYWlsdXJlcyA9IFtdCiAKICAgICAgICAgIyBJZiB3ZSdyZSBnZW5lcmF0aW5n
IGEgbmV3IGJhc2VsaW5lLCB3ZSBwYXNzLgotICAgICAgICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2Vs
aW5lOgorICAgICAgICBpZiB0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHRlc3RfYXJncy5yZXNl
dF9yZXN1bHRzOgogICAgICAgICAgICAgIyBBbHRob3VnaCBhbGwgdGVzdF9zaGVsbC9EdW1wUmVu
ZGVyVHJlZSBvdXRwdXQgc2hvdWxkIGJlIHV0Zi04LAogICAgICAgICAgICAgIyB3ZSBkbyBub3Qg
ZXZlciBkZWNvZGUgaXQgaW5zaWRlIHJ1bi13ZWJraXQtdGVzdHMuICBGb3Igc29tZSB0ZXN0cwog
ICAgICAgICAgICAgIyBEdW1wUmVuZGVyVHJlZSBtYXkgbm90IG91dHB1dCB1dGYtOCB0ZXh0IChl
LmcuIHdlYmFyY2hpdmVzKS4KLSAgICAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShm
aWxlbmFtZSwgb3V0cHV0LCAiLnR4dCIsIGVuY29kaW5nPU5vbmUpCisgICAgICAgICAgICBzZWxm
Ll9zYXZlX2Jhc2VsaW5lX2RhdGEoZmlsZW5hbWUsIG91dHB1dCwgIi50eHQiLCBlbmNvZGluZz1O
b25lLAorICAgICAgICAgICAgICAgIGdlbmVyYXRlX25ld19iYXNlbGluZT10ZXN0X2FyZ3MubmV3
X2Jhc2VsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmVzCiAKICAgICAgICAgIyBOb3Jt
YWxpemUgdGV4dCB0byBkaWZmCg==
</data>
<flag name="review"
          id="40847"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>