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 2FD75C54E71 for ; Fri, 22 Mar 2024 10:45:56 +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=Y3vy+kAG2uQtVm83uXsJmyHrpZNh1EbC5Wfb/J2zIfo=; b=kD5THOFBAJTYcq 1FDF5fdy1n4APAtlBM6kWU7QEKHRxzTJ+ExFxFMFDubhgBLiB424W5e5yBMTM2OUrOcOGi1NgK6iI 6GqUIX4EAUE6CFmAz7VrcZsINfg9oFOYN8MxYy5WSDtCi4xnFcq8cwL78k5Xz8EQG+K75CzmNDF5+ IB7keHsV+fRDwJHjyASzj7LDYdwf3FwOp4ipZB19vyfJKr2eMeGeTYnPALvc/ocZWWcQ/qkhWLueZ BBfHvarRF8kCzhKgYde0cnD3UC0guWMdUjbplZfzfnVFi20A44jITNg6zGUxV+/M85Ol6iIfd10UI oNk5CJMLpYIq+V6wUCNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rncP5-00000006qe5-40dg; Fri, 22 Mar 2024 10:45:39 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rncP2-00000006qdL-3Hyk for linux-arm-kernel@lists.infradead.org; Fri, 22 Mar 2024 10:45:38 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BF7D41007; Fri, 22 Mar 2024 03:46:08 -0700 (PDT) Received: from [10.57.71.57] (unknown [10.57.71.57]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9B4BE3F64C; Fri, 22 Mar 2024 03:45:32 -0700 (PDT) Message-ID: Date: Fri, 22 Mar 2024 10:45:30 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V3 2/2] cpufreq: scmi: Register for limit change notifications Content-Language: en-US To: Sibi Sankar Cc: sudeep.holla@arm.com, Cristian Marussi , linux-arm-kernel@lists.infradead.org, pierre.gondois@arm.com, dietmar.eggemann@arm.com, morten.rasmussen@arm.com, viresh.kumar@linaro.org, rafael@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_mdtipton@quicinc.com, linux-arm-msm@vger.kernel.org References: <20240227181632.659133-1-quic_sibis@quicinc.com> <20240227181632.659133-3-quic_sibis@quicinc.com> <2608b2d8-f3b0-b4f5-f8e4-1f2242043ded@quicinc.com> <64c6a1bc-92f2-4f44-ab10-cbd2473746f3@arm.com> <18c249b2-ce8c-435b-8d65-a1770a1f294e@arm.com> <7c82b316-89d9-470d-b46d-f86e81e2add3@arm.com> <66ca73cc-8bdd-453a-951c-5e0166340edd@arm.com> <08018d07-79cf-cebd-aba5-214afbc5001d@quicinc.com> From: Lukasz Luba In-Reply-To: <08018d07-79cf-cebd-aba5-214afbc5001d@quicinc.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240322_034536_949317_1C8BBA9B X-CRM114-Status: GOOD ( 37.03 ) 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 SGkgU2liaSwKCk9uIDMvMS8yNCAwNTozMSwgU2liaSBTYW5rYXIgd3JvdGU6Cj4gCj4gCj4gT24g Mi8yOS8yNCAxOTo0NSwgTHVrYXN6IEx1YmEgd3JvdGU6Cj4+Cj4+Cj4+IE9uIDIvMjkvMjQgMTI6 MTEsIENyaXN0aWFuIE1hcnVzc2kgd3JvdGU6Cj4+PiBPbiBUaHUsIEZlYiAyOSwgMjAyNCBhdCAx MTo0NTo0MUFNICswMDAwLCBMdWthc3ogTHViYSB3cm90ZToKPj4+Pgo+Pj4+Cj4+Pj4gT24gMi8y OS8yNCAxMToyOCwgQ3Jpc3RpYW4gTWFydXNzaSB3cm90ZToKPj4+Pj4gT24gVGh1LCBGZWIgMjks IDIwMjQgYXQgMTA6MjI6MzlBTSArMDAwMCwgTHVrYXN6IEx1YmEgd3JvdGU6Cj4+Pj4+Pgo+Pj4+ Pj4KPj4+Pj4+IE9uIDIvMjkvMjQgMDk6NTksIEx1a2FzeiBMdWJhIHdyb3RlOgo+Pj4+Pj4+Cj4+ Pj4+Pj4KPj4+Pj4+PiBPbiAyLzI4LzI0IDE3OjAwLCBTaWJpIFNhbmthciB3cm90ZToKPj4+Pj4+ Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24gMi8yOC8yNCAxODo1NCwgTHVrYXN6IEx1YmEgd3JvdGU6 Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIDIvMjcvMjQgMTg6MTYsIFNpYmkgU2Fu a2FyIHdyb3RlOgo+Pj4+Pj4+Pj4+IFJlZ2lzdGVyIGZvciBsaW1pdCBjaGFuZ2Ugbm90aWZpY2F0 aW9ucyBpZiBzdXBwb3J0ZWQgYW5kIHVzZQo+Pj4+Pj4+Pj4+IHRoZSB0aHJvdHRsZWQKPj4+Pj4+ Pj4+PiBmcmVxdWVuY3kgZnJvbSB0aGUgbm90aWZpY2F0aW9uIHRvIGFwcGx5IEhXIHByZXNzdXJl Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBMdWthc3osCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRoYW5rcyBmb3Ig dGFraW5nIHRpbWUgdG8gcmV2aWV3IHRoZSBzZXJpZXMhCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBTaWJpIFNhbmthciA8cXVpY19zaWJpc0BxdWljaW5jLmNv bT4KPj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IHYzOgo+Pj4+Pj4+Pj4+ICog U2FuaXRpemUgcmFuZ2VfbWF4IHJlY2VpdmVkIGZyb20gdGhlIG5vdGlmaWVyLiBbUGllcnJlXQo+ Pj4+Pj4+Pj4+ICogVXBkYXRlIGNvbW1pdCBtZXNzYWdlLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4g w6/Cv8K9IGRyaXZlcnMvY3B1ZnJlcS9zY21pLWNwdWZyZXEuYyB8IDI5IAo+Pj4+Pj4+Pj4+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKystCj4+Pj4+Pj4+Pj4gw6/Cv8K9IDEgZmlsZSBjaGFu Z2VkLCAyOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL3NjbWktY3B1ZnJlcS5jCj4+Pj4+Pj4+Pj4g Yi9kcml2ZXJzL2NwdWZyZXEvc2NtaS1jcHVmcmVxLmMKPj4+Pj4+Pj4+PiBpbmRleCA3NmEwZGRi ZDlkMjQuLjc4Yjg3YjcyOTYyZCAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2NwdWZy ZXEvc2NtaS1jcHVmcmVxLmMKPj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2NwdWZyZXEvc2NtaS1j cHVmcmVxLmMKPj4+Pj4+Pj4+PiBAQCAtMjUsOSArMjUsMTMgQEAgc3RydWN0IHNjbWlfZGF0YSB7 Cj4+Pj4+Pj4+Pj4gw6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9IGludCBkb21haW5faWQ7 Cj4+Pj4+Pj4+Pj4gw6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9IGludCBucl9vcHA7Cj4+ Pj4+Pj4+Pj4gw6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9w6/Cv8K9IHN0cnVjdCBkZXZpY2UgKmNw dV9kZXY7Cj4+Pj4+Pj4+Pj4gK8Ovwr/CvcOvwr/CvcOvwr/CvSBzdHJ1Y3QgY3B1ZnJlcV9wb2xp Y3kgKnBvbGljeTsKPj4+Pj4+Pj4+PiDDr8K/wr3Dr8K/wr3Dr8K/wr3Dr8K/wr3Dr8K/wr0gY3B1 bWFza192YXJfdCBvcHBfc2hhcmVkX2NwdXM7Cj4+Pj4+Pj4+Pj4gK8Ovwr/CvcOvwr/CvcOvwr/C vSBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbGltaXRfbm90aWZ5X25iOwo+Pj4+Pj4+Pj4+IMOvwr/C vSB9Owo+Pj4+Pj4+Pj4+ICtjb25zdCBzdHJ1Y3Qgc2NtaV9oYW5kbGUgKmhhbmRsZTsKPj4+Pj4+ Pgo+Pj4+Pj4+IEkndmUgbWlzc2VkIHRoaXMgYml0IGhlcmUuCj4+Pj4+Pgo+Pj4+Pj4gU28gZm9y IHRoaXMgY2hhbmdlIHdlIGFjdHVhbGx5IGhhdmUgdG8gYXNrIENyaXN0aWFuIG9yIFN1ZGVlcAo+ Pj4+Pj4gYmVjYXVzZSBJJ20gbm90IHN1cmUgaWYgd2UgaGF2ZSBvbmx5IG9uZSAnaGFuZGxlJyBp bnN0YW5jZQo+Pj4+Pj4gZm9yIGFsbCBjcHVmcmVxIGRldmljZXMuCj4+Pj4+Pgo+Pj4+Pj4gSWYg d2UgaGF2ZSBkaWZmZXJlbnQgJ2hhbmRsZScgd2UgY2Fubm90IG1vdmUgaXQgdG8gdGhlCj4+Pj4+ PiBnbG9iYWwgc2luZ2xlIHBvaW50ZXIuCj4+Pj4+Pgo+Pj4+Pj4gU3VkZWVwLCBDcmlzdGlhbiB3 aGF0IGRvIHlvdSB0aGluaz8KPj4+Pj4KPj4+Pj4gSSB3YXMganVzdCByZXBseWluZyBub3RpY2lu ZyB0aGlzIDpEIC4uLi4gc2luY2UgU0NNSSBkcml2ZXJzIGNhbiBiZQo+Pj4+PiBwcm9iZWQgbXVs dGlwbGUgdGltZXMgSUYgeW91IGRlZmluZWQgbXVsdGlwbGUgc2NtaSB0b3Agbm9kZXMgaW4gCj4+ Pj4+IHlvdXIgRFQKPj4+Pj4gY29udGFpbmluZyB0aGUgc2FtZSBwcm90b2NvbCBub2RlcywgdGhl eSByZWNlaXZlIGEgZGlzdGluY3QgCj4+Pj4+IHNkZXYvaGFuZGxlL3BoCj4+Pj4+IGZvciBlYWNo IHByb2JlLi4uc28gYW55IGF0dGVtcHQgdG8gZ2xvYmFsaXplIHRoZXNlIHdvbnQgd29yay4uLkJV VC4uLgo+Pj4+Pgo+Pj4+PiAuLi50aGlzIGlzIGEgYml0IG9mIGEgd2VpcmQgc2V0dXAgQlVUIGl0 IGlzIG5vdCBhZ2FpbnN0IHRoZSBzcGVjIAo+Pj4+PiBhbmQgaXQgY2FuCj4+Pj4+IGJlIHVzZWQg dG8gcGFyYWxsZWxpemUgbW9yZSB0aGUgU0NNSSBhY2Nlc3NlcyB0byBkaXNqb250IHNldCBvZiAK Pj4+Pj4gcmVzb3VyY2VzCj4+Pj4+IHdpdGhpbiB0aGUgc2FtZSBwcm90b2NvbCAoYSBsb25nIHN0 b3J5IGhlcmUuLi4pIEFORCB0aGlzIHR5cGUgb2YgCj4+Pj4+IHNldHVwIGlzCj4+Pj4+IHNvbWV0 aGluZyB0aGF0IGl0IGlzIGFscmVhZHkgdXNlZCBieSBzb21lIG90aGVyIGNvbGxlYWd1ZXMgb2Yg U2liaSAKPj4+Pj4gd29ya2luZwo+Pj4+PiBvbiBhIGRpZmZlcmVudCBsaW5lIG9mIHByb2R1Y3Rz IChBRkFJSykuLi4KPj4+Pj4KPj4+Pj4gU28sIGZvciB0aGVzZSByZWFzb25zLCB1c3VhbGx5LCBh bGwgdGhlIG90aGVyIFNDTUkgZHJpdmVycyBoYXZlIAo+Pj4+PiBwZXItaW5zdGFuY2UKPj4+Pj4g bm9uLWdsb2JhbCByZWZlcmVuY2VzIHRvIGhhbmRsZS9zZGV2L3BoLi4uLgo+Pj4+Pgo+Pj4+PiAu Li5oYXZpbmcgc2FpZCB0aGF0LCB0aG91Z2h0LCBsb29raW5nIGF0IHRoZSBzdHJ1Y3R1cmUgb2Yg Q1BVRlJlcQo+Pj4+PiBkcml2ZXJzLCBJIGFtIG5vdCBzdXJlIHRoYXQgdGhleSBjYW4gc3RhbmQg c3VjaCBhIHNpbWlsYXIgc2V0dXAKPj4+Pj4gd2hlcmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRo aXMgc2FtZSBkcml2ZXIgYXJlIHByb2JlZAo+Pj4+Pgo+Pj4+PiAuLi4uIGluZGVlZCB0aGUgZXhp c3RlbnQgKnBoIHJlZnMgYWJvdmUgaXMgYWxyZWFkeSBnbG9iYWwuLi4uc28gaXQgCj4+Pj4+IHdv bnQgYWxyZWFkeQo+Pj4+PiB3b3JrIGFueXdheSBpbiBjYXNlIG9mIG11bHRpcGxlIGluc3RhbmNl cyBub3cuLi4KPj4+Pj4KPj4+Pj4gLi4uYW5kIGlmIEkgbG9vayBhdCBob3cgQ1BVRnJlcSBleHBl Y3RzIHRoZSBzaWduYXR1cmUgb2YgCj4+Pj4+IHNjbWlfY3B1ZnJlcV9nZXRfcmF0ZSgpCj4+Pj4+ IHRvIGJlIGFubmQgaG93IGl0IGlzIGltcGxlbWVudGVkIG5vdyB1c2luZyB0aGUgZ2xvYmFsICpw aCAKPj4+Pj4gcmVmZXJlbmNlLCBpdCBpcwo+Pj4+PiBjbGVhcmx5IGFscmVhZHkgbm90IHdvcmtp bmcgY2xlYW5seSBvbiBhIG11bHRpLWluc3RhbmNlIHNldHVwLi4uCj4+Pj4+Cj4+Pj4+IC4uLm5v dy4uLkkgY2FuIGltYWdpbmUgaG93IHRvIChtYXliZSkgZml4IHRoZSBhYm92ZSByZW1vdmluZyB0 aGUgCj4+Pj4+IGdsb2JhbHMgYW5kCj4+Pj4+IGZpeGluZyB0aGlzLCBCVVQgdGhlIHF1ZXN0aW9u LCBtb3JlIGdlbmVyYWxseSwgaXMgQ1BVRnJlcSBzdXBwb3NlZCAKPj4+Pj4gdG8gd29yayBhdCBh bGwgaW4KPj4+Pj4gdGhpcyBtdWx0aS1wcm9iZWQgbW9kZSBvZiBvcGVyYXRpb24gPwo+Pj4+PiBE b2VzIGl0IGV2ZW4gbWFrZSBzZW5zZSB0byBiZSBhYmxlIHRvIHN1cHBvcnQgdGhpcyBpbiBDUFVG UkVRID8KPj4+Pj4KPj4+Pj4gKGFzIGFuIGV4YW1wbGUgaW4gY3B1ZnJlcSxjIHRoZXJlIGlzIHN0 YXRpYyBnbG9iYWwgY3B1ZnJlcV9kcml2ZXIKPj4+Pj4gwqDCoCBwb2ludGluZyB0byB0aGUgYXJj aC1zcGVjaWZpYyBjb25maWd1cmVkIGRyaXZlciBCVVQgdGhhdCBhbHNvIGhvbGRzCj4+Pj4+IMKg wqAgc29tZSAuZHJpdmVyX2RhdGEgQU5EIHRoYXQgY2xlcmFseSB3b250IGJlIGluc3RhbmNlIHNw ZWNpZmljIGlmIHlvdQo+Pj4+PiDCoMKgIHByb2JlIG11bHRpcGxlIHRpbWVzIGFuZCByZWdpc3Rl ciB3aXRoIENQVUZyZXEgbXVsdGlwbGUgdGltZXMuLi4pCj4+Pj4+Cj4+Pj4+IMKgwqAgTW9yZSBx dWVzdGlvbnMgdGhhbiBhbnN3ZXJzIGhlcmUgOkQKPj4+Pj4KPj4+Pgo+Pj4+IFRoYW5rcyBDcmlz dGlhbiBmb3IgaW5zdGFudCByZXNwb25zZS4gWWVzLCBpbmRlZWQgbm93IHdlIGhhdmUgbW9yZQo+ Pj4+IHF1ZXN0aW9ucyA6KSAod2hpY2ggaXMgZ29vZCkuIEJ1dCB0aGF0J3MgZ29vZCBkZXNjcmlw dGlvbiBvZiB0aGUKPj4+PiBzaXR1YXRpb24uCj4+Pj4KPj4+PiBTbyBsZXRzIGNvbnNpZGVyIGEg ZmV3IG9wdGlvbiB3aGF0IHdlIGNvdWxkIGRvIG5vdzoKPj4+PiAxLiBMZXQgU2liaSBhZGQgYW5v dGhlciBnbG9iYWwgc3RhdGUgdGhlICdoYW5kbGUnIGJ1dCBhZGQKPj4+PiDCoMKgwqAgYSBCVUdf T04oKSBvciBXQVJOX09OKCkgaW4gdGhlIHByb2JlIHBhdGggaWYgdGhlIG5leHQKPj4+PiDCoMKg wqAgJ2hhbmRsZScgaW5zdGFuY2UgaXMgZGlmZmVyZW50IHRoYW4gYWxyZWFkeSBzZXQgaW4gZ2xv YmFsLgo+Pj4+IMKgwqDCoCBUaGlzIHdvdWxkIHNpbXBseSBtZWFuIHRoYXQgd2UgZG9uJ3Qgc3Vw cG9ydCAoeWV0KQo+Pj4+IMKgwqDCoCBzdWNoIGNvbmZpZ3VyYXRpb24gaW4gYSBwbGF0Zm9ybS4g QXMgeW91IHNhaWQsIHdlCj4+Pj4gwqDCoMKgIGFscmVhZHkgaGF2ZSB0aGUgKnBoIGdsb2JhbCwg c28gbWF5YmUgc3VjaCBwbGF0Zm9ybXMKPj4+PiDCoMKgwqAgd2l0aCBtdWx0aXBsZSBpbnN0YW5j ZXMgZm9yIHRoaXMgcGFydGljdWxhciBjcHVmcmVxIGFuZAo+Pj4+IMKgwqDCoCBwZXJmb3JtYW5j ZSBwcm90b2NvbCBkb24ndCBleGlzdCB5ZXQuCj4+Pgo+Pj4gWWVzIHRoaXMgaXMgdGhlIHF1aWNr c3Qgd2F5IChhbmQgYSBXQVJOX09OKCkgaXMgYmV0dGVyIEknZCBzYXkpIGJ1dCAKPj4+IHRoZXJl Cj4+PiBhcmUgc2ltaWxhciBpc3N1ZXMgb2YgInVuaWNpdHkiIGN1cnJlbnRseSBhbHJlYWR5IHdp dGggYW5vdGhlciB2ZW5kb3IgCj4+PiBTQ01JCj4+PiBkcml2ZXJzIGFuZCBjdXN0b20gcHJvdG9j b2wgY3VycmVudGx5IHVuZGVyIHJldmlldywgc28gSSB3YXMgdGhpbmtpbmcgdG8KPj4+IGFkZCBh IG5ldyBjb21tb24gbWVjaGFuaXNtIGluIFNDTUkgdG8gaGFuZGxlIHRoaXMgLi4uIG5vdCB0aG91 Z2h0IGFib3V0Cj4+PiB0aGlzIHJlYWxseSBpbiBkZXB0aCBhbmQgSSB3YW50IHRvIGNoYXQgd2l0 aCBTdWRlZXAgYWJvdXQgdGhpcy4uLgo+Pj4KPj4+PiAyLiBBc2sgU2liaSB0byB3YWl0IHdpdGgg dGhpcyBjaGFuZ2UsIHRpbGwgd2UgcmVmYWN0b3IgdGhlCj4+Pj4gwqDCoMKgIGV4aXRpbmcgZHJp dmVyIHN1Y2ggdGhhdCBpdCBjb3VsZCBzdXBwb3J0IGVhc2lseSB0aG9zZQo+Pj4+IMKgwqDCoCBt dWx0aXBsZSBpbnN0YW5jZXMuIFRoZW4gcGljayB1cCB0aGlzIHBhdGNoIHNldC4KPj4+PiDCoMKg wqAgQWx0aG91Z2gsIHdlIHdvdWxkIGFsc28gbGlrZSB0byBoYXZlIHRob3NlIG5vdGlmaWNhdGlv bnMgZnJvbSBvdXIKPj4+PiDCoMKgwqAgSnVubyBTQ1AgcmVmZXJlbmNlIEZXLCBzbyB0aGUgZmVh dHVyZSBpcyB1c2VmdWwuCj4+Pj4gMy4gQXNrIFNpYmkgdG8gcmVmYWN0b3IgaGlzIHBhdGNoIHRv IHNvbWVob3cgZ2V0IHRoZSAnaGFuZGxlJwo+Pj4+IMKgwqDCoCBpbiBkaWZmZXJlbnQgd2F5LCB1 c2luZyBleGl0aW5nIGNvZGUgYW5kIG5vdCBpbnRyb2R1Y2UgdGhpcyBnbG9iYWwuCj4+Pj4KPj4+ Cj4+Pj4gSUhNTyB3ZSBjb3VsZCBkbyB0aGlzIGluIHN0ZXBzOiAxLiBhbmQgdGhlbiAyLiBXaGVu Cj4+Pj4gd2UgY3JlYXRlIHNvbWUgbW9jayBwbGF0Zm9ybSB0byB0ZXN0IHRoaXMgcmVmYWN0b3Jp bmcgd2UgY2FuCj4+Pj4gc3RhcnQgY2xlYW5pbmcgaXQuCj4gCj4gSSBzaG91bGQgYmUgYWJsZSB0 byB2b2x1bnRlZXIgYSBwbGF0Zm9ybSB0byB0ZXN0IGFnYWluc3Qgd2hlbgo+IHdlIGhhdmUgdGhp bmdzIHJlYWR5Lgo+IAo+Pj4+Cj4+Pgo+Pj4gQm90aCBvZiB0aGVzZSBvcHRpb25zIHJlYWxseSBi ZWcgYW4gYW5zd2VyIHRvIG15IG9yaWdpbmFsIHByZXZpb3VzIHEKPj4+IHF1ZXN0aW9uLi4uaWYg d2Ugc29tZWhvdyBlbmFibGUgdGhpcyBtdWx0aS1wcm9iZSBzdXBwb3J0IGluIHRoZQo+Pj4gc2Nt aS1jcHVmcmVxLmMgZHJpdmVyIGJ5IGF2b2lkaW5nIGdsYmFscyByZWZzLCBkb2VzIHRoaXMgd29y ayBhdCBhbGwgaW4KPj4+IHRoZSBjb250ZXh0IG9mIENQVUZyZXEgPwo+Pgo+PiBJIGRvbid0IGtu b3cgeWV0Lgo+Pgo+Pj4KPj4+IC4uLm9yIGl0IGlzIGp1c3QgdGhhdCBDUFVGcmVxIGNhbm5vdCBo YW5kbGUgc3VjaCBhIGNvbmZpZ3VyYXRpb24gKGFuZAo+Pj4gbWF5YmUgZG9udCB3YW50IHRvKSBh bmQgc28gdGhlIG9ubHkgc29sdXRpb24gaGVyZSBpcyBqdXN0IDEuIGF0IGZpcnN0IAo+Pj4gYW5k Cj4+PiB0aGVuIGEgY29tbW9uIHJlZmluZWQgbWVjaGFuaXNtIChhcyBtZW50aW9uZWQgYWJvdmUp IHRvIGVuc3VyZSB0aGlzIAo+Pj4gInVuaWNpdHkiCj4+PiBvZiB0aGUgcHJvYmVzIGZvciBzb21l IGRyaXZlcnMgPwo+Pgo+PiBUaGlzIHNvdW5kcyByZWFzb25hYmxlLgo+Pgo+Pj4KPj4+IEknbSBu b3QgZmFtaWxpYXIgZW5vdWdoIHRvIGdyYXNwIGlmIHRoaXMgIm11bHRpLXByb2JlZCIgbW9kZSBv ZiAKPj4+IG9wZXJhdGlvbiBpcwo+Pj4gYWxsb3dlZC9zdXBwb3J0ZWQgYnkgQ1BVRnJlcSBhbmQs IG1vcmUgaW1wb3J0YW50LCBpZiBpdCBtYWtlcyBhbnkgc2Vuc2UKPj4+IGF0IGFsbCB0byBiZSBh IHN1cHBvcnRlZCBtb2RlLi4uCj4+Pgo+Pgo+PiBPSywgbGV0IG1lIGNoZWNrIHNvbWUgc3R1ZmYg aW4gdGhlIGNvZGUgYW5kIHRoaW5rIGZvciBhIHdoaWxlIG9uIHRoYXQuCj4+IFRoYW5rcyBDcmlz dGlhbiEKPj4KPj4gU2liaSwgcGxlYXNlIGdpdmUgbWUgYSBmZXcgZGF5cy4gSW4gdGhlIG1lYW50 aW1lIHlvdSBjYW4gY29udGludWUKPj4gb24gdGhlICdib29zdCcgcGF0Y2ggc2V0IHByb2JhYmx5 Lgo+IAo+IHN1cmUsIHRoYW5rcy4gSSd2ZSBwbGVudHkgdGhpbmdzIHRvIHNlbmQgb3V0IHNvIG5v IGh1cnJ5IDspCj4gCj4gLVNpYmkKPiAKCkkndmUgd2VudCB0aHJvdWdoIHRoZSBjcHVmcmVxLiBJ dCdzIHF1aXRlIGNvbXBsaWNhdGVkIGhvdyB0aG9zZQpwb2xpY2llcywgY3B1cywgZHJpdmVycyBh cmUgc2V0dXAuIEFsdGhvdWdoLCBJSE1PIHdlIHNob3VsZCBiZQpzYWZlIHdpdGggeW91IGN1cnJl bnQgcHJvcG9zYWwgaW4gdGhpcyBwYXRjaC4KCkFzIHdlIGRpc2N1c3NlZCB3aXRoIENyaXN0aWFu LCB3ZSBjYW4gdGFrZSB0aGF0IGFwcHJvYWNoIGZ1cnRoZXIuCgpUaGVyZWZvcmUsIHlvdSBjYW4g YWRkOgoKUmV2aWV3ZWQtYnk6IEx1a2FzeiBMdWJhIDxsdWthc3oubHViYUBhcm0uY29tPgoKUmVn YXJkcywKTHVrYXN6CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==