<?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>253247</bug_id>
          
          <creation_ts>2023-03-02 09:06:22 -0800</creation_ts>
          <short_desc>AX: Cache the AttributedString for objects of role Tab and WebCoreLink in AXIsolatedObjects.</short_desc>
          <delta_ts>2023-03-03 07:29:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1938178</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-02 09:06:22 -0800</bug_when>
    <thetext>This will reduce main thread hits in some web pages considerably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938179</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-03-02 09:06:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/106148404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938181</commentid>
    <comment_count>2</comment_count>
      <attachid>465263</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-02 09:15:10 -0800</bug_when>
    <thetext>Created attachment 465263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938211</commentid>
    <comment_count>3</comment_count>
      <attachid>465263</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-03-02 10:10:53 -0800</bug_when>
    <thetext>Comment on attachment 465263
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:2147
&gt;      if (!node)

I don’t know if weak ptr helps here. If it goes away, we might still hit a null ptr. Do we instead want to ref this so we hold onto to it until end of scope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938216</commentid>
    <comment_count>4</comment_count>
      <attachid>465263</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-02 10:26:17 -0800</bug_when>
    <thetext>Comment on attachment 465263
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:-2173
&gt; +    // For &lt;select&gt; elements, title should be empty if they are not rendered or have role PopUpButton.
&gt; +    if (node &amp;&amp; node-&gt;hasTagName(selectTag)
&gt; +        &amp;&amp; (!isAccessibilityRenderObject() || roleValue() == AccessibilityRole::PopUpButton))
&gt; +        return { };
&gt;  
&gt;      switch (roleValue()) {
&gt; -    case AccessibilityRole::PopUpButton:
&gt; -        // Native popup buttons should not use their button children&apos;s text as a title. That value is retrieved through stringValue().
&gt; -        if (node-&gt;hasTagName(selectTag))
&gt; -            return String();
&gt; -        FALLTHROUGH;

Prior to your change, AccessibilityRole::PopUpButton without node-&gt;hasTagName(selectTag) would FALLTHROUGH to useTextUnderElement = true. And now we won&apos;t do that (because AccessibilityRole::PopUpButton is no longer handled in the switch). Am I reading that right, and if so is this behavior change intentional?

&gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:114
&gt; +    AXLOG(makeString(&quot;AXIsolatedObject::attributedStringForTextMarkerRange&quot;, &quot; role = &quot;, accessibilityRoleToString(roleValue())));

Definitely understand why these logs would be useful for your work on this bug, but are they generally useful? I think this gets requested a lot, so they might make our logs more noisy then they already are. (Same comment for the AXTRACE in this method)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938223</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-02 10:32:10 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 465263 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=465263&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:2147
&gt; &gt;      if (!node)
&gt; 
&gt; I don’t know if weak ptr helps here. If it goes away, we might still hit a
&gt; null ptr. Do we instead want to ref this so we hold onto to it until end of
&gt; scope?

All depends on what we are doing with the pointer in the given scope. In this case I think WeakPtr is fine because we only use it for dynamicDowncast or we check for nil before using. That&apos;s what makes this a bit tricky, one has to understand the context. In general we don&apos;t always want to do RefPtr, especially for Nodes or other objects that we don&apos;t create.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938238</commentid>
    <comment_count>6</comment_count>
      <attachid>465266</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-02 11:28:50 -0800</bug_when>
    <thetext>Created attachment 465266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938240</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-02 11:34:31 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; Comment on attachment 465263 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=465263&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:-2173
&gt; &gt; +    // For &lt;select&gt; elements, title should be empty if they are not rendered or have role PopUpButton.
&gt; &gt; +    if (node &amp;&amp; node-&gt;hasTagName(selectTag)
&gt; &gt; +        &amp;&amp; (!isAccessibilityRenderObject() || roleValue() == AccessibilityRole::PopUpButton))
&gt; &gt; +        return { };
&gt; &gt;  
&gt; &gt;      switch (roleValue()) {
&gt; &gt; -    case AccessibilityRole::PopUpButton:
&gt; &gt; -        // Native popup buttons should not use their button children&apos;s text as a title. That value is retrieved through stringValue().
&gt; &gt; -        if (node-&gt;hasTagName(selectTag))
&gt; &gt; -            return String();
&gt; &gt; -        FALLTHROUGH;
&gt; 
&gt; Prior to your change, AccessibilityRole::PopUpButton without
&gt; node-&gt;hasTagName(selectTag) would FALLTHROUGH to useTextUnderElement = true.
&gt; And now we won&apos;t do that (because AccessibilityRole::PopUpButton is no
&gt; longer handled in the switch). Am I reading that right, and if so is this
&gt; behavior change intentional?

Good catch! meant to put it down below and forgot! 
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:114
&gt; &gt; +    AXLOG(makeString(&quot;AXIsolatedObject::attributedStringForTextMarkerRange&quot;, &quot; role = &quot;, accessibilityRoleToString(roleValue())));
&gt; 
&gt; Definitely understand why these logs would be useful for your work on this
&gt; bug, but are they generally useful? I think this gets requested a lot, so
&gt; they might make our logs more noisy then they already are. (Same comment for
&gt; the AXTRACE in this method)

Removed all the new AX logging. We definitely have to improve our logging so that we can leave debugging stuff like this, so that you don&apos;t have to re-create it, and still doesn&apos;t show in the logs unless you want to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938499</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-03 07:29:42 -0800</bug_when>
    <thetext>Committed 261140@main (1b2f162302f9): &lt;https://commits.webkit.org/261140@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 465266.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465263</attachid>
            <date>2023-03-02 09:15:10 -0800</date>
            <delta_ts>2023-03-02 11:28:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253247-20230302121508.patch</filename>
            <type>text/plain</type>
            <size>11651</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSAyZGE3NGNlYjc5ZTJhODFmNjRlNzRkYTZkOWNmMzM3MTZjZjQ1ZTkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDEgTWFyIDIwMjMgMTI6MDE6NDcgLTA1MDAKU3ViamVjdDogW1BBVENIXSBB
WDogQ2FjaGUgdGhlIEF0dHJpYnV0ZWRTdHJpbmcgZm9yIG9iamVjdHMgb2Ygcm9sZSBUYWIgYW5k
CiBXZWJDb3JlTGluayBpbiBBWElzb2xhdGVkT2JqZWN0cy4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMyNDcgPHJkYXI6Ly9wcm9ibGVtLzEwNjE0ODQwND4KClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW4gc29tZSB3ZWIgcGFnZXMgQXR0cmlidXRlZFN0
cmluZ3MgYXJlIHJlcXVlc3RlZCBmb3IgcmFuZ2VzIGluIG9iamVjdHMgd2l0aCByb2xlIFRhYiBh
bmQgV2ViQ29yZUxpbmsgcXVpdGUgb2Z0ZW4uIEluIHRoaXMgcGF0Y2ggd2UgY2FjaGUgdGhlIEF0
dHJpYnV0ZWRTdHJpbmcgZm9yIHRoZXNlIG9iamVjdHMgY29uc2lkZXJhYmx5IHJlZHVjaW5nIHRo
ZSBoaXQgcyB0byB0aGUgbWFpbiB0aHJlYWQuIFNvbWUgY29kZSBjbGVhbnVwLgoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlIGNvbnN0KToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlIGNvbnN0KToKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2NvY29hL0FjY2Vzc2liaWxpdHlPYmplY3RDb2NvYS5tbToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFy
a2VyUmFuZ2UgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbToKKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMpOgooV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSBjb25zdCk6CihX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzaG91bGRDYWNoZUF0dHJpYnV0ZWRUZXh0IGNvbnN0
KToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgfCAz
OCArKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAg
ICAgICAgICAgICAgfCAxMiArKystLS0KIC4uLi9jb2NvYS9BY2Nlc3NpYmlsaXR5T2JqZWN0Q29j
b2EubW0gICAgICAgICB8ICAzICsrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
aCAgICAgICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0
TWFjLm1tICAgfCAxMiArKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwg
MjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBhZjdhNTJhYmViNGEuLjgyMWZh
ZDY3YTU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTUwMCw4ICs1MDAsOCBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAgIC8vIFdoZW4g
PG5vc2NyaXB0PiBpcyBub3QgYmVpbmcgdXNlZCAoaXRzIHJlbmRlcmVyKCkgPT0gMCksIGlnbm9y
ZSBpdHMgY2hpbGRyZW4uCiAgICAgaWYgKG5vZGUoKSAmJiAhcmVuZGVyZXIoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgLy8gRWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGhhdmUgY2hpbGRyZW4KKworICAgIC8vIEVs
ZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuLgogICAgIHN3aXRjaCAocm9sZVZh
bHVlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246CkBAIC0yMTQzLDM0ICsyMTQzLDI4IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmls
aXR5VGV4dFVuZGVyRWxlbWVudE1vCiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
dGl0bGUoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgV2Vh
a1B0ciBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYm9vbCBpc0lucHV0VGFnID0g
aXM8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOwotICAgIGlmIChpc0lucHV0VGFnKSB7Ci0gICAg
ICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
Km5vZGUpOwotICAgICAgICBpZiAoaW5wdXQuaXNUZXh0QnV0dG9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gaW5wdXQudmFsdWVXaXRoRGVmYXVsdCgpOworICAgIGlmIChhdXRvKiBpbnB1dCA9IGR5
bmFtaWNEb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlLmdldCgpKSkgeworICAgICAgICBp
ZiAoaW5wdXQtPmlzVGV4dEJ1dHRvbigpKQorICAgICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1
ZVdpdGhEZWZhdWx0KCk7CiAgICAgfQogCiAgICAgaWYgKGlzTGFiZWxhYmxlKCkpIHsKLSAgICAg
ICAgSFRNTExhYmVsRWxlbWVudCogbGFiZWwgPSBsYWJlbEZvckVsZW1lbnQoZG93bmNhc3Q8RWxl
bWVudD4obm9kZSkpOworICAgICAgICBSZWZQdHIgbGFiZWwgPSBsYWJlbEZvckVsZW1lbnQoZG93
bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpOwogICAgICAgICAvLyBVc2UgdGhlIGxhYmVsIHRl
eHQgYXMgdGhlIHRpdGxlIGlmIDEpIHRoZSB0aXRsZSBlbGVtZW50IGlzIE5PVCBhbiBleHBvc2Vk
IGVsZW1lbnQgYW5kIDIpIHRoZXJlJ3Mgbm8gQVJJQSBvdmVycmlkZS4KICAgICAgICAgaWYgKGxh
YmVsICYmICFleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSAmJiAhYXJpYUFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbigpLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuIHRleHRGb3JMYWJlbEVsZW1l
bnQobGFiZWwpOworICAgICAgICAgICAgcmV0dXJuIHRleHRGb3JMYWJlbEVsZW1lbnQobGFiZWwu
Z2V0KCkpOwogICAgIH0KIAotICAgIC8vIElmIHRoaXMgbm9kZSBpc24ndCByZW5kZXJlZCwgdGhl
cmUncyBubyBpbm5lciB0ZXh0IHdlIGNhbiBleHRyYWN0IGZyb20gYSBzZWxlY3QgZWxlbWVudC4K
LSAgICBpZiAoIWlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpICYmIG5vZGUtPmhhc1RhZ05h
bWUoc2VsZWN0VGFnKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIC8vIEZvciA8c2Vs
ZWN0PiBlbGVtZW50cywgdGl0bGUgc2hvdWxkIGJlIGVtcHR5IGlmIHRoZXkgYXJlIG5vdCByZW5k
ZXJlZCBvciBoYXZlIHJvbGUgUG9wVXBCdXR0b24uCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFz
VGFnTmFtZShzZWxlY3RUYWcpCisgICAgICAgICYmICghaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KCkgfHwgcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKLSAgICAgICAgLy8gTmF0aXZlIHBv
cHVwIGJ1dHRvbnMgc2hvdWxkIG5vdCB1c2UgdGhlaXIgYnV0dG9uIGNoaWxkcmVuJ3MgdGV4dCBh
cyBhIHRpdGxlLiBUaGF0IHZhbHVlIGlzIHJldHJpZXZlZCB0aHJvdWdoIHN0cmluZ1ZhbHVlKCku
Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpCi0gICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0gICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkJ1dHRvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0
b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g6CkBAIC0yMTk2LDcgKzIx
OTAsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QKICAg
ICBpZiAoaXNIZWFkaW5nKCkpCiAgICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vz
c2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZShBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVu
dE1vZGU6OlRleHRVbmRlckVsZW1lbnRNb2RlU2tpcElnbm9yZWRDaGlsZHJlbiwgdHJ1ZSkpOwog
Ci0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiB7IH07CiB9CiAKIFN0cmluZyBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dCgpIGNvbnN0CkBAIC0yMjI3LDcgKzIyMjEsNyBAQCBT
dHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKIHsKICAg
ICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKGlzQVJJQVN0YXRp
Y1RleHQoKSkgewogICAgICAgICBTdHJpbmcgc3RhdGljVGV4dCA9IHRleHQoKTsKQEAgLTIyNjIs
NyArMjI1Niw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUo
KSBjb25zdAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgbm90IHRvIGFkdmVydGlz
ZSBhIHZhbHVlIGF0IGFsbCBmb3IgdGhlIHR5cGVzIGZvciB3aGljaCB3ZSBkb24ndCBpbXBsZW1l
bnQgb25lOwogICAgIC8vIHRoaXMgd291bGQgcmVxdWlyZSBzdWJjbGFzc2luZyBvciBtYWtpbmcg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzIGRvIHNvbWV0aGluZyBvdGhlciB0aGFuIHJldHVy
biBhCiAgICAgLy8gc2luZ2xlIHN0YXRpYyBhcnJheS4KLSAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgcmV0dXJuIHsgfTsKIH0KIAogU1JHQkE8dWludDhfdD4gQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmNvbG9yVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZTAxOThiNzk0
OTRhLi5iOWQzZDAxNmM3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNzU4LDcgKzc1OCw3
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0
CiAgICAgICAgICAgICBzdGF0aWNUZXh0ID0gdGV4dFVuZGVyRWxlbWVudCgpOwogICAgICAgICBy
ZXR1cm4gc3RhdGljVGV4dDsKICAgICB9Ci0gICAgICAgIAorCiAgICAgaWYgKGlzPFJlbmRlclRl
eHQ+KG1fcmVuZGVyZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgp
OwogCkBAIC03ODcsMTEgKzc4NywxMSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c3RyaW5nVmFsdWUoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc1dlYkFyZWEoKSkKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIAorICAgICAgICByZXR1cm4geyB9OworCiAgICAg
aWYgKGlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIHRleHQoKTsKLSAgICAKKwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKGlzSW5wdXRUeXBlUG9wdXBCdXR0b24oKSkK
ICAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKQEAgLTc5OSwxMiArNzk5LDEyIEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiAK
ICAgICBpZiAoYXV0byogcmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgPSBkeW5hbWljRG93bmNhc3Q8
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+KG1fcmVuZGVyZXIuZ2V0KCkpKQogICAgICAgICByZXR1
cm4gcmVuZGVyRmlsZVVwbG9hZENvbnRyb2wtPmZpbGVUZXh0VmFsdWUoKTsKLSAgICAKKwogICAg
IC8vIEZJWE1FOiBXZSBtaWdodCBuZWVkIHRvIGltcGxlbWVudCBhIHZhbHVlIGhlcmUgZm9yIG1v
cmUgdHlwZXMKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIG5vdCB0byBhZHZlcnRp
c2UgYSB2YWx1ZSBhdCBhbGwgZm9yIHRoZSB0eXBlcyBmb3Igd2hpY2ggd2UgZG9uJ3QgaW1wbGVt
ZW50IG9uZTsKICAgICAvLyB0aGlzIHdvdWxkIHJlcXVpcmUgc3ViY2xhc3Npbmcgb3IgbWFraW5n
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcyBkbyBzb21ldGhpbmcgb3RoZXIgdGhhbiByZXR1
cm4gYQogICAgIC8vIHNpbmdsZSBzdGF0aWMgYXJyYXkuCi0gICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2Fu
SGF2ZVBsYWluVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2NvY29hL0FjY2Vzc2liaWxpdHlPYmplY3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvY29jb2EvQWNjZXNzaWJpbGl0eU9iamVjdENvY29hLm1tCmluZGV4IDMx
NDhhZjdmNDM2OC4uNDc5NjAzZjRjM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2NvY29hL0FjY2Vzc2liaWxpdHlPYmplY3RDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2NvY29hL0FjY2Vzc2liaWxpdHlPYmplY3RDb2NvYS5tbQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQogCisjaW1wb3J0ICJBWExvZ2dlci5oIgogI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5o
IgogI2ltcG9ydCAiVGV4dEl0ZXJhdG9yLmgiCiAjaW1wb3J0ICJXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UuaCIKQEAgLTM1MSw2ICszNTIsOCBAQCBSZXRhaW5QdHI8TlNBcnJheT4g
QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udGVudEZvclJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiBy
YW5nZQogCiBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFYVGV4dE1hcmtlclJhbmdlJiYg
dGV4dE1hcmtlclJhbmdlLCBTcGVsbENoZWNrIHNwZWxsQ2hlY2spIGNvbnN0CiB7CisgICAgQVhU
UkFDRSgiQWNjZXNzaWJpbGl0eU9iamVjdDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJS
YW5nZSJfcyk7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byByYW5nZSA9IHJhbmdlRm9y
VGV4dE1hcmtlclJhbmdlKGF4T2JqZWN0Q2FjaGUoKSwgdGV4dE1hcmtlclJhbmdlKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggYzkwNDRjOGMzZTA2Li41OWRmMWVkNGM0MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTQ5Nyw2ICs0OTcsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIHRleHRMZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBhdHRyaWJ1dGVkU3RyaW5n
Rm9yVGV4dE1hcmtlclJhbmdlKEFYVGV4dE1hcmtlclJhbmdlJiYsIFNwZWxsQ2hlY2spIGNvbnN0
IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkQ2FjaGVBdHRyaWJ1dGVkVGV4dCgpIGNvbnN0Owog
ICAgIE5TQXR0cmlidXRlZFN0cmluZyAqY2FjaGVkQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZShjb25zdCBBWFRleHRNYXJrZXJSYW5nZSYsIFNwZWxsQ2hlY2spIGNvbnN0OwogI2Vu
ZGlmCiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFj
L0FYSXNvbGF0ZWRPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQppbmRleCA1NDE4YWU0MTZhM2Eu
LmVkYmI5YzM5NWVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpICYmIFBMQVRGT1JNKE1BQykKIAorI2ltcG9ydCAiQVhMb2dnZXIuaCIKICNpbXBvcnQgIldl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FjY2Vz
c2liaWxpdHlTdXBwb3J0U29mdExpbmsuaD4KQEAgLTM5LDggKzQwLDkgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IFJlZjxjb25zdCBB
WENvcmVPYmplY3QKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZB
bm5vdGF0aW9uQXR0cmlidXRlLCBvYmplY3QtPmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlZWNoSGludCwgb2JqZWN0
LT5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAKLSAgICBpZiAo
aXNUZXh0Q29udHJvbCgpKQorICAgIGlmIChzaG91bGRDYWNoZUF0dHJpYnV0ZWRUZXh0KCkpCiAg
ICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBdHRyaWJ1dGVkVGV4dCwgb2JqZWN0
LT5hdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKG9iamVjdC0+dGV4dE1hcmtlclJh
bmdlKCksIFNwZWxsQ2hlY2s6OlllcykpOworCiAgICAgaWYgKG9iamVjdC0+aXNXZWJBcmVhKCkp
IHsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2gsIG9iamVjdC0+cHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCgp
KTsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJvd3NpbmdFbmFi
bGVkLCBvYmplY3QtPmNhcmV0QnJvd3NpbmdFbmFibGVkKCkpOwpAQCAtMTA0LDkgKzEwNiwxMiBA
QCB1bnNpZ25lZCBBWElzb2xhdGVkT2JqZWN0Ojp0ZXh0TGVuZ3RoKCkgY29uc3QKIAogUmV0YWlu
UHRyPE5TQXR0cmlidXRlZFN0cmluZz4gQVhJc29sYXRlZE9iamVjdDo6YXR0cmlidXRlZFN0cmlu
Z0ZvclRleHRNYXJrZXJSYW5nZShBWFRleHRNYXJrZXJSYW5nZSYmIG1hcmtlclJhbmdlLCBTcGVs
bENoZWNrIHNwZWxsQ2hlY2spIGNvbnN0CiB7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZE9iamVj
dDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSJfcyk7CisKICAgICBpZiAoTlNB
dHRyaWJ1dGVkU3RyaW5nICpjYWNoZWRTdHJpbmcgPSBjYWNoZWRBdHRyaWJ1dGVkU3RyaW5nRm9y
VGV4dE1hcmtlclJhbmdlKG1hcmtlclJhbmdlLCBzcGVsbENoZWNrKSkKICAgICAgICAgcmV0dXJu
IGNhY2hlZFN0cmluZzsKIAorICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSXNvbGF0ZWRPYmplY3Q6
OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiLCAiIHJvbGUgPSAiLCBhY2Nlc3Np
YmlsaXR5Um9sZVRvU3RyaW5nKHJvbGVWYWx1ZSgpKSkpOwogICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8UmV0YWluUHRyPE5TQXR0cmlidXRlZFN0
cmluZz4+KFttYXJrZXJSYW5nZSA9IFdURk1vdmUobWFya2VyUmFuZ2UpLCAmc3BlbGxDaGVjaywg
dGhpc10gKCkgbXV0YWJsZSAtPiBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiB7CiAgICAg
ICAgIGlmIChSZWZQdHIgYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmplY3QoKSkKICAgICAgICAg
ICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShX
VEZNb3ZlKG1hcmtlclJhbmdlKSwgc3BlbGxDaGVjayk7CkBAIC0xMTQsNiArMTE5LDExIEBAIFJl
dGFpblB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+IEFYSXNvbGF0ZWRPYmplY3Q6OmF0dHJpYnV0ZWRT
dHJpbmdGb3JUZXh0TWFya2VyUmFuCiAgICAgfSk7CiB9CiAKK2Jvb2wgQVhJc29sYXRlZE9iamVj
dDo6c2hvdWxkQ2FjaGVBdHRyaWJ1dGVkVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVGV4
dENvbnRyb2woKSB8fCBpc1RhYkl0ZW0oKSB8fCByb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6V2ViQ29yZUxpbms7Cit9CisKIE5TQXR0cmlidXRlZFN0cmluZyAqQVhJc29sYXRlZE9i
amVjdDo6Y2FjaGVkQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShjb25zdCBBWFRl
eHRNYXJrZXJSYW5nZSYgbWFya2VyUmFuZ2UsIFNwZWxsQ2hlY2sgc3BlbGxDaGVjaykgY29uc3QK
IHsKICAgICAvLyBBdCB0aGUgbW9tZW50IHdlIGFyZSBvbmx5IGhhbmRsaW5nIHJhbmdlcyB0aGF0
IGFyZSBjb250YWluZWQgaW4gYSBzaW5nbGUgb2JqZWN0LCBhbmQgZm9yIHdoaWNoIHdlIGNhY2hl
ZCB0aGUgQXR0cmlidXRlU3RyaW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465266</attachid>
            <date>2023-03-02 11:28:50 -0800</date>
            <delta_ts>2023-03-03 07:29:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253247-20230302142849.patch</filename>
            <type>text/plain</type>
            <size>10173</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkZjg1MzEwODAyNTg2YWY4MDk4ZjM2ZTc1ZDgwYTM4NTkwYzg5NjQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDEgTWFyIDIwMjMgMTI6MDE6NDcgLTA1MDAKU3ViamVjdDogW1BBVENIXSBB
WDogQ2FjaGUgdGhlIEF0dHJpYnV0ZWRTdHJpbmcgZm9yIG9iamVjdHMgb2Ygcm9sZSBUYWIgYW5k
CiBXZWJDb3JlTGluayBpbiBBWElzb2xhdGVkT2JqZWN0cy4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMyNDcgPHJkYXI6Ly9wcm9ibGVtLzEwNjE0ODQwND4KClJl
dmlld2VkIGJ5IFR5bGVyIFdpbGNvY2sgYW5kIENocmlzIEZsZWl6YWNoLgoKSW4gc29tZSB3ZWIg
cGFnZXMgQXR0cmlidXRlZFN0cmluZ3MgYXJlIHJlcXVlc3RlZCBmb3IgcmFuZ2VzIGluIG9iamVj
dHMgd2l0aCByb2xlIFRhYiBhbmQgV2ViQ29yZUxpbmsgcXVpdGUgb2Z0ZW4uIEluIHRoaXMgcGF0
Y2ggd2UgY2FjaGUgdGhlIEF0dHJpYnV0ZWRTdHJpbmcgZm9yIHRoZXNlIG9iamVjdHMgY29uc2lk
ZXJhYmx5IHJlZHVjaW5nIHRoZSBoaXQgcyB0byB0aGUgbWFpbiB0aHJlYWQuIFNvbWUgY29kZSBj
bGVhbnVwLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hp
bGRyZW4gY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlIGNv
bnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSBjb25z
dCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVl
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2NvY29hL0FjY2Vzc2liaWxp
dHlPYmplY3RDb2NvYS5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmF0dHJpYnV0
ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbToK
KFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMp
OgooV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZSBjb25zdCk6CihXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzaG91bGRDYWNoZUF0
dHJpYnV0ZWRUZXh0IGNvbnN0KToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAgfCA0MSArKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAgICAgfCAxMiArKystLS0KIC4uLi9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUv
bWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0gICB8ICA4ICsrKy0KIDQgZmlsZXMgY2hhbmdlZCwg
MzIgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBh
ZjdhNTJhYmViNGEuLjU3MWZlMjkyMzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTUwMCw4ICs1
MDAsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBj
b25zdAogICAgIC8vIFdoZW4gPG5vc2NyaXB0PiBpcyBub3QgYmVpbmcgdXNlZCAoaXRzIHJlbmRl
cmVyKCkgPT0gMCksIGlnbm9yZSBpdHMgY2hpbGRyZW4uCiAgICAgaWYgKG5vZGUoKSAmJiAhcmVu
ZGVyZXIoKSAmJiBub2RlKCktPmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8gRWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGhhdmUgY2hp
bGRyZW4KKworICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuLgog
ICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpC
dXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246CkBAIC0yMTQz
LDM2ICsyMTQzLDI5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVy
RWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vCiAKIFN0cmluZyBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSB0aGlz
LT5ub2RlKCk7CisgICAgV2Vha1B0ciBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9k
ZSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
Ym9vbCBpc0lucHV0VGFnID0gaXM8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOwotICAgIGlmIChp
c0lucHV0VGFnKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93bmNhc3Q8
SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOwotICAgICAgICBpZiAoaW5wdXQuaXNUZXh0QnV0dG9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gaW5wdXQudmFsdWVXaXRoRGVmYXVsdCgpOworICAgIGlm
IChhdXRvKiBpbnB1dCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlLmdl
dCgpKSkgeworICAgICAgICBpZiAoaW5wdXQtPmlzVGV4dEJ1dHRvbigpKQorICAgICAgICAgICAg
cmV0dXJuIGlucHV0LT52YWx1ZVdpdGhEZWZhdWx0KCk7CiAgICAgfQogCiAgICAgaWYgKGlzTGFi
ZWxhYmxlKCkpIHsKLSAgICAgICAgSFRNTExhYmVsRWxlbWVudCogbGFiZWwgPSBsYWJlbEZvckVs
ZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOworICAgICAgICBSZWZQdHIgbGFiZWwgPSBs
YWJlbEZvckVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpOwogICAgICAgICAv
LyBVc2UgdGhlIGxhYmVsIHRleHQgYXMgdGhlIHRpdGxlIGlmIDEpIHRoZSB0aXRsZSBlbGVtZW50
IGlzIE5PVCBhbiBleHBvc2VkIGVsZW1lbnQgYW5kIDIpIHRoZXJlJ3Mgbm8gQVJJQSBvdmVycmlk
ZS4KICAgICAgICAgaWYgKGxhYmVsICYmICFleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSAmJiAhYXJp
YUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJu
IHRleHRGb3JMYWJlbEVsZW1lbnQobGFiZWwpOworICAgICAgICAgICAgcmV0dXJuIHRleHRGb3JM
YWJlbEVsZW1lbnQobGFiZWwuZ2V0KCkpOwogICAgIH0KIAotICAgIC8vIElmIHRoaXMgbm9kZSBp
c24ndCByZW5kZXJlZCwgdGhlcmUncyBubyBpbm5lciB0ZXh0IHdlIGNhbiBleHRyYWN0IGZyb20g
YSBzZWxlY3QgZWxlbWVudC4KLSAgICBpZiAoIWlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgp
ICYmIG5vZGUtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgIC8vIEZvciA8c2VsZWN0PiBlbGVtZW50cywgdGl0bGUgc2hvdWxkIGJlIGVtcHR5IGlm
IHRoZXkgYXJlIG5vdCByZW5kZXJlZCBvciBoYXZlIHJvbGUgUG9wVXBCdXR0b24uCisgICAgaWYg
KG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpCisgICAgICAgICYmICghaXNBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgfHwgcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OlBvcFVwQnV0dG9uKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHN3aXRjaCAocm9s
ZVZhbHVlKCkpIHsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKLSAg
ICAgICAgLy8gTmF0aXZlIHBvcHVwIGJ1dHRvbnMgc2hvdWxkIG5vdCB1c2UgdGhlaXIgYnV0dG9u
IGNoaWxkcmVuJ3MgdGV4dCBhcyBhIHRpdGxlLiBUaGF0IHZhbHVlIGlzIHJldHJpZXZlZCB0aHJv
dWdoIHN0cmluZ1ZhbHVlKCkuCi0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHNlbGVjdFRh
ZykpCi0gICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgICAgIEZBTExUSFJPVUdIOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUb2dnbGVCdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tC
b3g6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbjoKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKQEAgLTIxODAsOSArMjE3MywxMSBAQCBTdHJp
bmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNZW51SXRlbToKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51
SXRlbUNoZWNrYm94OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW86
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UmFkaW9CdXR0b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3dpdGNoOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYjoKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246CiAgICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVt
ZW50KCk7CiAgICAgLy8gU1ZHUm9vdHMgc2hvdWxkIG5vdCB1c2UgdGhlIHRleHQgdW5kZXIgaXRz
ZWxmIGFzIGEgdGl0bGUuIFRoYXQgY291bGQgaW5jbHVkZSB0aGUgdGV4dCBvZiBvYmplY3RzIGxp
a2UgPHRleHQ+LgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3Q6CkBAIC0yMTk2
LDcgKzIxOTEsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29u
c3QKICAgICBpZiAoaXNIZWFkaW5nKCkpCiAgICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50
KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZShBY2Nlc3NpYmlsaXR5VGV4dFVuZGVy
RWxlbWVudE1vZGU6OlRleHRVbmRlckVsZW1lbnRNb2RlU2tpcElnbm9yZWRDaGlsZHJlbiwgdHJ1
ZSkpOwogCi0gICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiB7IH07CiB9CiAKIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dCgpIGNvbnN0CkBAIC0yMjI3LDcgKzIyMjIs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QK
IHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKGlzQVJJ
QVN0YXRpY1RleHQoKSkgewogICAgICAgICBTdHJpbmcgc3RhdGljVGV4dCA9IHRleHQoKTsKQEAg
LTIyNjIsNyArMjI1Nyw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5n
VmFsdWUoKSBjb25zdAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgbm90IHRvIGFk
dmVydGlzZSBhIHZhbHVlIGF0IGFsbCBmb3IgdGhlIHR5cGVzIGZvciB3aGljaCB3ZSBkb24ndCBp
bXBsZW1lbnQgb25lOwogICAgIC8vIHRoaXMgd291bGQgcmVxdWlyZSBzdWJjbGFzc2luZyBvciBt
YWtpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzIGRvIHNvbWV0aGluZyBvdGhlciB0aGFu
IHJldHVybiBhCiAgICAgLy8gc2luZ2xlIHN0YXRpYyBhcnJheS4KLSAgICByZXR1cm4gU3RyaW5n
KCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogU1JHQkE8dWludDhfdD4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmNvbG9yVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZTAx
OThiNzk0OTRhLi5iOWQzZDAxNmM3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNzU4LDcg
Kzc1OCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgp
IGNvbnN0CiAgICAgICAgICAgICBzdGF0aWNUZXh0ID0gdGV4dFVuZGVyRWxlbWVudCgpOwogICAg
ICAgICByZXR1cm4gc3RhdGljVGV4dDsKICAgICB9Ci0gICAgICAgIAorCiAgICAgaWYgKGlzPFJl
bmRlclRleHQ+KG1fcmVuZGVyZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxl
bWVudCgpOwogCkBAIC03ODcsMTEgKzc4NywxMSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc1dlYkFyZWEo
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIAorICAgICAgICByZXR1cm4geyB9Owor
CiAgICAgaWYgKGlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIHRleHQoKTsKLSAgICAK
KwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKGlzSW5wdXRUeXBlUG9wdXBCdXR0
b24oKSkKICAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKQEAgLTc5OSwxMiArNzk5
LDEyIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNv
bnN0CiAKICAgICBpZiAoYXV0byogcmVuZGVyRmlsZVVwbG9hZENvbnRyb2wgPSBkeW5hbWljRG93
bmNhc3Q8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+KG1fcmVuZGVyZXIuZ2V0KCkpKQogICAgICAg
ICByZXR1cm4gcmVuZGVyRmlsZVVwbG9hZENvbnRyb2wtPmZpbGVUZXh0VmFsdWUoKTsKLSAgICAK
KwogICAgIC8vIEZJWE1FOiBXZSBtaWdodCBuZWVkIHRvIGltcGxlbWVudCBhIHZhbHVlIGhlcmUg
Zm9yIG1vcmUgdHlwZXMKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIG5vdCB0byBh
ZHZlcnRpc2UgYSB2YWx1ZSBhdCBhbGwgZm9yIHRoZSB0eXBlcyBmb3Igd2hpY2ggd2UgZG9uJ3Qg
aW1wbGVtZW50IG9uZTsKICAgICAvLyB0aGlzIHdvdWxkIHJlcXVpcmUgc3ViY2xhc3Npbmcgb3Ig
bWFraW5nIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcyBkbyBzb21ldGhpbmcgb3RoZXIgdGhh
biByZXR1cm4gYQogICAgIC8vIHNpbmdsZSBzdGF0aWMgYXJyYXkuCi0gICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIHJldHVybiB7IH07CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y2FuSGF2ZVBsYWluVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXgg
YzkwNDRjOGMzZTA2Li41OWRmMWVkNGM0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAg
LTQ5Nyw2ICs0OTcsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHRleHRMZW5ndGgoKSBjb25z
dCBvdmVycmlkZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1
dGVkU3RyaW5nPiBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFYVGV4dE1hcmtl
clJhbmdlJiYsIFNwZWxsQ2hlY2spIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkQ2Fj
aGVBdHRyaWJ1dGVkVGV4dCgpIGNvbnN0OwogICAgIE5TQXR0cmlidXRlZFN0cmluZyAqY2FjaGVk
QXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShjb25zdCBBWFRleHRNYXJrZXJSYW5n
ZSYsIFNwZWxsQ2hlY2spIGNvbnN0OwogI2VuZGlmCiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmpl
Y3RDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVj
dE1hYy5tbQppbmRleCA1NDE4YWU0MTZhM2EuLmEwNjAxODBlZTQ3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmpl
Y3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
bWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KQEAgLTM5LDggKzM5LDkgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IFJlZjxjb25zdCBB
WENvcmVPYmplY3QKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZB
bm5vdGF0aW9uQXR0cmlidXRlLCBvYmplY3QtPmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlZWNoSGludCwgb2JqZWN0
LT5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAKLSAgICBpZiAo
aXNUZXh0Q29udHJvbCgpKQorICAgIGlmIChzaG91bGRDYWNoZUF0dHJpYnV0ZWRUZXh0KCkpCiAg
ICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpBdHRyaWJ1dGVkVGV4dCwgb2JqZWN0
LT5hdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKG9iamVjdC0+dGV4dE1hcmtlclJh
bmdlKCksIFNwZWxsQ2hlY2s6OlllcykpOworCiAgICAgaWYgKG9iamVjdC0+aXNXZWJBcmVhKCkp
IHsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2gsIG9iamVjdC0+cHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCgp
KTsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJvd3NpbmdFbmFi
bGVkLCBvYmplY3QtPmNhcmV0QnJvd3NpbmdFbmFibGVkKCkpOwpAQCAtMTE0LDYgKzExNSwxMSBA
QCBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBBWElzb2xhdGVkT2JqZWN0OjphdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbgogICAgIH0pOwogfQogCitib29sIEFYSXNvbGF0ZWRP
YmplY3Q6OnNob3VsZENhY2hlQXR0cmlidXRlZFRleHQoKSBjb25zdAoreworICAgIHJldHVybiBp
c1RleHRDb250cm9sKCkgfHwgaXNUYWJJdGVtKCkgfHwgcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OldlYkNvcmVMaW5rOworfQorCiBOU0F0dHJpYnV0ZWRTdHJpbmcgKkFYSXNvbGF0
ZWRPYmplY3Q6OmNhY2hlZEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoY29uc3Qg
QVhUZXh0TWFya2VyUmFuZ2UmIG1hcmtlclJhbmdlLCBTcGVsbENoZWNrIHNwZWxsQ2hlY2spIGNv
bnN0CiB7CiAgICAgLy8gQXQgdGhlIG1vbWVudCB3ZSBhcmUgb25seSBoYW5kbGluZyByYW5nZXMg
dGhhdCBhcmUgY29udGFpbmVkIGluIGEgc2luZ2xlIG9iamVjdCwgYW5kIGZvciB3aGljaCB3ZSBj
YWNoZWQgdGhlIEF0dHJpYnV0ZVN0cmluZy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>