<?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>263032</bug_id>
          
          <creation_ts>2023-10-11 13:17:03 -0700</creation_ts>
          <short_desc>AX: AccessibilityObject::listMarkerTextForNodeAndPosition overload that takes a VisiblePosition is not performant.</short_desc>
          <delta_ts>2023-10-12 07:35:42 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1984376</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-11 13:17:03 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984377</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-10-11 13:17:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/116826061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984378</commentid>
    <comment_count>2</comment_count>
      <attachid>468177</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-11 13:20:43 -0700</bug_when>
    <thetext>Created attachment 468177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984384</commentid>
    <comment_count>3</comment_count>
      <attachid>468177</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-10-11 13:33:30 -0700</bug_when>
    <thetext>Comment on attachment 468177
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1776
&gt; +            builder.append(listMarkerTextForNodeAndPosition(it.node(), visiblePositionRange.start.deepEquivalent()));

I think this will harm performance, as it turns an existing VisiblePosition into a Position, and forces a conversion of that Position back into a VisiblePosition again, which is the expensive operation we are trying to avoid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984385</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-11 13:37:26 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Comment on attachment 468177 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=468177&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1776
&gt; &gt; +            builder.append(listMarkerTextForNodeAndPosition(it.node(), visiblePositionRange.start.deepEquivalent()));
&gt; 
&gt; I think this will harm performance, as it turns an existing VisiblePosition
&gt; into a Position, and forces a conversion of that Position back into a
&gt; VisiblePosition again, which is the expensive operation we are trying to
&gt; avoid.

No, what we are trying to avoid is the determination whether a VisiblePosition is at the beginning of a line, that&apos;s the expensive task, not the construction of a VisiblePosition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984387</commentid>
    <comment_count>5</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-10-11 13:41:52 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #4)
&gt; (In reply to Tyler Wilcock from comment #3)
&gt; &gt; Comment on attachment 468177 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=468177&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1776
&gt; &gt; &gt; +            builder.append(listMarkerTextForNodeAndPosition(it.node(), visiblePositionRange.start.deepEquivalent()));
&gt; &gt; 
&gt; &gt; I think this will harm performance, as it turns an existing VisiblePosition
&gt; &gt; into a Position, and forces a conversion of that Position back into a
&gt; &gt; VisiblePosition again, which is the expensive operation we are trying to
&gt; &gt; avoid.
&gt; 
&gt; No, what we are trying to avoid is the determination whether a
&gt; VisiblePosition is at the beginning of a line, that&apos;s the expensive task,
&gt; not the construction of a VisiblePosition.
That&apos;s not true. It is the construction of VisiblePosition from Position that is expensive. That is what samples show.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984401</commentid>
    <comment_count>6</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-10-11 14:34:59 -0700</bug_when>
    <thetext>This is all from one sample taken from https://developer.android.com/reference/android/view/View#attr_android:screenReaderFocusable. 27110 samples constructing VisiblePosition from Position, and there&apos;s even more smaller chunks in the hundreds of samples that I didn&apos;t include in this summary.

Sample Count, Symbol
10605 WebCore::AccessibilityObject::attributedStringForRange(WebCore::SimpleRange const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
10495     WebCore::AccessibilityObject::contentForRange(WebCore::SimpleRange const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
9593           WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::Node*, WebCore::Position&amp;&amp;) (in WebCore)
4874               WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
4873                   WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
2523                       WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)
4717            WebCore::listMarkerText(WebCore::RenderListItem&amp;, WebCore::VisiblePosition const&amp;) (in WebCore)
4666               WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
4666                   WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)

6796 WebCore::AccessibilityObject::textContent() const (in WebCore)
6787     WebCore::AccessibilityObject::stringForRange(WebCore::SimpleRange const&amp;) const (in WebCore)
6720         WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::Node*, WebCore::Position&amp;&amp;) (in WebCore)
3392             WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
3392                 WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1726                      WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)
725                            WebCore::PositionIterator::decrement() (in WebCore)
3327         WebCore::listMarkerText(WebCore::RenderListItem&amp;, WebCore::VisiblePosition const&amp;) (in WebCore)
3294             WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
3294                 WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1741                       WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)

6828 WebCore::AccessibilityObject::attributedStringForRange(WebCore::SimpleRange const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
6809     WebCore::AccessibilityObject::contentForRange(WebCore::SimpleRange const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
6470         WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::Node*, WebCore::Position&amp;&amp;) (in WebCore)
3291              WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
3290                  WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1913                       WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)
3179          WebCore::listMarkerText(WebCore::RenderListItem&amp;, WebCore::VisiblePosition const&amp;) (in WebCore)
3163              WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
3163                  WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1921                       WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)

4470 WebCore::AccessibilityObject::textContent() const (in WebCore)
4466     WebCore::AccessibilityObject::stringForRange(WebCore::SimpleRange const&amp;) const (in WebCore)
4443         WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::Node*, WebCore::Position&amp;&amp;) (in WebCore)
2223             WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
2223                 WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1347                      WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)
2219          WebCore::listMarkerText(WebCore::RenderListItem&amp;, WebCore::VisiblePosition const&amp;) (in WebCore)
2207              WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity) (in WebCore)
2207                  WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in WebCore)
1358                      WebCore::previousCandidate(WebCore::Position const&amp;) (in WebCore)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984458</commentid>
    <comment_count>7</comment_count>
      <attachid>468181</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-11 16:52:15 -0700</bug_when>
    <thetext>Created attachment 468181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984464</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-11 16:56:36 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #6)
&gt; This is all from one sample taken from
&gt; https://developer.android.com/reference/android/view/View#attr_android:
&gt; screenReaderFocusable. 27110 samples constructing VisiblePosition from
&gt; Position, and there&apos;s even more smaller chunks in the hundreds of samples
&gt; that I didn&apos;t include in this summary.
&gt; 
&gt; Sample Count, Symbol
&gt; 10605
&gt; WebCore::AccessibilityObject::attributedStringForRange(WebCore::SimpleRange
&gt; const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
&gt; 10495     WebCore::AccessibilityObject::contentForRange(WebCore::SimpleRange
&gt; const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
&gt; 9593          
&gt; WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::
&gt; Node*, WebCore::Position&amp;&amp;) (in WebCore)
&gt; 4874              
&gt; WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;,
&gt; WebCore::Affinity) (in WebCore)
&gt; 4873                  
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 2523                       WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 4717            WebCore::listMarkerText(WebCore::RenderListItem&amp;,
&gt; WebCore::VisiblePosition const&amp;) (in WebCore)
&gt; 4666              
&gt; WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;,
&gt; WebCore::Affinity) (in WebCore)
&gt; 4666                  
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 
&gt; 6796 WebCore::AccessibilityObject::textContent() const (in WebCore)
&gt; 6787     WebCore::AccessibilityObject::stringForRange(WebCore::SimpleRange
&gt; const&amp;) const (in WebCore)
&gt; 6720        
&gt; WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::
&gt; Node*, WebCore::Position&amp;&amp;) (in WebCore)
&gt; 3392             WebCore::VisiblePosition::VisiblePosition(WebCore::Position
&gt; const&amp;, WebCore::Affinity) (in WebCore)
&gt; 3392                
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1726                      WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 725                            WebCore::PositionIterator::decrement() (in
&gt; WebCore)
&gt; 3327         WebCore::listMarkerText(WebCore::RenderListItem&amp;,
&gt; WebCore::VisiblePosition const&amp;) (in WebCore)
&gt; 3294             WebCore::VisiblePosition::VisiblePosition(WebCore::Position
&gt; const&amp;, WebCore::Affinity) (in WebCore)
&gt; 3294                
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1741                       WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 
&gt; 6828
&gt; WebCore::AccessibilityObject::attributedStringForRange(WebCore::SimpleRange
&gt; const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
&gt; 6809     WebCore::AccessibilityObject::contentForRange(WebCore::SimpleRange
&gt; const&amp;, WebCore::AXCoreObject::SpellCheck) const (in WebCore)
&gt; 6470        
&gt; WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::
&gt; Node*, WebCore::Position&amp;&amp;) (in WebCore)
&gt; 3291             
&gt; WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;,
&gt; WebCore::Affinity) (in WebCore)
&gt; 3290                 
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1913                       WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 3179          WebCore::listMarkerText(WebCore::RenderListItem&amp;,
&gt; WebCore::VisiblePosition const&amp;) (in WebCore)
&gt; 3163             
&gt; WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;,
&gt; WebCore::Affinity) (in WebCore)
&gt; 3163                 
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1921                       WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 
&gt; 4470 WebCore::AccessibilityObject::textContent() const (in WebCore)
&gt; 4466     WebCore::AccessibilityObject::stringForRange(WebCore::SimpleRange
&gt; const&amp;) const (in WebCore)
&gt; 4443        
&gt; WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition(WebCore::
&gt; Node*, WebCore::Position&amp;&amp;) (in WebCore)
&gt; 2223             WebCore::VisiblePosition::VisiblePosition(WebCore::Position
&gt; const&amp;, WebCore::Affinity) (in WebCore)
&gt; 2223                
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1347                      WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)
&gt; 2219          WebCore::listMarkerText(WebCore::RenderListItem&amp;,
&gt; WebCore::VisiblePosition const&amp;) (in WebCore)
&gt; 2207             
&gt; WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;,
&gt; WebCore::Affinity) (in WebCore)
&gt; 2207                 
&gt; WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;) (in
&gt; WebCore)
&gt; 1358                      WebCore::previousCandidate(WebCore::Position
&gt; const&amp;) (in WebCore)

A second try. We probably have a more extended problem if creating VisiblePositions is that expensive since we use them heavily. Something to investigate further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984583</commentid>
    <comment_count>9</comment_count>
      <attachid>468187</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-10-12 06:15:28 -0700</bug_when>
    <thetext>Created attachment 468187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984591</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-10-12 07:35:40 -0700</bug_when>
    <thetext>Committed 269250@main (168604874bc2): &lt;https://commits.webkit.org/269250@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468187.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468177</attachid>
            <date>2023-10-11 13:20:43 -0700</date>
            <delta_ts>2023-10-11 16:52:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-263032-20231011162042.patch</filename>
            <type>text/plain</type>
            <size>5307</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkM2ZiYWJiOTIzYmNkYzJjZDcwNzdhYjMzMmY4YWUxZjY4NGQ2YzUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDExIE9jdCAyMDIzIDE1OjQxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IFJlbW92ZQogQWNjZXNzaWJpbGl0eU9iamVjdDo6bGlzdE1hcmtlclRleHRGb3JOb2RlQW5k
UG9zaXRpb24gb3ZlcnJpZGUgdGhhdCB0YWtlcyBhCiBWaXNpYmxlUG9zaXRpb24uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjMwMzIKIDxyZGFyOi8vcHJvYmxlbS8x
MTY4MjYwNjE+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkZvbGxvdyB1cCB0byBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyOTkwLgoKVGhpcyBwYXRjaCBy
ZW1vdmVzIHRoaXMgb3ZlcnJpZGUgc2luY2Ugc3RpbGwgaGFkIHRoZSBwcm9ibGVtIGluIGJ1ZyAy
NjI5OTAuIEl0IGFsc28gZWxpbWluYXRlcyB0aGUgY29uZnVzaW9uIGFib3V0IHdoaWNoIG92ZXJy
aWRlIGlzIGNhbGxlZCB3aGVuIGEgY2FsbGVyIGludm9rZXMgdGhlIG1ldGhvZCB3aXRoIGEgUG9z
aXRpb24gdGhhdCBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gYSBWaXNpYmxlUG9zaXRp
b24uIEFsc28sIG1lcmdlZCB0aGUgc3RhdGljIGhlbHBlciBsaXN0TWFya2VyVGV4dCBpbnRvIHRo
ZSBtZXRob2QgdG8gYXZvaWQgY2FsbGluZyBSZW5kZXJMaXN0SXRlbTo6bWFya2VyVGV4dFdpdGhT
dWZmaXggdHdpY2UuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsaXN0TWFya2VyVGV4
dEZvck5vZGVBbmRQb3NpdGlvbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJp
bmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSk6CihXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg6Ci0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwg
MzIgKysrKysrKystLS0tLS0tLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oICAgICAgIHwgIDMgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwg
MjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggZTU2NzRmNmIxYzI5Li43MTY5NGUzNjlmYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMTcxNywyOSArMTcxNywyMyBAQCBzdGF0aWMgUmVuZGVyTGlzdEl0ZW0q
IHJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZShOb2RlKiBub2RlKQogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi0vLyBSZXR1cm5zIHRoZSB0ZXh0IHJlcHJlc2VudGluZyBhIGxpc3QgbWFy
a2VyLgotc3RhdGljIFN0cmluZ1ZpZXcgbGlzdE1hcmtlclRleHQoUmVuZGVyTGlzdEl0ZW0mIGxp
c3RJdGVtLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0VmlzaWJsZVBvc2l0aW9uKQotewot
ICAgIC8vIE9ubHkgaW5jbHVkZSB0aGUgbGlzdCBtYXJrZXIgaWYgdGhlIHJhbmdlIGluY2x1ZGVz
IHRoZSBsaW5lIHN0YXJ0ICh3aGVyZSB0aGUgbWFya2VyIHdvdWxkIGJlKSwgYW5kIGlzIGluIHRo
ZSBzYW1lIGxpbmUgYXMgdGhlIG1hcmtlci4KLSAgICBpZiAoIWlzU3RhcnRPZkxpbmUoc3RhcnRW
aXNpYmxlUG9zaXRpb24pIHx8ICFpblNhbWVMaW5lKHN0YXJ0VmlzaWJsZVBvc2l0aW9uLCBmaXJz
dFBvc2l0aW9uSW5Ob2RlKCZsaXN0SXRlbS5lbGVtZW50KCkpKSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICByZXR1cm4gbGlzdEl0ZW0ubWFya2VyVGV4dFdpdGhTdWZmaXgoKTsKLX0KLQotU3Ry
aW5nVmlldyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsaXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3Np
dGlvbihOb2RlKiBub2RlLCBQb3NpdGlvbiYmIHN0YXJ0UG9zaXRpb24pCitTdHJpbmdWaWV3IEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUq
IG5vZGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uKQogewogICAgIGF1dG8qIGxpc3RJ
dGVtID0gcmVuZGVyTGlzdEl0ZW1Db250YWluZXJGb3JOb2RlKG5vZGUpOwotICAgIC8vIENvbnN0
cnVjdGluZyBhIFZpc2libGVQb3NpdGlvbiBmcm9tIGEgUG9zaXRpb24gY2FuIGJlIGV4dHJhb3Jk
aW5hcmlseSBleHBlbnNpdmUsIHNvIG9ubHkgZG8gaXQgaWYgdGhlcmUncyBhY3R1YWxseSBtYXJr
ZXIgdGV4dC4KLSAgICBpZiAoIWxpc3RJdGVtIHx8IGxpc3RJdGVtLT5tYXJrZXJUZXh0V2l0aFN1
ZmZpeCgpLmlzRW1wdHkoKSkKKyAgICBpZiAoIWxpc3RJdGVtKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIGxpc3RNYXJrZXJUZXh0KCpsaXN0SXRlbSwgV1RGTW92ZShzdGFydFBv
c2l0aW9uKSk7Ci19CisgICAgLy8gRGV0ZXJtaW5pbmcgYSBWaXNpYmxlUG9zaXRpb24gcmVsYXRp
b25zaGlwIHRvIGEgbGluZSBvZiB0ZXh0IGNhbiBiZSBleHBlbnNpdmUuCisgICAgLy8gVGh1cyBw
ZXJmb3JtIHRoYXQgZGV0ZXJtaW5hdGlvbiBvbmx5IGlmIHdlIGhhdmUgc29tZSB0ZXh0IHRvIHJl
dHVybi4KKyAgICBhdXRvIG1hcmtlclRleHQgPSBsaXN0SXRlbS0+bWFya2VyVGV4dFdpdGhTdWZm
aXgoKTsKKyAgICBpZiAobWFya2VyVGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB7IH07
CiAKLVN0cmluZ1ZpZXcgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGlzdE1hcmtlclRleHRGb3JOb2Rl
QW5kUG9zaXRpb24oTm9kZSogbm9kZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydFZpc2li
bGVQb3NpdGlvbikKLXsKLSAgICBhdXRvKiBsaXN0SXRlbSA9IHJlbmRlckxpc3RJdGVtQ29udGFp
bmVyRm9yTm9kZShub2RlKTsKLSAgICByZXR1cm4gbGlzdEl0ZW0gPyBsaXN0TWFya2VyVGV4dCgq
bGlzdEl0ZW0sIHN0YXJ0VmlzaWJsZVBvc2l0aW9uKSA6IFN0cmluZ1ZpZXcoKTsKKyAgICAvLyBP
bmx5IGluY2x1ZGUgdGhlIGxpc3QgbWFya2VyIGlmIHRoZSByYW5nZSBpbmNsdWRlcyB0aGUgbGlu
ZSBzdGFydCAod2hlcmUgdGhlIG1hcmtlciB3b3VsZCBiZSksIGFuZCBpcyBpbiB0aGUgc2FtZSBs
aW5lIGFzIHRoZSBtYXJrZXIuCisgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0VmlzaWJsZVBvc2l0
aW9uIHsgc3RhcnRQb3NpdGlvbiB9OworICAgIGlmICghaXNTdGFydE9mTGluZShzdGFydFZpc2li
bGVQb3NpdGlvbikgfHwgIWluU2FtZUxpbmUoc3RhcnRWaXNpYmxlUG9zaXRpb24sIGZpcnN0UG9z
aXRpb25Jbk5vZGUoJmxpc3RJdGVtLT5lbGVtZW50KCkpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICByZXR1cm4gbWFya2VyVGV4dDsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnN0cmluZ0ZvclJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkgY29uc3QKQEAgLTE3Nzks
NyArMTc3Myw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxl
UG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SCiAgICAgICAgIC8vIG5vbi16ZXJv
IGxlbmd0aCBtZWFucyB0ZXh0dWFsIG5vZGUsIHplcm8gbGVuZ3RoIG1lYW5zIHJlcGxhY2VkIG5v
ZGUgKEFLQSAiYXR0YWNobWVudHMiIGluIEFYKQogICAgICAgICBpZiAoaXQudGV4dCgpLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBBZGQgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIGZvciBs
aXN0IG1hcmtlciB0ZXh0LgotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGlzdE1hcmtlclRl
eHRGb3JOb2RlQW5kUG9zaXRpb24oaXQubm9kZSgpLCB2aXNpYmxlUG9zaXRpb25SYW5nZS5zdGFy
dCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGlzdE1hcmtlclRleHRGb3JOb2RlQW5k
UG9zaXRpb24oaXQubm9kZSgpLCB2aXNpYmxlUG9zaXRpb25SYW5nZS5zdGFydC5kZWVwRXF1aXZh
bGVudCgpKSk7CiAgICAgICAgICAgICBpdC5hcHBlbmRUZXh0VG9TdHJpbmdCdWlsZGVyKGJ1aWxk
ZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gbG9jYXRlIHRoZSBub2RlIGFu
ZCBzdGFydGluZyBvZmZzZXQgZm9yIHRoaXMgcmVwbGFjZWQgcmFuZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMTkwODA4
NmNlYjUzLi5mZjM2NGJkYjQwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01OTMsOCArNTkzLDcgQEAgcHVibGljOgog
ICAgIFN0cmluZyBkb0FYU3RyaW5nRm9yUmFuZ2UoY29uc3QgQ2hhcmFjdGVyUmFuZ2UmKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KICAgICBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5n
ZShjb25zdCBDaGFyYWN0ZXJSYW5nZSYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQog
ICAgIEludFJlY3QgZG9BWEJvdW5kc0ZvclJhbmdlVXNpbmdDaGFyYWN0ZXJPZmZzZXQoY29uc3Qg
Q2hhcmFjdGVyUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0
aWMgU3RyaW5nVmlldyBsaXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbihOb2RlKiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7Ci0gICAgc3RhdGljIFN0cmluZ1ZpZXcgbGlzdE1hcmtlclRl
eHRGb3JOb2RlQW5kUG9zaXRpb24oTm9kZSosIFBvc2l0aW9uJiYpOworICAgIHN0YXRpYyBTdHJp
bmdWaWV3IGxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqLCBjb25zdCBQb3Np
dGlvbiYpOwogCiAgICAgdW5zaWduZWQgZG9BWExpbmVGb3JJbmRleCh1bnNpZ25lZCkgb3ZlcnJp
ZGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468181</attachid>
            <date>2023-10-11 16:52:15 -0700</date>
            <delta_ts>2023-10-12 06:15:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-263032-20231011195214.patch</filename>
            <type>text/plain</type>
            <size>6302</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBmODNhMGQ0YjkxYzZlNjhmNzM3MDIzOTY2YmU2NGY5NmY3MWMzNjE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDExIE9jdCAyMDIzIDE1OjQxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IFJlbW92ZQogQWNjZXNzaWJpbGl0eU9iamVjdDo6bGlzdE1hcmtlclRleHRGb3JOb2RlQW5k
UG9zaXRpb24gb3ZlcnJpZGUgdGhhdCB0YWtlcyBhCiBWaXNpYmxlUG9zaXRpb24uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjMwMzIKIDxyZGFyOi8vcHJvYmxlbS8x
MTY4MjYwNjE+CgpSZXZpZXdlZCBieSBUeWxlciBXaWxjb2NrLgoKRm9sbG93IHVwIHRvIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjI5OTAuCgpUaGlzIHBhdGNoIHJl
bW92ZXMgdGhpcyBvdmVycmlkZSBzaW5jZSwgbGlrZSBpbiBidWcgMjYyOTkwLCBpdCBjYW4gcGVy
Zm9ybSBleHBlbnNpdmUgb3BlcmF0aW9ucyB1bm5lY2Vzc2FyaWx5IGxpa2UgZGV0ZXJtaW5pbmcg
d2hldGhlciB0d28gVmlzaWJsZVBvc2l0aW9ucyBhcmUgaW4gdGhlIHNhbWUgbGluZS4gSXQgYWxz
byBlbGltaW5hdGVzIHRoZSBjb25mdXNpb24gYWJvdXQgd2hpY2ggb3ZlcnJpZGUgaXMgY2FsbGVk
IHdoZW4gYSBjYWxsZXIgaW52b2tlcyB0aGUgbWV0aG9kIHdpdGggYSBQb3NpdGlvbiB0aGF0IGNh
biBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBhIFZpc2libGVQb3NpdGlvbi4gVGhlIGFkZGl0
aW9uIG9mIGEgcGFyYW1ldGVyIHRvIHRoZSBzdGF0aWMgaGVscGVyIGxpc3RNYXJrZXJUZXh0LCBh
dm9pZHMgY2FsbGluZyBSZW5kZXJMaXN0SXRlbTo6bWFya2VyVGV4dFdpdGhTdWZmaXggdHdpY2Uu
CgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6
CihXZWJDb3JlOjpyZW5kZXJMaXN0SXRlbUNvbnRhaW5lcik6CihXZWJDb3JlOjpsaXN0TWFya2Vy
VGV4dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsaXN0TWFya2VyVGV4dEZvck5v
ZGVBbmRQb3NpdGlvbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JW
aXNpYmxlUG9zaXRpb25SYW5nZSk6CihXZWJDb3JlOjpyZW5kZXJMaXN0SXRlbUNvbnRhaW5lckZv
ck5vZGUpOiBSZW5hbWVkLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oOgotLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICAgICB8IDM5ICsrKysrKysrKysrLS0tLS0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaCAgICAgICB8ICAxIC0KIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0
aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggZTU2NzRmNmIxYzI5Li45Njkw
YWJlMjk5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcwOCw3ICsxNzA4LDcgQEAgVmVjdG9yPFJldGFpblB0
cjxpZD4+IEFjY2Vzc2liaWxpdHlPYmplY3Q6Om1vZGVsRWxlbWVudENoaWxkcmVuKCkKICNlbmRp
ZgogCiAvLyBGaW5kcyBhIFJlbmRlckxpc3RJdGVtIHBhcmVudCBnaXZlIGEgbm9kZS4KLXN0YXRp
YyBSZW5kZXJMaXN0SXRlbSogcmVuZGVyTGlzdEl0ZW1Db250YWluZXJGb3JOb2RlKE5vZGUqIG5v
ZGUpCitzdGF0aWMgUmVuZGVyTGlzdEl0ZW0qIHJlbmRlckxpc3RJdGVtQ29udGFpbmVyKE5vZGUq
IG5vZGUpCiB7CiAgICAgZm9yICg7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIGxpc3RJdGVtID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RJ
dGVtPihub2RlLT5yZW5kZXJCb3hNb2RlbE9iamVjdCgpKSkKQEAgLTE3MTcsMjkgKzE3MTcsMzQg
QEAgc3RhdGljIFJlbmRlckxpc3RJdGVtKiByZW5kZXJMaXN0SXRlbUNvbnRhaW5lckZvck5vZGUo
Tm9kZSogbm9kZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotLy8gUmV0dXJucyB0aGUgdGV4
dCByZXByZXNlbnRpbmcgYSBsaXN0IG1hcmtlci4KLXN0YXRpYyBTdHJpbmdWaWV3IGxpc3RNYXJr
ZXJUZXh0KFJlbmRlckxpc3RJdGVtJiBsaXN0SXRlbSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBz
dGFydFZpc2libGVQb3NpdGlvbikKKy8vIFJldHVybnMgdGhlIHRleHQgcmVwcmVzZW50aW5nIGEg
bGlzdCBtYXJrZXIgdGFraW5nIGludG8gYWNjb3VudCB0aGUgcG9zaXRpb24gb2YgdGhlIHRleHQg
aW4gdGhlIGxpbmUgb2YgdGV4dC4KK3N0YXRpYyBTdHJpbmdWaWV3IGxpc3RNYXJrZXJUZXh0KFJl
bmRlckxpc3RJdGVtKiBsaXN0SXRlbSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydFZpc2li
bGVQb3NpdGlvbiwgc3RkOjpvcHRpb25hbDxTdHJpbmdWaWV3PiBtYXJrZXJUZXh0ID0gc3RkOjpu
dWxsb3B0KQogewotICAgIC8vIE9ubHkgaW5jbHVkZSB0aGUgbGlzdCBtYXJrZXIgaWYgdGhlIHJh
bmdlIGluY2x1ZGVzIHRoZSBsaW5lIHN0YXJ0ICh3aGVyZSB0aGUgbWFya2VyIHdvdWxkIGJlKSwg
YW5kIGlzIGluIHRoZSBzYW1lIGxpbmUgYXMgdGhlIG1hcmtlci4KLSAgICBpZiAoIWlzU3RhcnRP
ZkxpbmUoc3RhcnRWaXNpYmxlUG9zaXRpb24pIHx8ICFpblNhbWVMaW5lKHN0YXJ0VmlzaWJsZVBv
c2l0aW9uLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKCZsaXN0SXRlbS5lbGVtZW50KCkpKSkKKyAgICBp
ZiAoIWxpc3RJdGVtKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBsaXN0SXRlbS5t
YXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwotfQogCi1TdHJpbmdWaWV3IEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqIG5vZGUsIFBvc2l0aW9u
JiYgc3RhcnRQb3NpdGlvbikKLXsKLSAgICBhdXRvKiBsaXN0SXRlbSA9IHJlbmRlckxpc3RJdGVt
Q29udGFpbmVyRm9yTm9kZShub2RlKTsKLSAgICAvLyBDb25zdHJ1Y3RpbmcgYSBWaXNpYmxlUG9z
aXRpb24gZnJvbSBhIFBvc2l0aW9uIGNhbiBiZSBleHRyYW9yZGluYXJpbHkgZXhwZW5zaXZlLCBz
byBvbmx5IGRvIGl0IGlmIHRoZXJlJ3MgYWN0dWFsbHkgbWFya2VyIHRleHQuCi0gICAgaWYgKCFs
aXN0SXRlbSB8fCBsaXN0SXRlbS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKS5pc0VtcHR5KCkpCisg
ICAgaWYgKCFtYXJrZXJUZXh0KQorICAgICAgICBtYXJrZXJUZXh0ID0gbGlzdEl0ZW0tPm1hcmtl
clRleHRXaXRoU3VmZml4KCk7CisgICAgaWYgKG1hcmtlclRleHQtPmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBsaXN0TWFya2VyVGV4dCgqbGlzdEl0ZW0sIFdU
Rk1vdmUoc3RhcnRQb3NpdGlvbikpOworICAgIC8vIE9ubHkgaW5jbHVkZSB0aGUgbGlzdCBtYXJr
ZXIgaWYgdGhlIHJhbmdlIGluY2x1ZGVzIHRoZSBsaW5lIHN0YXJ0ICh3aGVyZSB0aGUgbWFya2Vy
IHdvdWxkIGJlKSwgYW5kIGlzIGluIHRoZSBzYW1lIGxpbmUgYXMgdGhlIG1hcmtlci4KKyAgICBp
ZiAoIWlzU3RhcnRPZkxpbmUoc3RhcnRWaXNpYmxlUG9zaXRpb24pIHx8ICFpblNhbWVMaW5lKHN0
YXJ0VmlzaWJsZVBvc2l0aW9uLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKCZsaXN0SXRlbS0+ZWxlbWVu
dCgpKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuICptYXJrZXJUZXh0OwogfQog
Ci1TdHJpbmdWaWV3IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFu
ZFBvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRWaXNpYmxl
UG9zaXRpb24pCitTdHJpbmdWaWV3IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0
Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqIG5vZGUsIFBvc2l0aW9uJiYgc3RhcnRQb3NpdGlvbikK
IHsKLSAgICBhdXRvKiBsaXN0SXRlbSA9IHJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZShu
b2RlKTsKLSAgICByZXR1cm4gbGlzdEl0ZW0gPyBsaXN0TWFya2VyVGV4dCgqbGlzdEl0ZW0sIHN0
YXJ0VmlzaWJsZVBvc2l0aW9uKSA6IFN0cmluZ1ZpZXcoKTsKKyAgICBhdXRvKiBsaXN0SXRlbSA9
IHJlbmRlckxpc3RJdGVtQ29udGFpbmVyKG5vZGUpOworICAgIGlmICghbGlzdEl0ZW0pCisgICAg
ICAgIHJldHVybiB7IH07CisgICAgLy8gQ3JlYXRpbmcgYSBWaXNpYmxlUG9zaXRpb24gYW5kIGRl
dGVybWluaW5nIGl0cyByZWxhdGlvbnNoaXAgdG8gYSBsaW5lIG9mIHRleHQgY2FuIGJlIGV4cGVu
c2l2ZS4KKyAgICAvLyBUaHVzIHBlcmZvcm0gdGhhdCBkZXRlcm1pbmF0aW9uIG9ubHkgaWYgd2Ug
aGF2ZSBzb21lIHRleHQgdG8gcmV0dXJuLgorICAgIGF1dG8gbWFya2VyVGV4dCA9IGxpc3RJdGVt
LT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOworICAgIGlmIChtYXJrZXJUZXh0LmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbGlzdE1hcmtlclRleHQobGlzdEl0ZW0s
IHN0YXJ0UG9zaXRpb24sIG1hcmtlclRleHQpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3RyaW5nRm9yUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKSBjb25zdApAQCAt
MTc3OSw3ICsxNzg0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZp
c2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblIKICAgICAgICAgLy8gbm9u
LXplcm8gbGVuZ3RoIG1lYW5zIHRleHR1YWwgbm9kZSwgemVybyBsZW5ndGggbWVhbnMgcmVwbGFj
ZWQgbm9kZSAoQUtBICJhdHRhY2htZW50cyIgaW4gQVgpCiAgICAgICAgIGlmIChpdC50ZXh0KCku
bGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIEFkZCBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24g
Zm9yIGxpc3QgbWFya2VyIHRleHQuCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsaXN0TWFy
a2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbihpdC5ub2RlKCksIHZpc2libGVQb3NpdGlvblJhbmdl
LnN0YXJ0KSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsaXN0TWFya2VyVGV4dChyZW5k
ZXJMaXN0SXRlbUNvbnRhaW5lcihpdC5ub2RlKCkpLCB2aXNpYmxlUG9zaXRpb25SYW5nZS5zdGFy
dCkpOwogICAgICAgICAgICAgaXQuYXBwZW5kVGV4dFRvU3RyaW5nQnVpbGRlcihidWlsZGVyKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgbm9kZSBhbmQgc3Rh
cnRpbmcgb2Zmc2V0IGZvciB0aGlzIHJlcGxhY2VkIHJhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE5MDgwODZjZWI1
My4uZmZiNWI4ODkxNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNTkzLDcgKzU5Myw2IEBAIHB1YmxpYzoKICAgICBT
dHJpbmcgZG9BWFN0cmluZ0ZvclJhbmdlKGNvbnN0IENoYXJhY3RlclJhbmdlJikgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4geyB9OyB9CiAgICAgSW50UmVjdCBkb0FYQm91bmRzRm9yUmFuZ2UoY29u
c3QgQ2hhcmFjdGVyUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KICAgICBJ
bnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZVVzaW5nQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJh
Y3RlclJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIFN0
cmluZ1ZpZXcgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oTm9kZSosIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOwogICAgIHN0YXRpYyBTdHJpbmdWaWV3IGxpc3RNYXJrZXJUZXh0Rm9y
Tm9kZUFuZFBvc2l0aW9uKE5vZGUqLCBQb3NpdGlvbiYmKTsKIAogICAgIHVuc2lnbmVkIGRvQVhM
aW5lRm9ySW5kZXgodW5zaWduZWQpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468187</attachid>
            <date>2023-10-12 06:15:28 -0700</date>
            <delta_ts>2023-10-12 07:35:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-263032-20231012091527.patch</filename>
            <type>text/plain</type>
            <size>6491</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBhNzU3Nzc0MWM0ODU2OGRmZGNlZGFkMTViMDFlMjBkYTkxYTJkODE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDExIE9jdCAyMDIzIDE1OjQxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9u
CiBvdmVybG9hZCB0aGF0IHRha2VzIGEgVmlzaWJsZVBvc2l0aW9uIGlzIG5vdCBwZXJmb3JtYW50
LgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MzAzMiA8cmRhcjov
L3Byb2JsZW0vMTE2ODI2MDYxPgoKUmV2aWV3ZWQgYnkgVHlsZXIgV2lsY29jay4KCkZvbGxvdyB1
cCB0byBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyOTkwLgoKVGhp
cyBvdmVybG9hZCBoYXMgdGhlIHNhbWUgcHJvYmxlbSBpZGVudGlmaWVkIGluIGJ1ZyAyNjI5OTAg
d2hlcmUgaXQgY2FuIHBlcmZvcm0gZXhwZW5zaXZlIG9wZXJhdGlvbnMgdW5uZWNlc3NhcmlseSBs
aWtlIGRldGVybWluaW5nIHdoZXRoZXIgdHdvIFZpc2libGVQb3NpdGlvbnMgYXJlIGluIHRoZSBz
YW1lIGxpbmUuIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIG1ldGhvZCBvdmVybG9hZCBhbmQgcHJv
dmlkZXMgYSBtb3JlIGVmZmljaWVudCB3YXkgb2YgYWNoaWV2aW5nIHRoZSBzYW1lIGZ1bmN0aW9u
YWxpdHkgYWxvbmcgdGhlIGxpbmVzIG9mIHRoZSBjaGFuZ2UgbWFkZSBpbiB0aGUgYWJvdmUgbWVu
dGlvbmVkIGJ1Zy4gSXQgYWxzbyBlbGltaW5hdGVzIHRoZSBhbWJpZ3VpdHkgYWJvdXQgd2hpY2gg
b3ZlcmxvYWQgaXMgY2FsbGVkIHdoZW4gYSBjYWxsZXIgaW52b2tlcyB0aGUgbWV0aG9kIHdpdGgg
YSBQb3NpdGlvbiB0aGF0IGNhbiBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBhIFZpc2libGVQ
b3NpdGlvbi4gVGhlIGFkZGl0aW9uIG9mIGEgcGFyYW1ldGVyIHRvIHRoZSBzdGF0aWMgaGVscGVy
IGxpc3RNYXJrZXJUZXh0LCBhdm9pZHMgY2FsbGluZyBSZW5kZXJMaXN0SXRlbTo6bWFya2VyVGV4
dFdpdGhTdWZmaXggdHdpY2UuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpyZW5kZXJMaXN0SXRlbUNvbnRhaW5lcik6CihX
ZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojps
aXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSk6CihXZWJDb3JlOjpyZW5kZXJM
aXN0SXRlbUNvbnRhaW5lckZvck5vZGUpOiBSZW5hbWVkLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgotLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwICAgICB8IDM5ICsrKysrKysrKysrLS0tLS0tLS0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCAgICAgICB8ICAxIC0KIDIgZmlsZXMg
Y2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXgg
ZTU2NzRmNmIxYzI5Li45NjkwYWJlMjk5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcwOCw3ICsxNzA4LDcg
QEAgVmVjdG9yPFJldGFpblB0cjxpZD4+IEFjY2Vzc2liaWxpdHlPYmplY3Q6Om1vZGVsRWxlbWVu
dENoaWxkcmVuKCkKICNlbmRpZgogCiAvLyBGaW5kcyBhIFJlbmRlckxpc3RJdGVtIHBhcmVudCBn
aXZlIGEgbm9kZS4KLXN0YXRpYyBSZW5kZXJMaXN0SXRlbSogcmVuZGVyTGlzdEl0ZW1Db250YWlu
ZXJGb3JOb2RlKE5vZGUqIG5vZGUpCitzdGF0aWMgUmVuZGVyTGlzdEl0ZW0qIHJlbmRlckxpc3RJ
dGVtQ29udGFpbmVyKE5vZGUqIG5vZGUpCiB7CiAgICAgZm9yICg7IG5vZGU7IG5vZGUgPSBub2Rl
LT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGxpc3RJdGVtID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlckxpc3RJdGVtPihub2RlLT5yZW5kZXJCb3hNb2RlbE9iamVjdCgpKSkKQEAg
LTE3MTcsMjkgKzE3MTcsMzQgQEAgc3RhdGljIFJlbmRlckxpc3RJdGVtKiByZW5kZXJMaXN0SXRl
bUNvbnRhaW5lckZvck5vZGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
Ly8gUmV0dXJucyB0aGUgdGV4dCByZXByZXNlbnRpbmcgYSBsaXN0IG1hcmtlci4KLXN0YXRpYyBT
dHJpbmdWaWV3IGxpc3RNYXJrZXJUZXh0KFJlbmRlckxpc3RJdGVtJiBsaXN0SXRlbSwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBzdGFydFZpc2libGVQb3NpdGlvbikKKy8vIFJldHVybnMgdGhlIHRl
eHQgcmVwcmVzZW50aW5nIGEgbGlzdCBtYXJrZXIgdGFraW5nIGludG8gYWNjb3VudCB0aGUgcG9z
aXRpb24gb2YgdGhlIHRleHQgaW4gdGhlIGxpbmUgb2YgdGV4dC4KK3N0YXRpYyBTdHJpbmdWaWV3
IGxpc3RNYXJrZXJUZXh0KFJlbmRlckxpc3RJdGVtKiBsaXN0SXRlbSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBzdGFydFZpc2libGVQb3NpdGlvbiwgc3RkOjpvcHRpb25hbDxTdHJpbmdWaWV3PiBt
YXJrZXJUZXh0ID0gc3RkOjpudWxsb3B0KQogewotICAgIC8vIE9ubHkgaW5jbHVkZSB0aGUgbGlz
dCBtYXJrZXIgaWYgdGhlIHJhbmdlIGluY2x1ZGVzIHRoZSBsaW5lIHN0YXJ0ICh3aGVyZSB0aGUg
bWFya2VyIHdvdWxkIGJlKSwgYW5kIGlzIGluIHRoZSBzYW1lIGxpbmUgYXMgdGhlIG1hcmtlci4K
LSAgICBpZiAoIWlzU3RhcnRPZkxpbmUoc3RhcnRWaXNpYmxlUG9zaXRpb24pIHx8ICFpblNhbWVM
aW5lKHN0YXJ0VmlzaWJsZVBvc2l0aW9uLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKCZsaXN0SXRlbS5l
bGVtZW50KCkpKSkKKyAgICBpZiAoIWxpc3RJdGVtKQogICAgICAgICByZXR1cm4geyB9OwotICAg
IHJldHVybiBsaXN0SXRlbS5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwotfQogCi1TdHJpbmdWaWV3
IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5v
ZGUqIG5vZGUsIFBvc2l0aW9uJiYgc3RhcnRQb3NpdGlvbikKLXsKLSAgICBhdXRvKiBsaXN0SXRl
bSA9IHJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZShub2RlKTsKLSAgICAvLyBDb25zdHJ1
Y3RpbmcgYSBWaXNpYmxlUG9zaXRpb24gZnJvbSBhIFBvc2l0aW9uIGNhbiBiZSBleHRyYW9yZGlu
YXJpbHkgZXhwZW5zaXZlLCBzbyBvbmx5IGRvIGl0IGlmIHRoZXJlJ3MgYWN0dWFsbHkgbWFya2Vy
IHRleHQuCi0gICAgaWYgKCFsaXN0SXRlbSB8fCBsaXN0SXRlbS0+bWFya2VyVGV4dFdpdGhTdWZm
aXgoKS5pc0VtcHR5KCkpCisgICAgaWYgKCFtYXJrZXJUZXh0KQorICAgICAgICBtYXJrZXJUZXh0
ID0gbGlzdEl0ZW0tPm1hcmtlclRleHRXaXRoU3VmZml4KCk7CisgICAgaWYgKG1hcmtlclRleHQt
PmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBsaXN0TWFya2Vy
VGV4dCgqbGlzdEl0ZW0sIFdURk1vdmUoc3RhcnRQb3NpdGlvbikpOworICAgIC8vIE9ubHkgaW5j
bHVkZSB0aGUgbGlzdCBtYXJrZXIgaWYgdGhlIHJhbmdlIGluY2x1ZGVzIHRoZSBsaW5lIHN0YXJ0
ICh3aGVyZSB0aGUgbWFya2VyIHdvdWxkIGJlKSwgYW5kIGlzIGluIHRoZSBzYW1lIGxpbmUgYXMg
dGhlIG1hcmtlci4KKyAgICBpZiAoIWlzU3RhcnRPZkxpbmUoc3RhcnRWaXNpYmxlUG9zaXRpb24p
IHx8ICFpblNhbWVMaW5lKHN0YXJ0VmlzaWJsZVBvc2l0aW9uLCBmaXJzdFBvc2l0aW9uSW5Ob2Rl
KCZsaXN0SXRlbS0+ZWxlbWVudCgpKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJu
ICptYXJrZXJUZXh0OwogfQogCi1TdHJpbmdWaWV3IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RN
YXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgc3RhcnRWaXNpYmxlUG9zaXRpb24pCitTdHJpbmdWaWV3IEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqIG5vZGUsIFBvc2l0aW9u
JiYgc3RhcnRQb3NpdGlvbikKIHsKLSAgICBhdXRvKiBsaXN0SXRlbSA9IHJlbmRlckxpc3RJdGVt
Q29udGFpbmVyRm9yTm9kZShub2RlKTsKLSAgICByZXR1cm4gbGlzdEl0ZW0gPyBsaXN0TWFya2Vy
VGV4dCgqbGlzdEl0ZW0sIHN0YXJ0VmlzaWJsZVBvc2l0aW9uKSA6IFN0cmluZ1ZpZXcoKTsKKyAg
ICBhdXRvKiBsaXN0SXRlbSA9IHJlbmRlckxpc3RJdGVtQ29udGFpbmVyKG5vZGUpOworICAgIGlm
ICghbGlzdEl0ZW0pCisgICAgICAgIHJldHVybiB7IH07CisgICAgLy8gQ3JlYXRpbmcgYSBWaXNp
YmxlUG9zaXRpb24gYW5kIGRldGVybWluaW5nIGl0cyByZWxhdGlvbnNoaXAgdG8gYSBsaW5lIG9m
IHRleHQgY2FuIGJlIGV4cGVuc2l2ZS4KKyAgICAvLyBUaHVzIHBlcmZvcm0gdGhhdCBkZXRlcm1p
bmF0aW9uIG9ubHkgaWYgd2UgaGF2ZSBzb21lIHRleHQgdG8gcmV0dXJuLgorICAgIGF1dG8gbWFy
a2VyVGV4dCA9IGxpc3RJdGVtLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOworICAgIGlmIChtYXJr
ZXJUZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbGlzdE1h
cmtlclRleHQobGlzdEl0ZW0sIHN0YXJ0UG9zaXRpb24sIG1hcmtlclRleHQpOwogfQogCiBTdHJp
bmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2Um
IHJhbmdlKSBjb25zdApAQCAtMTc3OSw3ICsxNzg0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blIKICAgICAgICAgLy8gbm9uLXplcm8gbGVuZ3RoIG1lYW5zIHRleHR1YWwgbm9kZSwgemVybyBs
ZW5ndGggbWVhbnMgcmVwbGFjZWQgbm9kZSAoQUtBICJhdHRhY2htZW50cyIgaW4gQVgpCiAgICAg
ICAgIGlmIChpdC50ZXh0KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIEFkZCBhIHRleHR1
YWwgcmVwcmVzZW50YXRpb24gZm9yIGxpc3QgbWFya2VyIHRleHQuCi0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChsaXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbihpdC5ub2RlKCksIHZp
c2libGVQb3NpdGlvblJhbmdlLnN0YXJ0KSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChs
aXN0TWFya2VyVGV4dChyZW5kZXJMaXN0SXRlbUNvbnRhaW5lcihpdC5ub2RlKCkpLCB2aXNpYmxl
UG9zaXRpb25SYW5nZS5zdGFydCkpOwogICAgICAgICAgICAgaXQuYXBwZW5kVGV4dFRvU3RyaW5n
QnVpbGRlcihidWlsZGVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIGxvY2F0
ZSB0aGUgbm9kZSBhbmQgc3RhcnRpbmcgb2Zmc2V0IGZvciB0aGlzIHJlcGxhY2VkIHJhbmdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CmluZGV4IDE5MDgwODZjZWI1My4uZmZiNWI4ODkxNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNTkzLDcgKzU5Myw2
IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZG9BWFN0cmluZ0ZvclJhbmdlKGNvbnN0IENoYXJhY3Rl
clJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9CiAgICAgSW50UmVjdCBkb0FY
Qm91bmRzRm9yUmFuZ2UoY29uc3QgQ2hhcmFjdGVyUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB7IH07IH0KICAgICBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZVVzaW5nQ2hhcmFjdGVy
T2Zmc2V0KGNvbnN0IENoYXJhY3RlclJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyB9
OyB9Ci0gICAgc3RhdGljIFN0cmluZ1ZpZXcgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRp
b24oTm9kZSosIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHN0YXRpYyBTdHJpbmdWaWV3
IGxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqLCBQb3NpdGlvbiYmKTsKIAog
ICAgIHVuc2lnbmVkIGRvQVhMaW5lRm9ySW5kZXgodW5zaWduZWQpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>