From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E6D110F0 for ; Tue, 15 Mar 2022 08:35:24 +0000 (UTC) Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 229ED51C; Tue, 15 Mar 2022 09:35:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1647333322; bh=2B1abWspufHcU+WluNkys+YV9mGWKvBYO+9++Bkm3NY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pQshLCVv7y+XpgxHB+4/J8hdZXKj/9Ux7RpMusc18nIvYIbx2SbrZICKrYwDpbHz2 3g0l4lmMYeH+H+To1GCyd/U+HiiDvpKSaPoogxtT+pp5PE3d3V5w8Hg4JYnARcVw+p 6/kz7vCp33yNnqmwiapggEtyAhpU0Mv4ZJSbfB8o= Date: Tue, 15 Mar 2022 10:35:05 +0200 From: Laurent Pinchart To: Mauro Carvalho Chehab Cc: Jernej =?utf-8?Q?=C5=A0krabec?= , Niklas =?utf-8?Q?S=C3=B6derlund?= , Cai Huoqing , Chen-Yu Tsai , Dinghao Liu , Dmitry Osipenko , Eugen Hristev , Ezequiel Garcia , Hans Verkuil , Jacopo Mondi , Jia-Ju Bai , Jonathan Cameron , Maxime Ripard , Mikhail Rudenko , Ming Qian , Ondrej Jirman , Robert Foss , Sakari Ailus , Tomi Valkeinen , Yong Deng , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-sunxi@lists.linux.dev Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/ Message-ID: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> <20220315092736.7e805c81@coco.lan> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220315092736.7e805c81@coco.lan> On Tue, Mar 15, 2022 at 09:27:36AM +0100, Mauro Carvalho Chehab wrote: > Em Tue, 15 Mar 2022 08:54:25 +0200 > Laurent Pinchart escreveu: > > > Hi Mauro, > > > > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote: > > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej Škrabec escreveu: > > > > > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho Chehab > > > > napisal(a): > > > > > As the end goal is to have platform drivers split by vendor, > > > > > rename sunxi/ to allwinner/. > > > > > > > > > > Signed-off-by: Mauro Carvalho Chehab > > > > > > > > I would rather not do that. Everything related to Allwinner is called sunxi, > > > > albeit there are a few outliers. This is similar to Amlogic/meson situation. > > > > > > The rationale of having one directory per manufacturer is that, if drivers > > > for newer platforms with different names from the same manufacturers are > > > added, those will still fit under allwinner/ and amlogic/. > > > > > > The Kconfig names for sunxi and meson didn't change, nor the driver's name. > > > Also, the directories under allwinner preserve suni name on them: > > > > > > drivers/media/platform/allwinner/ > > > ├── sun4i-csi > > > ├── sun6i-csi > > > ├── sun8i-di > > > └── sun8i-rotate > > > > > > and so the directory under amlogic/: > > > > > > drivers/media/platform/amlogic/ > > > └── meson-ge2d > > > > > > Now, if Allinner decides to release a new platforms named after another star, > > > let's say, "Vega" and "Rigel", it would be just a matter of adding > > > "vega/" and "rigel/" directories under allwinner. No need to touch > > > media/platform/Kconfig and media/platform/Makefile. Everything will happen > > > on much more smaller vendor-specific Kconfig/Makefile. > > > > But the day Allwinner changes its name to Noloser, we'll have a similar > > problem. > > Not really. It will still be a single directory per vendor (whatever > name it is). > > > Thnk about Freescale vs. NXP, or Altera bought by Intel. > > Yeah, when some drivers move from one vendor to another one that > already exists there, we should probably move the directories, in > order to keep things well organized. I'm not sure we should. We still have arch/arm64/boot/dts/freescale/ for instance. We can answer that question later though, when confronted with the situation. > The worse case scenario is really if, let's say, TI decides to sell their > omap architecture to NXP, keeping the rest. On such case, the best would > be to move platform/ti/omap* to the directory of its newer owner. > > That's said, when things like that happen, there are usually a change > at MAINTAINERS, as e-mails, mailing lists and contact people will > likely change. So, this will very likely generate patches anyway. > > > No > > naming scheme is totally future-proof. If the accepted standard through > > the kernel is to use sunxi to refer to Allwinner SoCs, I don't think > > it's a bit idea to go with that. > > I'm not too concerned about the name here, but rather about the > process. Needing to do reorg like this is painful, as it causes > all pending work to fail merging against upstream, requiring rebases. > So, we should avoid needing to re-do it by trying our best to avoid > the need of another global change like that in the future. Most of the pain we'll go through in the immediate future comes from the fact that we never really cared about this. I think renames (of vendors or product lines) will be infrequent enough that picking sunxi for Allwinner drivers wouldn't be an issue. There's a similar think with Renesas, which had an SH product line and then moved to ARM, creating R-Mobile and R-Car (among other product liens). That's why we still have drivers/dma/sh/ for Renesas DMA drivers. > By organizing entries per vendor, while we may need to do puntual > per-vendor adjustments when they rename and change IP with other > vendors, the global platform Kconfig/Make will contain a single entry > per vendor. I can't foresee any need to change this in the future, > if we take care of keeping the entries there properly sorted. > > With regards to naming the per-vendor directory, while I do prefer to have > the directories named after the vendor, and not after a vendor's nick > name, It should also be ok to use a vendor's nick name, provided that > such name is meant to be used by all their current and future IP. > > Not sure if "sunxi" is actually a vendor's nick name. It sounds > much likely that it is, instead, a brand name that covers their > current media-related SoC. > > Can someone from the vendor shed a light on it? Maybe we can let the Allwinner upstream community tell us what name to pick ? I'm sure they know better than us :-) -- Regards, Laurent Pinchart 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 8278BC433F5 for ; Tue, 15 Mar 2022 08:36:41 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc: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=U/qPWLpPeIccDHoC6BCM8u4j7D3x3+QRnm/aY7baZ2U=; b=jF6UEOh8zib3q3 lva+/FbcauIiRYDzH5F2w0Ta5KThSZC/Mn4yrLAJs+FAW3jX0cLZC/j25e/SI9nQqN+FzEBakW20i ki/rvpJzVJNkFPjPk1Abxq9zRnKZ9sTfWyaIgtjVGe110t7nd74sZRH7MquM9det5IX4mHrnzkpYR Hf2QVPkWRjNQBHUWMxZp6JsD30t+sWZOxtKyeh1lQlXTOhRpB2ssKHj1VLWeX9lyforYAiwGTJ3vG b9U0AXHgC6O2Yl87FZEkqgqCvhpiMoqnoJoLpA08SZNoAYqRhBb9nVmEhEPHSLfACs/3G/kb8rpaU IGLaq7VnRfOxucN1ZGVQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nU2eN-008ILr-T2; Tue, 15 Mar 2022 08:35:28 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nU2eK-008IKa-Oo for linux-arm-kernel@lists.infradead.org; Tue, 15 Mar 2022 08:35:26 +0000 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 229ED51C; Tue, 15 Mar 2022 09:35:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1647333322; bh=2B1abWspufHcU+WluNkys+YV9mGWKvBYO+9++Bkm3NY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pQshLCVv7y+XpgxHB+4/J8hdZXKj/9Ux7RpMusc18nIvYIbx2SbrZICKrYwDpbHz2 3g0l4lmMYeH+H+To1GCyd/U+HiiDvpKSaPoogxtT+pp5PE3d3V5w8Hg4JYnARcVw+p 6/kz7vCp33yNnqmwiapggEtyAhpU0Mv4ZJSbfB8o= Date: Tue, 15 Mar 2022 10:35:05 +0200 From: Laurent Pinchart To: Mauro Carvalho Chehab Cc: Jernej =?utf-8?Q?=C5=A0krabec?= , Niklas =?utf-8?Q?S=C3=B6derlund?= , Cai Huoqing , Chen-Yu Tsai , Dinghao Liu , Dmitry Osipenko , Eugen Hristev , Ezequiel Garcia , Hans Verkuil , Jacopo Mondi , Jia-Ju Bai , Jonathan Cameron , Maxime Ripard , Mikhail Rudenko , Ming Qian , Ondrej Jirman , Robert Foss , Sakari Ailus , Tomi Valkeinen , Yong Deng , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-sunxi@lists.linux.dev Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/ Message-ID: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> <20220315092736.7e805c81@coco.lan> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220315092736.7e805c81@coco.lan> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220315_013524_991853_C21662F9 X-CRM114-Status: GOOD ( 44.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBNYXIgMTUsIDIwMjIgYXQgMDk6Mjc6MzZBTSArMDEwMCwgTWF1cm8gQ2FydmFsaG8g Q2hlaGFiIHdyb3RlOgo+IEVtIFR1ZSwgMTUgTWFyIDIwMjIgMDg6NTQ6MjUgKzAyMDAKPiBMYXVy ZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+IGVzY3JldmV1 Ogo+IAo+ID4gSGkgTWF1cm8sCj4gPiAKPiA+IE9uIFR1ZSwgTWFyIDE1LCAyMDIyIGF0IDA2OjQw OjA1QU0gKzAxMDAsIE1hdXJvIENhcnZhbGhvIENoZWhhYiB3cm90ZToKPiA+ID4gRW0gTW9uLCAx NCBNYXIgMjAyMiAxODoyMjoyMCArMDEwMCBKZXJuZWogxaBrcmFiZWMgZXNjcmV2ZXU6Cj4gPiA+ ICAgCj4gPiA+ID4gRG5lIHBvbmVkZWxqZWssIDE0LiBtYXJlYyAyMDIyIG9iIDE3OjM0OjQyIENF VCBqZSBNYXVybyBDYXJ2YWxobyBDaGVoYWIgCj4gPiA+ID4gbmFwaXNhbChhKTogIAo+ID4gPiA+ ID4gQXMgdGhlIGVuZCBnb2FsIGlzIHRvIGhhdmUgcGxhdGZvcm0gZHJpdmVycyBzcGxpdCBieSB2 ZW5kb3IsCj4gPiA+ID4gPiByZW5hbWUgc3VueGkvIHRvIGFsbHdpbm5lci8uCj4gPiA+ID4gPiAK PiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYkBr ZXJuZWwub3JnPiAgICAKPiA+ID4gPiAKPiA+ID4gPiBJIHdvdWxkIHJhdGhlciBub3QgZG8gdGhh dC4gRXZlcnl0aGluZyByZWxhdGVkIHRvIEFsbHdpbm5lciBpcyBjYWxsZWQgc3VueGksIAo+ID4g PiA+IGFsYmVpdCB0aGVyZSBhcmUgYSBmZXcgb3V0bGllcnMuIFRoaXMgaXMgc2ltaWxhciB0byBB bWxvZ2ljL21lc29uIHNpdHVhdGlvbi4gIAo+ID4gPiAKPiA+ID4gVGhlIHJhdGlvbmFsZSBvZiBo YXZpbmcgb25lIGRpcmVjdG9yeSBwZXIgbWFudWZhY3R1cmVyIGlzIHRoYXQsIGlmIGRyaXZlcnMK PiA+ID4gZm9yIG5ld2VyIHBsYXRmb3JtcyB3aXRoIGRpZmZlcmVudCBuYW1lcyBmcm9tIHRoZSBz YW1lIG1hbnVmYWN0dXJlcnMgYXJlIAo+ID4gPiBhZGRlZCwgdGhvc2Ugd2lsbCBzdGlsbCBmaXQg dW5kZXIgYWxsd2lubmVyLyBhbmQgYW1sb2dpYy8uCj4gPiA+IAo+ID4gPiBUaGUgS2NvbmZpZyBu YW1lcyBmb3Igc3VueGkgYW5kIG1lc29uIGRpZG4ndCBjaGFuZ2UsIG5vciB0aGUgZHJpdmVyJ3Mg bmFtZS4gCj4gPiA+IEFsc28sIHRoZSBkaXJlY3RvcmllcyB1bmRlciBhbGx3aW5uZXIgcHJlc2Vy dmUgc3VuPHg+aSBuYW1lIG9uIHRoZW06Cj4gPiA+IAo+ID4gPiAJZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9hbGx3aW5uZXIvCj4gPiA+IAnilJzilIDilIAgc3VuNGktY3NpCj4gPiA+IAnilJzilIDi lIAgc3VuNmktY3NpCj4gPiA+IAnilJzilIDilIAgc3VuOGktZGkKPiA+ID4gCeKUlOKUgOKUgCBz dW44aS1yb3RhdGUKPiA+ID4gCj4gPiA+IGFuZCBzbyB0aGUgZGlyZWN0b3J5IHVuZGVyIGFtbG9n aWMvOgo+ID4gPiAKPiA+ID4gCWRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy8KPiA+ID4g CeKUlOKUgOKUgCBtZXNvbi1nZTJkCj4gPiA+IAo+ID4gPiBOb3csIGlmIEFsbGlubmVyIGRlY2lk ZXMgdG8gcmVsZWFzZSBhIG5ldyBwbGF0Zm9ybXMgbmFtZWQgYWZ0ZXIgYW5vdGhlciBzdGFyLAo+ ID4gPiBsZXQncyBzYXksICJWZWdhIiBhbmQgIlJpZ2VsIiwgaXQgd291bGQgYmUganVzdCBhIG1h dHRlciBvZiBhZGRpbmcgCj4gPiA+ICJ2ZWdhLyIgYW5kICJyaWdlbC8iIGRpcmVjdG9yaWVzIHVu ZGVyIGFsbHdpbm5lci4gTm8gbmVlZCB0byB0b3VjaAo+ID4gPiBtZWRpYS9wbGF0Zm9ybS9LY29u ZmlnIGFuZCBtZWRpYS9wbGF0Zm9ybS9NYWtlZmlsZS4gRXZlcnl0aGluZyB3aWxsIGhhcHBlbgo+ ID4gPiBvbiBtdWNoIG1vcmUgc21hbGxlciB2ZW5kb3Itc3BlY2lmaWMgS2NvbmZpZy9NYWtlZmls ZS4gIAo+ID4gCj4gPiBCdXQgdGhlIGRheSBBbGx3aW5uZXIgY2hhbmdlcyBpdHMgbmFtZSB0byBO b2xvc2VyLCB3ZSdsbCBoYXZlIGEgc2ltaWxhcgo+ID4gcHJvYmxlbS4gCj4gCj4gTm90IHJlYWxs eS4gSXQgd2lsbCBzdGlsbCBiZSBhIHNpbmdsZSBkaXJlY3RvcnkgcGVyIHZlbmRvciAod2hhdGV2 ZXIKPiBuYW1lIGl0IGlzKS4KPiAKPiA+IFRobmsgYWJvdXQgRnJlZXNjYWxlIHZzLiBOWFAsIG9y IEFsdGVyYSBib3VnaHQgYnkgSW50ZWwuCj4gCj4gWWVhaCwgd2hlbiBzb21lIGRyaXZlcnMgbW92 ZSBmcm9tIG9uZSB2ZW5kb3IgdG8gYW5vdGhlciBvbmUgdGhhdAo+IGFscmVhZHkgZXhpc3RzIHRo ZXJlLCB3ZSBzaG91bGQgcHJvYmFibHkgbW92ZSB0aGUgZGlyZWN0b3JpZXMsIGluCj4gb3JkZXIg dG8ga2VlcCB0aGluZ3Mgd2VsbCBvcmdhbml6ZWQuCgpJJ20gbm90IHN1cmUgd2Ugc2hvdWxkLiBX ZSBzdGlsbCBoYXZlIGFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlLyBmb3IKaW5zdGFuY2Uu IFdlIGNhbiBhbnN3ZXIgdGhhdCBxdWVzdGlvbiBsYXRlciB0aG91Z2gsIHdoZW4gY29uZnJvbnRl ZCB3aXRoCnRoZSBzaXR1YXRpb24uCgo+IFRoZSB3b3JzZSBjYXNlIHNjZW5hcmlvIGlzIHJlYWxs eSBpZiwgbGV0J3Mgc2F5LCBUSSBkZWNpZGVzIHRvIHNlbGwgdGhlaXIKPiBvbWFwIGFyY2hpdGVj dHVyZSB0byBOWFAsIGtlZXBpbmcgdGhlIHJlc3QuIE9uIHN1Y2ggY2FzZSwgdGhlIGJlc3Qgd291 bGQKPiBiZSB0byBtb3ZlIHBsYXRmb3JtL3RpL29tYXAqIHRvIHRoZSBkaXJlY3Rvcnkgb2YgaXRz IG5ld2VyIG93bmVyLgo+IAo+IFRoYXQncyBzYWlkLCB3aGVuIHRoaW5ncyBsaWtlIHRoYXQgaGFw cGVuLCB0aGVyZSBhcmUgdXN1YWxseSBhIGNoYW5nZQo+IGF0IE1BSU5UQUlORVJTLCBhcyBlLW1h aWxzLCBtYWlsaW5nIGxpc3RzIGFuZCBjb250YWN0IHBlb3BsZSB3aWxsCj4gbGlrZWx5IGNoYW5n ZS4gU28sIHRoaXMgd2lsbCB2ZXJ5IGxpa2VseSBnZW5lcmF0ZSBwYXRjaGVzIGFueXdheS4KPiAK PiA+IE5vCj4gPiBuYW1pbmcgc2NoZW1lIGlzIHRvdGFsbHkgZnV0dXJlLXByb29mLiBJZiB0aGUg YWNjZXB0ZWQgc3RhbmRhcmQgdGhyb3VnaAo+ID4gdGhlIGtlcm5lbCBpcyB0byB1c2Ugc3VueGkg dG8gcmVmZXIgdG8gQWxsd2lubmVyIFNvQ3MsIEkgZG9uJ3QgdGhpbmsKPiA+IGl0J3MgYSBiaXQg aWRlYSB0byBnbyB3aXRoIHRoYXQuCj4gCj4gSSdtIG5vdCB0b28gY29uY2VybmVkIGFib3V0IHRo ZSBuYW1lIGhlcmUsIGJ1dCByYXRoZXIgYWJvdXQgdGhlCj4gcHJvY2Vzcy4gTmVlZGluZyB0byBk byByZW9yZyBsaWtlIHRoaXMgaXMgcGFpbmZ1bCwgYXMgaXQgY2F1c2VzIAo+IGFsbCBwZW5kaW5n IHdvcmsgdG8gZmFpbCBtZXJnaW5nIGFnYWluc3QgdXBzdHJlYW0sIHJlcXVpcmluZyByZWJhc2Vz Lgo+IFNvLCB3ZSBzaG91bGQgYXZvaWQgbmVlZGluZyB0byByZS1kbyBpdCBieSB0cnlpbmcgb3Vy IGJlc3QgdG8gYXZvaWQKPiB0aGUgbmVlZCBvZiBhbm90aGVyIGdsb2JhbCBjaGFuZ2UgbGlrZSB0 aGF0IGluIHRoZSBmdXR1cmUuCgpNb3N0IG9mIHRoZSBwYWluIHdlJ2xsIGdvIHRocm91Z2ggaW4g dGhlIGltbWVkaWF0ZSBmdXR1cmUgY29tZXMgZnJvbSB0aGUKZmFjdCB0aGF0IHdlIG5ldmVyIHJl YWxseSBjYXJlZCBhYm91dCB0aGlzLiBJIHRoaW5rIHJlbmFtZXMgKG9mIHZlbmRvcnMKb3IgcHJv ZHVjdCBsaW5lcykgd2lsbCBiZSBpbmZyZXF1ZW50IGVub3VnaCB0aGF0IHBpY2tpbmcgc3VueGkg Zm9yCkFsbHdpbm5lciBkcml2ZXJzIHdvdWxkbid0IGJlIGFuIGlzc3VlLgoKVGhlcmUncyBhIHNp bWlsYXIgdGhpbmsgd2l0aCBSZW5lc2FzLCB3aGljaCBoYWQgYW4gU0ggcHJvZHVjdCBsaW5lIGFu ZAp0aGVuIG1vdmVkIHRvIEFSTSwgY3JlYXRpbmcgUi1Nb2JpbGUgYW5kIFItQ2FyIChhbW9uZyBv dGhlciBwcm9kdWN0CmxpZW5zKS4gVGhhdCdzIHdoeSB3ZSBzdGlsbCBoYXZlIGRyaXZlcnMvZG1h L3NoLyBmb3IgUmVuZXNhcyBETUEKZHJpdmVycy4KCj4gQnkgb3JnYW5pemluZyBlbnRyaWVzIHBl ciB2ZW5kb3IsIHdoaWxlIHdlIG1heSBuZWVkIHRvIGRvIHB1bnR1YWwKPiBwZXItdmVuZG9yIGFk anVzdG1lbnRzIHdoZW4gdGhleSByZW5hbWUgYW5kIGNoYW5nZSBJUCB3aXRoIG90aGVyCj4gdmVu ZG9ycywgdGhlIGdsb2JhbCBwbGF0Zm9ybSBLY29uZmlnL01ha2Ugd2lsbCBjb250YWluIGEgc2lu Z2xlIGVudHJ5Cj4gcGVyIHZlbmRvci4gSSBjYW4ndCBmb3Jlc2VlIGFueSBuZWVkIHRvIGNoYW5n ZSB0aGlzIGluIHRoZSBmdXR1cmUsCj4gaWYgd2UgdGFrZSBjYXJlIG9mIGtlZXBpbmcgdGhlIGVu dHJpZXMgdGhlcmUgcHJvcGVybHkgc29ydGVkLgo+IAo+IFdpdGggcmVnYXJkcyB0byBuYW1pbmcg dGhlIHBlci12ZW5kb3IgZGlyZWN0b3J5LCB3aGlsZSBJIGRvIHByZWZlciB0byBoYXZlCj4gdGhl ICBkaXJlY3RvcmllcyBuYW1lZCBhZnRlciB0aGUgdmVuZG9yLCBhbmQgbm90IGFmdGVyIGEgdmVu ZG9yJ3MgbmljayAKPiBuYW1lLCBJdCBzaG91bGQgYWxzbyBiZSBvayB0byB1c2UgYSB2ZW5kb3In cyBuaWNrIG5hbWUsIHByb3ZpZGVkIHRoYXQgCj4gc3VjaCBuYW1lIGlzIG1lYW50IHRvIGJlIHVz ZWQgYnkgYWxsIHRoZWlyIGN1cnJlbnQgYW5kIGZ1dHVyZSBJUC4KPiAKPiBOb3Qgc3VyZSBpZiAi c3VueGkiIGlzIGFjdHVhbGx5IGEgdmVuZG9yJ3MgbmljayBuYW1lLiBJdCBzb3VuZHMKPiBtdWNo IGxpa2VseSB0aGF0IGl0IGlzLCBpbnN0ZWFkLCBhIGJyYW5kIG5hbWUgdGhhdCBjb3ZlcnMgdGhl aXIgCj4gY3VycmVudCBtZWRpYS1yZWxhdGVkIFNvQy4gCj4gCj4gQ2FuIHNvbWVvbmUgZnJvbSB0 aGUgdmVuZG9yIHNoZWQgYSBsaWdodCBvbiBpdD8KCk1heWJlIHdlIGNhbiBsZXQgdGhlIEFsbHdp bm5lciB1cHN0cmVhbSBjb21tdW5pdHkgdGVsbCB1cyB3aGF0IG5hbWUgdG8KcGljayA/IEknbSBz dXJlIHRoZXkga25vdyBiZXR0ZXIgdGhhbiB1cyA6LSkKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQ aW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=