<?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>59985</bug_id>
          
          <creation_ts>2011-05-02 17:10:28 -0700</creation_ts>
          <short_desc>nrwt: revamp integration tests incl. tests for servers</short_desc>
          <delta_ts>2011-05-05 15:42:41 -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>
          <dependson>59977</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>396810</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-02 17:10:28 -0700</bug_when>
    <thetext>nrwt: revamp integration tests incl. tests for servers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396819</commentid>
    <comment_count>1</comment_count>
      <attachid>92014</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-02 17:19:51 -0700</bug_when>
    <thetext>Created attachment 92014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396848</commentid>
    <comment_count>2</comment_count>
      <attachid>92022</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-02 18:06:21 -0700</bug_when>
    <thetext>Created attachment 92022
add mock_drt_unittest changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396853</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-02 18:12:00 -0700</bug_when>
    <thetext>Note that this patch has three main aspects:

(1) it adds real tests for the http and websocket servers - relevant given the fix in bug 59977

(2) it gives us a way to run &quot;integration&quot; tests that will affect the environment on the local machine (as opposed to unit tests). I added some functions to port_testcase.py for this, but it needs a better home.

And (3) it adds a default set of integration tests to each port implementation via the port_testcase.py module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396859</commentid>
    <comment_count>4</comment_count>
      <attachid>92022</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-02 18:14:10 -0700</bug_when>
    <thetext>Comment on attachment 92022
add mock_drt_unittest changes

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

&gt; Tools/ChangeLog:12
&gt; +        These tests can be run manually by invoking python on the
&gt; +        test file in question and passing the &apos;-i&apos; flag, but are
&gt; +        not run automatically as part of test-webkitpy.

Cool!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399118</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-05 15:42:41 -0700</bug_when>
    <thetext>Committed r85896: &lt;http://trac.webkit.org/changeset/85896&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92014</attachid>
            <date>2011-05-02 17:19:51 -0700</date>
            <delta_ts>2011-05-02 18:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59985-20110502171950.patch</filename>
            <type>text/plain</type>
            <size>16334</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU1NTMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YTgzY2M2MDgzYTQ2NTMxZGExYzJiZGU1MDJlNTg4ZDk5
NDI2NzI5Li4xYmU4YWEwMjcyNjJlYjcxZmE3YmE1MWE2N2ZlZGNhMDQxNWYzMzA5IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzUg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBucnd0
OiByZXZhbXAgaW50ZWdyYXRpb24gdGVzdHMgaW5jbC4gdGVzdHMgZm9yIHNlcnZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5OTg1CisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgYWRkcyB0aGUgYWJpbGl0eSB0byBydW4gImludGVncmF0aW9uIHRlc3Rz
IiB0aGF0CisgICAgICAgIGRlcGVuZCBvbiAoYW5kIGFmZmVjdCkgdGhlIGxvY2FsIGVudmlyb25t
ZW50IG9uIHlvdXIgbWFjaGluZS4KKyAgICAgICAgVGhlc2UgdGVzdHMgY2FuIGJlIHJ1biBtYW51
YWxseSBieSBpbnZva2luZyBweXRob24gb24gdGhlCisgICAgICAgIHRlc3QgZmlsZSBpbiBxdWVz
dGlvbiBhbmQgcGFzc2luZyB0aGUgJy1pJyBmbGFnLCBidXQgYXJlCisgICAgICAgIG5vdCBydW4g
YXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRlc3Qtd2Via2l0cHkuCisKKyAgICAgICAgSW50ZWdy
YXRpb24gdGVzdHMgYXJlIGlkZW50aWZpZWQgYnkgYmVpbmcgbWV0aG9kcyBuYW1lZCBhcworICAg
ICAgICAiaW50ZWdyYXRpb25fdGVzdF8qIiBpbnN0ZWFkIG9mICJ0ZXN0XyoiLCBhbmQgd2UgdXNl
IGEKKyAgICAgICAgY3VzdG9tIFRlc3RMb2FkZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBvbmUg
cHJvdmlkZWQgYnkKKyAgICAgICAgdW5pdHRlc3QuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxz
byBhZGRzIGEgcHJvdGVjdGVkICJfZGVmYXVsdF90b19hcGFjaGUiIG1ldGhvZAorICAgICAgICB0
byB0aGUgcG9ydCBvYmplY3Qgc28gd2UgY2FuIGRvIHRoZSByaWdodCB0aGluZyB3aGVuIHN0YXJ0
aW5nCisgICAgICAgIGFuZCBzdG9wcGluZyB3ZWIgc2VydmVycyB3aXRoIGxlc3MgbWVjaGFuaXNt
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bGludXhfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5OgorCisyMDExLTA1LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIG5ldy1ydW4t
d2Via2l0LXRlc3RzOiBmaXggaHR0cCBzZXJ2ZXIgc3RhcnR1cC9zaHV0ZG93bgogCiAgICAgICAg
IFByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBjb2RlIGhhZCB0aHJlZSBwcm9ibGVtcyB0aGF0IG1h
ZGUgc3RhcnR1cApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlLnB5CmluZGV4IDE5Y2QxNjlkM2U0NjA0NWFhY2M5NmUyNjFkM2RkYjRkOTQxZjRkOTUu
LmI4ZTdhYThkNzE3ZjczNmU4MGY5NjAwYjI4OWEzODBhMjhjMTE2YTUgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE0MCw2ICsx
NDAsOSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX211bHRpcHJvY2Vzc2lu
Z19pc19hdmFpbGFibGUgPSAobXVsdGlwcm9jZXNzaW5nIGlzIG5vdCBOb25lKQogICAgICAgICBz
ZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IE5vbmUKIAorICAgICAgICBpZiBub3QgaGFzYXR0cihz
ZWxmLl9vcHRpb25zLCAndXNlX2FwYWNoZScpIG9yIHNlbGYuX29wdGlvbnMudXNlX2FwYWNoZSBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfYXBhY2hlID0gc2VsZi5fZGVm
YXVsdF90b19hcGFjaGUoKQorCiAgICAgZGVmIHdkaWZmX2F2YWlsYWJsZShzZWxmKToKICAgICAg
ICAgaWYgc2VsZi5fd2RpZmZfYXZhaWxhYmxlIGlzIE5vbmU6CiAgICAgICAgICAgICBzZWxmLl93
ZGlmZl9hdmFpbGFibGUgPSBzZWxmLmNoZWNrX3dkaWZmKGxvZ2dpbmc9RmFsc2UpCkBAIC02MjYs
MjIgKzYyOSwyMyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRl
ZiBzdGFydF9odHRwX3NlcnZlcihzZWxmKToKLSAgICAgICAgIiIiU3RhcnQgYSB3ZWIgc2VydmVy
IGlmIGl0IGlzIGF2YWlsYWJsZS4gRG8gbm90aGluZyBpZgotICAgICAgICBpdCBpc24ndC4gVGhp
cyByb3V0aW5lIGlzIGFsbG93ZWQgdG8gKGFuZCBtYXkpIGZhaWwgaWYgYSBzZXJ2ZXIKLSAgICAg
ICAgaXMgYWxyZWFkeSBydW5uaW5nLiIiIgorICAgICAgICAiIiJTdGFydCBhIHdlYiBzZXJ2ZXIu
IFJhaXNlIGFuIGVycm9yIGlmIGl0IGNhbid0IHN0YXJ0IG9yIGlzIGFscmVhZHkgcnVubmluZy4K
KworICAgICAgICBQb3J0cyBjYW4gc3R1YiB0aGlzIG91dCBpZiB0aGV5IGRvbid0IG5lZWQgYSB3
ZWIgc2VydmVyIHRvIGJlIHJ1bm5pbmcuIiIiCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbign
dXNlX2FwYWNoZScpOgotICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIgPSBhcGFjaGVfaHR0
cF9zZXJ2ZXIuTGF5b3V0VGVzdEFwYWNoZUh0dHBkKHNlbGYsCi0gICAgICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICAgICAgc2VydmVyID0gYXBhY2hlX2h0dHBf
c2VydmVyLkxheW91dFRlc3RBcGFjaGVIdHRwZChzZWxmLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5
KCkpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IGh0dHBf
c2VydmVyLkxpZ2h0dHBkKHNlbGYsIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSkKLSAgICAgICAg
c2VsZi5faHR0cF9zZXJ2ZXIuc3RhcnQoKQorICAgICAgICAgICAgc2VydmVyID0gaHR0cF9zZXJ2
ZXIuTGlnaHR0cGQoc2VsZiwgc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICBzZXJ2
ZXIuc3RhcnQoKQorICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IHNlcnZlcgogCiAgICAgZGVm
IHN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgICIiIlN0YXJ0IGEgd2Vic29j
a2V0IHNlcnZlciBpZiBpdCBpcyBhdmFpbGFibGUuIERvIG5vdGhpbmcgaWYKLSAgICAgICAgaXQg
aXNuJ3QuIFRoaXMgcm91dGluZSBpcyBhbGxvd2VkIHRvIChhbmQgbWF5KSBmYWlsIGlmIGEgc2Vy
dmVyCi0gICAgICAgIGlzIGFscmVhZHkgcnVubmluZy4iIiIKLSAgICAgICAgc2VsZi5fd2Vic29j
a2V0X3NlcnZlciA9IHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQoc2VsZiwgc2VsZi5yZXN1
bHRzX2RpcmVjdG9yeSgpKQotICAgICAgICBzZWxmLl93ZWJzb2NrZXRfc2VydmVyLnN0YXJ0KCkK
KyAgICAgICAgIiIiU3RhcnQgYSB3ZWIgc2VydmVyLiBSYWlzZSBhbiBlcnJvciBpZiBpdCBjYW4n
dCBzdGFydCBvciBpcyBhbHJlYWR5IHJ1bm5pbmcuCisKKyAgICAgICAgUG9ydHMgY2FuIHN0dWIg
dGhpcyBvdXQgaWYgdGhleSBkb24ndCBuZWVkIGEgd2Vic29ja2V0IHNlcnZlciB0byBiZSBydW5u
aW5nLiIiIgorICAgICAgICBzZXJ2ZXIgPSB3ZWJzb2NrZXRfc2VydmVyLlB5V2ViU29ja2V0KHNl
bGYsIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSkKKyAgICAgICAgc2VydmVyLnN0YXJ0KCkKKyAg
ICAgICAgc2VsZi5fd2Vic29ja2V0X3NlcnZlciA9IHNlcnZlcgogCiAgICAgZGVmIGFjcXVpcmVf
aHR0cF9sb2NrKHNlbGYpOgogICAgICAgICBzZWxmLl9odHRwX2xvY2sgPSBodHRwX2xvY2suSHR0
cExvY2soTm9uZSkKQEAgLTY1NCwxNCArNjU4LDEyIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAg
ICAgICAgcGFzcwogCiAgICAgZGVmIHN0b3BfaHR0cF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgICIi
IlNodXQgZG93biB0aGUgaHR0cCBzZXJ2ZXIgaWYgaXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBp
ZgotICAgICAgICBpdCBpc24ndCwgb3IgaXQgaXNuJ3QgYXZhaWxhYmxlLiIiIgorICAgICAgICAi
IiJTaHV0IGRvd24gdGhlIGh0dHAgc2VydmVyIGlmIGl0IGlzIHJ1bm5pbmcuIERvIG5vdGhpbmcg
aWYgaXQgaXNuJ3QuIiIiCiAgICAgICAgIGlmIHNlbGYuX2h0dHBfc2VydmVyOgogICAgICAgICAg
ICAgc2VsZi5faHR0cF9zZXJ2ZXIuc3RvcCgpCiAKICAgICBkZWYgc3RvcF93ZWJzb2NrZXRfc2Vy
dmVyKHNlbGYpOgotICAgICAgICAiIiJTaHV0IGRvd24gdGhlIHdlYnNvY2tldCBzZXJ2ZXIgaWYg
aXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBpZgotICAgICAgICBpdCBpc24ndCwgb3IgaXQgaXNu
J3QgYXZhaWxhYmxlLiIiIgorICAgICAgICAiIiJTaHV0IGRvd24gdGhlIHdlYnNvY2tldCBzZXJ2
ZXIgaWYgaXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBpZiBpdCBpc24ndC4iIiIKICAgICAgICAg
aWYgc2VsZi5fd2Vic29ja2V0X3NlcnZlcjoKICAgICAgICAgICAgIHNlbGYuX3dlYnNvY2tldF9z
ZXJ2ZXIuc3RvcCgpCiAKQEAgLTgwOSw2ICs4MTEsMTIgQEAgY2xhc3MgUG9ydChvYmplY3QpOgog
ICAgIGRlZiBfd2Via2l0X2J1aWxkX2RpcmVjdG9yeShzZWxmLCBhcmdzKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX2NvbmZpZy5idWlsZF9kaXJlY3RvcnkoYXJnc1swXSkKIAorICAgIGRlZiBfZGVm
YXVsdF90b19hcGFjaGUoc2VsZik6CisgICAgICAgICIiIk92ZXJyaWRlIGlmIHRoZSBwb3J0IHNo
b3VsZCB1c2UgTGlnSFRUUGQgaW5zdGVhZCBvZiBBcGFjaGUgYnkgZGVmYXVsdC4KKworICAgICAg
ICBQb3J0cyB0aGF0IG92ZXJyaWRlIHN0YXJ0X2h0dHBfc2VydmVyKCkgaWdub3JlIHRoaXMgbWV0
aG9kLiIiIgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIF9wYXRoX3RvX2FwYWNoZShz
ZWxmKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBwYXRoIHRvIHRoZSBhcGFjaGUgYmlu
YXJ5LgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQppbmRleCAwNWVjMDY3
NWE0NTFlYTM1NTJiMTEyMGYxOGUyMmE3MmJhODAyZTdiLi5hYmVkMGM4NDk2OTZiZTYzNDE0Zjky
NDM3NTMwMWExZDU1NTYzMjM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3Qu
cHkKQEAgLTEwMSw0ICsxMDEsNCBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydFRlc3QocG9ydF90
ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0g
ICAgdW5pdHRlc3QubWFpbigpCisgICAgcG9ydF90ZXN0Y2FzZS5tYWluKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9tYWNfdW5pdHRlc3QucHkKaW5kZXggYWQzMThiZmY5MzhhMTM3NjFlYWNjMjA4ODIyNDEy
YTQ2NDc0NDU3Ni4uNGU2NmNiZmNkODZkYWE3OTRkNTBmYjY3NmJlZjAxZGMwZjVhOTA5MyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTgzLDQgKzgzLDQgQEAgY2xhc3Mg
Q2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAKIAogaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKKyAgICBwb3J0X3Rl
c3RjYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAxNzE1MTllOGY1OTEwOTY0NWNiZTJl
ZmU0NzZiMDA3NThkODM0NWM2Li4zNDM2ZDQ4YzlmMzIzMTkxZjExYmU3NjVjZDcxNGMxYjJkOWZh
OTNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3dpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAtMTM2LDYgKzEzNiw5IEBAIGNsYXNzIENocm9taXVt
V2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAgICAgcmV0dXJuIHAKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLnBhdGhfZnJvbV93ZWJraXRf
YmFzZSgpLCAnU291cmNlJywgJ1dlYktpdCcsICdjaHJvbWl1bScsICpjb21wcykKIAorICAgIGRl
ZiBfZGVmYXVsdF90b19hcGFjaGUoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAg
ZGVmIF9saWdodHRwZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAgIHJldHVybiBzZWxmLnBh
dGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScsICdsaWdodHRwZCcsICd3aW4nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29tcHMpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3dpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CmluZGV4IDlmYjllMmRkNTAxYjlhMWY1MWExOTdm
YjE1NTNiMTA5MGY5ZWE2M2UuLjE5M2MzZTgzOWVmMmEyOWExYzk5NGFjNjY5N2Y4ZjQxZWEwNDdh
MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CkBAIC0xMzMsNCArMTMzLDQg
QEAgY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKIAog
CiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQorICAgIHBv
cnRfdGVzdGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGI1OTc3OTQ0NTYzMTEzOWNl
NTI2MDhhNDY0ZTYyOTllOGIzYTVlMDUuLmFlNTQ3ZjJiOTZiODVmMTRhNmVmZDA2YWFjMWU5MTZi
ZWE2NzQ1Y2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC0xMzEsNCArMTMxLDQgQEAgc3ZnL2JhdGlr
L3RleHQvc21hbGxGb250cy5zdmcKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IHVuaXR0ZXN0Lm1haW4oKQorICAgIHBvcnRfdGVzdGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2Uu
cHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBmYjE2NWRlZDU1YjQ5MDM5
NWY2NGQ4NjE1NDhlOTMzZjJmMTEzOTViLi5mNjE3MzdkM2E2MTk0NDgzZTJiNTllMTE3MGU5ZGEy
MWQzNmZiMmI4Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
cG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTI4LDYgKzI4LDkgQEAKIAogIiIiVW5pdCB0ZXN0
aW5nIGJhc2UgY2xhc3MgZm9yIFBvcnQgaW1wbGVtZW50YXRpb25zLiIiIgogCitpbXBvcnQgZXJy
bm8KK2ltcG9ydCBzb2NrZXQKKwogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKQEAgLTM3
LDE1ICs0MCwxOCBAQCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNz
aW5nID0gTm9uZQogCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBodHRw
X3NlcnZlcl9iYXNlCisKIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKLW1vY2tf
b3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25zKHVzZV9hcGFjaGU9VHJ1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKQorbW9j
a19vcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nUmVsZWFzZScp
CiAKLSMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVzZWQgZm9yIGFsbCBwb3J0cywgbm90IGp1c3Qg
V2ViS2l0IE1hYy4gU2VlCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MDA0MyAuCiAKIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg
IiIiVGVzdHMgdGhlIFdlYktpdCBwb3J0IGltcGxlbWVudGF0aW9uLiIiIgorICAgICIiIlRlc3Rz
IHRoYXQgYWxsIFBvcnQgaW1wbGVtZW50YXRpb25zIG11c3QgcGFzcy4iIiIKKworICAgIEhUVFBf
UE9SVFMgPSBbODAwMCwgODA4MCwgODQ0M10KKyAgICBXRUJTT0NLRVRfUE9SVFMgPSBbODg4MF0K
KwogICAgIGRlZiBwb3J0X21ha2VyKHNlbGYsIHBsYXRmb3JtKToKICAgICAgICAgIiIiT3ZlcnJp
ZGUgdG8gcmV0dXJuIHRoZSBjbGFzcyBvYmplY3Qgb2YgdGhlIHBvcnQgdG8gYmUgdGVzdGVkLAog
ICAgICAgICBvciBOb25lIGlmIGEgdmFsaWQgcG9ydCBvYmplY3QgY2Fubm90IGJlIGNvbnN0cnVj
dGVkIG9uIHRoZSBzcGVjaWZpZWQKQEAgLTgzLDE0ICs4OSwxMDAgQEAgY2xhc3MgUG9ydFRlc3RD
YXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWZvbz1i
YXInIGluIGNtZF9saW5lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJy0tZm9vPWJheicgaW4g
Y21kX2xpbmUpCiAKLSAgICBkZWYgZGlzYWJsZWRfdGVzdF9odHRwX3NlcnZlcihzZWxmKToKKyAg
ICBkZWYgYXNzZXJ0X3NlcnZlcnNfYXJlX2Rvd24oc2VsZiwgaG9zdCwgcG9ydHMpOgorICAgICAg
ICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBz
ID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgICAgICAgICAgcy5jb25uZWN0KChob3N0LCBwb3J0
KSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorICAgICAgICAgICAgZXhjZXB0IElPRXJy
b3IsIGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGUuZXJybm8gaW4gKGVycm5v
LkVDT05OUkVGVVNFRCwgZXJybm8uRUNPTk5SRVNFVCkpCisgICAgICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgICAgIHMuY2xvc2UoKQorCisgICAgZGVmIGFzc2VydF9zZXJ2ZXJzX2FyZV91
cChzZWxmLCBob3N0LCBwb3J0cyk6CisgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAg
ICAgICAgICBzLmNvbm5lY3QoKGhvc3QsIHBvcnQpKQorICAgICAgICAgICAgZXhjZXB0IElPRXJy
b3IsIGU6CisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdmYWlsZWQgdG8gY29ubmVjdCB0byAl
czolZCcgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
ICAgIHMuY2xvc2UoKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaHR0cF9sb2NrKHNlbGYp
OgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBpZiBub3QgcG9ydDoK
KyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIE9ubHkgY2hlY2tpbmcgdGhhdCBubyBleGNl
cHRpb24gaXMgcmFpc2VkLgorICAgICAgICBwb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAg
ICAgcG9ydC5yZWxlYXNlX2h0dHBfbG9jaygpCisKKyAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9j
aGVja19zeXNfZGVwcyhzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAg
ICAgICAgaWYgbm90IHBvcnQ6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIyBPbmx5IGNo
ZWNraW5nIHRoYXQgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgICAgICAgcG9ydC5jaGVja19z
eXNfZGVwcyhUcnVlKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaGVscGVyKHNlbGYpOgog
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBpZiBub3QgcG9ydDoKICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAjIE9ubHkgY2hlY2tpbmcgdGhhdCBubyBleGNlcHRp
b24gaXMgcmFpc2VkLgorICAgICAgICBwb3J0LnN0YXJ0X2hlbHBlcigpCisgICAgICAgIHBvcnQu
c3RvcF9oZWxwZXIoKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaHR0cF9zZXJ2ZXJfX25v
cm1hbChzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYg
bm90IHBvcnQ6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLmFzc2VydF9zZXJ2
ZXJzX2FyZV9kb3duKCdsb2NhbGhvc3QnLCBzZWxmLkhUVFBfUE9SVFMpCiAgICAgICAgIHBvcnQu
c3RhcnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJzX2FyZV91cCgn
bG9jYWxob3N0Jywgc2VsZi5IVFRQX1BPUlRTKQogICAgICAgICBwb3J0LnN0b3BfaHR0cF9zZXJ2
ZXIoKQorICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJzX2FyZV9kb3duKCdsb2NhbGhvc3QnLCBz
ZWxmLkhUVFBfUE9SVFMpCiAKLSAgICBkZWYgZGlzYWJsZWRfdGVzdF9pbWFnZV9kaWZmKHNlbGYp
OgorICAgIGRlZiBpbnRlZ3JhdGlvbl90ZXN0X2h0dHBfc2VydmVyX19mYWlscyhzZWxmKToKKyAg
ICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90IHBvcnQ6CisgICAg
ICAgICAgICByZXR1cm4KKworICAgICAgICAjIFRlc3QgdGhhdCBpZiBhIHBvcnQgaXNuJ3QgYXZh
aWxhYmxlLCB0aGUgY2FsbCBmYWlscy4KKyAgICAgICAgZm9yIHBvcnRfbnVtYmVyIGluIHNlbGYu
SFRUUF9QT1JUUzoKKyAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHMuYmluZCgo
J2xvY2FsaG9zdCcsIHBvcnRfbnVtYmVyKSkKKyAgICAgICAgICAgICAgICBleGNlcHQgc29ja2V0
LmVycm9yLCBlOgorICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vIGluIChlcnJuby5FQURE
UklOVVNFLCBlcnJuby5FQUxSRUFEWSk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZh
aWwoJ2NvdWxkIG5vdCBiaW5kIHRvIHBvcnQgJWQnICUgcG9ydF9udW1iZXIpCisgICAgICAgICAg
ICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAg
ICBwb3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWls
KCdzaG91bGQgbm90IGhhdmUgYmVlbiBhYmxlIHRvIHN0YXJ0IHRoZSBzZXJ2ZXIgd2hpbGUgYm91
bmQgdG8gJWQnICUgcG9ydF9udW1iZXIpCisgICAgICAgICAgICAgICAgZXhjZXB0IGh0dHBfc2Vy
dmVyX2Jhc2UuU2VydmVyRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkK
KyAgICAgICAgICAgICAgICBzLmNsb3NlKCkKKworICAgICAgICAjIFRlc3QgdGhhdCBjYWxsaW5n
IHN0YXJ0KCkgdHdpY2UgZmFpbHMuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvcnQuc3Rh
cnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBvcnQu
c3RhcnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnY2FsbGluZyBw
b3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkgdHdpY2Ugd29ya2VkJykKKyAgICAgICAgICAgIGV4Y2Vw
dCBodHRwX3NlcnZlcl9iYXNlLlNlcnZlckVycm9yLCBlOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBvcnQuc3RvcF9odHRwX3NlcnZlcigpCisK
KyAgICAgICAgIyBUZXN0IHRoYXQgY2FsbGluZyBzdG9wKCkgdHdpY2UgaXMgaGFybWxlc3MuCisg
ICAgICAgIHBvcnQuc3RvcF9odHRwX3NlcnZlcigpCisKKyAgICBkZWYgaW50ZWdyYXRpb25fdGVz
dF9pbWFnZV9kaWZmKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAg
ICAgICBpZiBub3QgcG9ydDoKICAgICAgICAgICAgIHJldHVybgpAQCAtMTUwLDExICsyNDIsNDgg
QEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHJl
dHVybgogICAgICAgICBwb3J0LmNoZWNrX3dkaWZmKCkKIAotICAgIGRlZiBkaXNhYmxlZF90ZXN0
X3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6CisgICAgZGVmIGludGVncmF0aW9uX3Rlc3Rfd2Vic29j
a2V0X3NlcnZlcl9fbm9ybWFsKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQo
KQogICAgICAgICBpZiBub3QgcG9ydDoKICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNl
bGYuYXNzZXJ0X3NlcnZlcnNfYXJlX2Rvd24oJ2xvY2FsaG9zdCcsIHNlbGYuV0VCU09DS0VUX1BP
UlRTKQogICAgICAgICBwb3J0LnN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICBzZWxm
LmFzc2VydF9zZXJ2ZXJzX2FyZV91cCgnbG9jYWxob3N0Jywgc2VsZi5XRUJTT0NLRVRfUE9SVFMp
CisgICAgICAgIHBvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRfc2VydmVyc19hcmVfZG93bignbG9jYWxob3N0Jywgc2VsZi5XRUJTT0NLRVRfUE9SVFMpCisK
KyAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF93ZWJzb2NrZXRfc2VydmVyX19mYWlscyhzZWxmKToK
KyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90IHBvcnQ6Cisg
ICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIFRlc3QgdGhhdCBzdGFydCgpIGZhaWxzIGlm
IGEgcG9ydCBpc24ndCBhdmFpbGFibGUuCisgICAgICAgIGZvciBwb3J0X251bWJlciBpbiBzZWxm
LldFQlNPQ0tFVF9QT1JUUzoKKyAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzLmJpbmQoKCdsb2NhbGhvc3QnLCBwb3J0X251
bWJlcikpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBwb3J0LnN0
YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ3No
b3VsZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gc3RhcnQgdGhlIHNlcnZlciB3aGlsZSBib3VuZCB0
byAlZCcgJSBwb3J0X251bWJlcikKKyAgICAgICAgICAgICAgICBleGNlcHQgaHR0cF9zZXJ2ZXJf
YmFzZS5TZXJ2ZXJFcnJvciwgZToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBwb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigp
CisgICAgICAgICAgICAgICAgcy5jbG9zZSgpCisKKyAgICAgICAgIyBUZXN0IHRoYXQgY2FsbGlu
ZyBzdGFydCgpIHR3aWNlIGZhaWxzLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3J0LnN0
YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IHBvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCisgICAgICAgICAgICAgICAgc2VsZi5mYWls
KCdjYWxsaW5nIHBvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpIHR3aWNlIHdvcmtlZCcpCisg
ICAgICAgICAgICBleGNlcHQgaHR0cF9zZXJ2ZXJfYmFzZS5TZXJ2ZXJFcnJvciwgZToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3J0LnN0b3Bf
d2Vic29ja2V0X3NlcnZlcigpCisKKyAgICAgICAgIyBUZXN0IHRoYXQgY2FsbGluZyBzdG9wKCkg
dHdpY2UgaXMgaGFybWxlc3MuCiAgICAgICAgIHBvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkK
IAogICAgIGRlZiB0ZXN0X3Rlc3RfY29uZmlndXJhdGlvbihzZWxmKToKQEAgLTE3NCwzICszMDMs
MzQgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYg
bm90IHBvcnQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBv
cnQuYmFzZWxpbmVfcGF0aCgpIGluIHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSkKKworCisj
IEZJWE1FOiBUaGlzIGNsYXNzIGFuZCBtYWluKCkgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIHRlc3Qt
d2Via2l0cHkuCitjbGFzcyBFbmhhbmNlZFRlc3RMb2FkZXIodW5pdHRlc3QuVGVzdExvYWRlcik6
CisgICAgaW50ZWdyYXRpb25fdGVzdHMgPSBGYWxzZQorICAgIHVuaXRfdGVzdHMgPSBUcnVlCisK
KyAgICBkZWYgZ2V0VGVzdENhc2VOYW1lcyhzZWxmLCB0ZXN0Q2FzZUNsYXNzKToKKyAgICAgICAg
ZGVmIGlzVGVzdE1ldGhvZChhdHRybmFtZSwgdGVzdENhc2VDbGFzcz10ZXN0Q2FzZUNsYXNzKToK
KyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGdldGF0dHIodGVzdENhc2VDbGFzcywgYXR0cm5h
bWUpLCAnX19jYWxsX18nKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
ICAgIHJldHVybiAoKHNlbGYudW5pdF90ZXN0cyBhbmQgYXR0cm5hbWUuc3RhcnRzd2l0aCgndGVz
dF8nKSkgb3IKKyAgICAgICAgICAgICAgICAgICAgKHNlbGYuaW50ZWdyYXRpb25fdGVzdHMgYW5k
IGF0dHJuYW1lLnN0YXJ0c3dpdGgoJ2ludGVncmF0aW9uX3Rlc3RfJykpKQorICAgICAgICB0ZXN0
Rm5OYW1lcyA9IGZpbHRlcihpc1Rlc3RNZXRob2QsIGRpcih0ZXN0Q2FzZUNsYXNzKSkKKyAgICAg
ICAgdGVzdEZuTmFtZXMuc29ydCgpCisgICAgICAgIHJldHVybiB0ZXN0Rm5OYW1lcworCisKK2Rl
ZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgYXJndiBpcyBOb25lOgorICAgICAgICBhcmd2ID0g
c3lzLmFyZ3YKKworICAgIHRlc3RfbG9hZGVyID0gRW5oYW5jZWRUZXN0TG9hZGVyKCkKKyAgICBp
ZiAnLWknIGluIGFyZ3Y6CisgICAgICAgIHRlc3RfbG9hZGVyLmludGVncmF0aW9uX3Rlc3RzID0g
VHJ1ZQorICAgICAgICBhcmd2LnJlbW92ZSgnLWknKQorICAgIGlmICctLW5vLXVuaXQtdGVzdHMn
IGluIGFyZ3Y6CisgICAgICAgIHRlc3RfbG9hZGVyLnVuaXRfdGVzdHMgPSBGYWxzZQorICAgICAg
ICBhcmd2LnJlbW92ZSgnLS1uby11bml0LXRlc3RzJykKKworICAgIHVuaXR0ZXN0Lm1haW4oYXJn
dj1hcmd2LCB0ZXN0TG9hZGVyPXRlc3RfbG9hZGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92022</attachid>
            <date>2011-05-02 18:06:21 -0700</date>
            <delta_ts>2011-05-02 18:34:19 -0700</delta_ts>
            <desc>add mock_drt_unittest changes</desc>
            <filename>bug-59985-20110502180619.patch</filename>
            <type>text/plain</type>
            <size>19597</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU1NTMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YTgzY2M2MDgzYTQ2NTMxZGExYzJiZGU1MDJlNTg4ZDk5
NDI2NzI5Li4xYmU4YWEwMjcyNjJlYjcxZmE3YmE1MWE2N2ZlZGNhMDQxNWYzMzA5IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzUg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBucnd0
OiByZXZhbXAgaW50ZWdyYXRpb24gdGVzdHMgaW5jbC4gdGVzdHMgZm9yIHNlcnZlcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5OTg1CisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgYWRkcyB0aGUgYWJpbGl0eSB0byBydW4gImludGVncmF0aW9uIHRlc3Rz
IiB0aGF0CisgICAgICAgIGRlcGVuZCBvbiAoYW5kIGFmZmVjdCkgdGhlIGxvY2FsIGVudmlyb25t
ZW50IG9uIHlvdXIgbWFjaGluZS4KKyAgICAgICAgVGhlc2UgdGVzdHMgY2FuIGJlIHJ1biBtYW51
YWxseSBieSBpbnZva2luZyBweXRob24gb24gdGhlCisgICAgICAgIHRlc3QgZmlsZSBpbiBxdWVz
dGlvbiBhbmQgcGFzc2luZyB0aGUgJy1pJyBmbGFnLCBidXQgYXJlCisgICAgICAgIG5vdCBydW4g
YXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRlc3Qtd2Via2l0cHkuCisKKyAgICAgICAgSW50ZWdy
YXRpb24gdGVzdHMgYXJlIGlkZW50aWZpZWQgYnkgYmVpbmcgbWV0aG9kcyBuYW1lZCBhcworICAg
ICAgICAiaW50ZWdyYXRpb25fdGVzdF8qIiBpbnN0ZWFkIG9mICJ0ZXN0XyoiLCBhbmQgd2UgdXNl
IGEKKyAgICAgICAgY3VzdG9tIFRlc3RMb2FkZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBvbmUg
cHJvdmlkZWQgYnkKKyAgICAgICAgdW5pdHRlc3QuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxz
byBhZGRzIGEgcHJvdGVjdGVkICJfZGVmYXVsdF90b19hcGFjaGUiIG1ldGhvZAorICAgICAgICB0
byB0aGUgcG9ydCBvYmplY3Qgc28gd2UgY2FuIGRvIHRoZSByaWdodCB0aGluZyB3aGVuIHN0YXJ0
aW5nCisgICAgICAgIGFuZCBzdG9wcGluZyB3ZWIgc2VydmVycyB3aXRoIGxlc3MgbWVjaGFuaXNt
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bGludXhfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5OgorCisyMDExLTA1LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIG5ldy1ydW4t
d2Via2l0LXRlc3RzOiBmaXggaHR0cCBzZXJ2ZXIgc3RhcnR1cC9zaHV0ZG93bgogCiAgICAgICAg
IFByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBjb2RlIGhhZCB0aHJlZSBwcm9ibGVtcyB0aGF0IG1h
ZGUgc3RhcnR1cApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlLnB5CmluZGV4IDE5Y2QxNjlkM2U0NjA0NWFhY2M5NmUyNjFkM2RkYjRkOTQxZjRkOTUu
LmI4ZTdhYThkNzE3ZjczNmU4MGY5NjAwYjI4OWEzODBhMjhjMTE2YTUgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE0MCw2ICsx
NDAsOSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX211bHRpcHJvY2Vzc2lu
Z19pc19hdmFpbGFibGUgPSAobXVsdGlwcm9jZXNzaW5nIGlzIG5vdCBOb25lKQogICAgICAgICBz
ZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IE5vbmUKIAorICAgICAgICBpZiBub3QgaGFzYXR0cihz
ZWxmLl9vcHRpb25zLCAndXNlX2FwYWNoZScpIG9yIHNlbGYuX29wdGlvbnMudXNlX2FwYWNoZSBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfYXBhY2hlID0gc2VsZi5fZGVm
YXVsdF90b19hcGFjaGUoKQorCiAgICAgZGVmIHdkaWZmX2F2YWlsYWJsZShzZWxmKToKICAgICAg
ICAgaWYgc2VsZi5fd2RpZmZfYXZhaWxhYmxlIGlzIE5vbmU6CiAgICAgICAgICAgICBzZWxmLl93
ZGlmZl9hdmFpbGFibGUgPSBzZWxmLmNoZWNrX3dkaWZmKGxvZ2dpbmc9RmFsc2UpCkBAIC02MjYs
MjIgKzYyOSwyMyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRl
ZiBzdGFydF9odHRwX3NlcnZlcihzZWxmKToKLSAgICAgICAgIiIiU3RhcnQgYSB3ZWIgc2VydmVy
IGlmIGl0IGlzIGF2YWlsYWJsZS4gRG8gbm90aGluZyBpZgotICAgICAgICBpdCBpc24ndC4gVGhp
cyByb3V0aW5lIGlzIGFsbG93ZWQgdG8gKGFuZCBtYXkpIGZhaWwgaWYgYSBzZXJ2ZXIKLSAgICAg
ICAgaXMgYWxyZWFkeSBydW5uaW5nLiIiIgorICAgICAgICAiIiJTdGFydCBhIHdlYiBzZXJ2ZXIu
IFJhaXNlIGFuIGVycm9yIGlmIGl0IGNhbid0IHN0YXJ0IG9yIGlzIGFscmVhZHkgcnVubmluZy4K
KworICAgICAgICBQb3J0cyBjYW4gc3R1YiB0aGlzIG91dCBpZiB0aGV5IGRvbid0IG5lZWQgYSB3
ZWIgc2VydmVyIHRvIGJlIHJ1bm5pbmcuIiIiCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbign
dXNlX2FwYWNoZScpOgotICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIgPSBhcGFjaGVfaHR0
cF9zZXJ2ZXIuTGF5b3V0VGVzdEFwYWNoZUh0dHBkKHNlbGYsCi0gICAgICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICAgICAgc2VydmVyID0gYXBhY2hlX2h0dHBf
c2VydmVyLkxheW91dFRlc3RBcGFjaGVIdHRwZChzZWxmLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5
KCkpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IGh0dHBf
c2VydmVyLkxpZ2h0dHBkKHNlbGYsIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSkKLSAgICAgICAg
c2VsZi5faHR0cF9zZXJ2ZXIuc3RhcnQoKQorICAgICAgICAgICAgc2VydmVyID0gaHR0cF9zZXJ2
ZXIuTGlnaHR0cGQoc2VsZiwgc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICBzZXJ2
ZXIuc3RhcnQoKQorICAgICAgICBzZWxmLl9odHRwX3NlcnZlciA9IHNlcnZlcgogCiAgICAgZGVm
IHN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgICIiIlN0YXJ0IGEgd2Vic29j
a2V0IHNlcnZlciBpZiBpdCBpcyBhdmFpbGFibGUuIERvIG5vdGhpbmcgaWYKLSAgICAgICAgaXQg
aXNuJ3QuIFRoaXMgcm91dGluZSBpcyBhbGxvd2VkIHRvIChhbmQgbWF5KSBmYWlsIGlmIGEgc2Vy
dmVyCi0gICAgICAgIGlzIGFscmVhZHkgcnVubmluZy4iIiIKLSAgICAgICAgc2VsZi5fd2Vic29j
a2V0X3NlcnZlciA9IHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQoc2VsZiwgc2VsZi5yZXN1
bHRzX2RpcmVjdG9yeSgpKQotICAgICAgICBzZWxmLl93ZWJzb2NrZXRfc2VydmVyLnN0YXJ0KCkK
KyAgICAgICAgIiIiU3RhcnQgYSB3ZWIgc2VydmVyLiBSYWlzZSBhbiBlcnJvciBpZiBpdCBjYW4n
dCBzdGFydCBvciBpcyBhbHJlYWR5IHJ1bm5pbmcuCisKKyAgICAgICAgUG9ydHMgY2FuIHN0dWIg
dGhpcyBvdXQgaWYgdGhleSBkb24ndCBuZWVkIGEgd2Vic29ja2V0IHNlcnZlciB0byBiZSBydW5u
aW5nLiIiIgorICAgICAgICBzZXJ2ZXIgPSB3ZWJzb2NrZXRfc2VydmVyLlB5V2ViU29ja2V0KHNl
bGYsIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSkKKyAgICAgICAgc2VydmVyLnN0YXJ0KCkKKyAg
ICAgICAgc2VsZi5fd2Vic29ja2V0X3NlcnZlciA9IHNlcnZlcgogCiAgICAgZGVmIGFjcXVpcmVf
aHR0cF9sb2NrKHNlbGYpOgogICAgICAgICBzZWxmLl9odHRwX2xvY2sgPSBodHRwX2xvY2suSHR0
cExvY2soTm9uZSkKQEAgLTY1NCwxNCArNjU4LDEyIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAg
ICAgICAgcGFzcwogCiAgICAgZGVmIHN0b3BfaHR0cF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgICIi
IlNodXQgZG93biB0aGUgaHR0cCBzZXJ2ZXIgaWYgaXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBp
ZgotICAgICAgICBpdCBpc24ndCwgb3IgaXQgaXNuJ3QgYXZhaWxhYmxlLiIiIgorICAgICAgICAi
IiJTaHV0IGRvd24gdGhlIGh0dHAgc2VydmVyIGlmIGl0IGlzIHJ1bm5pbmcuIERvIG5vdGhpbmcg
aWYgaXQgaXNuJ3QuIiIiCiAgICAgICAgIGlmIHNlbGYuX2h0dHBfc2VydmVyOgogICAgICAgICAg
ICAgc2VsZi5faHR0cF9zZXJ2ZXIuc3RvcCgpCiAKICAgICBkZWYgc3RvcF93ZWJzb2NrZXRfc2Vy
dmVyKHNlbGYpOgotICAgICAgICAiIiJTaHV0IGRvd24gdGhlIHdlYnNvY2tldCBzZXJ2ZXIgaWYg
aXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBpZgotICAgICAgICBpdCBpc24ndCwgb3IgaXQgaXNu
J3QgYXZhaWxhYmxlLiIiIgorICAgICAgICAiIiJTaHV0IGRvd24gdGhlIHdlYnNvY2tldCBzZXJ2
ZXIgaWYgaXQgaXMgcnVubmluZy4gRG8gbm90aGluZyBpZiBpdCBpc24ndC4iIiIKICAgICAgICAg
aWYgc2VsZi5fd2Vic29ja2V0X3NlcnZlcjoKICAgICAgICAgICAgIHNlbGYuX3dlYnNvY2tldF9z
ZXJ2ZXIuc3RvcCgpCiAKQEAgLTgwOSw2ICs4MTEsMTIgQEAgY2xhc3MgUG9ydChvYmplY3QpOgog
ICAgIGRlZiBfd2Via2l0X2J1aWxkX2RpcmVjdG9yeShzZWxmLCBhcmdzKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX2NvbmZpZy5idWlsZF9kaXJlY3RvcnkoYXJnc1swXSkKIAorICAgIGRlZiBfZGVm
YXVsdF90b19hcGFjaGUoc2VsZik6CisgICAgICAgICIiIk92ZXJyaWRlIGlmIHRoZSBwb3J0IHNo
b3VsZCB1c2UgTGlnSFRUUGQgaW5zdGVhZCBvZiBBcGFjaGUgYnkgZGVmYXVsdC4KKworICAgICAg
ICBQb3J0cyB0aGF0IG92ZXJyaWRlIHN0YXJ0X2h0dHBfc2VydmVyKCkgaWdub3JlIHRoaXMgbWV0
aG9kLiIiIgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIF9wYXRoX3RvX2FwYWNoZShz
ZWxmKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBwYXRoIHRvIHRoZSBhcGFjaGUgYmlu
YXJ5LgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQppbmRleCAwNWVjMDY3
NWE0NTFlYTM1NTJiMTEyMGYxOGUyMmE3MmJhODAyZTdiLi5hYmVkMGM4NDk2OTZiZTYzNDE0Zjky
NDM3NTMwMWExZDU1NTYzMjM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3Qu
cHkKQEAgLTEwMSw0ICsxMDEsNCBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydFRlc3QocG9ydF90
ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0g
ICAgdW5pdHRlc3QubWFpbigpCisgICAgcG9ydF90ZXN0Y2FzZS5tYWluKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9tYWNfdW5pdHRlc3QucHkKaW5kZXggYWQzMThiZmY5MzhhMTM3NjFlYWNjMjA4ODIyNDEy
YTQ2NDc0NDU3Ni4uNGU2NmNiZmNkODZkYWE3OTRkNTBmYjY3NmJlZjAxZGMwZjVhOTA5MyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTgzLDQgKzgzLDQgQEAgY2xhc3Mg
Q2hyb21pdW1NYWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAKIAogaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKKyAgICBwb3J0X3Rl
c3RjYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAxNzE1MTllOGY1OTEwOTY0NWNiZTJl
ZmU0NzZiMDA3NThkODM0NWM2Li4zNDM2ZDQ4YzlmMzIzMTkxZjExYmU3NjVjZDcxNGMxYjJkOWZh
OTNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3dpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAtMTM2LDYgKzEzNiw5IEBAIGNsYXNzIENocm9taXVt
V2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAgICAgcmV0dXJuIHAKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLnBhdGhfZnJvbV93ZWJraXRf
YmFzZSgpLCAnU291cmNlJywgJ1dlYktpdCcsICdjaHJvbWl1bScsICpjb21wcykKIAorICAgIGRl
ZiBfZGVmYXVsdF90b19hcGFjaGUoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAg
ZGVmIF9saWdodHRwZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAgIHJldHVybiBzZWxmLnBh
dGhfZnJvbV9jaHJvbWl1bV9iYXNlKCd0aGlyZF9wYXJ0eScsICdsaWdodHRwZCcsICd3aW4nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29tcHMpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3dpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CmluZGV4IDlmYjllMmRkNTAxYjlhMWY1MWExOTdm
YjE1NTNiMTA5MGY5ZWE2M2UuLjE5M2MzZTgzOWVmMmEyOWExYzk5NGFjNjY5N2Y4ZjQxZWEwNDdh
MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5CkBAIC0xMzMsNCArMTMzLDQg
QEAgY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKIAog
CiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQorICAgIHBv
cnRfdGVzdGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGI1OTc3OTQ0NTYzMTEzOWNl
NTI2MDhhNDY0ZTYyOTllOGIzYTVlMDUuLmFlNTQ3ZjJiOTZiODVmMTRhNmVmZDA2YWFjMWU5MTZi
ZWE2NzQ1Y2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC0xMzEsNCArMTMxLDQgQEAgc3ZnL2JhdGlr
L3RleHQvc21hbGxGb250cy5zdmcKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IHVuaXR0ZXN0Lm1haW4oKQorICAgIHBvcnRfdGVzdGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91
bml0dGVzdC5weQppbmRleCA0YTY2YWEwODAwNzRhZDRlYjA2MzhhMDUwMzM4ZWE1NmY1ZTc5MzMy
Li44M2UwZTM1NjYxYzQ3ZThmMDI2NWE5NmQzMTBlOTRiOWU0OWUzZjQ1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19k
cnRfdW5pdHRlc3QucHkKQEAgLTU4LDQxICs1OCwyOSBAQCBjbGFzcyBNb2NrRFJUUG9ydFRlc3Qo
cG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3BvcnRfbmFtZV9pbl9j
b25zdHJ1Y3RvcihzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vY2tfZHJ0Lk1vY2tE
UlRQb3J0KHBvcnRfbmFtZT0nbW9jay10ZXN0JykpCiAKLSAgICBkZWYgdGVzdF9hY3F1aXJlX2h0
dHBfbG9jayhzZWxmKToKLSAgICAgICAgIyBPbmx5IGNoZWNraW5nIHRoYXQgbm8gZXhjZXB0aW9u
IGlzIHJhaXNlZC4KLSAgICAgICAgc2VsZi5tYWtlX3BvcnQoKS5hY3F1aXJlX2h0dHBfbG9jaygp
Ci0KLSAgICBkZWYgdGVzdF9yZWxlYXNlX2h0dHBfbG9jayhzZWxmKToKLSAgICAgICAgIyBPbmx5
IGNoZWNraW5nIHRoYXQgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4KLSAgICAgICAgc2VsZi5tYWtl
X3BvcnQoKS5yZWxlYXNlX2h0dHBfbG9jaygpCi0KICAgICBkZWYgdGVzdF9jaGVja19zeXNfZGVw
cyhzZWxmKToKLSAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBvcnQuY2hlY2tfc3lzX2RlcHMoVHJ1ZSkpCisgICAgICAgIHBhc3MKIAotICAg
IGRlZiB0ZXN0X3N0YXJ0X2hlbHBlcihzZWxmKToKLSAgICAgICAgIyBPbmx5IGNoZWNraW5nIHRo
YXQgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4KLSAgICAgICAgc2VsZi5tYWtlX3BvcnQoKS5zdGFy
dF9oZWxwZXIoKQorICAgIGRlZiBpbnRlZ3JhdGlvbl90ZXN0X2h0dHBfbG9jayhzZWxmKToKKyAg
ICAgICAgcGFzcwogCi0gICAgZGVmIHRlc3Rfc3RhcnRfaHR0cF9zZXJ2ZXIoc2VsZik6Ci0gICAg
ICAgICMgT25seSBjaGVja2luZyB0aGF0IG5vIGV4Y2VwdGlvbiBpcyByYWlzZWQuCi0gICAgICAg
IHNlbGYubWFrZV9wb3J0KCkuc3RhcnRfaHR0cF9zZXJ2ZXIoKQorICAgIGRlZiBpbnRlZ3JhdGlv
bl90ZXN0X3N0YXJ0X2hlbHBlcihzZWxmKToKKyAgICAgICAgcGFzcwogCi0gICAgZGVmIHRlc3Rf
c3RhcnRfd2Vic29ja2V0X3NlcnZlcihzZWxmKToKLSAgICAgICAgIyBPbmx5IGNoZWNraW5nIHRo
YXQgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4KLSAgICAgICAgc2VsZi5tYWtlX3BvcnQoKS5zdGFy
dF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9odHRwX3NlcnZl
cl9fbm9ybWFsKHNlbGYpOgorICAgICAgICBwYXNzCiAKLSAgICBkZWYgdGVzdF9zdG9wX2hlbHBl
cihzZWxmKToKLSAgICAgICAgIyBPbmx5IGNoZWNraW5nIHRoYXQgbm8gZXhjZXB0aW9uIGlzIHJh
aXNlZC4KLSAgICAgICAgc2VsZi5tYWtlX3BvcnQoKS5zdG9wX2hlbHBlcigpCisgICAgZGVmIGlu
dGVncmF0aW9uX3Rlc3RfaHR0cF9zZXJ2ZXJfX2ZhaWxzKHNlbGYpOgorICAgICAgICBwYXNzCiAK
LSAgICBkZWYgdGVzdF9zdG9wX2h0dHBfc2VydmVyKHNlbGYpOgotICAgICAgICAjIE9ubHkgY2hl
Y2tpbmcgdGhhdCBubyBleGNlcHRpb24gaXMgcmFpc2VkLgotICAgICAgICBzZWxmLm1ha2VfcG9y
dCgpLnN0b3BfaHR0cF9zZXJ2ZXIoKQorICAgIGRlZiBpbnRlZ3JhdGlvbl90ZXN0X3dlYnNvY2tl
dF9zZXJ2ZXJfX25vcm1hbChzZWxmKToKKyAgICAgICAgcGFzcwogCi0gICAgZGVmIHRlc3Rfc3Rv
cF93ZWJzb2NrZXRfc2VydmVyKHNlbGYpOgotICAgICAgICAjIE9ubHkgY2hlY2tpbmcgdGhhdCBu
byBleGNlcHRpb24gaXMgcmFpc2VkLgotICAgICAgICBzZWxmLm1ha2VfcG9ydCgpLnN0b3Bfd2Vi
c29ja2V0X3NlcnZlcigpCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3Rfd2Vic29ja2V0X3NlcnZl
cl9fZmFpbHMoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBpbnRlZ3JhdGlvbl90ZXN0
X2hlbHBlcihzZWxmKToKKyAgICAgICAgcGFzcwogCiAKIGNsYXNzIE1vY2tEUlRUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKQEAgLTI2OSw0ICsyNTcsNCBAQCBjbGFzcyBNb2NrQ2hyb21pdW1EUlRU
ZXN0KE1vY2tEUlRUZXN0KToKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVu
aXR0ZXN0Lm1haW4oKQorICAgIHBvcnRfdGVzdGNhc2UubWFpbigpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkK
b2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBmYjE2NWRlZDU1YjQ5MDM5NWY2
NGQ4NjE1NDhlOTMzZjJmMTEzOTViLi5mNjE3MzdkM2E2MTk0NDgzZTJiNTllMTE3MGU5ZGEyMWQz
NmZiMmI4Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9y
dF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTI4LDYgKzI4LDkgQEAKIAogIiIiVW5pdCB0ZXN0aW5n
IGJhc2UgY2xhc3MgZm9yIFBvcnQgaW1wbGVtZW50YXRpb25zLiIiIgogCitpbXBvcnQgZXJybm8K
K2ltcG9ydCBzb2NrZXQKKwogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKQEAgLTM3LDE1
ICs0MCwxOCBAQCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNzaW5n
ID0gTm9uZQogCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBodHRwX3Nl
cnZlcl9iYXNlCisKIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKLW1vY2tfb3B0
aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25zKHVzZV9hcGFjaGU9VHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKQorbW9ja19v
cHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nUmVsZWFzZScpCiAK
LSMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVzZWQgZm9yIGFsbCBwb3J0cywgbm90IGp1c3QgV2Vi
S2l0IE1hYy4gU2VlCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDA0MyAuCiAKIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIi
VGVzdHMgdGhlIFdlYktpdCBwb3J0IGltcGxlbWVudGF0aW9uLiIiIgorICAgICIiIlRlc3RzIHRo
YXQgYWxsIFBvcnQgaW1wbGVtZW50YXRpb25zIG11c3QgcGFzcy4iIiIKKworICAgIEhUVFBfUE9S
VFMgPSBbODAwMCwgODA4MCwgODQ0M10KKyAgICBXRUJTT0NLRVRfUE9SVFMgPSBbODg4MF0KKwog
ICAgIGRlZiBwb3J0X21ha2VyKHNlbGYsIHBsYXRmb3JtKToKICAgICAgICAgIiIiT3ZlcnJpZGUg
dG8gcmV0dXJuIHRoZSBjbGFzcyBvYmplY3Qgb2YgdGhlIHBvcnQgdG8gYmUgdGVzdGVkLAogICAg
ICAgICBvciBOb25lIGlmIGEgdmFsaWQgcG9ydCBvYmplY3QgY2Fubm90IGJlIGNvbnN0cnVjdGVk
IG9uIHRoZSBzcGVjaWZpZWQKQEAgLTgzLDE0ICs4OSwxMDAgQEAgY2xhc3MgUG9ydFRlc3RDYXNl
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWZvbz1iYXIn
IGluIGNtZF9saW5lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJy0tZm9vPWJheicgaW4gY21k
X2xpbmUpCiAKLSAgICBkZWYgZGlzYWJsZWRfdGVzdF9odHRwX3NlcnZlcihzZWxmKToKKyAgICBk
ZWYgYXNzZXJ0X3NlcnZlcnNfYXJlX2Rvd24oc2VsZiwgaG9zdCwgcG9ydHMpOgorICAgICAgICBm
b3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzID0g
c29ja2V0LnNvY2tldCgpCisgICAgICAgICAgICAgICAgcy5jb25uZWN0KChob3N0LCBwb3J0KSkK
KyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3Is
IGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGUuZXJybm8gaW4gKGVycm5vLkVD
T05OUkVGVVNFRCwgZXJybm8uRUNPTk5SRVNFVCkpCisgICAgICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgICAgIHMuY2xvc2UoKQorCisgICAgZGVmIGFzc2VydF9zZXJ2ZXJzX2FyZV91cChz
ZWxmLCBob3N0LCBwb3J0cyk6CisgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgICAg
ICAgICBzLmNvbm5lY3QoKGhvc3QsIHBvcnQpKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3Is
IGU6CisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdmYWlsZWQgdG8gY29ubmVjdCB0byAlczol
ZCcgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAg
IHMuY2xvc2UoKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaHR0cF9sb2NrKHNlbGYpOgor
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBpZiBub3QgcG9ydDoKKyAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAjIE9ubHkgY2hlY2tpbmcgdGhhdCBubyBleGNlcHRp
b24gaXMgcmFpc2VkLgorICAgICAgICBwb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAgICAg
cG9ydC5yZWxlYXNlX2h0dHBfbG9jaygpCisKKyAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9jaGVj
a19zeXNfZGVwcyhzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAg
ICAgaWYgbm90IHBvcnQ6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIyBPbmx5IGNoZWNr
aW5nIHRoYXQgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgICAgICAgcG9ydC5jaGVja19zeXNf
ZGVwcyhUcnVlKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaGVscGVyKHNlbGYpOgogICAg
ICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBpZiBub3QgcG9ydDoKICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAjIE9ubHkgY2hlY2tpbmcgdGhhdCBubyBleGNlcHRpb24g
aXMgcmFpc2VkLgorICAgICAgICBwb3J0LnN0YXJ0X2hlbHBlcigpCisgICAgICAgIHBvcnQuc3Rv
cF9oZWxwZXIoKQorCisgICAgZGVmIGludGVncmF0aW9uX3Rlc3RfaHR0cF9zZXJ2ZXJfX25vcm1h
bChzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90
IHBvcnQ6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJz
X2FyZV9kb3duKCdsb2NhbGhvc3QnLCBzZWxmLkhUVFBfUE9SVFMpCiAgICAgICAgIHBvcnQuc3Rh
cnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJzX2FyZV91cCgnbG9j
YWxob3N0Jywgc2VsZi5IVFRQX1BPUlRTKQogICAgICAgICBwb3J0LnN0b3BfaHR0cF9zZXJ2ZXIo
KQorICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJzX2FyZV9kb3duKCdsb2NhbGhvc3QnLCBzZWxm
LkhUVFBfUE9SVFMpCiAKLSAgICBkZWYgZGlzYWJsZWRfdGVzdF9pbWFnZV9kaWZmKHNlbGYpOgor
ICAgIGRlZiBpbnRlZ3JhdGlvbl90ZXN0X2h0dHBfc2VydmVyX19mYWlscyhzZWxmKToKKyAgICAg
ICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90IHBvcnQ6CisgICAgICAg
ICAgICByZXR1cm4KKworICAgICAgICAjIFRlc3QgdGhhdCBpZiBhIHBvcnQgaXNuJ3QgYXZhaWxh
YmxlLCB0aGUgY2FsbCBmYWlscy4KKyAgICAgICAgZm9yIHBvcnRfbnVtYmVyIGluIHNlbGYuSFRU
UF9QT1JUUzoKKyAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHMuYmluZCgoJ2xv
Y2FsaG9zdCcsIHBvcnRfbnVtYmVyKSkKKyAgICAgICAgICAgICAgICBleGNlcHQgc29ja2V0LmVy
cm9yLCBlOgorICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vIGluIChlcnJuby5FQUREUklO
VVNFLCBlcnJuby5FQUxSRUFEWSk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwo
J2NvdWxkIG5vdCBiaW5kIHRvIHBvcnQgJWQnICUgcG9ydF9udW1iZXIpCisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBw
b3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdz
aG91bGQgbm90IGhhdmUgYmVlbiBhYmxlIHRvIHN0YXJ0IHRoZSBzZXJ2ZXIgd2hpbGUgYm91bmQg
dG8gJWQnICUgcG9ydF9udW1iZXIpCisgICAgICAgICAgICAgICAgZXhjZXB0IGh0dHBfc2VydmVy
X2Jhc2UuU2VydmVyRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkKKyAg
ICAgICAgICAgICAgICBzLmNsb3NlKCkKKworICAgICAgICAjIFRlc3QgdGhhdCBjYWxsaW5nIHN0
YXJ0KCkgdHdpY2UgZmFpbHMuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvcnQuc3RhcnRf
aHR0cF9zZXJ2ZXIoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBvcnQuc3Rh
cnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnY2FsbGluZyBwb3J0
LnN0YXJ0X2h0dHBfc2VydmVyKCkgdHdpY2Ugd29ya2VkJykKKyAgICAgICAgICAgIGV4Y2VwdCBo
dHRwX3NlcnZlcl9iYXNlLlNlcnZlckVycm9yLCBlOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBvcnQuc3RvcF9odHRwX3NlcnZlcigpCisKKyAg
ICAgICAgIyBUZXN0IHRoYXQgY2FsbGluZyBzdG9wKCkgdHdpY2UgaXMgaGFybWxlc3MuCisgICAg
ICAgIHBvcnQuc3RvcF9odHRwX3NlcnZlcigpCisKKyAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9p
bWFnZV9kaWZmKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAg
ICBpZiBub3QgcG9ydDoKICAgICAgICAgICAgIHJldHVybgpAQCAtMTUwLDExICsyNDIsNDggQEAg
Y2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHJldHVy
bgogICAgICAgICBwb3J0LmNoZWNrX3dkaWZmKCkKIAotICAgIGRlZiBkaXNhYmxlZF90ZXN0X3dl
YnNvY2tldF9zZXJ2ZXIoc2VsZik6CisgICAgZGVmIGludGVncmF0aW9uX3Rlc3Rfd2Vic29ja2V0
X3NlcnZlcl9fbm9ybWFsKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQog
ICAgICAgICBpZiBub3QgcG9ydDoKICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYu
YXNzZXJ0X3NlcnZlcnNfYXJlX2Rvd24oJ2xvY2FsaG9zdCcsIHNlbGYuV0VCU09DS0VUX1BPUlRT
KQogICAgICAgICBwb3J0LnN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLmFz
c2VydF9zZXJ2ZXJzX2FyZV91cCgnbG9jYWxob3N0Jywgc2VsZi5XRUJTT0NLRVRfUE9SVFMpCisg
ICAgICAgIHBvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRf
c2VydmVyc19hcmVfZG93bignbG9jYWxob3N0Jywgc2VsZi5XRUJTT0NLRVRfUE9SVFMpCisKKyAg
ICBkZWYgaW50ZWdyYXRpb25fdGVzdF93ZWJzb2NrZXRfc2VydmVyX19mYWlscyhzZWxmKToKKyAg
ICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgaWYgbm90IHBvcnQ6CisgICAg
ICAgICAgICByZXR1cm4KKworICAgICAgICAjIFRlc3QgdGhhdCBzdGFydCgpIGZhaWxzIGlmIGEg
cG9ydCBpc24ndCBhdmFpbGFibGUuCisgICAgICAgIGZvciBwb3J0X251bWJlciBpbiBzZWxmLldF
QlNPQ0tFVF9QT1JUUzoKKyAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBzLmJpbmQoKCdsb2NhbGhvc3QnLCBwb3J0X251bWJl
cikpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBwb3J0LnN0YXJ0
X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ3Nob3Vs
ZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gc3RhcnQgdGhlIHNlcnZlciB3aGlsZSBib3VuZCB0byAl
ZCcgJSBwb3J0X251bWJlcikKKyAgICAgICAgICAgICAgICBleGNlcHQgaHR0cF9zZXJ2ZXJfYmFz
ZS5TZXJ2ZXJFcnJvciwgZToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgICAgICBwb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigpCisg
ICAgICAgICAgICAgICAgcy5jbG9zZSgpCisKKyAgICAgICAgIyBUZXN0IHRoYXQgY2FsbGluZyBz
dGFydCgpIHR3aWNlIGZhaWxzLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3J0LnN0YXJ0
X3dlYnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBv
cnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdj
YWxsaW5nIHBvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpIHR3aWNlIHdvcmtlZCcpCisgICAg
ICAgICAgICBleGNlcHQgaHR0cF9zZXJ2ZXJfYmFzZS5TZXJ2ZXJFcnJvciwgZToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3J0LnN0b3Bfd2Vi
c29ja2V0X3NlcnZlcigpCisKKyAgICAgICAgIyBUZXN0IHRoYXQgY2FsbGluZyBzdG9wKCkgdHdp
Y2UgaXMgaGFybWxlc3MuCiAgICAgICAgIHBvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKIAog
ICAgIGRlZiB0ZXN0X3Rlc3RfY29uZmlndXJhdGlvbihzZWxmKToKQEAgLTE3NCwzICszMDMsMzQg
QEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgbm90
IHBvcnQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQu
YmFzZWxpbmVfcGF0aCgpIGluIHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSkKKworCisjIEZJ
WE1FOiBUaGlzIGNsYXNzIGFuZCBtYWluKCkgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIHRlc3Qtd2Vi
a2l0cHkuCitjbGFzcyBFbmhhbmNlZFRlc3RMb2FkZXIodW5pdHRlc3QuVGVzdExvYWRlcik6Cisg
ICAgaW50ZWdyYXRpb25fdGVzdHMgPSBGYWxzZQorICAgIHVuaXRfdGVzdHMgPSBUcnVlCisKKyAg
ICBkZWYgZ2V0VGVzdENhc2VOYW1lcyhzZWxmLCB0ZXN0Q2FzZUNsYXNzKToKKyAgICAgICAgZGVm
IGlzVGVzdE1ldGhvZChhdHRybmFtZSwgdGVzdENhc2VDbGFzcz10ZXN0Q2FzZUNsYXNzKToKKyAg
ICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGdldGF0dHIodGVzdENhc2VDbGFzcywgYXR0cm5hbWUp
LCAnX19jYWxsX18nKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAg
IHJldHVybiAoKHNlbGYudW5pdF90ZXN0cyBhbmQgYXR0cm5hbWUuc3RhcnRzd2l0aCgndGVzdF8n
KSkgb3IKKyAgICAgICAgICAgICAgICAgICAgKHNlbGYuaW50ZWdyYXRpb25fdGVzdHMgYW5kIGF0
dHJuYW1lLnN0YXJ0c3dpdGgoJ2ludGVncmF0aW9uX3Rlc3RfJykpKQorICAgICAgICB0ZXN0Rm5O
YW1lcyA9IGZpbHRlcihpc1Rlc3RNZXRob2QsIGRpcih0ZXN0Q2FzZUNsYXNzKSkKKyAgICAgICAg
dGVzdEZuTmFtZXMuc29ydCgpCisgICAgICAgIHJldHVybiB0ZXN0Rm5OYW1lcworCisKK2RlZiBt
YWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgYXJndiBpcyBOb25lOgorICAgICAgICBhcmd2ID0gc3lz
LmFyZ3YKKworICAgIHRlc3RfbG9hZGVyID0gRW5oYW5jZWRUZXN0TG9hZGVyKCkKKyAgICBpZiAn
LWknIGluIGFyZ3Y6CisgICAgICAgIHRlc3RfbG9hZGVyLmludGVncmF0aW9uX3Rlc3RzID0gVHJ1
ZQorICAgICAgICBhcmd2LnJlbW92ZSgnLWknKQorICAgIGlmICctLW5vLXVuaXQtdGVzdHMnIGlu
IGFyZ3Y6CisgICAgICAgIHRlc3RfbG9hZGVyLnVuaXRfdGVzdHMgPSBGYWxzZQorICAgICAgICBh
cmd2LnJlbW92ZSgnLS1uby11bml0LXRlc3RzJykKKworICAgIHVuaXR0ZXN0Lm1haW4oYXJndj1h
cmd2LCB0ZXN0TG9hZGVyPXRlc3RfbG9hZGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDA3ZGU0NjAyMjk2M2YwNmNjMjkzZWJjOWU3
YWM2NGM4ZWU0ZGE3ZGQuLjc5ZmE3MTZiMDk4MzllZDllNjc5ZDVjMDlkYzNmNWE1NjE2NjI5ZjMK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXRfdW5pdHRlc3QucHkKQEAgLTY5LDEyICs2OSwxMyBAQCBjbGFzcyBXZWJLaXRQb3J0VGVz
dChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgZGVmIHBvcnRfbWFrZXIoc2VsZiwg
cGxhdGZvcm0pOgogICAgICAgICByZXR1cm4gV2ViS2l0UG9ydAogCisgICAgZGVmIHRlc3RfY2hl
Y2tfYnVpbGQoc2VsZik6CisgICAgICAgIHBhc3MKKwogICAgIGRlZiB0ZXN0X2RyaXZlcl9jbWRf
bGluZShzZWxmKToKLSAgICAgICAgIyBSb3V0aW5lIGlzIG5vdCBpbXBsZW1lbnRlZC4KICAgICAg
ICAgcGFzcwogCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAg
ICAgICMgUm91dGluZSBpcyBub3QgaW1wbGVtZW50ZWQuCiAgICAgICAgIHBhc3MKIAogICAgIGRl
ZiB0ZXN0X3NraXBwZWRfZGlyZWN0b3JpZXNfZm9yX3N5bWJvbHMoc2VsZik6Cg==
</data>
<flag name="review"
          id="84939"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>