<?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>158851</bug_id>
          
          <creation_ts>2016-06-16 15:10:42 -0700</creation_ts>
          <short_desc>[WK2] Improve serialization of SubresourcesEntry to network disk cache</short_desc>
          <delta_ts>2016-06-16 19:29:34 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203018</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-16 15:10:42 -0700</bug_when>
    <thetext>Improve serialization of SubresourcesEntry to network disk cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203026</commentid>
    <comment_count>1</comment_count>
      <attachid>281479</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-16 15:19:29 -0700</bug_when>
    <thetext>Created attachment 281479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203055</commentid>
    <comment_count>2</comment_count>
      <attachid>281479</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-16 15:46:58 -0700</bug_when>
    <thetext>Comment on attachment 281479
Patch

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

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:90
&gt; -    static const unsigned version = 7;
&gt; +    static const unsigned version = 8;

Since you are increasing the version can you also make the directory names more consistent/informative? Currently we have foo.bar/resource/ and foo.bar/subresources/ which sound confusingly similar. Also they could be capitalized like Blobs/Records. Resources/SpeculativeDependencies or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203060</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-16 15:51:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 281479 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281479&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:90
&gt; &gt; -    static const unsigned version = 7;
&gt; &gt; +    static const unsigned version = 8;
&gt; 
&gt; Since you are increasing the version can you also make the directory names
&gt; more consistent/informative? Currently we have foo.bar/resource/ and
&gt; foo.bar/subresources/ which sound confusingly similar. Also they could be
&gt; capitalized like Blobs/Records. Resources/SpeculativeDependencies or
&gt; something.

Hmm. Right now I build the path using key.type() and the type is either &quot;resource&quot; / &quot;subresources&quot;. We could easily capitalize the type when using it as folder name. However, if I rename &quot;subresources&quot; to something else, I would have to rename my SubresourcesEntry class as well (which I don&apos;t really want to do right now).

How about we just capitalize the type when using it as folder name in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203072</commentid>
    <comment_count>4</comment_count>
      <attachid>281499</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-16 16:09:21 -0700</bug_when>
    <thetext>Created attachment 281499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203097</commentid>
    <comment_count>5</comment_count>
      <attachid>281499</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 16:39:29 -0700</bug_when>
    <thetext>Comment on attachment 281499
Patch

Clearing flags on attachment: 281499

Committed r202148: &lt;http://trac.webkit.org/changeset/202148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203098</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 16:39:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203169</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-16 19:21:13 -0700</bug_when>
    <thetext>Since subresource is one (non-English, jargon) word, not two word (&quot;sub resources&quot;), it should be spelled Subresources, not SubResources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203175</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-16 19:29:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Since subresource is one (non-English, jargon) word, not two word (&quot;sub
&gt; resources&quot;), it should be spelled Subresources, not SubResources.

Darn, I thought about this. Since it is sub-resource and not subresource, I thought it made sense to capitalize as SubResource. Apparently I was wrong.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281479</attachid>
            <date>2016-06-16 15:19:29 -0700</date>
            <delta_ts>2016-06-16 16:09:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158851-20160616151927.patch</filename>
            <type>text/plain</type>
            <size>8449</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTdmZjM0MmI0YzFkNzY1
OTU2MThmOTExOTJjNWM1ZjdmMjBkZjFjMi4uZDI3YWZkNzkxOTRmZjY5Y2YwZDdiY2FkZmYwODRk
OWMzOWY3YTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA2LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wcm92ZSBzZXJp
YWxpemF0aW9uIG9mIFN1YnJlc291cmNlc0VudHJ5IHRvIG5ldHdvcmsgZGlzayBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBzZXJp
YWxpemF0aW9uIG9mIFN1YnJlc291cmNlc0VudHJ5IHRvIG5ldHdvcmsgZGlzayBjYWNoZToKKyAg
ICAgICAgLSBEbyBub3QgYm90aGVyIHNlcmlhbGl6aW5nIFN1YnJlc291cmNlSW5mbydzIGZpcnN0
IHBhcnR5IGZvciBjb29raWVzCisgICAgICAgICAgYW5kIEhUVFAgaGVhZGVycyBkYXRhIG1lbWJl
cnMgaWYgdGhlIHJlc291cmNlIGlzIHRyYW5zaWVudC4gVGhpcyBpcworICAgICAgICAgIGJlY2F1
c2UgdGhvc2UgYXJlIG5ldmVyIHVzZWQgZm9yIHRyYW5zaWVudCByZXNvdXJjZXMuIFRoaXMgcGF0
Y2ggYWxzbworICAgICAgICAgIG1ha2VzIGl0IHNvIHRoYXQgd2UgZG8gbm90IGV2ZW4gYm90aGVy
IGluaXRpYWxpemluZyB0aG9zZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgICBpZiB0aGUgdHJhbnNp
ZW50IGZsYWcgaXMgc2V0LgorICAgICAgICAtIFVwZGF0ZSBTdWJyZXNvdXJjZUluZm86OmVuY29k
ZSgpIC8gZGVjb2RlKCkgdG8gZW5jb2RlIGFuZCBkZWNvZGUKKyAgICAgICAgICB0aGUgSFRUUEhl
YWRlck1hcCBkYXRhIG1lbWJlciB3aXRoIHRoZSByaWdodCBOZXR3b3JrQ2FjaGU6OkNvZGVyCisg
ICAgICAgICAgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gaW5zdGVhZCBvZiB1c2luZyBkaXJlY3Rs
eSBIVFRQSGVhZGVyTWFwOjpkZWNvZGUoKQorICAgICAgICAgIGFuZCBIVFRQSGVhZGVyTWFwOjpl
bmNvZGUoKS4gSFRUUEhlYWRlck1hcDo6ZGVjb2RlKCkgLyBlbmNvZGUoKSBpcworICAgICAgICAg
IHVuc2FmZSBpbiB0aGUgZGlzayBjYWNoZSBjYXNlIChzZWUgcjIwMDM5NCkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpjb25zdHJ1Y3RSZXZhbGlkYXRp
b25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyOjpzdGFydFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJjZUluZm86OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjpk
ZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJl
c291cmNlc0VudHJ5Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3Vy
Y2VJbmZvOjpTdWJyZXNvdXJjZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OlN1YnJlc291cmNlSW5mbzo6aXNUcmFuc2llbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OlN1YnJlc291cmNlSW5mbzo6Zmlyc3RQYXJ0eUZvckNvb2tpZXMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6cmVxdWVzdEhlYWRlcnMpOgor
CiAyMDE2LTA2LTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEV4cG9zZSBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlv
dXQgU1BJIG9uIFdLV2ViVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyLmNwcAppbmRleCAxNmQ4NTU1NzcwMjg4ZmJiZGMyYjg3ZmJmM2EzMmMzYzI2Yzli
NWFkLi4yYmRhYTY2NTM1NWZmMjNlYWExMTg4YWFmNGJkM2U5MTNmYjU0NDc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcApAQCAtODcsOCArODcs
OCBAQCBzdGF0aWMgaW5saW5lIEtleSBtYWtlU3VicmVzb3VyY2VzS2V5KGNvbnN0IEtleSYgcmVz
b3VyY2VLZXkpCiBzdGF0aWMgaW5saW5lIFJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlk
YXRpb25SZXF1ZXN0KGNvbnN0IEVudHJ5JiBlbnRyeSwgY29uc3QgU3VicmVzb3VyY2VJbmZvJiBz
dWJSZXNvdXJjZUluZm8pCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJldmFsaWRhdGlvblJlcXVl
c3QoZW50cnkua2V5KCkuaWRlbnRpZmllcigpKTsKLSAgICByZXZhbGlkYXRpb25SZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZHMoc3ViUmVzb3VyY2VJbmZvLnJlcXVlc3RIZWFkZXJzKTsKLSAgICBy
ZXZhbGlkYXRpb25SZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKHN1YlJlc291cmNlSW5m
by5maXJzdFBhcnR5Rm9yQ29va2llcyk7CisgICAgcmV2YWxpZGF0aW9uUmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGRzKHN1YlJlc291cmNlSW5mby5yZXF1ZXN0SGVhZGVycygpKTsKKyAgICByZXZh
bGlkYXRpb25SZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKHN1YlJlc291cmNlSW5mby5m
aXJzdFBhcnR5Rm9yQ29va2llcygpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQog
ICAgIGlmIChlbnRyeS5rZXkoKS5oYXNQYXJ0aXRpb24oKSkKICAgICAgICAgcmV2YWxpZGF0aW9u
UmVxdWVzdC5zZXRDYWNoZVBhcnRpdGlvbihlbnRyeS5rZXkoKS5wYXJ0aXRpb24oKSk7CkBAIC01
MDQsNyArNTA0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpzdGFydFNwZWN1bGF0
aXZlUmV2YWxpZGF0aW9uKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGYKICAgICBmb3IgKGF1dG8mIHN1
YnJlc291cmNlUGFpciA6IGVudHJ5LnN1YnJlc291cmNlcygpKSB7CiAgICAgICAgIGF1dG8mIGtl
eSA9IHN1YnJlc291cmNlUGFpci5rZXk7CiAgICAgICAgIGF1dG8mIHN1YnJlc291cmNlSW5mbyA9
IHN1YnJlc291cmNlUGFpci52YWx1ZTsKLSAgICAgICAgaWYgKCFzdWJyZXNvdXJjZUluZm8uaXNU
cmFuc2llbnQpCisgICAgICAgIGlmICghc3VicmVzb3VyY2VJbmZvLmlzVHJhbnNpZW50KCkpCiAg
ICAgICAgICAgICBwcmVsb2FkRW50cnkoa2V5LCBzdWJyZXNvdXJjZUluZm8sIGZyYW1lSUQpOwog
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVBy
ZWxvYWRpbmcsICIoTmV0d29ya1Byb2Nlc3MpIE5vdCBwcmVsb2FkaW5nICclcycgYmVjYXVzZSBp
dCBpcyBtYXJrZWQgYXMgdHJhbnNpZW50Iiwga2V5LmlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaAppbmRleCA2
ZWZkZTIyZWU5ZmVjYjRlMDI0Y2I5ZDMxY2UyYmU5ZTFjNmZmZWI3Li40MjU1MjM2ZDk1NGIyZDUy
YzZiZTQ3MzU0ZDkxZmIwZDM3MmNlNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkTWFuYWdlci5oCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBOZXR3b3JrQ2Fj
aGUgewogCiBjbGFzcyBFbnRyeTsKIGNsYXNzIFNwZWN1bGF0aXZlTG9hZDsKK2NsYXNzIFN1YnJl
c291cmNlSW5mbzsKIGNsYXNzIFN1YnJlc291cmNlc0VudHJ5Owotc3RydWN0IFN1YnJlc291cmNl
SW5mbzsKIAogY2xhc3MgU3BlY3VsYXRpdmVMb2FkTWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgKaW5kZXggZTI1ZDM4YzY4Y2E1MDU5MjQ5MzBh
OTc0Mjc4OWU1MDFmZThkMmMwZS4uN2E4YmZhZDlkOWU2ZDE3MjU4NjBkMDRhMTAwMzJhYzIwMWQw
ZWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
c2l6ZV90IGNhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9jYXBhY2l0eTsgfQogICAgIHNpemVf
dCBhcHByb3hpbWF0ZVNpemUoKSBjb25zdDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2
ZXJzaW9uID0gNzsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmVyc2lvbiA9IDg7CiAKICAg
ICBTdHJpbmcgYmFzZVBhdGgoKSBjb25zdDsKICAgICBTdHJpbmcgdmVyc2lvblBhdGgoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAppbmRleCBhMjhjYmNh
MDliNDgwZTliZDQyZDI4ZGYwNDg1NGI2N2Y4MThmOGVkLi42NWYwNTRkYTVmZDY3NWQwZGI3NDI5
ZDVhMjA1NjgzOTdiMzAzN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50
cnkuY3BwCkBAIC0zOCwxOSArMzgsMzAgQEAgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKIHZv
aWQgU3VicmVzb3VyY2VJbmZvOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyIDw8IGZpcnN0UGFydHlGb3JDb29raWVzOwotICAgIGVuY29kZXIgPDwgaXNUcmFu
c2llbnQ7Ci0gICAgcmVxdWVzdEhlYWRlcnMuZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIg
PDwgbV9pc1RyYW5zaWVudDsKKworICAgIC8vIERvIG5vdCBib3RoZXIgc2VyaWFsaXppbmcgb3Ro
ZXIgZGF0YSBtZW1iZXJzIG9mIHRyYW5zaWVudCByZXNvdXJjZXMgYXMgdGhleSBhcmUgZW1wdHku
CisgICAgaWYgKG1faXNUcmFuc2llbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kZXIg
PDwgbV9maXJzdFBhcnR5Rm9yQ29va2llczsKKyAgICBlbmNvZGVyIDw8IG1fcmVxdWVzdEhlYWRl
cnM7CiB9CiAKIGJvb2wgU3VicmVzb3VyY2VJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
U3VicmVzb3VyY2VJbmZvJiBpbmZvKQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5m
aXJzdFBhcnR5Rm9yQ29va2llcykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1faXNU
cmFuc2llbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShpbmZvLmlzVHJhbnNpZW50KSkKKworICAgIGlmIChpbmZvLm1faXNUcmFuc2llbnQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fZmlyc3RQ
YXJ0eUZvckNvb2tpZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFXZWJDb3Jl
OjpIVFRQSGVhZGVyTWFwOjpkZWNvZGUoZGVjb2RlciwgaW5mby5yZXF1ZXN0SGVhZGVycykpCisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9yZXF1ZXN0SGVhZGVycykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNF
bnRyeS5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3VicmVzb3VyY2VzRW50cnkuaAppbmRleCA2NWMzNWIwZjQ0MmU4NTBlMWNlM2MwZTlmYzA2OGE1
MTc3ZTU3MzdkLi4wMDdmNzA1YWQwMWViZWYwZDAyM2UzYzFiM2E1MjZkNTQ1NjIyMWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dWJyZXNvdXJjZXNFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgKQEAgLTM4LDIzICszOCwyOCBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiBuYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKIAotc3RydWN0IFN1
YnJlc291cmNlSW5mbyB7CitjbGFzcyBTdWJyZXNvdXJjZUluZm8gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotCiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgU3VicmVzb3VyY2VJbmZvJik7CiAK
ICAgICBTdWJyZXNvdXJjZUluZm8oKSA9IGRlZmF1bHQ7CiAgICAgU3VicmVzb3VyY2VJbmZvKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBpc1RyYW5zaWVudCA9
IGZhbHNlKQotICAgICAgICA6IGZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSkKLSAgICAgICAgLCByZXF1ZXN0SGVhZGVycyhyZXF1ZXN0Lmh0dHBIZWFk
ZXJGaWVsZHMoKSkKLSAgICAgICAgLCBpc1RyYW5zaWVudChpc1RyYW5zaWVudCkKLSAgICB7IH0K
KyAgICAgICAgOiBtX2lzVHJhbnNpZW50KGlzVHJhbnNpZW50KQorICAgICAgICAsIG1fZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoaXNUcmFuc2llbnQgPyBXZWJDb3JlOjpVUkwoKSA6IHJlcXVlc3QuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKSkKKyAgICAgICAgLCBtX3JlcXVlc3RIZWFkZXJzKGlzVHJhbnNp
ZW50ID8gV2ViQ29yZTo6SFRUUEhlYWRlck1hcCgpIDogcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpCisgICAgeworICAgIH0KIAotICAgIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5Rm9yQ29va2ll
czsKLSAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIHJlcXVlc3RIZWFkZXJzOwotICAgIGJvb2wg
aXNUcmFuc2llbnQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNUcmFuc2llbnQoKSBjb25zdCB7IHJl
dHVybiBtX2lzVHJhbnNpZW50OyB9CisgICAgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
Rm9yQ29va2llcygpIGNvbnN0IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1fZmly
c3RQYXJ0eUZvckNvb2tpZXM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBy
ZXF1ZXN0SGVhZGVycygpIGNvbnN0IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1f
cmVxdWVzdEhlYWRlcnM7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faXNUcmFuc2llbnQgeyB0
cnVlIH07CisgICAgV2ViQ29yZTo6VVJMIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXM7CisgICAgV2Vi
Q29yZTo6SFRUUEhlYWRlck1hcCBtX3JlcXVlc3RIZWFkZXJzOwogfTsKIAogc3RydWN0IFN1YnJl
c291cmNlTG9hZCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281499</attachid>
            <date>2016-06-16 16:09:21 -0700</date>
            <delta_ts>2016-06-16 16:39:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158851-20160616160919.patch</filename>
            <type>text/plain</type>
            <size>13857</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjc1NTFiZjFkMzYxZWVh
MTBlNzI1ZjU5M2RjNmMyZTZiMDYwZDFmYS4uYjM4MmY2ZTIzMDc3NDAyZmQ4MGJmNWMwZWUzODlh
OTJiZGQ2ZDJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wcm92ZSBzZXJp
YWxpemF0aW9uIG9mIFN1YnJlc291cmNlc0VudHJ5IHRvIG5ldHdvcmsgZGlzayBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgSW1wcm92ZSBzZXJp
YWxpemF0aW9uIG9mIFN1YnJlc291cmNlc0VudHJ5IHRvIG5ldHdvcmsgZGlzayBjYWNoZToKKyAg
ICAgICAgLSBEbyBub3QgYm90aGVyIHNlcmlhbGl6aW5nIFN1YnJlc291cmNlSW5mbydzIGZpcnN0
IHBhcnR5IGZvciBjb29raWVzCisgICAgICAgICAgYW5kIEhUVFAgaGVhZGVycyBkYXRhIG1lbWJl
cnMgaWYgdGhlIHJlc291cmNlIGlzIHRyYW5zaWVudC4gVGhpcyBpcworICAgICAgICAgIGJlY2F1
c2UgdGhvc2UgYXJlIG5ldmVyIHVzZWQgZm9yIHRyYW5zaWVudCByZXNvdXJjZXMuIFRoaXMgcGF0
Y2ggYWxzbworICAgICAgICAgIG1ha2VzIGl0IHNvIHRoYXQgd2UgZG8gbm90IGV2ZW4gYm90aGVy
IGluaXRpYWxpemluZyB0aG9zZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgICBpZiB0aGUgdHJhbnNp
ZW50IGZsYWcgaXMgc2V0LgorICAgICAgICAtIFVwZGF0ZSBTdWJyZXNvdXJjZUluZm86OmVuY29k
ZSgpIC8gZGVjb2RlKCkgdG8gZW5jb2RlIGFuZCBkZWNvZGUKKyAgICAgICAgICB0aGUgSFRUUEhl
YWRlck1hcCBkYXRhIG1lbWJlciB3aXRoIHRoZSByaWdodCBOZXR3b3JrQ2FjaGU6OkNvZGVyCisg
ICAgICAgICAgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gaW5zdGVhZCBvZiB1c2luZyBkaXJlY3Rs
eSBIVFRQSGVhZGVyTWFwOjpkZWNvZGUoKQorICAgICAgICAgIGFuZCBIVFRQSGVhZGVyTWFwOjpl
bmNvZGUoKS4gSFRUUEhlYWRlck1hcDo6ZGVjb2RlKCkgLyBlbmNvZGUoKSBpcworICAgICAgICAg
IHVuc2FmZSBpbiB0aGUgZGlzayBjYWNoZSBjYXNlIChzZWUgcjIwMDM5NCkuCisKKyAgICAgICAg
QWxzbyB1cGRhdGUgZW50cnkgdHlwZXMgYXMgc286CisgICAgICAgIC0gInJlc291cmNlIiAtPiAi
UmVzb3VyY2UiCisgICAgICAgIC0gInN1YnJlc291cmNlcyIgLT4gIlN1YlJlc291cmNlcyIKKwor
ICAgICAgICBUaGVzZSBlbnRyeSB0eXBlcyBhcmUgdXNlZCBhIGZvbGRlciBuYW1lcyBpbiB0aGUg
ZGlzayBjYWNoZSBhbmQgb3RoZXIKKyAgICAgICAgZm9sZGVyIG5hbWVzIHdlcmUgY2FwaXRhbGl6
ZWQuIEFudHRpIHN1Z2dlc3RlZCB0aGlzIHdhcyBhIGdvb2QgdGltZQorICAgICAgICB0byBoYXJt
b25pemUgc2luY2Ugd2UncmUgYnVtcGluZyB0aGUgY2FjaGUgdmVyc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmNvbnN0cnVjdFJldmFsaWRhdGlv
blJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9h
ZE1hbmFnZXI6OnN0YXJ0U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJjZUluZm86OmRl
Y29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVz
b3VyY2VzRW50cnkuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJj
ZUluZm86OlN1YnJlc291cmNlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
U3VicmVzb3VyY2VJbmZvOjppc1RyYW5zaWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3VicmVzb3VyY2VJbmZvOjpmaXJzdFBhcnR5Rm9yQ29va2llcyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjpyZXF1ZXN0SGVhZGVycyk6CisK
IDIwMTYtMDYtMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFdoZW4gYSBXZWJzaXRlRGF0YVN0b3JlIGZpbmRzIG5vIFByb2Nlc3NQb29scyBhbmQgY3JlYXRl
cyBvbmUgZnJvbSBzY3JhdGNoLCBpdCBzaG91bGQgcmVwcmVzZW50IHRoZSBkYXRhIHN0b3JlJ3Mg
Y29uZmlnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKaW5kZXggMzY3Yjg1OWM5MTE1OGVmMjE3ZTVhNWM1ODQ0ZDMyNTY4ZGY1
YmNkZS4uMWY4ZTgyMDZmODM3OWVkNTFjMDEwMmYyNDY2YWZkMWVkMTYxZTcyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3Bw
CkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgcmVzb3VyY2VUeXBlKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5U
aHJlYWQoKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4g
cmVzb3VyY2UoInJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gcmVzb3VyY2Uo
IlJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHJlc291cmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAKaW5kZXggYjk3OGI5OTkzMzhiMzc4
NmMxZTEyMWRjMGVlNzc4ZDViZmFkNjkxZS4uNDdmZjBmYWM3ZTZkNDMwNTg0ZjUwN2RiYzI1ZGQ0
ZWM5YTU4NjkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcApAQCAtNDYsNyArNDYsNyBAQCBFbnRyeTo6
RW50cnkoY29uc3QgS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBSZWZQdHI8VwogICAgICwgbV92YXJ5aW5nUmVxdWVzdEhlYWRlcnModmFyeWluZ1Jl
cXVlc3RIZWFkZXJzKQogICAgICwgbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKQogewotICAgIEFT
U0VSVChtX2tleS50eXBlKCkgPT0gInJlc291cmNlIik7CisgICAgQVNTRVJUKG1fa2V5LnR5cGUo
KSA9PSAiUmVzb3VyY2UiKTsKIH0KIAogRW50cnk6OkVudHJ5KGNvbnN0IEtleSYga2V5LCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiYgdmFyeWluZ1JlcXVlc3RIZWFkZXJzKQpAQCAtNTUsNyArNTUsNyBAQCBF
bnRyeTo6RW50cnkoY29uc3QgS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBXZQogICAgICwgbV9yZXNwb25zZShyZXNwb25zZSkKICAgICAs
IG1fdmFyeWluZ1JlcXVlc3RIZWFkZXJzKHZhcnlpbmdSZXF1ZXN0SGVhZGVycykKIHsKLSAgICBB
U1NFUlQobV9rZXkudHlwZSgpID09ICJyZXNvdXJjZSIpOworICAgIEFTU0VSVChtX2tleS50eXBl
KCkgPT0gIlJlc291cmNlIik7CiAgICAgLy8gUmVkaXJlY3QgYm9keSBpcyBub3QgbmVlZGVkIGV2
ZW4gaWYgZXhpc3RzLgogCiAgICAgbV9yZWRpcmVjdFJlcXVlc3QgPSBzdGQ6Om1ha2VfdW5pcXVl
PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4oKTsKQEAgLTc4LDcgKzc4LDcgQEAgRW50cnk6OkVu
dHJ5KGNvbnN0IFN0b3JhZ2U6OlJlY29yZCYgc3RvcmFnZUVudHJ5KQogICAgICwgbV90aW1lU3Rh
bXAoc3RvcmFnZUVudHJ5LnRpbWVTdGFtcCkKICAgICAsIG1fc291cmNlU3RvcmFnZVJlY29yZChz
dG9yYWdlRW50cnkpCiB7Ci0gICAgQVNTRVJUKG1fa2V5LnR5cGUoKSA9PSAicmVzb3VyY2UiKTsK
KyAgICBBU1NFUlQobV9rZXkudHlwZSgpID09ICJSZXNvdXJjZSIpOwogfQogCiBTdG9yYWdlOjpS
ZWNvcmQgRW50cnk6OmVuY29kZUFzU3RvcmFnZVJlY29yZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCmluZGV4IDE2ZDg1NTU3NzAyODhm
YmJkYzJiODdmYmYzYTMyYzNjMjZjOWI1YWQuLmU2MGYxZmJiZGYwOTE3Mzc5NWJkNzUxNjBiMTY4
ZTdjNzk2ZTM4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1h
bmFnZXIuY3BwCkBAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyB2b2lkIGxvZ1NwZWN1bGF0aXZlTG9h
ZGluZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdWJyZXNvdXJjZXNUeXBlKCkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IHJlc291cmNlKCJzdWJyZXNvdXJjZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3Ry
aW5nPiByZXNvdXJjZSgiU3ViUmVzb3VyY2VzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHJlc291cmNlOwogfQogCkBAIC04Nyw4ICs4Nyw4IEBAIHN0
YXRpYyBpbmxpbmUgS2V5IG1ha2VTdWJyZXNvdXJjZXNLZXkoY29uc3QgS2V5JiByZXNvdXJjZUtl
eSkKIHN0YXRpYyBpbmxpbmUgUmVzb3VyY2VSZXF1ZXN0IGNvbnN0cnVjdFJldmFsaWRhdGlvblJl
cXVlc3QoY29uc3QgRW50cnkmIGVudHJ5LCBjb25zdCBTdWJyZXNvdXJjZUluZm8mIHN1YlJlc291
cmNlSW5mbykKIHsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdChlbnRy
eS5rZXkoKS5pZGVudGlmaWVyKCkpOwotICAgIHJldmFsaWRhdGlvblJlcXVlc3Quc2V0SFRUUEhl
YWRlckZpZWxkcyhzdWJSZXNvdXJjZUluZm8ucmVxdWVzdEhlYWRlcnMpOwotICAgIHJldmFsaWRh
dGlvblJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoc3ViUmVzb3VyY2VJbmZvLmZpcnN0
UGFydHlGb3JDb29raWVzKTsKKyAgICByZXZhbGlkYXRpb25SZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZHMoc3ViUmVzb3VyY2VJbmZvLnJlcXVlc3RIZWFkZXJzKCkpOworICAgIHJldmFsaWRhdGlv
blJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoc3ViUmVzb3VyY2VJbmZvLmZpcnN0UGFy
dHlGb3JDb29raWVzKCkpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgaWYg
KGVudHJ5LmtleSgpLmhhc1BhcnRpdGlvbigpKQogICAgICAgICByZXZhbGlkYXRpb25SZXF1ZXN0
LnNldENhY2hlUGFydGl0aW9uKGVudHJ5LmtleSgpLnBhcnRpdGlvbigpKTsKQEAgLTUwNCw3ICs1
MDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnN0YXJ0U3BlY3VsYXRpdmVSZXZh
bGlkYXRpb24oY29uc3QgR2xvYmFsRnJhbWVJRCYgZgogICAgIGZvciAoYXV0byYgc3VicmVzb3Vy
Y2VQYWlyIDogZW50cnkuc3VicmVzb3VyY2VzKCkpIHsKICAgICAgICAgYXV0byYga2V5ID0gc3Vi
cmVzb3VyY2VQYWlyLmtleTsKICAgICAgICAgYXV0byYgc3VicmVzb3VyY2VJbmZvID0gc3VicmVz
b3VyY2VQYWlyLnZhbHVlOwotICAgICAgICBpZiAoIXN1YnJlc291cmNlSW5mby5pc1RyYW5zaWVu
dCkKKyAgICAgICAgaWYgKCFzdWJyZXNvdXJjZUluZm8uaXNUcmFuc2llbnQoKSkKICAgICAgICAg
ICAgIHByZWxvYWRFbnRyeShrZXksIHN1YnJlc291cmNlSW5mbywgZnJhbWVJRCk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGlu
ZywgIihOZXR3b3JrUHJvY2VzcykgTm90IHByZWxvYWRpbmcgJyVzJyBiZWNhdXNlIGl0IGlzIG1h
cmtlZCBhcyB0cmFuc2llbnQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwpAQCAt
NTE4LDcgKzUxOCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6c3RhcnRTcGVjdWxh
dGl2ZVJldmFsaWRhdGlvbihjb25zdCBHbG9iYWxGcmFtZUlEJiBmCiAKIHZvaWQgU3BlY3VsYXRp
dmVMb2FkTWFuYWdlcjo6cmV0cmlldmVTdWJyZXNvdXJjZXNFbnRyeShjb25zdCBLZXkmIHN0b3Jh
Z2VLZXksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPFN1YnJlc291cmNlc0Vu
dHJ5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKHN0b3JhZ2VLZXkudHlw
ZSgpID09ICJyZXNvdXJjZSIpOworICAgIEFTU0VSVChzdG9yYWdlS2V5LnR5cGUoKSA9PSAiUmVz
b3VyY2UiKTsKICAgICBhdXRvIHN1YnJlc291cmNlc1N0b3JhZ2VLZXkgPSBtYWtlU3VicmVzb3Vy
Y2VzS2V5KHN0b3JhZ2VLZXkpOwogICAgIG1fc3RvcmFnZS5yZXRyaWV2ZShzdWJyZXNvdXJjZXNT
dG9yYWdlS2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1l
ZGl1bSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlY29yZCkgewogICAgICAgICBpZiAoIXJlY29yZCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oCmluZGV4IDZlZmRlMjJlZTlmZWNiNGUwMjRjYjlk
MzFjZTJiZTllMWM2ZmZlYjcuLjQyNTUyMzZkOTU0YjJkNTJjNmJlNDczNTRkOTFmYjBkMzcyY2U2
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKQEAg
LTQwLDggKzQwLDggQEAgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiAKIGNsYXNzIEVudHJ5Owog
Y2xhc3MgU3BlY3VsYXRpdmVMb2FkOworY2xhc3MgU3VicmVzb3VyY2VJbmZvOwogY2xhc3MgU3Vi
cmVzb3VyY2VzRW50cnk7Ci1zdHJ1Y3QgU3VicmVzb3VyY2VJbmZvOwogCiBjbGFzcyBTcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3RhdGlzdGljcy5jcHAKaW5kZXggMWQwODI0ZGE2OGVhMTgyNjQ1NTAyYzViYjI2OWM3NGEz
MzM3YTRiNy4uZThkYzY0M2M3ZjI0NTJiYTlkYzUzM2Y1MThlMWZmYmE5OTg4ZDUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rh
dGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIFN0YXRpc3Rp
Y3M6OmJvb3RzdHJhcEZyb21OZXR3b3JrQ2FjaGUoY29uc3QgU3RyaW5nJiBuZXR3b3JrQ2FjaGVQ
YXRoKQogICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIEJvb3RzdHJhcHBp
bmcgdGhlIG5ldHdvcmsgY2FjaGUgc3RhdGlzdGljcyBkYXRhYmFzZSBmcm9tIHRoZSBuZXR3b3Jr
IGNhY2hlLi4uIik7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gaGFzaGVzOwotICAgIHRyYXZlcnNl
UmVjb3Jkc0ZpbGVzKG5ldHdvcmtDYWNoZVBhdGgsIEFTQ0lJTGl0ZXJhbCgicmVzb3VyY2UiKSwg
WyZoYXNoZXNdKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgaGFzaFN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGlzQm9keUJsb2IsIGNvbnN0IFN0cmluZyYgcmVj
b3JkRGlyZWN0b3J5UGF0aCkgeworICAgIHRyYXZlcnNlUmVjb3Jkc0ZpbGVzKG5ldHdvcmtDYWNo
ZVBhdGgsIEFTQ0lJTGl0ZXJhbCgiUmVzb3VyY2UiKSwgWyZoYXNoZXNdKGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgaGFzaFN0cmluZywgY29uc3QgU3RyaW5nJiB0eXBlLCBi
b29sIGlzQm9keUJsb2IsIGNvbnN0IFN0cmluZyYgcmVjb3JkRGlyZWN0b3J5UGF0aCkgewogICAg
ICAgICBpZiAoaXNCb2R5QmxvYikKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5o
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5oCmluZGV4IGUyNWQzOGM2OGNhNTA1OTI0OTMwYTk3NDI3ODllNTAxZmU4ZDJjMGUuLjdhOGJm
YWQ5ZDllNmQxNzI1ODYwZDA0YTEwMDMyYWMyMDFkMGVkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgK
QEAgLTg3LDcgKzg3LDcgQEAgcHVibGljOgogICAgIHNpemVfdCBjYXBhY2l0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FwYWNpdHk7IH0KICAgICBzaXplX3QgYXBwcm94aW1hdGVTaXplKCkgY29uc3Q7
CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmVyc2lvbiA9IDc7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHZlcnNpb24gPSA4OwogCiAgICAgU3RyaW5nIGJhc2VQYXRoKCkgY29uc3Q7
CiAgICAgU3RyaW5nIHZlcnNpb25QYXRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJy
ZXNvdXJjZXNFbnRyeS5jcHAKaW5kZXggYTI4Y2JjYTA5YjQ4MGU5YmQ0MmQyOGRmMDQ4NTRiNjdm
ODE4ZjhlZC4uNDcyNjk3OTA1MzhhMjJjNDZjMGY3MTkzOGZlNTBlNjFhMWY4MzUxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Vi
cmVzb3VyY2VzRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcApAQCAtMzgsMTkgKzM4LDMwIEBA
IG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogCiB2b2lkIFN1YnJlc291cmNlSW5mbzo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBmaXJzdFBhcnR5Rm9y
Q29va2llczsKLSAgICBlbmNvZGVyIDw8IGlzVHJhbnNpZW50OwotICAgIHJlcXVlc3RIZWFkZXJz
LmVuY29kZShlbmNvZGVyKTsKKyAgICBlbmNvZGVyIDw8IG1faXNUcmFuc2llbnQ7CisKKyAgICAv
LyBEbyBub3QgYm90aGVyIHNlcmlhbGl6aW5nIG90aGVyIGRhdGEgbWVtYmVycyBvZiB0cmFuc2ll
bnQgcmVzb3VyY2VzIGFzIHRoZXkgYXJlIGVtcHR5LgorICAgIGlmIChtX2lzVHJhbnNpZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBlbmNvZGVyIDw8IG1fZmlyc3RQYXJ0eUZvckNvb2tpZXM7
CisgICAgZW5jb2RlciA8PCBtX3JlcXVlc3RIZWFkZXJzOwogfQogCiBib29sIFN1YnJlc291cmNl
SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN1YnJlc291cmNlSW5mbyYgaW5mbykKIHsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uZmlyc3RQYXJ0eUZvckNvb2tpZXMpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX2lzVHJhbnNpZW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1RyYW5zaWVudCkpCisKKyAg
ICBpZiAoaW5mby5tX2lzVHJhbnNpZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX2ZpcnN0UGFydHlGb3JDb29raWVzKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghV2ViQ29yZTo6SFRUUEhlYWRlck1hcDo6ZGVjb2RlKGRl
Y29kZXIsIGluZm8ucmVxdWVzdEhlYWRlcnMpKQorCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLm1fcmVxdWVzdEhlYWRlcnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtODQsMTQgKzk1LDE0IEBAIFN1YnJlc291cmNlc0VudHJ5OjpTdWJy
ZXNvdXJjZXNFbnRyeShjb25zdCBTdG9yYWdlOjpSZWNvcmQmIHN0b3JhZ2VFbnRyeSkKICAgICA6
IG1fa2V5KHN0b3JhZ2VFbnRyeS5rZXkpCiAgICAgLCBtX3RpbWVTdGFtcChzdG9yYWdlRW50cnku
dGltZVN0YW1wKQogewotICAgIEFTU0VSVChtX2tleS50eXBlKCkgPT0gInN1YnJlc291cmNlcyIp
OworICAgIEFTU0VSVChtX2tleS50eXBlKCkgPT0gIlN1YlJlc291cmNlcyIpOwogfQogCiBTdWJy
ZXNvdXJjZXNFbnRyeTo6U3VicmVzb3VyY2VzRW50cnkoS2V5JiYga2V5LCBjb25zdCBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPFN1YnJlc291cmNlTG9hZD4+JiBzdWJyZXNvdXJjZUxvYWRzKQogICAg
IDogbV9rZXkoV1RGTW92ZShrZXkpKQogICAgICwgbV90aW1lU3RhbXAoc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6bm93KCkpCiB7Ci0gICAgQVNTRVJUKG1fa2V5LnR5cGUoKSA9PSAic3VicmVz
b3VyY2VzIik7CisgICAgQVNTRVJUKG1fa2V5LnR5cGUoKSA9PSAiU3ViUmVzb3VyY2VzIik7CiAg
ICAgZm9yIChhdXRvJiBzdWJyZXNvdXJjZUxvYWQgOiBzdWJyZXNvdXJjZUxvYWRzKQogICAgICAg
ICBtX3N1YnJlc291cmNlcy5hZGQoc3VicmVzb3VyY2VMb2FkLT5rZXksIFN1YnJlc291cmNlSW5m
byhzdWJyZXNvdXJjZUxvYWQtPnJlcXVlc3QpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNv
dXJjZXNFbnRyeS5oCmluZGV4IDY1YzM1YjBmNDQyZTg1MGUxY2UzYzBlOWZjMDY4YTUxNzdlNTcz
N2QuLjAwN2Y3MDVhZDAxZWJlZjBkMDIzZTNjMWIzYTUyNmQ1NDU2MjIxYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291
cmNlc0VudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaApAQCAtMzgsMjMgKzM4LDI4IEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogCi1zdHJ1Y3QgU3VicmVzb3Vy
Y2VJbmZvIHsKK2NsYXNzIFN1YnJlc291cmNlSW5mbyB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTdWJyZXNvdXJjZUluZm8mKTsKIAogICAgIFN1
YnJlc291cmNlSW5mbygpID0gZGVmYXVsdDsKICAgICBTdWJyZXNvdXJjZUluZm8oY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGlzVHJhbnNpZW50ID0gZmFsc2Up
Ci0gICAgICAgIDogZmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpKQotICAgICAgICAsIHJlcXVlc3RIZWFkZXJzKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxk
cygpKQotICAgICAgICAsIGlzVHJhbnNpZW50KGlzVHJhbnNpZW50KQotICAgIHsgfQorICAgICAg
ICA6IG1faXNUcmFuc2llbnQoaXNUcmFuc2llbnQpCisgICAgICAgICwgbV9maXJzdFBhcnR5Rm9y
Q29va2llcyhpc1RyYW5zaWVudCA/IFdlYkNvcmU6OlVSTCgpIDogcmVxdWVzdC5maXJzdFBhcnR5
Rm9yQ29va2llcygpKQorICAgICAgICAsIG1fcmVxdWVzdEhlYWRlcnMoaXNUcmFuc2llbnQgPyBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwKCkgOiByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkKKyAg
ICB7CisgICAgfQogCi0gICAgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHlGb3JDb29raWVzOwotICAg
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgcmVxdWVzdEhlYWRlcnM7Ci0gICAgYm9vbCBpc1RyYW5z
aWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc1RyYW5zaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNUcmFuc2llbnQ7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzKCkgY29uc3QgeyBBU1NFUlQoIW1faXNUcmFuc2llbnQpOyByZXR1cm4gbV9maXJzdFBhcnR5
Rm9yQ29va2llczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIHJlcXVlc3RI
ZWFkZXJzKCkgY29uc3QgeyBBU1NFUlQoIW1faXNUcmFuc2llbnQpOyByZXR1cm4gbV9yZXF1ZXN0
SGVhZGVyczsgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9pc1RyYW5zaWVudCB7IHRydWUgfTsK
KyAgICBXZWJDb3JlOjpVUkwgbV9maXJzdFBhcnR5Rm9yQ29va2llczsKKyAgICBXZWJDb3JlOjpI
VFRQSGVhZGVyTWFwIG1fcmVxdWVzdEhlYWRlcnM7CiB9OwogCiBzdHJ1Y3QgU3VicmVzb3VyY2VM
b2FkIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>