<?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>227740</bug_id>
          
          <creation_ts>2021-07-07 03:07:59 -0700</creation_ts>
          <short_desc>Allow custom IPC::Attachment  messaging in ConnectionUnix.cpp</short_desc>
          <delta_ts>2022-05-05 02:57:39 -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>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Imanol Fernandez">ifernandez</reporter>
          <assigned_to name="Imanol Fernandez">ifernandez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775234</commentid>
    <comment_count>0</comment_count>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-07-07 03:07:59 -0700</bug_when>
    <thetext>We need to pass AHardwareBuffer instance from the UIProcess to the WebProcess, which requires calling functions such as AHardwareBuffer_sendHandleToUnixSocket(). By adding custom IPC::Attachmentmessaging we can call the AHardwareBuffer helper functions to pass and get AHardwareBuffers via IPC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775236</commentid>
    <comment_count>1</comment_count>
      <attachid>433021</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-07-07 03:11:54 -0700</bug_when>
    <thetext>Created attachment 433021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775560</commentid>
    <comment_count>2</comment_count>
      <attachid>433021</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-07-07 18:04:28 -0700</bug_when>
    <thetext>Comment on attachment 433021
Patch

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

&gt; Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:59
&gt; -#endif // SOCK_SEQPACKET
&gt; +#endif // SOCK_SEQPACKET 
&gt;  
&gt; -namespace IPC {
&gt; +namespace IPC { 

I assume there was some accident with this patch? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776310</commentid>
    <comment_count>3</comment_count>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-07-12 07:23:10 -0700</bug_when>
    <thetext>yes, it was just a compilation test to discard what it looked like a intermittent compilation error bug 226919

I&apos;ll upload the real patch soon :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781637</commentid>
    <comment_count>4</comment_count>
      <attachid>434836</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-08-03 09:49:35 -0700</bug_when>
    <thetext>Created attachment 434836
Patch

Implement CustomWriterType Attachment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781638</commentid>
    <comment_count>5</comment_count>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-08-03 09:54:58 -0700</bug_when>
    <thetext>This is an example of how the API can be used to send aHardwareBuffer via IPC:

void ArgumentCoder&lt;PlatformXR::AHardwareBufferWrapper&gt;::encode(Encoder&amp; encoder, const PlatformXR::AHardwareBufferWrapper&amp; wrapper)
{
    auto hardwarebuffer = wrapper.hardwarebuffer;
    Attachment attachment(Attachment::CustomWriter { [hardwarebuffer](int socketDescriptor) {
        while (true) {
            int ret = AHardwareBuffer_sendHandleToUnixSocket(hardwarebuffer, socketDescriptor);
            if (!ret || ret != -EAGAIN)
                break;
        }
    }});
    encoder &lt;&lt; attachment;
}

bool ArgumentCoder&lt;PlatformXR::AHardwareBufferWrapper&gt;::decode(Decoder&amp; decoder, PlatformXR::AHardwareBufferWrapper&amp; wrapper)
{
    Attachment attachment;
    if (!decoder.decode(attachment))
        return false;
    auto socketDescriptor = WTF::get&lt;Attachment::SocketDescriptor&gt;(attachment.customWriter());
    while (true) {
        auto ret = AHardwareBuffer_recvHandleFromUnixSocket(socketDescriptor, &amp;wrapper.hardwarebuffer);
        if (!ret || ret != -EAGAIN)
            break;
    }

    return true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782489</commentid>
    <comment_count>6</comment_count>
      <attachid>435068</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-08-06 08:08:30 -0700</bug_when>
    <thetext>Created attachment 435068
Patch

Use WTF::function instead of std::function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782494</commentid>
    <comment_count>7</comment_count>
      <attachid>435068</attachid>
    <who name="Zan Dobersek (Reviews)">zdobersek</who>
    <bug_when>2021-08-06 08:40:26 -0700</bug_when>
    <thetext>Comment on attachment 435068
Patch

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

&gt; Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:593
&gt; +        for (size_t i = 0; i &lt; attachments.size(); ++i) {

for (auto&amp; attachment : attachments)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782851</commentid>
    <comment_count>8</comment_count>
      <attachid>435176</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-08-09 02:24:00 -0700</bug_when>
    <thetext>Created attachment 435176
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782852</commentid>
    <comment_count>9</comment_count>
      <attachid>435177</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-08-09 02:25:35 -0700</bug_when>
    <thetext>Created attachment 435177
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782856</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-09 02:58:30 -0700</bug_when>
    <thetext>Committed r280769 (240353@main): &lt;https://commits.webkit.org/240353@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435177.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866796</commentid>
    <comment_count>11</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-05 02:57:39 -0700</bug_when>
    <thetext>Did the client for this ever land?
I think this is a fair deviation of the intended purpose of Attachment, and maybe forms undue cognitive overhead while maintenance.

Hanging arbitrary function closure to the IPC message attachment is cumbersome as it&apos;s unclear what is the contract to call the function. What thread is it ok to call? Is it ok to call many times? What&apos;s the lifetime of the closed variables?

In the example in the comments, there&apos;s a potential to try to access a already freed ANB. Message send can be delayed, and as such it&apos;s not guaranteed that the ANB pointer closed by the function is alive at the time of actual message send.

Some time in the future the non-Cocoa and Cocoa parts could/should/must share more of the implementation. In these cases, it&apos;s not ok to run arbitrary code, as the send may happen in other thread.

The intended use of IPC::Attachment is that all objects that cannot be transferred as pure data are stored in IPC::Attachment.
In this case, it&apos;d be better to store an owning reference to a ANB in the Attachment, and then explicitly say
 &quot;Connection knows how to transfer UnixFileDescriptor&quot; (e.g this is already there)
 &quot;Connection knows how to transfer ANB&quot; (e.g. you make ConnectionUnix.cpp call AHardwareBuffer_sendHandleToUnixSocket et al)


So Unix variant of Connection would have 
class Attachment {

    std::variant&lt;UnixFileDescriptor
#if USE(ANDROID_NATIVE_BUFFER)
        , Ref&lt;AHardwareBuffer&gt;
#endif
    &gt;
};


(Ref&lt;AHardwareBuffer&gt; uses AHardwareBuffer_acquire, AHardwareBuffer_release to implement ref(), unref())</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433021</attachid>
            <date>2021-07-07 03:11:54 -0700</date>
            <delta_ts>2021-08-03 09:49:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227740-20210707121153.patch</filename>
            <type>text/plain</type>
            <size>1286</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3NDcxZjhkZTg5ODA4Yjk2
MGE0ZTQ2OThmZTdjN2ZjN2JlMzU2MzEuLjUzOWU0NTFlZjVlNTQ2YjUzYjU4OWNmMDYzYmQ4Y2Fh
OTg2YmE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDctMDcgIEltYW5vbCBG
ZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWxsb3cgY3VzdG9t
IElQQzo6QXR0YWNobWVudCAgbWVzc2FnaW5nIGluIENvbm5lY3Rpb25Vbml4LmNwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6
CisKIDIwMjEtMDctMDYgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGFsZXhtQGdub21lLm9yZz4K
IAogICAgICAgICBbR1RLNF0gTmF2aWdhdGlvbiBzd2lwZSBkb2Vzbid0IHdvcmsgd2hlbiB0aGUg
cGFnZSBzY3JvbGxzIGhvcml6b250YWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAppbmRleCBlZmNkNjYzZjg0MTY0ZTJmOTZhNjli
M2ZiY2FhZDg1ODFlY2Q3Yzk3Li4xYWViYmFlYTc4OWQ5MzEzZDllM2NlNzk3ZWJkYTJhM2M0MjVi
MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcApAQCAtNTQsOSArNTQsOSBAQAogI2Vsc2UKICNkZWZpbmUgU09DS0VUX1RZUEUg
U09DS19ER1JBTQogI2VuZGlmCi0jZW5kaWYgLy8gU09DS19TRVFQQUNLRVQKKyNlbmRpZiAvLyBT
T0NLX1NFUVBBQ0tFVCAKIAotbmFtZXNwYWNlIElQQyB7CituYW1lc3BhY2UgSVBDIHsgCiAKIHN0
YXRpYyBjb25zdCBzaXplX3QgbWVzc2FnZU1heFNpemUgPSA0MDk2Owogc3RhdGljIGNvbnN0IHNp
emVfdCBhdHRhY2htZW50TWF4QW1vdW50ID0gMjU0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434836</attachid>
            <date>2021-08-03 09:49:35 -0700</date>
            <delta_ts>2021-08-06 08:08:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227740-20210803184933.patch</filename>
            <type>text/plain</type>
            <size>6072</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyZTBmOTNiZmRkMDlmMzQz
ZDg0ZWQ1OTNkYjFiYjVhMWIzODE1Y2YuLjY4YzAyNGRhYWRhYzA3Mjk4OTY2ODg2NGQ5NzVjOTIy
NTk5NGI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDctMDcgIEltYW5vbCBG
ZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWxsb3cgY3VzdG9t
IElQQzo6QXR0YWNobWVudCBtZXNzYWdpbmcgaW4gQ29ubmVjdGlvblVuaXguY3BwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDAKKworICAgICAg
ICBJbiBvcmRlciB0byBzaGFyZSBBSGFyZHdhcmVCdWZmZXIgaGFuZGxlcyB2aWEgSVBDIHdlIG5l
ZWQgdG8gdXNlIHRoZSBBSGFyZHdhcmVCdWZmZXJfc2VuZEhhbmRsZVRvVW5peFNvY2tldCgpCisg
ICAgICAgIGFuZCBBSGFyZHdhcmVCdWZmZXJfcmVjdkhhbmRsZUZyb21Vbml4U29ja2V0KCkgZnVu
Y3Rpb25zLiBUaGlzIGlzIG5vdCBjdXJyZW50bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBBdHRhY2ht
ZW50CisgICAgICAgIEFQSSB1c2VkIGluIFVuaXhDb25uZWN0aW9uLCBhcyB0aG9zZSBmdW5jdGlv
bnMgdXNlIGN1c3RvbSBtZXNzYWdpbmcgaW50byB0aGUgc29ja2VkIGZkLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBhIEN1c3RvbVdyaXRlclR5cGUgQXR0YWNobWVudCB0aGF0IGFsbG93cyBj
dXN0b20gbWVzc2FnaW5nIGdvaW5nIGludG8gdGhlIHNvY2tldCBmZC4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKwogMjAyMS0wNy0yMyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10gSXQg
c2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNlbGVjdCBjb250YWN0IEF1dG9GaWxsIHRleHQgc3VnZ2Vz
dGlvbnMgaW4gZW1haWwgYW5kIHVzZXJuYW1lIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQXR0YWNobWVudC5oCmluZGV4IGQ2ZmYzYzE3ZWJhMGQwNGUwN2RlOGJjYTFhYTcyYzU0Mzdk
YzVhMzYuLjZjMWY0M2ZmMDZiZDdlNDI2ZThhYzA3ZTY1YWYwMDQwOWE1YjYwMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTM1LDYgKzM1LDExIEBACiAjaW5j
bHVkZSA8d2luZG93cy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykK
KyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisjZW5kaWYK
KwogbmFtZXNwYWNlIElQQyB7CiAKIGNsYXNzIERlY29kZXI7CkBAIC00OSw2ICs1NCw3IEBAIHB1
YmxpYzoKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICAgICAgU29ja2V0VHlwZSwK
ICAgICAgICAgTWFwcGVkTWVtb3J5VHlwZSwKKyAgICAgICAgQ3VzdG9tV3JpdGVyVHlwZSwKICNl
bGlmIE9TKERBUldJTikKICAgICAgICAgTWFjaFBvcnRUeXBlCiAjZW5kaWYKQEAgLTYwLDYgKzY2
LDExIEBAIHB1YmxpYzoKICAgICBBdHRhY2htZW50KGludCBmaWxlRGVzY3JpcHRvciwgc2l6ZV90
KTsKICAgICBBdHRhY2htZW50KGludCBmaWxlRGVzY3JpcHRvcik7CiAgICAgfkF0dGFjaG1lbnQo
KTsKKworICAgIHVzaW5nIFNvY2tldERlc2NyaXB0b3IgPSBpbnQ7CisgICAgdXNpbmcgQ3VzdG9t
V3JpdGVyRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZChTb2NrZXREZXNjcmlwdG9yKT47CisgICAg
dXNpbmcgQ3VzdG9tV3JpdGVyID0gVmFyaWFudDxDdXN0b21Xcml0ZXJGdW5jLCBTb2NrZXREZXNj
cmlwdG9yPjsKKyAgICBBdHRhY2htZW50KEN1c3RvbVdyaXRlciYmKTsKICNlbGlmIE9TKERBUldJ
TikKICAgICBBdHRhY2htZW50KG1hY2hfcG9ydF9uYW1lX3QsIG1hY2hfbXNnX3R5cGVfbmFtZV90
IGRpc3Bvc2l0aW9uKTsKICNlbGlmIE9TKFdJTkRPV1MpCkBAIC03NSw2ICs4Niw3IEBAIHB1Ymxp
YzoKIAogICAgIGludCByZWxlYXNlRmlsZURlc2NyaXB0b3IoKSB7IGludCB0ZW1wID0gbV9maWxl
RGVzY3JpcHRvcjsgbV9maWxlRGVzY3JpcHRvciA9IC0xOyByZXR1cm4gdGVtcDsgfQogICAgIGlu
dCBmaWxlRGVzY3JpcHRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZURlc2NyaXB0b3I7IH0KKyAg
ICBjb25zdCBDdXN0b21Xcml0ZXImIGN1c3RvbVdyaXRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3Vz
dG9tV3JpdGVyOyB9CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgdm9pZCByZWxlYXNlKCk7CiAKQEAg
LTk0LDYgKzEwNiw3IEBAIHByaXZhdGU6CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAg
ICAgaW50IG1fZmlsZURlc2NyaXB0b3IgeyAtMSB9OwogICAgIHNpemVfdCBtX3NpemU7CisgICAg
Q3VzdG9tV3JpdGVyIG1fY3VzdG9tV3JpdGVyIHsgLTEgfTsKICNlbGlmIE9TKERBUldJTikKICAg
ICBtYWNoX3BvcnRfbmFtZV90IG1fcG9ydCB7IDAgfTsKICAgICBtYWNoX21zZ190eXBlX25hbWVf
dCBtX2Rpc3Bvc2l0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAppbmRleCAyMTg3MTE2NDUzYWY5ZjFkYTYxYjMyMjVk
ZmNjMjQ4ZjhhNDZjODIzLi4zOThkNTNhOGE4ZTExNzhlNThlZGY0ZDc4ZjE3YTQ5YzI3NDY5ODk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRV
bml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRV
bml4LmNwcApAQCAtNDksMTAgKzQ5LDIwIEBAIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQXR0YWNo
bWVudCYmIGF0dGFjaG1lbnQpCiAgICAgOiBtX3R5cGUoYXR0YWNobWVudC5tX3R5cGUpCiAgICAg
LCBtX2ZpbGVEZXNjcmlwdG9yKGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcikKICAgICAsIG1f
c2l6ZShhdHRhY2htZW50Lm1fc2l6ZSkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKGF0dGFjaG1lbnQu
bV9jdXN0b21Xcml0ZXIpCiB7CiAgICAgYXR0YWNobWVudC5tX3R5cGUgPSBVbmluaXRpYWxpemVk
OwogICAgIGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvciA9IC0xOwogICAgIGF0dGFjaG1lbnQu
bV9zaXplID0gMDsKKyAgICBhdHRhY2htZW50Lm1fY3VzdG9tV3JpdGVyID0geyAtMSB9OworfQor
CitBdHRhY2htZW50OjpBdHRhY2htZW50KEN1c3RvbVdyaXRlciYmIHdyaXRlcikKKyAgICA6IG1f
dHlwZShDdXN0b21Xcml0ZXJUeXBlKQorICAgICwgbV9maWxlRGVzY3JpcHRvcigtMSkKKyAgICAs
IG1fc2l6ZSgwKQorICAgICwgbV9jdXN0b21Xcml0ZXIoV1RGTW92ZSh3cml0ZXIpKQorewogfQog
CiBBdHRhY2htZW50JiBBdHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFjaG1l
bnQpCkBAIC02Myw2ICs3Myw4IEBAIEF0dGFjaG1lbnQmIEF0dGFjaG1lbnQ6Om9wZXJhdG9yPShB
dHRhY2htZW50JiYgYXR0YWNobWVudCkKICAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3Ig
PSAtMTsKICAgICBtX3NpemUgPSBhdHRhY2htZW50Lm1fc2l6ZTsKICAgICBhdHRhY2htZW50Lm1f
c2l6ZSA9IDA7CisgICAgbV9jdXN0b21Xcml0ZXIgPSBhdHRhY2htZW50Lm1fY3VzdG9tV3JpdGVy
OworICAgIGF0dGFjaG1lbnQubV9jdXN0b21Xcml0ZXIgPSB7IC0xIH07CiAKICAgICByZXR1cm4g
KnRoaXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVj
dGlvblVuaXguY3BwCmluZGV4IGVmY2Q2NjNmODQxNjRlMmY5NmE2OWIzZmJjYWFkODU4MWVjZDdj
OTcuLmE5NDQ2NDEwYjVmZDM2ZjY5ZGFmYzNjM2FkYzRjMjgyNWM3Mjg2MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCkBAIC0y
MDYsNiArMjA2LDkgQEAgYm9vbCBDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSgpCiAgICAgICAg
ICAgICAgICAgZmQgPSBtX2ZpbGVEZXNjcmlwdG9yc1tmZEluZGV4KytdOwogICAgICAgICAgICAg
YXR0YWNobWVudHNbYXR0YWNobWVudENvdW50IC0gaSAtIDFdID0gQXR0YWNobWVudChmZCk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJU
eXBlOgorICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVudENvdW50IC0gaSAtIDFdID0g
QXR0YWNobWVudChBdHRhY2htZW50OjpDdXN0b21Xcml0ZXIgeyBtX3NvY2tldERlc2NyaXB0b3Ig
fSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBdHRhY2htZW50OjpVbmluaXRp
YWxpemVkOgogICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVudENvdW50IC0gaSAtIDFd
ID0gQXR0YWNobWVudCgpOwogICAgICAgICBkZWZhdWx0OgpAQCAtNDc0LDYgKzQ3Nyw4IEBAIGJv
b2wgQ29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3Nh
Z2UpCiAgICAgVmVjdG9yPEF0dGFjaG1lbnRJbmZvPiBhdHRhY2htZW50SW5mbzsKICAgICBNYWxs
b2NQdHI8Y2hhcj4gYXR0YWNobWVudEZEQnVmZmVyOwogCisgICAgVmVjdG9yPEF0dGFjaG1lbnQ6
OkN1c3RvbVdyaXRlckZ1bmM+IGN1c3RvbVdyaXRlcnM7CisKICAgICBhdXRvJiBhdHRhY2htZW50
cyA9IG91dHB1dE1lc3NhZ2UuYXR0YWNobWVudHMoKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzLmlz
RW1wdHkoKSkgewogICAgICAgICBpbnQqIGZkUHRyID0gMDsKQEAgLTUxNCw2ICs1MTksMTAgQEAg
Ym9vbCBDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVz
c2FnZSkKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNo
bWVudEluZm9baV0uc2V0TnVsbCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJUeXBlOgorICAgICAgICAgICAgICAgIEFT
U0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlckZ1bmM+
KGF0dGFjaG1lbnRzW2ldLmN1c3RvbVdyaXRlcigpKSk7CisgICAgICAgICAgICAgICAgY3VzdG9t
V3JpdGVycy5hcHBlbmQoV1RGOjpnZXQ8QXR0YWNobWVudDo6Q3VzdG9tV3JpdGVyRnVuYz4oYXR0
YWNobWVudHNbaV0uY3VzdG9tV3JpdGVyKCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgQXR0YWNobWVudDo6VW5pbml0aWFsaXplZDoKICAgICAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01ODEsNiArNTkwLDEyIEBAIGJvb2wg
Q29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3NhZ2Up
CiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIHNlbmRpbmcgSVBDIG1lc3NhZ2U6ICVz
Iiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAg
IGZvciAoYXV0byYgd3JpdGVyRnVuYyA6IGN1c3RvbVdyaXRlcnMpIHsKKyAgICAgICAgaWYgKHdy
aXRlckZ1bmMpCisgICAgICAgICAgICB3cml0ZXJGdW5jKG1fc29ja2V0RGVzY3JpcHRvcik7Cisg
ICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435068</attachid>
            <date>2021-08-06 08:08:30 -0700</date>
            <delta_ts>2021-08-09 02:23:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227740-20210806170828.patch</filename>
            <type>text/plain</type>
            <size>6090</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGY2OTMxZDE1ZmMyMDJh
NWVjYjAzODMzNmQ1MTdkOTMxZTczYmQuLjFiNTVmOWQ5YWQ3MWFkMjU3NzRiZTNjZGRiYmQ5ZTZk
NmY2N2Y5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDctMDcgIEltYW5vbCBG
ZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWxsb3cgY3VzdG9t
IElQQzo6QXR0YWNobWVudCBtZXNzYWdpbmcgaW4gQ29ubmVjdGlvblVuaXguY3BwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDAKKworICAgICAg
ICBJbiBvcmRlciB0byBzaGFyZSBBSGFyZHdhcmVCdWZmZXIgaGFuZGxlcyB2aWEgSVBDIHdlIG5l
ZWQgdG8gdXNlIHRoZSBBSGFyZHdhcmVCdWZmZXJfc2VuZEhhbmRsZVRvVW5peFNvY2tldCgpCisg
ICAgICAgIGFuZCBBSGFyZHdhcmVCdWZmZXJfcmVjdkhhbmRsZUZyb21Vbml4U29ja2V0KCkgZnVu
Y3Rpb25zLiBUaGlzIGlzIG5vdCBjdXJyZW50bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBBdHRhY2ht
ZW50CisgICAgICAgIEFQSSB1c2VkIGluIFVuaXhDb25uZWN0aW9uLCBhcyB0aG9zZSBmdW5jdGlv
bnMgdXNlIGN1c3RvbSBtZXNzYWdpbmcgaW50byB0aGUgc29ja2VkIGZkLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBhIEN1c3RvbVdyaXRlclR5cGUgQXR0YWNobWVudCB0aGF0IGFsbG93cyBj
dXN0b20gbWVzc2FnaW5nIGdvaW5nIGludG8gdGhlIHNvY2tldCBmZC4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKwogMjAyMS0wOC0wNSAgTWljaGFl
bCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBHQ0MgMTEgYnVp
bGRzIHNob3VsZCB1c2UgLVduby1hcnJheS1ib3VuZHMsIC1Xbm8tbm9ubnVsbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oCmluZGV4IGQ2ZmYzYzE3ZWJhMGQwNGUwN2RlOGJj
YTFhYTcyYzU0MzdkYzVhMzYuLjlkNmU5YTVlNzc1MTJmYjFkNWNhYzkyOTE4YWEwNmYxYmVlZGZj
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTM1LDYgKzM1
LDExIEBACiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoVU5JWF9ET01B
SU5fU09DS0VUUykKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvVmFy
aWFudC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBJUEMgewogCiBjbGFzcyBEZWNvZGVyOwpAQCAt
NDksNiArNTQsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAg
ICAgIFNvY2tldFR5cGUsCiAgICAgICAgIE1hcHBlZE1lbW9yeVR5cGUsCisgICAgICAgIEN1c3Rv
bVdyaXRlclR5cGUsCiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1hY2hQb3J0VHlwZQogI2Vu
ZGlmCkBAIC02MCw2ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURl
c2NyaXB0b3IsIHNpemVfdCk7CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpOwog
ICAgIH5BdHRhY2htZW50KCk7CisKKyAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9yID0gaW50Owor
ICAgIHVzaW5nIEN1c3RvbVdyaXRlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoU29ja2V0RGVz
Y3JpcHRvcik+OworICAgIHVzaW5nIEN1c3RvbVdyaXRlciA9IFZhcmlhbnQ8Q3VzdG9tV3JpdGVy
RnVuYywgU29ja2V0RGVzY3JpcHRvcj47CisgICAgQXR0YWNobWVudChDdXN0b21Xcml0ZXImJik7
CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgQXR0YWNobWVudChtYWNoX3BvcnRfbmFtZV90LCBtYWNo
X21zZ190eXBlX25hbWVfdCBkaXNwb3NpdGlvbik7CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNzUs
NiArODYsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgcmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkgeyBp
bnQgdGVtcCA9IG1fZmlsZURlc2NyaXB0b3I7IG1fZmlsZURlc2NyaXB0b3IgPSAtMTsgcmV0dXJu
IHRlbXA7IH0KICAgICBpbnQgZmlsZURlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVE
ZXNjcmlwdG9yOyB9CisgICAgY29uc3QgQ3VzdG9tV3JpdGVyJiBjdXN0b21Xcml0ZXIoKSBjb25z
dCB7IHJldHVybiBtX2N1c3RvbVdyaXRlcjsgfQogI2VsaWYgT1MoREFSV0lOKQogICAgIHZvaWQg
cmVsZWFzZSgpOwogCkBAIC05NCw2ICsxMDYsNyBAQCBwcml2YXRlOgogI2lmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQogICAgIGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKICAgICBzaXpl
X3QgbV9zaXplOworICAgIEN1c3RvbVdyaXRlciBtX2N1c3RvbVdyaXRlcjsKICNlbGlmIE9TKERB
UldJTikKICAgICBtYWNoX3BvcnRfbmFtZV90IG1fcG9ydCB7IDAgfTsKICAgICBtYWNoX21zZ190
eXBlX25hbWVfdCBtX2Rpc3Bvc2l0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAppbmRleCAyMTg3MTE2NDUzYWY5ZjFk
YTYxYjMyMjVkZmNjMjQ4ZjhhNDZjODIzLi5iYjc5YmYyYjNhZmU0MDdkOTg2N2ZkODI0MDE3NzZk
NGQyOWI4OWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0
dGFjaG1lbnRVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0
dGFjaG1lbnRVbml4LmNwcApAQCAtNDksMTIgKzQ5LDIxIEBAIEF0dGFjaG1lbnQ6OkF0dGFjaG1l
bnQoQXR0YWNobWVudCYmIGF0dGFjaG1lbnQpCiAgICAgOiBtX3R5cGUoYXR0YWNobWVudC5tX3R5
cGUpCiAgICAgLCBtX2ZpbGVEZXNjcmlwdG9yKGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcikK
ICAgICAsIG1fc2l6ZShhdHRhY2htZW50Lm1fc2l6ZSkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKFdU
Rk1vdmUoYXR0YWNobWVudC5tX2N1c3RvbVdyaXRlcikpCiB7CiAgICAgYXR0YWNobWVudC5tX3R5
cGUgPSBVbmluaXRpYWxpemVkOwogICAgIGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvciA9IC0x
OwogICAgIGF0dGFjaG1lbnQubV9zaXplID0gMDsKIH0KIAorQXR0YWNobWVudDo6QXR0YWNobWVu
dChDdXN0b21Xcml0ZXImJiB3cml0ZXIpCisgICAgOiBtX3R5cGUoQ3VzdG9tV3JpdGVyVHlwZSkK
KyAgICAsIG1fZmlsZURlc2NyaXB0b3IoLTEpCisgICAgLCBtX3NpemUoMCkKKyAgICAsIG1fY3Vz
dG9tV3JpdGVyKFdURk1vdmUod3JpdGVyKSkKK3sKK30KKwogQXR0YWNobWVudCYgQXR0YWNobWVu
dDo6b3BlcmF0b3I9KEF0dGFjaG1lbnQmJiBhdHRhY2htZW50KQogewogICAgIG1fdHlwZSA9IGF0
dGFjaG1lbnQubV90eXBlOwpAQCAtNjMsNiArNzIsNyBAQCBBdHRhY2htZW50JiBBdHRhY2htZW50
OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFjaG1lbnQpCiAgICAgYXR0YWNobWVudC5tX2Zp
bGVEZXNjcmlwdG9yID0gLTE7CiAgICAgbV9zaXplID0gYXR0YWNobWVudC5tX3NpemU7CiAgICAg
YXR0YWNobWVudC5tX3NpemUgPSAwOworICAgIG1fY3VzdG9tV3JpdGVyID0gV1RGTW92ZShhdHRh
Y2htZW50Lm1fY3VzdG9tV3JpdGVyKTsKIAogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXgg
ZWZjZDY2M2Y4NDE2NGUyZjk2YTY5YjNmYmNhYWQ4NTgxZWNkN2M5Ny4uOWVjZGUxZjRjOTc3NzJh
NDIzZWFmZGY2YjUzZmQ0NDljOTliYjRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKQEAgLTIwNiw2ICsyMDYsOSBAQCBib29s
IENvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICAgICAgICAgICAgICBmZCA9IG1fZmls
ZURlc2NyaXB0b3JzW2ZkSW5kZXgrK107CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KGZkKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CisgICAgICAgICAgICBh
dHRhY2htZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1l
bnQ6OkN1c3RvbVdyaXRlcihtX3NvY2tldERlc2NyaXB0b3IpKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEF0dGFjaG1lbnQ6OlVuaW5pdGlhbGl6ZWQ6CiAgICAgICAgICAgICBh
dHRhY2htZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KCk7CiAgICAg
ICAgIGRlZmF1bHQ6CkBAIC00NzMsNiArNDc2LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0
cHV0TWVzc2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVzc2FnZSkKIAogICAgIFZlY3RvcjxBdHRh
Y2htZW50SW5mbz4gYXR0YWNobWVudEluZm87CiAgICAgTWFsbG9jUHRyPGNoYXI+IGF0dGFjaG1l
bnRGREJ1ZmZlcjsKKyAgICBib29sIGhhc0N1c3RvbVdyaXRlckF0dGFjaG1lbnRzIHsgZmFsc2Ug
fTsKIAogICAgIGF1dG8mIGF0dGFjaG1lbnRzID0gb3V0cHV0TWVzc2FnZS5hdHRhY2htZW50cygp
OwogICAgIGlmICghYXR0YWNobWVudHMuaXNFbXB0eSgpKSB7CkBAIC01MTQsNiArNTE4LDkgQEAg
Ym9vbCBDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVz
c2FnZSkKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNo
bWVudEluZm9baV0uc2V0TnVsbCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJUeXBlOgorICAgICAgICAgICAgICAgIGhh
c0N1c3RvbVdyaXRlckF0dGFjaG1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgQXR0YWNobWVudDo6VW5pbml0aWFsaXplZDoKICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01ODEsNiArNTg4LDE2IEBAIGJv
b2wgQ29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3Nh
Z2UpCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIHNlbmRpbmcgSVBDIG1lc3NhZ2U6
ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKwor
ICAgIGlmIChoYXNDdXN0b21Xcml0ZXJBdHRhY2htZW50cykgeworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGF0dGFjaG1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAo
YXR0YWNobWVudHNbaV0udHlwZSgpID09IEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlclR5cGUpIHsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxBdHRhY2htZW50
OjpDdXN0b21Xcml0ZXJGdW5jPihhdHRhY2htZW50c1tpXS5jdXN0b21Xcml0ZXIoKSkpOworICAg
ICAgICAgICAgICAgIFdURjo6Z2V0PEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlckZ1bmM+KGF0dGFj
aG1lbnRzW2ldLmN1c3RvbVdyaXRlcigpKShtX3NvY2tldERlc2NyaXB0b3IpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435176</attachid>
            <date>2021-08-09 02:24:00 -0700</date>
            <delta_ts>2021-08-09 02:25:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227740-20210809112359.patch</filename>
            <type>text/plain</type>
            <size>6106</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGY2OTMxZDE1ZmMyMDJh
NWVjYjAzODMzNmQ1MTdkOTMxZTczYmQuLjM5N2Q3NWM4OGM1NmZhYzEwOTU2MWU1NGVkOTEwNDg2
YThiZmI4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDcgIEltYW5vbCBG
ZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWxsb3cgY3VzdG9t
IElQQzo6QXR0YWNobWVudCBtZXNzYWdpbmcgaW4gQ29ubmVjdGlvblVuaXguY3BwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICBJbiBvcmRlciB0byBzaGFy
ZSBBSGFyZHdhcmVCdWZmZXIgaGFuZGxlcyB2aWEgSVBDIHdlIG5lZWQgdG8gdXNlIHRoZSBBSGFy
ZHdhcmVCdWZmZXJfc2VuZEhhbmRsZVRvVW5peFNvY2tldCgpCisgICAgICAgIGFuZCBBSGFyZHdh
cmVCdWZmZXJfcmVjdkhhbmRsZUZyb21Vbml4U29ja2V0KCkgZnVuY3Rpb25zLiBUaGlzIGlzIG5v
dCBjdXJyZW50bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBBdHRhY2htZW50CisgICAgICAgIEFQSSB1
c2VkIGluIFVuaXhDb25uZWN0aW9uLCBhcyB0aG9zZSBmdW5jdGlvbnMgdXNlIGN1c3RvbSBtZXNz
YWdpbmcgaW50byB0aGUgc29ja2VkIGZkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIEN1
c3RvbVdyaXRlclR5cGUgQXR0YWNobWVudCB0aGF0IGFsbG93cyBjdXN0b20gbWVzc2FnaW5nIGdv
aW5nIGludG8gdGhlIHNvY2tldCBmZC4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcDoKKwogMjAyMS0wOC0wNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBHQ0MgMTEgYnVpbGRzIHNob3VsZCB1c2UgLVdu
by1hcnJheS1ib3VuZHMsIC1Xbm8tbm9ubnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0
YWNobWVudC5oCmluZGV4IGQ2ZmYzYzE3ZWJhMGQwNGUwN2RlOGJjYTFhYTcyYzU0MzdkYzVhMzYu
LjlkNmU5YTVlNzc1MTJmYjFkNWNhYzkyOTE4YWEwNmYxYmVlZGZjNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTM1LDYgKzM1LDExIEBACiAjaW5jbHVkZSA8
d2luZG93cy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBJUEMgewogCiBjbGFzcyBEZWNvZGVyOwpAQCAtNDksNiArNTQsNyBAQCBwdWJs
aWM6CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgICAgIFNvY2tldFR5cGUsCiAg
ICAgICAgIE1hcHBlZE1lbW9yeVR5cGUsCisgICAgICAgIEN1c3RvbVdyaXRlclR5cGUsCiAjZWxp
ZiBPUyhEQVJXSU4pCiAgICAgICAgIE1hY2hQb3J0VHlwZQogI2VuZGlmCkBAIC02MCw2ICs2Niwx
MSBAQCBwdWJsaWM6CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVfdCk7
CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpOwogICAgIH5BdHRhY2htZW50KCk7
CisKKyAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9yID0gaW50OworICAgIHVzaW5nIEN1c3RvbVdy
aXRlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoU29ja2V0RGVzY3JpcHRvcik+OworICAgIHVz
aW5nIEN1c3RvbVdyaXRlciA9IFZhcmlhbnQ8Q3VzdG9tV3JpdGVyRnVuYywgU29ja2V0RGVzY3Jp
cHRvcj47CisgICAgQXR0YWNobWVudChDdXN0b21Xcml0ZXImJik7CiAjZWxpZiBPUyhEQVJXSU4p
CiAgICAgQXR0YWNobWVudChtYWNoX3BvcnRfbmFtZV90LCBtYWNoX21zZ190eXBlX25hbWVfdCBk
aXNwb3NpdGlvbik7CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNzUsNiArODYsNyBAQCBwdWJsaWM6
CiAKICAgICBpbnQgcmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkgeyBpbnQgdGVtcCA9IG1fZmlsZURl
c2NyaXB0b3I7IG1fZmlsZURlc2NyaXB0b3IgPSAtMTsgcmV0dXJuIHRlbXA7IH0KICAgICBpbnQg
ZmlsZURlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVEZXNjcmlwdG9yOyB9CisgICAg
Y29uc3QgQ3VzdG9tV3JpdGVyJiBjdXN0b21Xcml0ZXIoKSBjb25zdCB7IHJldHVybiBtX2N1c3Rv
bVdyaXRlcjsgfQogI2VsaWYgT1MoREFSV0lOKQogICAgIHZvaWQgcmVsZWFzZSgpOwogCkBAIC05
NCw2ICsxMDYsNyBAQCBwcml2YXRlOgogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAg
IGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKICAgICBzaXplX3QgbV9zaXplOworICAgIEN1
c3RvbVdyaXRlciBtX2N1c3RvbVdyaXRlcjsKICNlbGlmIE9TKERBUldJTikKICAgICBtYWNoX3Bv
cnRfbmFtZV90IG1fcG9ydCB7IDAgfTsKICAgICBtYWNoX21zZ190eXBlX25hbWVfdCBtX2Rpc3Bv
c2l0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5p
eC9BdHRhY2htZW50VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0
dGFjaG1lbnRVbml4LmNwcAppbmRleCAyMTg3MTE2NDUzYWY5ZjFkYTYxYjMyMjVkZmNjMjQ4Zjhh
NDZjODIzLi5iYjc5YmYyYjNhZmU0MDdkOTg2N2ZkODI0MDE3NzZkNGQyOWI4OWY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcApA
QCAtNDksMTIgKzQ5LDIxIEBAIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQXR0YWNobWVudCYmIGF0
dGFjaG1lbnQpCiAgICAgOiBtX3R5cGUoYXR0YWNobWVudC5tX3R5cGUpCiAgICAgLCBtX2ZpbGVE
ZXNjcmlwdG9yKGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcikKICAgICAsIG1fc2l6ZShhdHRh
Y2htZW50Lm1fc2l6ZSkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKFdURk1vdmUoYXR0YWNobWVudC5t
X2N1c3RvbVdyaXRlcikpCiB7CiAgICAgYXR0YWNobWVudC5tX3R5cGUgPSBVbmluaXRpYWxpemVk
OwogICAgIGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvciA9IC0xOwogICAgIGF0dGFjaG1lbnQu
bV9zaXplID0gMDsKIH0KIAorQXR0YWNobWVudDo6QXR0YWNobWVudChDdXN0b21Xcml0ZXImJiB3
cml0ZXIpCisgICAgOiBtX3R5cGUoQ3VzdG9tV3JpdGVyVHlwZSkKKyAgICAsIG1fZmlsZURlc2Ny
aXB0b3IoLTEpCisgICAgLCBtX3NpemUoMCkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKFdURk1vdmUo
d3JpdGVyKSkKK3sKK30KKwogQXR0YWNobWVudCYgQXR0YWNobWVudDo6b3BlcmF0b3I9KEF0dGFj
aG1lbnQmJiBhdHRhY2htZW50KQogewogICAgIG1fdHlwZSA9IGF0dGFjaG1lbnQubV90eXBlOwpA
QCAtNjMsNiArNzIsNyBAQCBBdHRhY2htZW50JiBBdHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNo
bWVudCYmIGF0dGFjaG1lbnQpCiAgICAgYXR0YWNobWVudC5tX2ZpbGVEZXNjcmlwdG9yID0gLTE7
CiAgICAgbV9zaXplID0gYXR0YWNobWVudC5tX3NpemU7CiAgICAgYXR0YWNobWVudC5tX3NpemUg
PSAwOworICAgIG1fY3VzdG9tV3JpdGVyID0gV1RGTW92ZShhdHRhY2htZW50Lm1fY3VzdG9tV3Jp
dGVyKTsKIAogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXggZWZjZDY2M2Y4NDE2NGUyZjk2
YTY5YjNmYmNhYWQ4NTgxZWNkN2M5Ny4uYTRlZTU3NTBkM2IzM2M2OGQ5ZTY1ZTU3NzdlNDQwZGI1
YzgxODhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKQEAgLTIwNiw2ICsyMDYsOSBAQCBib29sIENvbm5lY3Rpb246OnByb2Nl
c3NNZXNzYWdlKCkKICAgICAgICAgICAgICAgICBmZCA9IG1fZmlsZURlc2NyaXB0b3JzW2ZkSW5k
ZXgrK107CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0g
PSBBdHRhY2htZW50KGZkKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEF0dGFj
aG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CisgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlciht
X3NvY2tldERlc2NyaXB0b3IpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0
dGFjaG1lbnQ6OlVuaW5pdGlhbGl6ZWQ6CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KCk7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC00
NzMsNiArNDc2LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZShVbml4TWVz
c2FnZSYgb3V0cHV0TWVzc2FnZSkKIAogICAgIFZlY3RvcjxBdHRhY2htZW50SW5mbz4gYXR0YWNo
bWVudEluZm87CiAgICAgTWFsbG9jUHRyPGNoYXI+IGF0dGFjaG1lbnRGREJ1ZmZlcjsKKyAgICBi
b29sIGhhc0N1c3RvbVdyaXRlckF0dGFjaG1lbnRzIHsgZmFsc2UgfTsKIAogICAgIGF1dG8mIGF0
dGFjaG1lbnRzID0gb3V0cHV0TWVzc2FnZS5hdHRhY2htZW50cygpOwogICAgIGlmICghYXR0YWNo
bWVudHMuaXNFbXB0eSgpKSB7CkBAIC01MTQsNiArNTE4LDkgQEAgYm9vbCBDb25uZWN0aW9uOjpz
ZW5kT3V0cHV0TWVzc2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVzc2FnZSkKICAgICAgICAgICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0TnVs
bCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBdHRhY2htZW50
OjpDdXN0b21Xcml0ZXJUeXBlOgorICAgICAgICAgICAgICAgIGhhc0N1c3RvbVdyaXRlckF0dGFj
aG1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QXR0YWNobWVudDo6VW5pbml0aWFsaXplZDoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC01ODEsNiArNTg4LDE2IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2Vu
ZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3NhZ2UpCiAgICAgICAgICAgICBX
VEZMb2dBbHdheXMoIkVycm9yIHNlbmRpbmcgSVBDIG1lc3NhZ2U6ICVzIiwgc3RyZXJyb3IoZXJy
bm8pKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAgIGlmIChoYXNDdXN0b21X
cml0ZXJBdHRhY2htZW50cykgeworICAgICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnQgOiBhdHRh
Y2htZW50cykgeworICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnQudHlwZSgpID09IEF0dGFjaG1l
bnQ6OkN1c3RvbVdyaXRlclR5cGUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJGdW5jPihhdHRhY2htZW50LmN1
c3RvbVdyaXRlcigpKSk7CisgICAgICAgICAgICAgICAgV1RGOjpnZXQ8QXR0YWNobWVudDo6Q3Vz
dG9tV3JpdGVyRnVuYz4oYXR0YWNobWVudC5jdXN0b21Xcml0ZXIoKSkobV9zb2NrZXREZXNjcmlw
dG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiB0cnVl
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435177</attachid>
            <date>2021-08-09 02:25:35 -0700</date>
            <delta_ts>2021-08-09 02:58:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227740-20210809112533.patch</filename>
            <type>text/plain</type>
            <size>6106</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGY2OTMxZDE1ZmMyMDJh
NWVjYjAzODMzNmQ1MTdkOTMxZTczYmQuLjM5N2Q3NWM4OGM1NmZhYzEwOTU2MWU1NGVkOTEwNDg2
YThiZmI4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDcgIEltYW5vbCBG
ZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWxsb3cgY3VzdG9t
IElQQzo6QXR0YWNobWVudCBtZXNzYWdpbmcgaW4gQ29ubmVjdGlvblVuaXguY3BwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICBJbiBvcmRlciB0byBzaGFy
ZSBBSGFyZHdhcmVCdWZmZXIgaGFuZGxlcyB2aWEgSVBDIHdlIG5lZWQgdG8gdXNlIHRoZSBBSGFy
ZHdhcmVCdWZmZXJfc2VuZEhhbmRsZVRvVW5peFNvY2tldCgpCisgICAgICAgIGFuZCBBSGFyZHdh
cmVCdWZmZXJfcmVjdkhhbmRsZUZyb21Vbml4U29ja2V0KCkgZnVuY3Rpb25zLiBUaGlzIGlzIG5v
dCBjdXJyZW50bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBBdHRhY2htZW50CisgICAgICAgIEFQSSB1
c2VkIGluIFVuaXhDb25uZWN0aW9uLCBhcyB0aG9zZSBmdW5jdGlvbnMgdXNlIGN1c3RvbSBtZXNz
YWdpbmcgaW50byB0aGUgc29ja2VkIGZkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIEN1
c3RvbVdyaXRlclR5cGUgQXR0YWNobWVudCB0aGF0IGFsbG93cyBjdXN0b20gbWVzc2FnaW5nIGdv
aW5nIGludG8gdGhlIHNvY2tldCBmZC4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcDoKKwogMjAyMS0wOC0wNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBHQ0MgMTEgYnVpbGRzIHNob3VsZCB1c2UgLVdu
by1hcnJheS1ib3VuZHMsIC1Xbm8tbm9ubnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0
YWNobWVudC5oCmluZGV4IGQ2ZmYzYzE3ZWJhMGQwNGUwN2RlOGJjYTFhYTcyYzU0MzdkYzVhMzYu
LjlkNmU5YTVlNzc1MTJmYjFkNWNhYzkyOTE4YWEwNmYxYmVlZGZjNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTM1LDYgKzM1LDExIEBACiAjaW5jbHVkZSA8
d2luZG93cy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBJUEMgewogCiBjbGFzcyBEZWNvZGVyOwpAQCAtNDksNiArNTQsNyBAQCBwdWJs
aWM6CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgICAgIFNvY2tldFR5cGUsCiAg
ICAgICAgIE1hcHBlZE1lbW9yeVR5cGUsCisgICAgICAgIEN1c3RvbVdyaXRlclR5cGUsCiAjZWxp
ZiBPUyhEQVJXSU4pCiAgICAgICAgIE1hY2hQb3J0VHlwZQogI2VuZGlmCkBAIC02MCw2ICs2Niwx
MSBAQCBwdWJsaWM6CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVfdCk7
CiAgICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpOwogICAgIH5BdHRhY2htZW50KCk7
CisKKyAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9yID0gaW50OworICAgIHVzaW5nIEN1c3RvbVdy
aXRlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoU29ja2V0RGVzY3JpcHRvcik+OworICAgIHVz
aW5nIEN1c3RvbVdyaXRlciA9IFZhcmlhbnQ8Q3VzdG9tV3JpdGVyRnVuYywgU29ja2V0RGVzY3Jp
cHRvcj47CisgICAgQXR0YWNobWVudChDdXN0b21Xcml0ZXImJik7CiAjZWxpZiBPUyhEQVJXSU4p
CiAgICAgQXR0YWNobWVudChtYWNoX3BvcnRfbmFtZV90LCBtYWNoX21zZ190eXBlX25hbWVfdCBk
aXNwb3NpdGlvbik7CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNzUsNiArODYsNyBAQCBwdWJsaWM6
CiAKICAgICBpbnQgcmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkgeyBpbnQgdGVtcCA9IG1fZmlsZURl
c2NyaXB0b3I7IG1fZmlsZURlc2NyaXB0b3IgPSAtMTsgcmV0dXJuIHRlbXA7IH0KICAgICBpbnQg
ZmlsZURlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVEZXNjcmlwdG9yOyB9CisgICAg
Y29uc3QgQ3VzdG9tV3JpdGVyJiBjdXN0b21Xcml0ZXIoKSBjb25zdCB7IHJldHVybiBtX2N1c3Rv
bVdyaXRlcjsgfQogI2VsaWYgT1MoREFSV0lOKQogICAgIHZvaWQgcmVsZWFzZSgpOwogCkBAIC05
NCw2ICsxMDYsNyBAQCBwcml2YXRlOgogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAg
IGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKICAgICBzaXplX3QgbV9zaXplOworICAgIEN1
c3RvbVdyaXRlciBtX2N1c3RvbVdyaXRlcjsKICNlbGlmIE9TKERBUldJTikKICAgICBtYWNoX3Bv
cnRfbmFtZV90IG1fcG9ydCB7IDAgfTsKICAgICBtYWNoX21zZ190eXBlX25hbWVfdCBtX2Rpc3Bv
c2l0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5p
eC9BdHRhY2htZW50VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0
dGFjaG1lbnRVbml4LmNwcAppbmRleCAyMTg3MTE2NDUzYWY5ZjFkYTYxYjMyMjVkZmNjMjQ4Zjhh
NDZjODIzLi5iYjc5YmYyYjNhZmU0MDdkOTg2N2ZkODI0MDE3NzZkNGQyOWI4OWY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcApA
QCAtNDksMTIgKzQ5LDIxIEBAIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQXR0YWNobWVudCYmIGF0
dGFjaG1lbnQpCiAgICAgOiBtX3R5cGUoYXR0YWNobWVudC5tX3R5cGUpCiAgICAgLCBtX2ZpbGVE
ZXNjcmlwdG9yKGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcikKICAgICAsIG1fc2l6ZShhdHRh
Y2htZW50Lm1fc2l6ZSkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKFdURk1vdmUoYXR0YWNobWVudC5t
X2N1c3RvbVdyaXRlcikpCiB7CiAgICAgYXR0YWNobWVudC5tX3R5cGUgPSBVbmluaXRpYWxpemVk
OwogICAgIGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvciA9IC0xOwogICAgIGF0dGFjaG1lbnQu
bV9zaXplID0gMDsKIH0KIAorQXR0YWNobWVudDo6QXR0YWNobWVudChDdXN0b21Xcml0ZXImJiB3
cml0ZXIpCisgICAgOiBtX3R5cGUoQ3VzdG9tV3JpdGVyVHlwZSkKKyAgICAsIG1fZmlsZURlc2Ny
aXB0b3IoLTEpCisgICAgLCBtX3NpemUoMCkKKyAgICAsIG1fY3VzdG9tV3JpdGVyKFdURk1vdmUo
d3JpdGVyKSkKK3sKK30KKwogQXR0YWNobWVudCYgQXR0YWNobWVudDo6b3BlcmF0b3I9KEF0dGFj
aG1lbnQmJiBhdHRhY2htZW50KQogewogICAgIG1fdHlwZSA9IGF0dGFjaG1lbnQubV90eXBlOwpA
QCAtNjMsNiArNzIsNyBAQCBBdHRhY2htZW50JiBBdHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNo
bWVudCYmIGF0dGFjaG1lbnQpCiAgICAgYXR0YWNobWVudC5tX2ZpbGVEZXNjcmlwdG9yID0gLTE7
CiAgICAgbV9zaXplID0gYXR0YWNobWVudC5tX3NpemU7CiAgICAgYXR0YWNobWVudC5tX3NpemUg
PSAwOworICAgIG1fY3VzdG9tV3JpdGVyID0gV1RGTW92ZShhdHRhY2htZW50Lm1fY3VzdG9tV3Jp
dGVyKTsKIAogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXggZWZjZDY2M2Y4NDE2NGUyZjk2
YTY5YjNmYmNhYWQ4NTgxZWNkN2M5Ny4uYTRlZTU3NTBkM2IzM2M2OGQ5ZTY1ZTU3NzdlNDQwZGI1
YzgxODhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKQEAgLTIwNiw2ICsyMDYsOSBAQCBib29sIENvbm5lY3Rpb246OnByb2Nl
c3NNZXNzYWdlKCkKICAgICAgICAgICAgICAgICBmZCA9IG1fZmlsZURlc2NyaXB0b3JzW2ZkSW5k
ZXgrK107CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0g
PSBBdHRhY2htZW50KGZkKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEF0dGFj
aG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CisgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlciht
X3NvY2tldERlc2NyaXB0b3IpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0
dGFjaG1lbnQ6OlVuaW5pdGlhbGl6ZWQ6CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KCk7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC00
NzMsNiArNDc2LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZShVbml4TWVz
c2FnZSYgb3V0cHV0TWVzc2FnZSkKIAogICAgIFZlY3RvcjxBdHRhY2htZW50SW5mbz4gYXR0YWNo
bWVudEluZm87CiAgICAgTWFsbG9jUHRyPGNoYXI+IGF0dGFjaG1lbnRGREJ1ZmZlcjsKKyAgICBi
b29sIGhhc0N1c3RvbVdyaXRlckF0dGFjaG1lbnRzIHsgZmFsc2UgfTsKIAogICAgIGF1dG8mIGF0
dGFjaG1lbnRzID0gb3V0cHV0TWVzc2FnZS5hdHRhY2htZW50cygpOwogICAgIGlmICghYXR0YWNo
bWVudHMuaXNFbXB0eSgpKSB7CkBAIC01MTQsNiArNTE4LDkgQEAgYm9vbCBDb25uZWN0aW9uOjpz
ZW5kT3V0cHV0TWVzc2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVzc2FnZSkKICAgICAgICAgICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0TnVs
bCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBdHRhY2htZW50
OjpDdXN0b21Xcml0ZXJUeXBlOgorICAgICAgICAgICAgICAgIGhhc0N1c3RvbVdyaXRlckF0dGFj
aG1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QXR0YWNobWVudDo6VW5pbml0aWFsaXplZDoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC01ODEsNiArNTg4LDE2IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2Vu
ZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3NhZ2UpCiAgICAgICAgICAgICBX
VEZMb2dBbHdheXMoIkVycm9yIHNlbmRpbmcgSVBDIG1lc3NhZ2U6ICVzIiwgc3RyZXJyb3IoZXJy
bm8pKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAgIGlmIChoYXNDdXN0b21X
cml0ZXJBdHRhY2htZW50cykgeworICAgICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnQgOiBhdHRh
Y2htZW50cykgeworICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnQudHlwZSgpID09IEF0dGFjaG1l
bnQ6OkN1c3RvbVdyaXRlclR5cGUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJGdW5jPihhdHRhY2htZW50LmN1
c3RvbVdyaXRlcigpKSk7CisgICAgICAgICAgICAgICAgV1RGOjpnZXQ8QXR0YWNobWVudDo6Q3Vz
dG9tV3JpdGVyRnVuYz4oYXR0YWNobWVudC5jdXN0b21Xcml0ZXIoKSkobV9zb2NrZXREZXNjcmlw
dG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiB0cnVl
OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>