From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 C17601B75 for ; Tue, 15 Mar 2022 08:27:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6449EC340E8; Tue, 15 Mar 2022 08:27:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647332866; bh=PzaSS6OJhjKG8MRjLmHkIO4J1pFecT5G3HQMXrvWXnA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=DOyVbRt97sAMMgd6Znohcz4a+IAm1dZrKjPIezbNGUUKt94/f2aIastNcy1e0xq4W cuT6WhU3QvONJZe58I186sZiLAkHxE/xdAGX0tuwIrkMpwFObSPxAD+bZmO4XIorfU WyEPxPgX6/yUY5smIhhgrDJfrnm38wUneSIKojIDkh+V3pUsY8eu8EDIC5BHAs3NFe PVgwSJHOCf/qrLlI+YPEyIMrG2R0/EirX/2Xx5gmOPuMlk60nBULpEaxQKznaoO03B QhoH8tboq0FC4dy+qID/xBHIbblLWSXijN9wOeNzQ5CueQe3YjK+B0PDf2mdV4lGHb sjwX8X0sSGjrg== Date: Tue, 15 Mar 2022 09:27:36 +0100 From: Mauro Carvalho Chehab To: Laurent Pinchart Cc: Jernej =?UTF-8?B?xaBrcmFiZWM=?= , Niklas =?UTF-8?B?U8O2ZGVybHVuZA==?= , 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: <20220315092736.7e805c81@coco.lan> In-Reply-To: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.31; x86_64-redhat-linux-gnu) 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-Transfer-Encoding: quoted-printable Em Tue, 15 Mar 2022 08:54:25 +0200 Laurent Pinchart escreveu: > Hi Mauro, >=20 > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote: > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej =C5=A0krabec escreveu: > > =20 > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho Cheh= ab=20 > > > napisal(a): =20 > > > > As the end goal is to have platform drivers split by vendor, > > > > rename sunxi/ to allwinner/. > > > >=20 > > > > Signed-off-by: Mauro Carvalho Chehab =20 > > >=20 > > > I would rather not do that. Everything related to Allwinner is called= sunxi,=20 > > > albeit there are a few outliers. This is similar to Amlogic/meson sit= uation. =20 > >=20 > > The rationale of having one directory per manufacturer is that, if driv= ers > > for newer platforms with different names from the same manufacturers ar= e=20 > > added, those will still fit under allwinner/ and amlogic/. > >=20 > > The Kconfig names for sunxi and meson didn't change, nor the driver's n= ame.=20 > > Also, the directories under allwinner preserve suni name on them: > >=20 > > drivers/media/platform/allwinner/ > > =E2=94=9C=E2=94=80=E2=94=80 sun4i-csi > > =E2=94=9C=E2=94=80=E2=94=80 sun6i-csi > > =E2=94=9C=E2=94=80=E2=94=80 sun8i-di > > =E2=94=94=E2=94=80=E2=94=80 sun8i-rotate > >=20 > > and so the directory under amlogic/: > >=20 > > drivers/media/platform/amlogic/ > > =E2=94=94=E2=94=80=E2=94=80 meson-ge2d > >=20 > > 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=20 > > "vega/" and "rigel/" directories under allwinner. No need to touch > > media/platform/Kconfig and media/platform/Makefile. Everything will hap= pen > > on much more smaller vendor-specific Kconfig/Makefile. =20 >=20 > But the day Allwinner changes its name to Noloser, we'll have a similar > problem.=20 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. 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=20 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. 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=20 name, It should also be ok to use a vendor's nick name, provided that=20 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=20 current media-related SoC.=20 Can someone from the vendor shed a light on it? Thanks, Mauro 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 232C6C433F5 for ; Tue, 15 Mar 2022 08:29:56 +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: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=C9UEffW9UM/Bz9SKxA7bHXYUBaxkY4QxP/gHU2KsydY=; b=Q+9kIzZW9wMIod kvf5eQfPHSL6djnOviGdcIucTljVyLGbrKQWZSVhgPmSJueqIYQggyy0Sm63n8cP4tdSIpb0c2lqc TpdjDCj4eDm+mQTJ25nvXC6UTL4XhXEr3VA24v1TveMwgT8uQRsVbwDTXSb3ig1VEGK/JGCbPl+nM iyfD7mAG2MIwd9+P2BQjl8IVuIAIYluxTVS0q8z4CArSbjLB5B82fEUX9EIn+HfmBBJOkp/p/z53R T3zIPC23rUtCwB3BrKJB7RqUvUiHwwtV1W6OmFg2HRkgJRrQpc7Vl8ZIQDIWkrIGo4DxFHzpXOLUp NSP9nOZyD/j/dpeetsPA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nU2X3-008GSY-4X; Tue, 15 Mar 2022 08:27:53 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nU2Wy-008GRS-GS for linux-arm-kernel@lists.infradead.org; Tue, 15 Mar 2022 08:27:50 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 169BF614A9; Tue, 15 Mar 2022 08:27:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6449EC340E8; Tue, 15 Mar 2022 08:27:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647332866; bh=PzaSS6OJhjKG8MRjLmHkIO4J1pFecT5G3HQMXrvWXnA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=DOyVbRt97sAMMgd6Znohcz4a+IAm1dZrKjPIezbNGUUKt94/f2aIastNcy1e0xq4W cuT6WhU3QvONJZe58I186sZiLAkHxE/xdAGX0tuwIrkMpwFObSPxAD+bZmO4XIorfU WyEPxPgX6/yUY5smIhhgrDJfrnm38wUneSIKojIDkh+V3pUsY8eu8EDIC5BHAs3NFe PVgwSJHOCf/qrLlI+YPEyIMrG2R0/EirX/2Xx5gmOPuMlk60nBULpEaxQKznaoO03B QhoH8tboq0FC4dy+qID/xBHIbblLWSXijN9wOeNzQ5CueQe3YjK+B0PDf2mdV4lGHb sjwX8X0sSGjrg== Date: Tue, 15 Mar 2022 09:27:36 +0100 From: Mauro Carvalho Chehab To: Laurent Pinchart Cc: Jernej =?UTF-8?B?xaBrcmFiZWM=?= , Niklas =?UTF-8?B?U8O2ZGVybHVuZA==?= , 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: <20220315092736.7e805c81@coco.lan> In-Reply-To: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.31; 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-20220315_012748_662753_20D4972C X-CRM114-Status: GOOD ( 33.55 ) 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 RW0gVHVlLCAxNSBNYXIgMjAyMiAwODo1NDoyNSArMDIwMApMYXVyZW50IFBpbmNoYXJ0IDxsYXVy ZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+IGVzY3JldmV1OgoKPiBIaSBNYXVybywKPiAK PiBPbiBUdWUsIE1hciAxNSwgMjAyMiBhdCAwNjo0MDowNUFNICswMTAwLCBNYXVybyBDYXJ2YWxo byBDaGVoYWIgd3JvdGU6Cj4gPiBFbSBNb24sIDE0IE1hciAyMDIyIDE4OjIyOjIwICswMTAwIEpl cm5laiDFoGtyYWJlYyBlc2NyZXZldToKPiA+ICAgCj4gPiA+IERuZSBwb25lZGVsamVrLCAxNC4g bWFyZWMgMjAyMiBvYiAxNzozNDo0MiBDRVQgamUgTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIAo+ID4g PiBuYXBpc2FsKGEpOiAgCj4gPiA+ID4gQXMgdGhlIGVuZCBnb2FsIGlzIHRvIGhhdmUgcGxhdGZv cm0gZHJpdmVycyBzcGxpdCBieSB2ZW5kb3IsCj4gPiA+ID4gcmVuYW1lIHN1bnhpLyB0byBhbGx3 aW5uZXIvLgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hdXJvIENhcnZhbGhvIENo ZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPiAgICAKPiA+ID4gCj4gPiA+IEkgd291bGQgcmF0aGVy IG5vdCBkbyB0aGF0LiBFdmVyeXRoaW5nIHJlbGF0ZWQgdG8gQWxsd2lubmVyIGlzIGNhbGxlZCBz dW54aSwgCj4gPiA+IGFsYmVpdCB0aGVyZSBhcmUgYSBmZXcgb3V0bGllcnMuIFRoaXMgaXMgc2lt aWxhciB0byBBbWxvZ2ljL21lc29uIHNpdHVhdGlvbi4gIAo+ID4gCj4gPiBUaGUgcmF0aW9uYWxl IG9mIGhhdmluZyBvbmUgZGlyZWN0b3J5IHBlciBtYW51ZmFjdHVyZXIgaXMgdGhhdCwgaWYgZHJp dmVycwo+ID4gZm9yIG5ld2VyIHBsYXRmb3JtcyB3aXRoIGRpZmZlcmVudCBuYW1lcyBmcm9tIHRo ZSBzYW1lIG1hbnVmYWN0dXJlcnMgYXJlIAo+ID4gYWRkZWQsIHRob3NlIHdpbGwgc3RpbGwgZml0 IHVuZGVyIGFsbHdpbm5lci8gYW5kIGFtbG9naWMvLgo+ID4gCj4gPiBUaGUgS2NvbmZpZyBuYW1l cyBmb3Igc3VueGkgYW5kIG1lc29uIGRpZG4ndCBjaGFuZ2UsIG5vciB0aGUgZHJpdmVyJ3MgbmFt ZS4gCj4gPiBBbHNvLCB0aGUgZGlyZWN0b3JpZXMgdW5kZXIgYWxsd2lubmVyIHByZXNlcnZlIHN1 bjx4PmkgbmFtZSBvbiB0aGVtOgo+ID4gCj4gPiAJZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbGx3 aW5uZXIvCj4gPiAJ4pSc4pSA4pSAIHN1bjRpLWNzaQo+ID4gCeKUnOKUgOKUgCBzdW42aS1jc2kK PiA+IAnilJzilIDilIAgc3VuOGktZGkKPiA+IAnilJTilIDilIAgc3VuOGktcm90YXRlCj4gPiAK PiA+IGFuZCBzbyB0aGUgZGlyZWN0b3J5IHVuZGVyIGFtbG9naWMvOgo+ID4gCj4gPiAJZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljLwo+ID4gCeKUlOKUgOKUgCBtZXNvbi1nZTJkCj4gPiAK PiA+IE5vdywgaWYgQWxsaW5uZXIgZGVjaWRlcyB0byByZWxlYXNlIGEgbmV3IHBsYXRmb3JtcyBu YW1lZCBhZnRlciBhbm90aGVyIHN0YXIsCj4gPiBsZXQncyBzYXksICJWZWdhIiBhbmQgIlJpZ2Vs IiwgaXQgd291bGQgYmUganVzdCBhIG1hdHRlciBvZiBhZGRpbmcgCj4gPiAidmVnYS8iIGFuZCAi cmlnZWwvIiBkaXJlY3RvcmllcyB1bmRlciBhbGx3aW5uZXIuIE5vIG5lZWQgdG8gdG91Y2gKPiA+ IG1lZGlhL3BsYXRmb3JtL0tjb25maWcgYW5kIG1lZGlhL3BsYXRmb3JtL01ha2VmaWxlLiBFdmVy eXRoaW5nIHdpbGwgaGFwcGVuCj4gPiBvbiBtdWNoIG1vcmUgc21hbGxlciB2ZW5kb3Itc3BlY2lm aWMgS2NvbmZpZy9NYWtlZmlsZS4gIAo+IAo+IEJ1dCB0aGUgZGF5IEFsbHdpbm5lciBjaGFuZ2Vz IGl0cyBuYW1lIHRvIE5vbG9zZXIsIHdlJ2xsIGhhdmUgYSBzaW1pbGFyCj4gcHJvYmxlbS4gCgpO b3QgcmVhbGx5LiBJdCB3aWxsIHN0aWxsIGJlIGEgc2luZ2xlIGRpcmVjdG9yeSBwZXIgdmVuZG9y ICh3aGF0ZXZlcgpuYW1lIGl0IGlzKS4KCj4gVGhuayBhYm91dCBGcmVlc2NhbGUgdnMuIE5YUCwg b3IgQWx0ZXJhIGJvdWdodCBieSBJbnRlbC4KClllYWgsIHdoZW4gc29tZSBkcml2ZXJzIG1vdmUg ZnJvbSBvbmUgdmVuZG9yIHRvIGFub3RoZXIgb25lIHRoYXQKYWxyZWFkeSBleGlzdHMgdGhlcmUs IHdlIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRoZSBkaXJlY3RvcmllcywgaW4Kb3JkZXIgdG8ga2Vl cCB0aGluZ3Mgd2VsbCBvcmdhbml6ZWQuCgpUaGUgd29yc2UgY2FzZSBzY2VuYXJpbyBpcyByZWFs bHkgaWYsIGxldCdzIHNheSwgVEkgZGVjaWRlcyB0byBzZWxsIHRoZWlyCm9tYXAgYXJjaGl0ZWN0 dXJlIHRvIE5YUCwga2VlcGluZyB0aGUgcmVzdC4gT24gc3VjaCBjYXNlLCB0aGUgYmVzdCB3b3Vs ZApiZSB0byBtb3ZlIHBsYXRmb3JtL3RpL29tYXAqIHRvIHRoZSBkaXJlY3Rvcnkgb2YgaXRzIG5l d2VyIG93bmVyLgoKVGhhdCdzIHNhaWQsIHdoZW4gdGhpbmdzIGxpa2UgdGhhdCBoYXBwZW4sIHRo ZXJlIGFyZSB1c3VhbGx5IGEgY2hhbmdlCmF0IE1BSU5UQUlORVJTLCBhcyBlLW1haWxzLCBtYWls aW5nIGxpc3RzIGFuZCBjb250YWN0IHBlb3BsZSB3aWxsCmxpa2VseSBjaGFuZ2UuIFNvLCB0aGlz IHdpbGwgdmVyeSBsaWtlbHkgZ2VuZXJhdGUgcGF0Y2hlcyBhbnl3YXkuCgo+IE5vCj4gbmFtaW5n IHNjaGVtZSBpcyB0b3RhbGx5IGZ1dHVyZS1wcm9vZi4gSWYgdGhlIGFjY2VwdGVkIHN0YW5kYXJk IHRocm91Z2gKPiB0aGUga2VybmVsIGlzIHRvIHVzZSBzdW54aSB0byByZWZlciB0byBBbGx3aW5u ZXIgU29DcywgSSBkb24ndCB0aGluawo+IGl0J3MgYSBiaXQgaWRlYSB0byBnbyB3aXRoIHRoYXQu CgpJJ20gbm90IHRvbyBjb25jZXJuZWQgYWJvdXQgdGhlIG5hbWUgaGVyZSwgYnV0IHJhdGhlciBh Ym91dCB0aGUKcHJvY2Vzcy4gTmVlZGluZyB0byBkbyByZW9yZyBsaWtlIHRoaXMgaXMgcGFpbmZ1 bCwgYXMgaXQgY2F1c2VzIAphbGwgcGVuZGluZyB3b3JrIHRvIGZhaWwgbWVyZ2luZyBhZ2FpbnN0 IHVwc3RyZWFtLCByZXF1aXJpbmcgcmViYXNlcy4KU28sIHdlIHNob3VsZCBhdm9pZCBuZWVkaW5n IHRvIHJlLWRvIGl0IGJ5IHRyeWluZyBvdXIgYmVzdCB0byBhdm9pZAp0aGUgbmVlZCBvZiBhbm90 aGVyIGdsb2JhbCBjaGFuZ2UgbGlrZSB0aGF0IGluIHRoZSBmdXR1cmUuCgpCeSBvcmdhbml6aW5n IGVudHJpZXMgcGVyIHZlbmRvciwgd2hpbGUgd2UgbWF5IG5lZWQgdG8gZG8gcHVudHVhbApwZXIt dmVuZG9yIGFkanVzdG1lbnRzIHdoZW4gdGhleSByZW5hbWUgYW5kIGNoYW5nZSBJUCB3aXRoIG90 aGVyCnZlbmRvcnMsIHRoZSBnbG9iYWwgcGxhdGZvcm0gS2NvbmZpZy9NYWtlIHdpbGwgY29udGFp biBhIHNpbmdsZSBlbnRyeQpwZXIgdmVuZG9yLiBJIGNhbid0IGZvcmVzZWUgYW55IG5lZWQgdG8g Y2hhbmdlIHRoaXMgaW4gdGhlIGZ1dHVyZSwKaWYgd2UgdGFrZSBjYXJlIG9mIGtlZXBpbmcgdGhl IGVudHJpZXMgdGhlcmUgcHJvcGVybHkgc29ydGVkLgoKV2l0aCByZWdhcmRzIHRvIG5hbWluZyB0 aGUgcGVyLXZlbmRvciBkaXJlY3RvcnksIHdoaWxlIEkgZG8gcHJlZmVyIHRvIGhhdmUKdGhlICBk aXJlY3RvcmllcyBuYW1lZCBhZnRlciB0aGUgdmVuZG9yLCBhbmQgbm90IGFmdGVyIGEgdmVuZG9y J3MgbmljayAKbmFtZSwgSXQgc2hvdWxkIGFsc28gYmUgb2sgdG8gdXNlIGEgdmVuZG9yJ3Mgbmlj ayBuYW1lLCBwcm92aWRlZCB0aGF0IApzdWNoIG5hbWUgaXMgbWVhbnQgdG8gYmUgdXNlZCBieSBh bGwgdGhlaXIgY3VycmVudCBhbmQgZnV0dXJlIElQLgoKTm90IHN1cmUgaWYgInN1bnhpIiBpcyBh Y3R1YWxseSBhIHZlbmRvcidzIG5pY2sgbmFtZS4gSXQgc291bmRzCm11Y2ggbGlrZWx5IHRoYXQg aXQgaXMsIGluc3RlYWQsIGEgYnJhbmQgbmFtZSB0aGF0IGNvdmVycyB0aGVpciAKY3VycmVudCBt ZWRpYS1yZWxhdGVkIFNvQy4gCgpDYW4gc29tZW9uZSBmcm9tIHRoZSB2ZW5kb3Igc2hlZCBhIGxp Z2h0IG9uIGl0PwoKVGhhbmtzLApNYXVybwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=