<?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>239464</bug_id>
          
          <creation_ts>2022-04-18 14:09:29 -0700</creation_ts>
          <short_desc>Introduce makeAtomString()</short_desc>
          <delta_ts>2022-04-19 11:00: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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=239427</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862310</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 14:09:29 -0700</bug_when>
    <thetext>Introduce makeAtomString() which is an optimized version of makeString() when the caller knows it wants an AtomString. It may avoid a StringImpl allocation when the string is already in the AtomStringTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862311</commentid>
    <comment_count>1</comment_count>
      <attachid>457820</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 14:12:51 -0700</bug_when>
    <thetext>Created attachment 457820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862321</commentid>
    <comment_count>2</comment_count>
      <attachid>457824</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 14:42:56 -0700</bug_when>
    <thetext>Created attachment 457824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862336</commentid>
    <comment_count>3</comment_count>
      <attachid>457824</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-18 15:17:45 -0700</bug_when>
    <thetext>Comment on attachment 457824
Patch

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

&gt; Source/WTF/wtf/text/StringConcatenate.h:502
&gt; +        if (areAllAdapters8Bit) {
&gt; +            LChar buffer[maxLengthToUseStackVariable];
&gt; +            stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; +            return AtomString { buffer, length };
&gt; +        }
&gt; +        UChar buffer[maxLengthToUseStackVariable];
&gt; +        stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; +        return AtomString { buffer, length };

I wonder if the compiler is smart enough to not allocate both buffers.

&gt; Source/WTF/wtf/text/StringConcatenate.h:525
&gt; +    if (areAllAdapters8Bit) {
&gt; +        LChar* buffer;
&gt; +        RefPtr&lt;StringImpl&gt; resultImpl = StringImpl::tryCreateUninitialized(length, buffer);
&gt; +        if (!resultImpl)
&gt; +            return nullAtom();
&gt; +
&gt; +        if (buffer)
&gt; +            stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; +
&gt; +        return resultImpl.get();
&gt; +    }
&gt; +
&gt; +    UChar* buffer;
&gt; +    RefPtr&lt;StringImpl&gt; resultImpl = StringImpl::tryCreateUninitialized(length, buffer);
&gt; +    if (!resultImpl)
&gt; +        return nullAtom();
&gt; +
&gt; +    if (buffer)
&gt; +        stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; +
&gt; +    return resultImpl.get();

Is there a way to share code with tryMakeStringFromAdapters here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862363</commentid>
    <comment_count>4</comment_count>
      <attachid>457836</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 16:34:50 -0700</bug_when>
    <thetext>Created attachment 457836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862364</commentid>
    <comment_count>5</comment_count>
      <attachid>457837</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 16:37:07 -0700</bug_when>
    <thetext>Created attachment 457837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862365</commentid>
    <comment_count>6</comment_count>
      <attachid>457838</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 16:37:44 -0700</bug_when>
    <thetext>Created attachment 457838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862373</commentid>
    <comment_count>7</comment_count>
      <attachid>457838</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-18 16:51:54 -0700</bug_when>
    <thetext>Comment on attachment 457838
Patch

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

&gt; Source/WebCore/svg/SVGLengthValue.cpp:30
&gt; +#include &lt;wtf/text/StringConcatenate.h&gt;
&gt;  #include &lt;wtf/text/StringConcatenateNumbers.h&gt;

I thought &quot;StringConcatenateNumbers.h&quot; included &quot;StringConcatenate.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862375</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 16:52:51 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 457838 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457838&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/SVGLengthValue.cpp:30
&gt; &gt; +#include &lt;wtf/text/StringConcatenate.h&gt;
&gt; &gt;  #include &lt;wtf/text/StringConcatenateNumbers.h&gt;
&gt; 
&gt; I thought &quot;StringConcatenateNumbers.h&quot; included &quot;StringConcatenate.h&quot;

Oh, I think that was me trying to fix a build error the wrong way. I&apos;ll drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862376</commentid>
    <comment_count>9</comment_count>
      <attachid>457841</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 16:55:32 -0700</bug_when>
    <thetext>Created attachment 457841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862405</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-18 18:54:44 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 457824 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457824&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/text/StringConcatenate.h:502
&gt; &gt; +        if (areAllAdapters8Bit) {
&gt; &gt; +            LChar buffer[maxLengthToUseStackVariable];
&gt; &gt; +            stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; &gt; +            return AtomString { buffer, length };
&gt; &gt; +        }
&gt; &gt; +        UChar buffer[maxLengthToUseStackVariable];
&gt; &gt; +        stringTypeAdapterAccumulator(buffer, adapter, adapters...);
&gt; &gt; +        return AtomString { buffer, length };
&gt; 
&gt; I wonder if the compiler is smart enough to not allocate both buffers.

Good question. I am not quite sure how to find out though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862606</commentid>
    <comment_count>11</comment_count>
      <attachid>457841</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-19 10:06:54 -0700</bug_when>
    <thetext>Comment on attachment 457841
Patch

Very nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862634</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-19 10:59:05 -0700</bug_when>
    <thetext>Committed r293024 (249763@main): &lt;https://commits.webkit.org/249763@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457841.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862635</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 11:00:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91972473&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457820</attachid>
            <date>2022-04-18 14:12:51 -0700</date>
            <delta_ts>2022-04-18 14:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418141250.patch</filename>
            <type>text/plain</type>
            <size>6664</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNzhkMWZjZTkwNWMyNjExYjRm
NjgwOTE5YmU4ZDc4NzUyYWE2ZTMzLi4xMzY5ZGEzYzA3NjdjMmNhMzY0Yzk1YzRiNmRjOGFlYzFh
ODgxMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBPcHRpbWl6ZSBub2RlSGFzUm9sZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmgKaW5kZXggMjllNzA4ZWYyNjVkMWE2MDI3OTVjMjdlYjQ0YmM5YmQxYmUyYThmNy4u
ZGVmYmEzMWIxNTA4OGViMjBjY2U0YjMyZjk3ZWZjMWZlMDg2YjM1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNDc4LDYgKzQ3OCw2OCBAQCBTdHJpbmcgbWFr
ZVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdU
eXBlQWRhcHRlcnM+CitBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0
cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1heCgpKTsKKyAgICBhdXRvIHN1bSA9IGNoZWNrZWRTdW08aW50MzJf
dD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3RoKCkuLi4pOworICAgIGlmIChzdW0u
aGFzT3ZlcmZsb3dlZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICB1bnNpZ25l
ZCBsZW5ndGggPSBzdW07CisgICAgQVNTRVJUKGxlbmd0aCA8PSBTdHJpbmc6Ok1heExlbmd0aCk7
CisKKyAgICBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCA9IGFyZThCaXQoYWRhcHRlciwgYWRhcHRl
cnMuLi4pOworICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxl
ID0gNjQ7CisgICAgaWYgKGxlbmd0aCA8IG1heExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZSkgewor
ICAgICAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CisgICAgICAgICAgICBMQ2hhciBidWZm
ZXJbbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlXTsKKyAgICAgICAgICAgIHN0cmluZ1R5cGVB
ZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgICAg
ICAgICByZXR1cm4gQXRvbVN0cmluZyB7IGJ1ZmZlciwgbGVuZ3RoIH07CisgICAgICAgIH0KKyAg
ICAgICAgVUNoYXIgYnVmZmVyW21heExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZV07CisgICAgICAg
IHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4u
Lik7CisgICAgICAgIHJldHVybiBBdG9tU3RyaW5nIHsgYnVmZmVyLCBsZW5ndGggfTsKKyAgICB9
CisKKyAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CisgICAgICAgIExDaGFyKiBidWZmZXI7
CisgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiByZXN1bHRJbXBsID0gU3RyaW5nSW1wbDo6dHJ5
Q3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7CisgICAgICAgIGlmICghcmVzdWx0
SW1wbCkKKyAgICAgICAgICAgIHJldHVybiBudWxsQXRvbSgpOworCisgICAgICAgIGlmIChidWZm
ZXIpCisgICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZlciwgYWRh
cHRlciwgYWRhcHRlcnMuLi4pOworCisgICAgICAgIHJldHVybiByZXN1bHRJbXBsLmdldCgpOwor
ICAgIH0KKworICAgIFVDaGFyKiBidWZmZXI7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlc3Vs
dEltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgYnVmZmVy
KTsKKyAgICBpZiAoIXJlc3VsdEltcGwpCisgICAgICAgIHJldHVybiBudWxsQXRvbSgpOworCisg
ICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZm
ZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKworICAgIHJldHVybiByZXN1bHRJbXBsLmdldCgp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KK0F0b21TdHJpbmcgdHJ5
TWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKK3sKKyAgICByZXR1cm4gdHJ5
TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+
KHN0cmluZ3MpLi4uKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitB
dG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCit7CisgICAg
QXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmluZyhzdHJpbmdzLi4uKTsKKyAgICBp
ZiAocmVzdWx0LmlzTnVsbCgpKQorICAgICAgICBDUkFTSCgpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIGlubGluZSBTdHJpbmcgbWFrZVN0cmluZ0J5SW5zZXJ0aW5nKFN0cmluZ1ZpZXcgb3Jp
Z2luYWxTdHJpbmcsIFN0cmluZ1ZpZXcgc3RyaW5nVG9JbnNlcnQsIHVuc2lnbmVkIHBvc2l0aW9u
KQogewogICAgIHJldHVybiBtYWtlU3RyaW5nKG9yaWdpbmFsU3RyaW5nLmxlZnQocG9zaXRpb24p
LCBzdHJpbmdUb0luc2VydCwgb3JpZ2luYWxTdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBm
NmFhOGE3Nzg5OWFlY2RlZDc1YzgzYzM0OGIxNWFlYjRhODE5YzhkLi43NWUzZTA5ZDQ0N2JhYzdi
NWZmM2IzZTkwMGY5MTAyNGI2ZDI3NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTIyMDAsNyArMjIwMCw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyKEF0b21IVE1MVG9rZW4mJiB0b2tlbikKIC8vIEZy
b20gdGhlIHN0cmluZyA0MDg5OTYxMDEwLCBjcmVhdGVzIGEgbGluayBvZiB0aGUgZm9ybSA8YSBo
cmVmPSJ0ZWw6NDA4OTk2MTAxMCI+NDA4OTk2MTAxMDwvYT4gYW5kIGluc2VydHMgaXQuCiB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgbWFr
ZVN0cmluZygidGVsOiJfcywgc3RyaW5nKSk7CisgICAgQXR0cmlidXRlIGF0dHJpYnV0ZShIVE1M
TmFtZXM6OmhyZWZBdHRyLCBtYWtlQXRvbVN0cmluZygidGVsOiJfcywgc3RyaW5nKSk7CiAKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBhVGFnTG9jYWxOYW1lID0gYVRhZy0+bG9jYWxOYW1lKCk7CiAg
ICAgQXRvbUhUTUxUb2tlbiBhU3RhcnRUb2tlbihIVE1MVG9rZW46OlN0YXJ0VGFnLCBhVGFnTG9j
YWxOYW1lLCB7IFdURk1vdmUoYXR0cmlidXRlKSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cAppbmRleCA0MDJmNGZhYWJiMzY0MzQ2Y2I5Y2E3M2ZlOTMxMzRiMWZkZmQ3ZDcyLi45ZDU5YWRl
YTc5YzgzNzQwNzI0ZTdjZDc4ZjI2NTJmYmZiNzQ5MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgQXRvbVN0cmluZyBGcmFtZVRyZWU6OmdlbmVyYXRl
VW5pcXVlTmFtZSgpIGNvbnN0CiAgICAgaWYgKCZ0b3AudHJlZSgpICE9IHRoaXMpCiAgICAgICAg
IHJldHVybiB0b3AudHJlZSgpLmdlbmVyYXRlVW5pcXVlTmFtZSgpOwogCi0gICAgcmV0dXJuIG1h
a2VTdHJpbmcoIjwhLS1mcmFtZSIsICsrbV9mcmFtZUlER2VuZXJhdG9yLCAiLS0+Iik7CisgICAg
cmV0dXJuIG1ha2VBdG9tU3RyaW5nKCI8IS0tZnJhbWUiLCArK21fZnJhbWVJREdlbmVyYXRvciwg
Ii0tPiIpOwogfQogCiBzdGF0aWMgYm9vbCBpblNjb3BlKEZyYW1lJiBmcmFtZSwgVHJlZVNjb3Bl
JiBzY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuY3BwCmluZGV4IGI1NjhlNjIy
ZDIzMGY2NzM0NGE4ZGRlNDJiZjVlZDIwMWVmNGU3MGQuLjNiZDRjYTFiMDBkNTg5YjMxNjc0OWJk
ZDU1ODhhYjg2ZWI5NTRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5n
dGhWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcApA
QCAtMjcxLDkgKzI3MSw3IEBAIFN0cmluZyBTVkdMZW5ndGhWYWx1ZTo6dmFsdWVBc1N0cmluZygp
IGNvbnN0CiAKIEF0b21TdHJpbmcgU1ZHTGVuZ3RoVmFsdWU6OnZhbHVlQXNBdG9tU3RyaW5nKCkg
Y29uc3QKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQo
bV92YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGxlbmd0aFR5cGVUb1N0cmluZyhtX2xlbmd0aFR5cGUp
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKKyAgICByZXR1cm4gbWFrZUF0
b21TdHJpbmcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGxlbmd0aFR5cGVUb1N0cmluZyhtX2xl
bmd0aFR5cGUpKTsKIH0KIAogRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR0xlbmd0aFZhbHVlOjp2YWx1
ZUZvckJpbmRpbmdzKGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGNvbnRleHQpIGNvbnN0Cg==
</data>
<flag name="commit-queue"
          id="486524"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457824</attachid>
            <date>2022-04-18 14:42:56 -0700</date>
            <delta_ts>2022-04-18 16:34:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418144255.patch</filename>
            <type>text/plain</type>
            <size>7467</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMmJjMmYwOGY1NWY4YWVkMGNl
Njg4MWIxMDU2NDZiNTk5NmZlOThjLi4xMDY4NWJkMDhkYmRmZTlhZmEyNjNhMzIzNDRhZThjNWJk
ODUxNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAog
ICAgICAgICBOb2RlIGNoYW5nZXMgY3JlYXRlZCBieSBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9k
ZSBhcmUgb3ZlcndyaXR0ZW4gd2hlbiBwZXJmb3JtZWQgZHVyaW5nIEFYSXNvbGF0ZWRUcmVlOjpj
b2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmgKaW5kZXggMjllNzA4ZWYyNjVkMWE2MDI3OTVjMjdlYjQ0YmM5YmQxYmUyYThmNy4u
ZmZkYjNmZTY2Y2JlYjk3MGQwMjEzMjQzNGZiOTYwY2FlMTM3ZGYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNDc4LDYgKzQ3OCw2OCBAQCBTdHJpbmcgbWFr
ZVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdU
eXBlQWRhcHRlcnM+CitBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0
cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1heCgpKTsKKyAgICBhdXRvIHN1bSA9IGNoZWNrZWRTdW08aW50MzJf
dD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3RoKCkuLi4pOworICAgIGlmIChzdW0u
aGFzT3ZlcmZsb3dlZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICB1bnNpZ25l
ZCBsZW5ndGggPSBzdW07CisgICAgQVNTRVJUKGxlbmd0aCA8PSBTdHJpbmc6Ok1heExlbmd0aCk7
CisKKyAgICBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCA9IGFyZThCaXQoYWRhcHRlciwgYWRhcHRl
cnMuLi4pOworICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxl
ID0gNjQ7CisgICAgaWYgKGxlbmd0aCA8IG1heExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZSkgewor
ICAgICAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CisgICAgICAgICAgICBMQ2hhciBidWZm
ZXJbbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlXTsKKyAgICAgICAgICAgIHN0cmluZ1R5cGVB
ZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgICAg
ICAgICByZXR1cm4gQXRvbVN0cmluZyB7IGJ1ZmZlciwgbGVuZ3RoIH07CisgICAgICAgIH0KKyAg
ICAgICAgVUNoYXIgYnVmZmVyW21heExlbmd0aFRvVXNlU3RhY2tWYXJpYWJsZV07CisgICAgICAg
IHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4u
Lik7CisgICAgICAgIHJldHVybiBBdG9tU3RyaW5nIHsgYnVmZmVyLCBsZW5ndGggfTsKKyAgICB9
CisKKyAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0KSB7CisgICAgICAgIExDaGFyKiBidWZmZXI7
CisgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiByZXN1bHRJbXBsID0gU3RyaW5nSW1wbDo6dHJ5
Q3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7CisgICAgICAgIGlmICghcmVzdWx0
SW1wbCkKKyAgICAgICAgICAgIHJldHVybiBudWxsQXRvbSgpOworCisgICAgICAgIGlmIChidWZm
ZXIpCisgICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZlciwgYWRh
cHRlciwgYWRhcHRlcnMuLi4pOworCisgICAgICAgIHJldHVybiByZXN1bHRJbXBsLmdldCgpOwor
ICAgIH0KKworICAgIFVDaGFyKiBidWZmZXI7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlc3Vs
dEltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgYnVmZmVy
KTsKKyAgICBpZiAoIXJlc3VsdEltcGwpCisgICAgICAgIHJldHVybiBudWxsQXRvbSgpOworCisg
ICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZm
ZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKworICAgIHJldHVybiByZXN1bHRJbXBsLmdldCgp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KK0F0b21TdHJpbmcgdHJ5
TWFrZUF0b21TdHJpbmcoU3RyaW5nVHlwZXMgLi4uc3RyaW5ncykKK3sKKyAgICByZXR1cm4gdHJ5
TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+
KHN0cmluZ3MpLi4uKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitB
dG9tU3RyaW5nIG1ha2VBdG9tU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCit7CisgICAg
QXRvbVN0cmluZyByZXN1bHQgPSB0cnlNYWtlQXRvbVN0cmluZyhzdHJpbmdzLi4uKTsKKyAgICBp
ZiAocmVzdWx0LmlzTnVsbCgpKQorICAgICAgICBDUkFTSCgpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIGlubGluZSBTdHJpbmcgbWFrZVN0cmluZ0J5SW5zZXJ0aW5nKFN0cmluZ1ZpZXcgb3Jp
Z2luYWxTdHJpbmcsIFN0cmluZ1ZpZXcgc3RyaW5nVG9JbnNlcnQsIHVuc2lnbmVkIHBvc2l0aW9u
KQogewogICAgIHJldHVybiBtYWtlU3RyaW5nKG9yaWdpbmFsU3RyaW5nLmxlZnQocG9zaXRpb24p
LCBzdHJpbmdUb0luc2VydCwgb3JpZ2luYWxTdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uKSk7CkBA
IC00ODcsMTEgKzU0OSwxMyBAQCBpbmxpbmUgU3RyaW5nIG1ha2VTdHJpbmdCeUluc2VydGluZyhT
dHJpbmdWaWV3IG9yaWdpbmFsU3RyaW5nLCBTdHJpbmdWaWV3IHN0cmluZwogCiB1c2luZyBXVEY6
OkluZGVudGF0aW9uOwogdXNpbmcgV1RGOjpJbmRlbnRhdGlvblNjb3BlOwordXNpbmcgV1RGOjpt
YWtlQXRvbVN0cmluZzsKIHVzaW5nIFdURjo6bWFrZVN0cmluZzsKIHVzaW5nIFdURjo6bWFrZVN0
cmluZ0J5SW5zZXJ0aW5nOwogdXNpbmcgV1RGOjpwYWQ7CiB1c2luZyBXVEY6Omxvd2VyY2FzZTsK
IHVzaW5nIFdURjo6dHJ5TWFrZVN0cmluZzsKK3VzaW5nIFdURjo6dHJ5TWFrZUF0b21TdHJpbmc7
CiB1c2luZyBXVEY6OnVwcGVyY2FzZTsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ09wZXJh
dG9ycy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHAKaW5kZXggZjZhYThhNzc4OTlhZWNkZWQ3NWM4M2MzNDhiMTVhZWI0YTgxOWM4ZC4uNzVlM2Uw
OWQ0NDdiYWM3YjVmZjNiM2U5MDBmOTEwMjRiNmQyNzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC0yMjAwLDcgKzIyMDAsNyBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlcihBdG9tSFRNTFRva2VuJiYgdG9r
ZW4pCiAvLyBGcm9tIHRoZSBzdHJpbmcgNDA4OTk2MTAxMCwgY3JlYXRlcyBhIGxpbmsgb2YgdGhl
IGZvcm0gPGEgaHJlZj0idGVsOjQwODk5NjEwMTAiPjQwODk5NjEwMTA8L2E+IGFuZCBpbnNlcnRz
IGl0Lgogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6Omluc2VydFBob25lTnVtYmVyTGluayhjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKLSAgICBBdHRyaWJ1dGUgYXR0cmlidXRlKEhUTUxOYW1lczo6aHJl
ZkF0dHIsIG1ha2VTdHJpbmcoInRlbDoiX3MsIHN0cmluZykpOworICAgIEF0dHJpYnV0ZSBhdHRy
aWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgbWFrZUF0b21TdHJpbmcoInRlbDoiX3MsIHN0cmlu
ZykpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgYVRhZ0xvY2FsTmFtZSA9IGFUYWctPmxvY2Fs
TmFtZSgpOwogICAgIEF0b21IVE1MVG9rZW4gYVN0YXJ0VG9rZW4oSFRNTFRva2VuOjpTdGFydFRh
ZywgYVRhZ0xvY2FsTmFtZSwgeyBXVEZNb3ZlKGF0dHJpYnV0ZSkgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5jcHAKaW5kZXggNDAyZjRmYWFiYjM2NDM0NmNiOWNhNzNmZTkzMTM0YjFmZGZkN2Q3
Mi4uOWQ1OWFkZWE3OWM4Mzc0MDcyNGU3Y2Q3OGYyNjUyZmJmYjc0OTA5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEF0b21TdHJpbmcgRnJhbWVUcmVl
OjpnZW5lcmF0ZVVuaXF1ZU5hbWUoKSBjb25zdAogICAgIGlmICgmdG9wLnRyZWUoKSAhPSB0aGlz
KQogICAgICAgICByZXR1cm4gdG9wLnRyZWUoKS5nZW5lcmF0ZVVuaXF1ZU5hbWUoKTsKIAotICAg
IHJldHVybiBtYWtlU3RyaW5nKCI8IS0tZnJhbWUiLCArK21fZnJhbWVJREdlbmVyYXRvciwgIi0t
PiIpOworICAgIHJldHVybiBtYWtlQXRvbVN0cmluZygiPCEtLWZyYW1lIiwgKyttX2ZyYW1lSURH
ZW5lcmF0b3IsICItLT4iKTsKIH0KIAogc3RhdGljIGJvb2wgaW5TY29wZShGcmFtZSYgZnJhbWUs
IFRyZWVTY29wZSYgc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAppbmRl
eCBiNTY4ZTYyMmQyMzBmNjczNDRhOGRkZTQyYmY1ZWQyMDFlZjRlNzBkLi5iODEzZmI4ZTM1Mjc0
ZmMyMzdmYmY1Y2MyNTdmMGM5ZWVhMjE0NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhW
YWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5o
IgogI2luY2x1ZGUgIlNWR0xlbmd0aENvbnRleHQuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGls
aXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1BhcnNpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFt
Lmg+CkBAIC0yNzEsOSArMjcyLDcgQEAgU3RyaW5nIFNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzU3Ry
aW5nKCkgY29uc3QKIAogQXRvbVN0cmluZyBTVkdMZW5ndGhWYWx1ZTo6dmFsdWVBc0F0b21TdHJp
bmcoKSBjb25zdAogewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFw
cGVuZChtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cywgbGVuZ3RoVHlwZVRvU3RyaW5nKG1fbGVuZ3Ro
VHlwZSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvQXRvbVN0cmluZygpOworICAgIHJldHVybiBt
YWtlQXRvbVN0cmluZyhtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cywgbGVuZ3RoVHlwZVRvU3RyaW5n
KG1fbGVuZ3RoVHlwZSkpOwogfQogCiBFeGNlcHRpb25PcjxmbG9hdD4gU1ZHTGVuZ3RoVmFsdWU6
OnZhbHVlRm9yQmluZGluZ3MoY29uc3QgU1ZHTGVuZ3RoQ29udGV4dCYgY29udGV4dCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457836</attachid>
            <date>2022-04-18 16:34:50 -0700</date>
            <delta_ts>2022-04-18 16:37:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418163449.patch</filename>
            <type>text/plain</type>
            <size>8941</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjc5MTIzNTc3MjhjZTdmNGU3
OWMxMjgwY2M0NDVjZmM1NTE4MjNiLi43ODQ4MjIzMDhiODkxMDdhMzhiMTU4NzJmOGUzNDg2YmI5
MTY3YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSBsZXNzIGFuZCBtb3JlIFNvcnRlZEFy
cmF5TWFwIC8gU29ydGVkQXJyYXlTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaAppbmRleCAyOWU3MDhlZjI2NWQxYTYwMjc5NWMyN2ViNDRiYzliZDFiZTJhOGY3Li4wZmVm
Mjk4MGI1NDkxYmJjMzdmNTdjNjI2MDE3MTIxN2EwMjRlNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC00MzEsMjAgKzQzMSwxNCBAQCBpbmxpbmUgdm9pZCBz
dHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRlciBh
ZGFwdGVyLCBBZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlw
ZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFk
YXB0ZXJzKQorUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJz
SW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJp
bmdUeXBlQWRhcHRlcnMgLi4uYWRhcHRlcnMpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChTdHJpbmc6
Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7Ci0gICAg
YXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFkYXB0ZXJz
Lmxlbmd0aCgpLi4uKTsKLSAgICBpZiAoc3VtLmhhc092ZXJmbG93ZWQoKSkKLSAgICAgICAgcmV0
dXJuIFN0cmluZygpOwotCi0gICAgdW5zaWduZWQgbGVuZ3RoID0gc3VtOwogICAgIEFTU0VSVChs
ZW5ndGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogICAgIGlmIChhcmU4Qml0KGFkYXB0ZXIsIGFk
YXB0ZXJzLi4uKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBSZWZQdHI8U3Ry
aW5nSW1wbD4gcmVzdWx0SW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQo
bGVuZ3RoLCBidWZmZXIpOwogICAgICAgICBpZiAoIXJlc3VsdEltcGwpCi0gICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBp
ZiAoYnVmZmVyKQogICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZm
ZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKQEAgLTQ1NSw3ICs0NDksNyBAQCBTdHJpbmcgdHJ5
TWFrZVN0cmluZ0Zyb21BZGFwdGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdU
eXBlQWRhcHRlcnMgLgogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgUmVmUHRyPFN0cmluZ0ltcGw+
IHJlc3VsdEltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwg
YnVmZmVyKTsKICAgICBpZiAoIXJlc3VsdEltcGwpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBzdHJp
bmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZlciwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOwpA
QCAtNDYzLDYgKzQ1NywxNyBAQCBTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFwdGVycyhTdHJp
bmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLgogICAgIHJldHVybiBy
ZXN1bHRJbXBsOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlw
ZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgorU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFk
YXB0ZXJzKQoreworICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1
bTxpbnQzMl90PihhZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7CisgICAg
aWYgKHN1bS5oYXNPdmVyZmxvd2VkKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAg
IHJldHVybiB0cnlNYWtlU3RyaW5nSW1wbEZyb21BZGFwdGVyc0ludGVybmFsKHN1bSwgYWRhcHRl
ciwgYWRhcHRlcnMuLi4pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4K
IFN0cmluZyB0cnlNYWtlU3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmluZ3MpCiB7CkBAIC00Nzgs
NiArNDgzLDQ3IEBAIFN0cmluZyBtYWtlU3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0
ZXIsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVycz4KK0F0b21TdHJpbmcgdHJ5TWFrZUF0
b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlw
ZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQoreworICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhM
ZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAgIGF1dG8g
c3VtID0gY2hlY2tlZFN1bTxpbnQzMl90PihhZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5n
dGgoKS4uLik7CisgICAgaWYgKHN1bS5oYXNPdmVyZmxvd2VkKCkpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN1bTsKKyAgICBBU1NFUlQobGVuZ3Ro
IDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKKworICAgIGJvb2wgYXJlQWxsQWRhcHRlcnM4Qml0ID0g
YXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgY29uc3RleHByIHNpemVfdCBtYXhM
ZW5ndGhUb1VzZVN0YWNrVmFyaWFibGUgPSA2NDsKKyAgICBpZiAobGVuZ3RoIDwgbWF4TGVuZ3Ro
VG9Vc2VTdGFja1ZhcmlhYmxlKSB7CisgICAgICAgIGlmIChhcmVBbGxBZGFwdGVyczhCaXQpIHsK
KyAgICAgICAgICAgIExDaGFyIGJ1ZmZlclttYXhMZW5ndGhUb1VzZVN0YWNrVmFyaWFibGVdOwor
ICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZmZXIsIGFkYXB0ZXIs
IGFkYXB0ZXJzLi4uKTsKKyAgICAgICAgICAgIHJldHVybiBBdG9tU3RyaW5nIHsgYnVmZmVyLCBs
ZW5ndGggfTsKKyAgICAgICAgfQorICAgICAgICBVQ2hhciBidWZmZXJbbWF4TGVuZ3RoVG9Vc2VT
dGFja1ZhcmlhYmxlXTsKKyAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZm
ZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAgICAgcmV0dXJuIEF0b21TdHJpbmcgeyBi
dWZmZXIsIGxlbmd0aCB9OworICAgIH0KKyAgICByZXR1cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9t
QWRhcHRlcnNJbnRlcm5hbChzdW0sIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKS5nZXQoKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitBdG9tU3RyaW5nIHRyeU1ha2VBdG9t
U3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmluZ3MpCit7CisgICAgcmV0dXJuIHRyeU1ha2VBdG9t
U3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdz
KS4uLik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgorQXRvbVN0cmlu
ZyBtYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdzKQoreworICAgIEF0b21TdHJp
bmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21TdHJpbmcoc3RyaW5ncy4uLik7CisgICAgaWYgKHJlc3Vs
dC5pc051bGwoKSkKKyAgICAgICAgQ1JBU0goKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBp
bmxpbmUgU3RyaW5nIG1ha2VTdHJpbmdCeUluc2VydGluZyhTdHJpbmdWaWV3IG9yaWdpbmFsU3Ry
aW5nLCBTdHJpbmdWaWV3IHN0cmluZ1RvSW5zZXJ0LCB1bnNpZ25lZCBwb3NpdGlvbikKIHsKICAg
ICByZXR1cm4gbWFrZVN0cmluZyhvcmlnaW5hbFN0cmluZy5sZWZ0KHBvc2l0aW9uKSwgc3RyaW5n
VG9JbnNlcnQsIG9yaWdpbmFsU3RyaW5nLnN1YnN0cmluZyhwb3NpdGlvbikpOwpAQCAtNDg3LDEx
ICs1MzMsMTMgQEAgaW5saW5lIFN0cmluZyBtYWtlU3RyaW5nQnlJbnNlcnRpbmcoU3RyaW5nVmll
dyBvcmlnaW5hbFN0cmluZywgU3RyaW5nVmlldyBzdHJpbmcKIAogdXNpbmcgV1RGOjpJbmRlbnRh
dGlvbjsKIHVzaW5nIFdURjo6SW5kZW50YXRpb25TY29wZTsKK3VzaW5nIFdURjo6bWFrZUF0b21T
dHJpbmc7CiB1c2luZyBXVEY6Om1ha2VTdHJpbmc7CiB1c2luZyBXVEY6Om1ha2VTdHJpbmdCeUlu
c2VydGluZzsKIHVzaW5nIFdURjo6cGFkOwogdXNpbmcgV1RGOjpsb3dlcmNhc2U7CiB1c2luZyBX
VEY6OnRyeU1ha2VTdHJpbmc7Cit1c2luZyBXVEY6OnRyeU1ha2VBdG9tU3RyaW5nOwogdXNpbmcg
V1RGOjp1cHBlcmNhc2U7CiAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4
IGY2YWE4YTc3ODk5YWVjZGVkNzVjODNjMzQ4YjE1YWViNGE4MTljOGQuLjc1ZTNlMDlkNDQ3YmFj
N2I1ZmYzYjNlOTAwZjkxMDI0YjZkMjc0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMjIwMCw3ICsyMjAwLDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NDaGFyYWN0ZXIoQXRvbUhUTUxUb2tlbiYmIHRva2VuKQogLy8g
RnJvbSB0aGUgc3RyaW5nIDQwODk5NjEwMTAsIGNyZWF0ZXMgYSBsaW5rIG9mIHRoZSBmb3JtIDxh
IGhyZWY9InRlbDo0MDg5OTYxMDEwIj40MDg5OTYxMDEwPC9hPiBhbmQgaW5zZXJ0cyBpdC4KIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjppbnNlcnRQaG9uZU51bWJlckxpbmsoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgQXR0cmlidXRlIGF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCBt
YWtlU3RyaW5nKCJ0ZWw6Il9zLCBzdHJpbmcpKTsKKyAgICBBdHRyaWJ1dGUgYXR0cmlidXRlKEhU
TUxOYW1lczo6aHJlZkF0dHIsIG1ha2VBdG9tU3RyaW5nKCJ0ZWw6Il9zLCBzdHJpbmcpKTsKIAog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGFUYWdMb2NhbE5hbWUgPSBhVGFnLT5sb2NhbE5hbWUoKTsK
ICAgICBBdG9tSFRNTFRva2VuIGFTdGFydFRva2VuKEhUTUxUb2tlbjo6U3RhcnRUYWcsIGFUYWdM
b2NhbE5hbWUsIHsgV1RGTW92ZShhdHRyaWJ1dGUpIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUu
Y3BwCmluZGV4IDQwMmY0ZmFhYmIzNjQzNDZjYjljYTczZmU5MzEzNGIxZmRmZDdkNzIuLjlkNTlh
ZGVhNzljODM3NDA3MjRlN2NkNzhmMjY1MmZiZmI3NDkwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
VHJlZS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBBdG9tU3RyaW5nIEZyYW1lVHJlZTo6Z2VuZXJh
dGVVbmlxdWVOYW1lKCkgY29uc3QKICAgICBpZiAoJnRvcC50cmVlKCkgIT0gdGhpcykKICAgICAg
ICAgcmV0dXJuIHRvcC50cmVlKCkuZ2VuZXJhdGVVbmlxdWVOYW1lKCk7CiAKLSAgICByZXR1cm4g
bWFrZVN0cmluZygiPCEtLWZyYW1lIiwgKyttX2ZyYW1lSURHZW5lcmF0b3IsICItLT4iKTsKKyAg
ICByZXR1cm4gbWFrZUF0b21TdHJpbmcoIjwhLS1mcmFtZSIsICsrbV9mcmFtZUlER2VuZXJhdG9y
LCAiLS0+Iik7CiB9CiAKIHN0YXRpYyBib29sIGluU2NvcGUoRnJhbWUmIGZyYW1lLCBUcmVlU2Nv
cGUmIHNjb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKaW5kZXggYjU2OGU2
MjJkMjMwZjY3MzQ0YThkZGU0MmJmNWVkMjAxZWY0ZTcwZC4uYjgxM2ZiOGUzNTI3NGZjMjM3ZmJm
NWNjMjU3ZjBjOWVlYTIxNDcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNs
dWRlICJTVkdMZW5ndGhDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdQYXJzaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAt
MjcxLDkgKzI3Miw3IEBAIFN0cmluZyBTVkdMZW5ndGhWYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNv
bnN0CiAKIEF0b21TdHJpbmcgU1ZHTGVuZ3RoVmFsdWU6OnZhbHVlQXNBdG9tU3RyaW5nKCkgY29u
c3QKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQobV92
YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGxlbmd0aFR5cGVUb1N0cmluZyhtX2xlbmd0aFR5cGUpKTsK
LSAgICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKKyAgICByZXR1cm4gbWFrZUF0b21T
dHJpbmcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGxlbmd0aFR5cGVUb1N0cmluZyhtX2xlbmd0
aFR5cGUpKTsKIH0KIAogRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR0xlbmd0aFZhbHVlOjp2YWx1ZUZv
ckJpbmRpbmdzKGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGNvbnRleHQpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457837</attachid>
            <date>2022-04-18 16:37:07 -0700</date>
            <delta_ts>2022-04-18 16:37:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418163705.patch</filename>
            <type>text/plain</type>
            <size>9082</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjc5MTIzNTc3MjhjZTdmNGU3
OWMxMjgwY2M0NDVjZmM1NTE4MjNiLi43ODQ4MjIzMDhiODkxMDdhMzhiMTU4NzJmOGUzNDg2YmI5
MTY3YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSBsZXNzIGFuZCBtb3JlIFNvcnRlZEFy
cmF5TWFwIC8gU29ydGVkQXJyYXlTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaAppbmRleCAyOWU3MDhlZjI2NWQxYTYwMjc5NWMyN2ViNDRiYzliZDFiZTJhOGY3Li5iZmM1
ZmRhN2Q5ZDUxYjc3MjhlMjk0OTUxZjY0NzljMGQ2OWRkMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC00MzEsMjAgKzQzMSwxNCBAQCBpbmxpbmUgdm9pZCBz
dHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRlciBh
ZGFwdGVyLCBBZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlw
ZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFk
YXB0ZXJzKQorUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJz
SW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgU3RyaW5n
VHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQogewot
ICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCkpOwotICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90Pihh
ZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7Ci0gICAgaWYgKHN1bS5oYXNP
dmVyZmxvd2VkKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHN1bTsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKLSAg
ICBpZiAoYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLikpIHsKKyAgICBpZiAoYXJlQWxsQWRh
cHRlcnM4Qml0KSB7CiAgICAgICAgIExDaGFyKiBidWZmZXI7CiAgICAgICAgIFJlZlB0cjxTdHJp
bmdJbXBsPiByZXN1bHRJbXBsID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChs
ZW5ndGgsIGJ1ZmZlcik7CiAgICAgICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGlm
IChidWZmZXIpCiAgICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZl
ciwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOwpAQCAtNDU1LDcgKzQ0OSw3IEBAIFN0cmluZyB0cnlN
YWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5
cGVBZGFwdGVycyAuCiAgICAgVUNoYXIqIGJ1ZmZlcjsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4g
cmVzdWx0SW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBi
dWZmZXIpOwogICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChidWZmZXIpCiAgICAgICAgIHN0cmlu
Z1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CkBA
IC00NjMsNiArNDU3LDE4IEBAIFN0cmluZyB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmlu
Z1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuCiAgICAgcmV0dXJuIHJl
c3VsdEltcGw7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBl
bmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+CitTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFw
dGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLi4uYWRh
cHRlcnMpCit7CisgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgYXV0byBzdW0gPSBjaGVja2VkU3Vt
PGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKKyAgICBp
ZiAoc3VtLmhhc092ZXJmbG93ZWQoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
Ym9vbCBhcmVBbGxBZGFwdGVyczhCaXQgPSBhcmU4Qml0KGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsK
KyAgICByZXR1cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChzdW0sIGFk
YXB0ZXIsIGFkYXB0ZXJzLi4uKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlw
ZXM+CiBTdHJpbmcgdHJ5TWFrZVN0cmluZyhTdHJpbmdUeXBlcyAuLi5zdHJpbmdzKQogewpAQCAt
NDc4LDYgKzQ4NCw0NyBAQCBTdHJpbmcgbWFrZVN0cmluZyhTdHJpbmdUeXBlcy4uLiBzdHJpbmdz
KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVB
ZGFwdGVyLCB0eXBlbmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+CitBdG9tU3RyaW5nIHRyeU1h
a2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmlu
Z1R5cGVBZGFwdGVycyAuLi5hZGFwdGVycykKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6
TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKKyAgICBh
dXRvIHN1bSA9IGNoZWNrZWRTdW08aW50MzJfdD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMu
bGVuZ3RoKCkuLi4pOworICAgIGlmIChzdW0uaGFzT3ZlcmZsb3dlZCgpKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdW07CisgICAgQVNTRVJUKGxl
bmd0aCA8PSBTdHJpbmc6Ok1heExlbmd0aCk7CisKKyAgICBib29sIGFyZUFsbEFkYXB0ZXJzOEJp
dCA9IGFyZThCaXQoYWRhcHRlciwgYWRhcHRlcnMuLi4pOworICAgIGNvbnN0ZXhwciBzaXplX3Qg
bWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlID0gNjQ7CisgICAgaWYgKGxlbmd0aCA8IG1heExl
bmd0aFRvVXNlU3RhY2tWYXJpYWJsZSkgeworICAgICAgICBpZiAoYXJlQWxsQWRhcHRlcnM4Qml0
KSB7CisgICAgICAgICAgICBMQ2hhciBidWZmZXJbbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxl
XTsKKyAgICAgICAgICAgIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFw
dGVyLCBhZGFwdGVycy4uLik7CisgICAgICAgICAgICByZXR1cm4gQXRvbVN0cmluZyB7IGJ1ZmZl
ciwgbGVuZ3RoIH07CisgICAgICAgIH0KKyAgICAgICAgVUNoYXIgYnVmZmVyW21heExlbmd0aFRv
VXNlU3RhY2tWYXJpYWJsZV07CisgICAgICAgIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3Io
YnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CisgICAgICAgIHJldHVybiBBdG9tU3RyaW5n
IHsgYnVmZmVyLCBsZW5ndGggfTsKKyAgICB9CisgICAgcmV0dXJuIHRyeU1ha2VTdHJpbmdJbXBs
RnJvbUFkYXB0ZXJzSW50ZXJuYWwobGVuZ3RoLCBhcmVBbGxBZGFwdGVyczhCaXQsIGFkYXB0ZXIs
IGFkYXB0ZXJzLi4uKS5nZXQoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlw
ZXM+CitBdG9tU3RyaW5nIHRyeU1ha2VBdG9tU3RyaW5nKFN0cmluZ1R5cGVzIC4uLnN0cmluZ3Mp
Cit7CisgICAgcmV0dXJuIHRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVB
ZGFwdGVyPFN0cmluZ1R5cGVzPihzdHJpbmdzKS4uLik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
Li4uIFN0cmluZ1R5cGVzPgorQXRvbVN0cmluZyBtYWtlQXRvbVN0cmluZyhTdHJpbmdUeXBlcy4u
LiBzdHJpbmdzKQoreworICAgIEF0b21TdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZUF0b21TdHJpbmco
c3RyaW5ncy4uLik7CisgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKKyAgICAgICAgQ1JBU0goKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiBpbmxpbmUgU3RyaW5nIG1ha2VTdHJpbmdCeUluc2Vy
dGluZyhTdHJpbmdWaWV3IG9yaWdpbmFsU3RyaW5nLCBTdHJpbmdWaWV3IHN0cmluZ1RvSW5zZXJ0
LCB1bnNpZ25lZCBwb3NpdGlvbikKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZyhvcmlnaW5hbFN0
cmluZy5sZWZ0KHBvc2l0aW9uKSwgc3RyaW5nVG9JbnNlcnQsIG9yaWdpbmFsU3RyaW5nLnN1YnN0
cmluZyhwb3NpdGlvbikpOwpAQCAtNDg3LDExICs1MzQsMTMgQEAgaW5saW5lIFN0cmluZyBtYWtl
U3RyaW5nQnlJbnNlcnRpbmcoU3RyaW5nVmlldyBvcmlnaW5hbFN0cmluZywgU3RyaW5nVmlldyBz
dHJpbmcKIAogdXNpbmcgV1RGOjpJbmRlbnRhdGlvbjsKIHVzaW5nIFdURjo6SW5kZW50YXRpb25T
Y29wZTsKK3VzaW5nIFdURjo6bWFrZUF0b21TdHJpbmc7CiB1c2luZyBXVEY6Om1ha2VTdHJpbmc7
CiB1c2luZyBXVEY6Om1ha2VTdHJpbmdCeUluc2VydGluZzsKIHVzaW5nIFdURjo6cGFkOwogdXNp
bmcgV1RGOjpsb3dlcmNhc2U7CiB1c2luZyBXVEY6OnRyeU1ha2VTdHJpbmc7Cit1c2luZyBXVEY6
OnRyeU1ha2VBdG9tU3RyaW5nOwogdXNpbmcgV1RGOjp1cHBlcmNhc2U7CiAKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGY2YWE4YTc3ODk5YWVjZGVkNzVjODNjMzQ4YjE1
YWViNGE4MTljOGQuLjc1ZTNlMDlkNDQ3YmFjN2I1ZmYzYjNlOTAwZjkxMDI0YjZkMjc0YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAt
MjIwMCw3ICsyMjAwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDaGFyYWN0ZXIo
QXRvbUhUTUxUb2tlbiYmIHRva2VuKQogLy8gRnJvbSB0aGUgc3RyaW5nIDQwODk5NjEwMTAsIGNy
ZWF0ZXMgYSBsaW5rIG9mIHRoZSBmb3JtIDxhIGhyZWY9InRlbDo0MDg5OTYxMDEwIj40MDg5OTYx
MDEwPC9hPiBhbmQgaW5zZXJ0cyBpdC4KIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjppbnNlcnRQaG9u
ZU51bWJlckxpbmsoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgQXR0cmlidXRlIGF0dHJp
YnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCBtYWtlU3RyaW5nKCJ0ZWw6Il9zLCBzdHJpbmcpKTsK
KyAgICBBdHRyaWJ1dGUgYXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIG1ha2VBdG9tU3Ry
aW5nKCJ0ZWw6Il9zLCBzdHJpbmcpKTsKIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIGFUYWdMb2Nh
bE5hbWUgPSBhVGFnLT5sb2NhbE5hbWUoKTsKICAgICBBdG9tSFRNTFRva2VuIGFTdGFydFRva2Vu
KEhUTUxUb2tlbjo6U3RhcnRUYWcsIGFUYWdMb2NhbE5hbWUsIHsgV1RGTW92ZShhdHRyaWJ1dGUp
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IDQwMmY0ZmFhYmIzNjQzNDZjYjlj
YTczZmU5MzEzNGIxZmRmZDdkNzIuLjlkNTlhZGVhNzljODM3NDA3MjRlN2NkNzhmMjY1MmZiZmI3
NDkwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBB
dG9tU3RyaW5nIEZyYW1lVHJlZTo6Z2VuZXJhdGVVbmlxdWVOYW1lKCkgY29uc3QKICAgICBpZiAo
JnRvcC50cmVlKCkgIT0gdGhpcykKICAgICAgICAgcmV0dXJuIHRvcC50cmVlKCkuZ2VuZXJhdGVV
bmlxdWVOYW1lKCk7CiAKLSAgICByZXR1cm4gbWFrZVN0cmluZygiPCEtLWZyYW1lIiwgKyttX2Zy
YW1lSURHZW5lcmF0b3IsICItLT4iKTsKKyAgICByZXR1cm4gbWFrZUF0b21TdHJpbmcoIjwhLS1m
cmFtZSIsICsrbV9mcmFtZUlER2VuZXJhdG9yLCAiLS0+Iik7CiB9CiAKIHN0YXRpYyBib29sIGlu
U2NvcGUoRnJhbWUmIGZyYW1lLCBUcmVlU2NvcGUmIHNjb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGhWYWx1ZS5jcHAKaW5kZXggYjU2OGU2MjJkMjMwZjY3MzQ0YThkZGU0MmJmNWVkMjAxZWY0
ZTcwZC4uYjgxM2ZiOGUzNTI3NGZjMjM3ZmJmNWNjMjU3ZjBjOWVlYTIxNDcwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhDb250ZXh0LmgiCiAjaW5j
bHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdQYXJzaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtMjcxLDkgKzI3Miw3IEBAIFN0cmluZyBTVkdMZW5n
dGhWYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAKIEF0b21TdHJpbmcgU1ZHTGVuZ3RoVmFs
dWU6OnZhbHVlQXNBdG9tU3RyaW5nKCkgY29uc3QKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGxlbmd0aFR5
cGVUb1N0cmluZyhtX2xlbmd0aFR5cGUpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJp
bmcoKTsKKyAgICByZXR1cm4gbWFrZUF0b21TdHJpbmcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMs
IGxlbmd0aFR5cGVUb1N0cmluZyhtX2xlbmd0aFR5cGUpKTsKIH0KIAogRXhjZXB0aW9uT3I8Zmxv
YXQ+IFNWR0xlbmd0aFZhbHVlOjp2YWx1ZUZvckJpbmRpbmdzKGNvbnN0IFNWR0xlbmd0aENvbnRl
eHQmIGNvbnRleHQpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457838</attachid>
            <date>2022-04-18 16:37:44 -0700</date>
            <delta_ts>2022-04-18 16:55:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418163743.patch</filename>
            <type>text/plain</type>
            <size>9102</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjc5MTIzNTc3MjhjZTdmNGU3
OWMxMjgwY2M0NDVjZmM1NTE4MjNiLi43ODQ4MjIzMDhiODkxMDdhMzhiMTU4NzJmOGUzNDg2YmI5
MTY3YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSBsZXNzIGFuZCBtb3JlIFNvcnRlZEFy
cmF5TWFwIC8gU29ydGVkQXJyYXlTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaAppbmRleCAyOWU3MDhlZjI2NWQxYTYwMjc5NWMyN2ViNDRiYzliZDFiZTJhOGY3Li43ZGI1
NTU1NWQ2YWEyOGVmNjQyMGUxYWI4ZTI0OTdhMGUwNzQ4MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC00MzEsMjAgKzQzMSwxNCBAQCBpbmxpbmUgdm9pZCBz
dHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRlciBh
ZGFwdGVyLCBBZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlw
ZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFk
YXB0ZXJzKQorUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJz
SW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgU3RyaW5n
VHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQogewot
ICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCkpOwotICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90Pihh
ZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7Ci0gICAgaWYgKHN1bS5oYXNP
dmVyZmxvd2VkKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHN1bTsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKLSAg
ICBpZiAoYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLikpIHsKKyAgICBpZiAoYXJlQWxsQWRh
cHRlcnM4Qml0KSB7CiAgICAgICAgIExDaGFyKiBidWZmZXI7CiAgICAgICAgIFJlZlB0cjxTdHJp
bmdJbXBsPiByZXN1bHRJbXBsID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChs
ZW5ndGgsIGJ1ZmZlcik7CiAgICAgICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGlm
IChidWZmZXIpCiAgICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZl
ciwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOwpAQCAtNDU1LDcgKzQ0OSw3IEBAIFN0cmluZyB0cnlN
YWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5
cGVBZGFwdGVycyAuCiAgICAgVUNoYXIqIGJ1ZmZlcjsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4g
cmVzdWx0SW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBi
dWZmZXIpOwogICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChidWZmZXIpCiAgICAgICAgIHN0cmlu
Z1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CkBA
IC00NjMsNiArNDU3LDE4IEBAIFN0cmluZyB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmlu
Z1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuCiAgICAgcmV0dXJuIHJl
c3VsdEltcGw7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBl
bmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+CitTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFw
dGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLi4uYWRh
cHRlcnMpCit7CisgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgYXV0byBzdW0gPSBjaGVja2VkU3Vt
PGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKKyAgICBp
ZiAoc3VtLmhhc092ZXJmbG93ZWQoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
Ym9vbCBhcmVBbGxBZGFwdGVyczhCaXQgPSBhcmU4Qml0KGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsK
KyAgICByZXR1cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChzdW0sIGFy
ZUFsbEFkYXB0ZXJzOEJpdCwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOworfQorCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KIFN0cmluZyB0cnlNYWtlU3RyaW5nKFN0cmluZ1R5cGVz
IC4uLnN0cmluZ3MpCiB7CkBAIC00NzgsNiArNDg0LDQ3IEBAIFN0cmluZyBtYWtlU3RyaW5nKFN0
cmluZ1R5cGVzLi4uIHN0cmluZ3MpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVy
cz4KK0F0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFk
YXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQoreworICAgIHN0
YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCkpOworICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90PihhZGFwdGVy
Lmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7CisgICAgaWYgKHN1bS5oYXNPdmVyZmxv
d2VkKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9
IHN1bTsKKyAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKKworICAgIGJv
b2wgYXJlQWxsQWRhcHRlcnM4Qml0ID0gYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLik7Cisg
ICAgY29uc3RleHByIHNpemVfdCBtYXhMZW5ndGhUb1VzZVN0YWNrVmFyaWFibGUgPSA2NDsKKyAg
ICBpZiAobGVuZ3RoIDwgbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlKSB7CisgICAgICAgIGlm
IChhcmVBbGxBZGFwdGVyczhCaXQpIHsKKyAgICAgICAgICAgIExDaGFyIGJ1ZmZlclttYXhMZW5n
dGhUb1VzZVN0YWNrVmFyaWFibGVdOworICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1
bXVsYXRvcihidWZmZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAgICAgICAgIHJldHVy
biBBdG9tU3RyaW5nIHsgYnVmZmVyLCBsZW5ndGggfTsKKyAgICAgICAgfQorICAgICAgICBVQ2hh
ciBidWZmZXJbbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlXTsKKyAgICAgICAgc3RyaW5nVHlw
ZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZmZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAg
ICAgcmV0dXJuIEF0b21TdHJpbmcgeyBidWZmZXIsIGxlbmd0aCB9OworICAgIH0KKyAgICByZXR1
cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChsZW5ndGgsIGFyZUFsbEFk
YXB0ZXJzOEJpdCwgYWRhcHRlciwgYWRhcHRlcnMuLi4pLmdldCgpOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KK0F0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmcoU3Ry
aW5nVHlwZXMgLi4uc3RyaW5ncykKK3sKKyAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9t
QWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitBdG9tU3RyaW5nIG1ha2VBdG9t
U3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCit7CisgICAgQXRvbVN0cmluZyByZXN1bHQg
PSB0cnlNYWtlQXRvbVN0cmluZyhzdHJpbmdzLi4uKTsKKyAgICBpZiAocmVzdWx0LmlzTnVsbCgp
KQorICAgICAgICBDUkFTSCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGlubGluZSBTdHJp
bmcgbWFrZVN0cmluZ0J5SW5zZXJ0aW5nKFN0cmluZ1ZpZXcgb3JpZ2luYWxTdHJpbmcsIFN0cmlu
Z1ZpZXcgc3RyaW5nVG9JbnNlcnQsIHVuc2lnbmVkIHBvc2l0aW9uKQogewogICAgIHJldHVybiBt
YWtlU3RyaW5nKG9yaWdpbmFsU3RyaW5nLmxlZnQocG9zaXRpb24pLCBzdHJpbmdUb0luc2VydCwg
b3JpZ2luYWxTdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uKSk7CkBAIC00ODcsMTEgKzUzNCwxMyBA
QCBpbmxpbmUgU3RyaW5nIG1ha2VTdHJpbmdCeUluc2VydGluZyhTdHJpbmdWaWV3IG9yaWdpbmFs
U3RyaW5nLCBTdHJpbmdWaWV3IHN0cmluZwogCiB1c2luZyBXVEY6OkluZGVudGF0aW9uOwogdXNp
bmcgV1RGOjpJbmRlbnRhdGlvblNjb3BlOwordXNpbmcgV1RGOjptYWtlQXRvbVN0cmluZzsKIHVz
aW5nIFdURjo6bWFrZVN0cmluZzsKIHVzaW5nIFdURjo6bWFrZVN0cmluZ0J5SW5zZXJ0aW5nOwog
dXNpbmcgV1RGOjpwYWQ7CiB1c2luZyBXVEY6Omxvd2VyY2FzZTsKIHVzaW5nIFdURjo6dHJ5TWFr
ZVN0cmluZzsKK3VzaW5nIFdURjo6dHJ5TWFrZUF0b21TdHJpbmc7CiB1c2luZyBXVEY6OnVwcGVy
Y2FzZTsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggZjZhYThhNzc4
OTlhZWNkZWQ3NWM4M2MzNDhiMTVhZWI0YTgxOWM4ZC4uNzVlM2UwOWQ0NDdiYWM3YjVmZjNiM2U5
MDBmOTEwMjRiNmQyNzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuY3BwCkBAIC0yMjAwLDcgKzIyMDAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0NoYXJhY3RlcihBdG9tSFRNTFRva2VuJiYgdG9rZW4pCiAvLyBGcm9tIHRoZSBz
dHJpbmcgNDA4OTk2MTAxMCwgY3JlYXRlcyBhIGxpbmsgb2YgdGhlIGZvcm0gPGEgaHJlZj0idGVs
OjQwODk5NjEwMTAiPjQwODk5NjEwMTA8L2E+IGFuZCBpbnNlcnRzIGl0Lgogdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6Omluc2VydFBob25lTnVtYmVyTGluayhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBBdHRyaWJ1dGUgYXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIG1ha2VTdHJpbmco
InRlbDoiX3MsIHN0cmluZykpOworICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUoSFRNTE5hbWVzOjpo
cmVmQXR0ciwgbWFrZUF0b21TdHJpbmcoInRlbDoiX3MsIHN0cmluZykpOwogCiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgYVRhZ0xvY2FsTmFtZSA9IGFUYWctPmxvY2FsTmFtZSgpOwogICAgIEF0b21I
VE1MVG9rZW4gYVN0YXJ0VG9rZW4oSFRNTFRva2VuOjpTdGFydFRhZywgYVRhZ0xvY2FsTmFtZSwg
eyBXVEZNb3ZlKGF0dHJpYnV0ZSkgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXgg
NDAyZjRmYWFiYjM2NDM0NmNiOWNhNzNmZTkzMTM0YjFmZGZkN2Q3Mi4uOWQ1OWFkZWE3OWM4Mzc0
MDcyNGU3Y2Q3OGYyNjUyZmJmYjc0OTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApA
QCAtMTE3LDcgKzExNyw3IEBAIEF0b21TdHJpbmcgRnJhbWVUcmVlOjpnZW5lcmF0ZVVuaXF1ZU5h
bWUoKSBjb25zdAogICAgIGlmICgmdG9wLnRyZWUoKSAhPSB0aGlzKQogICAgICAgICByZXR1cm4g
dG9wLnRyZWUoKS5nZW5lcmF0ZVVuaXF1ZU5hbWUoKTsKIAotICAgIHJldHVybiBtYWtlU3RyaW5n
KCI8IS0tZnJhbWUiLCArK21fZnJhbWVJREdlbmVyYXRvciwgIi0tPiIpOworICAgIHJldHVybiBt
YWtlQXRvbVN0cmluZygiPCEtLWZyYW1lIiwgKyttX2ZyYW1lSURHZW5lcmF0b3IsICItLT4iKTsK
IH0KIAogc3RhdGljIGJvb2wgaW5TY29wZShGcmFtZSYgZnJhbWUsIFRyZWVTY29wZSYgc2NvcGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAppbmRleCBiNTY4ZTYyMmQyMzBmNjcz
NDRhOGRkZTQyYmY1ZWQyMDFlZjRlNzBkLi5iODEzZmI4ZTM1Mjc0ZmMyMzdmYmY1Y2MyNTdmMGM5
ZWVhMjE0NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIlNWR0xl
bmd0aENvbnRleHQuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1BhcnNpbmdC
dWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC0yNzEsOSArMjcy
LDcgQEAgU3RyaW5nIFNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKIAogQXRv
bVN0cmluZyBTVkdMZW5ndGhWYWx1ZTo6dmFsdWVBc0F0b21TdHJpbmcoKSBjb25zdAogewotICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cywgbGVuZ3RoVHlwZVRvU3RyaW5nKG1fbGVuZ3RoVHlwZSkpOwotICAgIHJldHVy
biBidWlsZGVyLnRvQXRvbVN0cmluZygpOworICAgIHJldHVybiBtYWtlQXRvbVN0cmluZyhtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cywgbGVuZ3RoVHlwZVRvU3RyaW5nKG1fbGVuZ3RoVHlwZSkpOwog
fQogCiBFeGNlcHRpb25PcjxmbG9hdD4gU1ZHTGVuZ3RoVmFsdWU6OnZhbHVlRm9yQmluZGluZ3Mo
Y29uc3QgU1ZHTGVuZ3RoQ29udGV4dCYgY29udGV4dCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457841</attachid>
            <date>2022-04-18 16:55:32 -0700</date>
            <delta_ts>2022-04-19 10:59:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239464-20220418165531.patch</filename>
            <type>text/plain</type>
            <size>8822</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YjZkODU5OTk3NmQ4M2EwMjk2ZDkw
YmYzNzc5MTAxZmE3NGVjMGIuLjc3MmExOWM2NjEyZmZlNjg2YzE5OGJkMjNjMDQwZjRiZjNiZTgx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJpbmcoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIG1ha2VB
dG9tU3RyaW5nKCkgd2hpY2ggaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gb2YgbWFrZVN0cmluZygp
IHdoZW4gdGhlIGNhbGxlciBrbm93cyBpdCB3YW50cyBhbgorICAgICAgICBBdG9tU3RyaW5nLiBJ
dCBtYXkgYXZvaWQgYSBTdHJpbmdJbXBsIGFsbG9jYXRpb24gd2hlbiB0aGUgc3RyaW5nIGlzIGFs
cmVhZHkgaW4gdGhlIEF0b21TdHJpbmdUYWJsZS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VBdG9tU3RyaW5nRnJvbUFkYXB0
ZXJzKToKKyAgICAgICAgKFdURjo6dHJ5TWFrZUF0b21TdHJpbmcpOgorICAgICAgICAoV1RGOjpt
YWtlQXRvbVN0cmluZyk6CisKIDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQt
bGluZSBhbmQgcHJvamVjdCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjc5MTIzNTc3MjhjZTdmNGU3
OWMxMjgwY2M0NDVjZmM1NTE4MjNiLi43ODQ4MjIzMDhiODkxMDdhMzhiMTU4NzJmOGUzNDg2YmI5
MTY3YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgbWFrZUF0b21TdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgbWFrZUF0b21TdHJpbmcoKSBpbiBhIGZldyBwbGFjZXMgd2hlcmUgaXQgaXMgdXNlZnVsLgor
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aW5zZXJ0UGhvbmVOdW1iZXJMaW5rKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmdlbmVy
YXRlVW5pcXVlTmFtZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZyBjb25z
dCk6CisKIDIwMjItMDQtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSBsZXNzIGFuZCBtb3JlIFNvcnRlZEFy
cmF5TWFwIC8gU29ydGVkQXJyYXlTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaAppbmRleCAyOWU3MDhlZjI2NWQxYTYwMjc5NWMyN2ViNDRiYzliZDFiZTJhOGY3Li43ZGI1
NTU1NWQ2YWEyOGVmNjQyMGUxYWI4ZTI0OTdhMGUwNzQ4MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZS5oCkBAIC00MzEsMjAgKzQzMSwxNCBAQCBpbmxpbmUgdm9pZCBz
dHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKFJlc3VsdFR5cGUqIHJlc3VsdCwgQWRhcHRlciBh
ZGFwdGVyLCBBZAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlw
ZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgotU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRh
cHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFk
YXB0ZXJzKQorUmVmUHRyPFN0cmluZ0ltcGw+IHRyeU1ha2VTdHJpbmdJbXBsRnJvbUFkYXB0ZXJz
SW50ZXJuYWwodW5zaWduZWQgbGVuZ3RoLCBib29sIGFyZUFsbEFkYXB0ZXJzOEJpdCwgU3RyaW5n
VHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQogewot
ICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCkpOwotICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90Pihh
ZGFwdGVyLmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7Ci0gICAgaWYgKHN1bS5oYXNP
dmVyZmxvd2VkKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHN1bTsKICAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKLSAg
ICBpZiAoYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLikpIHsKKyAgICBpZiAoYXJlQWxsQWRh
cHRlcnM4Qml0KSB7CiAgICAgICAgIExDaGFyKiBidWZmZXI7CiAgICAgICAgIFJlZlB0cjxTdHJp
bmdJbXBsPiByZXN1bHRJbXBsID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChs
ZW5ndGgsIGJ1ZmZlcik7CiAgICAgICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGlm
IChidWZmZXIpCiAgICAgICAgICAgICBzdHJpbmdUeXBlQWRhcHRlckFjY3VtdWxhdG9yKGJ1ZmZl
ciwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOwpAQCAtNDU1LDcgKzQ0OSw3IEBAIFN0cmluZyB0cnlN
YWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmluZ1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5
cGVBZGFwdGVycyAuCiAgICAgVUNoYXIqIGJ1ZmZlcjsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4g
cmVzdWx0SW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBi
dWZmZXIpOwogICAgIGlmICghcmVzdWx0SW1wbCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChidWZmZXIpCiAgICAgICAgIHN0cmlu
Z1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoYnVmZmVyLCBhZGFwdGVyLCBhZGFwdGVycy4uLik7CkBA
IC00NjMsNiArNDU3LDE4IEBAIFN0cmluZyB0cnlNYWtlU3RyaW5nRnJvbUFkYXB0ZXJzKFN0cmlu
Z1R5cGVBZGFwdGVyIGFkYXB0ZXIsIFN0cmluZ1R5cGVBZGFwdGVycyAuCiAgICAgcmV0dXJuIHJl
c3VsdEltcGw7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGVBZGFwdGVyLCB0eXBl
bmFtZS4uLiBTdHJpbmdUeXBlQWRhcHRlcnM+CitTdHJpbmcgdHJ5TWFrZVN0cmluZ0Zyb21BZGFw
dGVycyhTdHJpbmdUeXBlQWRhcHRlciBhZGFwdGVyLCBTdHJpbmdUeXBlQWRhcHRlcnMgLi4uYWRh
cHRlcnMpCit7CisgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgYXV0byBzdW0gPSBjaGVja2VkU3Vt
PGludDMyX3Q+KGFkYXB0ZXIubGVuZ3RoKCksIGFkYXB0ZXJzLmxlbmd0aCgpLi4uKTsKKyAgICBp
ZiAoc3VtLmhhc092ZXJmbG93ZWQoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
Ym9vbCBhcmVBbGxBZGFwdGVyczhCaXQgPSBhcmU4Qml0KGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsK
KyAgICByZXR1cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChzdW0sIGFy
ZUFsbEFkYXB0ZXJzOEJpdCwgYWRhcHRlciwgYWRhcHRlcnMuLi4pOworfQorCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KIFN0cmluZyB0cnlNYWtlU3RyaW5nKFN0cmluZ1R5cGVz
IC4uLnN0cmluZ3MpCiB7CkBAIC00NzgsNiArNDg0LDQ3IEBAIFN0cmluZyBtYWtlU3RyaW5nKFN0
cmluZ1R5cGVzLi4uIHN0cmluZ3MpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgU3RyaW5nVHlwZUFkYXB0ZXIsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVBZGFwdGVy
cz4KK0F0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFk
YXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQoreworICAgIHN0
YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCkpOworICAgIGF1dG8gc3VtID0gY2hlY2tlZFN1bTxpbnQzMl90PihhZGFwdGVy
Lmxlbmd0aCgpLCBhZGFwdGVycy5sZW5ndGgoKS4uLik7CisgICAgaWYgKHN1bS5oYXNPdmVyZmxv
d2VkKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9
IHN1bTsKKyAgICBBU1NFUlQobGVuZ3RoIDw9IFN0cmluZzo6TWF4TGVuZ3RoKTsKKworICAgIGJv
b2wgYXJlQWxsQWRhcHRlcnM4Qml0ID0gYXJlOEJpdChhZGFwdGVyLCBhZGFwdGVycy4uLik7Cisg
ICAgY29uc3RleHByIHNpemVfdCBtYXhMZW5ndGhUb1VzZVN0YWNrVmFyaWFibGUgPSA2NDsKKyAg
ICBpZiAobGVuZ3RoIDwgbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlKSB7CisgICAgICAgIGlm
IChhcmVBbGxBZGFwdGVyczhCaXQpIHsKKyAgICAgICAgICAgIExDaGFyIGJ1ZmZlclttYXhMZW5n
dGhUb1VzZVN0YWNrVmFyaWFibGVdOworICAgICAgICAgICAgc3RyaW5nVHlwZUFkYXB0ZXJBY2N1
bXVsYXRvcihidWZmZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAgICAgICAgIHJldHVy
biBBdG9tU3RyaW5nIHsgYnVmZmVyLCBsZW5ndGggfTsKKyAgICAgICAgfQorICAgICAgICBVQ2hh
ciBidWZmZXJbbWF4TGVuZ3RoVG9Vc2VTdGFja1ZhcmlhYmxlXTsKKyAgICAgICAgc3RyaW5nVHlw
ZUFkYXB0ZXJBY2N1bXVsYXRvcihidWZmZXIsIGFkYXB0ZXIsIGFkYXB0ZXJzLi4uKTsKKyAgICAg
ICAgcmV0dXJuIEF0b21TdHJpbmcgeyBidWZmZXIsIGxlbmd0aCB9OworICAgIH0KKyAgICByZXR1
cm4gdHJ5TWFrZVN0cmluZ0ltcGxGcm9tQWRhcHRlcnNJbnRlcm5hbChsZW5ndGgsIGFyZUFsbEFk
YXB0ZXJzOEJpdCwgYWRhcHRlciwgYWRhcHRlcnMuLi4pLmdldCgpOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBTdHJpbmdUeXBlcz4KK0F0b21TdHJpbmcgdHJ5TWFrZUF0b21TdHJpbmcoU3Ry
aW5nVHlwZXMgLi4uc3RyaW5ncykKK3sKKyAgICByZXR1cm4gdHJ5TWFrZUF0b21TdHJpbmdGcm9t
QWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXI8U3RyaW5nVHlwZXM+KHN0cmluZ3MpLi4uKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitBdG9tU3RyaW5nIG1ha2VBdG9t
U3RyaW5nKFN0cmluZ1R5cGVzLi4uIHN0cmluZ3MpCit7CisgICAgQXRvbVN0cmluZyByZXN1bHQg
PSB0cnlNYWtlQXRvbVN0cmluZyhzdHJpbmdzLi4uKTsKKyAgICBpZiAocmVzdWx0LmlzTnVsbCgp
KQorICAgICAgICBDUkFTSCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGlubGluZSBTdHJp
bmcgbWFrZVN0cmluZ0J5SW5zZXJ0aW5nKFN0cmluZ1ZpZXcgb3JpZ2luYWxTdHJpbmcsIFN0cmlu
Z1ZpZXcgc3RyaW5nVG9JbnNlcnQsIHVuc2lnbmVkIHBvc2l0aW9uKQogewogICAgIHJldHVybiBt
YWtlU3RyaW5nKG9yaWdpbmFsU3RyaW5nLmxlZnQocG9zaXRpb24pLCBzdHJpbmdUb0luc2VydCwg
b3JpZ2luYWxTdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uKSk7CkBAIC00ODcsMTEgKzUzNCwxMyBA
QCBpbmxpbmUgU3RyaW5nIG1ha2VTdHJpbmdCeUluc2VydGluZyhTdHJpbmdWaWV3IG9yaWdpbmFs
U3RyaW5nLCBTdHJpbmdWaWV3IHN0cmluZwogCiB1c2luZyBXVEY6OkluZGVudGF0aW9uOwogdXNp
bmcgV1RGOjpJbmRlbnRhdGlvblNjb3BlOwordXNpbmcgV1RGOjptYWtlQXRvbVN0cmluZzsKIHVz
aW5nIFdURjo6bWFrZVN0cmluZzsKIHVzaW5nIFdURjo6bWFrZVN0cmluZ0J5SW5zZXJ0aW5nOwog
dXNpbmcgV1RGOjpwYWQ7CiB1c2luZyBXVEY6Omxvd2VyY2FzZTsKIHVzaW5nIFdURjo6dHJ5TWFr
ZVN0cmluZzsKK3VzaW5nIFdURjo6dHJ5TWFrZUF0b21TdHJpbmc7CiB1c2luZyBXVEY6OnVwcGVy
Y2FzZTsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggZjZhYThhNzc4
OTlhZWNkZWQ3NWM4M2MzNDhiMTVhZWI0YTgxOWM4ZC4uNzVlM2UwOWQ0NDdiYWM3YjVmZjNiM2U5
MDBmOTEwMjRiNmQyNzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuY3BwCkBAIC0yMjAwLDcgKzIyMDAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0NoYXJhY3RlcihBdG9tSFRNTFRva2VuJiYgdG9rZW4pCiAvLyBGcm9tIHRoZSBz
dHJpbmcgNDA4OTk2MTAxMCwgY3JlYXRlcyBhIGxpbmsgb2YgdGhlIGZvcm0gPGEgaHJlZj0idGVs
OjQwODk5NjEwMTAiPjQwODk5NjEwMTA8L2E+IGFuZCBpbnNlcnRzIGl0Lgogdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6Omluc2VydFBob25lTnVtYmVyTGluayhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBBdHRyaWJ1dGUgYXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIG1ha2VTdHJpbmco
InRlbDoiX3MsIHN0cmluZykpOworICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUoSFRNTE5hbWVzOjpo
cmVmQXR0ciwgbWFrZUF0b21TdHJpbmcoInRlbDoiX3MsIHN0cmluZykpOwogCiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgYVRhZ0xvY2FsTmFtZSA9IGFUYWctPmxvY2FsTmFtZSgpOwogICAgIEF0b21I
VE1MVG9rZW4gYVN0YXJ0VG9rZW4oSFRNTFRva2VuOjpTdGFydFRhZywgYVRhZ0xvY2FsTmFtZSwg
eyBXVEZNb3ZlKGF0dHJpYnV0ZSkgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXgg
NDAyZjRmYWFiYjM2NDM0NmNiOWNhNzNmZTkzMTM0YjFmZGZkN2Q3Mi4uOWQ1OWFkZWE3OWM4Mzc0
MDcyNGU3Y2Q3OGYyNjUyZmJmYjc0OTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApA
QCAtMTE3LDcgKzExNyw3IEBAIEF0b21TdHJpbmcgRnJhbWVUcmVlOjpnZW5lcmF0ZVVuaXF1ZU5h
bWUoKSBjb25zdAogICAgIGlmICgmdG9wLnRyZWUoKSAhPSB0aGlzKQogICAgICAgICByZXR1cm4g
dG9wLnRyZWUoKS5nZW5lcmF0ZVVuaXF1ZU5hbWUoKTsKIAotICAgIHJldHVybiBtYWtlU3RyaW5n
KCI8IS0tZnJhbWUiLCArK21fZnJhbWVJREdlbmVyYXRvciwgIi0tPiIpOworICAgIHJldHVybiBt
YWtlQXRvbVN0cmluZygiPCEtLWZyYW1lIiwgKyttX2ZyYW1lSURHZW5lcmF0b3IsICItLT4iKTsK
IH0KIAogc3RhdGljIGJvb2wgaW5TY29wZShGcmFtZSYgZnJhbWUsIFRyZWVTY29wZSYgc2NvcGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAppbmRleCBiNTY4ZTYyMmQyMzBmNjcz
NDRhOGRkZTQyYmY1ZWQyMDFlZjRlNzBkLi4zYmQ0Y2ExYjAwZDU4OWIzMTY3NDliZGQ1NTg4YWI4
NmViOTU0ZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKQEAgLTI3MSw5
ICsyNzEsNyBAQCBTdHJpbmcgU1ZHTGVuZ3RoVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAog
CiBBdG9tU3RyaW5nIFNWR0xlbmd0aFZhbHVlOjp2YWx1ZUFzQXRvbVN0cmluZygpIGNvbnN0CiB7
Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKG1fdmFsdWVJ
blNwZWNpZmllZFVuaXRzLCBsZW5ndGhUeXBlVG9TdHJpbmcobV9sZW5ndGhUeXBlKSk7Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7CisgICAgcmV0dXJuIG1ha2VBdG9tU3RyaW5n
KG1fdmFsdWVJblNwZWNpZmllZFVuaXRzLCBsZW5ndGhUeXBlVG9TdHJpbmcobV9sZW5ndGhUeXBl
KSk7CiB9CiAKIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdMZW5ndGhWYWx1ZTo6dmFsdWVGb3JCaW5k
aW5ncyhjb25zdCBTVkdMZW5ndGhDb250ZXh0JiBjb250ZXh0KSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>