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 42591CCD184 for ; Sat, 11 Oct 2025 10:49:02 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I76aTBmOoyZUtDskGcwSA0jsMsQ5mocJelEZu9ytU3Y=; b=XriZI3VOkPPVz9 k7p+aw2OIVjNQQVwSaL4FIL2Bw049yjyjMPiw+ETkTJzKKpSGAhstc/jCY6Wh8RBA0Us3VBQyHiUy seq36eooJMnWP90gLWQDGlh15S3mepkjibofKcFO8iat6godzzig2eSlRje21EZqtLoPVPmrPDLsI yAe+ZUSwWtclF6R8+xwQ4Ku1L1p9LERszD/Bv/bnP5LQ1KeMv1kUtgIl6MwGROIfYw5l7M6VsnuuS uEIPyotJxmwoshGsgRvvZEf9csfZHuid1pgd7rh8lbhPW0pIrVq319cX5yaGjnLoMs5/Ot7Q2blzk Nw2qiKpyincxsU818Hdg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v7X9n-0000000A40g-0YUd; Sat, 11 Oct 2025 10:48:59 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v7X9j-0000000A3z4-1GoP for linux-mtd@lists.infradead.org; Sat, 11 Oct 2025 10:48:57 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-636535e4b1aso5995385a12.0 for ; Sat, 11 Oct 2025 03:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760179733; x=1760784533; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2I91w0Qs2bshI+j4YNRRyIMhvWlTFvUnbZnwMWPdg+Q=; b=i/tOQ19I0xuXE8FgD6fB6ljHENq4ua3F1ICLu0pHCjau6kCIvql4aBdYAbt6OhsFcL suLIp2HahLKCJHjXROYzMvuNQBGxTS+zBS/ceHsuu47QM9Wmg/38ZH7ZXMR0joNlafyW D/4R4OUnLW9zwVY/46eRZUnTMwD3iTnVo0/xrV1I1RcIV2/luyfnYdIKAQTlxBrp5dBa pLSykB4/ymmhdtyEGXa62db+d29XVM6z3dLlvDPHMDooy1gvwI8ODCoiqUzX8xil1rDa kfIC4EJxsLu5/Y2MeoW/XilvCoA5Aj4+lg7oQ/SGwqJgmir+eicMAj6saw/pSkjOMb7g vNig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760179733; x=1760784533; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2I91w0Qs2bshI+j4YNRRyIMhvWlTFvUnbZnwMWPdg+Q=; b=mpexiYk8F9c52gQqxezsgZr91okwsa+kKGQLrEahZCQZqPZxfQHPtpitHm0auEOTY3 ZCtyVbFXgEVXKDSdO0UQDJrBKkWYrDDhMyc76Yez1hlkDfvM6mL8Twf8PYyu5VAIrRm5 wWXTS8boKmHWfsZIgl7PADeCTpfFuXNSvT9WqthNKwVGmYA3SnrlGFUyAY6QGfNtXI3s X1KfqVvBH9p3w/F0agV+YNVilOKc/3hYobMInZBj8SPwRMhq+12asMoo/3+2uP6TCWWe OkFr54MNQs0etR5WtnlAmedM+ET3zRvs1qNUJzbtWjNbT06RKPz1k7UZYeuFNY1dThQ3 6T/w== X-Forwarded-Encrypted: i=1; AJvYcCX6De2a+J3W3Qu8WzdlEyUsQrY/1yC6IvURxOrlWGrytIf6cCXjCukVjXdvtXWQtpMDWgHelObxlbA=@lists.infradead.org X-Gm-Message-State: AOJu0YyRqb7D+akwJSbCPyNhPLl4eumcQvX+pw4rIYIFz9AtOJbiviiN 3MyI4izi8UoY96c59W3/Xgk6Yqrp1Ot5hKeiozoGXolYX/FY/SRyprBl X-Gm-Gg: ASbGnctzVtU0GDVcX0ivKcAXS1Gm6eDQvELORLREfHyERh+fzr3gehKNISSxhC7So5L iVUeK52XlyQ2yOjA+ETa+ycMvUqJ5OeZ92a/FQMpqzJtjafjp72POThy/sP6RN3hs2dDVZWJsDE s2+SVzpEN5I8yZVriSYz9CIE5fVknMmJLYI4qD2Ky+dp80p4ppSp9pOQiX0jfYLDiwCBD6V5Peh axlchO4MOTMSpsBvxYJPiaraKnScsKpIwg/73QAbUORdhNlbhyjOUnoFY3pDovUpR/6Iwdyxo59 kCgM8sw8ulxppPzl7+vn4Q7zKWvtfocR/lq0QiQNeeWl7/PVS8AdV+le375AolOrcvFbPw24dDZ jQEysxDUo4TEhg2CErZTMMev0mPvxaau5ryI5qMdeXTMEn8v0G3+d3JNRgyPI5BI= X-Google-Smtp-Source: AGHT+IFP5/4Tzd0trGXX0JnOU4Fhkm8XDoJ2gR7XxP4LMoc1aNDyuHK+ENXSYJWjGXz+Zc2MO378Yw== X-Received: by 2002:a17:907:94c1:b0:afe:159:14b1 with SMTP id a640c23a62f3a-b50bd049ba7mr1631347666b.9.1760179733213; Sat, 11 Oct 2025 03:48:53 -0700 (PDT) Received: from jernej-laptop.localnet ([188.159.248.16]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d951ceb4sm453411166b.72.2025.10.11.03.48.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Oct 2025 03:48:52 -0700 (PDT) From: Jernej =?UTF-8?B?xaBrcmFiZWM=?= To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Samuel Holland , Richard Genoud Cc: Wentao Liang , Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= , Maxime Ripard , Thomas Petazzoni , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Genoud Subject: Re: [PATCH 15/15] mtd: rawnand: sunxi: Add support for H616 nand controller Date: Sat, 11 Oct 2025 12:48:51 +0200 Message-ID: <3373475.aeNJFYEL58@jernej-laptop> In-Reply-To: <20251010084042.341224-16-richard.genoud@bootlin.com> References: <20251010084042.341224-1-richard.genoud@bootlin.com> <20251010084042.341224-16-richard.genoud@bootlin.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251011_034855_495972_A97DC364 X-CRM114-Status: GOOD ( 34.01 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org RG5lIHBldGVrLCAxMC4gb2t0b2JlciAyMDI1IG9iIDEwOjQwOjQyIFNyZWRuamVldnJvcHNraSBw b2xldG5pIMSNYXMgamUgUmljaGFyZCBHZW5vdWQgbmFwaXNhbChhKToKPiBUaGUgSDYxNiBuYW5k IGNvbnRyb2xsZXIgaGFzIHRoZSBzYW1lIGJhc2UgYXMgQTEwL0EyMywgd2l0aCBzb21lCj4gZGlm ZmVyZW5jZXM6Cj4gLSBtZG1hIGlzIGJhc2VkIG9uIGNoYWluZWQgYnVmZmVycwo+IC0gaXRzIEVD QyBzdXBwb3J0cyB1cCB0byA4MGJpdCBwZXIgMTAyNGJ5dGVzCj4gLSBzb21lIHJlZ2lzdGVycyBs YXlvdXRzIGFyZSBhIGJpdCBkaWZmZXJlbnQsIG1haW5seSBkdWUgZG8gdGhlIHN0cm9uZ2VyCj4g ICBFQ0MuCj4gLSBpdCB1c2VzIFVTRVJfREFUQV9MRU4gcmVnaXN0ZXJzIGFsb25nIFVTRVJfREFU QSByZWdpc3RlcnMuCj4gLSBpdCBuZWVkcyBhIHNwZWNpZmljIGNsb2NrIGZvciBFQ0MgYW5kIE1C VVMuCj4gCj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2UgdGhlIGJhc2ljIHN1cHBvcnQsIHdpdGhvdXQg RE1BL01ETUEuCj4gCj4gVGVzdGVkIG9uIFdoYXRzbWluZXIgSDYxNiBib2FyZCAod2l0aCBhbmQg d2l0aG91dCBzY3JhbWJsaW5nLCBFQ0MpCj4gCj4gU2lnbmVkLW9mZi1ieTogUmljaGFyZCBHZW5v dWQgPHJpY2hhcmQuZ2Vub3VkQGJvb3RsaW4uY29tPgo+IC0tLQo+ICBkcml2ZXJzL210ZC9uYW5k L3Jhdy9zdW54aV9uYW5kLmMgfCAxODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4g IDEgZmlsZSBjaGFuZ2VkLCAxNzQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jIGIvZHJpdmVycy9t dGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jCj4gaW5kZXggZTgxZDc0YzY2MzNhLi4xZTExODVmOGQ5 ODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jCj4gKysr IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jCj4gQEAgLTQ5LDE3ICs0OSw0MCBA QAo+ICAjZGVmaW5lIE5GQ19SRUdfQTIzX0lPX0RBVEEJMHgwMzAwCj4gICNkZWZpbmUgTkZDX1JF R19FQ0NfQ1RMCQkweDAwMzQKPiAgI2RlZmluZSBORkNfUkVHX0VDQ19TVAkJMHgwMDM4Cj4gLSNk ZWZpbmUgTkZDX1JFR19ERUJVRwkJMHgwMDNDCj4gKyNkZWZpbmUgTkZDX1JFR19INl9QQVRfRk9V TkQJMHgwMDNDCj4gICNkZWZpbmUgTkZDX1JFR19BMTBfRUNDX0VSUl9DTlQJMHgwMDQwCj4gKyNk ZWZpbmUgTkZDX1JFR19INl9FQ0NfRVJSX0NOVAkweDAwNTAKPiAgI2RlZmluZSBORkNfUkVHX0VD Q19FUlJfQ05UKG5mYywgeCkJKChuZmMtPmNhcHMtPnJlZ19lY2NfZXJyX2NudCArICh4KSkgJiB+ MHgzKQo+ICsjZGVmaW5lIE5GQ19SRUdfSDZfUkRBVEFfQ1RMCTB4MDA0NAo+ICsjZGVmaW5lIE5G Q19SRUdfSDZfUkRBVEFfMAkweDAwNDgKPiArI2RlZmluZSBORkNfUkVHX0g2X1JEQVRBXzEJMHgw MDRDCj4gICNkZWZpbmUgTkZDX1JFR19BMTBfVVNFUl9EQVRBCTB4MDA1MAo+ICsjZGVmaW5lIE5G Q19SRUdfSDZfVVNFUl9EQVRBCTB4MDA4MAo+ICAjZGVmaW5lIE5GQ19SRUdfVVNFUl9EQVRBKG5m YywgeCkJKG5mYy0+Y2Fwcy0+cmVnX3VzZXJfZGF0YSArICgoeCkgKiA0KSkKPiArI2RlZmluZSBO RkNfUkVHX0g2X1VTRVJfREFUQV9MRU4gMHgwMDcwCj4gKy8qIEEgVVNFUl9EQVRBX0xFTiByZWdp c3RlciBjYW4gaG9sZCB0aGUgbGVuZ3RoIG9mIDggVVNFUl9EQVRBIHJlZ2lzdGVycyAqLwo+ICsj ZGVmaW5lIE5GQ19SRUdfVVNFUl9EQVRBX0xFTl9DQVBBQ0lUWSA4Cj4gKyNkZWZpbmUgTkZDX1JF R19VU0VSX0RBVEFfTEVOKG5mYywgc3RlcCkgXAo+ICsJIChuZmMtPmNhcHMtPnJlZ191c2VyX2Rh dGFfbGVuICsgXAo+ICsJICgoc3RlcCkgLyBORkNfUkVHX1VTRVJfREFUQV9MRU5fQ0FQQUNJVFkp ICogNCkKPiAgI2RlZmluZSBORkNfUkVHX1NQQVJFX0FSRUEobmZjKSAobmZjLT5jYXBzLT5yZWdf c3BhcmVfYXJlYSkKPiAgI2RlZmluZSBORkNfUkVHX0ExMF9TUEFSRV9BUkVBCTB4MDBBMAo+ICAj ZGVmaW5lIE5GQ19SRUdfUEFUX0lEKG5mYykgKG5mYy0+Y2Fwcy0+cmVnX3BhdF9pZCkKPiAgI2Rl ZmluZSBORkNfUkVHX0ExMF9QQVRfSUQJMHgwMEE0Cj4gICNkZWZpbmUgTkZDX1JFR19NRE1BX0FE RFIJMHgwMEMwCj4gICNkZWZpbmUgTkZDX1JFR19NRE1BX0NOVAkweDAwQzQKPiArI2RlZmluZSBO RkNfUkVHX0g2X0VGTkFORF9TVEFUVVMgMHgwMTEwCj4gKyNkZWZpbmUgTkZDX1JFR19INl9TUEFS RV9BUkVBCTB4MDExNAo+ICsjZGVmaW5lIE5GQ19SRUdfSDZfUEFUX0lECTB4MDExOAo+ICsjZGVm aW5lIE5GQ19SRUdfSDZfRERSMl9TUEVDX0NUTCAweDAxMUMKPiArI2RlZmluZSBORkNfUkVHX0g2 X05ETUFfTU9ERV9DVEwgMHgwMTIwCj4gKyNkZWZpbmUgTkZDX1JFR19INl9NRE1BX0RMQkFfUkVH IDB4MDIwMAo+ICsjZGVmaW5lIE5GQ19SRUdfSDZfTURNQV9TVEEJMHgwMjA0Cj4gKyNkZWZpbmUg TkZDX1JFR19INl9NRE1BX0lOVF9NQVMJMHgwMjA4Cj4gKyNkZWZpbmUgTkZDX1JFR19INl9NRE1B X0RFU0NfQUREUiAweDAyMEMKPiArI2RlZmluZSBORkNfUkVHX0g2X01ETUFfQlVGX0FERFIgMHgw MjEwCj4gKyNkZWZpbmUgTkZDX1JFR19INl9NRE1BX0NOVAkweDAyMTQKPiArCj4gICNkZWZpbmUg TkZDX1JBTTBfQkFTRQkJMHgwNDAwCj4gICNkZWZpbmUgTkZDX1JBTTFfQkFTRQkJMHgwODAwCj4g IAo+IEBAIC03MSw2ICs5NCw3IEBACj4gICNkZWZpbmUgTkZDX0JVU19XSURUSF8xNgkoMSA8PCAy KQo+ICAjZGVmaW5lIE5GQ19SQl9TRUxfTVNLCQlCSVQoMykKPiAgI2RlZmluZSBORkNfUkJfU0VM KHgpCQkoKHgpIDw8IDMpCj4gKy8qIENFX1NFTCBCSVQgMjcgaXMgbWVhbnQgdG8gYmUgdXNlZCBm b3IgR1BJTyBjaGlwc2VsZWN0ICovCj4gICNkZWZpbmUgTkZDX0NFX1NFTF9NU0sJCUdFTk1BU0so MjYsIDI0KQo+ICAjZGVmaW5lIE5GQ19DRV9TRUwoeCkJCSgoeCkgPDwgMjQpCj4gICNkZWZpbmUg TkZDX0NFX0NUTAkJQklUKDYpCj4gQEAgLTg5LDYgKzExMyw5IEBACj4gICNkZWZpbmUgTkZDX1NU QQkJCUJJVCg0KQo+ICAjZGVmaW5lIE5GQ19OQVRDSF9JTlRfRkxBRwlCSVQoNSkKPiAgI2RlZmlu ZSBORkNfUkJfU1RBVEUoeCkJCUJJVCh4ICsgOCkKPiArI2RlZmluZSBORkNfUkJfU1RBVEVfTVNL CUdFTk1BU0soMTEsIDgpCj4gKyNkZWZpbmUgTkRGQ19SREFUQV9TVEFfMQlCSVQoMTIpCj4gKyNk ZWZpbmUgTkRGQ19SREFUQV9TVEFfMAlCSVQoMTMpCj4gIAo+ICAvKiBkZWZpbmUgYml0IHVzZSBp biBORkNfSU5UICovCj4gICNkZWZpbmUgTkZDX0IyUl9JTlRfRU5BQkxFCUJJVCgwKQo+IEBAIC0x MDAsNiArMTI3LDcgQEAKPiAgCj4gIC8qIGRlZmluZSBiaXQgdXNlIGluIE5GQ19USU1JTkdfQ1RM ICovCj4gICNkZWZpbmUgTkZDX1RJTUlOR19DVExfRURPCUJJVCg4KQo+ICsjZGVmaW5lIE5GQ19U SU1JTkdfQ1RMX0VfRURPCUJJVCg5KQo+ICAKPiAgLyogZGVmaW5lIE5GQ19USU1JTkdfQ0ZHIHJl Z2lzdGVyIGxheW91dCAqLwo+ICAjZGVmaW5lIE5GQ19USU1JTkdfQ0ZHKHRXQiwgdEFETCwgdFdI UiwgdFJIVywgdENBRCkJCVwKPiBAQCAtMTA3LDkgKzEzNSwxNSBAQAo+ICAJKCgodFdIUikgJiAw eDMpIDw8IDQpIHwgKCgodFJIVykgJiAweDMpIDw8IDYpIHwJCVwKPiAgCSgoKHRDQUQpICYgMHg3 KSA8PCA4KSkKPiAgCj4gKyNkZWZpbmUgTkZDX1RJTUlOR19DRkcyKHRDRFFTUywgdFNDLCB0Q0xI WiwgdENTUywgdFdDKQkJXAo+ICsJKCgoKHRDRFFTUykgJiAweDEpIDw8IDExKSB8ICgoKHRTQykg JiAweDMpIDw8IDEyKSB8CVwKPiArCSAoKCh0Q0xIWikgJiAweDMpIDw8IDE0KSB8ICgoKHRDU1Mp ICYgMHgzKSA8PCAxNikgfAlcCj4gKwkgKCgodFdDKSAmIDB4MykgPDwgMTgpKQo+ICsKPiAgLyog ZGVmaW5lIGJpdCB1c2UgaW4gTkZDX0NNRCAqLwo+ICAjZGVmaW5lIE5GQ19DTURfTE9XX0JZVEVf TVNLCUdFTk1BU0soNywgMCkKPiAtI2RlZmluZSBORkNfQ01EX0hJR0hfQllURV9NU0sJR0VOTUFT SygxNSwgOCkKPiArI2RlZmluZSBORkNfQ01EX0hJR0hfQllURV9NU0sJR0VOTUFTSygxNSwgOCkg IC8vIDE1LTEwIHJlc2VydmVkIG9uIEg2Cj4gKyNkZWZpbmUgTkZDX0NNRF9BRFJfTlVNX01TSwlH RU5NQVNLKDksIDgpCj4gICNkZWZpbmUgTkZDX0NNRCh4KQkJKHgpCj4gICNkZWZpbmUgTkZDX0FE Ul9OVU1fTVNLCQlHRU5NQVNLKDE4LCAxNikKPiAgI2RlZmluZSBORkNfQURSX05VTSh4KQkJKCgo eCkgLSAxKSA8PCAxNikKPiBAQCAtMTIyLDYgKzE1Niw3IEBACj4gICNkZWZpbmUgTkZDX1NFUQkJ CUJJVCgyNSkKPiAgI2RlZmluZSBORkNfREFUQV9TV0FQX01FVEhPRAlCSVQoMjYpCj4gICNkZWZp bmUgTkZDX1JPV19BVVRPX0lOQwlCSVQoMjcpCj4gKyNkZWZpbmUgTkZDX0g2X1NFTkRfUk5EX0NN RDIJQklUKDI3KQo+ICAjZGVmaW5lIE5GQ19TRU5EX0NNRDMJCUJJVCgyOCkKPiAgI2RlZmluZSBO RkNfU0VORF9DTUQ0CQlCSVQoMjkpCj4gICNkZWZpbmUgTkZDX0NNRF9UWVBFX01TSwlHRU5NQVNL KDMxLCAzMCkKPiBAQCAtMTMzLDYgKzE2OCw3IEBACj4gICNkZWZpbmUgTkZDX1JFQURfQ01EX01T SwlHRU5NQVNLKDcsIDApCj4gICNkZWZpbmUgTkZDX1JORF9SRUFEX0NNRDBfTVNLCUdFTk1BU0so MTUsIDgpCj4gICNkZWZpbmUgTkZDX1JORF9SRUFEX0NNRDFfTVNLCUdFTk1BU0soMjMsIDE2KQo+ ICsjZGVmaW5lIE5GQ19STkRfUkVBRF9DTUQyX01TSwlHRU5NQVNLKDMxLCAyNCkKPiAgCj4gIC8q IGRlZmluZSBiaXQgdXNlIGluIE5GQ19XQ01EX1NFVCAqLwo+ICAjZGVmaW5lIE5GQ19QUk9HUkFN X0NNRF9NU0sJR0VOTUFTSyg3LCAwKQo+IEBAIC0xNTAsNiArMTg2LDkgQEAKPiAgI2RlZmluZSBO RkNfUkFORE9NX0RJUkVDVElPTihuZmMpIChuZmMtPmNhcHMtPnJhbmRvbV9kaXJfbWFzaykKPiAg I2RlZmluZSBORkNfRUNDX01PREVfTVNLKG5mYykJKG5mYy0+Y2Fwcy0+ZWNjX21vZGVfbWFzaykK PiAgI2RlZmluZSBORkNfRUNDX01PREUobmZjLCB4KQlmaWVsZF9wcmVwKE5GQ19FQ0NfTU9ERV9N U0sobmZjKSwgKHgpKQo+ICsvKiBSQU5ET01fUEFHRV9TSVpFOiAwOiBFQ0MgYmxvY2sgc2l6ZSAg MTogcGFnZSBzaXplICovCj4gKyNkZWZpbmUgTkZDX0EyM19SQU5ET01fUEFHRV9TSVpFCUJJVCgx MSkKPiArI2RlZmluZSBORkNfSDZfUkFORE9NX1BBR0VfU0laRQlCSVQoNykKPiAgI2RlZmluZSBO RkNfUkFORE9NX1NFRURfTVNLCUdFTk1BU0soMzAsIDE2KQo+ICAjZGVmaW5lIE5GQ19SQU5ET01f U0VFRCh4KQkoKHgpIDw8IDE2KQo+ICAKPiBAQCAtMTY1LDYgKzIwNCw5IEBACj4gIAo+ICAjZGVm aW5lIE5GQ19FQ0NfRVJSX0NOVChiLCB4KQkoKCh4KSA+PiAoKChiKSAlIDQpICogOCkpICYgMHhm ZikKPiAgCj4gKyNkZWZpbmUgTkZDX1VTRVJfREFUQV9MRU5fTVNLKHN0ZXApIFwKPiArCSgweGYg PDwgKCgoc3RlcCkgJSBORkNfUkVHX1VTRVJfREFUQV9MRU5fQ0FQQUNJVFkpICogNCkpCj4gKwo+ ICAjZGVmaW5lIE5GQ19ERUZBVUxUX1RJTUVPVVRfTVMJMTAwMAo+ICAKPiAgI2RlZmluZSBORkNf TUFYX0NTCQk3Cj4gQEAgLTIyNCw5ICsyNjYsMTEgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3Vu eGlfbmFuZF9jaGlwICp0b19zdW54aV9uYW5kKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCj4gICAq IEBoYXNfbWRtYToJCVVzZSBtYnVzIGRtYSBtb2RlLCBvdGhlcndpc2UgZ2VuZXJhbCBkbWEKPiAg ICoJCQl0aHJvdWdoIE1CVVMgb24gQTIzL0EzMyBuZWVkcyBleHRyYSBjb25maWd1cmF0aW9uLgo+ ICAgKiBAaGFzX2VjY19ibG9ja181MTI6CUlmIHRoZSBFQ0MgY2FuIGhhbmRsZSA1MTJCIG9yIG9u bHkgMTAyNEIgY2h1bmNrcwo+ICsgKiBAaGFzX21idXNfY2xrOglJZiB0aGUgY29udHJvbGxlciBu ZWVkcyBhIG1idXMgY2xvY2suCj4gICAqIEByZWdfaW9fZGF0YToJSS9PIGRhdGEgcmVnaXN0ZXIK PiAgICogQHJlZ19lY2NfZXJyX2NudDoJRUNDIGVycm9yIGNvdW50ZXIgcmVnaXN0ZXIKPiAgICog QHJlZ191c2VyX2RhdGE6CVVzZXIgZGF0YSByZWdpc3Rlcgo+ICsgKiBAcmVnX3VzZXJfZGF0YV9s ZW46CVVzZXIgZGF0YSBsZW5ndGggcmVnaXN0ZXIKPiAgICogQHJlZ19zcGFyZV9hcmVhOglTcGFy ZSBBcmVhIFJlZ2lzdGVyCj4gICAqIEByZWdfcGF0X2lkOgkJUGF0dGVybiBJRCBSZWdpc3Rlcgo+ ICAgKiBAcmVnX3BhdF9mb3VuZDoJRGF0YSBQYXR0ZXJuIFN0YXR1cyBSZWdpc3Rlcgo+IEBAIC0y MzgsMTQgKzI4MiwyMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBzdW54aV9uYW5kX2NoaXAgKnRv X3N1bnhpX25hbmQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKPiAgICogQGRtYV9tYXhidXJzdDoJ RE1BIG1heGJ1cnN0Cj4gICAqIEBlY2Nfc3RyZW5ndGhzOglBdmFpbGFibGUgRUNDIHN0cmVuZ3Ro cyBhcnJheQo+ICAgKiBAbnN0cmVuZ3RoczoJCVNpemUgb2YgQGVjY19zdHJlbmd0aHMKPiArICog QG1heF9lY2Nfc3RlcHM6CU1heGltdW0gc3VwcG9ydGVkIHN0ZXBzIGZvciBFQ0MsIHRoaXMgaXMg YWxzbyB0aGUKPiArICoJCQludW1iZXIgb2YgdXNlciBkYXRhIHJlZ2lzdGVycwo+ICsgKiBAdXNl cl9kYXRhX2xlbl90YWI6ICBUYWJsZSBvZiBsZW5naHRzIHN1cHBvcnRlZCBieSBVU0VSX0RBVEFf TEVOIHJlZ2lzdGVyCj4gKyAqCQkJVGhlIHRhYmxlIGluZGV4IGlzIHRoZSB2YWx1ZSB0byBzZXQg aW4gTkZDX1VTRVJfREFUQV9MRU4KPiArICoJCQlyZWdpc3RlcnMsIGFuZCB0aGUgY29ycmVzcG9u ZGluZyB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mCj4gKyAqCQkJYnl0ZXMgdG8gd3JpdGUKPiArICog QG51c2VyX2RhdGFfdGFiOglTaXplIG9mIEB1c2VyX2RhdGFfbGVuX3RhYgo+ICAgKiBAc3JhbV9z aXplOgkJU2l6ZSBvZiB0aGUgTkFORCBjb250cm9sbGVyIFNSQU0KPiAgICovCj4gIHN0cnVjdCBz dW54aV9uZmNfY2FwcyB7Cj4gIAlib29sIGhhc19tZG1hOwo+ICAJYm9vbCBoYXNfZWNjX2Jsb2Nr XzUxMjsKPiArCWJvb2wgaGFzX21idXNfY2xrOwo+ICAJdW5zaWduZWQgaW50IHJlZ19pb19kYXRh Owo+ICAJdW5zaWduZWQgaW50IHJlZ19lY2NfZXJyX2NudDsKPiAgCXVuc2lnbmVkIGludCByZWdf dXNlcl9kYXRhOwo+ICsJdW5zaWduZWQgaW50IHJlZ191c2VyX2RhdGFfbGVuOwo+ICAJdW5zaWdu ZWQgaW50IHJlZ19zcGFyZV9hcmVhOwo+ICAJdW5zaWduZWQgaW50IHJlZ19wYXRfaWQ7Cj4gIAl1 bnNpZ25lZCBpbnQgcmVnX3BhdF9mb3VuZDsKPiBAQCAtMjU3LDYgKzMxMCw5IEBAIHN0cnVjdCBz dW54aV9uZmNfY2FwcyB7Cj4gIAl1bnNpZ25lZCBpbnQgZG1hX21heGJ1cnN0Owo+ICAJY29uc3Qg dTggKmVjY19zdHJlbmd0aHM7Cj4gIAl1bnNpZ25lZCBpbnQgbnN0cmVuZ3RoczsKPiArCWNvbnN0 IHU4ICp1c2VyX2RhdGFfbGVuX3RhYjsKPiArCXVuc2lnbmVkIGludCBudXNlcl9kYXRhX3RhYjsK PiArCXVuc2lnbmVkIGludCBtYXhfZWNjX3N0ZXBzOwo+ICAJaW50IHNyYW1fc2l6ZTsKPiAgfTsK PiAgCj4gQEAgLTI2OCw2ICszMjQsNyBAQCBzdHJ1Y3Qgc3VueGlfbmZjX2NhcHMgewo+ICAgKiBA cmVnczogTkFORCBjb250cm9sbGVyIHJlZ2lzdGVycwo+ICAgKiBAYWhiX2NsazogTkFORCBjb250 cm9sbGVyIEFIQiBjbG9jawo+ICAgKiBAbW9kX2NsazogTkFORCBjb250cm9sbGVyIG1vZCBjbG9j awo+ICsgKiBAZWNjX2NsazogTkFORCBjb250cm9sbGVyIEVDQyBjbG9jawo+ICAgKiBAcmVzZXQ6 IE5BTkQgY29udHJvbGxlciByZXNldCBsaW5lCj4gICAqIEBhc3NpZ25lZF9jczogYml0bWFzayBk ZXNjcmliaW5nIGFscmVhZHkgYXNzaWduZWQgQ1MgbGluZXMKPiAgICogQGNsa19yYXRlOiBOQU5E IGNvbnRyb2xsZXIgY3VycmVudCBjbG9jayByYXRlCj4gQEAgLTI4Miw3ICszMzksOSBAQCBzdHJ1 Y3Qgc3VueGlfbmZjIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiAgCXZvaWQgX19pb21lbSAq cmVnczsKPiAgCXN0cnVjdCBjbGsgKmFoYl9jbGs7Cj4gKwlzdHJ1Y3QgY2xrICptYnVzX2NsazsK PiAgCXN0cnVjdCBjbGsgKm1vZF9jbGs7Cj4gKwlzdHJ1Y3QgY2xrICplY2NfY2xrOwo+ICAJc3Ry dWN0IHJlc2V0X2NvbnRyb2wgKnJlc2V0Owo+ICAJdW5zaWduZWQgbG9uZyBhc3NpZ25lZF9jczsK PiAgCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7Cj4gQEAgLTc2NCw2ICs4MjMsNTMgQEAgc3RhdGlj IHZvaWQgc3VueGlfbmZjX2h3X2VjY19nZXRfcHJvdF9vb2JfYnl0ZXMoc3RydWN0IG5hbmRfY2hp cCAqbmFuZCwgdTggKm9vYiwKPiAgCQlzdW54aV9uZmNfcmFuZG9taXplX2JibShuYW5kLCBwYWdl LCBvb2IpOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBPbiBINi9INiB0aGUgdXNlcl9kYXRhIGxlbmd0 aCBoYXMgdG8gYmUgc2V0IGluIHNwZWNpZmljIHJlZ2lzdGVycwo+ICsgKiBiZWZvcmUgd3JpdGlu Zy4KPiArICovCj4gK3N0YXRpYyB2b2lkIHN1bnhpX25mY19yZXNldF91c2VyX2RhdGFfbGVuKHN0 cnVjdCBzdW54aV9uZmMgKm5mYykKPiArewo+ICsJaW50IGxvb3Bfc3RlcCA9IE5GQ19SRUdfVVNF Ul9EQVRBX0xFTl9DQVBBQ0lUWTsKPiArCj4gKwkvKiBub3QgYWxsIFNvQ3MgaGF2ZSB0aGlzIHJl Z2lzdGVyICovCj4gKwlpZiAoIW5mYy0+Y2Fwcy0+cmVnX3VzZXJfZGF0YV9sZW4pCj4gKwkJcmV0 dXJuOwo+ICsKPiArCWZvciAoaW50IGkgPSAwOyBpIDwgbmZjLT5jYXBzLT5tYXhfZWNjX3N0ZXBz OyBpICs9IGxvb3Bfc3RlcCkKPiArCQl3cml0ZWwoMCwgbmZjLT5yZWdzICsgTkZDX1JFR19VU0VS X0RBVEFfTEVOKG5mYywgaSkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzdW54aV9uZmNfc2V0 X3VzZXJfZGF0YV9sZW4oc3RydWN0IHN1bnhpX25mYyAqbmZjLAo+ICsJCQkJCWludCBsZW4sIGlu dCBzdGVwKQo+ICt7Cj4gKwlib29sIGZvdW5kID0gZmFsc2U7Cj4gKwl1MzIgdmFsOwo+ICsJaW50 IGk7Cj4gKwo+ICsJLyogbm90IGFsbCBTb0NzIGhhdmUgdGhpcyByZWdpc3RlciAqLwo+ICsJaWYg KCFuZmMtPmNhcHMtPnJlZ191c2VyX2RhdGFfbGVuKQo+ICsJCXJldHVybjsKPiArCj4gKwlmb3Ig KGkgPSAwOyBpIDwgbmZjLT5jYXBzLT5udXNlcl9kYXRhX3RhYjsgaSsrKSB7Cj4gKwkJaWYgKGxl biA9PSBuZmMtPmNhcHMtPnVzZXJfZGF0YV9sZW5fdGFiW2ldKSB7Cj4gKwkJCWZvdW5kID0gdHJ1 ZTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWlmICghZm91bmQpIHsKPiArCQlk ZXZfd2FybihuZmMtPmRldiwKPiArCQkJICJVbnN1cHBvcnRlZCBsZW5ndGggZm9yIHVzZXIgZGF0 YSByZWc6ICVkXG4iLCBsZW4pOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwl2YWwgPSByZWFk bChuZmMtPnJlZ3MgKyBORkNfUkVHX1VTRVJfREFUQV9MRU4obmZjLCBzdGVwKSk7Cj4gKwo+ICsJ dmFsICY9IH5ORkNfVVNFUl9EQVRBX0xFTl9NU0soc3RlcCk7Cj4gKwl2YWwgfD0gZmllbGRfcHJl cChORkNfVVNFUl9EQVRBX0xFTl9NU0soc3RlcCksIGkpOwo+ICsJd3JpdGVsKHZhbCwgbmZjLT5y ZWdzICsgTkZDX1JFR19VU0VSX0RBVEFfTEVOKG5mYywgc3RlcCkpOwo+ICt9Cj4gKwo+ICBzdGF0 aWMgdm9pZCBzdW54aV9uZmNfaHdfZWNjX3NldF9wcm90X29vYl9ieXRlcyhzdHJ1Y3QgbmFuZF9j aGlwICpuYW5kLAo+ICAJCQkJCQljb25zdCB1OCAqb29iLCBpbnQgc3RlcCwKPiAgCQkJCQkJYm9v bCBiYm0sIGludCBwYWdlKQo+IEBAIC04NTgsNiArOTY0LDggQEAgc3RhdGljIGludCBzdW54aV9u ZmNfaHdfZWNjX3JlYWRfY2h1bmsoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiAgCWlmIChyZXQp Cj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwlzdW54aV9uZmNfcmVzZXRfdXNlcl9kYXRhX2xlbihu ZmMpOwo+ICsJc3VueGlfbmZjX3NldF91c2VyX2RhdGFfbGVuKG5mYywgNCwgMCk7Cj4gIAlzdW54 aV9uZmNfcmFuZG9taXplcl9jb25maWcobmFuZCwgcGFnZSwgZmFsc2UpOwo+ICAJc3VueGlfbmZj X3JhbmRvbWl6ZXJfZW5hYmxlKG5hbmQpOwo+ICAJd3JpdGVsKE5GQ19EQVRBX1RSQU5TIHwgTkZD X0RBVEFfU1dBUF9NRVRIT0QgfCBORkNfRUNDX09QLAo+IEBAIC05NjgsNiArMTA3Niw4IEBAIHN0 YXRpYyBpbnQgc3VueGlfbmZjX2h3X2VjY19yZWFkX2NodW5rc19kbWEoc3RydWN0IG5hbmRfY2hp cCAqbmFuZCwgdWludDhfdCAqYnVmCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlzdW54aV9uZmNf aHdfZWNjX2VuYWJsZShuYW5kKTsKPiArCXN1bnhpX25mY19yZXNldF91c2VyX2RhdGFfbGVuKG5m Yyk7Cj4gKwlzdW54aV9uZmNfc2V0X3VzZXJfZGF0YV9sZW4obmZjLCA0LCAwKTsKPiAgCXN1bnhp X25mY19yYW5kb21pemVyX2NvbmZpZyhuYW5kLCBwYWdlLCBmYWxzZSk7Cj4gIAlzdW54aV9uZmNf cmFuZG9taXplcl9lbmFibGUobmFuZCk7Cj4gIAo+IEBAIC0xMTAwLDYgKzEyMTAsOCBAQCBzdGF0 aWMgaW50IHN1bnhpX25mY19od19lY2Nfd3JpdGVfY2h1bmsoc3RydWN0IG5hbmRfY2hpcCAqbmFu ZCwKPiAgCj4gIAlzdW54aV9uZmNfcmFuZG9taXplcl9jb25maWcobmFuZCwgcGFnZSwgZmFsc2Up Owo+ICAJc3VueGlfbmZjX3JhbmRvbWl6ZXJfZW5hYmxlKG5hbmQpOwo+ICsJc3VueGlfbmZjX3Jl c2V0X3VzZXJfZGF0YV9sZW4obmZjKTsKPiArCXN1bnhpX25mY19zZXRfdXNlcl9kYXRhX2xlbihu ZmMsIDQsIDApOwo+ICAJc3VueGlfbmZjX2h3X2VjY19zZXRfcHJvdF9vb2JfYnl0ZXMobmFuZCwg b29iLCAwLCBiYm0sIHBhZ2UpOwo+ICAKPiAgCXdyaXRlbChORkNfREFUQV9UUkFOUyB8IE5GQ19E QVRBX1NXQVBfTUVUSE9EIHwKPiBAQCAtMTM0NCwxMCArMTQ1NiwxMiBAQCBzdGF0aWMgaW50IHN1 bnhpX25mY19od19lY2Nfd3JpdGVfcGFnZV9kbWEoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiAg CWlmIChyZXQpCj4gIAkJZ290byBwaW9fZmFsbGJhY2s7Cj4gIAo+ICsJc3VueGlfbmZjX3Jlc2V0 X3VzZXJfZGF0YV9sZW4obmZjKTsKPiAgCWZvciAoaSA9IDA7IGkgPCBlY2MtPnN0ZXBzOyBpKysp IHsKPiAgCQljb25zdCB1OCAqb29iID0gbmFuZC0+b29iX3BvaSArIChpICogKGVjYy0+Ynl0ZXMg KyA0KSk7Cj4gIAo+ICAJCXN1bnhpX25mY19od19lY2Nfc2V0X3Byb3Rfb29iX2J5dGVzKG5hbmQs IG9vYiwgaSwgIWksIHBhZ2UpOwo+ICsJCXN1bnhpX25mY19zZXRfdXNlcl9kYXRhX2xlbihuZmMs IDQsIGkpOwo+ICAJfQo+ICAKPiAgCW5hbmRfcHJvZ19wYWdlX2JlZ2luX29wKG5hbmQsIHBhZ2Us IDAsIE5VTEwsIDApOwo+IEBAIC0yMTQ4LDE4ICsyMjYyLDM2IEBAIHN0YXRpYyBpbnQgc3VueGlf bmZjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlpZiAoaXJxIDwgMCkK PiAgCQlyZXR1cm4gaXJxOwo+ICAKPiArCW5mYy0+Y2FwcyA9IG9mX2RldmljZV9nZXRfbWF0Y2hf ZGF0YShkZXYpOwo+ICsJaWYgKCFuZmMtPmNhcHMpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ ICAJbmZjLT5haGJfY2xrID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoZGV2LCAiYWhiIik7Cj4gIAlp ZiAoSVNfRVJSKG5mYy0+YWhiX2NsaykpIHsKPiAgCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBy ZXRyaWV2ZSBhaGIgY2xrXG4iKTsKPiAgCQlyZXR1cm4gUFRSX0VSUihuZmMtPmFoYl9jbGspOwo+ ICAJfQo+ICAKPiArCWlmIChuZmMtPmNhcHMtPmhhc19tYnVzX2Nsaykgewo+ICsJCW5mYy0+bWJ1 c19jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZChkZXYsICJtYnVzIik7Cj4gKwkJaWYgKElTX0VS UihuZmMtPm1idXNfY2xrKSkgewo+ICsJCQlkZXZfZXJyKGRldiwgIk5vIG1idXMgY2xvY2sgc3Bl Y2lmaWVkXG4iKTsKPiArCQkJcmV0dXJuIFBUUl9FUlIobmZjLT5tYnVzX2Nsayk7Cj4gKwkJfQo+ ICsJfQo+ICsKPiAgCW5mYy0+bW9kX2NsayA9IGRldm1fY2xrX2dldF9lbmFibGVkKGRldiwgIm1v ZCIpOwo+ICAJaWYgKElTX0VSUihuZmMtPm1vZF9jbGspKSB7Cj4gIAkJZGV2X2VycihkZXYsICJm YWlsZWQgdG8gcmV0cmlldmUgbW9kIGNsa1xuIik7Cj4gIAkJcmV0dXJuIFBUUl9FUlIobmZjLT5t b2RfY2xrKTsKPiAgCX0KPiAgCj4gKwluZmMtPmVjY19jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9u YWxfZW5hYmxlZChkZXYsICJlY2MiKTsKPiArCWlmIChJU19FUlIobmZjLT5lY2NfY2xrKSkgewo+ ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJldHJpZXZlIGVjYyBjbGtcbiIpOwo+ICsJCXJl dHVybiBQVFJfRVJSKG5mYy0+ZWNjX2Nsayk7Cj4gKwl9Cj4gKwo+ICAJbmZjLT5yZXNldCA9IGRl dm1fcmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWxfZXhjbHVzaXZlKGRldiwgImFoYiIpOwo+ICAJ aWYgKElTX0VSUihuZmMtPnJlc2V0KSkKPiAgCQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlc2V0KTsK PiBAQCAtMjE3MCwxMiArMjMwMiw2IEBAIHN0YXRpYyBpbnQgc3VueGlfbmZjX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlu ZmMtPmNhcHMgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7Cj4gLQlpZiAo IW5mYy0+Y2Fwcykgewo+IC0JCXJldCA9IC1FSU5WQUw7Cj4gLQkJZ290byBvdXRfYWhiX3Jlc2V0 X3JlYXNzZXJ0Owo+IC0JfQo+IC0KPiAgCXJldCA9IHN1bnhpX25mY19yc3QobmZjKTsKPiAgCWlm IChyZXQpCj4gIAkJZ290byBvdXRfYWhiX3Jlc2V0X3JlYXNzZXJ0Owo+IEBAIC0yMjI2LDggKzIz NTIsMTcgQEAgc3RhdGljIGNvbnN0IHU4IHN1bnhpX2VjY19zdHJlbmd0aHNfYTEwW10gPSB7Cj4g IAkxNiwgMjQsIDI4LCAzMiwgNDAsIDQ4LCA1NiwgNjAsIDY0Cj4gIH07Cj4gIAo+ICtzdGF0aWMg Y29uc3QgdTggc3VueGlfZWNjX3N0cmVuZ3Roc19oNltdID0gewo+ICsJMTYsIDI0LCAyOCwgMzIs IDQwLCA0NCwgNDgsIDUyLCA1NiwgNjAsIDY0LCA2OCwgNzIsIDc2LCA4MAo+ICt9Owo+ICsKPiAr c3RhdGljIGNvbnN0IHU4IHN1bnhpX3VzZXJfZGF0YV9sZW5faDZbXSA9IHsKPiArCTAsIDQsIDgs IDEyLCAxNiwgMjAsIDI0LCAyOCwgMzIKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg c3VueGlfbmZjX2NhcHMgc3VueGlfbmZjX2ExMF9jYXBzID0gewo+ICAJLmhhc19lY2NfYmxvY2tf NTEyID0gdHJ1ZSwKPiArCS5oYXNfbWJ1c19jbGsgPSBmYWxzZSwKPiAgCS5yZWdfaW9fZGF0YSA9 IE5GQ19SRUdfQTEwX0lPX0RBVEEsCj4gIAkucmVnX2VjY19lcnJfY250ID0gTkZDX1JFR19BMTBf RUNDX0VSUl9DTlQsCj4gIAkucmVnX3VzZXJfZGF0YSA9IE5GQ19SRUdfQTEwX1VTRVJfREFUQSwK PiBAQCAtMjI0MiwxMSArMjM3NywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX25mY19j YXBzIHN1bnhpX25mY19hMTBfY2FwcyA9IHsKPiAgCS5kbWFfbWF4YnVyc3QgPSA0LAo+ICAJLmVj Y19zdHJlbmd0aHMgPSBzdW54aV9lY2Nfc3RyZW5ndGhzX2ExMCwKPiAgCS5uc3RyZW5ndGhzID0g QVJSQVlfU0laRShzdW54aV9lY2Nfc3RyZW5ndGhzX2ExMCksCj4gKwkubWF4X2VjY19zdGVwcyA9 IDE2LAo+ICAJLnNyYW1fc2l6ZSA9IDEwMjQsCj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IHN1bnhpX25mY19jYXBzIHN1bnhpX25mY19hMjNfY2FwcyA9IHsKPiAgCS5oYXNfbWRtYSA9 IHRydWUsCj4gKwkuaGFzX21idXNfY2xrID0gZmFsc2UsCj4gIAkuaGFzX2VjY19ibG9ja181MTIg PSB0cnVlLAo+ICAJLnJlZ19pb19kYXRhID0gTkZDX1JFR19BMjNfSU9fREFUQSwKPiAgCS5yZWdf ZWNjX2Vycl9jbnQgPSBORkNfUkVHX0ExMF9FQ0NfRVJSX0NOVCwKPiBAQCAtMjI2Miw5ICsyMzk5 LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfbmZjX2NhcHMgc3VueGlfbmZjX2EyM19j YXBzID0gewo+ICAJLmRtYV9tYXhidXJzdCA9IDgsCj4gIAkuZWNjX3N0cmVuZ3RocyA9IHN1bnhp X2VjY19zdHJlbmd0aHNfYTEwLAo+ICAJLm5zdHJlbmd0aHMgPSBBUlJBWV9TSVpFKHN1bnhpX2Vj Y19zdHJlbmd0aHNfYTEwKSwKPiArCS5tYXhfZWNjX3N0ZXBzID0gMTYsCj4gIAkuc3JhbV9zaXpl ID0gMTAyNCwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VueGlfbmZjX2NhcHMg c3VueGlfbmZjX2g2MTZfY2FwcyA9IHsKPiArCS5oYXNfbWRtYSA9IGZhbHNlLCAvLyBINiBzdXBw b3J0cyBvbmx5IGNoYWluZWQgZGVzY3JpcHRvcnMKCkg2IG9yIEg2MTY/CgpGaXggdGhlIGNvbW1l bnQuCgpCZXN0IHJlZ2FyZHMsCkplcm5lagoKPiArCS5oYXNfbWJ1c19jbGsgPSB0cnVlLAo+ICsJ LnJlZ19pb19kYXRhID0gTkZDX1JFR19BMjNfSU9fREFUQSwKPiArCS5yZWdfZWNjX2Vycl9jbnQg PSBORkNfUkVHX0g2X0VDQ19FUlJfQ05ULAo+ICsJLnJlZ191c2VyX2RhdGEgPSBORkNfUkVHX0g2 X1VTRVJfREFUQSwKPiArCS5yZWdfdXNlcl9kYXRhX2xlbiA9IE5GQ19SRUdfSDZfVVNFUl9EQVRB X0xFTiwKPiArCS5yZWdfc3BhcmVfYXJlYSA9IE5GQ19SRUdfSDZfU1BBUkVfQVJFQSwKPiArCS5y ZWdfcGF0X2lkID0gTkZDX1JFR19INl9QQVRfSUQsCj4gKwkucmVnX3BhdF9mb3VuZCA9IE5GQ19S RUdfSDZfUEFUX0ZPVU5ELAo+ICsJLnJhbmRvbV9lbl9tYXNrID0gQklUKDUpLAo+ICsJLnJhbmRv bV9kaXJfbWFzayA9IEJJVCg2KSwKPiArCS5lY2NfbW9kZV9tYXNrID0gR0VOTUFTSygxNSwgOCks Cj4gKwkuZWNjX2Vycl9tYXNrID0gR0VOTUFTSygzMSwgMCksCj4gKwkucGF0X2ZvdW5kX21hc2sg PSBHRU5NQVNLKDMxLCAwKSwKPiArCS5kbWFfbWF4YnVyc3QgPSA4LAo+ICsJLmVjY19zdHJlbmd0 aHMgPSBzdW54aV9lY2Nfc3RyZW5ndGhzX2g2LAo+ICsJLm5zdHJlbmd0aHMgPSBBUlJBWV9TSVpF KHN1bnhpX2VjY19zdHJlbmd0aHNfaDYpLAo+ICsJLnVzZXJfZGF0YV9sZW5fdGFiID0gc3VueGlf dXNlcl9kYXRhX2xlbl9oNiwKPiArCS5udXNlcl9kYXRhX3RhYiA9IEFSUkFZX1NJWkUoc3VueGlf dXNlcl9kYXRhX2xlbl9oNiksCj4gKwkubWF4X2VjY19zdGVwcyA9IDMyLAo+ICsJLnNyYW1fc2l6 ZSA9IDgxOTIsCj4gK307Cj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBz dW54aV9uZmNfaWRzW10gPSB7Cj4gIAl7Cj4gIAkJLmNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1 bjRpLWExMC1uYW5kIiwKPiBAQCAtMjI3NCw2ICsyNDM2LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIHN1bnhpX25mY19pZHNbXSA9IHsKPiAgCQkuY29tcGF0aWJsZSA9ICJh bGx3aW5uZXIsc3VuOGktYTIzLW5hbmQtY29udHJvbGxlciIsCj4gIAkJLmRhdGEgPSAmc3VueGlf bmZjX2EyM19jYXBzLAo+ICAJfSwKPiArCXsKPiArCQkuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIs c3VuNTBpLWg2MTYtbmFuZC1jb250cm9sbGVyIiwKPiArCQkuZGF0YSA9ICZzdW54aV9uZmNfaDYx Nl9jYXBzLAo+ICsJfSwKPiAgCXsgLyogc2VudGluZWwgKi8gfQo+ICB9Owo+ICBNT0RVTEVfREVW SUNFX1RBQkxFKG9mLCBzdW54aV9uZmNfaWRzKTsKPiAKCgoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24g bWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtbXRkLwo=