<?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>49573</bug_id>
          
          <creation_ts>2010-11-15 17:02:43 -0800</creation_ts>
          <short_desc>new-run-webkit-tests: rename TestInfo to TestInput, move image hash to work thread</short_desc>
          <delta_ts>2010-11-16 16:36:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>49566</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>eric</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>309518</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-15 17:02:43 -0800</bug_when>
    <thetext>new-run-webkit-tests: rename TestInfo to TestInput, move image hash to work thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309521</commentid>
    <comment_count>1</comment_count>
      <attachid>73947</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-15 17:07:24 -0800</bug_when>
    <thetext>Created attachment 73947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309535</commentid>
    <comment_count>2</comment_count>
      <attachid>73947</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-11-15 17:46:58 -0800</bug_when>
    <thetext>Comment on attachment 73947
Patch

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

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:193
&gt; +        if _needs_image_checksum(self._options):

I am not sure what is a correct behaviour, but it seems your patch will change the behaviour. I mean:

Before your patch:
  If test_args.new_baseline is true, self._driver.run_test() always receives &apos;None&apos; as an image_hash.

After your patch:
  If test_args.new_baseline is true, self._driver.run_test() may receive non-None value as a image_hash if a test has a &apos;.checksum&apos; file.

I am wondering that is your intentional or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309710</commentid>
    <comment_count>3</comment_count>
      <attachid>73947</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-11-16 06:44:45 -0800</bug_when>
    <thetext>Comment on attachment 73947
Patch

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

&gt;&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:193
&gt;&gt; +        if _needs_image_checksum(self._options):
&gt; 
&gt; I am not sure what is a correct behaviour, but it seems your patch will change the behaviour. I mean:
&gt; 
&gt; Before your patch:
&gt;   If test_args.new_baseline is true, self._driver.run_test() always receives &apos;None&apos; as an image_hash.
&gt; 
&gt; After your patch:
&gt;   If test_args.new_baseline is true, self._driver.run_test() may receive non-None value as a image_hash if a test has a &apos;.checksum&apos; file.
&gt; 
&gt; I am wondering that is your intentional or not.

Can we make _needs_image_checksum a method of TestInput and give TestInput a populate_checksum method that takes port and options as arguments? Maybe it should be populate_checksum_and_uri. Then the filename_to_uri logic could go back into TestInput as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309711</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-11-16 06:47:23 -0800</bug_when>
    <thetext>Whoops. Hit publish too early. I meant to say:
r- just to address the two questions brought up. Otherwise, looks like a good change.

On a side note, this patch would have been much easier to review if it were a rename patch followed by the logic change patch as the rename is trivial and 90% of the diff.

I&apos;m also not sure if the change in behavior matters. I&apos;m fine with the change if you are confident it won&apos;t break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309988</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 15:49:00 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 73947 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73947&amp;action=review
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:193
&gt; &gt; +        if _needs_image_checksum(self._options):
&gt; 
&gt; I am not sure what is a correct behaviour, but it seems your patch will change the behaviour. I mean:
&gt; 
&gt; Before your patch:
&gt;   If test_args.new_baseline is true, self._driver.run_test() always receives &apos;None&apos; as an image_hash.
&gt; 
&gt; After your patch:
&gt;   If test_args.new_baseline is true, self._driver.run_test() may receive non-None value as a image_hash if a test has a &apos;.checksum&apos; file.
&gt; 
&gt; I am wondering that is your intentional or not.

Good catch. That was not an intentional change. Will fix in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309989</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 15:53:34 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Can we make _needs_image_checksum a method of TestInput and give TestInput a populate_checksum method that takes port and options as arguments? Maybe it should be populate_checksum_and_uri. Then the filename_to_uri logic could go back into TestInput as well.

I would prefer not to make these changes. TestInput is really just a data class with no logic that exists so that we don&apos;t have to pass a bunch of individual fields around. 

needs_image_checksum (now renamed to test_input_needs_image_checksum is solely concerned with the command line flags passed to NRWT, and so the logic feels like it makes more sense elsewhere, ideally as a member function on the TestShellThread.

Similarly, the fact that TestInput holds a URI field is actually a mistake. The correct signature to Driver.run_test() should be to take a test name (which is a unix-style relative filename), rather than the full path (which is what it&apos;s getting) or a URI (which some implementations don&apos;t actually need).

TestInput&apos;s input parameter should be changed, and URI should be removed (letting the port call filename_to_uri as necessary). I&apos;ve added FIXMEs for those, and will make the changes in other patches.

Does that all make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309992</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 15:56:42 -0800</bug_when>
    <thetext>Oh, I should have mentioned that I realize you possibly made these suggestions because the logic is being repeated in two different places; that&apos;s definitely an issue. One of the later patches in this set will eliminate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309995</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 15:59:16 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; needs_image_checksum (now renamed to test_input_needs_image_checksum 

make that _should_fetch_expected_checksum()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310006</commentid>
    <comment_count>9</comment_count>
      <attachid>74054</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 16:09:19 -0800</bug_when>
    <thetext>Created attachment 74054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310009</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 16:10:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; On a side note, this patch would have been much easier to review if it were a rename patch followed by the logic change patch as the rename is trivial and 90% of the diff.

True, and good point. I can attempt to isolate things better in the future. I was thinking of both things as part of a general refactoring cleanup that was logically one change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310020</commentid>
    <comment_count>11</comment_count>
      <attachid>74054</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 16:36:17 -0800</bug_when>
    <thetext>Comment on attachment 74054
Patch

Clearing flags on attachment: 74054

Committed r72149: &lt;http://trac.webkit.org/changeset/72149&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310021</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-16 16:36:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73947</attachid>
            <date>2010-11-15 17:07:24 -0800</date>
            <delta_ts>2010-11-16 16:09:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49573-20101115170723.patch</filename>
            <type>text/plain</type>
            <size>17158</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMzE2NzE3ZGFmOWU5NDkzM2RmZDVhNzBiNDllNzlmZTI5ZGUyY2Y5Li5kNDRhNzM5
ZjQ2OGNkM2VkYjJhM2RiOTdiY2M5YjExOTc0YTllZTE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTAtMTEtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IHJlbmFtZSBUZXN0SW5mbyB0byBUZXN0SW5wdXQsIG1vdmUgaW1hZ2UgaGFzaCB0byB3
b3JrIHRocmVhZAorCisgICAgICAgIFJlbmFtZSB0aGUgVGVzdEluZm8gY2xhc3MgdG8gVGVzdElu
cHV0IHRvIGJlIGNsZWFyZXIgYWJvdXQgaXRzCisgICAgICAgIGZ1bmN0aW9uLCBhbmQgbW92ZSB0
aGUgY2hlY2tzdW0tcmVhZGluZyBjb2RlIGludG8gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQKKyAg
ICAgICAgdG8gYXZvaWQgY3Jvc3MtdGhyZWFkIGFjY2Vzcy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NzMKKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhy
ZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKwogMjAxMC0xMS0xNSAgQW5kcmFzIEJlY3NpICA8
YWJlY3NpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJl
ZV90aHJlYWQucHkKaW5kZXggOWYyZGU3ZTQ3NmI3YjVjMGI3ZjExZWRjNDZlODgyNTQ3NGYzZjg1
Zi4uOTQyNjA3ZDQ2NDA2Mzc0NWYwMzM2ODU3OTI5YjY0ODJlZTUzMTViYSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQu
cHkKQEAgLTc0LDcgKzc0LDcgQEAgZGVmIGxvZ19zdGFjayhzdGFjayk6CiAgICAgICAgICAgICBf
bG9nLmVycm9yKCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKIAogCi1kZWYgX3Byb2Nlc3Nfb3V0cHV0
KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdzLAorZGVmIF9w
cm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0
X2FyZ3MsCiAgICAgICAgICAgICAgICAgICAgIGNyYXNoLCB0aW1lb3V0LCB0ZXN0X3J1bl90aW1l
LCBhY3R1YWxfY2hlY2tzdW0sCiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgZXJyb3IpOgog
ICAgICIiIlJlY2VpdmVzIHRoZSBvdXRwdXQgZnJvbSBhIER1bXBSZW5kZXJUcmVlIHByb2Nlc3Ms
IHN1YmplY3RzIGl0IHRvIGEKQEAgLTg0LDcgKzg0LDcgQEAgZGVmIF9wcm9jZXNzX291dHB1dChw
b3J0LCBvcHRpb25zLCB0ZXN0X2luZm8sIHRlc3RfdHlwZXMsIHRlc3RfYXJncywKICAgICAgIHBv
cnQ6IHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAgIG9wdGlvbnM6IGNvbW1hbmQgbGluZSBvcHRp
b25zIGFyZ3VtZW50IGZyb20gb3B0cGFyc2UKICAgICAgIHByb2M6IGFuIGFjdGl2ZSBEdW1wUmVu
ZGVyVHJlZSBwcm9jZXNzCi0gICAgICB0ZXN0X2luZm86IE9iamVjdCBjb250YWluaW5nIHRoZSB0
ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKKyAgICAgIHRlc3RfaW5wdXQ6IE9iamVjdCBj
b250YWluaW5nIHRoZSB0ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKICAgICAgIHRlc3Rf
dHlwZXM6IGxpc3Qgb2YgdGVzdCB0eXBlcyB0byBzdWJqZWN0IHRoZSBvdXRwdXQgdG8KICAgICAg
IHRlc3RfYXJnczogYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBlYWNoIHRlc3QKIApAQCAtMTA0
LDEyICsxMDQsMTIgQEAgZGVmIF9wcm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lu
Zm8sIHRlc3RfdHlwZXMsIHRlc3RfYXJncywKICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKSkKIAogICAgIGlmIGNyYXNoOgotICAgICAgICBfbG9n
LmRlYnVnKCJTdGFja3RyYWNlIGZvciAlczpcbiVzIiAlICh0ZXN0X2luZm8uZmlsZW5hbWUsIGVy
cm9yKSkKKyAgICAgICAgX2xvZy5kZWJ1ZygiU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAodGVz
dF9pbnB1dC5maWxlbmFtZSwgZXJyb3IpKQogICAgICAgICAjIFN0cmlwIG9mZiAiZmlsZTovLyIg
c2luY2UgUmVsYXRpdmVUZXN0RmlsZW5hbWUgZXhwZWN0cwogICAgICAgICAjIGZpbGVzeXN0ZW0g
cGF0aHMuCiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKG9wdGlvbnMucmVzdWx0c19k
aXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQucmVsYXRpdmVf
dGVzdF9maWxlbmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZv
LmZpbGVuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5m
aWxlbmFtZSkpCiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlb
MF0gKyAiLXN0YWNrLnR4dCIKICAgICAgICAgcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5w
YXRoLnNwbGl0KGZpbGVuYW1lKVswXSkKICAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlbmFt
ZSwgIndiIiwgInV0Zi04IikgYXMgZmlsZToKQEAgLTEyMiw3ICsxMjIsNyBAQCBkZWYgX3Byb2Nl
c3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdz
LAogICAgIHRpbWVfZm9yX2RpZmZzID0ge30KICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfdHlw
ZXM6CiAgICAgICAgIHN0YXJ0X2RpZmZfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIG5ld19m
YWlsdXJlcyA9IHRlc3RfdHlwZS5jb21wYXJlX291dHB1dChwb3J0LCB0ZXN0X2luZm8uZmlsZW5h
bWUsCisgICAgICAgIG5ld19mYWlsdXJlcyA9IHRlc3RfdHlwZS5jb21wYXJlX291dHB1dChwb3J0
LCB0ZXN0X2lucHV0LmZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0LCBsb2NhbF90ZXN0X2FyZ3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbmZpZ3VyYXRpb24pCiAg
ICAgICAgICMgRG9uJ3QgYWRkIGFueSBtb3JlIGZhaWx1cmVzIGlmIHdlIGFscmVhZHkgaGF2ZSBh
IGNyYXNoLCBzbyB3ZSBkb24ndApAQCAtMTM0LDcgKzEzNCw3IEBAIGRlZiBfcHJvY2Vzc19vdXRw
dXQocG9ydCwgb3B0aW9ucywgdGVzdF9pbmZvLCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsCiAgICAg
ICAgICAgICB0aW1lLnRpbWUoKSAtIHN0YXJ0X2RpZmZfdGltZSkKIAogICAgIHRvdGFsX3RpbWVf
Zm9yX2FsbF9kaWZmcyA9IHRpbWUudGltZSgpIC0gc3RhcnRfZGlmZl90aW1lCi0gICAgcmV0dXJu
IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5mby5maWxlbmFtZSwgZmFpbHVyZXMsIHRl
c3RfcnVuX3RpbWUsCisgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5w
dXQuZmlsZW5hbWUsIGZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b3RhbF90aW1lX2Zvcl9hbGxfZGlmZnMsIHRpbWVfZm9yX2RpZmZz
KQogCiAKQEAgLTE1MywyMiArMTUzLDE5IEBAIGRlZiBfbWlsbGlzZWNvbmRzX3RvX3NlY29uZHMo
bXNlY3MpOgogICAgIHJldHVybiBmbG9hdChtc2VjcykgLyAxMDAwLjAKIAogCi1kZWYgX2ltYWdl
X2hhc2godGVzdF9pbmZvLCB0ZXN0X2FyZ3MsIG9wdGlvbnMpOgotICAgICIiIlJldHVybnMgdGhl
IGltYWdlIGhhc2ggb2YgdGhlIHRlc3QgaWYgaXQncyBuZWVkZWQsIG90aGVyd2lzZSBOb25lLiIi
IgotICAgIGlmICh0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHRlc3RfYXJncy5yZXNldF9yZXN1
bHRzIG9yIG5vdCBvcHRpb25zLnBpeGVsX3Rlc3RzKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICByZXR1cm4gdGVzdF9pbmZvLmltYWdlX2hhc2goKQorZGVmIF9uZWVkc19pbWFnZV9jaGVja3N1
bShvcHRpb25zKToKKyAgICByZXR1cm4gKG9wdGlvbnMubmV3X2Jhc2VsaW5lIG9yIG9wdGlvbnMu
cmVzZXRfcmVzdWx0cyBvciBvcHRpb25zLnBpeGVsX3Rlc3RzKQogCiAKIGNsYXNzIFNpbmdsZVRl
c3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgIiIiVGhyZWFkIHdyYXBwZXIgZm9yIHJ1
bm5pbmcgYSBzaW5nbGUgdGVzdCBmaWxlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBv
cnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdzKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgdGVzdF9pbnB1dCwgdGVzdF90eXBlcywgdGVz
dF9hcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIEFyZ3M6CiAgICAgICAgICAgcG9ydDogb2Jq
ZWN0IGltcGxlbWVudGluZyBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczog
Y29tbWFuZCBsaW5lIGFyZ3VtZW50IG9iamVjdCBmcm9tIG9wdHBhcnNlCi0gICAgICAgICAgdGVz
dF9pbmZvOiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFtZSwgdXJpIGFuZCB0aW1l
b3V0CisgICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmls
ZW5hbWUsIHVyaSBhbmQgdGltZW91dAogICAgICAgICAgIHRlc3RfdHlwZXM6IEEgbGlzdCBvZiBU
ZXN0VHlwZSBvYmplY3RzIHRvIHJ1biB0aGUgdGVzdCBvdXRwdXQKICAgICAgICAgICAgICAgYWdh
aW5zdC4KICAgICAgICAgICB0ZXN0X2FyZ3M6IEEgVGVzdEFyZ3VtZW50cyBvYmplY3QgdG8gcGFz
cyB0byBlYWNoIFRlc3RUeXBlLgpAQCAtMTc3LDcgKzE3NCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RU
aHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0
X18oc2VsZikKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9u
cyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fdGVzdF9pbmZvID0gdGVzdF9pbmZvCisgICAgICAg
IHNlbGYuX3Rlc3RfaW5wdXQgPSB0ZXN0X2lucHV0CiAgICAgICAgIHNlbGYuX3Rlc3RfdHlwZXMg
PSB0ZXN0X3R5cGVzCiAgICAgICAgIHNlbGYuX3Rlc3RfYXJncyA9IHRlc3RfYXJncwogICAgICAg
ICBzZWxmLl9kcml2ZXIgPSBOb25lCkBAIC0xODgsMTggKzE4NSwyMCBAQCBjbGFzcyBTaW5nbGVU
ZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfY292ZXJlZF9ydW4oc2VsZik6
CiAgICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSByb3V0aW5lIHRvIHdvcmsgYXJv
dW5kIGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBodHRwOi8vYml0YnVja2V0Lm9y
Zy9uZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgdGVzdF9pbmZvID0gc2VsZi5fdGVz
dF9pbmZvCisgICAgICAgIHRlc3RfaW5wdXQgPSBzZWxmLl90ZXN0X2lucHV0CisgICAgICAgIHRl
c3RfaW5wdXQudXJpID0gc2VsZi5fcG9ydC5maWxlbmFtZV90b191cmkodGVzdF9pbnB1dC5maWxl
bmFtZSkKICAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHNl
bGYuX3Rlc3RfYXJncy5wbmdfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMpCiAgICAgICAgIHNlbGYuX2RyaXZlci5zdGFy
dCgpCi0gICAgICAgIGltYWdlX2hhc2ggPSBfaW1hZ2VfaGFzaCh0ZXN0X2luZm8sIHNlbGYuX3Rl
c3RfYXJncywgc2VsZi5fb3B0aW9ucykKKyAgICAgICAgaWYgX25lZWRzX2ltYWdlX2NoZWNrc3Vt
KHNlbGYuX29wdGlvbnMpOgorICAgICAgICAgICAgdGVzdF9pbnB1dC5pbWFnZV9jaGVja3N1bSA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0odGVzdF9pbnB1dC5maWxlbmFtZSkKICAgICAg
ICAgc3RhcnQgPSB0aW1lLnRpbWUoKQogICAgICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2No
ZWNrc3VtLCBvdXRwdXQsIGVycm9yID0gXAotICAgICAgICAgICAgc2VsZi5fZHJpdmVyLnJ1bl90
ZXN0KHRlc3RfaW5mby51cmkuc3RyaXAoKSwgdGVzdF9pbmZvLnRpbWVvdXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfaGFzaCkKKyAgICAgICAgICAgIHNlbGYuX2Ry
aXZlci5ydW5fdGVzdCh0ZXN0X2lucHV0LnVyaSwgdGVzdF9pbnB1dC50aW1lb3V0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuaW1hZ2VfY2hlY2tzdW0pCiAg
ICAgICAgIGVuZCA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0ID0gX3By
b2Nlc3Nfb3V0cHV0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCi0gICAgICAgICAgICB0ZXN0
X2luZm8sIHNlbGYuX3Rlc3RfdHlwZXMsIHNlbGYuX3Rlc3RfYXJncywKKyAgICAgICAgICAgIHRl
c3RfaW5wdXQsIHNlbGYuX3Rlc3RfdHlwZXMsIHNlbGYuX3Rlc3RfYXJncywKICAgICAgICAgICAg
IGNyYXNoLCB0aW1lb3V0LCBlbmQgLSBzdGFydCwKICAgICAgICAgICAgIGFjdHVhbF9jaGVja3N1
bSwgb3V0cHV0LCBlcnJvcikKICAgICAgICAgc2VsZi5fZHJpdmVyLnN0b3AoKQpAQCAtNDAyLDE3
ICs0MDEsMTcgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAg
ICAgICAgICAgICAgc2VsZi5fbnVtX3Rlc3RzX2luX2N1cnJlbnRfZ3JvdXAgPSBsZW4oc2VsZi5f
ZmlsZW5hbWVfbGlzdCkKICAgICAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X2dyb3VwX3N0YXJ0
X3RpbWUgPSB0aW1lLnRpbWUoKQogCi0gICAgICAgICAgICB0ZXN0X2luZm8gPSBzZWxmLl9maWxl
bmFtZV9saXN0LnBvcCgpCisgICAgICAgICAgICB0ZXN0X2lucHV0ID0gc2VsZi5fZmlsZW5hbWVf
bGlzdC5wb3AoKQogCiAgICAgICAgICAgICAjIFdlIGhhdmUgYSB1cmwsIHJ1biB0ZXN0cy4KICAg
ICAgICAgICAgIGJhdGNoX2NvdW50ICs9IDEKICAgICAgICAgICAgIHNlbGYuX251bV90ZXN0cyAr
PSAxCiAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJ1bl9zaW5nbHk6Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX3Rlc3Rfc2luZ2x5KHRlc3RfaW5mbykKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fdGVzdF9zaW5nbHkodGVzdF9pbnB1dCkKICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX3Rlc3QodGVz
dF9pbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5w
dXQpCiAKLSAgICAgICAgICAgIGZpbGVuYW1lID0gdGVzdF9pbmZvLmZpbGVuYW1lCisgICAgICAg
ICAgICBmaWxlbmFtZSA9IHRlc3RfaW5wdXQuZmlsZW5hbWUKICAgICAgICAgICAgIHRlc3RzX3J1
bl9maWxlLndyaXRlKGZpbGVuYW1lICsgIlxuIikKICAgICAgICAgICAgIGlmIHJlc3VsdC5mYWls
dXJlczoKICAgICAgICAgICAgICAgICAjIENoZWNrIGFuZCBraWxsIER1bXBSZW5kZXJUcmVlIGlm
IHdlIG5lZWQgdG8uCkBAIC00NDAsNyArNDM5LDcgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdh
dGNoYWJsZVRocmVhZCk6CiAgICAgICAgICAgICBpZiB0ZXN0X3J1bm5lcjoKICAgICAgICAgICAg
ICAgICB0ZXN0X3J1bm5lci51cGRhdGVfc3VtbWFyeShyZXN1bHRfc3VtbWFyeSkKIAotICAgIGRl
ZiBfcnVuX3Rlc3Rfc2luZ2x5KHNlbGYsIHRlc3RfaW5mbyk6CisgICAgZGVmIF9ydW5fdGVzdF9z
aW5nbHkoc2VsZiwgdGVzdF9pbnB1dCk6CiAgICAgICAgICIiIlJ1biBhIHRlc3QgaW4gYSBzZXBh
cmF0ZSB0aHJlYWQsIGVuZm9yY2luZyBhIGhhcmQgdGltZSBsaW1pdC4KIAogICAgICAgICBTaW5j
ZSB3ZSBjYW4gb25seSBkZXRlY3QgdGhlIHRlcm1pbmF0aW9uIG9mIGEgdGhyZWFkLCBub3QgYW55
IGludGVybmFsCkBAIC00NDgsNyArNDQ3LDcgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNo
YWJsZVRocmVhZCk6CiAgICAgICAgIGZpbGVzIHNpbmdseS4KIAogICAgICAgICBBcmdzOgotICAg
ICAgICAgIHRlc3RfaW5mbzogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUsIHVy
aSBhbmQgdGltZW91dAorICAgICAgICAgIHRlc3RfaW5wdXQ6IE9iamVjdCBjb250YWluaW5nIHRo
ZSB0ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKIAogICAgICAgICBSZXR1cm5zOgogICAg
ICAgICAgIEEgVGVzdFJlc3VsdApAQCAtNDU2LDE0ICs0NTUsMTQgQEAgY2xhc3MgVGVzdFNoZWxs
VGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgICAgICIiIgogICAgICAgICB3b3JrZXIgPSBT
aW5nbGVUZXN0VGhyZWFkKHNlbGYuX3BvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfYXJncykKIAogICAgICAg
ICB3b3JrZXIuc3RhcnQoKQogCiAgICAgICAgIHRocmVhZF90aW1lb3V0ID0gX21pbGxpc2Vjb25k
c190b19zZWNvbmRzKAotICAgICAgICAgICAgX3BhZF90aW1lb3V0KGludCh0ZXN0X2luZm8udGlt
ZW91dCkpKQorICAgICAgICAgICAgX3BhZF90aW1lb3V0KGludCh0ZXN0X2lucHV0LnRpbWVvdXQp
KSkKICAgICAgICAgdGhyZWFkLl9uZXh0X3RpbWVvdXQgPSB0aW1lLnRpbWUoKSArIHRocmVhZF90
aW1lb3V0CiAgICAgICAgIHdvcmtlci5qb2luKHRocmVhZF90aW1lb3V0KQogICAgICAgICBpZiB3
b3JrZXIuaXNBbGl2ZSgpOgpAQCAtNDg1LDE3ICs0ODQsMTcgQEAgY2xhc3MgVGVzdFNoZWxsVGhy
ZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgICAgICAgICAjIFRoaXMgZ2V0cyByYWlzZWQgaWYg
dGhlIHdvcmtlciB0aHJlYWQgaGFzIGFscmVhZHkgZXhpdGVkLgogICAgICAgICAgICAgZmFpbHVy
ZXMgPSBbXQogICAgICAgICAgICAgX2xvZy5lcnJvcignQ2Fubm90IGdldCByZXN1bHRzIG9mIHRl
c3Q6ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5mby5maWxlbmFtZSkKLSAg
ICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5mby5maWxl
bmFtZSwgZmFpbHVyZXM9W10sCisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuZmls
ZW5hbWUpCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0
X2lucHV0LmZpbGVuYW1lLCBmYWlsdXJlcz1bXSwKICAgICAgICAgICAgICAgICB0ZXN0X3J1bl90
aW1lPTAsIHRvdGFsX3RpbWVfZm9yX2FsbF9kaWZmcz0wLCB0aW1lX2Zvcl9kaWZmcz0wKQogCiAg
ICAgICAgIHJldHVybiByZXN1bHQKIAotICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9pbmZv
KToKKyAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgogICAgICAgICAiIiJSdW4g
YSBzaW5nbGUgdGVzdCBmaWxlIHVzaW5nIGEgc2hhcmVkIER1bXBSZW5kZXJUcmVlIHByb2Nlc3Mu
CiAKICAgICAgICAgQXJnczoKLSAgICAgICAgICB0ZXN0X2luZm86IE9iamVjdCBjb250YWluaW5n
IHRoZSB0ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKKyAgICAgICAgICB0ZXN0X2lucHV0
OiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFtZSwgdXJpIGFuZCB0aW1lb3V0CiAK
ICAgICAgICAgUmV0dXJuczogYSBUZXN0UmVzdWx0IG9iamVjdC4KICAgICAgICAgIiIiCkBAIC01
MDQsMTkgKzUwMywyMSBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToK
ICAgICAgICAgIyBjaGVja3N1bXMgbWF0Y2gsIHNvIGl0IHNob3VsZCBiZSBzZXQgdG8gYSBibGFu
ayB2YWx1ZSBpZiB3ZQogICAgICAgICAjIGFyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLiAg
KE90aGVyd2lzZSwgYW4gaW1hZ2UgZnJvbSBhCiAgICAgICAgICMgcHJldmlvdXMgcnVuIHdpbGwg
YmUgY29waWVkIGludG8gdGhlIGJhc2VsaW5lLikKLSAgICAgICAgaW1hZ2VfaGFzaCA9IF9pbWFn
ZV9oYXNoKHRlc3RfaW5mbywgc2VsZi5fdGVzdF9hcmdzLCBzZWxmLl9vcHRpb25zKQorICAgICAg
ICB0ZXN0X2lucHV0LnVyaSA9IHNlbGYuX3BvcnQuZmlsZW5hbWVfdG9fdXJpKHRlc3RfaW5wdXQu
ZmlsZW5hbWUpCisgICAgICAgIGlmIF9uZWVkc19pbWFnZV9jaGVja3N1bShzZWxmLl9vcHRpb25z
KToKKyAgICAgICAgICAgIHRlc3RfaW5wdXQuaW1hZ2VfY2hlY2tzdW0gPSBzZWxmLl9wb3J0LmV4
cGVjdGVkX2NoZWNrc3VtKHRlc3RfaW5wdXQuZmlsZW5hbWUpCiAgICAgICAgIHN0YXJ0ID0gdGlt
ZS50aW1lKCkKIAogICAgICAgICB0aHJlYWRfdGltZW91dCA9IF9taWxsaXNlY29uZHNfdG9fc2Vj
b25kcygKLSAgICAgICAgICAgICBfcGFkX3RpbWVvdXQoaW50KHRlc3RfaW5mby50aW1lb3V0KSkp
CisgICAgICAgICAgICAgX3BhZF90aW1lb3V0KGludCh0ZXN0X2lucHV0LnRpbWVvdXQpKSkKICAg
ICAgICAgc2VsZi5fbmV4dF90aW1lb3V0ID0gc3RhcnQgKyB0aHJlYWRfdGltZW91dAogCiAgICAg
ICAgIGNyYXNoLCB0aW1lb3V0LCBhY3R1YWxfY2hlY2tzdW0sIG91dHB1dCwgZXJyb3IgPSBcCi0g
ICAgICAgICAgIHNlbGYuX2RyaXZlci5ydW5fdGVzdCh0ZXN0X2luZm8udXJpLCB0ZXN0X2luZm8u
dGltZW91dCwgaW1hZ2VfaGFzaCkKKyAgICAgICAgICAgc2VsZi5fZHJpdmVyLnJ1bl90ZXN0KHRl
c3RfaW5wdXQudXJpLCB0ZXN0X2lucHV0LnRpbWVvdXQsIHRlc3RfaW5wdXQuaW1hZ2VfY2hlY2tz
dW0pCiAgICAgICAgIGVuZCA9IHRpbWUudGltZSgpCiAKICAgICAgICAgcmVzdWx0ID0gX3Byb2Nl
c3Nfb3V0cHV0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2luZm8sIHNlbGYuX3Rlc3RfdHlwZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LCBzZWxmLl90ZXN0X3R5cGVzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdF9hcmdzLCBjcmFzaCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsIGVuZCAtIHN0YXJ0LCBhY3R1YWxf
Y2hlY2tzdW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIGVycm9y
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggOWZiNjg0ZmExMDcxN2FiMzdmNzEzZTIx
ZTQyZTNmMzA5NzBiMmVlZi4uYWZkNTIzNTZhMWM4YzIxYzBhNWMxMDI0NzVhYjRjZTc1MzZiNDhi
MCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC05MCwzMSArOTAsMTkgQEAgTEFZT1VU
X1RFU1RTX0RJUkVDVE9SWSA9ICJMYXlvdXRUZXN0cyIgKyBvcy5zZXAKIFRlc3RFeHBlY3RhdGlv
bnNGaWxlID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9uc0ZpbGUKIAogCi1jbGFz
cyBUZXN0SW5mbzoKK2NsYXNzIFRlc3RJbnB1dDoKICAgICAiIiJHcm91cHMgaW5mb3JtYXRpb24g
YWJvdXQgYSB0ZXN0IGZvciBlYXN5IHBhc3Npbmcgb2YgZGF0YS4iIiIKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0LCBmaWxlbmFtZSwgdGltZW91dCk6Ci0gICAgICAgICIiIkdlbmVyYXRl
cyB0aGUgVVJJIGFuZCBzdG9yZXMgdGhlIGZpbGVuYW1lIGFuZCB0aW1lb3V0IGZvciB0aGlzIHRl
c3QuCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCB0aW1lb3V0KToKKyAgICAgICAg
IiIiSG9sZHMgdGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIGEgdGVzdC4KICAgICAgICAgQXJnczoK
ICAgICAgICAgICBmaWxlbmFtZTogRnVsbCBwYXRoIHRvIHRoZSB0ZXN0LgotICAgICAgICAgIHRp
bWVvdXQ6IFRpbWVvdXQgZm9yIHJ1bm5pbmcgdGhlIHRlc3QgaW4gVGVzdFNoZWxsLgorICAgICAg
ICAgIHRpbWVvdXQ6IFRpbWVvdXQgZm9yIHJ1bm5pbmcgdGhlIHRlc3QgaW4gdGhlIGRyaXZlci4K
ICAgICAgICAgICAiIiIKICAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lCi0gICAgICAg
IHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAgICAgIHNlbGYudXJpID0gcG9ydC5maWxlbmFtZV90b191
cmkoZmlsZW5hbWUpCisgICAgICAgIHNlbGYuaW1hZ2VfY2hlY2tzdW0gPSBOb25lCiAgICAgICAg
IHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5faW1hZ2VfY2hlY2tzdW0gPSAt
MQotCi0gICAgZGVmIGltYWdlX2hhc2goc2VsZik6Ci0gICAgICAgICMgUmVhZCB0aGUgaW1hZ2Vf
aGFzaCBsYXppbHkgdG8gcmVkdWNlIHN0YXJ0dXAgdGltZS4KLSAgICAgICAgIyBUaGlzIGNsYXNz
IGlzIGFjY2Vzc2VkIGFjcm9zcyB0aHJlYWRzLCBidXQgb25seSBvbmUgdGhyZWFkIHNob3VsZAot
ICAgICAgICAjIGV2ZXIgYmUgZGVhbGluZyB3aXRoIGFueSBnaXZlbiBUZXN0SW5mbyBzbyBubyBs
b2NraW5nIGlzIG5lZWRlZC4KLSAgICAgICAgIwotICAgICAgICAjIE5vdGUgdGhhdCB3ZSB1c2Ug
LTEgdG8gaW5kaWNhdGUgdGhhdCB3ZSBoYXZlbid0IHJlYWQgdGhlIHZhbHVlLAotICAgICAgICAj
IGJlY2F1c2UgZXhwZWN0ZWRfY2hlY2tzdW0oKSByZXR1cm5zIGEgc3RyaW5nIG9yIE5vbmUuCi0g
ICAgICAgIGlmIHNlbGYuX2ltYWdlX2NoZWNrc3VtID09IC0xOgotICAgICAgICAgICAgc2VsZi5f
aW1hZ2VfY2hlY2tzdW0gPSBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKHNlbGYuZmlsZW5h
bWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9pbWFnZV9jaGVja3N1bQorICAgICAgICBzZWxmLnVy
aSA9IE5vbmUKIAogCiBjbGFzcyBSZXN1bHRTdW1tYXJ5KG9iamVjdCk6CkBAIC00OTcsMTQgKzQ4
NSwxMyBAQCBjbGFzcyBUZXN0UnVubmVyOgogCiAgICAgICAgIHJldHVybiByZXR1cm5fdmFsdWUK
IAotICAgIGRlZiBfZ2V0X3Rlc3RfaW5mb19mb3JfZmlsZShzZWxmLCB0ZXN0X2ZpbGUpOgotICAg
ICAgICAiIiJSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSBm
aWxlLiBNb3N0bHkgdGhpcworICAgIGRlZiBfZ2V0X3Rlc3RfaW5wdXRfZm9yX2ZpbGUoc2VsZiwg
dGVzdF9maWxlKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgVGVzdElucHV0
IG9iamVjdCBmb3IgdGhlIGZpbGUuIE1vc3RseSB0aGlzCiAgICAgICAgIGlzIHVzZWQgZm9yIGxv
b2tpbmcgdXAgdGhlIHRpbWVvdXQgdmFsdWUgKGluIG1zKSB0byB1c2UgZm9yIHRoZSBnaXZlbgog
ICAgICAgICB0ZXN0LiIiIgogICAgICAgICBpZiBzZWxmLl9leHBlY3RhdGlvbnMuaGFzX21vZGlm
aWVyKHRlc3RfZmlsZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVyk6Ci0gICAgICAgICAgICByZXR1
cm4gVGVzdEluZm8oc2VsZi5fcG9ydCwgdGVzdF9maWxlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuc2xvd190aW1lX291dF9tcykKLSAgICAgICAgcmV0dXJuIFRl
c3RJbmZvKHNlbGYuX3BvcnQsIHRlc3RfZmlsZSwgc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcykK
KyAgICAgICAgICAgIHJldHVybiBUZXN0SW5wdXQodGVzdF9maWxlLCBzZWxmLl9vcHRpb25zLnNs
b3dfdGltZV9vdXRfbXMpCisgICAgICAgIHJldHVybiBUZXN0SW5wdXQodGVzdF9maWxlLCBzZWxm
Ll9vcHRpb25zLnRpbWVfb3V0X21zKQogCiAgICAgZGVmIF90ZXN0X3JlcXVpcmVzX2xvY2soc2Vs
ZiwgdGVzdF9maWxlKToKICAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIHRlc3QgbmVlZHMg
dG8gYmUgbG9ja2VkIHdoZW4KQEAgLTUyMiw3ICs1MDksNyBAQCBjbGFzcyBUZXN0UnVubmVyOgog
ICAgICAgICBjcm9zcy10ZXN0cyBkZXBlbmRlbmNpZXMgdGVuZCB0byBvY2N1ciB3aXRoaW4gdGhl
IHNhbWUgZGlyZWN0b3J5LgogCiAgICAgICAgIFJldHVybjoKLSAgICAgICAgICBUaGUgUXVldWUg
b2YgbGlzdHMgb2YgVGVzdEluZm8gb2JqZWN0cy4KKyAgICAgICAgICBUaGUgUXVldWUgb2YgbGlz
dHMgb2YgVGVzdElucHV0IG9iamVjdHMuCiAgICAgICAgICIiIgogCiAgICAgICAgIHRlc3RfbGlz
dHMgPSBbXQpAQCAtNTMwLDIxICs1MTcsMjEgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAg
aWYgKHNlbGYuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVsIG9yCiAgICAgICAg
ICAgICBzZWxmLl9pc19zaW5nbGVfdGhyZWFkZWQoKSk6CiAgICAgICAgICAgICBmb3IgdGVzdF9m
aWxlIGluIHRlc3RfZmlsZXM6Ci0gICAgICAgICAgICAgICAgdGVzdF9pbmZvID0gc2VsZi5fZ2V0
X3Rlc3RfaW5mb19mb3JfZmlsZSh0ZXN0X2ZpbGUpCisgICAgICAgICAgICAgICAgdGVzdF9pbnB1
dCA9IHNlbGYuX2dldF90ZXN0X2lucHV0X2Zvcl9maWxlKHRlc3RfZmlsZSkKICAgICAgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0X3JlcXVpcmVzX2xvY2sodGVzdF9maWxlKToKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdHNfdG9faHR0cF9sb2NrLmFwcGVuZCh0ZXN0X2luZm8pCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RzX3RvX2h0dHBfbG9jay5hcHBlbmQodGVzdF9pbnB1dCkKICAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICB0ZXN0X2xpc3RzLmFwcGVuZCgoIi4i
LCBbdGVzdF9pbmZvXSkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RfbGlzdHMuYXBwZW5kKCgi
LiIsIFt0ZXN0X2lucHV0XSkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0ZXN0c19ieV9k
aXIgPSB7fQogICAgICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiB0ZXN0X2ZpbGVzOgogICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSA9IHNlbGYuX2dldF9kaXJfZm9yX3Rlc3RfZmlsZSh0ZXN0X2Zp
bGUpCi0gICAgICAgICAgICAgICAgdGVzdF9pbmZvID0gc2VsZi5fZ2V0X3Rlc3RfaW5mb19mb3Jf
ZmlsZSh0ZXN0X2ZpbGUpCisgICAgICAgICAgICAgICAgdGVzdF9pbnB1dCA9IHNlbGYuX2dldF90
ZXN0X2lucHV0X2Zvcl9maWxlKHRlc3RfZmlsZSkKICAgICAgICAgICAgICAgICBpZiBzZWxmLl90
ZXN0X3JlcXVpcmVzX2xvY2sodGVzdF9maWxlKToKLSAgICAgICAgICAgICAgICAgICAgdGVzdHNf
dG9faHR0cF9sb2NrLmFwcGVuZCh0ZXN0X2luZm8pCisgICAgICAgICAgICAgICAgICAgIHRlc3Rz
X3RvX2h0dHBfbG9jay5hcHBlbmQodGVzdF9pbnB1dCkKICAgICAgICAgICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXIuc2V0ZGVmYXVsdChkaXJlY3RvcnksIFtd
KQotICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXJbZGlyZWN0b3J5XS5hcHBlbmQodGVz
dF9pbmZvKQorICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXJbZGlyZWN0b3J5XS5hcHBl
bmQodGVzdF9pbnB1dCkKICAgICAgICAgICAgICMgU29ydCBieSB0aGUgbnVtYmVyIG9mIHRlc3Rz
IGluIHRoZSBkaXIgc28gdGhhdCB0aGUgb25lcyB3aXRoIHRoZQogICAgICAgICAgICAgIyBtb3N0
IHRlc3RzIGdldCBydW4gZmlyc3QgaW4gb3JkZXIgdG8gbWF4aW1pemUgcGFyYWxsZWxpemF0aW9u
LgogICAgICAgICAgICAgIyBOdW1iZXIgb2YgdGVzdHMgaXMgYSBnb29kIGVub3VnaCwgYnV0IG5v
dCBwZXJmZWN0LCBhcHByb3hpbWF0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191
bml0dGVzdC5weQppbmRleCAyNDhhMjkxZDM5MzAzMjVmYzcyY2JmMDZkZmQ2MmUzYWQwNmE0MjJi
Li4zYjAyNmQxNWI4MTVkZTgyMmZkNTAyZGE1NzZjNDM1YjBiYTA2M2E5IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTQyNiw3ICs0MjYsNyBAQCBjbGFz
cyBSZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIAogY2xhc3MgVGVzdFJ1bm5l
cldyYXBwZXIocnVuX3dlYmtpdF90ZXN0cy5UZXN0UnVubmVyKToKLSAgICBkZWYgX2dldF90ZXN0
X2luZm9fZm9yX2ZpbGUoc2VsZiwgdGVzdF9maWxlKToKKyAgICBkZWYgX2dldF90ZXN0X2lucHV0
X2Zvcl9maWxlKHNlbGYsIHRlc3RfZmlsZSk6CiAgICAgICAgIHJldHVybiB0ZXN0X2ZpbGUKIAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74054</attachid>
            <date>2010-11-16 16:09:19 -0800</date>
            <delta_ts>2010-11-16 16:36:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49573-20101116160918.patch</filename>
            <type>text/plain</type>
            <size>18414</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMzE2NzE3ZGFmOWU5NDkzM2RmZDVhNzBiNDllNzlmZTI5ZGUyY2Y5Li5kNDRhNzM5
ZjQ2OGNkM2VkYjJhM2RiOTdiY2M5YjExOTc0YTllZTE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTAtMTEtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IHJlbmFtZSBUZXN0SW5mbyB0byBUZXN0SW5wdXQsIG1vdmUgaW1hZ2UgaGFzaCB0byB3
b3JrIHRocmVhZAorCisgICAgICAgIFJlbmFtZSB0aGUgVGVzdEluZm8gY2xhc3MgdG8gVGVzdElu
cHV0IHRvIGJlIGNsZWFyZXIgYWJvdXQgaXRzCisgICAgICAgIGZ1bmN0aW9uLCBhbmQgbW92ZSB0
aGUgY2hlY2tzdW0tcmVhZGluZyBjb2RlIGludG8gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQKKyAg
ICAgICAgdG8gYXZvaWQgY3Jvc3MtdGhyZWFkIGFjY2Vzcy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NzMKKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhy
ZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKwogMjAxMC0xMS0xNSAgQW5kcmFzIEJlY3NpICA8
YWJlY3NpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJl
ZV90aHJlYWQucHkKaW5kZXggOWYyZGU3ZTQ3NmI3YjVjMGI3ZjExZWRjNDZlODgyNTQ3NGYzZjg1
Zi4uNzAzZjlkZWVlNzc4YzA3NDAzZjBlYjZlMWM5NGYyOWU4YWZlNmEwNiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQu
cHkKQEAgLTc0LDcgKzc0LDcgQEAgZGVmIGxvZ19zdGFjayhzdGFjayk6CiAgICAgICAgICAgICBf
bG9nLmVycm9yKCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKIAogCi1kZWYgX3Byb2Nlc3Nfb3V0cHV0
KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdzLAorZGVmIF9w
cm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0
X2FyZ3MsCiAgICAgICAgICAgICAgICAgICAgIGNyYXNoLCB0aW1lb3V0LCB0ZXN0X3J1bl90aW1l
LCBhY3R1YWxfY2hlY2tzdW0sCiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgZXJyb3IpOgog
ICAgICIiIlJlY2VpdmVzIHRoZSBvdXRwdXQgZnJvbSBhIER1bXBSZW5kZXJUcmVlIHByb2Nlc3Ms
IHN1YmplY3RzIGl0IHRvIGEKQEAgLTg0LDcgKzg0LDcgQEAgZGVmIF9wcm9jZXNzX291dHB1dChw
b3J0LCBvcHRpb25zLCB0ZXN0X2luZm8sIHRlc3RfdHlwZXMsIHRlc3RfYXJncywKICAgICAgIHBv
cnQ6IHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAgIG9wdGlvbnM6IGNvbW1hbmQgbGluZSBvcHRp
b25zIGFyZ3VtZW50IGZyb20gb3B0cGFyc2UKICAgICAgIHByb2M6IGFuIGFjdGl2ZSBEdW1wUmVu
ZGVyVHJlZSBwcm9jZXNzCi0gICAgICB0ZXN0X2luZm86IE9iamVjdCBjb250YWluaW5nIHRoZSB0
ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKKyAgICAgIHRlc3RfaW5wdXQ6IE9iamVjdCBj
b250YWluaW5nIHRoZSB0ZXN0IGZpbGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKICAgICAgIHRlc3Rf
dHlwZXM6IGxpc3Qgb2YgdGVzdCB0eXBlcyB0byBzdWJqZWN0IHRoZSBvdXRwdXQgdG8KICAgICAg
IHRlc3RfYXJnczogYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBlYWNoIHRlc3QKIApAQCAtMTA0
LDEyICsxMDQsMTIgQEAgZGVmIF9wcm9jZXNzX291dHB1dChwb3J0LCBvcHRpb25zLCB0ZXN0X2lu
Zm8sIHRlc3RfdHlwZXMsIHRlc3RfYXJncywKICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKSkKIAogICAgIGlmIGNyYXNoOgotICAgICAgICBfbG9n
LmRlYnVnKCJTdGFja3RyYWNlIGZvciAlczpcbiVzIiAlICh0ZXN0X2luZm8uZmlsZW5hbWUsIGVy
cm9yKSkKKyAgICAgICAgX2xvZy5kZWJ1ZygiU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAodGVz
dF9pbnB1dC5maWxlbmFtZSwgZXJyb3IpKQogICAgICAgICAjIFN0cmlwIG9mZiAiZmlsZTovLyIg
c2luY2UgUmVsYXRpdmVUZXN0RmlsZW5hbWUgZXhwZWN0cwogICAgICAgICAjIGZpbGVzeXN0ZW0g
cGF0aHMuCiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKG9wdGlvbnMucmVzdWx0c19k
aXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQucmVsYXRpdmVf
dGVzdF9maWxlbmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZv
LmZpbGVuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dC5m
aWxlbmFtZSkpCiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlb
MF0gKyAiLXN0YWNrLnR4dCIKICAgICAgICAgcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5w
YXRoLnNwbGl0KGZpbGVuYW1lKVswXSkKICAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlbmFt
ZSwgIndiIiwgInV0Zi04IikgYXMgZmlsZToKQEAgLTEyMiw3ICsxMjIsNyBAQCBkZWYgX3Byb2Nl
c3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdz
LAogICAgIHRpbWVfZm9yX2RpZmZzID0ge30KICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfdHlw
ZXM6CiAgICAgICAgIHN0YXJ0X2RpZmZfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIG5ld19m
YWlsdXJlcyA9IHRlc3RfdHlwZS5jb21wYXJlX291dHB1dChwb3J0LCB0ZXN0X2luZm8uZmlsZW5h
bWUsCisgICAgICAgIG5ld19mYWlsdXJlcyA9IHRlc3RfdHlwZS5jb21wYXJlX291dHB1dChwb3J0
LCB0ZXN0X2lucHV0LmZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0LCBsb2NhbF90ZXN0X2FyZ3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmNvbmZpZ3VyYXRpb24pCiAg
ICAgICAgICMgRG9uJ3QgYWRkIGFueSBtb3JlIGZhaWx1cmVzIGlmIHdlIGFscmVhZHkgaGF2ZSBh
IGNyYXNoLCBzbyB3ZSBkb24ndApAQCAtMTM0LDcgKzEzNCw3IEBAIGRlZiBfcHJvY2Vzc19vdXRw
dXQocG9ydCwgb3B0aW9ucywgdGVzdF9pbmZvLCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsCiAgICAg
ICAgICAgICB0aW1lLnRpbWUoKSAtIHN0YXJ0X2RpZmZfdGltZSkKIAogICAgIHRvdGFsX3RpbWVf
Zm9yX2FsbF9kaWZmcyA9IHRpbWUudGltZSgpIC0gc3RhcnRfZGlmZl90aW1lCi0gICAgcmV0dXJu
IHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5mby5maWxlbmFtZSwgZmFpbHVyZXMsIHRl
c3RfcnVuX3RpbWUsCisgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5w
dXQuZmlsZW5hbWUsIGZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b3RhbF90aW1lX2Zvcl9hbGxfZGlmZnMsIHRpbWVfZm9yX2RpZmZz
KQogCiAKQEAgLTE1MywyMiArMTUzLDE5IEBAIGRlZiBfbWlsbGlzZWNvbmRzX3RvX3NlY29uZHMo
bXNlY3MpOgogICAgIHJldHVybiBmbG9hdChtc2VjcykgLyAxMDAwLjAKIAogCi1kZWYgX2ltYWdl
X2hhc2godGVzdF9pbmZvLCB0ZXN0X2FyZ3MsIG9wdGlvbnMpOgotICAgICIiIlJldHVybnMgdGhl
IGltYWdlIGhhc2ggb2YgdGhlIHRlc3QgaWYgaXQncyBuZWVkZWQsIG90aGVyd2lzZSBOb25lLiIi
IgotICAgIGlmICh0ZXN0X2FyZ3MubmV3X2Jhc2VsaW5lIG9yIHRlc3RfYXJncy5yZXNldF9yZXN1
bHRzIG9yIG5vdCBvcHRpb25zLnBpeGVsX3Rlc3RzKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICByZXR1cm4gdGVzdF9pbmZvLmltYWdlX2hhc2goKQorZGVmIF9zaG91bGRfZmV0Y2hfZXhwZWN0
ZWRfY2hlY2tzdW0ob3B0aW9ucyk6CisgICAgcmV0dXJuIG9wdGlvbnMucGl4ZWxfdGVzdHMgYW5k
IG5vdCAob3B0aW9ucy5uZXdfYmFzZWxpbmUgb3Igb3B0aW9ucy5yZXNldF9yZXN1bHRzKQogCiAK
IGNsYXNzIFNpbmdsZVRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgIiIiVGhyZWFk
IHdyYXBwZXIgZm9yIHJ1bm5pbmcgYSBzaW5nbGUgdGVzdCBmaWxlLiIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9h
cmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgdGVzdF9pbnB1dCwg
dGVzdF90eXBlcywgdGVzdF9hcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIEFyZ3M6CiAgICAg
ICAgICAgcG9ydDogb2JqZWN0IGltcGxlbWVudGluZyBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAg
ICAgICAgb3B0aW9uczogY29tbWFuZCBsaW5lIGFyZ3VtZW50IG9iamVjdCBmcm9tIG9wdHBhcnNl
Ci0gICAgICAgICAgdGVzdF9pbmZvOiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFt
ZSwgdXJpIGFuZCB0aW1lb3V0CisgICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0IGNvbnRhaW5p
bmcgdGhlIHRlc3QgZmlsZW5hbWUsIHVyaSBhbmQgdGltZW91dAogICAgICAgICAgIHRlc3RfdHlw
ZXM6IEEgbGlzdCBvZiBUZXN0VHlwZSBvYmplY3RzIHRvIHJ1biB0aGUgdGVzdCBvdXRwdXQKICAg
ICAgICAgICAgICAgYWdhaW5zdC4KICAgICAgICAgICB0ZXN0X2FyZ3M6IEEgVGVzdEFyZ3VtZW50
cyBvYmplY3QgdG8gcGFzcyB0byBlYWNoIFRlc3RUeXBlLgpAQCAtMTc3LDcgKzE3NCw3IEBAIGNs
YXNzIFNpbmdsZVRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHRocmVhZGlu
Zy5UaHJlYWQuX19pbml0X18oc2VsZikKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fdGVzdF9pbmZvID0gdGVz
dF9pbmZvCisgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXQgPSB0ZXN0X2lucHV0CiAgICAgICAgIHNl
bGYuX3Rlc3RfdHlwZXMgPSB0ZXN0X3R5cGVzCiAgICAgICAgIHNlbGYuX3Rlc3RfYXJncyA9IHRl
c3RfYXJncwogICAgICAgICBzZWxmLl9kcml2ZXIgPSBOb25lCkBAIC0xODgsMTggKzE4NSwyMyBA
QCBjbGFzcyBTaW5nbGVUZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfY292
ZXJlZF9ydW4oc2VsZik6CiAgICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSByb3V0
aW5lIHRvIHdvcmsgYXJvdW5kIGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBodHRw
Oi8vYml0YnVja2V0Lm9yZy9uZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgdGVzdF9p
bmZvID0gc2VsZi5fdGVzdF9pbmZvCisKKyAgICAgICAgIyBGSVhNRTogUHVsbCB0aGlzIGludG8g
VGVzdFNoZWxsVGhyZWFkLl9ydW4oKS4KKyAgICAgICAgdGVzdF9pbnB1dCA9IHNlbGYuX3Rlc3Rf
aW5wdXQKKyAgICAgICAgdGVzdF9pbnB1dC51cmkgPSBzZWxmLl9wb3J0LmZpbGVuYW1lX3RvX3Vy
aSh0ZXN0X2lucHV0LmZpbGVuYW1lKQorICAgICAgICBpZiBfc2hvdWxkX2ZldGNoX2V4cGVjdGVk
X2NoZWNrc3VtKHNlbGYuX29wdGlvbnMpOgorICAgICAgICAgICAgdGVzdF9pbnB1dC5pbWFnZV9j
aGVja3N1bSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0odGVzdF9pbnB1dC5maWxlbmFt
ZSkKKworICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYuX2RyaXZlciA9
IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl90ZXN0X2FyZ3MucG5nX3BhdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
KQogICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoKQotICAgICAgICBpbWFnZV9oYXNoID0gX2lt
YWdlX2hhc2godGVzdF9pbmZvLCBzZWxmLl90ZXN0X2FyZ3MsIHNlbGYuX29wdGlvbnMpCi0gICAg
ICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKICAgICAgICAgY3Jhc2gsIHRpbWVvdXQsIGFjdHVhbF9j
aGVja3N1bSwgb3V0cHV0LCBlcnJvciA9IFwKLSAgICAgICAgICAgIHNlbGYuX2RyaXZlci5ydW5f
dGVzdCh0ZXN0X2luZm8udXJpLnN0cmlwKCksIHRlc3RfaW5mby50aW1lb3V0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX2hhc2gpCisgICAgICAgICAgICBzZWxmLl9k
cml2ZXIucnVuX3Rlc3QodGVzdF9pbnB1dC51cmksIHRlc3RfaW5wdXQudGltZW91dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0LmltYWdlX2NoZWNrc3VtKQog
ICAgICAgICBlbmQgPSB0aW1lLnRpbWUoKQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdCA9IF9w
cm9jZXNzX291dHB1dChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLAotICAgICAgICAgICAgdGVz
dF9pbmZvLCBzZWxmLl90ZXN0X3R5cGVzLCBzZWxmLl90ZXN0X2FyZ3MsCisgICAgICAgICAgICB0
ZXN0X2lucHV0LCBzZWxmLl90ZXN0X3R5cGVzLCBzZWxmLl90ZXN0X2FyZ3MsCiAgICAgICAgICAg
ICBjcmFzaCwgdGltZW91dCwgZW5kIC0gc3RhcnQsCiAgICAgICAgICAgICBhY3R1YWxfY2hlY2tz
dW0sIG91dHB1dCwgZXJyb3IpCiAgICAgICAgIHNlbGYuX2RyaXZlci5zdG9wKCkKQEAgLTI1OCw3
ICsyNjAsNiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAg
ICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4gdGhlIHRl
c3Qgb3V0cHV0CiAgICAgICAgICAgICAgIGFnYWluc3QuCiAgICAgICAgICAgdGVzdF9hcmdzOiBB
IFRlc3RBcmd1bWVudHMgb2JqZWN0IHRvIHBhc3MgdG8gZWFjaCBUZXN0VHlwZS4KLQogICAgICAg
ICAiIiIKICAgICAgICAgV2F0Y2hhYmxlVGhyZWFkLl9faW5pdF9fKHNlbGYpCiAgICAgICAgIHNl
bGYuX3BvcnQgPSBwb3J0CkBAIC00MDIsMTcgKzQwMywxNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJl
YWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgICAgICAgICBzZWxmLl9udW1fdGVzdHNfaW5f
Y3VycmVudF9ncm91cCA9IGxlbihzZWxmLl9maWxlbmFtZV9saXN0KQogICAgICAgICAgICAgICAg
IHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAKLSAgICAgICAg
ICAgIHRlc3RfaW5mbyA9IHNlbGYuX2ZpbGVuYW1lX2xpc3QucG9wKCkKKyAgICAgICAgICAgIHRl
c3RfaW5wdXQgPSBzZWxmLl9maWxlbmFtZV9saXN0LnBvcCgpCiAKICAgICAgICAgICAgICMgV2Ug
aGF2ZSBhIHVybCwgcnVuIHRlc3RzLgogICAgICAgICAgICAgYmF0Y2hfY291bnQgKz0gMQogICAg
ICAgICAgICAgc2VsZi5fbnVtX3Rlc3RzICs9IDEKICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlv
bnMucnVuX3NpbmdseToKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fdGVzdF9z
aW5nbHkodGVzdF9pbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl90ZXN0
X3NpbmdseSh0ZXN0X2lucHV0KQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBzZWxmLl9ydW5fdGVzdCh0ZXN0X2luZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gc2VsZi5fcnVuX3Rlc3QodGVzdF9pbnB1dCkKIAotICAgICAgICAgICAgZmlsZW5hbWUgPSB0
ZXN0X2luZm8uZmlsZW5hbWUKKyAgICAgICAgICAgIGZpbGVuYW1lID0gdGVzdF9pbnB1dC5maWxl
bmFtZQogICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUud3JpdGUoZmlsZW5hbWUgKyAiXG4iKQog
ICAgICAgICAgICAgaWYgcmVzdWx0LmZhaWx1cmVzOgogICAgICAgICAgICAgICAgICMgQ2hlY2sg
YW5kIGtpbGwgRHVtcFJlbmRlclRyZWUgaWYgd2UgbmVlZCB0by4KQEAgLTQ0MCw3ICs0NDEsNyBA
QCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgICAgIGlm
IHRlc3RfcnVubmVyOgogICAgICAgICAgICAgICAgIHRlc3RfcnVubmVyLnVwZGF0ZV9zdW1tYXJ5
KHJlc3VsdF9zdW1tYXJ5KQogCi0gICAgZGVmIF9ydW5fdGVzdF9zaW5nbHkoc2VsZiwgdGVzdF9p
bmZvKToKKyAgICBkZWYgX3J1bl90ZXN0X3NpbmdseShzZWxmLCB0ZXN0X2lucHV0KToKICAgICAg
ICAgIiIiUnVuIGEgdGVzdCBpbiBhIHNlcGFyYXRlIHRocmVhZCwgZW5mb3JjaW5nIGEgaGFyZCB0
aW1lIGxpbWl0LgogCiAgICAgICAgIFNpbmNlIHdlIGNhbiBvbmx5IGRldGVjdCB0aGUgdGVybWlu
YXRpb24gb2YgYSB0aHJlYWQsIG5vdCBhbnkgaW50ZXJuYWwKQEAgLTQ0OCw3ICs0NDksNyBAQCBj
bGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgZmlsZXMgc2lu
Z2x5LgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGVzdF9pbmZvOiBPYmplY3QgY29udGFp
bmluZyB0aGUgdGVzdCBmaWxlbmFtZSwgdXJpIGFuZCB0aW1lb3V0CisgICAgICAgICAgdGVzdF9p
bnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUsIHVyaSBhbmQgdGltZW91
dAogCiAgICAgICAgIFJldHVybnM6CiAgICAgICAgICAgQSBUZXN0UmVzdWx0CkBAIC00NTYsMTQg
KzQ1NywxNCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAg
ICAgIiIiCiAgICAgICAgIHdvcmtlciA9IFNpbmdsZVRlc3RUaHJlYWQoc2VsZi5fcG9ydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5mbywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3Rlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fdGVzdF9hcmdzKQogCiAgICAgICAgIHdvcmtlci5zdGFydCgpCiAKICAgICAgICAgdGhy
ZWFkX3RpbWVvdXQgPSBfbWlsbGlzZWNvbmRzX3RvX3NlY29uZHMoCi0gICAgICAgICAgICBfcGFk
X3RpbWVvdXQoaW50KHRlc3RfaW5mby50aW1lb3V0KSkpCisgICAgICAgICAgICBfcGFkX3RpbWVv
dXQoaW50KHRlc3RfaW5wdXQudGltZW91dCkpKQogICAgICAgICB0aHJlYWQuX25leHRfdGltZW91
dCA9IHRpbWUudGltZSgpICsgdGhyZWFkX3RpbWVvdXQKICAgICAgICAgd29ya2VyLmpvaW4odGhy
ZWFkX3RpbWVvdXQpCiAgICAgICAgIGlmIHdvcmtlci5pc0FsaXZlKCk6CkBAIC00ODUsMTcgKzQ4
NiwxNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAg
ICAgICMgVGhpcyBnZXRzIHJhaXNlZCBpZiB0aGUgd29ya2VyIHRocmVhZCBoYXMgYWxyZWFkeSBl
eGl0ZWQuCiAgICAgICAgICAgICBmYWlsdXJlcyA9IFtdCiAgICAgICAgICAgICBfbG9nLmVycm9y
KCdDYW5ub3QgZ2V0IHJlc3VsdHMgb2YgdGVzdDogJXMnICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9pbmZvLmZpbGVuYW1lKQotICAgICAgICAgICAgcmVzdWx0ID0gdGVzdF9yZXN1bHRz
LlRlc3RSZXN1bHQodGVzdF9pbmZvLmZpbGVuYW1lLCBmYWlsdXJlcz1bXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdF9pbnB1dC5maWxlbmFtZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHRl
c3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5wdXQuZmlsZW5hbWUsIGZhaWx1cmVzPVtdLAog
ICAgICAgICAgICAgICAgIHRlc3RfcnVuX3RpbWU9MCwgdG90YWxfdGltZV9mb3JfYWxsX2RpZmZz
PTAsIHRpbWVfZm9yX2RpZmZzPTApCiAKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCi0gICAgZGVm
IF9ydW5fdGVzdChzZWxmLCB0ZXN0X2luZm8pOgorICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVz
dF9pbnB1dCk6CiAgICAgICAgICIiIlJ1biBhIHNpbmdsZSB0ZXN0IGZpbGUgdXNpbmcgYSBzaGFy
ZWQgRHVtcFJlbmRlclRyZWUgcHJvY2Vzcy4KIAogICAgICAgICBBcmdzOgotICAgICAgICAgIHRl
c3RfaW5mbzogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUsIHVyaSBhbmQgdGlt
ZW91dAorICAgICAgICAgIHRlc3RfaW5wdXQ6IE9iamVjdCBjb250YWluaW5nIHRoZSB0ZXN0IGZp
bGVuYW1lLCB1cmkgYW5kIHRpbWVvdXQKIAogICAgICAgICBSZXR1cm5zOiBhIFRlc3RSZXN1bHQg
b2JqZWN0LgogICAgICAgICAiIiIKQEAgLTUwNCwxOSArNTA1LDIzIEBAIGNsYXNzIFRlc3RTaGVs
bFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICAjIGNoZWNrc3VtcyBtYXRjaCwgc28g
aXQgc2hvdWxkIGJlIHNldCB0byBhIGJsYW5rIHZhbHVlIGlmIHdlCiAgICAgICAgICMgYXJlIGdl
bmVyYXRpbmcgYSBuZXcgYmFzZWxpbmUuICAoT3RoZXJ3aXNlLCBhbiBpbWFnZSBmcm9tIGEKICAg
ICAgICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYmFzZWxpbmUuKQot
ICAgICAgICBpbWFnZV9oYXNoID0gX2ltYWdlX2hhc2godGVzdF9pbmZvLCBzZWxmLl90ZXN0X2Fy
Z3MsIHNlbGYuX29wdGlvbnMpCisKKyAgICAgICAgIyBGSVhNRTogUHVsbCB0aGlzIGludG8gVGVz
dFNoZWxsVGhyZWFkLl9ydW4oKS4KKyAgICAgICAgdGVzdF9pbnB1dC51cmkgPSBzZWxmLl9wb3J0
LmZpbGVuYW1lX3RvX3VyaSh0ZXN0X2lucHV0LmZpbGVuYW1lKQorICAgICAgICBpZiBfc2hvdWxk
X2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKHNlbGYuX29wdGlvbnMpOgorICAgICAgICAgICAgdGVz
dF9pbnB1dC5pbWFnZV9jaGVja3N1bSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0odGVz
dF9pbnB1dC5maWxlbmFtZSkKICAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQogCiAgICAgICAg
IHRocmVhZF90aW1lb3V0ID0gX21pbGxpc2Vjb25kc190b19zZWNvbmRzKAotICAgICAgICAgICAg
IF9wYWRfdGltZW91dChpbnQodGVzdF9pbmZvLnRpbWVvdXQpKSkKKyAgICAgICAgICAgICBfcGFk
X3RpbWVvdXQoaW50KHRlc3RfaW5wdXQudGltZW91dCkpKQogICAgICAgICBzZWxmLl9uZXh0X3Rp
bWVvdXQgPSBzdGFydCArIHRocmVhZF90aW1lb3V0CiAKICAgICAgICAgY3Jhc2gsIHRpbWVvdXQs
IGFjdHVhbF9jaGVja3N1bSwgb3V0cHV0LCBlcnJvciA9IFwKLSAgICAgICAgICAgc2VsZi5fZHJp
dmVyLnJ1bl90ZXN0KHRlc3RfaW5mby51cmksIHRlc3RfaW5mby50aW1lb3V0LCBpbWFnZV9oYXNo
KQorICAgICAgICAgICBzZWxmLl9kcml2ZXIucnVuX3Rlc3QodGVzdF9pbnB1dC51cmksIHRlc3Rf
aW5wdXQudGltZW91dCwgdGVzdF9pbnB1dC5pbWFnZV9jaGVja3N1bSkKICAgICAgICAgZW5kID0g
dGltZS50aW1lKCkKIAogICAgICAgICByZXN1bHQgPSBfcHJvY2Vzc19vdXRwdXQoc2VsZi5fcG9y
dCwgc2VsZi5fb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
aW5mbywgc2VsZi5fdGVzdF90eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RfaW5wdXQsIHNlbGYuX3Rlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl90ZXN0X2FyZ3MsIGNyYXNoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dCwgZW5kIC0gc3RhcnQsIGFjdHVhbF9jaGVja3N1bSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weQppbmRleCA5ZmI2ODRmYTEwNzE3YWIzN2Y3MTNlMjFlNDJlM2YzMDk3MGIyZWVmLi42
ODBiYTVlMTNhMzA3ZGI5MDYwNWJhMWEyMDVkMWM2NGRhMWFjZjllIDEwMDc1NQotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHkKQEAgLTkwLDMxICs5MCwyNCBAQCBMQVlPVVRfVEVTVFNfRElSRUNUT1JZID0g
IkxheW91dFRlc3RzIiArIG9zLnNlcAogVGVzdEV4cGVjdGF0aW9uc0ZpbGUgPSB0ZXN0X2V4cGVj
dGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zRmlsZQogCiAKLWNsYXNzIFRlc3RJbmZvOgorY2xhc3Mg
VGVzdElucHV0OgogICAgICIiIkdyb3VwcyBpbmZvcm1hdGlvbiBhYm91dCBhIHRlc3QgZm9yIGVh
c3kgcGFzc2luZyBvZiBkYXRhLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGZp
bGVuYW1lLCB0aW1lb3V0KToKLSAgICAgICAgIiIiR2VuZXJhdGVzIHRoZSBVUkkgYW5kIHN0b3Jl
cyB0aGUgZmlsZW5hbWUgYW5kIHRpbWVvdXQgZm9yIHRoaXMgdGVzdC4KKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlsZW5hbWUsIHRpbWVvdXQpOgorICAgICAgICAiIiJIb2xkcyB0aGUgaW5wdXQg
cGFyYW1ldGVycyBmb3IgYSB0ZXN0LgogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVuYW1l
OiBGdWxsIHBhdGggdG8gdGhlIHRlc3QuCi0gICAgICAgICAgdGltZW91dDogVGltZW91dCBmb3Ig
cnVubmluZyB0aGUgdGVzdCBpbiBUZXN0U2hlbGwuCisgICAgICAgICAgdGltZW91dDogVGltZW91
dCBpbiBtc2VjcyB0aGUgZHJpdmVyIHNob3VsZCB1c2Ugd2hpbGUgcnVubmluZyB0aGUgdGVzdAog
ICAgICAgICAgICIiIgorICAgICAgICAjIEZJWE1FOiBmaWxlbmFtZSBzaG91bGQgcmVhbGx5IGJl
IHRlc3RfbmFtZSBhcyBhIHJlbGF0aXZlIHBhdGguCiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBm
aWxlbmFtZQotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLnVyaSA9IHBv
cnQuZmlsZW5hbWVfdG9fdXJpKGZpbGVuYW1lKQorICAgICAgICAjIFRoZSBpbWFnZSBjaGVja3N1
bSBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBzbyB0aGF0IHRoZSBkcml2ZXIgY2FuIG9wdGlvbmFs
bHkgbm90IGhhdmUKKyAgICAgICAgIyB0byBvdXRwdXQgdGhlIGltYWdlIGlmIHRoZSBjaGVja3N1
bXMgbWF0Y2guCisgICAgICAgIHNlbGYuaW1hZ2VfY2hlY2tzdW0gPSBOb25lCiAgICAgICAgIHNl
bGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5faW1hZ2VfY2hlY2tzdW0gPSAtMQog
Ci0gICAgZGVmIGltYWdlX2hhc2goc2VsZik6Ci0gICAgICAgICMgUmVhZCB0aGUgaW1hZ2VfaGFz
aCBsYXppbHkgdG8gcmVkdWNlIHN0YXJ0dXAgdGltZS4KLSAgICAgICAgIyBUaGlzIGNsYXNzIGlz
IGFjY2Vzc2VkIGFjcm9zcyB0aHJlYWRzLCBidXQgb25seSBvbmUgdGhyZWFkIHNob3VsZAotICAg
ICAgICAjIGV2ZXIgYmUgZGVhbGluZyB3aXRoIGFueSBnaXZlbiBUZXN0SW5mbyBzbyBubyBsb2Nr
aW5nIGlzIG5lZWRlZC4KLSAgICAgICAgIwotICAgICAgICAjIE5vdGUgdGhhdCB3ZSB1c2UgLTEg
dG8gaW5kaWNhdGUgdGhhdCB3ZSBoYXZlbid0IHJlYWQgdGhlIHZhbHVlLAotICAgICAgICAjIGJl
Y2F1c2UgZXhwZWN0ZWRfY2hlY2tzdW0oKSByZXR1cm5zIGEgc3RyaW5nIG9yIE5vbmUuCi0gICAg
ICAgIGlmIHNlbGYuX2ltYWdlX2NoZWNrc3VtID09IC0xOgotICAgICAgICAgICAgc2VsZi5faW1h
Z2VfY2hlY2tzdW0gPSBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKHNlbGYuZmlsZW5hbWUp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9pbWFnZV9jaGVja3N1bQorICAgICAgICAjIEZJWE1FOiBN
YXliZSB0aGUgVVJJIHNob3VsZG4ndCBiZSBwYXJ0IG9mIHRoZSBUZXN0SW5wdXQgYXQgYWxsPwor
ICAgICAgICBzZWxmLnVyaSA9IE5vbmUKIAogCiBjbGFzcyBSZXN1bHRTdW1tYXJ5KG9iamVjdCk6
CkBAIC00OTcsMTQgKzQ5MCwxMyBAQCBjbGFzcyBUZXN0UnVubmVyOgogCiAgICAgICAgIHJldHVy
biByZXR1cm5fdmFsdWUKIAotICAgIGRlZiBfZ2V0X3Rlc3RfaW5mb19mb3JfZmlsZShzZWxmLCB0
ZXN0X2ZpbGUpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBUZXN0SW5mbyBv
YmplY3QgZm9yIHRoZSBmaWxlLiBNb3N0bHkgdGhpcworICAgIGRlZiBfZ2V0X3Rlc3RfaW5wdXRf
Zm9yX2ZpbGUoc2VsZiwgdGVzdF9maWxlKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgYXBwcm9w
cmlhdGUgVGVzdElucHV0IG9iamVjdCBmb3IgdGhlIGZpbGUuIE1vc3RseSB0aGlzCiAgICAgICAg
IGlzIHVzZWQgZm9yIGxvb2tpbmcgdXAgdGhlIHRpbWVvdXQgdmFsdWUgKGluIG1zKSB0byB1c2Ug
Zm9yIHRoZSBnaXZlbgogICAgICAgICB0ZXN0LiIiIgogICAgICAgICBpZiBzZWxmLl9leHBlY3Rh
dGlvbnMuaGFzX21vZGlmaWVyKHRlc3RfZmlsZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVyk6Ci0g
ICAgICAgICAgICByZXR1cm4gVGVzdEluZm8oc2VsZi5fcG9ydCwgdGVzdF9maWxlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2xvd190aW1lX291dF9tcykKLSAg
ICAgICAgcmV0dXJuIFRlc3RJbmZvKHNlbGYuX3BvcnQsIHRlc3RfZmlsZSwgc2VsZi5fb3B0aW9u
cy50aW1lX291dF9tcykKKyAgICAgICAgICAgIHJldHVybiBUZXN0SW5wdXQodGVzdF9maWxlLCBz
ZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMpCisgICAgICAgIHJldHVybiBUZXN0SW5wdXQo
dGVzdF9maWxlLCBzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21zKQogCiAgICAgZGVmIF90ZXN0X3Jl
cXVpcmVzX2xvY2soc2VsZiwgdGVzdF9maWxlKToKICAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYg
dGhlIHRlc3QgbmVlZHMgdG8gYmUgbG9ja2VkIHdoZW4KQEAgLTUyMiw3ICs1MTQsNyBAQCBjbGFz
cyBUZXN0UnVubmVyOgogICAgICAgICBjcm9zcy10ZXN0cyBkZXBlbmRlbmNpZXMgdGVuZCB0byBv
Y2N1ciB3aXRoaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgogCiAgICAgICAgIFJldHVybjoKLSAgICAg
ICAgICBUaGUgUXVldWUgb2YgbGlzdHMgb2YgVGVzdEluZm8gb2JqZWN0cy4KKyAgICAgICAgICBU
aGUgUXVldWUgb2YgbGlzdHMgb2YgVGVzdElucHV0IG9iamVjdHMuCiAgICAgICAgICIiIgogCiAg
ICAgICAgIHRlc3RfbGlzdHMgPSBbXQpAQCAtNTMwLDIxICs1MjIsMjEgQEAgY2xhc3MgVGVzdFJ1
bm5lcjoKICAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFs
bGVsIG9yCiAgICAgICAgICAgICBzZWxmLl9pc19zaW5nbGVfdGhyZWFkZWQoKSk6CiAgICAgICAg
ICAgICBmb3IgdGVzdF9maWxlIGluIHRlc3RfZmlsZXM6Ci0gICAgICAgICAgICAgICAgdGVzdF9p
bmZvID0gc2VsZi5fZ2V0X3Rlc3RfaW5mb19mb3JfZmlsZSh0ZXN0X2ZpbGUpCisgICAgICAgICAg
ICAgICAgdGVzdF9pbnB1dCA9IHNlbGYuX2dldF90ZXN0X2lucHV0X2Zvcl9maWxlKHRlc3RfZmls
ZSkKICAgICAgICAgICAgICAgICBpZiBzZWxmLl90ZXN0X3JlcXVpcmVzX2xvY2sodGVzdF9maWxl
KToKLSAgICAgICAgICAgICAgICAgICAgdGVzdHNfdG9faHR0cF9sb2NrLmFwcGVuZCh0ZXN0X2lu
Zm8pCisgICAgICAgICAgICAgICAgICAgIHRlc3RzX3RvX2h0dHBfbG9jay5hcHBlbmQodGVzdF9p
bnB1dCkKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICB0ZXN0X2xp
c3RzLmFwcGVuZCgoIi4iLCBbdGVzdF9pbmZvXSkpCisgICAgICAgICAgICAgICAgICAgIHRlc3Rf
bGlzdHMuYXBwZW5kKCgiLiIsIFt0ZXN0X2lucHV0XSkpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICB0ZXN0c19ieV9kaXIgPSB7fQogICAgICAgICAgICAgZm9yIHRlc3RfZmlsZSBpbiB0ZXN0
X2ZpbGVzOgogICAgICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHNlbGYuX2dldF9kaXJfZm9yX3Rl
c3RfZmlsZSh0ZXN0X2ZpbGUpCi0gICAgICAgICAgICAgICAgdGVzdF9pbmZvID0gc2VsZi5fZ2V0
X3Rlc3RfaW5mb19mb3JfZmlsZSh0ZXN0X2ZpbGUpCisgICAgICAgICAgICAgICAgdGVzdF9pbnB1
dCA9IHNlbGYuX2dldF90ZXN0X2lucHV0X2Zvcl9maWxlKHRlc3RfZmlsZSkKICAgICAgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0X3JlcXVpcmVzX2xvY2sodGVzdF9maWxlKToKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdHNfdG9faHR0cF9sb2NrLmFwcGVuZCh0ZXN0X2luZm8pCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RzX3RvX2h0dHBfbG9jay5hcHBlbmQodGVzdF9pbnB1dCkKICAgICAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXIuc2V0ZGVmYXVs
dChkaXJlY3RvcnksIFtdKQotICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXJbZGlyZWN0
b3J5XS5hcHBlbmQodGVzdF9pbmZvKQorICAgICAgICAgICAgICAgICAgICB0ZXN0c19ieV9kaXJb
ZGlyZWN0b3J5XS5hcHBlbmQodGVzdF9pbnB1dCkKICAgICAgICAgICAgICMgU29ydCBieSB0aGUg
bnVtYmVyIG9mIHRlc3RzIGluIHRoZSBkaXIgc28gdGhhdCB0aGUgb25lcyB3aXRoIHRoZQogICAg
ICAgICAgICAgIyBtb3N0IHRlc3RzIGdldCBydW4gZmlyc3QgaW4gb3JkZXIgdG8gbWF4aW1pemUg
cGFyYWxsZWxpemF0aW9uLgogICAgICAgICAgICAgIyBOdW1iZXIgb2YgdGVzdHMgaXMgYSBnb29k
IGVub3VnaCwgYnV0IG5vdCBwZXJmZWN0LCBhcHByb3hpbWF0aW9uCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCAyNDhhMjkxZDM5MzAzMjVmYzcyY2JmMDZk
ZmQ2MmUzYWQwNmE0MjJiLi41NGUxZGMwNWRmMDFjNzA2MDdjZTMzNmQ1ZDkwMDA0MjYxNDQ1NTcw
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTM4MCw2
ICszODAsOSBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBiYXNlbGluZSA9IGZpbGUgKyAiLWV4cGVjdGVkIiArIGV4dAogICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGFueShmLmZpbmQoYmFzZWxpbmUpICE9IC0xIGZvciBmIGluIGZpbGVf
bGlzdCkpCiAKKyAgICAjIEZJWE1FOiBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgd2UncmUgKm5v
dCogd3JpdGluZyBiYXNlbGluZXMgd2hlbiB3ZSdyZSBub3QKKyAgICAjIHN1cHBvc2VkIHRvIGJl
LgorCiAgICAgZGVmIGRpc2FibGVkX3Rlc3RfcmVzZXRfcmVzdWx0cyhzZWxmKToKICAgICAgICAg
IyBGSVhNRTogVGhpcyB0ZXN0IGlzIGRpc2FibGVkIHVudGlsIHdlIGNhbiByZXdyaXRlIGl0IHRv
IHVzZSBhCiAgICAgICAgICMgbW9jayBmaWxlc3lzdGVtLgpAQCAtNDI2LDcgKzQyOSw3IEBAIGNs
YXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFzcyBUZXN0UnVu
bmVyV3JhcHBlcihydW5fd2Via2l0X3Rlc3RzLlRlc3RSdW5uZXIpOgotICAgIGRlZiBfZ2V0X3Rl
c3RfaW5mb19mb3JfZmlsZShzZWxmLCB0ZXN0X2ZpbGUpOgorICAgIGRlZiBfZ2V0X3Rlc3RfaW5w
dXRfZm9yX2ZpbGUoc2VsZiwgdGVzdF9maWxlKToKICAgICAgICAgcmV0dXJuIHRlc3RfZmlsZQog
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>