<?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>215714</bug_id>
          
          <creation_ts>2020-08-20 14:14:13 -0700</creation_ts>
          <short_desc>Range::contains does not work correctly when the common ancestor node is a Document.</short_desc>
          <delta_ts>2020-08-21 04:43:14 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1681813</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-20 14:14:13 -0700</bug_when>
    <thetext>Range::contains(const Range&amp;) should compare the Documents to which the Ranges belong, not the ownerDocuments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681827</commentid>
    <comment_count>1</comment_count>
      <attachid>406971</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-20 14:49:29 -0700</bug_when>
    <thetext>Created attachment 406971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681834</commentid>
    <comment_count>2</comment_count>
      <attachid>406971</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-20 15:02:26 -0700</bug_when>
    <thetext>Comment on attachment 406971
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Range::contains(const Range&amp;) should compare the Documents to which the Ranges belong, not the ownerDocuments.

This bug title is not quite right. The ranges’ ownerDocuments would be fine to compare and if that’s what the code was doing, we’d be fine. The mistake is to compare ownerDocuments of the common ancestor *nodes*. The bug title gives the wrong idea about that.

I would use a title more like this:

     Range::contains does not work correctly when the common ancestor is a Document

&gt; Source/WebCore/ChangeLog:12
&gt; +        The problem was that for two Ranges a and b, where a is the document
&gt; +        object range and b any other range belonging to the same document,
&gt; +        a.contains(b) would return false. This is counter intuitive and incorrect

This overstates the case. The bug occurs only when the common ancestor was is document. If there was any other common ancestor (and there almost always is, typically the document element) then it worked fine.

This only occurs when ranges have start and end points that are outside the document element, an unusual pattern that doesn’t come up much. An alternate fix would be to change the accessibility code to not form ranges that are so unusual. Might be worth doing that anyway.

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:647
&gt; -    auto node = this-&gt;node();
&gt; -    if (!node)
&gt; -        return { };
&gt; -    return AXObjectCache::rangeForNodeContents(*node);
&gt; +    if (auto node = this-&gt;node())
&gt; +        return AXObjectCache::rangeForNodeContents(*node);
&gt; +    return { };

Not sure this is an improvement. The early return style is something I personally like, where the main logic stays on the left and is not nested inside an if statement, even though that style doesn’t scope the local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681888</commentid>
    <comment_count>3</comment_count>
      <attachid>406985</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-20 17:44:29 -0700</bug_when>
    <thetext>Created attachment 406985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681894</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-20 17:51:26 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 406971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406971&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Range::contains(const Range&amp;) should compare the Documents to which the Ranges belong, not the ownerDocuments.
&gt; 
&gt; This bug title is not quite right. The ranges’ ownerDocuments would be fine
&gt; to compare and if that’s what the code was doing, we’d be fine. The mistake
&gt; is to compare ownerDocuments of the common ancestor *nodes*. The bug title
&gt; gives the wrong idea about that.
&gt; 
&gt; I would use a title more like this:
&gt; 
&gt;      Range::contains does not work correctly when the common ancestor is a
&gt; Document

Fixed.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        The problem was that for two Ranges a and b, where a is the document
&gt; &gt; +        object range and b any other range belonging to the same document,
&gt; &gt; +        a.contains(b) would return false. This is counter intuitive and incorrect
&gt; 
&gt; This overstates the case. The bug occurs only when the common ancestor was
&gt; is document. If there was any other common ancestor (and there almost always
&gt; is, typically the document element) then it worked fine.
&gt; 
&gt; This only occurs when ranges have start and end points that are outside the
&gt; document element, an unusual pattern that doesn’t come up much. An alternate
&gt; fix would be to change the accessibility code to not form ranges that are so
&gt; unusual. Might be worth doing that anyway.

Fixed. This is happening in every message body in the Mail app with VoiceOver.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:647
&gt; &gt; -    auto node = this-&gt;node();
&gt; &gt; -    if (!node)
&gt; &gt; -        return { };
&gt; &gt; -    return AXObjectCache::rangeForNodeContents(*node);
&gt; &gt; +    if (auto node = this-&gt;node())
&gt; &gt; +        return AXObjectCache::rangeForNodeContents(*node);
&gt; &gt; +    return { };
&gt; 
&gt; Not sure this is an improvement. The early return style is something I
&gt; personally like, where the main logic stays on the left and is not nested
&gt; inside an if statement, even though that style doesn’t scope the local
&gt; variable.

Reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681911</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-20 18:55:15 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #4)
&gt; This is happening in every message body in the Mail app with
&gt; VoiceOver.

Yes, but I think that’s because of some accessibility code that currently happens to use a range that covers the whole document but could instead use a range that covers the contents of the body element. The hierarchy is: document -&gt; document element -&gt; body element -&gt; content and it&apos;s likely all sorts of code is arbitrarily making different choices of how to make an &quot;everything&quot; range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681959</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-21 04:42:54 -0700</bug_when>
    <thetext>Committed r266004: &lt;https://trac.webkit.org/changeset/266004&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406985.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681960</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-21 04:43:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/67547934&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406971</attachid>
            <date>2020-08-20 14:49:29 -0700</date>
            <delta_ts>2020-08-20 17:44:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215714-20200820174928.patch</filename>
            <type>text/plain</type>
            <size>10640</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIyZGExZTFiZDk2NGIx
MmNhYjhiMGUxNDEwNTZhZTNmOTcyOWI1OS4uN2I2MTMzNTUzNjVkMDFlMDAwM2IzY2Y1NWQ0ODUw
NmE0ODgxODVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA4LTIwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBSYW5nZTo6Y29u
dGFpbnMoY29uc3QgUmFuZ2UmKSBzaG91bGQgY29tcGFyZSB0aGUgRG9jdW1lbnRzIHRvIHdoaWNo
IHRoZSBSYW5nZXMgYmVsb25nLCBub3QgdGhlIG93bmVyRG9jdW1lbnRzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NzE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0ZWQtdmlzaWJsZS1wb3NpdGlvbi1yYW5nZS5odG1sLgorCisgICAgICAgIFRoZSBw
cm9ibGVtIHdhcyB0aGF0IGZvciB0d28gUmFuZ2VzIGEgYW5kIGIsIHdoZXJlIGEgaXMgdGhlIGRv
Y3VtZW50CisgICAgICAgIG9iamVjdCByYW5nZSBhbmQgYiBhbnkgb3RoZXIgcmFuZ2UgYmVsb25n
aW5nIHRvIHRoZSBzYW1lIGRvY3VtZW50LAorICAgICAgICBhLmNvbnRhaW5zKGIpIHdvdWxkIHJl
dHVybiBmYWxzZS4gVGhpcyBpcyBjb3VudGVyIGludHVpdGl2ZSBhbmQgaW5jb3JyZWN0CisgICAg
ICAgIHNpbmNlIHRoZSBkb2N1bWVudCBvYmplY3QgcmFuZ2Ugc2hvdWxkIGNvbnRhaW4gYW55IG90
aGVyIHJhbmdlIGluIHRoZQorICAgICAgICBkb2N1bWVudC4gVGhlIHNvbHV0aW9uIGlzIHRvIGNv
bXBhcmUgdGhlIGRvY3VtZW50KCkgZm9yIHRoZSBjb21tb25BbmNlc3RvckNvbnRhaW5lcgorICAg
ICAgICBvZiB0aGUgcmFuZ2VzIGluc3RlYWQgb2YgdGhlaXIgb3duZXJEb2N1bWVudCgpLgorCisg
ICAgICAgIFRoaXMgaXNzdWUgd2FzIGNhdXNpbmcgcHJvYmxlbXMgaW4gVm9pY2VPdmVyIG5hdmln
YXRpb24gYW5kIEJyYWlsbGUKKyAgICAgICAgZnVuY3Rpb25hbGl0eSBpbiB0aGUgTWFpbC5hcHAg
b24gTWFjT1MuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZWxlbWVudFJhbmdl
IGNvbnN0KTogQ29kZSBjbGVhbnVwLCBtb3JlIGNvbmNpc2UgaWRpb20uCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UgY29uc3QpOgorICAgICAgICBVc2UgU2ltcGxlUmFuZ2U6OmlzTnVsbCBpbnN0ZWFkIG9m
IHJlcGVhdGluZyBpdHMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogZG9tL1JhbmdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjb250YWlucyBjb25zdCk6IENvbXBhcmUgdGhlIERv
Y3VtZW50cyB0byB3aGljaCB0aGUKKyAgICAgICAgUmFuZ2VzJyBib3VuZGFyaWVzIGJlbG9uZyBp
bnN0ZWFkIG9mIHRoZWlyIG93bmVyRG9jdW1lbnRzLgorCiAyMDIwLTA4LTE4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXVkaW9CdWZmZXIuZHVyYXRpb24gc2hv
dWxkIHVzZSBkb3VibGUgcHJlY2lzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBjYTVmMjIxMzA2YzU5N2FmZDFm
YmUxMzcyYTlkY2E2NDNjNTg4NGQ4Li4zMWIyNmY5Njk5ZWJmMzlkY2U3Njg1Y2Q0YmI3YWQ1Yjdm
Mzg5YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKQEAgLTY0MiwxMCArNjQyLDkgQEAgT3B0aW9uYWw8U2ltcGxlUmFu
Z2U+IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGlvblJhbmdlKCkgY29uc3QKIAogT3B0aW9u
YWw8U2ltcGxlUmFuZ2U+IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmVsZW1lbnRSYW5nZSgpIGNvbnN0
CiB7Ci0gICAgYXV0byBub2RlID0gdGhpcy0+bm9kZSgpOwotICAgIGlmICghbm9kZSkKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6cmFuZ2VGb3JOb2RlQ29u
dGVudHMoKm5vZGUpOworICAgIGlmIChhdXRvIG5vZGUgPSB0aGlzLT5ub2RlKCkpCisgICAgICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpyYW5nZUZvck5vZGVDb250ZW50cygqbm9kZSk7CisgICAg
cmV0dXJuIHsgfTsKIH0KIAogT3B0aW9uYWw8U2ltcGxlUmFuZ2U+IEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmZpbmRUZXh0UmFuZ2UoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaFN0cmluZ3MsIGNv
bnN0IFNpbXBsZVJhbmdlJiBzdGFydCwgQWNjZXNzaWJpbGl0eVNlYXJjaFRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMThkOWFkOWI4MjM4MmIz
MDIxZjczYWNmMDI0NzhlOTQ4ZGIyNzJiZi4uZjc1ZDk5YWNhYjg1Y2FlNmY2MTc2MzlhMDEwMzU0
NjQyOGRkNzhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yMTk5LDEwICsyMTk5LDEwIEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNWaXNpYmxlUG9zaXRpb25SYW5nZUlu
RGlmZmVyZW50RG9jdW1lbnQoY29uc3QKICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0gICAg
CisKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9z
aXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgcmFuZ2UpIGNvbnN0CiB7Ci0g
ICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKKyAgICBp
ZiAocmFuZ2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEluIFdlYktpdDEs
IHdoZW4gdGhlIHRvcCB3ZWIgYXJlYSBzZXRzIHRoZSBzZWxlY3Rpb24gdG8gYmUgYW4gaW5wdXQg
ZWxlbWVudCBpbiBhbiBpZnJhbWUsIHRoZSBjYXJldCB3aWxsIGRpc2FwcGVhci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwCmluZGV4IDcwMDgxYmUyMGNiMWI3M2I2YjRhNzk0ZmFiOWE3YTFlOWNiMmNlNDUuLjJl
MTYzNzQ2MGU2NTY0MjVmNDU0MThjYzhkNDllYjIwMTg5ZDI1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cApAQCAtMTE2Myw3ICsxMTYzLDcgQEAgdm9pZCBSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAKIGJvb2wgUmFuZ2U6OmNvbnRhaW5z
KGNvbnN0IFJhbmdlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoY29tbW9uQW5jZXN0b3JDb250
YWluZXIoKS0+b3duZXJEb2N1bWVudCgpICE9IG90aGVyLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVy
KCktPm93bmVyRG9jdW1lbnQoKSkKKyAgICBpZiAoY29tbW9uQW5jZXN0b3JDb250YWluZXIoKS0+
ZG9jdW1lbnQoKSAhPSBvdGhlci5jb21tb25BbmNlc3RvckNvbnRhaW5lcigpLT5kb2N1bWVudCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIHN0YXJ0VG9TdGFydCA9IGNvbXBh
cmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6U1RBUlRfVE9fU1RBUlQsIG90aGVyKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
MDQwNzQyMDU1NWZjM2JiYmNlNWM5YWE1YzEwYzA4ZDlkMmQ1MDIwLi5hOWFiYmE5N2Y1YzRiN2Fi
YzEyNzM5Mjc5NzU4NTM5M2ZjNmNlZGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDgt
MjAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAgICAgIFJh
bmdlOjpjb250YWlucyhjb25zdCBSYW5nZSYpIHNob3VsZCBjb21wYXJlIHRoZSBEb2N1bWVudHMg
dG8gd2hpY2ggdGhlIFJhbmdlcyBiZWxvbmcsIG5vdCB0aGUgb3duZXJEb2N1bWVudHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZhbXBlZCB0aGUg
Zm9sbG93aW5nIHRlc3QgdG8gY2hlY2sgdGhhdCBhIGNvbGxhcHNlZCBzZWxlY3Rpb24gcmFuZ2Ug
aXMKKyAgICAgICAgc2V0IHRvIHRoZSBjb3JyZWN0IGNoYXJhY3RlciBvZmZzZXQgaW4gdGhlIHRl
eHQgY29udGVudC4gSW4gYWRkaXRpb24sCisgICAgICAgIHByb3Blcmx5IHVzZWQgdGhlIFByb21p
c2UgcmV0dXJuZWQgYnkgd2FpdEZvciBpbiBvcmRlciB0byBtYWtlIHRoZSB0ZXN0CisgICAgICAg
IHRpbWluZyBpbmRlcGVuZGVudCBhbmQgd29yayBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNp
YmxlLXBvc2l0aW9uLXJhbmdlLmh0bWw6CisKIDIwMjAtMDgtMTkgIERpZWdvIFBpbm8gR2FyY2lh
ICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIHRlc3QgZ2Fy
ZGVuaW5nLiBTa2lwIG1vcmUgdGVzdHMgdXNpbmcgcGx1Z2lucyBhZnRlciByMjY1NzUzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0ZWQtdmlzaWJsZS1w
b3NpdGlvbi1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCBiZjc4
NWVkMjU2ZWU5OWFlZDFkYmU1YTNlMDgxOTMzZjMwODAyMzhlLi5hYmNiMzk1ZjVjYmMyMTkxM2Fm
YTMwNGFlZjM5YmQxYTZjNTg3OTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9u
LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMTIsNyArMTIsNyBAQCBQQVNTIGN1cnJlbnQgc2VsZWN0
aW9uIGlzICdGaXJzdCBwYXJhZ3JhcGguCiAKICcKIFBBU1MgY3VycmVudCBzZWxlY3Rpb24gaXMg
JycKLVBBU1MgY3VycmVudCBzZWxlY3Rpb24gaXMgJycKK1BBU1MgY3VycmVudCBzZWxlY3Rpb24g
aW5kZXggaXMgMTkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0ZWQt
dmlzaWJsZS1wb3NpdGlvbi1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0ZWQtdmlzaWJsZS1wb3NpdGlvbi1yYW5nZS5odG1sCmluZGV4IDFlNzZlODQwNzlh
OTE5YmM3ZTZmMGZkYjYxNWI2ZWRlOTVjZDkxZTIuLjc5ZDA4MTFiMWRmN2I1MTM2MjI4ODFlOTA0
MzkzZTA1MDUyNzUzNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NlbGVjdGVkLXZpc2libGUtcG9zaXRpb24tcmFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLmh0bWwKQEAg
LTE4LDQxICsxOCw1NiBAQAogPHNjcmlwdD4KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBn
ZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSBzZWxlY3RlZCBWaXNpYmxlUG9zaXRpb24gcmFuZ2UuIik7
CiAKLSAgICBmdW5jdGlvbiBjaGVja0N1cnJlbnRTZWxlY3Rpb24oYWNjZXNzaWJsZU9iamVjdCwg
c2VsZWN0aW9uKQotICAgIHsKLSAgICAgICAgd2FpdEZvcigoKSA9PiB7Ci0gICAgICAgICAgICBz
ZWxlY3RlZFJhbmdlID0gYWNjZXNzaWJsZU9iamVjdC5zZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgp
OwotICAgICAgICAgICAgc2VsZWN0ZWRTdHJpbmcgPSBhY2Nlc3NpYmxlT2JqZWN0LnN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZShzZWxlY3RlZFJhbmdlKTsKLSAgICAgICAgICAgIHJldHVybiBzZWxl
Y3RlZFN0cmluZyA9PSBzZWxlY3Rpb247Ci0gICAgICAgIH0pOwotICAgICAgICBkZWJ1ZygiUEFT
UyBjdXJyZW50IHNlbGVjdGlvbiBpcyAnIiArIHNlbGVjdGlvbiArICInIik7Ci0gICAgfQotCiAg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKICAgICAgICAgLy8gU2VsZWN0IHRoZSBsYXN0IHBhcmFn
cmFwaCB1c2luZyBET00gQVBJLgogICAgICAgICBzZWxlY3RUZXh0SW5Ob2RlKCJwMiIpOwogCiAg
ICAgICAgIC8vIEdldCBjdXJyZW50IHNlbGVjdGlvbiByYW5nZSB2aWEgYWNjZXNzaWJpbGl0eSBB
UEkuCiAgICAgICAgIHZhciBjb250ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjb250ZW50Iik7Ci0gICAgICAgIGNoZWNrQ3VycmVudFNlbGVjdGlv
bihjb250ZW50LCAiTGFzdCBwYXJhZ3JhcGguIik7Ci0KLSAgICAgICAgLy8gU2V0IHRoZSBzZWxl
Y3Rpb24gdG8gdGhlIGZpcnN0IHBhcmFncmFwaCB2aWEgYWNjZXNzaWJpbGl0eSBBUEkuCi0gICAg
ICAgIHZhciBsYXN0UGFyYWdyYXBoUmFuZ2UgPSBjb250ZW50LnNlbGVjdGVkVGV4dE1hcmtlclJh
bmdlKCk7Ci0gICAgICAgIHZhciBsYXN0UGFyYWdyYXBoU3RhcnQgPSBjb250ZW50LnN0YXJ0VGV4
dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShsYXN0UGFyYWdyYXBoUmFuZ2UpOwotICAgICAgICB2
YXIgZmlyc3RQYXJhZ3JhcGhTdGFydCA9IGNvbnRlbnQucHJldmlvdXNQYXJhZ3JhcGhTdGFydFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyKGxhc3RQYXJhZ3JhcGhTdGFydCk7Ci0gICAgICAgIHZhciBm
aXJzdFBhcmFncmFwaFJhbmdlID0gY29udGVudC50ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKGZp
cnN0UGFyYWdyYXBoU3RhcnQsIGxhc3RQYXJhZ3JhcGhTdGFydCk7Ci0gICAgICAgIGNvbnRlbnQu
c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKGZpcnN0UGFyYWdyYXBoUmFuZ2UpOwotICAgICAg
ICBjaGVja0N1cnJlbnRTZWxlY3Rpb24oY29udGVudCwgIkZpcnN0IHBhcmFncmFwaC5cblxuIik7
Ci0KLSAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYSBjb2xsYXBzZWQgcmFu
Z2UgYXQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBsYXN0IHBhcmFncmFwaC4KLSAgICAgICAg
dmFyIG51bGxSYW5nZSA9IGNvbnRlbnQudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhsYXN0UGFy
YWdyYXBoU3RhcnQsIGxhc3RQYXJhZ3JhcGhTdGFydCk7Ci0gICAgICAgIGNvbnRlbnQuc2V0U2Vs
ZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKG51bGxSYW5nZSk7Ci0gICAgICAgIGNoZWNrQ3VycmVudFNl
bGVjdGlvbihjb250ZW50LCAiIik7Ci0KLSAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gcmFu
Z2UgdG8gYSBjb2xsYXBzZWQgcmFuZ2UgYXQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBmaXJz
dCBwYXJhZ3JhcGguCi0gICAgICAgIG51bGxSYW5nZSA9IGNvbnRlbnQudGV4dE1hcmtlclJhbmdl
Rm9yTWFya2VycyhmaXJzdFBhcmFncmFwaFN0YXJ0LCBmaXJzdFBhcmFncmFwaFN0YXJ0KTsKLSAg
ICAgICAgY29udGVudC5zZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UobnVsbFJhbmdlKTsKLSAg
ICAgICAgY2hlY2tDdXJyZW50U2VsZWN0aW9uKGNvbnRlbnQsICIiKTsKKyAgICAgICAgc2V0VGlt
ZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlID0g
bnVsbDsKKyAgICAgICAgICAgIHZhciBzZWxlY3RlZFN0cmluZyA9ICIiOworICAgICAgICAgICAg
dmFyIHNlbGVjdGVkSW5kZXggPSAtMTsKKworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9
PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZSA9IGNvbnRlbnQuc2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2UoKTsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZFN0cmluZyA9IGNvbnRlbnQu
c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHNlbGVjdGVkUmFuZ2UpOworICAgICAgICAgICAgICAg
IHJldHVybiBzZWxlY3RlZFN0cmluZyA9PSAiTGFzdCBwYXJhZ3JhcGguIjsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgZGVidWcoIlBBU1MgY3VycmVudCBzZWxlY3Rpb24gaXMgJyIgKyBz
ZWxlY3RlZFN0cmluZyArICInIik7CisKKyAgICAgICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9u
IHRvIHRoZSBmaXJzdCBwYXJhZ3JhcGggdmlhIGFjY2Vzc2liaWxpdHkgQVBJLgorICAgICAgICAg
ICAgdmFyIGVuZCA9IGNvbnRlbnQuc3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKHNl
bGVjdGVkUmFuZ2UpOworICAgICAgICAgICAgdmFyIHN0YXJ0ID0gY29udGVudC5wcmV2aW91c1Bh
cmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoZW5kKTsKKyAgICAgICAgICAgIHZh
ciByYW5nZSA9IGNvbnRlbnQudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhzdGFydCwgZW5kKTsK
KyAgICAgICAgICAgIGNvbnRlbnQuc2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKHJhbmdlKTsK
KworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRSYW5nZSA9IGNvbnRlbnQuc2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKTsKKyAgICAgICAg
ICAgICAgICBzZWxlY3RlZFN0cmluZyA9IGNvbnRlbnQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdl
KHNlbGVjdGVkUmFuZ2UpOworICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZFN0cmluZyA9
PSAiRmlyc3QgcGFyYWdyYXBoLlxuXG4iOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBk
ZWJ1ZygiUEFTUyBjdXJyZW50IHNlbGVjdGlvbiBpcyAnIiArIHNlbGVjdGVkU3RyaW5nICsgIici
KTsKKworICAgICAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYSBjb2xsYXBz
ZWQgcmFuZ2UgYXQgdGhlIHNlY29uZCBjaGFyYWN0ZXIgb2YgdGhlIGxhc3QgcGFyYWdyYXBoLgor
ICAgICAgICAgICAgZW5kID0gY29udGVudC5uZXh0VGV4dE1hcmtlcihlbmQpOworICAgICAgICAg
ICAgcmFuZ2UgPSBjb250ZW50LnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoZW5kLCBlbmQpOwor
ICAgICAgICAgICAgY29udGVudC5zZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UocmFuZ2UpOwor
CisgICAgICAgICAgICB2YXIgaW5kZXggPSAtMTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Io
KCkgPT4geworICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UgPSBjb250ZW50LnNlbGVjdGVk
VGV4dE1hcmtlclJhbmdlKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWRTdHJpbmcgPSBjb250
ZW50LnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShzZWxlY3RlZFJhbmdlKTsKKyAgICAgICAgICAg
ICAgICBpbmRleCA9IGNvbnRlbnQuaW5kZXhGb3JUZXh0TWFya2VyKGNvbnRlbnQuc3RhcnRUZXh0
TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKHNlbGVjdGVkUmFuZ2UpKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2VsZWN0ZWRTdHJpbmcgPT0gIiIgJiYgaW5kZXggPT0gMTk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIGRlYnVnKCJQQVNTIGN1cnJlbnQgc2VsZWN0aW9uIGlzICciICsg
c2VsZWN0ZWRTdHJpbmcgKyAiJyIpOworICAgICAgICAgICAgZGVidWcoIlBBU1MgY3VycmVudCBz
ZWxlY3Rpb24gaW5kZXggaXMgIiArIGluZGV4KTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0sIDApOwogICAgIH0KIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406985</attachid>
            <date>2020-08-20 17:44:29 -0700</date>
            <delta_ts>2020-08-21 04:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215714-20200820204428.patch</filename>
            <type>text/plain</type>
            <size>9244</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIyZGExZTFiZDk2NGIx
MmNhYjhiMGUxNDEwNTZhZTNmOTcyOWI1OS4uNGVjYThhOGUxYjRhNjNlOTkxMjNhNGI2NmZhYjFi
ZDM0ZjNjYmEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTIwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBSYW5nZTo6Y29u
dGFpbnMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2hlbiB0aGUgY29tbW9uIGFuY2VzdG9yIG5v
ZGUgaXMgYSBEb2N1bWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNTcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGVkLXZpc2libGUtcG9zaXRpb24t
cmFuZ2UuaHRtbC4KKworICAgICAgICBGb3IgYSBSYW5nZSB3aXRoIGEgRG9jdW1lbnQgb2JqZWN0
IGFzIGNvbW1vbiBhbmNlc3RvciwgUmFuZ2U6OmNvbnRhaW5zKG90aGVyUmFuZ2UpCisgICAgICAg
IHdvdWxkIHJldHVybiBmYWxzZSBmb3IgYW55IGdpdmVuIG90aGVyIHJhbmdlIGluIHRoZSBzYW1l
IGRvY3VtZW50LiBUaGlzCisgICAgICAgIGNhdXNlcyBwcm9ibGVtcyBpbiBWb2ljZU92ZXIgbmF2
aWdhdGlvbiBhbmQgQnJhaWxsZSBmdW5jdGlvbmFsaXR5IGluCisgICAgICAgIHRoZSBNYWNPUyBN
YWlsLmFwcC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgVXNlIFNpbXBs
ZVJhbmdlOjppc051bGwgaW5zdGVhZCBvZiByZXBlYXRpbmcgaXRzIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Y29udGFp
bnMgY29uc3QpOiBDb21wYXJlIHRoZSBEb2N1bWVudHMgb2YgdGhlIHJhbmdlcycKKyAgICAgICAg
Y29tbW9uIGFuY2Vzc3RvciBub2RlcyBpbnN0ZWFkIG9mIHRoZWlyIG93bmVyRG9jdW1lbnRzLgor
CiAyMDIwLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QXVkaW9CdWZmZXIuZHVyYXRpb24gc2hvdWxkIHVzZSBkb3VibGUgcHJlY2lzaW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAxOGQ5YWQ5YjgyMzgyYjMwMjFmNzNhY2YwMjQ3OGU5NDhkYjI3MmJm
Li5mNzVkOTlhY2FiODVjYWU2ZjYxNzYzOWEwMTAzNTQ2NDI4ZGQ3OGMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTIxOTksMTAgKzIxOTksMTAgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc1Zpc2libGVQb3NpdGlvblJhbmdlSW5EaWZmZXJlbnREb2N1bWVudChjb25zdAog
ICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KLSAgICAKKwogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3NpdGlvblJhbmdlJiByYW5nZSkgY29uc3QKIHsKLSAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxs
KCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQorICAgIGlmIChyYW5nZS5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gSW4gV2ViS2l0MSwgd2hlbiB0aGUgdG9wIHdlYiBhcmVhIHNl
dHMgdGhlIHNlbGVjdGlvbiB0byBiZSBhbiBpbnB1dCBlbGVtZW50IGluIGFuIGlmcmFtZSwgdGhl
IGNhcmV0IHdpbGwgZGlzYXBwZWFyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNzAwODFiZTIwY2Ix
YjczYjZiNGE3OTRmYWI5YTdhMWU5Y2IyY2U0NS4uMmUxNjM3NDYwZTY1NjQyNWY0NTQxOGNjOGQ0
OWViMjAxODlkMjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2
b2lkIFJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0
aCkgY29uc3QKIAogYm9vbCBSYW5nZTo6Y29udGFpbnMoY29uc3QgUmFuZ2UmIG90aGVyKSBjb25z
dAogewotICAgIGlmIChjb21tb25BbmNlc3RvckNvbnRhaW5lcigpLT5vd25lckRvY3VtZW50KCkg
IT0gb3RoZXIuY29tbW9uQW5jZXN0b3JDb250YWluZXIoKS0+b3duZXJEb2N1bWVudCgpKQorICAg
IGlmIChjb21tb25BbmNlc3RvckNvbnRhaW5lcigpLT5kb2N1bWVudCgpICE9IG90aGVyLmNvbW1v
bkFuY2VzdG9yQ29udGFpbmVyKCktPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGF1dG8gc3RhcnRUb1N0YXJ0ID0gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpT
VEFSVF9UT19TVEFSVCwgb3RoZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEwNDA3NDIwNTU1ZmMzYmJiY2U1YzlhYTVj
MTBjMDhkOWQyZDUwMjAuLmM4MmQ2YmIwMTYwNWY5MGFmZmEyZmFkYmYyODQ3OGI4MGM3NDg4MTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wOC0yMCAgQW5kcmVzIEdvbnphbGV6ICA8YW5k
cmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2U6OmNvbnRhaW5zKGNvbnN0IFJhbmdl
Jikgc2hvdWxkIGNvbXBhcmUgdGhlIERvY3VtZW50cyB0byB3aGljaCB0aGUgUmFuZ2VzIGJlbG9u
Zywgbm90IHRoZSBvd25lckRvY3VtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIFJldmFtcGVkIHRoZSBmb2xsb3dpbmcgdGVzdCB0byBjaGVjayB0aGF0
IGEgY29sbGFwc2VkIHNlbGVjdGlvbiByYW5nZSBpcworICAgICAgICBzZXQgdG8gdGhlIGNvcnJl
Y3QgY2hhcmFjdGVyIG9mZnNldCBpbiB0aGUgdGV4dCBjb250ZW50LiBJbiBhZGRpdGlvbiwKKyAg
ICAgICAgcHJvcGVybHkgdXNlZCB0aGUgUHJvbWlzZSByZXR1cm5lZCBieSB3YWl0Rm9yIGluIG9y
ZGVyIHRvIG1ha2UgdGhlIHRlc3QKKyAgICAgICAgdGltaW5nIGluZGVwZW5kZW50IGFuZCB3b3Jr
IGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3Nl
bGVjdGVkLXZpc2libGUtcG9zaXRpb24tcmFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL3NlbGVjdGVkLXZpc2libGUtcG9zaXRpb24tcmFuZ2UuaHRtbDoKKwog
MjAyMC0wOC0xOSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFNraXAgbW9yZSB0ZXN0cyB1c2lu
ZyBwbHVnaW5zIGFmdGVyIHIyNjU3NTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGVkLXZpc2libGUtcG9zaXRpb24t
cmFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IGJmNzg1ZWQyNTZlZTk5YWVkMWRiZTVhM2UwODE5MzNm
MzA4MDIzOGUuLmFiY2IzOTVmNWNiYzIxOTEzYWZhMzA0YWVmMzliZDFhNmM1ODc5OTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGVkLXZpc2libGUtcG9z
aXRpb24tcmFuZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGVkLXZpc2libGUtcG9zaXRpb24tcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0xMiw3
ICsxMiw3IEBAIFBBU1MgY3VycmVudCBzZWxlY3Rpb24gaXMgJ0ZpcnN0IHBhcmFncmFwaC4KIAog
JwogUEFTUyBjdXJyZW50IHNlbGVjdGlvbiBpcyAnJwotUEFTUyBjdXJyZW50IHNlbGVjdGlvbiBp
cyAnJworUEFTUyBjdXJyZW50IHNlbGVjdGlvbiBpbmRleCBpcyAxOQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9u
LXJhbmdlLmh0bWwKaW5kZXggMWU3NmU4NDA3OWE5MTliYzdlNmYwZmRiNjE1YjZlZGU5NWNkOTFl
Mi4uNzlkMDgxMWIxZGY3YjUxMzYyMjg4MWU5MDQzOTNlMDUwNTI3NTM2ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0ZWQtdmlzaWJsZS1wb3NpdGlvbi1y
YW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGVkLXZp
c2libGUtcG9zaXRpb24tcmFuZ2UuaHRtbApAQCAtMTgsNDEgKzE4LDU2IEBACiA8c2NyaXB0Pgog
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGdldHRpbmcgYW5kIHNldHRpbmcgdGhlIHNlbGVj
dGVkIFZpc2libGVQb3NpdGlvbiByYW5nZS4iKTsKIAotICAgIGZ1bmN0aW9uIGNoZWNrQ3VycmVu
dFNlbGVjdGlvbihhY2Nlc3NpYmxlT2JqZWN0LCBzZWxlY3Rpb24pCi0gICAgewotICAgICAgICB3
YWl0Rm9yKCgpID0+IHsKLSAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UgPSBhY2Nlc3NpYmxlT2Jq
ZWN0LnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCk7Ci0gICAgICAgICAgICBzZWxlY3RlZFN0cmlu
ZyA9IGFjY2Vzc2libGVPYmplY3Quc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHNlbGVjdGVkUmFu
Z2UpOwotICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkU3RyaW5nID09IHNlbGVjdGlvbjsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIGRlYnVnKCJQQVNTIGN1cnJlbnQgc2VsZWN0aW9uIGlzICciICsg
c2VsZWN0aW9uICsgIiciKTsKLSAgICB9Ci0KICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwogICAg
ICAgICAvLyBTZWxlY3QgdGhlIGxhc3QgcGFyYWdyYXBoIHVzaW5nIERPTSBBUEkuCiAgICAgICAg
IHNlbGVjdFRleHRJbk5vZGUoInAyIik7CiAKICAgICAgICAgLy8gR2V0IGN1cnJlbnQgc2VsZWN0
aW9uIHJhbmdlIHZpYSBhY2Nlc3NpYmlsaXR5IEFQSS4KICAgICAgICAgdmFyIGNvbnRlbnQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNvbnRlbnQiKTsK
LSAgICAgICAgY2hlY2tDdXJyZW50U2VsZWN0aW9uKGNvbnRlbnQsICJMYXN0IHBhcmFncmFwaC4i
KTsKLQotICAgICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgZmlyc3QgcGFyYWdyYXBo
IHZpYSBhY2Nlc3NpYmlsaXR5IEFQSS4KLSAgICAgICAgdmFyIGxhc3RQYXJhZ3JhcGhSYW5nZSA9
IGNvbnRlbnQuc2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKTsKLSAgICAgICAgdmFyIGxhc3RQYXJh
Z3JhcGhTdGFydCA9IGNvbnRlbnQuc3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKGxh
c3RQYXJhZ3JhcGhSYW5nZSk7Ci0gICAgICAgIHZhciBmaXJzdFBhcmFncmFwaFN0YXJ0ID0gY29u
dGVudC5wcmV2aW91c1BhcmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIobGFzdFBh
cmFncmFwaFN0YXJ0KTsKLSAgICAgICAgdmFyIGZpcnN0UGFyYWdyYXBoUmFuZ2UgPSBjb250ZW50
LnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoZmlyc3RQYXJhZ3JhcGhTdGFydCwgbGFzdFBhcmFn
cmFwaFN0YXJ0KTsKLSAgICAgICAgY29udGVudC5zZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2Uo
Zmlyc3RQYXJhZ3JhcGhSYW5nZSk7Ci0gICAgICAgIGNoZWNrQ3VycmVudFNlbGVjdGlvbihjb250
ZW50LCAiRmlyc3QgcGFyYWdyYXBoLlxuXG4iKTsKLQotICAgICAgICAvLyBTZXQgdGhlIHNlbGVj
dGlvbiByYW5nZSB0byBhIGNvbGxhcHNlZCByYW5nZSBhdCB0aGUgc3RhcnQgcG9zaXRpb24gb2Yg
dGhlIGxhc3QgcGFyYWdyYXBoLgotICAgICAgICB2YXIgbnVsbFJhbmdlID0gY29udGVudC50ZXh0
TWFya2VyUmFuZ2VGb3JNYXJrZXJzKGxhc3RQYXJhZ3JhcGhTdGFydCwgbGFzdFBhcmFncmFwaFN0
YXJ0KTsKLSAgICAgICAgY29udGVudC5zZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UobnVsbFJh
bmdlKTsKLSAgICAgICAgY2hlY2tDdXJyZW50U2VsZWN0aW9uKGNvbnRlbnQsICIiKTsKLQotICAg
ICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhIGNvbGxhcHNlZCByYW5nZSBhdCB0
aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGZpcnN0IHBhcmFncmFwaC4KLSAgICAgICAgbnVsbFJh
bmdlID0gY29udGVudC50ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKGZpcnN0UGFyYWdyYXBoU3Rh
cnQsIGZpcnN0UGFyYWdyYXBoU3RhcnQpOwotICAgICAgICBjb250ZW50LnNldFNlbGVjdGVkVmlz
aWJsZVRleHRSYW5nZShudWxsUmFuZ2UpOwotICAgICAgICBjaGVja0N1cnJlbnRTZWxlY3Rpb24o
Y29udGVudCwgIiIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2UgPSBudWxsOworICAgICAgICAgICAgdmFyIHNlbGVj
dGVkU3RyaW5nID0gIiI7CisgICAgICAgICAgICB2YXIgc2VsZWN0ZWRJbmRleCA9IC0xOworCisg
ICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rl
ZFJhbmdlID0gY29udGVudC5zZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgpOworICAgICAgICAgICAg
ICAgIHNlbGVjdGVkU3RyaW5nID0gY29udGVudC5zdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2Uoc2Vs
ZWN0ZWRSYW5nZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkU3RyaW5nID09ICJM
YXN0IHBhcmFncmFwaC4iOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBkZWJ1ZygiUEFT
UyBjdXJyZW50IHNlbGVjdGlvbiBpcyAnIiArIHNlbGVjdGVkU3RyaW5nICsgIiciKTsKKworICAg
ICAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gdG8gdGhlIGZpcnN0IHBhcmFncmFwaCB2aWEg
YWNjZXNzaWJpbGl0eSBBUEkuCisgICAgICAgICAgICB2YXIgZW5kID0gY29udGVudC5zdGFydFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Uoc2VsZWN0ZWRSYW5nZSk7CisgICAgICAgICAgICB2
YXIgc3RhcnQgPSBjb250ZW50LnByZXZpb3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4
dE1hcmtlcihlbmQpOworICAgICAgICAgICAgdmFyIHJhbmdlID0gY29udGVudC50ZXh0TWFya2Vy
UmFuZ2VGb3JNYXJrZXJzKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgY29udGVudC5zZXRTZWxl
Y3RlZFZpc2libGVUZXh0UmFuZ2UocmFuZ2UpOworCisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
KCgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlID0gY29udGVudC5zZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSgpOworICAgICAgICAgICAgICAgIHNlbGVjdGVkU3RyaW5nID0gY29u
dGVudC5zdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2Uoc2VsZWN0ZWRSYW5nZSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGVjdGVkU3RyaW5nID09ICJGaXJzdCBwYXJhZ3JhcGguXG5cbiI7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGRlYnVnKCJQQVNTIGN1cnJlbnQgc2VsZWN0aW9u
IGlzICciICsgc2VsZWN0ZWRTdHJpbmcgKyAiJyIpOworCisgICAgICAgICAgICAvLyBTZXQgdGhl
IHNlbGVjdGlvbiByYW5nZSB0byBhIGNvbGxhcHNlZCByYW5nZSBhdCB0aGUgc2Vjb25kIGNoYXJh
Y3RlciBvZiB0aGUgbGFzdCBwYXJhZ3JhcGguCisgICAgICAgICAgICBlbmQgPSBjb250ZW50Lm5l
eHRUZXh0TWFya2VyKGVuZCk7CisgICAgICAgICAgICByYW5nZSA9IGNvbnRlbnQudGV4dE1hcmtl
clJhbmdlRm9yTWFya2VycyhlbmQsIGVuZCk7CisgICAgICAgICAgICBjb250ZW50LnNldFNlbGVj
dGVkVmlzaWJsZVRleHRSYW5nZShyYW5nZSk7CisKKyAgICAgICAgICAgIHZhciBpbmRleCA9IC0x
OworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRSYW5nZSA9IGNvbnRlbnQuc2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKTsKKyAgICAgICAg
ICAgICAgICBzZWxlY3RlZFN0cmluZyA9IGNvbnRlbnQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdl
KHNlbGVjdGVkUmFuZ2UpOworICAgICAgICAgICAgICAgIGluZGV4ID0gY29udGVudC5pbmRleEZv
clRleHRNYXJrZXIoY29udGVudC5zdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Uoc2Vs
ZWN0ZWRSYW5nZSkpOworICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZFN0cmluZyA9PSAi
IiAmJiBpbmRleCA9PSAxOTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgZGVidWcoIlBB
U1MgY3VycmVudCBzZWxlY3Rpb24gaXMgJyIgKyBzZWxlY3RlZFN0cmluZyArICInIik7CisgICAg
ICAgICAgICBkZWJ1ZygiUEFTUyBjdXJyZW50IHNlbGVjdGlvbiBpbmRleCBpcyAiICsgaW5kZXgp
OworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>