From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 1CB843858C5F; Mon, 24 Jul 2023 19:43:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1CB843858C5F 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="6.01,228,1684828800"; d="diff'?scan'208";a="12606020" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 24 Jul 2023 11:43:15 -0800 IronPort-SDR: sXU1SUefY4lU5/uuQWgn+ZhgwrAGwZNNiEHM+HnuWpoWUFAjswEq9UIdEvjykQfmVWx/Z06XwG W3AroyhEufLqNZu9lZqyX3UwBUkv5mzYPgw7JgAyyVwpr+UYdIRGme/obHee6G+78799nblFH7 CF43De/XKvfRlOXCneiR1OCqiagKh1Hh/VkQWtuvamCj8xiXL2MV1RrcRqZlybiIESL3+lzSV5 1oEOOru3J/8cqlktS6RzaSlWpCIM1M+RCbuwXP630GKOljKq2WmFhpxlH4sRJR9kDV/8DOx8K5 e9Q= Content-Type: multipart/mixed; boundary="------------Dew80gMPSGAi7SdSLjM8D2sP" Message-ID: Date: Mon, 24 Jul 2023 21:43:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US To: gcc-patches , fortran From: Tobias Burnus Subject: [Patch] OpenMP/Fortran: Reject not strictly nested target -> teams [PR110725, PR71065] CC: Jakub Jelinek X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,URIBL_BLACK 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: --------------Dew80gMPSGAi7SdSLjM8D2sP Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This patch adds diagnostic for additional code alongside a nested teams in a target region. The diagnostic is happening soon after parsing such that expressions in clauses are not yet expanded - those would end up before TEAMS and can be very complicated (e.g. assume an allocatable-returning function)= . (The patch diagnoses it in openmp.cc; after trans-openmp.cc it would already be to late.) Comments, remarks, suggestions? Tobias PS: Something similar is also needed for C/C++ but there templates and lambda functions might make it harder to implement. In any case, it has to be done in the FE. Tracked at PR71065 ----------------- 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 --------------Dew80gMPSGAi7SdSLjM8D2sP Content-Type: text/x-patch; charset="UTF-8"; name="omp-target-teams-diag.diff" Content-Disposition: attachment; filename="omp-target-teams-diag.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IFJlamVjdCBub3Qgc3RyaWN0bHkgbmVzdGVkIHRhcmdldCAtPiB0 ZWFtcyBbUFIxMTA3MjUsIFBSNzEwNjVdCgpPcGVuTVAgcmVxdWlyZXM6ICJJZiBhIHRlYW1z IHJlZ2lvbiBpcyBuZXN0ZWQgaW5zaWRlIGEgdGFyZ2V0IHJlZ2lvbiwgdGhlCmNvcnJlc3Bv bmRpbmcgdGFyZ2V0IGNvbnN0cnVjdCBtdXN0IG5vdCBjb250YWluIGFueSBzdGF0ZW1lbnRz LCBkZWNsYXJhdGlvbnMKb3IgZGlyZWN0aXZlcyBvdXRzaWRlIG9mIHRoZSBjb3JyZXNwb25k aW5nIHRlYW1zIGNvbnN0cnVjdC4iCgpUZXN0IGZvciBpdCEKCglQUiBmb3J0cmFuLzExMDcy NQoJUFIgbWlkZGxlLWVuZC83MTA2NQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCSogZ2Zv cnRyYW4uaCAoZ2ZjX29tcF9jbGF1c2VzKTogQWRkIGNvbnRhaW5zX3RlYW1zX2NvbnN0cnVj dC4KCSogb3Blbm1wLmNjIChyZXNvbHZlX29tcF90YXJnZXQpOiBOZXc7IGNoZWNrIGZvciB0 ZWFtcyBuZXN0aW5nLgoJKGdmY19yZXNvbHZlX29tcF9kaXJlY3RpdmUpOiBDYWxsIGl0LgoJ KiBwYXJzZS5jYyAoZGVjb2RlX29tcF9kaXJlY3RpdmUpOiBTZXQgY29udGFpbnNfdGVhbXNf Y29uc3RydWN0CglvbiBlbmNsb3NpbmcgU1RfT01QX1RBUkdFVC4KCmdjYy90ZXN0c3VpdGUv Q2hhbmdlTG9nOgoKCSogZ2ZvcnRyYW4uZGcvZ29tcC9wcjk5MjI2LmY5MDogVXBkYXRlIGRn LWVycm9yLgoJKiBnZm9ydHJhbi5kZy9nb21wL3RlYW1zLTUuZjkwOiBOZXcgdGVzdC4KCiBn Y2MvZm9ydHJhbi9nZm9ydHJhbi5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZ2Nj L2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsrKysrKysr LQogZ2NjL2ZvcnRyYW4vcGFyc2UuY2MgICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsr KysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcHI5OTIyNi5mOTAgfCAg IDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90ZWFtcy01LmY5MCB8IDEy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyMDAg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9nZm9ydHJhbi5oIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAppbmRleCA2NDgyYTg4NTIx MS4uNTc3ZWY4MDdhZjcgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKKysr IGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaApAQCAtMTU3NSw2ICsxNTc1LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgZ2ZjX29tcF9jbGF1c2VzCiAgIHVuc2lnbmVkIG9yZGVyX3VuY29uc3RyYWlu ZWQ6MSwgb3JkZXJfcmVwcm9kdWNpYmxlOjEsIGNhcHR1cmU6MTsKICAgdW5zaWduZWQgZ3Jh aW5zaXplX3N0cmljdDoxLCBudW1fdGFza3Nfc3RyaWN0OjEsIGNvbXBhcmU6MSwgd2Vhazox OwogICB1bnNpZ25lZCBub25fcmVjdGFuZ3VsYXI6MSwgb3JkZXJfY29uY3VycmVudDoxOwor ICB1bnNpZ25lZCBjb250YWluc190ZWFtc19jb25zdHJ1Y3Q6MTsKICAgRU5VTV9CSVRGSUVM RCAoZ2ZjX29tcF9zY2hlZF9raW5kKSBzY2hlZF9raW5kOjM7CiAgIEVOVU1fQklURklFTEQg KGdmY19vbXBfZGV2aWNlX3R5cGUpIGRldmljZV90eXBlOjI7CiAgIEVOVU1fQklURklFTEQg KGdmY19vbXBfbWVtb3JkZXIpIG1lbW9yZGVyOjM7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9vcGVubXAuY2MgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKaW5kZXggMDVhNjk3ZGEwNzEu LjY3NTAxMWExOGNlIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9vcGVubXAuY2MKKysrIGIv Z2NjL2ZvcnRyYW4vb3Blbm1wLmNjCkBAIC0xMDY1Myw2ICsxMDY1Myw0MSBAQCBnZmNfcmVz b2x2ZV9vYWNjX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19uYW1lc3BhY2UgKm5z IEFUVFJJQlVURV9VTlVTRUQpCiB9CiAKIAorc3RhdGljIHZvaWQKK3Jlc29sdmVfb21wX3Rh cmdldCAoZ2ZjX2NvZGUgKmNvZGUpCit7CisjZGVmaW5lIEdGQ19JU19URUFNU19DT05TVFJV Q1Qob3ApCQkJXAorICAob3AgPT0gRVhFQ19PTVBfVEVBTVMJCQkJCVwKKyAgIHx8IG9wID09 IEVYRUNfT01QX1RFQU1TX0RJU1RSSUJVVEUJCQlcCisgICB8fCBvcCA9PSBFWEVDX09NUF9U RUFNU19ESVNUUklCVVRFX1NJTUQJCVwKKyAgIHx8IG9wID09IEVYRUNfT01QX1RFQU1TX0RJ U1RSSUJVVEVfUEFSQUxMRUxfRE8JXAorICAgfHwgb3AgPT0gRVhFQ19PTVBfVEVBTVNfRElT VFJJQlVURV9QQVJBTExFTF9ET19TSU1ECVwKKyAgIHx8IG9wID09IEVYRUNfT01QX1RFQU1T X0xPT1ApCisKKyAgaWYgKCFjb2RlLT5leHQub21wX2NsYXVzZXMtPmNvbnRhaW5zX3RlYW1z X2NvbnN0cnVjdCkKKyAgICByZXR1cm47CisgIGlmICgoR0ZDX0lTX1RFQU1TX0NPTlNUUlVD VCAoY29kZS0+YmxvY2stPm5leHQtPm9wKQorICAgICAgICYmIGNvZGUtPmJsb2NrLT5uZXh0 LT5uZXh0ID09IE5VTEwpCisgICAgICB8fCAoY29kZS0+YmxvY2stPm5leHQtPm9wID09IEVY RUNfQkxPQ0sKKwkgICYmIGNvZGUtPmJsb2NrLT5uZXh0LT5uZXh0CisJICAmJiBHRkNfSVNf VEVBTVNfQ09OU1RSVUNUIChjb2RlLT5ibG9jay0+bmV4dC0+bmV4dC0+b3ApCisJICAmJiBj b2RlLT5ibG9jay0+bmV4dC0+bmV4dC0+bmV4dCA9PSBOVUxMKSkKKyAgICByZXR1cm47Cisg IGdmY19jb2RlICpjID0gY29kZS0+YmxvY2stPm5leHQ7CisgIHdoaWxlIChjICYmICFHRkNf SVNfVEVBTVNfQ09OU1RSVUNUIChjLT5vcCkpCisgICAgYyA9IGMtPm5leHQ7CisgIGlmIChj KQorICAgIGdmY19lcnJvciAoIiEkT01QIFRBUkdFVCByZWdpb24gYXQgJUwgd2l0aCBhIG5l c3RlZCBURUFNUyBhdCAlTCBtYXkgbm90ICIKKwkgICAgICAgImNvbnRhaW4gYW55IG90aGVy IHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgIgorCSAgICAg ICAib2YgdGhlIHNpbmdsZSBURUFNUyBjb25zdHJ1Y3QiLCAmYy0+bG9jLCAmY29kZS0+bG9j KTsKKyAgZWxzZQorICAgIGdmY19lcnJvciAoIiEkT01QIFRBUkdFVCByZWdpb24gYXQgJUwg d2l0aCBhIG5lc3RlZCBURUFNUyBtYXkgbm90ICIKKwkgICAgICAgImNvbnRhaW4gYW55IG90 aGVyIHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgIgorCSAg ICAgICAib2YgdGhlIHNpbmdsZSBURUFNUyBjb25zdHJ1Y3QiLCAmY29kZS0+bG9jKTsKKyN1 bmRlZiBHRkNfSVNfVEVBTVNfQ09OU1RSVUNUCit9CisKKwogLyogUmVzb2x2ZSBPcGVuTVAg ZGlyZWN0aXZlIGNsYXVzZXMgYW5kIGNoZWNrIHZhcmlvdXMgcmVxdWlyZW1lbnRzCiAgICBv ZiBlYWNoIGRpcmVjdGl2ZS4gICovCiAKQEAgLTEwNzAzLDYgKzEwNzM4LDkgQEAgZ2ZjX3Jl c29sdmVfb21wX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19uYW1lc3BhY2UgKm5z KQogICAgIGNhc2UgRVhFQ19PTVBfVEVBTVNfTE9PUDoKICAgICAgIHJlc29sdmVfb21wX2Rv IChjb2RlKTsKICAgICAgIGJyZWFrOworICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUOgorICAg ICAgcmVzb2x2ZV9vbXBfdGFyZ2V0IChjb2RlKTsKKyAgICAgIGdjY19mYWxsdGhyb3VnaCAo KTsKICAgICBjYXNlIEVYRUNfT01QX0FMTE9DQVRFOgogICAgIGNhc2UgRVhFQ19PTVBfQUxM T0NBVE9SUzoKICAgICBjYXNlIEVYRUNfT01QX0FTU1VNRToKQEAgLTEwNzE4LDcgKzEwNzU2 LDYgQEAgZ2ZjX3Jlc29sdmVfb21wX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19u YW1lc3BhY2UgKm5zKQogICAgIGNhc2UgRVhFQ19PTVBfU0NPUEU6CiAgICAgY2FzZSBFWEVD X09NUF9TRUNUSU9OUzoKICAgICBjYXNlIEVYRUNfT01QX1NJTkdMRToKLSAgICBjYXNlIEVY RUNfT01QX1RBUkdFVDoKICAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9EQVRBOgogICAgIGNh c2UgRVhFQ19PTVBfVEFSR0VUX0VOVEVSX0RBVEE6CiAgICAgY2FzZSBFWEVDX09NUF9UQVJH RVRfRVhJVF9EQVRBOgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MgYi9nY2Mv Zm9ydHJhbi9wYXJzZS5jYwppbmRleCBlNTNiN2E0MmU5Mi4uMDExYTM5YzNkMDQgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL3BhcnNlLmNjCisrKyBiL2djYy9mb3J0cmFuL3BhcnNlLmNj CkBAIC0xMzEyLDYgKzEzMTIsMzkgQEAgZGVjb2RlX29tcF9kaXJlY3RpdmUgKHZvaWQpCiAJ ICBwcm9nX3VuaXQtPm9tcF90YXJnZXRfc2VlbiA9IHRydWU7CiAJYnJlYWs7CiAgICAgICB9 CisgICAgY2FzZSBTVF9PTVBfVEVBTVM6CisgICAgY2FzZSBTVF9PTVBfVEVBTVNfRElTVFJJ QlVURToKKyAgICBjYXNlIFNUX09NUF9URUFNU19ESVNUUklCVVRFX1NJTUQ6CisgICAgY2Fz ZSBTVF9PTVBfVEVBTVNfRElTVFJJQlVURV9QQVJBTExFTF9ETzoKKyAgICBjYXNlIFNUX09N UF9URUFNU19ESVNUUklCVVRFX1BBUkFMTEVMX0RPX1NJTUQ6CisgICAgY2FzZSBTVF9PTVBf VEVBTVNfTE9PUDoKKyAgICAgIGlmIChnZmNfc3RhdGVfc3RhY2stPnByZXZpb3VzICYmIGdm Y19zdGF0ZV9zdGFjay0+cHJldmlvdXMtPnRhaWwpCisJeworCSAgZ2ZjX3N0YXRlX2RhdGEg KnN0ayA9IGdmY19zdGF0ZV9zdGFjazsKKwkgIGRvIHsKKwkgICAgICAgc3RrID0gc3RrLT5w cmV2aW91czsKKwkgICAgIH0gd2hpbGUgKHN0ayAmJiBzdGstPnRhaWwgJiYgc3RrLT50YWls LT5vcCA9PSBFWEVDX0JMT0NLKTsKKwkgIGlmIChzdGsgJiYgc3RrLT50YWlsKQorCSAgICBz d2l0Y2ggKHN0ay0+dGFpbC0+b3ApCisJICAgICAgeworCSAgICAgIGNhc2UgRVhFQ19PTVBf VEFSR0VUOgorCSAgICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1RFQU1TX0RJU1RSSUJVVEU6 CisJICAgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJQlVURV9TSU1EOgor CSAgICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1RFQU1TX0RJU1RSSUJVVEVfUEFSQUxMRUxf RE86CisJICAgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfVEVBTVNfRElTVFJJQlVURV9QQVJB TExFTF9ET19TSU1EOgorCSAgICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1RFQU1TX0xPT1A6 CisJICAgICAgY2FzZSBFWEVDX09NUF9UQVJHRVRfUEFSQUxMRUw6CisJICAgICAgY2FzZSBF WEVDX09NUF9UQVJHRVRfUEFSQUxMRUxfRE86CisJICAgICAgY2FzZSBFWEVDX09NUF9UQVJH RVRfUEFSQUxMRUxfRE9fU0lNRDoKKwkgICAgICBjYXNlIEVYRUNfT01QX1RBUkdFVF9QQVJB TExFTF9MT09QOgorCSAgICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUX1NJTUQ6CisJCXN0ay0+ dGFpbC0+ZXh0Lm9tcF9jbGF1c2VzLT5jb250YWluc190ZWFtc19jb25zdHJ1Y3QgPSAxOwor CQlicmVhazsKKwkgIGRlZmF1bHQ6CisJICAgIGJyZWFrOworCSAgfQorCX0KKyAgICAgIGJy ZWFrOwogICAgIGNhc2UgU1RfT01QX0VSUk9SOgogICAgICAgaWYgKG5ld19zdC5leHQub21w X2NsYXVzZXMtPmF0ICE9IE9NUF9BVF9FWEVDVVRJT04pCiAJcmV0dXJuIFNUX05PTkU7CmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcHI5OTIyNi5mOTAg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcHI5OTIyNi5mOTAKaW5kZXggNzJk YmRkZTJlMjguLjJhZWEwYzE1NTg1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvcHI5OTIyNi5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL3ByOTkyMjYuZjkwCkBAIC0yLDcgKzIsNyBAQAogCiBzdWJyb3V0aW5lIHN1YiAo bikKICAgIGludGVnZXIgOjogbiwgaQotICAgISRvbXAgdGFyZ2V0CSEgeyBkZy1lcnJvciAi Y29uc3RydWN0IHdpdGggbmVzdGVkICd0ZWFtcycgY29uc3RydWN0IGNvbnRhaW5zIGRpcmVj dGl2ZXMgb3V0c2lkZSBvZiB0aGUgJ3RlYW1zJyBjb25zdHJ1Y3QiIH0KKyAgICEkb21wIHRh cmdldAkhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4xLiB3aXRoIGEgbmVz dGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVyIHN0YXRlbWVudCwg ZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNpbmdsZSBURUFNUyBj b25zdHJ1Y3QiIH0KICAgICEkb21wIHRlYW1zIGRpc3RyaWJ1dGUgZGlzdF9zY2hlZHVsZSAo c3RhdGljLG4rNCkKICAgIGRvIGkgPSAxLCA4CiAgICBlbmQgZG8KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90ZWFtcy01LmY5MCBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC90ZWFtcy01LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYmY1NDYxYjg3YzgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGVhbXMtNS5mOTAKQEAgLTAsMCArMSwxMjcg QEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKworISBQUiBmb3J0cmFuLzExMDcyNQorISBQUiBt aWRkbGUtZW5kLzcxMDY1CisKK2ltcGxpY2l0IG5vbmUKK2ludGVnZXIgOjogeAorISRvbXAg dGFyZ2V0IGRldmljZSgxKQorICBibG9jaworICAgICEkb21wIHRlYW1zIG51bV90ZWFtcyhm KCkpCisgICAgISRvbXAgZW5kIHRlYW1zCisgIGVuZCBibG9jaworISEkb21wIGVuZCB0YXJn ZXQKKworISRvbXAgdGFyZ2V0IGRldmljZSgxKQorICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMo ZigpKQorICAhJG9tcCBlbmQgdGVhbXMKKyEkb21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFy Z2V0IGRldmljZSgxKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4g d2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBz dGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5n bGUgVEVBTVMgY29uc3RydWN0IiB9CisgIHggPSA1CisgICEkb21wIHRlYW1zIG51bV90ZWFt cyhmKCkpICAhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4xLiB3aXRoIGEg bmVzdGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVyIHN0YXRlbWVu dCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNpbmdsZSBURUFN UyBjb25zdHJ1Y3QiIH0KKyAgISRvbXAgZW5kIHRlYW1zCishJG9tcCBlbmQgdGFyZ2V0CisK KyEkb21wIHRhcmdldCBkZXZpY2UoMSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdp b24gYXQgLjEuIHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBh bnkgb3RoZXIgc3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBv ZiB0aGUgc2luZ2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICAhJG9tcCB0ZWFtcyBudW1fdGVh bXMoZigpKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBh IG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1l bnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVB TVMgY29uc3RydWN0IiB9CisgICEkb21wIGVuZCB0ZWFtcworICB4ID0gNQorISRvbXAgZW5k IHRhcmdldAorCishJG9tcCB0YXJnZXQgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdp b24gYXQgLjEuIHdpdGggYSBuZXN0ZWQgVEVBTVMgbWF5IG5vdCBjb250YWluIGFueSBvdGhl ciBzdGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBz aW5nbGUgVEVBTVMgY29uc3RydWN0IiB9CisgIGJsb2NrCisgICAgYmxvY2sKKyAgICAhJG9t cCB0ZWFtcyBudW1fdGVhbXMoZigpKQorICAgICEkb21wIGVuZCB0ZWFtcworICAgIGVuZCBi bG9jaworICBlbmQgYmxvY2sKKyEkb21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0IGRl dmljZSgxKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBh IG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1l bnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVB TVMgY29uc3RydWN0IiB9CisgIGJsb2NrCisgICAgeCA9IDUKKyAgICAhJG9tcCB0ZWFtcyBu dW1fdGVhbXMoZigpKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4g d2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBz dGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5n bGUgVEVBTVMgY29uc3RydWN0IiB9CisgICAgISRvbXAgZW5kIHRlYW1zCisgIGVuZCBibG9j aworISRvbXAgZW5kIHRhcmdldAorCishJG9tcCB0YXJnZXQgZGV2aWNlKDEpICAhIHsgZGct ZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4xLiB3aXRoIGEgbmVzdGVkIFRFQU1TIGF0 IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVyIHN0YXRlbWVudCwgZGVjbGFyYXRpb24g b3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNpbmdsZSBURUFNUyBjb25zdHJ1Y3QiIH0K KyAgYmxvY2sKKyAgICAhJG9tcCB0ZWFtcyBudW1fdGVhbXMoZigpKSAgISB7IGRnLWVycm9y ICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4g bWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRp cmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVBTVMgY29uc3RydWN0IiB9CisgICAg ISRvbXAgZW5kIHRlYW1zCisgICAgeCA9IDUKKyAgZW5kIGJsb2NrCishJG9tcCBlbmQgdGFy Z2V0CisKKyEkb21wIHRhcmdldCBkZXZpY2UoMSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdF VCByZWdpb24gYXQgLjEuIHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29u dGFpbiBhbnkgb3RoZXIgc3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0 c2lkZSBvZiB0aGUgc2luZ2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICBibG9jaworICAgICEk b21wIHRlYW1zIG51bV90ZWFtcyhmKCkpICAhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVn aW9uIGF0IC4xLiB3aXRoIGEgbmVzdGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4g YW55IG90aGVyIHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUg b2YgdGhlIHNpbmdsZSBURUFNUyBjb25zdHJ1Y3QiIH0KKyAgICAhJG9tcCBlbmQgdGVhbXMK KyAgICB4ID0gNQorICBlbmQgYmxvY2sKKyEkb21wIGVuZCB0YXJnZXQKKworY29udGFpbnMK KworZnVuY3Rpb24gZigpCisgICEkb21wIGRlY2xhcmUgdGFyZ2V0CisgIGludGVnZXIsIGFs bG9jYXRhYmxlIDo6IGYKKyAgZiA9IDUKK2VuZAorZW5kCisKK3N1YnJvdXRpbmUgc3ViMQor ICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgOjogeCxpCisKKyAgISRvbXAgdGFyZ2V0IGRl dmljZSgxKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBh IG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1l bnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVB TVMgY29uc3RydWN0IiB9CisgIGJsb2NrCisgICAgISRvbXAgdGVhbXMgZGlzdHJpYnV0ZSBu dW1fdGVhbXMoZigpKSAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4g d2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBz dGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5n bGUgVEVBTVMgY29uc3RydWN0IiB9CisgICAgZG8gaSA9IDEsIDUKKyAgICBlbmQgZG8KKyAg ICB4ID0gNworICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhcmdldAorCisgICEkb21wIHRh cmdldCBkZXZpY2UoMSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEu IHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIg c3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2lu Z2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICBibG9jaworICAgICEkb21wIHRlYW1zIGxvb3Ag bnVtX3RlYW1zKGYoKSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEu IHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIg c3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2lu Z2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICAgIGRvIGkgPSAxLCA1CisgICAgZW5kIGRvCisg ICAgeCA9IDcKKyAgZW5kIGJsb2NrCisgICEkb21wIGVuZCB0YXJnZXQKKworICAhJG9tcCB0 YXJnZXQgZGV2aWNlKDEpICAhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4x LiB3aXRoIGEgbmVzdGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVy IHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNp bmdsZSBURUFNUyBjb25zdHJ1Y3QiIH0KKyAgICAhJG9tcCB0ZWFtcyBkaXN0cmlidXRlIHNp bWQgbnVtX3RlYW1zKGYoKSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQg LjEuIHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3Ro ZXIgc3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUg c2luZ2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICAgIGRvIGkgPSAxLCA1CisgICAgZW5kIGRv CisgICAgeCA9IDcKKyAgISRvbXAgZW5kIHRhcmdldAorCisgICEkb21wIHRhcmdldCBkZXZp Y2UoMSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEuIHdpdGggYSBu ZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIgc3RhdGVtZW50 LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2luZ2xlIFRFQU1T IGNvbnN0cnVjdCIgfQorICAgICEkb21wIHRlYW1zIGRpc3RyaWJ1dGUgcGFyYWxsZWwgZG8g bnVtX3RlYW1zKGYoKSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEu IHdpdGggYSBuZXN0ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIg c3RhdGVtZW50LCBkZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2lu Z2xlIFRFQU1TIGNvbnN0cnVjdCIgfQorICAgIGRvIGkgPSAxLCA1CisgICAgZW5kIGRvCisg ICAgeCA9IDcKKyAgISRvbXAgZW5kIHRhcmdldAorCisgICEkb21wIHRhcmdldCBkZXZpY2Uo MSkgICEgeyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEuIHdpdGggYSBuZXN0 ZWQgVEVBTVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIgc3RhdGVtZW50LCBk ZWNsYXJhdGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2luZ2xlIFRFQU1TIGNv bnN0cnVjdCIgfQorICBibG9jaworICAgIHggPSA3CisgICAgISRvbXAgdGVhbXMgZGlzdHJp YnV0ZSBwYXJhbGxlbCBkbyBzaW1kIG51bV90ZWFtcyhmKCkpICAhIHsgZGctZXJyb3IgIk9N UCBUQVJHRVQgcmVnaW9uIGF0IC4xLiB3aXRoIGEgbmVzdGVkIFRFQU1TIGF0IC4yLiBtYXkg bm90IGNvbnRhaW4gYW55IG90aGVyIHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0 aXZlIG91dHNpZGUgb2YgdGhlIHNpbmdsZSBURUFNUyBjb25zdHJ1Y3QiIH0KKyAgICBkbyBp ID0gMSwgNQorICAgIGVuZCBkbworICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhcmdldAor Citjb250YWlucworCitmdW5jdGlvbiBmKCkKKyAgISRvbXAgZGVjbGFyZSB0YXJnZXQKKyAg aW50ZWdlciwgYWxsb2NhdGFibGUgOjogZgorICBmID0gNQorZW5kCisKK2VuZAo= --------------Dew80gMPSGAi7SdSLjM8D2sP--