From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com [IPv6:2001:4860:4864:20::34]) by sourceware.org (Postfix) with ESMTPS id 4461B3858D32 for ; Sun, 12 Feb 2023 06:59:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4461B3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-16df32f2ffdso1149663fac.1 for ; Sat, 11 Feb 2023 22:59:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uz2OOsQidfALfHX7N1Dv/p+fPGl/3auyChzOHF7JQaQ=; b=A3ptrOAOsdV9NrLPeChybdQsgO4rn23X3fddj3TCepbEDuvTEWXPEkQYQtUdZEv5Ne q48E7k3aDk44IxbCBxQlhL1SFXfZM0zc/aHGMOEd6HBLbeJxZ2tIyqrwXdudjWF1XaK9 DIms1qHXcvJlP9Wh/saEj0CYgaYkSlsgcle0NUvFiWz72eZjc3SCOiqI8DAX2EVHAZeL RpK3cl4Ija2v7c91nDOKAfFAg/vg1N1DhwEI1f5ENiiuSICXa2H2YKyrQx/GL56a559I epVhIRucFVHYKwPoqBYU5EGntGn9lTEU42N6OS2cZAVE5/ziFJm7Y8VwcaNex07Iy2Em y0Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uz2OOsQidfALfHX7N1Dv/p+fPGl/3auyChzOHF7JQaQ=; b=Lfm+msVSsDQdZ/6ADdWayMmnvI0uf2OMGDKiFiMzxa1LkXpFcvC6EkpuA6Ufhwqo5F YymCj/KlGiSXaaAVMbkttw3Z/vYu8DtMqTlWgNWqufo400tjcIXhM4lfaEbooZn7oty7 YD0GrUG9/5noAs0w2FAtKZyaHZI8xSWvSkxAldV0IYoTH9L+X30K1PgWFwibrxtGgkRQ 2RnI4nImFwdzWoXTgesp+5XQ0s3NydpK034rVRfGCQIIhAUAQnJQHS/9O1r8tUxf8Dv+ xlEtXcfCFX4bAU6VKfOBOE8k9PHSqfRzFF7BAWzn1fupenvDss+eErOKlm6HyY80igIH GJOg== X-Gm-Message-State: AO0yUKX3bK1HWUAlgj45om1WlFhKMJ2qXTMlperypVLpPW1PS17JPnnj L3slb/pQbAlUjEVTuuXYkWIO1RLvcRMK3vKDKJ8= X-Google-Smtp-Source: AK7set9HoYaRiP1J4Pt8IPT75nUy/uMK7IkCt0ZOP3JL7Il+zyf53HtplpglMi5VaIY+XJ+wwFjAbp6A3LBzN+7XkUk= X-Received: by 2002:a05:6870:6590:b0:16a:94cf:8761 with SMTP id fp16-20020a056870659000b0016a94cf8761mr1847737oab.272.1676185192436; Sat, 11 Feb 2023 22:59:52 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Rimvydas Jasinskas Date: Sun, 12 Feb 2023 08:59:45 +0200 Message-ID: Subject: Re: Support for NOINLINE attribute To: Harald Anlauf Cc: fortran Content-Type: multipart/mixed; boundary="000000000000f9654105f47b46c9" X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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: --000000000000f9654105f47b46c9 Content-Type: text/plain; charset="UTF-8" On Sat, Feb 11, 2023 at 11:26 PM Harald Anlauf wrote: > I am also not a native speaker, like many others contributing, but let > me quote the relevant orignal paragraph: > > "The @code{noreturn} keyword tells the compiler to assume that > @code{fatal} cannot return. It can then optimize without regard to what > would happen if @code{fatal} ever did return. This makes slightly > better code. More importantly, it helps avoid spurious warnings of > uninitialized variables." > > My reading of this original paragraph differs very much from the > intention I get from the shortened version. Would you please reread? > > > Same, from extend.texi, see gcc/testsuite/gfortran.dg/noreturn-3.f90 > > It is about marking dead conditional branches, so that the compiler > > can prove proper initialization (no -Wmaybe-uninitialized given). It > > should behave the same as in C frontend. > > True. And that's the whole point (IMHO), not silencing the compiler. Hmm both look the same to me, the silencing of false positive diagnostics is already implied by spurious. To simplify I have changed it in v2 to just: "add a hint that a given function cannot return" documentation could be expanded later. > But shouldn't we rather follow what the C family of compilers in the > first place does for a particular target? Most relevant libraries > for Fortran code are either C/C++ or Fortran anyway, including any > of the common MPI implementations, so should we care about Ada? I agree with you. I have removed SUPPORTS_WEAK check and fixed indentation in v2. Regtested cleany on x86_64-pc-linux-gnu. Regards, Rimvydas --000000000000f9654105f47b46c9 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fortran-Add-GCC-attributes-NOINLINE-NORETURN-WEAK-v2.patch" Content-Disposition: attachment; filename="0001-Fortran-Add-GCC-attributes-NOINLINE-NORETURN-WEAK-v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le11bcfz0 RnJvbSA0MjE5MGVjNTUxZGVhYjQ2ZTExYWU5ZDU5MjBhNTc0YWI3YTM2NmEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaW12eWRhcyBKYXNpbnNrYXMgPHJpbXZ5ZGFzLmphc0BnbWFp bC5jb20+CkRhdGU6IFN1biwgMTIgRmViIDIwMjMgMDY6MTY6NTEgKzAwMDAKU3ViamVjdDogRm9y dHJhbjogQWRkICFHQ0MkIGF0dHJpYnV0ZXMgTk9JTkxJTkUsTk9SRVRVUk4sV0VBSwoKZ2NjL2Zv cnRyYW4vQ2hhbmdlTG9nOgoKCSogZGVjbC5jYzogQWRkIEVYVF9BVFRSX05PSU5MSU5FLCBFWFRf QVRUUl9OT1JFVFVSTiwgRVhUX0FUVFJfV0VBSy4KCSogZ2ZvcnRyYW4uaCAoZXh0X2F0dHJfaWRf dCk6IERpdHRvLgoJKiBnZm9ydHJhbi50ZXhpIChHQ0MkIEFUVFJJQlVURVMpOiBEb2N1bWVudCB0 aGVtLgoJKiB0cmFucy1kZWNsLmNjIChidWlsZF9mdW5jdGlvbl9kZWNsKTogQXBwbHkgdGhlbS4K CmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2ZvcnRyYW4uZGcvbm9pbmxpbmUuZjkwOiBO ZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvbm9yZXR1cm4tMS5mOTA6IE5ldyB0ZXN0LgoJKiBnZm9y dHJhbi5kZy9ub3JldHVybi0yLmY5MDogTmV3IHRlc3QuCgkqIGdmb3J0cmFuLmRnL25vcmV0dXJu LTMuZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvbm9yZXR1cm4tNC5mOTA6IE5ldyB0ZXN0 LgoJKiBnZm9ydHJhbi5kZy9ub3JldHVybi01LmY5MDogTmV3IHRlc3QuCgkqIGdmb3J0cmFuLmRn L3dlYWstMS5mOTA6IE5ldyB0ZXN0LgoKU2lnbmVkLW9mZi1ieTogUmltdnlkYXMgSmFzaW5za2Fz IDxyaW12eWRhcy5qYXNAZ21haWwuY29tPgotLS0KIGdjYy9mb3J0cmFuL2RlY2wuY2MgICAgICAg ICAgICAgICAgICAgICAgfCAgMyArKwogZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaCAgICAgICAgICAg ICAgICAgICB8ICAzICsrCiBnY2MvZm9ydHJhbi9nZm9ydHJhbi50ZXhpICAgICAgICAgICAgICAg IHwgIDcgKysrCiBnY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjICAgICAgICAgICAgICAgIHwgMTMg KysrKy0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9pbmxpbmUuZjkwICAgfCAyMyArKysr KysrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9yZXR1cm4tMS5mOTAgfCA2MiArKysr KysrKysrKysrKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9yZXR1cm4t Mi5mOTAgfCA1MyArKysrKysrKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9ub3JldHVybi0zLmY5MCB8IDE0ICsrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9u b3JldHVybi00LmY5MCB8IDExICsrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vcmV0 dXJuLTUuZjkwIHwgIDkgKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93ZWFrLTEuZjkw ICAgICB8ICA2ICsrKwogMTEgZmlsZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25v aW5saW5lLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bm9yZXR1cm4tMS5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL25vcmV0dXJuLTIuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9ub3JldHVybi0zLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvbm9yZXR1cm4tNC5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL25vcmV0dXJuLTUuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy93ZWFrLTEuZjkwCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v ZGVjbC5jYyBiL2djYy9mb3J0cmFuL2RlY2wuY2MKaW5kZXggMjdiNzI4ZmY1NTEuLmVlYzAzMTRj ZjRjIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9kZWNsLmNjCisrKyBiL2djYy9mb3J0cmFuL2Rl Y2wuY2MKQEAgLTExNzMyLDYgKzExNzMyLDkgQEAgY29uc3QgZXh0X2F0dHJfdCBleHRfYXR0cl9s aXN0W10gPSB7CiAgIHsgImZhc3RjYWxsIiwgICAgIEVYVF9BVFRSX0ZBU1RDQUxMLCAgICAgImZh c3RjYWxsIiAgfSwKICAgeyAibm9fYXJnX2NoZWNrIiwgRVhUX0FUVFJfTk9fQVJHX0NIRUNLLCBO VUxMICAgICAgICB9LAogICB7ICJkZXByZWNhdGVkIiwgICBFWFRfQVRUUl9ERVBSRUNBVEVELCAg IE5VTEwJICAgICAgIH0sCisgIHsgIm5vaW5saW5lIiwgICAgIEVYVF9BVFRSX05PSU5MSU5FLCAg ICAgTlVMTAkgICAgICAgfSwKKyAgeyAibm9yZXR1cm4iLCAgICAgRVhUX0FUVFJfTk9SRVRVUk4s ICAgICBOVUxMCSAgICAgICB9LAorICB7ICJ3ZWFrIiwJICAgIEVYVF9BVFRSX1dFQUssCSAgIE5V TEwJICAgICAgIH0sCiAgIHsgTlVMTCwgICAgICAgICAgIEVYVF9BVFRSX0xBU1QsICAgICAgICAg TlVMTCAgICAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaCBi L2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggOTg4NGE1NTg4MmIuLmE4OTNlZTA2ZjNkIDEw MDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisrKyBiL2djYy9mb3J0cmFuL2dmb3J0 cmFuLmgKQEAgLTgzOCw2ICs4MzgsOSBAQCB0eXBlZGVmIGVudW0KICAgRVhUX0FUVFJfRkFTVENB TEwsCiAgIEVYVF9BVFRSX05PX0FSR19DSEVDSywKICAgRVhUX0FUVFJfREVQUkVDQVRFRCwKKyAg RVhUX0FUVFJfTk9JTkxJTkUsCisgIEVYVF9BVFRSX05PUkVUVVJOLAorICBFWFRfQVRUUl9XRUFL LAogICBFWFRfQVRUUl9MQVNULCBFWFRfQVRUUl9OVU0gPSBFWFRfQVRUUl9MQVNUCiB9CiBleHRf YXR0cl9pZF90OwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4udGV4aSBiL2djYy9m b3J0cmFuL2dmb3J0cmFuLnRleGkKaW5kZXggYzM4MTNkMDZjMjAuLjg2MjlhYjZmMTczIDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi50ZXhpCisrKyBiL2djYy9mb3J0cmFuL2dmb3J0 cmFuLnRleGkKQEAgLTMyNDYsNiArMzI0NiwxMyBAQCByZXF1aXJlcyBhbiBleHBsaWNpdCBpbnRl cmZhY2UuCiBAaXRlbSBAY29kZXtERVBSRUNBVEVEfSAtLSBwcmludCBhIHdhcm5pbmcgd2hlbiB1 c2luZyBhIHN1Y2gtdGFnZ2VkCiBkZXByZWNhdGVkIHByb2NlZHVyZSwgdmFyaWFibGUgb3IgcGFy YW1ldGVyOyB0aGUgd2FybmluZyBjYW4gYmUgc3VwcHJlc3NlZAogd2l0aCBAb3B0aW9uey1Xbm8t ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnN9LgorQGl0ZW0gQGNvZGV7Tk9JTkxJTkV9IC0tIHByZXZl bnQgaW5saW5pbmcgZ2l2ZW4gZnVuY3Rpb24uCitAaXRlbSBAY29kZXtOT1JFVFVSTn0gLS0gYWRk IGEgaGludCB0aGF0IGEgZ2l2ZW4gZnVuY3Rpb24gY2Fubm90IHJldHVybi4KK0BpdGVtIEBjb2Rl e1dFQUt9IC0tIGVtaXQgdGhlIGRlY2xhcmF0aW9uIG9mIGFuIGV4dGVybmFsIHN5bWJvbCBhcyBh IHdlYWsKK3N5bWJvbCByYXRoZXIgdGhhbiBhIGdsb2JhbC4gIFRoaXMgaXMgcHJpbWFyaWx5IHVz ZWZ1bCBpbiBkZWZpbmluZyBsaWJyYXJ5CitmdW5jdGlvbnMgdGhhdCBjYW4gYmUgb3ZlcnJpZGRl biBpbiB1c2VyIGNvZGUsIHRob3VnaCBpdCBjYW4gYWxzbyBiZSB1c2VkIHdpdGgKK25vbi1mdW5j dGlvbiBkZWNsYXJhdGlvbnMuICBUaGUgb3ZlcnJpZGluZyBzeW1ib2wgbXVzdCBoYXZlIHRoZSBz YW1lIHR5cGUgYXMKK3RoZSB3ZWFrIHN5bWJvbC4KIEBlbmQgaXRlbWl6ZQogCiAKZGlmZiAtLWdp dCBhL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNj CmluZGV4IGY3YTdmZjYwN2NkLi5mZjY0NTg4YjlhOCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4v dHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCkBAIC0yMzM4LDcg KzIzMzgsNyBAQCBtb2R1bGVfc3ltOgogICAgIH0KIAogICAvKiBNYXJrIG5vbi1yZXR1cm5pbmcg ZnVuY3Rpb25zLiAgKi8KLSAgaWYgKHN5bS0+YXR0ci5ub3JldHVybikKKyAgaWYgKHN5bS0+YXR0 ci5ub3JldHVybiB8fCBzeW0tPmF0dHIuZXh0X2F0dHIgJiAoMSA8PCBFWFRfQVRUUl9OT1JFVFVS TikpCiAgICAgICBUUkVFX1RISVNfVk9MQVRJTEUoZm5kZWNsKSA9IDE7CiAKICAgc3ltLT5iYWNr ZW5kX2RlY2wgPSBmbmRlY2w7CkBAIC0yNDgyLDYgKzI0ODIsMTcgQEAgYnVpbGRfZnVuY3Rpb25f ZGVjbCAoZ2ZjX3N5bWJvbCAqIHN5bSwgYm9vbCBnbG9iYWwpCiAgICAgICBUUkVFX1NJREVfRUZG RUNUUyAoZm5kZWNsKSA9IDA7CiAgICAgfQogCisgIC8qIE1hcmsgbm9pbmxpbmUgZnVuY3Rpb25z LiAgKi8KKyAgaWYgKGF0dHIuZXh0X2F0dHIgJiAoMSA8PCBFWFRfQVRUUl9OT0lOTElORSkpCisg ICAgREVDTF9VTklOTElOQUJMRSAoZm5kZWNsKSA9IDE7CisKKyAgLyogTWFyayBub3JldHVybiBm dW5jdGlvbnMuICAqLworICBpZiAoYXR0ci5leHRfYXR0ciAmICgxIDw8IEVYVF9BVFRSX05PUkVU VVJOKSkKKyAgICBUUkVFX1RISVNfVk9MQVRJTEUgKGZuZGVjbCkgPSAxOworCisgIC8qIE1hcmsg d2VhayBmdW5jdGlvbnMuICAqLworICBpZiAoYXR0ci5leHRfYXR0ciAmICgxIDw8IEVYVF9BVFRS X1dFQUspKQorICAgIGRlY2xhcmVfd2VhayAoZm5kZWNsKTsKIAogICAvKiBMYXlvdXQgdGhlIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBwdXQgaXQgaW4gdGhlIGJpbmRpbmcgbGV2ZWwKICAgICAg b2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24uICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9ub2lubGluZS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vaW5s aW5lLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWRhZTcyZWE1 ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vaW5saW5l LmY5MApAQCAtMCwwICsxLDIzIEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9u cyAiLU8yIC1mZHVtcC10cmVlLWRvbTIiIH0KKworc3Vicm91dGluZSBiYXIobixtLHAscykKK2lt cGxpY2l0IG5vbmUKK2ludGVnZXIgOjogbixtCityZWFsLGludGVudChpbm91dCkgOjogcChuKSxz KCopCitjYWxsIGZvbyhuLG0scCxzKQorY2FsbCBmb28obixtLHAscykKK2VuZCBzdWJyb3V0aW5l IGJhcgorCitzdWJyb3V0aW5lIGZvbyhuLG0scCxiKQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6 OiBuLG0sagorcmVhbCxpbnRlbnQoaW5vdXQpIDo6IHAobiksYigqKQorIUdDQyQgQVRUUklCVVRF UyBub2lubGluZSA6OiBmb28KK2RvIGo9MSxuCisgIGIobStqLTEpPXAoaikKK2VuZGRvCittPW0r bgorZW5kIHN1YnJvdXRpbmUgZm9vCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICJmb28gXFwoIiA0ICJkb20yIn0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9ub3JldHVybi0xLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9yZXR1 cm4tMS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMxNTVjZGYy MmFhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9ub3JldHVy bi0xLmY5MApAQCAtMCwwICsxLDYyIEBACishIENoZWNrIGZvciB2YXJpb3VzIHZhbGlkIGFuZCBl cnJvbmVvdXMgIm5vcmV0dXJuIiBjYXNlcy4KKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1v cHRpb25zICItTzIiIH0KKworbW9kdWxlIGJhcmJhcgorIUdDQyQgQVRUUklCVVRFUyBub3JldHVy biA6OiBiYXIxCitjb250YWlucworc3Vicm91dGluZSBiYXIxCitlbmQgc3Vicm91dGluZSBiYXIx ICEgeyBkZy13YXJuaW5nICInbm9yZXR1cm4nIGZ1bmN0aW9uIGRvZXMgcmV0dXJuIiAiZGV0ZWN0 IGZhbGxpbmcgb2ZmIGVuZCBvZiBub3JldHVybiIgfQorZW5kIG1vZHVsZQorCitzdWJyb3V0aW5l IGZvbzEKKyFHQ0MkIEFUVFJJQlVURVMgbm9yZXR1cm4gOjogZm9vMQorZW5kIHN1YnJvdXRpbmUg Zm9vMSAhIHsgZGctd2FybmluZyAiJ25vcmV0dXJuJyBmdW5jdGlvbiBkb2VzIHJldHVybiIgImRl dGVjdCBmYWxsaW5nIG9mZiBlbmQgb2Ygbm9yZXR1cm4iIH0KKworc3Vicm91dGluZSBmb28yCish R0NDJCBBVFRSSUJVVEVTIG5vcmV0dXJuIDo6IGZvbzIKK2NhbGwgZXhpdCgwKQorZW5kIHN1YnJv dXRpbmUgZm9vMiAhIHsgZGctYm9ndXMgIndhcm5pbmc6IiAidGhpcyBmdW5jdGlvbiBzaG91bGQg bm90IGdldCBhbnkgd2FybmluZ3MiIH0KKworc3Vicm91dGluZSBmb28zCitlbmQgc3Vicm91dGlu ZSBmb28zICEgeyBkZy1ib2d1cyAid2FybmluZzoiICJ0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3Qg Z2V0IGFueSB3YXJuaW5ncyIgfQorCitzdWJyb3V0aW5lIGZvbzQKKyFHQ0MkIEFUVFJJQlVURVMg bm9yZXR1cm4gOjogZm9vNAorY2FsbCBmb28yKCkKK2VuZCBzdWJyb3V0aW5lIGZvbzQgISB7IGRn LWJvZ3VzICJ3YXJuaW5nOiIgInRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBnZXQgYW55IHdhcm5p bmdzIiB9CisKK3N1YnJvdXRpbmUgZm9vNQorIUdDQyQgQVRUUklCVVRFUyBub3JldHVybiA6OiBm b281CityZXR1cm4gICAgICAgICAgICAgICEgeyBkZy13YXJuaW5nICInbm9yZXR1cm4nIGZ1bmN0 aW9uIGRvZXMgcmV0dXJuIiAiZGV0ZWN0IGludmFsaWQgcmV0dXJuIiB9CitlbmQgc3Vicm91dGlu ZSBmb281CisKK3N1YnJvdXRpbmUgZm9vNgorcmV0dXJuCitlbmQgc3Vicm91dGluZSBmb282ICEg eyBkZy1ib2d1cyAid2FybmluZzoiICJ0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgZ2V0IGFueSB3 YXJuaW5ncyIgfQorCitzdWJyb3V0aW5lIGZvbzcKK2NhbGwgZm9vNigpCitlbmQgc3Vicm91dGlu ZSBmb283ICEgeyBkZy1ib2d1cyAid2FybmluZzoiICJ0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3Qg Z2V0IGFueSB3YXJuaW5ncyIgfQorCitzdWJyb3V0aW5lIGZvbzgKKyFHQ0MkIEFUVFJJQlVURVMg bm9yZXR1cm4gOjogZm9vOAorY2FsbCBmb283KCkKK2VuZCBzdWJyb3V0aW5lIGZvbzggISB7IGRn LXdhcm5pbmcgIidub3JldHVybicgZnVuY3Rpb24gZG9lcyByZXR1cm4iICJkZXRlY3QgcmV0dXJu IGZyb20gdGFpbCBjYWxsIiB9CisKK3N1YnJvdXRpbmUgZm9vOQorIUdDQyQgQVRUUklCVVRFUyBu b3JldHVybiA6OiBmb285CitpbnRlcmZhY2UKK3N1YnJvdXRpbmUgYmFyCishR0NDJCBBVFRSSUJV VEVTIG5vcmV0dXJuIDo6IGJhcgorZW5kIHN1YnJvdXRpbmUgYmFyCitlbmQgaW50ZXJmYWNlCitj YWxsIGJhcigpCitlbmQgc3Vicm91dGluZSBmb285ICEgeyBkZy1ib2d1cyAid2FybmluZzoiICJ0 aGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgZ2V0IGFueSB3YXJuaW5ncyIgfQorCitmdW5jdGlvbiBm Zm8xKCkKK2ltcGxpY2l0IG5vbmUKKyFHQ0MkIEFUVFJJQlVURVMgbm9yZXR1cm4gOjogZmZvMQor aW50ZWdlciA6OiBmZm8xCitmZm8xID0gMAorZW5kIGZ1bmN0aW9uIGZmbzEgICAhIHsgZGctd2Fy bmluZyAiJ25vcmV0dXJuJyBmdW5jdGlvbiBkb2VzIHJldHVybiIgImRldGVjdCBmYWxsaW5nIG9m ZiBlbmQgb2Ygbm9yZXR1cm4iIH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvbm9yZXR1cm4tMi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vcmV0dXJuLTIu ZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xYmI0NzkzMjM0Zgot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9yZXR1cm4tMi5m OTAKQEAgLTAsMCArMSw1MyBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMg Ii1PMiAtV3VuaW5pdGlhbGl6ZWQiIH0KKworc3Vicm91dGluZSBmb28xCitpbXBsaWNpdCBub25l CitpbnRlcmZhY2UKK3N1YnJvdXRpbmUgYmFyMQorIUdDQyQgQVRUUklCVVRFUyBub3JldHVybiA6 OiBiYXIxCitlbmQgc3Vicm91dGluZQorZW5kIGludGVyZmFjZQorcmVhbCxhbGxvY2F0YWJsZSA6 OiBkKDopICEgeyBkZy1ub3RlICJkZWNsYXJlZCBoZXJlIiAibm90ZSIgfQorZCA9IDAuICEgeyBk Zy13YXJuaW5nICJ1c2VkIHVuaW5pdGlhbGl6ZWQiICJ1bmluaXRpYWxpemVkIGRlc2NyaXB0b3Ii IH0KK2NhbGwgYmFyMSgpCitkID0gMC4gISB7IGRnLWJvZ3VzICJ3YXJuaW5nOiIgIm5vdCBvcHRp bWl6ZWQgb3V0IiB9CitlbmQgc3Vicm91dGluZSBmb28xCisKK2Z1bmN0aW9uIGZvbzIoKQoraW50 ZWdlciA6OiBmb28yCitpbnRlcmZhY2UKK3N1YnJvdXRpbmUgYmFyMgorIUdDQyQgQVRUUklCVVRF UyBub3JldHVybiA6OiBiYXIyCitlbmQgc3Vicm91dGluZQorZW5kIGludGVyZmFjZQorY2FsbCBi YXIyCityZXR1cm4gISB7IGRnLWJvZ3VzICJfX3Jlc3VsdF9mb28yJyBpcyB1c2VkIHVuaW5pdGlh bGl6ZWQiICJyZXR1cm4iIH0KK2ZvbzIgPSAwCitlbmQgZnVuY3Rpb24gZm9vMgorCitzdWJyb3V0 aW5lIGZvbzMKK2ltcGxpY2l0IG5vbmUKK2ludGVnZXIgOjogaSxqCitpbnRlcmZhY2UKK3N1YnJv dXRpbmUgYWJvcnQyCishR0NDJCBBVFRSSUJVVEVTIG5vcmV0dXJuIDo6IGFib3J0MgorZW5kIHN1 YnJvdXRpbmUKK2VuZCBpbnRlcmZhY2UKK2NhbGwgYWJvcnQyKCkKK2RvIGk9MSxqLTEgOyBlbmQg ZG8gISB7IGRnLWJvZ3VzICJpcyB1c2VkIHVuaW5pdGlhbGl6ZWQiICJ1bmluaXRpYWxpemVkIiB9 CitlbmQgc3Vicm91dGluZSBmb28zCisKK2Z1bmN0aW9uIGZvbzQoKQoraW50ZWdlciA6OiBmb280 CishJEdDQyQgQVRUUklCVVRFUyBub3JldHVybiA6OiBmb280Citmb280ID0gMQorZW5kIGZ1bmN0 aW9uCisKK3N1YnJvdXRpbmUgZm9vNShrKQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiBpLCBr CishR0NDJCBBVFRSSUJVVEVTIG5vcmV0dXJuIDo6IG1waV9hYm9ydAorY2FsbCBtcGlfYWJvcnQo KQorayA9IGkKK2VuZCBzdWJyb3V0aW5lCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL25vcmV0dXJuLTMuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9ub3JldHVy bi0zLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVmYTA5MmFl ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vcmV0dXJu LTMuZjkwCkBAIC0wLDAgKzEsMTQgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgIi1XdW5pbml0aWFsaXplZCAtV21heWJlLXVuaW5pdGlhbGl6ZWQiIH0K Kworc3Vicm91dGluZSBmb28KK2ltcGxpY2l0IG5vbmUKK2ludGVnZXIgOjogaQorIUdDQyQgQVRU UklCVVRFUyBub3JldHVybiA6OiBtcGlfYWJvcnQKK2lmIChnZXRwaWQoKSA9PSAxKSB0aGVuCisg IGNhbGwgbXBpX2Fib3J0KCkKK2Vsc2UKKyAgaSA9IDgKK2VuZGlmCitpZiAoaSA+IDApIHByaW50 ICosIGkKK2VuZCBzdWJyb3V0aW5lCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL25vcmV0dXJuLTQuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9ub3JldHVybi00 LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQwMjRlMjdjY2MK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vcmV0dXJuLTQu ZjkwCkBAIC0wLDAgKzEsMTEgQEAKKyEgeyBkZy1kbyBydW4geyB0YXJnZXQgeyBub25waWMgfHwg cGllX2VuYWJsZWQgfSB9IH0KKyEgeyBkZy1vcHRpb25zICItTzIiIH0KKworcHJvZ3JhbSBiYXIK K2NhbGwgZm9vMSgpCitjYWxsIG5vcmV0dXJuX2F1dG9kZXRlY3Rpb25fZmFpbGVkKCkgISBjaGVj ayBpZiBvcHRpbWl6ZWQgb3V0IAorZW5kIHByb2dyYW0KKworc3Vicm91dGluZSBmb28xCitzdG9w IDAKK2VuZCBzdWJyb3V0aW5lIGZvbzEKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvbm9yZXR1cm4tNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25vcmV0dXJu LTUuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMDdiMDUwMmYw OAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbm9yZXR1cm4t NS5mOTAKQEAgLTAsMCArMSw5IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9u cyAiLU8yIiB9CisKK3N1YnJvdXRpbmUgYmFyCishR0NDJCBBVFRSSUJVVEVTIG5vcmV0dXJuIDo6 IGZvbzEKK2NhbGwgZm9vMSgpCitjYWxsIG5vcmV0dXJuX2F1dG9kZXRlY3Rpb25fZmFpbGVkKCkK K2VuZCBzdWJyb3V0aW5lCishIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIm5v cmV0dXJuX2F1dG9kZXRlY3Rpb25fZmFpbGVkIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvd2Vhay0xLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv d2Vhay0xLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDlhY2E2 ODY3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dlYWst MS5mOTAKQEAgLTAsMCArMSw2IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctcmVxdWly ZS13ZWFrICIiIH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ3ZWFrXFteIFx0XF0q XFsgXHRcXV8/aW1wbCIgfSB9CitzdWJyb3V0aW5lIGltcGwKKyFHQ0MkIEFUVFJJQlVURVMgd2Vh ayA6OiBpbXBsCitlbmQgc3Vicm91dGluZQotLSAKMi4zOS4xCgo= --000000000000f9654105f47b46c9--