<?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>167497</bug_id>
          
          <creation_ts>2017-01-27 03:56:07 -0800</creation_ts>
          <short_desc>Implement Cache-control: immutable</short_desc>
          <delta_ts>2017-03-12 08:29:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>7raivis</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>mathias</cc>
    
    <cc>m.kurz+webkitbugs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1270612</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-27 03:56:07 -0800</bug_when>
    <thetext>Cache-control value &apos;immutable&apos; indicates that a subresource does not change and so does not need to be revalidated on a normal reload. This can significantly speed up reloads and reduce network traffic.

It is has been implemented in Firefox and is already used by Facebook.

https://tools.ietf.org/html/draft-mcmanus-immutable-00
https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270630</commentid>
    <comment_count>1</comment_count>
      <attachid>299930</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-27 06:50:20 -0800</bug_when>
    <thetext>Created attachment 299930
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270657</commentid>
    <comment_count>2</comment_count>
      <attachid>299930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-27 09:15:40 -0800</bug_when>
    <thetext>Comment on attachment 299930
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270675</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-27 10:20:16 -0800</bug_when>
    <thetext>We may want to implement Chrome-style reload behavior where non-expired subresources with explicit cache lifetime are never revalidated. This would make &apos;immutable&apos; support unnecessary. Meanwhile, lets try this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270676</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-27 10:21:04 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; We may want to implement Chrome-style reload behavior where non-expired
&gt; subresources with explicit cache lifetime are never revalidated. This would
&gt; make &apos;immutable&apos; support unnecessary. Meanwhile, lets try this.

Agreed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270686</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-01-27 10:35:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/30236250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270691</commentid>
    <comment_count>6</comment_count>
      <attachid>299930</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-27 10:45:39 -0800</bug_when>
    <thetext>Comment on attachment 299930
patch

Clearing flags on attachment: 299930

Committed r211288: &lt;http://trac.webkit.org/changeset/211288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270692</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-27 10:45:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299930</attachid>
            <date>2017-01-27 06:50:20 -0800</date>
            <delta_ts>2017-01-27 10:45:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cache-control-immutable.patch</filename>
            <type>text/plain</type>
            <size>11815</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTI4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE3LTAxLTI3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FjaGUtY29u
dHJvbDogaW1tdXRhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjc0OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDYWNoZS1jb250cm9sIHZhbHVlICdpbW11dGFibGUnIGluZGljYXRlcyB0aGF0IGEg
c3VicmVzb3VyY2UgZG9lcyBub3QgY2hhbmdlIGFuZCBzbyBkb2VzIG5vdCBuZWVkIHRvIGJlCisg
ICAgICAgIHJldmFsaWRhdGVkIG9uIGEgbm9ybWFsIHJlbG9hZC4gVGhpcyBjYW4gc2lnbmlmaWNh
bnRseSBzcGVlZCB1cCByZWxvYWRzIGFuZCByZWR1Y2UgbmV0d29yayB0cmFmZmljLgorCisgICAg
ICAgIEl0IGlzIGhhcyBiZWVuIGltcGxlbWVudGVkIGluIEZpcmVmb3ggYW5kIGlzIGFscmVhZHkg
dXNlZCBieSBGYWNlYm9vay4KKworICAgICAgICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
ZHJhZnQtbWNtYW51cy1pbW11dGFibGUtMDAKKyAgICAgICAgaHR0cHM6Ly9oYWNrcy5tb3ppbGxh
Lm9yZy8yMDE3LzAxL3VzaW5nLWltbXV0YWJsZS1jYWNoaW5nLXRvLXNwZWVkLXVwLXRoZS13ZWIv
CisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIENhY2hlLWNvbnRyb2w6IGltbXV0YWJs
ZSBmb3IgbWVtb3J5IGNhY2hlIG9ubHkuIEEgZGlzayBjYWNoZSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBkb2Vzbid0IHNlZW0gbmVjZXNzYXJ5IGFzIHRoZSByZXNvdXJjZSBpcyBiYXNpY2FsbHkg
YWx3YXlzIGV4cGVjdGVkIHRvIGJlIGluIG1lbW9yeSBjYWNoZSBvbiByZWxvYWQuCisKKyAgICAg
ICAgSW1tdXRhYmxlIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBodHRwcyBhcyBzdWdnZXN0ZWQgYnkg
dGhlIGRyYWZ0IHNwZWNpZmljYXRpb24gKGFuZCBHZWNrbyBpbXBsZW1lbnRhdGlvbikuCisKKyAg
ICAgICAgVGVzdDogaHR0cC90ZXN0cy9jYWNoZS9jYWNoZS1jb250cm9sLWltbXV0YWJsZS1odHRw
Lmh0bWwKKyAgICAgICAgICAgICAgaHR0cC90ZXN0cy9jYWNoZS9jYWNoZS1jb250cm9sLWltbXV0
YWJsZS1odHRwcy5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6Om1ha2VSZXZhbGlkYXRpb25E
ZWNpc2lvbik6CisKKyAgICAgICAgICAgIE9uIG5vcm1hbCByZWxvYWRzIChDYWNoZVBvbGljeVJl
dmFsaWRhdGUpIG9mIGh0dHBzIHJlc291cmNlcyBjaGVjayBmb3IgJ0NhY2hlLWNvbnRyb2w6IGlt
bXV0YWJsZScuCisgICAgICAgICAgICBJZiB0aGUgcmVzb3VyY2UgaXMgbm90IGV4cGlyZWQgZG9u
J3QgcmV2YWxpZGF0ZSBpdC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZl
cyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpjYWNoZUNvbnRyb2xDb250YWluc0ltbXV0
YWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5o
OgorCiAyMDE3LTAxLTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCBkeW5hbWljLWltcG9ydCBmb3IgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lv
biAyMTA5NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyArNzU4LDE0IEBAIENhY2hlZFJlc291cmNlOjpS
ZXZhbGlkYXRpb25EZWNpc2lvbiBDYWMKICAgICAgICAgcmV0dXJuIFJldmFsaWRhdGlvbkRlY2lz
aW9uOjpObzsKIAogICAgIGNhc2UgQ2FjaGVQb2xpY3lSZWxvYWQ6CisgICAgICAgIHJldHVybiBS
ZXZhbGlkYXRpb25EZWNpc2lvbjo6WWVzRHVlVG9DYWNoZVBvbGljeTsKKwogICAgIGNhc2UgQ2Fj
aGVQb2xpY3lSZXZhbGlkYXRlOgorICAgICAgICBpZiAobV9yZXNwb25zZS5jYWNoZUNvbnRyb2xD
b250YWluc0ltbXV0YWJsZSgpICYmIG1fcmVzcG9uc2UudXJsKCkucHJvdG9jb2xJcygiaHR0cHMi
KSkgeworICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBSZXZhbGlkYXRpb25EZWNpc2lvbjo6WWVzRHVlVG9FeHBpcmVkOworICAgICAgICAgICAgcmV0
dXJuIFJldmFsaWRhdGlvbkRlY2lzaW9uOjpObzsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4g
UmV2YWxpZGF0aW9uRGVjaXNpb246Olllc0R1ZVRvQ2FjaGVQb2xpY3k7CiAKICAgICBjYXNlIENh
Y2hlUG9saWN5VmVyaWZ5OgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
YWNoZVZhbGlkYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAkocmV2aXNpb24gMjEwOTQ1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTYsNyArMzE2LDggQEAgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyBwYXJzZUNhY2hl
Q29udHJvbAogICAgICAgICAgICAgICAgIGRvdWJsZSBtYXhTdGFsZSA9IGRpcmVjdGl2ZXNbaV0u
c2Vjb25kLnRvRG91YmxlKCZvayk7CiAgICAgICAgICAgICAgICAgaWYgKG9rKQogICAgICAgICAg
ICAgICAgICAgICByZXN1bHQubWF4U3RhbGUgPSBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4o
ZHVyYXRpb248ZG91YmxlPihtYXhTdGFsZSkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkaXJlY3RpdmVzW2ldLmZp
cnN0LCAiaW1tdXRhYmxlIikpCisgICAgICAgICAgICAgICAgcmVzdWx0LmltbXV0YWJsZSA9IHRy
dWU7CiAgICAgICAgIH0KICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uaAkocmV2aXNpb24gMjEwOTQ1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNjYsNiArNjYsNyBAQCBzdHJ1Y3QgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyB7CiAg
ICAgYm9vbCBub0NhY2hlIHsgZmFsc2UgfTsKICAgICBib29sIG5vU3RvcmUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbXVzdFJldmFsaWRhdGUgeyBmYWxzZSB9OworICAgIGJvb2wgaW1tdXRhYmxlIHsg
ZmFsc2UgfTsKIH07CiBXRUJDT1JFX0VYUE9SVCBDYWNoZUNvbnRyb2xEaXJlY3RpdmVzIHBhcnNl
Q2FjaGVDb250cm9sRGlyZWN0aXZlcyhjb25zdCBIVFRQSGVhZGVyTWFwJik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNw
b25zZUJhc2UuY3BwCShyZXZpc2lvbiAyMTA5NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI1
LDYgKzQyNSwxMyBAQCBib29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjpjYWNoZUNvbnRyb2xDCiAg
ICAgICAgIHBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpOwogICAgIHJldHVybiBtX2NhY2hl
Q29udHJvbERpcmVjdGl2ZXMubXVzdFJldmFsaWRhdGU7CiB9CisgICAgCitib29sIFJlc291cmNl
UmVzcG9uc2VCYXNlOjpjYWNoZUNvbnRyb2xDb250YWluc0ltbXV0YWJsZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2hhdmVQYXJzZWRDYWNoZUNvbnRyb2xIZWFkZXIpCisgICAgICAgIHBhcnNlQ2Fj
aGVDb250cm9sRGlyZWN0aXZlcygpOworICAgIHJldHVybiBtX2NhY2hlQ29udHJvbERpcmVjdGl2
ZXMuaW1tdXRhYmxlOworfQogCiBib29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjpoYXNDYWNoZVZh
bGlkYXRvckZpZWxkcygpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCShyZXZpc2lvbiAyMTA5
NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSwxMCArMTE5LDEwIEBAIHB1YmxpYzoKICAgICBj
b25zdCBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4mIGNlcnRpZmljYXRlSW5mbygpIGNv
bnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGVJbmZvOyB9OwogICAgIAogICAgIC8vIFRoZXNlIGZ1
bmN0aW9ucyByZXR1cm4gcGFyc2VkIHZhbHVlcyBvZiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25z
ZSBoZWFkZXJzLgotICAgIC8vIE5hTiBtZWFucyB0aGF0IHRoZSBoZWFkZXIgd2FzIG5vdCBwcmVz
ZW50IG9yIGhhZCBpbnZhbGlkIHZhbHVlLgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FjaGVD
b250cm9sQ29udGFpbnNOb0NhY2hlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBj
YWNoZUNvbnRyb2xDb250YWluc05vU3RvcmUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGNhY2hlQ29udHJvbENvbnRhaW5zTXVzdFJldmFsaWRhdGUoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGNhY2hlQ29udHJvbENvbnRhaW5zSW1tdXRhYmxlKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNDYWNoZVZhbGlkYXRvckZpZWxkcygpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cz4gY2FjaGVDb250cm9sTWF4QWdlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpv
cHRpb25hbDxzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50PiBkYXRlKCkgY29u
c3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTA5NDUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMS0yNyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhY2hlLWNvbnRyb2w6
IGltbXV0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY3NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2NhY2hlL2NhY2hlLWNvbnRyb2wtaW1tdXRhYmxlLWh0dHAtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlL2NhY2hlLWNvbnRyb2wt
aW1tdXRhYmxlLWh0dHAuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9j
YWNoZS1jb250cm9sLWltbXV0YWJsZS1odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUtaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9yZXNvdXJjZXMvY2FjaGUtY29udHJv
bC1pbW11dGFibGUuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvcmVzb3Vy
Y2VzL2lmcmFtZS13aXRoLXNjcmlwdC5jZ2k6IEFkZGVkLgorCiAyMDE3LTAxLTE5ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENSQVNIIGF0IFdlYkNvcmU6OlRy
YWNrTGlzdEJhc2U6OnJlbW92ZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9j
YWNoZS1jb250cm9sLWltbXV0YWJsZS1odHRwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2NhY2hlLWNvbnRyb2wtaW1tdXRhYmxlLWh0dHAt
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUtaHR0cC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzIEBACitIVFRQOiBUZXN0IGlmIG5vbi1leHBpcmVkIHN1YnJlc291cmNl
IHdpdGggQ2FjaGUtY29udHJvbDogaW1tdXRhYmxlIGlzIHJldmFsaWRhdGVkOiBZRVMgKGV4cGVj
dGVkIFlFUykKK0hUVFA6IFRlc3QgaWYgZXhwaXJlZCBzdWJyZXNvdXJjZSB3aXRoIENhY2hlLWNv
bnRyb2w6IGltbXV0YWJsZSBpcyByZXZhbGlkYXRlZDogWUVTIChleHBlY3RlZCBZRVMpCisKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUt
aHR0cC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvY2Fj
aGUtY29udHJvbC1pbW11dGFibGUtaHR0cC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUtaHR0cC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNo
ZS1jb250cm9sLWltbXV0YWJsZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxkaXYgaWQ9bG9nZGl2
PjxkaXY+Cis8c2NyaXB0PgordGVzdCgxMDAwLCAocmV2YWxpZGF0ZWQpID0+IHsKKyAgICBsb2co
IkhUVFA6IFRlc3QgaWYgbm9uLWV4cGlyZWQgc3VicmVzb3VyY2Ugd2l0aCBDYWNoZS1jb250cm9s
OiBpbW11dGFibGUgaXMgcmV2YWxpZGF0ZWQiLCB0cnVlLCByZXZhbGlkYXRlZCk7CisgICAgdGVz
dCgwLCAocmV2YWxpZGF0ZWQpID0+IHsKKyAgICAgICAgbG9nKCJIVFRQOiBUZXN0IGlmIGV4cGly
ZWQgc3VicmVzb3VyY2Ugd2l0aCBDYWNoZS1jb250cm9sOiBpbW11dGFibGUgaXMgcmV2YWxpZGF0
ZWQiLCB0cnVlLCByZXZhbGlkYXRlZCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworfSk7Cis8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1p
bW11dGFibGUtaHR0cHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUtaHR0cHMtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvY2FjaGUtY29u
dHJvbC1pbW11dGFibGUtaHR0cHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMyBAQAorSFRUUFM6IFRlc3QgaWYgbm9uLWV4cGlyZWQgc3VicmVzb3VyY2Ugd2l0aCBDYWNo
ZS1jb250cm9sOiBpbW11dGFibGUgaXMgcmV2YWxpZGF0ZWQ6IE5PIChleHBlY3RlZCBOTykKK0hU
VFBTOiBUZXN0IGlmIGV4cGlyZWQgc3VicmVzb3VyY2Ugd2l0aCBDYWNoZS1jb250cm9sOiBpbW11
dGFibGUgaXMgcmV2YWxpZGF0ZWQ6IFlFUyAoZXhwZWN0ZWQgWUVTKQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2NhY2hlLWNvbnRyb2wtaW1tdXRhYmxlLWh0dHBzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9jYWNoZS1jb250cm9s
LWltbXV0YWJsZS1odHRwcy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUvY2FjaGUtY29udHJvbC1pbW11dGFibGUtaHR0cHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIxIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9CitpZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwOiIpCisgICAg
d2luZG93LmxvY2F0aW9uID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvY2FjaGUvY2FjaGUtY29u
dHJvbC1pbW11dGFibGUtaHR0cHMuaHRtbCI7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY2FjaGUtY29udHJvbC1pbW11dGFibGUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8ZGl2
IGlkPWxvZ2Rpdj48ZGl2PgorPHNjcmlwdD4KK3Rlc3QoMTAwMCwgKHJldmFsaWRhdGVkKSA9PiB7
CisgICAgbG9nKCJIVFRQUzogVGVzdCBpZiBub24tZXhwaXJlZCBzdWJyZXNvdXJjZSB3aXRoIENh
Y2hlLWNvbnRyb2w6IGltbXV0YWJsZSBpcyByZXZhbGlkYXRlZCIsIGZhbHNlLCByZXZhbGlkYXRl
ZCk7CisgICAgdGVzdCgwLCAocmV2YWxpZGF0ZWQpID0+IHsKKyAgICAgICAgbG9nKCJIVFRQUzog
VGVzdCBpZiBleHBpcmVkIHN1YnJlc291cmNlIHdpdGggQ2FjaGUtY29udHJvbDogaW1tdXRhYmxl
IGlzIHJldmFsaWRhdGVkIiwgdHJ1ZSwgcmV2YWxpZGF0ZWQpOworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9
KTsKK30pOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jl
c291cmNlcy9jYWNoZS1jb250cm9sLWltbXV0YWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jlc291cmNlcy9jYWNoZS1jb250cm9sLWltbXV0YWJsZS5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jlc291cmNl
cy9jYWNoZS1jb250cm9sLWltbXV0YWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5
IEBACitmdW5jdGlvbiBsb2codGV4dCwgZXhwZWN0ZWQsIHJlc3VsdCkKK3sKKyAgICBsb2dkaXYu
aW5uZXJUZXh0ICs9IHRleHQgKyAiOiAiICsgKHJlc3VsdCA/ICJZRVMiIDogIk5PIikgKyAiIChl
eHBlY3RlZCAiICsgKGV4cGVjdGVkID8gIllFUyIgOiAiTk8iKSArICIpXG4iOworfQorCitmdW5j
dGlvbiBpbnNlcnRJZnJhbWUobWF4QWdlLCBsb2FkZWQpIHsKKyAgICBjb25zdCBpZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7CisgICAgaWZyYW1lLnNyYyA9ICJyZXNvdXJjZXMvaWZyYW1lLXdpdGgt
c2NyaXB0LmNnaT9zY3JpcHQtY2FjaGUtY29udHJvbD1pbW11dGFibGUsbWF4LWFnZT0iICsgbWF4
QWdlOworICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiBsb2FkZWQoaWZyYW1lKTsKK30KKworZnVu
Y3Rpb24gdGVzdChtYXhBZ2UsIGNhbGxiYWNrKSB7CisgICAgaW5zZXJ0SWZyYW1lKG1heEFnZSwg
KGlmcmFtZSkgPT4geworICAgICAgICBjb25zdCBmaXJzdE51bWJlciA9IGlmcmFtZS5jb250ZW50
V2luZG93LnJhbmRvbU51bWJlcjsKKyAgICAgICAgaWZyYW1lLm9ubG9hZCA9ICgpID0+IGNhbGxi
YWNrKGZpcnN0TnVtYmVyICE9IGlmcmFtZS5jb250ZW50V2luZG93LnJhbmRvbU51bWJlcik7Cisg
ICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOworICAgIH0pOwor
fQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9yZXNvdXJjZXMvaWZyYW1lLXdp
dGgtc2NyaXB0LmNnaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L3Jlc291cmNlcy9pZnJhbWUtd2l0aC1zY3JpcHQuY2dpCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2lmcmFtZS13aXRoLXNjcmlwdC5jZ2kJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKK3Vz
ZSBDR0k7CisKK3ByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuIjsKK3ByaW50ICJDYWNo
ZS1jb250cm9sOiBuby1jYWNoZVxuIjsKK3ByaW50ICJcbiI7CisKK215ICRxdWVyeSA9IG5ldyBD
R0k7CitteSAkc2NyaXB0Q2FjaGVDb250cm9sID0gJHF1ZXJ5LT5wYXJhbSgic2NyaXB0LWNhY2hl
LWNvbnRyb2wiKTsKKworcHJpbnQgIjxzY3JpcHQgc3JjPSdjYWNoZS1zaW11bGF0b3IuY2dpP3Vu
aXF1ZUlkPTEmQ2FjaGUtY29udHJvbD0iOworcHJpbnQgJHNjcmlwdENhY2hlQ29udHJvbDsKK3By
aW50ICInPjwvc2NyaXB0PlxuIjsKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2lmcmFtZS13aXRoLXNjcmlwdC5jZ2kKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTAsMCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>