From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id A181F1F4B4 for ; Wed, 20 Jan 2021 15:06:15 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BCB6B396E844; Wed, 20 Jan 2021 15:06:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BCB6B396E844 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1611155174; bh=9n4+ZO2FXXXS48qf1xOPfDE38lUaUOna/YBOU8WVdXc=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=IchLmjwnBdGukVT15DeoDff+esSedYB0iTe/54Ngmssk79/c2QWg86W1N8ZzHqc1Z xMWxW0FRtZESafo8Jq+Ll0JHuRN+Vthd/zOM1zo4DNdcAHdC6Z3cXCZoA2GCYnPC5Y oaTUBXnPoMt+s6yK2tc8Fyo+XihcP4Q6Vp0ToP/s= Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com [IPv6:2607:f8b0:4864:20::230]) by sourceware.org (Postfix) with ESMTPS id 8B7FB3857C7E for ; Wed, 20 Jan 2021 15:06:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8B7FB3857C7E Received: by mail-oi1-x230.google.com with SMTP id f132so25283123oib.12 for ; Wed, 20 Jan 2021 07:06:09 -0800 (PST) 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=9n4+ZO2FXXXS48qf1xOPfDE38lUaUOna/YBOU8WVdXc=; b=k4zjAywCrvP+wNY3z5McrgVDU6ajQOyB7KF7w8JN3736yQyjqRJSrAjNvH1Q581JPY aKIhU0PHBCc1+4nAAd4ZFsLc2i0yV93ddFm3PYlHp/UhK8cI9SN8PzA5zS3DBwzTWSr6 IwFXq/EqHbEOdKUv2AJOFKrvDlNrRoKf+KpZggeRMaSYuTzxzhsLl7ziKpNYvuhdok0I P4UfBZ4FkZOI82tgsKi2e3zY+CsMCoyRGZ7J3J9z/Sx1F1NTagma5/kYSKp48wgveNZ0 3FUxw65JgOT0o1F9b3oQ2yfcCFjoU9hBCRpYGWj9ct22sobRtTiRuByQ0zuv4jQ0jCpx DjcQ== X-Gm-Message-State: AOAM533YKqtS5H96HQn6xdwp8NxwjPReajVfeiyXqtQG/3ZjHNJ76dLN kRwV4UhPa3vwo/AdsN4ViW8WFA2PtxhOvC4GvoY= X-Google-Smtp-Source: ABdhPJwqQEidBKAvfc6oOaVUzRwmff0CGyD3HhUtvpowkp5HaIZGxVNQu7QeBCS9oCXEBI/R5FIFj60eMd8Gdy58oSM= X-Received: by 2002:aca:34c2:: with SMTP id b185mr3143315oia.25.1611155169014; Wed, 20 Jan 2021 07:06:09 -0800 (PST) MIME-Version: 1.0 References: <20201104165018.GE6882@arm.com> <87lfeyvghf.fsf@mid.deneb.enyo.de> <20201118170434.GF6882@arm.com> <873616va9n.fsf@mid.deneb.enyo.de> <20201118180927.GI6882@arm.com> <87tutkjexc.fsf@mid.deneb.enyo.de> In-Reply-To: Date: Wed, 20 Jan 2021 07:05:32 -0800 Message-ID: Subject: V9 [PATCH] sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305] To: "Carlos O'Donell" Content-Type: multipart/mixed; boundary="000000000000871b7705b9564bf8" X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: "H.J. Lu via Libc-alpha" Reply-To: "H.J. Lu" Cc: Florian Weimer , "H.J. Lu via Libc-alpha" , Dave Martin , Joseph Myers Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --000000000000871b7705b9564bf8 Content-Type: text/plain; charset="UTF-8" On Wed, Jan 20, 2021 at 6:16 AM Carlos O'Donell wrote: > > On 11/20/20 6:13 PM, H.J. Lu via Libc-alpha wrote: > > On Fri, Nov 20, 2020 at 6:12 AM Florian Weimer wrote: > >> > >> * H. J. Lu: > >> > >>> Can we reach a consensus for _GNU_SOURCE vs _SC_SIGSTKSZ_SOURCE? > >>> > >>> How about we make _GNU_SOURCE to enable _SC_SIGSTKSZ_SOURCE and > >>> check _SC_SIGSTKSZ_SOURCE != 0? If _GNU_SOURCE triggers compilation > >>> error and source codes can't be changed, we can add > >>> -D_SC_SIGSTKSZ_SOURCE=0 to disable _SC_SIGSTKSZ_SOURCE. > >> > >> I think the source code compatibility is much more obscure than the > >> other things we broke quite recently, even without deprecation. Why > >> do we add the complexity in this case? I feel it is disproportional. > > > > Here is the patch with _GNU_SOURCE. Any comments? > > (1) New version of patch. > > This patch no longer compiles due to __cpuid_count errors. > > Could you please update this and post a v9? Fixed. > This is ABI addition for the constants so I want to make sure I review > something that works and is final from your end. > > (2) Kernel definition of constant for AT_MINSIGSTKSZ? > > We don't have a released kernel for x86 with this constant defined? > > The kernel patch was only just updated 5 days ago: > https://sourceware.org/pipermail/libc-alpha/2021-January/121671.html > > Doesn't this mean this patch is inappropriate for glibc 2.33? The new glibc works with the older kernels. In many cases, we use emulation for the older kernels. This patch only uses the existing kernel interface. The kernel patch you referred doesn't add any new interface. It simply uses the existing AT_MINSIGSTKSZ for x86. My patch includes an emulation for the older kernels. I think my patch is appropriate for glibc 2.33. Here is the updated patc. Thanks. -- H.J. --000000000000871b7705b9564bf8 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-sysconf-Add-_SC_MINSIGSTKSZ-_SC_SIGSTKSZ-BZ-20305.patch" Content-Disposition: attachment; filename="0001-sysconf-Add-_SC_MINSIGSTKSZ-_SC_SIGSTKSZ-BZ-20305.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kk5jy7sw0 RnJvbSA2NzdjZWY1YzcwZmQzMTAxNTg2ZDViNWVkOTQ2ZTZhMjliYTM5ZjNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjUgU2VwIDIwMjAgMTM6MTA6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBzeXNjb25m OiBBZGQgX1NDX01JTlNJR1NUS1NaL19TQ19TSUdTVEtTWiBbQlogIzIwMzA1XQoKQWRkIF9TQ19N SU5TSUdTVEtTWiBmb3IgdGhlIG1pbmltdW0gc2lnbmFsIHN0YWNrIHNpemUgZGVyaXZlZCBmcm9t CkFUX01JTlNJR1NUS1NaLCB3aGljaCBpcyB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgb2Yg ZnJlZSBzdGFjawpzcGFjZSByZXF1aXJlZCBpbiBvcmRlciB0byBndXJhbnRlZSBzdWNjZXNzZnVs LCBub24tbmVzdGVkIGhhbmRsaW5nCm9mIGEgc2luZ2xlIHNpZ25hbCB3aG9zZSBoYW5kbGVyIGlz IGFuIGVtcHR5IGZ1bmN0aW9uLCBhbmQgX1NDX1NJR1NUS1NaCndoaWNoIGlzIHRoZSBzdWdnZXN0 ZWQgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sgc3BhY2UgcmVxdWlyZWQKZm9yIGEg c2lnbmFsIHN0YWNrLgoKSWYgQVRfTUlOU0lHU1RLU1ogaXNuJ3QgYXZhaWxhYmxlLCBzeXNjb25m IChfU0NfTUlOU0lHU1RLU1opIHJldHVybnMKTUlOU0lHU1RLU1ouICBPbiBMaW51eC94ODYgd2l0 aCBYU0FWRSwgdGhlIHNpZ25hbCBmcmFtZSB1c2VkIGJ5IGtlcm5lbAppcyBjb21wb3NlZCBvZiB0 aGUgZm9sbG93aW5nIGFyZWFzIGFuZCBsYWlkIG91dCBhczoKCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIHwgYWxpZ25tZW50IHBhZGRpbmcgICAgICAgICAgfAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiB8IHhzYXZlIGJ1ZmZlciAgICAgICAgICAgICAgIHwKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogfCBmc2F2ZSBoZWFkZXIgKDMyLWJpdCBvbmx5KSB8 CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHwgc2lnaW5mbyArIHVjb250ZXh0ICAg ICAgICAgfAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDb21wdXRlIEFUX01JTlNJ R1NUS1NaIHZhbHVlIGFzIHNpemUgb2YgeHNhdmUgYnVmZmVyICsgc2l6ZSBvZiBmc2F2ZQpoZWFk ZXIgKDMyLWJpdCBvbmx5KSArIHNpemUgb2Ygc2lnaW5mbyBhbmQgdWNvbnRleHQgKyBhbGlnbm1l bnQgcGFkZGluZy4KCklmIF9TQ19TSUdTVEtTWl9TT1VSQ0Ugb3IgX0dOVV9TT1VSQ0UgYXJlIGRl ZmluZWQsIE1JTlNJR1NUS1NaIGFuZCBTSUdTVEtTWgphcmUgcmVkZWZpbmVkIGFzCgovKiBEZWZh dWx0IHN0YWNrIHNpemUgZm9yIGEgc2lnbmFsIGhhbmRsZXI6IHN5c2NvbmYgKFNDX1NJR1NUS1Na KS4gICovCiAjIHVuZGVmIFNJR1NUS1NaCiAjIGRlZmluZSBTSUdTVEtTWiBzeXNjb25mIChfU0Nf U0lHU1RLU1opCgovKiBNaW5pbXVtIHN0YWNrIHNpemUgZm9yIGEgc2lnbmFsIGhhbmRsZXI6IFNJ R1NUS1NaLiAgKi8KICMgdW5kZWYgTUlOU0lHU1RLU1oKICMgZGVmaW5lIE1JTlNJR1NUS1NaIFNJ R1NUS1NaCgpDb21waWxhdGlvbiB3aWxsIGZhaWwgaWYgdGhlIHNvdXJjZSBhc3N1bWVzIGNvbnN0 YW50IE1JTlNJR1NUS1NaIG9yClNJR1NUS1NaLgoKVGhlIHJlYXNvbiBmb3Igbm90IHNpbXBseSBp bmNyZWFzaW5nIHRoZSBrZXJuZWwncyBNSU5TSUdTVEtTWiAjZGVmaW5lCihhcGFydCBmcm9tIHRo ZSBmYWN0IHRoYXQgaXQgaXMgcmFyZWx5IHVzZWQsIGR1ZSB0byBnbGliYydzIHNoYWRvd2luZwpk ZWZpbml0aW9ucykgd2FzIHRoYXQgdXNlcnNwYWNlIGJpbmFyaWVzIHdpbGwgaGF2ZSBiYWtlZCBp biB0aGUgb2xkCnZhbHVlIG9mIHRoZSBjb25zdGFudCBhbmQgbWF5IGJlIG1ha2luZyBhc3N1bXB0 aW9ucyBhYm91dCBpdC4KCkZvciBleGFtcGxlLCB0aGUgdHlwZSAoY2hhciBbTUlOU0lHU1RLU1pd KSBjaGFuZ2VzIGlmIHRoaXMgI2RlZmluZQpjaGFuZ2VzLiAgVGhpcyBjb3VsZCBiZSBhIHByb2Js ZW0gaWYgYW4gbmV3bHkgYnVpbHQgbGlicmFyeSB0cmllcyB0bwptZW1jcHkoKSBvciBkdW1wIHN1 Y2ggYW4gb2JqZWN0IGRlZmluZWQgYnkgYW5kIG9sZCBiaW5hcnkuCkJvdW5kcy1jaGVja2luZyBh bmQgdGhlIHN0YWNrIHNpemVzIHBhc3NlZCB0byB0aGluZ3MgbGlrZSBzaWdhbHRzdGFjaygpCmFu ZCBtYWtlY29udGV4dCgpIGNvdWxkIHNpbWlsYXJseSBnbyB3cm9uZy4KLS0tCiBORVdTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKwogYml0cy9jb25mbmFt ZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0KIGJpdHMvc2lnc3Rrc3ou aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxICsrKysrCiBlbGYvZGwtc3VwcG9y dC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKwogZWxmL2RsLXN5c2RlcC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysKIGluY2x1ZGUvYml0cy9zaWdz dGFjay5oICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrCiBpbmNsdWRlL2JpdHMvc2lnc3Rr c3ouaCAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKwogaW5jbHVkZS9mZWF0dXJlcy5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrCiBtYW51YWwvY29uZi50ZXhpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKwogbWFudWFsL2NyZWF0dXJlLnRleGkg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysKIHBvc2l4L3N5c2NvbmYuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNpZ25hbC9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA1ICstCiBzaWduYWwvc2lnbmFsLmggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMSArCiBzaWduYWwvdHN0LW1pbnNpZ3N0a3N6LTUuYyAgICAg ICAgICAgICAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrCiBzeXNkZXBzL2dlbmVyaWMv bGRzb2RlZnMuaCAgICAgICAgICAgICAgICAgICAgfCAgMyArCiBzeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9iaXRzL3NpZ3N0a3N6LmggICAgICAgfCAzMyArKysrKysrKwogLi4uL3VuaXgvc3lzdi9s aW51eC9pYTY0L3N5c2NvbmYtc2lnc3Rrc3ouaCAgIHwgMjcgKysrKysrCiBzeXNkZXBzL3VuaXgv c3lzdi9saW51eC9zeXNjb25mLXNpZ3N0a3N6LmggICAgfCAzOCArKysrKysrKysKIHN5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3N5c2NvbmYuYyAgICAgICAgICAgICB8ICA5ICsrCiAuLi4vdW5peC9z eXN2L2xpbnV4L3g4Ni9kbC1taW5zaWdzdGFja3NpemUuaCAgfCA4MyArKysrKysrKysrKysrKysr KysKIC4uLi9zeXN2L2xpbnV4L3g4Ni9pbmNsdWRlL2JpdHMvc2lnc3RhY2suaCAgICB8ICA1ICsr CiBzeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArCiBz eXNkZXBzL3g4Ni9kbC1taW5zaWdzdGFja3NpemUuaCAgICAgICAgICAgICAgfCAyNyArKysrKysK IDIzIGZpbGVzIGNoYW5nZWQsIDQxNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGJpdHMvc2lnc3Rrc3ouaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1 ZGUvYml0cy9zaWdzdGFjay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9iaXRzL3NpZ3N0 a3N6LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzaWduYWwvdHN0LW1pbnNpZ3N0a3N6LTUuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc2lnc3Rrc3ouaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lhNjQvc3lzY29uZi1z aWdzdGtzei5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lz Y29uZi1zaWdzdGtzei5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGlu dXgveDg2L2RsLW1pbnNpZ3N0YWNrc2l6ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91 bml4L3N5c3YvbGludXgveDg2L2luY2x1ZGUvYml0cy9zaWdzdGFjay5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3lzZGVwcy94ODYvZGwtbWluc2lnc3RhY2tzaXplLmgKCmRpZmYgLS1naXQgYS9ORVdT IGIvTkVXUwppbmRleCBkMTIxZjdkZjg3Li4wNzU4YmIzN2UzIDEwMDY0NAotLS0gYS9ORVdTCisr KyBiL05FV1MKQEAgLTksNiArOSwxMSBAQCBWZXJzaW9uIDIuMzMKIAogTWFqb3IgbmV3IGZlYXR1 cmVzOgogCisqIEFkZCBfU0NfTUlOU0lHU1RLU1ogYW5kIF9TQ19TSUdTVEtTWi4gIFdoZW4gX1ND X1NJR1NUS1NaX1NPVVJDRSBvcgorICBfR05VX1NPVVJDRSBhcmUgZGVmaW5lZCwgTUlOU0lHU1RL U1ogYW5kIFNJR1NUS1NaIGFyZSBubyBsb25nZXIKKyAgY29uc3RhbnQgb24gTGludXguICBNSU5T SUdTVEtTWiBpcyByZWRlZmluZWQgdG8gc3lzY29uZihfU0NfTUlOU0lHU1RLU1opCisgIGFuZCBT SUdTVEtTWiBpcyByZWRlZmluZWQgdG8gc3lzY29uZiAoX1NDX1NJR1NUS1NaKS4KKwogKiBUaGUg ZHluYW1pYyBsaW5rZXIgYWNjZXB0cyB0aGUgLS1saXN0LXR1bmFibGVzIGFyZ3VtZW50IHdoaWNo IHByaW50cwogICBhbGwgdGhlIHN1cHBvcnRlZCB0dW5hYmxlcy4gIFRoaXMgb3B0aW9uIGlzIGRp c2FibGUgaWYgZ2xpYmMgaXMKICAgY29uZmlndXJlZCB3aXRoIHR1bmFibGVzIGRpc2FibGVkICgt LWVuYWJsZS10dW5hYmxlcz1ubykuCmRpZmYgLS1naXQgYS9iaXRzL2NvbmZuYW1lLmggYi9iaXRz L2NvbmZuYW1lLmgKaW5kZXggODA2OGJkYTI3My4uZWM2Y2QwNzk1NyAxMDA2NDQKLS0tIGEvYml0 cy9jb25mbmFtZS5oCisrKyBiL2JpdHMvY29uZm5hbWUuaApAQCAtNTI1LDggKzUyNSwxNCBAQCBl bnVtCiAKICAgICBfU0NfVEhSRUFEX1JPQlVTVF9QUklPX0lOSEVSSVQsCiAjZGVmaW5lIF9TQ19U SFJFQURfUk9CVVNUX1BSSU9fSU5IRVJJVAlfU0NfVEhSRUFEX1JPQlVTVF9QUklPX0lOSEVSSVQK LSAgICBfU0NfVEhSRUFEX1JPQlVTVF9QUklPX1BST1RFQ1QKKyAgICBfU0NfVEhSRUFEX1JPQlVT VF9QUklPX1BST1RFQ1QsCiAjZGVmaW5lIF9TQ19USFJFQURfUk9CVVNUX1BSSU9fUFJPVEVDVAlf U0NfVEhSRUFEX1JPQlVTVF9QUklPX1BST1RFQ1QKKworICAgIF9TQ19NSU5TSUdTVEtTWiwKKyNk ZWZpbmUJX1NDX01JTlNJR1NUS1NaCQkJX1NDX01JTlNJR1NUS1NaCisKKyAgICBfU0NfU0lHU1RL U1oKKyNkZWZpbmUJX1NDX1NJR1NUS1NaCQkJX1NDX1NJR1NUS1NaCiAgIH07CiAKIC8qIFZhbHVl cyBmb3IgdGhlIE5BTUUgYXJndW1lbnQgdG8gYGNvbmZzdHInLiAgKi8KZGlmZiAtLWdpdCBhL2Jp dHMvc2lnc3Rrc3ouaCBiL2JpdHMvc2lnc3Rrc3ouaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi41NTM1ZDg3M2I1Ci0tLSAvZGV2L251bGwKKysrIGIvYml0cy9zaWdzdGtz ei5oCkBAIC0wLDAgKzEsMjEgQEAKKy8qIERlZmluaXRpb24gb2YgTUlOU0lHU1RLU1ouICBHZW5l cmljIHZlcnNpb24uCisgICBDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGgg dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2lmbmRlZiBfU0lHTkFMX0gKKyMgZXJyb3IgIk5ldmVyIGluY2x1 ZGUgPGJpdHMvc2lnc3Rrc3ouaD4gZGlyZWN0bHk7IHVzZSA8c2lnbmFsLmg+IGluc3RlYWQuIgor I2VuZGlmCmRpZmYgLS1naXQgYS9lbGYvZGwtc3VwcG9ydC5jIGIvZWxmL2RsLXN1cHBvcnQuYwpp bmRleCAyNDM0YzQ3MGM3Li45YzNjNzFiYTYxIDEwMDY0NAotLS0gYS9lbGYvZGwtc3VwcG9ydC5j CisrKyBiL2VsZi9kbC1zdXBwb3J0LmMKQEAgLTEzNiw2ICsxMzYsOCBAQCB2b2lkICgqX2RsX2lu aXRfc3RhdGljX3RscykgKHN0cnVjdCBsaW5rX21hcCAqKSA9ICZfZGxfbm90aHJlYWRfaW5pdF9z dGF0aWNfdGxzOwogCiBzaXplX3QgX2RsX3BhZ2VzaXplID0gRVhFQ19QQUdFU0laRTsKIAorc2l6 ZV90IF9kbF9taW5zaWdzdGFja3NpemUgPSBDT05TVEFOVF9NSU5TSUdTVEtTWjsKKwogaW50IF9k bF9pbmhpYml0X2NhY2hlOwogCiB1bnNpZ25lZCBpbnQgX2RsX29zdmVyc2lvbjsKQEAgLTMwMSw2 ICszMDMsOSBAQCBfZGxfYXV4X2luaXQgKEVsZlcoYXV4dl90KSAqYXYpCiAgICAgICBjYXNlIEFU X1JBTkRPTToKIAlfZGxfcmFuZG9tID0gKHZvaWQgKikgYXYtPmFfdW4uYV92YWw7CiAJYnJlYWs7 CisgICAgICBjYXNlIEFUX01JTlNJR1NUS1NaOgorCV9kbF9taW5zaWdzdGFja3NpemUgPSBhdi0+ YV91bi5hX3ZhbDsKKwlicmVhazsKICAgICAgIERMX1BMQVRGT1JNX0FVWFYKICAgICAgIH0KICAg aWYgKHNlZW4gPT0gMHhmKQpkaWZmIC0tZ2l0IGEvZWxmL2RsLXN5c2RlcC5jIGIvZWxmL2RsLXN5 c2RlcC5jCmluZGV4IDA2NThjMTdkYTYuLmJkNTA2NmZlM2IgMTAwNjQ0Ci0tLSBhL2VsZi9kbC1z eXNkZXAuYworKysgYi9lbGYvZGwtc3lzZGVwLmMKQEAgLTExNSw2ICsxMTUsMTEgQEAgX2RsX3N5 c2RlcF9zdGFydCAodm9pZCAqKnN0YXJ0X2FyZ3B0ciwKICAgdXNlcl9lbnRyeSA9IChFbGZXKEFk ZHIpKSBFTlRSWV9QT0lOVDsKICAgR0xSTyhkbF9wbGF0Zm9ybSkgPSBOVUxMOyAvKiBEZWZhdWx0 IHRvIG5vdGhpbmcga25vd24gYWJvdXQgdGhlIHBsYXRmb3JtLiAgKi8KIAorICAvKiBOQjogRGVm YXVsdCB0byBhIGNvbnN0YW50IENPTlNUQU5UX01JTlNJR1NUS1NaLiAgKi8KKyAgX1N0YXRpY19h c3NlcnQgKF9fYnVpbHRpbl9jb25zdGFudF9wIChDT05TVEFOVF9NSU5TSUdTVEtTWiksCisJCSAg IkNPTlNUQU5UX01JTlNJR1NUS1NaIGlzIGNvbnN0YW50Iik7CisgIEdMUk8oZGxfbWluc2lnc3Rh Y2tzaXplKSA9IENPTlNUQU5UX01JTlNJR1NUS1NaOworCiAgIGZvciAoYXYgPSBHTFJPKGRsX2F1 eHYpOyBhdi0+YV90eXBlICE9IEFUX05VTEw7IHNldF9zZWVuIChhdisrKSkKICAgICBzd2l0Y2gg KGF2LT5hX3R5cGUpCiAgICAgICB7CkBAIC0xNzksNiArMTg0LDkgQEAgX2RsX3N5c2RlcF9zdGFy dCAodm9pZCAqKnN0YXJ0X2FyZ3B0ciwKICAgICAgIGNhc2UgQVRfUkFORE9NOgogCV9kbF9yYW5k b20gPSAodm9pZCAqKSBhdi0+YV91bi5hX3ZhbDsKIAlicmVhazsKKyAgICAgIGNhc2UgQVRfTUlO U0lHU1RLU1o6CisJR0xSTyhkbF9taW5zaWdzdGFja3NpemUpID0gYXYtPmFfdW4uYV92YWw7CisJ YnJlYWs7CiAgICAgICBETF9QTEFURk9STV9BVVhWCiAgICAgICB9CiAKQEAgLTMwNiw2ICszMTQs NyBAQCBfZGxfc2hvd19hdXh2ICh2b2lkKQogCSAgW0FUX1NZU0lORk9fRUhEUiAtIDJdID0JeyAi U1lTSU5GT19FSERSOiAgICAgIDB4IiwgaGV4IH0sCiAJICBbQVRfUkFORE9NIC0gMl0gPQkJeyAi UkFORE9NOiAgICAgICAgICAgIDB4IiwgaGV4IH0sCiAJICBbQVRfSFdDQVAyIC0gMl0gPQkJeyAi SFdDQVAyOiAgICAgICAgICAgIDB4IiwgaGV4IH0sCisJICBbQVRfTUlOU0lHU1RLU1ogLSAyXSA9 CXsgIk1JTlNJR1NUS1NaICAgICAgICAiLCBkZWMgfSwKIAkgIFtBVF9MMUlfQ0FDSEVTSVpFIC0g Ml0gPQl7ICJMMUlfQ0FDSEVTSVpFOiAgICAgIiwgZGVjIH0sCiAJICBbQVRfTDFJX0NBQ0hFR0VP TUVUUlkgLSAyXSA9CXsgIkwxSV9DQUNIRUdFT01FVFJZOiAweCIsIGhleCB9LAogCSAgW0FUX0wx RF9DQUNIRVNJWkUgLSAyXSA9CXsgIkwxRF9DQUNIRVNJWkU6ICAgICAiLCBkZWMgfSwKZGlmZiAt LWdpdCBhL2luY2x1ZGUvYml0cy9zaWdzdGFjay5oIGIvaW5jbHVkZS9iaXRzL3NpZ3N0YWNrLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWVhOTM5ZjU5ZAotLS0gL2Rl di9udWxsCisrKyBiL2luY2x1ZGUvYml0cy9zaWdzdGFjay5oCkBAIC0wLDAgKzEsNSBAQAorI2lu Y2x1ZGVfbmV4dCA8Yml0cy9zaWdzdGFjay5oPgorCisjaWYgIWRlZmluZWQgX0lTT01BQyAmJiAh ZGVmaW5lZCBDT05TVEFOVF9NSU5TSUdTVEtTWgorIyBkZWZpbmUgQ09OU1RBTlRfTUlOU0lHU1RL U1ogTUlOU0lHU1RLU1oKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9iaXRzL3NpZ3N0a3N6 LmggYi9pbmNsdWRlL2JpdHMvc2lnc3Rrc3ouaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi4yY2E4OTFlOTE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9iaXRzL3Np Z3N0a3N6LmgKQEAgLTAsMCArMSw3IEBACisvKiBOQjogRG9uJ3QgZGVmaW5lIE1JTlNJR1NUS1Na IG5vciBTSUdTVEtTWiB0byBzeXNjb25mIChTQ19TSUdTVEtTWikgZm9yCisgICBnbGliYyBidWls ZC4gIElTX0lOIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBfSVNPTUFDIGlzbid0IGRlZmluZWQuICAq LworI2lmZGVmIF9JU09NQUMKKyMgaW5jbHVkZV9uZXh0IDxiaXRzL3NpZ3N0a3N6Lmg+CisjZWxp ZiBJU19JTiAobGlic3VwcG9ydCkKKyMgaW5jbHVkZV9uZXh0IDxiaXRzL3NpZ3N0a3N6Lmg+Cisj ZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZmVhdHVyZXMuaCBiL2luY2x1ZGUvZmVhdHVyZXMu aAppbmRleCBhNzFhYzg1YWY0Li5jYzA1YTMxYWUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2ZlYXR1 cmVzLmgKKysrIGIvaW5jbHVkZS9mZWF0dXJlcy5oCkBAIC00OCw2ICs0OCw4IEBACiAgICBfTEFS R0VGSUxFNjRfU09VUkNFCUFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSBmcm9tIExGUyBmb3IgbGFy Z2UgZmlsZXMuCiAgICBfRklMRV9PRkZTRVRfQklUUz1OCVNlbGVjdCBkZWZhdWx0IGZpbGVzeXN0 ZW0gaW50ZXJmYWNlLgogICAgX0FURklMRV9TT1VSQ0UJQWRkaXRpb25hbCAqYXQgaW50ZXJmYWNl cy4KKyAgIF9TQ19TSUdTVEtTWl9TT1VSQ0UJU2VsZWN0IGNvcnJlY3QgKGJ1dCBub24gY29tcGls ZS10aW1lIGNvbnN0YW50KQorCQkJTUlOU0lHU1RLU1ogYW5kIFNJR1NUS1NaLgogICAgX0dOVV9T T1VSQ0UJCUFsbCBvZiB0aGUgYWJvdmUsIHBsdXMgR05VIGV4dGVuc2lvbnMuCiAgICBfREVGQVVM VF9TT1VSQ0UJVGhlIGRlZmF1bHQgc2V0IG9mIGZlYXR1cmVzICh0YWtpbmcgcHJlY2VkZW5jZSBv dmVyCiAJCQlfX1NUUklDVF9BTlNJX18pLgpAQCAtOTQsNiArOTYsOCBAQAogICAgX19VU0VfRklM RV9PRkZTRVQ2NAlEZWZpbmUgNjRiaXQgaW50ZXJmYWNlIGFzIGRlZmF1bHQuCiAgICBfX1VTRV9N SVNDCQlEZWZpbmUgdGhpbmdzIGZyb20gNC4zQlNEIG9yIFN5c3RlbSBWIFVuaXguCiAgICBfX1VT RV9BVEZJTEUJCURlZmluZSAqYXQgaW50ZXJmYWNlcyBhbmQgQVRfKiBjb25zdGFudHMgZm9yIHRo ZW0uCisgICBfX1VTRV9TQ19TSUdTVEtTWglEZWZpbmUgY29ycmVjdCAoYnV0IG5vbiBjb21waWxl LXRpbWUgY29uc3RhbnQpCisJCQlNSU5TSUdTVEtTWiBhbmQgU0lHU1RLU1ouCiAgICBfX1VTRV9H TlUJCURlZmluZSBHTlUgZXh0ZW5zaW9ucy4KICAgIF9fVVNFX0ZPUlRJRllfTEVWRUwJQWRkaXRp b25hbCBzZWN1cml0eSBtZWFzdXJlcyB1c2VkLCBhY2NvcmRpbmcgdG8gbGV2ZWwuCiAKQEAgLTEz Nyw2ICsxNDEsNyBAQAogI3VuZGVmCV9fVVNFX0ZJTEVfT0ZGU0VUNjQKICN1bmRlZglfX1VTRV9N SVNDCiAjdW5kZWYJX19VU0VfQVRGSUxFCisjdW5kZWYJX19VU0VfU0NfU0lHU1RLU1oKICN1bmRl ZglfX1VTRV9HTlUKICN1bmRlZglfX1VTRV9GT1JUSUZZX0xFVkVMCiAjdW5kZWYJX19LRVJORUxf U1RSSUNUX05BTUVTCkBAIC0yMTMsNiArMjE4LDggQEAKICMgZGVmaW5lIF9ERUZBVUxUX1NPVVJD RQkxCiAjIHVuZGVmICBfQVRGSUxFX1NPVVJDRQogIyBkZWZpbmUgX0FURklMRV9TT1VSQ0UJMQor IyB1bmRlZiAgX1NDX1NJR1NUS1NaX1NPVVJDRQorIyBkZWZpbmUgX1NDX1NJR1NUS1NaX1NPVVJD RSAxCiAjZW5kaWYKIAogLyogSWYgbm90aGluZyAob3RoZXIgdGhhbiBfR05VX1NPVVJDRSBhbmQg X0RFRkFVTFRfU09VUkNFKSBpcyBkZWZpbmVkLApAQCAtMzg4LDYgKzM5NSwxMCBAQAogIyBkZWZp bmUgX19VU0VfQVRGSUxFCTEKICNlbmRpZgogCisjaWZkZWYJX1NDX1NJR1NUS1NaX1NPVVJDRQor IyBkZWZpbmUgX19VU0VfU0NfU0lHU1RLU1oJMQorI2VuZGlmCisKICNpZmRlZglfR05VX1NPVVJD RQogIyBkZWZpbmUgX19VU0VfR05VCTEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbWFudWFsL2NvbmYu dGV4aSBiL21hbnVhbC9jb25mLnRleGkKaW5kZXggZjk1OWIwMGJiNi4uYmE5ODQ3YWFhNCAxMDA2 NDQKLS0tIGEvbWFudWFsL2NvbmYudGV4aQorKysgYi9tYW51YWwvY29uZi50ZXhpCkBAIC05MTMs NiArOTEzLDI3IEBAIElucXVpcmUgYWJvdXQgdGhlIHBhcmFtZXRlciBjb3JyZXNwb25kaW5nIHRv IEBjb2Rle05MX1NFVE1BWH0uCiBAaXRlbSBfU0NfTkxfVEVYVE1BWAogQHN0YW5kYXJkc3tYL09w ZW4sIHVuaXN0ZC5ofQogSW5xdWlyZSBhYm91dCB0aGUgcGFyYW1ldGVyIGNvcnJlc3BvbmRpbmcg dG8gQGNvZGV7TkxfVEVYVE1BWH0uCisKK0BpdGVtIF9TQ19NSU5TSUdTVEtTWgorQHN0YW5kYXJk c3tHTlUsIHVuaXN0ZC5ofQorSW5xdWlyZSBhYm91dCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0 ZXMgb2YgZnJlZSBzdGFjayBzcGFjZSByZXF1aXJlZAoraW4gb3JkZXIgdG8gZ3VhcmFudGVlIHN1 Y2Nlc3NmdWwsIG5vbi1uZXN0ZWQgaGFuZGxpbmcgb2YgYSBzaW5nbGUgc2lnbmFsCit3aG9zZSBo YW5kbGVyIGlzIGFuIGVtcHR5IGZ1bmN0aW9uLgorCitAaXRlbSBfU0NfU0lHU1RLU1oKK0BzdGFu ZGFyZHN7R05VLCB1bmlzdGQuaH0KK0lucXVpcmUgYWJvdXQgdGhlIHN1Z2dlc3RlZCBtaW5pbXVt IG51bWJlciBvZiBieXRlcyBvZiBzdGFjayBzcGFjZQorcmVxdWlyZWQgZm9yIGEgc2lnbmFsIHN0 YWNrLgorCitUaGlzIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIGVub3VnaCBmb3IgYW55IHNwZWNp ZmljIHB1cnBvc2Ugb3RoZXIgdGhhbgordGhlIGludm9jYXRpb24gb2YgYSBzaW5nbGUsIG5vbi1u ZXN0ZWQsIGVtcHR5IGhhbmRsZXIsIGJ1dCBub25ldGhlbGVzcworc2hvdWxkIGJlIGVub3VnaCBm b3IgYmFzaWMgc2NlbmFyaW9zIGludm9sdmluZyBzaW1wbGUgc2lnbmFsIGhhbmRsZXJzCithbmQg dmVyeSBsb3cgbGV2ZWxzIG9mIHNpZ25hbCBuZXN0aW5nIChzYXksIDIgb3IgMyBsZXZlbHMgYXQg dGhlIHZlcnkKK21vc3QpLgorCitUaGlzIHZhbHVlIGlzIHByb3ZpZGVkIGZvciBkZXZlbG9wZXIg Y29udmVuaWVuY2UgYW5kIHRvIGVhc2UgbWlncmF0aW9uCitmcm9tIHRoZSBsZWdhY3kgQGNvZGV7 U0lHU1RLU1p9IGNvbnN0YW50LiAgUHJvZ3JhbXMgcmVxdWlyaW5nIHN0cm9uZ2VyCitndWFyYW50 ZWVzIHNob3VsZCBhdm9pZCB1c2luZyBpdCBpZiBhdCBhbGwgcG9zc2libGUuCiBAZW5kIHZ0YWJs ZQogCiBAbm9kZSBFeGFtcGxlcyBvZiBTeXNjb25mCmRpZmYgLS1naXQgYS9tYW51YWwvY3JlYXR1 cmUudGV4aSBiL21hbnVhbC9jcmVhdHVyZS50ZXhpCmluZGV4IDMxMjA4Y2NiMmIuLjUwOTA3MzVl NGYgMTAwNjQ0Ci0tLSBhL21hbnVhbC9jcmVhdHVyZS50ZXhpCisrKyBiL21hbnVhbC9jcmVhdHVy ZS50ZXhpCkBAIC0yNTgsNiArMjU4LDEyIEBAIGNoZWNrcyBhcmUgYXBwbGllZC4gSWYgZGVmaW5l ZCB0byBAbWF0aHszfSwgQHRoZWdsaWJje30gbWF5IGFsc28gdXNlCiBjaGVja3MgdGhhdCBtYXkg aGF2ZSBhbiBhZGRpdGlvbmFsIHBlcmZvcm1hbmNlIG92ZXJoZWFkLgogQGVuZCBkZWZ2cgogCitA ZGVmdnIgTWFjcm8gX1NDX1NJR1NUS1NaX1NPVVJDRQorQHN0YW5kYXJkc3tHTlUsIChub25lKX0K K0lmIHRoaXMgbWFjcm8gaXMgZGVmaW5lZCwgY29ycmVjdCAoYnV0IG5vbiBjb21waWxlLXRpbWUg Y29uc3RhbnQpCitNSU5TSUdTVEtTWiBhbmQgU0lHU1RLU1ogYXJlIGRlZmluZWQuCitAZW5kIGRl ZnZyCisKIEBkZWZ2ciBNYWNybyBfUkVFTlRSQU5UCiBAZGVmdnJ4IE1hY3JvIF9USFJFQURfU0FG RQogQHN0YW5kYXJkc3tPYnNvbGV0ZSwgKG5vbmUpfQpkaWZmIC0tZ2l0IGEvcG9zaXgvc3lzY29u Zi5jIGIvcG9zaXgvc3lzY29uZi5jCmluZGV4IGJiOWUxMzJlNWMuLjY3ZDE3Y2EwZjggMTAwNjQ0 Ci0tLSBhL3Bvc2l4L3N5c2NvbmYuYworKysgYi9wb3NpeC9zeXNjb25mLmMKQEAgLTI2Niw2ICsy NjYsOSBAQCBfX3N5c2NvbmYgKGludCBuYW1lKQogICAgIGNhc2UgX1NDX1hPUEVOX1JFQUxUSU1F OgogICAgIGNhc2UgX1NDX1hPUEVOX1JFQUxUSU1FX1RIUkVBRFM6CiAKKyAgICBjYXNlIF9TQ19N SU5TSUdTVEtTWjoKKyAgICBjYXNlIF9TQ19TSUdTVEtTWjoKKwogICAgICAgYnJlYWs7CiAgICAg fQogCmRpZmYgLS1naXQgYS9zaWduYWwvTWFrZWZpbGUgYi9zaWduYWwvTWFrZWZpbGUKaW5kZXgg ZTg5YzMwODg4OS4uM2Q4Y2FiMWY1MCAxMDA2NDQKLS0tIGEvc2lnbmFsL01ha2VmaWxlCisrKyBi L3NpZ25hbC9NYWtlZmlsZQpAQCAtMzEsNyArMzEsOCBAQCBoZWFkZXJzIDo9IHNpZ25hbC5oIHN5 cy9zaWduYWwuaCBcCiAJICAgYml0cy90eXBlcy9zaWdldmVudF90LmggYml0cy90eXBlcy9zaWdp bmZvX3QuaCBcCiAJICAgYml0cy90eXBlcy9zaWdzZXRfdC5oIGJpdHMvdHlwZXMvc2lndmFsX3Qu aCBcCiAJICAgYml0cy90eXBlcy9zdGFja190LmggYml0cy90eXBlcy9zdHJ1Y3Rfc2lnc3RhY2su aCBcCi0JICAgYml0cy90eXBlcy9fX3NpZ3ZhbF90LmggYml0cy9zaWduYWxfZXh0LmgKKwkgICBi aXRzL3R5cGVzL19fc2lndmFsX3QuaCBiaXRzL3NpZ25hbF9leHQuaCBcCisJICAgYml0cy9zaWdz dGtzei5oCiAKIHJvdXRpbmVzCTo9IHNpZ25hbCByYWlzZSBraWxscGcgXAogCQkgICBzaWdhY3Rp b24gc2lncHJvY21hc2sga2lsbCBcCkBAIC00OCw3ICs0OSw3IEBAIHJvdXRpbmVzCTo9IHNpZ25h bCByYWlzZSBraWxscGcgXAogdGVzdHMJCTo9IHRzdC1zaWduYWwgdHN0LXNpZ3NldCB0c3Qtc2ln c2ltcGxlIHRzdC1yYWlzZSB0c3Qtc2lnc2V0MiBcCiAJCSAgIHRzdC1zaWd3YWl0LWVpbnRyIHRz dC1zaWdhY3Rpb24gXAogCQkgICB0c3QtbWluc2lnc3Rrc3otMSB0c3QtbWluc2lnc3Rrc3otMiB0 c3QtbWluc2lnc3Rrc3otMyBcCi0JCSAgIHRzdC1taW5zaWdzdGtzei0zYSB0c3QtbWluc2lnc3Rr c3otNCBcCisJCSAgIHRzdC1taW5zaWdzdGtzei0zYSB0c3QtbWluc2lnc3Rrc3otNCB0c3QtbWlu c2lnc3Rrc3otNSBcCiAJCSAgIHRzdC1zaWdpc2VtcHR5c2V0CiAKIGluY2x1ZGUgLi4vUnVsZXMK ZGlmZiAtLWdpdCBhL3NpZ25hbC9zaWduYWwuaCBiL3NpZ25hbC9zaWduYWwuaAppbmRleCA2NDYz Yzk4ZTExLi5iMTcyMDNjOTljIDEwMDY0NAotLS0gYS9zaWduYWwvc2lnbmFsLmgKKysrIGIvc2ln bmFsL3NpZ25hbC5oCkBAIC0zMTIsNiArMzEyLDcgQEAgZXh0ZXJuIGludCBzaWdpbnRlcnJ1cHQg KGludCBfX3NpZywgaW50IF9faW50ZXJydXB0KSBfX1RIUk9XCiAgIF9fYXR0cmlidXRlX2RlcHJl Y2F0ZWRfbXNnX18gKCJVc2Ugc2lnYWN0aW9uIHdpdGggU0FfUkVTVEFSVCBpbnN0ZWFkIik7CiAK ICMgaW5jbHVkZSA8Yml0cy9zaWdzdGFjay5oPgorIyBpbmNsdWRlIDxiaXRzL3NpZ3N0a3N6Lmg+ CiAjIGluY2x1ZGUgPGJpdHMvc3NfZmxhZ3MuaD4KIAogLyogQWx0ZXJuYXRlIHNpZ25hbCBoYW5k bGVyIHN0YWNrIGludGVyZmFjZS4KZGlmZiAtLWdpdCBhL3NpZ25hbC90c3QtbWluc2lnc3Rrc3ot NS5jIGIvc2lnbmFsL3RzdC1taW5zaWdzdGtzei01LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZDY1N2QyZjRlNgotLS0gL2Rldi9udWxsCisrKyBiL3NpZ25hbC90c3Qt bWluc2lnc3Rrc3otNS5jCkBAIC0wLDAgKzEsODQgQEAKKy8qIFRlc3Qgb2Ygc2lnbmFsIGRlbGl2 ZXJ5IG9uIGFuIGFsdGVybmF0ZSBzdGFjayB3aXRoIE1JTlNJR1NUS1NaIHNpemUuCisgICBDb3B5 cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lu Y2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5o PgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKyNpbmNs dWRlIDxzdXBwb3J0L3N1cHBvcnQuaD4KKworc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBo YW5kbGVyX3J1bjsKKworc3RhdGljIHZvaWQKK2hhbmRsZXIgKGludCBzaWdubykKK3sKKyAgLyog Q2xlYXIgYSBiaXQgb2Ygb24tc3RhY2sgbWVtb3J5LiAgKi8KKyAgdm9sYXRpbGUgY2hhciBidWZm ZXJbMjU2XTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YgKGJ1ZmZlcik7ICsraSkK KyAgICBidWZmZXJbaV0gPSAwOworICBoYW5kbGVyX3J1biA9IDE7Cit9CisKK2ludAorZG9fdGVz dCAodm9pZCkKK3sKKyAgc2l6ZV90IHN0YWNrX2J1ZmZlcl9zaXplID0gNjQgKiAxMDI0ICogMTAy NDsKKyAgdm9pZCAqc3RhY2tfYnVmZmVyID0geG1hbGxvYyAoc3RhY2tfYnVmZmVyX3NpemUpOwor ICB2b2lkICpzdGFja19lbmQgPSBzdGFja19idWZmZXIgKyBzdGFja19idWZmZXJfc2l6ZTsKKyAg bWVtc2V0IChzdGFja19idWZmZXIsIDB4Q0MsIHN0YWNrX2J1ZmZlcl9zaXplKTsKKworICB2b2lk ICpzdGFja19ib3R0b20gPSBzdGFja19idWZmZXIgKyAoc3RhY2tfYnVmZmVyX3NpemUgKyBNSU5T SUdTVEtTWikgLyAyOworICB2b2lkICpzdGFja190b3AgPSBzdGFja19ib3R0b20gKyBNSU5TSUdT VEtTWjsKKyAgc3RhY2tfdCBzdGFjayA9CisgICAgeworICAgICAgLnNzX3NwID0gc3RhY2tfYm90 dG9tLAorICAgICAgLnNzX3NpemUgPSBNSU5TSUdTVEtTWiwKKyAgICB9OworICBpZiAoc2lnYWx0 c3RhY2sgKCZzdGFjaywgTlVMTCkgPCAwKQorICAgIEZBSUxfUkVUICgic2lnYWx0c3RhY2s6ICVt XG4iKTsKKworICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdCA9CisgICAgeworICAgICAgLnNhX2hhbmRs ZXIgPSBoYW5kbGVyLAorICAgICAgLnNhX2ZsYWdzID0gU0FfT05TVEFDSywKKyAgICB9OworICBp ZiAoc2lnYWN0aW9uIChTSUdVU1IxLCAmYWN0LCBOVUxMKSA8IDApCisgICAgRkFJTF9SRVQgKCJz aWdhY3Rpb246ICVtXG4iKTsKKworICBpZiAoa2lsbCAoZ2V0cGlkICgpLCBTSUdVU1IxKSA8IDAp CisgICAgRkFJTF9SRVQgKCJraWxsOiAlbVxuIik7CisKKyAgaWYgKGhhbmRsZXJfcnVuICE9IDEp CisgICAgRkFJTF9SRVQgKCJoYW5kbGVyIGRpZCBub3QgcnVuXG4iKTsKKworICBmb3IgKHZvaWQg KnAgPSBzdGFja19idWZmZXI7IHAgPCBzdGFja19ib3R0b207ICsrcCkKKyAgICBpZiAoKih1bnNp Z25lZCBjaGFyICopIHAgIT0gMHhDQykKKyAgICAgIEZBSUxfUkVUICgiY2hhbmdlZCBieXRlICVs ZCBieXRlcyBiZWxvdyBjb25maWd1cmVkIHN0YWNrXG4iLAorCQkobG9uZykgKHN0YWNrX2JvdHRv bSAtIHApKTsKKyAgZm9yICh2b2lkICpwID0gc3RhY2tfdG9wOyBwIDwgc3RhY2tfZW5kOyArK3Ap CisgICAgaWYgKCoodW5zaWduZWQgY2hhciAqKSBwICE9IDB4Q0MpCisgICAgICBGQUlMX1JFVCAo ImNoYW5nZWQgYnl0ZSAlbGQgYnl0ZXMgYWJvdmUgY29uZmlndXJlZCBzdGFja1xuIiwKKwkJKGxv bmcpIChwIC0gc3RhY2tfdG9wKSk7CisKKyAgZnJlZSAoc3RhY2tfYnVmZmVyKTsKKworICByZXR1 cm4gMDsKK30KKworI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KZGlmZiAtLWdpdCBh L3N5c2RlcHMvZ2VuZXJpYy9sZHNvZGVmcy5oIGIvc3lzZGVwcy9nZW5lcmljL2xkc29kZWZzLmgK aW5kZXggYWFiNzI0NWU5My4uOTcyMGE0ZTQ0NiAxMDA2NDQKLS0tIGEvc3lzZGVwcy9nZW5lcmlj L2xkc29kZWZzLmgKKysrIGIvc3lzZGVwcy9nZW5lcmljL2xkc29kZWZzLmgKQEAgLTUzNiw2ICs1 MzYsOSBAQCBzdHJ1Y3QgcnRsZF9nbG9iYWxfcm8KICAgLyogQ2FjaGVkIHZhbHVlIG9mIGBnZXRw YWdlc2l6ZSAoKScuICAqLwogICBFWFRFUk4gc2l6ZV90IF9kbF9wYWdlc2l6ZTsKIAorICAvKiBD YWNoZWQgdmFsdWUgb2YgYHN5c2NvbmYgKF9TQ19NSU5TSUdTVEtTWiknLiAgKi8KKyAgRVhURVJO IHNpemVfdCBfZGxfbWluc2lnc3RhY2tzaXplOworCiAgIC8qIERvIHdlIHJlYWQgZnJvbSBsZC5z by5jYWNoZT8gICovCiAgIEVYVEVSTiBpbnQgX2RsX2luaGliaXRfY2FjaGU7CiAKZGlmZiAtLWdp dCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc2lnc3Rrc3ouaCBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L2JpdHMvc2lnc3Rrc3ouaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi45MjY1MDhmMmI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvYml0cy9zaWdzdGtzei5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qIERlZmluaXRpb24g b2YgTUlOU0lHU1RLU1ogYW5kIFNJR1NUS1NaLiAgTGludXggdmVyc2lvbi4KKyAgIENvcHlyaWdo dCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjaWZuZGVm IF9TSUdOQUxfSAorIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9zaWdzdGtzei5oPiBkaXJl Y3RseTsgdXNlIDxzaWduYWwuaD4gaW5zdGVhZC4iCisjZW5kaWYKKworI2lmIGRlZmluZWQgX19V U0VfU0NfU0lHU1RLU1ogJiYgX19VU0VfU0NfU0lHU1RLU1oKKyMgaW5jbHVkZSA8dW5pc3RkLmg+ CisKKy8qIERlZmF1bHQgc3RhY2sgc2l6ZSBmb3IgYSBzaWduYWwgaGFuZGxlcjogc3lzY29uZiAo U0NfU0lHU1RLU1opLiAgKi8KKyMgdW5kZWYgU0lHU1RLU1oKKyMgZGVmaW5lIFNJR1NUS1NaIHN5 c2NvbmYgKF9TQ19TSUdTVEtTWikKKworLyogTWluaW11bSBzdGFjayBzaXplIGZvciBhIHNpZ25h bCBoYW5kbGVyOiBTSUdTVEtTWi4gICovCisjIHVuZGVmIE1JTlNJR1NUS1NaCisjIGRlZmluZSBN SU5TSUdTVEtTWiBTSUdTVEtTWgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9pYTY0L3N5c2NvbmYtc2lnc3Rrc3ouaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L2lhNjQvc3lzY29uZi1zaWdzdGtzei5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjdlNWNlYmExNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9pYTY0L3N5c2NvbmYtc2lnc3Rrc3ouaApAQCAtMCwwICsxLDI3IEBACisvKiBzeXNjb25m X3NpZ3N0a3N6ICgpLiAgTGludXgvaWE2NCB2ZXJzaW9uLgorICAgQ29weXJpZ2h0IChDKSAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAg PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIFJldHVybiBzeXNjb25m IChfU0NfU0lHU1RLU1opLiAgKi8KKworc3RhdGljIGxvbmcgaW50CitzeXNjb25mX3NpZ3N0a3N6 ICh2b2lkKQoreworICBfU3RhdGljX2Fzc2VydCAoX19idWlsdGluX2NvbnN0YW50X3AgKFNJR1NU S1NaKSwKKwkJICAiU0lHU1RLU1ogaXMgY29uc3RhbnQiKTsKKyAgcmV0dXJuIFNJR1NUS1NaOwor fQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY29uZi1zaWdzdGtzei5o IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY29uZi1zaWdzdGtzei5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjY0ZDQ1MGIyMmMKLS0tIC9kZXYvbnVsbAorKysg Yi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjb25mLXNpZ3N0a3N6LmgKQEAgLTAsMCArMSwz OCBAQAorLyogc3lzY29uZl9zaWdzdGtzeiAoKS4gIExpbnV4IHZlcnNpb24uCisgICBDb3B5cmln aHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyogUmV0 dXJuIHN5c2NvbmYgKF9TQ19TSUdTVEtTWikuICAqLworCitzdGF0aWMgbG9uZyBpbnQKK3N5c2Nv bmZfc2lnc3Rrc3ogKHZvaWQpCit7CisgIGxvbmcgaW50IG1pbnNpZ3N0YWNrc2l6ZSA9IEdMUk8o ZGxfbWluc2lnc3RhY2tzaXplKTsKKyAgYXNzZXJ0IChtaW5zaWdzdGFja3NpemUgIT0gMCk7Cisg IF9TdGF0aWNfYXNzZXJ0IChfX2J1aWx0aW5fY29uc3RhbnRfcCAoTUlOU0lHU1RLU1opLAorCQkg ICJNSU5TSUdTVEtTWiBpcyBjb25zdGFudCIpOworICBpZiAobWluc2lnc3RhY2tzaXplIDwgTUlO U0lHU1RLU1opCisgICAgbWluc2lnc3RhY2tzaXplID0gTUlOU0lHU1RLU1o7CisgIC8qIE1BWCAo TUlOU0lHU1RLU1osIHN5c2NvbmYgKF9TQ19NSU5TSUdTVEtTWikpICogNC4gICovCisgIGxvbmcg aW50IHNpZ3N0YWNrc2l6ZSA9IG1pbnNpZ3N0YWNrc2l6ZSAqIDQ7CisgIC8qIFJldHVybiBNQVgg KFNJR1NUS1NaLCBzaWdzdGFja3NpemUpLiAgKi8KKyAgX1N0YXRpY19hc3NlcnQgKF9fYnVpbHRp bl9jb25zdGFudF9wIChTSUdTVEtTWiksCisJCSAgIlNJR1NUS1NaIGlzIGNvbnN0YW50Iik7Cisg IGlmIChzaWdzdGFja3NpemUgPCBTSUdTVEtTWikKKyAgICBzaWdzdGFja3NpemUgPSBTSUdTVEtT WjsKKyAgcmV0dXJuIHNpZ3N0YWNrc2l6ZTsKK30KZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3N5c2NvbmYuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NvbmYuYwpp bmRleCBiZmFkNWI2ODU4Li4zNjZmY2VmMDFlIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9zeXNjb25mLmMKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY29uZi5j CkBAIC0xNiw2ICsxNiw3IEBACiAgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCiAgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K IAorI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNu dGwuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTI2LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxz eXMvcGFyYW0uaD4KICNpbmNsdWRlIDxub3QtY2FuY2VsLmg+CiAjaW5jbHVkZSA8bGRzb2RlZnMu aD4KKyNpbmNsdWRlIDxzeXNjb25mLXNpZ3N0a3N6Lmg+CiAKIC8qIExlZ2FjeSB2YWx1ZSBvZiBB UkdfTUFYLiAgVGhlIG1hY3JvIGlzIG5vdyBub3QgZGVmaW5lZCBzaW5jZSB0aGUKICAgIGFjdHVh bCB2YWx1ZSB2YXJpZXMgYmFzZWQgb24gdGhlIHN0YWNrIHNpemUuICAqLwpAQCAtNzUsNiArNzcs MTMgQEAgX19zeXNjb25mIChpbnQgbmFtZSkKICAgICAgIH0KICAgICAgIGJyZWFrOwogCisgICAg Y2FzZSBfU0NfTUlOU0lHU1RLU1o6CisgICAgICBhc3NlcnQgKEdMUk8oZGxfbWluc2lnc3RhY2tz aXplKSAhPSAwKTsKKyAgICAgIHJldHVybiBHTFJPKGRsX21pbnNpZ3N0YWNrc2l6ZSk7CisKKyAg ICBjYXNlIF9TQ19TSUdTVEtTWjoKKyAgICAgIHJldHVybiBzeXNjb25mX3NpZ3N0a3N6ICgpOwor CiAgICAgZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3g4Ni9kbC1taW5zaWdzdGFja3NpemUuaCBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3g4Ni9kbC1taW5zaWdzdGFja3NpemUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi42MDg4YmJjOTllCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgveDg2L2RsLW1pbnNpZ3N0YWNrc2l6ZS5oCkBAIC0wLDAgKzEsODMgQEAK Ky8qIEVtdWxhdGUgQVRfTUlOU0lHU1RLU1ouICBMaW51eC94ODYgdmVyc2lvbi4KKyAgIENvcHly aWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBD IExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKworLyogRW11bGF0ZSBBVF9NSU5TSUdTVEtTWiB3aXRoIFhTQVZFLiAqLworCitzdGF0 aWMgaW5saW5lIHZvaWQKK2RsX2NoZWNrX21pbnNpZ3N0YWNrc2l6ZSAoY29uc3Qgc3RydWN0IGNw dV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzKQoreworICAvKiBSZXR1cm4gaWYgQVRfTUlOU0lHU1RL U1ogaXMgcHJvdmlkZSBieSBrZXJuZWwuICAqLworICBpZiAoR0xSTyhkbF9taW5zaWdzdGFja3Np emUpICE9IDApCisgICAgcmV0dXJuOworCisgIGlmIChjcHVfZmVhdHVyZXMtPmJhc2ljLm1heF9j cHVpZCA+PSAweGQKKyAgICAgICYmIENQVV9GRUFUVVJFU19DUFVfUCAoY3B1X2ZlYXR1cmVzLCBP U1hTQVZFKSkKKyAgICB7CisgICAgICAvKiBFbXVsYXRlIEFUX01JTlNJR1NUS1NaLiAgSW4gTGlu dXgga2VybmVsLCB0aGUgc2lnbmFsIGZyYW1lIGRhdGEKKwkgd2l0aCBYU0FWRSBpcyBjb21wb3Nl ZCBvZiB0aGUgZm9sbG93aW5nIGFyZWFzIGFuZCBsYWlkIG91dCBhczoKKwkgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisJIHwgYWxpZ25tZW50IHBhZGRpbmcgICAgICAgICAgfAorCSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgfCB4c2F2ZSBidWZmZXIgICAgICAgICAg ICAgICB8CisJIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSB8IGZzYXZlIGhlYWRl ciAoMzItYml0IG9ubHkpIHwKKwkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJIHwg c2lnaW5mbyArIHVjb250ZXh0ICAgICAgICAgfAorCSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKwkgKi8KKworICAgICAgdW5zaWduZWQgaW50IHNpZ2ZyYW1lX3NpemU7CisKKyNpZmRl ZiBfX3g4Nl82NF9fCisgICAgICAvKiBOQjogc2l6ZW9mKHN0cnVjdCBydF9zaWdmcmFtZSkgKyA4 LWJ5dGUgcmV0dXJuIGFkZHJlc3MgaW4gTGludXgKKwkga2VybmVsLiAgKi8KKyAgICAgIHNpZ2Zy YW1lX3NpemUgPSA0NDAgKyA4OworI2Vsc2UKKyAgICAgIC8qIE5COiBzaXplb2Yoc3RydWN0IHNp Z2ZyYW1lX2lhMzIpICsgc2l6ZW9mKHN0cnVjdCBmcmVnc19zdGF0ZSkpICsKKwkgNC1ieXRlIHJl dHVybiBhZGRyZXNzICsgMyAqIDQtYnl0ZSBhcmd1bWVudHMgaW4gTGludXgga2VybmVsLiAgKi8K KyAgICAgIHNpZ2ZyYW1lX3NpemUgPSA3MzYgKyAxMTIgKyA0ICsgMyAqIDQ7CisjZW5kaWYKKwor ICAgICAgLyogQWRkIDE1IGJ5dGVzIHRvIGFsaWduIHRoZSBzdGFjayB0byAxNiBieXRlcy4gICov CisgICAgICBzaWdmcmFtZV9zaXplICs9IDE1OworCisgICAgICAvKiBNYWtlIHRoZSBzcGFjZSBi ZWZvcmUgeHNhdmUgYnVmZmVyIG11bHRpcGxlIG9mIDE2IGJ5dGVzLiAgKi8KKyAgICAgIHNpZ2Zy YW1lX3NpemUgPSBBTElHTl9VUCAoc2lnZnJhbWVfc2l6ZSwgMTYpOworCisgICAgICAvKiBBZGQg KDY0IC0gMTYpLWJ5dGUgcGFkZGluZyB0byBhbGlnbiB4c2F2ZSBidWZmZXIgYXQgNjQgYnl0ZXMu ICAqLworICAgICAgc2lnZnJhbWVfc2l6ZSArPSA2NCAtIDE2OworCisgICAgICB1bnNpZ25lZCBp bnQgZWF4LCBlYngsIGVjeCwgZWR4OworICAgICAgX19jcHVpZF9jb3VudCAoMHhkLCAwLCBlYXgs IGVieCwgZWN4LCBlZHgpOworCisgICAgICAvKiBBZGQgdGhlIHNpemUgb2YgeHNhdmUgYnVmZmVy LiAgKi8KKyAgICAgIHNpZ2ZyYW1lX3NpemUgKz0gZWJ4OworCisgICAgICAvKiBBZGQgdGhlIHNp emUgb2YgRlBfWFNUQVRFX01BR0lDMi4gICovCisjZGVmaW5lIEZQX1hTVEFURV9NQUdJQzIgMHg0 NjUwNTg0NVUKKyAgICAgIHNpZ2ZyYW1lX3NpemUgKz0gc2l6ZW9mIChGUF9YU1RBVEVfTUFHSUMy KTsKKworICAgICAgR0xSTyhkbF9taW5zaWdzdGFja3NpemUpID0gc2lnZnJhbWVfc2l6ZTsKKyAg ICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBOQjogRGVmYXVsdCB0byBhIGNvbnN0YW50IE1J TlNJR1NUS1NaLiAgKi8KKyAgICAgIF9TdGF0aWNfYXNzZXJ0IChfX2J1aWx0aW5fY29uc3RhbnRf cCAoTUlOU0lHU1RLU1opLAorCQkgICAgICAiTUlOU0lHU1RLU1ogaXMgY29uc3RhbnQiKTsKKyAg ICAgIEdMUk8oZGxfbWluc2lnc3RhY2tzaXplKSA9IE1JTlNJR1NUS1NaOworICAgIH0KK30KZGlm ZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Ni9pbmNsdWRlL2JpdHMvc2lnc3Rh Y2suaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Ni9pbmNsdWRlL2JpdHMvc2lnc3RhY2su aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMDg3NTRjNDk3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2L2luY2x1ZGUvYml0cy9z aWdzdGFjay5oCkBAIC0wLDAgKzEsNSBAQAorI2luY2x1ZGVfbmV4dCA8Yml0cy9zaWdzdGFjay5o PgorCisjaWZuZGVmIF9JU09NQUMKKyMgZGVmaW5lIENPTlNUQU5UX01JTlNJR1NUS1NaIDAKKyNl bmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYvY3B1LWZlYXR1cmVzLmMgYi9zeXNkZXBzL3g4 Ni9jcHUtZmVhdHVyZXMuYwppbmRleCAwNmU0MzA3YjcxLi4zYTVlZTk5MDhkIDEwMDY0NAotLS0g YS9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuYworKysgYi9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVy ZXMuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGdldC1pc2EtbGV2ZWwuaD4KICNpbmNs dWRlIDxjYWNoZWluZm8uaD4KICNpbmNsdWRlIDxkbC1jYWNoZWluZm8uaD4KKyNpbmNsdWRlIDxk bC1taW5zaWdzdGFja3NpemUuaD4KIAogI2lmIEhBVkVfVFVOQUJMRVMKIGV4dGVybiB2b2lkIFRV TkFCTEVfQ0FMTEJBQ0sgKHNldF9od2NhcHMpICh0dW5hYmxlX3ZhbF90ICopCkBAIC0zNjIsNiAr MzYzLDggQEAgZ2V0X2NvbW1vbl9pbmRpY2VzIChzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVh dHVyZXMsCiAJCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lOREVYXzE5 XS5jcHVpZC5lYngsCiAJCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQVUlEX0lO REVYXzE5XS5jcHVpZC5lY3gsCiAJCSAgIGNwdV9mZWF0dXJlcy0+ZmVhdHVyZXNbQ09NTU9OX0NQ VUlEX0lOREVYXzE5XS5jcHVpZC5lZHgpOworCisgIGRsX2NoZWNrX21pbnNpZ3N0YWNrc2l6ZSAo Y3B1X2ZlYXR1cmVzKTsKIH0KIAogX1N0YXRpY19hc3NlcnQgKCgoaW5kZXhfYXJjaF9GYXN0X1Vu YWxpZ25lZF9Mb2FkCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni9kbC1taW5zaWdzdGFja3NpemUu aCBiL3N5c2RlcHMveDg2L2RsLW1pbnNpZ3N0YWNrc2l6ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjk1OTg3MWM5NzAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBz L3g4Ni9kbC1taW5zaWdzdGFja3NpemUuaApAQCAtMCwwICsxLDI3IEBACisvKiBFbXVsYXRlIEFU X01JTlNJR1NUS1NaLiAgR2VuZXJpYyB4ODYgdmVyc2lvbi4KKyAgIENvcHlyaWdodCAoQykgMjAy MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyog RW11bGF0ZSBBVF9NSU5TSUdTVEtTWiB3aXRoIFhTQVZFLiAqLworCitzdGF0aWMgaW5saW5lIHZv aWQKK2RsX2NoZWNrX21pbnNpZ3N0YWNrc2l6ZSAoY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAq Y3B1X2ZlYXR1cmVzKQoreworICAvKiBOQjogRGVmYXVsdCB0byBhIGNvbnN0YW50IE1JTlNJR1NU S1NaLiAgKi8KKyAgX1N0YXRpY19hc3NlcnQgKF9fYnVpbHRpbl9jb25zdGFudF9wIChNSU5TSUdT VEtTWiksCisJCSAgIk1JTlNJR1NUS1NaIGlzIGNvbnN0YW50Iik7CisgIEdMUk8oZGxfbWluc2ln c3RhY2tzaXplKSA9IE1JTlNJR1NUS1NaOworfQotLSAKMi4yOS4yCgo= --000000000000871b7705b9564bf8--