From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9130 invoked by alias); 22 Mar 2018 03:45:57 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 4762 invoked by uid 89); 22 Mar 2018 03:45:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=winning, pretend, elide, cxx17 X-HELO: mail-ot0-f169.google.com Received: from mail-ot0-f169.google.com (HELO mail-ot0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Mar 2018 03:45:45 +0000 Received: by mail-ot0-f169.google.com with SMTP id h8-v6so8022518oti.6 for ; Wed, 21 Mar 2018 20:45:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=w+In1NtJm9OwVijoiY7heRWpd5ff4KM/DmnBXKdAy1Y=; b=uPeLsgNQnQKwVmTdrt48TYyAHf6XBzm0olv+YdWq0YDVmG8vupYzCx7jkEpQeWx3pw mwpcH5vxZIor8WXT57n3hSLRN28oqK+Mln7XzZbl9j7FIXG1wgdrM+pZdza4NtRxXvSp /X7qk9j/8n0nHZTsN9TfdLr7z8JC7diEjdxaNbbTydJoQIJHXnw+tlXSrP2nni/ahkBT CtVj6Zb2gEL8Ukha4tdfPf9QgO88TvC0ExActp8OAaLrribsuC2262Wg54n5mV/ha6vG c0ELLI6aBKb63Bi8nDu/jwiWw0JvPo0xm+SekMv2jJQqRBn2hrjPemZIPmh224H+qdWy rXfw== X-Gm-Message-State: AElRT7HQpqgCGTuy15CuEAKNLdWcb8UjqtpRzFUySzI73apR4kmC7xx9 vA/tSAISKrs7LJABNxZMHLjwojpuSgctWFGihEZE1R8H X-Google-Smtp-Source: AG47ELs60fpj2qRSE+QarvkplY14ibs5tP+UngHl1qiMnA6zQHop1IrQ07O4FJXDVX4kZEJz/rbLncALzH0KJqimST0= X-Received: by 2002:a9d:29ae:: with SMTP id n43-v6mr16079313otb.313.1521690343116; Wed, 21 Mar 2018 20:45:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.201.7.234 with HTTP; Wed, 21 Mar 2018 20:45:22 -0700 (PDT) From: Jason Merrill Date: Thu, 22 Mar 2018 03:52:00 -0000 Message-ID: Subject: C++ PATCH for c++/81311, wrong C++17 overload resolution To: gcc-patches List Content-Type: multipart/mixed; boundary="0000000000005c4d7a0567f82488" X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg01154.txt.bz2 --0000000000005c4d7a0567f82488 Content-Type: text/plain; charset="UTF-8" Content-length: 388 Here, the code in build_special_member_function to avoid involving the copy constructor in initialization from a prvalue was causing wrongly different overload resolution. To fix it, instead of trying to produce a prvalue there, we now go through normal overload resolution and then specifically avoid actually using the copy constructor. Tested x86_64-pc-linux-gnu, applying to trunk. --0000000000005c4d7a0567f82488 Content-Type: text/x-patch; charset="US-ASCII"; name="81311.diff" Content-Disposition: attachment; filename="81311.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jf1z4lux0 Content-length: 9712 Y29tbWl0IDY0MmVjZjQwMjcwNDgzYjI4MTUzNTViZWUyZjY2MGUyNzFjMmVi YWEKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFdlZCBNYXIgMjEgMTQ6MzE6MzAgMjAxOCAtMDQwMAoKICAgICAg ICAgICAgUFIgYysrLzgxMzExIC0gd3JvbmcgQysrMTcgb3ZlcmxvYWQgcmVz b2x1dGlvbi4KICAgIAogICAgICAgICAgICAqIGNhbGwuYyAoYnVpbGRfdXNl cl90eXBlX2NvbnZlcnNpb25fMSk6IFJlbW92ZSBDKysxNyBjb2RlLgogICAg ICAgICAgICAoY29udl9iaW5kc19yZWZfdG9fcHJ2YWx1ZSk6IE5ldy4KICAg ICAgICAgICAgKGJ1aWxkX292ZXJfY2FsbCk6IEhhbmRsZSBDKysxNyBjb3B5 IGVsaXNpb24uCiAgICAgICAgICAgIChidWlsZF9zcGVjaWFsX21lbWJlcl9j YWxsKTogT25seSBkbyBDKysxNyBjb3B5IGVsaXNpb24gaGVyZSBpZiB0aGUK ICAgICAgICAgICAgYXJndW1lbnQgaXMgYWxyZWFkeSB0aGUgcmlnaHQgdHlw ZS4KCmRpZmYgLS1naXQgYS9nY2MvY3AvY2FsbC5jIGIvZ2NjL2NwL2NhbGwu YwppbmRleCBkYmRiOGQ1ODEyZC4uYzJmYjhiYmQ1OTUgMTAwNjQ0Ci0tLSBh L2djYy9jcC9jYWxsLmMKKysrIGIvZ2NjL2NwL2NhbGwuYwpAQCAtMzc0OCwx NCArMzc0OCw2IEBAIGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEgKHRy ZWUgdG90eXBlLCB0cmVlIGV4cHIsIGludCBmbGFncywKICAgICAgICBjcmVh dGluZyBhIGdhcmJhZ2UgQkFTRUxJTks7IGNvbnN0cnVjdG9ycyBjYW4ndCBi ZSBpbmhlcml0ZWQuICAqLwogICAgIGN0b3JzID0gZ2V0X2NsYXNzX2JpbmRp bmcgKHRvdHlwZSwgY29tcGxldGVfY3Rvcl9pZGVudGlmaWVyKTsKIAotICAv KiBGSVhNRSBQMDEzNSBkb2Vzbid0IHNheSB3aGF0IHRvIGRvIGluIEMrKzE3 IGFib3V0IGxpc3QtaW5pdGlhbGl6YXRpb24gZnJvbQotICAgICBhIHNpbmds ZSBlbGVtZW50LiAgRm9yIG5vdywgbGV0J3MgaGFuZGxlIGNvbnN0cnVjdG9y cyBhcyBiZWZvcmUgYW5kIGFsc28KLSAgICAgY29uc2lkZXIgY29udmVyc2lv biBvcGVyYXRvcnMgZnJvbSB0aGUgZWxlbWVudC4gICovCi0gIGlmIChjeHhf ZGlhbGVjdCA+PSBjeHgxNwotICAgICAgJiYgQlJBQ0VfRU5DTE9TRURfSU5J VElBTElaRVJfUCAoZXhwcikKLSAgICAgICYmIENPTlNUUlVDVE9SX05FTFRT IChleHByKSA9PSAxKQotICAgIGZyb210eXBlID0gVFJFRV9UWVBFIChDT05T VFJVQ1RPUl9FTFQgKGV4cHIsIDApLT52YWx1ZSk7Ci0KICAgaWYgKE1BWUJF X0NMQVNTX1RZUEVfUCAoZnJvbXR5cGUpKQogICAgIHsKICAgICAgIHRyZWUg dG9fbm9ucmVmID0gbm9uX3JlZmVyZW5jZSAodG90eXBlKTsKQEAgLTM4MzIs NyArMzgyNCw2IEBAIGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEgKHRy ZWUgdG90eXBlLCB0cmVlIGV4cHIsIGludCBmbGFncywKICAgaWYgKGNvbnZf Zm5zKQogICAgIHsKICAgICAgIGlmIChCUkFDRV9FTkNMT1NFRF9JTklUSUFM SVpFUl9QIChleHByKSkKLQkvKiBGSVhNRSBzZWUgYWJvdmUgYWJvdXQgQysr MTcuICAqLwogCWZpcnN0X2FyZyA9IENPTlNUUlVDVE9SX0VMVCAoZXhwciwg MCktPnZhbHVlOwogICAgICAgZWxzZQogCWZpcnN0X2FyZyA9IGV4cHI7CkBA IC03NjA0LDYgKzc1OTUsMjYgQEAgdW5zYWZlX2NvcHlfZWxpc2lvbl9wICh0 cmVlIHRhcmdldCwgdHJlZSBleHApCiAJICAmJiAhQUdHUl9JTklUX1ZJQV9D VE9SX1AgKGluaXQpKTsKIH0KIAorLyogVHJ1ZSBpZmYgQyBpcyBhIGNvbnZl cnNpb24gdGhhdCBiaW5kcyBhIHJlZmVyZW5jZSB0byBhIHBydmFsdWUuICAq LworCitzdGF0aWMgYm9vbAorY29udl9iaW5kc19yZWZfdG9fcHJ2YWx1ZSAo Y29udmVyc2lvbiAqYykKK3sKKyAgaWYgKGMtPmtpbmQgIT0gY2tfcmVmX2Jp bmQpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAoYy0+bmVlZF90ZW1wb3Jh cnlfcCkKKyAgICByZXR1cm4gdHJ1ZTsKKworICBjID0gbmV4dF9jb252ZXJz aW9uIChjKTsKKworICBpZiAoYy0+a2luZCA9PSBja19ydmFsdWUpCisgICAg cmV0dXJuIHRydWU7CisgIGlmIChjLT5raW5kID09IGNrX3VzZXIgJiYgVFJF RV9DT0RFIChjLT50eXBlKSAhPSBSRUZFUkVOQ0VfVFlQRSkKKyAgICByZXR1 cm4gdHJ1ZTsKKworICByZXR1cm4gZmFsc2U7Cit9CisKIC8qIFN1YnJvdXRp bmUgb2YgdGhlIHZhcmlvdXMgYnVpbGRfKl9jYWxsIGZ1bmN0aW9ucy4gIE92 ZXJsb2FkIHJlc29sdXRpb24KICAgIGhhcyBjaG9zZW4gYSB3aW5uaW5nIGNh bmRpZGF0ZSBDQU5EOyBidWlsZCB1cCBhIENBTExfRVhQUiBhY2NvcmRpbmds eS4KICAgIEFSR1MgaXMgYSBUUkVFX0xJU1Qgb2YgdGhlIHVuY29udmVydGVk IGFyZ3VtZW50cyB0byB0aGUgY2FsbC4gIEZMQUdTIGlzIGEKQEAgLTc2ODIs NiArNzY5MywyMiBAQCBidWlsZF9vdmVyX2NhbGwgKHN0cnVjdCB6X2NhbmRp ZGF0ZSAqY2FuZCwgaW50IGZsYWdzLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFp bikKIAlqb3VzdCAoY2FuZCwgdy0+bG9zZXIsIDEsIGNvbXBsYWluKTsKICAg ICB9CiAKKyAgLyogQ29yZSBpc3N1ZSAyMzI3OiBQMDEzNSBkb2Vzbid0IHNh eSBob3cgdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZQorICAgICBhcmd1 bWVudCB0byB0aGUgY29weSBjb25zdHJ1Y3RvciBlbmRzIHVwIGJlaW5nIGEg cHJ2YWx1ZSBhZnRlcgorICAgICBjb252ZXJzaW9uLiAgTGV0J3MgZG8gdGhl IG5vcm1hbCBwcm9jZXNzaW5nLCBidXQgcHJldGVuZCB3ZSBhcmVuJ3QKKyAg ICAgYWN0dWFsbHkgdXNpbmcgdGhlIGNvcHkgY29uc3RydWN0b3IuICAqLwor ICBib29sIGZvcmNlX2VsaWRlID0gZmFsc2U7CisgIGlmIChjeHhfZGlhbGVj dCA+PSBjeHgxNworICAgICAgJiYgY2FuZC0+bnVtX2NvbnZzID09IDEKKyAg ICAgICYmIERFQ0xfQ09NUExFVEVfQ09OU1RSVUNUT1JfUCAoZm4pCisgICAg ICAmJiAoREVDTF9DT1BZX0NPTlNUUlVDVE9SX1AgKGZuKQorCSAgfHwgREVD TF9NT1ZFX0NPTlNUUlVDVE9SX1AgKGZuKSkKKyAgICAgICYmIGNvbnZfYmlu ZHNfcmVmX3RvX3BydmFsdWUgKGNvbnZzWzBdKSkKKyAgICB7CisgICAgICBm b3JjZV9lbGlkZSA9IHRydWU7CisgICAgICBnb3RvIG5vdF9yZWFsbHlfdXNl ZDsKKyAgICB9CisKICAgLyogT0ssIHdlJ3JlIGFjdHVhbGx5IGNhbGxpbmcg dGhpcyBpbmhlcml0ZWQgY29uc3RydWN0b3I7IHNldCBpdHMgZGVsZXRlZG5l c3MKICAgICAgYXBwcm9wcmlhdGVseS4gIFdlIGNhbiBnZXQgYXdheSB3aXRo IGRvaW5nIHRoaXMgaGVyZSBiZWNhdXNlIGNhbGxpbmcgaXMKICAgICAgdGhl IG9ubHkgd2F5IHRvIHJlZmVyIHRvIGEgY29uc3RydWN0b3IuICAqLwpAQCAt Nzc0Niw2ICs3NzczLDggQEAgYnVpbGRfb3Zlcl9jYWxsIChzdHJ1Y3Qgel9j YW5kaWRhdGUgKmNhbmQsIGludCBmbGFncywgdHN1YnN0X2ZsYWdzX3QgY29t cGxhaW4pCiAgICAgICAvKiBlbHNlIGNvbnRpbnVlIHRvIGdldCBjb252ZXJz aW9uIGVycm9yLiAgKi8KICAgICB9CiAKKyBub3RfcmVhbGx5X3VzZWQ6CisK ICAgLyogTjMyNzYgbWFnaWMgZG9lc24ndCBhcHBseSB0byBuZXN0ZWQgY2Fs bHMuICAqLwogICB0c3Vic3RfZmxhZ3NfdCBkZWNsdHlwZV9mbGFnID0gKGNv bXBsYWluICYgdGZfZGVjbHR5cGUpOwogICBjb21wbGFpbiAmPSB+dGZfZGVj bHR5cGU7CkBAIC04MDY2LDcgKzgwOTUsNyBAQCBidWlsZF9vdmVyX2NhbGwg KHN0cnVjdCB6X2NhbmRpZGF0ZSAqY2FuZCwgaW50IGZsYWdzLCB0c3Vic3Rf ZmxhZ3NfdCBjb21wbGFpbikKICAgLyogQXZvaWQgYWN0dWFsbHkgY2FsbGlu ZyBjb3B5IGNvbnN0cnVjdG9ycyBhbmQgY29weSBhc3NpZ25tZW50IG9wZXJh dG9ycywKICAgICAgaWYgcG9zc2libGUuICAqLwogCi0gIGlmICghIGZsYWdf ZWxpZGVfY29uc3RydWN0b3JzKQorICBpZiAoISBmbGFnX2VsaWRlX2NvbnN0 cnVjdG9ycyAmJiAhZm9yY2VfZWxpZGUpCiAgICAgLyogRG8gdGhpbmdzIHRo ZSBoYXJkIHdheS4gICovOwogICBlbHNlIGlmIChjYW5kLT5udW1fY29udnMg PT0gMSAKICAgICAgICAgICAgJiYgKERFQ0xfQ09QWV9DT05TVFJVQ1RPUl9Q IChmbikgCkBAIC04MDc0LDcgKzgxMDMsNyBAQCBidWlsZF9vdmVyX2NhbGwg KHN0cnVjdCB6X2NhbmRpZGF0ZSAqY2FuZCwgaW50IGZsYWdzLCB0c3Vic3Rf ZmxhZ3NfdCBjb21wbGFpbikKIAkgICAvKiBJdCdzIHVuc2FmZSB0byBlbGlk ZSB0aGUgY29uc3RydWN0b3Igd2hlbiBoYW5kbGluZwogCSAgICAgIGEgbm9l eGNlcHQtZXhwcmVzc2lvbiwgaXQgbWF5IGV2YWx1YXRlIHRvIHRoZSB3cm9u ZwogCSAgICAgIHZhbHVlIChjKysvNTMwMjUpLiAgKi8KLQkgICAmJiBjcF9u b2V4Y2VwdF9vcGVyYW5kID09IDApCisJICAgJiYgKGZvcmNlX2VsaWRlIHx8 IGNwX25vZXhjZXB0X29wZXJhbmQgPT0gMCkpCiAgICAgewogICAgICAgdHJl ZSB0YXJnOwogICAgICAgdHJlZSBhcmcgPSBhcmdhcnJheVtudW1fYXJ0aWZp Y2lhbF9wYXJtc19mb3IgKGZuKV07CkBAIC04MTEyLDYgKzgxNDEsNyBAQCBi dWlsZF9vdmVyX2NhbGwgKHN0cnVjdCB6X2NhbmRpZGF0ZSAqY2FuZCwgaW50 IGZsYWdzLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbikKIAkgc3Vib2JqZWN0 LiAgKi8KICAgICAgIGlmIChDSEVDS0lOR19QICYmIGN4eF9kaWFsZWN0ID49 IGN4eDE3KQogCWdjY19hc3NlcnQgKFRSRUVfQ09ERSAoYXJnKSAhPSBUQVJH RVRfRVhQUgorCQkgICAgfHwgZm9yY2VfZWxpZGUKIAkJICAgIC8qIEl0J3Mg ZnJvbSBiaW5kaW5nIHRoZSByZWYgcGFybSB0byBhIHBhY2tlZCBmaWVsZC4g Ki8KIAkJICAgIHx8IGNvbnZzWzBdLT5uZWVkX3RlbXBvcmFyeV9wCiAJCSAg ICB8fCBzZWVuX2Vycm9yICgpCkBAIC04MTIwLDcgKzgxNTAsNyBAQCBidWls ZF9vdmVyX2NhbGwgKHN0cnVjdCB6X2NhbmRpZGF0ZSAqY2FuZCwgaW50IGZs YWdzLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbikKIAogICAgICAgLyogW2Ns YXNzLmNvcHldOiB0aGUgY29weSBjb25zdHJ1Y3RvciBpcyBpbXBsaWNpdGx5 IGRlZmluZWQgZXZlbiBpZgogCSB0aGUgaW1wbGVtZW50YXRpb24gZWxpZGVk IGl0cyB1c2UuICAqLwotICAgICAgaWYgKCF0cml2aWFsKQorICAgICAgaWYg KCF0cml2aWFsICYmICFmb3JjZV9lbGlkZSkKIAl7CiAJICBpZiAoIW1hcmtf dXNlZCAoZm4sIGNvbXBsYWluKSAmJiAhKGNvbXBsYWluICYgdGZfZXJyb3Ip KQogCSAgICByZXR1cm4gZXJyb3JfbWFya19ub2RlOwpAQCAtODIwNyw2ICs4 MjM3LDggQEAgYnVpbGRfb3Zlcl9jYWxsIChzdHJ1Y3Qgel9jYW5kaWRhdGUg KmNhbmQsIGludCBmbGFncywgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4pCiAJ fQogICAgIH0KIAorICBnY2NfYXNzZXJ0ICghZm9yY2VfZWxpZGUpOworCiAg IGlmICghYWxyZWFkeV91c2VkCiAgICAgICAmJiAhbWFya191c2VkIChmbiwg Y29tcGxhaW4pKQogICAgIHJldHVybiBlcnJvcl9tYXJrX25vZGU7CkBAIC04 ODI0LDIzICs4ODU2LDExIEBAIGJ1aWxkX3NwZWNpYWxfbWVtYmVyX2NhbGwg KHRyZWUgaW5zdGFuY2UsIHRyZWUgbmFtZSwgdmVjPHRyZWUsIHZhX2djPiAq KmFyZ3MsCiAgICAgewogICAgICAgdHJlZSBhcmcgPSAoKiphcmdzKVswXTsK IAotICAgICAgLyogRklYTUUgUDAxMzUgZG9lc24ndCBzYXkgaG93IHRvIGhh bmRsZSBkaXJlY3QgaW5pdGlhbGl6YXRpb24gZnJvbSBhCi0JIHR5cGUgd2l0 aCBhIHN1aXRhYmxlIGNvbnZlcnNpb24gb3BlcmF0b3IuICBMZXQncyBoYW5k bGUgaXQgbGlrZQotCSBjb3B5LWluaXRpYWxpemF0aW9uLCBidXQgYWxsb3dp bmcgZXhwbGljdCBjb252ZXJzaW9ucy4gICovCi0gICAgICB0c3Vic3RfZmxh Z3NfdCBzdWJfY29tcGxhaW4gPSB0Zl93YXJuaW5nOwotICAgICAgaWYgKCFp c19kdW1teV9vYmplY3QgKGluc3RhbmNlKSkKLQkvKiBJZiB3ZSdyZSB1c2lu ZyB0aGlzIHRvIGluaXRpYWxpemUgYSBub24tdGVtcG9yYXJ5IG9iamVjdCwg ZG9uJ3QKLQkgICByZXF1aXJlIHRoZSBkZXN0cnVjdG9yIHRvIGJlIGFjY2Vz c2libGUuICAqLwotCXN1Yl9jb21wbGFpbiB8PSB0Zl9ub19jbGVhbnVwOwog ICAgICAgaWYgKEJSQUNFX0VOQ0xPU0VEX0lOSVRJQUxJWkVSX1AgKGFyZykK LQkgICYmICFDT05TVFJVQ1RPUl9JU19ESVJFQ1RfSU5JVCAoYXJnKSkKLQkv KiBBbiBpbml0LWxpc3QgYXJnIG5lZWRzIHRvIGNvbnZlcnQgdG8gdGhlIHBh cm0gdHlwZSAoODM5MzcpLCBzbyBmYWxsCi0JICAgdGhyb3VnaCB0byBub3Jt YWwgcHJvY2Vzc2luZy4gICovCi0JYXJnID0gZXJyb3JfbWFya19ub2RlOwot ICAgICAgZWxzZSBpZiAoIXJlZmVyZW5jZV9yZWxhdGVkX3AgKGNsYXNzX3R5 cGUsIFRSRUVfVFlQRSAoYXJnKSkpCi0JYXJnID0gcGVyZm9ybV9pbXBsaWNp dF9jb252ZXJzaW9uX2ZsYWdzIChjbGFzc190eXBlLCBhcmcsCi0JCQkJCQkg c3ViX2NvbXBsYWluLAotCQkJCQkJIGZsYWdzKTsKKwkgICYmICFUWVBFX0hB U19MSVNUX0NUT1IgKGNsYXNzX3R5cGUpCisJICAmJiBDT05TVFJVQ1RPUl9O RUxUUyAoYXJnKSA9PSAxKQorCWFyZyA9IENPTlNUUlVDVE9SX0VMVCAoYXJn LCAwKS0+dmFsdWU7CisKICAgICAgIGlmICgoVFJFRV9DT0RFIChhcmcpID09 IFRBUkdFVF9FWFBSCiAJICAgfHwgVFJFRV9DT0RFIChhcmcpID09IENPTlNU UlVDVE9SKQogCSAgJiYgKHNhbWVfdHlwZV9pZ25vcmluZ190b3BfbGV2ZWxf cXVhbGlmaWVyc19wCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5k Zy9vdmVybG9hZC9jb252LW9wMi5DIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv b3ZlcmxvYWQvY29udi1vcDIuQwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZThlNTMzYjFkYzUKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdmVybG9hZC9jb252LW9wMi5DCkBA IC0wLDAgKzEsMjMgQEAKKy8vIFBSIGMrKy84MTMxMQorLy8geyBkZy1kbyBs aW5rIH0KKworc3RydWN0IGZ1bmN0aW9uCit7CisgIHRlbXBsYXRlPGNsYXNz IEY+IGZ1bmN0aW9uKEYpIHsgfQorfTsKKworc3RydWN0IHJlZgoreworICBv cGVyYXRvciBmdW5jdGlvbiYoKSBjb25zdDsKK30gcjsKKworc3RydWN0IHZh bAoreworICBvcGVyYXRvciBmdW5jdGlvbigpIGNvbnN0OworfSB2OworCitp bnQgbWFpbigpCit7CisgIGZ1bmN0aW9uIGYxKHIpOworICBmdW5jdGlvbiBm Mih2KTsKK30K --0000000000005c4d7a0567f82488--