From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by sourceware.org (Postfix) with ESMTPS id 6E07D3858C51 for ; Tue, 3 May 2022 19:57:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6E07D3858C51 Received: by mail-pj1-x102f.google.com with SMTP id t11-20020a17090ad50b00b001d95bf21996so3246144pju.2 for ; Tue, 03 May 2022 12:57:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wgCkRoY66+7WsP5j4OVjqY4ZkobSyaibUqF/haXsLfg=; b=yZ8QD78DC9Vuy4mM7mn6Q9qYsKL+y3Du4pCTsykKoe36x9CvP+/X1SIjTR67iQeB5y i9r3c+9Whw1ldiJLnqJj+taWp/HrboM7rINYISfsxWwEAKtdjUjpsQZjsLhNDT9UtDyP 7jL/tJ2vSCdvSt0bhSobmwfnqojLioR8BAWNytDCZrlSPugyf1Avdsl+ComtliLL54Pw JHMLtQtgddk8ysvCCNU6/EWgQjRdOkgSlw7Wk3luSHRCUgMdYqMFe6fa0cZ3Fivwf10x AivqABfVP5BeVaQOy+YfxsrX7aq7wG4siNfTHmgNE5yJGChLrRybyF9FsruhSgSLHPR/ jBvA== X-Gm-Message-State: AOAM5311vVENeQ9Qstz2NaOiAznywKUOI6N7CWOYVtC4KRNbXJ/hIn4x IKZojdkX+UY54FvLUbXa2ETyMQLQZZ7aa4GsohwpgABK X-Google-Smtp-Source: ABdhPJx4IE+/rbakeTBm9sw3wtgnaNZ01dlRUN7mHoRs25ql+6SOPb8PFyTiZHSN7d5LZNoobC0oywQkAID/EfhVjuA= X-Received: by 2002:a17:90a:ba15:b0:1cb:be7d:bbca with SMTP id s21-20020a17090aba1500b001cbbe7dbbcamr6408671pjr.143.1651607878431; Tue, 03 May 2022 12:57:58 -0700 (PDT) MIME-Version: 1.0 References: <878rrsw074.fsf@redhat.com> <79ba6ad0-7bb6-be2c-2672-6924862c29de@redhat.com> In-Reply-To: From: "H.J. Lu" Date: Tue, 3 May 2022 12:57:22 -0700 Message-ID: Subject: Re: binutils as policy checker (was: RFC: Add a linker warning when creating segments with RWX permissions) To: Matthias Klose Cc: Nick Clifton , Binutils Content-Type: multipart/mixed; boundary="000000000000e70a8205de20ec63" X-Spam-Status: No, score=-3025.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2022 19:58:02 -0000 --000000000000e70a8205de20ec63 Content-Type: text/plain; charset="UTF-8" On Tue, May 3, 2022 at 12:35 PM Matthias Klose wrote: > > On 28.04.22 11:46, Nick Clifton via Binutils wrote: > > Hi Guys, > > > > OK, attached is v2 of my proposed patch. The main features of this > > new version are: > > > > * There are now configure options which can turn off the generation > > of linker warnings about the creation of executable segments and > > the creation of executable stacks. By default however not using > > these configure options will result in the creation of a linker > > with all of the warnings enabled. > > > > * There is new linker command line option: --no-warn-rwx-segments > > which disables the warnings about executable segments. > > > > * There are tests for the new features, plus extra regexps in the > > testsuite's pruning proc to remove the warnings from the linker's > > output for normal tests. > > > > * The creation of a TLS segment with eXecute permission will trigger > > a warning, regardless of whether it has the read and/or write > > permissions set. > > > > * There is a new configure time option which will disable the > > creation of an executable stack simply because an input file is > > missing a .note-GNU-stack section (for those architectures where > > such a creation is the normal behaviour). This option is not > > enabled by default however. At least not yet. > > > > I think that this represents the best compromise between helping to > > promote secure builds whilst also allowing toolchain creators and > > program builders the option to disable the features if they wish. > > > > Any comments ? > > this commit contains a ld/aclocal.m4 generated with automake 1.16. Please > re-create that file with automake 1.15.1. And maybe re-create the Makefile.in > also with the correct automake version. > > Thanks, Matthias I am checking in this. -- H.J. --000000000000e70a8205de20ec63 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-ld-Regenerate-aclocal.m4-with-automake-1.15.1.patch" Content-Disposition: attachment; filename="0001-ld-Regenerate-aclocal.m4-with-automake-1.15.1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2qknle60 RnJvbSAzYzY4OGI5ZTM4OGRiNjJhMzBjYTliZDA1YWUzMmNhZjUwN2IyYTkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMyBNYXkgMjAyMiAxMjo1NjowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGxkOiBSZWdl bmVyYXRlIGFjbG9jYWwubTQgd2l0aCBhdXRvbWFrZSAxLjE1LjEKCgkqIGFjbG9jYWwubTQ6IFJl Z2VuZXJhdGUgd2l0aCBhdXRvbWFrZSAxLjE1LjEuCi0tLQogbGQvYWNsb2NhbC5tNCB8IDE5MyAr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9sZC9hY2xvY2FsLm00IGIvbGQvYWNsb2NhbC5tNAppbmRleCAzMTQ5NjljNmRkOC4uNjMxZWFk N2IyY2EgMTAwNjQ0Ci0tLSBhL2xkL2FjbG9jYWwubTQKKysrIGIvbGQvYWNsb2NhbC5tNApAQCAt MSw2ICsxLDYgQEAKLSMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAxLjE2LjIg LSotIEF1dG9jb25mIC0qLQorIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEu MTUuMSAtKi0gQXV0b2NvbmYgLSotCiAKLSMgQ29weXJpZ2h0IChDKSAxOTk2LTIwMjAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5Ni0yMDE3IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC0yMCw3ICsyMCw3IEBAIFlvdSBo YXZlIGFub3RoZXIgdmVyc2lvbiBvZiBhdXRvY29uZi4gIEl0IG1heSB3b3JrLCBidXQgaXMgbm90 IGd1YXJhbnRlZWQgdG8uCiBJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVkIHRvIHJl Z2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KIFRvIGRvIHNvLCB1c2UgdGhlIHBy b2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgJ2F1dG9yZWNvbmYn Ll0pXSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDItMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCkBAIC0zMiwxMCArMzIsMTAgQEAgVG8gZG8gc28sIHVzZSB0aGUg cHJvY2VkdXJlIGRvY3VtZW50ZWQgYnkgdGhlIHBhY2thZ2UsIHR5cGljYWxseSAnYXV0b3JlY29u ZicuXSkKICMgZ2VuZXJhdGVkIGZyb20gdGhlIG00IGZpbGVzIGFjY29tcGFueWluZyBBdXRvbWFr ZSBYLlkuCiAjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lk ZSB0aGlzIGZpbGUuKQogQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05dLAotW2FtX19hcGlf dmVyc2lvbj0nMS4xNicKK1thbV9fYXBpX3ZlcnNpb249JzEuMTUnCiBkbmwgU29tZSB1c2VycyBm aW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIG1pc3Rha2UgaXQgZm9yIGEgd2F5IHRvCiBkbmwg cmVxdWlyZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1h Y3JvLgotbTRfaWYoWyQxXSwgWzEuMTYuMl0sIFtdLAorbTRfaWYoWyQxXSwgWzEuMTUuMV0sIFtd LAogICAgICAgW0FDX0ZBVEFMKFtEbyBub3QgY2FsbCAkMCwgdXNlIEFNX0lOSVRfQVVUT01BS0Uo WyQxXSkuXSldKWRubAogXSkKIApAQCAtNTEsMTQgKzUxLDE0IEBAIG00X2RlZmluZShbX0FNX0FV VE9DT05GX1ZFUlNJT05dLCBbXSkKICMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9B VVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KICMgVGhpcyBmdW5jdGlvbiBp cyBBQ19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgogQUNfREVGVU4oW0FNX1NFVF9DVVJS RU5UX0FVVE9NQUtFX1ZFUlNJT05dLAotW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTYuMl0pZG5s CitbQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xNS4xXSlkbmwKIG00X2lmbmRlZihbQUNfQVVUT0NP TkZfVkVSU0lPTl0sCiAgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NP TkZfVkVSU0lPTl0pXSlkbmwKIF9BTV9BVVRPQ09ORl9WRVJTSU9OKG00X2RlZm4oW0FDX0FVVE9D T05GX1ZFUlNJT05dKSldKQogCiAjIEFNX0FVWF9ESVJfRVhQQU5EICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCiAKLSMgQ29weXJpZ2h0IChD KSAyMDAxLTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAo QykgMjAwMS0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAt MTEwLDcgKzExMCw3IEBAIGFtX2F1eF9kaXI9YGNkICIkYWNfYXV4X2RpciIgJiYgcHdkYAogCiAj IEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtKi0gQXV0b2NvbmYgLSotCiAKLSMgQ29weXJpZ2h0IChDKSAxOTk3LTIwMjAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5Ny0yMDE3IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAtMTQxLDcgKzE0MSw3IEBAIEFDX0NP TkZJR19DT01NQU5EU19QUkUoCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKIGZpXSldKQogCi0jIENvcHlyaWdodCAoQykgMTk5 OS0yMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDE5 OTktMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMKICMgVGhpcyBmaWxlIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KICMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKQEAgLTMzMiwx MiArMzMyLDEzIEBAIF9BTV9TVUJTVF9OT1RNQUtFKFthbV9fbm9kZXBdKWRubAogCiAjIEdlbmVy YXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0g QXV0b2NvbmYgLSotCiAKLSMgQ29weXJpZ2h0IChDKSAxOTk5LTIwMjAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5OS0yMDE3IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKKwogIyBfQU1fT1VUUFVU X0RFUEVOREVOQ1lfQ09NTUFORFMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBB Q19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKQEAgLTM0NSw0MyArMzQ2 LDQ5IEBAIEFDX0RFRlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAogICAjIE9s ZGVyIEF1dG9jb25mIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdo ZW4gZmlsZXMKICAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZl IGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAogICAjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGluZy4K LSAgIyBUT0RPOiBzZWUgd2hldGhlciB0aGlzIGV4dHJhIGhhY2sgY2FuIGJlIHJlbW92ZWQgb25j ZSB3ZSBzdGFydAotICAjIHJlcXVpcmluZyBBdXRvY29uZiAyLjcwIG9yIGxhdGVyLgotICBBU19D QVNFKFskQ09ORklHX0ZJTEVTXSwKLSAgICAgICAgICBbKlwnKl0sIFtldmFsIHNldCB4ICIkQ09O RklHX0ZJTEVTIl0sCi0gICAgICAgICAgWypdLCBbc2V0IHggJENPTkZJR19GSUxFU10pCisgIGNh c2UgJENPTkZJR19GSUxFUyBpbgorICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7 OworICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKyAgZXNhYwogICBzaGlmdAotICAjIFVz ZWQgdG8gZmxhZyBhbmQgcmVwb3J0IGJvb3RzdHJhcHBpbmcgZmFpbHVyZXMuCi0gIGFtX3JjPTAK LSAgZm9yIGFtX21mCisgIGZvciBtZgogICBkbwogICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVw IHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCi0gICAgYW1fbWY9YEFTX0VDSE8oWyIkYW1fbWYi XSkgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBB dXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgd2hpY2ggaW5jbHVkZXMKLSAgICAjIGRlcGVuZGVu Y3ktdHJhY2tpbmcgcmVsYXRlZCBydWxlcyBhbmQgaW5jbHVkZXMuCi0gICAgIyBHcmVwJ2luZyB0 aGUgd2hvbGUgZmlsZSBkaXJlY3RseSBpcyBub3QgZ3JlYXQ6IEFJWCBncmVwIGhhcyBhIGxpbmUK KyAgICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAorICAgICMgQ2hlY2sgd2hl dGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisgICAg IyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkICdNYWtlZmlsZS5pbicsIGJ1 dAorICAgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0 aGUgZmlsZSBjb250ZW50LgorICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVu b3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisgICAgIyBlYWNoIE1ha2VmaWxlLmluIGFu ZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KKyAgICAjIEdy ZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEg bGluZQogICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5k ZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgotICAgIHNlZCAtbiAncyxeYW0tLWRlcGZpbGVzOi4qLFgs cCcgIiRhbV9tZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxIFwKLSAgICAgIHx8IGNvbnRpbnVl Ci0gICAgYW1fZGlycGFydD1gQVNfRElSTkFNRShbIiRhbV9tZiJdKWAKLSAgICBhbV9maWxlcGFy dD1gQVNfQkFTRU5BTUUoWyIkYW1fbWYiXSlgCi0gICAgQU1fUlVOX0xPRyhbY2QgIiRhbV9kaXJw YXJ0IiBcCi0gICAgICAmJiBzZWQgLWUgJy8jIGFtLS1pbmNsdWRlLW1hcmtlci9kJyAiJGFtX2Zp bGVwYXJ0IiBcCi0gICAgICAgIHwgJE1BS0UgLWYgLSBhbS0tZGVwZmlsZXNdKSB8fCBhbV9yYz0k PworICAgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlLiosWCxwJyAiJG1m IiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgIGRpcnBhcnQ9YEFTX0RJUk5B TUUoIiRtZiIpYAorICAgIGVsc2UKKyAgICAgIGNvbnRpbnVlCisgICAgZmkKKyAgICAjIEV4dHJh Y3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQor ICAgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nICdtYWtlJy4KKyAgICBERVBE SVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAorICAgIHRlc3QgLXogIiRERVBE SVIiICYmIGNvbnRpbnVlCisgICAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUg PSAvL3AnIDwgIiRtZiJgCisgICAgdGVzdCAteiAiJGFtX19pbmNsdWRlIiAmJiBjb250aW51ZQor ICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCisgICAg IyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmls ZXMgd2l0aAorICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0 d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorICAgICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdp bmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisgICAgIyBleHBhbnNpb24u CisgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisgICAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19x dW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwKKwkgc2Vk IC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZydgOyBkbworICAgICAgIyBNYWtlIHN1cmUg dGhlIGRpcmVjdG9yeSBleGlzdHMuCisgICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYg Y29udGludWUKKyAgICAgIGZkaXI9YEFTX0RJUk5BTUUoWyIkZmlsZSJdKWAKKyAgICAgIEFTX01L RElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKKyAgICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQv JGZpbGUiCisgICAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKKyAgICBkb25l CiAgIGRvbmUKLSAgaWYgdGVzdCAkYW1fcmMgLW5lIDA7IHRoZW4KLSAgICBBQ19NU0dfRkFJTFVS RShbU29tZXRoaW5nIHdlbnQgd3JvbmcgYm9vdHN0cmFwcGluZyBtYWtlZmlsZSBmcmFnbWVudHMK LSAgICBmb3IgYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcuICBJZiBHTlUgbWFrZSB3YXMg bm90IHVzZWQsIGNvbnNpZGVyCi0gICAgcmUtcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdCB3 aXRoIE1BS0U9ImdtYWtlIiAob3Igd2hhdGV2ZXIgaXMKLSAgICBuZWNlc3NhcnkpLiAgWW91IGNh biBhbHNvIHRyeSByZS1ydW5uaW5nIGNvbmZpZ3VyZSB3aXRoIHRoZQotICAgICctLWRpc2FibGUt ZGVwZW5kZW5jeS10cmFja2luZycgb3B0aW9uIHRvIGF0IGxlYXN0IGJlIGFibGUgdG8gYnVpbGQK LSAgICB0aGUgcGFja2FnZSAoYWxiZWl0IHdpdGhvdXQgc3VwcG9ydCBmb3IgYXV0b21hdGljIGRl cGVuZGVuY3kgdHJhY2tpbmcpLl0pCi0gIGZpCi0gIEFTX1VOU0VUKFthbV9kaXJwYXJ0XSkKLSAg QVNfVU5TRVQoW2FtX2ZpbGVwYXJ0XSkKLSAgQVNfVU5TRVQoW2FtX21mXSkKLSAgQVNfVU5TRVQo W2FtX3JjXSkKLSAgcm0gLWYgY29uZnRlc3QtZGVwcy5tawogfQogXSkjIF9BTV9PVVRQVVRfREVQ RU5ERU5DWV9DT01NQU5EUwogCkBAIC0zOTAsMTcgKzM5NywxOCBAQCBBQ19ERUZVTihbX0FNX09V VFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBB Q19SRVFVSVJFLgogIwotIyBUaGlzIGNvZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRp YyBkZXBlbmRlbmN5IHRyYWNraW5nIGlzIGVuYWJsZWQuCi0jIFRoaXMgY3JlYXRlcyBlYWNoICcu UG8nIGFuZCAnLlBsbycgbWFrZWZpbGUgZnJhZ21lbnQgdGhhdCB3ZSdsbCBuZWVkIGluCi0jIG9y ZGVyIHRvIGJvb3RzdHJhcCB0aGUgZGVwZW5kZW5jeSBoYW5kbGluZyBjb2RlLgorIyBUaGlzIGNv ZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRpYyBkZXBlbmRlbmN5IHRyYWNraW5nCisj IGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRlcyBlYWNoICcuUCcgZmlsZSB0aGF0IHdl IHdpbGwKKyMgbmVlZCBpbiBvcmRlciB0byBib290c3RyYXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxp bmcgY29kZS4KIEFDX0RFRlVOKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCiBbQUNf Q09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCiAgICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9 IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAotICAgICBbQU1ERVBfVFJV RT0iJEFNREVQX1RSVUUiIE1BS0U9IiR7TUFLRS1tYWtlfSJdKV0pCisgICAgIFtBTURFUF9UUlVF PSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKK10pCiAKICMgRG8gYWxs IHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBB dXRvY29uZiAtKi0KIAotIyBDb3B5cmlnaHQgKEMpIDE5OTYtMjAyMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTcgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC00ODcsOCArNDk1LDggQEAgQUNfUkVRVUlSRShb QU1fUFJPR19JTlNUQUxMX1NUUklQXSlkbmwKIEFDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0p ZG5sCiAjIEZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gIFRvIGJlIHJlbW92ZWQg b25jZSBBdXRvbWFrZSAxLjkueAogIyBkaWVzIG91dCBmb3IgZ29vZC4gIEZvciBtb3JlIGJhY2tn cm91bmQsIHNlZToKLSMgPGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYXV0b21h a2UvMjAxMi0wNy9tc2cwMDAwMS5odG1sPgotIyA8aHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hp dmUvaHRtbC9hdXRvbWFrZS8yMDEyLTA3L21zZzAwMDE0Lmh0bWw+CisjIDxodHRwOi8vbGlzdHMu Z251Lm9yZy9hcmNoaXZlL2h0bWwvYXV0b21ha2UvMjAxMi0wNy9tc2cwMDAwMS5odG1sPgorIyA8 aHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2F1dG9tYWtlLzIwMTItMDcvbXNnMDAw MTQuaHRtbD4KIEFDX1NVQlNUKFtta2Rpcl9wXSwgWyckKE1LRElSX1ApJ10pCiAjIFdlIG5lZWQg YXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQgKGFuZCBwb3NzaWJseSB0aGUgVEFQIGRyaXZlciku ICBUaGUKICMgc3lzdGVtICJhd2siIGlzIGJhZCBvbiBzb21lIHBsYXRmb3Jtcy4KQEAgLTU1NSw3 ICs1NjMsNyBAQCBFTkQKIEFib3J0aW5nIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MsIHRvIGVu c3VyZSB5b3UgdGFrZSBub3RpY2Ugb2YgdGhlIGlzc3VlLgogCiBZb3UgY2FuIGRvd25sb2FkIGFu ZCBpbnN0YWxsIEdOVSBjb3JldXRpbHMgdG8gZ2V0IGFuICdybScgaW1wbGVtZW50YXRpb24KLXRo YXQgYmVoYXZlcyBwcm9wZXJseTogPGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvY29yZXV0 aWxzLz4uCit0aGF0IGJlaGF2ZXMgcHJvcGVybHk6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvY29yZXV0aWxzLz4uCiAKIElmIHlvdSB3YW50IHRvIGNvbXBsZXRlIHRoZSBjb25maWd1cmF0 aW9uIHByb2Nlc3MgdXNpbmcgeW91ciBwcm9ibGVtYXRpYwogJ3JtJyBhbnl3YXksIGV4cG9ydCB0 aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQUNDRVBUX0lORkVSSU9SX1JNX1BST0dSQU0KQEAgLTU5 Nyw3ICs2MDUsNyBAQCBmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KIGRv bmUKIGVjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1fYXJn Il0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDEt MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAx LTIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC02MTgsNyAr NjI2LDcgQEAgaWYgdGVzdCB4IiR7aW5zdGFsbF9zaCtzZXR9IiAhPSB4c2V0OyB0aGVuCiBmaQog QUNfU1VCU1QoW2luc3RhbGxfc2hdKV0pCiAKLSMgQ29weXJpZ2h0IChDKSAxOTk4LTIwMjAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5OC0yMDE3IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAtNjM5LDcgKzY0Nyw3IEBA IGZpXSkKICMgQWRkIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSBvcHRpb24gdG8gY29uZmlndXJl LiAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KICMgRnJvbSBKaW0gTWV5ZXJpbmcKIAotIyBDb3B5 cmlnaHQgKEMpIDE5OTYtMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29w eXJpZ2h0IChDKSAxOTk2LTIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCkBAIC02NzQsNyArNjgyLDcgQEAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJs ZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlc10pCiAKICMgQ2hlY2sg dG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2Nv bmYgLSotCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LApAQCAtNjgyLDQyICs2OTAsNDkgQEAgQUNfTVNHX0NIRUNLSU5H KFt3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2Vm aWxlc10pCiAKICMgQU1fTUFLRV9JTkNMVURFKCkKICMgLS0tLS0tLS0tLS0tLS0tLS0KLSMgQ2hl Y2sgd2hldGhlciBtYWtlIGhhcyBhbiAnaW5jbHVkZScgZGlyZWN0aXZlIHRoYXQgY2FuIHN1cHBv cnQgYWxsCi0jIHRoZSBpZGlvbXMgd2UgbmVlZCBmb3Igb3VyIGF1dG9tYXRpYyBkZXBlbmRlbmN5 IHRyYWNraW5nIGNvZGUuCisjIENoZWNrIHRvIHNlZSBob3cgbWFrZSB0cmVhdHMgaW5jbHVkZXMu CiBBQ19ERUZVTihbQU1fTUFLRV9JTkNMVURFXSwKLVtBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg JHtNQUtFLW1ha2V9IHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZV0pCi1jYXQgPiBjb25m aW5jLm1rIDw8ICdFTkQnCitbYW1fbWFrZT0ke01BS0UtbWFrZX0KK2NhdCA+IGNvbmZpbmMgPDwg J0VORCcKIGFtX19kb2l0OgotCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRhcmdldCA+Y29u ZmluYy5vdXQKKwlAZWNobyB0aGlzIGlzIHRoZSBhbV9fZG9pdCB0YXJnZXQKIC5QSE9OWTogYW1f X2RvaXQKIEVORAorIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0 IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5j bHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKIGFtX19pbmNsdWRlPSIjIgogYW1fX3F1b3RlPQotIyBC U0QgbWFrZSBkb2VzIGl0IGxpa2UgdGhpcy4KLWVjaG8gJy5pbmNsdWRlICJjb25maW5jLm1rIiAj IGlnbm9yZWQnID4gY29uZm1mLkJTRAotIyBPdGhlciBtYWtlIGltcGxlbWVudGF0aW9ucyAoR05V LCBTb2xhcmlzIDEwLCBBSVgpIGRvIGl0IGxpa2UgdGhpcy4KLWVjaG8gJ2luY2x1ZGUgY29uZmlu Yy5tayAjIGlnbm9yZWQnID4gY29uZm1mLkdOVQotX2FtX3Jlc3VsdD1ubwotZm9yIHMgaW4gR05V IEJTRDsgZG8KLSAgQU1fUlVOX0xPRyhbJHtNQUtFLW1ha2V9IC1mIGNvbmZtZi4kcyAmJiBjYXQg Y29uZmluYy5vdXRdKQotICBBU19DQVNFKFskPzpgY2F0IGNvbmZpbmMub3V0IDI+L2Rldi9udWxs YF0sCi0gICAgICBbJzA6dGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0J10sCi0gICAgICBbQVNf Q0FTRShbJHNdLAotICAgICAgICAgIFtCU0RdLCBbYW1fX2luY2x1ZGU9Jy5pbmNsdWRlJyBhbV9f cXVvdGU9JyInXSwKLSAgICAgICAgICBbYW1fX2luY2x1ZGU9J2luY2x1ZGUnIGFtX19xdW90ZT0n J10pXSkKLSAgaWYgdGVzdCAiJGFtX19pbmNsdWRlIiAhPSAiIyI7IHRoZW4KLSAgICBfYW1fcmVz dWx0PSJ5ZXMgKCRzIHN0eWxlKSIKLSAgICBicmVhawotICBmaQotZG9uZQotcm0gLWYgY29uZmlu Yy4qIGNvbmZtZi4qCi1BQ19NU0dfUkVTVUxUKFske19hbV9yZXN1bHR9XSkKLUFDX1NVQlNUKFth bV9faW5jbHVkZV0pXSkKLUFDX1NVQlNUKFthbV9fcXVvdGVdKV0pCitfYW1fcmVzdWx0PW5vbmUK KyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCitlY2hvICJpbmNsdWRlIGNvbmZp bmMiID4gY29uZm1mCisjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJv bSAnbWFrZScuCitjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAj KAorKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisgIGFtX19pbmNsdWRlPWluY2x1ZGUKKyAgYW1f X3F1b3RlPQorICBfYW1fcmVzdWx0PUdOVQorICA7OworZXNhYworIyBOb3cgdHJ5IEJTRCBtYWtl IHN0eWxlIGluY2x1ZGUuCitpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisgICBl Y2hvICcuaW5jbHVkZSAiY29uZmluYyInID4gY29uZm1mCisgICBjYXNlIGAkYW1fbWFrZSAtcyAt ZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAorICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCop CisgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCisgICAgIGFtX19xdW90ZT0iXCIiCisgICAgIF9h bV9yZXN1bHQ9QlNECisgICAgIDs7CisgICBlc2FjCitmaQorQUNfU1VCU1QoW2FtX19pbmNsdWRl XSkKK0FDX1NVQlNUKFthbV9fcXVvdGVdKQorQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQor cm0gLWYgY29uZmluYyBjb25mbWYKK10pCiAKICMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dy YW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAtKi0KIAotIyBDb3B5 cmlnaHQgKEMpIDE5OTctMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29w eXJpZ2h0IChDKSAxOTk3LTIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCkBAIC03NTYsNyArNzcxLDcgQEAgZmkKIAogIyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRp b24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogCi0jIENv cHlyaWdodCAoQykgMjAwMS0yMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBD b3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMK ICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KICMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKQEAgLTc4NSw3ICs4MDAsNyBAQCBBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05TXSwKIEFD X0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwKIFttNF9pZnNldChfQU1fTUFOR0xFX09QVElPTihbJDFd KSwgWyQyXSwgWyQzXSldKQogCi0jIENvcHlyaWdodCAoQykgMTk5OS0yMDIwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNyBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICMKICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KICMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKQEAgLTgzMiw3ICs4NDcsNyBAQCBBQ19MQU5H X1BPUChbQ10pXSkKICMgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCiBBQ19ERUZVTl9PTkNF KFtBTV9QUk9HX0NDX0NfT10sIFtBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSldKQogCi0jIENvcHly aWdodCAoQykgMjAwMS0yMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5 cmlnaHQgKEMpIDIwMDEtMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMKICMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K ICMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKQEAgLTg1MSw3ICs4NjYsNyBAQCBBQ19ERUZVTihbQU1fUlVOX0xPR10sCiAKICMgQ2hlY2sg dG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuICAgIC0qLSBB dXRvY29uZiAtKi0KIAotIyBDb3B5cmlnaHQgKEMpIDE5OTYtMjAyMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTcgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC05MzIsNyArOTQ3LDcgQEAgQUNfQ09ORklHX0NP TU1BTkRTX1BSRSgKIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKIF0pCiAKLSMgQ29weXJpZ2h0IChDKSAy MDA5LTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykg MjAwOS0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAtOTky LDcgKzEwMDcsNyBAQCBBQ19TVUJTVChbQU1fQkFDS1NMQVNIXSlkbmwKIF9BTV9TVUJTVF9OT1RN QUtFKFtBTV9CQUNLU0xBU0hdKWRubAogXSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC0xMDIwLDcgKzEwMzUs NyBAQCBmaQogSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKIEFD X1NVQlNUKFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCiAKLSMgQ29weXJpZ2h0IChDKSAyMDA2 LTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAw Ni0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAtMTAzOSw3 ICsxMDU0LDcgQEAgQUNfREVGVU4oW0FNX1NVQlNUX05PVE1BS0VdLCBbX0FNX1NVQlNUX05PVE1B S0UoJEApXSkKIAogIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbC4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogCi0jIENvcHlyaWdodCAoQykgMjAwNC0y MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDQt MjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMKICMgVGhpcyBmaWxlIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KICMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLS0gCjIuMzUuMQoK --000000000000e70a8205de20ec63--