From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id C486D3857428; Wed, 18 May 2022 09:02:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C486D3857428 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.91,234,1647331200"; d="diff'?scan'208";a="76044542" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa4.mentor.iphmx.com with ESMTP; 18 May 2022 01:02:33 -0800 IronPort-SDR: yinL2aQvaUO5LKwComemSvAvuf4v77r6SByy7/OSJChBhZC/szGyCtJ0xEbsARrwE+Xo3yVnE1 rwlwHKBGCdIb6OQnJLmvNoz4PUdo7XNf6veH/QbAPMB+bXfc7mZFgNPkH5+Ivx8RAULraHLhgz K0UOjItYAGs6762Q0QLuPtzfkBk7arBK0XJlER3IqiAm91xjCVFXF+G9uEE7SK0hvbJQsowx5c IeZDo2NX5WahwbKbSAV7zfgM5NbPoHfwrWPIEzmmcgthd4S+0BhSg9pkJdAH2G+cmHUmVxqe4j EHM= Content-Type: multipart/mixed; boundary="------------fF8Xm5g3pYm12UnxDwHIujV8" Message-ID: Date: Wed, 18 May 2022 11:02:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: [Patch] OpenMP: Add Fortran support for inoutset depend-kind (was: openmp: Add support for inoutset depend-kind) Content-Language: en-US To: Jakub Jelinek , , fortran References: From: Tobias Burnus In-Reply-To: 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, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 May 2022 09:02:46 -0000 --------------fF8Xm5g3pYm12UnxDwHIujV8 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 17.05.22 15:55, Jakub Jelinek via Gcc-patches wrote: > This patch adds support for inoutset depend-kind in depend > clauses. While this patch adds the Fortran FE bits and converts the C/C++ testcase changes for Fortran. Bootstrapped/regtested on x86_64-linux. OK for trunk? Tobias ----------------- 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 --------------fF8Xm5g3pYm12UnxDwHIujV8 Content-Type: text/x-patch; charset="UTF-8"; name="omp-inoutset-f90.diff" Content-Disposition: attachment; filename="omp-inoutset-f90.diff" Content-Transfer-Encoding: base64 T3Blbk1QOiBBZGQgRm9ydHJhbiBzdXBwb3J0IGZvciBpbm91dHNldCBkZXBlbmQta2luZAoK Rm9ydHJhbiBhZGRpdGlvbnMgdG8gdGhlIEMvQysrICsgTUUvbGliZ29tcCBjb21taXQKcjEz LTU1Ni1nMmMxNmViMzE1N2Y4NmFlNTYxNDY4YzU0MGNhZjhlYjMyNjEwNmI1ZgoKZ2NjL2Zv cnRyYW4vQ2hhbmdlTG9nOgoKCSogZ2ZvcnRyYW4uaCAoZW51bSBnZmNfb21wX2RlcGVuZF9v cCk6IEFkZCBPTVBfREVQRU5EX0lOT1VUU0VULgoJKGdmY19vbXBfY2xhdXNlcyk6IEVubGFy Z2UgRU5VTV9CSVRGSUVMRC4KCSogZHVtcC1wYXJzZS10cmVlLmNjIChzaG93X29tcF9uYW1l bGlzdCwgc2hvd19vbXBfY2xhdXNlcyk6IEhhbmRsZQoJJ2lub3V0c2V0JyBkZXBlbmQgbW9k aWZpZXIuCgkqIG9wZW5tcC5jYyAoZ2ZjX21hdGNoX29tcF9jbGF1c2VzLCBnZmNfbWF0Y2hf b21wX2RlcG9iaik6IExpa2V3aXNlLgoJKiB0cmFucy1vcGVubXAuY2MgKGdmY190cmFuc19v bXBfY2xhdXNlcywgZ2ZjX3RyYW5zX29tcF9kZXBvYmopOgoJTGlrZXdpc2UuCgpsaWJnb21w L0NoYW5nZUxvZzoKCgkqIGxpYmdvbXAudGV4aSAoT3Blbk1QIDUuMSk6IFNldCAnaW5vdXRz ZXQnIHRvIFkuCgkoT3Blbk1QIENvbnRleHQgU2VsZWN0b3JzKTogQWRkIG1pc3NpbmcgY29t bWEuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLTUuZjkwOiBBZGQgaW5v dXRzZXQgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZXBlbmQtNi5mOTA6 IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlcGVuZC03LmY5MDog TGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLWlub3V0c2V0 LTEuZjkwOiBOZXcgdGVzdC4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2ZvcnRy YW4uZGcvZ29tcC9hbGwtbWVtb3J5LTEuZjkwOiBBZGQgaW5vdXRzZXQgdGVzdC4KCSogZ2Zv cnRyYW4uZGcvZ29tcC9hbGwtbWVtb3J5LTIuZjkwOiBMaWtld2lzZS4KCSogZ2ZvcnRyYW4u ZGcvZ29tcC9kZXBvYmotMS5mOTA6IExpa2V3aXNlLgoJKiBnZm9ydHJhbi5kZy9nb21wL2Rl cG9iai0yLmY5MDogTGlrZXdpc2UuCgogZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNj ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGdjYy9mb3J0cmFuL29wZW5t cC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBnY2MvZm9ydHJh bi90cmFucy1vcGVubXAuY2MgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0xLmY5MCAgICB8ICAgMyAr CiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0yLmY5MCAgICB8 ICAgMyArCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVwb2JqLTEuZjkwICAg ICAgICB8ICAgMyArCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVwb2JqLTIu ZjkwICAgICAgICB8ICAgNiArLQogbGliZ29tcC9saWJnb21wLnRleGkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Zm9ydHJhbi9kZXBlbmQtNS5mOTAgICAgIHwgICA4ICstCiBsaWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vZGVwZW5kLTYuZjkwICAgICB8ICAgOCArLQogbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlcGVuZC03LmY5MCAgICAgfCAgIDggKy0KIC4uLi9s aWJnb21wLmZvcnRyYW4vZGVwZW5kLWlub3V0c2V0LTEuZjkwICAgICAgICAgIHwgMTcwICsr KysrKysrKysrKysrKysrKysrKwogMTMgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMo KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2R1bXAtcGFy c2UtdHJlZS5jYyBiL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYwppbmRleCBhMzI5 OTIwMzVhMi4uNGU4OTg2YmQ1OTkgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2R1bXAtcGFy c2UtdHJlZS5jYworKysgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MKQEAgLTEz NzksNiArMTM3OSw3IEBAIHNob3dfb21wX25hbWVsaXN0IChpbnQgbGlzdF90eXBlLCBnZmNf b21wX25hbWVsaXN0ICpuKQogCSAgY2FzZSBPTVBfREVQRU5EX0lOOiBmcHV0cyAoImluOiIs IGR1bXBmaWxlKTsgYnJlYWs7CiAJICBjYXNlIE9NUF9ERVBFTkRfT1VUOiBmcHV0cyAoIm91 dDoiLCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgY2FzZSBPTVBfREVQRU5EX0lOT1VUOiBmcHV0 cyAoImlub3V0OiIsIGR1bXBmaWxlKTsgYnJlYWs7CisJICBjYXNlIE9NUF9ERVBFTkRfSU5P VVRTRVQ6IGZwdXRzICgiaW5vdXRzZXQ6IiwgZHVtcGZpbGUpOyBicmVhazsKIAkgIGNhc2Ug T01QX0RFUEVORF9ERVBPQko6IGZwdXRzICgiZGVwb2JqOiIsIGR1bXBmaWxlKTsgYnJlYWs7 CiAJICBjYXNlIE9NUF9ERVBFTkRfTVVURVhJTk9VVFNFVDoKIAkgICAgZnB1dHMgKCJtdXRl eGlub3V0c2V0OiIsIGR1bXBmaWxlKTsKQEAgLTE4OTgsNiArMTg5OSw3IEBAIHNob3dfb21w X2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMpCiAJY2FzZSBPTVBfREVQ RU5EX0lOOiBkZXB0eXBlID0gIklOIjsgYnJlYWs7CiAJY2FzZSBPTVBfREVQRU5EX09VVDog ZGVwdHlwZSA9ICJPVVQiOyBicmVhazsKIAljYXNlIE9NUF9ERVBFTkRfSU5PVVQ6IGRlcHR5 cGUgPSAiSU5PVVQiOyBicmVhazsKKwljYXNlIE9NUF9ERVBFTkRfSU5PVVRTRVQ6IGRlcHR5 cGUgPSAiSU5PVVRTRVQiOyBicmVhazsKIAljYXNlIE9NUF9ERVBFTkRfTVVURVhJTk9VVFNF VDogZGVwdHlwZSA9ICJNVVRFWElOT1VUU0VUIjsgYnJlYWs7CiAJZGVmYXVsdDogZ2NjX3Vu cmVhY2hhYmxlICgpOwogCX0KZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgg Yi9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCmluZGV4IDFiY2UyODMzMTM5Li41ZDk3MGJjMWRm MCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9nY2MvZm9ydHJh bi9nZm9ydHJhbi5oCkBAIC0xMjcxLDYgKzEyNzEsNyBAQCBlbnVtIGdmY19vbXBfZGVwZW5k X29wCiAgIE9NUF9ERVBFTkRfSU4sCiAgIE9NUF9ERVBFTkRfT1VULAogICBPTVBfREVQRU5E X0lOT1VULAorICBPTVBfREVQRU5EX0lOT1VUU0VULAogICBPTVBfREVQRU5EX01VVEVYSU5P VVRTRVQsCiAgIE9NUF9ERVBFTkRfREVQT0JKLAogICBPTVBfREVQRU5EX1NJTktfRklSU1Qs CkBAIC0xNTQwLDcgKzE1NDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBnZmNfb21wX2NsYXVzZXMK ICAgRU5VTV9CSVRGSUVMRCAoZ2ZjX29tcF9tZW1vcmRlcikgZmFpbDozOwogICBFTlVNX0JJ VEZJRUxEIChnZmNfb21wX2NhbmNlbF9raW5kKSBjYW5jZWw6MzsKICAgRU5VTV9CSVRGSUVM RCAoZ2ZjX29tcF9wcm9jX2JpbmRfa2luZCkgcHJvY19iaW5kOjM7Ci0gIEVOVU1fQklURklF TEQgKGdmY19vbXBfZGVwZW5kX29wKSBkZXBvYmpfdXBkYXRlOjM7CisgIEVOVU1fQklURklF TEQgKGdmY19vbXBfZGVwZW5kX29wKSBkZXBvYmpfdXBkYXRlOjQ7CiAgIEVOVU1fQklURklF TEQgKGdmY19vbXBfYmluZF90eXBlKSBiaW5kOjI7CiAgIEVOVU1fQklURklFTEQgKGdmY19v bXBfYXRfdHlwZSkgYXQ6MjsKICAgRU5VTV9CSVRGSUVMRCAoZ2ZjX29tcF9zZXZlcml0eV90 eXBlKSBzZXZlcml0eToyOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjIGIv Z2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDMwNjFlNTI5N2I3Li42M2ZkNGRkMjc2NyAx MDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCisrKyBiL2djYy9mb3J0cmFuL29w ZW5tcC5jYwpAQCAtMTkxNSw3ICsxOTE1LDkgQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChn ZmNfb21wX2NsYXVzZXMgKipjcCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkJYnJlYWs7CiAJ ICAgICAgbSA9IE1BVENIX1lFUzsKIAkgICAgICBnZmNfb21wX2RlcGVuZF9vcCBkZXBlbmRf b3AgPSBPTVBfREVQRU5EX09VVDsKLQkgICAgICBpZiAoZ2ZjX21hdGNoICgiaW5vdXQiKSA9 PSBNQVRDSF9ZRVMpCisJICAgICAgaWYgKGdmY19tYXRjaCAoImlub3V0c2V0IikgPT0gTUFU Q0hfWUVTKQorCQlkZXBlbmRfb3AgPSBPTVBfREVQRU5EX0lOT1VUU0VUOworCSAgICAgIGVs c2UgaWYgKGdmY19tYXRjaCAoImlub3V0IikgPT0gTUFUQ0hfWUVTKQogCQlkZXBlbmRfb3Ag PSBPTVBfREVQRU5EX0lOT1VUOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoImluIikg PT0gTUFUQ0hfWUVTKQogCQlkZXBlbmRfb3AgPSBPTVBfREVQRU5EX0lOOwpAQCAtMzgwNSw3 ICszODA3LDkgQEAgZ2ZjX21hdGNoX29tcF9kZXBvYmogKHZvaWQpCiAgIGlmIChnZmNfbWF0 Y2ggKCJ1cGRhdGUgKCAiKSA9PSBNQVRDSF9ZRVMpCiAgICAgewogICAgICAgYyA9IGdmY19n ZXRfb21wX2NsYXVzZXMgKCk7Ci0gICAgICBpZiAoZ2ZjX21hdGNoICgiaW5vdXQgKSIpID09 IE1BVENIX1lFUykKKyAgICAgIGlmIChnZmNfbWF0Y2ggKCJpbm91dHNldCApIikgPT0gTUFU Q0hfWUVTKQorCWMtPmRlcG9ial91cGRhdGUgPSBPTVBfREVQRU5EX0lOT1VUU0VUOworICAg ICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgiaW5vdXQgKSIpID09IE1BVENIX1lFUykKIAljLT5k ZXBvYmpfdXBkYXRlID0gT01QX0RFUEVORF9JTk9VVDsKICAgICAgIGVsc2UgaWYgKGdmY19t YXRjaCAoImluICkiKSA9PSBNQVRDSF9ZRVMpCiAJYy0+ZGVwb2JqX3VwZGF0ZSA9IE9NUF9E RVBFTkRfSU47CkBAIC0zODE1LDggKzM4MTksOCBAQCBnZmNfbWF0Y2hfb21wX2RlcG9iaiAo dm9pZCkKIAljLT5kZXBvYmpfdXBkYXRlID0gT01QX0RFUEVORF9NVVRFWElOT1VUU0VUOwog ICAgICAgZWxzZQogCXsKLQkgIGdmY19lcnJvciAoIkV4cGVjdGVkIElOLCBPVVQsIElOT1VU LCBNVVRFWElOT1VUU0VUIGZvbGxvd2VkIGJ5ICIKLQkJICAgICAiJTwpJT4gYXQgJUMiKTsK KwkgIGdmY19lcnJvciAoIkV4cGVjdGVkIElOLCBPVVQsIElOT1VULCBJTk9VVFNFVCBvciBN VVRFWElOT1VUU0VUICIKKwkJICAgICAiZm9sbG93ZWQgYnkgJTwpJT4gYXQgJUMiKTsKIAkg IGdvdG8gZXJyb3I7CiAJfQogICAgIH0KZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5z LW9wZW5tcC5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwppbmRleCA3NjMzYWVl NzU1Yy4uZTE5MDdhNDZkNWEgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5t cC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKQEAgLTI5MzcsNiArMjkz Nyw5IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJsb2NrX3QgKmJsb2NrLCBnZmNf b21wX2NsYXVzZXMgKmNsYXVzZXMsCiAJCSAgY2FzZSBPTVBfREVQRU5EX0lOT1VUOgogCQkg ICAgT01QX0NMQVVTRV9ERVBFTkRfS0lORCAobm9kZSkgPSBPTVBfQ0xBVVNFX0RFUEVORF9J Tk9VVDsKIAkJICAgIGJyZWFrOworCQkgIGNhc2UgT01QX0RFUEVORF9JTk9VVFNFVDoKKwkJ ICAgIE9NUF9DTEFVU0VfREVQRU5EX0tJTkQgKG5vZGUpID0gT01QX0NMQVVTRV9ERVBFTkRf SU5PVVRTRVQ7CisJCSAgICBicmVhazsKIAkJICBjYXNlIE9NUF9ERVBFTkRfTVVURVhJTk9V VFNFVDoKIAkJICAgIE9NUF9DTEFVU0VfREVQRU5EX0tJTkQgKG5vZGUpCiAJCSAgICAgID0g T01QX0NMQVVTRV9ERVBFTkRfTVVURVhJTk9VVFNFVDsKQEAgLTU1OTMsNiArNTU5Niw3IEBA IGdmY190cmFuc19vbXBfZGVwb2JqIChnZmNfY29kZSAqY29kZSkKICAgICAgIGNhc2UgT01Q X0RFUEVORF9JTjogayA9IEdPTVBfREVQRU5EX0lOOyBicmVhazsKICAgICAgIGNhc2UgT01Q X0RFUEVORF9PVVQ6IGsgPSBHT01QX0RFUEVORF9PVVQ7IGJyZWFrOwogICAgICAgY2FzZSBP TVBfREVQRU5EX0lOT1VUOiBrID0gR09NUF9ERVBFTkRfSU5PVVQ7IGJyZWFrOworICAgICAg Y2FzZSBPTVBfREVQRU5EX0lOT1VUU0VUOiBrID0gR09NUF9ERVBFTkRfSU5PVVRTRVQ7IGJy ZWFrOwogICAgICAgY2FzZSBPTVBfREVQRU5EX01VVEVYSU5PVVRTRVQ6IGsgPSBHT01QX0RF UEVORF9NVVRFWElOT1VUU0VUOyBicmVhazsKICAgICAgIGRlZmF1bHQ6IGdjY191bnJlYWNo YWJsZSAoKTsKICAgICAgIH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9hbGwtbWVtb3J5LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL2FsbC1tZW1vcnktMS5mOTAKaW5kZXggNmQ1NjQ3M2IxZjMuLmY4ZjM0ZjBjODg3IDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0x LmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0x LmY5MApAQCAtNDQsNiArNDQsOSBAQCBzdWJyb3V0aW5lIGY2CiAgICEkb21wIHRhcmdldCBk ZXBlbmQobXV0ZXhpbm91dHNldCA6IG9tcF9hbGxfbWVtb3J5ICkgICEgeyBkZy1lcnJvciAi J29tcF9hbGxfbWVtb3J5JyB1c2VkIHdpdGggREVQRU5EIGtpbmQgb3RoZXIgdGhhbiBPVVQg b3IgSU5PVVQiIH0KICAgISAhJG9tcCBlbmQgdGFyZ2V0CiAKKyAgISRvbXAgdGFyZ2V0IGRl cGVuZChpbm91dHNldCA6IG9tcF9hbGxfbWVtb3J5ICkgICEgeyBkZy1lcnJvciAiJ29tcF9h bGxfbWVtb3J5JyB1c2VkIHdpdGggREVQRU5EIGtpbmQgb3RoZXIgdGhhbiBPVVQgb3IgSU5P VVQiIH0KKyAgISAhJG9tcCBlbmQgdGFyZ2V0CisKICAgISRvbXAgdGFyZ2V0IGRlcGVuZCAo IGRlcG9iaiA6IG9tcF9hbGxfbWVtb3J5KSAgISB7IGRnLWVycm9yICInb21wX2FsbF9tZW1v cnknIHVzZWQgd2l0aCBERVBFTkQga2luZCBvdGhlciB0aGFuIE9VVCBvciBJTk9VVCIgfQog ICAhISRvbXAgZW5kIHRhcmdldAogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9hbGwtbWVtb3J5LTIuZjkwCmluZGV4IGY3ZWUzNGZlZGM4Li5lN2Q1MWJlZjg4 NSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbC1tZW1v cnktMi5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbC1tZW1v cnktMi5mOTAKQEAgLTQ1LDYgKzQ1LDkgQEAgc3Vicm91dGluZSBmNgogICAhJG9tcCB0YXJn ZXQgZGVwZW5kKG11dGV4aW5vdXRzZXQgOiBvbXBfYWxsX21lbW9yeSApCiAgICEgISRvbXAg ZW5kIHRhcmdldAogCisgICEkb21wIHRhcmdldCBkZXBlbmQoaW5vdXRzZXQgOiBvbXBfYWxs X21lbW9yeSApCisgICEgISRvbXAgZW5kIHRhcmdldAorCiAgISRvbXAgdGFyZ2V0IGRlcGVu ZCAoIGRlcG9iaiA6IG9tcF9hbGxfbWVtb3J5KQogICEkb21wIGVuZCB0YXJnZXQKIApkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlcG9iai0xLmY5MCBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZXBvYmotMS5mOTAKaW5kZXggNjZj ZmI2MTA2MGYuLjczNzM0YmJiMDdlIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvZGVwb2JqLTEuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9kZXBvYmotMS5mOTAKQEAgLTIyLDQgKzIyLDcgQEAgc3Vicm91dGluZSBmMQog ICAhJG9tcCB0YXNrIGRlcGVuZChtdXRleGlub3V0c2V0OiBhKQogICAhJG9tcCBlbmQgdGFz awogICAhJG9tcCBkZXBvYmooZGVwb2JqMikgZGVzdHJveQorICAhJG9tcCBkZXBvYmooZGVw b2JqMSkgZGVwZW5kKGlub3V0c2V0OiBhKQorICAhJG9tcCBkZXBvYmooZGVwb2JqMSkgdXBk YXRlKG11dGV4aW5vdXRzZXQpCisgICEkb21wIGRlcG9iaihkZXBvYmoxKSB1cGRhdGUoaW5v dXRzZXQpCiBlbmQgc3Vicm91dGluZSBmMQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb21wL2RlcG9iai0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9kZXBvYmotMi5mOTAKaW5kZXggM2ZmZDNkNWQwMWIuLmNiNjdjM2NlOWQxIDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVwb2JqLTIuZjkw CisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZXBvYmotMi5mOTAKQEAg LTIzLDkgKzIzLDkgQEAgc3Vicm91dGluZSBmMQogICAhJG9tcCBkZXBvYmooZGVwb2JqKSBk ZXBlbmQobXV0ZXhpbm91dHNldCA6IGEpICAgICAhIE9LCiAgICEkb21wIGRlcG9iaihkZXBv YmopIGRlcGVuZChzb3VyY2UpICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiREVQRU5E IGNsYXVzZSBhdCAuMS4gb2YgT01QIERFUE9CSiBjb25zdHJ1Y3Qgc2hhbGwgbm90IGhhdmUg ZGVwZW5kZW5jZS10eXBlIFNPVVJDRSwgU0lOSyBvciBERVBPQkoiIH0KICAgISRvbXAgZGVw b2JqKGRlcG9iaikgZGVwZW5kKHNpbmsgOiBpICsgMSkgICAgICAgICAgISB7IGRnLWVycm9y ICJERVBFTkQgY2xhdXNlIGF0IC4xLiBvZiBPTVAgREVQT0JKIGNvbnN0cnVjdCBzaGFsbCBu b3QgaGF2ZSBkZXBlbmRlbmNlLXR5cGUgU09VUkNFLCBTSU5LIG9yIERFUE9CSiIgfQotICAh JG9tcCBkZXBvYmooZGVwb2JqKSB1cGRhdGUoc291cmNlKSAgICAgICAgICAgICAgICAhIHsg ZGctZXJyb3IgIkV4cGVjdGVkIElOLCBPVVQsIElOT1VULCBNVVRFWElOT1VUU0VUIGZvbGxv d2VkIGJ5ICdcXCknIiB9Ci0gICEkb21wIGRlcG9iaihkZXBvYmopIHVwZGF0ZShzaW5rKSAg ICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgSU4sIE9VVCwgSU5PVVQs IE1VVEVYSU5PVVRTRVQgZm9sbG93ZWQgYnkgJ1xcKSciIH0KLSAgISRvbXAgZGVwb2JqKGRl cG9iaikgdXBkYXRlKGRlcG9iaikgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICJFeHBl Y3RlZCBJTiwgT1VULCBJTk9VVCwgTVVURVhJTk9VVFNFVCBmb2xsb3dlZCBieSAnXFwpJyIg fQorICAhJG9tcCBkZXBvYmooZGVwb2JqKSB1cGRhdGUoc291cmNlKSAgICAgICAgICAgICAg ICAhIHsgZGctZXJyb3IgIkV4cGVjdGVkIElOLCBPVVQsIElOT1VULCBJTk9VVFNFVCBvciBN VVRFWElOT1VUU0VUIGZvbGxvd2VkIGJ5ICdcXCknIiB9CisgICEkb21wIGRlcG9iaihkZXBv YmopIHVwZGF0ZShzaW5rKSAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiRXhwZWN0 ZWQgSU4sIE9VVCwgSU5PVVQsIElOT1VUU0VUIG9yIE1VVEVYSU5PVVRTRVQgZm9sbG93ZWQg YnkgJ1xcKSciIH0KKyAgISRvbXAgZGVwb2JqKGRlcG9iaikgdXBkYXRlKGRlcG9iaikgICAg ICAgICAgICAgICAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBJTiwgT1VULCBJTk9VVCwgSU5P VVRTRVQgb3IgTVVURVhJTk9VVFNFVCBmb2xsb3dlZCBieSAnXFwpJyIgfQogCiAgICEgVmFs aWQgaW4gT3Blbk1QIDUuMToKICAgISRvbXAgZGVwb2JqKGRlcG9iajUpIGRlcGVuZChkZXBv Ymo6IGRlcG9iajMpICAgICAgISB7IGRnLWVycm9yICJERVBFTkQgY2xhdXNlIGF0IC4xLiBv ZiBPTVAgREVQT0JKIGNvbnN0cnVjdCBzaGFsbCBub3QgaGF2ZSBkZXBlbmRlbmNlLXR5cGUg U09VUkNFLCBTSU5LIG9yIERFUE9CSiIgfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJnb21w LnRleGkgYi9saWJnb21wL2xpYmdvbXAudGV4aQppbmRleCA5ZjQwYmFlMTI0Ny4uYzlkMDFj ZDhhNWMgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29tcC50ZXhpCisrKyBiL2xpYmdvbXAv bGliZ29tcC50ZXhpCkBAIC0zMDYsNyArMzA2LDcgQEAgVGhlIE9wZW5NUCA0LjUgc3BlY2lm aWNhdGlvbiBpcyBmdWxseSBzdXBwb3J0ZWQuCiBAaXRlbSBAY29kZXtub3dhaXR9IGNsYXVz ZSBpbiBAY29kZXt0YXNrd2FpdH0gZGlyZWN0aXZlIEB0YWIgTiBAdGFiCiBAaXRlbSBFeHRl bnNpb25zIHRvIHRoZSBAY29kZXthdG9taWN9IGRpcmVjdGl2ZSBAdGFiIFkgQHRhYgogQGl0 ZW0gQGNvZGV7c2VxX2NzdH0gY2xhdXNlIG9uIGEgQGNvZGV7Zmx1c2h9IGNvbnN0cnVjdCBA dGFiIFkgQHRhYgotQGl0ZW0gQGNvZGV7aW5vdXRzZXR9IGFyZ3VtZW50IHRvIHRoZSBAY29k ZXtkZXBlbmR9IGNsYXVzZSBAdGFiIE4gQHRhYgorQGl0ZW0gQGNvZGV7aW5vdXRzZXR9IGFy Z3VtZW50IHRvIHRoZSBAY29kZXtkZXBlbmR9IGNsYXVzZSBAdGFiIFkgQHRhYgogQGl0ZW0g QGNvZGV7cHJpdmF0ZX0gYW5kIEBjb2Rle2ZpcnN0cHJpdmF0ZX0gYXJndW1lbnQgdG8gQGNv ZGV7ZGVmYXVsdH0KICAgICAgIGNsYXVzZSBpbiBDIGFuZCBDKysgQHRhYiBZIEB0YWIKIEBp dGVtIEBjb2Rle3ByZXNlbnR9IGFyZ3VtZW50IHRvIEBjb2Rle2RlZmF1bHRtYXB9IGNsYXVz ZSBAdGFiIE4gQHRhYgpAQCAtNDI3OSw3ICs0Mjc5LDcgQEAgVGhlIGZvbGxvd2luZyBzZWN0 aW9ucyBwcmVzZW50IG5vdGVzIG9uIHRoZSBvZmZsb2FkLXRhcmdldCBzcGVjaWZpY3MuCiAg ICAgICBAY29kZXtpNTg2fSwgQGNvZGV7aTY4Nn0sIEBjb2Rle2lhMzJ9CiAgICAgICBAdGFi IEBjb2Rle2hvc3R9CiAgICAgICBAdGFiIFNlZSBAY29kZXstbS4uLn0gZmxhZ3MgaW4gYGB4 ODYgT3B0aW9ucycnICh3aXRob3V0IEBjb2Rley1tfSkKLUBpdGVtIEBjb2Rle2FtZGdjbn0g QGNvZGV7Z2NufQorQGl0ZW0gQGNvZGV7YW1kZ2NufSwgQGNvZGV7Z2NufQogICAgICAgQHRh YiBAY29kZXtncHV9CiAgICAgICBAdGFiIFNlZSBAY29kZXstbWFyY2g9fSBpbiBgYEFNRCBH Q04gT3B0aW9ucycnCiBAaXRlbSBAY29kZXtudnB0eH0KZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZXBlbmQtNS5mOTAgYi9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLTUuZjkwCmluZGV4IGEzNTBlNzkzNjIzLi5i ODEyYjZkYWI1MyAxMDA2NDQKLS0tIGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0 cmFuL2RlcGVuZC01LmY5MAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRy YW4vZGVwZW5kLTUuZjkwCkBAIC01OSw2ICs1OSwxMiBAQCBzdWJyb3V0aW5lIHRlc3QgKGlm dmFsKQogICAgICAgY2FsbCB1c2xlZXAgKDUwMDApCiAgICAgICBiKDQpID0gNDgKICAgICBl bmQgYmxvY2sKKyAgICAhJG9tcCB0YXNrIHNoYXJlZChiKSBkZXBlbmQoaW5vdXRzZXQ6IGIo NSkpCisgICAgYmxvY2sKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKQorICAgICAgYig1KSA9 IDQ5CisgICAgZW5kIGJsb2NrCisKICAgICAhIE5vbmUgb2YgdGhlIGFib3ZlIHRhc2tzIGRl cGVuZCBvbiBlYWNoIG90aGVyLgogICAgICEgVGhlIGZvbGxvd2luZyB0YXNrIGRlcGVuZHMg b24gYWxsIGJ1dCB0aGUgYSg0KSA9IDQ2OyBvbmUuCiAgICAgISRvbXAgdGFzayBzaGFyZWQo YSwgYikgZGVwZW5kKG91dDogb21wX2FsbF9tZW1vcnkpIHByaXZhdGUoaSkgaWYoaWZ2YWwp CkBAIC02Niw3ICs3Miw3IEBAIHN1YnJvdXRpbmUgdGVzdCAoaWZ2YWwpCiAgICAgICBpZiAo YSgwKSAvPSA0MiAub3IuIGEoMSkgLz0gNDMgLm9yLiBhKDIpIC89IDQ0IC5vci4gYSgzKSAv PSA0NSAgICAgICAmCiAgICAgICAgICAgLm9yLiBhKDUpIC89IDUgLm9yLiBhKDYpIC89IDYg Lm9yLiBhKDcpIC89IDcgICAgICAgICAgICAgICAgICAgICAmCiAgICAgICAgICAgLm9yLiBi KDApIC89IDQ3IC5vci4gYigxKSAvPSAyIC5vci4gYigyKSAvPSA0IC5vci4gYigzKSAvPSA2 ICAgICAmCi0gICAgICAgICAgLm9yLiBiKDQpIC89IDQ4IC5vci4gYig1KSAvPSAxMCAub3Iu IGIoNikgLz0gMTIgLm9yLiBiKDcpIC89IDE0KSAmCisgICAgICAgICAgLm9yLiBiKDQpIC89 IDQ4IC5vci4gYig1KSAvPSA0OSAub3IuIGIoNikgLz0gMTIgLm9yLiBiKDcpIC89IDE0KSAm CiAgICAgICAgIGVycm9yIHN0b3AKICAgICAgIGRvIGkgPSAwLCA3CiAgICAgICAgIGlmIChp IC89IDQpICYKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJh bi9kZXBlbmQtNi5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVw ZW5kLTYuZjkwCmluZGV4IGVkZWE4NTcxYmJhLi5iNTAzMmU5OGEyZiAxMDA2NDQKLS0tIGEv bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlcGVuZC02LmY5MAorKysgYi9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLTYuZjkwCkBAIC02Miw2 ICs2MiwxMiBAQCBzdWJyb3V0aW5lIHRlc3QgKGlmdmFsKQogICAgICAgY2FsbCB1c2xlZXAg KDUwMDApCiAgICAgICBiKDQpID0gNDgKICAgICBlbmQgYmxvY2sKKyAgICAhJG9tcCB0YXNr IHNoYXJlZChiKSBkZXBlbmQoaW5vdXRzZXQ6IGIoNSkpCisgICAgYmxvY2sKKyAgICAgIGNh bGwgdXNsZWVwICg1MDAwKQorICAgICAgYig1KSA9IDQ5CisgICAgZW5kIGJsb2NrCisKICAg ICAhIE5vbmUgb2YgdGhlIGFib3ZlIHRhc2tzIGRlcGVuZCBvbiBlYWNoIG90aGVyLgogICAg ICEgVGhlIGZvbGxvd2luZyB0YXNrIGRlcGVuZHMgb24gYWxsIGJ1dCB0aGUgYSg0KSA9IDQ2 OyBvbmUuCiAgICAgISRvbXAgdGFzayBzaGFyZWQoYSwgYikgZGVwZW5kKGRlcG9iajogZDEp IHByaXZhdGUoaSkgaWYoaWZ2YWwpCkBAIC02OSw3ICs3NSw3IEBAIHN1YnJvdXRpbmUgdGVz dCAoaWZ2YWwpCiAgICAgICBpZiAoYSgwKSAvPSA0MiAub3IuIGEoMSkgLz0gNDMgLm9yLiBh KDIpIC89IDQ0IC5vci4gYSgzKSAvPSA0NSAgICAgICAmCiAgICAgICAgICAgLm9yLiBhKDUp IC89IDUgLm9yLiBhKDYpIC89IDYgLm9yLiBhKDcpIC89IDcgICAgICAgICAgICAgICAgICAg ICAmCiAgICAgICAgICAgLm9yLiBiKDApIC89IDQ3IC5vci4gYigxKSAvPSAyIC5vci4gYigy KSAvPSA0IC5vci4gYigzKSAvPSA2ICAgICAmCi0gICAgICAgICAgLm9yLiBiKDQpIC89IDQ4 IC5vci4gYig1KSAvPSAxMCAub3IuIGIoNikgLz0gMTIgLm9yLiBiKDcpIC89IDE0KSAmCisg ICAgICAgICAgLm9yLiBiKDQpIC89IDQ4IC5vci4gYig1KSAvPSA0OSAub3IuIGIoNikgLz0g MTIgLm9yLiBiKDcpIC89IDE0KSAmCiAgICAgICAgIGVycm9yIHN0b3AKICAgICAgIGRvIGkg PSAwLCA3CiAgICAgICAgIGlmIChpIC89IDQpICYKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVz dHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZXBlbmQtNy5mOTAgYi9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLTcuZjkwCmluZGV4IGQzZjM5ODhmMGRhLi43NzFh NTljNTBmMCAxMDA2NDQKLS0tIGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFu L2RlcGVuZC03LmY5MAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v ZGVwZW5kLTcuZjkwCkBAIC01Nyw2ICs1NywxMiBAQCBwcm9ncmFtIG1haW4KICAgICAgIGNh bGwgdXNsZWVwICg1MDAwKQogICAgICAgYig0KSA9IDQ4CiAgICAgZW5kIGJsb2NrCisgICAg ISRvbXAgdGFzayBzaGFyZWQoYikgZGVwZW5kKGlub3V0c2V0OiBiKDUpKQorICAgIGJsb2Nr CisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGIoNSkgPSA0OQorICAgIGVuZCBi bG9jaworCiAgICAgISBOb25lIG9mIHRoZSBhYm92ZSB0YXNrcyBkZXBlbmQgb24gZWFjaCBv dGhlci4KICAgICAhIFRoZSBmb2xsb3dpbmcgdGFzayBkZXBlbmRzIG9uIGFsbCBidXQgdGhl IGEoNCkgPSA0Njsgb25lLgogICAgICEkb21wIHRhc2sgc2hhcmVkKGEsIGIpIGRlcGVuZChp dGVyYXRvciAoaj0wOjcpLCBpbm91dDogb21wX2FsbF9tZW1vcnkpIHByaXZhdGUoaSkKQEAg LTY0LDcgKzcwLDcgQEAgcHJvZ3JhbSBtYWluCiAgICAgICBpZiAoYSgwKSAvPSA0MiAub3Iu IGEoMSkgLz0gNDMgLm9yLiBhKDIpIC89IDQ0IC5vci4gYSgzKSAvPSA0NSAgICAgICAmCiAg ICAgICAgICAgLm9yLiBhKDUpIC89IDUgLm9yLiBhKDYpIC89IDYgLm9yLiBhKDcpIC89IDcg ICAgICAgICAgICAgICAgICAgICAmCiAgICAgICAgICAgLm9yLiBiKDApIC89IDQ3IC5vci4g YigxKSAvPSAyIC5vci4gYigyKSAvPSA0IC5vci4gYigzKSAvPSA2ICAgICAmCi0gICAgICAg ICAgLm9yLiBiKDQpIC89IDQ4IC5vci4gYig1KSAvPSAxMCAub3IuIGIoNikgLz0gMTIgLm9y LiBiKDcpIC89IDE0KSAmCisgICAgICAgICAgLm9yLiBiKDQpIC89IDQ4IC5vci4gYig1KSAv PSA0OSAub3IuIGIoNikgLz0gMTIgLm9yLiBiKDcpIC89IDE0KSAmCiAgICAgICAgIGVycm9y IHN0b3AKICAgICAgIGRvIGkgPSAwLCA3CiAgICAgICAgIGlmIChpIC89IDQpICYKZGlmZiAt LWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZXBlbmQtaW5vdXRz ZXQtMS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVwZW5kLWlu b3V0c2V0LTEuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40 NjE2MWMzNmNkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuZm9ydHJhbi9kZXBlbmQtaW5vdXRzZXQtMS5mOTAKQEAgLTAsMCArMSwxNzAgQEAKKyEg eyBkZy1hZGRpdGlvbmFsLXNvdXJjZXMgbXktdXNsZWVwLmMgfQorISB7IGRnLXBydW5lLW91 dHB1dCAiY29tbWFuZC1saW5lIG9wdGlvbiAnLWZpbnRyaW5zaWMtbW9kdWxlcy1wYXRoPS4q JyBpcyB2YWxpZCBmb3IgRm9ydHJhbiBidXQgbm90IGZvciBDIiB9CisKK3Byb2dyYW0gbWFp bgorICB1c2Ugb21wX2xpYgorICBpbXBsaWNpdCBub25lICh0eXBlLCBleHRlcm5hbCkKKwor ICBpbnRlcmZhY2UKKyAgICBzdWJyb3V0aW5lIHVzbGVlcCh0KSBiaW5kKEMsIG5hbWU9Im15 X3VzbGVlcCIpCisgICAgICB1c2UgaXNvX2NfYmluZGluZworICAgICAgaW50ZWdlcihjX2lu dCksIHZhbHVlIDo6IHQKKyAgICBlbmQgc3Vicm91dGluZQorICBlbmQgaW50ZXJmYWNlCisK KyAgaW50ZWdlciA6OiBhKDA6NykgPSAwCisgIGludGVnZXIob21wX2RlcGVuZF9raW5kKSA6 OiBkMSwgZDIKKworICAhJG9tcCBkZXBvYmogKGQxKSBkZXBlbmQoaW5vdXRzZXQ6IGEpCisg ICEkb21wIGRlcG9iaiAoZDIpIGRlcGVuZChpbm91dDogYSkKKyAgISRvbXAgZGVwb2JqIChk MikgdXBkYXRlKGlub3V0c2V0KQorCisgICEkb21wIHBhcmFsbGVsCisgICAhJG9tcCBiYXJy aWVyCisgICAhJG9tcCBtYXN0ZXIKKyAgICAhJG9tcCB0YXNrIHNoYXJlZChhKSBkZXBlbmQo b3V0OiBhKQorICAgIGJsb2NrCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGEo MCkgPSAxOyBhKDEpID0gMjsgYSgyKSA9IDM7IGEoMykgPSA0CisgICAgZW5kIGJsb2NrCisg ICAgISBUaGUgYWJvdmUgdGFzayBuZWVkcyB0byBmaW5pc2ggZmlyc3QuCisgICAgISRvbXAg dGFzayBzaGFyZWQoYSkgZGVwZW5kKGluOiBhKQorICAgIGJsb2NrCisgICAgICBpZiAoYSgw KSAvPSAxIC5vci4gYSgxKSAvPSAyIC5vci4gYSgyKSAvPSAzIC5vci4gYSgzKSAvPSA0KSAm CisgICAgICAgIGVycm9yIHN0b3AKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKQorICAgICAg YSg0KSA9IDQyCisgICAgZW5kIGJsb2NrCisgICAgISRvbXAgdGFzayBzaGFyZWQoYSkgZGVw ZW5kKGluOiBhKQorICAgIGJsb2NrCisgICAgICBpZiAoYSgwKSAvPSAxIC5vci4gYSgxKSAv PSAyIC5vci4gYSgyKSAvPSAzIC5vci4gYSgzKSAvPSA0KSAmCisgICAgICAgIGVycm9yIHN0 b3AKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKTsKKyAgICAgIGEoNSkgPSA0MworICAgIGVu ZCBibG9jaworICAgICEkb21wIHRhc2sgc2hhcmVkKGEpIGRlcGVuZChpbjogYSkKKyAgICBi bG9jaworICAgICAgaWYgKGEoMCkgLz0gMSAub3IuIGEoMSkgLz0gMiAub3IuIGEoMikgLz0g MyAub3IuIGEoMykgLz0gNCkgJgorICAgICAgICBlcnJvciBzdG9wCisgICAgICBjYWxsIHVz bGVlcCAoNTAwMCkKKyAgICAgIGEoNikgPSA0NAorICAgIGVuZCBibG9jaworICAgICEkb21w IHRhc2sgc2hhcmVkKGEpIGRlcGVuZChpbjogYSkKKyAgICBibG9jaworICAgICAgaWYgKGEo MCkgLz0gMSAub3IuIGEoMSkgLz0gMiAub3IuIGEoMikgLz0gMyAub3IuIGEoMykgLz0gNCkg JgorICAgICAgICBlcnJvciBzdG9wCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAg IGEoNykgPSA0NQorICAgIGVuZCBibG9jaworICAgICEgVGhlIGFib3ZlIDQgdGFza3MgY2Fu IGJlIHNjaGVkdWxlZCBpbiBhbnkgb3JkZXIgYnV0IG5lZWQgdG8gd2FpdAorICAgICEgZm9y IHRoZSBkZXBlbmQob3V0OiBhKSB0YXNrLgorICAgICEkb21wIHRhc2sgc2hhcmVkKGEpIGRl cGVuZChpbm91dHNldDogYSkKKyAgICBibG9jaworICAgICAgaWYgKGEoNCkgLz0gNDIgLm9y LiBhKDUpIC89IDQzIC5vci4gYSg2KSAvPSA0NCAub3IuIGEoNykgLz0gNDUpICYKKyAgICAg ICAgZXJyb3Igc3RvcAorICAgICAgY2FsbCB1c2xlZXAgKDUwMDApCisgICAgICBhKDApID0g NDIKKyAgICBlbmQgYmxvY2sKKyAgICAhJG9tcCB0YXNrIHNoYXJlZChhKSBkZXBlbmQoaXRl cmF0b3IoaT0xOjM6MiksIGlub3V0c2V0OiBhKQorICAgIGJsb2NrCisgICAgICBpZiAoYSg0 KSAvPSA0MiAub3IuIGEoNSkgLz0gNDMgLm9yLiBhKDYpIC89IDQ0IC5vci4gYSg3KSAvPSA0 NSkgJgorICAgICAgICBlcnJvciBzdG9wCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAg ICAgIGEoMSkgPSA0MworICAgIGVuZCBibG9jaworICAgICEkb21wIHRhc2sgc2hhcmVkKGEp IGRlcGVuZChkZXBvYmo6IGQxKQorICAgIGJsb2NrCisgICAgICBpZiAoYSg0KSAvPSA0MiAu b3IuIGEoNSkgLz0gNDMgLm9yLiBhKDYpIC89IDQ0IC5vci4gYSg3KSAvPSA0NSkgJgorICAg ICAgICBlcnJvciBzdG9wCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGEoMikg PSA0NAorICAgIGVuZCBibG9jaworICAgICEkb21wIHRhc2sgc2hhcmVkKGEpIGRlcGVuZChk ZXBvYmo6IGQyKQorICAgIGJsb2NrCisgICAgICBpZiAoYSg0KSAvPSA0MiAub3IuIGEoNSkg Lz0gNDMgLm9yLiBhKDYpIC89IDQ0IC5vci4gYSg3KSAvPSA0NSkgJgorICAgICAgICBlcnJv ciBzdG9wCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGEoMykgPSA0NQorICAg IGVuZCBibG9jaworICAgICEgVGhlIGFib3ZlIDQgdGFza3MgY2FuIGJlIHNjaGVkdWxlZCBp biBhbnkgb3JkZXIgYnV0IG5lZWQgdG8gd2FpdAorICAgICEgZm9yIGFsbCB0aGUgYWJvdmUg ZGVwZW5kKGluOiBhKSB0YXNrcy4KKyAgICAhJG9tcCB0YXNrIHNoYXJlZChhKSBkZXBlbmQo aW46IGEpCisgICAgYmxvY2sKKyAgICAgIGlmIChhKDApIC89IDQyIC5vci4gYSgxKSAvPSA0 MyAub3IuIGEoMikgLz0gNDQgLm9yLiBhKDMpIC89IDQ1KSAmCisgICAgICAgIGVycm9yIHN0 b3AKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKQorICAgICAgYSg0KSA9IDQ2CisgICAgZW5k IGJsb2NrCisgICAgISRvbXAgdGFzayBzaGFyZWQoYSkgZGVwZW5kKGluOiBhKQorICAgIGJs b2NrCisgICAgICBpZiAoYSgwKSAvPSA0MiAub3IuIGEoMSkgLz0gNDMgLm9yLiBhKDIpIC89 IDQ0IC5vci4gYSgzKSAvPSA0NSkgJgorICAgICAgICBlcnJvciBzdG9wCisgICAgICBjYWxs IHVzbGVlcCAoNTAwMCkKKyAgICAgIGEoNSkgPSA0NworICAgIGVuZCBibG9jaworICAgICEk b21wIHRhc2sgc2hhcmVkKGEpIGRlcGVuZChpbjogYSkKKyAgICBibG9jaworICAgICAgaWYg KGEoMCkgLz0gNDIgLm9yLiBhKDEpIC89IDQzIC5vci4gYSgyKSAvPSA0NCAub3IuIGEoMykg Lz0gNDUpICYKKyAgICAgICAgZXJyb3Igc3RvcAorICAgICAgY2FsbCB1c2xlZXAgKDUwMDAp CisgICAgICBhKDYpID0gNDgKKyAgICBlbmQgYmxvY2sKKyAgICAhJG9tcCB0YXNrIHNoYXJl ZChhKSBkZXBlbmQoaW46IGEpCisgICAgYmxvY2sKKyAgICAgIGlmIChhKDApIC89IDQyIC5v ci4gYSgxKSAvPSA0MyAub3IuIGEoMikgLz0gNDQgLm9yLiBhKDMpIC89IDQ1KSAmCisgICAg ICAgIGVycm9yIHN0b3AKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKQorICAgICAgYSg3KSA9 IDQ5CisgICAgZW5kIGJsb2NrCisgICAgISBUaGUgYWJvdmUgNCB0YXNrcyBjYW4gYmUgc2No ZWR1bGVkIGluIGFueSBvcmRlciBidXQgbmVlZCB0byB3YWl0CisgICAgISBmb3IgYWxsIHRo ZSBhYm92ZSBkZXBlbmQoaW5vdXRzZXQ6IGEpLAorICAgICEgIGRlcGVuZChpdGVyYXRvcihp PTE6MzoyKSwgaW5vdXRzZXQ6IGEpLCBkZXBlbmQoZGVwb2JqOiBkMSkgYW5kCisgICAgISAg ZGVwZW5kKGRlcG9iajogZDIpIHRhc2tzLgorICAgICEkb21wIHRhc2sgc2hhcmVkKGEpIGRl cGVuZChpbm91dHNldDogYSkKKyAgICBibG9jaworICAgICAgaWYgKGEoNCkgLz0gNDYub3Iu IGEoNSkgLz0gNDcgLm9yLiBhKDYpIC89IDQ4IC5vci4gYSg3KSAvPSA0OSkgJgorICAgICAg ICBlcnJvciBzdG9wCisgICAgICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGEoMCkgPSA1 MAorICAgIGVuZCBibG9jaworICAgICEgVGhlIGFib3ZlIHRhc2sgbmVlZHMgdG8gd2FpdCBm b3IgYWxsIHRoZSBhYm92ZSA0IGRlcGVuZChpbjogYSkKKyAgICAhIHRhc2tzLgorICAgICEk b21wIHRhc2sgc2hhcmVkKGEpIGRlcGVuZChvdXQ6IGEpCisgICAgYmxvY2sKKyAgICAgIGlm IChhKDApIC89IDUwIC5vci4gYSg0KSAvPSA0Ni5vci4gYSg1KSAvPSA0NyAub3IuIGEoNikg Lz0gNDggLm9yLiBhKDcpIC89IDQ5KSAmCisgICAgICAgIGVycm9yIHN0b3AKKyAgICAgIGNh bGwgdXNsZWVwICg1MDAwKQorICAgICAgYSgwKSA9IDUxCisgICAgZW5kIGJsb2NrCisgICAg ISBUaGUgYWJvdmUgdGFzayBuZWVkcyB0byB3YWl0IGZvciB0aGUgYWJvdmUgZGVwZW5kKGlu b3V0c2V0OiBhKSB0YXNrLgorICAgICEkb21wIHRhc2sgc2hhcmVkKGEpIGRlcGVuZChpbm91 dHNldDogYSkKKyAgICBibG9jaworICAgICAgaWYgKGEoMCkgLz0gNTEgLm9yLiBhKDQpIC89 IDQ2Lm9yLiBhKDUpIC89IDQ3IC5vci4gYSg2KSAvPSA0OCAub3IuIGEoNykgLz0gNDkpICYK KyAgICAgICAgZXJyb3Igc3RvcAorICAgICAgY2FsbCB1c2xlZXAgKDUwMDApCisgICAgICBh KDApID0gNTIKKyAgICBlbmQgYmxvY2sKKyAgICAhIFRoZSBhYm92ZSB0YXNrIG5lZWRzIHRv IHdhaXQgZm9yIHRoZSBhYm92ZSBkZXBlbmQob3V0OiBhKSB0YXNrLgorICAgICEkb21wIHRh c2sgc2hhcmVkKGEpIGRlcGVuZChtdXRleGlub3V0c2V0OiBhKQorICAgIGJsb2NrCisgICAg ICBpZiAoYSgwKSAvPSA1MiAub3IuIGEoNCkgLz0gNDYub3IuIGEoNSkgLz0gNDcgLm9yLiBh KDYpIC89IDQ4IC5vci4gYSg3KSAvPSA0OSkgJgorICAgICAgICBlcnJvciBzdG9wCisgICAg ICBjYWxsIHVzbGVlcCAoNTAwMCkKKyAgICAgIGEoMCkgPSA1MworICAgIGVuZCBibG9jawor ICAgICEgVGhlIGFib3ZlIHRhc2sgbmVlZHMgdG8gd2FpdCBmb3IgdGhlIGFib3ZlIGRlcGVu ZChpbm91dHNldDogYSkgdGFzay4KKyAgICAhJG9tcCB0YXNrIHNoYXJlZChhKSBkZXBlbmQo aW5vdXRzZXQ6IGEpCisgICAgYmxvY2sKKyAgICAgIGlmIChhKDApIC89IDUzIC5vci4gYSg0 KSAvPSA0Ni5vci4gYSg1KSAvPSA0NyAub3IuIGEoNikgLz0gNDggLm9yLiBhKDcpIC89IDQ5 KSAmCisgICAgICAgIGVycm9yIHN0b3AKKyAgICAgIGNhbGwgdXNsZWVwICg1MDAwKQorICAg ICAgYSgwKSA9IDU0CisgICAgZW5kIGJsb2NrCisgICAgISBUaGUgYWJvdmUgdGFzayBuZWVk cyB0byB3YWl0IGZvciB0aGUgYWJvdmUKKyAgICAhIGRlcGVuZChtdXRleGlub3V0c2V0OiBh KSB0YXNrLgorICAgISRvbXAgZW5kIG1hc3RlcgorICAhJG9tcCBlbmQgcGFyYWxsZWwKKyAg aWYgKGEoMCkgLz0gNTQgLm9yLiBhKDEpIC89IDQzIC5vci4gYSgyKSAvPSA0NCAub3IuIGEo MykgLz0gNDUgJgorICAgICAgLm9yLiBhKDQpIC89IDQ2Lm9yLiBhKDUpIC89IDQ3IC5vci4g YSg2KSAvPSA0OCAub3IuIGEoNykgLz0gNDkpICYKKyAgICBlcnJvciBzdG9wCitlbmQK --------------fF8Xm5g3pYm12UnxDwHIujV8--