<?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>236246</bug_id>
          
          <creation_ts>2022-02-07 10:03:43 -0800</creation_ts>
          <short_desc>Non-default constructible, non-copy-assignable types cannot be decoded with IPC::Decoder</short_desc>
          <delta_ts>2022-02-10 01:29:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>fujii</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838228</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-07 10:03:43 -0800</bug_when>
    <thetext>Non-default constructible types cannot be decoded with IPC::Decoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838257</commentid>
    <comment_count>1</comment_count>
      <attachid>451127</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-07 11:21:09 -0800</bug_when>
    <thetext>Created attachment 451127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838429</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-07 16:41:34 -0800</bug_when>
    <thetext>I am curious, what is the error you get when using a non-default constructible type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838543</commentid>
    <comment_count>3</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-07 22:55:07 -0800</bug_when>
    <thetext>It&apos;s same as this

https://godbolt.org/z/87e49njsK

#include &lt;optional&gt;

struct WriteReference {
    const int version;
    const int reads;
    WriteReference(int v, int r) : version(v), reads(r) { }
};
int main(int, char**) {
    std::optional&lt;WriteReference&gt; o { std::in_place, 1, 2 };
    std::optional&lt;WriteReference&gt; r { WriteReference { 1, 2 }};
    std::optional&lt;WriteReference&gt; r2;
    r2 = o;

    return 0;
}


ource&gt;:12:8: error: object of type &apos;std::optional&lt;WriteReference&gt;&apos; cannot be assigned because its copy assignment operator is implicitly deleted
    r2 = o;
       ^
/opt/compiler-explorer/clang-11.0.1/bin/../include/c++/v1/optional:767:41: note: explicitly defaulted function was implicitly deleted here
    _LIBCPP_INLINE_VISIBILITY optional&amp; operator=(const optional&amp;) = default;
                                        ^
/opt/compiler-explorer/clang-11.0.1/bin/../include/c++/v1/optional:587:7: note: copy assignment operator of &apos;optional&lt;WriteReference&gt;&apos; is implicitly deleted because base class &apos;__optional_sfinae_assign_base_t&lt;WriteReference&gt;&apos; (aka &apos;__sfinae_assign_base&lt;(is_copy_constructible&lt;WriteReference&gt;::value &amp;&amp; is_copy_assignable&lt;WriteReference&gt;::value), (is_move_constructible&lt;WriteReference&gt;::value &amp;&amp; is_move_assignable&lt;WriteReference&gt;::value)&gt;&apos;) has a deleted copy assignment operator
    , private __optional_sfinae_assign_base_t&lt;_Tp&gt;
      ^
/opt/compiler-explorer/clang-11.0.1/bin/../include/c++/v1/__tuple:528:25: note: &apos;operator=&apos; has been explicitly marked deleted here
  __sfinae_assign_base&amp; operator=(__sfinae_assign_base const&amp;) = delete;
                
    ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838544</commentid>
    <comment_count>4</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-07 22:59:06 -0800</bug_when>
    <thetext>And to just avoid the discussion, I&apos;ll rename the bug to non-default constructible and non-copy-assignable. However, naturally even though the type would be copy-assignable it cannot be decoded if it is non-default constructible. This is because in order to copy over via assignment, std::optional first default-constructs something to copy over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838679</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-08 08:16:10 -0800</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #4)
&gt; And to just avoid the discussion, I&apos;ll rename the bug to non-default
&gt; constructible and non-copy-assignable. However, naturally even though the
&gt; type would be copy-assignable it cannot be decoded if it is non-default
&gt; constructible. This is because in order to copy over via assignment,
&gt; std::optional first default-constructs something to copy over.

This all seems fine, I am more curious than anything. Would using .emplace() also resolve the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838680</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-08 08:16:50 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; (In reply to Kimmo Kinnunen from comment #4)
&gt; &gt; And to just avoid the discussion, I&apos;ll rename the bug to non-default
&gt; &gt; constructible and non-copy-assignable. However, naturally even though the
&gt; &gt; type would be copy-assignable it cannot be decoded if it is non-default
&gt; &gt; constructible. This is because in order to copy over via assignment,
&gt; &gt; std::optional first default-constructs something to copy over.
&gt; 
&gt; This all seems fine, I am more curious than anything. Would using .emplace()
&gt; also resolve the issue?

And just to be clear, I am not arguing it would be better, just thinking out loud through questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838685</commentid>
    <comment_count>7</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-08 08:28:31 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; This all seems fine, I am more curious than anything. Would using .emplace()
&gt; also resolve the issue?

r2.emplace(std::move(*o)) when T is move-constructible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839567</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-10 01:28:20 -0800</bug_when>
    <thetext>Committed r289524 (247055@main): &lt;https://commits.webkit.org/247055@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839568</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-10 01:29:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/88742816&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451127</attachid>
            <date>2022-02-07 11:21:09 -0800</date>
            <delta_ts>2022-02-10 01:28:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236246-20220207212107.patch</filename>
            <type>text/plain</type>
            <size>7531</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwZGY4ZjQ0NDIwMTMyYzg5
ZmFkNWJhNjRjZjdlNDg4NDBiZWM2MTYuLjgxMjIxMjdmZTJjNDdhNDlhOWQ5MTY5YzQxOWI4Yjgy
M2Y2MThmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjItMDItMDcgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBOb24tZGVmYXVsdCBjb25z
dHJ1Y3RpYmxlIHR5cGVzIGNhbm5vdCBiZSBkZWNvZGVkIHdpdGggSVBDOjpEZWNvZGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgeWV0IGFub3Ro
ZXIgZGVjb2RlIGZ1bmN0aW9uOiBzdGQ6Om9wdGlvbmFsPFQ+IERlY29kZXI6OmRlY29kZTxUPigp
OworCisgICAgICAgIENvbnNpZGVyIHRoZSBwYXR0ZXJuOgorICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8VD4gdDsKKyAgICAgICAgICBkZWNvZGVyID4+IHQ7CisgICAgICAgICAgaWYgKCF0KQorICAg
ICAgICAgICAgLi4uLgorCisgICAgICAgIFRoZSBhYm92ZSBuZWNjZXNzaXRhdGVzIGRlZmF1bHQg
Y29uc3RydWN0aW9uIG9mIFQsIHNpbmNlIGl0IGNvbnRhaW5zCisgICAgICAgICAgc3RkOjpvcHRp
b25hbDxUPiB0OworICAgICAgICAgIHQgPSAgLi4uOyBhc3NpZ25tZW50LiBUaGlzIGFzc2lnbm1l
bnQgY2Fubm90IGJlIGVsaWRlZC4KKyAgICAgICAgQmV0dGVyIHBhdHRlcm4gaXM6CisgICAgICAg
ICAgYXV0byB0ID0gZGVjb2Rlci5kZWNvZGU8VD4oKTsKKworICAgICAgICBUaGlzIGlzIHNpZ25p
ZmljYW50IHdpdGggZm9yIHR5cGVzIHdpdGggY29uc3QgbWVtYmVyczoKKyAgICAgICAgICBzdHJ1
Y3QgVCB7CisgICAgICAgICAgICAgIGNvbnN0IHVpbnQ2NF90IHZlcnNpb247CisgICAgICAgICAg
fTsKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmg6CisgICAgICAgIChJUEM6OkRl
Y29kZXI6OmRlY29kZSk6CisgICAgICAgIChJUEM6OkRlY29kZXI6Om9wZXJhdG9yPj4pOgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6CisgICAgICAgIChJUEM6OmhhbmRs
ZU1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlV2FudHNDb25uZWN0aW9uKToK
KyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzKToKKyAgICAgICAgKElQQzo6
aGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2FudHNDb25uZWN0aW9uKToKKyAgICAgICAgKElQQzo6
aGFuZGxlTWVzc2FnZUFzeW5jKToKKyAgICAgICAgKElQQzo6aGFuZGxlTWVzc2FnZUFzeW5jV2Fu
dHNDb25uZWN0aW9uKToKKwogMjAyMi0wMi0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyODY5MzYpOiBDcmFzaCBpbiBXZWJLaXQ6Ok9y
aWdpblN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQnVja2V0OjpkZWxldGVMb2NhbFN0b3JhZ2VEYXRh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKaW5kZXggYTkzNTZlYTEwOGJhYTM2MGI4
ZWY5MzliMGE0NWUzYmJhYWMyM2E0YS4uZGYxNTIzMzRjZWI2NmMxMTRiNWU3YmI4ODdiNTlmNDFl
ZThhOWI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaApAQCAtOTcsOCArOTcs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBvcHRpb25h
bDsKLSAgICAgICAgICAgICp0aGlzID4+IG9wdGlvbmFsOworICAgICAgICAgICAgc3RkOjpvcHRp
b25hbDxUPiBvcHRpb25hbCB7IGRlY29kZTxUPigpIH07CiAgICAgICAgICAgICBpZiAoVU5MSUtF
TFkoIW9wdGlvbmFsKSkgewogICAgICAgICAgICAgICAgIG1hcmtJbnZhbGlkKCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEwLDIwICsxMDksMjkgQEAgcHVibGljOgogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBEZWNvZGVyJiBvcGVyYXRvcj4+KHN0ZDo6b3B0
aW9uYWw8VD4mIHQpCisgICAgeworICAgICAgICB0ID0gZGVjb2RlPFQ+KCk7CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvLyBUaGUgcHJlZmVycmVkIGRlY29kZSgpIGZ1bmN0
aW9uLiBDYW4gZGVjb2RlIFQgd2hpY2ggaXMgbm90IGRlZmF1bHQgY29uc3RydWN0aWJsZSB3aGVu
IFQKKyAgICAvLyBoYXMgYSAgbW9kZXJuIGRlY29kZXIsIGUuZyBkZWNvZGluZyBmdW5jdGlvbiB0
aGF0IHJldHVybnMgc3RkOjpvcHRpb25hbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAg
IHN0ZDo6b3B0aW9uYWw8VD4gZGVjb2RlKCkKICAgICB7CiAgICAgICAgIHVzaW5nIEltcGwgPSBB
cmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8
VD4+LCB2b2lkPjsKICAgICAgICAgaWYgY29uc3RleHByKEhhc01vZGVybkRlY29kZXI8VCwgSW1w
bD46OnZhbHVlKSB7Ci0gICAgICAgICAgICB0ID0gSW1wbDo6ZGVjb2RlKCp0aGlzKTsKKyAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gdCB7IEltcGw6OmRlY29kZSgqdGhpcykgfTsKICAgICAg
ICAgICAgIGlmIChVTkxJS0VMWSghdCkpCiAgICAgICAgICAgICAgICAgbWFya0ludmFsaWQoKTsK
KyAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVCB2
OwotICAgICAgICAgICAgaWYgKExJS0VMWShJbXBsOjpkZWNvZGUoKnRoaXMsIHYpKSkKLSAgICAg
ICAgICAgICAgICB0ID0gV1RGTW92ZSh2KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBtYXJrSW52YWxpZCgpOworICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiB0IHsgVCB7
IH0gfTsKKyAgICAgICAgICAgIGlmIChMSUtFTFkoSW1wbDo6ZGVjb2RlKCp0aGlzLCAqdCkpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgbWFya0ludmFsaWQoKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
ICp0aGlzOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKaW5kZXggNjA0MWJkY2QyZDJkYmM3MmYzM2I0
YjhmMmJiNTFlODBiMjRiOTYyOS4uN2IxMjljYmM3ZWEwNzgyZDAzOTFhODFlODU1YTk3Y2Y2NGQy
ZWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2Fn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAt
MTg4LDggKzE4OCw3IEBAIHN0cnVjdCBDb2RpbmdUeXBlPHN0ZDo6dHVwbGU8VHMuLi4+PiB7CiB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KIHZvaWQgaGFuZGxl
TWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgQ29kaW5nVHlw
ZTx0eXBlbmFtZSBUOjpBcmd1bWVudHM+OjpUeXBlPiBhcmd1bWVudHM7Ci0gICAgZGVjb2RlciA+
PiBhcmd1bWVudHM7CisgICAgYXV0byBhcmd1bWVudHMgPSBkZWNvZGVyLmRlY29kZTx0eXBlbmFt
ZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGU+KCk7CiAgICAgaWYgKFVO
TElLRUxZKCFhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIwMCw4ICsxOTksNyBA
QCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVj
b2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
QywgdHlwZW5hbWUgTUY+CiB2b2lkIGhhbmRsZU1lc3NhZ2VXYW50c0Nvbm5lY3Rpb24oQ29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6
QXJndW1lbnRzPjo6VHlwZT4gYXJndW1lbnRzOwotICAgIGRlY29kZXIgPj4gYXJndW1lbnRzOwor
ICAgIGF1dG8gYXJndW1lbnRzID0gZGVjb2Rlci5kZWNvZGU8dHlwZW5hbWUgQ29kaW5nVHlwZTx0
eXBlbmFtZSBUOjpBcmd1bWVudHM+OjpUeXBlPigpOwogICAgIGlmIChVTkxJS0VMWSghYXJndW1l
bnRzKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTIsOCArMjEwLDcgQEAgdm9pZCBoYW5kbGVN
ZXNzYWdlV2FudHNDb25uZWN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRl
Y29kZXIsIEMqIG8KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1G
PgogYm9vbCBoYW5kbGVNZXNzYWdlU3luY2hyb25vdXMoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPEVuY29kZXI+JiByZXBseUVuY29kZXIsIEMqIG9i
amVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBDb2RpbmdU
eXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGU+IGFyZ3VtZW50czsKLSAgICBkZWNvZGVy
ID4+IGFyZ3VtZW50czsKKyAgICBhdXRvIGFyZ3VtZW50cyA9IGRlY29kZXIuZGVjb2RlPHR5cGVu
YW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZT4oKTsKICAgICBpZiAo
VU5MSUtFTFkoIWFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjI5LDgg
KzIyNiw3IEBAIGJvb2wgaGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzKENvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIERlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KIGJvb2wgaGFuZGxlTWVzc2FnZVN5bmNocm9ub3VzV2Fu
dHNDb25uZWN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRlY29kZXIsIFVu
aXF1ZVJlZjxFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewotICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBlbmFtZSBUOjpBcmd1
bWVudHM+OjpUeXBlPiBhcmd1bWVudHM7Ci0gICAgZGVjb2RlciA+PiBhcmd1bWVudHM7CisgICAg
YXV0byBhcmd1bWVudHMgPSBkZWNvZGVyLmRlY29kZTx0eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVu
YW1lIFQ6OkFyZ3VtZW50cz46OlR5cGU+KCk7CiAgICAgaWYgKFVOTElLRUxZKCFhcmd1bWVudHMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0yNTAsOCArMjQ2LDcgQEAgdm9pZCBo
YW5kbGVNZXNzYWdlU3luY2hyb25vdXMoU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmIGNvbm5l
Y3Rpb24sIERlY29kZXImIGQKICAgICBpZiAoVU5MSUtFTFkoIWRlY29kZXIuZGVjb2RlKHN5bmNS
ZXF1ZXN0SUQpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGU+IGFyZ3VtZW50czsKLSAg
ICBkZWNvZGVyID4+IGFyZ3VtZW50czsKKyAgICBhdXRvIGFyZ3VtZW50cyA9IGRlY29kZXIuZGVj
b2RlPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZT4oKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjY2
LDEzICsyNjEsMTEgQEAgdm9pZCBoYW5kbGVNZXNzYWdlU3luY2hyb25vdXMoU3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2UmIGNvbm5lY3Rpb24sIERlY29kZXImIGQKIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgogdm9pZCBoYW5kbGVNZXNzYWdlQXN5bmMoQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsaXN0ZW5lcklEOwotICAgIGRl
Y29kZXIgPj4gbGlzdGVuZXJJRDsKLSAgICBpZiAoIWxpc3RlbmVySUQpCisgICAgYXV0byBsaXN0
ZW5lcklEID0gZGVjb2Rlci5kZWNvZGU8dWludDY0X3Q+KCk7CisgICAgaWYgKFVOTElLRUxZKCFs
aXN0ZW5lcklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGU+IGFyZ3VtZW50czsKLSAg
ICBkZWNvZGVyID4+IGFyZ3VtZW50czsKKyAgICBhdXRvIGFyZ3VtZW50cyA9IGRlY29kZXIuZGVj
b2RlPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZT4oKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjg4
LDEzICsyODEsMTEgQEAgdm9pZCBoYW5kbGVNZXNzYWdlQXN5bmMoQ29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRgogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CiB2b2lkIGhhbmRsZU1lc3NhZ2VBc3luY1dhbnRz
Q29ubmVjdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNvZGVyLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGxpc3Rl
bmVySUQ7Ci0gICAgZGVjb2RlciA+PiBsaXN0ZW5lcklEOwotICAgIGlmICghbGlzdGVuZXJJRCkK
KyAgICBhdXRvIGxpc3RlbmVySUQgPSBkZWNvZGVyLmRlY29kZTx1aW50NjRfdD4oKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIWxpc3RlbmVySUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZT4g
YXJndW1lbnRzOwotICAgIGRlY29kZXIgPj4gYXJndW1lbnRzOworICAgIGF1dG8gYXJndW1lbnRz
ID0gZGVjb2Rlci5kZWNvZGU8dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBlbmFtZSBUOjpBcmd1bWVu
dHM+OjpUeXBlPigpOwogICAgIGlmIChVTkxJS0VMWSghYXJndW1lbnRzKSkKICAgICAgICAgcmV0
dXJuOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>