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=-2.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no 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 3A0E2ECE58E for ; Fri, 11 Oct 2019 14:01:52 +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 0D9EE20640 for ; Fri, 11 Oct 2019 14:01:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="XDpd4HRF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D9EE20640 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=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-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QWs+WZk5zPXOjFVmOTmUMiMnDIdjt/TjDgB7CdgG+80=; b=XDpd4HRFEnG/Vv wrFYkbuqfat8isba3bqTEK1RDO+Z0MEs7eGbZzRZgCe/rAQ0O4cigS/GPstD6K7/aN1HTfDoNBJTQ GiNam1qiGe4GD9tlsgNtNm8ky6Ue8VFrGyPwB2d1pSTE+gbhgr84r4qn3LxL8A6lACymDXSYoWH2v IGL3mmOwhN6AEZXxtf7wS3oWAZJlgtCanvQzdC1aNUvtzyMm4zL7lgXOZXjN5OMatg5XGDoOJ8MkG SF2UnvUIrwK1/6JH7PWX4kJouzaa1QwQqgn5kzIjX/VFR6NzsZwUi84BV+CQ0QnjTy5rviSueRaoL A7giB2ry6/EEaSuEfufg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iIvUN-0000Lv-9L; Fri, 11 Oct 2019 14:01:51 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iIvU8-0000Ch-SZ; Fri, 11 Oct 2019 14:01:39 +0000 Received: from dhcp-172-31-174-146.wireless.concordia.ca (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id F3687290FB9; Fri, 11 Oct 2019 15:01:34 +0100 (BST) Date: Fri, 11 Oct 2019 16:01:32 +0200 From: Boris Brezillon To: =?UTF-8?B?Q8OpZHJpYw==?= Le Goater Subject: Re: [PATCH 00/16] mtd: spi-nor: aspeed: AST2600 support and extensions Message-ID: <20191011160132.26061e99@dhcp-172-31-174-146.wireless.concordia.ca> In-Reply-To: <030ac3d9-bda7-a4da-e3ce-d792ad98beb3@kaod.org> References: <20191004115919.20788-1-clg@kaod.org> <20191009225555.67622339@dhcp-172-31-174-146.wireless.concordia.ca> <20191011084503.5b7a7c2c@dhcp-172-31-174-146.wireless.concordia.ca> <3836fcc4-c8b0-ed04-0c52-7c642794ecb8@kaod.org> <20191011115129.3897cd17@dhcp-172-31-174-146.wireless.concordia.ca> <026b5c55-194c-934f-e039-7c4d28861d53@kaod.org> <20191011140611.5a34e1fb@dhcp-172-31-174-146.wireless.concordia.ca> <030ac3d9-bda7-a4da-e3ce-d792ad98beb3@kaod.org> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191011_070137_184290_A0FBFCE8 X-CRM114-Status: GOOD ( 42.84 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Vignesh Raghavendra , linux-aspeed , Tudor Ambarus , Andrew Jeffery , Richard Weinberger , Marek Vasut , linux-mtd@lists.infradead.org, Joel Stanley , Miquel Raynal , Brian Norris , David Woodhouse , Linux ARM 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 T24gRnJpLCAxMSBPY3QgMjAxOSAxNTowNzoxOCArMDIwMApDw6lkcmljIExlIEdvYXRlciA8Y2xn QGthb2Qub3JnPiB3cm90ZToKCj4gT24gMTEvMTAvMjAxOSAxNDowNywgQm9yaXMgQnJlemlsbG9u IHdyb3RlOgo+ID4gT24gRnJpLCAxMSBPY3QgMjAxOSAxMzo0Nzo1MyArMDIwMAo+ID4gQ8OpZHJp YyBMZSBHb2F0ZXIgPGNsZ0BrYW9kLm9yZz4gd3JvdGU6Cj4gPiAgIAo+ID4+IE9uIDExLzEwLzIw MTkgMTE6NTEsIEJvcmlzIEJyZXppbGxvbiB3cm90ZTogIAo+ID4+PiBPbiBGcmksIDExIE9jdCAy MDE5IDExOjI5OjQ5ICswMjAwCj4gPj4+IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC5vcmc+ IHdyb3RlOgo+ID4+PiAgICAgCj4gPj4+PiBPbiAxMS8xMC8yMDE5IDA4OjQ1LCBCb3JpcyBCcmV6 aWxsb24gd3JvdGU6ICAgIAo+ID4+Pj4+IE9uIFRodSwgMTAgT2N0IDIwMTkgMjM6NDc6NDUgKzAw MDAKPiA+Pj4+PiBKb2VsIFN0YW5sZXkgPGpvZWxAam1zLmlkLmF1PiB3cm90ZToKPiA+Pj4+PiAg ICAgICAKPiA+Pj4+Pj4gT24gV2VkLCA5IE9jdCAyMDE5IGF0IDIwOjU2LCBCb3JpcyBCcmV6aWxs b24KPiA+Pj4+Pj4gPGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPiB3cm90ZTogICAgICAK PiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBIaSBDZWRyaWMsCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gT24gRnJp LCAgNCBPY3QgMjAxOSAxMzo1OTowMyArMDIwMAo+ID4+Pj4+Pj4gQ8OpZHJpYyBMZSBHb2F0ZXIg PGNsZ0BrYW9kLm9yZz4gd3JvdGU6Cj4gPj4+Pj4+PiAgICAgICAgCj4gPj4+Pj4+Pj4gSGVsbG8s Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUaGlzIHNlcmllcyBmaXJzdCBleHRlbmRzIHRoZSBzdXBw b3J0IGZvciB0aGUgQXNwZWVkIEFTVDI1MDAgYW5kCj4gPj4+Pj4+Pj4gQVNUMjQwMCBTTUMgZHJp dmVyLiBJdCBhZGRzIER1YWwgRGF0YSBzdXBwb3J0IGFuZCByZWFkIHRyYWluaW5nIGdpdmluZwo+ ID4+Pj4+Pj4+IHRoZSBiZXN0IHJlYWQgc2V0dGluZ3MgZm9yIGEgZ2l2ZW4gY2hpcC4gU3VwcG9y dCBmb3IgdGhlIG5ldyBBU1QyNjAwCj4gPj4+Pj4+Pj4gU29DIGlzIGFkZGVkIGF0IHRoZSBlbmQu Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBJIHVuZGVyc3RhbmQgdGhhdCBhIG5ldyBzcGlfbWVtIGZy YW1ld29yayBleGlzdHMgYW5kIEkgZG8gaGF2ZSBhbgo+ID4+Pj4+Pj4+IGV4cGVyaW1lbnRhbCBk cml2ZXIgdXNpbmcgaXQuIEJ1dCB1bmZvcnR1bmF0ZWx5LCBpdCBpcyBkaWZmaWN1bHQgdG8KPiA+ Pj4+Pj4+PiBpbnRlZ3JhdGUgdGhlIHJlYWQgdHJhaW5pbmcuIFRoZSBBc3BlZWQgY29uc3RyYWlu dHMgYXJlIG5vdCBjb21wYXRpYmxlCj4gPj4+Pj4+Pj4gYW5kIGkgaGF2ZW4ndCBoYWQgdGhlIHRp bWUgdG8gZXh0ZW5kIHRoZSBjdXJyZW50IGZyYW1ld29yay4gICAgICAgIAo+ID4+Pj4+Pj4KPiA+ Pj4+Pj4+IEhtLCBJIGRvbid0IHRoaW5rIHRoYXQncyBhIGdvb2QgcmVhc29uIHRvIHB1c2ggbmV3 IGZlYXR1cmVzIHRvIHRoZQo+ID4+Pj4+Pj4gZXhpc3RpbmcgZHJpdmVyLCBlc3BlY2lhbGx5IHNp bmNlIEkgYXNrZWQgb3RoZXJzIHRvIG1pZ3JhdGUgdGhlaXIKPiA+Pj4+Pj4+IGRyaXZlcnMgdG8g c3BpLW1lbSBpbiB0aGUgcGFzdC4gSSBkbyB1bmRlcnN0YW5kIHlvdXIgY29uY2VybnMsIGFuZCBJ J2xsCj4gPj4+Pj4+PiBsZXQgdGhlIFNQSSBOT1IvTVREIG1haW50YWluZXJzIG1ha2UgdGhlIGZp bmFsIGNhbGwsIGJ1dCBJIHRoaW5rIGl0J2QKPiA+Pj4+Pj4+IGJlIGJldHRlciBmb3IgdGhlIFNQ SSBNRU0gZWNvc3lzdGVtIHRvIHRoaW5rIGFib3V0IHRoaXMgbGluay10cmFpbmluZwo+ID4+Pj4+ Pj4gQVBJIChWaWduZXNoIG5lZWRzIGl0IGZvciB0aGUgQ2FkZW5jZSBkcml2ZXIgSUlSQykgcmF0 aGVyIHRoYW4gcHVzaGluZwo+ID4+Pj4+Pj4gdGhpcyBraW5kIG9mIGZlYXR1cmUgdG8gc3BpLW5v ciBjb250cm9sbGVyIGRyaXZlcnMuICAgICAgICAKPiA+Pj4+Pj4KPiA+Pj4+Pj4gQXMgQ2Vkcmlj IG1lbnRpb25lZCwgdGhlIE9wZW5CTUMgcHJvamVjdCBoYXMgYmVlbiBzaGlwcGluZyB0aGUgcmVh ZAo+ID4+Pj4+PiB0cmFpbmluZyBjb2RlIGZvciB0aGUgYXN0MjQwMC9hc3QyNDAwIGZvciBzZXZl cmFsIHllYXJzIG5vdy4gSXQgd291bGQKPiA+Pj4+Pj4gYmUgZ3JlYXQgdG8gc2VlIGl0IGluIG1h aW5saW5lLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBJIHRoaW5rIGl0J3MgcmVhc29uYWJsZSB0byBhc2sg Zm9yIHRoZSBkcml2ZXIgdG8gYmUgbW92ZWQgdG8gdGhlCj4gPj4+Pj4+IHNwaS1tZW0gc3Vic3lz dGVtIG9uY2UgaXQgaGFzIHRoZSByZXF1aXJlZCBBUElzLiAgICAgIAo+ID4+Pj4+Cj4gPj4+Pj4g RXhjZXB0IGl0IHdvbid0IGhhdmUgdGhlIG5lY2Vzc2FyeSBBUElzIHVubGVzcyBzb21lb25lIHdv cmtzIG9uIGl0LCBhbmQKPiA+Pj4+PiBhZGRpbmcgdGhpcyBmZWF0dXJlIHRvIGV4aXN0aW5nIHNw aS1ub3IgZHJpdmVycyB3b24ndCBoZWxwIGFjaGlldmluZwo+ID4+Pj4+IHRoaXMgZ29hbC4gICAg ICAKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gV2hhdCB3b3VsZCB5b3Ugc3VnZ2VzdCA/IFNvbWV0aGlu ZyBsaWtlIHRoZSBwYXRjaCBiZWxvdyB3aGljaCB3b3VsZAo+ID4+Pj4gY2FsbCBhICd0cmFpbicg b3BlcmF0aW9uIGF0IHRoZSBlbmQgb2Ygc3BpX2FkZF9kZXZpY2UoKS4gICAgCj4gPj4+Cj4gPj4+ IFRoaXMgaGFzIGJlZW4gZGlzY3Vzc2VkIGluIHRoZSBwYXN0IHdpdGggVmlnbmVzaCwgYnV0IEkg Y2FuJ3QgZmluZCB0aGUKPiA+Pj4gdGhyZWFkIHdoZXJlIHRoaXMgZGlzY3Vzc2lvbiBoYXBwZW5l ZC4gTXkgdW5kZXJzdGFuZGluZyB3YXMgdGhhdCBsaW5rCj4gPj4+IHRyYWluaW5nIHdvdWxkIHVz ZSBhIGNvbW1hbmQgd2l0aCB3ZWxsLWtub3duIG91dHB1dCAoaXMgdGhlcmUgYQo+ID4+PiBkZWRp Y2F0ZWQgU1BJIE5PUiBjb21tYW5kIGZvciB0aGF0PykgYW5kIHRlc3QgZGlmZmVyZW50IGNsayBz ZXR0aW5ncwo+ID4+PiB1bnRpbCBpdCBmaW5kcyBvbmUgdGhhdCB3b3Jrcy4gICAgCj4gPj4KPiA+ PiBUaGUgcmVhZCB0cmFpbmluZyBvbiBBc3BlZWQgY29uc2lzdHMgb2YgZmluZGluZyB0aGUgYXBw cm9wcmlhdGUgcmVhZAo+ID4+IHRpbWluZyBkZWxheXMgZm9yIHdlbGwta25vd24gSENMSyBkaXZp ZGVycyBhbmQgc3RvcmUgdGhlIHJlc3VsdHMgaW4gCj4gPj4gdGhlIFJlYWQgVGltaW5nIENvbXBl bnNhdGlvbiByZWdpc3Rlci4gCj4gPj4KPiA+PiBXZSBmaXJzdCByZWFkIGEgZ29sZGVuIGJ1ZmZl ciBhdCBsb3cgc3BlZWQgYW5kIHRoZW4gcGVyZm9ybSByZWFkcyB3aXRoIAo+ID4+IGRpZmZlcmVu dCBjbG9ja3MgYW5kIGRlbGF5IGN5Y2xlIHNldHRpbmdzIHRvIGZpbmQgYSBicmVha2luZyBwb2lu dC4gIAo+ID4gCj4gPiBXaGVyZSBkb2VzIHRoaXMgZ29sZGVuIGJ1ZmZlciBjb21lIGZyb20/IERv IHlvdSBoYXZlIGEgc3BlY2lmaWMgY29tbWFuZAo+ID4gdG8gYWNjZXNzIGl0PyBJcyBpdCBhIE5P UiBzZWN0aW9uIHdpdGggd2VsbC1rbm93biBkYXRhPyAgCj4gCj4gV2UgcmVhZCB0aGUgZmlyc3Qg MTZLIG9mIHRoZSBmbGFzaCBkZXZpY2UgYXQgbG93IHNwZWVkLiAgCgpUaGF0J3Mgd2hhdCBJIGZp Z3VyZWQgYWZ0ZXIgcmVhZGluZyB0aGUgY29kZS4KCj4gCj4gPj4gVGhpcyAKPiA+PiBzZWxlY3Rz IHRoZSBkZWZhdWx0IGNsb2NrIGZyZXF1ZW5jeSBmb3IgdGhlIENFeCBjb250cm9sIHJlZ2lzdGVy LiAKPiA+Pgo+ID4+ICAgIAo+ID4+Pj4gQWxzbywgd2hlbiBkb2luZyByZWFkIHRyYWluaW5nLCB3 ZSBtaWdodCBuZWVkIHRvIGtub3cgc29tZSBsb3dsZXZlbCAKPiA+Pj4+IGNoYXJhY3RlcmlzdGlj cyBvZiB0aGUgY2hpcCBiZWluZyB0cmFpbmVkLiBTaG91bGQgd2Ugb2ZmZXIgYSB3YXkgCj4gPj4+ PiB0byBncmFiIHRoZSBwcm9iZWQgbTI1cDgwIGRldmljZSBhbmQgZ2l2ZSBhY2Nlc3MgdG8gdGhl IHVuZGVybHlpbmcgCj4gPj4+PiAnc3RydWN0IHNwaV9ub3InID8gCj4gPj4+Pgo+ID4+Pj4gICBz dGF0aWMgc3RydWN0IHNwaV9ub3IgKnNwaV9nZXRfcG5vcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp KQo+ID4+Pj4gICB7Cj4gPj4+PiAJc3RydWN0IHNwaV9tZW0gKnNwaW1lbSA9IHNwaV9nZXRfZHJ2 ZGF0YShzcGkpOwo+ID4+Pj4gCXN0cnVjdCBtMjVwICpmbGFzaCA9IHNwaV9tZW1fZ2V0X2RydmRh dGEoc3BpbWVtKTsKPiA+Pj4+Cj4gPj4+PiAJcmV0dXJuIGZsYXNoID8gJmZsYXNoLT5zcGlfbm9y IDogTlVMTDsKPiA+Pj4+ICAgfQo+ID4+Pj4KPiA+Pj4+IFllYWgsIGl0J3MgaGlkZW91cy4gSSBq dXN0IHdhbnQgdG8gcmFpc2UgdGhlIGlzc3VlLiAgICAKPiA+Pj4KPiA+Pj4gT2ggbm8uIFdlIGRl ZmluaXRlbHkgZG9uJ3Qgd2FudCB0byBleHBvc2UgdGhlIHNwaV9ub3IgY2hpcCB0byB0aGUKPiA+ Pj4gc3BpX21lbSBsYXllciwgYnV0LCBpZiBuZWVkZWQsIHdlIGNhbiBhZGQgbW9yZSBmaWVsZHMg dG8gc3BpX21lbSBhbmQKPiA+Pj4gbGV0IHRoZSBzcGlfbWVtIGRyaXZlciBmaWxsIHRoZW0uIFdl IGp1c3QgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncwo+ID4+PiByZWFsbHkgbmVlZGVkLiAgICAK PiA+Pgo+ID4+IFdlIG5lZWQgdGhlIFNQSS9OT1IgZmxhc2ggY2hhcmFjdGVyaXN0aWNzIGZvciBs aW5rIHRyYWluaW5nIGFuZCBpdHMgCj4gPj4gc2l6ZSB0byBjb25maWd1cmUgdGhlIGNvbnRyb2xs ZXIgdG8gYWNjZXNzIHRoZSBDUyBvbiB0aGUgQUhCIHdpbmRvdy4gICAKPiA+IAo+ID4gV2UgbWFu YWdlZCB0byBkZWFsIHdpdGggZGlyZWN0IG1hcHBpbmcgd2l0aG91dCBoYXZpbmcgdG8gZXhwbGlj aXRseSBwYXNzCj4gPiB0aGUgTk9SIHNpemUgKHdlIGp1c3QgcGFzcyB0aGUgc2l6ZSBvZiB0aGUg ZGlyZWN0IG1hcHBpbmcgd2Ugd2FudCB0bwo+ID4gY3JlYXRlKS4gV2hhdCBkbyB5b3UgbmVlZCB0 aGUgc2l6ZSBmb3I/ICAgCj4gCj4gYmVjYXVzZSB0aGUgQUhCIHdpbmRvdyBvbiB3aGljaCBhcmUg bWFwcGVkIGFsbCBDUyBpcyBzZWdtZW50ZWQuIAo+IAo+IFRoZXJlIGlzIG9uZSBzdWIgd2luZG93 IGZvciBlYWNoIENTIGFuZCBhbGwgc2VnbWVudHMgbmVlZCB0byBiZSAKPiBjb25maWd1cmVkIGlu IHRoZSBjb250cm9sbGVyIChpbiB0aGUgc2VnbWVudCByZWdpc3RlcnMpLiBJbiBjYXNlIAo+IG9m IGEgYmFkIHZhbHVlIG9yIGFuIG92ZXJsYXAsIHlvdSBjYW4gbG9vc2UgYWNjZXNzIHRvIHRoZSBD UyBvciAKPiBoYW5nIHRoZSBzeXN0ZW0uCgpUaGUgZGlybWFwIEFQSSBpcyBoZXJlIGZvciB0aGF0 LiBJZiB5b3UgaW1wbGVtZW50IHRoZQotPntjcmVhdGUsZGVzdHJveX1fZGlybWFwKCkgaG9va3Mg eW91IHNob3VsZCBiZSBhYmxlIHRvIGRlY2lkZSB3aGljaCBBSEIKd2luZG93IGlzIGFzc2lnbmVk IHRvIHdoaWNoIGNoaXAuIFRoZSBTUEkgTk9SIGxheWVyIHdpbGwgKHNvb24pIG1ha2UKdXNlIG9m IGRpcm1hcHMgaW5zdGVhZCBvZiB1c2luZyBwbGFpbiBzcGlfbWVtX2V4ZWNfb3AoKSBmb3IKZGF0 YSByZWFkL3dyaXRlIGFjY2Vzc2VzIEJUVy4KCj4gCj4gVG8gYWNjZXNzIHRoZSBTUEkgTk9SIHJl Z2lzdGVycywgeW91IGRvbid0IG5lZWQgYSB3aW5kb3cgb2YgdGhlIAo+IGV4YWN0IHNpemUgYmVj YXVzZSBpbiB0aGF0IGNhc2UgdGhlIGNvbnRyb2xsZXIgb3BlcmF0ZXMgaW4gJ1VzZXInIAo+IGNv bW1hbmQgbW9kZSBhbmQgdGhlIHdpbmRvdyBvbmx5IG5lZWRzIHRvIGJlIHBhcnRpYWxseSBvcGVu ZWQuIAoKU291bmRzIGdvb2QuCgo+IFJlYWRzIGFuZCBXcml0ZXMgdXNlIHRoZSBzdGFydCBhZGRy ZXNzIG9mIEFIQiBzdWItd2luZG93IG9mIHRoZSBDUy4KClRoaXMgdG9vLgoKPiAKPiBJZiB5b3Ug d2FudCBhY2Nlc3MgdG8gdGhlIGZ1bGwgY29udGVudHMgdGhyb3VnaCBhIGRpcmVjdCBtYXBwaW5n LAo+IHRoZSBjb250cm9sbGVyIG9wZXJhdGVzIGluICdSZWFkJyBvciAnRmFzdCBSZWFkJyBjb21t YW5kIG1vZGUgYW5kCj4gdGhlIHdpbmRvdyBuZWVkcyB0byBiZSBhdCBsZWFzdCBhcyB3aWRlIGFz IHRoZSBmbGFzaCBzaXplLgoKV2VsbCwgd2UgdXN1YWxseSBkb24ndCBlbmZvcmNlIHRoYXQgaW4g b3RoZXIgZHJpdmVycyAod2UgdXNlIHRoZSBjb25jZXB0Cm9mIHNsaWRpbmcgd2luZG93IHdoZW4g dGhlIGZsYXNoIGlzIGJpZ2dlciB0aGFuIHRoZSBwaHlzaWNhbCBBSEIgd2luZG93LAphbmQgd2Ug YWRqdXN0IHRoZSBzdGFydCBvZmZzZXQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlCmRpcm1hcF9y ZWFkL3dyaXRlKCkgcmVxdWVzdCksIGJ1dCBpZiB5b3Ugd2FudCB0byBlbmZvcmNlIHRoYXQgaW4g eW91cgpkcml2ZXIgaXQncyBmaW5lLgoKPiAKPiA+IElzIGl0IGp1c3QgdG8gY29uZmlndXJlIHRo ZSBBSEIgd2luZG93IGZvciB0aGUgbGluay10cmFpbmluZyBzdHVmZj8gICAKPiAKPiBUaGUgbGlu ay10cmFpbmluZyB1c2VzIHRoZSBkaXJlY3QgbWFwcGluZyBtb2RlIGJ1dCBub3Qgb24gdGhlCj4g d2hvbGUgY29udGVudHMsIG9ubHkgb24gdGhlIGZpcnN0IDE2Sy4gU28gdGhlIEFIQiB3aW5kb3cg ZG9lcyBub3QgCj4gaGF2ZSB0byBiZSBhcyB3aWRlIGFzIHRoZSBjaGlwIGFuZCB3ZSBjb3VsZCB1 c2UgYSBkZWZhdWx0IHNldHRpbmcuCj4gQnV0IGdlbmVyYWxseSwgd2UgYWxyZWFkeSBoYXZlIGdv b2Qga25vd2xlZGdlIG9uIHRoZSBjaGlwIGJlZm9yZQo+IHRyYWluaW5nIGlzIHN0YXJ0ZWQuCgpJ ZiB5b3UgbmVlZCB0aGUgZGlyZWN0IG1hcHBpbmcgdG8gYmUgc2V0IHVwIGZvciB0aGUgbGluayB0 cmFpbmluZywgdGhhdApzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLgoKPiAKPiA+IElmIHRoYXQncyB0 aGUgY2FzZSwgSSBndWVzcyB0aGlzIGNhbiBiZSBwYXJ0IG9mIHRoZSBvcF90ZW1wbGF0ZSAKPiA+ IEkgd2FzIHRhbGtpbmcgYWJvdXQsIG9yIG1heWJlIHBhc3NlZCBhcyBleHRyYSBwYXJhbWV0ZXJz Lgo+ID4gIAo+ID4+IFsgLi4uIF0KPiA+PiAgCj4gPj4+PiAgCWludCAoKmZ3X3RyYW5zbGF0ZV9j cykoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLCB1bnNpZ25lZCBjcyk7Cj4gPj4+PiArCj4g Pj4+PiArCWludAkJCSgqdHJhaW4pKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpOyAgICAKPiA+Pj4K PiA+Pj4gV2FzIG1vcmUgdGhpbmtpbmcgb2Ygc29tZXRoaW5nIGxpa2U6Cj4gPj4+Cj4gPj4+IAlp bnQgKCpsaW5rX3NldHVwKShzdHJ1Y3Qgc3BpX21lbSAqbWVtLAo+ID4+PiAJCQkgIHN0cnVjdCBz cGlfbWVtX29wICpvcF90ZW1wbGF0ZSwKPiA+Pj4gCQkJICAuLi4pOwo+ID4+Pgo+ID4+PiB3aGVy ZSB0aGUgb3BfdGVtcGxhdGUgd291bGQgcG90ZW50aWFsbHkgZGlmZmVyIGRlcGVuZGluZyBvbiB0 aGUgdHlwZSBvZgo+ID4+PiBtZW1vcnkgKE5PUiwgTkFORCwgU1JBTT8pLiBJIGFsc28gZG9uJ3Qg a25vdyB3aGF0IG90aGVyIHBhcmFtcyB3b3VsZCBiZQo+ID4+PiBuZWVkZWQgdG8gZG8gdGhlIGxp bmsgdHJhaW5pbmcuICAgIAo+ID4+Cj4gPj4gVGhlIEFzcGVlZCBjb250cm9sbGVyIG5lZWRzIHRv IHNldCByZWFkIGRlbGF5IHRpbWluZ3MgYXQgZGlmZmVyZW50IEhDTEsKPiA+PiBzZXR0aW5ncy4g SXQncyBkb2luZyByZWFkIG9wZXJhdGlvbnMgd2l0aCB0aGUgZGVmYXVsdCBJTyBtb2RlLiAgCj4g PiAKPiA+IFNvIHlvdSBuZWVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0aGVvcmV0aWNhbCByZWFk IGRlbGF5IHNvIHlvdSBjYW4KPiA+IGFkanVzdCB0aGVtLCByaWdodC4gSSBndWVzcyB0aGF0J3Mg c29tZXRoaW5nIHdlIGNhbiBwYXNzIHRvIHRoZSAgCj4gPiAtPmxpbmtfc2V0dXAoKSBob29rLiAg Cj4gCj4gVGhlIHJlYWQgZGVsYXkgc2V0dGluZ3MgcmVhbGx5IGRlcGVuZCBvbiB0aGUgY29udHJv bGxlci4gSSB3YXMgdGhpbmtpbmcgCj4gbW9yZSBvZiBhIHBvc3Rfc2V0dXAoKSBob29rIGNhbGxl ZCBvbmNlIGluIG0yNXBfcHJvYmUoKSBhZnRlciB0aGUgY2hpcCAKPiBpcyBzY2FubmVkLiAKCkZv ciB0aGUgcmVjb3JkLCBtMjVwIGlzIGdvbmUgKGNvZGUgaGFzIGJlZW4gbWVyZ2VkIGluIHNwaS1u b3IuYykgOy0pLgpCYWNrIHRvIHRoZSBvcmlnaW5hbCB0b3BpYywgSSBkb24ndCB0aGluayBsaW5r IHNldHVwIGlzIHNvbWV0aGluZwpzbyBjb250cm9sbGVyIHNwZWNpZmljIHRoYXQgd2UgY2FuJ3Qg YWJzdHJhY3QgaXQgYXQgdGhlIHNwaS1ub3IgbGV2ZWwuCk9mIGNvdXJzZSB0aGUgcGllY2Ugb2Yg SFcgZG9pbmcgdGhlIGxpbmsgdHJhaW5pbmcgaXMgc3RpbGwgdGhlIFNQSQpjb250cm9sbGVyLCBi dXQgdGhlIFNQSSBOT1IgZnJhbWV3b3JrIGNhbiBhYnN0cmFjdCBhIGZldyB0aGluZ3MsIGxpa2UK ZmlndXJpbmcgb3V0IHdoaWNoIFNQSV9OT1Igb3BlcmF0aW9uIHRvIHVzZSwgd2hlcmUgdG8gcmVh ZCB0aGUgZGF0YQpmcm9tLCAuLi4KCj4gCj4gQXMgZm9yIHRoZSBwYXJhbWV0ZXIsIHdlIHdvdWxk IG5lZWQgc29tZSBTUEktTk9SIGluZm8gb3Igc29tZSBnZW5lcmljCj4gU1BJIGRldmljZSBkYXRh IHRoYXQgdGhlIGNvbnRyb2xsZXIgd291bGQga25vdyBob3cgdG8gaW50ZXJwcmV0LgoKWWVzLCB0 aGF0J3MgbXkgcG9pbnQuIFRoaXMgcGFydCBpcyBtZW1vcnkgc3BlY2lmaWMuIFRoZSBsaW5rIHRy YWluaW5nCndpdGggYSBTUEkgTkFORCBpcyBsaWtlbHkgdG8gdXNlIGEgZGlmZmVyZW50IG9wZXJh dGlvbiB0aGFuIHdoYXQncyB1c2VkCmZvciBhIFNQSSBOT1IsIGFuZCB3ZSBkZWZpbml0ZWx5IGRv bid0IHdhbnQgU1BJIGNvbnRyb2xsZXJzIHRvIGJlIGF3YXJlCm9mIHRoYXQuCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRp c2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtbXRkLwo=