<?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>28904</bug_id>
          
          <creation_ts>2009-09-02 01:16:28 -0700</creation_ts>
          <short_desc>[V8] Another pass at releasing the storage mutex.</short_desc>
          <delta_ts>2009-09-02 08:54:28 -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>All</rep_platform>
          <op_sys>All</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>ager</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144145</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-09-02 01:16:28 -0700</bug_when>
    <thetext>Another pass at releasing the storage mutex (when applicable) when we finish executing JavaScript.  http://dev.w3.org/html5/spec/Overview.html#storage-mutex describes the required behavior.

As it turns out, https://bugs.webkit.org/show_bug.cgi?id=28789 didn&apos;t solve the problem correctly.  First of all, I missed that events and timeouts go through a different call path.  Second of all, I didn&apos;t consider recursion correctly.  Third of all, my check to see if LocalStorage is alive actually instantiates it if it isn&apos;t yet.  Fourth, I forgot DOM_STORAGE guards around it.  So I&apos;m reverting that change completely and doing it more cleanly.  Unfortunately, the solution isn&apos;t as portable (and thus I&apos;ve left out the JSC implementation for now).

       * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluate): revert
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::evaluate): revert
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::runScript): Add releaseStorageMutex call.  A small amount of clean up.
        (WebCore::V8Proxy::callFunction):  Add releaseStorageMutex call.  A small amount of clean up.
        (WebCore::V8Proxy::releaseStorageMutex):  Check to see if localStorage has been instantiated.  If so, tell it to unlock all storage areas.
        * bindings/v8/V8Proxy.h:
        * page/PageGroup.h:
        (WebCore::PageGroup::hasLocalStorage):  Make hasLocalStorage public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144148</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-09-02 01:27:15 -0700</bug_when>
    <thetext>Marking as V8 since this will need a V8 reviewer (even though it&apos;s not completely V8 specific...but the non-v8 parts are trivial).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144149</commentid>
    <comment_count>2</comment_count>
      <attachid>38914</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-09-02 01:38:41 -0700</bug_when>
    <thetext>Created attachment 38914
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144151</commentid>
    <comment_count>3</comment_count>
      <attachid>38914</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 01:55:14 -0700</bug_when>
    <thetext>Comment on attachment 38914
Patch v1

Can&apos;t we test this?  It seems so, in which case this really needs tests.  r- for lack of testing (or explanation why it&apos;s impossible).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144156</commentid>
    <comment_count>4</comment_count>
      <attachid>38916</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-09-02 02:08:44 -0700</bug_when>
    <thetext>Created attachment 38916
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144157</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-09-02 02:12:02 -0700</bug_when>
    <thetext>Made the fixes Eric asked for.  He told me he&apos;d feel more comfortable if dglazkov or abarth did the actual sign off, though.  (Note that Mads and Mbelshe looked at an earlier version of this change as well.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144200</commentid>
    <comment_count>6</comment_count>
      <attachid>38916</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-02 06:30:24 -0700</bug_when>
    <thetext>Comment on attachment 38916
Patch v1

This looks fine to me.  I&apos;m not the expert on this topic, but if Mads and Mike signed off too, then we&apos;re probably ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144203</commentid>
    <comment_count>7</comment_count>
      <attachid>38916</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 06:41:51 -0700</bug_when>
    <thetext>Comment on attachment 38916
Patch v1

Rejecting patch 38916 from commit-queue.  This patch will require manual commit.

[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;] failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144220</commentid>
    <comment_count>8</comment_count>
      <attachid>38916</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-02 08:54:20 -0700</bug_when>
    <thetext>Comment on attachment 38916
Patch v1

Clearing flags on attachment: 38916

Committed r47973: &lt;http://trac.webkit.org/changeset/47973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144221</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-02 08:54:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38914</attachid>
            <date>2009-09-02 01:38:41 -0700</date>
            <delta_ts>2009-09-02 02:08:04 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-28904-20090902173839.patch</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMDktMDktMDIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QW5vdGhlciBwYXNzIGF0IHJlbGVhc2luZyB0aGUgc3RvcmFnZSBtdXRleC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTA0CisKKyAgICAgICAgQW5v
dGhlciBwYXNzIGF0IHJlbGVhc2luZyB0aGUgc3RvcmFnZSBtdXRleCAod2hlbiBhcHBsaWNhYmxl
KSB3aGVuIHdlIGZpbmlzaAorICAgICAgICBleGVjdXRpbmcgSmF2YVNjcmlwdC4gIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCNzdG9yYWdlLW11dGV4CisgICAgICAg
IGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgYmVoYXZpb3IuCisKKyAgICAgICAgQXMgaXQgdHVybnMg
b3V0LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg3ODkgZGlkbid0
IHNvbHZlCisgICAgICAgIHRoZSBwcm9ibGVtIGNvcnJlY3RseS4gIEZpcnN0IG9mIGFsbCwgSSBt
aXNzZWQgdGhhdCBldmVudHMgYW5kIHRpbWVvdXRzIGdvCisgICAgICAgIHRocm91Z2ggYSBkaWZm
ZXJlbnQgY2FsbCBwYXRoLiAgU2Vjb25kIG9mIGFsbCwgSSBkaWRuJ3QgY29uc2lkZXIgcmVjdXJz
aW9uCisgICAgICAgIGNvcnJlY3RseS4gIFRoaXJkIG9mIGFsbCwgbXkgY2hlY2sgdG8gc2VlIGlm
IExvY2FsU3RvcmFnZSBpcyBhbGl2ZSBhY3R1YWxseQorICAgICAgICBpbnN0YW50aWF0ZXMgaXQg
aWYgaXQgaXNuJ3QgeWV0LiAgRm91cnRoLCBJIGZvcmdvdCBET01fU1RPUkFHRSBndWFyZHMgYXJv
dW5kCisgICAgICAgIGl0LiAgU28gSSdtIHJldmVydGluZyB0aGF0IGNoYW5nZSBjb21wbGV0ZWx5
IGFuZCBkb2luZyBpdCBtb3JlIGNsZWFubHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoZSBz
b2x1dGlvbiBpc24ndCBhcyBwb3J0YWJsZSAoYW5kIHRodXMgSSd2ZSBsZWZ0IG91dCB0aGUgSlND
CisgICAgICAgIGltcGxlbWVudGF0aW9uIGZvciBub3cpLgorCisgICAgICAgIE5PVEU6IFRoaXMg
Y2hhbmdlIG5vdyB0cmFja3MgcmVjdXJzaW9uIG9uIGZ1bmN0aW9uIGNhbGxiYWNrcyBpbiBWOC4g
IEkgcmFuIHRoaXMKKyAgICAgICAgYnkgTWFkcyBBZ2VyIGFuZCBNaWtlIEJlbHNoZSBhbmQgdGhl
eSBzZWVtZWQgdG8gdGhpbmsgYWRkaW5nIHRoZSBjaGVja3Mgd2VyZQorICAgICAgICBmaW5lLiAg
TW9zdCBjYWxsYmFja3MgYXJlIGFzeW5jaHJvbm91cyBhbmQgdGh1cyB3b3VsZG4ndCBiZSBuZXN0
ZWQuICBUaGUgZmV3CisgICAgICAgIHNjZW5hcmVvcyB3aGVyZSB5b3UgY2FuIGhhdmUgbmVzdGVk
IGNhbGxiYWNrcyBwcm9iYWJseSBzaG91bGQgaGF2ZSBhbHdheXMgYmVlbgorICAgICAgICBwcm90
ZWN0ZWQgYnkgYSByZWN1cnNpb24gZ3VhcmQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlKTogcmV2ZXJ0CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6IHJldmVy
dAorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgICAgIEFkZCByZWxlYXNlU3RvcmFnZU11dGV4
IGNhbGwuICBBIHNtYWxsIGFtb3VudCBvZiBjbGVhbiB1cC4KKyAgICAgICAgKFdlYkNvcmU6OlY4
UHJveHk6OmNhbGxGdW5jdGlvbik6CisgICAgICAgICAgICBBZGQgcmVsZWFzZVN0b3JhZ2VNdXRl
eCBjYWxsLiAgQSBzbWFsbCBhbW91bnQgb2YgY2xlYW4gdXAuCisgICAgICAgIChXZWJDb3JlOjpW
OFByb3h5OjpyZWxlYXNlU3RvcmFnZU11dGV4KToKKyAgICAgICAgICAgIENoZWNrIHRvIHNlZSBp
ZiBsb2NhbFN0b3JhZ2UgaGFzIGJlZW4gaW5zdGFudGlhdGVkLiAgSWYgc28sIHRlbGwgaXQgdG8K
KyAgICAgICAgICAgIHVubG9jayBhbGwgc3RvcmFnZSBhcmVhcy4KKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOFByb3h5Lmg6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VHcm91cDo6aGFzTG9jYWxTdG9yYWdlKTogIE1ha2UgaGFzTG9jYWxTdG9yYWdl
IHB1YmxpYy4KKwogMjAwOS0wOS0wMSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNDc5NTIpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTksMTQgKzExOSw2IEBAIFNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
KGMKICAgICAvLyBzbyB3ZSBzdGFydCB0aGUga2VlcCBhbGl2ZSB0aW1lciBoZXJlLgogICAgIG1f
ZnJhbWUtPmtlZXBBbGl2ZSgpOwogCi0jaWYgRU5BQkxFKERPTV9TVE9SQUdFKQotICAgIC8vIFJl
bGVhc2UgYW55IGxvY2FsU3RvcmFnZSBsb2NrcyB3ZSBtYXkgc3RpbGwgaGF2ZS4KLSAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIFN0b3JhZ2VOYW1lc3BhY2UqIGxvY2FsU3Rv
cmFnZSA9IHBhZ2UgPyBwYWdlLT5ncm91cCgpLmxvY2FsU3RvcmFnZSgpIDogMDsKLSAgICBpZiAo
bG9jYWxTdG9yYWdlKQotICAgICAgICBsb2NhbFN0b3JhZ2UtPnVubG9jaygpOwotI2VuZGlmCi0K
ICAgICBpZiAoY29tcC5jb21wbFR5cGUoKSA9PSBOb3JtYWwgfHwgY29tcC5jb21wbFR5cGUoKSA9
PSBSZXR1cm5WYWx1ZSkgewogICAgICAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOwog
ICAgICAgICByZXR1cm4gY29tcC52YWx1ZSgpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEwICs0NSw3IEBA
CiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfcHJpdi5o
IgogI2luY2x1ZGUgIk5QVjhPYmplY3QuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgotI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJYU1NBdWRp
dG9yLmgiCiAKQEAgLTIyMiwxNCArMjE5LDYgQEAgU2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGUoYwogICAgIC8vIHNvIHdlIHN0YXJ0IHRoZSBrZWVwIGFsaXZlIHRpbWVyIGhl
cmUuCiAgICAgbV9mcmFtZS0+a2VlcEFsaXZlKCk7CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0Up
Ci0gICAgLy8gUmVsZWFzZSBhbnkgbG9jYWxTdG9yYWdlIGxvY2tzIHdlIG1heSBzdGlsbCBoYXZl
LgotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgU3RvcmFnZU5hbWVzcGFj
ZSogbG9jYWxTdG9yYWdlID0gcGFnZSA/IHBhZ2UtPmdyb3VwKCkubG9jYWxTdG9yYWdlKCkgOiAw
OwotICAgIGlmIChsb2NhbFN0b3JhZ2UpCi0gICAgICAgIGxvY2FsU3RvcmFnZS0+dW5sb2NrKCk7
Ci0jZW5kaWYKLQogICAgIGlmIChvYmplY3QuSXNFbXB0eSgpIHx8IG9iamVjdC0+SXNVbmRlZmlu
ZWQoKSkKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CiAKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmNwcAkocmV2aXNpb24gNDc5NTIpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiwxMCBAQAogI2luY2x1ZGUgIkRPTU9i
amVjdHNJbmNsdWRlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZU5h
bWVzcGFjZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q29sbGVjdGlv
bi5oIgogI2luY2x1ZGUgIlY4Q29uc29sZU1lc3NhZ2UuaCIKQEAgLTM5NSwxNSArMzk4LDE4IEBA
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OnJ1blNjcmlwdCgKICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiByZXN1bHQ7CiAgICAgewogICAgICAgICBWOENvbnNvbGVNZXNzYWdlOjpTY29w
ZSBzY29wZTsKLSAgICAgICAgbV9yZWN1cnNpb24rKzsKIAogICAgICAgICAvLyBTZWUgY29tbWVu
dCBpbiBWOFByb3h5OjpjYWxsRnVuY3Rpb24uCiAgICAgICAgIG1fZnJhbWUtPmtlZXBBbGl2ZSgp
OwogCisgICAgICAgIG1fcmVjdXJzaW9uKys7CiAgICAgICAgIHJlc3VsdCA9IHNjcmlwdC0+UnVu
KCk7CiAgICAgICAgIG1fcmVjdXJzaW9uLS07CiAgICAgfQogCisgICAgLy8gUmVsZWFzZSB0aGUg
c3RvcmFnZSBtdXRleCBpZiBhcHBsaWNhYmxlLgorICAgIHJlbGVhc2VTdG9yYWdlTXV0ZXgoKTsK
KwogICAgIGlmIChoYW5kbGVPdXRPZk1lbW9yeSgpKQogICAgICAgICBBU1NFUlQocmVzdWx0Lklz
RW1wdHkoKSk7CiAKQEAgLTQyMiw5ICs0MjgsNiBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFBy
b3h5OjpydW5TY3JpcHQoCiAKIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OmNhbGxGdW5j
dGlvbih2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24sIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gcmVjZWl2ZXIsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJnc1tdKQog
ewotICAgIC8vIEZvciBub3csIHdlIGRvbid0IHB1dCBhbnkgYXJ0aWZpY2lhbCBsaW1pdGF0aW9u
cyBvbiB0aGUgZGVwdGgKLSAgICAvLyBvZiByZWN1cnNpb24gdGhhdCBzdGVtcyBmcm9tIGNhbGxp
bmcgZnVuY3Rpb25zLiBUaGlzIGlzIGluCi0gICAgLy8gY29udHJhc3QgdG8gdGhlIHNjcmlwdCBl
dmFsdWF0aW9ucy4KICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiByZXN1bHQ7CiAgICAgewogICAg
ICAgICBWOENvbnNvbGVNZXNzYWdlOjpTY29wZSBzY29wZTsKQEAgLTQzNiw5ICs0MzksMTQgQEAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6Y2FsbEZ1bmN0aQogICAgICAgICAvLyBleGVj
dXRpb24gZmluaXNocyBiZWZvcmUgZmlyaW5nIHRoZSB0aW1lci4KICAgICAgICAgbV9mcmFtZS0+
a2VlcEFsaXZlKCk7CiAKKyAgICAgICAgbV9yZWN1cnNpb24rKzsKICAgICAgICAgcmVzdWx0ID0g
ZnVuY3Rpb24tPkNhbGwocmVjZWl2ZXIsIGFyZ2MsIGFyZ3MpOworICAgICAgICBtX3JlY3Vyc2lv
bi0tOwogICAgIH0KIAorICAgIC8vIFJlbGVhc2UgdGhlIHN0b3JhZ2UgbXV0ZXggaWYgYXBwbGlj
YWJsZS4KKyAgICByZWxlYXNlU3RvcmFnZU11dGV4KCk7CisKICAgICBpZiAodjg6OlY4OjpJc0Rl
YWQoKSkKICAgICAgICAgaGFuZGxlRmF0YWxFcnJvckluVjgoKTsKIApAQCAtNjcxLDYgKzY3OSwx
OSBAQCB2b2lkIFY4UHJveHk6OmRpc3Bvc2VDb250ZXh0SGFuZGxlcygpCiAgICAgfQogfQogCit2
b2lkIFY4UHJveHk6OnJlbGVhc2VTdG9yYWdlTXV0ZXgoKSB7CisgICAgLy8gSWYgd2UndmUganVz
dCBsZWZ0IGEgdG9wIGxldmVsIHNjcmlwdCBjb250ZXh0IGFuZCBsb2NhbCBzdG9yYWdlIGhhcyBi
ZWVuCisgICAgLy8gaW5zdGFudGlhdGVkLCB3ZSBtdXN0IGVuc3VyZSB0aGF0IGFueSBzdG9yYWdl
IGxvY2tzIGhhdmUgYmVlbiBmcmVlZC4KKyAgICAvLyBQZXIgaHR0cDovL2Rldi53My5vcmcvaHRt
bDUvc3BlYy9PdmVydmlldy5odG1sI3N0b3JhZ2UtbXV0ZXgKKyAgICBpZiAobV9yZWN1cnNpb24g
IT0gMCkKKyAgICAgICAgcmV0dXJuOworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHBhZ2UtPmdyb3VwKCku
aGFzTG9jYWxTdG9yYWdlKCkpCisgICAgICAgIHBhZ2UtPmdyb3VwKCkubG9jYWxTdG9yYWdlKCkt
PnVubG9jaygpOworfQorCiB2b2lkIFY4UHJveHk6OmNsZWFyRm9yQ2xvc2UoKQogewogICAgIGlm
ICghbV9jb250ZXh0LklzRW1wdHkoKSkgewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJKHJldmlz
aW9uIDQ3OTUyKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4Niw2ICszODYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBE
aXNwb3NlIGdsb2JhbCBoYW5kbGVzIG9mIG1fY29udGV4dHMgYW5kIGZyaWVuZHMuCiAgICAgICAg
IHZvaWQgZGlzcG9zZUNvbnRleHRIYW5kbGVzKCk7CiAKKyAgICAgICAgLy8gSWYgbV9yZWN1cnNp
b25Db3VudCBpcyAwLCBsZXQgTG9jYWxTdG9yYWdlIGtub3cgc28gd2UgY2FuIHJlbGVhc2UKKyAg
ICAgICAgLy8gdGhlIHN0b3JhZ2UgbXV0ZXguCisgICAgICAgIHZvaWQgcmVsZWFzZVN0b3JhZ2VN
dXRleCgpOworCiAgICAgICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc1ByaXZhdGUoRE9NV2luZG93
Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJhbmdlRXhjZXB0aW9uTmFtZShpbnQg
ZXhjZXB0aW9uQ29kZSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNv
cmUvcGFnZS9QYWdlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTMgKzY0LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShET01fU1RPUkFHRSkKICAgICAgICAgU3Rv
cmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlKCk7CisgICAgICAgIGJvb2wgaGFzTG9jYWxTdG9y
YWdlKCkgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2U7IH0KICNlbmRpZgogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhMaW5rSGFzaCBzdHJpbmdIYXNoKTsKLSNpZiBF
TkFCTEUoRE9NX1NUT1JBR0UpCi0gICAgICAgIGJvb2wgaGFzTG9jYWxTdG9yYWdlKCkgeyByZXR1
cm4gbV9sb2NhbFN0b3JhZ2U7IH0KLSNlbmRpZgorCiAgICAgICAgIFN0cmluZyBtX25hbWU7CiAK
ICAgICAgICAgSGFzaFNldDxQYWdlKj4gbV9wYWdlczs=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38916</attachid>
            <date>2009-09-02 02:08:44 -0700</date>
            <delta_ts>2009-09-02 08:54:19 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-28904-20090902180843.patch</filename>
            <type>text/plain</type>
            <size>8195</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMDktMDktMDIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QW5vdGhlciBwYXNzIGF0IHJlbGVhc2luZyB0aGUgc3RvcmFnZSBtdXRleC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTA0CisKKyAgICAgICAgQW5v
dGhlciBwYXNzIGF0IHJlbGVhc2luZyB0aGUgc3RvcmFnZSBtdXRleCAod2hlbiBhcHBsaWNhYmxl
KSB3aGVuIHdlIGZpbmlzaAorICAgICAgICBleGVjdXRpbmcgSmF2YVNjcmlwdC4gIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCNzdG9yYWdlLW11dGV4CisgICAgICAg
IGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgYmVoYXZpb3IuCisKKyAgICAgICAgQXMgaXQgdHVybnMg
b3V0LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg3ODkgZGlkbid0
IHNvbHZlCisgICAgICAgIHRoZSBwcm9ibGVtIGNvcnJlY3RseS4gIEZpcnN0IG9mIGFsbCwgSSBt
aXNzZWQgdGhhdCBldmVudHMgYW5kIHRpbWVvdXRzIGdvCisgICAgICAgIHRocm91Z2ggYSBkaWZm
ZXJlbnQgY2FsbCBwYXRoLiAgU2Vjb25kIG9mIGFsbCwgSSBkaWRuJ3QgY29uc2lkZXIgcmVjdXJz
aW9uCisgICAgICAgIGNvcnJlY3RseS4gIFRoaXJkIG9mIGFsbCwgbXkgY2hlY2sgdG8gc2VlIGlm
IExvY2FsU3RvcmFnZSBpcyBhbGl2ZSBhY3R1YWxseQorICAgICAgICBpbnN0YW50aWF0ZXMgaXQg
aWYgaXQgaXNuJ3QgeWV0LiAgRm91cnRoLCBJIGZvcmdvdCBET01fU1RPUkFHRSBndWFyZHMgYXJv
dW5kCisgICAgICAgIGl0LiAgU28gSSdtIHJldmVydGluZyB0aGF0IGNoYW5nZSBjb21wbGV0ZWx5
IGFuZCBkb2luZyBpdCBtb3JlIGNsZWFubHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoZSBz
b2x1dGlvbiBpc24ndCBhcyBwb3J0YWJsZSAoYW5kIHRodXMgSSd2ZSBsZWZ0IG91dCB0aGUgSlND
CisgICAgICAgIGltcGxlbWVudGF0aW9uIGZvciBub3cpLgorCisgICAgICAgIE5PVEU6IFRoaXMg
Y2hhbmdlIG5vdyB0cmFja3MgcmVjdXJzaW9uIG9uIGZ1bmN0aW9uIGNhbGxiYWNrcyBpbiBWOC4g
IEkgcmFuIHRoaXMKKyAgICAgICAgYnkgTWFkcyBBZ2VyIGFuZCBNaWtlIEJlbHNoZSBhbmQgdGhl
eSBzZWVtZWQgdG8gdGhpbmsgYWRkaW5nIHRoZSBjaGVja3Mgd2VyZQorICAgICAgICBmaW5lLiAg
TW9zdCBjYWxsYmFja3MgYXJlIGFzeW5jaHJvbm91cyBhbmQgdGh1cyB3b3VsZG4ndCBiZSBuZXN0
ZWQuICBUaGUgZmV3CisgICAgICAgIHNjZW5hcmVvcyB3aGVyZSB5b3UgY2FuIGhhdmUgbmVzdGVk
IGNhbGxiYWNrcyBwcm9iYWJseSBzaG91bGQgaGF2ZSBhbHdheXMgYmVlbgorICAgICAgICBwcm90
ZWN0ZWQgYnkgYSByZWN1cnNpb24gZ3VhcmQuCisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhp
cyBjYW4ndCBiZSB0ZXN0ZWQgd2l0aG91dCBhIGhvb2sgYWRkZWQgdG8gdGhlIGxheW91dCB0ZXN0
CisgICAgICAgIGNvbnRyb2xsZXJzIHNpbmNlIHRoZSBsb2NrIGlzIChieSBkZXNpZ24pIG5vdCBz
dXBwb3NlZCB0byBiZSBvYnNlcnZhYmxlIGJ5CisgICAgICAgIEphdmFTY3JpcHQuICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5MDYKKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUpOiByZXZlcnQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKTogcmV2ZXJ0CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOFByb3h5OjpydW5TY3JpcHQpOgorICAgICAgICAgICAgQWRkIHJlbGVhc2VT
dG9yYWdlTXV0ZXggY2FsbC4gIEEgc21hbGwgYW1vdW50IG9mIGNsZWFuIHVwLgorICAgICAgICAo
V2ViQ29yZTo6VjhQcm94eTo6Y2FsbEZ1bmN0aW9uKToKKyAgICAgICAgICAgIEFkZCByZWxlYXNl
U3RvcmFnZU11dGV4IGNhbGwuICBBIHNtYWxsIGFtb3VudCBvZiBjbGVhbiB1cC4KKyAgICAgICAg
KFdlYkNvcmU6OlY4UHJveHk6OnJlbGVhc2VTdG9yYWdlTXV0ZXgpOgorICAgICAgICAgICAgQ2hl
Y2sgdG8gc2VlIGlmIGxvY2FsU3RvcmFnZSBoYXMgYmVlbiBpbnN0YW50aWF0ZWQuICBJZiBzbywg
dGVsbCBpdCB0bworICAgICAgICAgICAgdW5sb2NrIGFsbCBzdG9yYWdlIGFyZWFzLgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpoYXNMb2NhbFN0b3JhZ2UpOiAgTWFrZSBoYXNM
b2NhbFN0b3JhZ2UgcHVibGljLgorCiAyMDA5LTA5LTAxICBCcmlhbiBXZWluc3RlaW4gIDxid2Vp
bnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0
Nzk1MikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExOSwxNCArMTE5LDYgQEAgU2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGUoYwogICAgIC8vIHNvIHdlIHN0YXJ0IHRoZSBrZWVwIGFsaXZlIHRpbWVyIGhl
cmUuCiAgICAgbV9mcmFtZS0+a2VlcEFsaXZlKCk7CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0Up
Ci0gICAgLy8gUmVsZWFzZSBhbnkgbG9jYWxTdG9yYWdlIGxvY2tzIHdlIG1heSBzdGlsbCBoYXZl
LgotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgU3RvcmFnZU5hbWVzcGFj
ZSogbG9jYWxTdG9yYWdlID0gcGFnZSA/IHBhZ2UtPmdyb3VwKCkubG9jYWxTdG9yYWdlKCkgOiAw
OwotICAgIGlmIChsb2NhbFN0b3JhZ2UpCi0gICAgICAgIGxvY2FsU3RvcmFnZS0+dW5sb2NrKCk7
Ci0jZW5kaWYKLQogICAgIGlmIChjb21wLmNvbXBsVHlwZSgpID09IE5vcm1hbCB8fCBjb21wLmNv
bXBsVHlwZSgpID09IFJldHVyblZhbHVlKSB7CiAgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRT
b3VyY2VVUkw7CiAgICAgICAgIHJldHVybiBjb21wLnZhbHVlKCk7CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDQ3OTUyKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUs
MTAgKzQ1LDcgQEAKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUgIm5wcnVu
dGltZV9wcml2LmgiCiAjaW5jbHVkZSAiTlBWOE9iamVjdC5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
LSNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCi0j
aW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1
ZGUgIlhTU0F1ZGl0b3IuaCIKIApAQCAtMjIyLDE0ICsyMTksNiBAQCBTY3JpcHRWYWx1ZSBTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZShjCiAgICAgLy8gc28gd2Ugc3RhcnQgdGhlIGtlZXAgYWxp
dmUgdGltZXIgaGVyZS4KICAgICBtX2ZyYW1lLT5rZWVwQWxpdmUoKTsKIAotI2lmIEVOQUJMRShE
T01fU1RPUkFHRSkKLSAgICAvLyBSZWxlYXNlIGFueSBsb2NhbFN0b3JhZ2UgbG9ja3Mgd2UgbWF5
IHN0aWxsIGhhdmUuCi0gICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBTdG9y
YWdlTmFtZXNwYWNlKiBsb2NhbFN0b3JhZ2UgPSBwYWdlID8gcGFnZS0+Z3JvdXAoKS5sb2NhbFN0
b3JhZ2UoKSA6IDA7Ci0gICAgaWYgKGxvY2FsU3RvcmFnZSkKLSAgICAgICAgbG9jYWxTdG9yYWdl
LT51bmxvY2soKTsKLSNlbmRpZgotCiAgICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkgfHwgb2JqZWN0
LT5Jc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gU2NyaXB0VmFsdWUoKTsKIApJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuY3BwCShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDEwIEBACiAjaW5j
bHVkZSAiRE9NT2JqZWN0c0luY2x1ZGUuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAi
VjhDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhDb25zb2xlTWVzc2FnZS5oIgpAQCAtMzk1LDE1
ICszOTgsMTggQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KAogICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdDsKICAgICB7CiAgICAgICAgIFY4Q29uc29sZU1l
c3NhZ2U6OlNjb3BlIHNjb3BlOwotICAgICAgICBtX3JlY3Vyc2lvbisrOwogCiAgICAgICAgIC8v
IFNlZSBjb21tZW50IGluIFY4UHJveHk6OmNhbGxGdW5jdGlvbi4KICAgICAgICAgbV9mcmFtZS0+
a2VlcEFsaXZlKCk7CiAKKyAgICAgICAgbV9yZWN1cnNpb24rKzsKICAgICAgICAgcmVzdWx0ID0g
c2NyaXB0LT5SdW4oKTsKICAgICAgICAgbV9yZWN1cnNpb24tLTsKICAgICB9CiAKKyAgICAvLyBS
ZWxlYXNlIHRoZSBzdG9yYWdlIG11dGV4IGlmIGFwcGxpY2FibGUuCisgICAgcmVsZWFzZVN0b3Jh
Z2VNdXRleCgpOworCiAgICAgaWYgKGhhbmRsZU91dE9mTWVtb3J5KCkpCiAgICAgICAgIEFTU0VS
VChyZXN1bHQuSXNFbXB0eSgpKTsKIApAQCAtNDIyLDkgKzQyOCw2IEBAIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IFY4UHJveHk6OnJ1blNjcmlwdCgKIAogdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94
eTo6Y2FsbEZ1bmN0aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiByZWNlaXZlciwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmdzW10pCiB7Ci0gICAgLy8gRm9yIG5vdywgd2UgZG9uJ3QgcHV0IGFueSBhcnRpZmljaWFs
IGxpbWl0YXRpb25zIG9uIHRoZSBkZXB0aAotICAgIC8vIG9mIHJlY3Vyc2lvbiB0aGF0IHN0ZW1z
IGZyb20gY2FsbGluZyBmdW5jdGlvbnMuIFRoaXMgaXMgaW4KLSAgICAvLyBjb250cmFzdCB0byB0
aGUgc2NyaXB0IGV2YWx1YXRpb25zLgogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdDsK
ICAgICB7CiAgICAgICAgIFY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlIHNjb3BlOwpAQCAtNDM2LDkg
KzQzOSwxNCBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpjYWxsRnVuY3RpCiAgICAg
ICAgIC8vIGV4ZWN1dGlvbiBmaW5pc2hzIGJlZm9yZSBmaXJpbmcgdGhlIHRpbWVyLgogICAgICAg
ICBtX2ZyYW1lLT5rZWVwQWxpdmUoKTsKIAorICAgICAgICBtX3JlY3Vyc2lvbisrOwogICAgICAg
ICByZXN1bHQgPSBmdW5jdGlvbi0+Q2FsbChyZWNlaXZlciwgYXJnYywgYXJncyk7CisgICAgICAg
IG1fcmVjdXJzaW9uLS07CiAgICAgfQogCisgICAgLy8gUmVsZWFzZSB0aGUgc3RvcmFnZSBtdXRl
eCBpZiBhcHBsaWNhYmxlLgorICAgIHJlbGVhc2VTdG9yYWdlTXV0ZXgoKTsKKwogICAgIGlmICh2
ODo6Vjg6OklzRGVhZCgpKQogICAgICAgICBoYW5kbGVGYXRhbEVycm9ySW5WOCgpOwogCkBAIC02
NzEsNiArNjc5LDIwIEBAIHZvaWQgVjhQcm94eTo6ZGlzcG9zZUNvbnRleHRIYW5kbGVzKCkKICAg
ICB9CiB9CiAKK3ZvaWQgVjhQcm94eTo6cmVsZWFzZVN0b3JhZ2VNdXRleCgpCit7CisgICAgLy8g
SWYgd2UndmUganVzdCBsZWZ0IGEgdG9wIGxldmVsIHNjcmlwdCBjb250ZXh0IGFuZCBsb2NhbCBz
dG9yYWdlIGhhcyBiZWVuCisgICAgLy8gaW5zdGFudGlhdGVkLCB3ZSBtdXN0IGVuc3VyZSB0aGF0
IGFueSBzdG9yYWdlIGxvY2tzIGhhdmUgYmVlbiBmcmVlZC4KKyAgICAvLyBQZXIgaHR0cDovL2Rl
di53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3N0b3JhZ2UtbXV0ZXgKKyAgICBpZiAo
bV9yZWN1cnNpb24gIT0gMCkKKyAgICAgICAgcmV0dXJuOworICAgIFBhZ2UqIHBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHBh
Z2UtPmdyb3VwKCkuaGFzTG9jYWxTdG9yYWdlKCkpCisgICAgICAgIHBhZ2UtPmdyb3VwKCkubG9j
YWxTdG9yYWdlKCktPnVubG9jaygpOworfQorCiB2b2lkIFY4UHJveHk6OmNsZWFyRm9yQ2xvc2Uo
KQogewogICAgIGlmICghbV9jb250ZXh0LklzRW1wdHkoKSkgewpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmgJKHJldmlzaW9uIDQ3OTUyKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4Niw2ICszODYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAvLyBEaXNwb3NlIGdsb2JhbCBoYW5kbGVzIG9mIG1fY29udGV4dHMgYW5kIGZyaWVu
ZHMuCiAgICAgICAgIHZvaWQgZGlzcG9zZUNvbnRleHRIYW5kbGVzKCk7CiAKKyAgICAgICAgLy8g
SWYgbV9yZWN1cnNpb25Db3VudCBpcyAwLCBsZXQgTG9jYWxTdG9yYWdlIGtub3cgc28gd2UgY2Fu
IHJlbGVhc2UKKyAgICAgICAgLy8gdGhlIHN0b3JhZ2UgbXV0ZXguCisgICAgICAgIHZvaWQgcmVs
ZWFzZVN0b3JhZ2VNdXRleCgpOworCiAgICAgICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc1ByaXZh
dGUoRE9NV2luZG93Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJhbmdlRXhjZXB0
aW9uTmFtZShpbnQgZXhjZXB0aW9uQ29kZSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZUdyb3Vw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiA0Nzk1
MikKKysrIFdlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTMg
KzY0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShET01fU1RPUkFHRSkK
ICAgICAgICAgU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlKCk7CisgICAgICAgIGJvb2wg
aGFzTG9jYWxTdG9yYWdlKCkgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2U7IH0KICNlbmRpZgogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhMaW5rSGFzaCBzdHJpbmdI
YXNoKTsKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCi0gICAgICAgIGJvb2wgaGFzTG9jYWxTdG9y
YWdlKCkgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2U7IH0KLSNlbmRpZgorCiAgICAgICAgIFN0cmlu
ZyBtX25hbWU7CiAKICAgICAgICAgSGFzaFNldDxQYWdlKj4gbV9wYWdlczs=
</data>

          </attachment>
      

    </bug>

</bugzilla>