From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by sourceware.org (Postfix) with ESMTP id C1046393BC33 for ; Tue, 5 May 2020 21:24:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C1046393BC33 Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-266-DxkM8cuMMUul397ax5gTFA-1; Tue, 05 May 2020 17:23:48 -0400 X-MC-Unique: DxkM8cuMMUul397ax5gTFA-1 Received: by mail-vk1-f198.google.com with SMTP id f142so172678vke.1 for ; Tue, 05 May 2020 14:23:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Qiqwm0VSxjA9HeHFYQKDmyb39QUl2BpNE8acnsaeWkY=; b=iGKURzIHZewIQSR82s0LBJigyoIoJRLHfH96rxFifHzUZqCaXDjh2FH/IgJbpZ4TJW 2aaI4gNtFzEOuJOfebpAjSMx+VwRPmW0fFE5kJ6MLyuZgLS5eC7T+vtHWm/OExhxNpA8 XhUoh5XxVXF6MXFpUPXSzHFycfrSLyNAhYiYMiuGTpcyTjAFJuXEoLE8Grj/4J+xtKID qLpJU3pxP/gKJB9dJ8Wl0xXd/CdtAo90NaiCR4inqFIjFR5nU6HH7wK7OW3EzLZqHXIf k9ctyl6inwiKt+EsXDoGpQNxLQpMXRZqTiY0ydWXRG9GJL4SnK0EggpeoKlOpKOj8Kd3 STyg== X-Gm-Message-State: AGi0PuZv9BZ8yUgngBy8p+wITBHryzYGbpV1oT14ie/2aZHtcn0b8DPd ihphG//rG2h1Hrhr8DFkLoxWwq0+QT7fVc1ZybUPhBGAuL12L4+uY6QDd0NyjTnPKJWejq72dra 0F7Soai7xPySgKlZ3ipnWFejdS04tDTAFulSD X-Received: by 2002:ab0:648c:: with SMTP id p12mr4259588uam.83.1588713827846; Tue, 05 May 2020 14:23:47 -0700 (PDT) X-Google-Smtp-Source: APiQypIA+i2O2e09XyAVBA1R5kVWWd4rWmGhH5F6i9q5mKEAZALQIaemcAl38PwIvjFYyuIQE2r8fLBnqOpGFBWJK+0= X-Received: by 2002:ab0:648c:: with SMTP id p12mr4259531uam.83.1588713826393; Tue, 05 May 2020 14:23:46 -0700 (PDT) MIME-Version: 1.0 References: <20200502022903.175852-1-amerey@redhat.com> <3d9da16939fa6b503188033b56d30531e03d5d2a.camel@redhat.com> In-Reply-To: <3d9da16939fa6b503188033b56d30531e03d5d2a.camel@redhat.com> From: Aaron Merey Date: Tue, 5 May 2020 17:23:35 -0400 Message-ID: Subject: Re: [PATCH] config/debuginfod.m4: Use PKG_CHECK_MODULES To: law@redhat.com Cc: gcc-patches@gcc.gnu.org, binutils , Simon Marchi , gdb-patches@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000046292505a4ed43c3" X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2020 21:24:13 -0000 --00000000000046292505a4ed43c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, May 5, 2020 at 12:41 PM Jeff Law wrote: > > On Fri, 2020-05-01 at 22:29 -0400, Aaron Merey via Gcc-patches wrote: > > Hello, > > > > I'm not sure if this is the right mailing list for this patch but it mo= difies > > the top level directory of binutils-gdb for which I understand GCC to b= e the > > upstream. The purpose of this patch is to use PKG_CHECK_MODULES in > > config/debuginfod.m4 since debuginfod supports pkg-config. Otherwise th= e > > functionality of debuginfod.m4 is not changed by this patch. The rest o= f the > > changes involve renaming a debuginfod autoconf variable, removing an > > unnecessary call to AC_DEBUGINFOD in the top level configure.ac and the > > regeneration of files in gdb/, binutils/ and the top-level directory. > > > > Aaron Merey > > > > > > From 31c1e42fb7185080a21673b8818dca01fc7d4d6f Mon Sep 17 00:00:00 2001 > > From: Aaron Merey > > Date: Fri, 1 May 2020 21:51:43 -0400 > > Subject: [PATCH] config/debuginfod.m4: Use PKG_CHECK_MODULES > > > > Use PKG_CHECK_MODULES to set the debuginfod autoconf vars. > > > > ChangeLog: > > > > * config/debuginfod.m4: use PKG_CHECK_MODULES. > > * configure: Rebuild. > > * configure.ac: Remove AC_DEBUGINFOD. > > > > ChangeLog/binutils: > > > > * Makefile.am: Replace LIBDEBUGINFOD with DEBUGINFOD_LIBS. > > * Makefile.in: Rebuild. > > * aclocal.m4: Rebuild. > > * configure: Rebuild. > > * doc/Makefile.in: Rebuild. > > > > ChangeLog/gdb: > > > > * Makefile.in: Replace LIBDEBUGINFOD with DEBUGINFOD_LIBS. > > * aclocal.m4: Rebuild. > > * configure: Rebuild. > I can't ack the binutils or gdb directories. But the toplevel and config= / bits > are fine. Do you have commit privs to the GCC repo? Do all these have t= o go in > together? If so, that means we should coordinate commits and resyncing g= cc, gdb > and binutils I do not have commit privs to the GCC repo. It's better if all parts are committed at once to keep the files consistent. I've reattached the patch and cc'd gdb-patches. Binutils and GDB folks, do you have any concerns with this patch? Thanks, Aaron --00000000000046292505a4ed43c3 Content-Type: text/x-patch; charset="UTF-8"; name="0001-config-debuginfod.m4-Use-PKG_CHECK_MODULES.patch" Content-Disposition: attachment; filename="0001-config-debuginfod.m4-Use-PKG_CHECK_MODULES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k9uf2hs40 W1BBVENIXSBjb25maWcvZGVidWdpbmZvZC5tNDogVXNlIFBLR19DSEVDS19NT0RVTEVTCgpIZWxs bywKCkknbSBub3Qgc3VyZSBpZiB0aGlzIGlzIHRoZSByaWdodCBtYWlsaW5nIGxpc3QgZm9yIHRo aXMgcGF0Y2ggYnV0IGl0IG1vZGlmaWVzIAp0aGUgdG9wIGxldmVsIGRpcmVjdG9yeSBvZiBiaW51 dGlscy1nZGIgZm9yIHdoaWNoIEkgdW5kZXJzdGFuZCBHQ0MgdG8gYmUgdGhlIAp1cHN0cmVhbS4g VGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXRjaCBpcyB0byB1c2UgUEtHX0NIRUNLX01PRFVMRVMgaW4g CmNvbmZpZy9kZWJ1Z2luZm9kLm00IHNpbmNlIGRlYnVnaW5mb2Qgc3VwcG9ydHMgcGtnLWNvbmZp Zy4gT3RoZXJ3aXNlIHRoZSAKZnVuY3Rpb25hbGl0eSBvZiBkZWJ1Z2luZm9kLm00IGlzIG5vdCBj aGFuZ2VkIGJ5IHRoaXMgcGF0Y2guIFRoZSByZXN0IG9mIHRoZSAKY2hhbmdlcyBpbnZvbHZlIHJl bmFtaW5nIGEgZGVidWdpbmZvZCBhdXRvY29uZiB2YXJpYWJsZSwgcmVtb3ZpbmcgYW4gCnVubmVj ZXNzYXJ5IGNhbGwgdG8gQUNfREVCVUdJTkZPRCBpbiB0aGUgdG9wIGxldmVsIGNvbmZpZ3VyZS5h YyBhbmQgdGhlIApyZWdlbmVyYXRpb24gb2YgZmlsZXMgaW4gZ2RiLywgYmludXRpbHMvIGFuZCB0 aGUgdG9wLWxldmVsIGRpcmVjdG9yeS4KCkFhcm9uIE1lcmV5CgoKRnJvbSAzMWMxZTQyZmI3MTg1 MDgwYTIxNjczYjg4MThkY2EwMWZjN2Q0ZDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBYXJvbiBNZXJleSA8YW1lcmV5QHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMSBNYXkgMjAyMCAy MTo1MTo0MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZy9kZWJ1Z2luZm9kLm00OiBVc2Ug UEtHX0NIRUNLX01PRFVMRVMKClVzZSBQS0dfQ0hFQ0tfTU9EVUxFUyB0byBzZXQgdGhlIGRlYnVn aW5mb2QgYXV0b2NvbmYgdmFycy4KCkNoYW5nZUxvZzoKCiAgICAgICAgKiBjb25maWcvZGVidWdp bmZvZC5tNDogdXNlIFBLR19DSEVDS19NT0RVTEVTLgogICAgICAgICogY29uZmlndXJlOiBSZWJ1 aWxkLgogICAgICAgICogY29uZmlndXJlLmFjOiBSZW1vdmUgQUNfREVCVUdJTkZPRC4KCkNoYW5n ZUxvZy9iaW51dGlsczoKCiAgICAgICAgKiBNYWtlZmlsZS5hbTogUmVwbGFjZSBMSUJERUJVR0lO Rk9EIHdpdGggREVCVUdJTkZPRF9MSUJTLgogICAgICAgICogTWFrZWZpbGUuaW46IFJlYnVpbGQu CiAgICAgICAgKiBhY2xvY2FsLm00OiBSZWJ1aWxkLgogICAgICAgICogY29uZmlndXJlOiBSZWJ1 aWxkLgogICAgICAgICogZG9jL01ha2VmaWxlLmluOiBSZWJ1aWxkLgoKQ2hhbmdlTG9nL2dkYjoK CiAgICAgICAgKiBNYWtlZmlsZS5pbjogUmVwbGFjZSBMSUJERUJVR0lORk9EIHdpdGggREVCVUdJ TkZPRF9MSUJTLgogICAgICAgICogYWNsb2NhbC5tNDogUmVidWlsZC4KICAgICAgICAqIGNvbmZp Z3VyZTogUmVidWlsZC4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgfCAgIDYgKwogYmlu dXRpbHMvQ2hhbmdlTG9nICAgICAgIHwgICA5ICsKIGJpbnV0aWxzL01ha2VmaWxlLmFtICAgICB8 ICAgNiArLQogYmludXRpbHMvTWFrZWZpbGUuaW4gICAgIHwgICA3ICstCiBiaW51dGlscy9hY2xv Y2FsLm00ICAgICAgfCAzNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBi aW51dGlscy9jb25maWd1cmUgICAgICAgfCAzNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tCiBiaW51dGlscy9kb2MvTWFrZWZpbGUuaW4gfCAgIDYgKy0KIGNvbmZpZy9k ZWJ1Z2luZm9kLm00ICAgICB8ICAzNiArKy0tCiBjb25maWd1cmUgICAgICAgICAgICAgICAgfCAx MzkgKy0tLS0tLS0tLS0tLS0tCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgfCAgIDMgLQogZ2Ri L0NoYW5nZUxvZyAgICAgICAgICAgIHwgICA3ICsKIGdkYi9NYWtlZmlsZS5pbiAgICAgICAgICB8 ICAgMiArLQogZ2RiL2FjbG9jYWwubTQgICAgICAgICAgIHwgMzQ0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZ2RiL2NvbmZpZ3VyZSAgICAgICAgICAgIHwgMzY1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxNCBmaWxlcyBjaGFuZ2VkLCAxMjY2 IGluc2VydGlvbnMoKyksIDM3NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg Yi9DaGFuZ2VMb2cKaW5kZXggZjc5YzNlOGZiNS4uNDlkY2EwOGJiYyAxMDA2NDQKLS0tIGEvQ2hh bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkgQEAKKzIwMjAtMDUtMDEgIEFhcm9u IE1lcmV5ICA8YW1lcmV5QHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZy9kZWJ1Z2luZm9kLm00OiB1 c2UgUEtHX0NIRUNLX01PRFVMRVMuCisJKiBjb25maWd1cmU6IFJlYnVpbGQuCisJKiBjb25maWd1 cmUuYWM6IFJlbW92ZSBBQ19ERUJVR0lORk9ELgorCiAyMDIwLTA0LTIxICBTdGVwaGVuIENhc25l ciAgPGNhc25lckBhY20ub3JnPgogCiAJUFIgMjU4MzAKZGlmZiAtLWdpdCBhL2JpbnV0aWxzL0No YW5nZUxvZyBiL2JpbnV0aWxzL0NoYW5nZUxvZwppbmRleCA1MjA4MmZjYWUxLi5kYTZlZjljOGMz IDEwMDY0NAotLS0gYS9iaW51dGlscy9DaGFuZ2VMb2cKKysrIGIvYmludXRpbHMvQ2hhbmdlTG9n CkBAIC0xLDMgKzEsMTIgQEAKK0NoYW5nZUxvZy9iaW51dGlsczoKKzIwMjAtMDUtMDEgIEFhcm9u IE1lcmV5ICA8YW1lcmV5QHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBSZXBsYWNlIExJ QkRFQlVHSU5GT0Qgd2l0aCBERUJVR0lORk9EX0xJQlMuCisJKiBNYWtlZmlsZS5pbjogUmVidWls ZC4KKwkqIGFjbG9jYWwubTQ6IFJlYnVpbGQuCisJKiBjb25maWd1cmU6IFJlYnVpbGQuCisJKiBk b2MvTWFrZWZpbGUuaW46IFJlYnVpbGQuCisKIDIwMjAtMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9k cmFAZ21haWwuY29tPgogCSAgICBIYWltIFNoaW1vbm92aWNoICA8SGFpbS5TaGltb25vdmljaEBj ZXZhLWRzcC5jb20+CiAKZGlmZiAtLWdpdCBhL2JpbnV0aWxzL01ha2VmaWxlLmFtIGIvYmludXRp bHMvTWFrZWZpbGUuYW0KaW5kZXggZTVjZjU2MzRhNy4uZWNjNTI4M2IxYiAxMDA2NDQKLS0tIGEv YmludXRpbHMvTWFrZWZpbGUuYW0KKysrIGIvYmludXRpbHMvTWFrZWZpbGUuYW0KQEAgLTUzLDcg KzUzLDcgQEAgQU1fQ0ZMQUdTID0gJChXQVJOX0NGTEFHUykgJChaTElCSU5DKQogQU1fQ0ZMQUdT X0ZPUl9CVUlMRCA9ICQoV0FSTl9DRkxBR1NfRk9SX0JVSUxEKSAkKFpMSUJJTkMpCiBMSUJJQ09O ViA9IEBMSUJJQ09OVkAKIAotTElCREVCVUdJTkZPRCA9IEBMSUJERUJVR0lORk9EQAorREVCVUdJ TkZPRF9MSUJTID0gQERFQlVHSU5GT0RfTElCU0AKIAogIyB0aGVzZSB0d28gYXJlIGFsbW9zdCB0 aGUgc2FtZSBwcm9ncmFtCiBBUl9QUk9HPWFyCkBAIC0yNDcsNyArMjQ3LDcgQEAgb2JqY29weV9T T1VSQ0VTID0gb2JqY29weS5jIG5vdC1zdHJpcC5jIHJlbmFtZS5jICQoV1JJVEVfREVCVUdfU1JD UykgJChCVUxJQlMpCiBzdHJpbmdzX1NPVVJDRVMgPSBzdHJpbmdzLmMgJChCVUxJQlMpCiAKIHJl YWRlbGZfU09VUkNFUyA9IHJlYWRlbGYuYyB2ZXJzaW9uLmMgdW53aW5kLWlhNjQuYyBkd2FyZi5j ICQoRUxGTElCUykKLXJlYWRlbGZfTERBREQgICA9ICQoTElCSU5UTCkgJChMSUJDVEZfTk9CRkQp ICQoTElCSUJFUlRZKSAkKFpMSUIpICQoTElCREVCVUdJTkZPRCkKK3JlYWRlbGZfTERBREQgICA9 ICQoTElCSU5UTCkgJChMSUJDVEZfTk9CRkQpICQoTElCSUJFUlRZKSAkKFpMSUIpICQoREVCVUdJ TkZPRF9MSUJTKQogCiBlbGZlZGl0X1NPVVJDRVMgPSBlbGZlZGl0LmMgdmVyc2lvbi5jICQoRUxG TElCUykKIGVsZmVkaXRfTERBREQgPSAkKExJQklOVEwpICQoTElCSUJFUlRZKQpAQCAtMjU4LDcg KzI1OCw3IEBAIG5tX25ld19TT1VSQ0VTID0gbm0uYyAkKEJVTElCUykKIAogb2JqZHVtcF9TT1VS Q0VTID0gb2JqZHVtcC5jIGR3YXJmLmMgcHJkYmcuYyAkKERFQlVHX1NSQ1MpICQoQlVMSUJTKSAk KEVMRkxJQlMpCiBFWFRSQV9vYmpkdW1wX1NPVVJDRVMgPSBvZC14Y29mZi5jCi1vYmpkdW1wX0xE QUREID0gJChPQkpEVU1QX1BSSVZBVEVfT0ZJTEVTKSAkKE9QQ09ERVMpICQoTElCQ1RGKSAkKEJG RExJQikgJChMSUJJQkVSVFkpICQoTElCSU5UTCkgJChMSUJERUJVR0lORk9EKQorb2JqZHVtcF9M REFERCA9ICQoT0JKRFVNUF9QUklWQVRFX09GSUxFUykgJChPUENPREVTKSAkKExJQkNURikgJChC RkRMSUIpICQoTElCSUJFUlRZKSAkKExJQklOVEwpICQoREVCVUdJTkZPRF9MSUJTKQogCiBvYmpk dW1wLkBPQkpFWFRAOm9iamR1bXAuYwogaWYgYW1fX2Zhc3RkZXBDQwpkaWZmIC0tZ2l0IGEvYmlu dXRpbHMvTWFrZWZpbGUuaW4gYi9iaW51dGlscy9NYWtlZmlsZS5pbgppbmRleCBlZTZmMjY3ZGY5 Li43NzgwNzI5ZDY5IDEwMDY0NAotLS0gYS9iaW51dGlscy9NYWtlZmlsZS5pbgorKysgYi9iaW51 dGlscy9NYWtlZmlsZS5pbgpAQCAtNDIwLDYgKzQyMCw4IEBAIENQUCA9IEBDUFBACiBDUFBGTEFH UyA9IEBDUFBGTEFHU0AKIENZR1BBVEhfVyA9IEBDWUdQQVRIX1dACiBEQVRBRElSTkFNRSA9IEBE QVRBRElSTkFNRUAKK0RFQlVHSU5GT0RfQ0ZMQUdTID0gQERFQlVHSU5GT0RfQ0ZMQUdTQAorREVC VUdJTkZPRF9MSUJTID0gQERFQlVHSU5GT0RfTElCU0AKIERFRlMgPSBAREVGU0AKIERFTUFOR0xF Ul9OQU1FID0gQERFTUFOR0xFUl9OQU1FQAogREVQRElSID0gQERFUERJUkAKQEAgLTQ1MSw3ICs0 NTMsNiBAQCBMREZMQUdTID0gQExERkxBR1NACiBMRVggPSBgaWYgWyAtZiAuLi9mbGV4L2ZsZXgg XTsgdGhlbiBlY2hvIC4uL2ZsZXgvZmxleDsgZWxzZSBlY2hvIEBMRVhAOyBmaWAKIExFWExJQiA9 IEBMRVhMSUJACiBMRVhfT1VUUFVUX1JPT1QgPSBATEVYX09VVFBVVF9ST09UQAotTElCREVCVUdJ TkZPRCA9IEBMSUJERUJVR0lORk9EQAogTElCSUNPTlYgPSBATElCSUNPTlZACiBMSUJJTlRMID0g QExJQklOVExACiBMSUJJTlRMX0RFUCA9IEBMSUJJTlRMX0RFUEAKQEAgLTQ4Nyw2ICs0ODgsOSBA QCBQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAogUEFDS0FHRV9VUkwgPSBAUEFD S0FHRV9VUkxACiBQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAogUEFUSF9TRVBB UkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQS0df Q09ORklHX0xJQkRJUiA9IEBQS0dfQ09ORklHX0xJQkRJUkAKK1BLR19DT05GSUdfUEFUSCA9IEBQ S0dfQ09ORklHX1BBVEhACiBQT1NVQiA9IEBQT1NVQkAKIFJBTkxJQiA9IEBSQU5MSUJACiBTRUQg PSBAU0VEQApAQCAtNTc1LDYgKzU3OSw3IEBAIFpMSUIgPSBAemxpYmRpckAgLWx6CiBaTElCSU5D ID0gQHpsaWJpbmNACiBBTV9DRkxBR1MgPSAkKFdBUk5fQ0ZMQUdTKSAkKFpMSUJJTkMpCiBBTV9D RkxBR1NfRk9SX0JVSUxEID0gJChXQVJOX0NGTEFHU19GT1JfQlVJTEQpICQoWkxJQklOQykKK0xJ QkRFQlVHSU5GT0QgPSBAREVCVUdJTkZPRF9MSUJTQAogCiAjIHRoZXNlIHR3byBhcmUgYWxtb3N0 IHRoZSBzYW1lIHByb2dyYW0KIEFSX1BST0cgPSBhcgpkaWZmIC0tZ2l0IGEvYmludXRpbHMvYWNs b2NhbC5tNCBiL2JpbnV0aWxzL2FjbG9jYWwubTQKaW5kZXggNGZhMzJmZmZkOC4uMDFlNzQwNmY4 MyAxMDA2NDQKLS0tIGEvYmludXRpbHMvYWNsb2NhbC5tNAorKysgYi9iaW51dGlscy9hY2xvY2Fs Lm00CkBAIC0yMCw2ICsyMCwzNTAgQEAgWW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1dG9j b25mLiAgSXQgbWF5IHdvcmssIGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0by4KIElmIHlvdSBoYXZl IHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVu dGlyZWx5LgogVG8gZG8gc28sIHVzZSB0aGUgcHJvY2VkdXJlIGRvY3VtZW50ZWQgYnkgdGhlIHBh Y2thZ2UsIHR5cGljYWxseSAnYXV0b3JlY29uZicuXSldKQogCisjIHBrZy5tNCAtIE1hY3JvcyB0 byBsb2NhdGUgYW5kIHV0aWxpc2UgcGtnLWNvbmZpZy4gICAtKi0gQXV0b2NvbmYgLSotCisjIHNl cmlhbCAxMSAocGtnLWNvbmZpZy0wLjI5LjEpCisKK2RubCBDb3B5cmlnaHQgwqkgMjAwNCBTY290 dCBKYW1lcyBSZW1uYW50IDxzY290dEBuZXRzcGxpdC5jb20+LgorZG5sIENvcHlyaWdodCDCqSAy MDEyLTIwMTUgRGFuIE5pY2hvbHNvbiA8ZGJuLmxpc3RzQGdtYWlsLmNvbT4KK2RubAorZG5sIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CitkbmwgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK2RubCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorZG5sIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCitkbmwKK2RubCBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CitkbmwgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorZG5s IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2Vl IHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCitk bmwKK2RubCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorZG5sIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCitkbmwgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl IFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BCitkbmwgMDIxMTEtMTMwNywgVVNBLgorZG5s CitkbmwgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UsIGlmIHlvdQorZG5sIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9n cmFtIHRoYXQgY29udGFpbnMgYQorZG5sIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBi eSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJp YnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdAorZG5sIHByb2dy YW0uCisKK2RubCBQS0dfUFJFUkVRKE1JTi1WRVJTSU9OKQorZG5sIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCitkbmwgU2luY2U6IDAuMjkKK2RubAorZG5sIFZlcmlmeSB0aGF0IHRoZSB2ZXJzaW9u IG9mIHRoZSBwa2ctY29uZmlnIG1hY3JvcyBhcmUgYXQgbGVhc3QKK2RubCBNSU4tVkVSU0lPTi4g VW5saWtlIFBLR19QUk9HX1BLR19DT05GSUcsIHdoaWNoIGNoZWNrcyB0aGUgdXNlcidzCitkbmwg aW5zdGFsbGVkIHZlcnNpb24gb2YgcGtnLWNvbmZpZywgdGhpcyBjaGVja3MgdGhlIGRldmVsb3Bl cidzIHZlcnNpb24KK2RubCBvZiBwa2cubTQgd2hlbiBnZW5lcmF0aW5nIGNvbmZpZ3VyZS4KK2Ru bAorZG5sIFRvIGVuc3VyZSB0aGF0IHRoaXMgbWFjcm8gaXMgZGVmaW5lZCwgYWxzbyBhZGQ6Citk bmwgbTRfaWZuZGVmKFtQS0dfUFJFUkVRXSwKK2RubCAgICAgW200X2ZhdGFsKFttdXN0IGluc3Rh bGwgcGtnLWNvbmZpZyAwLjI5IG9yIGxhdGVyIGJlZm9yZSBydW5uaW5nIGF1dG9jb25mL2F1dG9n ZW5dKV0pCitkbmwKK2RubCBTZWUgdGhlICJTaW5jZSIgY29tbWVudCBmb3IgZWFjaCBtYWNybyB5 b3UgdXNlIHRvIHNlZSB3aGF0IHZlcnNpb24KK2RubCBvZiB0aGUgbWFjcm9zIHlvdSByZXF1aXJl LgorbTRfZGVmdW4oW1BLR19QUkVSRVFdLAorW200X2RlZmluZShbUEtHX01BQ1JPU19WRVJTSU9O XSwgWzAuMjkuMV0pCittNF9pZihtNF92ZXJzaW9uX2NvbXBhcmUoUEtHX01BQ1JPU19WRVJTSU9O LCBbJDFdKSwgLTEsCisgICAgW200X2ZhdGFsKFtwa2cubTQgdmVyc2lvbiAkMSBvciBoaWdoZXIg aXMgcmVxdWlyZWQgYnV0IF1QS0dfTUFDUk9TX1ZFUlNJT05bIGZvdW5kXSldKQorXSlkbmwgUEtH X1BSRVJFUQorCitkbmwgUEtHX1BST0dfUEtHX0NPTkZJRyhbTUlOLVZFUlNJT05dKQorZG5sIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RubCBTaW5jZTogMC4xNgorZG5sCitk bmwgU2VhcmNoIGZvciB0aGUgcGtnLWNvbmZpZyB0b29sIGFuZCBzZXQgdGhlIFBLR19DT05GSUcg dmFyaWFibGUgdG8KK2RubCBmaXJzdCBmb3VuZCBpbiB0aGUgcGF0aC4gQ2hlY2tzIHRoYXQgdGhl IHZlcnNpb24gb2YgcGtnLWNvbmZpZyBmb3VuZAorZG5sIGlzIGF0IGxlYXN0IE1JTi1WRVJTSU9O LiBJZiBNSU4tVkVSU0lPTiBpcyBub3Qgc3BlY2lmaWVkLCAwLjkuMCBpcworZG5sIHVzZWQgc2lu Y2UgdGhhdCdzIHRoZSBmaXJzdCB2ZXJzaW9uIHdoZXJlIG1vc3QgY3VycmVudCBmZWF0dXJlcyBv ZgorZG5sIHBrZy1jb25maWcgZXhpc3RlZC4KK0FDX0RFRlVOKFtQS0dfUFJPR19QS0dfQ09ORklH XSwKK1ttNF9wYXR0ZXJuX2ZvcmJpZChbXl8/UEtHX1tBLVpfXSskXSkKK200X3BhdHRlcm5fYWxs b3coW15QS0dfQ09ORklHKF8oUEFUSHxMSUJESVJ8U1lTUk9PVF9ESVJ8QUxMT1dfU1lTVEVNXyhD RkxBR1N8TElCUykpKT8kXSkKK200X3BhdHRlcm5fYWxsb3coW15QS0dfQ09ORklHXyhESVNBQkxF X1VOSU5TVEFMTEVEfFRPUF9CVUlMRF9ESVJ8REVCVUdfU1BFVykkXSkKK0FDX0FSR19WQVIoW1BL R19DT05GSUddLCBbcGF0aCB0byBwa2ctY29uZmlnIHV0aWxpdHldKQorQUNfQVJHX1ZBUihbUEtH X0NPTkZJR19QQVRIXSwgW2RpcmVjdG9yaWVzIHRvIGFkZCB0byBwa2ctY29uZmlnJ3Mgc2VhcmNo IHBhdGhdKQorQUNfQVJHX1ZBUihbUEtHX0NPTkZJR19MSUJESVJdLCBbcGF0aCBvdmVycmlkaW5n IHBrZy1jb25maWcncyBidWlsdC1pbiBzZWFyY2ggcGF0aF0pCisKK2lmIHRlc3QgIngkYWNfY3Zf ZW52X1BLR19DT05GSUdfc2V0IiAhPSAieHNldCI7IHRoZW4KKwlBQ19QQVRIX1RPT0woW1BLR19D T05GSUddLCBbcGtnLWNvbmZpZ10pCitmaQoraWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVu CisJX3BrZ19taW5fdmVyc2lvbj1tNF9kZWZhdWx0KFskMV0sIFswLjkuMF0pCisJQUNfTVNHX0NI RUNLSU5HKFtwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb25d KQorCWlmICRQS0dfQ09ORklHIC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5f dmVyc2lvbjsgdGhlbgorCQlBQ19NU0dfUkVTVUxUKFt5ZXNdKQorCWVsc2UKKwkJQUNfTVNHX1JF U1VMVChbbm9dKQorCQlQS0dfQ09ORklHPSIiCisJZmkKK2ZpW11kbmwKK10pZG5sIFBLR19QUk9H X1BLR19DT05GSUcKKworZG5sIFBLR19DSEVDS19FWElTVFMoTU9EVUxFUywgW0FDVElPTi1JRi1G T1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgU2luY2U6 IDAuMTgKK2RubAorZG5sIENoZWNrIHRvIHNlZSB3aGV0aGVyIGEgcGFydGljdWxhciBzZXQgb2Yg bW9kdWxlcyBleGlzdHMuIFNpbWlsYXIgdG8KK2RubCBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQg ZG9lcyBub3Qgc2V0IHZhcmlhYmxlcyBvciBwcmludCBlcnJvcnMuCitkbmwKK2RubCBQbGVhc2Ug cmVtZW1iZXIgdGhhdCBtNCBleHBhbmRzIEFDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19DT05GSUdd KQorZG5sIG9ubHkgYXQgdGhlIGZpcnN0IG9jY3VyZW5jZSBpbiBjb25maWd1cmUuYWMsIHNvIGlm IHRoZSBmaXJzdCBwbGFjZQorZG5sIGl0J3MgY2FsbGVkIG1pZ2h0IGJlIHNraXBwZWQgKHN1Y2gg YXMgaWYgaXQgaXMgd2l0aGluIGFuICJpZiIsIHlvdQorZG5sIGhhdmUgdG8gY2FsbCBQS0dfQ0hF Q0tfRVhJU1RTIG1hbnVhbGx5CitBQ19ERUZVTihbUEtHX0NIRUNLX0VYSVNUU10sCitbQUNfUkVR VUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pZG5sCitpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIg JiYgXAorICAgIEFDX1JVTl9MT0coWyRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3Jz ICIkMSJdKTsgdGhlbgorICBtNF9kZWZhdWx0KFskMl0sIFs6XSkKK200X2lmdmFsbihbJDNdLCBb ZWxzZQorICAkM10pZG5sCitmaV0pCisKK2RubCBfUEtHX0NPTkZJRyhbVkFSSUFCTEVdLCBbQ09N TUFORF0sIFtNT0RVTEVTXSkKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KK2RubCBJbnRlcm5hbCB3cmFwcGVyIGNhbGxpbmcgcGtnLWNvbmZpZyB2aWEg UEtHX0NPTkZJRyBhbmQgc2V0dGluZworZG5sIHBrZ19mYWlsZWQgYmFzZWQgb24gdGhlIHJlc3Vs dC4KK200X2RlZmluZShbX1BLR19DT05GSUddLAorW2lmIHRlc3QgLW4gIiQkMSI7IHRoZW4KKyAg ICBwa2dfY3ZfW10kMT0iJCQxIgorIGVsaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCisg ICAgUEtHX0NIRUNLX0VYSVNUUyhbJDNdLAorICAgICAgICAgICAgICAgICAgICAgW3BrZ19jdl9b XSQxPWAkUEtHX0NPTkZJRyAtLVtdJDIgIiQzIiAyPi9kZXYvbnVsbGAKKwkJICAgICAgdGVzdCAi eCQ/IiAhPSAieDAiICYmIHBrZ19mYWlsZWQ9eWVzIF0sCisJCSAgICAgW3BrZ19mYWlsZWQ9eWVz XSkKKyBlbHNlCisgICAgcGtnX2ZhaWxlZD11bnRyaWVkCitmaVtdZG5sCitdKWRubCBfUEtHX0NP TkZJRworCitkbmwgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECitkbmwgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCitkbmwgSW50ZXJuYWwgY2hlY2sgdG8gc2VlIGlmIHBrZy1jb25maWcg c3VwcG9ydHMgc2hvcnQgZXJyb3JzLgorQUNfREVGVU4oW19QS0dfU0hPUlRfRVJST1JTX1NVUFBP UlRFRF0sCitbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pCitpZiAkUEtHX0NPTkZJ RyAtLWF0bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gMC4yMDsgdGhlbgorICAgICAgICBfcGtnX3No b3J0X2Vycm9yc19zdXBwb3J0ZWQ9eWVzCitlbHNlCisgICAgICAgIF9wa2dfc2hvcnRfZXJyb3Jz X3N1cHBvcnRlZD1ubworZmlbXWRubAorXSlkbmwgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVE CisKKworZG5sIFBLR19DSEVDS19NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywgW0FD VElPTi1JRi1GT1VORF0sCitkbmwgICBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCitkbmwgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K2RubCBTaW5jZTogMC40LjAKK2RubAorZG5sIE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBhIHBvc3Np YmlsaXR5IHRoZSBmaXJzdCBjYWxsIHRvCitkbmwgUEtHX0NIRUNLX01PRFVMRVMgbWlnaHQgbm90 IGhhcHBlbiwgeW91IHNob3VsZCBiZSBzdXJlIHRvIGluY2x1ZGUgYW4KK2RubCBleHBsaWNpdCBj YWxsIHRvIFBLR19QUk9HX1BLR19DT05GSUcgaW4geW91ciBjb25maWd1cmUuYWMKK0FDX0RFRlVO KFtQS0dfQ0hFQ0tfTU9EVUxFU10sCitbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10p ZG5sCitBQ19BUkdfVkFSKFskMV1bX0NGTEFHU10sIFtDIGNvbXBpbGVyIGZsYWdzIGZvciAkMSwg b3ZlcnJpZGluZyBwa2ctY29uZmlnXSlkbmwKK0FDX0FSR19WQVIoWyQxXVtfTElCU10sIFtsaW5r ZXIgZmxhZ3MgZm9yICQxLCBvdmVycmlkaW5nIHBrZy1jb25maWddKWRubAorCitwa2dfZmFpbGVk PW5vCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCisKK19QS0dfQ09ORklHKFskMV1bX0NGTEFH U10sIFtjZmxhZ3NdLCBbJDJdKQorX1BLR19DT05GSUcoWyQxXVtfTElCU10sIFtsaWJzXSwgWyQy XSkKKworbTRfZGVmaW5lKFtfUEtHX1RFWFRdLCBbQWx0ZXJuYXRpdmVseSwgeW91IG1heSBzZXQg dGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAkMVtdX0NGTEFHUworYW5kICQxW11fTElCUyB0byBh dm9pZCB0aGUgbmVlZCB0byBjYWxsIHBrZy1jb25maWcuCitTZWUgdGhlIHBrZy1jb25maWcgbWFu IHBhZ2UgZm9yIG1vcmUgZGV0YWlscy5dKQorCitpZiB0ZXN0ICRwa2dfZmFpbGVkID0geWVzOyB0 aGVuCisJQUNfTVNHX1JFU1VMVChbbm9dKQorICAgICAgICBfUEtHX1NIT1JUX0VSUk9SU19TVVBQ T1JURUQKKyAgICAgICAgaWYgdGVzdCAkX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkID0geWVz OyB0aGVuCisJICAgICAgICAkMVtdX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tc2hvcnQtZXJy b3JzIC0tcHJpbnQtZXJyb3JzIC0tY2ZsYWdzIC0tbGlicyAiJDIiIDI+JjFgCisgICAgICAgIGVs c2UKKwkgICAgICAgICQxW11fUEtHX0VSUk9SUz1gJFBLR19DT05GSUcgLS1wcmludC1lcnJvcnMg LS1jZmxhZ3MgLS1saWJzICIkMiIgMj4mMWAKKyAgICAgICAgZmkKKwkjIFB1dCB0aGUgbmFzdHkg ZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKKwllY2hvICIkJDFb XV9QS0dfRVJST1JTIiA+JkFTX01FU1NBR0VfTE9HX0ZECisKKwltNF9kZWZhdWx0KFskNF0sIFtB Q19NU0dfRVJST1IoCitbUGFja2FnZSByZXF1aXJlbWVudHMgKCQyKSB3ZXJlIG5vdCBtZXQ6CisK KyQkMV9QS0dfRVJST1JTCisKK0NvbnNpZGVyIGFkanVzdGluZyB0aGUgUEtHX0NPTkZJR19QQVRI IGVudmlyb25tZW50IHZhcmlhYmxlIGlmIHlvdQoraW5zdGFsbGVkIHNvZnR3YXJlIGluIGEgbm9u LXN0YW5kYXJkIHByZWZpeC4KKworX1BLR19URVhUXSlbXWRubAorICAgICAgICBdKQorZWxpZiB0 ZXN0ICRwa2dfZmFpbGVkID0gdW50cmllZDsgdGhlbgorCUFDX01TR19SRVNVTFQoW25vXSkKKwlt NF9kZWZhdWx0KFskNF0sIFtBQ19NU0dfRkFJTFVSRSgKK1tUaGUgcGtnLWNvbmZpZyBzY3JpcHQg Y291bGQgbm90IGJlIGZvdW5kIG9yIGlzIHRvbyBvbGQuICBNYWtlIHN1cmUgaXQKK2lzIGluIHlv dXIgUEFUSCBvciBzZXQgdGhlIFBLR19DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhl IGZ1bGwKK3BhdGggdG8gcGtnLWNvbmZpZy4KKworX1BLR19URVhUCisKK1RvIGdldCBwa2ctY29u ZmlnLCBzZWUgPGh0dHA6Ly9wa2ctY29uZmlnLmZyZWVkZXNrdG9wLm9yZy8+Ll0pW11kbmwKKyAg ICAgICAgXSkKK2Vsc2UKKwkkMVtdX0NGTEFHUz0kcGtnX2N2X1tdJDFbXV9DRkxBR1MKKwkkMVtd X0xJQlM9JHBrZ19jdl9bXSQxW11fTElCUworICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQor CSQzCitmaVtdZG5sCitdKWRubCBQS0dfQ0hFQ0tfTU9EVUxFUworCisKK2RubCBQS0dfQ0hFQ0tf TU9EVUxFU19TVEFUSUMoVkFSSUFCTEUtUFJFRklYLCBNT0RVTEVTLCBbQUNUSU9OLUlGLUZPVU5E XSwKK2RubCAgIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RubCBT aW5jZTogMC4yOQorZG5sCitkbmwgQ2hlY2tzIGZvciBleGlzdGVuY2Ugb2YgTU9EVUxFUyBhbmQg Z2F0aGVycyBpdHMgYnVpbGQgZmxhZ3Mgd2l0aAorZG5sIHN0YXRpYyBsaWJyYXJpZXMgZW5hYmxl ZC4gU2V0cyBWQVJJQUJMRS1QUkVGSVhfQ0ZMQUdTIGZyb20gLS1jZmxhZ3MKK2RubCBhbmQgVkFS SUFCTEUtUFJFRklYX0xJQlMgZnJvbSAtLWxpYnMuCitkbmwKK2RubCBOb3RlIHRoYXQgaWYgdGhl cmUgaXMgYSBwb3NzaWJpbGl0eSB0aGUgZmlyc3QgY2FsbCB0bworZG5sIFBLR19DSEVDS19NT0RV TEVTX1NUQVRJQyBtaWdodCBub3QgaGFwcGVuLCB5b3Ugc2hvdWxkIGJlIHN1cmUgdG8KK2RubCBp bmNsdWRlIGFuIGV4cGxpY2l0IGNhbGwgdG8gUEtHX1BST0dfUEtHX0NPTkZJRyBpbiB5b3VyCitk bmwgY29uZmlndXJlLmFjLgorQUNfREVGVU4oW1BLR19DSEVDS19NT0RVTEVTX1NUQVRJQ10sCitb QUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pZG5sCitfc2F2ZV9QS0dfQ09ORklHPSRQ S0dfQ09ORklHCitQS0dfQ09ORklHPSIkUEtHX0NPTkZJRyAtLXN0YXRpYyIKK1BLR19DSEVDS19N T0RVTEVTKCRAKQorUEtHX0NPTkZJRz0kX3NhdmVfUEtHX0NPTkZJR1tdZG5sCitdKWRubCBQS0df Q0hFQ0tfTU9EVUxFU19TVEFUSUMKKworCitkbmwgUEtHX0lOU1RBTExESVIoW0RJUkVDVE9SWV0p CitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZG5sIFNpbmNlOiAwLjI3CitkbmwKK2Ru bCBTdWJzdGl0dXRlcyB0aGUgdmFyaWFibGUgcGtnY29uZmlnZGlyIGFzIHRoZSBsb2NhdGlvbiB3 aGVyZSBhIG1vZHVsZQorZG5sIHNob3VsZCBpbnN0YWxsIHBrZy1jb25maWcgLnBjIGZpbGVzLiBC eSBkZWZhdWx0IHRoZSBkaXJlY3RvcnkgaXMKK2RubCAkbGliZGlyL3BrZ2NvbmZpZywgYnV0IHRo ZSBkZWZhdWx0IGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcKK2RubCBESVJFQ1RPUlkuIFRoZSB1 c2VyIGNhbiBvdmVycmlkZSB0aHJvdWdoIHRoZSAtLXdpdGgtcGtnY29uZmlnZGlyCitkbmwgcGFy YW1ldGVyLgorQUNfREVGVU4oW1BLR19JTlNUQUxMRElSXSwKK1ttNF9wdXNoZGVmKFtwa2dfZGVm YXVsdF0sIFttNF9kZWZhdWx0KFskMV0sIFsnJHtsaWJkaXJ9L3BrZ2NvbmZpZyddKV0pCittNF9w dXNoZGVmKFtwa2dfZGVzY3JpcHRpb25dLAorICAgIFtwa2ctY29uZmlnIGluc3RhbGxhdGlvbiBk aXJlY3RvcnkgQDw6QF1wa2dfZGVmYXVsdFtAOj5AXSkKK0FDX0FSR19XSVRIKFtwa2djb25maWdk aXJdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBrZ2NvbmZpZ2Rpcl0sIHBrZ19kZXNj cmlwdGlvbildLCwKKyAgICBbd2l0aF9wa2djb25maWdkaXI9XXBrZ19kZWZhdWx0KQorQUNfU1VC U1QoW3BrZ2NvbmZpZ2Rpcl0sIFskd2l0aF9wa2djb25maWdkaXJdKQorbTRfcG9wZGVmKFtwa2df ZGVmYXVsdF0pCittNF9wb3BkZWYoW3BrZ19kZXNjcmlwdGlvbl0pCitdKWRubCBQS0dfSU5TVEFM TERJUgorCisKK2RubCBQS0dfTk9BUkNIX0lOU1RBTExESVIoW0RJUkVDVE9SWV0pCitkbmwgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RubCBTaW5jZTogMC4yNworZG5sCitkbmwg U3Vic3RpdHV0ZXMgdGhlIHZhcmlhYmxlIG5vYXJjaF9wa2djb25maWdkaXIgYXMgdGhlIGxvY2F0 aW9uIHdoZXJlIGEKK2RubCBtb2R1bGUgc2hvdWxkIGluc3RhbGwgYXJjaC1pbmRlcGVuZGVudCBw a2ctY29uZmlnIC5wYyBmaWxlcy4gQnkKK2RubCBkZWZhdWx0IHRoZSBkaXJlY3RvcnkgaXMgJGRh dGFkaXIvcGtnY29uZmlnLCBidXQgdGhlIGRlZmF1bHQgY2FuIGJlCitkbmwgY2hhbmdlZCBieSBw YXNzaW5nIERJUkVDVE9SWS4gVGhlIHVzZXIgY2FuIG92ZXJyaWRlIHRocm91Z2ggdGhlCitkbmwg LS13aXRoLW5vYXJjaC1wa2djb25maWdkaXIgcGFyYW1ldGVyLgorQUNfREVGVU4oW1BLR19OT0FS Q0hfSU5TVEFMTERJUl0sCitbbTRfcHVzaGRlZihbcGtnX2RlZmF1bHRdLCBbbTRfZGVmYXVsdChb JDFdLCBbJyR7ZGF0YWRpcn0vcGtnY29uZmlnJ10pXSkKK200X3B1c2hkZWYoW3BrZ19kZXNjcmlw dGlvbl0sCisgICAgW3BrZy1jb25maWcgYXJjaC1pbmRlcGVuZGVudCBpbnN0YWxsYXRpb24gZGly ZWN0b3J5IEA8OkBdcGtnX2RlZmF1bHRbQDo+QF0pCitBQ19BUkdfV0lUSChbbm9hcmNoLXBrZ2Nv bmZpZ2Rpcl0sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtbm9hcmNoLXBrZ2NvbmZpZ2Rp cl0sIHBrZ19kZXNjcmlwdGlvbildLCwKKyAgICBbd2l0aF9ub2FyY2hfcGtnY29uZmlnZGlyPV1w a2dfZGVmYXVsdCkKK0FDX1NVQlNUKFtub2FyY2hfcGtnY29uZmlnZGlyXSwgWyR3aXRoX25vYXJj aF9wa2djb25maWdkaXJdKQorbTRfcG9wZGVmKFtwa2dfZGVmYXVsdF0pCittNF9wb3BkZWYoW3Br Z19kZXNjcmlwdGlvbl0pCitdKWRubCBQS0dfTk9BUkNIX0lOU1RBTExESVIKKworCitkbmwgUEtH X0NIRUNLX1ZBUihWQVJJQUJMRSwgTU9EVUxFLCBDT05GSUctVkFSSUFCTEUsCitkbmwgW0FDVElP Ti1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKK2RubCAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgU2luY2U6IDAuMjgKK2RubAorZG5sIFJl dHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIHBrZy1jb25maWcgdmFyaWFibGUgZm9yIHRoZSBnaXZl biBtb2R1bGUuCitBQ19ERUZVTihbUEtHX0NIRUNLX1ZBUl0sCitbQUNfUkVRVUlSRShbUEtHX1BS T0dfUEtHX0NPTkZJR10pZG5sCitBQ19BUkdfVkFSKFskMV0sIFt2YWx1ZSBvZiAkMyBmb3IgJDIs IG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCisKK19QS0dfQ09ORklHKFskMV0sIFt2YXJpYWJs ZT0iXVskM11bIl0sIFskMl0pCitBU19WQVJfQ09QWShbJDFdLCBbcGtnX2N2X11bJDFdKQorCitB U19WQVJfSUYoWyQxXSwgWyIiXSwgWyQ1XSwgWyQ0XSlkbmwKK10pZG5sIFBLR19DSEVDS19WQVIK KworZG5sIFBLR19XSVRIX01PRFVMRVMoVkFSSUFCTEUtUFJFRklYLCBNT0RVTEVTLAorZG5sICAg W0FDVElPTi1JRi1GT1VORF0sW0FDVElPTi1JRi1OT1QtRk9VTkRdLAorZG5sICAgW0RFU0NSSVBU SU9OXSwgW0RFRkFVTFRdKQorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorZG5sCitkbmwgUHJlcGFyZSBhICItLXdpdGgtIiBjb25maWd1cmUgb3B0aW9uIHVz aW5nIHRoZSBsb3dlcmNhc2UKK2RubCBbVkFSSUFCTEUtUFJFRklYXSBuYW1lLCBtZXJnaW5nIHRo ZSBiZWhhdmlvdXIgb2YgQUNfQVJHX1dJVEggYW5kCitkbmwgUEtHX0NIRUNLX01PRFVMRVMgaW4g YSBzaW5nbGUgbWFjcm8uCitBQ19ERUZVTihbUEtHX1dJVEhfTU9EVUxFU10sCitbCittNF9wdXNo ZGVmKFt3aXRoX2FyZ10sIG00X3RvbG93ZXIoWyQxXSkpCisKK200X3B1c2hkZWYoW2Rlc2NyaXB0 aW9uXSwKKyAgICAgICAgICAgW200X2RlZmF1bHQoWyQ1XSwgW2J1aWxkIHdpdGggXXdpdGhfYXJn WyBzdXBwb3J0XSldKQorCittNF9wdXNoZGVmKFtkZWZfYXJnXSwgW200X2RlZmF1bHQoWyQ2XSwg W2F1dG9dKV0pCittNF9wdXNoZGVmKFtkZWZfYWN0aW9uX2lmX2ZvdW5kXSwgW0FTX1RSX1NIKFt3 aXRoX113aXRoX2FyZyk9eWVzXSkKK200X3B1c2hkZWYoW2RlZl9hY3Rpb25faWZfbm90X2ZvdW5k XSwgW0FTX1RSX1NIKFt3aXRoX113aXRoX2FyZyk9bm9dKQorCittNF9jYXNlKGRlZl9hcmcsCisg ICAgICAgICAgICBbeWVzXSxbbTRfcHVzaGRlZihbd2l0aF93aXRob3V0XSwgWy0td2l0aG91dC1d d2l0aF9hcmcpXSwKKyAgICAgICAgICAgIFttNF9wdXNoZGVmKFt3aXRoX3dpdGhvdXRdLFstLXdp dGgtXXdpdGhfYXJnKV0pCisKK0FDX0FSR19XSVRIKHdpdGhfYXJnLAorICAgICBBU19IRUxQX1NU UklORyh3aXRoX3dpdGhvdXQsIGRlc2NyaXB0aW9uWyBAPDpAZGVmYXVsdD1dZGVmX2FyZ1tAOj5A XSksLAorICAgIFtBU19UUl9TSChbd2l0aF9dd2l0aF9hcmcpPWRlZl9hcmddKQorCitBU19DQVNF KFskQVNfVFJfU0goW3dpdGhfXXdpdGhfYXJnKV0sCisgICAgICAgICAgICBbeWVzXSxbUEtHX0NI RUNLX01PRFVMRVMoWyQxXSxbJDJdLCQzLCQ0KV0sCisgICAgICAgICAgICBbYXV0b10sW1BLR19D SEVDS19NT0RVTEVTKFskMV0sWyQyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbbTRfbihbZGVmX2FjdGlvbl9pZl9mb3VuZF0pICQzXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbbTRfbihbZGVmX2FjdGlvbl9pZl9ub3RfZm91bmRd KSAkNF0pXSkKKworbTRfcG9wZGVmKFt3aXRoX2FyZ10pCittNF9wb3BkZWYoW2Rlc2NyaXB0aW9u XSkKK200X3BvcGRlZihbZGVmX2FyZ10pCisKK10pZG5sIFBLR19XSVRIX01PRFVMRVMKKworZG5s IFBLR19IQVZFX1dJVEhfTU9EVUxFUyhWQVJJQUJMRS1QUkVGSVgsIE1PRFVMRVMsCitkbmwgICBb REVTQ1JJUFRJT05dLCBbREVGQVVMVF0pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RubAorZG5sIENvbnZlbmllbmNlIG1hY3JvIHRvIHRyaWdn ZXIgQU1fQ09ORElUSU9OQUwgYWZ0ZXIgUEtHX1dJVEhfTU9EVUxFUworZG5sIGNoZWNrLl9bVkFS SUFCTEUtUFJFRklYXSBpcyBleHBvcnRlZCBhcyBtYWtlIHZhcmlhYmxlLgorQUNfREVGVU4oW1BL R19IQVZFX1dJVEhfTU9EVUxFU10sCitbCitQS0dfV0lUSF9NT0RVTEVTKFskMV0sWyQyXSwsLFsk M10sWyQ0XSkKKworQU1fQ09ORElUSU9OQUwoW0hBVkVfXVskMV0sCisgICAgICAgICAgICAgICBb dGVzdCAiJEFTX1RSX1NIKFt3aXRoX11tNF90b2xvd2VyKFskMV0pKSIgPSAieWVzIl0pCitdKWRu bCBQS0dfSEFWRV9XSVRIX01PRFVMRVMKKworZG5sIFBLR19IQVZFX0RFRklORV9XSVRIX01PRFVM RVMoVkFSSUFCTEUtUFJFRklYLCBNT0RVTEVTLAorZG5sICAgW0RFU0NSSVBUSU9OXSwgW0RFRkFV TFRdKQorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorZG5sCitkbmwgQ29udmVuaWVuY2UgbWFjcm8gdG8gcnVuIEFNX0NPTkRJVElPTkFM IGFuZCBBQ19ERUZJTkUgYWZ0ZXIKK2RubCBQS0dfV0lUSF9NT0RVTEVTIGNoZWNrLiBIQVZFX1tW QVJJQUJMRS1QUkVGSVhdIGlzIGV4cG9ydGVkIGFzIG1ha2UKK2RubCBhbmQgcHJlcHJvY2Vzc29y IHZhcmlhYmxlLgorQUNfREVGVU4oW1BLR19IQVZFX0RFRklORV9XSVRIX01PRFVMRVNdLAorWwor UEtHX0hBVkVfV0lUSF9NT0RVTEVTKFskMV0sWyQyXSxbJDNdLFskNF0pCisKK0FTX0lGKFt0ZXN0 ICIkQVNfVFJfU0goW3dpdGhfXW00X3RvbG93ZXIoWyQxXSkpIiA9ICJ5ZXMiXSwKKyAgICAgICAg W0FDX0RFRklORShbSEFWRV9dWyQxXSwgMSwgW0VuYWJsZSBdbTRfdG9sb3dlcihbJDFdKVsgc3Vw cG9ydF0pXSkKK10pZG5sIFBLR19IQVZFX0RFRklORV9XSVRIX01PRFVMRVMKKwogIyBDb3B5cmln aHQgKEMpIDIwMDItMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMKICMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KZGlm ZiAtLWdpdCBhL2JpbnV0aWxzL2NvbmZpZ3VyZSBiL2JpbnV0aWxzL2NvbmZpZ3VyZQppbmRleCA3 ODJmZmZhYzZmLi45N2QzMjFhY2IzIDEwMDc1NQotLS0gYS9iaW51dGlscy9jb25maWd1cmUKKysr IGIvYmludXRpbHMvY29uZmlndXJlCkBAIC02ODQsNyArNjg0LDExIEBAIFdBUk5fV1JJVEVfU1RS SU5HUwogTk9fV0VSUk9SCiBXQVJOX0NGTEFHU19GT1JfQlVJTEQKIFdBUk5fQ0ZMQUdTCi1MSUJE RUJVR0lORk9ECitERUJVR0lORk9EX0xJQlMKK0RFQlVHSU5GT0RfQ0ZMQUdTCitQS0dfQ09ORklH X0xJQkRJUgorUEtHX0NPTkZJR19QQVRICitQS0dfQ09ORklHCiBPVE9PTDY0CiBPVE9PTAogTElQ TwpAQCAtODMzLDYgKzgzNywxMSBAQCBMREZMQUdTCiBMSUJTCiBDUFBGTEFHUwogQ1BQCitQS0df Q09ORklHCitQS0dfQ09ORklHX1BBVEgKK1BLR19DT05GSUdfTElCRElSCitERUJVR0lORk9EX0NG TEFHUworREVCVUdJTkZPRF9MSUJTCiBZQUNDCiBZRkxBR1MnCiAKQEAgLTE1MDMsNiArMTUxMiwx NSBAQCBTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKICAgQ1BQRkxBR1Mg ICAgKE9iamVjdGl2ZSkgQy9DKysgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGluY2x1ZGUg ZGlyPiBpZgogICAgICAgICAgICAgICB5b3UgaGF2ZSBoZWFkZXJzIGluIGEgbm9uc3RhbmRhcmQg ZGlyZWN0b3J5IDxpbmNsdWRlIGRpcj4KICAgQ1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKKyAg UEtHX0NPTkZJRyAgcGF0aCB0byBwa2ctY29uZmlnIHV0aWxpdHkKKyAgUEtHX0NPTkZJR19QQVRI CisgICAgICAgICAgICAgIGRpcmVjdG9yaWVzIHRvIGFkZCB0byBwa2ctY29uZmlnJ3Mgc2VhcmNo IHBhdGgKKyAgUEtHX0NPTkZJR19MSUJESVIKKyAgICAgICAgICAgICAgcGF0aCBvdmVycmlkaW5n IHBrZy1jb25maWcncyBidWlsdC1pbiBzZWFyY2ggcGF0aAorICBERUJVR0lORk9EX0NGTEFHUwor ICAgICAgICAgICAgICBDIGNvbXBpbGVyIGZsYWdzIGZvciBERUJVR0lORk9ELCBvdmVycmlkaW5n IHBrZy1jb25maWcKKyAgREVCVUdJTkZPRF9MSUJTCisgICAgICAgICAgICAgIGxpbmtlciBmbGFn cyBmb3IgREVCVUdJTkZPRCwgb3ZlcnJpZGluZyBwa2ctY29uZmlnCiAgIFlBQ0MgICAgICAgIFRo ZSBgWWV0IEFub3RoZXIgQ29tcGlsZXIgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4K ICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gdGhlIGZpcnN0IHByb2dyYW0gZm91bmQgb3V0IG9m OiBgYmlzb24gLXknLCBgYnlhY2MnLAogICAgICAgICAgICAgICBgeWFjYycuCkBAIC0xOTM4LDUy ICsxOTU2LDYgQEAgJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQogCiB9ICMgYWNfZm5fY19jaGVj a19mdW5jCiAKLSMgYWNfZm5fY19jaGVja19kZWNsIExJTkVOTyBTWU1CT0wgVkFSIElOQ0xVREVT Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUZXN0 cyB3aGV0aGVyIFNZTUJPTCBpcyBkZWNsYXJlZCBpbiBJTkNMVURFUywgc2V0dGluZyBjYWNoZSB2 YXJpYWJsZSBWQVIKLSMgYWNjb3JkaW5nbHkuCi1hY19mbl9jX2NoZWNrX2RlY2wgKCkKLXsKLSAg YXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3Rh Y2s9JGFzX2xpbmVub19zdGFjawotICBhc19kZWNsX25hbWU9YGVjaG8gJDJ8c2VkICdzLyAqKC4q Ly8nYAotICBhc19kZWNsX3VzZT1gZWNobyAkMnxzZWQgLWUgJ3MvKC8oKC8nIC1lICdzLykvKSAw Ji8nIC1lICdzLywvKSAwJiAoL2cnYAotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJGFzX2RlY2xfbmFtZSBpcyBkZWNsYXJlZCIgPiY1 Ci0kYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRhc19kZWNsX25hbWUgaXMgZGVjbGFyZWQu Li4gIiA+JjY7IH0KLWlmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotZWxzZQotICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kNAotaW50Ci1tYWluICgpCi17 Ci0jaWZuZGVmICRhc19kZWNsX25hbWUKLSNpZmRlZiBfX2NwbHVzcGx1cwotICAodm9pZCkgJGFz X2RlY2xfdXNlOwotI2Vsc2UKLSAgKHZvaWQpICRhc19kZWNsX25hbWU7Ci0jZW5kaWYKLSNlbmRp ZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUg IiRMSU5FTk8iOyB0aGVuIDoKLSAgZXZhbCAiJDM9eWVzIgotZWxzZQotICBldmFsICIkMz1ubyIK LWZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLWZpCi1ldmFsIGFjX3Jlcz1cJCQzCi0JICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSRhc19lY2hvICIk YWNfcmVzIiA+JjY7IH0KLSAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFj azorOn0gdW5zZXQgYXNfbGluZW5vCi0KLX0gIyBhY19mbl9jX2NoZWNrX2RlY2wKLQogIyBhY19m bl9jX2NvbXB1dGVfaW50IExJTkVOTyBFWFBSIFZBUiBJTkNMVURFUwogIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBUcmllcyB0byBmaW5kIHRoZSBjb21w aWxlLXRpbWUgdmFsdWUgb2YgRVhQUiBpbiBhIHByb2dyYW0gdGhhdCBpbmNsdWRlcwpAQCAtMjIy MCw2ICsyMTkyLDUyIEBAICRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KICAgZXZhbCAkYXNfbGlu ZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCiAKIH0gIyBh Y19mbl9jX2NoZWNrX3R5cGUKKworIyBhY19mbl9jX2NoZWNrX2RlY2wgTElORU5PIFNZTUJPTCBW QVIgSU5DTFVERVMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisjIFRlc3RzIHdoZXRoZXIgU1lNQk9MIGlzIGRlY2xhcmVkIGluIElOQ0xVREVTLCBzZXR0 aW5nIGNhY2hlIHZhcmlhYmxlIFZBUgorIyBhY2NvcmRpbmdseS4KK2FjX2ZuX2NfY2hlY2tfZGVj bCAoKQoreworICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFz X2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisgIGFzX2RlY2xfbmFtZT1gZWNobyAkMnxz ZWQgJ3MvICooLiovLydgCisgIGFzX2RlY2xfdXNlPWBlY2hvICQyfHNlZCAtZSAncy8oLygoLycg LWUgJ3MvKS8pIDAmLycgLWUgJ3MvLC8pIDAmICgvZydgCisgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkYXNfZGVjbF9uYW1lIGlzIGRl Y2xhcmVkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJGFzX2RlY2xfbmFtZSBp cyBkZWNsYXJlZC4uLiAiID4mNjsgfQoraWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6Cisg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyQ0CitpbnQK K21haW4gKCkKK3sKKyNpZm5kZWYgJGFzX2RlY2xfbmFtZQorI2lmZGVmIF9fY3BsdXNwbHVzCisg ICh2b2lkKSAkYXNfZGVjbF91c2U7CisjZWxzZQorICAodm9pZCkgJGFzX2RlY2xfbmFtZTsKKyNl bmRpZgorI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190 cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBldmFsICIkMz15ZXMiCitlbHNlCisgIGV2 YWwgIiQzPW5vIgorZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2V2YWwgYWNfcmVzPVwkJDMKKwkgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQor JGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNf bGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KKworfSAjIGFjX2ZuX2NfY2hlY2tfZGVj bAogY2F0ID5jb25maWcubG9nIDw8X0FDRU9GCiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3Nh Z2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFp ZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KQEAgLTExNTI5LDcgKzEx NTQ3LDcgQEAgZWxzZQogICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxu ZWVkX3VzY29yZT0yCiAgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCiAgIGNhdCA+IGNvbmZ0ZXN0 LiRhY19leHQgPDxfTFRfRU9GCi0jbGluZSAxMTUzMiAiY29uZmlndXJlIgorI2xpbmUgMTE1NTAg ImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogCiAjaWYgSEFWRV9ETEZDTl9ICkBA IC0xMTYzNSw3ICsxMTY1Myw3IEBAIGVsc2UKICAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNj b3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotI2xpbmUgMTE2MzggImNvbmZpZ3VyZSIK KyNsaW5lIDExNjU2ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIAogI2lmIEhB VkVfRExGQ05fSApAQCAtMTIyNDIsNyArMTIyNjAsMTI3IEBAIGZpCiAKIAogCi0jIEVuYWJsZSBk ZWJ1Z2luZm9kCisKKworCisKKworCitpZiB0ZXN0ICJ4JGFjX2N2X2Vudl9QS0dfQ09ORklHX3Nl dCIgIT0gInhzZXQiOyB0aGVuCisJaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgor ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZp ZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1wa2ctY29uZmlnOyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9Q S0dfQ09ORklHKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK K2Vsc2UKKyAgY2FzZSAkUEtHX0NPTkZJRyBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNf Y3ZfcGF0aF9QS0dfQ09ORklHPSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2 ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgYXNfZm5fZXhlY3V0 YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Bh dGhfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0kYXNf c2F2ZV9JRlMKKworICA7OworZXNhYworZmkKK1BLR19DT05GSUc9JGFjX2N2X3BhdGhfUEtHX0NP TkZJRworaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUEtHX0NPTkZJRyIgPiY1CiskYXNfZWNo byAiJFBLR19DT05GSUciID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2Zp CisKKworZmkKK2lmIHRlc3QgLXogIiRhY19jdl9wYXRoX1BLR19DT05GSUciOyB0aGVuCisgIGFj X3B0X1BLR19DT05GSUc9JFBLR19DT05GSUcKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJwa2ctY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3Nl dCBkdW1teSBwa2ctY29uZmlnOyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9hY19wdF9Q S0dfQ09ORklHKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK K2Vsc2UKKyAgY2FzZSAkYWNfcHRfUEtHX0NPTkZJRyBpbgorICBbXFwvXSogfCA/OltcXC9dKikK KyAgYWNfY3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHPSIkYWNfcHRfUEtHX0NPTkZJRyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICopCisgIGFz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgK K2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KyAgaWYgYXNfZm5fZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg dGhlbgorICAgIGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIKKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZp Citkb25lCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKworICA7OworZXNhYworZmkKK2FjX3B0 X1BLR19DT05GSUc9JGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRworaWYgdGVzdCAtbiAiJGFj X3B0X1BLR19DT05GSUciOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfcHRfUEtHX0NPTkZJRyIgPiY1CiskYXNfZWNobyAiJGFjX3B0 X1BLR19DT05GSUciID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisK KyAgaWYgdGVzdCAieCRhY19wdF9QS0dfQ09ORklHIiA9IHg7IHRoZW4KKyAgICBQS0dfQ09ORklH PSIiCisgIGVsc2UKKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGlu Cit5ZXM6KQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQor JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorYWNfdG9vbF93YXJuZWQ9eWVzIDs7Citlc2FjCisg ICAgUEtHX0NPTkZJRz0kYWNfcHRfUEtHX0NPTkZJRworICBmaQorZWxzZQorICBQS0dfQ09ORklH PSIkYWNfY3ZfcGF0aF9QS0dfQ09ORklHIgorZmkKKworZmkKK2lmIHRlc3QgLW4gIiRQS0dfQ09O RklHIjsgdGhlbgorCV9wa2dfbWluX3ZlcnNpb249MC45LjAKKwl7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVy c2lvbiAkX3BrZ19taW5fdmVyc2lvbiIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBwa2ctY29u ZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb24uLi4gIiA+JjY7IH0KKwlp ZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gJF9wa2dfbWluX3ZlcnNp b247IHRoZW4KKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IHllcyIgPiY1CiskYXNfZWNobyAieWVzIiA+JjY7IH0KKwllbHNlCisJCXsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAi bm8iID4mNjsgfQorCQlQS0dfQ09ORklHPSIiCisJZmkKK2ZpCisKKyMgSGFuZGxlIG9wdGlvbmFs IGRlYnVnaW5mb2Qgc3VwcG9ydAogCiAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRlYnVnaW5mb2Qg d2FzIGdpdmVuLgogaWYgdGVzdCAiJHt3aXRoX2RlYnVnaW5mb2Qrc2V0fSIgPSBzZXQ7IHRoZW4g OgpAQCAtMTIyNTYsNzIgKzEyMzk0LDkzIEBAICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dG8gdXNlIGRlYnVnaW5mb2QuLi4gIiA+JjY7IH0KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkd2l0aF9kZWJ1Z2luZm9kIiA+JjUKICRhc19lY2hvICIk d2l0aF9kZWJ1Z2luZm9kIiA+JjY7IH0KIAotaWYgdGVzdCAiJHt3aXRoX2RlYnVnaW5mb2R9IiA9 IG5vOyB0aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogZGVidWdpbmZvZCBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1 bmF2YWlsYWJsZS4iID4mNQotJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogZGVidWdpbmZvZCBz dXBwb3J0IGRpc2FibGVkOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9 Ci1lbHNlCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIGRlYnVnaW5mb2RfYmVnaW4gaW4gLWxkZWJ1Z2luZm9kIiA+JjUKLSRhc19lY2hvX24g ImNoZWNraW5nIGZvciBkZWJ1Z2luZm9kX2JlZ2luIGluIC1sZGVidWdpbmZvZC4uLiAiID4mNjsg fQotaWYgJHthY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1Z2luZm9kX2JlZ2luKzp9IGZhbHNlOyB0 aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLWVsc2UKLSAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUwotTElCUz0iLWxkZWJ1Z2luZm9kICAkTElCUyIKLWNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8K K2lmIHRlc3QgIngkd2l0aF9kZWJ1Z2luZm9kIiAhPSB4bm87IHRoZW4KIAotLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0gICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLSNlbmRpZgotY2hhciBkZWJ1Z2lu Zm9kX2JlZ2luICgpOwotaW50Ci1tYWluICgpCi17Ci1yZXR1cm4gZGVidWdpbmZvZF9iZWdpbiAo KTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotaWYgYWNfZm5fY190cnlfbGluayAiJExJ TkVOTyI7IHRoZW4gOgotICBhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1Z2luZm9kX2JlZ2luPXll cworcGtnX2ZhaWxlZD1ubworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgREVCVUdJTkZPRCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3Ig REVCVUdJTkZPRC4uLiAiID4mNjsgfQorCitpZiB0ZXN0IC1uICIkREVCVUdJTkZPRF9DRkxBR1Mi OyB0aGVuCisgICAgcGtnX2N2X0RFQlVHSU5GT0RfQ0ZMQUdTPSIkREVCVUdJTkZPRF9DRkxBR1Mi CisgZWxpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKyAgICBpZiB0ZXN0IC1uICIkUEtH X0NPTkZJRyIgJiYgXAorICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgXCJsaWJkZWJ1Z2luZm9k ID49IDAuMTc5XCIiOyB9ID4mNQorICAoJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJv cnMgImxpYmRlYnVnaW5mb2QgPj0gMC4xNzkiKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorICBwa2dfY3ZfREVCVUdJTkZPRF9DRkxB R1M9YCRQS0dfQ09ORklHIC0tY2ZsYWdzICJsaWJkZWJ1Z2luZm9kID49IDAuMTc5IiAyPi9kZXYv bnVsbGAKKwkJICAgICAgdGVzdCAieCQ/IiAhPSAieDAiICYmIHBrZ19mYWlsZWQ9eWVzCiBlbHNl Ci0gIGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVnaW49bm8KKyAgcGtnX2ZhaWxl ZD15ZXMKIGZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwK LSAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotTElCUz0kYWNfY2hlY2tf bGliX3NhdmVfTElCUworIGVsc2UKKyAgICBwa2dfZmFpbGVkPXVudHJpZWQKK2ZpCitpZiB0ZXN0 IC1uICIkREVCVUdJTkZPRF9MSUJTIjsgdGhlbgorICAgIHBrZ19jdl9ERUJVR0lORk9EX0xJQlM9 IiRERUJVR0lORk9EX0xJQlMiCisgZWxpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKyAg ICBpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYgXAorICAgIHsgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJv cnMgXCJsaWJkZWJ1Z2luZm9kID49IDAuMTc5XCIiOyB9ID4mNQorICAoJFBLR19DT05GSUcgLS1l eGlzdHMgLS1wcmludC1lcnJvcnMgImxpYmRlYnVnaW5mb2QgPj0gMC4xNzkiKSAyPiY1CisgIGFj X3N0YXR1cz0kPworICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorICBwa2df Y3ZfREVCVUdJTkZPRF9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgImxpYmRlYnVnaW5mb2QgPj0g MC4xNzkiIDI+L2Rldi9udWxsYAorCQkgICAgICB0ZXN0ICJ4JD8iICE9ICJ4MCIgJiYgcGtnX2Zh aWxlZD15ZXMKK2Vsc2UKKyAgcGtnX2ZhaWxlZD15ZXMKIGZpCi17ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVn aW5mb2RfYmVnaW4iID4mNQotJGFzX2VjaG8gIiRhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1Z2lu Zm9kX2JlZ2luIiA+JjY7IH0KLWlmIHRlc3QgIngkYWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdp bmZvZF9iZWdpbiIgPSB4eWVzOyB0aGVuIDoKLSAgaGF2ZV9kZWJ1Z2luZm9kX2xpYj15ZXMKKyBl bHNlCisgICAgcGtnX2ZhaWxlZD11bnRyaWVkCiBmaQogCi0gIGFjX2ZuX2NfY2hlY2tfZGVjbCAi JExJTkVOTyIgImRlYnVnaW5mb2RfYmVnaW4iICJhY19jdl9oYXZlX2RlY2xfZGVidWdpbmZvZF9i ZWdpbiIgIiNpbmNsdWRlIDxlbGZ1dGlscy9kZWJ1Z2luZm9kLmg+Ci0iCi1pZiB0ZXN0ICJ4JGFj X2N2X2hhdmVfZGVjbF9kZWJ1Z2luZm9kX2JlZ2luIiA9IHh5ZXM7IHRoZW4gOgotICBoYXZlX2Rl YnVnaW5mb2RfaD15ZXMKLWZpCiAKLSAgaWYgdGVzdCAieCRoYXZlX2RlYnVnaW5mb2RfbGliIiA9 ICJ4eWVzIiAtYSBcCi0gICAgICAgICAgIngkaGF2ZV9kZWJ1Z2luZm9kX2giID0gInh5ZXMiOyB0 aGVuCiAKLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfTElCREVCVUdJTkZPRCAxIiA+PmNvbmZkZWZz LmgKK2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7IHRoZW4KKwl7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7 IH0KIAotICAgIExJQkRFQlVHSU5GT0Q9Ii1sZGVidWdpbmZvZCIKK2lmICRQS0dfQ09ORklHIC0t YXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAwLjIwOyB0aGVuCisgICAgICAgIF9wa2dfc2hvcnRf ZXJyb3JzX3N1cHBvcnRlZD15ZXMKK2Vsc2UKKyAgICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3Vw cG9ydGVkPW5vCitmaQorICAgICAgICBpZiB0ZXN0ICRfcGtnX3Nob3J0X2Vycm9yc19zdXBwb3J0 ZWQgPSB5ZXM7IHRoZW4KKwkgICAgICAgIERFQlVHSU5GT0RfUEtHX0VSUk9SUz1gJFBLR19DT05G SUcgLS1zaG9ydC1lcnJvcnMgLS1wcmludC1lcnJvcnMgLS1jZmxhZ3MgLS1saWJzICJsaWJkZWJ1 Z2luZm9kID49IDAuMTc5IiAyPiYxYAorICAgICAgICBlbHNlCisJICAgICAgICBERUJVR0lORk9E X1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tcHJpbnQtZXJyb3JzIC0tY2ZsYWdzIC0tbGlicyAi bGliZGVidWdpbmZvZCA+PSAwLjE3OSIgMj4mMWAKKyAgICAgICAgZmkKKwkjIFB1dCB0aGUgbmFz dHkgZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKKwllY2hvICIk REVCVUdJTkZPRF9QS0dfRVJST1JTIiA+JjUKIAotICBlbHNlCisJaWYgdGVzdCAieCR3aXRoX2Rl YnVnaW5mb2QiID0geHllczsgdGhlbgorICAgICAgIGFzX2ZuX2Vycm9yICQ/ICJcIi0td2l0aC1k ZWJ1Z2luZm9kIHdhcyBnaXZlbiwgYnV0IGxpYmRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVz YWJsZS5cIiIgIiRMSU5FTk8iIDUKKyAgICAgZWxzZQorICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogbGliZGVidWdpbmZvZCBpcyBtaXNzaW5n IG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mNQorJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogbGliZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNh YmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9CisgICAgIGZpCitl bGlmIHRlc3QgJHBrZ19mYWlsZWQgPSB1bnRyaWVkOyB0aGVuCisJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hvICJubyIgPiY2 OyB9CisJaWYgdGVzdCAieCR3aXRoX2RlYnVnaW5mb2QiID0geHllczsgdGhlbgorICAgICAgIGFz X2ZuX2Vycm9yICQ/ICJcIi0td2l0aC1kZWJ1Z2luZm9kIHdhcyBnaXZlbiwgYnV0IGxpYmRlYnVn aW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJsZS5cIiIgIiRMSU5FTk8iIDUKKyAgICAgZWxzZQor ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzog bGliZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBi ZSB1bmF2YWlsYWJsZS4iID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogbGliZGVidWdp bmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWls YWJsZS4iID4mMjt9CisgICAgIGZpCitlbHNlCisJREVCVUdJTkZPRF9DRkxBR1M9JHBrZ19jdl9E RUJVR0lORk9EX0NGTEFHUworCURFQlVHSU5GT0RfTElCUz0kcGtnX2N2X0RFQlVHSU5GT0RfTElC UworICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogeWVzIiA+JjUKKyRhc19lY2hvICJ5ZXMiID4mNjsgfQogCi0gICAgaWYgdGVzdCAiJHdpdGhf ZGVidWdpbmZvZCIgPSB5ZXM7IHRoZW4KLSAgICAgIGFzX2ZuX2Vycm9yICQ/ICJkZWJ1Z2luZm9k IGlzIG1pc3Npbmcgb3IgdW51c2FibGUiICIkTElORU5PIiA1Ci0gICAgZWxzZQotICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBkZWJ1Z2luZm9k IGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxl LiIgPiY1Ci0kYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkZWJ1Z2luZm9kIGlzIG1pc3Npbmcg b3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KLSAg ICBmaQotICBmaQorJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJERUJVR0lORk9EIDEiID4+Y29u ZmRlZnMuaAorCitmaQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJl cyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRl YnVnaW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFi bGUuIiA+JjI7fQogZmkKIAogCmRpZmYgLS1naXQgYS9iaW51dGlscy9kb2MvTWFrZWZpbGUuaW4g Yi9iaW51dGlscy9kb2MvTWFrZWZpbGUuaW4KaW5kZXggYjAwMjYwYmMyNS4uMTAyNWQ3YmRlZSAx MDA2NDQKLS0tIGEvYmludXRpbHMvZG9jL01ha2VmaWxlLmluCisrKyBiL2JpbnV0aWxzL2RvYy9N YWtlZmlsZS5pbgpAQCAtMjU1LDYgKzI1NSw4IEBAIENQUCA9IEBDUFBACiBDUFBGTEFHUyA9IEBD UFBGTEFHU0AKIENZR1BBVEhfVyA9IEBDWUdQQVRIX1dACiBEQVRBRElSTkFNRSA9IEBEQVRBRElS TkFNRUAKK0RFQlVHSU5GT0RfQ0ZMQUdTID0gQERFQlVHSU5GT0RfQ0ZMQUdTQAorREVCVUdJTkZP RF9MSUJTID0gQERFQlVHSU5GT0RfTElCU0AKIERFRlMgPSBAREVGU0AKIERFTUFOR0xFUl9OQU1F ID0gQERFTUFOR0xFUl9OQU1FQAogREVQRElSID0gQERFUERJUkAKQEAgLTI4Niw3ICsyODgsNiBA QCBMREZMQUdTID0gQExERkxBR1NACiBMRVggPSBATEVYQAogTEVYTElCID0gQExFWExJQkAKIExF WF9PVVRQVVRfUk9PVCA9IEBMRVhfT1VUUFVUX1JPT1RACi1MSUJERUJVR0lORk9EID0gQExJQkRF QlVHSU5GT0RACiBMSUJJQ09OViA9IEBMSUJJQ09OVkAKIExJQklOVEwgPSBATElCSU5UTEAKIExJ QklOVExfREVQID0gQExJQklOVExfREVQQApAQCAtMzIwLDYgKzMyMSw5IEBAIFBBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACiBQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKIFBB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACiBQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BLR19DT05GSUdfTElCRElS ID0gQFBLR19DT05GSUdfTElCRElSQAorUEtHX0NPTkZJR19QQVRIID0gQFBLR19DT05GSUdfUEFU SEAKIFBPU1VCID0gQFBPU1VCQAogUkFOTElCID0gQFJBTkxJQkAKIFNFRCA9IEBTRURACmRpZmYg LS1naXQgYS9jb25maWcvZGVidWdpbmZvZC5tNCBiL2NvbmZpZy9kZWJ1Z2luZm9kLm00CmluZGV4 IDk5NzlhYmU4OWQuLjJjMWJmYmRiNTQgMTAwNjQ0Ci0tLSBhL2NvbmZpZy9kZWJ1Z2luZm9kLm00 CisrKyBiL2NvbmZpZy9kZWJ1Z2luZm9kLm00CkBAIC0xLDQgKzEsNCBAQAotZG5sIENvcHlyaWdo dCAoQykgMTk5Ny0yMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIENvcHly aWdodCAoQykgMTk5Ny0yMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogZG5sIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVQogZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0 aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAogZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5 IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCkBAIC03LDMyICs3LDIyIEBAIGRu bCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFt LgogCiBBQ19ERUZVTihbQUNfREVCVUdJTkZPRF0sCiBbCi0jIEVuYWJsZSBkZWJ1Z2luZm9kCisj IEhhbmRsZSBvcHRpb25hbCBkZWJ1Z2luZm9kIHN1cHBvcnQKIEFDX0FSR19XSVRIKFtkZWJ1Z2lu Zm9kXSwKLSAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1kZWJ1Z2luZm9kXSwKLSAgICAg ICAgICAgICAgICAgICAgICAgW0VuYWJsZSBkZWJ1Z2luZm8gbG9va3VwcyB3aXRoIGRlYnVnaW5m b2QgKGF1dG8veWVzL25vKV0pLAotICAgICAgICBbXSwgW3dpdGhfZGVidWdpbmZvZD1hdXRvXSkK KyAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1kZWJ1Z2luZm9kXSwgW0VuYWJsZSBkZWJ1Z2luZm8g bG9va3VwcyB3aXRoIGRlYnVnaW5mb2QgKGF1dG8veWVzL25vKV0pLAorICBbXSwgW3dpdGhfZGVi dWdpbmZvZD1hdXRvXSkKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byB1c2UgZGVidWdpbmZv ZF0pCiBBQ19NU0dfUkVTVUxUKFskd2l0aF9kZWJ1Z2luZm9kXSkKIAotaWYgdGVzdCAiJHt3aXRo X2RlYnVnaW5mb2R9IiA9IG5vOyB0aGVuCi0gIEFDX01TR19XQVJOKFtkZWJ1Z2luZm9kIHN1cHBv cnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLl0pCitpZiB0ZXN0 ICJ4JHdpdGhfZGVidWdpbmZvZCIgIT0geG5vOyB0aGVuCisgIFBLR19DSEVDS19NT0RVTEVTKFtE RUJVR0lORk9EXSwgW2xpYmRlYnVnaW5mb2QgPj0gMC4xNzldLAorICAgIFtBQ19ERUZJTkUoW0hB VkVfTElCREVCVUdJTkZPRF0sIFsxXSwgW0RlZmluZSB0byAxIGlmIGRlYnVnaW5mb2QgaXMgZW5h YmxlZC5dKV0sCisgICAgW2lmIHRlc3QgIngkd2l0aF9kZWJ1Z2luZm9kIiA9IHh5ZXM7IHRoZW4K KyAgICAgICBBQ19NU0dfRVJST1IoWyItLXdpdGgtZGVidWdpbmZvZCB3YXMgZ2l2ZW4sIGJ1dCBs aWJkZWJ1Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2FibGUuIl0pCisgICAgIGVsc2UKKyAgICAg ICBBQ19NU0dfV0FSTihbbGliZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21l IGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS5dKQorICAgICBmaV0pCiBlbHNlCi0gIEFDX0NI RUNLX0xJQihbZGVidWdpbmZvZF0sIFtkZWJ1Z2luZm9kX2JlZ2luXSwgW2hhdmVfZGVidWdpbmZv ZF9saWI9eWVzXSkKLSAgQUNfQ0hFQ0tfREVDTChbZGVidWdpbmZvZF9iZWdpbl0sIFtoYXZlX2Rl YnVnaW5mb2RfaD15ZXNdLCBbXSwKLSAgICAgICAgICAgICAgICBbI2luY2x1ZGUgPGVsZnV0aWxz L2RlYnVnaW5mb2QuaD5dKQotICBpZiB0ZXN0ICJ4JGhhdmVfZGVidWdpbmZvZF9saWIiID0gInh5 ZXMiIC1hIFwKLSAgICAgICAgICAieCRoYXZlX2RlYnVnaW5mb2RfaCIgPSAieHllcyI7IHRoZW4K LSAgICBBQ19ERUZJTkUoW0hBVkVfTElCREVCVUdJTkZPRF0sIFsxXSwKLSAgICAgICAgICAgICAg W0RlZmluZSB0byAxIGlmIGRlYnVnaW5mb2QgaXMgZW5hYmxlZC5dKQotICAgIEFDX1NVQlNUKFtM SUJERUJVR0lORk9EXSwgWyItbGRlYnVnaW5mb2QiXSkKLSAgZWxzZQotICAgIEFDX1NVQlNUKFtM SUJERUJVR0lORk9EXSwgW10pCi0gICAgaWYgdGVzdCAiJHdpdGhfZGVidWdpbmZvZCIgPSB5ZXM7 IHRoZW4KLSAgICAgIEFDX01TR19FUlJPUihbZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNh YmxlXSkKLSAgICBlbHNlCi0gICAgICBBQ19NU0dfV0FSTihbZGVidWdpbmZvZCBpcyBtaXNzaW5n IG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS5dKQotICAgIGZp Ci0gIGZpCisgIEFDX01TR19XQVJOKFtkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUg ZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLl0pCiBmaQogXSkKZGlmZiAtLWdpdCBhL2NvbmZp Z3VyZSBiL2NvbmZpZ3VyZQppbmRleCA1NGQwMzM5YWI5Li42ODc3OWZlYjQyIDEwMDc1NQotLS0g YS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC02OTAsNyArNjkwLDYgQEAgZXh0cmFfbXBj X2dtcF9jb25maWd1cmVfZmxhZ3MKIGV4dHJhX21wZnJfY29uZmlndXJlX2ZsYWdzCiBnbXBpbmMK IGdtcGxpYnMKLUxJQkRFQlVHSU5GT0QKIGRvX2NvbXBhcmUKIEdOQVRNQUtFCiBHTkFUQklORApA QCAtNzkxLDcgKzc5MCw2IEBAIGVuYWJsZV9saWJzc3AKIGVuYWJsZV9saWJzdGRjeHgKIGVuYWJs ZV9saWJvZmZsb2FkbWljCiBlbmFibGVfYm9vdHN0cmFwCi13aXRoX2RlYnVnaW5mb2QKIHdpdGhf bXBjCiB3aXRoX21wY19pbmNsdWRlCiB3aXRoX21wY19saWIKQEAgLTE1NTUsOCArMTU1Myw2IEBA IE9wdGlvbmFsIFBhY2thZ2VzOgogICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNl IFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCiAgIC0td2l0aC1idWlsZC1saWJz dWJkaXI9RElSICBEaXJlY3Rvcnkgd2hlcmUgdG8gZmluZCBsaWJyYXJpZXMgZm9yIGJ1aWxkIHN5 c3RlbQogICAtLXdpdGgtc3lzdGVtLXpsaWIgICAgICB1c2UgaW5zdGFsbGVkIGxpYnoKLSAgLS13 aXRoLWRlYnVnaW5mb2QgICAgICAgRW5hYmxlIGRlYnVnaW5mbyBsb29rdXBzIHdpdGggZGVidWdp bmZvZAotICAgICAgICAgICAgICAgICAgICAgICAgICAoYXV0by95ZXMvbm8pCiAgIC0td2l0aC1t cGM9UEFUSCAgICAgICAgIHNwZWNpZnkgcHJlZml4IGRpcmVjdG9yeSBmb3IgaW5zdGFsbGVkIE1Q QyBwYWNrYWdlLgogICAgICAgICAgICAgICAgICAgICAgICAgICBFcXVpdmFsZW50IHRvIC0td2l0 aC1tcGMtaW5jbHVkZT1QQVRIL2luY2x1ZGUgcGx1cwogICAgICAgICAgICAgICAgICAgICAgICAg ICAtLXdpdGgtbXBjLWxpYj1QQVRIL2xpYgpAQCAtMTkyNSw1MiArMTkyMSw2IEBAIGZpCiAgIGFz X2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAogCiB9ICMgYWNfZm5fY190cnlfbGluawotCi0jIGFj X2ZuX2NfY2hlY2tfZGVjbCBMSU5FTk8gU1lNQk9MIFZBUiBJTkNMVURFUwotIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVGVzdHMgd2hldGhlciBTWU1C T0wgaXMgZGVjbGFyZWQgaW4gSU5DTFVERVMsIHNldHRpbmcgY2FjaGUgdmFyaWFibGUgVkFSCi0j IGFjY29yZGluZ2x5LgotYWNfZm5fY19jaGVja19kZWNsICgpCi17Ci0gIGFzX2xpbmVubz0ke2Fz X2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9f c3RhY2sKLSAgYXNfZGVjbF9uYW1lPWBlY2hvICQyfHNlZCAncy8gKiguKi8vJ2AKLSAgYXNfZGVj bF91c2U9YGVjaG8gJDJ8c2VkIC1lICdzLygvKCgvJyAtZSAncy8pLykgMCYvJyAtZSAncy8sLykg MCYgKC9nJ2AKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyB3aGV0aGVyICRhc19kZWNsX25hbWUgaXMgZGVjbGFyZWQiID4mNQotJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciAkYXNfZGVjbF9uYW1lIGlzIGRlY2xhcmVkLi4uICIgPiY2OyB9Ci1p ZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLWVsc2UKLSAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAot LyogZW5kIGNvbmZkZWZzLmguICAqLwotJDQKLWludAotbWFpbiAoKQotewotI2lmbmRlZiAkYXNf ZGVjbF9uYW1lCi0jaWZkZWYgX19jcGx1c3BsdXMKLSAgKHZvaWQpICRhc19kZWNsX3VzZTsKLSNl bHNlCi0gICh2b2lkKSAkYXNfZGVjbF9uYW1lOwotI2VuZGlmCi0jZW5kaWYKLQotICA7Ci0gIHJl dHVybiAwOwotfQotX0FDRU9GCi1pZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6Ci0gIGV2YWwgIiQzPXllcyIKLWVsc2UKLSAgZXZhbCAiJDM9bm8iCi1maQotcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQot ZXZhbCBhY19yZXM9XCQkMwotCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0kYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9 Ci0gIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFz X2xpbmVubwotCi19ICMgYWNfZm5fY19jaGVja19kZWNsCiBjYXQgPmNvbmZpZy5sb2cgPDxfQUNF T0YKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJz IHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUg bWFrZXMgYSBtaXN0YWtlLgpAQCAtNTUwNSw5MiArNTQ1NSw2IEBAIGdtcGxpYnM9Ii1sbXBjIC1s bXBmciAtbGdtcCIKIGdtcGluYz0KIGhhdmVfZ21wPW5vCiAKLSMgQ2hlY2sgZm9yIGRlYnVnaW5m b2QKLQotCi0jIEVuYWJsZSBkZWJ1Z2luZm9kCi0KLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZGVi dWdpbmZvZCB3YXMgZ2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfZGVidWdpbmZvZCtzZXR9IiA9IHNl dDsgdGhlbiA6Ci0gIHdpdGh2YWw9JHdpdGhfZGVidWdpbmZvZDsKLWVsc2UKLSAgd2l0aF9kZWJ1 Z2luZm9kPWF1dG8KLWZpCi0KLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgd2hldGhlciB0byB1c2UgZGVidWdpbmZvZCIgPiY1Ci0kYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kLi4uICIgPiY2OyB9Ci17ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfZGVidWdpbmZvZCIg PiY1Ci0kYXNfZWNobyAiJHdpdGhfZGVidWdpbmZvZCIgPiY2OyB9Ci0KLWlmIHRlc3QgIiR7d2l0 aF9kZWJ1Z2luZm9kfSIgPSBubzsgdGhlbgotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBm ZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKLSRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IGRlYnVnaW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5h dmFpbGFibGUuIiA+JjI7fQotZWxzZQotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBkZWJ1Z2luZm9kX2JlZ2luIGluIC1sZGVidWdpbmZvZCIg PiY1Ci0kYXNfZWNob19uICJjaGVja2luZyBmb3IgZGVidWdpbmZvZF9iZWdpbiBpbiAtbGRlYnVn aW5mb2QuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9i ZWdpbis6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNl Ci0gIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLUxJQlM9Ii1sZGVidWdpbmZvZCAgJExJ QlMiCi1jYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQg Y29uZmRlZnMuaC4gICovCi0KLS8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgotICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotI2lmZGVmIF9fY3BsdXNwbHVzCi1l eHRlcm4gIkMiCi0jZW5kaWYKLWNoYXIgZGVidWdpbmZvZF9iZWdpbiAoKTsKLWludAotbWFpbiAo KQotewotcmV0dXJuIGRlYnVnaW5mb2RfYmVnaW4gKCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1f QUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSAgYWNfY3ZfbGli X2RlYnVnaW5mb2RfZGVidWdpbmZvZF9iZWdpbj15ZXMKLWVsc2UKLSAgYWNfY3ZfbGliX2RlYnVn aW5mb2RfZGVidWdpbmZvZF9iZWdpbj1ubwotZmkKLXJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgXAotICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci1MSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi1maQoteyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1 Z2luZm9kX2JlZ2luIiA+JjUKLSRhc19lY2hvICIkYWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdp bmZvZF9iZWdpbiIgPiY2OyB9Ci1pZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVn aW5mb2RfYmVnaW4iID0geHllczsgdGhlbiA6Ci0gIGhhdmVfZGVidWdpbmZvZF9saWI9eWVzCi1m aQotCi0gIGFjX2ZuX2NfY2hlY2tfZGVjbCAiJExJTkVOTyIgImRlYnVnaW5mb2RfYmVnaW4iICJh Y19jdl9oYXZlX2RlY2xfZGVidWdpbmZvZF9iZWdpbiIgIiNpbmNsdWRlIDxlbGZ1dGlscy9kZWJ1 Z2luZm9kLmg+Ci0iCi1pZiB0ZXN0ICJ4JGFjX2N2X2hhdmVfZGVjbF9kZWJ1Z2luZm9kX2JlZ2lu IiA9IHh5ZXM7IHRoZW4gOgotICBoYXZlX2RlYnVnaW5mb2RfaD15ZXMKLWZpCi0KLSAgaWYgdGVz dCAieCRoYXZlX2RlYnVnaW5mb2RfbGliIiA9ICJ4eWVzIiAtYSBcCi0gICAgICAgICAgIngkaGF2 ZV9kZWJ1Z2luZm9kX2giID0gInh5ZXMiOyB0aGVuCi0KLSRhc19lY2hvICIjZGVmaW5lIEhBVkVf TElCREVCVUdJTkZPRCAxIiA+PmNvbmZkZWZzLmgKLQotICAgIExJQkRFQlVHSU5GT0Q9Ii1sZGVi dWdpbmZvZCIKLQotICBlbHNlCi0KLSAgICBpZiB0ZXN0ICIkd2l0aF9kZWJ1Z2luZm9kIiA9IHll czsgdGhlbgotICAgICAgYXNfZm5fZXJyb3IgJD8gImRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1 bnVzYWJsZSIgIiRMSU5FTk8iIDUKLSAgICBlbHNlCi0gICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1 bnVzYWJsZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKLSRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IGRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJsZTsgc29t ZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7fQotICAgIGZpCi0gIGZpCi1maQot Ci0KICMgU3BlY2lmeSBhIGxvY2F0aW9uIGZvciBtcGMKICMgY2hlY2sgZm9yIHRoaXMgZmlyc3Qg c28gaXQgZW5kcyB1cCBvbiB0aGUgbGluayBsaW5lIGJlZm9yZSBtcGZyLgogCkBAIC01NzQ1LDcg KzU2MDksOCBAQCBpZiB0ZXN0IC1kICR7c3JjZGlyfS9nY2MgJiYgdGVzdCAieCRoYXZlX2dtcCIg PSB4bm87IHRoZW4KICAgIyBDaGVjayBmb3IgdGhlIHJlY29tbWVuZGVkIGFuZCByZXF1aXJlZCB2 ZXJzaW9ucyBvZiBHTVAuCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgZ21wLmgiID4mNQogJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgZ21wLmguLi4gIiA+JjY7 IH0KLSAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorCitjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiAvKiBlbmQgY29uZmRlZnMu aC4gICovCiAjaW5jbHVkZSAiZ21wLmgiCiBpbnQKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBi L2NvbmZpZ3VyZS5hYwppbmRleCBhOTEwYzRmZDZiLi40OTc5MDg3N2U4IDEwMDY0NAotLS0gYS9j b25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0xMzgzLDkgKzEzODMsNiBAQCBnbXBs aWJzPSItbG1wYyAtbG1wZnIgLWxnbXAiCiBnbXBpbmM9CiBoYXZlX2dtcD1ubwogCi0jIENoZWNr IGZvciBkZWJ1Z2luZm9kCi1BQ19ERUJVR0lORk9ECi0KICMgU3BlY2lmeSBhIGxvY2F0aW9uIGZv ciBtcGMKICMgY2hlY2sgZm9yIHRoaXMgZmlyc3Qgc28gaXQgZW5kcyB1cCBvbiB0aGUgbGluayBs aW5lIGJlZm9yZSBtcGZyLgogQUNfQVJHX1dJVEgobXBjLApkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5n ZUxvZyBiL2dkYi9DaGFuZ2VMb2cKaW5kZXggZWU0ZjNhNzRjMC4uMjI1NTE4OTE5YyAxMDA2NDQK LS0tIGEvZ2RiL0NoYW5nZUxvZworKysgYi9nZGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAgQEAK K0NoYW5nZUxvZy9nZGI6CisyMDIwLTA1LTAxICBBYXJvbiBNZXJleSAgPGFtZXJleUByZWRoYXQu Y29tPgorCisJKiBNYWtlZmlsZS5pbjogUmVwbGFjZSBMSUJERUJVR0lORk9EIHdpdGggREVCVUdJ TkZPRF9MSUJTLgorCSogYWNsb2NhbC5tNDogUmVidWlsZC4KKwkqIGNvbmZpZ3VyZTogUmVidWls ZC4KKwogMjAyMC0wNS0wMSAgUGhpbGlwcGUgV2Fyb3F1aWVycyAgPHBoaWxpcHBlLndhcm9xdWll cnNAc2t5bmV0LmJlPgogCSogZ2RiLWdkYi5nZGItaW46IFJlbW92ZSBicmVha3BvaW50IG9uIGRp c2FwcGVhcmVkIGZ1bmN0aW9uCiAJaW5mb19jb21tYW5kLgpkaWZmIC0tZ2l0IGEvZ2RiL01ha2Vm aWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4IGUzY2U2YTI4NWYuLjc1MTA4OTEwYzEgMTAw NjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysgYi9nZGIvTWFrZWZpbGUuaW4KQEAgLTYyMSw3 ICs2MjEsNyBAQCBDTElCUyA9ICQoU0lNKSAkKFJFQURMSU5FKSAkKE9QQ09ERVMpICQoQkZEKSAk KExJQkNURikgJChaTElCKSBcCiAJJChMSUJFWFBBVCkgJChMSUJMWk1BKSAkKExJQkJBQkVMVFJB Q0UpICQoTElCSVBUKSBcCiAJJChXSU4zMkxJQlMpICQoTElCR05VKSAkKExJQklDT05WKSBcCiAJ JChMSUJNUEZSKSAkKFNSQ0hJR0hfTElCUykgJChMSUJYWEhBU0gpICQoUFRIUkVBRF9MSUJTKSBc Ci0JQExJQkRFQlVHSU5GT0RACisJQERFQlVHSU5GT0RfTElCU0AKIENERVBTID0gJChOQVRfQ0RF UFMpICQoU0lNKSAkKEJGRCkgJChSRUFETElORV9ERVBTKSAkKExJQkNURikgXAogCSQoT1BDT0RF UykgJChJTlRMX0RFUFMpICQoTElCSUJFUlRZKSAkKENPTkZJR19ERVBTKSAkKExJQkdOVSkgXAog CSQoTElCU1VQUE9SVCkKZGlmZiAtLWdpdCBhL2dkYi9hY2xvY2FsLm00IGIvZ2RiL2FjbG9jYWwu bTQKaW5kZXggMTEwYjQxNmU2MS4uZWE4ODE2ZWUyMSAxMDA2NDQKLS0tIGEvZ2RiL2FjbG9jYWwu bTQKKysrIGIvZ2RiL2FjbG9jYWwubTQKQEAgLTEyLDYgKzEyLDM1MCBAQAogIyBQQVJUSUNVTEFS IFBVUlBPU0UuCiAKIG00X2lmbmRlZihbQUNfQ09ORklHX01BQ1JPX0RJUlNdLCBbbTRfZGVmdW4o W19BTV9DT05GSUdfTUFDUk9fRElSU10sIFtdKW00X2RlZnVuKFtBQ19DT05GSUdfTUFDUk9fRElS U10sIFtfQU1fQ09ORklHX01BQ1JPX0RJUlMoJEApXSldKQorIyBwa2cubTQgLSBNYWNyb3MgdG8g bG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1jb25maWcuICAgLSotIEF1dG9jb25mIC0qLQorIyBzZXJp YWwgMTEgKHBrZy1jb25maWctMC4yOS4xKQorCitkbmwgQ29weXJpZ2h0IMKpIDIwMDQgU2NvdHQg SmFtZXMgUmVtbmFudCA8c2NvdHRAbmV0c3BsaXQuY29tPi4KK2RubCBDb3B5cmlnaHQgwqkgMjAx Mi0yMDE1IERhbiBOaWNob2xzb24gPGRibi5saXN0c0BnbWFpbC5jb20+CitkbmwKK2RubCBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorZG5sIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CitkbmwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKK2RubCAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorZG5sCitkbmwgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorZG5sIFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKK2RubCBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0 aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorZG5s CitkbmwgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKK2RubCBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorZG5sIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ bGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorZG5sIDAyMTExLTEzMDcsIFVTQS4KK2RubAor ZG5sIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLCBpZiB5b3UKK2RubCBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3Jh bSB0aGF0IGNvbnRhaW5zIGEKK2RubCBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkg QXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1 dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQKK2RubCBwcm9ncmFt LgorCitkbmwgUEtHX1BSRVJFUShNSU4tVkVSU0lPTikKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorZG5sIFNpbmNlOiAwLjI5CitkbmwKK2RubCBWZXJpZnkgdGhhdCB0aGUgdmVyc2lvbiBv ZiB0aGUgcGtnLWNvbmZpZyBtYWNyb3MgYXJlIGF0IGxlYXN0CitkbmwgTUlOLVZFUlNJT04uIFVu bGlrZSBQS0dfUFJPR19QS0dfQ09ORklHLCB3aGljaCBjaGVja3MgdGhlIHVzZXIncworZG5sIGlu c3RhbGxlZCB2ZXJzaW9uIG9mIHBrZy1jb25maWcsIHRoaXMgY2hlY2tzIHRoZSBkZXZlbG9wZXIn cyB2ZXJzaW9uCitkbmwgb2YgcGtnLm00IHdoZW4gZ2VuZXJhdGluZyBjb25maWd1cmUuCitkbmwK K2RubCBUbyBlbnN1cmUgdGhhdCB0aGlzIG1hY3JvIGlzIGRlZmluZWQsIGFsc28gYWRkOgorZG5s IG00X2lmbmRlZihbUEtHX1BSRVJFUV0sCitkbmwgICAgIFttNF9mYXRhbChbbXVzdCBpbnN0YWxs IHBrZy1jb25maWcgMC4yOSBvciBsYXRlciBiZWZvcmUgcnVubmluZyBhdXRvY29uZi9hdXRvZ2Vu XSldKQorZG5sCitkbmwgU2VlIHRoZSAiU2luY2UiIGNvbW1lbnQgZm9yIGVhY2ggbWFjcm8geW91 IHVzZSB0byBzZWUgd2hhdCB2ZXJzaW9uCitkbmwgb2YgdGhlIG1hY3JvcyB5b3UgcmVxdWlyZS4K K200X2RlZnVuKFtQS0dfUFJFUkVRXSwKK1ttNF9kZWZpbmUoW1BLR19NQUNST1NfVkVSU0lPTl0s IFswLjI5LjFdKQorbTRfaWYobTRfdmVyc2lvbl9jb21wYXJlKFBLR19NQUNST1NfVkVSU0lPTiwg WyQxXSksIC0xLAorICAgIFttNF9mYXRhbChbcGtnLm00IHZlcnNpb24gJDEgb3IgaGlnaGVyIGlz IHJlcXVpcmVkIGJ1dCBdUEtHX01BQ1JPU19WRVJTSU9OWyBmb3VuZF0pXSkKK10pZG5sIFBLR19Q UkVSRVEKKworZG5sIFBLR19QUk9HX1BLR19DT05GSUcoW01JTi1WRVJTSU9OXSkKK2RubCAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgU2luY2U6IDAuMTYKK2RubAorZG5s IFNlYXJjaCBmb3IgdGhlIHBrZy1jb25maWcgdG9vbCBhbmQgc2V0IHRoZSBQS0dfQ09ORklHIHZh cmlhYmxlIHRvCitkbmwgZmlyc3QgZm91bmQgaW4gdGhlIHBhdGguIENoZWNrcyB0aGF0IHRoZSB2 ZXJzaW9uIG9mIHBrZy1jb25maWcgZm91bmQKK2RubCBpcyBhdCBsZWFzdCBNSU4tVkVSU0lPTi4g SWYgTUlOLVZFUlNJT04gaXMgbm90IHNwZWNpZmllZCwgMC45LjAgaXMKK2RubCB1c2VkIHNpbmNl IHRoYXQncyB0aGUgZmlyc3QgdmVyc2lvbiB3aGVyZSBtb3N0IGN1cnJlbnQgZmVhdHVyZXMgb2YK K2RubCBwa2ctY29uZmlnIGV4aXN0ZWQuCitBQ19ERUZVTihbUEtHX1BST0dfUEtHX0NPTkZJR10s CitbbTRfcGF0dGVybl9mb3JiaWQoW15fP1BLR19bQS1aX10rJF0pCittNF9wYXR0ZXJuX2FsbG93 KFteUEtHX0NPTkZJRyhfKFBBVEh8TElCRElSfFNZU1JPT1RfRElSfEFMTE9XX1NZU1RFTV8oQ0ZM QUdTfExJQlMpKSk/JF0pCittNF9wYXR0ZXJuX2FsbG93KFteUEtHX0NPTkZJR18oRElTQUJMRV9V TklOU1RBTExFRHxUT1BfQlVJTERfRElSfERFQlVHX1NQRVcpJF0pCitBQ19BUkdfVkFSKFtQS0df Q09ORklHXSwgW3BhdGggdG8gcGtnLWNvbmZpZyB1dGlsaXR5XSkKK0FDX0FSR19WQVIoW1BLR19D T05GSUdfUEFUSF0sIFtkaXJlY3RvcmllcyB0byBhZGQgdG8gcGtnLWNvbmZpZydzIHNlYXJjaCBw YXRoXSkKK0FDX0FSR19WQVIoW1BLR19DT05GSUdfTElCRElSXSwgW3BhdGggb3ZlcnJpZGluZyBw a2ctY29uZmlnJ3MgYnVpbHQtaW4gc2VhcmNoIHBhdGhdKQorCitpZiB0ZXN0ICJ4JGFjX2N2X2Vu dl9QS0dfQ09ORklHX3NldCIgIT0gInhzZXQiOyB0aGVuCisJQUNfUEFUSF9UT09MKFtQS0dfQ09O RklHXSwgW3BrZy1jb25maWddKQorZmkKK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgor CV9wa2dfbWluX3ZlcnNpb249bTRfZGVmYXVsdChbJDFdLCBbMC45LjBdKQorCUFDX01TR19DSEVD S0lORyhbcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uXSkK KwlpZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gJF9wa2dfbWluX3Zl cnNpb247IHRoZW4KKwkJQUNfTVNHX1JFU1VMVChbeWVzXSkKKwllbHNlCisJCUFDX01TR19SRVNV TFQoW25vXSkKKwkJUEtHX0NPTkZJRz0iIgorCWZpCitmaVtdZG5sCitdKWRubCBQS0dfUFJPR19Q S0dfQ09ORklHCisKK2RubCBQS0dfQ0hFQ0tfRVhJU1RTKE1PRFVMRVMsIFtBQ1RJT04tSUYtRk9V TkRdLCBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZG5sIFNpbmNlOiAw LjE4CitkbmwKK2RubCBDaGVjayB0byBzZWUgd2hldGhlciBhIHBhcnRpY3VsYXIgc2V0IG9mIG1v ZHVsZXMgZXhpc3RzLiBTaW1pbGFyIHRvCitkbmwgUEtHX0NIRUNLX01PRFVMRVMoKSwgYnV0IGRv ZXMgbm90IHNldCB2YXJpYWJsZXMgb3IgcHJpbnQgZXJyb3JzLgorZG5sCitkbmwgUGxlYXNlIHJl bWVtYmVyIHRoYXQgbTQgZXhwYW5kcyBBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkK K2RubCBvbmx5IGF0IHRoZSBmaXJzdCBvY2N1cmVuY2UgaW4gY29uZmlndXJlLmFjLCBzbyBpZiB0 aGUgZmlyc3QgcGxhY2UKK2RubCBpdCdzIGNhbGxlZCBtaWdodCBiZSBza2lwcGVkIChzdWNoIGFz IGlmIGl0IGlzIHdpdGhpbiBhbiAiaWYiLCB5b3UKK2RubCBoYXZlIHRvIGNhbGwgUEtHX0NIRUNL X0VYSVNUUyBtYW51YWxseQorQUNfREVGVU4oW1BLR19DSEVDS19FWElTVFNdLAorW0FDX1JFUVVJ UkUoW1BLR19QUk9HX1BLR19DT05GSUddKWRubAoraWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYm IFwKKyAgICBBQ19SVU5fTE9HKFskUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAi JDEiXSk7IHRoZW4KKyAgbTRfZGVmYXVsdChbJDJdLCBbOl0pCittNF9pZnZhbG4oWyQzXSwgW2Vs c2UKKyAgJDNdKWRubAorZmldKQorCitkbmwgX1BLR19DT05GSUcoW1ZBUklBQkxFXSwgW0NPTU1B TkRdLCBbTU9EVUxFU10pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCitkbmwgSW50ZXJuYWwgd3JhcHBlciBjYWxsaW5nIHBrZy1jb25maWcgdmlhIFBL R19DT05GSUcgYW5kIHNldHRpbmcKK2RubCBwa2dfZmFpbGVkIGJhc2VkIG9uIHRoZSByZXN1bHQu CittNF9kZWZpbmUoW19QS0dfQ09ORklHXSwKK1tpZiB0ZXN0IC1uICIkJDEiOyB0aGVuCisgICAg cGtnX2N2X1tdJDE9IiQkMSIKKyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgorICAg IFBLR19DSEVDS19FWElTVFMoWyQzXSwKKyAgICAgICAgICAgICAgICAgICAgIFtwa2dfY3ZfW10k MT1gJFBLR19DT05GSUcgLS1bXSQyICIkMyIgMj4vZGV2L251bGxgCisJCSAgICAgIHRlc3QgIngk PyIgIT0gIngwIiAmJiBwa2dfZmFpbGVkPXllcyBdLAorCQkgICAgIFtwa2dfZmFpbGVkPXllc10p CisgZWxzZQorICAgIHBrZ19mYWlsZWQ9dW50cmllZAorZmlbXWRubAorXSlkbmwgX1BLR19DT05G SUcKKworZG5sIF9QS0dfU0hPUlRfRVJST1JTX1NVUFBPUlRFRAorZG5sIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorZG5sIEludGVybmFsIGNoZWNrIHRvIHNlZSBpZiBwa2ctY29uZmlnIHN1 cHBvcnRzIHNob3J0IGVycm9ycy4KK0FDX0RFRlVOKFtfUEtHX1NIT1JUX0VSUk9SU19TVVBQT1JU RURdLAorW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19DT05GSUddKQoraWYgJFBLR19DT05GSUcg LS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uIDAuMjA7IHRoZW4KKyAgICAgICAgX3BrZ19zaG9y dF9lcnJvcnNfc3VwcG9ydGVkPXllcworZWxzZQorICAgICAgICBfcGtnX3Nob3J0X2Vycm9yc19z dXBwb3J0ZWQ9bm8KK2ZpW11kbmwKK10pZG5sIF9QS0dfU0hPUlRfRVJST1JTX1NVUFBPUlRFRAor CisKK2RubCBQS0dfQ0hFQ0tfTU9EVUxFUyhWQVJJQUJMRS1QUkVGSVgsIE1PRFVMRVMsIFtBQ1RJ T04tSUYtRk9VTkRdLAorZG5sICAgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorZG5sIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitk bmwgU2luY2U6IDAuNC4wCitkbmwKK2RubCBOb3RlIHRoYXQgaWYgdGhlcmUgaXMgYSBwb3NzaWJp bGl0eSB0aGUgZmlyc3QgY2FsbCB0bworZG5sIFBLR19DSEVDS19NT0RVTEVTIG1pZ2h0IG5vdCBo YXBwZW4sIHlvdSBzaG91bGQgYmUgc3VyZSB0byBpbmNsdWRlIGFuCitkbmwgZXhwbGljaXQgY2Fs bCB0byBQS0dfUFJPR19QS0dfQ09ORklHIGluIHlvdXIgY29uZmlndXJlLmFjCitBQ19ERUZVTihb UEtHX0NIRUNLX01PRFVMRVNdLAorW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19DT05GSUddKWRu bAorQUNfQVJHX1ZBUihbJDFdW19DRkxBR1NdLCBbQyBjb21waWxlciBmbGFncyBmb3IgJDEsIG92 ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCitBQ19BUkdfVkFSKFskMV1bX0xJQlNdLCBbbGlua2Vy IGZsYWdzIGZvciAkMSwgb3ZlcnJpZGluZyBwa2ctY29uZmlnXSlkbmwKKworcGtnX2ZhaWxlZD1u bworQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQorCitfUEtHX0NPTkZJRyhbJDFdW19DRkxBR1Nd LCBbY2ZsYWdzXSwgWyQyXSkKK19QS0dfQ09ORklHKFskMV1bX0xJQlNdLCBbbGlic10sIFskMl0p CisKK200X2RlZmluZShbX1BLR19URVhUXSwgW0FsdGVybmF0aXZlbHksIHlvdSBtYXkgc2V0IHRo ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgJDFbXV9DRkxBR1MKK2FuZCAkMVtdX0xJQlMgdG8gYXZv aWQgdGhlIG5lZWQgdG8gY2FsbCBwa2ctY29uZmlnLgorU2VlIHRoZSBwa2ctY29uZmlnIG1hbiBw YWdlIGZvciBtb3JlIGRldGFpbHMuXSkKKworaWYgdGVzdCAkcGtnX2ZhaWxlZCA9IHllczsgdGhl bgorCUFDX01TR19SRVNVTFQoW25vXSkKKyAgICAgICAgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9S VEVECisgICAgICAgIGlmIHRlc3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsg dGhlbgorCSAgICAgICAgJDFbXV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVycm9y cyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAtLWxpYnMgIiQyIiAyPiYxYAorICAgICAgICBlbHNl CisJICAgICAgICAkMVtdX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tcHJpbnQtZXJyb3JzIC0t Y2ZsYWdzIC0tbGlicyAiJDIiIDI+JjFgCisgICAgICAgIGZpCisJIyBQdXQgdGhlIG5hc3R5IGVy cm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxvZyB3aGVyZSBpdCBiZWxvbmdzCisJZWNobyAiJCQxW11f UEtHX0VSUk9SUyIgPiZBU19NRVNTQUdFX0xPR19GRAorCisJbTRfZGVmYXVsdChbJDRdLCBbQUNf TVNHX0VSUk9SKAorW1BhY2thZ2UgcmVxdWlyZW1lbnRzICgkMikgd2VyZSBub3QgbWV0OgorCisk JDFfUEtHX0VSUk9SUworCitDb25zaWRlciBhZGp1c3RpbmcgdGhlIFBLR19DT05GSUdfUEFUSCBl bnZpcm9ubWVudCB2YXJpYWJsZSBpZiB5b3UKK2luc3RhbGxlZCBzb2Z0d2FyZSBpbiBhIG5vbi1z dGFuZGFyZCBwcmVmaXguCisKK19QS0dfVEVYVF0pW11kbmwKKyAgICAgICAgXSkKK2VsaWYgdGVz dCAkcGtnX2ZhaWxlZCA9IHVudHJpZWQ7IHRoZW4KKwlBQ19NU0dfUkVTVUxUKFtub10pCisJbTRf ZGVmYXVsdChbJDRdLCBbQUNfTVNHX0ZBSUxVUkUoCitbVGhlIHBrZy1jb25maWcgc2NyaXB0IGNv dWxkIG5vdCBiZSBmb3VuZCBvciBpcyB0b28gb2xkLiAgTWFrZSBzdXJlIGl0CitpcyBpbiB5b3Vy IFBBVEggb3Igc2V0IHRoZSBQS0dfQ09ORklHIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBm dWxsCitwYXRoIHRvIHBrZy1jb25maWcuCisKK19QS0dfVEVYVAorCitUbyBnZXQgcGtnLWNvbmZp Zywgc2VlIDxodHRwOi8vcGtnLWNvbmZpZy5mcmVlZGVza3RvcC5vcmcvPi5dKVtdZG5sCisgICAg ICAgIF0pCitlbHNlCisJJDFbXV9DRkxBR1M9JHBrZ19jdl9bXSQxW11fQ0ZMQUdTCisJJDFbXV9M SUJTPSRwa2dfY3ZfW10kMVtdX0xJQlMKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKwkk MworZmlbXWRubAorXSlkbmwgUEtHX0NIRUNLX01PRFVMRVMKKworCitkbmwgUEtHX0NIRUNLX01P RFVMRVNfU1RBVElDKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywgW0FDVElPTi1JRi1GT1VORF0s CitkbmwgICBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgU2lu Y2U6IDAuMjkKK2RubAorZG5sIENoZWNrcyBmb3IgZXhpc3RlbmNlIG9mIE1PRFVMRVMgYW5kIGdh dGhlcnMgaXRzIGJ1aWxkIGZsYWdzIHdpdGgKK2RubCBzdGF0aWMgbGlicmFyaWVzIGVuYWJsZWQu IFNldHMgVkFSSUFCTEUtUFJFRklYX0NGTEFHUyBmcm9tIC0tY2ZsYWdzCitkbmwgYW5kIFZBUklB QkxFLVBSRUZJWF9MSUJTIGZyb20gLS1saWJzLgorZG5sCitkbmwgTm90ZSB0aGF0IGlmIHRoZXJl IGlzIGEgcG9zc2liaWxpdHkgdGhlIGZpcnN0IGNhbGwgdG8KK2RubCBQS0dfQ0hFQ0tfTU9EVUxF U19TVEFUSUMgbWlnaHQgbm90IGhhcHBlbiwgeW91IHNob3VsZCBiZSBzdXJlIHRvCitkbmwgaW5j bHVkZSBhbiBleHBsaWNpdCBjYWxsIHRvIFBLR19QUk9HX1BLR19DT05GSUcgaW4geW91cgorZG5s IGNvbmZpZ3VyZS5hYy4KK0FDX0RFRlVOKFtQS0dfQ0hFQ0tfTU9EVUxFU19TVEFUSUNdLAorW0FD X1JFUVVJUkUoW1BLR19QUk9HX1BLR19DT05GSUddKWRubAorX3NhdmVfUEtHX0NPTkZJRz0kUEtH X0NPTkZJRworUEtHX0NPTkZJRz0iJFBLR19DT05GSUcgLS1zdGF0aWMiCitQS0dfQ0hFQ0tfTU9E VUxFUygkQCkKK1BLR19DT05GSUc9JF9zYXZlX1BLR19DT05GSUdbXWRubAorXSlkbmwgUEtHX0NI RUNLX01PRFVMRVNfU1RBVElDCisKKworZG5sIFBLR19JTlNUQUxMRElSKFtESVJFQ1RPUlldKQor ZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RubCBTaW5jZTogMC4yNworZG5sCitkbmwg U3Vic3RpdHV0ZXMgdGhlIHZhcmlhYmxlIHBrZ2NvbmZpZ2RpciBhcyB0aGUgbG9jYXRpb24gd2hl cmUgYSBtb2R1bGUKK2RubCBzaG91bGQgaW5zdGFsbCBwa2ctY29uZmlnIC5wYyBmaWxlcy4gQnkg ZGVmYXVsdCB0aGUgZGlyZWN0b3J5IGlzCitkbmwgJGxpYmRpci9wa2djb25maWcsIGJ1dCB0aGUg ZGVmYXVsdCBjYW4gYmUgY2hhbmdlZCBieSBwYXNzaW5nCitkbmwgRElSRUNUT1JZLiBUaGUgdXNl ciBjYW4gb3ZlcnJpZGUgdGhyb3VnaCB0aGUgLS13aXRoLXBrZ2NvbmZpZ2RpcgorZG5sIHBhcmFt ZXRlci4KK0FDX0RFRlVOKFtQS0dfSU5TVEFMTERJUl0sCitbbTRfcHVzaGRlZihbcGtnX2RlZmF1 bHRdLCBbbTRfZGVmYXVsdChbJDFdLCBbJyR7bGliZGlyfS9wa2djb25maWcnXSldKQorbTRfcHVz aGRlZihbcGtnX2Rlc2NyaXB0aW9uXSwKKyAgICBbcGtnLWNvbmZpZyBpbnN0YWxsYXRpb24gZGly ZWN0b3J5IEA8OkBdcGtnX2RlZmF1bHRbQDo+QF0pCitBQ19BUkdfV0lUSChbcGtnY29uZmlnZGly XSwKKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1wa2djb25maWdkaXJdLCBwa2dfZGVzY3Jp cHRpb24pXSwsCisgICAgW3dpdGhfcGtnY29uZmlnZGlyPV1wa2dfZGVmYXVsdCkKK0FDX1NVQlNU KFtwa2djb25maWdkaXJdLCBbJHdpdGhfcGtnY29uZmlnZGlyXSkKK200X3BvcGRlZihbcGtnX2Rl ZmF1bHRdKQorbTRfcG9wZGVmKFtwa2dfZGVzY3JpcHRpb25dKQorXSlkbmwgUEtHX0lOU1RBTExE SVIKKworCitkbmwgUEtHX05PQVJDSF9JTlNUQUxMRElSKFtESVJFQ1RPUlldKQorZG5sIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgU2luY2U6IDAuMjcKK2RubAorZG5sIFN1 YnN0aXR1dGVzIHRoZSB2YXJpYWJsZSBub2FyY2hfcGtnY29uZmlnZGlyIGFzIHRoZSBsb2NhdGlv biB3aGVyZSBhCitkbmwgbW9kdWxlIHNob3VsZCBpbnN0YWxsIGFyY2gtaW5kZXBlbmRlbnQgcGtn LWNvbmZpZyAucGMgZmlsZXMuIEJ5CitkbmwgZGVmYXVsdCB0aGUgZGlyZWN0b3J5IGlzICRkYXRh ZGlyL3BrZ2NvbmZpZywgYnV0IHRoZSBkZWZhdWx0IGNhbiBiZQorZG5sIGNoYW5nZWQgYnkgcGFz c2luZyBESVJFQ1RPUlkuIFRoZSB1c2VyIGNhbiBvdmVycmlkZSB0aHJvdWdoIHRoZQorZG5sIC0t d2l0aC1ub2FyY2gtcGtnY29uZmlnZGlyIHBhcmFtZXRlci4KK0FDX0RFRlVOKFtQS0dfTk9BUkNI X0lOU1RBTExESVJdLAorW200X3B1c2hkZWYoW3BrZ19kZWZhdWx0XSwgW200X2RlZmF1bHQoWyQx XSwgWycke2RhdGFkaXJ9L3BrZ2NvbmZpZyddKV0pCittNF9wdXNoZGVmKFtwa2dfZGVzY3JpcHRp b25dLAorICAgIFtwa2ctY29uZmlnIGFyY2gtaW5kZXBlbmRlbnQgaW5zdGFsbGF0aW9uIGRpcmVj dG9yeSBAPDpAXXBrZ19kZWZhdWx0W0A6PkBdKQorQUNfQVJHX1dJVEgoW25vYXJjaC1wa2djb25m aWdkaXJdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLW5vYXJjaC1wa2djb25maWdkaXJd LCBwa2dfZGVzY3JpcHRpb24pXSwsCisgICAgW3dpdGhfbm9hcmNoX3BrZ2NvbmZpZ2Rpcj1dcGtn X2RlZmF1bHQpCitBQ19TVUJTVChbbm9hcmNoX3BrZ2NvbmZpZ2Rpcl0sIFskd2l0aF9ub2FyY2hf cGtnY29uZmlnZGlyXSkKK200X3BvcGRlZihbcGtnX2RlZmF1bHRdKQorbTRfcG9wZGVmKFtwa2df ZGVzY3JpcHRpb25dKQorXSlkbmwgUEtHX05PQVJDSF9JTlNUQUxMRElSCisKKworZG5sIFBLR19D SEVDS19WQVIoVkFSSUFCTEUsIE1PRFVMRSwgQ09ORklHLVZBUklBQkxFLAorZG5sIFtBQ1RJT04t SUYtRk9VTkRdLCBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZG5sIFNpbmNlOiAwLjI4CitkbmwKK2RubCBSZXRy aWV2ZXMgdGhlIHZhbHVlIG9mIHRoZSBwa2ctY29uZmlnIHZhcmlhYmxlIGZvciB0aGUgZ2l2ZW4g bW9kdWxlLgorQUNfREVGVU4oW1BLR19DSEVDS19WQVJdLAorW0FDX1JFUVVJUkUoW1BLR19QUk9H X1BLR19DT05GSUddKWRubAorQUNfQVJHX1ZBUihbJDFdLCBbdmFsdWUgb2YgJDMgZm9yICQyLCBv dmVycmlkaW5nIHBrZy1jb25maWddKWRubAorCitfUEtHX0NPTkZJRyhbJDFdLCBbdmFyaWFibGU9 Il1bJDNdWyJdLCBbJDJdKQorQVNfVkFSX0NPUFkoWyQxXSwgW3BrZ19jdl9dWyQxXSkKKworQVNf VkFSX0lGKFskMV0sIFsiIl0sIFskNV0sIFskNF0pZG5sCitdKWRubCBQS0dfQ0hFQ0tfVkFSCisK K2RubCBQS0dfV0lUSF9NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywKK2RubCAgIFtB Q1RJT04tSUYtRk9VTkRdLFtBQ1RJT04tSUYtTk9ULUZPVU5EXSwKK2RubCAgIFtERVNDUklQVElP Tl0sIFtERUZBVUxUXSkKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KK2RubAorZG5sIFByZXBhcmUgYSAiLS13aXRoLSIgY29uZmlndXJlIG9wdGlvbiB1c2lu ZyB0aGUgbG93ZXJjYXNlCitkbmwgW1ZBUklBQkxFLVBSRUZJWF0gbmFtZSwgbWVyZ2luZyB0aGUg YmVoYXZpb3VyIG9mIEFDX0FSR19XSVRIIGFuZAorZG5sIFBLR19DSEVDS19NT0RVTEVTIGluIGEg c2luZ2xlIG1hY3JvLgorQUNfREVGVU4oW1BLR19XSVRIX01PRFVMRVNdLAorWworbTRfcHVzaGRl Zihbd2l0aF9hcmddLCBtNF90b2xvd2VyKFskMV0pKQorCittNF9wdXNoZGVmKFtkZXNjcmlwdGlv bl0sCisgICAgICAgICAgIFttNF9kZWZhdWx0KFskNV0sIFtidWlsZCB3aXRoIF13aXRoX2FyZ1sg c3VwcG9ydF0pXSkKKworbTRfcHVzaGRlZihbZGVmX2FyZ10sIFttNF9kZWZhdWx0KFskNl0sIFth dXRvXSldKQorbTRfcHVzaGRlZihbZGVmX2FjdGlvbl9pZl9mb3VuZF0sIFtBU19UUl9TSChbd2l0 aF9dd2l0aF9hcmcpPXllc10pCittNF9wdXNoZGVmKFtkZWZfYWN0aW9uX2lmX25vdF9mb3VuZF0s IFtBU19UUl9TSChbd2l0aF9dd2l0aF9hcmcpPW5vXSkKKworbTRfY2FzZShkZWZfYXJnLAorICAg ICAgICAgICAgW3llc10sW200X3B1c2hkZWYoW3dpdGhfd2l0aG91dF0sIFstLXdpdGhvdXQtXXdp dGhfYXJnKV0sCisgICAgICAgICAgICBbbTRfcHVzaGRlZihbd2l0aF93aXRob3V0XSxbLS13aXRo LV13aXRoX2FyZyldKQorCitBQ19BUkdfV0lUSCh3aXRoX2FyZywKKyAgICAgQVNfSEVMUF9TVFJJ Tkcod2l0aF93aXRob3V0LCBkZXNjcmlwdGlvblsgQDw6QGRlZmF1bHQ9XWRlZl9hcmdbQDo+QF0p LCwKKyAgICBbQVNfVFJfU0goW3dpdGhfXXdpdGhfYXJnKT1kZWZfYXJnXSkKKworQVNfQ0FTRShb JEFTX1RSX1NIKFt3aXRoX113aXRoX2FyZyldLAorICAgICAgICAgICAgW3llc10sW1BLR19DSEVD S19NT0RVTEVTKFskMV0sWyQyXSwkMywkNCldLAorICAgICAgICAgICAgW2F1dG9dLFtQS0dfQ0hF Q0tfTU9EVUxFUyhbJDFdLFskMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW200X24oW2RlZl9hY3Rpb25faWZfZm91bmRdKSAkM10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW200X24oW2RlZl9hY3Rpb25faWZfbm90X2ZvdW5kXSkg JDRdKV0pCisKK200X3BvcGRlZihbd2l0aF9hcmddKQorbTRfcG9wZGVmKFtkZXNjcmlwdGlvbl0p CittNF9wb3BkZWYoW2RlZl9hcmddKQorCitdKWRubCBQS0dfV0lUSF9NT0RVTEVTCisKK2RubCBQ S0dfSEFWRV9XSVRIX01PRFVMRVMoVkFSSUFCTEUtUFJFRklYLCBNT0RVTEVTLAorZG5sICAgW0RF U0NSSVBUSU9OXSwgW0RFRkFVTFRdKQorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCitkbmwKK2RubCBDb252ZW5pZW5jZSBtYWNybyB0byB0cmlnZ2Vy IEFNX0NPTkRJVElPTkFMIGFmdGVyIFBLR19XSVRIX01PRFVMRVMKK2RubCBjaGVjay5fW1ZBUklB QkxFLVBSRUZJWF0gaXMgZXhwb3J0ZWQgYXMgbWFrZSB2YXJpYWJsZS4KK0FDX0RFRlVOKFtQS0df SEFWRV9XSVRIX01PRFVMRVNdLAorWworUEtHX1dJVEhfTU9EVUxFUyhbJDFdLFskMl0sLCxbJDNd LFskNF0pCisKK0FNX0NPTkRJVElPTkFMKFtIQVZFX11bJDFdLAorICAgICAgICAgICAgICAgW3Rl c3QgIiRBU19UUl9TSChbd2l0aF9dbTRfdG9sb3dlcihbJDFdKSkiID0gInllcyJdKQorXSlkbmwg UEtHX0hBVkVfV0lUSF9NT0RVTEVTCisKK2RubCBQS0dfSEFWRV9ERUZJTkVfV0lUSF9NT0RVTEVT KFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywKK2RubCAgIFtERVNDUklQVElPTl0sIFtERUZBVUxU XSkKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KK2RubAorZG5sIENvbnZlbmllbmNlIG1hY3JvIHRvIHJ1biBBTV9DT05ESVRJT05BTCBh bmQgQUNfREVGSU5FIGFmdGVyCitkbmwgUEtHX1dJVEhfTU9EVUxFUyBjaGVjay4gSEFWRV9bVkFS SUFCTEUtUFJFRklYXSBpcyBleHBvcnRlZCBhcyBtYWtlCitkbmwgYW5kIHByZXByb2Nlc3NvciB2 YXJpYWJsZS4KK0FDX0RFRlVOKFtQS0dfSEFWRV9ERUZJTkVfV0lUSF9NT0RVTEVTXSwKK1sKK1BL R19IQVZFX1dJVEhfTU9EVUxFUyhbJDFdLFskMl0sWyQzXSxbJDRdKQorCitBU19JRihbdGVzdCAi JEFTX1RSX1NIKFt3aXRoX11tNF90b2xvd2VyKFskMV0pKSIgPSAieWVzIl0sCisgICAgICAgIFtB Q19ERUZJTkUoW0hBVkVfXVskMV0sIDEsIFtFbmFibGUgXW00X3RvbG93ZXIoWyQxXSlbIHN1cHBv cnRdKV0pCitdKWRubCBQS0dfSEFWRV9ERUZJTkVfV0lUSF9NT0RVTEVTCisKICMgQU1fQVVYX0RJ Ul9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRv Y29uZiAtKi0KIAogIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCmlu ZGV4IGI2MjMzYWRjY2YuLjEwMDA0NjdiMTkgMTAwNzU1Ci0tLSBhL2dkYi9jb25maWd1cmUKKysr IGIvZ2RiL2NvbmZpZ3VyZQpAQCAtNzU4LDcgKzc1OCwxMSBAQCBSRVBPUlRfQlVHU19URVhJCiBS RVBPUlRfQlVHU19UTwogUEtHVkVSU0lPTgogQ09ERVNJR05fQ0VSVAotTElCREVCVUdJTkZPRAor REVCVUdJTkZPRF9MSUJTCitERUJVR0lORk9EX0NGTEFHUworUEtHX0NPTkZJR19MSUJESVIKK1BL R19DT05GSUdfUEFUSAorUEtHX0NPTkZJRwogSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiBUQVJH RVRfT0JTCiBzdWJkaXJzCkBAIC05MzUsNiArOTM5LDExIEBAIENDQwogQ1BQCiBNQUtFSU5GTwog TUFLRUlORk9GTEFHUworUEtHX0NPTkZJRworUEtHX0NPTkZJR19QQVRICitQS0dfQ09ORklHX0xJ QkRJUgorREVCVUdJTkZPRF9DRkxBR1MKK0RFQlVHSU5GT0RfTElCUwogWUFDQwogWUZMQUdTCiBY TUtNRicKQEAgLTE2NzgsNiArMTY4NywxNSBAQCBTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50 IHZhcmlhYmxlczoKICAgTUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlmIGl0 IGlzIG9mIHN1ZmZpY2llbnQgdmVyc2lvbi4KICAgTUFLRUlORk9GTEFHUwogICAgICAgICAgICAg ICBQYXJhbWV0ZXJzIGZvciBNQUtFSU5GTy4KKyAgUEtHX0NPTkZJRyAgcGF0aCB0byBwa2ctY29u ZmlnIHV0aWxpdHkKKyAgUEtHX0NPTkZJR19QQVRICisgICAgICAgICAgICAgIGRpcmVjdG9yaWVz IHRvIGFkZCB0byBwa2ctY29uZmlnJ3Mgc2VhcmNoIHBhdGgKKyAgUEtHX0NPTkZJR19MSUJESVIK KyAgICAgICAgICAgICAgcGF0aCBvdmVycmlkaW5nIHBrZy1jb25maWcncyBidWlsdC1pbiBzZWFy Y2ggcGF0aAorICBERUJVR0lORk9EX0NGTEFHUworICAgICAgICAgICAgICBDIGNvbXBpbGVyIGZs YWdzIGZvciBERUJVR0lORk9ELCBvdmVycmlkaW5nIHBrZy1jb25maWcKKyAgREVCVUdJTkZPRF9M SUJTCisgICAgICAgICAgICAgIGxpbmtlciBmbGFncyBmb3IgREVCVUdJTkZPRCwgb3ZlcnJpZGlu ZyBwa2ctY29uZmlnCiAgIFlBQ0MgICAgICAgIFRoZSBgWWV0IEFub3RoZXIgQ29tcGlsZXIgQ29t cGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4KICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8g dGhlIGZpcnN0IHByb2dyYW0gZm91bmQgb3V0IG9mOiBgYmlzb24gLXknLCBgYnlhY2MnLAogICAg ICAgICAgICAgICBgeWFjYycuCkBAIC0yMjY4LDUyICsyMjg2LDYgQEAgcm0gLWYgY29uZnRlc3Qu dmFsCiAKIH0gIyBhY19mbl9jX2NvbXB1dGVfaW50CiAKLSMgYWNfZm5fY19jaGVja19kZWNsIExJ TkVOTyBTWU1CT0wgVkFSIElOQ0xVREVTCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotIyBUZXN0cyB3aGV0aGVyIFNZTUJPTCBpcyBkZWNsYXJlZCBpbiBJ TkNMVURFUywgc2V0dGluZyBjYWNoZSB2YXJpYWJsZSBWQVIKLSMgYWNjb3JkaW5nbHkuCi1hY19m bl9jX2NoZWNrX2RlY2wgKCkKLXsKLSAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xp bmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawotICBhc19kZWNsX25h bWU9YGVjaG8gJDJ8c2VkICdzLyAqKC4qLy8nYAotICBhc19kZWNsX3VzZT1gZWNobyAkMnxzZWQg LWUgJ3MvKC8oKC8nIC1lICdzLykvKSAwJi8nIC1lICdzLywvKSAwJiAoL2cnYAotICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJGFzX2Rl Y2xfbmFtZSBpcyBkZWNsYXJlZCIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRh c19kZWNsX25hbWUgaXMgZGVjbGFyZWQuLi4gIiA+JjY7IH0KLWlmIGV2YWwgXCR7JDMrOn0gZmFs c2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotZWxzZQotICBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4g ICovCi0kNAotaW50Ci1tYWluICgpCi17Ci0jaWZuZGVmICRhc19kZWNsX25hbWUKLSNpZmRlZiBf X2NwbHVzcGx1cwotICAodm9pZCkgJGFzX2RlY2xfdXNlOwotI2Vsc2UKLSAgKHZvaWQpICRhc19k ZWNsX25hbWU7Ci0jZW5kaWYKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YK LWlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSAgZXZhbCAiJDM9eWVz IgotZWxzZQotICBldmFsICIkMz1ubyIKLWZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ldmFsIGFjX3Jlcz1cJCQzCi0J ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfcmVzIiA+JjUKLSRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSAgZXZhbCAkYXNfbGluZW5v X3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0KLX0gIyBhY19m bl9jX2NoZWNrX2RlY2wKLQogIyBhY19mbl9jX2NoZWNrX2Z1bmMgTElORU5PIEZVTkMgVkFSCiAj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgVGVzdHMgd2hldGhlciBGVU5D IGV4aXN0cywgc2V0dGluZyB0aGUgY2FjaGUgdmFyaWFibGUgVkFSIGFjY29yZGluZ2x5CkBAIC0y NDM1LDYgKzI0MDcsNTIgQEAgJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQogCiB9ICMgYWNfZm5f Y19jaGVja190eXBlCiAKKyMgYWNfZm5fY19jaGVja19kZWNsIExJTkVOTyBTWU1CT0wgVkFSIElO Q0xVREVTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IyBUZXN0cyB3aGV0aGVyIFNZTUJPTCBpcyBkZWNsYXJlZCBpbiBJTkNMVURFUywgc2V0dGluZyBj YWNoZSB2YXJpYWJsZSBWQVIKKyMgYWNjb3JkaW5nbHkuCithY19mbl9jX2NoZWNrX2RlY2wgKCkK K3sKKyAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5l bm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworICBhc19kZWNsX25hbWU9YGVjaG8gJDJ8c2VkICdz LyAqKC4qLy8nYAorICBhc19kZWNsX3VzZT1gZWNobyAkMnxzZWQgLWUgJ3MvKC8oKC8nIC1lICdz LykvKSAwJi8nIC1lICdzLywvKSAwJiAoL2cnYAorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJGFzX2RlY2xfbmFtZSBpcyBkZWNsYXJl ZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRhc19kZWNsX25hbWUgaXMgZGVj bGFyZWQuLi4gIiA+JjY7IH0KK2lmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskNAoraW50CittYWlu ICgpCit7CisjaWZuZGVmICRhc19kZWNsX25hbWUKKyNpZmRlZiBfX2NwbHVzcGx1cworICAodm9p ZCkgJGFzX2RlY2xfdXNlOworI2Vsc2UKKyAgKHZvaWQpICRhc19kZWNsX25hbWU7CisjZW5kaWYK KyNlbmRpZgorCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2Nv bXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgZXZhbCAiJDM9eWVzIgorZWxzZQorICBldmFsICIk Mz1ubyIKK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKK2ZpCitldmFsIGFjX3Jlcz1cJCQzCisJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVu b19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCisKK30gIyBhY19mbl9jX2NoZWNrX2RlY2wKKwog IyBhY19mbl9jX2NoZWNrX21lbWJlciBMSU5FTk8gQUdHUiBNRU1CRVIgVkFSIElOQ0xVREVTCiAj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMg VHJpZXMgdG8gZmluZCBpZiB0aGUgZmllbGQgTUVNQkVSIGV4aXN0cyBpbiB0eXBlIEFHR1IsIGFm dGVyIGluY2x1ZGluZwpAQCAtNjgzOSw3ICs2ODU3LDEyNyBAQCBlc2FjCiAKICMgSGFuZGxlIG9w dGlvbmFsIGRlYnVnaW5mb2Qgc3VwcG9ydAogCi0jIEVuYWJsZSBkZWJ1Z2luZm9kCisKKworCisK KworCitpZiB0ZXN0ICJ4JGFjX2N2X2Vudl9QS0dfQ09ORklHX3NldCIgIT0gInhzZXQiOyB0aGVu CisJaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1wa2ct Y29uZmlnOyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9QS0dfQ09ORklHKzp9IGZhbHNl OyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkUEtH X0NPTkZJRyBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9QS0dfQ09ORklH PSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBh dGguCisgIDs7CisgICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK K2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgYXNfZm5fZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3BhdGhfUEtHX0NPTkZJRz0iJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAg ICBicmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKworICA7Owor ZXNhYworZmkKK1BLR19DT05GSUc9JGFjX2N2X3BhdGhfUEtHX0NPTkZJRworaWYgdGVzdCAtbiAi JFBLR19DT05GSUciOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkUEtHX0NPTkZJRyIgPiY1CiskYXNfZWNobyAiJFBLR19DT05GSUciID4m NjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworZmkKK2lmIHRlc3Qg LXogIiRhY19jdl9wYXRoX1BLR19DT05GSUciOyB0aGVuCisgIGFjX3B0X1BLR19DT05GSUc9JFBL R19DT05GSUcKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwa2ctY29uZmlnIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSBwa2ctY29uZmln OyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHKzp9IGZhbHNl OyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkYWNf cHRfUEtHX0NPTkZJRyBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9hY19w dF9QS0dfQ09ORklHPSIkYWNfcHRfUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2 ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgYXNfZm5fZXhlY3V0 YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Bh dGhfYWNfcHRfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lG Uz0kYXNfc2F2ZV9JRlMKKworICA7OworZXNhYworZmkKK2FjX3B0X1BLR19DT05GSUc9JGFjX2N2 X3BhdGhfYWNfcHRfUEtHX0NPTkZJRworaWYgdGVzdCAtbiAiJGFjX3B0X1BLR19DT05GSUciOyB0 aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfcHRfUEtHX0NPTkZJRyIgPiY1CiskYXNfZWNobyAiJGFjX3B0X1BLR19DT05GSUciID4mNjsg fQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKyAgaWYgdGVzdCAieCRhY19w dF9QS0dfQ09ORklHIiA9IHg7IHRoZW4KKyAgICBQS0dfQ09ORklHPSIiCisgIGVsc2UKKyAgICBj YXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCit5ZXM6KQoreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQorYWNfdG9vbF93YXJuZWQ9eWVzIDs7Citlc2FjCisgICAgUEtHX0NPTkZJRz0kYWNf cHRfUEtHX0NPTkZJRworICBmaQorZWxzZQorICBQS0dfQ09ORklHPSIkYWNfY3ZfcGF0aF9QS0df Q09ORklHIgorZmkKKworZmkKK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgorCV9wa2df bWluX3ZlcnNpb249MC45LjAKKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19taW5fdmVy c2lvbiIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZl cnNpb24gJF9wa2dfbWluX3ZlcnNpb24uLi4gIiA+JjY7IH0KKwlpZiAkUEtHX0NPTkZJRyAtLWF0 bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb247IHRoZW4KKwkJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiskYXNf ZWNobyAieWVzIiA+JjY7IH0KKwllbHNlCisJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4mNjsgfQorCQlQS0df Q09ORklHPSIiCisJZmkKK2ZpCisKKyMgSGFuZGxlIG9wdGlvbmFsIGRlYnVnaW5mb2Qgc3VwcG9y dAogCiAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRlYnVnaW5mb2Qgd2FzIGdpdmVuLgogaWYgdGVz dCAiJHt3aXRoX2RlYnVnaW5mb2Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgpAQCAtNjg1Myw3MiArNjk5 MSw5MyBAQCAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kLi4u ICIgPiY2OyB9CiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJHdpdGhfZGVidWdpbmZvZCIgPiY1CiAkYXNfZWNobyAiJHdpdGhfZGVidWdpbmZvZCIgPiY2 OyB9CiAKLWlmIHRlc3QgIiR7d2l0aF9kZWJ1Z2luZm9kfSIgPSBubzsgdGhlbgotICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3Vw cG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKLSRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29t ZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7fQotZWxzZQotICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkZWJ1Z2luZm9kX2Jl Z2luIGluIC1sZGVidWdpbmZvZCIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyBmb3IgZGVidWdp bmZvZF9iZWdpbiBpbiAtbGRlYnVnaW5mb2QuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfbGliX2Rl YnVnaW5mb2RfZGVidWdpbmZvZF9iZWdpbis6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLUxJ QlM9Ii1sZGVidWdpbmZvZCAgJExJQlMiCi1jYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCitpZiB0ZXN0ICJ4JHdpdGhfZGVi dWdpbmZvZCIgIT0geG5vOyB0aGVuCiAKLS8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotI2lmZGVmIF9fY3BsdXNw bHVzCi1leHRlcm4gIkMiCi0jZW5kaWYKLWNoYXIgZGVidWdpbmZvZF9iZWdpbiAoKTsKLWludAot bWFpbiAoKQotewotcmV0dXJuIGRlYnVnaW5mb2RfYmVnaW4gKCk7Ci0gIDsKLSAgcmV0dXJuIDA7 Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSAgYWNf Y3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9iZWdpbj15ZXMKK3BrZ19mYWlsZWQ9bm8KK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIERFQlVH SU5GT0QiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIERFQlVHSU5GT0QuLi4gIiA+JjY7 IH0KKworaWYgdGVzdCAtbiAiJERFQlVHSU5GT0RfQ0ZMQUdTIjsgdGhlbgorICAgIHBrZ19jdl9E RUJVR0lORk9EX0NGTEFHUz0iJERFQlVHSU5GT0RfQ0ZMQUdTIgorIGVsaWYgdGVzdCAtbiAiJFBL R19DT05GSUciOyB0aGVuCisgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKKyAgICB7 IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCRQS0dfQ09ORklHIC0t ZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwibGliZGVidWdpbmZvZCA+PSAwLjE3OVwiIjsgfSA+JjUK KyAgKCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJsaWJkZWJ1Z2luZm9kID49 IDAuMTc5IikgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIHRlc3QgJGFjX3N0YXR1cyA9 IDA7IH07IHRoZW4KKyAgcGtnX2N2X0RFQlVHSU5GT0RfQ0ZMQUdTPWAkUEtHX0NPTkZJRyAtLWNm bGFncyAibGliZGVidWdpbmZvZCA+PSAwLjE3OSIgMj4vZGV2L251bGxgCisJCSAgICAgIHRlc3Qg IngkPyIgIT0gIngwIiAmJiBwa2dfZmFpbGVkPXllcwogZWxzZQotICBhY19jdl9saWJfZGVidWdp bmZvZF9kZWJ1Z2luZm9kX2JlZ2luPW5vCisgIHBrZ19mYWlsZWQ9eWVzCiBmaQotcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0gICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLUxJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKyBlbHNl CisgICAgcGtnX2ZhaWxlZD11bnRyaWVkCiBmaQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1Z2luZm9kX2Jl Z2luIiA+JjUKLSRhc19lY2hvICIkYWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9iZWdp biIgPiY2OyB9Ci1pZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2RfYmVn aW4iID0geHllczsgdGhlbiA6Ci0gIGhhdmVfZGVidWdpbmZvZF9saWI9eWVzCitpZiB0ZXN0IC1u ICIkREVCVUdJTkZPRF9MSUJTIjsgdGhlbgorICAgIHBrZ19jdl9ERUJVR0lORk9EX0xJQlM9IiRE RUJVR0lORk9EX0xJQlMiCisgZWxpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKyAgICBp ZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYgXAorICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMg XCJsaWJkZWJ1Z2luZm9kID49IDAuMTc5XCIiOyB9ID4mNQorICAoJFBLR19DT05GSUcgLS1leGlz dHMgLS1wcmludC1lcnJvcnMgImxpYmRlYnVnaW5mb2QgPj0gMC4xNzkiKSAyPiY1CisgIGFjX3N0 YXR1cz0kPworICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorICBwa2dfY3Zf REVCVUdJTkZPRF9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgImxpYmRlYnVnaW5mb2QgPj0gMC4x NzkiIDI+L2Rldi9udWxsYAorCQkgICAgICB0ZXN0ICJ4JD8iICE9ICJ4MCIgJiYgcGtnX2ZhaWxl ZD15ZXMKK2Vsc2UKKyAgcGtnX2ZhaWxlZD15ZXMKIGZpCi0KLSAgYWNfZm5fY19jaGVja19kZWNs ICIkTElORU5PIiAiZGVidWdpbmZvZF9iZWdpbiIgImFjX2N2X2hhdmVfZGVjbF9kZWJ1Z2luZm9k X2JlZ2luIiAiI2luY2x1ZGUgPGVsZnV0aWxzL2RlYnVnaW5mb2QuaD4KLSIKLWlmIHRlc3QgIngk YWNfY3ZfaGF2ZV9kZWNsX2RlYnVnaW5mb2RfYmVnaW4iID0geHllczsgdGhlbiA6Ci0gIGhhdmVf ZGVidWdpbmZvZF9oPXllcworIGVsc2UKKyAgICBwa2dfZmFpbGVkPXVudHJpZWQKIGZpCiAKLSAg aWYgdGVzdCAieCRoYXZlX2RlYnVnaW5mb2RfbGliIiA9ICJ4eWVzIiAtYSBcCi0gICAgICAgICAg IngkaGF2ZV9kZWJ1Z2luZm9kX2giID0gInh5ZXMiOyB0aGVuCiAKLSRhc19lY2hvICIjZGVmaW5l IEhBVkVfTElCREVCVUdJTkZPRCAxIiA+PmNvbmZkZWZzLmgKIAotICAgIExJQkRFQlVHSU5GT0Q9 Ii1sZGVidWdpbmZvZCIKK2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7IHRoZW4KKwl7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2Vj aG8gIm5vIiA+JjY7IH0KIAotICBlbHNlCitpZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29u ZmlnLXZlcnNpb24gMC4yMDsgdGhlbgorICAgICAgICBfcGtnX3Nob3J0X2Vycm9yc19zdXBwb3J0 ZWQ9eWVzCitlbHNlCisgICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD1ubworZmkK KyAgICAgICAgaWYgdGVzdCAkX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkID0geWVzOyB0aGVu CisJICAgICAgICBERUJVR0lORk9EX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tc2hvcnQtZXJy b3JzIC0tcHJpbnQtZXJyb3JzIC0tY2ZsYWdzIC0tbGlicyAibGliZGVidWdpbmZvZCA+PSAwLjE3 OSIgMj4mMWAKKyAgICAgICAgZWxzZQorCSAgICAgICAgREVCVUdJTkZPRF9QS0dfRVJST1JTPWAk UEtHX0NPTkZJRyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAtLWxpYnMgImxpYmRlYnVnaW5mb2Qg Pj0gMC4xNzkiIDI+JjFgCisgICAgICAgIGZpCisJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3Nh Z2UgaW4gY29uZmlnLmxvZyB3aGVyZSBpdCBiZWxvbmdzCisJZWNobyAiJERFQlVHSU5GT0RfUEtH X0VSUk9SUyIgPiY1CiAKLSAgICBpZiB0ZXN0ICIkd2l0aF9kZWJ1Z2luZm9kIiA9IHllczsgdGhl bgotICAgICAgYXNfZm5fZXJyb3IgJD8gImRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJs ZSIgIiRMSU5FTk8iIDUKLSAgICBlbHNlCi0gICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJs ZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKLSRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IGRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJsZTsgc29tZSBmZWF0 dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7fQotICAgIGZpCi0gIGZpCisJaWYgdGVzdCAi eCR3aXRoX2RlYnVnaW5mb2QiID0geHllczsgdGhlbgorICAgICAgIGFzX2ZuX2Vycm9yICQ/ICJc Ii0td2l0aC1kZWJ1Z2luZm9kIHdhcyBnaXZlbiwgYnV0IGxpYmRlYnVnaW5mb2QgaXMgbWlzc2lu ZyBvciB1bnVzYWJsZS5cIiIgIiRMSU5FTk8iIDUKKyAgICAgZWxzZQorICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogbGliZGVidWdpbmZvZCBp cyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4i ID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogbGliZGVidWdpbmZvZCBpcyBtaXNzaW5n IG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9Cisg ICAgIGZpCitlbGlmIHRlc3QgJHBrZ19mYWlsZWQgPSB1bnRyaWVkOyB0aGVuCisJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hv ICJubyIgPiY2OyB9CisJaWYgdGVzdCAieCR3aXRoX2RlYnVnaW5mb2QiID0geHllczsgdGhlbgor ICAgICAgIGFzX2ZuX2Vycm9yICQ/ICJcIi0td2l0aC1kZWJ1Z2luZm9kIHdhcyBnaXZlbiwgYnV0 IGxpYmRlYnVnaW5mb2QgaXMgbWlzc2luZyBvciB1bnVzYWJsZS5cIiIgIiRMSU5FTk8iIDUKKyAg ICAgZWxzZQorICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog V0FSTklORzogbGliZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1 cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog bGliZGVidWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBi ZSB1bmF2YWlsYWJsZS4iID4mMjt9CisgICAgIGZpCitlbHNlCisJREVCVUdJTkZPRF9DRkxBR1M9 JHBrZ19jdl9ERUJVR0lORk9EX0NGTEFHUworCURFQlVHSU5GT0RfTElCUz0kcGtnX2N2X0RFQlVH SU5GT0RfTElCUworICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogeWVzIiA+JjUKKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorCiskYXNfZWNobyAi I2RlZmluZSBIQVZFX0xJQkRFQlVHSU5GT0QgMSIgPj5jb25mZGVmcy5oCisKK2ZpCitlbHNlCisg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogZGVidWdp bmZvZCBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4i ID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogZGVidWdpbmZvZCBzdXBwb3J0IGRpc2Fi bGVkOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9CiBmaQogCiAKLS0g CjIuMjUuMQoK --00000000000046292505a4ed43c3--