From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 0B9533858CD1; Thu, 26 Oct 2023 11:24:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0B9533858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0B9533858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.141.98 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698319453; cv=none; b=I4mTQ3VVXETSQpID1OctaZXdKxf618dzFWrTcCBbYX8uCa+cMdcvQ3/ECynCmlcOJe4Sf1KEZQdJy2mNn0Tt8nztx1p2iap4nR3hO9WTSMfl8vCmvVOCXJ99G+3l7uFxG32dN34btp7qK0Jor+Jeadmwlw17712KxNeiM2fUjSk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698319453; c=relaxed/simple; bh=x0mF0kFXbUy48SsuY8Gx1KHUZ3JGq9vQhTEv3sjF37w=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=YrekfjztcgUsrkMF6//kZzTg2bWWVsmCVIDQ7rquUcMG4q4fvsGE6gAXdJFBdUPaWwFWcxm8d69tZ/QI8/abLrHFoXQWl+r/+NlAKTbUba/F06IWVEBRhkV0jl7XH49604ZYZ2ahHp/H7/49KoxRcyeqAJfEwN24emz8xTjAgrA= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: 6OphhknxR0yZnt7P4J2XLQ== X-CSE-MsgGUID: Ws8r7s5gSyWZ2BTNbX9PFA== X-IronPort-AV: E=Sophos;i="6.03,253,1694764800"; d="scan'208,223";a="23369487" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 26 Oct 2023 03:24:09 -0800 IronPort-SDR: WR8VPbuHFQEZjyT9ZwxF5LdsU5j62TeXc5/IB63QBXTiP6/NvOz2Bji+qKr8KNXllTjEDTTZO6 6w3opFVXLfFIwY4J0oqIaVOnFVhByPwDaEoQsdSPa0QUDIiDM9aQinPZXjlh8Dhnr/5utMGK1f cA+CAOQZc9Gr8VT6uTib1/Q4n+hnqh/8DlBMWHSviOk7zyB0su7b2hNC1IXinHM1cH3BLviNBF 82xVxWiTCw+dgQWS+dONk7MnCZrC69/h5pq0Wz4gkEYdwv4RePHHNbuvhmQESnwIznIjcsywEQ zJQ= Content-Type: multipart/mixed; boundary="------------LapmQKDd2LCvVpCWqiU67OZH" Message-ID: <4cec8ab5-9300-4628-a945-24db1249edf4@codesourcery.com> Date: Thu, 26 Oct 2023 13:24:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Fortran: Fix incompatible types between INTEGER(8) and TYPE(c_ptr) Content-Language: en-GB, fr To: Tobias Burnus , , gcc-patches References: <6fc6a877-2dc7-4551-b141-fd117c66ecfa@codesourcery.com> <78236b34-a5bd-4ccf-a197-94bee00b8a2b@codesourcery.com> From: Paul-Antoine Arras In-Reply-To: <78236b34-a5bd-4ccf-a197-94bee00b8a2b@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------LapmQKDd2LCvVpCWqiU67OZH Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit Hi Tobias, Please see the updated patch attached incorporating your input and details below. On 24/10/2023 18:12, you wrote: > On 20.10.23 16:02, Paul-Antoine Arras wrote: >> gcc/fortran/ChangeLog: >> >>       * interface.cc (gfc_compare_types): Return true in this situation. > > That's a bad description. It makes sense when reading the commit log but > if you > only read gcc/fortran/ChangeLog, 'this situation' is a dangling reference. Updated Changelog with a more helpful description. >>   gcc/fortran/ChangeLog.omp                    |  5 ++ >>   gcc/testsuite/ChangeLog.omp                  |  4 ++ > > On mainline, the ChangeLog not ChangeLog.omp is used. This changelog is > automatically > filled by the data in the commit log. Thus, no need to include it in the > patch. Removed ChangeLog.omp from the patch. > See attached patch for a combined version, which checks now > whether from_intmod == INTMOD_ISO_C_BINDING and then compares > the names (to distinguish c_ptr and c_funptr). Those are unaffected > by 'use' renames, hence, we should be fine. Added the proposed diff for interface.cc and misc.cc to the patch. > Additionally, I think it would be good to have a testcase which checks for >   c_funptr vs. c_ptr > mismatch. Added new testcase c_ptr_tests_21.f90 to check that incompatibilities between c_funptr vs. c_ptr are properly reported. Is this latest revision ready to commit? Thanks, -- PA --------------LapmQKDd2LCvVpCWqiU67OZH Content-Type: text/x-patch; charset="UTF-8"; name="0001-Fortran-Fix-incompatible-types-between-INTEGER-8-and.patch" Content-Disposition: attachment; filename*0="0001-Fortran-Fix-incompatible-types-between-INTEGER-8-and.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2OTFkMTA1MGNlMzljMjcyMzFkYzYxMGI3OTliZjE4MDg3MTgyMGI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsLUFudG9pbmUgQXJyYXMgPHBhQGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IEZyaSwgMjAgT2N0IDIwMjMgMTI6NDI6NDkgKzAyMDAKU3ViamVj dDogW1BBVENIXSBGb3J0cmFuOiBGaXggaW5jb21wYXRpYmxlIHR5cGVzIGJldHdlZW4gSU5U RUdFUig4KSBhbmQKIFRZUEUoY19wdHIpCgpJbiB0aGUgY29udGV4dCBvZiBhbiBPcGVuTVAg ZGVjbGFyZSB2YXJpYW50IGRpcmVjdGl2ZSwgYXJndW1lbnRzIG9mIHR5cGUgQ19QVFIKYXJl IHNvbWV0aW1lcyByZWNvZ25pc2VkIGFzIENfUFRSIGluIHRoZSBiYXNlIGZ1bmN0aW9uIGFu ZCBhcyBJTlRFR0VSKDgpIGluIHRoZQp2YXJpYW50IC0gb3IgdGhlIG90aGVyIHdheSBhcm91 bmQsIGRlcGVuZGluZyBvbiB0aGUgcGFyc2luZyBvcmRlci4KVGhpcyBwYXRjaCBwcmV2ZW50 cyBzdWNoIHNpdHVhdGlvbiBmcm9tIHR1cm5pbmcgaW50byBhIGNvbXBpbGUgZXJyb3IuCgoy MDIzLTEwLTIwICBQYXVsLUFudG9pbmUgQXJyYXMgIDxwYUBjb2Rlc291cmNlcnkuY29tPgoJ ICAgIFRvYmlhcyBCdXJudXMgIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KCmdjYy9mb3J0 cmFuL0NoYW5nZUxvZzoKCgkqIGludGVyZmFjZS5jYyAoZ2ZjX2NvbXBhcmVfdHlwZXMpOiBS ZXR1cm4gdHJ1ZSBpZiBvbmUgdHlwZSBpcyBDX1BUUgoJYW5kIHRoZSBvdGhlciBpcyBhIGNv bXBhdGlibGUgSU5URUdFUig4KS4KCSogbWlzYy5jYyAoZ2ZjX3R5cGVuYW1lKTogSGFuZGxl IHRoZSBjYXNlIHdoZXJlIGFuIElOVEVHRVIoOCkgYWN0dWFsbHkKCWhvbGRzIGEgVFlQRShD X1BUUikuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdmb3J0cmFuLmRnL2NfcHRy X3Rlc3RzXzIwLmY5MDogTmV3IHRlc3QsIGNoZWNraW5nIHRoYXQgSU5URUdFUig4KQoJYW5k IFRZUEUoQ19QVFIpIGFyZSByZWNvZ25pc2VkIGFzIGNvbXBhdGlibGUuCgkqIGdmb3J0cmFu LmRnL2NfcHRyX3Rlc3RzXzIxLmY5MDogTmV3IHRlc3QsIGV4ZXJjaXNpbmcgdGhlIGVycm9y CglkZXRlY3Rpb24gZm9yIENfRlVOUFRSLgotLS0KIGdjYy9mb3J0cmFuL2ludGVyZmFjZS5j YyAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKy0tCiBnY2MvZm9ydHJhbi9taXNjLmNj ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrLQogZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9jX3B0cl90ZXN0c18yMC5mOTAgfCA1NyArKysrKysrKysrKysrKysrKysrKwog Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX3B0cl90ZXN0c18yMS5mOTAgfCA1NyArKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2NfcHRyX3Rlc3RzXzIwLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvY19wdHJfdGVzdHNfMjEuZjkwCgpkaWZmIC0tZ2l0IGEvZ2Nj L2ZvcnRyYW4vaW50ZXJmYWNlLmNjIGIvZ2NjL2ZvcnRyYW4vaW50ZXJmYWNlLmNjCmluZGV4 IGU5ODQzZTk1NDljLi5lZDE2MTNiMTZmYiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vaW50 ZXJmYWNlLmNjCisrKyBiL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYwpAQCAtNzA3LDEwICs3 MDcsMTggQEAgZ2ZjX2NvbXBhcmVfdHlwZXMgKGdmY190eXBlc3BlYyAqdHMxLCBnZmNfdHlw ZXNwZWMgKnRzMikKICAgICAgYmV0dGVyIHdheSBvZiBkb2luZyB0aGlzLiAgV2hlbiBJU08g QyBiaW5kaW5nIGlzIGNsZWFyZWQgdXAsCiAgICAgIHRoaXMgY2FuIHByb2JhYmx5IGJlIHJl bW92ZWQuICBTZWUgUFIgNTcwNDguICAqLwogCi0gIGlmICgoKHRzMS0+dHlwZSA9PSBCVF9J TlRFR0VSICYmIHRzMi0+dHlwZSA9PSBCVF9ERVJJVkVEKQotICAgICAgIHx8ICh0czEtPnR5 cGUgPT0gQlRfREVSSVZFRCAmJiB0czItPnR5cGUgPT0gQlRfSU5URUdFUikpCi0gICAgICAm JiB0czEtPnUuZGVyaXZlZCAmJiB0czItPnUuZGVyaXZlZAotICAgICAgJiYgdHMxLT51LmRl cml2ZWQgPT0gdHMyLT51LmRlcml2ZWQpCisgIGlmICgodHMxLT50eXBlID09IEJUX0lOVEVH RVIKKyAgICAgICAmJiB0czItPnR5cGUgPT0gQlRfREVSSVZFRAorICAgICAgICYmIHRzMS0+ ZjkwX3R5cGUgPT0gQlRfVk9JRAorICAgICAgICYmIHRzMi0+dS5kZXJpdmVkLT5mcm9tX2lu dG1vZCA9PSBJTlRNT0RfSVNPX0NfQklORElORworICAgICAgICYmIHRzMS0+dS5kZXJpdmVk CisgICAgICAgJiYgc3RyY21wICh0czEtPnUuZGVyaXZlZC0+bmFtZSwgdHMyLT51LmRlcml2 ZWQtPm5hbWUpID09IDApCisgICAgICB8fCAodHMyLT50eXBlID09IEJUX0lOVEVHRVIKKwkg ICYmIHRzMS0+dHlwZSA9PSBCVF9ERVJJVkVECisJICAmJiB0czItPmY5MF90eXBlID09IEJU X1ZPSUQKKwkgICYmIHRzMS0+dS5kZXJpdmVkLT5mcm9tX2ludG1vZCA9PSBJTlRNT0RfSVNP X0NfQklORElORworCSAgJiYgdHMyLT51LmRlcml2ZWQKKwkgICYmIHN0cmNtcCAodHMxLT51 LmRlcml2ZWQtPm5hbWUsIHRzMi0+dS5kZXJpdmVkLT5uYW1lKSA9PSAwKSkKICAgICByZXR1 cm4gdHJ1ZTsKIAogICAvKiBUaGUgX2RhdGEgY29tcG9uZW50IGlzIG5vdCBhbHdheXMgcHJl c2VudCwgdGhlcmVmb3JlIGNoZWNrIGZvciBpdHMKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFu L21pc2MuY2MgYi9nY2MvZm9ydHJhbi9taXNjLmNjCmluZGV4IGJhZTZkMjkyZGM1Li5lZGZm YmEwNzAxMyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vbWlzYy5jYworKysgYi9nY2MvZm9y dHJhbi9taXNjLmNjCkBAIC0xMzgsNyArMTM4LDEyIEBAIGdmY190eXBlbmFtZSAoZ2ZjX3R5 cGVzcGVjICp0cywgYm9vbCBmb3JfaGFzaCkKICAgc3dpdGNoICh0cy0+dHlwZSkKICAgICB7 CiAgICAgY2FzZSBCVF9JTlRFR0VSOgotICAgICAgc3ByaW50ZiAoYnVmZmVyLCAiSU5URUdF UiglZCkiLCB0cy0+a2luZCk7CisgICAgICBpZiAodHMtPmY5MF90eXBlID09IEJUX1ZPSUQK KwkgICYmIHRzLT51LmRlcml2ZWQKKwkgICYmIHRzLT51LmRlcml2ZWQtPmZyb21faW50bW9k ID09IElOVE1PRF9JU09fQ19CSU5ESU5HKQorCXNwcmludGYgKGJ1ZmZlciwgIlRZUEUoJXMp IiwgdHMtPnUuZGVyaXZlZC0+bmFtZSk7CisgICAgICBlbHNlCisJc3ByaW50ZiAoYnVmZmVy LCAiSU5URUdFUiglZCkiLCB0cy0+a2luZCk7CiAgICAgICBicmVhazsKICAgICBjYXNlIEJU X1JFQUw6CiAgICAgICBzcHJpbnRmIChidWZmZXIsICJSRUFMKCVkKSIsIHRzLT5raW5kKTsK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19wdHJfdGVzdHNfMjAu ZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX3B0cl90ZXN0c18yMC5mOTAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdkZDUxMDQwMGYzCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX3B0cl90ZXN0c18y MC5mOTAKQEAgLTAsMCArMSw1NyBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLWZvcGVubXAiIH0KKyEKKyEgVGhpcyBmYWlsZWQgdG8gY29t cGlsZSB0aGUgZGVjbGFyZSB2YXJpYW50IGRpcmVjdGl2ZSBkdWUgdG8gdGhlIENfUFRSIAor ISBhcmd1bWVudHMgdG8gZm9vIGJlaW5nIHJlY29nbmlzZWQgYXMgSU5URUdFUig4KQorCitw cm9ncmFtIGFkanVzdF9hcmdzCisgIHVzZSBpc29fY19iaW5kaW5nLCBvbmx5OiBjX2xvYwor ICBpbXBsaWNpdCBub25lCisKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSAxMDI0Cisg IHJlYWwsIGFsbG9jYXRhYmxlLCB0YXJnZXQgOjogYXYoOiksIGJ2KDopLCBjdig6KQorCisg IGNhbGwgZm9vKGNfbG9jKGJ2KSwgY19sb2MoYXYpLCBOKQorCisgICEkb21wIHRhcmdldCBk YXRhIG1hcCh0bzogYXYoOk4pKSBtYXAoZnJvbTogY3YoOk4pKQorICAgICAgISRvbXAgcGFy YWxsZWwKKyAgICAgIGNhbGwgZm9vKGNfbG9jKGN2KSwgY19sb2MoYXYpLCBOKQorICAgICAg ISRvbXAgZW5kIHBhcmFsbGVsCisgICEkb21wIGVuZCB0YXJnZXQgZGF0YQorICAgIAorY29u dGFpbnMKKyAgc3Vicm91dGluZSBmb29fdmFyaWFudChjX2RfYnYsIGNfZF9hdiwgbikKKyAg ICB1c2UgaXNvX2NfYmluZGluZywgb25seTogY19wdHIsIGNfZl9wb2ludGVyCisgICAgdHlw ZShjX3B0ciksIGludGVudChpbikgOjogY19kX2J2LCBjX2RfYXYKKyAgICBpbnRlZ2VyLCBp bnRlbnQoaW4pIDo6IG4KKyAgICByZWFsLCBwb2ludGVyIDo6IGZfZF9idig6KQorICAgIHJl YWwsIHBvaW50ZXIgOjogZl9kX2F2KDopCisgICAgaW50ZWdlciA6OiBpCisgIAorICAgIGNh bGwgY19mX3BvaW50ZXIoY19kX2J2LCBmX2RfYnYsIFtuXSkKKyAgICBjYWxsIGNfZl9wb2lu dGVyKGNfZF9hdiwgZl9kX2F2LCBbbl0pCisgICAgISRvbXAgdGFyZ2V0IHRlYW1zIGxvb3Ag aXNfZGV2aWNlX3B0cihmX2RfYnYsIGZfZF9hdikKKyAgICBkbyBpID0gMSwgbgorICAgICAg Zl9kX2J2KGkpID0gZl9kX2F2KGkpICogaQorICAgIGVuZCBkbworICBlbmQgc3Vicm91dGlu ZQorICAKKyAgCisgIHN1YnJvdXRpbmUgZm9vKGNfYnYsIGNfYXYsIG4pCisgICAgdXNlIGlz b19jX2JpbmRpbmcsIG9ubHk6IGNfcHRyLCBjX2ZfcG9pbnRlcgorICAgIHR5cGUoY19wdHIp LCBpbnRlbnQoaW4pIDo6IGNfYnYsIGNfYXYKKyAgICBpbnRlZ2VyLCBpbnRlbnQoaW4pIDo6 IG4KKyAgICByZWFsLCBwb2ludGVyIDo6IGZfYnYoOikKKyAgICByZWFsLCBwb2ludGVyIDo6 IGZfYXYoOikKKyAgICBpbnRlZ2VyIDo6IGkKKyAgICAhJG9tcCBkZWNsYXJlIHZhcmlhbnQo Zm9vX3ZhcmlhbnQpICAgICAgICAgICYKKyAgICAhJG9tcCAgICAgICAgIG1hdGNoKGNvbnN0 cnVjdD17cGFyYWxsZWx9KSAgICAgICAKKyAgCisgICAgY2FsbCBjX2ZfcG9pbnRlcihjX2J2 LCBmX2J2LCBbbl0pCisgICAgY2FsbCBjX2ZfcG9pbnRlcihjX2F2LCBmX2F2LCBbbl0pCisg ICAgISRvbXAgcGFyYWxsZWwgbG9vcAorICAgIGRvIGkgPSAxLCBuCisgICAgICBmX2J2KGkp ID0gZl9hdihpKSAqIGkKKyAgICBlbmQgZG8KKyAgZW5kIHN1YnJvdXRpbmUKK2VuZCBwcm9n cmFtCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NfcHRyX3Rlc3Rz XzIxLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19wdHJfdGVzdHNfMjEuZjkw Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNWNjYjc3MWVlZQot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19wdHJfdGVz dHNfMjEuZjkwCkBAIC0wLDAgKzEsNTcgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBk Zy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mb3Blbm1wIiB9CishCishIEVuc3VyZSB0aGF0IENf UFRSIGFuZCBDX0ZVTlBUUiBhcmUgcmVwb3J0ZWQgYXMgaW5jb21wYXRpYmxlIHR5cGVzIGlu IHZhcmlhbnQgCishIGFyZ3VtZW50IGxpc3RzCisKK3Byb2dyYW0gYWRqdXN0X2FyZ3MKKyAg dXNlIGlzb19jX2JpbmRpbmcsIG9ubHk6IGNfbG9jCisgIGltcGxpY2l0IG5vbmUKKworICBp bnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9IDEwMjQKKyAgcmVhbCwgYWxsb2NhdGFibGUsIHRh cmdldCA6OiBhdig6KSwgYnYoOiksIGN2KDopCisKKyAgY2FsbCBmb28oY19sb2MoYnYpLCBj X2xvYyhhdiksIE4pCisKKyAgISRvbXAgdGFyZ2V0IGRhdGEgbWFwKHRvOiBhdig6TikpIG1h cChmcm9tOiBjdig6TikpCisgICAgICAhJG9tcCBwYXJhbGxlbAorICAgICAgY2FsbCBmb28o Y19sb2MoY3YpLCBjX2xvYyhhdiksIE4pCisgICAgICAhJG9tcCBlbmQgcGFyYWxsZWwKKyAg ISRvbXAgZW5kIHRhcmdldCBkYXRhCisgICAgCitjb250YWlucworICBzdWJyb3V0aW5lIGZv b192YXJpYW50KGNfZF9idiwgY19kX2F2LCBuKQorICAgIHVzZSBpc29fY19iaW5kaW5nLCBv bmx5OiBjX2Z1bnB0ciwgY19mX3BvaW50ZXIKKyAgICB0eXBlKGNfZnVucHRyKSwgaW50ZW50 KGluKSA6OiBjX2RfYnYsIGNfZF9hdgorICAgIGludGVnZXIsIGludGVudChpbikgOjogbgor ICAgIHJlYWwsIHBvaW50ZXIgOjogZl9kX2J2KDopCisgICAgcmVhbCwgcG9pbnRlciA6OiBm X2RfYXYoOikKKyAgICBpbnRlZ2VyIDo6IGkKKyAgCishICAgICBjYWxsIGNfZl9wb2ludGVy KGNfZF9idiwgZl9kX2J2LCBbbl0pCishICAgICBjYWxsIGNfZl9wb2ludGVyKGNfZF9hdiwg Zl9kX2F2LCBbbl0pCisgICAgISRvbXAgdGFyZ2V0IHRlYW1zIGxvb3AgaXNfZGV2aWNlX3B0 cihmX2RfYnYsIGZfZF9hdikKKyAgICBkbyBpID0gMSwgbgorICAgICAgZl9kX2J2KGkpID0g Zl9kX2F2KGkpICogaQorICAgIGVuZCBkbworICBlbmQgc3Vicm91dGluZQorICAKKyAgCisg IHN1YnJvdXRpbmUgZm9vKGNfYnYsIGNfYXYsIG4pCisgICAgdXNlIGlzb19jX2JpbmRpbmcs IG9ubHk6IGNfcHRyLCBjX2ZfcG9pbnRlcgorICAgIHR5cGUoY19wdHIpLCBpbnRlbnQoaW4p IDo6IGNfYnYsIGNfYXYKKyAgICBpbnRlZ2VyLCBpbnRlbnQoaW4pIDo6IG4KKyAgICByZWFs LCBwb2ludGVyIDo6IGZfYnYoOikKKyAgICByZWFsLCBwb2ludGVyIDo6IGZfYXYoOikKKyAg ICBpbnRlZ2VyIDo6IGkKKyAgICAhJG9tcCBkZWNsYXJlIHZhcmlhbnQoZm9vX3ZhcmlhbnQp ICAgICAgICAgICYgISB7IGRnLWVycm9yICJ2YXJpYW50ICdmb29fdmFyaWFudCcgYW5kIGJh c2UgJ2ZvbycgYXQgLjEuIGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzOiBUeXBlIG1pc21hdGNo IGluIGFyZ3VtZW50ICdjX2J2JyAuVFlQRS5jX3B0ci4vVFlQRS5jX2Z1bnB0ci4uIiB9Cisg ICAgISRvbXAgICAgICAgICBtYXRjaChjb25zdHJ1Y3Q9e3BhcmFsbGVsfSkgICAgICAgCisg IAorICAgIGNhbGwgY19mX3BvaW50ZXIoY19idiwgZl9idiwgW25dKQorICAgIGNhbGwgY19m X3BvaW50ZXIoY19hdiwgZl9hdiwgW25dKQorICAgICEkb21wIHBhcmFsbGVsIGxvb3AKKyAg ICBkbyBpID0gMSwgbgorICAgICAgZl9idihpKSA9IGZfYXYoaSkgKiBpCisgICAgZW5kIGRv CisgIGVuZCBzdWJyb3V0aW5lCitlbmQgcHJvZ3JhbQotLSAKMi40Mi4wCgo= --------------LapmQKDd2LCvVpCWqiU67OZH--