<?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>136855</bug_id>
          
          <creation_ts>2014-09-16 05:43:16 -0700</creation_ts>
          <short_desc>[Curl] Sometimes incomplete or empty content can be loaded from cache.</short_desc>
          <delta_ts>2014-09-16 12:22:50 -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>WebCore Misc.</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>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex.christensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>stavila</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035450</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-09-16 05:43:16 -0700</bug_when>
    <thetext>Sometimes, when two requests with the same url are started at the same time, there is a possibility of loading incomplete or empty content from the cache. The first request will create the new cache entry, and start loading the content into the cache. The second request will assume the content is cached, and start loading from the cache. But if the first request is not finished yet, empty or imcomplete content will be loaded.
This happens because the method CurlCacheEntry::isLoading() is returning the wrong status in the time period between the headers are received, and the content data is received.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035451</commentid>
    <comment_count>1</comment_count>
      <attachid>238177</attachid>
    <who name="">peavo</who>
    <bug_when>2014-09-16 06:01:15 -0700</bug_when>
    <thetext>Created attachment 238177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035472</commentid>
    <comment_count>2</comment_count>
      <attachid>238177</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2014-09-16 08:47:41 -0700</bug_when>
    <thetext>Comment on attachment 238177
Patch

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

&gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:75
&gt; +    return m_isLoading;

This method could now become const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035484</commentid>
    <comment_count>3</comment_count>
      <attachid>238184</attachid>
    <who name="">peavo</who>
    <bug_when>2014-09-16 09:52:28 -0700</bug_when>
    <thetext>Created attachment 238184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035485</commentid>
    <comment_count>4</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-09-16 09:52:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 238177 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238177&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:75
&gt; &gt; +    return m_isLoading;
&gt; 
&gt; This method could now become const.

Thanks :) Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035513</commentid>
    <comment_count>5</comment_count>
      <attachid>238184</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-09-16 11:24:44 -0700</bug_when>
    <thetext>Comment on attachment 238184
Patch

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

This looks mostly good.  r- only because it needs another patch and I have a question.

&gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:119
&gt; +    if (buffer.size() &gt; 0)

is buffer.size() signed?  I think this should just be if (buffer.size()).

&gt; Source/WebCore/platform/network/curl/CurlCacheManager.cpp:221
&gt; +            cacheEntry-&gt;setIsLoading(true);

This not only sets the loading flag, but it calls openContentFile.  Is this intentional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035517</commentid>
    <comment_count>6</comment_count>
      <attachid>238189</attachid>
    <who name="">peavo</who>
    <bug_when>2014-09-16 11:31:42 -0700</bug_when>
    <thetext>Created attachment 238189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035518</commentid>
    <comment_count>7</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-09-16 11:39:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 238184 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238184&amp;action=review
&gt; 
&gt; This looks mostly good.  r- only because it needs another patch and I have a question.
&gt; 

Thanks for the review :) I have updated the patch.

&gt; &gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:119
&gt; &gt; +    if (buffer.size() &gt; 0)
&gt; 
&gt; is buffer.size() signed?  I think this should just be if (buffer.size()).
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlCacheManager.cpp:221
&gt; &gt; +            cacheEntry-&gt;setIsLoading(true);
&gt; 
&gt; This not only sets the loading flag, but it calls openContentFile.  Is this intentional?

Yes, when there are responses with only headers, and no content, we need to create the content file (which will be empty). Otherwise it will never be created since we never receive any content data. When another request for the same url tries to retrieve the content data from the cache, the file will not exist, and the request will fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035521</commentid>
    <comment_count>8</comment_count>
      <attachid>238189</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-09-16 11:46:40 -0700</bug_when>
    <thetext>Comment on attachment 238189
Patch

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

&gt; Source/WebCore/platform/network/curl/CurlCacheManager.cpp:221
&gt; +            cacheEntry-&gt;setIsLoading(true);

Why is this line added here?  Should it be added in other places?  Did it work without this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035523</commentid>
    <comment_count>9</comment_count>
      <attachid>238189</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-09-16 11:47:35 -0700</bug_when>
    <thetext>Comment on attachment 238189
Patch

Oh, ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035538</commentid>
    <comment_count>10</comment_count>
      <attachid>238189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-16 12:22:47 -0700</bug_when>
    <thetext>Comment on attachment 238189
Patch

Clearing flags on attachment: 238189

Committed r173666: &lt;http://trac.webkit.org/changeset/173666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035539</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-16 12:22:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238177</attachid>
            <date>2014-09-16 06:01:15 -0700</date>
            <delta_ts>2014-09-16 09:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136855-20140916150108.patch</filename>
            <type>text/plain</type>
            <size>4940</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA5LTE2ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBTb21ldGlt
ZXMgaW5jb21wbGV0ZSBvciBlbXB0eSBjb250ZW50IGNhbiBiZSBsb2FkZWQgZnJvbSBjYWNoZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWV0aW1l
cywgd2hlbiB0d28gcmVxdWVzdHMgd2l0aCB0aGUgc2FtZSB1cmwgYXJlIHN0YXJ0ZWQgYXQgdGhl
IHNhbWUgdGltZSwKKyAgICAgICAgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBsb2FkaW5nIGlu
Y29tcGxldGUgb3IgZW1wdHkgY29udGVudCBmcm9tIHRoZSBjYWNoZS4KKyAgICAgICAgVGhpcyBo
YXBwZW5zIGJlY2F1c2UgdGhlIG1ldGhvZCBDdXJsQ2FjaGVFbnRyeTo6aXNMb2FkaW5nKCkgaXMg
cmV0dXJuaW5nIHRoZSB3cm9uZyBzdGF0dXMKKyAgICAgICAgaW4gdGhlIHRpbWUgcGVyaW9kIGJl
dHdlZW4gdGhlIGhlYWRlcnMgYXJlIHJlY2VpdmVkLCBhbmQgdGhlIGNvbnRlbnQgZGF0YSBpcyBy
ZWNlaXZlZC4KKyAgICAgICAgVGhpcyBjYW4gYmUgZml4ZWQgYnkgdXNpbmcgYSBmbGFnIGZvciB0
aGUgbG9hZCBzdGF0dXMsIGluc3RlYWQgb2YgY2hlY2tpbmcgd2hldGhlcgorICAgICAgICB0aGUg
Y29udGVudCBmaWxlIGlzIG9wZW4uIAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5OjpD
dXJsQ2FjaGVFbnRyeSk6IEluaXRpYWxpemUgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybENhY2hlRW50cnk6OmlzTG9hZGluZyk6IFJldHVybiBsb2FkaW5nIGZsYWcuCisgICAg
ICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRyeTo6ZGlkRmFpbCk6IENhbGwgbmV3IG1ldGhvZCB0
byBzZXQgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlRW50cnk6OmRp
ZEZpbmlzaExvYWRpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5
OjpzZXRJc0xvYWRpbmcpOiBBZGRlZCBuZXcgbWV0aG9kIHRvIHNldCBsb2FkaW5nIGZsYWcuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6IEFkZGVkIGxv
YWRpbmcgZmxhZyBhbmQgbmV3IG1ldGhvZCB0byBzZXQgaXQuCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogQ2FsbCBuZXcgbWV0aG9kIHRvIHNl
dCBsb2FkaW5nIGZsYWcuCisKIDIwMTQtMDktMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbR1N0cmVhbWVyXSBodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLWF1dGguaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9u
IDE3MzY1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgQ3VybENhY2hlRW50
cnk6OkN1cmxDYWNoZUVudHJ5KGNvbnN0IFN0cgogICAgICwgbV9lbnRyeVNpemUoMCkKICAgICAs
IG1fZXhwaXJlRGF0ZSgtMSkKICAgICAsIG1faGVhZGVyUGFyc2VkKGZhbHNlKQorICAgICwgbV9p
c0xvYWRpbmcoZmFsc2UpCiAgICAgLCBtX2pvYihqb2IpCiB7CiAgICAgZ2VuZXJhdGVCYXNlRmls
ZW5hbWUodXJsLmxhdGluMSgpKTsKQEAgLTcxLDcgKzcyLDcgQEAgQ3VybENhY2hlRW50cnk6On5D
dXJsQ2FjaGVFbnRyeSgpCiAKIGJvb2wgQ3VybENhY2hlRW50cnk6OmlzTG9hZGluZygpCiB7Ci0g
ICAgcmV0dXJuIGlzSGFuZGxlVmFsaWQobV9jb250ZW50RmlsZSk7CisgICAgcmV0dXJuIG1faXNM
b2FkaW5nOwogfQogCiAvLyBDYWNoZSBtYW5hZ2VyIHNob3VsZCBpbnZhbGlkYXRlIHRoZSBlbnRy
eSBvbiBmYWxzZQpAQCAtMTE1LDcgKzExNiw5IEBAIGJvb2wgQ3VybENhY2hlRW50cnk6OnJlYWRD
YWNoZWREYXRhKFJlc28KICAgICBpZiAoIWxvYWRGaWxlVG9CdWZmZXIobV9jb250ZW50RmlsZW5h
bWUsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGpvYi0+Z2V0SW50ZXJu
YWwoKS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKGpvYiwgYnVmZmVyLmRhdGEoKSwgYnVmZmVy
LnNpemUoKSwgMCk7CisgICAgaWYgKGJ1ZmZlci5zaXplKCkgPiAwKQorICAgICAgICBqb2ItPmdl
dEludGVybmFsKCktPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShqb2IsIGJ1ZmZlci5kYXRhKCks
IGJ1ZmZlci5zaXplKCksIDApOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE5OSwxMiAr
MjAyLDEyIEBAIHZvaWQgQ3VybENhY2hlRW50cnk6OnNldFJlc3BvbnNlRnJvbUNhY2gKIHZvaWQg
Q3VybENhY2hlRW50cnk6OmRpZEZhaWwoKQogewogICAgIC8vIFRoZSBjYWNoZSBtYW5hZ2VyIHdp
bGwgY2FsbCBpbnZhbGlkYXRlKCkKLSAgICBjbG9zZUNvbnRlbnRGaWxlKCk7CisgICAgc2V0SXNM
b2FkaW5nKGZhbHNlKTsKIH0KIAogdm9pZCBDdXJsQ2FjaGVFbnRyeTo6ZGlkRmluaXNoTG9hZGlu
ZygpCiB7Ci0gICAgY2xvc2VDb250ZW50RmlsZSgpOworICAgIHNldElzTG9hZGluZyhmYWxzZSk7
CiB9CiAKIHZvaWQgQ3VybENhY2hlRW50cnk6OmdlbmVyYXRlQmFzZUZpbGVuYW1lKGNvbnN0IENT
dHJpbmcmIHVybCkKQEAgLTM0Niw2ICszNDksMTUgQEAgYm9vbCBDdXJsQ2FjaGVFbnRyeTo6cGFy
c2VSZXNwb25zZUhlYWRlcgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEN1cmxDYWNoZUVu
dHJ5OjpzZXRJc0xvYWRpbmcoYm9vbCBpc0xvYWRpbmcpCit7CisgICAgbV9pc0xvYWRpbmcgPSBp
c0xvYWRpbmc7CisgICAgaWYgKG1faXNMb2FkaW5nKQorICAgICAgICBvcGVuQ29udGVudEZpbGUo
KTsKKyAgICBlbHNlCisgICAgICAgIGNsb3NlQ29udGVudEZpbGUoKTsKK30KKwogc2l6ZV90IEN1
cmxDYWNoZUVudHJ5OjplbnRyeVNpemUoKQogewogICAgIGlmICghbV9lbnRyeVNpemUpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q2FjaGVFbnRyeS5oCShyZXZpc2lvbiAxNzM2NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiAr
NjEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHBhcnNlUmVzcG9uc2VIZWFkZXJzKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKIAorICAgIHZvaWQgc2V0SXNMb2FkaW5nKGJvb2wpOworCiAgICAg
Y29uc3QgUmVzb3VyY2VIYW5kbGUqIGdldEpvYigpIGNvbnN0IHsgcmV0dXJuIG1fam9iOyB9CiAK
IHByaXZhdGU6CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZW50cnlT
aXplOwogICAgIGRvdWJsZSBtX2V4cGlyZURhdGU7CiAgICAgYm9vbCBtX2hlYWRlclBhcnNlZDsK
KyAgICBib29sIG1faXNMb2FkaW5nOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX2NhY2hlZFJl
c3BvbnNlOwogICAgIEhUVFBIZWFkZXJNYXAgbV9yZXF1ZXN0SGVhZGVyczsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hl
TWFuYWdlci5jcHAJKHJldmlzaW9uIDE3MzY1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE4
LDYgKzIxOCw3IEBAIHZvaWQgQ3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnMKICAg
ICAgICAgYXV0byBjYWNoZUVudHJ5ID0gc3RkOjptYWtlX3VuaXF1ZTxDdXJsQ2FjaGVFbnRyeT4o
dXJsLCAmam9iLCBtX2NhY2hlRGlyKTsKICAgICAgICAgYm9vbCBjYWNoZWFibGUgPSBjYWNoZUVu
dHJ5LT5wYXJzZVJlc3BvbnNlSGVhZGVycyhyZXNwb25zZSk7CiAgICAgICAgIGlmIChjYWNoZWFi
bGUpIHsKKyAgICAgICAgICAgIGNhY2hlRW50cnktPnNldElzTG9hZGluZyh0cnVlKTsKICAgICAg
ICAgICAgIG1fTFJVRW50cnlMaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KHVybCk7CiAgICAgICAg
ICAgICBtX2luZGV4LnNldCh1cmwsIFdURjo6bW92ZShjYWNoZUVudHJ5KSk7CiAgICAgICAgICAg
ICBzYXZlUmVzcG9uc2VIZWFkZXJzKHVybCwgcmVzcG9uc2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238184</attachid>
            <date>2014-09-16 09:52:28 -0700</date>
            <delta_ts>2014-09-16 11:31:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136855-20140916185221.patch</filename>
            <type>text/plain</type>
            <size>5227</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA5LTE2ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBTb21ldGlt
ZXMgaW5jb21wbGV0ZSBvciBlbXB0eSBjb250ZW50IGNhbiBiZSBsb2FkZWQgZnJvbSBjYWNoZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWV0aW1l
cywgd2hlbiB0d28gcmVxdWVzdHMgd2l0aCB0aGUgc2FtZSB1cmwgYXJlIHN0YXJ0ZWQgYXQgdGhl
IHNhbWUgdGltZSwKKyAgICAgICAgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBsb2FkaW5nIGlu
Y29tcGxldGUgb3IgZW1wdHkgY29udGVudCBmcm9tIHRoZSBjYWNoZS4KKyAgICAgICAgVGhpcyBo
YXBwZW5zIGJlY2F1c2UgdGhlIG1ldGhvZCBDdXJsQ2FjaGVFbnRyeTo6aXNMb2FkaW5nKCkgaXMg
cmV0dXJuaW5nIHRoZSB3cm9uZyBzdGF0dXMKKyAgICAgICAgaW4gdGhlIHRpbWUgcGVyaW9kIGJl
dHdlZW4gdGhlIGhlYWRlcnMgYXJlIHJlY2VpdmVkLCBhbmQgdGhlIGNvbnRlbnQgZGF0YSBpcyBy
ZWNlaXZlZC4KKyAgICAgICAgVGhpcyBjYW4gYmUgZml4ZWQgYnkgdXNpbmcgYSBmbGFnIGZvciB0
aGUgbG9hZCBzdGF0dXMsIGluc3RlYWQgb2YgY2hlY2tpbmcgd2hldGhlcgorICAgICAgICB0aGUg
Y29udGVudCBmaWxlIGlzIG9wZW4uIAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5OjpD
dXJsQ2FjaGVFbnRyeSk6IEluaXRpYWxpemUgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybENhY2hlRW50cnk6OmlzTG9hZGluZyk6IFJldHVybiBsb2FkaW5nIGZsYWcuCisgICAg
ICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRyeTo6ZGlkRmFpbCk6IENhbGwgbmV3IG1ldGhvZCB0
byBzZXQgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlRW50cnk6OmRp
ZEZpbmlzaExvYWRpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5
OjpzZXRJc0xvYWRpbmcpOiBBZGRlZCBuZXcgbWV0aG9kIHRvIHNldCBsb2FkaW5nIGZsYWcuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6IEFkZGVkIGxv
YWRpbmcgZmxhZyBhbmQgbmV3IG1ldGhvZCB0byBzZXQgaXQuCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogQ2FsbCBuZXcgbWV0aG9kIHRvIHNl
dCBsb2FkaW5nIGZsYWcuCisKIDIwMTQtMDktMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbR1N0cmVhbWVyXSBodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLWF1dGguaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9u
IDE3MzY1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgQ3VybENhY2hlRW50
cnk6OkN1cmxDYWNoZUVudHJ5KGNvbnN0IFN0cgogICAgICwgbV9lbnRyeVNpemUoMCkKICAgICAs
IG1fZXhwaXJlRGF0ZSgtMSkKICAgICAsIG1faGVhZGVyUGFyc2VkKGZhbHNlKQorICAgICwgbV9p
c0xvYWRpbmcoZmFsc2UpCiAgICAgLCBtX2pvYihqb2IpCiB7CiAgICAgZ2VuZXJhdGVCYXNlRmls
ZW5hbWUodXJsLmxhdGluMSgpKTsKQEAgLTY5LDkgKzcwLDkgQEAgQ3VybENhY2hlRW50cnk6On5D
dXJsQ2FjaGVFbnRyeSgpCiAgICAgY2xvc2VDb250ZW50RmlsZSgpOwogfQogCi1ib29sIEN1cmxD
YWNoZUVudHJ5Ojppc0xvYWRpbmcoKQorYm9vbCBDdXJsQ2FjaGVFbnRyeTo6aXNMb2FkaW5nKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaXNIYW5kbGVWYWxpZChtX2NvbnRlbnRGaWxlKTsKKyAgICBy
ZXR1cm4gbV9pc0xvYWRpbmc7CiB9CiAKIC8vIENhY2hlIG1hbmFnZXIgc2hvdWxkIGludmFsaWRh
dGUgdGhlIGVudHJ5IG9uIGZhbHNlCkBAIC0xMTUsNyArMTE2LDkgQEAgYm9vbCBDdXJsQ2FjaGVF
bnRyeTo6cmVhZENhY2hlZERhdGEoUmVzbwogICAgIGlmICghbG9hZEZpbGVUb0J1ZmZlcihtX2Nv
bnRlbnRGaWxlbmFtZSwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgam9i
LT5nZXRJbnRlcm5hbCgpLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoam9iLCBidWZmZXIuZGF0
YSgpLCBidWZmZXIuc2l6ZSgpLCAwKTsKKyAgICBpZiAoYnVmZmVyLnNpemUoKSA+IDApCisgICAg
ICAgIGpvYi0+Z2V0SW50ZXJuYWwoKS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKGpvYiwgYnVm
ZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgMCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMTk5LDEyICsyMDIsMTIgQEAgdm9pZCBDdXJsQ2FjaGVFbnRyeTo6c2V0UmVzcG9uc2VGcm9t
Q2FjaAogdm9pZCBDdXJsQ2FjaGVFbnRyeTo6ZGlkRmFpbCgpCiB7CiAgICAgLy8gVGhlIGNhY2hl
IG1hbmFnZXIgd2lsbCBjYWxsIGludmFsaWRhdGUoKQotICAgIGNsb3NlQ29udGVudEZpbGUoKTsK
KyAgICBzZXRJc0xvYWRpbmcoZmFsc2UpOwogfQogCiB2b2lkIEN1cmxDYWNoZUVudHJ5OjpkaWRG
aW5pc2hMb2FkaW5nKCkKIHsKLSAgICBjbG9zZUNvbnRlbnRGaWxlKCk7CisgICAgc2V0SXNMb2Fk
aW5nKGZhbHNlKTsKIH0KIAogdm9pZCBDdXJsQ2FjaGVFbnRyeTo6Z2VuZXJhdGVCYXNlRmlsZW5h
bWUoY29uc3QgQ1N0cmluZyYgdXJsKQpAQCAtMzQ2LDYgKzM0OSwxNSBAQCBib29sIEN1cmxDYWNo
ZUVudHJ5OjpwYXJzZVJlc3BvbnNlSGVhZGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQg
Q3VybENhY2hlRW50cnk6OnNldElzTG9hZGluZyhib29sIGlzTG9hZGluZykKK3sKKyAgICBtX2lz
TG9hZGluZyA9IGlzTG9hZGluZzsKKyAgICBpZiAobV9pc0xvYWRpbmcpCisgICAgICAgIG9wZW5D
b250ZW50RmlsZSgpOworICAgIGVsc2UKKyAgICAgICAgY2xvc2VDb250ZW50RmlsZSgpOworfQor
CiBzaXplX3QgQ3VybENhY2hlRW50cnk6OmVudHJ5U2l6ZSgpCiB7CiAgICAgaWYgKCFtX2VudHJ5
U2l6ZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
YWNoZUVudHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgJKHJldmlzaW9uIDE3MzY1NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB+Q3VybENhY2hlRW50cnkoKTsKIAogICAg
IGJvb2wgaXNDYWNoZWQoKTsKLSAgICBib29sIGlzTG9hZGluZygpOworICAgIGJvb2wgaXNMb2Fk
aW5nKCkgY29uc3Q7CiAgICAgc2l6ZV90IGVudHJ5U2l6ZSgpOwogICAgIEhUVFBIZWFkZXJNYXAm
IHJlcXVlc3RIZWFkZXJzKCkgeyByZXR1cm4gbV9yZXF1ZXN0SGVhZGVyczsgfQogCkBAIC02MSw2
ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFyc2VSZXNwb25zZUhlYWRlcnMoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogCisgICAgdm9pZCBzZXRJc0xvYWRpbmcoYm9vbCk7CisKICAg
ICBjb25zdCBSZXNvdXJjZUhhbmRsZSogZ2V0Sm9iKCkgY29uc3QgeyByZXR1cm4gbV9qb2I7IH0K
IAogcHJpdmF0ZToKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9lbnRy
eVNpemU7CiAgICAgZG91YmxlIG1fZXhwaXJlRGF0ZTsKICAgICBib29sIG1faGVhZGVyUGFyc2Vk
OworICAgIGJvb2wgbV9pc0xvYWRpbmc7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fY2FjaGVk
UmVzcG9uc2U7CiAgICAgSFRUUEhlYWRlck1hcCBtX3JlcXVlc3RIZWFkZXJzOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTczNjU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTgsNiArMjE4LDcgQEAgdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9ucwog
ICAgICAgICBhdXRvIGNhY2hlRW50cnkgPSBzdGQ6Om1ha2VfdW5pcXVlPEN1cmxDYWNoZUVudHJ5
Pih1cmwsICZqb2IsIG1fY2FjaGVEaXIpOwogICAgICAgICBib29sIGNhY2hlYWJsZSA9IGNhY2hl
RW50cnktPnBhcnNlUmVzcG9uc2VIZWFkZXJzKHJlc3BvbnNlKTsKICAgICAgICAgaWYgKGNhY2hl
YWJsZSkgeworICAgICAgICAgICAgY2FjaGVFbnRyeS0+c2V0SXNMb2FkaW5nKHRydWUpOwogICAg
ICAgICAgICAgbV9MUlVFbnRyeUxpc3QucHJlcGVuZE9yTW92ZVRvRmlyc3QodXJsKTsKICAgICAg
ICAgICAgIG1faW5kZXguc2V0KHVybCwgV1RGOjptb3ZlKGNhY2hlRW50cnkpKTsKICAgICAgICAg
ICAgIHNhdmVSZXNwb25zZUhlYWRlcnModXJsLCByZXNwb25zZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238189</attachid>
            <date>2014-09-16 11:31:42 -0700</date>
            <delta_ts>2014-09-16 12:22:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136855-20140916203135.patch</filename>
            <type>text/plain</type>
            <size>5223</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA5LTE2ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBTb21ldGlt
ZXMgaW5jb21wbGV0ZSBvciBlbXB0eSBjb250ZW50IGNhbiBiZSBsb2FkZWQgZnJvbSBjYWNoZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWV0aW1l
cywgd2hlbiB0d28gcmVxdWVzdHMgd2l0aCB0aGUgc2FtZSB1cmwgYXJlIHN0YXJ0ZWQgYXQgdGhl
IHNhbWUgdGltZSwKKyAgICAgICAgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBsb2FkaW5nIGlu
Y29tcGxldGUgb3IgZW1wdHkgY29udGVudCBmcm9tIHRoZSBjYWNoZS4KKyAgICAgICAgVGhpcyBo
YXBwZW5zIGJlY2F1c2UgdGhlIG1ldGhvZCBDdXJsQ2FjaGVFbnRyeTo6aXNMb2FkaW5nKCkgaXMg
cmV0dXJuaW5nIHRoZSB3cm9uZyBzdGF0dXMKKyAgICAgICAgaW4gdGhlIHRpbWUgcGVyaW9kIGJl
dHdlZW4gdGhlIGhlYWRlcnMgYXJlIHJlY2VpdmVkLCBhbmQgdGhlIGNvbnRlbnQgZGF0YSBpcyBy
ZWNlaXZlZC4KKyAgICAgICAgVGhpcyBjYW4gYmUgZml4ZWQgYnkgdXNpbmcgYSBmbGFnIGZvciB0
aGUgbG9hZCBzdGF0dXMsIGluc3RlYWQgb2YgY2hlY2tpbmcgd2hldGhlcgorICAgICAgICB0aGUg
Y29udGVudCBmaWxlIGlzIG9wZW4uIAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5OjpD
dXJsQ2FjaGVFbnRyeSk6IEluaXRpYWxpemUgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybENhY2hlRW50cnk6OmlzTG9hZGluZyk6IFJldHVybiBsb2FkaW5nIGZsYWcuCisgICAg
ICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRyeTo6ZGlkRmFpbCk6IENhbGwgbmV3IG1ldGhvZCB0
byBzZXQgbG9hZGluZyBmbGFnLgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlRW50cnk6OmRp
ZEZpbmlzaExvYWRpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5
OjpzZXRJc0xvYWRpbmcpOiBBZGRlZCBuZXcgbWV0aG9kIHRvIHNldCBsb2FkaW5nIGZsYWcuCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6IEFkZGVkIGxv
YWRpbmcgZmxhZyBhbmQgbmV3IG1ldGhvZCB0byBzZXQgaXQuCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogQ2FsbCBuZXcgbWV0aG9kIHRvIHNl
dCBsb2FkaW5nIGZsYWcuCisKIDIwMTQtMDktMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbR1N0cmVhbWVyXSBodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLWF1dGguaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9u
IDE3MzY1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgQ3VybENhY2hlRW50
cnk6OkN1cmxDYWNoZUVudHJ5KGNvbnN0IFN0cgogICAgICwgbV9lbnRyeVNpemUoMCkKICAgICAs
IG1fZXhwaXJlRGF0ZSgtMSkKICAgICAsIG1faGVhZGVyUGFyc2VkKGZhbHNlKQorICAgICwgbV9p
c0xvYWRpbmcoZmFsc2UpCiAgICAgLCBtX2pvYihqb2IpCiB7CiAgICAgZ2VuZXJhdGVCYXNlRmls
ZW5hbWUodXJsLmxhdGluMSgpKTsKQEAgLTY5LDkgKzcwLDkgQEAgQ3VybENhY2hlRW50cnk6On5D
dXJsQ2FjaGVFbnRyeSgpCiAgICAgY2xvc2VDb250ZW50RmlsZSgpOwogfQogCi1ib29sIEN1cmxD
YWNoZUVudHJ5Ojppc0xvYWRpbmcoKQorYm9vbCBDdXJsQ2FjaGVFbnRyeTo6aXNMb2FkaW5nKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaXNIYW5kbGVWYWxpZChtX2NvbnRlbnRGaWxlKTsKKyAgICBy
ZXR1cm4gbV9pc0xvYWRpbmc7CiB9CiAKIC8vIENhY2hlIG1hbmFnZXIgc2hvdWxkIGludmFsaWRh
dGUgdGhlIGVudHJ5IG9uIGZhbHNlCkBAIC0xMTUsNyArMTE2LDkgQEAgYm9vbCBDdXJsQ2FjaGVF
bnRyeTo6cmVhZENhY2hlZERhdGEoUmVzbwogICAgIGlmICghbG9hZEZpbGVUb0J1ZmZlcihtX2Nv
bnRlbnRGaWxlbmFtZSwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgam9i
LT5nZXRJbnRlcm5hbCgpLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoam9iLCBidWZmZXIuZGF0
YSgpLCBidWZmZXIuc2l6ZSgpLCAwKTsKKyAgICBpZiAoYnVmZmVyLnNpemUoKSkKKyAgICAgICAg
am9iLT5nZXRJbnRlcm5hbCgpLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoam9iLCBidWZmZXIu
ZGF0YSgpLCBidWZmZXIuc2l6ZSgpLCAwKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0x
OTksMTIgKzIwMiwxMiBAQCB2b2lkIEN1cmxDYWNoZUVudHJ5OjpzZXRSZXNwb25zZUZyb21DYWNo
CiB2b2lkIEN1cmxDYWNoZUVudHJ5OjpkaWRGYWlsKCkKIHsKICAgICAvLyBUaGUgY2FjaGUgbWFu
YWdlciB3aWxsIGNhbGwgaW52YWxpZGF0ZSgpCi0gICAgY2xvc2VDb250ZW50RmlsZSgpOworICAg
IHNldElzTG9hZGluZyhmYWxzZSk7CiB9CiAKIHZvaWQgQ3VybENhY2hlRW50cnk6OmRpZEZpbmlz
aExvYWRpbmcoKQogewotICAgIGNsb3NlQ29udGVudEZpbGUoKTsKKyAgICBzZXRJc0xvYWRpbmco
ZmFsc2UpOwogfQogCiB2b2lkIEN1cmxDYWNoZUVudHJ5OjpnZW5lcmF0ZUJhc2VGaWxlbmFtZShj
b25zdCBDU3RyaW5nJiB1cmwpCkBAIC0zNDYsNiArMzQ5LDE1IEBAIGJvb2wgQ3VybENhY2hlRW50
cnk6OnBhcnNlUmVzcG9uc2VIZWFkZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBDdXJs
Q2FjaGVFbnRyeTo6c2V0SXNMb2FkaW5nKGJvb2wgaXNMb2FkaW5nKQoreworICAgIG1faXNMb2Fk
aW5nID0gaXNMb2FkaW5nOworICAgIGlmIChtX2lzTG9hZGluZykKKyAgICAgICAgb3BlbkNvbnRl
bnRGaWxlKCk7CisgICAgZWxzZQorICAgICAgICBjbG9zZUNvbnRlbnRGaWxlKCk7Cit9CisKIHNp
emVfdCBDdXJsQ2FjaGVFbnRyeTo6ZW50cnlTaXplKCkKIHsKICAgICBpZiAoIW1fZW50cnlTaXpl
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hl
RW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlRW50cnkuaAkocmV2aXNpb24gMTczNjU3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH5DdXJsQ2FjaGVFbnRyeSgpOwogCiAgICAgYm9v
bCBpc0NhY2hlZCgpOwotICAgIGJvb2wgaXNMb2FkaW5nKCk7CisgICAgYm9vbCBpc0xvYWRpbmco
KSBjb25zdDsKICAgICBzaXplX3QgZW50cnlTaXplKCk7CiAgICAgSFRUUEhlYWRlck1hcCYgcmVx
dWVzdEhlYWRlcnMoKSB7IHJldHVybiBtX3JlcXVlc3RIZWFkZXJzOyB9CiAKQEAgLTYxLDYgKzYx
LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBwYXJzZVJlc3BvbnNlSGVhZGVycyhjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAKKyAgICB2b2lkIHNldElzTG9hZGluZyhib29sKTsKKwogICAgIGNv
bnN0IFJlc291cmNlSGFuZGxlKiBnZXRKb2IoKSBjb25zdCB7IHJldHVybiBtX2pvYjsgfQogCiBw
cml2YXRlOgpAQCAtNzMsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2VudHJ5U2l6
ZTsKICAgICBkb3VibGUgbV9leHBpcmVEYXRlOwogICAgIGJvb2wgbV9oZWFkZXJQYXJzZWQ7Cisg
ICAgYm9vbCBtX2lzTG9hZGluZzsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgbV9jYWNoZWRSZXNw
b25zZTsKICAgICBIVFRQSGVhZGVyTWFwIG1fcmVxdWVzdEhlYWRlcnM7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1h
bmFnZXIuY3BwCShyZXZpc2lvbiAxNzM2NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw2
ICsyMTgsNyBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zCiAgICAg
ICAgIGF1dG8gY2FjaGVFbnRyeSA9IHN0ZDo6bWFrZV91bmlxdWU8Q3VybENhY2hlRW50cnk+KHVy
bCwgJmpvYiwgbV9jYWNoZURpcik7CiAgICAgICAgIGJvb2wgY2FjaGVhYmxlID0gY2FjaGVFbnRy
eS0+cGFyc2VSZXNwb25zZUhlYWRlcnMocmVzcG9uc2UpOwogICAgICAgICBpZiAoY2FjaGVhYmxl
KSB7CisgICAgICAgICAgICBjYWNoZUVudHJ5LT5zZXRJc0xvYWRpbmcodHJ1ZSk7CiAgICAgICAg
ICAgICBtX0xSVUVudHJ5TGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCh1cmwpOwogICAgICAgICAg
ICAgbV9pbmRleC5zZXQodXJsLCBXVEY6Om1vdmUoY2FjaGVFbnRyeSkpOwogICAgICAgICAgICAg
c2F2ZVJlc3BvbnNlSGVhZGVycyh1cmwsIHJlc3BvbnNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>