<?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>37859</bug_id>
          
          <creation_ts>2010-04-20 07:57:34 -0700</creation_ts>
          <short_desc>DumpRenderTree should save a stack trace and/or dump file when it crashes</short_desc>
          <delta_ts>2010-08-17 13:51:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sfalken</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214662</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-20 07:57:34 -0700</bug_when>
    <thetext>DumpRenderTree should save a stack trace and/or dump file when it crashes. This would make tracking down crashes on the bots muuuuuuuuch easier!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214663</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-20 07:58:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/7883560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215534</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-21 15:16:05 -0700</bug_when>
    <thetext>Chromium&apos;s test_shell does this via Google Breakpad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265530</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 07:43:29 -0700</bug_when>
    <thetext>I think we could do this by setting cdb or ntsd as the postmortem debugger in run-webkit-tests. This command:

ntsd.exe -iaec &quot;-lines -c \&quot;!analyze -vv;~kpn&quot;

causes ntsd to set itself as the postmortem debugger, and, when invoked, prints an analysis of the crash and the stack traces of all threads. We just need to figure out how to get it piped to a file.

If Debugging Tools for Windows is installed, we should use the version included in it, since it will likely be newer than the version in system32. Otherwise we can fall back to the system32 version.

We&apos;d want to install Debugging Tools for Windows on the test bots, and set up _NT_SYMBOL_PATH to point to the Safari and Microsoft symbol servers.

We&apos;d want to save/restore any existing postmortem debugger in run-webkit-tests before setting up ntsd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265554</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 08:07:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; ntsd.exe -iaec &quot;-lines -c \&quot;!analyze -vv;~kpn&quot;

Whoops, that should have been ~*kpn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265561</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 08:30:10 -0700</bug_when>
    <thetext>OK, I figured out how to save to a log file. Here&apos;s a better command:

ntsd.exe -iaec &quot;-lines -c \&quot;.logopen /t c:\cygwin\tmp\layout-test-results\DumpRenderTree.txt;!analyze -vv;~*kpn;.kill;q\&quot;&quot;

That will save crash logs to the layout-test-results directory with names like DumpRenderTree_033c_2010-08-17_11-20-29-577.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265697</commentid>
    <comment_count>6</comment_count>
      <attachid>64618</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 12:32:24 -0700</bug_when>
    <thetext>Created attachment 64618
Teach run-webkit-tests, DumpRenderTree, and WebKitTestRunner how to save crash logs on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265728</commentid>
    <comment_count>7</comment_count>
      <attachid>64618</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-17 13:22:50 -0700</bug_when>
    <thetext>Comment on attachment 64618
Teach run-webkit-tests, DumpRenderTree, and WebKitTestRunner how to save crash logs on Windows

&gt; diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; index b2aa836dc4ca126c4e3287d52161fc7423c744a6..24019390b32dfca7f3a532690f3fee164e4c144a 100644
&gt; --- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; +++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; @@ -111,6 +111,7 @@ void InjectedBundle::didReceiveMessage(WKStringRef messageName, WKTypeRef messag
&gt;          WKRetainPtr&lt;WKStringRef&gt; ackMessageBody(AdoptWK, WKStringCreateWithCFString(CFSTR(&quot;BeginTest&quot;)));
&gt;          WKBundlePostMessage(m_bundle, ackMessageName.get(), ackMessageBody.get());
&gt;  
&gt; +        CRASH();

This seems like a bad idea.

Otherwise, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265730</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 13:31:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 64618 [details])
&gt; &gt; diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; &gt; index b2aa836dc4ca126c4e3287d52161fc7423c744a6..24019390b32dfca7f3a532690f3fee164e4c144a 100644
&gt; &gt; --- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; &gt; +++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
&gt; &gt; @@ -111,6 +111,7 @@ void InjectedBundle::didReceiveMessage(WKStringRef messageName, WKTypeRef messag
&gt; &gt;          WKRetainPtr&lt;WKStringRef&gt; ackMessageBody(AdoptWK, WKStringCreateWithCFString(CFSTR(&quot;BeginTest&quot;)));
&gt; &gt;          WKBundlePostMessage(m_bundle, ackMessageName.get(), ackMessageBody.get());
&gt; &gt;  
&gt; &gt; +        CRASH();
&gt; 
&gt; This seems like a bad idea.

Whoopsie!

&gt; Otherwise, r=me.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265742</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-17 13:51:31 -0700</bug_when>
    <thetext>Committed r65537: &lt;http://trac.webkit.org/changeset/65537&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64618</attachid>
            <date>2010-08-17 12:32:24 -0700</date>
            <delta_ts>2010-08-17 13:22:50 -0700</delta_ts>
            <desc>Teach run-webkit-tests, DumpRenderTree, and WebKitTestRunner how to save crash logs on Windows</desc>
            <filename>bug-37859-20100817153231.patch</filename>
            <type>text/plain</type>
            <size>8833</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NmJkYTYzNjQ2ZDk3NjI4MTljMjFlYjViN2Q2MWRiNGViYjg5NDFkLi5jYjhlNDQ4
NzQzMGExZjUyZTY4NGVkZGQ0ZWMzYTVlOGY1Nzk2MjJjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAK
KzIwMTAtMDgtMTcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIFRl
YWNoIHJ1bi13ZWJraXQtdGVzdHMsIER1bXBSZW5kZXJUcmVlLCBhbmQgV2ViS2l0VGVzdFJ1bm5l
ciBob3cgdG8KKyAgICAgICAgc2F2ZSBjcmFzaCBsb2dzIG9uIFdpbmRvd3MKKworICAgICAgICBU
aGUgY3Jhc2ggbG9ncyBhcmUgc2F2ZWQgdG8gL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzIGFuZCBo
YXZlIG5hbWVzCisgICAgICAgIGxpa2UgQ3Jhc2hMb2dfMDJiY18yMDEwLTA4LTE3XzE0LTM2LTIw
LTEwOC50eHQuCisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgY3Jhc2hlcyBpbiB0aGUgV2ViS2l0
MiB3ZWIgcHJvY2VzcyBhcmUgcmVjb3JkZWQgYXMKKyAgICAgICAgdGltZS1vdXRzIGJ5IHJ1bi13
ZWJraXQtdGVzdHMuIEZpeGluZyB0aGlzIGlzIGNvdmVyZWQgYnkKKyAgICAgICAgPGh0dHA6Ly93
ZWJraXQub3JnL2IvNDQxMjE+LgorCisgICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0Lm9yZy9i
LzM3ODU5PiA8cmRhcjovL3Byb2JsZW0vNzg4MzU2MD4KKyAgICAgICAgRHVtcFJlbmRlclRyZWUg
c2hvdWxkIHNhdmUgYSBzdGFjayB0cmFjZSBhbmQvb3IgZHVtcCBmaWxlIHdoZW4gaXQKKyAgICAg
ICAgY3Jhc2hlcworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGV4
Y2VwdGlvbkZpbHRlcik6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6OmV4Y2VwdGlvbkZp
bHRlcik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICBUaGVzZSBjaGFuZ2VzIHNldCB1cCBhbiBleGNlcHRpb24gZmlsdGVyIHRoYXQg
cHJpbnRzICNDUkFTSEVEIHRvCisgICAgICAgIHN0ZGVyciwgdGhlbiBsZXRzIHRoZSBleGNlcHRp
b24gcHJvcGFnYXRlIG5vcm1hbGx5LiBUaGlzIGFsbG93cworICAgICAgICBydW4td2Via2l0LXRl
c3RzIHRvIGRldGVjdCB3aGVuIHdlJ3ZlIGNyYXNoZWQgZXZlbiB3aGVuIGEgcG9zdC1tb3J0ZW0K
KyAgICAgICAgZGVidWdnZXIgYXR0YWNoZXMgdG8gdGhlIHByb2Nlc3MuCisKKyAgICAgICAgKiBT
Y3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAodG9wIGxldmVsKTogRGVjbGFy
ZWQgc29tZSB2YXJpYWJsZXMgdXNlZCBieSB0aGUgY3Jhc2gtbG9nLXNhdmluZworICAgICAgICBj
b2RlLgorICAgICAgICAob3BlbkR1bXBUb29sKTogQ29weSBfTlRfU1lNQk9MX1BBVEggaW50byB0
aGUgY2xlYW4gZW52aXJvbm1lbnQgc28KKyAgICAgICAgdGhhdCB0aGUgcG9zdC1tb3J0ZW0gZGVi
dWdnZXIgaGFzIGFjY2VzcyB0byBpdC4KKyAgICAgICAgKHRvQ3lnd2luUGF0aCk6IEFkZGVkLiBU
aGlzIGlzIHRoZSBvcHBvc2l0ZSBvZiB0b1dpbmRvd3NQYXRoLgorICAgICAgICAocmVhZEZyb21E
dW1wVG9vbFdpdGhUaW1lcik6IElmIHRoZSBkdW1wIHRvb2wgcHJpbnRzICNDUkFTSEVEIHRvCisg
ICAgICAgIHN0ZGVyciwgY29uc2lkZXIgaXQgYSBjcmFzaC4KKyAgICAgICAgKHNldFVwV2luZG93
c0NyYXNoTG9nU2F2aW5nKTogQWRkZWQuIFNhdmVzIHRoZSBjdXJyZW50IHBvc3QtbW9ydGVtCisg
ICAgICAgIGRlYnVnZ2VyLCB0aGVuIHNldHMgbnRzZCBhcyB0aGUgcG9zdC1tb3J0ZW0gZGVidWdn
ZXIuIG50c2QgaXMKKyAgICAgICAgY29uZmlndXJlZCB0byBzYXZlIGEgY3Jhc2ggbG9nIGFuZCB0
aGVuIHF1aXQgYXV0b21hdGljYWxseS4KKyAgICAgICAgKEVORCk6IEFkZGVkLiBSZXN0b3JlcyB0
aGUgcHJldmlvdXMgcG9zdC1tb3J0ZW0gZGVidWdnZXIgd2hlbiB0aGUKKyAgICAgICAgc2NyaXB0
IGV4aXRzLgorCiAyMDEwLTA4LTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggYTFiNzJlMWUyMmQ5ODVhNTdlMjVj
ZjQ5YTJiZTYwMTQ2NTBlZDc5ZC4uNjdlNWQ0YmI4YzBjZTZhYzMxYTgwYTRhYTA1M2E0NGExN2Yz
ZDZmYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC0xMjMyLDggKzEyMzIsMTcgQEAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+
IHNoYXJlZENGVVJMQ2FjaGUoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBMT05HIFdJTkFQSSBleGNl
cHRpb25GaWx0ZXIoRVhDRVBUSU9OX1BPSU5URVJTKikKK3sKKyAgICBmcHV0cygiI0NSQVNIRURc
biIsIHN0ZGVycik7CisgICAgZmZsdXNoKHN0ZGVycik7CisgICAgcmV0dXJuIEVYQ0VQVElPTl9D
T05USU5VRV9TRUFSQ0g7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7
CisgICAgOjpTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIoZXhjZXB0aW9uRmlsdGVyKTsKKwog
ICAgIGxlYWtDaGVja2luZyA9IGZhbHNlOwogCiAgICAgX3NldG1vZGUoMSwgX09fQklOQVJZKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCmluZGV4IDU2YmNmYjRlYWE1
NTUzOGRmM2ZlOWNkODY0MzBjOTIwNjI2Zjk2NGEuLjBmMmVkZjVmMzhhY2U2ODVkNzE5OGQwOTE5
ZjhkMmU3NWE3YjdkMTMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvb2xkLXJ1bi13
ZWJraXQtdGVzdHMKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0
cwpAQCAtMTA1LDEyICsxMDUsMTQgQEAgc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCk7CiBzdWIgcmVj
b3JkQWN0dWFsUmVzdWx0c0FuZERpZmYoJCQpOwogc3ViIHNhbXBsZUR1bXBUb29sKCk7CiBzdWIg
c2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCokKTsKK3N1YiBzZXRVcFdpbmRvd3NDcmFzaExvZ1Nh
dmluZygpOwogc3ViIHNsb3dlc3RjbXAoJCQpOwogc3ViIHNwbGl0cGF0aCgkKTsKIHN1YiBzdG9w
UnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpOwogc3ViIHN0cmlwRXh0ZW5zaW9uKCQpOwogc3Vi
IHN0cmlwTWV0cmljcygkJCk7CiBzdWIgdGVzdENyYXNoZWRPclRpbWVkT3V0KCQkJCQkKTsKK3N1
YiB0b0N5Z3dpblBhdGgoJCk7CiBzdWIgdG9VUkwoJCk7CiBzdWIgdG9XaW5kb3dzUGF0aCgkKTsK
IHN1YiB2YWxpZGF0ZVNraXBwZWRBcmcoJCQ7JCk7CkBAIC0xODQsNiArMTg2LDEyIEBAIG15ICRw
cmV0dHlEaWZmVGFnID0gInByZXR0eS1kaWZmIjsKIG15ICRkaWZmc1RhZyA9ICJkaWZmcyI7CiBt
eSAkZXJyb3JUYWcgPSAic3RkZXJyIjsKIAorIyBUaGVzZSBhcmUgZGVmaW5lZCBoZXJlIGluc3Rl
YWQgb2YgY2xvc2VyIHRvIHdoZXJlIHRoZXkgYXJlIHVzZWQgc28gdGhhdCB0aGV5CisjIHdpbGwg
YWx3YXlzIGJlIGFjY2Vzc2libGUgZnJvbSB0aGUgRU5EIGJsb2NrIHRoYXQgdXNlcyB0aGVtLCBl
dmVuIGlmIHRoZSB1c2VyCisjIHByZXNzZXMgQ3RybC1DIGJlZm9yZSBQZXJsIGhhcyBmaW5pc2hl
ZCBldmFsdWF0aW5nIHRoaXMgd2hvbGUgZmlsZS4KK215ICR3aW5kb3dzUG9zdE1vcnRlbURlYnVn
Z2VyS2V5ID0gIi9IS0xNL1NPRlRXQVJFL01pY3Jvc29mdC9XaW5kb3dzIE5UL0N1cnJlbnRWZXJz
aW9uL0FlRGVidWciOworbXkgJXByZXZpb3VzV2luZG93c1Bvc3RNb3J0ZW1EZWJ1Z2dlclZhbHVl
czsKKwogbXkgJHJlYWxQbGF0Zm9ybTsKIAogbXkgQG1hY1BsYXRmb3JtcyA9ICgibWFjLXRpZ2Vy
IiwgIm1hYy1sZW9wYXJkIiwgIm1hYy1zbm93bGVvcGFyZCIsICJtYWMiKTsKQEAgLTM4Miw2ICsz
OTAsOCBAQCAkdGVzdE1lZGlhID0gMCBpZiAkc2hvdWxkQ2hlY2tMZWFrcyAmJiBpc1RpZ2VyKCk7
CiAjIEdlbmVyYXRpbmcgcmVtb3RlIGxpbmtzIGNhdXNlcyBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBz
cGV3IG9uIEdUSyBidWlsZCBib3QKICR1c2VSZW1vdGVMaW5rc1RvVGVzdHMgPSAwIGlmIGlzR3Rr
KCk7CiAKK3NldFVwV2luZG93c0NyYXNoTG9nU2F2aW5nKCkgaWYgaXNDeWd3aW4oKTsKKwogc2V0
Q29uZmlndXJhdGlvblByb2R1Y3REaXIoQ3dkOjphYnNfcGF0aCgkcm9vdCkpIGlmIChkZWZpbmVk
KCRyb290KSk7CiBteSAkcHJvZHVjdERpciA9IHByb2R1Y3REaXIoKTsKICRwcm9kdWN0RGlyIC49
ICIvYmluIiBpZiBpc1F0KCk7CkBAIC0xMzk5LDYgKzE0MDksNyBAQCBzdWIgb3BlbkR1bXBUb29s
KCkKICAgICB9IGVsc2lmIChpc0N5Z3dpbigpKSB7CiAgICAgICAgICRDTEVBTl9FTlZ7SE9NRURS
SVZFfSA9ICRFTlZ7J0hPTUVEUklWRSd9OwogICAgICAgICAkQ0xFQU5fRU5We0hPTUVQQVRIfSA9
ICRFTlZ7J0hPTUVQQVRIJ307CisgICAgICAgICRDTEVBTl9FTlZ7X05UX1NZTUJPTF9QQVRIfSA9
ICRFTlZ7X05UX1NZTUJPTF9QQVRIfTsKIAogICAgICAgICBzZXRQYXRoRm9yUnVubmluZ1dlYktp
dEFwcChcJUNMRUFOX0VOVik7CiAgICAgfQpAQCAtMTcyMSw2ICsxNzMyLDE0IEBAIHN1YiBjb252
ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkJCkKICAgICByZXR1cm4gJGNvbnZlcnRlZFBhdGg7CiB9CiAK
K3N1YiB0b0N5Z3dpblBhdGgoJCkKK3sKKyAgICBteSAoJHBhdGgpID0gQF87CisgICAgcmV0dXJu
IHVubGVzcyBpc0N5Z3dpbigpOworCisgICAgcmV0dXJuIGNvbnZlcnRQYXRoVXNpbmdDeWdwYXRo
KCRwYXRoLCAiLXUiKTsKK30KKwogc3ViIHRvV2luZG93c1BhdGgoJCkKIHsKICAgICBteSAoJHBh
dGgpID0gQF87CkBAIC0yMDcxLDYgKzIwOTAsMTAgQEAgc3ViIHJlYWRGcm9tRHVtcFRvb2xXaXRo
VGltZXIoKiopCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRlZmluZWQo
JGxpbmVFcnJvcikpIHsKKyAgICAgICAgICAgIGlmICgkbGluZUVycm9yID1+IC8jQ1JBU0hFRC8p
IHsKKyAgICAgICAgICAgICAgICAkc3RhdHVzID0gImNyYXNoZWQiOworICAgICAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoJGxpbmVFcnJvciA9fiAvI0VP
Ri8pIHsKICAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDE7CiAgICAgICAgICAg
ICB9IGVsc2UgewpAQCAtMjM0NywzICsyMzcwLDQ0IEBAIHN1YiBzdG9wUnVubmluZ1Rlc3RzRWFy
bHlJZk5lZWRlZCgpCiAKICAgICByZXR1cm4gMDsKIH0KKworc3ViIHNldFVwV2luZG93c0NyYXNo
TG9nU2F2aW5nKCkKK3sKKyAgICByZXR1cm4gdW5sZXNzIGlzQ3lnd2luKCk7CisKKyAgICB1bmxl
c3MgKGRlZmluZWQgJEVOVntfTlRfU1lNQk9MX1BBVEh9KSB7CisgICAgICAgIHByaW50ICJUaGUg
X05UX1NZTUJPTF9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQuIENyYXNoIGxv
Z3Mgd2lsbCBub3QgYmUgc2F2ZWQuXG5TZWUgIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG15ICRudHNkUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUodG9DeWd3aW5QYXRoKCRFTlZ7
UFJPR1JBTUZJTEVTfSksICJEZWJ1Z2dpbmcgVG9vbHMgZm9yIFdpbmRvd3MgKHg4NikiLCAibnRz
ZC5leGUiKTsKKyAgICB1bmxlc3MgKC1mICRudHNkUGF0aCkgeworICAgICAgICAkbnRzZFBhdGgg
PSBGaWxlOjpTcGVjLT5jYXRmaWxlKHRvQ3lnd2luUGF0aCgkRU5We1NZU1RFTVJPT1R9KSwgInN5
c3RlbTMyIiwgIm50c2QuZXhlIik7CisgICAgICAgIHVubGVzcyAoLWYgJG50c2RQYXRoKSB7Cisg
ICAgICAgICAgICBwcmludCBTVERFUlIgIkNhbid0IGZpbmQgbnRzZC5leGUuIENyYXNoIGxvZ3Mg
d2lsbCBub3QgYmUgc2F2ZWQuXG4iOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZm9yZWFjaCBteSAkdmFsdWUgcXcoRGVidWdnZXIgQXV0bykgeworICAgICAg
ICBjaG9tcCgkcHJldmlvdXNXaW5kb3dzUG9zdE1vcnRlbURlYnVnZ2VyVmFsdWVzeyR2YWx1ZX0g
PSBgcmVndG9vbCBnZXQgIiR3aW5kb3dzUG9zdE1vcnRlbURlYnVnZ2VyS2V5LyR2YWx1ZSJgKTsK
KyAgICB9CisKKyAgICBteSAkcmVzdWx0ID0gc3lzdGVtICRudHNkUGF0aCwgIi1pYWVjIiwgJy1s
aW5lcyAtYyAiLmxvZ29wZW4gL3QgXCInIC4gdG9XaW5kb3dzUGF0aCgkdGVzdFJlc3VsdHNEaXJl
Y3RvcnkpIC4gJ1xDcmFzaExvZy50eHRcIjshYW5hbHl6ZSAtdnY7fiprcG47cSInOworICAgIGlm
ICgkcmVzdWx0KSB7CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gc2V0IG5zdGQuZXhlIGFzIHRo
ZSBwb3N0LW1vcnRlbSBkZWJ1Z2dlci4gQ3Jhc2ggbG9ncyB3aWxsIG5vdCBiZSBzYXZlZC5cbiI7
CisgICAgICAgICVwcmV2aW91c1dpbmRvd3NQb3N0TW9ydGVtRGVidWdnZXJWYWx1ZXMgPSAoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHByaW50ICJDcmFzaCBsb2dzIHdpbGwgYmUg
c2F2ZWQgdG8gJHRlc3RSZXN1bHRzRGlyZWN0b3J5LlxuIjsKK30KKworRU5EIHsKKyAgICByZXR1
cm4gdW5sZXNzIGlzQ3lnd2luKCk7CisKKyAgICBmb3JlYWNoIG15ICR2YWx1ZSAoa2V5cyAlcHJl
dmlvdXNXaW5kb3dzUG9zdE1vcnRlbURlYnVnZ2VyVmFsdWVzKSB7CisgICAgICAgIG15ICRyZXN1
bHQgPSBzeXN0ZW0gInJlZ3Rvb2wiLCAic2V0IiwgIiR3aW5kb3dzUG9zdE1vcnRlbURlYnVnZ2Vy
S2V5LyR2YWx1ZSIsICRwcmV2aW91c1dpbmRvd3NQb3N0TW9ydGVtRGVidWdnZXJWYWx1ZXN7JHZh
bHVlfTsKKyAgICAgICAgISRyZXN1bHQgb3IgcHJpbnQgIkZhaWxlZCB0byByZXN0b3JlIFwiJHdp
bmRvd3NQb3N0TW9ydGVtRGVidWdnZXJLZXkvJHZhbHVlXCIgdG8gaXRzIHByZXZpb3VzIHZhbHVl
IFwiJHByZXZpb3VzV2luZG93c1Bvc3RNb3J0ZW1EZWJ1Z2dlclZhbHVlc3skdmFsdWV9XCJcbi4i
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYjJhYTgzNmRjNGNh
MTI2YzRlMzI4N2Q1MjE2MWZjNzQyM2M3NDRhNi4uMjQwMTkzOTBiMzJkZmNhN2YzYTUzMjY5MGYz
ZmVlMTY0ZTRjMTQ0YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTExMSw2ICsx
MTEsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZwogICAgICAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gYWNrTWVzc2FnZUJvZHkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJp
bmcoQ0ZTVFIoIkJlZ2luVGVzdCIpKSk7CiAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9i
dW5kbGUsIGFja01lc3NhZ2VOYW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQoKSk7CiAKKyAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgYmVnaW5UZXN0aW5nKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYTNjYzUzYThlYjQxMmFiNTU0OWI3YTkwZGUyM2I4YjJi
MTA3MzIwNC4uZTM1ZWUyMmEzNmY2MDU0MjVmNWY0NjJmNzk5ZDlmM2ZkOGNiMDY5NyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4u
Y3BwCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVy
V2luLmNwcApAQCAtODEsOCArODEsMTcgQEAgc3RhdGljIHZvaWQgYWRkUVREaXJUb1BBVEgoKQog
ICAgIDo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZVcocGF0aEVudmlyb25tZW50VmFyaWFibGUsIG5l
d1BhdGguZGF0YSgpKTsKIH0KIAorc3RhdGljIExPTkcgV0lOQVBJIGV4Y2VwdGlvbkZpbHRlcihF
WENFUFRJT05fUE9JTlRFUlMqKQoreworICAgIGZwdXRzKCIjQ1JBU0hFRFxuIiwgc3RkZXJyKTsK
KyAgICBmZmx1c2goc3RkZXJyKTsKKyAgICByZXR1cm4gRVhDRVBUSU9OX0NPTlRJTlVFX1NFQVJD
SDsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKKyAg
ICA6OlNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcihleGNlcHRpb25GaWx0ZXIpOworCiAgICAg
X3NldG1vZGUoMSwgX09fQklOQVJZKTsKICAgICBfc2V0bW9kZSgyLCBfT19CSU5BUlkpOwogCg==
</data>
<flag name="review"
          id="53218"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>