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=-20.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 E9B63C433DB for ; Sun, 24 Jan 2021 20:52:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C4A4322CA2 for ; Sun, 24 Jan 2021 20:52:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726550AbhAXUwY (ORCPT ); Sun, 24 Jan 2021 15:52:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726535AbhAXUwP (ORCPT ); Sun, 24 Jan 2021 15:52:15 -0500 Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95CA0C061573 for ; Sun, 24 Jan 2021 12:51:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org ; s=ds202012; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rZu2N0bPbN0l5Ml3IhwAB/RSLO7PwqBP9V+cJaEHt6A=; b=EtGLctS+r80RcHPE9ZeG9ZRiV5 X7kUTYRyLFXlPHf5oaGpkMrWof3qQgnxqiknkb5TYNesrHA1GZWj3rvt80DNrr1nW3MVZw4INLZM5 j/ZThN0VFWy2EmZpoXiCr2p6tvSyzDosN48aifUppiL6W1AZJ66kzTl0StJxmyAhfT/rW4iIQoQAQ ATHdJnhP4rVX/im2AOP1viWmJQ26sjeENxo8H+JI3nVlyY2hUXqLuLYEd8CrCgaw2pNl1GK1rzUnE 6pqHQ+JQRt2O219gLaumNxrC88ohZ1ouVlP8WF33X5cxHXFHsrlak0wrV4gnJ6XK/KVxXUeDgYKkG 9xHulbJA==; Received: from [2a01:799:95f:4600:a14b:28a5:23ac:14a3] (port=59614) by smtp.domeneshop.no with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l3mLn-0002ur-Bu; Sun, 24 Jan 2021 21:51:11 +0100 Subject: Re: [PATCH v4 0/3] Generic USB Display driver To: Lubomir Rintel Cc: dri-devel@lists.freedesktop.org, linux-usb@vger.kernel.org, sam@ravnborg.org, peter@stuge.se, markus@raatikainen.cc, pontus.fuchs@gmail.com, hudson@trmm.net, th020394@gmail.com References: <20210120170033.38468-1-noralf@tronnes.org> <20210124183838.GA1873250@demiurge.local> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <70a91ae8-15eb-e8d8-1ed9-923b09106bfa@tronnes.org> Date: Sun, 24 Jan 2021 21:51:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <20210124183838.GA1873250@demiurge.local> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Den 24.01.2021 19.38, skrev Lubomir Rintel: > On Wed, Jan 20, 2021 at 06:00:30PM +0100, Noralf Trønnes wrote: >> Hi, >> >> A while back I had the idea to turn a Raspberry Pi Zero into a $5 >> USB to HDMI/SDTV/DSI/DPI display adapter. >> >> The reason for calling it 'Generic' is so anyone can make a USB >> display/adapter against this driver, all that's needed is to add a USB >> vid:pid. >> >> Unfortunately I've had some compounding health problems that have >> severally limited the time I can spend in front of a computer. For this >> reason I've decided to keep the gadget driver out-of-tree and focus on >> getting the host driver merged first. >> >> See the wiki[1] for more information and images for the Raspberry Pi >> Zero/4. >> >> One big change this time is that I've followed Peter Stuge's advice to >> not let DRM stuff leak into the USB protocol. This has made the protocol >> easier to understand just from reading the header file. >> >> Noralf. >> >> [1] https://github.com/notro/gud/wiki > > The patch set: > > Tested-by: Lubomir Rintel > > Works like a charm with this board [1], though it didn't impress the girls > as much as I hoped. Code here [2], picture here [3]. > I have wondered what color display resolution it is possible to drive over USB full speed. I can understand that your PoC wasn't that impressive since it doesn't use DMA to drive the SPI bus. The new $4 Raspberry Pi Pico that came out this week looks interesting as a USB interface board for tiny panels. It can drive DPI panels directly, has 2 cores @133MHz, 264K SRAM and USB full speed. Maybe lz4 decompression is even possible. Another good thing is that the board will be around for a long time. Thanks for testing, I have limited bandwith these days so I couldn't do a test on an MCU myself. Noralf. > [1] https://www.banggood.com/LILYGO-TTGO-T-Display-GD32-RISC-V-32-bit-Core-Minimal-Development-Board-1_14-IPS-p-1652870.html?rmmds=search&cur_warehouse=CN > [2] https://github.com/hackerspace/libopencm3-gf32v-examples/commit/7ef51b31b9 > [3] https://people.freedesktop.org/~lkundrak/lilygo.jpeg > > Had to apply a fix for the drm_connector_enum_list[] ommission I mentioned > elsewhere, and that I've now noticed you've noted previously. > > Take care > Lubo > >> >> >> Noralf Trønnes (3): >> drm/uapi: Add USB connector type >> drm/probe-helper: Check epoch counter in output_poll_execute() >> drm: Add Generic USB Display driver >> >> MAINTAINERS | 8 + >> drivers/gpu/drm/Kconfig | 2 + >> drivers/gpu/drm/Makefile | 1 + >> drivers/gpu/drm/drm_probe_helper.c | 7 +- >> drivers/gpu/drm/gud/Kconfig | 14 + >> drivers/gpu/drm/gud/Makefile | 4 + >> drivers/gpu/drm/gud/gud_connector.c | 722 ++++++++++++++++++++++++++++ >> drivers/gpu/drm/gud/gud_drv.c | 620 ++++++++++++++++++++++++ >> drivers/gpu/drm/gud/gud_internal.h | 148 ++++++ >> drivers/gpu/drm/gud/gud_pipe.c | 472 ++++++++++++++++++ >> include/drm/gud.h | 356 ++++++++++++++ >> include/uapi/drm/drm_mode.h | 1 + >> 12 files changed, 2354 insertions(+), 1 deletion(-) >> create mode 100644 drivers/gpu/drm/gud/Kconfig >> create mode 100644 drivers/gpu/drm/gud/Makefile >> create mode 100644 drivers/gpu/drm/gud/gud_connector.c >> create mode 100644 drivers/gpu/drm/gud/gud_drv.c >> create mode 100644 drivers/gpu/drm/gud/gud_internal.h >> create mode 100644 drivers/gpu/drm/gud/gud_pipe.c >> create mode 100644 include/drm/gud.h >> >> -- >> 2.23.0 >> > 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=-20.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 9DD39C433E0 for ; Sun, 24 Jan 2021 20:51:16 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 C310C22C7B for ; Sun, 24 Jan 2021 20:51:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C310C22C7B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=tronnes.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3CC5989CFA; Sun, 24 Jan 2021 20:51:15 +0000 (UTC) Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id D054D89CFA for ; Sun, 24 Jan 2021 20:51:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org ; s=ds202012; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rZu2N0bPbN0l5Ml3IhwAB/RSLO7PwqBP9V+cJaEHt6A=; b=EtGLctS+r80RcHPE9ZeG9ZRiV5 X7kUTYRyLFXlPHf5oaGpkMrWof3qQgnxqiknkb5TYNesrHA1GZWj3rvt80DNrr1nW3MVZw4INLZM5 j/ZThN0VFWy2EmZpoXiCr2p6tvSyzDosN48aifUppiL6W1AZJ66kzTl0StJxmyAhfT/rW4iIQoQAQ ATHdJnhP4rVX/im2AOP1viWmJQ26sjeENxo8H+JI3nVlyY2hUXqLuLYEd8CrCgaw2pNl1GK1rzUnE 6pqHQ+JQRt2O219gLaumNxrC88ohZ1ouVlP8WF33X5cxHXFHsrlak0wrV4gnJ6XK/KVxXUeDgYKkG 9xHulbJA==; Received: from [2a01:799:95f:4600:a14b:28a5:23ac:14a3] (port=59614) by smtp.domeneshop.no with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l3mLn-0002ur-Bu; Sun, 24 Jan 2021 21:51:11 +0100 Subject: Re: [PATCH v4 0/3] Generic USB Display driver To: Lubomir Rintel References: <20210120170033.38468-1-noralf@tronnes.org> <20210124183838.GA1873250@demiurge.local> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <70a91ae8-15eb-e8d8-1ed9-923b09106bfa@tronnes.org> Date: Sun, 24 Jan 2021 21:51:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <20210124183838.GA1873250@demiurge.local> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hudson@trmm.net, markus@raatikainen.cc, sam@ravnborg.org, linux-usb@vger.kernel.org, dri-devel@lists.freedesktop.org, th020394@gmail.com, pontus.fuchs@gmail.com, peter@stuge.se Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" CgpEZW4gMjQuMDEuMjAyMSAxOS4zOCwgc2tyZXYgTHVib21pciBSaW50ZWw6Cj4gT24gV2VkLCBK YW4gMjAsIDIwMjEgYXQgMDY6MDA6MzBQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVzIHdyb3RlOgo+ PiBIaSwKPj4KPj4gQSB3aGlsZSBiYWNrIEkgaGFkIHRoZSBpZGVhIHRvIHR1cm4gYSBSYXNwYmVy cnkgUGkgWmVybyBpbnRvIGEgJDUKPj4gVVNCIHRvIEhETUkvU0RUVi9EU0kvRFBJIGRpc3BsYXkg YWRhcHRlci4KPj4KPj4gVGhlIHJlYXNvbiBmb3IgY2FsbGluZyBpdCAnR2VuZXJpYycgaXMgc28g YW55b25lIGNhbiBtYWtlIGEgVVNCCj4+IGRpc3BsYXkvYWRhcHRlciBhZ2FpbnN0IHRoaXMgZHJp dmVyLCBhbGwgdGhhdCdzIG5lZWRlZCBpcyB0byBhZGQgYSBVU0IKPj4gdmlkOnBpZC4KPj4KPj4g VW5mb3J0dW5hdGVseSBJJ3ZlIGhhZCBzb21lIGNvbXBvdW5kaW5nIGhlYWx0aCBwcm9ibGVtcyB0 aGF0IGhhdmUKPj4gc2V2ZXJhbGx5IGxpbWl0ZWQgdGhlIHRpbWUgSSBjYW4gc3BlbmQgaW4gZnJv bnQgb2YgYSBjb21wdXRlci4gRm9yIHRoaXMKPj4gcmVhc29uIEkndmUgZGVjaWRlZCB0byBrZWVw IHRoZSBnYWRnZXQgZHJpdmVyIG91dC1vZi10cmVlIGFuZCBmb2N1cyBvbgo+PiBnZXR0aW5nIHRo ZSBob3N0IGRyaXZlciBtZXJnZWQgZmlyc3QuCj4+Cj4+IFNlZSB0aGUgd2lraVsxXSBmb3IgbW9y ZSBpbmZvcm1hdGlvbiBhbmQgaW1hZ2VzIGZvciB0aGUgUmFzcGJlcnJ5IFBpCj4+IFplcm8vNC4K Pj4KPj4gT25lIGJpZyBjaGFuZ2UgdGhpcyB0aW1lIGlzIHRoYXQgSSd2ZSBmb2xsb3dlZCBQZXRl ciBTdHVnZSdzIGFkdmljZSB0bwo+PiBub3QgbGV0IERSTSBzdHVmZiBsZWFrIGludG8gdGhlIFVT QiBwcm90b2NvbC4gVGhpcyBoYXMgbWFkZSB0aGUgcHJvdG9jb2wKPj4gZWFzaWVyIHRvIHVuZGVy c3RhbmQganVzdCBmcm9tIHJlYWRpbmcgdGhlIGhlYWRlciBmaWxlLgo+Pgo+PiBOb3JhbGYuCj4+ Cj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vbm90cm8vZ3VkL3dpa2kKPiAKPiBUaGUgcGF0Y2gg c2V0Ogo+IAo+IFRlc3RlZC1ieTogTHVib21pciBSaW50ZWwgPGxrdW5kcmFrQHYzLnNrPgo+IAo+ IFdvcmtzIGxpa2UgYSBjaGFybSB3aXRoIHRoaXMgYm9hcmQgWzFdLCB0aG91Z2ggaXQgZGlkbid0 IGltcHJlc3MgdGhlIGdpcmxzCj4gYXMgbXVjaCBhcyBJIGhvcGVkLiBDb2RlIGhlcmUgWzJdLCBw aWN0dXJlIGhlcmUgWzNdLgo+IAoKSSBoYXZlIHdvbmRlcmVkIHdoYXQgY29sb3IgZGlzcGxheSBy ZXNvbHV0aW9uIGl0IGlzIHBvc3NpYmxlIHRvIGRyaXZlCm92ZXIgVVNCIGZ1bGwgc3BlZWQuIEkg Y2FuIHVuZGVyc3RhbmQgdGhhdCB5b3VyIFBvQyB3YXNuJ3QgdGhhdAppbXByZXNzaXZlIHNpbmNl IGl0IGRvZXNuJ3QgdXNlIERNQSB0byBkcml2ZSB0aGUgU1BJIGJ1cy4KClRoZSBuZXcgJDQgUmFz cGJlcnJ5IFBpIFBpY28gdGhhdCBjYW1lIG91dCB0aGlzIHdlZWsgbG9va3MgaW50ZXJlc3RpbmcK YXMgYSBVU0IgaW50ZXJmYWNlIGJvYXJkIGZvciB0aW55IHBhbmVscy4gSXQgY2FuIGRyaXZlIERQ SSBwYW5lbHMKZGlyZWN0bHksIGhhcyAyIGNvcmVzIEAxMzNNSHosIDI2NEsgU1JBTSBhbmQgVVNC IGZ1bGwgc3BlZWQuIE1heWJlIGx6NApkZWNvbXByZXNzaW9uIGlzIGV2ZW4gcG9zc2libGUuIEFu b3RoZXIgZ29vZCB0aGluZyBpcyB0aGF0IHRoZSBib2FyZAp3aWxsIGJlIGFyb3VuZCBmb3IgYSBs b25nIHRpbWUuCgpUaGFua3MgZm9yIHRlc3RpbmcsIEkgaGF2ZSBsaW1pdGVkIGJhbmR3aXRoIHRo ZXNlIGRheXMgc28gSSBjb3VsZG4ndCBkbwphIHRlc3Qgb24gYW4gTUNVIG15c2VsZi4KCk5vcmFs Zi4KCj4gWzFdIGh0dHBzOi8vd3d3LmJhbmdnb29kLmNvbS9MSUxZR08tVFRHTy1ULURpc3BsYXkt R0QzMi1SSVNDLVYtMzItYml0LUNvcmUtTWluaW1hbC1EZXZlbG9wbWVudC1Cb2FyZC0xXzE0LUlQ Uy1wLTE2NTI4NzAuaHRtbD9ybW1kcz1zZWFyY2gmY3VyX3dhcmVob3VzZT1DTgo+IFsyXSBodHRw czovL2dpdGh1Yi5jb20vaGFja2Vyc3BhY2UvbGlib3BlbmNtMy1nZjMydi1leGFtcGxlcy9jb21t aXQvN2VmNTFiMzFiOQo+IFszXSBodHRwczovL3Blb3BsZS5mcmVlZGVza3RvcC5vcmcvfmxrdW5k cmFrL2xpbHlnby5qcGVnCj4gCj4gSGFkIHRvIGFwcGx5IGEgZml4IGZvciB0aGUgZHJtX2Nvbm5l Y3Rvcl9lbnVtX2xpc3RbXSBvbW1pc3Npb24gSSBtZW50aW9uZWQKPiBlbHNld2hlcmUsIGFuZCB0 aGF0IEkndmUgbm93IG5vdGljZWQgeW91J3ZlIG5vdGVkIHByZXZpb3VzbHkuCj4gCj4gVGFrZSBj YXJlCj4gTHVibwo+IAo+Pgo+Pgo+PiBOb3JhbGYgVHLDuG5uZXMgKDMpOgo+PiAgIGRybS91YXBp OiBBZGQgVVNCIGNvbm5lY3RvciB0eXBlCj4+ICAgZHJtL3Byb2JlLWhlbHBlcjogQ2hlY2sgZXBv Y2ggY291bnRlciBpbiBvdXRwdXRfcG9sbF9leGVjdXRlKCkKPj4gICBkcm06IEFkZCBHZW5lcmlj IFVTQiBEaXNwbGF5IGRyaXZlcgo+Pgo+PiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKwo+PiAgZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICAgICAgfCAg IDIgKwo+PiAgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgfCAgIDEgKwo+PiAg ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyAgfCAgIDcgKy0KPj4gIGRyaXZlcnMv Z3B1L2RybS9ndWQvS2NvbmZpZyAgICAgICAgIHwgIDE0ICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9n dWQvTWFrZWZpbGUgICAgICAgIHwgICA0ICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9ndWQvZ3VkX2Nv bm5lY3Rvci5jIHwgNzIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIGRyaXZlcnMv Z3B1L2RybS9ndWQvZ3VkX2Rydi5jICAgICAgIHwgNjIwICsrKysrKysrKysrKysrKysrKysrKysr Kwo+PiAgZHJpdmVycy9ncHUvZHJtL2d1ZC9ndWRfaW50ZXJuYWwuaCAgfCAxNDggKysrKysrCj4+ ICBkcml2ZXJzL2dwdS9kcm0vZ3VkL2d1ZF9waXBlLmMgICAgICB8IDQ3MiArKysrKysrKysrKysr KysrKysKPj4gIGluY2x1ZGUvZHJtL2d1ZC5oICAgICAgICAgICAgICAgICAgIHwgMzU2ICsrKysr KysrKysrKysrCj4+ICBpbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggICAgICAgICB8ICAgMSAr Cj4+ICAxMiBmaWxlcyBjaGFuZ2VkLCAyMzU0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZ3VkL0tjb25maWcKPj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZ3VkL01ha2VmaWxlCj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2d1ZC9ndWRfY29ubmVjdG9yLmMKPj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZ3VkL2d1ZF9kcnYuYwo+PiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9ndWQvZ3VkX2ludGVybmFsLmgKPj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZ3VkL2d1ZF9waXBlLmMKPj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2RybS9ndWQuaAo+Pgo+PiAtLSAKPj4gMi4yMy4wCj4+Cj4gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=