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 X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2F51C43381 for ; Mon, 18 Mar 2019 17:24:30 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 847C720854 for ; Mon, 18 Mar 2019 17:24:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YV8lRRdk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 847C720854 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: To:From:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=RcvxEGssaIZRjxoO8rCwJFId+kfAb8ePpmTaWDLt0pY=; b=YV8lRRdk8TXQ0Xd6vneYyx+mg 7U8rsqk6rUJ1vuC6lnkl2ryUl6BzmkwZQInetfIKjmemsnqD7RHt7HbuCDY0bya4wUTliT9uN/dqs s4Ms0qeD7DGb4oL611e0xTFAz7nzjEyVaIqKg7uvkqWZYJ+XJ7vXcQ/t+IT1IK2ev4sr3+C7/oWoR eodBSX7lvDQqaJkoXNBJInOvXhJIeLULvjiVbMmgCb0X+ifol0+yTFwrdzgy4Sn09luUQKSnDdlMj 9U03f/zldRlUSfmEh4skpa+5QBdxFwt9oeSNLBN48lP56dVCIwgxzlOjX5MCCBrsY3btpUO+IaOx+ 9Myge0bhQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h5vzs-000063-Hg; Mon, 18 Mar 2019 17:24:24 +0000 Received: from foss.arm.com ([217.140.101.70]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h5vzp-00005j-Km for linux-arm-kernel@lists.infradead.org; Mon, 18 Mar 2019 17:24:22 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 746941650; Mon, 18 Mar 2019 10:24:20 -0700 (PDT) Received: from [10.1.196.75] (e110467-lin.cambridge.arm.com [10.1.196.75]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 815683F614; Mon, 18 Mar 2019 10:24:18 -0700 (PDT) Subject: Re: [PATCH] arm64/io: Don't use WZR in writel From: Robin Murphy To: Russell King - ARM Linux admin References: <68b71c15f32341468a868f6418e4fcb375bc49ba.camel@gmail.com> <20190211105755.GB30880@fuggles.cambridge.arm.com> <38d8965a-cd41-17cf-1b95-8dd58c079be4@arm.com> <874c702b8af760aa8fae38d478c79e3ecba00515.camel@gmail.com> <235d20ef-3054-69d9-975d-25aebf32aad3@arm.com> <20190223181254.GC572@tuxbook-pro> <86zhqm8i6d.wl-marc.zyngier@arm.com> <20190224035356.GD572@tuxbook-pro> <33d765b5-1807-fa6c-1ceb-99f09f7c8d5a@free.fr> <8eb4f446-6152-ffb6-9529-77fb0bcc307f@arm.com> <20190318170041.qu4x2565fmno6sei@shell.armlinux.org.uk> <5ba7c4d0-30ec-e38d-41dc-653fd5cb7f05@arm.com> Message-ID: <2a7098cb-5f36-d0ab-4f74-ac6e4ab7e0fd@arm.com> Date: Mon, 18 Mar 2019 17:24:17 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <5ba7c4d0-30ec-e38d-41dc-653fd5cb7f05@arm.com> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190318_102421_702833_83D9E39D X-CRM114-Status: GOOD ( 27.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jens Axboe , Marc Gonzalez , Marc Zyngier , Catalin Marinas , Will Deacon , LKML , Bjorn Andersson , Jeffrey Hugo , MSM , AngeloGioacchino Del Regno , Linux ARM Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTgvMDMvMjAxOSAxNzoxOSwgUm9iaW4gTXVycGh5IHdyb3RlOgo+IE9uIDE4LzAzLzIwMTkg MTc6MDAsIFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eCBhZG1pbiB3cm90ZToKPj4gT24gTW9uLCBN YXIgMTgsIDIwMTkgYXQgMDQ6MDQ6MDNQTSArMDAwMCwgUm9iaW4gTXVycGh5IHdyb3RlOgo+Pj4g T24gMTIvMDMvMjAxOSAxMjozNiwgTWFyYyBHb256YWxleiB3cm90ZToKPj4+PiBPbiAyNC8wMi8y MDE5IDA0OjUzLCBCam9ybiBBbmRlcnNzb24gd3JvdGU6Cj4+Pj4KPj4+Pj4gT24gU2F0IDIzIEZl YiAxMDozNyBQU1QgMjAxOSwgTWFyYyBaeW5naWVyIHdyb3RlOgo+Pj4+Pgo+Pj4+Pj4gT24gU2F0 LCAyMyBGZWIgMjAxOSAxODoxMjo1NCArMDAwMCwgQmpvcm4gQW5kZXJzc29uIHdyb3RlOgo+Pj4+ Pj4+Cj4+Pj4+Pj4gT24gTW9uIDExIEZlYiAwNjo1OSBQU1QgMjAxOSwgTWFyYyBaeW5naWVyIHdy b3RlOgo+Pj4+Pj4+Cj4+Pj4+Pj4+IE9uIDExLzAyLzIwMTkgMTQ6MjksIEFuZ2Vsb0dpb2FjY2hp bm8gRGVsIFJlZ25vIHdyb3RlOgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWxzbywganVzdCBvbmUgbW9y ZSB0aGluZzogeWVzIHRoaXMgdGhpbmcgaXMgZ29pbmcgQVJNNjQtd2lkZSBhbmQKPj4+Pj4+Pj4+ IC0gZnJvbSBteSBmaW5kaW5ncyAtIGl0J3MgdGFyZ2V0aW5nIGNlcnRhaW4gUXVhbGNvbW0gU29D cywgYnV0Li4uCj4+Pj4+Pj4+PiBJJ20gbm90IHN1cmUgdGhhdCBvbmx5IFFDIGlzIGFmZmVjdGVk IGJ5IHRoYXQsIG90aGVycyBtYXkgYXMgd2VsbAo+Pj4+Pj4+Pj4gaGF2ZSB0aGUgc2FtZSBzdHVw aWQgYnVnLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBdCB0aGUgbW9tZW50LCBvbmx5IFFDIFNvQ3Mgc2Vl bSB0byBiZSBhZmZlY3RlZCwgcHJvYmFibHkgYmVjYXVzZQo+Pj4+Pj4+PiBldmVyeW9uZSBlbHNl IGhhcyBkZWJ1Z2dlZCB0aGVpciBoeXBlcnZpc29yIChvciBtb3N0IGxpa2VseSBkb2Vzbid0Cj4+ Pj4+Pj4+IGJvdGhlciB3aXRoIHNoaXBwaW5nIG9uZSkuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEluIGFs bCBob25lc3R5LCB3ZSBuZWVkIHNvbWUgaW5mb3JtYXRpb24gZnJvbSBRQyBoZXJlOiB3aGljaCAK Pj4+Pj4+Pj4gU29DcyBhcmUKPj4+Pj4+Pj4gYWZmZWN0ZWQsIHdoYXQgaXMgdGhlIGV4YWN0IG5h dHVyZSBvZiB0aGUgYnVnLCBjYW4gaXQgYmUgCj4+Pj4+Pj4+IHRyaWdnZXJlZCBmcm9tCj4+Pj4+ Pj4+IEVMMC4gUmFuZG9tbHkgcGFwZXJpbmcgb3ZlciBzeW1wdG9tcyBpcyBub3Qgc29tZXRoaW5n IEkgcmVhbGx5IGxpa2UKPj4+Pj4+Pj4gZG9pbmcsIGFuZCBpcyBsaWtlbHkgdG8gZ2VuZXJhdGUg cHJvYmxlbXMgb24gdW5hZmZlY3RlZCBzeXN0ZW1zLgo+Pj4+Pj4+Cj4+Pj4+Pj4gVGhlIGJ1ZyBh dCBoYW5kIGlzIHRoYXQgdGhlIFhaUiBpcyBub3QgZGVlbWVkIGEgdmFsaWQgc291cmNlIGluIHRo ZQo+Pj4+Pj4+IHZpcnR1YWxpemF0aW9uIG9mIHRoZSBTTU1VIHJlZ2lzdGVycy4gSXQgd2FzIGlk ZW50aWZpZWQgYW5kIGZpeGVkIAo+Pj4+Pj4+IGZvcgo+Pj4+Pj4+IGFsbCBwbGF0Zm9ybXMgdGhh dCBhcmUgc2hpcHBpbmcga2VybmVscyBiYXNlZCBvbiB2NC45IG9yIGxhdGVyLgo+Pj4+Pj4KPj4+ Pj4+IFdoZW4geW91IHNheSAiZml4ZWQiOiBEbyB5b3UgbWVhbiBmaXhlZCBpbiB0aGUgZmlybXdh cmU/IE9yIGJ5IGFkZGluZwo+Pj4+Pj4gYSB3b3JrYXJvdW5kIGluIHRoZSBzaGlwcGVkIGtlcm5l bD8KPj4+Pj4KPj4+Pj4gSSBtZWFuIHRoYXQgaXQncyBmaXhlZCBpbiB0aGUgZmlybXdhcmUuCj4+ Pj4+Cj4+Pj4+PiBJZiB0aGUgZm9ybWVyLCBpcyB0aGlzIHBhcnQgb2YgYW4gb2ZmaWNpYWwgUUMg c3RhdGVtZW50LCB3aXRoIGFuCj4+Pj4+PiBhc3NvY2lhdGVkIGVycmF0dW0gbnVtYmVyPwo+Pj4+ Pgo+Pj4+PiBJIGRvbid0IGtub3csIHdpbGwgZ2V0IGJhY2sgdG8geW91IG9uIHRoaXMgb25lLgo+ Pj4+Pgo+Pj4+Pj4gSXMgdGhpcyByZWFsbHkgbGltaXRlZCB0byB0aGUgU01NVSBhY2Nlc3Nlcz8K Pj4+Pj4KPj4+Pj4gWWVzLgo+Pj4+Pgo+Pj4+Pj4+IEFzIHN1Y2ggQW5nZWxvJ3MgbGlzdCBvZiBh ZmZlY3RlZCBwbGF0Zm9ybXMgY292ZXJzIHRoZSBoaWdoLXByb2ZpbGUKPj4+Pj4+PiBvbmVzLiBJ biBwYXJ0aWN1bGFyIE1TTTg5OTYgYW5kIE1TTTg5OTggaXMgZ2V0dGluZyBwcmV0dHkgZ29vZCAK Pj4+Pj4+PiBzdXBwb3J0Cj4+Pj4+Pj4gdXBzdHJlYW0sIGlmIHdlIGNhbiBmaWd1cmUgb3V0IGEg d2F5IGFyb3VuZCB0aGlzIGlzc3VlLgo+Pj4+Pj4KPj4+Pj4+IFdlJ2QgbmVlZCBhbiBleGhhdXN0 aXZlIGxpc3Qgb2YgdGhlIGFmZmVjdGVkIFNvQ3MsIGFuZCB3b3JrIG91dCBpZiB3ZQo+Pj4+Pj4g Y2FuIGxpbWl0IHRoZSBoYWNrIHRvIHRoZSBTTU1VIGRyaXZlciAoY2MnaW5nIFJvYmluLCB3aG8n cyB0aGUgb25lCj4+Pj4+PiB3aG8nZCBrbm93IGFib3V0IGl0KS4KPj4+Pj4KPj4+Pj4gSSB3aWxs IHRyeSB0byBjb21wb3NlIGEgbGlzdC4KPj4+Pgo+Pj4+IEZXSVcsIEkgaGF2ZSBqdXN0IGJlZW4g Yml0dGVuIGJ5IHRoaXMgaXNzdWUuIEkgbmVlZGVkIHRvIGVuYWJsZSBhbiAKPj4+PiBTTU1VIHRv Cj4+Pj4gZmlsdGVyIFBDSWUgRVAgYWNjZXNzZXMgdG8gc3lzdGVtIFJBTSAob3Igc29tZXRoaW5n KS4gSSdtIHVzaW5nIGFuIAo+Pj4+IEFQUTgwOTgKPj4+PiBNRURJQUJPWCBkZXYgYm9hcmQuIE15 IHN5c3RlbSBoYW5ncyBpbiBhcm1fc21tdV9kZXZpY2VfcmVzZXQoKSBkb2luZzoKPj4+Pgo+Pj4+ IMKgwqDCoMKgLyogSW52YWxpZGF0ZSB0aGUgVExCLCBqdXN0IGluIGNhc2UgKi8KPj4+PiDCoMKg wqDCoHdyaXRlbF9yZWxheGVkKDAsIGdyMF9iYXNlICsgQVJNX1NNTVVfR1IwX1RMQklBTExIKTsK Pj4+PiDCoMKgwqDCoHdyaXRlbF9yZWxheGVkKDAsIGdyMF9iYXNlICsgQVJNX1NNTVVfR1IwX1RM QklBTExOU05IKTsKPj4+Pgo+Pj4+Cj4+Pj4gV2l0aCB0aGUgJ1onIGNvbnN0cmFpbnQsIGdjYyBn ZW5lcmF0ZXM6Cj4+Pj4KPj4+PiDCoMKgwqDCoHN0ciB3enIsIFt4MF0KPj4+Pgo+Pj4+IHdpdGhv dXQgdGhlICdaJyBjb25zdHJhaW50LCBnY2MgZ2VuZXJhdGVzOgo+Pj4+Cj4+Pj4gwqDCoMKgwqBt b3bCoMKgwqAgdzEsIDAKPj4+PiDCoMKgwqDCoHN0ciB3MSwgW3gwXQo+Pj4+Cj4+Pj4KPj4+PiBJ IGNhbiB3b3JrIGFyb3VuZCB0aGUgcHJvYmxlbSB1c2luZyB0aGUgZm9sbG93aW5nIHBhdGNoOgo+ Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYyBiL2RyaXZlcnMv aW9tbXUvYXJtLXNtbXUuYwo+Pj4+IGluZGV4IDA0NWQ5Mzg4NDE2NC4uOTMxMTc1MTlhZWQ4IDEw MDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYwo+Pj4+ICsrKyBiL2RyaXZl cnMvaW9tbXUvYXJtLXNtbXUuYwo+Pj4+IEBAIC01OSw2ICs1OSwxMSBAQAo+Pj4+IMKgwqAgI2lu Y2x1ZGUgImFybS1zbW11LXJlZ3MuaCIKPj4+PiArc3RhdGljIGlubGluZSB2b2lkIHFjb21fd3Jp dGVsKHUzMiB2YWwsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKPj4+PiArewo+Pj4+ICvC oMKgwqAgYXNtIHZvbGF0aWxlKCJzdHIgJXcwLCBbJTFdIiA6IDogInIiICh2YWwpLCAiciIgKGFk ZHIpKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiDCoMKgICNkZWZpbmUgQVJNX01NVTUwMF9BQ1RMUl9D UFJFwqDCoMKgwqDCoMKgwqAgKDEgPDwgMSkKPj4+PiDCoMKgICNkZWZpbmUgQVJNX01NVTUwMF9B Q1JfQ0FDSEVfTE9DS8KgwqDCoCAoMSA8PCAyNikKPj4+PiBAQCAtNDIyLDcgKzQyNyw3IEBAIHN0 YXRpYyB2b2lkIF9fYXJtX3NtbXVfdGxiX3N5bmMoc3RydWN0IAo+Pj4+IGFybV9zbW11X2Rldmlj ZSAqc21tdSwKPj4+PiDCoMKgIHsKPj4+PiDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHNwaW5f Y250LCBkZWxheTsKPj4+PiAtwqDCoMKgIHdyaXRlbF9yZWxheGVkKDAsIHN5bmMpOwo+Pj4+ICvC oMKgwqAgcWNvbV93cml0ZWwoMCwgc3luYyk7Cj4+Pj4gwqDCoMKgwqDCoMKgIGZvciAoZGVsYXkg PSAxOyBkZWxheSA8IFRMQl9MT09QX1RJTUVPVVQ7IGRlbGF5ICo9IDIpIHsKPj4+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoCBmb3IgKHNwaW5fY250ID0gVExCX1NQSU5fQ09VTlQ7IHNwaW5fY250ID4g MDsgc3Bpbl9jbnQtLSkgewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCEo cmVhZGxfcmVsYXhlZChzdGF0dXMpICYgc1RMQkdTVEFUVVNfR1NBQ1RJVkUpKQo+Pj4+IEBAIC0x NzYwLDggKzE3NjUsOCBAQCBzdGF0aWMgdm9pZCBhcm1fc21tdV9kZXZpY2VfcmVzZXQoc3RydWN0 IAo+Pj4+IGFybV9zbW11X2RldmljZSAqc21tdSkKPj4+PiDCoMKgwqDCoMKgwqAgfQo+Pj4+IMKg wqDCoMKgwqDCoCAvKiBJbnZhbGlkYXRlIHRoZSBUTEIsIGp1c3QgaW4gY2FzZSAqLwo+Pj4+IC3C oMKgwqAgd3JpdGVsX3JlbGF4ZWQoMCwgZ3IwX2Jhc2UgKyBBUk1fU01NVV9HUjBfVExCSUFMTEgp Owo+Pj4+IC3CoMKgwqAgd3JpdGVsX3JlbGF4ZWQoMCwgZ3IwX2Jhc2UgKyBBUk1fU01NVV9HUjBf VExCSUFMTE5TTkgpOwo+Pj4+ICvCoMKgwqAgcWNvbV93cml0ZWwoMCwgZ3IwX2Jhc2UgKyBBUk1f U01NVV9HUjBfVExCSUFMTEgpOwo+Pj4+ICvCoMKgwqAgcWNvbV93cml0ZWwoMCwgZ3IwX2Jhc2Ug KyBBUk1fU01NVV9HUjBfVExCSUFMTE5TTkgpOwo+Pj4+IMKgwqDCoMKgwqDCoCByZWcgPSByZWFk bF9yZWxheGVkKEFSTV9TTU1VX0dSMF9OUyhzbW11KSArIEFSTV9TTU1VX0dSMF9zQ1IwKTsKPj4+ Pgo+Pj4+Cj4+Pj4KPj4+PiBDYW4gYSBxdWlyayBiZSB1c2VkIHRvIHdvcmsgYXJvdW5kIHRoZSBp c3N1ZT8KPj4+PiBPciBjYW4gd2UganVzdCAicGVzc2ltaXplIiB0aGUgMyB3cml0ZXMgZm9yIGV2 ZXJ5Ym9keT8KPj4+PiAoTWlnaHQgYmUgY2hlYXBlciB0aGFuIGEgdGVzdCBhbnl3YXkpCj4+Pgo+ Pj4gSWYgaXQgcmVhbGx5IGlzIGp1c3QgdGhlIFNNTVUgZHJpdmVyIHdoaWNoIGlzIGFmZmVjdGVk LCB3ZSBjYW4gd29yayAKPj4+IGFyb3VuZAo+Pj4gaXQgZm9yIGZyZWUgKG5vdCBjb3VudGluZyB0 aGUgJ2Nvc3QnIG9mIHNsaWdodGx5LXdlaXJkLWxvb2tpbmcgY29kZSwgb2YKPj4+IGNvdXJzZSku IElmIHRoZSBkaWZmIGJlbG93IHdvcmtzIGFzIGV4cGVjdGVkLCBJJ2xsIHdyaXRlIGl0IHVwIHBy b3Blcmx5Lgo+Pj4KPj4+IFJvYmluLgo+Pj4gLS0tLS0+OC0tLS0tCj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pb21tdS9hcm0tc21tdS5jIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCj4+PiBp bmRleCAwNDVkOTM4ODQxNjQuLjdmZjI5ZTMzMjk4ZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv aW9tbXUvYXJtLXNtbXUuYwo+Pj4gKysrIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCj4+PiBA QCAtNDIyLDcgKzQyMiw3IEBAIHN0YXRpYyB2b2lkIF9fYXJtX3NtbXVfdGxiX3N5bmMoc3RydWN0 IAo+Pj4gYXJtX3NtbXVfZGV2aWNlCj4+PiAqc21tdSwKPj4+IMKgIHsKPj4+IMKgwqDCoMKgwqAg dW5zaWduZWQgaW50IHNwaW5fY250LCBkZWxheTsKPj4+Cj4+PiAtwqDCoMKgIHdyaXRlbF9yZWxh eGVkKDAsIHN5bmMpOwo+Pj4gK8KgwqDCoCB3cml0ZWxfcmVsYXhlZCgodW5zaWduZWQgbG9uZylz eW5jLCBzeW5jKTsKPj4+IMKgwqDCoMKgwqAgZm9yIChkZWxheSA9IDE7IGRlbGF5IDwgVExCX0xP T1BfVElNRU9VVDsgZGVsYXkgKj0gMikgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAoc3Bp bl9jbnQgPSBUTEJfU1BJTl9DT1VOVDsgc3Bpbl9jbnQgPiAwOyBzcGluX2NudC0tKSB7Cj4+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIShyZWFkbF9yZWxheGVkKHN0YXR1cykgJiBz VExCR1NUQVRVU19HU0FDVElWRSkpCj4+PiBAQCAtNjgxLDcgKzY4MSwxMiBAQCBzdGF0aWMgdm9p ZCBhcm1fc21tdV93cml0ZV9jb250ZXh0X2Jhbmsoc3RydWN0Cj4+PiBhcm1fc21tdV9kZXZpY2Ug KnNtbXUsIGludCBpZHgpCj4+Pgo+Pj4gwqDCoMKgwqDCoCAvKiBVbmFzc2lnbmVkIGNvbnRleHQg YmFua3Mgb25seSBuZWVkIGRpc2FibGluZyAqLwo+Pj4gwqDCoMKgwqDCoCBpZiAoIWNmZykgewo+ Pj4gLcKgwqDCoMKgwqDCoMKgIHdyaXRlbF9yZWxheGVkKDAsIGNiX2Jhc2UgKyBBUk1fU01NVV9D Ql9TQ1RMUik7Cj4+PiArwqDCoMKgwqDCoMKgwqAgLyoKPj4+ICvCoMKgwqDCoMKgwqDCoMKgICog Rm9yIFF1YWxjb21tIHJlYXNvbnMsIHdlIHdhbnQgdG8gZ3VhcmFudGVlIHRoYXQgd2Ugd3JpdGUg YQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiB6ZXJvIGZyb20gYSByZWdpc3RlciB3aGljaCBpcyBu b3QgV1pSLiBGb3J0dW5hdGVseSwgdGhlIGNmZwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBsb2dp YyBoZXJlIHBsYXlzIHJpZ2h0IGludG8gb3VyIGhhbmRzLi4uCj4+PiArwqDCoMKgwqDCoMKgwqDC oCAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHdyaXRlbF9yZWxheGVkKCh1bnNpZ25lZCBsb25nKWNm ZywgY2JfYmFzZSArIAo+Pj4gQVJNX1NNTVVfQ0JfU0NUTFIpOwo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgIHJldHVybjsKPj4+IMKgwqDCoMKgwqAgfQo+Pj4KPj4+IEBAIC0xNzYwLDggKzE3NjUsOCBA QCBzdGF0aWMgdm9pZCBhcm1fc21tdV9kZXZpY2VfcmVzZXQoc3RydWN0Cj4+PiBhcm1fc21tdV9k ZXZpY2UgKnNtbXUpCj4+PiDCoMKgwqDCoMKgIH0KPj4+Cj4+PiDCoMKgwqDCoMKgIC8qIEludmFs aWRhdGUgdGhlIFRMQiwganVzdCBpbiBjYXNlICovCj4+PiAtwqDCoMKgIHdyaXRlbF9yZWxheGVk KDAsIGdyMF9iYXNlICsgQVJNX1NNTVVfR1IwX1RMQklBTExIKTsKPj4+IC3CoMKgwqAgd3JpdGVs X3JlbGF4ZWQoMCwgZ3IwX2Jhc2UgKyBBUk1fU01NVV9HUjBfVExCSUFMTE5TTkgpOwo+Pj4gK8Kg wqDCoCB3cml0ZWxfcmVsYXhlZChyZWcsIGdyMF9iYXNlICsgQVJNX1NNTVVfR1IwX1RMQklBTExI KTsKPj4+ICvCoMKgwqAgd3JpdGVsX3JlbGF4ZWQocmVnLCBncjBfYmFzZSArIEFSTV9TTU1VX0dS MF9UTEJJQUxMTlNOSCk7Cj4+Pgo+Pj4gwqDCoMKgwqDCoCByZWcgPSByZWFkbF9yZWxheGVkKEFS TV9TTU1VX0dSMF9OUyhzbW11KSArIEFSTV9TTU1VX0dSMF9zQ1IwKTsKPj4+Cj4+Cj4+IEdpdmVu IHdoYXQgd2UndmUgc2VlbiBmcm9tIENsYW5nIGZvciBmdXRleCBzdHVmZiBpbiAzMi1iaXQgQVJN LCBhcmUKPj4geW91IHJlYWxseSBzdXJlIHRoYXQgdGhlIGFib3ZlIHdpbGwgbm90IHJlc3VsdCBp biBDbGFuZyBzdGlsbCBzcG90dGluZwo+PiB0aGF0IHRoZSB2YWx1ZSBpcyB6ZXJvIGFuZCB1c2lu ZyBhIHd6ciBmb3IgYWxsIHRoZXNlIGNhc2VzPwo+IAo+IFRoZSB0cmljayBpcyB0aGF0IGluIHRo ZSB3cml0ZS1vbmx5IFRMQkkgY2FzZXMgdGhlIHZhcmlhYmxlIHdlJ3JlIAo+IHBhc3NpbmcgaW4g cmVhbGx5IGlzIG5vbnplcm8sIHNvIHRoYXQgY2FuJ3QgcG9zc2libHkgaGFwcGVuLiBGb3IgdGhl IAo+IGNvbnRleHQgYmFuayByZXNldCwgeWVzLCBJIGFtIGFzc3VtaW5nIHRoYXQgbm8gY29tcGxp ZXIgd2lsbCBldmVyIGJlIAo+IHBlcnZlcnNlIGVub3VnaCB0byBkZXRlY3QgdGhhdCBjZmcgaXMg bm90IHdyaXR0ZW4gYWZ0ZXIgdGhlIE5VTEwgY2hlY2sgCj4gYW5kIGltbWVkaWF0ZWx5IHJlYWxs b2NhdGUgaXQgdG8gWFpSIGZvciBubyBnb29kIHJlYXNvbi4gSSdkIGxpa2UgdG8gCj4gdGhpbmsg dGhhdCBhc3N1bXB0aW9uIGlzIGdvaW5nIHRvIGhvbGQgZm9yIHRoZSByZWFzb25hYmxlIHNjb3Bl IG9mIHRoaXMgCj4gcGFydGljdWxhciB3b3JrYXJvdW5kLCB0aG91Z2guCgpXZWxsLCBjcmFwLiBT byBtdWNoIGZvciB0aGF0IGh1YnJpcy4uLgoKCjAwMDAwMDAwMDAwMDAwZjAgPGFybV9zbW11X3dy aXRlX2NvbnRleHRfYmFuaz46CiAgICAgICBmMDogICAgICAgNTI4MDA1MDQgICAgICAgIG1vdiAg ICAgdzQsICMweDI4IAovLyAjNDAKICAgICAgIGY0OiAgICAgICBmOTQwMjQwYSAgICAgICAgbGRy ICAgICB4MTAsIFt4MCwjNzJdCiAgICAgICBmODogICAgICAgYTk0MTE0MDIgICAgICAgIGxkcCAg ICAgeDIsIHg1LCBbeDAsIzE2XQogICAgICAgZmM6ICAgICAgIDliMjQ3YzI0ICAgICAgICBzbXVs bCAgIHg0LCB3MSwgdzQKICAgICAgMTAwOiAgICAgICA4YjA0MDE0OCAgICAgICAgYWRkICAgICB4 OCwgeDEwLCB4NAogICAgICAxMDQ6ICAgICAgIDFhYzUyMDIzICAgICAgICBsc2wgICAgIHczLCB3 MSwgdzUKICAgICAgMTA4OiAgICAgICA4YjIzYzA0MiAgICAgICAgYWRkICAgICB4MiwgeDIsIHcz LCBzeHR3CiAgICAgIDEwYzogICAgICAgZjk0MDExMDcgICAgICAgIGxkciAgICAgeDcsIFt4OCwj MzJdCiAgICAgIDExMDogICAgICAgYjUwMDAwNjcgICAgICAgIGNibnogICAgeDcsIDExYyAKPGFy bV9zbW11X3dyaXRlX2NvbnRleHRfYmFuaysweDJjPgogICAgICAxMTQ6ICAgICAgIGI5MDAwMDVm ICAgICAgICBzdHIgICAgIHd6ciwgW3gyXQoKClRpbWUgdG8gY29tZSB1cCB3aXRoIGEgYmV0dGVy IFNDVExSIHJlc2V0IHZhbHVlLCBJIGd1ZXNzLgoKUm9iaW4uCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==