Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp21474ybv; Wed, 12 Feb 2020 18:17:03 -0800 (PST) X-Google-Smtp-Source: APXvYqzowo4m9r085lSrG9ROZ0CkdydH7brYaMmzxJwkonE27Nwelhzr7SddAbCsZ9UlOPbA96R2 X-Received: by 2002:a54:4182:: with SMTP id 2mr1414874oiy.14.1581560223290; Wed, 12 Feb 2020 18:17:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581560223; cv=none; d=google.com; s=arc-20160816; b=zlBAnSKZAsGuAONlWIBViYKGVSESSHxVra8hedK32+uyWDPTXC5j03cYXC5L8O6sGJ JX3U64rFlLExAyOJ0UlFbqbzikg4bWpHCuhdMXWBNntBBOT3CNEW5tFFQdk+hBtpXqvD fhn/7dHXvTddVsTPLQip16mnAtOBLX5Fd46YaWtgz+nnNuIJ+MePNTK+OUkyWE+mtxhf wDgaVzYXEN59/Votv7cM9r/pOtvR3oM8UmBpneLGVvDnFCx2RBV7WBmXIlOSH7ZqyVuY eVW5+rLRsHFapAtYIvL0Y1knV7sxEubXm/S7pgw/i9jNpqYvVzuD6EEgrLjQQ90EC6l+ R9+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=AhwSZVYJ+4hei9h/Q/Q2s2HCwDQp2uZJHTBjViTn+wE=; b=Zqp0ku9OpD/z3MVCo3s4TGPE1GE6zXfEnbcuzEc57VCLCIj2FtmPWS9F7VB/R4/Rnn jOpOjJGeKNxiarI65GGpKqbUaP2R/XaXeSH7LpSXftLfCbAV2ayXbLwq1KkPvew2a7jE 5ss0EDUsBzE0A9OIvGiGulBaXRW7u3F7P/EYyULpFKaJ8vDOwuD9cm8Dws+nv3Jp2WUe w/I63Y0UCQAjVXSGMt/OwSpgZCnYlgyA5UTjNnl4a6Tz4XJuYlqGWl/ZHtTx5W0qRmnm taGi+uagwBAkLOSJ1hl6UcuSkXKMkOtizUTgqwnjuYLUoz6a8reSmB3lReLTomBoPDea GnSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=S8PKfSAD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j1si371599otn.53.2020.02.12.18.16.45; Wed, 12 Feb 2020 18:17:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=S8PKfSAD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729474AbgBMCQH (ORCPT + 99 others); Wed, 12 Feb 2020 21:16:07 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:3663 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1729333AbgBMCQH (ORCPT ); Wed, 12 Feb 2020 21:16:07 -0500 X-UUID: 7c2e637e440c4c22b7fd834e2f9bd890-20200213 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=AhwSZVYJ+4hei9h/Q/Q2s2HCwDQp2uZJHTBjViTn+wE=; b=S8PKfSADZwc46+nIir+uGu9KZI+vB+hXA047Y5PYdrPs4fPqkBuPehhlrGdBl0WyjHEZH1zYwZsJ7XQDhSoGEuxlXsJRwSTh5+GUExtwaZRUwvTTA0Kqi6B6jWLVjqSMn+OSGNuywQncbOmo7uwyMwubOXkMWC/QCc8Bsx/2K68=; X-UUID: 7c2e637e440c4c22b7fd834e2f9bd890-20200213 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 740254384; Thu, 13 Feb 2020 10:15:55 +0800 Received: from mtkcas09.mediatek.inc (172.21.101.178) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 13 Feb 2020 10:14:15 +0800 Received: from [172.21.77.4] (172.21.77.4) by mtkcas09.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Thu, 13 Feb 2020 10:16:22 +0800 Message-ID: <1581560153.19424.6.camel@mtksdaap41> Subject: Re: [PATCH v11 04/10] soc: mediatek: Add multiple step bus protection control From: Weiyi Lu To: Matthias Brugger CC: Nicolas Boichat , Rob Herring , Sascha Hauer , James Liao , Fan Chen , , , , Date: Thu, 13 Feb 2020 10:15:53 +0800 In-Reply-To: <28bcbd36-c2b9-d69e-55b2-508ad7b63887@gmail.com> References: <1576813564-23927-1-git-send-email-weiyi.lu@mediatek.com> <1576813564-23927-5-git-send-email-weiyi.lu@mediatek.com> <9cafe21c-2bd2-7ee6-9e7f-ce238b935069@gmail.com> <1581476150.22901.35.camel@mtksdaap41> <28bcbd36-c2b9-d69e-55b2-508ad7b63887@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIwLTAyLTEyIGF0IDEwOjIzICswMTAwLCBNYXR0aGlhcyBCcnVnZ2VyIHdyb3Rl Og0KPiANCj4gT24gMTIvMDIvMjAyMCAwMzo1NSwgV2VpeWkgTHUgd3JvdGU6DQo+ID4gT24gVHVl LCAyMDIwLTAyLTExIGF0IDE4OjQ5ICswMTAwLCBNYXR0aGlhcyBCcnVnZ2VyIHdyb3RlOg0KPiA+ Pg0KPiA+PiBPbiAyMC8xMi8yMDE5IDA0OjQ1LCBXZWl5aSBMdSB3cm90ZToNCj4gPj4+IEJvdGgg TVQ4MTgzICYgTVQ2NzY1IGhhdmUgbW9yZSBjb250cm9sIHN0ZXBzIG9mIGJ1cyBwcm90ZWN0aW9u DQo+ID4+PiB0aGFuIHByZXZpb3VzIHByb2plY3QuIEFuZCB0aGVyZSBhZGQgbW9yZSBidXMgcHJv dGVjdGlvbiByZWdpc3RlcnMNCj4gPj4+IHJlc2lkZSBhdCBpbmZyYWNmZyAmIHNtaS1jb21tb24u IEFsc28gYWRkIG5ldyBBUElzIGZvciBtdWx0aXBsZQ0KPiA+Pj4gc3RlcCBidXMgcHJvdGVjdGlv biBjb250cm9sIHdpdGggbW9yZSBjdXN0b21pemVkIGFyZ3VtZW50cy4NCj4gPj4+IEFuZCB0aGVu IHVzZSBicF90YWJsZSBmb3IgYnVzIHByb3RlY3Rpb24gb2YgYWxsIGNvbXBhdGlibGVzLA0KPiA+ Pj4gaW5zdGVhZCBvZiBtaXhpbmcgYnVzX3Byb3RfbWFzayBhbmQgYnVzX3Byb3RfcmVnX3VwZGF0 ZS4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBXZWl5aSBMdSA8d2VpeWkubHVAbWVkaWF0 ZWsuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUg ICAgICAgICB8ICAgMiArLQ0KPiA+Pj4gIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMt ZXh0LmMgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+ICBkcml2ZXJz L3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgICAgIHwgMTE3ICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0NCj4gPj4+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0Lmgg ICAgIHwgIDY3ICsrKysrKysrKysrKysrKysrKysNCj4gPj4+ICA0IGZpbGVzIGNoYW5nZWQsIDI0 MCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkNCj4gPj4+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy1leHQuYw0KPiA+Pj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCj4gPj4+DQo+ID4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+Pj4gaW5kZXggYjAxNzMzMC4uYjQ0MmJlOSAxMDA2NDQN Cj4gPj4+IC0tLSBhL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlDQo+ID4+PiArKysgYi9k cml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+Pj4gQEAgLTEsNSArMSw1IEBADQo+ID4+ PiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5DQo+ID4+PiAgb2JqLSQo Q09ORklHX01US19DTURRKSArPSBtdGstY21kcS1oZWxwZXIubw0KPiA+Pj4gLW9iai0kKENPTkZJ R19NVEtfSU5GUkFDRkcpICs9IG10ay1pbmZyYWNmZy5vDQo+ID4+PiArb2JqLSQoQ09ORklHX01U S19JTkZSQUNGRykgKz0gbXRrLWluZnJhY2ZnLm8gbXRrLXNjcHN5cy1leHQubw0KPiA+Pg0KPiA+ PiBJdCBzZWVtcyB0aGF0IHdlIHdvdWxkIG5lZWQgYW5vdGhlciBwYXRjaCB3aGljaCBnZXQncyBy aWQgb2YgdGhlIG10ay1pbmZyYWNmZw0KPiA+PiBmaXJzdCBhbmQgdGhlbiBhZGQgc3R1ZmYgbGlr ZSB0aGUgcG9zc2liaWxpdHkgdG8gaGF2ZSBkaWZmZXJlbnQgc3RlcHMuDQo+ID4+DQo+ID4gDQo+ ID4gQWN0dWFsbHkgSSBoYXZlIGEgUEFUQ0ggMDUvMTEgdG8gcmVtb3ZlIHRoZSBtdGstaW5mcmFj ZmcuDQo+ID4gSW4gdGhpcyBwYXRjaCwgSSBoYXZlIHNvbWUgY2hhbmdlcywgbGlrZSBjYWxsaW5n DQo+ID4gbXRrX3NjcHN5c19leHRfc2V0X2J1c19wcm90ZWN0aW9uKC4uLikgaW5zdGVhZCBvZg0K PiA+IG10a19pbmZyYWNmZ19zZXRfYnVzX3Byb3RlY3Rpb24oLi4uKSBpbiBzY3BzeXNfYnVzX3By b3RlY3RfZW5hYmxlKC4uLikNCj4gPiBhbmQgcmVwbGFjaW5nIGJ1c19wcm90X21hc2sgYnkgYnBf dGFibGUuDQo+ID4gSSB0aG91Z2h0IEkgc2hvdWxkIGludHJvZHVjZSB0aGUgbmV3IG1ldGhvZCBm aXJzdCBhbmQgcmVtb3ZlIHVzZWxlc3Mgb25lDQo+ID4gbGF0ZXIuIFdoYXQgZG8geW91IHRoaW5r Pw0KPiANCj4gWWVzLCBidXQgZmlyc3QgcGF0Y2ggd291bGQgYmUgYSBzdGVwIHRvIGdldCByaWQg b2YgbXRrLWluZnJhY2ZnIGFuZCBhIHNlY29uZA0KPiBwYXRjaCBhZGQgYnBfdGFibGUgYW5kIHRo ZSBsaWtlLg0KPiANCg0KT0ssIEknbGwgc3BsaXQgaW50byBzdWNoIHNlcXVlbmNlLg0KDQo+ID4g DQo+ID4+PiAgb2JqLSQoQ09ORklHX01US19QTUlDX1dSQVApICs9IG10ay1wbWljLXdyYXAubw0K PiA+Pj4gIG9iai0kKENPTkZJR19NVEtfU0NQU1lTKSArPSBtdGstc2Nwc3lzLm8NCj4gPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLWV4dC5jIGIvZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy1leHQuYw0KPiA+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gPj4+IGluZGV4IDAwMDAwMDAuLmRmNDAyYWMNCj4gPj4+IC0tLSAvZGV2L251bGwNCj4g Pj4+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMtZXh0LmMNCj4gPj4NCj4g Pj4gSSdtIG5vdCBxdWl0ZSBzdXJlIHdoeSB3ZSBzaG91bGQgcHV0IHRoaXMgaW50byBhIG5ldyBm aWxlLiBJIHN1cHBvc2UgdGhlDQo+ID4+IHJhdGlvbmFsIGJlaGluZCBpdCBpcyB0aGUgZmFjdCB0 aGF0IHdlIGFjY2VzcyBvdGhlciBibG9ja3MgdGhyb3VnaCByZWdtYXAuDQo+ID4+DQo+ID4gDQo+ ID4gWWVzLCB0aG9zZSBvcGVyYXRpb24gYXJlIGFjY3Jvc3MgaW5mcmFjZmcgYW5kIHNtaS1jb21t b24gc28gd2UgcHV0IHRoZXNlDQo+ID4gaW50byBuZXcgZmlsZXMuDQo+IA0KPiBBcmUgeW91IGV4 ZXBjdCBvdGhlciBkcml2ZXJzIHRvIHVzZSB0aGlzIGZ1bmN0aW9ucz8gSWYgbm90IEkgd2lsbCBo YXZlIHRvIHRoaW5rDQo+IGFnYWluLCBidXQgSSBkb24ndCBzZWUgYW55IHJlYXNvbiB0byBwdXQg aXQgaW50byBhIG5ldyBmaWxlLg0KPiANCg0KSSB0aG91Z2h0IG5vIG90aGVyIGRyaXZlciB3b3Vs ZCB1c2UgdGhlc2UgZnVuY3Rpb25zIHVubGVzcyB0aGVyZSB3aWxsDQpoYXZlIGRyaXZlcnMgd2Fu dCB0byB0YWtlIG92ZXIgdGhlIGJ1cyBwcm90ZWN0aW9uIHByb2Nlc3MgYnkgdGhlbXNlbHZlcy4N Cg0KRG8geW91IHByZWZlciBqdXN0IHB1dHRpbmcgdGhlc2UgZnVuY3Rpb25zIGludG8gbXRrLXNj cHN5cy5jPw0KDQo+ID4gDQo+ID4+PiBAQCAtMCwwICsxLDEwMSBAQA0KPiA+Pj4gKy8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4+PiArLyoNCj4gPj4+ICsgKiBDb3B5cmln aHQgKGMpIDIwMTggTWVkaWFUZWsgSW5jLg0KPiA+Pj4gKyAqIEF1dGhvcjogT3dlbiBDaGVuIDxP d2VuLkNoZW5AbWVkaWF0ZWsuY29tPg0KPiA+Pj4gKyAqLw0KPiA+Pj4gKyNpbmNsdWRlIDxsaW51 eC9rdGltZS5oPg0KPiA+Pj4gKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+DQo+ID4+PiAr I2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiA+Pj4gKyNpbmNsdWRlIDxsaW51eC9yZWdt YXAuaD4NCj4gPj4+ICsjaW5jbHVkZSAic2Nwc3lzLWV4dC5oIg0KPiA+Pj4gKw0KPiA+Pj4gKyNk ZWZpbmUgTVRLX1BPTExfREVMQVlfVVMgICAxMA0KPiA+Pj4gKyNkZWZpbmUgTVRLX1BPTExfVElN RU9VVCAgICBVU0VDX1BFUl9TRUMNCj4gPj4+ICsNCj4gPj4+ICtzdGF0aWMgaW50IHNldF9idXNf cHJvdGVjdGlvbihzdHJ1Y3QgcmVnbWFwICptYXAsIHUzMiBtYXNrLA0KPiA+Pj4gKwkJdTMyIHJl Z19zZXQsIHUzMiByZWdfc3RhLCB1MzIgcmVnX2VuKQ0KPiA+Pj4gK3sNCj4gPj4+ICsJdTMyIHZh bDsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKHJlZ19zZXQpDQo+ID4+PiArCQlyZWdtYXBfd3JpdGUo bWFwLCByZWdfc2V0LCBtYXNrKTsNCj4gPj4+ICsJZWxzZQ0KPiA+Pj4gKwkJcmVnbWFwX3VwZGF0 ZV9iaXRzKG1hcCwgcmVnX2VuLCBtYXNrLCBtYXNrKTsNCj4gPj4+ICsNCj4gPj4+ICsJcmV0dXJu IHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChtYXAsIHJlZ19zdGEsDQo+ID4+PiArCQkJdmFsLCAo dmFsICYgbWFzaykgPT0gbWFzaywNCj4gPj4+ICsJCQlNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BP TExfVElNRU9VVCk7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gK3N0YXRpYyBpbnQgY2xlYXJf YnVzX3Byb3RlY3Rpb24oc3RydWN0IHJlZ21hcCAqbWFwLCB1MzIgbWFzaywNCj4gPj4+ICsJCXUz MiByZWdfY2xyLCB1MzIgcmVnX3N0YSwgdTMyIHJlZ19lbiwgYm9vbCBpZ25vcmVfYWNrKQ0KPiA+ Pj4gK3sNCj4gPj4+ICsJdTMyIHZhbDsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKHJlZ19jbHIpDQo+ ID4+PiArCQlyZWdtYXBfd3JpdGUobWFwLCByZWdfY2xyLCBtYXNrKTsNCj4gPj4+ICsJZWxzZQ0K PiA+Pj4gKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKG1hcCwgcmVnX2VuLCBtYXNrLCAwKTsNCj4gPj4+ ICsNCj4gPj4+ICsJaWYgKGlnbm9yZV9hY2spDQo+ID4+PiArCQlyZXR1cm4gMDsNCj4gPj4+ICsN Cj4gPj4+ICsJcmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChtYXAsIHJlZ19zdGEsDQo+ ID4+PiArCQkJdmFsLCAhKHZhbCAmIG1hc2spLA0KPiA+Pj4gKwkJCU1US19QT0xMX0RFTEFZX1VT LCBNVEtfUE9MTF9USU1FT1VUKTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAraW50IG10a19z Y3BzeXNfZXh0X3NldF9idXNfcHJvdGVjdGlvbihjb25zdCBzdHJ1Y3QgYnVzX3Byb3QgKmJwX3Rh YmxlLA0KPiA+Pj4gKwlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZywgc3RydWN0IHJlZ21hcCAqc21p X2NvbW1vbikNCj4gPj4+ICt7DQo+ID4+PiArCWludCBpOw0KPiA+Pj4gKw0KPiA+Pj4gKwlmb3Ig KGkgPSAwOyBpIDwgTUFYX1NURVBTOyBpKyspIHsNCj4gPj4NCj4gPj4gc3RydWN0IGJ1c19wcm90 IGJwX3RhYmxlID0gYnBfdGFibGVbaV07DQo+ID4+DQo+ID4gDQo+ID4gT0ssIGdvdCBpdC4NCj4g PiANCj4gPj4+ICsJCXN0cnVjdCByZWdtYXAgKm1hcCA9IE5VTEw7DQo+ID4+PiArCQlpbnQgcmV0 Ow0KPiA+Pj4gKw0KPiA+Pj4gKwkJaWYgKGJwX3RhYmxlW2ldLnR5cGUgPT0gSU5WQUxJRF9UWVBF KQ0KPiA+Pj4gKwkJCWJyZWFrOw0KPiA+Pj4gKwkJZWxzZSBpZiAoYnBfdGFibGVbaV0udHlwZSA9 PSBJRlJfVFlQRSkNCj4gPj4+ICsJCQltYXAgPSBpbmZyYWNmZzsNCj4gPj4+ICsJCWVsc2UgaWYg KGJwX3RhYmxlW2ldLnR5cGUgPT0gU01JX1RZUEUpDQo+ID4+PiArCQkJbWFwID0gc21pX2NvbW1v bjsNCj4gPj4NCj4gPj4gaWYgKGJwX3RhYmxlLnR5cGUgPT0gSUZSX1RZUEUpDQo+ID4+IAltYXAg PSBpbmZyYWNmZzsNCj4gPj4gZWxzZSBpZiAoYnBfdGFibGUudHlwZSA9PSBTTUlfVFlQRSkNCj4g Pj4gCW1hcCA9IHNtaV9jb21tb247DQo+ID4+IGVsc2UNCj4gPj4gCWJyZWFrOw0KPiA+Pg0KPiA+ IA0KPiA+IE9LLCBnb3QgaXQuDQo+ID4gDQo+ID4+PiArDQo+ID4+PiArCQlyZXQgPSBzZXRfYnVz X3Byb3RlY3Rpb24obWFwLA0KPiA+Pj4gKwkJCQlicF90YWJsZVtpXS5tYXNrLCBicF90YWJsZVtp XS5zZXRfb2ZzLA0KPiA+Pj4gKwkJCQlicF90YWJsZVtpXS5zdGFfb2ZzLCBicF90YWJsZVtpXS5l bl9vZnMpOw0KPiA+Pg0KPiA+PiBwYXNzaW5nIG1hcCBhbmQgYnBfdGFibGUgaGVyZSBtYWtlcyBj b2RlIG11Y2ggbW9yZSByZWFkYWJsZS4gSSBhbHdheXMgZW5kLXVwDQo+ID4+IGNvdW50aW5nIHRo ZSB2YXJpYWJsZXMgd2hlbiB0aGUgbmFtZXMgaW4gdGhlIGNhbGxlZSBjaGFuZ2VzLg0KPiA+Pg0K PiA+IA0KPiA+IE9LLCBJJ2xsIGZpeCBpdC4NCj4gPiANCj4gPj4+ICsNCj4gPj4+ICsJCWlmIChy ZXQpDQo+ID4+PiArCQkJcmV0dXJuIHJldDsNCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwly ZXR1cm4gMDsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAraW50IG10a19zY3BzeXNfZXh0X2Ns ZWFyX2J1c19wcm90ZWN0aW9uKGNvbnN0IHN0cnVjdCBidXNfcHJvdCAqYnBfdGFibGUsDQo+ID4+ PiArCXN0cnVjdCByZWdtYXAgKmluZnJhY2ZnLCBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uKQ0K PiA+Pj4gK3sNCj4gPj4+ICsJaW50IGk7DQo+ID4+PiArDQo+ID4+PiArCWZvciAoaSA9IE1BWF9T VEVQUyAtIDE7IGkgPj0gMDsgaS0tKSB7DQo+ID4+PiArCQlzdHJ1Y3QgcmVnbWFwICptYXAgPSBO VUxMOw0KPiA+Pj4gKwkJaW50IHJldDsNCj4gPj4+ICsNCj4gPj4+ICsJCWlmIChicF90YWJsZVtp XS50eXBlID09IElOVkFMSURfVFlQRSkNCj4gPj4+ICsJCQljb250aW51ZTsNCj4gPj4+ICsJCWVs c2UgaWYgKGJwX3RhYmxlW2ldLnR5cGUgPT0gSUZSX1RZUEUpDQo+ID4+PiArCQkJbWFwID0gaW5m cmFjZmc7DQo+ID4+PiArCQllbHNlIGlmIChicF90YWJsZVtpXS50eXBlID09IFNNSV9UWVBFKQ0K PiA+Pj4gKwkJCW1hcCA9IHNtaV9jb21tb247DQo+ID4+PiArDQo+ID4+PiArCQlyZXQgPSBjbGVh cl9idXNfcHJvdGVjdGlvbihtYXAsDQo+ID4+PiArCQkJCWJwX3RhYmxlW2ldLm1hc2ssIGJwX3Rh YmxlW2ldLmNscl9vZnMsDQo+ID4+PiArCQkJCWJwX3RhYmxlW2ldLnN0YV9vZnMsIGJwX3RhYmxl W2ldLmVuX29mcywNCj4gPj4+ICsJCQkJYnBfdGFibGVbaV0uaWdub3JlX2Nscl9hY2spOw0KPiA+ Pj4gKw0KPiA+Pg0KPiA+PiBzYW1lIGhlcmUuDQo+ID4+DQo+ID4gDQo+ID4gR290IGl0Lg0KPiA+ IA0KPiA+Pj4gKwkJaWYgKHJldCkNCj4gPj4+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+Pj4gKwl9DQo+ ID4+PiArDQo+ID4+PiArCXJldHVybiAwOw0KPiA+Pj4gK30NCj4gPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9t dGstc2Nwc3lzLmMNCj4gPj4+IGluZGV4IGRiMzVhMjguLjc2M2NhNTggMTAwNjQ0DQo+ID4+PiAt LS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMNCj4gPj4+ICsrKyBiL2RyaXZl cnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KPiA+Pj4gQEAgLTExLDcgKzExLDcgQEANCj4g Pj4+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4+PiAgI2luY2x1ZGUg PGxpbnV4L3BtX2RvbWFpbi5oPg0KPiA+Pj4gICNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29u c3VtZXIuaD4NCj4gPj4+IC0jaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL2luZnJhY2ZnLmg+ DQo+ID4+PiArI2luY2x1ZGUgInNjcHN5cy1leHQuaCINCj4gPj4+ICANCj4gPj4+ICAjaW5jbHVk ZSA8ZHQtYmluZGluZ3MvcG93ZXIvbXQyNzAxLXBvd2VyLmg+DQo+ID4+PiAgI2luY2x1ZGUgPGR0 LWJpbmRpbmdzL3Bvd2VyL210MjcxMi1wb3dlci5oPg0KPiA+Pj4gQEAgLTg3LDkgKzg3LDkgQEAN Cj4gPj4+ICAgKiBAY3RsX29mZnM6IFRoZSBvZmZzZXQgZm9yIG1haW4gcG93ZXIgY29udHJvbCBy ZWdpc3Rlci4NCj4gPj4+ICAgKiBAc3JhbV9wZG5fYml0czogVGhlIG1hc2sgZm9yIHNyYW0gcG93 ZXIgY29udHJvbCBiaXRzLg0KPiA+Pj4gICAqIEBzcmFtX3Bkbl9hY2tfYml0czogVGhlIG1hc2sg Zm9yIHNyYW0gcG93ZXIgY29udHJvbCBhY2tlZCBiaXRzLg0KPiA+Pj4gLSAqIEBidXNfcHJvdF9t YXNrOiBUaGUgbWFzayBmb3Igc2luZ2xlIHN0ZXAgYnVzIHByb3RlY3Rpb24uDQo+ID4+PiAgICog QGJhc2ljX2Nsa19uYW1lOiBUaGUgYmFzaWMgY2xvY2tzIHJlcXVpcmVkIGJ5IHRoaXMgcG93ZXIg ZG9tYWluLg0KPiA+Pj4gICAqIEBjYXBzOiBUaGUgZmxhZyBmb3IgYWN0aXZlIHdha2UtdXAgYWN0 aW9uLg0KPiA+Pj4gKyAqIEBicF90YWJsZTogVGhlIG1hc2sgdGFibGUgZm9yIG11bHRpcGxlIHN0 ZXAgYnVzIHByb3RlY3Rpb24uDQo+ID4+PiAgICovDQo+ID4+PiAgc3RydWN0IHNjcF9kb21haW5f ZGF0YSB7DQo+ID4+PiAgCWNvbnN0IGNoYXIgKm5hbWU7DQo+ID4+PiBAQCAtOTcsOSArOTcsOSBA QCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIHsNCj4gPj4+ICAJaW50IGN0bF9vZmZzOw0KPiA+Pj4g IAl1MzIgc3JhbV9wZG5fYml0czsNCj4gPj4+ICAJdTMyIHNyYW1fcGRuX2Fja19iaXRzOw0KPiA+ Pj4gLQl1MzIgYnVzX3Byb3RfbWFzazsNCj4gPj4+ICAJY29uc3QgY2hhciAqYmFzaWNfY2xrX25h bWVbTUFYX0NMS1NdOw0KPiA+Pj4gIAl1OCBjYXBzOw0KPiA+Pj4gKwlzdHJ1Y3QgYnVzX3Byb3Qg YnBfdGFibGVbTUFYX1NURVBTXTsNCj4gPj4+ICB9Ow0KPiA+Pj4gIA0KPiA+Pj4gIHN0cnVjdCBz Y3A7DQo+ID4+PiBAQCAtMTIzLDggKzEyMyw4IEBAIHN0cnVjdCBzY3Agew0KPiA+Pj4gIAlzdHJ1 Y3QgZGV2aWNlICpkZXY7DQo+ID4+PiAgCXZvaWQgX19pb21lbSAqYmFzZTsNCj4gPj4+ICAJc3Ry dWN0IHJlZ21hcCAqaW5mcmFjZmc7DQo+ID4+PiArCXN0cnVjdCByZWdtYXAgKnNtaV9jb21tb247 DQo+ID4+PiAgCXN0cnVjdCBzY3BfY3RybF9yZWcgY3RybF9yZWc7DQo+ID4+PiAtCWJvb2wgYnVz X3Byb3RfcmVnX3VwZGF0ZTsNCj4gPj4+ICB9Ow0KPiA+Pj4gIA0KPiA+Pj4gIHN0cnVjdCBzY3Bf c3ViZG9tYWluIHsNCj4gPj4+IEBAIC0xMzgsNyArMTM4LDYgQEAgc3RydWN0IHNjcF9zb2NfZGF0 YSB7DQo+ID4+PiAgCWNvbnN0IHN0cnVjdCBzY3Bfc3ViZG9tYWluICpzdWJkb21haW5zOw0KPiA+ Pj4gIAlpbnQgbnVtX3N1YmRvbWFpbnM7DQo+ID4+PiAgCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9y ZWcgcmVnczsNCj4gPj4+IC0JYm9vbCBidXNfcHJvdF9yZWdfdXBkYXRlOw0KPiA+Pj4gIH07DQo+ ID4+PiAgDQo+ID4+PiAgc3RhdGljIGludCBzY3BzeXNfZG9tYWluX2lzX29uKHN0cnVjdCBzY3Bf ZG9tYWluICpzY3BkKQ0KPiA+Pj4gQEAgLTI1MiwyNCArMjUxLDE2IEBAIHN0YXRpYyBpbnQgc2Nw c3lzX2J1c19wcm90ZWN0X2VuYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCj4gPj4+ICB7 DQo+ID4+PiAgCXN0cnVjdCBzY3AgKnNjcCA9IHNjcGQtPnNjcDsNCj4gPj4+ICANCj4gPj4+IC0J aWYgKCFzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKQ0KPiA+Pj4gLQkJcmV0dXJuIDA7DQo+ID4+ PiAtDQo+ID4+PiAtCXJldHVybiBtdGtfaW5mcmFjZmdfc2V0X2J1c19wcm90ZWN0aW9uKHNjcC0+ aW5mcmFjZmcsDQo+ID4+PiAtCQkJc2NwZC0+ZGF0YS0+YnVzX3Byb3RfbWFzaywNCj4gPj4+IC0J CQlzY3AtPmJ1c19wcm90X3JlZ191cGRhdGUpOw0KPiA+Pj4gKwlyZXR1cm4gbXRrX3NjcHN5c19l eHRfc2V0X2J1c19wcm90ZWN0aW9uKHNjcGQtPmRhdGEtPmJwX3RhYmxlLA0KPiA+Pj4gKwkJCXNj cC0+aW5mcmFjZmcsIHNjcC0+c21pX2NvbW1vbik7DQo+ID4+DQo+ID4+IE5vdyB0aGF0J3MganVz dCBhIHdyYXBwZXIgd2hpY2ggZG9lcyBhZGQgbm90aGluZyBidXQgYW5vdGhlciBpbmRpcmVjdGlv bi4gV2UgY2FuDQo+ID4+IGNhbGwgbXRrX3NjcHN5c19leHRfc2V0X2J1c19wcm90ZWN0aW9uKCkg ZGlyZWN0bHkgKGFsc28gSSBkb24ndCBsaWtlIHRoZSBuYW1lLA0KPiA+PiBhY3R1YWxseSB3aHkg ZG9uJ3QgbXRrX3NjcHN5c19zZXRfYnVzX3Byb3RlY3Rpb24oKT8pDQo+ID4+DQo+ID4gDQo+ID4g WW91J3JlIHJpZ2h0LiBJJ2xsIGNhbGxlZCBtdGtfc2Nwc3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rp b24oKSBkaXJlY3RseS4NCj4gPiANCj4gPj4+ICB9DQo+ID4+PiAgDQo+ID4+PiAgc3RhdGljIGlu dCBzY3BzeXNfYnVzX3Byb3RlY3RfZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCj4g Pj4+ICB7DQo+ID4+PiAgCXN0cnVjdCBzY3AgKnNjcCA9IHNjcGQtPnNjcDsNCj4gPj4+ICANCj4g Pj4+IC0JaWYgKCFzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKQ0KPiA+Pj4gLQkJcmV0dXJuIDA7 DQo+ID4+PiAtDQo+ID4+PiAtCXJldHVybiBtdGtfaW5mcmFjZmdfY2xlYXJfYnVzX3Byb3RlY3Rp b24oc2NwLT5pbmZyYWNmZywNCj4gPj4+IC0JCQlzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrLA0K PiA+Pj4gLQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQo+ID4+PiArCXJldHVybiBtdGtf c2Nwc3lzX2V4dF9jbGVhcl9idXNfcHJvdGVjdGlvbihzY3BkLT5kYXRhLT5icF90YWJsZSwNCj4g Pj4+ICsJCQlzY3AtPmluZnJhY2ZnLCBzY3AtPnNtaV9jb21tb24pOw0KPiA+Pj4gIH0NCj4gPj4+ ICANCj4gPj4+ICBzdGF0aWMgaW50IHNjcHN5c19wb3dlcl9vbihzdHJ1Y3QgZ2VuZXJpY19wbV9k b21haW4gKmdlbnBkKQ0KPiA+Pj4gQEAgLTQwNCw4ICszOTUsNyBAQCBzdGF0aWMgaW50IGluaXRf YmFzaWNfY2xrcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgY2xrICoqY2xr LA0KPiA+Pj4gIA0KPiA+Pj4gIHN0YXRpYyBzdHJ1Y3Qgc2NwICppbml0X3NjcChzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+Pj4gIAkJCWNvbnN0IHN0cnVjdCBzY3BfZG9tYWluX2Rh dGEgKnNjcF9kb21haW5fZGF0YSwgaW50IG51bSwNCj4gPj4+IC0JCQljb25zdCBzdHJ1Y3Qgc2Nw X2N0cmxfcmVnICpzY3BfY3RybF9yZWcsDQo+ID4+PiAtCQkJYm9vbCBidXNfcHJvdF9yZWdfdXBk YXRlKQ0KPiA+Pj4gKwkJCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgKnNjcF9jdHJsX3JlZykN Cj4gPj4+ICB7DQo+ID4+PiAgCXN0cnVjdCBnZW5wZF9vbmVjZWxsX2RhdGEgKnBkX2RhdGE7DQo+ ID4+PiAgCXN0cnVjdCByZXNvdXJjZSAqcmVzOw0KPiA+Pj4gQEAgLTQxOSw4ICs0MDksNiBAQCBz dGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwN Cj4gPj4+ICAJc2NwLT5jdHJsX3JlZy5wd3Jfc3RhX29mZnMgPSBzY3BfY3RybF9yZWctPnB3cl9z dGFfb2ZmczsNCj4gPj4+ICAJc2NwLT5jdHJsX3JlZy5wd3Jfc3RhMm5kX29mZnMgPSBzY3BfY3Ry bF9yZWctPnB3cl9zdGEybmRfb2ZmczsNCj4gPj4+ICANCj4gPj4+IC0Jc2NwLT5idXNfcHJvdF9y ZWdfdXBkYXRlID0gYnVzX3Byb3RfcmVnX3VwZGF0ZTsNCj4gPj4+IC0NCj4gPj4+ICAJc2NwLT5k ZXYgPSAmcGRldi0+ZGV2Ow0KPiA+Pj4gIA0KPiA+Pj4gIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVz b3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0KPiA+Pj4gQEAgLTQ0OCw2ICs0MzYsMTcg QEAgc3RhdGljIHN0cnVjdCBzY3AgKmluaXRfc2NwKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsDQo+ID4+PiAgCQlyZXR1cm4gRVJSX0NBU1Qoc2NwLT5pbmZyYWNmZyk7DQo+ID4+PiAgCX0N Cj4gPj4+ICANCj4gPj4+ICsJc2NwLT5zbWlfY29tbW9uID0gc3lzY29uX3JlZ21hcF9sb29rdXBf YnlfcGhhbmRsZShwZGV2LT5kZXYub2Zfbm9kZSwNCj4gPj4+ICsJCQkic21pX2NvbW0iKTsNCj4g Pj4+ICsNCj4gPj4+ICsJaWYgKHNjcC0+c21pX2NvbW1vbiA9PSBFUlJfUFRSKC1FTk9ERVYpKSB7 DQo+ID4+PiArCQlzY3AtPnNtaV9jb21tb24gPSBOVUxMOw0KPiA+Pj4gKwl9IGVsc2UgaWYgKElT X0VSUihzY3AtPnNtaV9jb21tb24pKSB7DQo+ID4+PiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJD YW5ub3QgZmluZCBzbWlfY29tbW9uIGNvbnRyb2xsZXI6ICVsZFxuIiwNCj4gPj4+ICsJCQkJUFRS X0VSUihzY3AtPnNtaV9jb21tb24pKTsNCj4gPj4+ICsJCXJldHVybiBFUlJfQ0FTVChzY3AtPnNt aV9jb21tb24pOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiAgCWZvciAoaSA9IDA7IGkgPCBu dW07IGkrKykgew0KPiA+Pj4gIAkJc3RydWN0IHNjcF9kb21haW4gKnNjcGQgPSAmc2NwLT5kb21h aW5zW2ldOw0KPiA+Pj4gIAkJY29uc3Qgc3RydWN0IHNjcF9kb21haW5fZGF0YSAqZGF0YSA9ICZz Y3BfZG9tYWluX2RhdGFbaV07DQo+ID4+PiBAQCAtNTMwLDggKzUyOSwxMSBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KPiA+Pj4gIAkJLm5hbWUgPSAiY29ubiIsDQo+ID4+PiAgCQkuc3RhX21hc2sgPSBQV1JfU1RB VFVTX0NPTk4sDQo+ID4+PiAgCQkuY3RsX29mZnMgPSBTUE1fQ09OTl9QV1JfQ09OLA0KPiA+Pj4g LQkJLmJ1c19wcm90X21hc2sgPSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQo+ID4+ PiAtCQkJCSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fUywNCj4gPj4+ICsJCS5icF90YWJs ZSA9IHsNCj4gPj4+ICsJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0K PiA+Pj4gKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQo+ID4+PiArCQkJCU1U MjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9TKSwNCj4gPj4+ICsJCX0sDQo+ID4+PiAgCQkuY2Fw cyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQo+ID4+PiAgCX0sDQo+ID4+PiAgCVtNVDI3MDFf UE9XRVJfRE9NQUlOX0RJU1BdID0gew0KPiA+Pj4gQEAgLTU0MCw3ICs1NDIsMTAgQEAgc3RhdGlj IHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwNCj4gPj4+ICAJCS5jdGxfb2ZmcyA9IFNQTV9ESVNfUFdSX0NPTiwNCj4gPj4+ICAJCS5z cmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQo+ID4+PiAgCQkuYmFzaWNfY2xrX25hbWUg PSB7Im1tIn0sDQo+ID4+PiAtCQkuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1Rf RU5fTU1fTTAsDQo+ID4+PiArCQkuYnBfdGFibGUgPSB7DQo+ID4+PiArCQkJQlVTX1BST1QoSUZS X1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPj4+ICsJCQkJTVQyNzAxX1RPUF9BWElfUFJP VF9FTl9NTV9NMCksDQo+ID4+PiArCQl9LA0KPiA+Pj4gIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJ VkVfV0FLRVVQLA0KPiA+Pj4gIAl9LA0KPiA+Pj4gIAlbTVQyNzAxX1BPV0VSX0RPTUFJTl9NRkdd ID0gew0KPiA+Pj4gQEAgLTY3NSw3ICs2ODAsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVy X3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gPj4+ICAJCS5z cmFtX3Bkbl9iaXRzID0gR0VOTUFTSyg4LCA4KSwNCj4gPj4+ICAJCS5zcmFtX3Bkbl9hY2tfYml0 cyA9IEdFTk1BU0soMTYsIDE2KSwNCj4gPj4+ICAJCS5iYXNpY19jbGtfbmFtZSA9IHsibWZnIn0s DQo+ID4+PiAtCQkuYnVzX3Byb3RfbWFzayA9IEJJVCgxNCkgfCBCSVQoMjEpIHwgQklUKDIzKSwN Cj4gPj4+ICsJCS5icF90YWJsZSA9IHsNCj4gPj4+ICsJCQlCVVNfUFJPVChJRlJfVFlQRSwgMHgy NjAsIDB4MjY0LCAweDIyMCwgMHgyMjgsDQo+ID4+PiArCQkJCUJJVCgxNCkgfCBCSVQoMjEpIHwg QklUKDIzKSksDQo+ID4+PiArCQl9LA0KPiA+Pj4gIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVf V0FLRVVQLA0KPiA+Pj4gIAl9LA0KPiA+Pj4gIAlbTVQyNzEyX1BPV0VSX0RPTUFJTl9NRkdfU0Mx XSA9IHsNCj4gPj4+IEBAIC03NDcsNyArNzU1LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rl cl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4+PiAgCQku c3JhbV9wZG5fYml0cyA9IEdFTk1BU0soOCwgOCksDQo+ID4+PiAgCQkuc3JhbV9wZG5fYWNrX2Jp dHMgPSBHRU5NQVNLKDEyLCAxMiksDQo+ID4+PiAgCQkuYmFzaWNfY2xrX25hbWUgPSB7Im1tIn0s DQo+ID4+PiAtCQkuYnVzX3Byb3RfbWFzayA9IChCSVQoMSkgfCBCSVQoMikpLA0KPiA+Pj4gKwkJ LmJwX3RhYmxlID0gew0KPiA+Pj4gKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwg MHgyMjgsDQo+ID4+PiArCQkJCUJJVCgxKSB8IEJJVCgyKSksDQo+ID4+PiArCQl9LA0KPiA+Pj4g IAl9LA0KPiA+Pj4gIAlbTVQ2Nzk3X1BPV0VSX0RPTUFJTl9BVURJT10gPSB7DQo+ID4+PiAgCQku bmFtZSA9ICJhdWRpbyIsDQo+ID4+PiBAQCAtNzk0LDcgKzgwNSwxMCBAQCBzdGF0aWMgdm9pZCBt dGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0K PiA+Pj4gIAkJLmN0bF9vZmZzID0gU1BNX0VUSFNZU19QV1JfQ09OLA0KPiA+Pj4gIAkJLnNyYW1f cGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCj4gPj4+ICAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9 IEdFTk1BU0soMTUsIDEyKSwNCj4gPj4+IC0JCS5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9B WElfUFJPVF9FTl9FVEhTWVMsDQo+ID4+PiArCQkuYnBfdGFibGUgPSB7DQo+ID4+PiArCQkJQlVT X1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPj4+ICsJCQkJTVQ3NjIyX1RP UF9BWElfUFJPVF9FTl9FVEhTWVMpLA0KPiA+Pj4gKwkJfSwNCj4gPj4+ICAJCS5jYXBzID0gTVRL X1NDUERfQUNUSVZFX1dBS0VVUCwNCj4gPj4+ICAJfSwNCj4gPj4+ICAJW01UNzYyMl9QT1dFUl9E T01BSU5fSElGMF0gPSB7DQo+ID4+PiBAQCAtODA0LDcgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBt dGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0K PiA+Pj4gIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCj4gPj4+ICAJCS5zcmFt X3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCj4gPj4+ICAJCS5iYXNpY19jbGtfbmFt ZSA9IHsiaGlmX3NlbCJ9LA0KPiA+Pj4gLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2MjJfVE9QX0FY SV9QUk9UX0VOX0hJRjAsDQo+ID4+PiArCQkuYnBfdGFibGUgPSB7DQo+ID4+PiArCQkJQlVTX1BS T1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPj4+ICsJCQkJTVQ3NjIyX1RPUF9B WElfUFJPVF9FTl9ISUYwKSwNCj4gPj4+ICsJCX0sDQo+ID4+PiAgCQkuY2FwcyA9IE1US19TQ1BE X0FDVElWRV9XQUtFVVAsDQo+ID4+PiAgCX0sDQo+ID4+PiAgCVtNVDc2MjJfUE9XRVJfRE9NQUlO X0hJRjFdID0gew0KPiA+Pj4gQEAgLTgxNCw3ICs4MzEsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3Jl Z2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gPj4+ ICAJCS5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQo+ID4+PiAgCQkuc3JhbV9wZG5f YWNrX2JpdHMgPSBHRU5NQVNLKDE1LCAxMiksDQo+ID4+PiAgCQkuYmFzaWNfY2xrX25hbWUgPSB7 ImhpZl9zZWwifSwNCj4gPj4+IC0JCS5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElfUFJP VF9FTl9ISUYxLA0KPiA+Pj4gKwkJLmJwX3RhYmxlID0gew0KPiA+Pj4gKwkJCUJVU19QUk9UKElG Ul9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4+PiArCQkJCU1UNzYyMl9UT1BfQVhJX1BS T1RfRU5fSElGMSksDQo+ID4+PiArCQl9LA0KPiA+Pj4gIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJ VkVfV0FLRVVQLA0KPiA+Pj4gIAl9LA0KPiA+Pj4gIAlbTVQ3NjIyX1BPV0VSX0RPTUFJTl9XQl0g PSB7DQo+ID4+PiBAQCAtODIzLDcgKzg0MywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJf cG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+Pj4gIAkJLmN0 bF9vZmZzID0gU1BNX1dCX1BXUl9DT04sDQo+ID4+PiAgCQkuc3JhbV9wZG5fYml0cyA9IDAsDQo+ ID4+PiAgCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSAwLA0KPiA+Pj4gLQkJLmJ1c19wcm90X21hc2sg PSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX1dCLA0KPiA+Pj4gKwkJLmJwX3RhYmxlID0gew0KPiA+ Pj4gKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4+PiArCQkJ CU1UNzYyMl9UT1BfQVhJX1BST1RfRU5fV0IpLA0KPiA+Pj4gKwkJfSwNCj4gPj4+ICAJCS5jYXBz ID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCB8IE1US19TQ1BEX0ZXQUlUX1NSQU0sDQo+ID4+PiAg CX0sDQo+ID4+PiAgfTsNCj4gPj4+IEBAIC04MzcsOCArODYwLDExIEBAIHN0YXRpYyB2b2lkIG10 a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ ID4+PiAgCQkubmFtZSA9ICJjb25uIiwNCj4gPj4+ICAJCS5zdGFfbWFzayA9IFBXUl9TVEFUVVNf Q09OTiwNCj4gPj4+ICAJCS5jdGxfb2ZmcyA9IFNQTV9DT05OX1BXUl9DT04sDQo+ID4+PiAtCQku YnVzX3Byb3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCj4gPj4+IC0J CQkJIE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9TLA0KPiA+Pj4gKwkJLmJwX3RhYmxlID0g ew0KPiA+Pj4gKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4+ PiArCQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCj4gPj4+ICsJCQkJTVQyNzAx X1RPUF9BWElfUFJPVF9FTl9DT05OX1MpLA0KPiA+Pj4gKwkJfSwNCj4gPj4+ICAJCS5jYXBzID0g TVRLX1NDUERfQUNUSVZFX1dBS0VVUCwNCj4gPj4+ICAJfSwNCj4gPj4+ICAJW01UNzYyM0FfUE9X RVJfRE9NQUlOX0VUSF0gPSB7DQo+ID4+PiBAQCAtOTAzLDggKzkyOSwxMSBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KPiA+Pj4gIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCj4gPj4+ICAJCS5z cmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTIsIDEyKSwNCj4gPj4+ICAJCS5iYXNpY19jbGtf bmFtZSA9IHsibW0ifSwNCj4gPj4+IC0JCS5idXNfcHJvdF9tYXNrID0gTVQ4MTczX1RPUF9BWElf UFJPVF9FTl9NTV9NMCB8DQo+ID4+PiAtCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSwN Cj4gPj4+ICsJCS5icF90YWJsZSA9IHsNCj4gPj4+ICsJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwg MCwgMHgyMjAsIDB4MjI4LA0KPiA+Pj4gKwkJCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01NX00w IHwNCj4gPj4+ICsJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSksDQo+ID4+PiArCQl9 LA0KPiA+Pj4gIAl9LA0KPiA+Pj4gIAlbTVQ4MTczX1BPV0VSX0RPTUFJTl9WRU5DX0xUXSA9IHsN Cj4gPj4+ICAJCS5uYW1lID0gInZlbmNfbHQiLA0KPiA+Pj4gQEAgLTk1MCwxMCArOTc5LDEzIEBA IHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYsDQo+ID4+PiAgCQkuY3RsX29mZnMgPSBTUE1fTUZHX1BXUl9DT04sDQo+ID4+ PiAgCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTMsIDgpLA0KPiA+Pj4gIAkJLnNyYW1fcGRu X2Fja19iaXRzID0gR0VOTUFTSygyMSwgMTYpLA0KPiA+Pj4gLQkJLmJ1c19wcm90X21hc2sgPSBN VDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TIHwNCj4gPj4+IC0JCQlNVDgxNzNfVE9QX0FYSV9Q Uk9UX0VOX01GR19NMCB8DQo+ID4+PiAtCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTEg fA0KPiA+Pj4gLQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCwNCj4gPj4+ ICsJCS5icF90YWJsZSA9IHsNCj4gPj4+ICsJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgy MjAsIDB4MjI4LA0KPiA+Pj4gKwkJCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TIHwNCj4g Pj4+ICsJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTAgfA0KPiA+Pj4gKwkJCQlNVDgx NzNfVE9QX0FYSV9QUk9UX0VOX01GR19NMSB8DQo+ID4+PiArCQkJCU1UODE3M19UT1BfQVhJX1BS T1RfRU5fTUZHX1NOT09QX09VVCksDQo+ID4+PiArCQl9LA0KPiA+Pj4gIAl9LA0KPiA+Pj4gIH07 DQo+ID4+PiAgDQo+ID4+PiBAQCAtOTY5LDcgKzEwMDEsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+Pj4g IAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLA0KPiA+Pj4gIAkJLnB3cl9zdGEybmRf b2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORA0KPiA+Pj4gIAl9LA0KPiA+Pj4gLQkuYnVzX3Byb3Rf cmVnX3VwZGF0ZSA9IHRydWUsDQo+ID4+PiAgfTsNCj4gPj4+ICANCj4gPj4+ICBzdGF0aWMgY29u c3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBtdDI3MTJfZGF0YSA9IHsNCj4gPj4+IEBAIC05ODEsNyAr MTAxMiw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4+PiAgCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9T VEFUVVMsDQo+ID4+PiAgCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQo+ ID4+PiAgCX0sDQo+ID4+PiAtCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gZmFsc2UsDQo+ID4+PiAg fTsNCj4gPj4+ICANCj4gPj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBtdDY3 OTdfZGF0YSA9IHsNCj4gPj4+IEBAIC05OTMsNyArMTAyMyw2IEBAIHN0YXRpYyB2b2lkIG10a19y ZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4+ PiAgCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVNfTVQ2Nzk3LA0KPiA+Pj4gIAkJLnB3 cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORF9NVDY3OTcNCj4gPj4+ICAJfSwNCj4g Pj4+IC0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0KPiA+Pj4gIH07DQo+ID4+PiAgDQo+ ID4+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ3NjIyX2RhdGEgPSB7DQo+ ID4+PiBAQCAtMTAwMyw3ICsxMDMyLDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gPj4+ICAJCS5wd3Jfc3Rh X29mZnMgPSBTUE1fUFdSX1NUQVRVUywNCj4gPj4+ICAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1f UFdSX1NUQVRVU18yTkQNCj4gPj4+ICAJfSwNCj4gPj4+IC0JLmJ1c19wcm90X3JlZ191cGRhdGUg PSB0cnVlLA0KPiA+Pj4gIH07DQo+ID4+PiAgDQo+ID4+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBz Y3Bfc29jX2RhdGEgbXQ3NjIzYV9kYXRhID0gew0KPiA+Pj4gQEAgLTEwMTMsNyArMTA0MSw2IEBA IHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYsDQo+ID4+PiAgCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQo+ ID4+PiAgCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQo+ID4+PiAgCX0s DQo+ID4+PiAtCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gdHJ1ZSwNCj4gPj4+ICB9Ow0KPiA+Pj4g IA0KPiA+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10ODE3M19kYXRhID0g ew0KPiA+Pj4gQEAgLTEwMjUsNyArMTA1Miw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9w b3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4+PiAgCQkucHdy X3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQo+ID4+PiAgCQkucHdyX3N0YTJuZF9vZmZzID0g U1BNX1BXUl9TVEFUVVNfMk5EDQo+ID4+PiAgCX0sDQo+ID4+PiAtCS5idXNfcHJvdF9yZWdfdXBk YXRlID0gdHJ1ZSwNCj4gPj4+ICB9Ow0KPiA+Pj4gIA0KPiA+Pj4gIC8qDQo+ID4+PiBAQCAtMTA2 Niw4ICsxMDkyLDcgQEAgc3RhdGljIGludCBzY3BzeXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikNCj4gPj4+ICANCj4gPj4+ICAJc29jID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9k YXRhKCZwZGV2LT5kZXYpOw0KPiA+Pj4gIA0KPiA+Pj4gLQlzY3AgPSBpbml0X3NjcChwZGV2LCBz b2MtPmRvbWFpbnMsIHNvYy0+bnVtX2RvbWFpbnMsICZzb2MtPnJlZ3MsDQo+ID4+PiAtCQkJc29j LT5idXNfcHJvdF9yZWdfdXBkYXRlKTsNCj4gPj4+ICsJc2NwID0gaW5pdF9zY3AocGRldiwgc29j LT5kb21haW5zLCBzb2MtPm51bV9kb21haW5zLCAmc29jLT5yZWdzKTsNCj4gPj4+ICAJaWYgKElT X0VSUihzY3ApKQ0KPiA+Pj4gIAkJcmV0dXJuIFBUUl9FUlIoc2NwKTsNCj4gPj4+ICANCj4gPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmggYi9kcml2ZXJz L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCj4gPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4+PiBpbmRleCAwMDAwMDAwLi40NThiMmM1DQo+ID4+PiAtLS0gL2Rldi9udWxsDQo+ID4+PiAr KysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCj4gPj4+IEBAIC0wLDAgKzEs NjcgQEANCj4gPj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KPiA+ Pj4gKyNpZm5kZWYgX19TT0NfTUVESUFURUtfU0NQU1lTX0VYVF9IDQo+ID4+PiArI2RlZmluZSBf X1NPQ19NRURJQVRFS19TQ1BTWVNfRVhUX0gNCj4gPj4+ICsNCj4gPj4+ICsjZGVmaW5lIE1BWF9T VEVQUwk0DQo+ID4+PiArDQo+ID4+PiArI2RlZmluZSBfQlVTX1BST1QoX3R5cGUsIF9zZXRfb2Zz LCBfY2xyX29mcywJCQlcDQo+ID4+PiArCQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIF9pZ25v cmVfY2xyX2FjaykgewlcDQo+ID4+PiArCQkudHlwZSA9IF90eXBlLAkJCQkJXA0KPiA+Pj4gKwkJ LnNldF9vZnMgPSBfc2V0X29mcywJCQkJXA0KPiA+Pj4gKwkJLmNscl9vZnMgPSBfY2xyX29mcywJ CQkJXA0KPiA+Pj4gKwkJLmVuX29mcyA9IF9lbl9vZnMsCQkJCVwNCj4gPj4+ICsJCS5zdGFfb2Zz ID0gX3N0YV9vZnMsCQkJCVwNCj4gPj4+ICsJCS5tYXNrID0gX21hc2ssCQkJCQlcDQo+ID4+PiAr CQkuaWdub3JlX2Nscl9hY2sgPSBfaWdub3JlX2Nscl9hY2ssCQlcDQo+ID4+PiArCX0NCj4gPj4+ ICsNCj4gPj4+ICsjZGVmaW5lIEJVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCQlc DQo+ID4+PiArCQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2spCQlcDQo+ID4+PiArCQlfQlVTX1BS T1QoX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywJXA0KPiA+Pj4gKwkJX2VuX29mcywgX3N0YV9v ZnMsIF9tYXNrLCBmYWxzZSkNCj4gPj4+ICsNCj4gPj4+ICsjZGVmaW5lIEJVU19QUk9UX0lHTihf dHlwZSwgX3NldF9vZnMsIF9jbHJfb2ZzLAlcDQo+ID4+PiArCQlfZW5fb2ZzLCBfc3RhX29mcywg X21hc2spCQlcDQo+ID4+PiArCQlfQlVTX1BST1QoX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywJ XA0KPiA+Pj4gKwkJX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCB0cnVlKQ0KPiA+Pj4gKw0KPiA+ Pj4gKyNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9NTV9NMAkJQklUKDEpDQo+ID4+PiAr I2RlZmluZSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTQkJQklUKDIpDQo+ID4+PiArI2Rl ZmluZSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fUwkJQklUKDgpDQo+ID4+PiArDQo+ID4+ PiArI2RlZmluZSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0VUSFNZUwkJKEJJVCgzKSB8IEJJVCgx NykpDQo+ID4+PiArI2RlZmluZSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjAJCShCSVQoMjQp IHwgQklUKDI1KSkNCj4gPj4+ICsjZGVmaW5lIE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fSElGMQkJ KEJJVCgyNikgfCBCSVQoMjcpIHwgXA0KPiA+Pj4gKwkJCQkJCSBCSVQoMjgpKQ0KPiA+Pj4gKyNk ZWZpbmUgTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9XQgkJKEJJVCgyKSB8IEJJVCg2KSB8IFwNCj4g Pj4+ICsJCQkJCQkgQklUKDcpIHwgQklUKDgpKQ0KPiA+Pj4gKw0KPiA+Pj4gKyNkZWZpbmUgTVQ4 MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMAkJQklUKDEpDQo+ID4+PiArI2RlZmluZSBNVDgxNzNf VE9QX0FYSV9QUk9UX0VOX01NX00xCQlCSVQoMikNCj4gPj4+ICsjZGVmaW5lIE1UODE3M19UT1Bf QVhJX1BST1RfRU5fTUZHX1MJCUJJVCgxNCkNCj4gPj4+ICsjZGVmaW5lIE1UODE3M19UT1BfQVhJ X1BST1RfRU5fTUZHX00wCQlCSVQoMjEpDQo+ID4+PiArI2RlZmluZSBNVDgxNzNfVE9QX0FYSV9Q Uk9UX0VOX01GR19NMQkJQklUKDIyKQ0KPiA+Pj4gKyNkZWZpbmUgTVQ4MTczX1RPUF9BWElfUFJP VF9FTl9NRkdfU05PT1BfT1VUCUJJVCgyMykNCj4gPj4+ICsNCj4gPj4+ICtlbnVtIHJlZ21hcF90 eXBlIHsNCj4gPj4+ICsJSU5WQUxJRF9UWVBFID0gMCwNCj4gPj4+ICsJSUZSX1RZUEUsDQo+ID4+ PiArCVNNSV9UWVBFLA0KPiA+Pj4gK307DQo+ID4+PiArDQo+ID4+PiArc3RydWN0IGJ1c19wcm90 IHsNCj4gPj4+ICsJZW51bSByZWdtYXBfdHlwZSB0eXBlOw0KPiA+Pj4gKwl1MzIgc2V0X29mczsN Cj4gPj4+ICsJdTMyIGNscl9vZnM7DQo+ID4+DQo+ID4+IFBsZWFzZSB0cnkgdG8ga2VlcCB2YXJp YWJsZSBuYW1lcyBjb25zaXN0ZW50LiBZb3UgY2hhbmdlIGZvciBleGFtcGxlIHNldF9vZnMgdG8N Cj4gPj4gcmVnX3NldC4gVGhhdCBtYWtlcyB0aGUgY29kZSBtb3JlIGRpZmZpY3VsdCB0byByZWFk IGFuZCB1bmRlcnN0YW5kLg0KPiA+Pg0KPiA+IA0KPiA+IE9LLCBJJ2xsIGtlZXAgdGhvc2UgbmFt ZXMgY29uc2lzdGVudC4NCj4gPiANCj4gPj4+ICsJdTMyIGVuX29mczsNCj4gPj4+ICsJdTMyIHN0 YV9vZnM7DQo+ID4+PiArCXUzMiBtYXNrOw0KPiA+Pj4gKwlib29sIGlnbm9yZV9jbHJfYWNrOw0K PiA+Pj4gK307DQo+ID4+PiArDQo+ID4+PiAraW50IG10a19zY3BzeXNfZXh0X3NldF9idXNfcHJv dGVjdGlvbihjb25zdCBzdHJ1Y3QgYnVzX3Byb3QgKmJwX3RhYmxlLA0KPiA+Pj4gKwlzdHJ1Y3Qg cmVnbWFwICppbmZyYWNmZywgc3RydWN0IHJlZ21hcCAqc21pX2NvbW1vbik7DQo+ID4+PiAraW50 IG10a19zY3BzeXNfZXh0X2NsZWFyX2J1c19wcm90ZWN0aW9uKGNvbnN0IHN0cnVjdCBidXNfcHJv dCAqYnBfdGFibGUsDQo+ID4+PiArCXN0cnVjdCByZWdtYXAgKmluZnJhY2ZnLCBzdHJ1Y3QgcmVn bWFwICpzbWlfY29tbW9uKTsNCj4gPj4+ICsNCj4gPj4+ICsjZW5kaWYgLyogX19TT0NfTUVESUFU RUtfU0NQU1lTX0VYVF9IICovDQo+ID4+Pg0KPiA+IA0KDQo=