<?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>139339</bug_id>
          
          <creation_ts>2014-12-06 04:10:09 -0800</creation_ts>
          <short_desc>[Curl] Cache entry is sometimes deleted when request receives a not modified response.</short_desc>
          <delta_ts>2014-12-10 10:53:52 -0800</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>galpeter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053007</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-12-06 04:10:09 -0800</bug_when>
    <thetext>Sometimes it happens that a request receives a not modified response, but the cache entry has already been deleted by another request.
This can be avoided by locking a cache entry while there are pending requests for the cache entry&apos;s url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053008</commentid>
    <comment_count>1</comment_count>
      <attachid>242710</attachid>
    <who name="">peavo</who>
    <bug_when>2014-12-06 04:42:54 -0800</bug_when>
    <thetext>Created attachment 242710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053366</commentid>
    <comment_count>2</comment_count>
      <attachid>242807</attachid>
    <who name="">peavo</who>
    <bug_when>2014-12-08 06:48:52 -0800</bug_when>
    <thetext>Created attachment 242807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053419</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-12-08 10:14:59 -0800</bug_when>
    <thetext>Using a hash set as a mutex seems quite excessive. There are mutex implementations in webkit. I know this is not designed for multi threaded use, but I think it would be better to use a mutex as a mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053805</commentid>
    <comment_count>4</comment_count>
      <attachid>242927</attachid>
    <who name="">peavo</who>
    <bug_when>2014-12-09 09:02:44 -0800</bug_when>
    <thetext>Created attachment 242927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053807</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-12-09 09:03:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Using a hash set as a mutex seems quite excessive. There are mutex
&gt; implementations in webkit. I know this is not designed for multi threaded
&gt; use, but I think it would be better to use a mutex as a mutex.

Thanks for reviewing :)

Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053909</commentid>
    <comment_count>6</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-12-09 12:23:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created attachment 242927 [details]
&gt; Patch

I&apos;m not sure that it&apos;s correct to add the cache headers to the header map in the ResourceRequest object (changed in the last patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054015</commentid>
    <comment_count>7</comment_count>
      <attachid>242927</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-12-09 18:39:28 -0800</bug_when>
    <thetext>Comment on attachment 242927
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        but the cache entry has already been deleted by another request.

How would another request have already deleted the cached response? I&apos;m not entirely convinced that locking will solve this problem.

&gt; Source/WebCore/platform/network/curl/CurlCacheEntry.h:83
&gt; +    int m_lockCount;

Why is this not a bool? How would more than one request get the lock?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054138</commentid>
    <comment_count>8</comment_count>
      <attachid>243016</attachid>
    <who name="">peavo</who>
    <bug_when>2014-12-10 07:33:06 -0800</bug_when>
    <thetext>Created attachment 243016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054144</commentid>
    <comment_count>9</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-12-10 07:48:01 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 242927 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=242927&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        but the cache entry has already been deleted by another request.
&gt; 
&gt; How would another request have already deleted the cached response? I&apos;m not
&gt; entirely convinced that locking will solve this problem.
&gt;

Another request will delete and rebuild the entry if it receives a 200 OK response for the same url. The problem is usually seen with css files, which often are loaded by several requests concurrently, resulting in documents without styling. 
 
&gt; &gt; Source/WebCore/platform/network/curl/CurlCacheEntry.h:83
&gt; &gt; +    int m_lockCount;
&gt; 
&gt; Why is this not a bool? How would more than one request get the lock?

I have probably used the wrong term here. It&apos;s not an exclusive lock, it&apos;s more of a reference count of the cache entry, to make sure nobody is deleting the cache entry when there are pending request, which will need the entry soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054213</commentid>
    <comment_count>10</comment_count>
      <attachid>243016</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-12-10 10:11:43 -0800</bug_when>
    <thetext>Comment on attachment 243016
Patch

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

&gt; Source/WebCore/platform/network/curl/CurlCacheEntry.h:85
&gt; +    ListHashSet&lt;ResourceHandle*&gt; m_clients;

Right now this could be an int count, but this isn&apos;t many more operations and it could be useful to have a record of exactly which clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054235</commentid>
    <comment_count>11</comment_count>
      <attachid>243016</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-10 10:53:48 -0800</bug_when>
    <thetext>Comment on attachment 243016
Patch

Clearing flags on attachment: 243016

Committed r177080: &lt;http://trac.webkit.org/changeset/177080&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054237</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-10 10:53:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242710</attachid>
            <date>2014-12-06 04:42:54 -0800</date>
            <delta_ts>2014-12-08 06:48:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139339-20141206134311.patch</filename>
            <type>text/plain</type>
            <size>6731</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NjkwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE0LTEyLTA2ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBDYWNoZSBl
bnRyeSBpcyBzb21ldGltZXMgZGVsZXRlZCB3aGVuIHJlcXVlc3QgcmVjZWl2ZXMgYSBub3QgbW9k
aWZpZWQgcmVzcG9uc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzkzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTb21ldGltZXMgaXQgaGFwcGVucyB0aGF0IGEgcmVxdWVzdCByZWNlaXZlcyBhIG5v
dCBtb2RpZmllZCByZXNwb25zZSwKKyAgICAgICAgYnV0IHRoZSBjYWNoZSBlbnRyeSBoYXMgYWxy
ZWFkeSBiZWVuIGRlbGV0ZWQgYnkgYW5vdGhlciByZXF1ZXN0LgorICAgICAgICBUaGlzIGNhbiBi
ZSBhdm9pZGVkIGJ5IGxvY2tpbmcgYSBjYWNoZSBlbnRyeSB3aGlsZSB0aGVyZSBhcmUgcGVuZGlu
ZworICAgICAgICByZXF1ZXN0cyBmb3IgdGhlIGNhY2hlIGVudHJ5J3MgdXJsLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxDYWNoZUVudHJ5OjpDdXJsQ2FjaGVFbnRyeSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDdXJs
Q2FjaGVFbnRyeTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRyeTo6dW5s
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5Ojppc0xvY2tlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybENhY2hlTWFuYWdlcjo6bG9ja0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxD
YWNoZU1hbmFnZXI6OnVubG9ja0VudHJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIdHRwTm90TW9k
aWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGFuZGxlKToKKwogMjAxNC0x
Mi0wNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFY
OiBJIGNhbm5vdCBhY3RpdmF0ZSBsaW5rcyBvbiB0aGUgbW9iaWxlIHZlcnNpb24gb2YgbmV3cy5n
b29nbGUuY29tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENhY2hlRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9uIDE3NjkwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgQ3VybENhY2hlRW50cnk6OkN1cmxDYWNoZUVudHJ5
KGNvbnN0IFN0cgogICAgICwgbV9leHBpcmVEYXRlKC0xKQogICAgICwgbV9oZWFkZXJQYXJzZWQo
ZmFsc2UpCiAgICAgLCBtX2lzTG9hZGluZyhmYWxzZSkKKyAgICAsIG1fbG9jaygwKQogICAgICwg
bV9qb2Ioam9iKQogewogICAgIGdlbmVyYXRlQmFzZUZpbGVuYW1lKHVybC5sYXRpbjEoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENhY2hlRW50cnkuaAkocmV2aXNpb24gMTc2OTA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYg
KzYzLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNMb2FkaW5nKGJvb2wpOwogCisgICAg
dm9pZCBsb2NrKCkgeyBtX2xvY2srKzsgfQorICAgIHZvaWQgdW5sb2NrKCkgeyBtX2xvY2stLTsg
fQorICAgIGludCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jayA+IDA7IH0KKwogICAg
IGNvbnN0IFJlc291cmNlSGFuZGxlKiBnZXRKb2IoKSBjb25zdCB7IHJldHVybiBtX2pvYjsgfQog
CiBwcml2YXRlOgpAQCAtNzYsNiArODAsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2V4cGly
ZURhdGU7CiAgICAgYm9vbCBtX2hlYWRlclBhcnNlZDsKICAgICBib29sIG1faXNMb2FkaW5nOwor
ICAgIGludCBtX2xvY2s7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fY2FjaGVkUmVzcG9uc2U7
CiAgICAgSFRUUEhlYWRlck1hcCBtX3JlcXVlc3RIZWFkZXJzOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2Vy
LmNwcAkocmV2aXNpb24gMTc2OTA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMTAgKzIw
NywxMSBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zCiAgICAgaWYg
KHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0KSB7CiAgICAgICAgIHJlYWRDYWNoZWRE
YXRhKHVybCwgJmpvYiwgcmVzcG9uc2UpOwogICAgICAgICBtX0xSVUVudHJ5TGlzdC5wcmVwZW5k
T3JNb3ZlVG9GaXJzdCh1cmwpOworICAgICAgICB1bmxvY2tFbnRyeSh1cmwpOwogICAgIH0KICAg
ICBlbHNlIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDIwMCkgewogICAgICAgICBh
dXRvIGl0ID0gbV9pbmRleC5maW5kKHVybCk7Ci0gICAgICAgIGlmIChpdCAhPSBtX2luZGV4LmVu
ZCgpICYmIGl0LT52YWx1ZS0+aXNMb2FkaW5nKCkpCisgICAgICAgIGlmIChpdCAhPSBtX2luZGV4
LmVuZCgpICYmIChpdC0+dmFsdWUtPmlzTG9hZGluZygpIHx8IGl0LT52YWx1ZS0+aXNMb2NrZWQo
KSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlRW50cnko
dXJsKTsgLy8gSW52YWxpZGF0ZSBleGlzdGluZyBlbnRyeSBvbiAyMDAKQEAgLTMyNiw2ICszMjcs
MjYgQEAgdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRGYWlsKFJlc291cmNlSAogICAgIGludmFs
aWRhdGVDYWNoZUVudHJ5KHVybCk7CiB9CiAKK3ZvaWQgQ3VybENhY2hlTWFuYWdlcjo6bG9ja0Vu
dHJ5KGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIGlmIChtX2Rpc2FibGVkKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIGl0ID0gbV9pbmRleC5maW5kKHVybCk7CisgICAgaWYgKGl0ICE9
IG1faW5kZXguZW5kKCkpCisgICAgICAgIGl0LT52YWx1ZS0+bG9jaygpOworfQorCit2b2lkIEN1
cmxDYWNoZU1hbmFnZXI6OnVubG9ja0VudHJ5KGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIGlm
IChtX2Rpc2FibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGl0ID0gbV9pbmRleC5m
aW5kKHVybCk7CisgICAgaWYgKGl0ICE9IG1faW5kZXguZW5kKCkpCisgICAgICAgIGl0LT52YWx1
ZS0+dW5sb2NrKCk7Cit9CisKIHZvaWQgQ3VybENhY2hlTWFuYWdlcjo6cmVhZENhY2hlZERhdGEo
Y29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNlSGFuZGxlKiBqb2IsIFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQogewogICAgIGlmIChtX2Rpc2FibGVkKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5oCShy
ZXZpc2lvbiAxNzY5MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENhY2hlTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUmKTsKICAgICB2b2lk
IGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUmKTsKIAorICAgIHZvaWQgbG9ja0VudHJ5KGNvbnN0IFN0
cmluZyYgdXJsKTsKKyAgICB2b2lkIHVubG9ja0VudHJ5KGNvbnN0IFN0cmluZyYgdXJsKTsKKwog
cHJpdmF0ZToKICAgICBDdXJsQ2FjaGVNYW5hZ2VyKCk7CiAgICAgfkN1cmxDYWNoZU1hbmFnZXIo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNzY5MDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCwxMSBAQCBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNIdHRwQXV0aGVudGljYXRpb24oCiAgICAgcmV0dXJuIHN0YXR1c0NvZGUgPT0gNDAx
OwogfQogCitpbmxpbmUgc3RhdGljIGJvb2wgaXNIdHRwTm90TW9kaWZpZWQoaW50IHN0YXR1c0Nv
ZGUpCit7CisgICAgcmV0dXJuIHN0YXR1c0NvZGUgPT0gMzA0OworfQorCiBSZXNvdXJjZUhhbmRs
ZU1hbmFnZXI6OlJlc291cmNlSGFuZGxlTWFuYWdlcigpCiAgICAgOiBtX2Rvd25sb2FkVGltZXIo
KnRoaXMsICZSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjaykKICAg
ICAsIG1fY29va2llSmFyRmlsZU5hbWUoY29va2llSmFyUGF0aCgpKQpAQCAtNTQ2LDcgKzU1MSw3
IEBAIHN0YXRpYyBzaXplX3QgaGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLAogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKGNsaWVudCkgewotICAgICAgICAgICAgaWYgKGh0dHBDb2RlID09IDMwNCkg
eworICAgICAgICAgICAgaWYgKGlzSHR0cE5vdE1vZGlmaWVkKGh0dHBDb2RlKSkgewogICAgICAg
ICAgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsID0gam9iLT5maXJzdFJlcXVlc3QoKS51cmwoKS5z
dHJpbmcoKTsKICAgICAgICAgICAgICAgICBDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgp
LmdldENhY2hlZFJlc3BvbnNlKHVybCwgZC0+bV9yZXNwb25zZSk7CiAgICAgICAgICAgICB9CkBA
IC0xMDgxLDYgKzEwODYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6
ZUhhCiAgICAgICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGpvYi0+Zmlyc3RSZXF1
ZXN0KCkuaHR0cEhlYWRlckZpZWxkcygpOwogCiAgICAgICAgIGlmIChDdXJsQ2FjaGVNYW5hZ2Vy
OjpnZXRJbnN0YW5jZSgpLmlzQ2FjaGVkKHVybCkpIHsKKyAgICAgICAgICAgIEN1cmxDYWNoZU1h
bmFnZXI6OmdldEluc3RhbmNlKCkubG9ja0VudHJ5KHVybCk7CiAgICAgICAgICAgICBIVFRQSGVh
ZGVyTWFwJiByZXF1ZXN0SGVhZGVycyA9IEN1cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCku
cmVxdWVzdEhlYWRlcnModXJsKTsKIAogICAgICAgICAgICAgLy8gYXBwZW5kIGFkZGl0aW9uYWwg
Y2FjaGUgaW5mb3JtYXRpb24KQEAgLTEwOTAsNiArMTA5Niw5IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjppbml0aWFsaXplSGEKICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzLnNl
dChpdC0+a2V5LCBpdC0+dmFsdWUpOwogICAgICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAg
ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjdXN0b21IZWFkZXJzLnJlbW92ZShI
VFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlKTsKKyAgICAgICAgICAgIGN1c3RvbUhlYWRl
cnMucmVtb3ZlKEhUVFBIZWFkZXJOYW1lOjpJZk5vbmVNYXRjaCk7CiAgICAgICAgIH0KIAogICAg
ICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjdXN0b21IZWFkZXJzLmVu
ZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242807</attachid>
            <date>2014-12-08 06:48:52 -0800</date>
            <delta_ts>2014-12-09 09:02:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139339-20141208154925.patch</filename>
            <type>text/plain</type>
            <size>6727</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Njk0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTEyLTA4ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBDYWNoZSBl
bnRyeSBpcyBzb21ldGltZXMgZGVsZXRlZCB3aGVuIHJlcXVlc3QgcmVjZWl2ZXMgYSBub3QgbW9k
aWZpZWQgcmVzcG9uc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzkzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTb21ldGltZXMgaXQgaGFwcGVucyB0aGF0IGEgcmVxdWVzdCByZWNlaXZlcyBhIG5v
dCBtb2RpZmllZCByZXNwb25zZSwKKyAgICAgICAgYnV0IHRoZSBjYWNoZSBlbnRyeSBoYXMgYWxy
ZWFkeSBiZWVuIGRlbGV0ZWQgYnkgYW5vdGhlciByZXF1ZXN0LgorICAgICAgICBUaGlzIGNhbiBi
ZSBhdm9pZGVkIGJ5IGxvY2tpbmcgYSBjYWNoZSBlbnRyeSB3aGlsZSB0aGVyZSBhcmUgcGVuZGlu
ZworICAgICAgICByZXF1ZXN0cyBmb3IgdGhlIGNhY2hlIGVudHJ5J3MgdXJsLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsQ2FjaGVFbnRyeTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVF
bnRyeTo6dW5sb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5Ojppc0xvY2tl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmRpZEZhaWwpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybENhY2hlTWFuYWdlcjo6bG9ja0VudHJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxDYWNoZU1hbmFnZXI6OnVubG9ja0VudHJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNI
dHRwTm90TW9kaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGFuZGxlKToK
KwogMjAxNC0xMi0wOCAgRG9yb24gV2xvc2Nob3dza3kgIDxkb3Jvbl93bG9zY2hvd3NreUBzY2Vl
Lm5ldD4KIAogICAgICAgICBXZWJraXQgdXNpbmcgSGFyZmJ1enogZG9lcyBub3QgZGlzcGxheSBB
cmFiaWMgc2NyaXB0IGNvcnJlY3RseQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgJKHJldmlzaW9uIDE3Njk0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
c3BvbnNlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNjMsNiArNjUsMTAg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc0xvYWRpbmcoYm9vbCk7CiAKKyAgICB2b2lkIGxv
Y2soUmVzb3VyY2VIYW5kbGUqIGpvYikgeyBtX2pvYkxpc3QuYWRkKGpvYik7IH0KKyAgICB2b2lk
IHVubG9jayhSZXNvdXJjZUhhbmRsZSogam9iKSB7IG1fam9iTGlzdC5yZW1vdmUoam9iKTsgfQor
ICAgIGludCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fam9iTGlzdC5zaXplKCkgPiAwOyB9
CisKICAgICBjb25zdCBSZXNvdXJjZUhhbmRsZSogZ2V0Sm9iKCkgY29uc3QgeyByZXR1cm4gbV9q
b2I7IH0KIAogcHJpdmF0ZToKQEAgLTc2LDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUg
bV9leHBpcmVEYXRlOwogICAgIGJvb2wgbV9oZWFkZXJQYXJzZWQ7CiAgICAgYm9vbCBtX2lzTG9h
ZGluZzsKKyAgICBMaXN0SGFzaFNldDxSZXNvdXJjZUhhbmRsZSo+IG1fam9iTGlzdDsKIAogICAg
IFJlc291cmNlUmVzcG9uc2UgbV9jYWNoZWRSZXNwb25zZTsKICAgICBIVFRQSGVhZGVyTWFwIG1f
cmVxdWVzdEhlYWRlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNzY5NDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCwxMyArMjA0LDE1IEBAIHZvaWQgQ3VybENhY2hl
TWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnMKIAogICAgIGNvbnN0IFN0cmluZyYgdXJsID0gam9i
LmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpOwogCisgICAgdW5sb2NrRW50cnkodXJsLCAm
am9iKTsKKwogICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCkgewogICAg
ICAgICByZWFkQ2FjaGVkRGF0YSh1cmwsICZqb2IsIHJlc3BvbnNlKTsKICAgICAgICAgbV9MUlVF
bnRyeUxpc3QucHJlcGVuZE9yTW92ZVRvRmlyc3QodXJsKTsKICAgICB9CiAgICAgZWxzZSBpZiAo
cmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAyMDApIHsKICAgICAgICAgYXV0byBpdCA9IG1f
aW5kZXguZmluZCh1cmwpOwotICAgICAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSAmJiBpdC0+
dmFsdWUtPmlzTG9hZGluZygpKQorICAgICAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSAmJiAo
aXQtPnZhbHVlLT5pc0xvYWRpbmcoKSB8fCBpdC0+dmFsdWUtPmlzTG9ja2VkKCkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGludmFsaWRhdGVDYWNoZUVudHJ5KHVybCk7IC8vIElu
dmFsaWRhdGUgZXhpc3RpbmcgZW50cnkgb24gMjAwCkBAIC0zMjYsNiArMzI4LDI2IEBAIHZvaWQg
Q3VybENhY2hlTWFuYWdlcjo6ZGlkRmFpbChSZXNvdXJjZUgKICAgICBpbnZhbGlkYXRlQ2FjaGVF
bnRyeSh1cmwpOwogfQogCit2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvY2tFbnRyeShjb25zdCBT
dHJpbmcmIHVybCwgUmVzb3VyY2VIYW5kbGUqIGpvYikKK3sKKyAgICBpZiAobV9kaXNhYmxlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9IG1faW5kZXguZmluZCh1cmwpOworICAg
IGlmIChpdCAhPSBtX2luZGV4LmVuZCgpKQorICAgICAgICBpdC0+dmFsdWUtPmxvY2soam9iKTsK
K30KKwordm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjp1bmxvY2tFbnRyeShjb25zdCBTdHJpbmcmIHVy
bCwgUmVzb3VyY2VIYW5kbGUqIGpvYikKK3sKKyAgICBpZiAobV9kaXNhYmxlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBpdCA9IG1faW5kZXguZmluZCh1cmwpOworICAgIGlmIChpdCAh
PSBtX2luZGV4LmVuZCgpKQorICAgICAgICBpdC0+dmFsdWUtPnVubG9jayhqb2IpOworfQorCiB2
b2lkIEN1cmxDYWNoZU1hbmFnZXI6OnJlYWRDYWNoZWREYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBS
ZXNvdXJjZUhhbmRsZSogam9iLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBp
ZiAobV9kaXNhYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMTc2OTQ3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlJik7CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlJik7CiAKKyAgICB2b2lkIGxvY2tFbnRyeShjb25zdCBTdHJpbmcmIHVybCwgUmVzb3VyY2VI
YW5kbGUqIGpvYik7CisgICAgdm9pZCB1bmxvY2tFbnRyeShjb25zdCBTdHJpbmcmIHVybCwgUmVz
b3VyY2VIYW5kbGUqIGpvYik7CisKIHByaXZhdGU6CiAgICAgQ3VybENhY2hlTWFuYWdlcigpOwog
ICAgIH5DdXJsQ2FjaGVNYW5hZ2VyKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNw
cAkocmV2aXNpb24gMTc2OTQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw2ICsy
MjgsMTEgQEAgaW5saW5lIHN0YXRpYyBib29sIGlzSHR0cEF1dGhlbnRpY2F0aW9uKAogICAgIHJl
dHVybiBzdGF0dXNDb2RlID09IDQwMTsKIH0KIAoraW5saW5lIHN0YXRpYyBib29sIGlzSHR0cE5v
dE1vZGlmaWVkKGludCBzdGF0dXNDb2RlKQoreworICAgIHJldHVybiBzdGF0dXNDb2RlID09IDMw
NDsKK30KKwogUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXIoKQog
ICAgIDogbV9kb3dubG9hZFRpbWVyKCp0aGlzLCAmUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3du
bG9hZFRpbWVyQ2FsbGJhY2spCiAgICAgLCBtX2Nvb2tpZUphckZpbGVOYW1lKGNvb2tpZUphclBh
dGgoKSkKQEAgLTU0Niw3ICs1NTEsNyBAQCBzdGF0aWMgc2l6ZV90IGhlYWRlckNhbGxiYWNrKGNo
YXIqIHB0ciwKICAgICAgICAgfQogCiAgICAgICAgIGlmIChjbGllbnQpIHsKLSAgICAgICAgICAg
IGlmIChodHRwQ29kZSA9PSAzMDQpIHsKKyAgICAgICAgICAgIGlmIChpc0h0dHBOb3RNb2RpZmll
ZChodHRwQ29kZSkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHVybCA9IGpvYi0+
Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgQ3VybENhY2hl
TWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5nZXRDYWNoZWRSZXNwb25zZSh1cmwsIGQtPm1fcmVzcG9u
c2UpOwogICAgICAgICAgICAgfQpAQCAtMTA4MSw2ICsxMDg2LDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYQogICAgICAgICBIVFRQSGVhZGVyTWFwIGN1c3RvbUhl
YWRlcnMgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLmh0dHBIZWFkZXJGaWVsZHMoKTsKIAogICAgICAg
ICBpZiAoQ3VybENhY2hlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5pc0NhY2hlZCh1cmwpKSB7Cisg
ICAgICAgICAgICBDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmxvY2tFbnRyeSh1cmws
IGpvYik7CiAgICAgICAgICAgICBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyA9IEN1cmxD
YWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVxdWVzdEhlYWRlcnModXJsKTsKIAogICAgICAg
ICAgICAgLy8gYXBwZW5kIGFkZGl0aW9uYWwgY2FjaGUgaW5mb3JtYXRpb24KQEAgLTEwOTAsNiAr
MTA5NiwxMCBAQCB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhCiAgICAg
ICAgICAgICAgICAgY3VzdG9tSGVhZGVycy5zZXQoaXQtPmtleSwgaXQtPnZhbHVlKTsKICAgICAg
ICAgICAgICAgICArK2l0OwogICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHNlbmQgYW55IGNhY2hlIGhlYWRlcnMgd2hlbiB1
cmwgaXMgbm90IGNhY2hlZC4KKyAgICAgICAgICAgIGN1c3RvbUhlYWRlcnMucmVtb3ZlKEhUVFBI
ZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UpOworICAgICAgICAgICAgY3VzdG9tSGVhZGVycy5y
ZW1vdmUoSFRUUEhlYWRlck5hbWU6OklmTm9uZU1hdGNoKTsKICAgICAgICAgfQogCiAgICAgICAg
IEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGN1c3RvbUhlYWRlcnMuZW5kKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242927</attachid>
            <date>2014-12-09 09:02:44 -0800</date>
            <delta_ts>2014-12-10 07:32:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139339-20141209180312.patch</filename>
            <type>text/plain</type>
            <size>7358</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzAxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE0LTEyLTA5ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBDYWNoZSBl
bnRyeSBpcyBzb21ldGltZXMgZGVsZXRlZCB3aGVuIHJlcXVlc3QgcmVjZWl2ZXMgYSBub3QgbW9k
aWZpZWQgcmVzcG9uc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzkzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTb21ldGltZXMgaXQgaGFwcGVucyB0aGF0IGEgcmVxdWVzdCByZWNlaXZlcyBhIG5v
dCBtb2RpZmllZCByZXNwb25zZSwKKyAgICAgICAgYnV0IHRoZSBjYWNoZSBlbnRyeSBoYXMgYWxy
ZWFkeSBiZWVuIGRlbGV0ZWQgYnkgYW5vdGhlciByZXF1ZXN0LgorICAgICAgICBUaGlzIGNhbiBi
ZSBhdm9pZGVkIGJ5IGxvY2tpbmcgYSBjYWNoZSBlbnRyeSB3aGlsZSB0aGVyZSBhcmUgcGVuZGlu
ZworICAgICAgICByZXF1ZXN0cyBmb3IgdGhlIGNhY2hlIGVudHJ5J3MgdXJsLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxDYWNoZUVudHJ5OjpDdXJsQ2FjaGVFbnRyeSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDdXJs
Q2FjaGVFbnRyeTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVFbnRyeTo6dW5s
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZUVudHJ5Ojppc0xvY2tlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybENhY2hlTWFuYWdlcjo6bG9ja0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxD
YWNoZU1hbmFnZXI6OnVubG9ja0VudHJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIdHRwTm90TW9k
aWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGFuZGxlKToKKwogMjAxNC0x
Mi0wOSAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiBp
bnZhbGlkYXRpbmcgZnVsbHNjcmVlbiwgY2FuY2VsIGluc3RlYWQgb2Ygc3RvcCBvcHRpbWl6ZWRG
dWxsc2NmcmVlbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ2FjaGVFbnRyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcAkocmV2aXNpb24gMTc3MDE1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQCBDdXJsQ2FjaGVFbnRyeTo6Q3VybENhY2hlRW50
cnkoY29uc3QgU3RyCiAgICAgLCBtX2hlYWRlclBhcnNlZChmYWxzZSkKICAgICAsIG1faXNMb2Fk
aW5nKGZhbHNlKQogICAgICwgbV9qb2Ioam9iKQorICAgICwgbV9sb2NrQ291bnQoMCkKIHsKICAg
ICBnZW5lcmF0ZUJhc2VGaWxlbmFtZSh1cmwubGF0aW4xKCkpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuaAko
cmV2aXNpb24gMTc3MDE1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZUVudHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDEwIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0SXNMb2FkaW5nKGJvb2wpOwogCisgICAgdm9pZCBsb2NrKCkgeyBt
X2xvY2tDb3VudCsrOyB9CisgICAgdm9pZCB1bmxvY2soKSB7IG1fbG9ja0NvdW50LS07IH0KKyAg
ICBpbnQgaXNMb2NrZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2tDb3VudCA+IDA7IH0KKwogICAg
IGNvbnN0IFJlc291cmNlSGFuZGxlKiBnZXRKb2IoKSBjb25zdCB7IHJldHVybiBtX2pvYjsgfQog
CiBwcml2YXRlOgpAQCAtNzYsNiArODAsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2V4cGly
ZURhdGU7CiAgICAgYm9vbCBtX2hlYWRlclBhcnNlZDsKICAgICBib29sIG1faXNMb2FkaW5nOwor
ICAgIGludCBtX2xvY2tDb3VudDsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgbV9jYWNoZWRSZXNw
b25zZTsKICAgICBIVFRQSGVhZGVyTWFwIG1fcmVxdWVzdEhlYWRlcnM7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1h
bmFnZXIuY3BwCShyZXZpc2lvbiAxNzcwMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCwx
MyArMjA0LDE2IEBAIHZvaWQgQ3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnMKIAog
ICAgIGNvbnN0IFN0cmluZyYgdXJsID0gam9iLmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygp
OwogCisgICAgaWYgKGpvYi5maXJzdFJlcXVlc3QoKS5pc0NvbmRpdGlvbmFsKCkpCisgICAgICAg
IHVubG9ja0VudHJ5KHVybCk7CisKICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9
PSAzMDQpIHsKICAgICAgICAgcmVhZENhY2hlZERhdGEodXJsLCAmam9iLCByZXNwb25zZSk7CiAg
ICAgICAgIG1fTFJVRW50cnlMaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KHVybCk7CiAgICAgfQog
ICAgIGVsc2UgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMjAwKSB7CiAgICAgICAg
IGF1dG8gaXQgPSBtX2luZGV4LmZpbmQodXJsKTsKLSAgICAgICAgaWYgKGl0ICE9IG1faW5kZXgu
ZW5kKCkgJiYgaXQtPnZhbHVlLT5pc0xvYWRpbmcoKSkKKyAgICAgICAgaWYgKGl0ICE9IG1faW5k
ZXguZW5kKCkgJiYgKGl0LT52YWx1ZS0+aXNMb2FkaW5nKCkgfHwgaXQtPnZhbHVlLT5pc0xvY2tl
ZCgpKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpbnZhbGlkYXRlQ2FjaGVFbnRy
eSh1cmwpOyAvLyBJbnZhbGlkYXRlIGV4aXN0aW5nIGVudHJ5IG9uIDIwMApAQCAtMzI2LDYgKzMy
OSwyNiBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmRpZEZhaWwoUmVzb3VyY2VICiAgICAgaW52
YWxpZGF0ZUNhY2hlRW50cnkodXJsKTsKIH0KIAordm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpsb2Nr
RW50cnkoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYgKG1fZGlzYWJsZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8gaXQgPSBtX2luZGV4LmZpbmQodXJsKTsKKyAgICBpZiAoaXQg
IT0gbV9pbmRleC5lbmQoKSkKKyAgICAgICAgaXQtPnZhbHVlLT5sb2NrKCk7Cit9CisKK3ZvaWQg
Q3VybENhY2hlTWFuYWdlcjo6dW5sb2NrRW50cnkoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAg
aWYgKG1fZGlzYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXQgPSBtX2luZGV4
LmZpbmQodXJsKTsKKyAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSkKKyAgICAgICAgaXQtPnZh
bHVlLT51bmxvY2soKTsKK30KKwogdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpyZWFkQ2FjaGVkRGF0
YShjb25zdCBTdHJpbmcmIHVybCwgUmVzb3VyY2VIYW5kbGUqIGpvYiwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fZGlzYWJsZWQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmgJ
KHJldmlzaW9uIDE3NzAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ2FjaGVNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSYpOwogICAgIHZv
aWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSYpOwogCisgICAgdm9pZCBsb2NrRW50cnkoY29uc3Qg
U3RyaW5nJiB1cmwpOworICAgIHZvaWQgdW5sb2NrRW50cnkoY29uc3QgU3RyaW5nJiB1cmwpOwor
CiBwcml2YXRlOgogICAgIEN1cmxDYWNoZU1hbmFnZXIoKTsKICAgICB+Q3VybENhY2hlTWFuYWdl
cigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE3NzAxNSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsNiArMjI4LDExIEBAIGlubGluZSBzdGF0
aWMgYm9vbCBpc0h0dHBBdXRoZW50aWNhdGlvbigKICAgICByZXR1cm4gc3RhdHVzQ29kZSA9PSA0
MDE7CiB9CiAKK2lubGluZSBzdGF0aWMgYm9vbCBpc0h0dHBOb3RNb2RpZmllZChpbnQgc3RhdHVz
Q29kZSkKK3sKKyAgICByZXR1cm4gc3RhdHVzQ29kZSA9PSAzMDQ7Cit9CisKIFJlc291cmNlSGFu
ZGxlTWFuYWdlcjo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyKCkKICAgICA6IG1fZG93bmxvYWRUaW1l
cigqdGhpcywgJlJlc291cmNlSGFuZGxlTWFuYWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKQog
ICAgICwgbV9jb29raWVKYXJGaWxlTmFtZShjb29raWVKYXJQYXRoKCkpCkBAIC01NDYsNyArNTUx
LDcgQEAgc3RhdGljIHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsCiAgICAgICAgIH0K
IAogICAgICAgICBpZiAoY2xpZW50KSB7Ci0gICAgICAgICAgICBpZiAoaHR0cENvZGUgPT0gMzA0
KSB7CisgICAgICAgICAgICBpZiAoaXNIdHRwTm90TW9kaWZpZWQoaHR0cENvZGUpKSB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwgPSBqb2ItPmZpcnN0UmVxdWVzdCgpLnVybCgp
LnN0cmluZygpOwogICAgICAgICAgICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNl
KCkuZ2V0Q2FjaGVkUmVzcG9uc2UodXJsLCBkLT5tX3Jlc3BvbnNlKTsKICAgICAgICAgICAgIH0K
QEAgLTEwNzgsMjAgKzEwODMsMjUgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmluaXRp
YWxpemVIYQogCiAgICAgc3RydWN0IGN1cmxfc2xpc3QqIGhlYWRlcnMgPSAwOwogICAgIGlmIChq
b2ItPmZpcnN0UmVxdWVzdCgpLmh0dHBIZWFkZXJGaWVsZHMoKS5zaXplKCkgPiAwKSB7Ci0gICAg
ICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGpvYi0+Zmlyc3RSZXF1ZXN0KCkuaHR0
cEhlYWRlckZpZWxkcygpOwogCiAgICAgICAgIGlmIChDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0
YW5jZSgpLmlzQ2FjaGVkKHVybCkpIHsKKyAgICAgICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6Omdl
dEluc3RhbmNlKCkubG9ja0VudHJ5KHVybCk7CiAgICAgICAgICAgICBIVFRQSGVhZGVyTWFwJiBy
ZXF1ZXN0SGVhZGVycyA9IEN1cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVxdWVzdEhl
YWRlcnModXJsKTsKIAogICAgICAgICAgICAgLy8gYXBwZW5kIGFkZGl0aW9uYWwgY2FjaGUgaW5m
b3JtYXRpb24KICAgICAgICAgICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
cmVxdWVzdEhlYWRlcnMuYmVnaW4oKTsKICAgICAgICAgICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IHJlcXVlc3RIZWFkZXJzLmVuZCgpOwogICAgICAgICAgICAgd2hpbGUg
KGl0ICE9IGVuZCkgewotICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcnMuc2V0KGl0LT5rZXks
IGl0LT52YWx1ZSk7CisgICAgICAgICAgICAgICAgam9iLT5maXJzdFJlcXVlc3QoKS5zZXRIVFRQ
SGVhZGVyRmllbGQoaXQtPmtleSwgaXQtPnZhbHVlKTsKICAgICAgICAgICAgICAgICArK2l0Owog
ICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIGRvbid0IHNlbmQgYW55IGNhY2hlIGhlYWRlcnMgd2hlbiB1cmwgaXMgbm90IGNhY2hlZC4K
KyAgICAgICAgICAgIGpvYi0+Zmlyc3RSZXF1ZXN0KCkubWFrZVVuY29uZGl0aW9uYWwoKTsKICAg
ICAgICAgfQogCisgICAgICAgIGNvbnN0IEhUVFBIZWFkZXJNYXAmIGN1c3RvbUhlYWRlcnMgPSBq
b2ItPmZpcnN0UmVxdWVzdCgpLmh0dHBIZWFkZXJGaWVsZHMoKTsKKwogICAgICAgICBIVFRQSGVh
ZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjdXN0b21IZWFkZXJzLmVuZCgpOwogICAgICAg
ICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY3VzdG9tSGVhZGVycy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdC0+
a2V5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243016</attachid>
            <date>2014-12-10 07:33:06 -0800</date>
            <delta_ts>2014-12-10 10:53:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139339-20141210163335.patch</filename>
            <type>text/plain</type>
            <size>6846</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzA1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTEyLTEwICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBDYWNoZSBl
bnRyeSBpcyBzb21ldGltZXMgZGVsZXRlZCB3aGVuIHJlcXVlc3QgcmVjZWl2ZXMgYSBub3QgbW9k
aWZpZWQgcmVzcG9uc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzkzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTb21ldGltZXMgaXQgaGFwcGVucyB0aGF0IGEgcmVxdWVzdCByZWNlaXZlcyBhIG5v
dCBtb2RpZmllZCByZXNwb25zZSwKKyAgICAgICAgYnV0IHRoZSBjYWNoZSBlbnRyeSBoYXMgYWxy
ZWFkeSBiZWVuIGRlbGV0ZWQgYnkgYW5vdGhlciByZXF1ZXN0LgorICAgICAgICBUaGlzIGNhbiBi
ZSBhdm9pZGVkIGJ5IGxvY2tpbmcgYSBjYWNoZSBlbnRyeSB3aGlsZSB0aGVyZSBhcmUgcGVuZGlu
ZworICAgICAgICByZXF1ZXN0cyBmb3IgdGhlIGNhY2hlIGVudHJ5J3MgdXJsLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsQ2FjaGVFbnRyeTo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxD
YWNoZUVudHJ5OjpyZW1vdmVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlRW50
cnk6Omhhc0NsaWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRG
YWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmFkZENhY2hlRW50cnlD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybENhY2hlTWFuYWdlcjo6cmVtb3ZlQ2FjaGVF
bnRyeUNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSHR0cE5vdE1vZGlmaWVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmhlYWRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZSk6CisKIDIwMTQtMTItMDkgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxpbmcgdG8g
YW5jaG9yIHRhZ3MgZG9lcyBub3RoaW5nIGluIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
YWNoZUVudHJ5LmgJKHJldmlzaW9uIDE3NzAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
Miw4IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNjMsNiArNjUsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJ
c0xvYWRpbmcoYm9vbCk7CiAKKyAgICB2b2lkIGFkZENsaWVudChSZXNvdXJjZUhhbmRsZSogam9i
KSB7IG1fY2xpZW50cy5hZGQoam9iKTsgfQorICAgIHZvaWQgcmVtb3ZlQ2xpZW50KFJlc291cmNl
SGFuZGxlKiBqb2IpIHsgbV9jbGllbnRzLnJlbW92ZShqb2IpOyB9CisgICAgaW50IGhhc0NsaWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudHMuc2l6ZSgpID4gMDsgfQorCiAgICAgY29uc3Qg
UmVzb3VyY2VIYW5kbGUqIGdldEpvYigpIGNvbnN0IHsgcmV0dXJuIG1fam9iOyB9CiAKIHByaXZh
dGU6CkBAIC03Niw2ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZXhwaXJlRGF0ZTsK
ICAgICBib29sIG1faGVhZGVyUGFyc2VkOwogICAgIGJvb2wgbV9pc0xvYWRpbmc7CisgICAgTGlz
dEhhc2hTZXQ8UmVzb3VyY2VIYW5kbGUqPiBtX2NsaWVudHM7CiAKICAgICBSZXNvdXJjZVJlc3Bv
bnNlIG1fY2FjaGVkUmVzcG9uc2U7CiAgICAgSFRUUEhlYWRlck1hcCBtX3JlcXVlc3RIZWFkZXJz
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1h
bmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTc3MDE1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDQsMTMgKzIwNCwxNSBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmRpZFJl
Y2VpdmVSZXNwb25zCiAKICAgICBjb25zdCBTdHJpbmcmIHVybCA9IGpvYi5maXJzdFJlcXVlc3Qo
KS51cmwoKS5zdHJpbmcoKTsKIAorICAgIHJlbW92ZUNhY2hlRW50cnlDbGllbnQodXJsLCAmam9i
KTsKKwogICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCkgewogICAgICAg
ICByZWFkQ2FjaGVkRGF0YSh1cmwsICZqb2IsIHJlc3BvbnNlKTsKICAgICAgICAgbV9MUlVFbnRy
eUxpc3QucHJlcGVuZE9yTW92ZVRvRmlyc3QodXJsKTsKICAgICB9CiAgICAgZWxzZSBpZiAocmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAyMDApIHsKICAgICAgICAgYXV0byBpdCA9IG1faW5k
ZXguZmluZCh1cmwpOwotICAgICAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSAmJiBpdC0+dmFs
dWUtPmlzTG9hZGluZygpKQorICAgICAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSAmJiAoaXQt
PnZhbHVlLT5pc0xvYWRpbmcoKSB8fCBpdC0+dmFsdWUtPmhhc0NsaWVudHMoKSkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlRW50cnkodXJsKTsgLy8gSW52
YWxpZGF0ZSBleGlzdGluZyBlbnRyeSBvbiAyMDAKQEAgLTMyNiw2ICszMjgsMjYgQEAgdm9pZCBD
dXJsQ2FjaGVNYW5hZ2VyOjpkaWRGYWlsKFJlc291cmNlSAogICAgIGludmFsaWRhdGVDYWNoZUVu
dHJ5KHVybCk7CiB9CiAKK3ZvaWQgQ3VybENhY2hlTWFuYWdlcjo6YWRkQ2FjaGVFbnRyeUNsaWVu
dChjb25zdCBTdHJpbmcmIHVybCwgUmVzb3VyY2VIYW5kbGUqIGpvYikKK3sKKyAgICBpZiAobV9k
aXNhYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdCA9IG1faW5kZXguZmluZCh1
cmwpOworICAgIGlmIChpdCAhPSBtX2luZGV4LmVuZCgpKQorICAgICAgICBpdC0+dmFsdWUtPmFk
ZENsaWVudChqb2IpOworfQorCit2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OnJlbW92ZUNhY2hlRW50
cnlDbGllbnQoY29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNlSGFuZGxlKiBqb2IpCit7CisgICAg
aWYgKG1fZGlzYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXQgPSBtX2luZGV4
LmZpbmQodXJsKTsKKyAgICBpZiAoaXQgIT0gbV9pbmRleC5lbmQoKSkKKyAgICAgICAgaXQtPnZh
bHVlLT5yZW1vdmVDbGllbnQoam9iKTsKK30KKwogdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpyZWFk
Q2FjaGVkRGF0YShjb25zdCBTdHJpbmcmIHVybCwgUmVzb3VyY2VIYW5kbGUqIGpvYiwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fZGlzYWJsZWQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVN
YW5hZ2VyLmgJKHJldmlzaW9uIDE3NzAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSYp
OwogICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSYpOwogCisgICAgdm9pZCBhZGRDYWNo
ZUVudHJ5Q2xpZW50KGNvbnN0IFN0cmluZyYgdXJsLCBSZXNvdXJjZUhhbmRsZSogam9iKTsKKyAg
ICB2b2lkIHJlbW92ZUNhY2hlRW50cnlDbGllbnQoY29uc3QgU3RyaW5nJiB1cmwsIFJlc291cmNl
SGFuZGxlKiBqb2IpOworCiBwcml2YXRlOgogICAgIEN1cmxDYWNoZU1hbmFnZXIoKTsKICAgICB+
Q3VybENhY2hlTWFuYWdlcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJl
dmlzaW9uIDE3NzAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsNiArMjI4LDEx
IEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc0h0dHBBdXRoZW50aWNhdGlvbigKICAgICByZXR1cm4g
c3RhdHVzQ29kZSA9PSA0MDE7CiB9CiAKK2lubGluZSBzdGF0aWMgYm9vbCBpc0h0dHBOb3RNb2Rp
ZmllZChpbnQgc3RhdHVzQ29kZSkKK3sKKyAgICByZXR1cm4gc3RhdHVzQ29kZSA9PSAzMDQ7Cit9
CisKIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyKCkKICAgICA6
IG1fZG93bmxvYWRUaW1lcigqdGhpcywgJlJlc291cmNlSGFuZGxlTWFuYWdlcjo6ZG93bmxvYWRU
aW1lckNhbGxiYWNrKQogICAgICwgbV9jb29raWVKYXJGaWxlTmFtZShjb29raWVKYXJQYXRoKCkp
CkBAIC01NDYsNyArNTUxLDcgQEAgc3RhdGljIHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBw
dHIsCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoY2xpZW50KSB7Ci0gICAgICAgICAgICBpZiAo
aHR0cENvZGUgPT0gMzA0KSB7CisgICAgICAgICAgICBpZiAoaXNIdHRwTm90TW9kaWZpZWQoaHR0
cENvZGUpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwgPSBqb2ItPmZpcnN0
UmVxdWVzdCgpLnVybCgpLnN0cmluZygpOwogICAgICAgICAgICAgICAgIEN1cmxDYWNoZU1hbmFn
ZXI6OmdldEluc3RhbmNlKCkuZ2V0Q2FjaGVkUmVzcG9uc2UodXJsLCBkLT5tX3Jlc3BvbnNlKTsK
ICAgICAgICAgICAgIH0KQEAgLTEwODEsNiArMTA4Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyOjppbml0aWFsaXplSGEKICAgICAgICAgSFRUUEhlYWRlck1hcCBjdXN0b21IZWFkZXJz
ID0gam9iLT5maXJzdFJlcXVlc3QoKS5odHRwSGVhZGVyRmllbGRzKCk7CiAKICAgICAgICAgaWYg
KEN1cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkuaXNDYWNoZWQodXJsKSkgeworICAgICAg
ICAgICAgQ3VybENhY2hlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5hZGRDYWNoZUVudHJ5Q2xpZW50
KHVybCwgam9iKTsKICAgICAgICAgICAgIEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzID0g
Q3VybENhY2hlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5yZXF1ZXN0SGVhZGVycyh1cmwpOwogCiAg
ICAgICAgICAgICAvLyBhcHBlbmQgYWRkaXRpb25hbCBjYWNoZSBpbmZvcm1hdGlvbgpAQCAtMTA5
MCw2ICsxMDk2LDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGEK
ICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzLnNldChpdC0+a2V5LCBpdC0+dmFsdWUpOwog
ICAgICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCBhbnkgY2FjaGUgaGVhZGVycyB3
aGVuIHVybCBpcyBub3QgY2FjaGVkLgorICAgICAgICAgICAgY3VzdG9tSGVhZGVycy5yZW1vdmUo
SFRUUEhlYWRlck5hbWU6OklmTW9kaWZpZWRTaW5jZSk7CisgICAgICAgICAgICBjdXN0b21IZWFk
ZXJzLnJlbW92ZShIVFRQSGVhZGVyTmFtZTo6SWZOb25lTWF0Y2gpOwogICAgICAgICB9CiAKICAg
ICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY3VzdG9tSGVhZGVycy5l
bmQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>