<?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>120710</bug_id>
          
          <creation_ts>2013-09-04 17:29:14 -0700</creation_ts>
          <short_desc>Cached Page and Frame don&apos;t need to be ref-counted.</short_desc>
          <delta_ts>2013-09-05 14:25:48 -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>Page Loading</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>
          <dependson>120758</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>924694</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 17:29:14 -0700</bug_when>
    <thetext>CachedPage and CachedFrame are single-owner objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924705</commentid>
    <comment_count>1</comment_count>
      <attachid>210530</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 17:36:41 -0700</bug_when>
    <thetext>Created attachment 210530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924709</commentid>
    <comment_count>2</comment_count>
      <attachid>210530</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-04 17:47:14 -0700</bug_when>
    <thetext>Comment on attachment 210530
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1762
&gt; +            cachedPage = 0;

Nullptr!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924728</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 18:40:50 -0700</bug_when>
    <thetext>Committed r155086: &lt;http://trac.webkit.org/changeset/155086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924777</commentid>
    <comment_count>4</comment_count>
      <attachid>210530</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-04 22:33:34 -0700</bug_when>
    <thetext>Comment on attachment 210530
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1747
&gt; +        // Clear out &apos;cachedPage&apos; right away since it now points to a deleted object.
&gt; +        cachedPage = 0;

This kind of stinks. This function used to be guaranteed-memory-safe by the compiler. Now it&apos;s unsafe, with a comment. And the comment doesn&apos;t explain how we know our pointer wasn&apos;t deleted sooner.

If the memory model is that history().provisionalItem() owns the cached page, perhaps PageCache::get should return PassRefPtr&lt;HistoryItem&gt;, and we just shouldn&apos;t put cachedPage into a local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924779</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 22:38:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 210530 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210530&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1747
&gt; &gt; +        // Clear out &apos;cachedPage&apos; right away since it now points to a deleted object.
&gt; &gt; +        cachedPage = 0;
&gt; 
&gt; This kind of stinks. This function used to be guaranteed-memory-safe by the compiler. Now it&apos;s unsafe, with a comment. And the comment doesn&apos;t explain how we know our pointer wasn&apos;t deleted sooner.
&gt; 
&gt; If the memory model is that history().provisionalItem() owns the cached page, perhaps PageCache::get should return PassRefPtr&lt;HistoryItem&gt;, and we just shouldn&apos;t put cachedPage into a local variable.

This is not my intended end state, I&apos;m iterating towards having the function rip out an object from the page cache, taking ownership, and eventually grounding it into the new frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924807</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-04 23:30:53 -0700</bug_when>
    <thetext>OK, I will stay tuned for future episodes of the akling show. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925099</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-05 10:18:12 -0700</bug_when>
    <thetext>Reopening since I reverted this in r155120 for breaking Qt stuffs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925126</commentid>
    <comment_count>8</comment_count>
      <attachid>210637</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-05 10:52:00 -0700</bug_when>
    <thetext>Created attachment 210637
Patch v2

Go all the way and add PageCache::take() which lets FrameLoader take ownership of the CachedPage during commitProvisionalLoad().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925214</commentid>
    <comment_count>9</comment_count>
      <attachid>210637</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-05 14:25:46 -0700</bug_when>
    <thetext>Comment on attachment 210637
Patch v2

Clearing flags on attachment: 210637

Committed r155150: &lt;http://trac.webkit.org/changeset/155150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925215</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-05 14:25:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210530</attachid>
            <date>2013-09-04 17:36:41 -0700</date>
            <delta_ts>2013-09-05 10:52:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120710.diff</filename>
            <type>text/plain</type>
            <size>7304</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZjhiOThlLi4wODc2OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTMtMDktMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIENhY2hlZCBQYWdlIGFuZCBGcmFtZSBkb24ndCBuZWVkIHRvIGJlIHJlZi1jb3VudGVkLgor
ICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIwNzEwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQ2FjaGVkUGFnZSBpcyBvd25lZCBieSBI
aXN0b3J5SXRlbS4KKyAgICAgICAgLSBDYWNoZWRGcmFtZSBpcyBvd25lZCBieSBDYWNoZWRQYWdl
LgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVmIGNvdW50aW5nIGZyb20gdGhlc2Ugb2JqZWN0cyB0
byBtYWtlIHRoZSBjb2RlIGxlc3MgY29uZnVzaW5nLgorCisgICAgICAgIFRoZSBvbmx5IHBsYWNl
IHRoYXQgdXNlZCB0aGlzIHdhcyBpbiBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkgd2hpY2gKKyAgICAgICAgdG9vayBhIHRlbXBvcmFyeSByZWYgb24gdGhlIENhY2hlZFBhZ2Uu
IFN3aXRjaGVkIHRoaXMgdG8gdXNpbmcgYSByYXcgcG9pbnRlci4KKworICAgICAgICAqIGhpc3Rv
cnkvQ2FjaGVkRnJhbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpjcmVhdGUp
OgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRQYWdlOjpjcmVhdGUpOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5oOgorICAg
ICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFs
TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6dHJhbnNpdGlvblRvQ29tbWl0
dGVkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKwogMjAxMy0wOS0wNCAgU2Ft
dWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogd2hlbiBu
byBvdGhlciBsYWJlbCBvbiBwcm92aWRlZCBvbiBmb3JtIGVsZW1lbnRzLCBXZWJLaXQgc2hvdWxk
IGZhbGwgYmFjayB0byB1c2luZyBAdGl0bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUu
aAppbmRleCA0NjNmYTdmLi45Mjc3MDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFt
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDggKzQxLDYgQEAgY2xhc3MgRG9jdW1lbnRMb2Fk
ZXI7CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBOb2RlOwogCi10eXBlZGVmIFZlY3RvcjxSZWZQ
dHI8Q2FjaGVkRnJhbWU+ID4gQ2FjaGVkRnJhbWVWZWN0b3I7Ci0KIGNsYXNzIENhY2hlZEZyYW1l
QmFzZSB7CiBwdWJsaWM6CiAgICAgdm9pZCByZXN0b3JlKCk7CkBAIC02OSwxMiArNjYsMTIgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0NvbXBvc2l0ZWQ7CiAjZW5kaWYKICAgICAKLSAgICBD
YWNoZWRGcmFtZVZlY3RvciBtX2NoaWxkRnJhbWVzOworICAgIFZlY3RvcjxPd25QdHI8Q2FjaGVk
RnJhbWU+PiBtX2NoaWxkRnJhbWVzOwogfTsKIAotY2xhc3MgQ2FjaGVkRnJhbWUgOiBwdWJsaWMg
UmVmQ291bnRlZDxDYWNoZWRGcmFtZT4sIHByaXZhdGUgQ2FjaGVkRnJhbWVCYXNlIHsKK2NsYXNz
IENhY2hlZEZyYW1lIDogcHJpdmF0ZSBDYWNoZWRGcmFtZUJhc2UgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZEZyYW1lPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ2FjaGVkRnJhbWUoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBQYXNzT3du
UHRyPENhY2hlZEZyYW1lPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFB0cihu
ZXcgQ2FjaGVkRnJhbWUoZnJhbWUpKTsgfQogCiAgICAgdm9pZCBvcGVuKCk7CiAgICAgdm9pZCBj
bGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggZjdkOTNiNC4u
MDU2YmJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCkBAIC00NSw5ICs0
NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdU
Rjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRQYWdlQ291bnRlciwgKCJDYWNoZWRQYWdl
IikpOwogCi1QYXNzUmVmUHRyPENhY2hlZFBhZ2U+IENhY2hlZFBhZ2U6OmNyZWF0ZShQYWdlKiBw
YWdlKQorUGFzc093blB0cjxDYWNoZWRQYWdlPiBDYWNoZWRQYWdlOjpjcmVhdGUoUGFnZSogcGFn
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhY2hlZFBhZ2UocGFnZSkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQ2FjaGVkUGFnZShwYWdlKSk7CiB9CiAKIENhY2hlZFBhZ2U6OkNh
Y2hlZFBhZ2UoUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
Q2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKaW5kZXgg
MGYwOGFhNi4uZWRhNzA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNo
ZWRQYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgQ2FjaGVkUGFnZV9oCiAK
ICNpbmNsdWRlICJDYWNoZWRGcmFtZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTM1LDkgKzM0LDkgQEAgY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIENhY2hlZFBh
Z2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRQYWdlPiB7CitjbGFzcyBDYWNoZWRQYWdlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRQYWdlPiBjcmVhdGUoUGFnZSop
OworICAgIHN0YXRpYyBQYXNzT3duUHRyPENhY2hlZFBhZ2U+IGNyZWF0ZShQYWdlKik7CiAgICAg
fkNhY2hlZFBhZ2UoKTsKIAogICAgIHZvaWQgcmVzdG9yZShQYWdlKik7CkBAIC02Nyw3ICs2Niw3
IEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUgbV90aW1lU3RhbXA7CiAgICAgZG91YmxlIG1fZXhw
aXJhdGlvblRpbWU7Ci0gICAgUmVmUHRyPENhY2hlZEZyYW1lPiBtX2NhY2hlZE1haW5GcmFtZTsK
KyAgICBPd25QdHI8Q2FjaGVkRnJhbWU+IG1fY2FjaGVkTWFpbkZyYW1lOwogICAgIGJvb2wgbV9u
ZWVkU3R5bGVSZWNhbGNGb3JWaXNpdGVkTGlua3M7CiAgICAgYm9vbCBtX25lZWRzRnVsbFN0eWxl
UmVjYWxjOwogICAgIGJvb2wgbV9uZWVkc0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKaW5kZXggN2ZlNDUxMS4uNTczYzFiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApAQCAtMjg2LDcgKzI4Niw3IEBAIHByaXZhdGU6
CiAgICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KICAgICBIaXN0b3J5SXRl
bSogbV9uZXh0OwogICAgIEhpc3RvcnlJdGVtKiBtX3ByZXY7Ci0gICAgUmVmUHRyPENhY2hlZFBh
Z2U+IG1fY2FjaGVkUGFnZTsKKyAgICBPd25QdHI8Q2FjaGVkUGFnZT4gbV9jYWNoZWRQYWdlOwog
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8aWQ+IG1fdmlld1N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYWUwNTBiZC4uNjBlYzUyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xNjk5LDcgKzE2OTksNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhclByb3Zpc2lvbmFsTG9hZCgpCiAKIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiB7Ci0gICAgUmVmUHRyPENhY2hlZFBhZ2U+
IGNhY2hlZFBhZ2UgPSBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZSA/IHBhZ2VDYWNoZSgpLT5nZXQo
aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKSA6IDA7CisgICAgQ2FjaGVkUGFnZSogY2FjaGVk
UGFnZSA9IG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlID8gcGFnZUNhY2hlKCktPmdldChoaXN0b3J5
KCkucHJvdmlzaW9uYWxJdGVtKCkpIDogMDsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IHBk
bCA9IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcjsKICAgICBSZWY8RnJhbWU+IHByb3RlY3Qo
bV9mcmFtZSk7CiAKQEAgLTE3NDMsNiArMTc0Myw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAgIC8vIFRoZSBwYWdlIHNob3VsZCBiZSByZW1vdmVk
IGZyb20gdGhlIGNhY2hlIGltbWVkaWF0ZWx5IGFmdGVyIGEgcmVzdG9yYXRpb24gaW4gb3JkZXIg
Zm9yIHRoZSBQYWdlQ2FjaGUgdG8gYmUgY29uc2lzdGVudC4KICAgICAgICAgcGFnZUNhY2hlKCkt
PnJlbW92ZShoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSk7CiAKKyAgICAgICAgLy8gQ2xlYXIgb3V0
ICdjYWNoZWRQYWdlJyByaWdodCBhd2F5IHNpbmNlIGl0IG5vdyBwb2ludHMgdG8gYSBkZWxldGVk
IG9iamVjdC4KKyAgICAgICAgY2FjaGVkUGFnZSA9IDA7CisKICAgICAgICAgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKCk7CiAKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIHRpdGxlIGxldCB0aGUgV2Vi
VmlldyBrbm93IGFib3V0IGl0LiAKQEAgLTE3NTIsOCArMTc1NSwxMiBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogCiAgICAgICAgIGNoZWNrQ29tcGxldGVkKCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGNhY2hlZFBhZ2UpCisgICAgICAgIGlmIChjYWNo
ZWRQYWdlKSB7CiAgICAgICAgICAgICBwYWdlQ2FjaGUoKS0+cmVtb3ZlKGhpc3RvcnkoKS5jdXJy
ZW50SXRlbSgpKTsKKworICAgICAgICAgICAgLy8gQ2xlYXIgb3V0ICdjYWNoZWRQYWdlJyByaWdo
dCBhd2F5IHNpbmNlIGl0IG5vdyBwb2ludHMgdG8gYSBkZWxldGVkIG9iamVjdC4KKyAgICAgICAg
ICAgIGNhY2hlZFBhZ2UgPSAwOworICAgICAgICB9CiAgICAgICAgIGRpZE9wZW5VUkwoKTsKICAg
ICB9CiAKQEAgLTE3ODksNyArMTc5Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zp
c2lvbmFsTG9hZCgpCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjp0cmFuc2l0aW9uVG9D
b21taXR0ZWQoUGFzc1JlZlB0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlKQordm9pZCBGcmFtZUxv
YWRlcjo6dHJhbnNpdGlvblRvQ29tbWl0dGVkKENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UpCiB7CiAg
ICAgQVNTRVJUKG1fY2xpZW50Lmhhc1dlYlZpZXcoKSk7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
RnJhbWVTdGF0ZVByb3Zpc2lvbmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5k
ZXggODAzZWFjMS4uZmFiNTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTMwOCw3ICszMDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb1JlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSwgYm9vbCBpc01haW5SZXNvdXJjZSk7
CiAKICAgICB2b2lkIGNsZWFyUHJvdmlzaW9uYWxMb2FkKCk7Ci0gICAgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWQoUGFzc1JlZlB0cjxDYWNoZWRQYWdlPik7CisgICAgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWQoQ2FjaGVkUGFnZSopOwogICAgIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCk7
CiAKICAgICBTdWJzdGl0dXRlRGF0YSBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwoY29uc3Qg
S1VSTCYpOwo=
</data>
<flag name="review"
          id="232640"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210637</attachid>
            <date>2013-09-05 10:52:00 -0700</date>
            <delta_ts>2013-09-05 14:25:46 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-120710-2.diff</filename>
            <type>text/plain</type>
            <size>11046</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMDE3M2QxLi5iM2MwZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTMtMDktMDUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIENhY2hlZCBQYWdlIGFuZCBGcmFtZSBkb24ndCBuZWVkIHRvIGJlIHJlZi1jb3VudGVkLgor
ICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIwNzEwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQ2FjaGVkUGFnZSBpcyBvd25lZCBieSBI
aXN0b3J5SXRlbS4KKyAgICAgICAgLSBDYWNoZWRGcmFtZSBpcyBvd25lZCBieSBDYWNoZWRQYWdl
LgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVmIGNvdW50aW5nIGZyb20gdGhlc2Ugb2JqZWN0cyB0
byBtYWtlIHRoZSBjb2RlIGxlc3MgY29uZnVzaW5nLgorCisgICAgICAgIEFkZGVkIGEgbmV3IG1l
dGhvZDoKKworICAgICAgICAtIFBhc3NPd25QdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtl
KEhpc3RvcnlJdGVtKikKKworICAgICAgICAuLndoaWNoIGlzIHdoYXQgaXQgbG9va3MgbGlrZSAt
IGEgY29tYmluZWQgZ2V0KCkgYW5kIHJlbW92ZSgpIHRoYXQgdHJhbnNmZXJzCisgICAgICAgIG93
bmVyc2hpcCBvZiB0aGUgQ2FjaGVkUGFnZSB0byB0aGUgY2FsbGVyLgorCisgICAgICAgIFRoaXMg
aXMgdXNlZCBieSBjb21taXRQcm92aXNpb25hbExvYWQoKSBhbmQgaW52YWxpZGF0ZUN1cnJlbnRJ
dGVtQ2FjaGVkUGFnZSgpCisgICAgICAgIHRvIGFjY29tcGxpc2ggaW4gb25lIHN3b29wIHdoYXQg
dGhleSB1c2VkIHRvIGRvIGluIGF3a3dhcmRseSBzcGFjZWQgc3RlcHMuCisKKyAgICAgICAgKiBo
aXN0b3J5L0NhY2hlZEZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFtZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUGFnZTo6Y3JlYXRlKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuaDoK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgICogaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjp0YWtlKToKKyAgICAgICAg
KiBoaXN0b3J5L1BhZ2VDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0cmFuc2l0aW9uVG9Db21taXR0ZWQpOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6aW52
YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSk6CisKIDIwMTMtMDktMDQgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBWZWN0b3I6OnJlbGVhc2VCdWZm
ZXIgc2hvdWxkIHJldHVybiBhbiBPd25QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUu
aAppbmRleCBjMjMyNjZmLi45ODM4ZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFt
ZS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNjcmlw
dENhY2hlZEZyYW1lRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTY3LDEyICs2NiwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lz
Q29tcG9zaXRlZDsKICNlbmRpZgogICAgIAotICAgIFZlY3RvcjxSZWZQdHI8Q2FjaGVkRnJhbWU+
PiBtX2NoaWxkRnJhbWVzOworICAgIFZlY3RvcjxPd25QdHI8Q2FjaGVkRnJhbWU+PiBtX2NoaWxk
RnJhbWVzOwogfTsKIAotY2xhc3MgQ2FjaGVkRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNo
ZWRGcmFtZT4sIHByaXZhdGUgQ2FjaGVkRnJhbWVCYXNlIHsKK2NsYXNzIENhY2hlZEZyYW1lIDog
cHJpdmF0ZSBDYWNoZWRGcmFtZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENhY2hlZEZyYW1lPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
Q2FjaGVkRnJhbWUoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENhY2hlZEZyYW1l
PiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVybiBhZG9wdFB0cihuZXcgQ2FjaGVkRnJhbWUo
ZnJhbWUpKTsgfQogCiAgICAgdm9pZCBvcGVuKCk7CiAgICAgdm9pZCBjbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggNDE5MmU2MC4uOGRkZDMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExl
YWtDb3VudGVyLCBjYWNoZWRQYWdlQ291bnRlciwgKCJDYWNoZWRQYWdlIikpOwogCi1QYXNzUmVm
UHRyPENhY2hlZFBhZ2U+IENhY2hlZFBhZ2U6OmNyZWF0ZShQYWdlJiBwYWdlKQorUGFzc093blB0
cjxDYWNoZWRQYWdlPiBDYWNoZWRQYWdlOjpjcmVhdGUoUGFnZSYgcGFnZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IENhY2hlZFBhZ2UocGFnZSkpOworICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgQ2FjaGVkUGFnZShwYWdlKSk7CiB9CiAKIENhY2hlZFBhZ2U6OkNhY2hlZFBhZ2UoUGFnZSYg
cGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKaW5kZXggMGQ0MDM4Mi4uZDhmYjNl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNk
ZWZpbmUgQ2FjaGVkUGFnZV9oCiAKICNpbmNsdWRlICJDYWNoZWRGcmFtZS5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTM1LDkg
KzM0LDkgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIFBh
Z2U7CiAKLWNsYXNzIENhY2hlZFBhZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRQYWdlPiB7
CitjbGFzcyBDYWNoZWRQYWdlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNo
ZWRQYWdlPiBjcmVhdGUoUGFnZSYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPENhY2hlZFBhZ2U+
IGNyZWF0ZShQYWdlJik7CiAgICAgfkNhY2hlZFBhZ2UoKTsKIAogICAgIHZvaWQgcmVzdG9yZShQ
YWdlJik7CkBAIC02Nyw3ICs2Niw3IEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUgbV90aW1lU3Rh
bXA7CiAgICAgZG91YmxlIG1fZXhwaXJhdGlvblRpbWU7Ci0gICAgUmVmUHRyPENhY2hlZEZyYW1l
PiBtX2NhY2hlZE1haW5GcmFtZTsKKyAgICBPd25QdHI8Q2FjaGVkRnJhbWU+IG1fY2FjaGVkTWFp
bkZyYW1lOwogICAgIGJvb2wgbV9uZWVkU3R5bGVSZWNhbGNGb3JWaXNpdGVkTGlua3M7CiAgICAg
Ym9vbCBtX25lZWRzRnVsbFN0eWxlUmVjYWxjOwogICAgIGJvb2wgbV9uZWVkc0NhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3Rv
cnlJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKaW5kZXggN2Zl
NDUxMS4uNTczYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApAQCAtMjg2
LDcgKzI4Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZp
ZWxkcy4KICAgICBIaXN0b3J5SXRlbSogbV9uZXh0OwogICAgIEhpc3RvcnlJdGVtKiBtX3ByZXY7
Ci0gICAgUmVmUHRyPENhY2hlZFBhZ2U+IG1fY2FjaGVkUGFnZTsKKyAgICBPd25QdHI8Q2FjaGVk
UGFnZT4gbV9jYWNoZWRQYWdlOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5Q
dHI8aWQ+IG1fdmlld1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9Q
YWdlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4
IGQxOGY1OWUuLjU1NTFmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFn
ZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAg
LTQ0Miw2ICs0NDIsMjkgQEAgdm9pZCBQYWdlQ2FjaGU6OmFkZChQYXNzUmVmUHRyPEhpc3RvcnlJ
dGVtPiBwcnBJdGVtLCBQYWdlJiBwYWdlKQogICAgIHBydW5lKCk7CiB9CiAKK1Bhc3NPd25QdHI8
Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVtKiBpdGVtKQoreworICAgIGlm
ICghaXRlbSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBPd25QdHI8Q2FjaGVkUGFn
ZT4gY2FjaGVkUGFnZSA9IGl0ZW0tPm1fY2FjaGVkUGFnZS5yZWxlYXNlKCk7CisKKyAgICByZW1v
dmVGcm9tTFJVTGlzdChpdGVtKTsKKyAgICAtLW1fc2l6ZTsKKworICAgIGl0ZW0tPmRlcmVmKCk7
IC8vIEJhbGFuY2VkIGluIGFkZCgpLgorCisgICAgaWYgKCFjYWNoZWRQYWdlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkpIHsKKyAg
ICAgICAgTE9HKFBhZ2VDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNr
L2ZvcndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0tPnVy
bCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgcmV0dXJuIGNhY2hlZFBhZ2UucmVsZWFzZSgpOworfQorCiBDYWNoZWRQYWdl
KiBQYWdlQ2FjaGU6OmdldChIaXN0b3J5SXRlbSogaXRlbSkKIHsKICAgICBpZiAoIWl0ZW0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaAppbmRleCA3N2JhYTdmLi45NGRhYmViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIGFkZChQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiwgUGFnZSYpOyAv
LyBQcnVuZXMgaWYgY2FwYWNpdHkoKSBpcyBleGNlZWRlZC4KICAgICAgICAgdm9pZCByZW1vdmUo
SGlzdG9yeUl0ZW0qKTsKICAgICAgICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtKiBpdGVt
KTsKKyAgICAgICAgUGFzc093blB0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtKik7CiAK
ICAgICAgICAgaW50IHBhZ2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgICAg
ICBpbnQgZnJhbWVDb3VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKaW5kZXggMWQwMjIyNS4uMmRiY2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0xNjk5LDEwICsxNjk5LDEzIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyUHJv
dmlzaW9uYWxMb2FkKCkKIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkKIHsKLSAgICBSZWZQdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IG1fbG9hZGluZ0Zyb21D
YWNoZWRQYWdlID8gcGFnZUNhY2hlKCktPmdldChoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkp
IDogMDsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IHBkbCA9IG1fcHJvdmlzaW9uYWxEb2N1
bWVudExvYWRlcjsKICAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAKKyAgICBPd25Q
dHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZTsKKyAgICBpZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBh
Z2UpCisgICAgICAgIGNhY2hlZFBhZ2UgPSBwYWdlQ2FjaGUoKS0+dGFrZShoaXN0b3J5KCkucHJv
dmlzaW9uYWxJdGVtKCkpOworCiAgICAgTE9HKFBhZ2VDYWNoZSwgIldlYkNvcmVMb2FkaW5nICVz
OiBBYm91dCB0byBjb21taXQgcHJvdmlzaW9uYWwgbG9hZCBmcm9tIHByZXZpb3VzIFVSTCAnJXMn
IHRvIG5ldyBVUkwgJyVzJyIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLAogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBtX2ZyYW1lLmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRh
KCkgOiAiIiwKICAgICAgICAgcGRsID8gcGRsLT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVk
VG9MZW5ndGgoKS51dGY4KCkuZGF0YSgpIDogIjxubyBwcm92aXNpb25hbCBEb2N1bWVudExvYWRl
cj4iKTsKQEAgLTE3MjEsNyArMTcyNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zp
c2lvbmFsTG9hZCgpCiAgICAgaWYgKCFjYWNoZWRQYWdlICYmICFtX3N0YXRlTWFjaGluZS5jcmVh
dGluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpCiAgICAgICAgIG1fY2xpZW50Lm1ha2VSZXByZXNl
bnRhdGlvbihwZGwuZ2V0KCkpOwogCi0gICAgdHJhbnNpdGlvblRvQ29tbWl0dGVkKGNhY2hlZFBh
Z2UpOworICAgIHRyYW5zaXRpb25Ub0NvbW1pdHRlZChjYWNoZWRQYWdlLmdldCgpKTsKIAogICAg
IGlmIChwZGwgJiYgbV9kb2N1bWVudExvYWRlcikgewogICAgICAgICAvLyBDaGVjayBpZiB0aGUg
ZGVzdGluYXRpb24gcGFnZSBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcHJldmlvdXMgcGFnZSdz
IHRpbWluZyBpbmZvcm1hdGlvbi4KQEAgLTE3MzgsMTAgKzE3NDEsOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgIAogICAgIGlmIChjYWNoZWRQYWdlICYm
IGNhY2hlZFBhZ2UtPmRvY3VtZW50KCkpIHsKICAgICAgICAgcHJlcGFyZUZvckNhY2hlZFBhZ2VS
ZXN0b3JlKCk7Ci0gICAgICAgIGNhY2hlZFBhZ2UtPnJlc3RvcmUoKm1fZnJhbWUucGFnZSgpKTsK
IAotICAgICAgICAvLyBUaGUgcGFnZSBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSBp
bW1lZGlhdGVseSBhZnRlciBhIHJlc3RvcmF0aW9uIGluIG9yZGVyIGZvciB0aGUgUGFnZUNhY2hl
IHRvIGJlIGNvbnNpc3RlbnQuCi0gICAgICAgIHBhZ2VDYWNoZSgpLT5yZW1vdmUoaGlzdG9yeSgp
LmN1cnJlbnRJdGVtKCkpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBBUEkgc2hvdWxkIGJlIHR1
cm5lZCBhcm91bmQgc28gdGhhdCB3ZSBncm91bmQgQ2FjaGVkUGFnZSBpbnRvIHRoZSBQYWdlLgor
ICAgICAgICBjYWNoZWRQYWdlLT5yZXN0b3JlKCptX2ZyYW1lLnBhZ2UoKSk7CiAKICAgICAgICAg
ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7CiAKQEAgLTE3NTEsMTEgKzE3NTMsOCBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICAgICAgbV9jbGllbnQu
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUodGl0bGUpOwogCiAgICAgICAgIGNoZWNrQ29tcGxldGVk
KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGNhY2hlZFBhZ2UpCi0gICAgICAgICAgICBw
YWdlQ2FjaGUoKS0+cmVtb3ZlKGhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKTsKKyAgICB9IGVsc2UK
ICAgICAgICAgZGlkT3BlblVSTCgpOwotICAgIH0KIAogICAgIExPRyhMb2FkaW5nLCAiV2ViQ29y
ZUxvYWRpbmcgJXM6IEZpbmlzaGVkIGNvbW1pdHRpbmcgcHJvdmlzaW9uYWwgbG9hZCB0byBVUkwg
JXMiLCBtX2ZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwK
ICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpID8gbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5z
dHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS51dGY4KCkuZGF0YSgpIDogIiIpOwpAQCAt
MTc4OSw3ICsxNzg4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZChQ
YXNzUmVmUHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UpCit2b2lkIEZyYW1lTG9hZGVyOjp0cmFu
c2l0aW9uVG9Db21taXR0ZWQoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSkKIHsKICAgICBBU1NFUlQo
bV9jbGllbnQuaGFzV2ViVmlldygpKTsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBGcmFtZVN0YXRl
UHJvdmlzaW9uYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA4MDNlYWMx
Li5mYWI1N2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzA4LDcgKzMw
OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzTWFpblJlc291cmNlKTsKIAogICAgIHZv
aWQgY2xlYXJQcm92aXNpb25hbExvYWQoKTsKLSAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRl
ZChQYXNzUmVmUHRyPENhY2hlZFBhZ2U+KTsKKyAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRl
ZChDYWNoZWRQYWdlKik7CiAgICAgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKTsKIAogICAgIFN1
YnN0aXR1dGVEYXRhIGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChjb25zdCBLVVJMJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCA5MGNkYzM3
Li40MTY4M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAKQEAgLTIyNCwyMSArMjI0LDIxIEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVE
b2N1bWVudFN0YXRlKCkKIAogdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6aW52YWxpZGF0ZUN1cnJl
bnRJdGVtQ2FjaGVkUGFnZSgpCiB7Ci0gICAgLy8gV2hlbiB3ZSBhcmUgcHJlLWNvbW1pdCwgdGhl
IGN1cnJlbnRJdGVtIGlzIHdoZXJlIHRoZSBwYWdlQ2FjaGUgZGF0YSByZXNpZGVzICAgIAotICAg
IENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBwYWdlQ2FjaGUoKS0+Z2V0KGN1cnJlbnRJdGVtKCkp
OworICAgIC8vIFdoZW4gd2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50SXRlbSBpcyB3aGVy
ZSBhbnkgcGFnZSBjYWNoZSBkYXRhIHJlc2lkZXMuCisgICAgaWYgKCFwYWdlQ2FjaGUoKS0+Z2V0
KGN1cnJlbnRJdGVtKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBPd25QdHI8Q2FjaGVkUGFn
ZT4gY2FjaGVkUGFnZSA9IHBhZ2VDYWNoZSgpLT50YWtlKGN1cnJlbnRJdGVtKCkpOwogCiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgYSBncm90ZXNxdWUgaGFjayB0byBmaXggPHJkYXI6Ly9wcm9ibGVt
LzQwNTkwNTk+IENyYXNoIGluIFJlbmRlckZsb3c6OmRldGFjaAogICAgIC8vIFNvbWVob3cgdGhl
IFBhZ2VTdGF0ZSBvYmplY3QgaXMgbm90IHByb3Blcmx5IHVwZGF0ZWQsIGFuZCBpcyBob2xkaW5n
IG9udG8gYSBzdGFsZSBkb2N1bWVudC4KICAgICAvLyBCb3RoIFhjb2RlIGFuZCBGaWxlTWFrZXIg
c2VlIHRoaXMgY3Jhc2gsIFNhZmFyaSBkb2VzIG5vdC4KICAgICAKLSAgICBBU1NFUlQoIWNhY2hl
ZFBhZ2UgfHwgY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwot
ICAgIGlmIChjYWNoZWRQYWdlICYmIGNhY2hlZFBhZ2UtPmRvY3VtZW50KCkgPT0gbV9mcmFtZS5k
b2N1bWVudCgpKSB7CisgICAgQVNTRVJUKGNhY2hlZFBhZ2UtPmRvY3VtZW50KCkgPT0gbV9mcmFt
ZS5kb2N1bWVudCgpKTsKKyAgICBpZiAoY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1l
LmRvY3VtZW50KCkpIHsKICAgICAgICAgY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKS0+c2V0SW5QYWdl
Q2FjaGUoZmFsc2UpOwogICAgICAgICBjYWNoZWRQYWdlLT5jbGVhcigpOwogICAgIH0KLSAgICAK
LSAgICBpZiAoY2FjaGVkUGFnZSkKLSAgICAgICAgcGFnZUNhY2hlKCktPnJlbW92ZShjdXJyZW50
SXRlbSgpKTsKIH0KIAogYm9vbCBIaXN0b3J5Q29udHJvbGxlcjo6c2hvdWxkU3RvcExvYWRpbmdG
b3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogdGFyZ2V0SXRlbSkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>