<?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>126161</bug_id>
          
          <creation_ts>2013-12-23 07:56:56 -0800</creation_ts>
          <short_desc>Convert ThreadCondition in WebKit2 over to std::condition_variable</short_desc>
          <delta_ts>2015-08-13 10:17:49 -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>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ltilve+ews</cc>
    
    <cc>philn</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962474</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-23 07:56:56 -0800</bug_when>
    <thetext>Convert ThreadCondition in WebKit2 over to std::condition_variable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962475</commentid>
    <comment_count>1</comment_count>
      <attachid>219915</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-23 08:02:14 -0800</bug_when>
    <thetext>Created attachment 219915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962476</commentid>
    <comment_count>2</comment_count>
      <attachid>219915</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-23 08:11:46 -0800</bug_when>
    <thetext>Comment on attachment 219915
Patch

Attachment 219915 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/45768344</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962485</commentid>
    <comment_count>3</comment_count>
      <attachid>219916</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-23 09:06:40 -0800</bug_when>
    <thetext>Created attachment 219916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962486</commentid>
    <comment_count>4</comment_count>
      <attachid>219916</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-23 09:12:08 -0800</bug_when>
    <thetext>Comment on attachment 219916
Patch

Attachment 219916 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/49998225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962511</commentid>
    <comment_count>5</comment_count>
      <attachid>219916</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:33:28 -0800</bug_when>
    <thetext>Comment on attachment 219916
Patch

Clearing flags on attachment: 219916

Committed r161002: &lt;http://trac.webkit.org/changeset/161002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962512</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:33:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117167</commentid>
    <comment_count>7</comment_count>
      <attachid>219916</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-12 21:37:28 -0700</bug_when>
    <thetext>Comment on attachment 219916
Patch

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

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:423
&gt; -        if (!m_waitForMessageCondition.timedWait(m_waitForMessageMutex, absoluteTime)) {
&gt; +        // FIXME: It would be better if Connection::waitForMessage took an std::chrono::milliseconds instead of a double.
&gt; +        std::chrono::milliseconds timeoutInMilliseconds(static_cast&lt;std::chrono::milliseconds::rep&gt;(timeout * 1000));
&gt; +        if (m_waitForMessageCondition.wait_for(lock, timeoutInMilliseconds) == std::cv_status::timeout) {

This looks like a regression: previously, if there was a spurious return from timedWait() that happened just before the timeout and caused us to loop around, the subsequent timedWait() would wake up after the remainder of the original timeout.

After the change, if timedWait() returns spuriously and we loop around, we will wait the full timeout.  I.e. spurious returns from wait can cause us to never time out.

Was this an intentional change in behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117262</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 10:17:49 -0700</bug_when>
    <thetext>&gt; 
&gt; This looks like a regression: previously, if there was a spurious return
&gt; from timedWait() that happened just before the timeout and caused us to loop
&gt; around, the subsequent timedWait() would wake up after the remainder of the
&gt; original timeout.
&gt; 
&gt; After the change, if timedWait() returns spuriously and we loop around, we
&gt; will wait the full timeout.  I.e. spurious returns from wait can cause us to
&gt; never time out.
&gt; 
&gt; Was this an intentional change in behavior?

No, good catch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219915</attachid>
            <date>2013-12-23 08:02:14 -0800</date>
            <delta_ts>2013-12-23 09:06:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126161-20131223080213.patch</filename>
            <type>text/plain</type>
            <size>10209</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWZmNTAzYmU0NGNhNzQ3
NTgwNjhkZDJiZTk1N2NhYjcwM2Q3ZWNkZC4uNjczNjYyZGE3MjA5Mjk4ZmNmMjk1Y2QyYzc5MjU0
N2JmYTUwYmYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTEyLTIzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBUaHJl
YWRDb25kaXRpb24gaW4gV2ViS2l0MiBvdmVyIHRvIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYxNjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjp3
YWl0Rm9yTWVzc2FnZSk6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5j
b21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBTaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oOgorICAgICAgICAoQmxvY2tp
bmdSZXNwb25zZU1hcDo6d2FpdEZvclJlc3BvbnNlKToKKyAgICAgICAgKEJsb2NraW5nUmVzcG9u
c2VNYXA6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChCbG9ja2luZ1Jlc3BvbnNlTWFw
OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
IChwYWdlRGlkRHJhd1RvUERGKToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcgX3ByZXBhcmVQ
REZEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZF0pOgorICAgICAgICAocHJlcGFyZURh
dGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcga25vd3NQYWdlUmFuZ2U6XSk6CisKIDIwMTMtMTItMjIgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVUlRCRiBhZnRlciByMTYwOTcxIHRvIHRyeSB0
byBtYWtlIEVGTCBidWlsZCBhZ2Fpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDFjYzgwNmNjZDYxMDdlNjM0ZjE4MTkxYWEzOGViZTBh
YTlhZjQ2NGYuLjFmZDZhNDQ1Y2NjNGE1ZmUwN2FiMGI0NTcwNjJjZjVjZDZkNzQxMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMzkz
LDEyICszOTMsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9u
Ojp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2EKICAgICAgICAgfQogICAgIH0K
IAotICAgIGRvdWJsZSBhYnNvbHV0ZVRpbWUgPSBjdXJyZW50VGltZSgpICsgdGltZW91dDsKLSAg
ICAKICAgICBzdGQ6OnBhaXI8c3RkOjpwYWlyPFN0cmluZ1JlZmVyZW5jZSwgU3RyaW5nUmVmZXJl
bmNlPiwgdWludDY0X3Q+IG1lc3NhZ2VBbmREZXN0aW5hdGlvbihzdGQ6Om1ha2VfcGFpcihzdGQ6
Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSksIGRlc3RpbmF0aW9u
SUQpKTsKICAgICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JN
ZXNzYWdlTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayht
X3dhaXRGb3JNZXNzYWdlTXV0ZXgpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaGF2
aW5nIG11bHRpcGxlIGNsaWVudHMgd2FpdCBmb3IgdGhlIHNhbWUgbWVzc2FnZS4KICAgICAgICAg
QVNTRVJUKCFtX3dhaXRGb3JNZXNzYWdlTWFwLmNvbnRhaW5zKG1lc3NhZ2VBbmREZXN0aW5hdGlv
bikpOwpAQCAtNDA5LDcgKzQwNyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhCiAgICAgCiAg
ICAgLy8gTm93IHdhaXQgZm9yIGl0IHRvIGJlIHNldC4KICAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV93YWl0Rm9yTWVzc2FnZU11dGV4KTsKKyAgICAgICAg
c3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fd2FpdEZvck1lc3NhZ2VNdXRleCk7
CiAKICAgICAgICAgYXV0byBpdCA9IG1fd2FpdEZvck1lc3NhZ2VNYXAuZmluZChtZXNzYWdlQW5k
RGVzdGluYXRpb24pOwogICAgICAgICBpZiAoaXQtPnZhbHVlKSB7CkBAIC00MjAsNyArNDE4LDkg
QEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVz
c2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2EKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5vdyB3
ZSB3YWl0LgotICAgICAgICBpZiAoIW1fd2FpdEZvck1lc3NhZ2VDb25kaXRpb24udGltZWRXYWl0
KG1fd2FpdEZvck1lc3NhZ2VNdXRleCwgYWJzb2x1dGVUaW1lKSkgeworICAgICAgICAvLyBGSVhN
RTogSXQgd291bGQgYmUgYmV0dGVyIGlmIENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlIHRvb2sg
YW4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnN0ZWFkIG9mIGEgZG91YmxlLgorICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyhzdGF0aWNf
Y2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXA+KHRpbWVvdXQgKiAxMDAwKSk7Cisg
ICAgICAgIGlmIChtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uLndhaXRfZm9yKGxvY2ssIHRpbWVv
dXRJbk1pbGxpc2Vjb25kcykgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQpIHsKICAgICAg
ICAgICAgIC8vIFdlIHRpbWVkIG91dCwgbm93IHJlbW92ZSB0aGUgcGVuZGluZyB3YWl0LgogICAg
ICAgICAgICAgbV93YWl0Rm9yTWVzc2FnZU1hcC5yZW1vdmUobWVzc2FnZUFuZERlc3RpbmF0aW9u
KTsKIApAQCAtNjQ1LDE0ICs2NDUsMTQgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gbWVzc2FnZSkKIAogICAg
IC8vIENoZWNrIGlmIHdlJ3JlIHdhaXRpbmcgZm9yIHRoaXMgbWVzc2FnZS4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JNZXNzYWdlTXV0ZXgpOworICAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX3dhaXRGb3JNZXNzYWdlTXV0ZXgpOwog
CiAgICAgICAgIGF1dG8gaXQgPSBtX3dhaXRGb3JNZXNzYWdlTWFwLmZpbmQoc3RkOjptYWtlX3Bh
aXIoc3RkOjptYWtlX3BhaXIobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtZXNzYWdl
LT5tZXNzYWdlTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRpb25JRCgpKSk7CiAgICAgICAgIGlm
IChpdCAhPSBtX3dhaXRGb3JNZXNzYWdlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBpdC0+dmFs
dWUgPSBzdGQ6Om1vdmUobWVzc2FnZSk7CiAgICAgICAgICAgICBBU1NFUlQoaXQtPnZhbHVlKTsK
ICAgICAgICAgCi0gICAgICAgICAgICBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uLnNpZ25hbCgp
OworICAgICAgICAgICAgbV93YWl0Rm9yTWVzc2FnZUNvbmRpdGlvbi5ub3RpZnlfb25lKCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IDVmYjAyMGI1MjRhYmViODc0MTQ3NjZi
NGJhM2U2N2Y1OGUxMTQwODYuLjEzYWI0OWQ0ZWNhNDM1MmY1NWY0NTg0NmQ0ZTQ2YWQ3YzJmNjZl
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBA
IC0zNCwxMSArMzQsMTEgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRl
ICJXb3JrUXVldWUuaCIKICNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8dGhyZWFkPgogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIE9TKERB
UldJTikKQEAgLTIzOCw4ICsyMzgsOCBAQCBwcml2YXRlOgogICAgIE11dGV4IG1fb3V0Z29pbmdN
ZXNzYWdlc0xvY2s7CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPj4g
bV9vdXRnb2luZ01lc3NhZ2VzOwogICAgIAotICAgIFRocmVhZENvbmRpdGlvbiBtX3dhaXRGb3JN
ZXNzYWdlQ29uZGl0aW9uOwotICAgIE11dGV4IG1fd2FpdEZvck1lc3NhZ2VNdXRleDsKKyAgICBz
dGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uOworICAgIHN0
ZDo6bXV0ZXggbV93YWl0Rm9yTWVzc2FnZU11dGV4OwogICAgIEhhc2hNYXA8c3RkOjpwYWlyPHN0
ZDo6cGFpcjxTdHJpbmdSZWZlcmVuY2UsIFN0cmluZ1JlZmVyZW5jZT4sIHVpbnQ2NF90Piwgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPj4gbV93YWl0Rm9yTWVzc2FnZU1hcDsKIAogICAg
IC8vIFJlcHJlc2VudHMgYSBzeW5jIHJlcXVlc3QgZm9yIHdoaWNoIHdlJ3JlIHdhaXRpbmcgb24g
YSByZXBseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9CbG9ja2luZ1Jlc3Bv
bnNlTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oCmlu
ZGV4IGM2ZGU4NjI1NmFiMWEwYjYxNmVlOWE2ODNlOWRjNTkwZjJlNmYzNGUuLjlkYzJiNDQ4MDM0
OWMwODAxOWM4MDA2ODIyMjdkZGVhYTcyMTllYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9CbG9ja2luZ1Jlc3BvbnNlTWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Jsb2NraW5nUmVzcG9uc2VNYXAuaApAQCAtMjYsOSArMjYsOCBAQAogI2lmbmRlZiBCbG9ja2lu
Z1Jlc3BvbnNlTWFwX2gKICNkZWZpbmUgQmxvY2tpbmdSZXNwb25zZU1hcF9oCiAKKyNpbmNsdWRl
IDx0aHJlYWQ+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KIGNsYXNzIEJsb2NraW5nUmVzcG9uc2VNYXAgewpAQCAtNDAsNyArMzksNyBAQCBw
dWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFQ+IHdhaXRGb3JSZXNwb25zZSh1aW50NjRfdCBy
ZXF1ZXN0SUQpCiAgICAgewogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxz
dGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogCiAgICAgICAgICAgICBpZiAobV9jYW5jZWxlZCkK
ICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxUPiByZXNwb25zZSA9IG1fcmVzcG9u
c2VzLnRha2UocmVxdWVzdElEKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAK
LSAgICAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9tdXRleCk7CisgICAgICAgICAgICBtX2Nv
bmRpdGlvbi53YWl0KGxvY2spOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC01NiwxMiArNTUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UodWludDY0X3QgcmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8VD4gcmVzcG9uc2UpCiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1fcmVz
cG9uc2VzLmNvbnRhaW5zKHJlcXVlc3RJRCkpOwogCiAgICAgICAgIG1fcmVzcG9uc2VzLnNldChy
ZXF1ZXN0SUQsIHN0ZDo6bW92ZShyZXNwb25zZSkpOworCiAgICAgICAgIC8vIEZJWE1FOiBXYWtp
bmcgdXAgYWxsIHRocmVhZHMgaXMgcXVpdGUgaW5lZmZpY2llbnQuCi0gICAgICAgIG1fY29uZGl0
aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAg
fQogCiAgICAgdm9pZCBjYW5jZWwoKQpAQCAtNjksMTIgKzY5LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgbV9jYW5jZWxlZCA9IHRydWU7CiAKICAgICAgICAgLy8gRklYTUU6IFdha2luZyB1cCBhbGwg
dGhyZWFkcyBpcyBxdWl0ZSBpbmVmZmljaWVudC4KLSAgICAgICAgbV9jb25kaXRpb24uYnJvYWRj
YXN0KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeV9hbGwoKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgTXV0ZXggbV9tdXRleDsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9jb25kaXRpb247
CisgICAgc3RkOjptdXRleCBtX211dGV4OworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1f
Y29uZGl0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFQ+PiBt
X3Jlc3BvbnNlczsKICAgICBib29sIG1fY2FuY2VsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcuaAppbmRleCBiNDVmNjM1YjMyOWY1M2M4
YmUwNzhmNjI4OTZkMDQxN2YxMTg1Y2ZlLi45YzEyMGZiMjYxODU3YjY2MzNhZDk0N2I0ZTE0ZDNm
M2NjMTk3YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ByaW50aW5nVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
UHJpbnRpbmdWaWV3LmgKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJDb3Jl
L0ludFJlY3RIYXNoLmg+CisjaW1wb3J0IDx0aHJlYWQ+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIEBjbGFzcyBXS1ByaW50aW5nVmlld0RhdGE7CkBAIC01Myw4ICs1NCw4IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogICAgIHVpbnQ2NF90IF9leHBlY3RlZFByaW50Q2FsbGJhY2s7CiAKICAg
ICBCT09MIF9pc1ByaW50aW5nRnJvbVNlY29uZGFyeVRocmVhZDsKLSAgICBNdXRleCBfcHJpbnRp
bmdDYWxsYmFja011dGV4OwotICAgIFRocmVhZENvbmRpdGlvbiBfcHJpbnRpbmdDYWxsYmFja0Nv
bmRpdGlvbjsKKyAgICBzdGQ6Om11dGV4IF9wcmludGluZ0NhbGxiYWNrTXV0ZXg7CisgICAgc3Rk
Ojpjb25kaXRpb25fdmFyaWFibGUgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb247CiAKICAgICBO
U1RpbWVyICpfYXV0b2Rpc3BsYXlSZXN1bWVUaW1lcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggNzJmOGE0NzU0ZjY3
ZjBmYzI3MDc1Y2EzYTY4OWRjODgzOTJhZDk4My4uYTMxZWNhM2YyYTA3NmY1NGRmZTA5OTQ5ZmNi
MWNiYTFjNzY2NmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgdm9pZCBwYWdl
RGlkRHJhd1RvUERGKFdLRGF0YVJlZiBkYXRhUmVmLCBXS0Vycm9yUmVmLCB2b2lkKiB1bnR5cGVk
Q29udGV4dAogICAgICAgICBpZiAoZGF0YSkKICAgICAgICAgICAgIHZpZXctPl9wcmludGVkUGFn
ZXNEYXRhLmFwcGVuZChkYXRhLT5ieXRlcygpLCBkYXRhLT5zaXplKCkpOwogICAgICAgICB2aWV3
LT5fZXhwZWN0ZWRQcmludENhbGxiYWNrID0gMDsKLSAgICAgICAgdmlldy0+X3ByaW50aW5nQ2Fs
bGJhY2tDb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIHZpZXctPl9wcmludGluZ0NhbGxiYWNr
Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKICAgICB9CiB9CiAKQEAgLTI2MCwxMSArMjYwLDExIEBA
IHN0YXRpYyB2b2lkIHBhZ2VEaWREcmF3VG9QREYoV0tEYXRhUmVmIGRhdGFSZWYsIFdLRXJyb3JS
ZWYsIHZvaWQqIHVudHlwZWRDb250ZXh0CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgIGlmICghX3dlYkZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgX3ByaW50aW5nQ2FsbGJh
Y2tDb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9u
Lm5vdGlmeV9vbmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE11dGV4TG9ja2Vy
IGxvY2soX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6
bXV0ZXg+IGxvY2soX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CiAKICAgICBBU1NFUlQoW3NlbGYg
X2hhc1BhZ2VSZWN0c10pOwogICAgIEFTU0VSVChfcHJpbnRlZFBhZ2VzRGF0YS5pc0VtcHR5KCkp
OwpAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVEYXRhRm9yUHJpbnRpbmdP
blNlY29uZGFyeVRocmVhZCh2b2lkKiB1bnR5cGVkQ29udGV4dCkKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCiAgICAgV0tQcmludGluZ1ZpZXcgKnZpZXcgPSBzdGF0aWNfY2FzdDxX
S1ByaW50aW5nVmlldyAqPih1bnR5cGVkQ29udGV4dCk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayh2
aWV3LT5fcHJpbnRpbmdDYWxsYmFja011dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpt
dXRleD4gbG9jayh2aWV3LT5fcHJpbnRpbmdDYWxsYmFja011dGV4KTsKIAogICAgIC8vIFdlIG1h
eSBoYXZlIHJlY2VpdmVkIHBhZ2UgcmVjdHMgd2hpbGUgYSBtZXNzYWdlIHRvIGNhbGwgdGhpcyBm
dW5jdGlvbiB0cmF2ZWxlZCBmcm9tIHNlY29uZGFyeSB0aHJlYWQgdG8gbWFpbiBvbmUuCiAgICAg
aWYgKFt2aWV3IF9oYXNQYWdlUmVjdHNdKSB7CkBAIC0zOTYsOSArMzk2LDkgQEAgc3RhdGljIHZv
aWQgcHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKHZvaWQqIHVudHlwZWRD
b250ZXh0KQogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVj
dHMuc2l6ZSgpKTsKICAgICBlbHNlIGlmICghUnVuTG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAg
QVNTRVJUKCFbc2VsZiBfaXNQcmludGluZ1ByZXZpZXddKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9jayhfcHJpbnRpbmdDYWxsYmFja011dGV4KTsKKyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxz
dGQ6Om11dGV4PiBsb2NrKF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOwogICAgICAgICBjYWxsT25N
YWluVGhyZWFkKHByZXBhcmVEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZCwgc2VsZik7
Ci0gICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQoX3ByaW50aW5nQ2FsbGJh
Y2tNdXRleCk7CisgICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQobG9jayk7
CiAgICAgICAgICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGluZ1BhZ2VSZWN0cy5zaXpl
KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChbc2VsZiBfaXNQcmludGluZ1ByZXZp
ZXddKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219916</attachid>
            <date>2013-12-23 09:06:40 -0800</date>
            <delta_ts>2013-12-23 10:33:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126161-20131223090637.patch</filename>
            <type>text/plain</type>
            <size>10206</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWZmNTAzYmU0NGNhNzQ3
NTgwNjhkZDJiZTk1N2NhYjcwM2Q3ZWNkZC4uNjczNjYyZGE3MjA5Mjk4ZmNmMjk1Y2QyYzc5MjU0
N2JmYTUwYmYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTEyLTIzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBUaHJl
YWRDb25kaXRpb24gaW4gV2ViS2l0MiBvdmVyIHRvIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYxNjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjp3
YWl0Rm9yTWVzc2FnZSk6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5j
b21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBTaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oOgorICAgICAgICAoQmxvY2tp
bmdSZXNwb25zZU1hcDo6d2FpdEZvclJlc3BvbnNlKToKKyAgICAgICAgKEJsb2NraW5nUmVzcG9u
c2VNYXA6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChCbG9ja2luZ1Jlc3BvbnNlTWFw
OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAg
IChwYWdlRGlkRHJhd1RvUERGKToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcgX3ByZXBhcmVQ
REZEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZF0pOgorICAgICAgICAocHJlcGFyZURh
dGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcga25vd3NQYWdlUmFuZ2U6XSk6CisKIDIwMTMtMTItMjIgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVUlRCRiBhZnRlciByMTYwOTcxIHRvIHRyeSB0
byBtYWtlIEVGTCBidWlsZCBhZ2Fpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDFjYzgwNmNjZDYxMDdlNjM0ZjE4MTkxYWEzOGViZTBh
YTlhZjQ2NGYuLjlhMDU3NWY1ZDdjNmY0MjZjZmE4OTJjNGEyMjBhNGExOTYwZTE3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMzkz
LDEyICszOTMsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9u
Ojp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2EKICAgICAgICAgfQogICAgIH0K
IAotICAgIGRvdWJsZSBhYnNvbHV0ZVRpbWUgPSBjdXJyZW50VGltZSgpICsgdGltZW91dDsKLSAg
ICAKICAgICBzdGQ6OnBhaXI8c3RkOjpwYWlyPFN0cmluZ1JlZmVyZW5jZSwgU3RyaW5nUmVmZXJl
bmNlPiwgdWludDY0X3Q+IG1lc3NhZ2VBbmREZXN0aW5hdGlvbihzdGQ6Om1ha2VfcGFpcihzdGQ6
Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSksIGRlc3RpbmF0aW9u
SUQpKTsKICAgICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JN
ZXNzYWdlTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayht
X3dhaXRGb3JNZXNzYWdlTXV0ZXgpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaGF2
aW5nIG11bHRpcGxlIGNsaWVudHMgd2FpdCBmb3IgdGhlIHNhbWUgbWVzc2FnZS4KICAgICAgICAg
QVNTRVJUKCFtX3dhaXRGb3JNZXNzYWdlTWFwLmNvbnRhaW5zKG1lc3NhZ2VBbmREZXN0aW5hdGlv
bikpOwpAQCAtNDA5LDcgKzQwNyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhCiAgICAgCiAg
ICAgLy8gTm93IHdhaXQgZm9yIGl0IHRvIGJlIHNldC4KICAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV93YWl0Rm9yTWVzc2FnZU11dGV4KTsKKyAgICAgICAg
c3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fd2FpdEZvck1lc3NhZ2VNdXRleCk7
CiAKICAgICAgICAgYXV0byBpdCA9IG1fd2FpdEZvck1lc3NhZ2VNYXAuZmluZChtZXNzYWdlQW5k
RGVzdGluYXRpb24pOwogICAgICAgICBpZiAoaXQtPnZhbHVlKSB7CkBAIC00MjAsNyArNDE4LDkg
QEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVz
c2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2EKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5vdyB3
ZSB3YWl0LgotICAgICAgICBpZiAoIW1fd2FpdEZvck1lc3NhZ2VDb25kaXRpb24udGltZWRXYWl0
KG1fd2FpdEZvck1lc3NhZ2VNdXRleCwgYWJzb2x1dGVUaW1lKSkgeworICAgICAgICAvLyBGSVhN
RTogSXQgd291bGQgYmUgYmV0dGVyIGlmIENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlIHRvb2sg
YW4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnN0ZWFkIG9mIGEgZG91YmxlLgorICAgICAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyhzdGF0aWNf
Y2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXA+KHRpbWVvdXQgKiAxMDAwKSk7Cisg
ICAgICAgIGlmIChtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uLndhaXRfZm9yKGxvY2ssIHRpbWVv
dXRJbk1pbGxpc2Vjb25kcykgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKICAgICAgICAg
ICAgIC8vIFdlIHRpbWVkIG91dCwgbm93IHJlbW92ZSB0aGUgcGVuZGluZyB3YWl0LgogICAgICAg
ICAgICAgbV93YWl0Rm9yTWVzc2FnZU1hcC5yZW1vdmUobWVzc2FnZUFuZERlc3RpbmF0aW9uKTsK
IApAQCAtNjQ1LDE0ICs2NDUsMTQgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gbWVzc2FnZSkKIAogICAgIC8v
IENoZWNrIGlmIHdlJ3JlIHdhaXRpbmcgZm9yIHRoaXMgbWVzc2FnZS4KICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JNZXNzYWdlTXV0ZXgpOworICAgICAgICBzdGQ6
OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX3dhaXRGb3JNZXNzYWdlTXV0ZXgpOwogCiAg
ICAgICAgIGF1dG8gaXQgPSBtX3dhaXRGb3JNZXNzYWdlTWFwLmZpbmQoc3RkOjptYWtlX3BhaXIo
c3RkOjptYWtlX3BhaXIobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtZXNzYWdlLT5t
ZXNzYWdlTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRpb25JRCgpKSk7CiAgICAgICAgIGlmIChp
dCAhPSBtX3dhaXRGb3JNZXNzYWdlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBpdC0+dmFsdWUg
PSBzdGQ6Om1vdmUobWVzc2FnZSk7CiAgICAgICAgICAgICBBU1NFUlQoaXQtPnZhbHVlKTsKICAg
ICAgICAgCi0gICAgICAgICAgICBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uLnNpZ25hbCgpOwor
ICAgICAgICAgICAgbV93YWl0Rm9yTWVzc2FnZUNvbmRpdGlvbi5ub3RpZnlfb25lKCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IDVmYjAyMGI1MjRhYmViODc0MTQ3NjZiNGJh
M2U2N2Y1OGUxMTQwODYuLjEzYWI0OWQ0ZWNhNDM1MmY1NWY0NTg0NmQ0ZTQ2YWQ3YzJmNjZlYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBAIC0z
NCwxMSArMzQsMTEgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJX
b3JrUXVldWUuaCIKICNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8dGhyZWFkPgogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIE9TKERBUldJ
TikKQEAgLTIzOCw4ICsyMzgsOCBAQCBwcml2YXRlOgogICAgIE11dGV4IG1fb3V0Z29pbmdNZXNz
YWdlc0xvY2s7CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPj4gbV9v
dXRnb2luZ01lc3NhZ2VzOwogICAgIAotICAgIFRocmVhZENvbmRpdGlvbiBtX3dhaXRGb3JNZXNz
YWdlQ29uZGl0aW9uOwotICAgIE11dGV4IG1fd2FpdEZvck1lc3NhZ2VNdXRleDsKKyAgICBzdGQ6
OmNvbmRpdGlvbl92YXJpYWJsZSBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uOworICAgIHN0ZDo6
bXV0ZXggbV93YWl0Rm9yTWVzc2FnZU11dGV4OwogICAgIEhhc2hNYXA8c3RkOjpwYWlyPHN0ZDo6
cGFpcjxTdHJpbmdSZWZlcmVuY2UsIFN0cmluZ1JlZmVyZW5jZT4sIHVpbnQ2NF90Piwgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPj4gbV93YWl0Rm9yTWVzc2FnZU1hcDsKIAogICAgIC8v
IFJlcHJlc2VudHMgYSBzeW5jIHJlcXVlc3QgZm9yIHdoaWNoIHdlJ3JlIHdhaXRpbmcgb24gYSBy
ZXBseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9CbG9ja2luZ1Jlc3BvbnNl
TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oCmluZGV4
IGM2ZGU4NjI1NmFiMWEwYjYxNmVlOWE2ODNlOWRjNTkwZjJlNmYzNGUuLjlkYzJiNDQ4MDM0OWMw
ODAxOWM4MDA2ODIyMjdkZGVhYTcyMTllYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9CbG9ja2luZ1Jlc3BvbnNlTWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Js
b2NraW5nUmVzcG9uc2VNYXAuaApAQCAtMjYsOSArMjYsOCBAQAogI2lmbmRlZiBCbG9ja2luZ1Jl
c3BvbnNlTWFwX2gKICNkZWZpbmUgQmxvY2tpbmdSZXNwb25zZU1hcF9oCiAKKyNpbmNsdWRlIDx0
aHJlYWQ+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIEJsb2NraW5nUmVzcG9uc2VNYXAgewpAQCAtNDAsNyArMzksNyBAQCBwdWJs
aWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFQ+IHdhaXRGb3JSZXNwb25zZSh1aW50NjRfdCByZXF1
ZXN0SUQpCiAgICAgewogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6
Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogCiAgICAgICAgICAgICBpZiAobV9jYW5jZWxlZCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxUPiByZXNwb25zZSA9IG1fcmVzcG9uc2Vz
LnRha2UocmVxdWVzdElEKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAKLSAg
ICAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9tdXRleCk7CisgICAgICAgICAgICBtX2NvbmRp
dGlvbi53YWl0KGxvY2spOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC01NiwxMiArNTUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
dWludDY0X3QgcmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8VD4gcmVzcG9uc2UpCiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1fcmVzcG9u
c2VzLmNvbnRhaW5zKHJlcXVlc3RJRCkpOwogCiAgICAgICAgIG1fcmVzcG9uc2VzLnNldChyZXF1
ZXN0SUQsIHN0ZDo6bW92ZShyZXNwb25zZSkpOworCiAgICAgICAgIC8vIEZJWE1FOiBXYWtpbmcg
dXAgYWxsIHRocmVhZHMgaXMgcXVpdGUgaW5lZmZpY2llbnQuCi0gICAgICAgIG1fY29uZGl0aW9u
LmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAgfQog
CiAgICAgdm9pZCBjYW5jZWwoKQpAQCAtNjksMTIgKzY5LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bV9jYW5jZWxlZCA9IHRydWU7CiAKICAgICAgICAgLy8gRklYTUU6IFdha2luZyB1cCBhbGwgdGhy
ZWFkcyBpcyBxdWl0ZSBpbmVmZmljaWVudC4KLSAgICAgICAgbV9jb25kaXRpb24uYnJvYWRjYXN0
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeV9hbGwoKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgTXV0ZXggbV9tdXRleDsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9jb25kaXRpb247Cisg
ICAgc3RkOjptdXRleCBtX211dGV4OworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1fY29u
ZGl0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFQ+PiBtX3Jl
c3BvbnNlczsKICAgICBib29sIG1fY2FuY2VsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcuaAppbmRleCBiNDVmNjM1YjMyOWY1M2M4YmUw
NzhmNjI4OTZkMDQxN2YxMTg1Y2ZlLi45YzEyMGZiMjYxODU3YjY2MzNhZDk0N2I0ZTE0ZDNmM2Nj
MTk3YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1By
aW50aW5nVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJp
bnRpbmdWaWV3LmgKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJDb3JlL0lu
dFJlY3RIYXNoLmg+CisjaW1wb3J0IDx0aHJlYWQ+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAKIEBjbGFzcyBXS1ByaW50aW5nVmlld0RhdGE7CkBAIC01Myw4ICs1NCw4IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgIHVpbnQ2NF90IF9leHBlY3RlZFByaW50Q2FsbGJhY2s7CiAKICAgICBC
T09MIF9pc1ByaW50aW5nRnJvbVNlY29uZGFyeVRocmVhZDsKLSAgICBNdXRleCBfcHJpbnRpbmdD
YWxsYmFja011dGV4OwotICAgIFRocmVhZENvbmRpdGlvbiBfcHJpbnRpbmdDYWxsYmFja0NvbmRp
dGlvbjsKKyAgICBzdGQ6Om11dGV4IF9wcmludGluZ0NhbGxiYWNrTXV0ZXg7CisgICAgc3RkOjpj
b25kaXRpb25fdmFyaWFibGUgX3ByaW50aW5nQ2FsbGJhY2tDb25kaXRpb247CiAKICAgICBOU1Rp
bWVyICpfYXV0b2Rpc3BsYXlSZXN1bWVUaW1lcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggNzJmOGE0NzU0ZjY3ZjBm
YzI3MDc1Y2EzYTY4OWRjODgzOTJhZDk4My4uYTMxZWNhM2YyYTA3NmY1NGRmZTA5OTQ5ZmNiMWNi
YTFjNzY2NmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tQcmludGluZ1ZpZXcubW0KQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgdm9pZCBwYWdlRGlk
RHJhd1RvUERGKFdLRGF0YVJlZiBkYXRhUmVmLCBXS0Vycm9yUmVmLCB2b2lkKiB1bnR5cGVkQ29u
dGV4dAogICAgICAgICBpZiAoZGF0YSkKICAgICAgICAgICAgIHZpZXctPl9wcmludGVkUGFnZXNE
YXRhLmFwcGVuZChkYXRhLT5ieXRlcygpLCBkYXRhLT5zaXplKCkpOwogICAgICAgICB2aWV3LT5f
ZXhwZWN0ZWRQcmludENhbGxiYWNrID0gMDsKLSAgICAgICAgdmlldy0+X3ByaW50aW5nQ2FsbGJh
Y2tDb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIHZpZXctPl9wcmludGluZ0NhbGxiYWNrQ29u
ZGl0aW9uLm5vdGlmeV9vbmUoKTsKICAgICB9CiB9CiAKQEAgLTI2MCwxMSArMjYwLDExIEBAIHN0
YXRpYyB2b2lkIHBhZ2VEaWREcmF3VG9QREYoV0tEYXRhUmVmIGRhdGFSZWYsIFdLRXJyb3JSZWYs
IHZvaWQqIHVudHlwZWRDb250ZXh0CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIGlmICghX3dlYkZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgX3ByaW50aW5nQ2FsbGJhY2tD
b25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLm5v
dGlmeV9vbmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE11dGV4TG9ja2VyIGxv
Y2soX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0
ZXg+IGxvY2soX3ByaW50aW5nQ2FsbGJhY2tNdXRleCk7CiAKICAgICBBU1NFUlQoW3NlbGYgX2hh
c1BhZ2VSZWN0c10pOwogICAgIEFTU0VSVChfcHJpbnRlZFBhZ2VzRGF0YS5pc0VtcHR5KCkpOwpA
QCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVEYXRhRm9yUHJpbnRpbmdPblNl
Y29uZGFyeVRocmVhZCh2b2lkKiB1bnR5cGVkQ29udGV4dCkKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCiAgICAgV0tQcmludGluZ1ZpZXcgKnZpZXcgPSBzdGF0aWNfY2FzdDxXS1By
aW50aW5nVmlldyAqPih1bnR5cGVkQ29udGV4dCk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayh2aWV3
LT5fcHJpbnRpbmdDYWxsYmFja011dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRl
eD4gbG9jayh2aWV3LT5fcHJpbnRpbmdDYWxsYmFja011dGV4KTsKIAogICAgIC8vIFdlIG1heSBo
YXZlIHJlY2VpdmVkIHBhZ2UgcmVjdHMgd2hpbGUgYSBtZXNzYWdlIHRvIGNhbGwgdGhpcyBmdW5j
dGlvbiB0cmF2ZWxlZCBmcm9tIHNlY29uZGFyeSB0aHJlYWQgdG8gbWFpbiBvbmUuCiAgICAgaWYg
KFt2aWV3IF9oYXNQYWdlUmVjdHNdKSB7CkBAIC0zOTYsOSArMzk2LDkgQEAgc3RhdGljIHZvaWQg
cHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFkKHZvaWQqIHVudHlwZWRDb250
ZXh0KQogICAgICAgICAqcmFuZ2UgPSBOU01ha2VSYW5nZSgxLCBfcHJpbnRpbmdQYWdlUmVjdHMu
c2l6ZSgpKTsKICAgICBlbHNlIGlmICghUnVuTG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAgQVNT
RVJUKCFbc2VsZiBfaXNQcmludGluZ1ByZXZpZXddKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhfcHJpbnRpbmdDYWxsYmFja011dGV4KTsKKyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6
Om11dGV4PiBsb2NrKF9wcmludGluZ0NhbGxiYWNrTXV0ZXgpOwogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKHByZXBhcmVEYXRhRm9yUHJpbnRpbmdPblNlY29uZGFyeVRocmVhZCwgc2VsZik7Ci0g
ICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQoX3ByaW50aW5nQ2FsbGJhY2tN
dXRleCk7CisgICAgICAgIF9wcmludGluZ0NhbGxiYWNrQ29uZGl0aW9uLndhaXQobG9jayk7CiAg
ICAgICAgICpyYW5nZSA9IE5TTWFrZVJhbmdlKDEsIF9wcmludGluZ1BhZ2VSZWN0cy5zaXplKCkp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChbc2VsZiBfaXNQcmludGluZ1ByZXZpZXdd
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>