From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D011CC3DA6F for ; Thu, 24 Aug 2023 08:51:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sfX0omMPZ/R9Kkt3Li/JAVTCKC3WR9JHoxev4lqutxg=; b=xmyhaU2O+75kkv uV3aD0TZ+rcZ4uTQjjkL5Tm6coIu6HL1+xRXirI5wgC0BSSbObNi8yyIBgWH26DRqTC5cWAB7Ff2Q 2KANTh9sj2HDD/sJ9l25xNdnVPg5xkscPGBK/3JE4WtwzF0gOUuv/IEWkST1zwSgpo0IdWUWOLg/H 9NKGbeQssg2gv68+5myX/ooX0kzxVKNwf01gL5sJVavIdyowvPcuL2Mf05kb3+aKBjrkKojs2r3pW N1XJNSVcg9oQByhyEGVA6MgWExXm4ZZjtJOrx/0pEsuciUFnyFonPOOQGhoMH+QpN0eVl2uvANJXa ZRbjEzsq8dYlKcoXg6XQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qZ631-002cjp-1j; Thu, 24 Aug 2023 08:50:35 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qZ62r-002ch6-14 for linux-arm-kernel@lists.infradead.org; Thu, 24 Aug 2023 08:50:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692867021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O4t2CZ+6tbdAT1IpnUCc5NRn2/e0Kmg0+Pq6tGGnhxA=; b=iSa1sKzC8qeizkQwPY3V2kdZij8TcgH4lRx+sj9g4FqbiIDVspUbO6V6gYb6PY1ZkaNx1v 5PYbrgLxJIojXZlLWrqPM2jJVAHhZRHAph4AECVVY+14iTHQvl4b+a6m+c2DtcDM6oM0jq k36je/PaZu/MV6Xq6776mZk3C1XRvFI= Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-192-PuOaikdlNMq3ML7nB5snMQ-1; Thu, 24 Aug 2023 04:50:19 -0400 X-MC-Unique: PuOaikdlNMq3ML7nB5snMQ-1 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-1bf43b0131cso12207515ad.0 for ; Thu, 24 Aug 2023 01:50:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692867017; x=1693471817; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=O4t2CZ+6tbdAT1IpnUCc5NRn2/e0Kmg0+Pq6tGGnhxA=; b=UNC698jx/UnTm0fzvdR7IXKgxuukaa6EIL3YRgz5U5rqS7vJ9fecgO6XWxo0JuY3l9 YjAVYXBEcKY1jdbYy74zYMILMTwmmWKZBGThwk+twl64olgU9nq6bGWCt1Zt2xMhjaFG 4bTisQbhG23Fe0PwQf7tzp/W5989vNaH/DHK41Kd4k9tmhxxD4xEZm4G22pbrKzi6x4q j7iE32JFrAYCLsol9A8vkIwQye+duAfG9Df3s/Nlo25K+uVYosDSOXh+P5NXct+z4Wxd 7xZggTYOQdYMtT5ecridEo2LlrrwqYIjjTjbQHu1DBuh8uOTyGoFrF6mNRlRdcua7NJJ gLuA== X-Gm-Message-State: AOJu0YyaVaNsqMI40GMciZOZwvaLCqwGZnlXcdEuxQNQi8DgtbFJ8rx/ js3KDlz9Nz7xjInkkrMhJsdaY1C0w9kK7mtjNWT+7x2LDCmhTtjKAgcpoJTskqOcKnKtEd21lMK RhrmscKNJa58SMPEfZ4VFgbbJuIz7a0Eb8Qk= X-Received: by 2002:a17:902:f68f:b0:1b8:aded:524c with SMTP id l15-20020a170902f68f00b001b8aded524cmr16617199plg.1.1692867017757; Thu, 24 Aug 2023 01:50:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEBWJObKjQLu7fh6BtSGhE/EC3pXQ307ZfD5VMY6ZyV4E+5CWM79low6Kc7uMjsCU19tiMc4w== X-Received: by 2002:a17:902:f68f:b0:1b8:aded:524c with SMTP id l15-20020a170902f68f00b001b8aded524cmr16617181plg.1.1692867017445; Thu, 24 Aug 2023 01:50:17 -0700 (PDT) Received: from [10.72.112.250] ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id e12-20020a170902d38c00b001bdf046ed71sm12262137pld.120.2023.08.24.01.50.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Aug 2023 01:50:16 -0700 (PDT) Message-ID: Date: Thu, 24 Aug 2023 16:50:12 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v5 08/12] KVM: arm64: PMU: Allow userspace to limit PMCR_EL0.N for the guest To: Raghavendra Rao Ananta Cc: Oliver Upton , Marc Zyngier , Alexandru Elisei , James Morse , Suzuki K Poulose , Paolo Bonzini , Zenghui Yu , Jing Zhang , Reiji Watanabe , Colton Lewis , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, kvm@vger.kernel.org References: <20230817003029.3073210-1-rananta@google.com> <20230817003029.3073210-9-rananta@google.com> <1c6c07af-f6d0-89a6-1b7d-164ca100ac88@redhat.com> From: Shaoqin Huang In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230824_015025_457337_FBBEF8B3 X-CRM114-Status: GOOD ( 33.09 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiA4LzI0LzIzIDAwOjA2LCBSYWdoYXZlbmRyYSBSYW8gQW5hbnRhIHdyb3RlOgo+IE9uIFR1 ZSwgQXVnIDIyLCAyMDIzIGF0IDM6MDbigK9BTSBTaGFvcWluIEh1YW5nIDxzaGFodWFuZ0ByZWRo YXQuY29tPiB3cm90ZToKPj4KPj4gSGkgUmFnaGF2ZW5kcmEsCj4+Cj4+IE9uIDgvMTcvMjMgMDg6 MzAsIFJhZ2hhdmVuZHJhIFJhbyBBbmFudGEgd3JvdGU6Cj4+PiBGcm9tOiBSZWlqaSBXYXRhbmFi ZSA8cmVpaml3QGdvb2dsZS5jb20+Cj4+Pgo+Pj4gS1ZNIGRvZXMgbm90IHlldCBzdXBwb3J0IHVz ZXJzcGFjZSBtb2RpZnlpbmcgUE1DUl9FTDAuTiAoV2l0aAo+Pj4gdGhlIHByZXZpb3VzIHBhdGNo LCBLVk0gaWdub3JlcyB3aGF0IGlzIHdyaXR0ZW4gYnkgdXBzZXJzcGFjZSkuCj4+PiBBZGQgc3Vw cG9ydCB1c2Vyc3BhY2UgbGltaXRpbmcgUE1DUl9FTDAuTi4KPj4+Cj4+PiBEaXNhbGxvdyB1c2Vy c3BhY2UgdG8gc2V0IFBNQ1JfRUwwLk4gdG8gYSB2YWx1ZSB0aGF0IGlzIGdyZWF0ZXIKPj4+IHRo YW4gdGhlIGhvc3QgdmFsdWUgKEtWTV9TRVRfT05FX1JFRyB3aWxsIGZhaWwpLCBhcyBLVk0gZG9l c24ndAo+Pj4gc3VwcG9ydCBtb3JlIGV2ZW50IGNvdW50ZXJzIHRoYW4gdGhlIGhvc3QgSFcgaW1w bGVtZW50cy4KPj4+IEFsdGhvdWdoIHRoaXMgaXMgYW4gQUJJIGNoYW5nZSwgdGhpcyBjaGFuZ2Ug b25seSBhZmZlY3RzCj4+PiB1c2Vyc3BhY2Ugc2V0dGluZyBQTUNSX0VMMC5OIHRvIGEgbGFyZ2Vy IHZhbHVlIHRoYW4gdGhlIGhvc3QuCj4+PiBBcyBhY2Nlc3NlcyB0byB1bmFkdmVydGlzZWQgZXZl bnQgY291bnRlcnMgaW5kaWNlcyBpcyBDT05TVFJBSU5FRAo+Pj4gVU5QUkVESUNUQUJMRSBiZWhh dmlvciwgYW5kIFBNQ1JfRUwwLk4gd2FzIHJlc2V0IHRvIHRoZSBob3N0IHZhbHVlCj4+PiBvbiBl dmVyeSB2Q1BVIHJlc2V0IGJlZm9yZSB0aGlzIHNlcmllcywgSSBjYW4ndCB0aGluayBvZiBhbnkK Pj4+IHVzZSBjYXNlIHdoZXJlIGEgdXNlciBzcGFjZSB3b3VsZCBkbyB0aGF0Lgo+Pj4KPj4+IEFs c28sIGlnbm9yZSB3cml0ZXMgdG8gcmVhZC1vbmx5IGJpdHMgdGhhdCBhcmUgY2xlYXJlZCBvbiB2 Q1BVIHJlc2V0LAo+Pj4gYW5kIFJFU3swLDF9IGJpdHMgKGluY2x1ZGluZyB3cml0YWJsZSBiaXRz IHRoYXQgS1ZNIGRvZXNuJ3Qgc3VwcG9ydAo+Pj4geWV0KSwgYXMgdGhvc2UgYml0cyBzaG91bGRu J3QgYmUgbW9kaWZpZWQgKGF0IGxlYXN0IHdpdGgKPj4+IHRoZSBjdXJyZW50IEtWTSkuCj4+Pgo+ Pj4gU2lnbmVkLW9mZi1ieTogUmVpamkgV2F0YW5hYmUgPHJlaWppd0Bnb29nbGUuY29tPgo+Pj4g U2lnbmVkLW9mZi1ieTogUmFnaGF2ZW5kcmEgUmFvIEFuYW50YSA8cmFuYW50YUBnb29nbGUuY29t Pgo+Pj4gLS0tCj4+PiAgICBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggfCAgMyAr Kwo+Pj4gICAgYXJjaC9hcm02NC9rdm0vcG11LWVtdWwuYyAgICAgICAgIHwgIDEgKwo+Pj4gICAg YXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQo+Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNt L2t2bV9ob3N0LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPj4+IGluZGV4 IDBmMmRiYmU4ZjZhN2UuLmMxNWVjMzY1MjgzZDEgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL2FybTY0 L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v a3ZtX2hvc3QuaAo+Pj4gQEAgLTI1OSw2ICsyNTksOSBAQCBzdHJ1Y3Qga3ZtX2FyY2ggewo+Pj4g ICAgICAgIC8qIFBNQ1JfRUwwLk4gdmFsdWUgZm9yIHRoZSBndWVzdCAqLwo+Pj4gICAgICAgIHU4 IHBtY3JfbjsKPj4+Cj4+PiArICAgICAvKiBMaW1pdCB2YWx1ZSBvZiBQTUNSX0VMMC5OIGZvciB0 aGUgZ3Vlc3QgKi8KPj4+ICsgICAgIHU4IHBtY3Jfbl9saW1pdDsKPj4+ICsKPj4+ICAgICAgICAv KiBIeXBlcmNhbGwgZmVhdHVyZXMgZmlybXdhcmUgcmVnaXN0ZXJzJyBkZXNjcmlwdG9yICovCj4+ PiAgICAgICAgc3RydWN0IGt2bV9zbWNjY19mZWF0dXJlcyBzbWNjY19mZWF0Owo+Pj4gICAgICAg IHN0cnVjdCBtYXBsZV90cmVlIHNtY2NjX2ZpbHRlcjsKPj4+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2t2bS9wbXUtZW11bC5jIGIvYXJjaC9hcm02NC9rdm0vcG11LWVtdWwuYwo+Pj4gaW5kZXgg Y2U3ZGU2YmJkYzk2Ny4uMzlhZDU2YTcxYWQyMCAxMDA2NDQKPj4+IC0tLSBhL2FyY2gvYXJtNjQv a3ZtL3BtdS1lbXVsLmMKPj4+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL3BtdS1lbXVsLmMKPj4+IEBA IC04OTYsNiArODk2LDcgQEAgaW50IGt2bV9hcm1fc2V0X3ZtX3BtdShzdHJ1Y3Qga3ZtICprdm0s IHN0cnVjdCBhcm1fcG11ICphcm1fcG11KQo+Pj4gICAgICAgICAqIHdoaWxlIHRoZSBsYXR0ZXIg ZG9lcyBub3QuCj4+PiAgICAgICAgICovCj4+PiAgICAgICAga3ZtLT5hcmNoLnBtY3JfbiA9IGFy bV9wbXUtPm51bV9ldmVudHMgLSAxOwo+Pj4gKyAgICAga3ZtLT5hcmNoLnBtY3Jfbl9saW1pdCA9 IGFybV9wbXUtPm51bV9ldmVudHMgLSAxOwo+Pj4KPj4+ICAgICAgICByZXR1cm4gMDsKPj4+ICAg IH0KPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9hcm02 NC9rdm0vc3lzX3JlZ3MuYwo+Pj4gaW5kZXggMjA3NTkwMTM1NmM1Yi4uYzAxZDYyYWZhN2RiNCAx MDA2NDQKPj4+IC0tLSBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKPj4+ICsrKyBiL2FyY2gv YXJtNjQva3ZtL3N5c19yZWdzLmMKPj4+IEBAIC0xMDg2LDYgKzEwODYsNTEgQEAgc3RhdGljIGlu dCBnZXRfcG1jcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rl c2MgKnIsCj4+PiAgICAgICAgcmV0dXJuIDA7Cj4+PiAgICB9Cj4+Pgo+Pj4gK3N0YXRpYyBpbnQg c2V0X3BtY3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNj ICpyLAo+Pj4gKyAgICAgICAgICAgICAgICAgdTY0IHZhbCkKPj4+ICt7Cj4+PiArICAgICBzdHJ1 Y3Qga3ZtICprdm0gPSB2Y3B1LT5rdm07Cj4+PiArICAgICB1NjQgbmV3X24sIG11dGFibGVfbWFz azsKPj4+ICsgICAgIGludCByZXQgPSAwOwo+Pj4gKwo+Pj4gKyAgICAgbmV3X24gPSBGSUVMRF9H RVQoQVJNVjhfUE1VX1BNQ1JfTiwgdmFsKTsKPj4+ICsKPj4+ICsgICAgIG11dGV4X2xvY2soJmt2 bS0+YXJjaC5jb25maWdfbG9jayk7Cj4+PiArICAgICBpZiAodW5saWtlbHkobmV3X24gIT0ga3Zt LT5hcmNoLnBtY3JfbikpIHsKPj4+ICsgICAgICAgICAgICAgLyoKPj4+ICsgICAgICAgICAgICAg ICogVGhlIHZDUFUgY2FuJ3QgaGF2ZSBtb3JlIGNvdW50ZXJzIHRoYW4gdGhlIFBNVQo+Pj4gKyAg ICAgICAgICAgICAgKiBoYXJkd2FyZSBpbXBsZW1lbnRzLgo+Pj4gKyAgICAgICAgICAgICAgKi8K Pj4+ICsgICAgICAgICAgICAgaWYgKG5ld19uIDw9IGt2bS0+YXJjaC5wbWNyX25fbGltaXQpCj4+ PiArICAgICAgICAgICAgICAgICAgICAga3ZtLT5hcmNoLnBtY3JfbiA9IG5ld19uOwo+Pj4gKyAg ICAgICAgICAgICBlbHNlCj4+PiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsK Pj4+ICsgICAgIH0KPj4+ICsgICAgIG11dGV4X3VubG9jaygma3ZtLT5hcmNoLmNvbmZpZ19sb2Nr KTsKPj4KPj4gQW5vdGhlciB0aGluZyBJIGFtIGp1c3Qgd29uZGVyIGlzIHRoYXQgc2hvdWxkIHdl IGJsb2NrIGFueSBtb2RpZmljYXRpb24KPj4gdG8gdGhlIHBtY3JfbiBhZnRlciB2bSBzdGFydCB0 byBydW4/IExpa2UgYWRkIG9uZSBtb3JlIGNoZWNraW5nCj4+IGt2bV92bV9oYXNfcmFuX29uY2Uo KSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZXRfcG1jcigpIGZ1bmN0aW9uLgo+Pgo+IFRoYW5r cyBmb3IgYnJpbmdpbmcgaXQgdXAuIFJlaWppIGFuZCBJIGRpc2N1c3NlZCBhYm91dCB0aGlzLiBD aGVja2luZwo+IGZvciBrdm1fdm1faGFzX3Jhbl9vbmNlKCkgd2lsbCBiZSBhIGdvb2QgbW92ZSwg aG93ZXZlciwgaXQgd2lsbCBnbwo+IGFnYWluc3QgdGhlIEFCSSBleHBlY3RhdGlvbnMgb2Ygc2V0 dGluZyB0aGUgUE1DUi4gSSdkIGxpa2Ugb3RoZXJzIHRvCj4gd2VpZ2ggaW4gb24gdGhpcyBhcyB3 ZWxsLiBXaGF0IGRvIHlvdSB0aGluaz8KPiAKPiBUaGFuayB5b3UuCj4gUmFnaGF2ZW5kcmEKCkJl Zm9yZSB0aGlzIGNoYW5nZSwga3ZtIG5vdCBhbGxvd2VkIHVzZXJzcGFjZSB0byBjaGFuZ2UgdGhl IHBtY3JfbiwgYnV0IAphbGxvd2VkIHRvIGNoYW5nZSB0aGUgbG93ZXIgQVJNVjhfUE1VX1BNQ1Jf TUFTSyBiaXRzLiBXaXRoIHRoaXMgY2hhbmdlLCAKd2Ugbm93IGFsbG93IHRvIGNoYW5nZSB0aGUg cG1jcl9uLCB3ZSBzaG91bGQgbm90IGJsb2NrIHRoZSBjaGFuZ2UgdG8gCkFSTVY4X1BNVV9QTUNS X01BU0sgYWZ0ZXIgdm0gc3RhcnQgdG8gcnVuLCBidXQgaG93IGFib3V0IHdlIGp1c3QgYmxvY2sg CnRoZSBjaGFuZ2UgdG8gQVJNVjhfUE1VX1BNQ1JfTiBhZnRlciB2bSBzdGFydCB0byBydW4/CgpU aGFua3MsClNoYW9xaW4KCj4+IFRoYW5rcywKPj4gU2hhb3Fpbgo+Pgo+Pj4gKyAgICAgaWYgKHJl dCkKPj4+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICsKPj4+ICsgICAgIC8qCj4+PiAr ICAgICAgKiBJZ25vcmUgd3JpdGVzIHRvIFJFUzAgYml0cywgcmVhZCBvbmx5IGJpdHMgdGhhdCBh cmUgY2xlYXJlZCBvbgo+Pj4gKyAgICAgICogdkNQVSByZXNldCwgYW5kIHdyaXRhYmxlIGJpdHMg dGhhdCBLVk0gZG9lc24ndCBzdXBwb3J0IHlldC4KPj4+ICsgICAgICAqIChpLmUuIG9ubHkgUE1D Ui5OIGFuZCBiaXRzIFs3OjBdIGFyZSBtdXRhYmxlIGZyb20gdXNlcnNwYWNlKQo+Pj4gKyAgICAg ICogVGhlIExQIGJpdCBpcyBSRVMwIHdoZW4gRkVBVF9QTVV2M3A1IGlzIG5vdCBzdXBwb3J0ZWQg b24gdGhlIHZDUFUuCj4+PiArICAgICAgKiBCdXQsIHdlIGxlYXZlIHRoZSBiaXQgYXMgaXQgaXMg aGVyZSwgYXMgdGhlIHZDUFUncyBQTVV2ZXIgbWlnaHQKPj4+ICsgICAgICAqIGJlIGNoYW5nZWQg bGF0ZXIgKE5PVEU6IHRoZSBiaXQgd2lsbCBiZSBjbGVhcmVkIG9uIGZpcnN0IHZDUFUgcnVuCj4+ PiArICAgICAgKiBpZiBuZWNlc3NhcnkpLgo+Pj4gKyAgICAgICovCj4+PiArICAgICBtdXRhYmxl X21hc2sgPSAoQVJNVjhfUE1VX1BNQ1JfTUFTSyB8IEFSTVY4X1BNVV9QTUNSX04pOwo+Pj4gKyAg ICAgdmFsICY9IG11dGFibGVfbWFzazsKPj4+ICsgICAgIHZhbCB8PSAoX192Y3B1X3N5c19yZWco dmNwdSwgci0+cmVnKSAmIH5tdXRhYmxlX21hc2spOwo+Pj4gKwo+Pj4gKyAgICAgLyogVGhlIExD IGJpdCBpcyBSRVMxIHdoZW4gQUFyY2gzMiBpcyBub3Qgc3VwcG9ydGVkICovCj4+PiArICAgICBp ZiAoIWt2bV9zdXBwb3J0c18zMmJpdF9lbDAoKSkKPj4+ICsgICAgICAgICAgICAgdmFsIHw9IEFS TVY4X1BNVV9QTUNSX0xDOwo+Pj4gKwo+Pj4gKyAgICAgX192Y3B1X3N5c19yZWcodmNwdSwgci0+ cmVnKSA9IHZhbDsKPj4+ICsgICAgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICAgIC8qIFNp bGx5IG1hY3JvIHRvIGV4cGFuZCB0aGUgREJHe0JDUixCVlIsV1ZSLFdDUn1uX0VMMSByZWdpc3Rl cnMgaW4gb25lIGdvICovCj4+PiAgICAjZGVmaW5lIERCR19CQ1JfQlZSX1dDUl9XVlJfRUwxKG4p ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4+ICAgICAgICB7IFNZU19ERVND KFNZU19EQkdCVlJuX0VMMShuKSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ Pj4gQEAgLTIxNDcsOCArMjE5Miw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNj IHN5c19yZWdfZGVzY3NbXSA9IHsKPj4+ICAgICAgICB7IFNZU19ERVNDKFNZU19DVFJfRUwwKSwg YWNjZXNzX2N0ciB9LAo+Pj4gICAgICAgIHsgU1lTX0RFU0MoU1lTX1NWQ1IpLCB1bmRlZl9hY2Nl c3MgfSwKPj4+Cj4+PiAtICAgICB7IFBNVV9TWVNfUkVHKFBNQ1JfRUwwKSwgLmFjY2VzcyA9IGFj Y2Vzc19wbWNyLAo+Pj4gLSAgICAgICAucmVzZXQgPSByZXNldF9wbWNyLCAucmVnID0gUE1DUl9F TDAsIC5nZXRfdXNlciA9IGdldF9wbWNyIH0sCj4+PiArICAgICB7IFBNVV9TWVNfUkVHKFBNQ1Jf RUwwKSwgLmFjY2VzcyA9IGFjY2Vzc19wbWNyLCAucmVzZXQgPSByZXNldF9wbWNyLAo+Pj4gKyAg ICAgICAucmVnID0gUE1DUl9FTDAsIC5nZXRfdXNlciA9IGdldF9wbWNyLCAuc2V0X3VzZXIgPSBz ZXRfcG1jciB9LAo+Pj4gICAgICAgIHsgUE1VX1NZU19SRUcoUE1DTlRFTlNFVF9FTDApLAo+Pj4g ICAgICAgICAgLmFjY2VzcyA9IGFjY2Vzc19wbWNudGVuLCAucmVnID0gUE1DTlRFTlNFVF9FTDAg fSwKPj4+ICAgICAgICB7IFBNVV9TWVNfUkVHKFBNQ05URU5DTFJfRUwwKSwKPj4KPj4gLS0KPj4g U2hhb3Fpbgo+Pgo+IAoKLS0gClNoYW9xaW4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==