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 7113E383F08B; Tue, 13 Dec 2022 16:29:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7113E383F08B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,241,1665475200"; d="diff'?scan'208";a="90074237" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 13 Dec 2022 08:29:40 -0800 IronPort-SDR: jxpFZLIWcjBKMVGacJHRPQZDyWjyujyxprqvaEM/Ay2avR05DVyAlrr1E+o1dhdwabNtomo7i7 qKq2sa8dcPbCKHhtsMkYoHWDHsVYiadCSx6hL6HkK822xJShV+sg57d9QRfYupySEr2iR0uX2D zilWpW5obcO5UfqTjX8tX0xjbH00rBLSLGW43WigJt7atPZaI1o7G7WgvH+v1hvRuTxPzczmrn gd04f05CL2gu/j19GAUPq/aquUaZ9tzz3KHo86GFa46ejCOuUMmk8d4ImlO4bb2N9ckf4DbDW5 dy8= Content-Type: multipart/mixed; boundary="------------hit0kD08F3h26hW0uvZzbH9d" Message-ID: Date: Tue, 13 Dec 2022 17:29:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US To: gcc-patches , fortran From: Tobias Burnus Subject: [Patch, Fortran] libgfortran's ISO_Fortran_binding.c: Use GCC11 version for backward-only code [PR108056] X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_MSPIKE_H2,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: --------------hit0kD08F3h26hW0uvZzbH9d Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This is a 12/13 regression as come changes to fix the GFC/CFI descriptor that went into GCC 12 fail with the (bogus) descriptor passed via by a GCC-11-compiled program. As later GCC 12 changes moved the descriptor to the front end, those functions are only in libgomp.so to cater for old program. Richard suggested in the PR that the best way is to move to the GCC 11 version, such that libgfortran.so won't regress. I now did so - except for three fixes (cf. changelog). See also PR: https://gcc.gnu.org/PR108056 There is no testcase as it needs to be compiled by GCC <=3D 11 and then run with linking (dynamically) to a GCC 12 or 13 libgfortran. OK for mainline and GCC 12? * * * Note: It is strongly recommended to use GCC 12 (or 13) with array-descripto= r C interop as many issues were fixed. Like for the testcase in the PR; in GC= C 11 the type arriving in libgomp is BT_ASSUME ('type(*)'). But as the effective argument is passed as array descriptor through out, the 'float' (real(4)) t= ype info is actually preservable (as GCC 12 cf. testcase of comment 0 and my co= mment in the PR for the C part of the testcase).(*) Tobias ((*) This is not possible if using a scalar 'type(*)' or a non-array-descri= ptor array in between. I think GCC 12 uses 'CFI_other' in the information-is-los= t case.) ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------hit0kD08F3h26hW0uvZzbH9d Content-Type: text/x-patch; charset="UTF-8"; name="libgfortran-ISO-C-gcc11.diff" Content-Disposition: attachment; filename="libgfortran-ISO-C-gcc11.diff" Content-Transfer-Encoding: base64 bGliZ2ZvcnRyYW4ncyBJU09fRm9ydHJhbl9iaW5kaW5nLmM6IFVzZSBHQ0MxMSB2ZXJzaW9u IGZvciBiYWNrd2FyZC1vbmx5IGNvZGUgW1BSMTA4MDU2XQoKU2luY2UgR0NDIDEyLCB0aGUg Y29udmVyc2lvbiBiZXR3ZWVuIHRoZSBhcnJheSBkZXNjcmlwdG9ycyBmb3JtYXRzIC0gdGhl CmludGVybmFsIChHRkMpIGFuZCB0aGUgQyBiaW5kaW5nIG9uZSAoQ0ZJKSBtb3ZlZCB0byB0 aGUgY29tcGlsZXIgaXRzZWxmCnN1Y2ggdGhhdCB0aGUgY2ZpX2Rlc2NfdG9fZ2ZjX2Rlc2Mv Z2ZjX2Rlc2NfdG9fY2ZpX2Rlc2MgZnVuY3Rpb25zIGFyZSBvbmx5CnVzZWQgd2l0aCBvbGRl ciBjb2RlIChHQ0MgOSB0byAxMSkuICBUaGUgbmV3bHkgYWRkZWQgY2hlY2tzIGNhdXNlZCBh c3NlcnRzCmFzIG9sZGVyIGNvZGUgZGlkIG5vdCBwYXNzIHRoZSBwcm9wZXIgdmFsdWVzIChl LmcuIHJlYWwoNCkgYXMgZWZmZWN0aXZlCmFyZ3VtZW50IGFycml2ZWQgYXMgQlRfQVNTVU1F IHR5cGUgYXMgdGhlIGVmZmVjdGl2ZSB0eXBlIGdvdCBsb3N0IGluYmV0d2VlbikuCgpBcyBw cm9wb3NlZCBpbiB0aGUgUFIsIHJldmVydCB0byB0aGUgR0NDIDExIHZlcnNpb24gLSBrbm93 biBidWdzIGlzIGJldHRlcgp0aGFuIHNvbWUgZml4ZXMgYW5kIG5ldyBpc3N1ZXMuIFN0aWxs LCBHQ0MgMTIgaXMgbXVjaCBiZXR0ZXIgaW4gdGVybXMgb2YKVFMyOTExMyBzdXBwb3J0IGFu ZCBzaG91bGQgcmVhbGx5IGJlIHVzZWQuCgpUaGlzIHBhdGNoIHVzZXMgdGhlIGN1cnJlbnQg bGliZ29tcCB2ZXJzaW9uIG9mIHRoZSBHQ0MgMTEgYnJhbmNoLCBleGNlcHQKaXQgZml4ZXMg dGhlIEdGQyB2ZXJzaW9uIG51bWJlciAod2hpY2ggaXMgMCksIHVzZXMgY2FsbG9jIGluc3Rl YWQgb2YgbWFsbG9jLAphbmQgc2V0cyB0aGUgbG93ZXIgYm91bmQgdG8gMSBpbnN0ZWFkIG9m IGtlZXBpbmcgaXQgYXMgaXMgZm9yCkNGSV9hdHRyaWJ1dGVfb3RoZXIuCgpsaWJnZm9ydHJh bi9DaGFuZ2VMb2c6CgoJUFIgbGliZm9ydHJhbi8xMDgwNTYKCSogcnVudGltZS9JU09fRm9y dHJhbl9iaW5kaW5nLmMgKGNmaV9kZXNjX3RvX2dmY19kZXNjLAoJZ2ZjX2Rlc2NfdG9fY2Zp X2Rlc2MpOiBNb3N0bHkgcmV2ZXJ0IHRvIEdDQyAxMSB2ZXJzaW9uIGZvcgoJdGhvc2UgYmFj a3dhcmQtY29tcGF0aWJsaXR5LW9ubHkgZnVuY3Rpb25zLgoKZGlmZiAtLWdpdCBhL2xpYmdm b3J0cmFuL3J1bnRpbWUvSVNPX0ZvcnRyYW5fYmluZGluZy5jIGIvbGliZ2ZvcnRyYW4vcnVu dGltZS9JU09fRm9ydHJhbl9iaW5kaW5nLmMKaW5kZXggMzQyZGY0Mjc1YjkuLmU2M2E3MTdh NjliIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9ydW50aW1lL0lTT19Gb3J0cmFuX2JpbmRp bmcuYworKysgYi9saWJnZm9ydHJhbi9ydW50aW1lL0lTT19Gb3J0cmFuX2JpbmRpbmcuYwpA QCAtMzksNjAgKzM5LDMxIEBAIGV4cG9ydF9wcm90byhjZmlfZGVzY190b19nZmNfZGVzYyk7 CiB2b2lkCiBjZmlfZGVzY190b19nZmNfZGVzYyAoZ2ZjX2FycmF5X3ZvaWQgKmQsIENGSV9j ZGVzY190ICoqc19wdHIpCiB7Ci0gIHNpZ25lZCBjaGFyIHR5cGU7Ci0gIHNpemVfdCBzaXpl OwogICBpbnQgbjsKKyAgaW5kZXhfdHlwZSBraW5kOwogICBDRklfY2Rlc2NfdCAqcyA9ICpz X3B0cjsKIAogICBpZiAoIXMpCiAgICAgcmV0dXJuOwogCi0gIC8qIFZlcmlmeSBkZXNjcmlw dG9yLiAgKi8KLSAgc3dpdGNoIChzLT5hdHRyaWJ1dGUpCi0gICAgewotICAgIGNhc2UgQ0ZJ X2F0dHJpYnV0ZV9wb2ludGVyOgotICAgIGNhc2UgQ0ZJX2F0dHJpYnV0ZV9hbGxvY2F0YWJs ZToKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgQ0ZJX2F0dHJpYnV0ZV9vdGhlcjoKLSAgICAg IGlmIChzLT5iYXNlX2FkZHIpCi0JYnJlYWs7Ci0gICAgICBydW50aW1lX2Vycm9yICgiTm9u YWxsb2NhdGFibGUsIG5vbnBvaW50ZXIgYWN0dWFsIGFyZ3VtZW50IHRvIEJJTkQoQykgIgot CQkgICAgICJkdW1teSBhcmd1bWVudCB3aGVyZSB0aGUgZWZmZWN0aXZlIGFyZ3VtZW50IGlz IGVpdGhlciAiCi0JCSAgICAgIm5vdCBhbGxvY2F0ZWQgb3Igbm90IGFzc29jaWF0ZWQiKTsK LSAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICBydW50aW1lX2Vycm9yICgiSW52 YWxpZCBhdHRyaWJ1dGUgdHlwZSAlZCBpbiBDRklfY2Rlc2NfdCBkZXNjcmlwdG9yIiwKLQkJ ICAgICAoaW50KSBzLT5hdHRyaWJ1dGUpOwotICAgICAgYnJlYWs7Ci0gICAgfQogICBHRkNf REVTQ1JJUFRPUl9EQVRBIChkKSA9IHMtPmJhc2VfYWRkcjsKKyAgR0ZDX0RFU0NSSVBUT1Jf VFlQRSAoZCkgPSAoc2lnbmVkIGNoYXIpKHMtPnR5cGUgJiBDRklfdHlwZV9tYXNrKTsKKyAg a2luZCA9IChpbmRleF90eXBlKSgocy0+dHlwZSAtIChzLT50eXBlICYgQ0ZJX3R5cGVfbWFz aykpID4+IENGSV90eXBlX2tpbmRfc2hpZnQpOwogCiAgIC8qIENvcnJlY3QgdGhlIHVuZm9y dHVuYXRlIGRpZmZlcmVuY2UgaW4gb3JkZXIgd2l0aCB0eXBlcy4gICovCi0gIHR5cGUgPSAo c2lnbmVkIGNoYXIpKHMtPnR5cGUgJiBDRklfdHlwZV9tYXNrKTsKLSAgc3dpdGNoICh0eXBl KQotICAgIHsKLSAgICBjYXNlIENGSV90eXBlX0NoYXJhY3RlcjoKLSAgICAgIHR5cGUgPSBC VF9DSEFSQUNURVI7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIENGSV90eXBlX3N0cnVjdDoK LSAgICAgIHR5cGUgPSBCVF9ERVJJVkVEOwotICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDRklf dHlwZV9jcHRyOgotICAgICAgLyogRklYTUU6IFBSIDEwMDkxNS4gIEdGQyBkZXNjcmlwdG9y cyBkbyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbgotCSBDRklfdHlwZV9jcHRyIGFuZCBDRklf dHlwZV9jZnVucHRyLiAgKi8KLSAgICAgIHR5cGUgPSBCVF9WT0lEOwotICAgICAgYnJlYWs7 Ci0gICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgIH0KLQotICBHRkNfREVTQ1JJUFRP Ul9UWVBFIChkKSA9IHR5cGU7Ci0gIEdGQ19ERVNDUklQVE9SX1NJWkUgKGQpID0gcy0+ZWxl bV9sZW47CisgIGlmIChHRkNfREVTQ1JJUFRPUl9UWVBFIChkKSA9PSBCVF9DSEFSQUNURVIp CisgICAgR0ZDX0RFU0NSSVBUT1JfVFlQRSAoZCkgPSBCVF9ERVJJVkVEOworICBlbHNlIGlm IChHRkNfREVTQ1JJUFRPUl9UWVBFIChkKSA9PSBCVF9ERVJJVkVEKQorICAgIEdGQ19ERVND UklQVE9SX1RZUEUgKGQpID0gQlRfQ0hBUkFDVEVSOworCisgIGlmICghcy0+cmFuayB8fCBz LT5kaW1bMF0uc20gPT0gKENGSV9pbmRleF90KXMtPmVsZW1fbGVuKQorICAgIEdGQ19ERVND UklQVE9SX1NJWkUgKGQpID0gcy0+ZWxlbV9sZW47CisgIGVsc2UgaWYgKEdGQ19ERVNDUklQ VE9SX1RZUEUgKGQpICE9IEJUX0RFUklWRUQpCisgICAgR0ZDX0RFU0NSSVBUT1JfU0laRSAo ZCkgPSBraW5kOworICBlbHNlCisgICAgR0ZDX0RFU0NSSVBUT1JfU0laRSAoZCkgPSBzLT5l bGVtX2xlbjsKIAogICBkLT5kdHlwZS52ZXJzaW9uID0gMDsKLQotICBpZiAocy0+cmFuayA8 IDAgfHwgcy0+cmFuayA+IENGSV9NQVhfUkFOSykKLSAgICBpbnRlcm5hbF9lcnJvciAoTlVM TCwgIkludmFsaWQgcmFuayBpbiBkZXNjcmlwdG9yIik7CiAgIEdGQ19ERVNDUklQVE9SX1JB TksgKGQpID0gKHNpZ25lZCBjaGFyKXMtPnJhbms7CiAKICAgZC0+ZHR5cGUuYXR0cmlidXRl ID0gKHNpZ25lZCBzaG9ydClzLT5hdHRyaWJ1dGU7CkBAIC0xMzEsNyArMTAyLDYgQEAgZ2Zj X2Rlc2NfdG9fY2ZpX2Rlc2MgKENGSV9jZGVzY190ICoqZF9wdHIsIGNvbnN0IGdmY19hcnJh eV92b2lkICpzKQogewogICBpbnQgbjsKICAgQ0ZJX2NkZXNjX3QgKmQ7Ci0gIHNpZ25lZCBj aGFyIHR5cGUsIGtpbmQ7CiAKICAgLyogUGxheSBpdCBzYWZlIHdpdGggYWxsb2NhdGlvbiBv ZiB0aGUgZmxleGlibGUgYXJyYXkgbWVtYmVyICdkaW0nCiAgICAgIGJ5IHNldHRpbmcgdGhl IGxlbmd0aCB0byBDRklfTUFYX1JBTksuIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkK QEAgLTE0Miw5OSArMTEyLDIyIEBAIGdmY19kZXNjX3RvX2NmaV9kZXNjIChDRklfY2Rlc2Nf dCAqKmRfcHRyLCBjb25zdCBnZmNfYXJyYXlfdm9pZCAqcykKICAgZWxzZQogICAgIGQgPSAq ZF9wdHI7CiAKLSAgLyogVmVyaWZ5IGRlc2NyaXB0b3IuICAqLwotICBzd2l0Y2ggKHMtPmR0 eXBlLmF0dHJpYnV0ZSkKLSAgICB7Ci0gICAgY2FzZSBDRklfYXR0cmlidXRlX3BvaW50ZXI6 Ci0gICAgY2FzZSBDRklfYXR0cmlidXRlX2FsbG9jYXRhYmxlOgotICAgICAgYnJlYWs7Ci0g ICAgY2FzZSBDRklfYXR0cmlidXRlX290aGVyOgotICAgICAgaWYgKHMtPmJhc2VfYWRkcikK LQlicmVhazsKLSAgICAgIHJ1bnRpbWVfZXJyb3IgKCJOb25hbGxvY2F0YWJsZSwgbm9ucG9p bnRlciBhY3R1YWwgYXJndW1lbnQgdG8gQklORChDKSAiCi0JCSAgICAgImR1bW15IGFyZ3Vt ZW50IHdoZXJlIHRoZSBlZmZlY3RpdmUgYXJndW1lbnQgaXMgZWl0aGVyICIKLQkJICAgICAi bm90IGFsbG9jYXRlZCBvciBub3QgYXNzb2NpYXRlZCIpOwotICAgICAgYnJlYWs7Ci0gICAg ZGVmYXVsdDoKLSAgICAgIGludGVybmFsX2Vycm9yIChOVUxMLCAiSW52YWxpZCBhdHRyaWJ1 dGUgaW4gZ2ZjX2FycmF5IGRlc2NyaXB0b3IiKTsKLSAgICAgIGJyZWFrOwotICAgIH0KICAg ZC0+YmFzZV9hZGRyID0gR0ZDX0RFU0NSSVBUT1JfREFUQSAocyk7CiAgIGQtPmVsZW1fbGVu ID0gR0ZDX0RFU0NSSVBUT1JfU0laRSAocyk7Ci0gIGlmIChkLT5lbGVtX2xlbiA8PSAwKQot ICAgIGludGVybmFsX2Vycm9yIChOVUxMLCAiSW52YWxpZCBzaXplIGluIGRlc2NyaXB0b3Ii KTsKLQogICBkLT52ZXJzaW9uID0gQ0ZJX1ZFUlNJT047Ci0KICAgZC0+cmFuayA9IChDRklf cmFua190KUdGQ19ERVNDUklQVE9SX1JBTksgKHMpOwotICBpZiAoZC0+cmFuayA8IDAgfHwg ZC0+cmFuayA+IENGSV9NQVhfUkFOSykKLSAgICBpbnRlcm5hbF9lcnJvciAoTlVMTCwgIklu dmFsaWQgcmFuayBpbiBkZXNjcmlwdG9yIik7Ci0KICAgZC0+YXR0cmlidXRlID0gKENGSV9h dHRyaWJ1dGVfdClzLT5kdHlwZS5hdHRyaWJ1dGU7CiAKLSAgdHlwZSA9IEdGQ19ERVNDUklQ VE9SX1RZUEUgKHMpOwotICBzd2l0Y2ggKHR5cGUpCi0gICAgewotICAgIGNhc2UgQlRfQ0hB UkFDVEVSOgotICAgICAgZC0+dHlwZSA9IENGSV90eXBlX0NoYXJhY3RlcjsKLSAgICAgIGJy ZWFrOwotICAgIGNhc2UgQlRfREVSSVZFRDoKLSAgICAgIGQtPnR5cGUgPSBDRklfdHlwZV9z dHJ1Y3Q7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIEJUX1ZPSUQ6Ci0gICAgICAvKiBGSVhN RTogUFIgMTAwOTE1LiAgR0ZDIGRlc2NyaXB0b3JzIGRvIG5vdCBkaXN0aW5ndWlzaCBiZXR3 ZWVuCi0JIENGSV90eXBlX2NwdHIgYW5kIENGSV90eXBlX2NmdW5wdHIuICAqLwotICAgICAg ZC0+dHlwZSA9IENGSV90eXBlX2NwdHI7Ci0gICAgICBicmVhazsKLSAgICBkZWZhdWx0Ogot ICAgICAgZC0+dHlwZSA9IChDRklfdHlwZV90KXR5cGU7Ci0gICAgICBicmVhazsKLSAgICB9 Ci0KLSAgc3dpdGNoIChkLT50eXBlKQotICAgIHsKLSAgICBjYXNlIENGSV90eXBlX0ludGVn ZXI6Ci0gICAgY2FzZSBDRklfdHlwZV9Mb2dpY2FsOgotICAgIGNhc2UgQ0ZJX3R5cGVfUmVh bDoKLSAgICAgIGtpbmQgPSAoc2lnbmVkIGNoYXIpZC0+ZWxlbV9sZW47Ci0gICAgICBicmVh azsKLSAgICBjYXNlIENGSV90eXBlX0NvbXBsZXg6Ci0gICAgICBraW5kID0gKHNpZ25lZCBj aGFyKShkLT5lbGVtX2xlbiA+PiAxKTsKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgQ0ZJX3R5 cGVfQ2hhcmFjdGVyOgotICAgICAgLyogRklYTUU6IHdlIGNhbid0IGRpc3Rpbmd1aXNoIGJl dHdlZW4ga2luZC9sZW4gYmVjYXVzZQotCSB0aGUgR0ZDIGRlc2NyaXB0b3Igb25seSBlbmNv ZGVzIHRoZSBlbGVtX2xlbi4uCi0JIFVudGlsIFBSOTI0ODIgaXMgZml4ZWQsIGFzc3VtZSBl bGVtX2xlbiByZWZlcnMgdG8gdGhlCi0JIGNoYXJhY3RlciBzaXplIGFuZCBub3QgdGhlIHN0 cmluZyBsZW5ndGguICAqLwotICAgICAga2luZCA9IChzaWduZWQgY2hhcilkLT5lbGVtX2xl bjsKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgQ0ZJX3R5cGVfc3RydWN0OgotICAgIGNhc2Ug Q0ZJX3R5cGVfY3B0cjoKLSAgICBjYXNlIENGSV90eXBlX290aGVyOgotICAgICAgLyogRklY TUU6IFBSIDEwMDkxNS4gIEdGQyBkZXNjcmlwdG9ycyBkbyBub3QgZGlzdGluZ3Vpc2ggYmV0 d2VlbgotCSBDRklfdHlwZV9jcHRyIGFuZCBDRklfdHlwZV9jZnVucHRyLiAgKi8KLSAgICAg IGtpbmQgPSAwOwotICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgIGludGVybmFs X2Vycm9yIChOVUxMLCAiSW52YWxpZCB0eXBlIGluIGRlc2NyaXB0b3IiKTsKLSAgICB9Ci0K LSAgaWYgKGtpbmQgPCAwKQotICAgIGludGVybmFsX2Vycm9yIChOVUxMLCAiSW52YWxpZCBr aW5kIGluIGRlc2NyaXB0b3IiKTsKLQotICAvKiBGSVhNRTogVGhpcyBpcyBQUjEwMDkxNy4g IEJlY2F1c2UgdGhlIEdGQyBkZXNjcmlwdG9yIGVuY29kZXMgb25seSB0aGUKLSAgICAgZWxl bV9sZW4gYW5kIG5vdCB0aGUga2luZCwgd2UgZ2V0IGludG8gdHJvdWJsZSB3aXRoIGxvbmcg ZG91YmxlIGtpbmRzCi0gICAgIHRoYXQgZG8gbm90IGNvcnJlc3BvbmQgZGlyZWN0bHkgdG8g dGhlIGVsZW1fbGVuLCBzcGVjaWZpY2FsbHkgdGhlCi0gICAgIGtpbmQgMTAgODAtYml0IGxv bmcgZG91YmxlIG9uIHg4NiB0YXJnZXRzLiAgT24geDg2XzY0LCB0aGlzIGhhcyBzaXplCi0g ICAgIDE2IGFuZCBjYW5ub3QgYmUgZGlmZmVyZW50aWF0ZWQgZnJvbSB0cnVlIF9GbG9hdDEy OC4gIFByZWZlciB0aGUKLSAgICAgc3RhbmRhcmQgbG9uZyBkb3VibGUgdHlwZSBvdmVyIHRo ZSBHTlUgZXh0ZW5zaW9uIGluIHRoYXQgY2FzZS4gICovCi0gIGlmIChkLT50eXBlID09IENG SV90eXBlX1JlYWwgJiYga2luZCA9PSBzaXplb2YgKGxvbmcgZG91YmxlKSkKLSAgICBkLT50 eXBlID0gQ0ZJX3R5cGVfbG9uZ19kb3VibGU7Ci0gIGVsc2UgaWYgKGQtPnR5cGUgPT0gQ0ZJ X3R5cGVfQ29tcGxleCAmJiBraW5kID09IHNpemVvZiAobG9uZyBkb3VibGUpKQotICAgIGQt PnR5cGUgPSBDRklfdHlwZV9sb25nX2RvdWJsZV9Db21wbGV4OworICBpZiAoR0ZDX0RFU0NS SVBUT1JfVFlQRSAocykgPT0gQlRfQ0hBUkFDVEVSKQorICAgIGQtPnR5cGUgPSBDRklfdHlw ZV9DaGFyYWN0ZXI7CisgIGVsc2UgaWYgKEdGQ19ERVNDUklQVE9SX1RZUEUgKHMpID09IEJU X0RFUklWRUQpCisgICAgZC0+dHlwZSA9IENGSV90eXBlX3N0cnVjdDsKICAgZWxzZQorICAg IGQtPnR5cGUgPSAoQ0ZJX3R5cGVfdClHRkNfREVTQ1JJUFRPUl9UWVBFIChzKTsKKworICBp ZiAoR0ZDX0RFU0NSSVBUT1JfVFlQRSAocykgIT0gQlRfREVSSVZFRCkKICAgICBkLT50eXBl ID0gKENGSV90eXBlX3QpKGQtPnR5cGUKLQkJCSAgICsgKChDRklfdHlwZV90KWtpbmQgPDwg Q0ZJX3R5cGVfa2luZF9zaGlmdCkpOworCQkrICgoQ0ZJX3R5cGVfdClkLT5lbGVtX2xlbiA8 PCBDRklfdHlwZV9raW5kX3NoaWZ0KSk7CiAKICAgaWYgKGQtPmJhc2VfYWRkcikKICAgICAv KiBGdWxsIHBvaW50ZXIgb3IgYWxsb2NhdGFibGUgYXJyYXlzIHJldGFpbiB0aGVpciBsb3dl cl9ib3VuZHMuICAqLwo= --------------hit0kD08F3h26hW0uvZzbH9d--