<?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>140036</bug_id>
          
          <creation_ts>2015-01-01 16:46:53 -0800</creation_ts>
          <short_desc>Simplify WebKitTestRunner timeout tracking</short_desc>
          <delta_ts>2015-01-02 14:51:12 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>kbalazs</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058373</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-01 16:46:53 -0800</bug_when>
    <thetext>WebKitTestRunner has &quot;short timeout&quot; and &quot;long timeout&quot; for IPC, plus it has waitUntilDone timeout, plus run-webkit-tests itself has a timeout.

There are two reasons why WebKitTestRunner IPC timeouts are helpful:

1. If WebProcess freezes between tests, we want to detect that, and not attribute the freeze to the next test. Expecting a &quot;start test&quot; message to be handled quickly achieves this.

2. If WebProcess is so broken that it fails to launch, it&apos;s nice to say so, and not just fail with a generic timeout.

Both are handled by short timeout. Long timeout is only used when loading about:blank between tests, which I don&apos;t quite see the logic behind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058374</commentid>
    <comment_count>1</comment_count>
      <attachid>243875</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-01 16:54:34 -0800</bug_when>
    <thetext>Created attachment 243875
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058391</commentid>
    <comment_count>2</comment_count>
      <attachid>243882</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-01 23:53:37 -0800</bug_when>
    <thetext>Created attachment 243882
proposed patch

With Efl and Gtk build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058399</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-02 01:53:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created attachment 243882 [details]
&gt; proposed patch
&gt; 
&gt; With Efl and Gtk build fixes.

./../Tools/WebKitTestRunner/TestController.cpp:73:45: error: missing binary operator before token &quot;(&quot;
 #if defined (__has_feature) &amp;&amp; __has_feature(address_sanitizer)
                                             ^

Unfortunately GCC doesn&apos;t support short circuit evaluation,
so we need to use nested ifs for has_feature and has_include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058400</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-02 01:56:27 -0800</bug_when>
    <thetext>It&apos;s strange how GTK built it. I thought GTK uses GCC 4.8 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058432</commentid>
    <comment_count>5</comment_count>
      <attachid>243895</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-02 09:50:24 -0800</bug_when>
    <thetext>Created attachment 243895
proposed patch

OK, replaced with an ugly nested #if for now. I&apos;m looking into adding a macro to WTF, but need to figure out how an existing ADDRESS_SANITIZER macro is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058452</commentid>
    <comment_count>6</comment_count>
      <attachid>243895</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-02 10:41:15 -0800</bug_when>
    <thetext>Comment on attachment 243895
proposed patch

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

&gt; Tools/WebKitTestRunner/TestController.cpp:78
&gt; +#else

Missing #endif before this #else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058455</commentid>
    <comment_count>7</comment_count>
      <attachid>243901</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-02 10:48:04 -0800</bug_when>
    <thetext>Created attachment 243901
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058456</commentid>
    <comment_count>8</comment_count>
      <attachid>243901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-02 10:52:09 -0800</bug_when>
    <thetext>Comment on attachment 243901
proposed patch

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

I think it’s a little strange to compile in this 10 second vs. 5 second default timeout.

&gt; Tools/WebKitTestRunner/TestController.cpp:81
&gt; +#if defined(__has_feature)
&gt; +#if __has_feature(address_sanitizer)
&gt; +const double TestController::shortTimeout = 10.0;
&gt; +#else
&gt; +const double TestController::shortTimeout = 5.0;
&gt; +#endif
&gt; +#else
&gt; +const double TestController::shortTimeout = 5.0;
&gt; +#endif

I would have written:

    #if defined(__has_feature) &amp;&amp; __has_feature(address_sanitizer)
    const double TestController::shortTimeout = 10;
    #else
    const double TestController::shortTimeout = 5;
    #endif

But maybe the nested syntax is needed to compile on compilers that don&apos;t have __has_feature?

&gt; Tools/WebKitTestRunner/TestController.h:56
&gt; +    constexpr static double noTimeout = -1;

Does this work on Windows? I had problems with constexpr on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058457</commentid>
    <comment_count>9</comment_count>
      <attachid>243901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-02 10:52:53 -0800</bug_when>
    <thetext>Comment on attachment 243901
proposed patch

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

&gt;&gt; Tools/WebKitTestRunner/TestController.cpp:81
&gt;&gt; +#endif
&gt; 
&gt; I would have written:
&gt; 
&gt;     #if defined(__has_feature) &amp;&amp; __has_feature(address_sanitizer)
&gt;     const double TestController::shortTimeout = 10;
&gt;     #else
&gt;     const double TestController::shortTimeout = 5;
&gt;     #endif
&gt; 
&gt; But maybe the nested syntax is needed to compile on compilers that don&apos;t have __has_feature?

Oops, I see you discussing this earlier in this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058482</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-02 14:51:12 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r177870&gt;. Removed the use of constexpr to be safe, as Windows EWS is not functional.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243875</attachid>
            <date>2015-01-01 16:54:34 -0800</date>
            <delta_ts>2015-01-01 23:53:37 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveLongTimeout.txt</filename>
            <type>text/plain</type>
            <size>9366</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkocmV2aXNpb24gMTc3NzczKQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTAgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKLU9wdGlvbnM6Ok9wdGlvbnMoZG91Ymxl
IGRlZmF1bHRMb25nVGltZW91dCwgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQpCi0gICAgOiBs
b25nVGltZW91dChkZWZhdWx0TG9uZ1RpbWVvdXQpCi0gICAgLCBzaG9ydFRpbWVvdXQoZGVmYXVs
dFNob3J0VGltZW91dCkKLSAgICAsIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCitP
cHRpb25zOjpPcHRpb25zKCkKKyAgICA6IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBmb3JjZU5vVGltZW91dChmYWxzZSkKICAgICAsIHZlcmJvc2UoZmFsc2UpCiAgICAg
LCBnY0JldHdlZW5UZXN0cyhmYWxzZSkKQEAgLTQzLDE5ICs0MSw5IEBAIE9wdGlvbnM6Ok9wdGlv
bnMoZG91YmxlIGRlZmF1bHRMb25nVGltZW8KICAgICAsIGZvcmNlQ29tcGxleFRleHQoZmFsc2Up
CiAgICAgLCBzaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcoZmFsc2UpCiAgICAgLCBzaG91bGRV
c2VSZW1vdGVMYXllclRyZWUoZmFsc2UpCi0gICAgLCBkZWZhdWx0TG9uZ1RpbWVvdXQoZGVmYXVs
dExvbmdUaW1lb3V0KQotICAgICwgZGVmYXVsdFNob3J0VGltZW91dChkZWZhdWx0U2hvcnRUaW1l
b3V0KQogewogfQogCi1ib29sIGhhbmRsZU9wdGlvblRpbWVvdXQoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGFyZ3VtZW50KQotewotICAgIG9wdGlvbnMubG9uZ1Rp
bWVvdXQgPSBhdG9pKGFyZ3VtZW50KTsKLSAgICAvLyBTY2FsZSB1cCB0aGUgc2hvcnQgdGltZW91
dCB0byBtYXRjaC4KLSAgICBvcHRpb25zLnNob3J0VGltZW91dCA9IG9wdGlvbnMuZGVmYXVsdFNo
b3J0VGltZW91dCAqIG9wdGlvbnMubG9uZ1RpbWVvdXQgLyBvcHRpb25zLmRlZmF1bHRMb25nVGlt
ZW91dDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQo
T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogewogICAgIG9wdGlv
bnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBmYWxzZTsKQEAgLTEyMiw4ICsxMTAsNyBA
QCBib29sIGhhbmRsZU9wdGlvblVubWF0Y2hlZChPcHRpb25zJiBvcHRpCiBPcHRpb25zSGFuZGxl
cjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykKICAgICA6IG9wdGlvbnMobykKIHsKLSAgICBv
cHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tdGltZW91dCIsICJTZXRzIGxvbmcgdGltZW91dCB0
byA8cGFyYW0+IGFuZCBzY2FsZXMgc2hvcnQgdGltZW91dC4iLCBoYW5kbGVPcHRpb25UaW1lb3V0
LCB0cnVlKSk7Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLW5vLXRpbWVvdXQiLCAi
RGlzYWJsZXMgdGltZW91dC4iLCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQpKTsKKyAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi0tbm8tdGltZW91dCIsICJEaXNhYmxlcyB3YWl0VW50aWxEb25l
IHRpbWVvdXQuIiwgaGFuZGxlT3B0aW9uTm9UaW1lb3V0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBl
bmQoT3B0aW9uKCItLW5vLXRpbWVvdXQtYXQtYWxsIiwgIkRpc2FibGVzIGFsbCB0aW1lb3V0cy4i
LCBoYW5kbGVPcHRpb25Ob1RpbWVvdXRBdEFsbCkpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9w
dGlvbigiLS12ZXJib3NlIiwgIlR1cm5zIG9uIG1lc3NhZ2VzLiIsIGhhbmRsZU9wdGlvblZlcmJv
c2UpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10ZXN0cyIs
ICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25HY0JldHdl
ZW5UZXN0cykpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgJKHJldmlzaW9uIDE3Nzc3
MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw5ICszNiw3IEBACiBuYW1lc3BhY2UgV1RSIHsKIAogc3RydWN0IE9wdGlvbnMgewotICAg
IE9wdGlvbnMoZG91YmxlLCBkb3VibGUpOwotICAgIGRvdWJsZSBsb25nVGltZW91dDsKLSAgICBk
b3VibGUgc2hvcnRUaW1lb3V0OworICAgIE9wdGlvbnMoKTsKICAgICBib29sIHVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgZm9yY2VOb1RpbWVvdXQ7CiAgICAgYm9vbCB2ZXJi
b3NlOwpAQCAtNDksOCArNDcsNiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRV
c2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXllclRyZWU7
CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBhdGhzOwotICAgIGRvdWJsZSBkZWZhdWx0
TG9uZ1RpbWVvdXQ7Ci0gICAgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQ7CiB9OwogCiBjbGFz
cyBPcHRpb24gewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDE3Nzc3MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMyArNzAsMTEgQEAgY29uc3QgdW5zaWdu
ZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaAogY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xs
ZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVy
Ojp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOwogCi0vLyBkZWZhdWx0TG9uZ1RpbWVvdXQgKyBkZWZh
dWx0U2hvcnRUaW1lb3V0IHNob3VsZCBiZSBsZXNzIHRoYW4gMzUsCi0vLyB0aGUgZGVmYXVsdCB0
aW1lb3V0IHZhbHVlIG9mIHRoZSB0ZXN0IGhhcm5lc3Mgc28gd2UgY2FuIGRldGVjdCBhbgotLy8g
dW5yZXNwb25zaXZlIHdlYiBwcm9jZXNzLgotLy8gVGhlc2UgdmFsdWVzIGFyZSBvbmx5IHVzZWQg
YnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIC0tdGltZW91dCBvcHRpb24gcGFzc2VkIHRvIFdlYktp
dFRlc3RSdW5uZXIuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRMb25nVGltZW91dCA9IDI1
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U2hvcnRUaW1lb3V0ID0gNTsKLXN0YXRpYyBj
b25zdCBkb3VibGUgZGVmYXVsdE5vVGltZW91dCA9IC0xOworI2lmIGRlZmluZWQgKF9faGFzX2Zl
YXR1cmUpICYmIF9faGFzX2ZlYXR1cmUoYWRkcmVzc19zYW5pdGl6ZXIpCitjb25zdCBkb3VibGUg
VGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCA9IDEwLjA7CisjZWxzZQorY29uc3QgZG91Ymxl
IFRlc3RDb250cm9sbGVyOjpzaG9ydFRpbWVvdXQgPSA1LjA7CisjZW5kaWYKIAogc3RhdGljIFdL
VVJMUmVmIGJsYW5rVVJMKCkKIHsKQEAgLTEwNiw5ICsxMDQsNiBAQCBUZXN0Q29udHJvbGxlcjo6
VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsCiAgICAgLCBtX3Nob3VsZER1bXBQaXhlbHNGb3JBbGxU
ZXN0cyhmYWxzZSkKICAgICAsIG1fc3RhdGUoSW5pdGlhbCkKICAgICAsIG1fZG9uZVJlc2V0dGlu
ZyhmYWxzZSkKLSAgICAsIG1fbG9uZ1RpbWVvdXQoZGVmYXVsdExvbmdUaW1lb3V0KQotICAgICwg
bV9zaG9ydFRpbWVvdXQoZGVmYXVsdFNob3J0VGltZW91dCkKLSAgICAsIG1fbm9UaW1lb3V0KGRl
ZmF1bHROb1RpbWVvdXQpCiAgICAgLCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBtX2ZvcmNlTm9UaW1lb3V0KGZhbHNlKQogICAgICwgbV9kaWRQcmludFdlYlByb2Nl
c3NDcmFzaGVkTWVzc2FnZShmYWxzZSkKQEAgLTMzNyw3ICszMzIsNyBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CiAKLSAgICBPcHRpb25zIG9wdGlvbnMoZGVmYXVsdExvbmdUaW1lb3V0LCBkZWZhdWx0U2hvcnRU
aW1lb3V0KTsKKyAgICBPcHRpb25zIG9wdGlvbnM7CiAgICAgT3B0aW9uc0hhbmRsZXIgb3B0aW9u
c0hhbmRsZXIob3B0aW9ucyk7CiAKICAgICBpZiAoYXJnYyA8IDIpIHsKQEAgLTM0Nyw4ICszNDIs
NiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAgICAgaWYgKCFv
cHRpb25zSGFuZGxlci5wYXJzZShhcmdjLCBhcmd2KSkKICAgICAgICAgZXhpdCgxKTsKIAotICAg
IG1fbG9uZ1RpbWVvdXQgPSBvcHRpb25zLmxvbmdUaW1lb3V0OwotICAgIG1fc2hvcnRUaW1lb3V0
ID0gb3B0aW9ucy5zaG9ydFRpbWVvdXQ7CiAgICAgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1l
ciA9IG9wdGlvbnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgbV9mb3JjZU5vVGlt
ZW91dCA9IG9wdGlvbnMuZm9yY2VOb1RpbWVvdXQ7CiAgICAgbV92ZXJib3NlID0gb3B0aW9ucy52
ZXJib3NlOwpAQCAtNzQxLDcgKzczNCw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3Rh
dGVUb0NvbnNpc3QKICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxzZTsKIAogICAgIFdLUGFnZUxv
YWRVUkwobV9tYWluV2ViVmlldy0+cGFnZSgpLCBibGFua1VSTCgpKTsKLSAgICBydW5VbnRpbCht
X2RvbmVSZXNldHRpbmcsIFNob3J0VGltZW91dCk7CisgICAgcnVuVW50aWwobV9kb25lUmVzZXR0
aW5nLCBzaG9ydFRpbWVvdXQpOwogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7CiB9CiAKQEAg
LTc1NSw3ICs3NDgsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZWF0dGFjaFBhZ2VUb1dlYlBy
CiAgICAgLy8gTG9hZGluZyBhIHdlYiBwYWdlIGlzIHRoZSBvbmx5IHdheSB0byByZWF0dGFjaCBh
biBleGlzdGluZyBwYWdlIHRvIGEgcHJvY2Vzcy4KICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxz
ZTsKICAgICBXS1BhZ2VMb2FkVVJMKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYmxhbmtVUkwoKSk7
Ci0gICAgcnVuVW50aWwobV9kb25lUmVzZXR0aW5nLCBMb25nVGltZW91dCk7CisgICAgcnVuVW50
aWwobV9kb25lUmVzZXR0aW5nLCBzaG9ydFRpbWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9s
bGVyOjp1cGRhdGVXZWJWaWV3U2l6ZUZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3Qp
CkBAIC05NjMsMjMgKzk1NiwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpydW4oKQogICAgIH0K
IH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuVW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1
cmF0aW9uIHRpbWVvdXREdXJhdGlvbikKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1blVudGlsKGJv
b2wmIGRvbmUsIGRvdWJsZSB0aW1lb3V0KQogewotICAgIGRvdWJsZSB0aW1lb3V0ID0gbV9ub1Rp
bWVvdXQ7Ci0gICAgaWYgKCFtX2ZvcmNlTm9UaW1lb3V0KSB7Ci0gICAgICAgIHN3aXRjaCAodGlt
ZW91dER1cmF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU2hvcnRUaW1lb3V0OgotICAgICAgICAgICAg
dGltZW91dCA9IG1fc2hvcnRUaW1lb3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTG9uZ1RpbWVvdXQ6Ci0gICAgICAgICAgICB0aW1lb3V0ID0gbV9sb25nVGltZW91dDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vVGltZW91dDoKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHRpbWVvdXQgPSBtX25vVGltZW91dDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChtX2ZvcmNlTm9UaW1lb3V0KQorICAgICAgICB0
aW1lb3V0ID0gbm9UaW1lb3V0OwogCiAgICAgcGxhdGZvcm1SdW5VbnRpbChkb25lLCB0aW1lb3V0
KTsKIH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHJldmlz
aW9uIDE3Nzc3MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCB3M2NTVkdWaWV3V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHcz
Y1NWR1ZpZXdIZWlnaHQ7CiAKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNob3J0VGltZW91dDsK
KworICAgIGNvbnN0ZXhwciBzdGF0aWMgZG91YmxlIG5vVGltZW91dCA9IC0xOworCiAgICAgVGVz
dENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSk7CiAgICAgflRlc3RDb250
cm9sbGVyKCk7CiAKQEAgLTY4LDkgKzcyLDggQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkVXNl
UmVtb3RlTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRVc2VSZW1vdGVMYXllclRy
ZWU7IH0KICAgICAKICAgICAvLyBSdW5zIHRoZSBydW4gbG9vcCB1bnRpbCBgZG9uZWAgaXMgdHJ1
ZSBvciB0aGUgdGltZW91dCBlbGFwc2VzLgotICAgIGVudW0gVGltZW91dER1cmF0aW9uIHsgU2hv
cnRUaW1lb3V0LCBMb25nVGltZW91dCwgTm9UaW1lb3V0IH07CiAgICAgYm9vbCB1c2VXYWl0VG9E
dW1wV2F0Y2hkb2dUaW1lcigpIHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7
IH0KLSAgICB2b2lkIHJ1blVudGlsKGJvb2wmIGRvbmUsIFRpbWVvdXREdXJhdGlvbik7CisgICAg
dm9pZCBydW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGltZW91dFNlY29uZHMpOwogICAgIHZv
aWQgbm90aWZ5RG9uZSgpOwogICAgIAogICAgIHZvaWQgY29uZmlndXJlVmlld0ZvclRlc3QoY29u
c3QgVGVzdEludm9jYXRpb24mKTsKQEAgLTIyMyw5ICsyMjYsNiBAQCBwcml2YXRlOgogICAgIFN0
YXRlIG1fc3RhdGU7CiAgICAgYm9vbCBtX2RvbmVSZXNldHRpbmc7CiAKLSAgICBkb3VibGUgbV9s
b25nVGltZW91dDsKLSAgICBkb3VibGUgbV9zaG9ydFRpbWVvdXQ7Ci0gICAgZG91YmxlIG1fbm9U
aW1lb3V0OwogICAgIGJvb2wgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAgICBib29s
IG1fZm9yY2VOb1RpbWVvdXQ7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCShyZXZpc2lvbiAxNzc3NzMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIHZv
aWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBXS0NvbnRleHRQb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmNvbnRleHQoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsKIAotICAgIFRlc3RDb250
cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dvdEluaXRpYWxSZXNwb25zZSwgVGVzdENvbnRy
b2xsZXI6OlNob3J0VGltZW91dCk7CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVu
dGlsKG1fZ290SW5pdGlhbFJlc3BvbnNlLCBUZXN0Q29udHJvbGxlcjo6c2hvcnRUaW1lb3V0KTsK
ICAgICBpZiAoIW1fZ290SW5pdGlhbFJlc3BvbnNlKSB7CiAgICAgICAgIG1fZXJyb3JNZXNzYWdl
ID0gIlRpbWVkIG91dCB3YWl0aW5nIGZvciBpbml0aWFsIHJlc3BvbnNlIGZyb20gd2ViIHByb2Nl
c3NcbiI7CiAgICAgICAgIG1fd2ViUHJvY2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1ZTsKQEAgLTE3
MSwxMyArMTcxLDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKIAogICAgIFdLUGFn
ZUxvYWRVUkwoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwg
bV91cmwuZ2V0KCkpOwogCi0gICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1f
Z290RmluYWxNZXNzYWdlLCBUZXN0Q29udHJvbGxlcjo6Tm9UaW1lb3V0KTsKLQotICAgIGlmICgh
bV9nb3RGaW5hbE1lc3NhZ2UpIHsKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSAiVGltZWQgb3V0
IHdhaXRpbmcgZm9yIGZpbmFsIG1lc3NhZ2UgZnJvbSB3ZWIgcHJvY2Vzc1xuIjsKLSAgICAgICAg
bV93ZWJQcm9jZXNzSXNVbnJlc3BvbnNpdmUgPSB0cnVlOwotICAgICAgICBnb3RvIGVuZDsKLSAg
ICB9CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290RmluYWxNZXNz
YWdlLCBUZXN0Q29udHJvbGxlcjo6bm9UaW1lb3V0KTsKICAgICBpZiAobV9lcnJvcikKICAgICAg
ICAgZ290byBlbmQ7CiAKQEAgLTI1NCw3ICsyNDgsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpk
dW1wUmVzdWx0cygpCiAgICAgICAgIGlmIChQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90
RW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX2dvdFJlcGFpbnQgPSBmYWxzZTsKICAgICAgICAg
ICAgIFdLUGFnZUZvcmNlUmVwYWludChUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZp
ZXcoKS0+cGFnZSgpLCB0aGlzLCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50RG9uZUNhbGxi
YWNrKTsKLSAgICAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dv
dFJlcGFpbnQsIFRlc3RDb250cm9sbGVyOjpTaG9ydFRpbWVvdXQpOworICAgICAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290UmVwYWludCwgVGVzdENvbnRyb2xs
ZXI6OnNob3J0VGltZW91dCk7CiAgICAgICAgICAgICBpZiAoIW1fZ290UmVwYWludCkgewogICAg
ICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gIlRpbWVkIG91dCB3YWl0aW5nIGZvciBwcmUt
cGl4ZWwgZHVtcCByZXBhaW50XG4iOwogICAgICAgICAgICAgICAgIG1fd2ViUHJvY2Vzc0lzVW5y
ZXNwb25zaXZlID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243882</attachid>
            <date>2015-01-01 23:53:37 -0800</date>
            <delta_ts>2015-01-02 09:50:24 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveLongTimeout.txt</filename>
            <type>text/plain</type>
            <size>10592</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkocmV2aXNpb24gMTc3ODU0KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTAgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKLU9wdGlvbnM6Ok9wdGlvbnMoZG91Ymxl
IGRlZmF1bHRMb25nVGltZW91dCwgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQpCi0gICAgOiBs
b25nVGltZW91dChkZWZhdWx0TG9uZ1RpbWVvdXQpCi0gICAgLCBzaG9ydFRpbWVvdXQoZGVmYXVs
dFNob3J0VGltZW91dCkKLSAgICAsIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCitP
cHRpb25zOjpPcHRpb25zKCkKKyAgICA6IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBmb3JjZU5vVGltZW91dChmYWxzZSkKICAgICAsIHZlcmJvc2UoZmFsc2UpCiAgICAg
LCBnY0JldHdlZW5UZXN0cyhmYWxzZSkKQEAgLTQzLDE5ICs0MSw5IEBAIE9wdGlvbnM6Ok9wdGlv
bnMoZG91YmxlIGRlZmF1bHRMb25nVGltZW8KICAgICAsIGZvcmNlQ29tcGxleFRleHQoZmFsc2Up
CiAgICAgLCBzaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcoZmFsc2UpCiAgICAgLCBzaG91bGRV
c2VSZW1vdGVMYXllclRyZWUoZmFsc2UpCi0gICAgLCBkZWZhdWx0TG9uZ1RpbWVvdXQoZGVmYXVs
dExvbmdUaW1lb3V0KQotICAgICwgZGVmYXVsdFNob3J0VGltZW91dChkZWZhdWx0U2hvcnRUaW1l
b3V0KQogewogfQogCi1ib29sIGhhbmRsZU9wdGlvblRpbWVvdXQoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGFyZ3VtZW50KQotewotICAgIG9wdGlvbnMubG9uZ1Rp
bWVvdXQgPSBhdG9pKGFyZ3VtZW50KTsKLSAgICAvLyBTY2FsZSB1cCB0aGUgc2hvcnQgdGltZW91
dCB0byBtYXRjaC4KLSAgICBvcHRpb25zLnNob3J0VGltZW91dCA9IG9wdGlvbnMuZGVmYXVsdFNo
b3J0VGltZW91dCAqIG9wdGlvbnMubG9uZ1RpbWVvdXQgLyBvcHRpb25zLmRlZmF1bHRMb25nVGlt
ZW91dDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQo
T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogewogICAgIG9wdGlv
bnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBmYWxzZTsKQEAgLTEyMiw4ICsxMTAsNyBA
QCBib29sIGhhbmRsZU9wdGlvblVubWF0Y2hlZChPcHRpb25zJiBvcHRpCiBPcHRpb25zSGFuZGxl
cjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykKICAgICA6IG9wdGlvbnMobykKIHsKLSAgICBv
cHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tdGltZW91dCIsICJTZXRzIGxvbmcgdGltZW91dCB0
byA8cGFyYW0+IGFuZCBzY2FsZXMgc2hvcnQgdGltZW91dC4iLCBoYW5kbGVPcHRpb25UaW1lb3V0
LCB0cnVlKSk7Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLW5vLXRpbWVvdXQiLCAi
RGlzYWJsZXMgdGltZW91dC4iLCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQpKTsKKyAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi0tbm8tdGltZW91dCIsICJEaXNhYmxlcyB3YWl0VW50aWxEb25l
IHRpbWVvdXQuIiwgaGFuZGxlT3B0aW9uTm9UaW1lb3V0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBl
bmQoT3B0aW9uKCItLW5vLXRpbWVvdXQtYXQtYWxsIiwgIkRpc2FibGVzIGFsbCB0aW1lb3V0cy4i
LCBoYW5kbGVPcHRpb25Ob1RpbWVvdXRBdEFsbCkpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9w
dGlvbigiLS12ZXJib3NlIiwgIlR1cm5zIG9uIG1lc3NhZ2VzLiIsIGhhbmRsZU9wdGlvblZlcmJv
c2UpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10ZXN0cyIs
ICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25HY0JldHdl
ZW5UZXN0cykpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgJKHJldmlzaW9uIDE3Nzg1
NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw5ICszNiw3IEBACiBuYW1lc3BhY2UgV1RSIHsKIAogc3RydWN0IE9wdGlvbnMgewotICAg
IE9wdGlvbnMoZG91YmxlLCBkb3VibGUpOwotICAgIGRvdWJsZSBsb25nVGltZW91dDsKLSAgICBk
b3VibGUgc2hvcnRUaW1lb3V0OworICAgIE9wdGlvbnMoKTsKICAgICBib29sIHVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgZm9yY2VOb1RpbWVvdXQ7CiAgICAgYm9vbCB2ZXJi
b3NlOwpAQCAtNDksOCArNDcsNiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRV
c2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXllclRyZWU7
CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBhdGhzOwotICAgIGRvdWJsZSBkZWZhdWx0
TG9uZ1RpbWVvdXQ7Ci0gICAgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQ7CiB9OwogCiBjbGFz
cyBPcHRpb24gewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMyArNzAsMTEgQEAgY29uc3QgdW5zaWdu
ZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaAogY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xs
ZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVy
Ojp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOwogCi0vLyBkZWZhdWx0TG9uZ1RpbWVvdXQgKyBkZWZh
dWx0U2hvcnRUaW1lb3V0IHNob3VsZCBiZSBsZXNzIHRoYW4gMzUsCi0vLyB0aGUgZGVmYXVsdCB0
aW1lb3V0IHZhbHVlIG9mIHRoZSB0ZXN0IGhhcm5lc3Mgc28gd2UgY2FuIGRldGVjdCBhbgotLy8g
dW5yZXNwb25zaXZlIHdlYiBwcm9jZXNzLgotLy8gVGhlc2UgdmFsdWVzIGFyZSBvbmx5IHVzZWQg
YnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIC0tdGltZW91dCBvcHRpb24gcGFzc2VkIHRvIFdlYktp
dFRlc3RSdW5uZXIuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRMb25nVGltZW91dCA9IDI1
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U2hvcnRUaW1lb3V0ID0gNTsKLXN0YXRpYyBj
b25zdCBkb3VibGUgZGVmYXVsdE5vVGltZW91dCA9IC0xOworI2lmIGRlZmluZWQgKF9faGFzX2Zl
YXR1cmUpICYmIF9faGFzX2ZlYXR1cmUoYWRkcmVzc19zYW5pdGl6ZXIpCitjb25zdCBkb3VibGUg
VGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCA9IDEwLjA7CisjZWxzZQorY29uc3QgZG91Ymxl
IFRlc3RDb250cm9sbGVyOjpzaG9ydFRpbWVvdXQgPSA1LjA7CisjZW5kaWYKIAogc3RhdGljIFdL
VVJMUmVmIGJsYW5rVVJMKCkKIHsKQEAgLTEwNiw5ICsxMDQsNiBAQCBUZXN0Q29udHJvbGxlcjo6
VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsCiAgICAgLCBtX3Nob3VsZER1bXBQaXhlbHNGb3JBbGxU
ZXN0cyhmYWxzZSkKICAgICAsIG1fc3RhdGUoSW5pdGlhbCkKICAgICAsIG1fZG9uZVJlc2V0dGlu
ZyhmYWxzZSkKLSAgICAsIG1fbG9uZ1RpbWVvdXQoZGVmYXVsdExvbmdUaW1lb3V0KQotICAgICwg
bV9zaG9ydFRpbWVvdXQoZGVmYXVsdFNob3J0VGltZW91dCkKLSAgICAsIG1fbm9UaW1lb3V0KGRl
ZmF1bHROb1RpbWVvdXQpCiAgICAgLCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBtX2ZvcmNlTm9UaW1lb3V0KGZhbHNlKQogICAgICwgbV9kaWRQcmludFdlYlByb2Nl
c3NDcmFzaGVkTWVzc2FnZShmYWxzZSkKQEAgLTMzNyw3ICszMzIsNyBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CiAKLSAgICBPcHRpb25zIG9wdGlvbnMoZGVmYXVsdExvbmdUaW1lb3V0LCBkZWZhdWx0U2hvcnRU
aW1lb3V0KTsKKyAgICBPcHRpb25zIG9wdGlvbnM7CiAgICAgT3B0aW9uc0hhbmRsZXIgb3B0aW9u
c0hhbmRsZXIob3B0aW9ucyk7CiAKICAgICBpZiAoYXJnYyA8IDIpIHsKQEAgLTM0Nyw4ICszNDIs
NiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAgICAgaWYgKCFv
cHRpb25zSGFuZGxlci5wYXJzZShhcmdjLCBhcmd2KSkKICAgICAgICAgZXhpdCgxKTsKIAotICAg
IG1fbG9uZ1RpbWVvdXQgPSBvcHRpb25zLmxvbmdUaW1lb3V0OwotICAgIG1fc2hvcnRUaW1lb3V0
ID0gb3B0aW9ucy5zaG9ydFRpbWVvdXQ7CiAgICAgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1l
ciA9IG9wdGlvbnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgbV9mb3JjZU5vVGlt
ZW91dCA9IG9wdGlvbnMuZm9yY2VOb1RpbWVvdXQ7CiAgICAgbV92ZXJib3NlID0gb3B0aW9ucy52
ZXJib3NlOwpAQCAtNzQwLDcgKzczMyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3Rh
dGVUb0NvbnNpc3QKICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxzZTsKIAogICAgIFdLUGFnZUxv
YWRVUkwobV9tYWluV2ViVmlldy0+cGFnZSgpLCBibGFua1VSTCgpKTsKLSAgICBydW5VbnRpbCht
X2RvbmVSZXNldHRpbmcsIFNob3J0VGltZW91dCk7CisgICAgcnVuVW50aWwobV9kb25lUmVzZXR0
aW5nLCBzaG9ydFRpbWVvdXQpOwogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7CiB9CiAKQEAg
LTc1NCw3ICs3NDcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZWF0dGFjaFBhZ2VUb1dlYlBy
CiAgICAgLy8gTG9hZGluZyBhIHdlYiBwYWdlIGlzIHRoZSBvbmx5IHdheSB0byByZWF0dGFjaCBh
biBleGlzdGluZyBwYWdlIHRvIGEgcHJvY2Vzcy4KICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxz
ZTsKICAgICBXS1BhZ2VMb2FkVVJMKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYmxhbmtVUkwoKSk7
Ci0gICAgcnVuVW50aWwobV9kb25lUmVzZXR0aW5nLCBMb25nVGltZW91dCk7CisgICAgcnVuVW50
aWwobV9kb25lUmVzZXR0aW5nLCBzaG9ydFRpbWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9s
bGVyOjp1cGRhdGVXZWJWaWV3U2l6ZUZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3Qp
CkBAIC05NjIsMjMgKzk1NSwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpydW4oKQogICAgIH0K
IH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuVW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1
cmF0aW9uIHRpbWVvdXREdXJhdGlvbikKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1blVudGlsKGJv
b2wmIGRvbmUsIGRvdWJsZSB0aW1lb3V0KQogewotICAgIGRvdWJsZSB0aW1lb3V0ID0gbV9ub1Rp
bWVvdXQ7Ci0gICAgaWYgKCFtX2ZvcmNlTm9UaW1lb3V0KSB7Ci0gICAgICAgIHN3aXRjaCAodGlt
ZW91dER1cmF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU2hvcnRUaW1lb3V0OgotICAgICAgICAgICAg
dGltZW91dCA9IG1fc2hvcnRUaW1lb3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTG9uZ1RpbWVvdXQ6Ci0gICAgICAgICAgICB0aW1lb3V0ID0gbV9sb25nVGltZW91dDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vVGltZW91dDoKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHRpbWVvdXQgPSBtX25vVGltZW91dDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChtX2ZvcmNlTm9UaW1lb3V0KQorICAgICAgICB0
aW1lb3V0ID0gbm9UaW1lb3V0OwogCiAgICAgcGxhdGZvcm1SdW5VbnRpbChkb25lLCB0aW1lb3V0
KTsKIH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHJldmlz
aW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCB3M2NTVkdWaWV3V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHcz
Y1NWR1ZpZXdIZWlnaHQ7CiAKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNob3J0VGltZW91dDsK
KworICAgIGNvbnN0ZXhwciBzdGF0aWMgZG91YmxlIG5vVGltZW91dCA9IC0xOworCiAgICAgVGVz
dENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSk7CiAgICAgflRlc3RDb250
cm9sbGVyKCk7CiAKQEAgLTY4LDkgKzcyLDggQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkVXNl
UmVtb3RlTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRVc2VSZW1vdGVMYXllclRy
ZWU7IH0KICAgICAKICAgICAvLyBSdW5zIHRoZSBydW4gbG9vcCB1bnRpbCBgZG9uZWAgaXMgdHJ1
ZSBvciB0aGUgdGltZW91dCBlbGFwc2VzLgotICAgIGVudW0gVGltZW91dER1cmF0aW9uIHsgU2hv
cnRUaW1lb3V0LCBMb25nVGltZW91dCwgTm9UaW1lb3V0IH07CiAgICAgYm9vbCB1c2VXYWl0VG9E
dW1wV2F0Y2hkb2dUaW1lcigpIHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7
IH0KLSAgICB2b2lkIHJ1blVudGlsKGJvb2wmIGRvbmUsIFRpbWVvdXREdXJhdGlvbik7CisgICAg
dm9pZCBydW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGltZW91dFNlY29uZHMpOwogICAgIHZv
aWQgbm90aWZ5RG9uZSgpOwogICAgIAogICAgIHZvaWQgY29uZmlndXJlVmlld0ZvclRlc3QoY29u
c3QgVGVzdEludm9jYXRpb24mKTsKQEAgLTIyMyw5ICsyMjYsNiBAQCBwcml2YXRlOgogICAgIFN0
YXRlIG1fc3RhdGU7CiAgICAgYm9vbCBtX2RvbmVSZXNldHRpbmc7CiAKLSAgICBkb3VibGUgbV9s
b25nVGltZW91dDsKLSAgICBkb3VibGUgbV9zaG9ydFRpbWVvdXQ7Ci0gICAgZG91YmxlIG1fbm9U
aW1lb3V0OwogICAgIGJvb2wgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAgICBib29s
IG1fZm9yY2VOb1RpbWVvdXQ7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCShyZXZpc2lvbiAxNzc4NTQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIHZv
aWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBXS0NvbnRleHRQb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmNvbnRleHQoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsKIAotICAgIFRlc3RDb250
cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dvdEluaXRpYWxSZXNwb25zZSwgVGVzdENvbnRy
b2xsZXI6OlNob3J0VGltZW91dCk7CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVu
dGlsKG1fZ290SW5pdGlhbFJlc3BvbnNlLCBUZXN0Q29udHJvbGxlcjo6c2hvcnRUaW1lb3V0KTsK
ICAgICBpZiAoIW1fZ290SW5pdGlhbFJlc3BvbnNlKSB7CiAgICAgICAgIG1fZXJyb3JNZXNzYWdl
ID0gIlRpbWVkIG91dCB3YWl0aW5nIGZvciBpbml0aWFsIHJlc3BvbnNlIGZyb20gd2ViIHByb2Nl
c3NcbiI7CiAgICAgICAgIG1fd2ViUHJvY2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1ZTsKQEAgLTE3
MSwxMyArMTcxLDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKIAogICAgIFdLUGFn
ZUxvYWRVUkwoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwg
bV91cmwuZ2V0KCkpOwogCi0gICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1f
Z290RmluYWxNZXNzYWdlLCBUZXN0Q29udHJvbGxlcjo6Tm9UaW1lb3V0KTsKLQotICAgIGlmICgh
bV9nb3RGaW5hbE1lc3NhZ2UpIHsKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSAiVGltZWQgb3V0
IHdhaXRpbmcgZm9yIGZpbmFsIG1lc3NhZ2UgZnJvbSB3ZWIgcHJvY2Vzc1xuIjsKLSAgICAgICAg
bV93ZWJQcm9jZXNzSXNVbnJlc3BvbnNpdmUgPSB0cnVlOwotICAgICAgICBnb3RvIGVuZDsKLSAg
ICB9CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290RmluYWxNZXNz
YWdlLCBUZXN0Q29udHJvbGxlcjo6bm9UaW1lb3V0KTsKICAgICBpZiAobV9lcnJvcikKICAgICAg
ICAgZ290byBlbmQ7CiAKQEAgLTI1NCw3ICsyNDgsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpk
dW1wUmVzdWx0cygpCiAgICAgICAgIGlmIChQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90
RW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX2dvdFJlcGFpbnQgPSBmYWxzZTsKICAgICAgICAg
ICAgIFdLUGFnZUZvcmNlUmVwYWludChUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZp
ZXcoKS0+cGFnZSgpLCB0aGlzLCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50RG9uZUNhbGxi
YWNrKTsKLSAgICAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dv
dFJlcGFpbnQsIFRlc3RDb250cm9sbGVyOjpTaG9ydFRpbWVvdXQpOworICAgICAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290UmVwYWludCwgVGVzdENvbnRyb2xs
ZXI6OnNob3J0VGltZW91dCk7CiAgICAgICAgICAgICBpZiAoIW1fZ290UmVwYWludCkgewogICAg
ICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gIlRpbWVkIG91dCB3YWl0aW5nIGZvciBwcmUt
cGl4ZWwgZHVtcCByZXBhaW50XG4iOwogICAgICAgICAgICAgICAgIG1fd2ViUHJvY2Vzc0lzVW5y
ZXNwb25zaXZlID0gdHJ1ZTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rlc3RD
b250cm9sbGVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2Vm
bC9UZXN0Q29udHJvbGxlckVmbC5jcHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjksNyArNjksNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0CiAK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBk
b3VibGUgdGltZW91dCkKIHsKLSAgICBpZiAodGltZW91dCA9PSBtX25vVGltZW91dCkgeworICAg
IGlmICh0aW1lb3V0IDw9IDApIHsKICAgICAgICAgLy8gTmV2ZXIgdGltZW91dCBpZiB3ZSBhcmUg
ZGVidWdnaW5nIG9yIG5vdCBtZWFudCB0byB0aW1lb3V0LgogICAgICAgICB3aGlsZSAoIWNvbmRp
dGlvbikKICAgICAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZp
c2lvbiAxNzc4NTQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxl
ckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVJ1blVudGlsKGJvb2wmLCBkb3VibGUgdGltZW91dCkKIHsKLSAgICBpZiAodGltZW91dCAhPSBt
X25vVGltZW91dCkgeworICAgIGlmICh0aW1lb3V0ID4gMCkgewogICAgICAgICB0aW1lb3V0U291
cmNlLnNjaGVkdWxlQWZ0ZXJEZWxheSgiW1dUUl0gVGVzdCB0aW1lb3V0IHNvdXJjZSIsIFtdIHsK
ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTDogVGVzdENvbnRyb2xsZXJSdW5Mb29w
IHRpbWVkIG91dC5cbiIpOwogICAgICAgICAgICAgZ3RrX21haW5fcXVpdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243895</attachid>
            <date>2015-01-02 09:50:24 -0800</date>
            <delta_ts>2015-01-02 10:48:04 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveLongTimeout.txt</filename>
            <type>text/plain</type>
            <size>10651</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkocmV2aXNpb24gMTc3ODU0KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTAgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKLU9wdGlvbnM6Ok9wdGlvbnMoZG91Ymxl
IGRlZmF1bHRMb25nVGltZW91dCwgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQpCi0gICAgOiBs
b25nVGltZW91dChkZWZhdWx0TG9uZ1RpbWVvdXQpCi0gICAgLCBzaG9ydFRpbWVvdXQoZGVmYXVs
dFNob3J0VGltZW91dCkKLSAgICAsIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCitP
cHRpb25zOjpPcHRpb25zKCkKKyAgICA6IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBmb3JjZU5vVGltZW91dChmYWxzZSkKICAgICAsIHZlcmJvc2UoZmFsc2UpCiAgICAg
LCBnY0JldHdlZW5UZXN0cyhmYWxzZSkKQEAgLTQzLDE5ICs0MSw5IEBAIE9wdGlvbnM6Ok9wdGlv
bnMoZG91YmxlIGRlZmF1bHRMb25nVGltZW8KICAgICAsIGZvcmNlQ29tcGxleFRleHQoZmFsc2Up
CiAgICAgLCBzaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcoZmFsc2UpCiAgICAgLCBzaG91bGRV
c2VSZW1vdGVMYXllclRyZWUoZmFsc2UpCi0gICAgLCBkZWZhdWx0TG9uZ1RpbWVvdXQoZGVmYXVs
dExvbmdUaW1lb3V0KQotICAgICwgZGVmYXVsdFNob3J0VGltZW91dChkZWZhdWx0U2hvcnRUaW1l
b3V0KQogewogfQogCi1ib29sIGhhbmRsZU9wdGlvblRpbWVvdXQoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGFyZ3VtZW50KQotewotICAgIG9wdGlvbnMubG9uZ1Rp
bWVvdXQgPSBhdG9pKGFyZ3VtZW50KTsKLSAgICAvLyBTY2FsZSB1cCB0aGUgc2hvcnQgdGltZW91
dCB0byBtYXRjaC4KLSAgICBvcHRpb25zLnNob3J0VGltZW91dCA9IG9wdGlvbnMuZGVmYXVsdFNo
b3J0VGltZW91dCAqIG9wdGlvbnMubG9uZ1RpbWVvdXQgLyBvcHRpb25zLmRlZmF1bHRMb25nVGlt
ZW91dDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQo
T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogewogICAgIG9wdGlv
bnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBmYWxzZTsKQEAgLTEyMiw4ICsxMTAsNyBA
QCBib29sIGhhbmRsZU9wdGlvblVubWF0Y2hlZChPcHRpb25zJiBvcHRpCiBPcHRpb25zSGFuZGxl
cjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykKICAgICA6IG9wdGlvbnMobykKIHsKLSAgICBv
cHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tdGltZW91dCIsICJTZXRzIGxvbmcgdGltZW91dCB0
byA8cGFyYW0+IGFuZCBzY2FsZXMgc2hvcnQgdGltZW91dC4iLCBoYW5kbGVPcHRpb25UaW1lb3V0
LCB0cnVlKSk7Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLW5vLXRpbWVvdXQiLCAi
RGlzYWJsZXMgdGltZW91dC4iLCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQpKTsKKyAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi0tbm8tdGltZW91dCIsICJEaXNhYmxlcyB3YWl0VW50aWxEb25l
IHRpbWVvdXQuIiwgaGFuZGxlT3B0aW9uTm9UaW1lb3V0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBl
bmQoT3B0aW9uKCItLW5vLXRpbWVvdXQtYXQtYWxsIiwgIkRpc2FibGVzIGFsbCB0aW1lb3V0cy4i
LCBoYW5kbGVPcHRpb25Ob1RpbWVvdXRBdEFsbCkpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9w
dGlvbigiLS12ZXJib3NlIiwgIlR1cm5zIG9uIG1lc3NhZ2VzLiIsIGhhbmRsZU9wdGlvblZlcmJv
c2UpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10ZXN0cyIs
ICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25HY0JldHdl
ZW5UZXN0cykpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgJKHJldmlzaW9uIDE3Nzg1
NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw5ICszNiw3IEBACiBuYW1lc3BhY2UgV1RSIHsKIAogc3RydWN0IE9wdGlvbnMgewotICAg
IE9wdGlvbnMoZG91YmxlLCBkb3VibGUpOwotICAgIGRvdWJsZSBsb25nVGltZW91dDsKLSAgICBk
b3VibGUgc2hvcnRUaW1lb3V0OworICAgIE9wdGlvbnMoKTsKICAgICBib29sIHVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgZm9yY2VOb1RpbWVvdXQ7CiAgICAgYm9vbCB2ZXJi
b3NlOwpAQCAtNDksOCArNDcsNiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRV
c2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXllclRyZWU7
CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBhdGhzOwotICAgIGRvdWJsZSBkZWZhdWx0
TG9uZ1RpbWVvdXQ7Ci0gICAgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQ7CiB9OwogCiBjbGFz
cyBPcHRpb24gewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMyArNzAsMTQgQEAgY29uc3QgdW5zaWdu
ZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaAogY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xs
ZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVy
Ojp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOwogCi0vLyBkZWZhdWx0TG9uZ1RpbWVvdXQgKyBkZWZh
dWx0U2hvcnRUaW1lb3V0IHNob3VsZCBiZSBsZXNzIHRoYW4gMzUsCi0vLyB0aGUgZGVmYXVsdCB0
aW1lb3V0IHZhbHVlIG9mIHRoZSB0ZXN0IGhhcm5lc3Mgc28gd2UgY2FuIGRldGVjdCBhbgotLy8g
dW5yZXNwb25zaXZlIHdlYiBwcm9jZXNzLgotLy8gVGhlc2UgdmFsdWVzIGFyZSBvbmx5IHVzZWQg
YnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIC0tdGltZW91dCBvcHRpb24gcGFzc2VkIHRvIFdlYktp
dFRlc3RSdW5uZXIuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRMb25nVGltZW91dCA9IDI1
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U2hvcnRUaW1lb3V0ID0gNTsKLXN0YXRpYyBj
b25zdCBkb3VibGUgZGVmYXVsdE5vVGltZW91dCA9IC0xOworI2lmIGRlZmluZWQgKF9faGFzX2Zl
YXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShhZGRyZXNzX3Nhbml0aXplcikKK2NvbnN0IGRvdWJs
ZSBUZXN0Q29udHJvbGxlcjo6c2hvcnRUaW1lb3V0ID0gMTAuMDsKKyNlbHNlCitjb25zdCBkb3Vi
bGUgVGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCA9IDUuMDsKKyNlbHNlCitjb25zdCBkb3Vi
bGUgVGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCA9IDUuMDsKKyNlbmRpZgogCiBzdGF0aWMg
V0tVUkxSZWYgYmxhbmtVUkwoKQogewpAQCAtMTA2LDkgKzEwNyw2IEBAIFRlc3RDb250cm9sbGVy
OjpUZXN0Q29udHJvbGxlcihpbnQgYXJnYywKICAgICAsIG1fc2hvdWxkRHVtcFBpeGVsc0ZvckFs
bFRlc3RzKGZhbHNlKQogICAgICwgbV9zdGF0ZShJbml0aWFsKQogICAgICwgbV9kb25lUmVzZXR0
aW5nKGZhbHNlKQotICAgICwgbV9sb25nVGltZW91dChkZWZhdWx0TG9uZ1RpbWVvdXQpCi0gICAg
LCBtX3Nob3J0VGltZW91dChkZWZhdWx0U2hvcnRUaW1lb3V0KQotICAgICwgbV9ub1RpbWVvdXQo
ZGVmYXVsdE5vVGltZW91dCkKICAgICAsIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIodHJ1
ZSkKICAgICAsIG1fZm9yY2VOb1RpbWVvdXQoZmFsc2UpCiAgICAgLCBtX2RpZFByaW50V2ViUHJv
Y2Vzc0NyYXNoZWRNZXNzYWdlKGZhbHNlKQpAQCAtMzM3LDcgKzMzNSw3IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUo
KTsKIAotICAgIE9wdGlvbnMgb3B0aW9ucyhkZWZhdWx0TG9uZ1RpbWVvdXQsIGRlZmF1bHRTaG9y
dFRpbWVvdXQpOworICAgIE9wdGlvbnMgb3B0aW9uczsKICAgICBPcHRpb25zSGFuZGxlciBvcHRp
b25zSGFuZGxlcihvcHRpb25zKTsKIAogICAgIGlmIChhcmdjIDwgMikgewpAQCAtMzQ3LDggKzM0
NSw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBpZiAo
IW9wdGlvbnNIYW5kbGVyLnBhcnNlKGFyZ2MsIGFyZ3YpKQogICAgICAgICBleGl0KDEpOwogCi0g
ICAgbV9sb25nVGltZW91dCA9IG9wdGlvbnMubG9uZ1RpbWVvdXQ7Ci0gICAgbV9zaG9ydFRpbWVv
dXQgPSBvcHRpb25zLnNob3J0VGltZW91dDsKICAgICBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1Rp
bWVyID0gb3B0aW9ucy51c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAgICBtX2ZvcmNlTm9U
aW1lb3V0ID0gb3B0aW9ucy5mb3JjZU5vVGltZW91dDsKICAgICBtX3ZlcmJvc2UgPSBvcHRpb25z
LnZlcmJvc2U7CkBAIC03NDAsNyArNzM2LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRT
dGF0ZVRvQ29uc2lzdAogICAgIG1fZG9uZVJlc2V0dGluZyA9IGZhbHNlOwogCiAgICAgV0tQYWdl
TG9hZFVSTChtX21haW5XZWJWaWV3LT5wYWdlKCksIGJsYW5rVVJMKCkpOwotICAgIHJ1blVudGls
KG1fZG9uZVJlc2V0dGluZywgU2hvcnRUaW1lb3V0KTsKKyAgICBydW5VbnRpbChtX2RvbmVSZXNl
dHRpbmcsIHNob3J0VGltZW91dCk7CiAgICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0KIApA
QCAtNzU0LDcgKzc1MCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlYXR0YWNoUGFnZVRvV2Vi
UHIKICAgICAvLyBMb2FkaW5nIGEgd2ViIHBhZ2UgaXMgdGhlIG9ubHkgd2F5IHRvIHJlYXR0YWNo
IGFuIGV4aXN0aW5nIHBhZ2UgdG8gYSBwcm9jZXNzLgogICAgIG1fZG9uZVJlc2V0dGluZyA9IGZh
bHNlOwogICAgIFdLUGFnZUxvYWRVUkwobV9tYWluV2ViVmlldy0+cGFnZSgpLCBibGFua1VSTCgp
KTsKLSAgICBydW5VbnRpbChtX2RvbmVSZXNldHRpbmcsIExvbmdUaW1lb3V0KTsKKyAgICBydW5V
bnRpbChtX2RvbmVSZXNldHRpbmcsIHNob3J0VGltZW91dCk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnVwZGF0ZVdlYlZpZXdTaXplRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVz
dCkKQEAgLTk2MiwyMyArOTU4LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bigpCiAgICAg
fQogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpydW5VbnRpbChib29sJiBkb25lLCBUaW1lb3V0
RHVyYXRpb24gdGltZW91dER1cmF0aW9uKQordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuVW50aWwo
Ym9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQpCiB7Ci0gICAgZG91YmxlIHRpbWVvdXQgPSBtX25v
VGltZW91dDsKLSAgICBpZiAoIW1fZm9yY2VOb1RpbWVvdXQpIHsKLSAgICAgICAgc3dpdGNoICh0
aW1lb3V0RHVyYXRpb24pIHsKLSAgICAgICAgY2FzZSBTaG9ydFRpbWVvdXQ6Ci0gICAgICAgICAg
ICB0aW1lb3V0ID0gbV9zaG9ydFRpbWVvdXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBMb25nVGltZW91dDoKLSAgICAgICAgICAgIHRpbWVvdXQgPSBtX2xvbmdUaW1lb3V0Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9UaW1lb3V0OgotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgdGltZW91dCA9IG1fbm9UaW1lb3V0OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKG1fZm9yY2VOb1RpbWVvdXQpCisgICAgICAg
IHRpbWVvdXQgPSBub1RpbWVvdXQ7CiAKICAgICBwbGF0Zm9ybVJ1blVudGlsKGRvbmUsIHRpbWVv
dXQpOwogfQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkocmV2
aXNpb24gMTc3ODU0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHczY1NWR1ZpZXdXaWR0aDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dzNjU1ZHVmlld0hlaWdodDsKIAorICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2hvcnRUaW1lb3V0
OworCisgICAgY29uc3RleHByIHN0YXRpYyBkb3VibGUgbm9UaW1lb3V0ID0gLTE7CisKICAgICBU
ZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKTsKICAgICB+VGVzdENv
bnRyb2xsZXIoKTsKIApAQCAtNjgsOSArNzIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRV
c2VSZW1vdGVMYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFVzZVJlbW90ZUxheWVy
VHJlZTsgfQogICAgIAogICAgIC8vIFJ1bnMgdGhlIHJ1biBsb29wIHVudGlsIGBkb25lYCBpcyB0
cnVlIG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuCi0gICAgZW51bSBUaW1lb3V0RHVyYXRpb24geyBT
aG9ydFRpbWVvdXQsIExvbmdUaW1lb3V0LCBOb1RpbWVvdXQgfTsKICAgICBib29sIHVzZVdhaXRU
b0R1bXBXYXRjaGRvZ1RpbWVyKCkgeyByZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1l
cjsgfQotICAgIHZvaWQgcnVuVW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1cmF0aW9uKTsKKyAg
ICB2b2lkIHJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1lb3V0U2Vjb25kcyk7CiAgICAg
dm9pZCBub3RpZnlEb25lKCk7CiAgICAgCiAgICAgdm9pZCBjb25maWd1cmVWaWV3Rm9yVGVzdChj
b25zdCBUZXN0SW52b2NhdGlvbiYpOwpAQCAtMjIzLDkgKzIyNiw2IEBAIHByaXZhdGU6CiAgICAg
U3RhdGUgbV9zdGF0ZTsKICAgICBib29sIG1fZG9uZVJlc2V0dGluZzsKIAotICAgIGRvdWJsZSBt
X2xvbmdUaW1lb3V0OwotICAgIGRvdWJsZSBtX3Nob3J0VGltZW91dDsKLSAgICBkb3VibGUgbV9u
b1RpbWVvdXQ7CiAgICAgYm9vbCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJv
b2wgbV9mb3JjZU5vVGltZW91dDsKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAg
dm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKIAogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdl
VG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuY29udGV4dCgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCkpOwogCi0gICAgVGVzdENv
bnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290SW5pdGlhbFJlc3BvbnNlLCBUZXN0Q29u
dHJvbGxlcjo6U2hvcnRUaW1lb3V0KTsKKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVu
VW50aWwobV9nb3RJbml0aWFsUmVzcG9uc2UsIFRlc3RDb250cm9sbGVyOjpzaG9ydFRpbWVvdXQp
OwogICAgIGlmICghbV9nb3RJbml0aWFsUmVzcG9uc2UpIHsKICAgICAgICAgbV9lcnJvck1lc3Nh
Z2UgPSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIGluaXRpYWwgcmVzcG9uc2UgZnJvbSB3ZWIgcHJv
Y2Vzc1xuIjsKICAgICAgICAgbV93ZWJQcm9jZXNzSXNVbnJlc3BvbnNpdmUgPSB0cnVlOwpAQCAt
MTcxLDEzICsxNzEsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogCiAgICAgV0tQ
YWdlTG9hZFVSTChUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cGFnZSgp
LCBtX3VybC5nZXQoKSk7CiAKLSAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVuVW50aWwo
bV9nb3RGaW5hbE1lc3NhZ2UsIFRlc3RDb250cm9sbGVyOjpOb1RpbWVvdXQpOwotCi0gICAgaWYg
KCFtX2dvdEZpbmFsTWVzc2FnZSkgewotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9ICJUaW1lZCBv
dXQgd2FpdGluZyBmb3IgZmluYWwgbWVzc2FnZSBmcm9tIHdlYiBwcm9jZXNzXG4iOwotICAgICAg
ICBtX3dlYlByb2Nlc3NJc1VucmVzcG9uc2l2ZSA9IHRydWU7Ci0gICAgICAgIGdvdG8gZW5kOwot
ICAgIH0KKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVuVW50aWwobV9nb3RGaW5hbE1l
c3NhZ2UsIFRlc3RDb250cm9sbGVyOjpub1RpbWVvdXQpOwogICAgIGlmIChtX2Vycm9yKQogICAg
ICAgICBnb3RvIGVuZDsKIApAQCAtMjU0LDcgKzI0OCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246
OmR1bXBSZXN1bHRzKCkKICAgICAgICAgaWYgKFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNo
b3RFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1fZ290UmVwYWludCA9IGZhbHNlOwogICAgICAg
ICAgICAgV0tQYWdlRm9yY2VSZXBhaW50KFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWluV2Vi
VmlldygpLT5wYWdlKCksIHRoaXMsIFRlc3RJbnZvY2F0aW9uOjpmb3JjZVJlcGFpbnREb25lQ2Fs
bGJhY2spOwotICAgICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1f
Z290UmVwYWludCwgVGVzdENvbnRyb2xsZXI6OlNob3J0VGltZW91dCk7CisgICAgICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVuVW50aWwobV9nb3RSZXBhaW50LCBUZXN0Q29udHJv
bGxlcjo6c2hvcnRUaW1lb3V0KTsKICAgICAgICAgICAgIGlmICghbV9nb3RSZXBhaW50KSB7CiAg
ICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHBy
ZS1waXhlbCBkdW1wIHJlcGFpbnRcbiI7CiAgICAgICAgICAgICAgICAgbV93ZWJQcm9jZXNzSXNV
bnJlc3BvbnNpdmUgPSB0cnVlOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVz
dENvbnRyb2xsZXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
ZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAkocmV2aXNpb24gMTc3ODU0KQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OSw3ICs2OSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QK
IAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRpb24s
IGRvdWJsZSB0aW1lb3V0KQogewotICAgIGlmICh0aW1lb3V0ID09IG1fbm9UaW1lb3V0KSB7Cisg
ICAgaWYgKHRpbWVvdXQgPD0gMCkgewogICAgICAgICAvLyBOZXZlciB0aW1lb3V0IGlmIHdlIGFy
ZSBkZWJ1Z2dpbmcgb3Igbm90IG1lYW50IHRvIHRpbWVvdXQuCiAgICAgICAgIHdoaWxlICghY29u
ZGl0aW9uKQogICAgICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAJKHJl
dmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9s
bGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtUnVuVW50aWwoYm9vbCYsIGRvdWJsZSB0aW1lb3V0KQogewotICAgIGlmICh0aW1lb3V0ICE9
IG1fbm9UaW1lb3V0KSB7CisgICAgaWYgKHRpbWVvdXQgPiAwKSB7CiAgICAgICAgIHRpbWVvdXRT
b3VyY2Uuc2NoZWR1bGVBZnRlckRlbGF5KCJbV1RSXSBUZXN0IHRpbWVvdXQgc291cmNlIiwgW10g
ewogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGQUlMOiBUZXN0Q29udHJvbGxlclJ1bkxv
b3AgdGltZWQgb3V0LlxuIik7CiAgICAgICAgICAgICBndGtfbWFpbl9xdWl0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243901</attachid>
            <date>2015-01-02 10:48:04 -0800</date>
            <delta_ts>2015-01-02 10:52:09 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveLongTimeout.txt</filename>
            <type>text/plain</type>
            <size>10658</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkocmV2aXNpb24gMTc3ODU0KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTAgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKLU9wdGlvbnM6Ok9wdGlvbnMoZG91Ymxl
IGRlZmF1bHRMb25nVGltZW91dCwgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQpCi0gICAgOiBs
b25nVGltZW91dChkZWZhdWx0TG9uZ1RpbWVvdXQpCi0gICAgLCBzaG9ydFRpbWVvdXQoZGVmYXVs
dFNob3J0VGltZW91dCkKLSAgICAsIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCitP
cHRpb25zOjpPcHRpb25zKCkKKyAgICA6IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUp
CiAgICAgLCBmb3JjZU5vVGltZW91dChmYWxzZSkKICAgICAsIHZlcmJvc2UoZmFsc2UpCiAgICAg
LCBnY0JldHdlZW5UZXN0cyhmYWxzZSkKQEAgLTQzLDE5ICs0MSw5IEBAIE9wdGlvbnM6Ok9wdGlv
bnMoZG91YmxlIGRlZmF1bHRMb25nVGltZW8KICAgICAsIGZvcmNlQ29tcGxleFRleHQoZmFsc2Up
CiAgICAgLCBzaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcoZmFsc2UpCiAgICAgLCBzaG91bGRV
c2VSZW1vdGVMYXllclRyZWUoZmFsc2UpCi0gICAgLCBkZWZhdWx0TG9uZ1RpbWVvdXQoZGVmYXVs
dExvbmdUaW1lb3V0KQotICAgICwgZGVmYXVsdFNob3J0VGltZW91dChkZWZhdWx0U2hvcnRUaW1l
b3V0KQogewogfQogCi1ib29sIGhhbmRsZU9wdGlvblRpbWVvdXQoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGFyZ3VtZW50KQotewotICAgIG9wdGlvbnMubG9uZ1Rp
bWVvdXQgPSBhdG9pKGFyZ3VtZW50KTsKLSAgICAvLyBTY2FsZSB1cCB0aGUgc2hvcnQgdGltZW91
dCB0byBtYXRjaC4KLSAgICBvcHRpb25zLnNob3J0VGltZW91dCA9IG9wdGlvbnMuZGVmYXVsdFNo
b3J0VGltZW91dCAqIG9wdGlvbnMubG9uZ1RpbWVvdXQgLyBvcHRpb25zLmRlZmF1bHRMb25nVGlt
ZW91dDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQo
T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogewogICAgIG9wdGlv
bnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBmYWxzZTsKQEAgLTEyMiw4ICsxMTAsNyBA
QCBib29sIGhhbmRsZU9wdGlvblVubWF0Y2hlZChPcHRpb25zJiBvcHRpCiBPcHRpb25zSGFuZGxl
cjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykKICAgICA6IG9wdGlvbnMobykKIHsKLSAgICBv
cHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tdGltZW91dCIsICJTZXRzIGxvbmcgdGltZW91dCB0
byA8cGFyYW0+IGFuZCBzY2FsZXMgc2hvcnQgdGltZW91dC4iLCBoYW5kbGVPcHRpb25UaW1lb3V0
LCB0cnVlKSk7Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLW5vLXRpbWVvdXQiLCAi
RGlzYWJsZXMgdGltZW91dC4iLCBoYW5kbGVPcHRpb25Ob1RpbWVvdXQpKTsKKyAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi0tbm8tdGltZW91dCIsICJEaXNhYmxlcyB3YWl0VW50aWxEb25l
IHRpbWVvdXQuIiwgaGFuZGxlT3B0aW9uTm9UaW1lb3V0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBl
bmQoT3B0aW9uKCItLW5vLXRpbWVvdXQtYXQtYWxsIiwgIkRpc2FibGVzIGFsbCB0aW1lb3V0cy4i
LCBoYW5kbGVPcHRpb25Ob1RpbWVvdXRBdEFsbCkpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9w
dGlvbigiLS12ZXJib3NlIiwgIlR1cm5zIG9uIG1lc3NhZ2VzLiIsIGhhbmRsZU9wdGlvblZlcmJv
c2UpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10ZXN0cyIs
ICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25HY0JldHdl
ZW5UZXN0cykpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgJKHJldmlzaW9uIDE3Nzg1
NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw5ICszNiw3IEBACiBuYW1lc3BhY2UgV1RSIHsKIAogc3RydWN0IE9wdGlvbnMgewotICAg
IE9wdGlvbnMoZG91YmxlLCBkb3VibGUpOwotICAgIGRvdWJsZSBsb25nVGltZW91dDsKLSAgICBk
b3VibGUgc2hvcnRUaW1lb3V0OworICAgIE9wdGlvbnMoKTsKICAgICBib29sIHVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgZm9yY2VOb1RpbWVvdXQ7CiAgICAgYm9vbCB2ZXJi
b3NlOwpAQCAtNDksOCArNDcsNiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRV
c2VBY2NlbGVyYXRlZERyYXdpbmc7CiAgICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXllclRyZWU7
CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBhdGhzOwotICAgIGRvdWJsZSBkZWZhdWx0
TG9uZ1RpbWVvdXQ7Ci0gICAgZG91YmxlIGRlZmF1bHRTaG9ydFRpbWVvdXQ7CiB9OwogCiBjbGFz
cyBPcHRpb24gewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMyArNzAsMTUgQEAgY29uc3QgdW5zaWdu
ZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaAogY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xs
ZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVy
Ojp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOwogCi0vLyBkZWZhdWx0TG9uZ1RpbWVvdXQgKyBkZWZh
dWx0U2hvcnRUaW1lb3V0IHNob3VsZCBiZSBsZXNzIHRoYW4gMzUsCi0vLyB0aGUgZGVmYXVsdCB0
aW1lb3V0IHZhbHVlIG9mIHRoZSB0ZXN0IGhhcm5lc3Mgc28gd2UgY2FuIGRldGVjdCBhbgotLy8g
dW5yZXNwb25zaXZlIHdlYiBwcm9jZXNzLgotLy8gVGhlc2UgdmFsdWVzIGFyZSBvbmx5IHVzZWQg
YnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIC0tdGltZW91dCBvcHRpb24gcGFzc2VkIHRvIFdlYktp
dFRlc3RSdW5uZXIuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRMb25nVGltZW91dCA9IDI1
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U2hvcnRUaW1lb3V0ID0gNTsKLXN0YXRpYyBj
b25zdCBkb3VibGUgZGVmYXVsdE5vVGltZW91dCA9IC0xOworI2lmIGRlZmluZWQoX19oYXNfZmVh
dHVyZSkKKyNpZiBfX2hhc19mZWF0dXJlKGFkZHJlc3Nfc2FuaXRpemVyKQorY29uc3QgZG91Ymxl
IFRlc3RDb250cm9sbGVyOjpzaG9ydFRpbWVvdXQgPSAxMC4wOworI2Vsc2UKK2NvbnN0IGRvdWJs
ZSBUZXN0Q29udHJvbGxlcjo6c2hvcnRUaW1lb3V0ID0gNS4wOworI2VuZGlmCisjZWxzZQorY29u
c3QgZG91YmxlIFRlc3RDb250cm9sbGVyOjpzaG9ydFRpbWVvdXQgPSA1LjA7CisjZW5kaWYKIAog
c3RhdGljIFdLVVJMUmVmIGJsYW5rVVJMKCkKIHsKQEAgLTEwNiw5ICsxMDgsNiBAQCBUZXN0Q29u
dHJvbGxlcjo6VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsCiAgICAgLCBtX3Nob3VsZER1bXBQaXhl
bHNGb3JBbGxUZXN0cyhmYWxzZSkKICAgICAsIG1fc3RhdGUoSW5pdGlhbCkKICAgICAsIG1fZG9u
ZVJlc2V0dGluZyhmYWxzZSkKLSAgICAsIG1fbG9uZ1RpbWVvdXQoZGVmYXVsdExvbmdUaW1lb3V0
KQotICAgICwgbV9zaG9ydFRpbWVvdXQoZGVmYXVsdFNob3J0VGltZW91dCkKLSAgICAsIG1fbm9U
aW1lb3V0KGRlZmF1bHROb1RpbWVvdXQpCiAgICAgLCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1Rp
bWVyKHRydWUpCiAgICAgLCBtX2ZvcmNlTm9UaW1lb3V0KGZhbHNlKQogICAgICwgbV9kaWRQcmlu
dFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZShmYWxzZSkKQEAgLTMzNyw3ICszMzYsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiB7CiAgICAgcGxhdGZvcm1Jbml0
aWFsaXplKCk7CiAKLSAgICBPcHRpb25zIG9wdGlvbnMoZGVmYXVsdExvbmdUaW1lb3V0LCBkZWZh
dWx0U2hvcnRUaW1lb3V0KTsKKyAgICBPcHRpb25zIG9wdGlvbnM7CiAgICAgT3B0aW9uc0hhbmRs
ZXIgb3B0aW9uc0hhbmRsZXIob3B0aW9ucyk7CiAKICAgICBpZiAoYXJnYyA8IDIpIHsKQEAgLTM0
Nyw4ICszNDYsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAg
ICAgaWYgKCFvcHRpb25zSGFuZGxlci5wYXJzZShhcmdjLCBhcmd2KSkKICAgICAgICAgZXhpdCgx
KTsKIAotICAgIG1fbG9uZ1RpbWVvdXQgPSBvcHRpb25zLmxvbmdUaW1lb3V0OwotICAgIG1fc2hv
cnRUaW1lb3V0ID0gb3B0aW9ucy5zaG9ydFRpbWVvdXQ7CiAgICAgbV91c2VXYWl0VG9EdW1wV2F0
Y2hkb2dUaW1lciA9IG9wdGlvbnMudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgbV9m
b3JjZU5vVGltZW91dCA9IG9wdGlvbnMuZm9yY2VOb1RpbWVvdXQ7CiAgICAgbV92ZXJib3NlID0g
b3B0aW9ucy52ZXJib3NlOwpAQCAtNzQwLDcgKzczNyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6
OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxzZTsKIAogICAg
IFdLUGFnZUxvYWRVUkwobV9tYWluV2ViVmlldy0+cGFnZSgpLCBibGFua1VSTCgpKTsKLSAgICBy
dW5VbnRpbChtX2RvbmVSZXNldHRpbmcsIFNob3J0VGltZW91dCk7CisgICAgcnVuVW50aWwobV9k
b25lUmVzZXR0aW5nLCBzaG9ydFRpbWVvdXQpOwogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7
CiB9CiAKQEAgLTc1NCw3ICs3NTEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZWF0dGFjaFBh
Z2VUb1dlYlByCiAgICAgLy8gTG9hZGluZyBhIHdlYiBwYWdlIGlzIHRoZSBvbmx5IHdheSB0byBy
ZWF0dGFjaCBhbiBleGlzdGluZyBwYWdlIHRvIGEgcHJvY2Vzcy4KICAgICBtX2RvbmVSZXNldHRp
bmcgPSBmYWxzZTsKICAgICBXS1BhZ2VMb2FkVVJMKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYmxh
bmtVUkwoKSk7Ci0gICAgcnVuVW50aWwobV9kb25lUmVzZXR0aW5nLCBMb25nVGltZW91dCk7Cisg
ICAgcnVuVW50aWwobV9kb25lUmVzZXR0aW5nLCBzaG9ydFRpbWVvdXQpOwogfQogCiB2b2lkIFRl
c3RDb250cm9sbGVyOjp1cGRhdGVXZWJWaWV3U2l6ZUZvclRlc3QoY29uc3QgVGVzdEludm9jYXRp
b24mIHRlc3QpCkBAIC05NjIsMjMgKzk1OSwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpydW4o
KQogICAgIH0KIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuVW50aWwoYm9vbCYgZG9uZSwg
VGltZW91dER1cmF0aW9uIHRpbWVvdXREdXJhdGlvbikKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1
blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1lb3V0KQogewotICAgIGRvdWJsZSB0aW1lb3V0
ID0gbV9ub1RpbWVvdXQ7Ci0gICAgaWYgKCFtX2ZvcmNlTm9UaW1lb3V0KSB7Ci0gICAgICAgIHN3
aXRjaCAodGltZW91dER1cmF0aW9uKSB7Ci0gICAgICAgIGNhc2UgU2hvcnRUaW1lb3V0OgotICAg
ICAgICAgICAgdGltZW91dCA9IG1fc2hvcnRUaW1lb3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTG9uZ1RpbWVvdXQ6Ci0gICAgICAgICAgICB0aW1lb3V0ID0gbV9sb25nVGlt
ZW91dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vVGltZW91dDoKLSAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHRpbWVvdXQgPSBtX25vVGltZW91dDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChtX2ZvcmNlTm9UaW1lb3V0KQor
ICAgICAgICB0aW1lb3V0ID0gbm9UaW1lb3V0OwogCiAgICAgcGxhdGZvcm1SdW5VbnRpbChkb25l
LCB0aW1lb3V0KTsKIH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdWaWV3V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHczY1NWR1ZpZXdIZWlnaHQ7CiAKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNob3J0
VGltZW91dDsKKworICAgIGNvbnN0ZXhwciBzdGF0aWMgZG91YmxlIG5vVGltZW91dCA9IC0xOwor
CiAgICAgVGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSk7CiAgICAg
flRlc3RDb250cm9sbGVyKCk7CiAKQEAgLTY4LDkgKzcyLDggQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkVXNlUmVtb3RlTGF5ZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRVc2VSZW1v
dGVMYXllclRyZWU7IH0KICAgICAKICAgICAvLyBSdW5zIHRoZSBydW4gbG9vcCB1bnRpbCBgZG9u
ZWAgaXMgdHJ1ZSBvciB0aGUgdGltZW91dCBlbGFwc2VzLgotICAgIGVudW0gVGltZW91dER1cmF0
aW9uIHsgU2hvcnRUaW1lb3V0LCBMb25nVGltZW91dCwgTm9UaW1lb3V0IH07CiAgICAgYm9vbCB1
c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpIHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNo
ZG9nVGltZXI7IH0KLSAgICB2b2lkIHJ1blVudGlsKGJvb2wmIGRvbmUsIFRpbWVvdXREdXJhdGlv
bik7CisgICAgdm9pZCBydW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGltZW91dFNlY29uZHMp
OwogICAgIHZvaWQgbm90aWZ5RG9uZSgpOwogICAgIAogICAgIHZvaWQgY29uZmlndXJlVmlld0Zv
clRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKQEAgLTIyMyw5ICsyMjYsNiBAQCBwcml2YXRl
OgogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgYm9vbCBtX2RvbmVSZXNldHRpbmc7CiAKLSAgICBk
b3VibGUgbV9sb25nVGltZW91dDsKLSAgICBkb3VibGUgbV9zaG9ydFRpbWVvdXQ7Ci0gICAgZG91
YmxlIG1fbm9UaW1lb3V0OwogICAgIGJvb2wgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsK
ICAgICBib29sIG1fZm9yY2VOb1RpbWVvdXQ7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAxNzc4NTQpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2
MCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBXS0NvbnRleHRQb3N0
TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmNvbnRleHQo
KSwgbWVzc2FnZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsKIAotICAg
IFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dvdEluaXRpYWxSZXNwb25zZSwg
VGVzdENvbnRyb2xsZXI6OlNob3J0VGltZW91dCk7CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJl
ZCgpLnJ1blVudGlsKG1fZ290SW5pdGlhbFJlc3BvbnNlLCBUZXN0Q29udHJvbGxlcjo6c2hvcnRU
aW1lb3V0KTsKICAgICBpZiAoIW1fZ290SW5pdGlhbFJlc3BvbnNlKSB7CiAgICAgICAgIG1fZXJy
b3JNZXNzYWdlID0gIlRpbWVkIG91dCB3YWl0aW5nIGZvciBpbml0aWFsIHJlc3BvbnNlIGZyb20g
d2ViIHByb2Nlc3NcbiI7CiAgICAgICAgIG1fd2ViUHJvY2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1
ZTsKQEAgLTE3MSwxMyArMTcxLDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKIAog
ICAgIFdLUGFnZUxvYWRVUkwoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCkt
PnBhZ2UoKSwgbV91cmwuZ2V0KCkpOwogCi0gICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1
blVudGlsKG1fZ290RmluYWxNZXNzYWdlLCBUZXN0Q29udHJvbGxlcjo6Tm9UaW1lb3V0KTsKLQot
ICAgIGlmICghbV9nb3RGaW5hbE1lc3NhZ2UpIHsKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSAi
VGltZWQgb3V0IHdhaXRpbmcgZm9yIGZpbmFsIG1lc3NhZ2UgZnJvbSB3ZWIgcHJvY2Vzc1xuIjsK
LSAgICAgICAgbV93ZWJQcm9jZXNzSXNVbnJlc3BvbnNpdmUgPSB0cnVlOwotICAgICAgICBnb3Rv
IGVuZDsKLSAgICB9CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290
RmluYWxNZXNzYWdlLCBUZXN0Q29udHJvbGxlcjo6bm9UaW1lb3V0KTsKICAgICBpZiAobV9lcnJv
cikKICAgICAgICAgZ290byBlbmQ7CiAKQEAgLTI1NCw3ICsyNDgsNyBAQCB2b2lkIFRlc3RJbnZv
Y2F0aW9uOjpkdW1wUmVzdWx0cygpCiAgICAgICAgIGlmIChQbGF0Zm9ybVdlYlZpZXc6OndpbmRv
d1NuYXBzaG90RW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX2dvdFJlcGFpbnQgPSBmYWxzZTsK
ICAgICAgICAgICAgIFdLUGFnZUZvcmNlUmVwYWludChUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCku
bWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0aGlzLCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50
RG9uZUNhbGxiYWNrKTsKLSAgICAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ydW5V
bnRpbChtX2dvdFJlcGFpbnQsIFRlc3RDb250cm9sbGVyOjpTaG9ydFRpbWVvdXQpOworICAgICAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290UmVwYWludCwgVGVz
dENvbnRyb2xsZXI6OnNob3J0VGltZW91dCk7CiAgICAgICAgICAgICBpZiAoIW1fZ290UmVwYWlu
dCkgewogICAgICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gIlRpbWVkIG91dCB3YWl0aW5n
IGZvciBwcmUtcGl4ZWwgZHVtcCByZXBhaW50XG4iOwogICAgICAgICAgICAgICAgIG1fd2ViUHJv
Y2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1ZTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
ZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHAJKHJldmlzaW9uIDE3Nzg1NCkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjksNyArNjksNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxS
dW5UZXN0CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29u
ZGl0aW9uLCBkb3VibGUgdGltZW91dCkKIHsKLSAgICBpZiAodGltZW91dCA9PSBtX25vVGltZW91
dCkgeworICAgIGlmICh0aW1lb3V0IDw9IDApIHsKICAgICAgICAgLy8gTmV2ZXIgdGltZW91dCBp
ZiB3ZSBhcmUgZGVidWdnaW5nIG9yIG5vdCBtZWFudCB0byB0aW1lb3V0LgogICAgICAgICB3aGls
ZSAoIWNvbmRpdGlvbikKICAgICAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7Cklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsu
Y3BwCShyZXZpc2lvbiAxNzc4NTQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0
Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdAogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmLCBkb3VibGUgdGltZW91dCkKIHsKLSAgICBpZiAodGlt
ZW91dCAhPSBtX25vVGltZW91dCkgeworICAgIGlmICh0aW1lb3V0ID4gMCkgewogICAgICAgICB0
aW1lb3V0U291cmNlLnNjaGVkdWxlQWZ0ZXJEZWxheSgiW1dUUl0gVGVzdCB0aW1lb3V0IHNvdXJj
ZSIsIFtdIHsKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTDogVGVzdENvbnRyb2xs
ZXJSdW5Mb29wIHRpbWVkIG91dC5cbiIpOwogICAgICAgICAgICAgZ3RrX21haW5fcXVpdCgpOwo=
</data>
<flag name="review"
          id="268828"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>