From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH] drm/vc4: Add a load tracker to prevent HVS underflow errors Date: Fri, 26 Oct 2018 16:26:03 +0200 Message-ID: References: <20181016094045.23021-1-boris.brezillon@bootlin.com> <20181016125743.GZ31561@phenom.ffwll.local> <20181023095508.21a9cabd@bbrezillon> <20181023134443.GQ324@phenom.ffwll.local> <20181025100931.50fddf7e@bbrezillon> <20181025093314.GB21967@phenom.ffwll.local> <20181025114114.42caf97d@bbrezillon> <20181026133026.GM21967@phenom.ffwll.local> <20181026155748.70b9a6bd@bbrezillon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70E9C6E48C for ; Fri, 26 Oct 2018 14:26:16 +0000 (UTC) Received: by mail-qk1-x742.google.com with SMTP id n12so738440qkh.11 for ; Fri, 26 Oct 2018 07:26:16 -0700 (PDT) In-Reply-To: <20181026155748.70b9a6bd@bbrezillon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon Cc: "Hollingworth, Gordon" , dri-devel , Eben Upton List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBPY3QgMjYsIDIwMTggYXQgMzo1NyBQTSBCb3JpcyBCcmV6aWxsb24KPGJvcmlzLmJy ZXppbGxvbkBib290bGluLmNvbT4gd3JvdGU6Cj4KPiBPbiBGcmksIDI2IE9jdCAyMDE4IDE1OjMw OjI2ICswMjAwCj4gRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPgo+ID4g T24gVGh1LCBPY3QgMjUsIDIwMTggYXQgMTE6NDE6MTRBTSArMDIwMCwgQm9yaXMgQnJlemlsbG9u IHdyb3RlOgo+ID4gPiBPbiBUaHUsIDI1IE9jdCAyMDE4IDExOjMzOjE0ICswMjAwCj4gPiA+IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gT24gVGh1 LCBPY3QgMjUsIDIwMTggYXQgMTA6MDk6MzFBTSArMDIwMCwgQm9yaXMgQnJlemlsbG9uIHdyb3Rl Ogo+ID4gPiA+ID4gT24gVHVlLCAyMyBPY3QgMjAxOCAxNTo0NDo0MyArMDIwMAo+ID4gPiA+ID4g RGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IE9uIFR1ZSwgT2N0IDIzLCAyMDE4IGF0IDA5OjU1OjA4QU0gKzAyMDAsIEJvcmlzIEJyZXpp bGxvbiB3cm90ZToKPiA+ID4gPiA+ID4gPiBIaSBEYW5pZWwsCj4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiBPbiBUdWUsIDE2IE9jdCAyMDE4IDE0OjU3OjQzICswMjAwCj4gPiA+ID4gPiA+ID4g RGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gT24gVHVlLCBPY3QgMTYsIDIwMTggYXQgMTE6NDA6NDVBTSArMDIwMCwgQm9y aXMgQnJlemlsbG9uIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBUaGUgSFZTIGJsb2NrIGlzIHN1 cHBvc2VkIHRvIGZpbGwgdGhlIHBpeGVsdmFsdmUgRklGT3MgZmFzdCBlbm91Z2ggdG8KPiA+ID4g PiA+ID4gPiA+ID4gbWVldCB0aGUgcmVxdWVzdGVkIGZyYW1lcmF0ZS4gVGhlIHByb2JsZW0gaXMs IHRoZSBIVlMgYW5kIG1lbW9yeSBidXMKPiA+ID4gPiA+ID4gPiA+ID4gYmFuZHdpZHRocyBhcmUg bGltaXRlZCwgYW5kIGlmIHdlIGRvbid0IHRha2UgdGhlc2UgbGltaXRhdGlvbnMgaW50bwo+ID4g PiA+ID4gPiA+ID4gPiBhY2NvdW50IHdlIG1pZ2h0IGVuZCB1cCB3aXRoIEhWUyB1bmRlcmZsb3cg ZXJyb3JzLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGlz IHRyeWluZyB0byBtb2RlbCB0aGUgcGVyLXBsYW5lIEhWUyBhbmQgbWVtb3J5IGJ1cyBiYW5kd2lk dGgKPiA+ID4gPiA+ID4gPiA+ID4gY29uc3VtcHRpb24gYW5kIHRha2UgYSBkZWNpc2lvbiBhdCBh dG9taWNfY2hlY2soKSB0aW1lIHdoZXRoZXIgdGhlCj4gPiA+ID4gPiA+ID4gPiA+IGVzdGltYXRl ZCBsb2FkIHdpbGwgZml0IGluIHRoZSBIVlMgYW5kIG1lbWJ1cyBidWRnZXQuCj4gPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE5vdGUgdGhhdCB3ZSB0YWtlIGFuIGV4dHJhIG1hcmdp biBvbiB0aGUgbWVtb3J5IGJ1cyBjb25zdW1wdGlvbiB0byBsZXQKPiA+ID4gPiA+ID4gPiA+ID4g dGhlIHN5c3RlbSBydW4gc21vb3RobHkgd2hlbiBvdGhlciBibG9ja3MgYXJlIGRvaW5nIGhlYXZ5 IHVzZSBvZiB0aGUKPiA+ID4gPiA+ID4gPiA+ID4gbWVtb3J5IGJ1cy4gU2FtZSBnb2VzIGZvciB0 aGUgSFZTIGxpbWl0LCBleGNlcHQgdGhlIG1hcmdpbiBpcyBzbWFsbGVyIGluCj4gPiA+ID4gPiA+ ID4gPiA+IHRoaXMgY2FzZSwgc2luY2UgdGhlIEhWUyBpcyBub3QgdXNlZCBieSBleHRlcm5hbCBj b21wb25lbnRzLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJyZXppbGxvbkBib290bGluLmNvbT4KPiA+ID4g PiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgbG9naWMgaGFzIGJlZW4gdmFs aWRhdGVkIHVzaW5nIGEgc2ltcGxlIHNoZWxsIHNjcmlwdCBhbmQKPiA+ID4gPiA+ID4gPiA+ID4g c29tZSBpbnN0cnVtZW50YXRpb24gaW4gdGhlIFZDNCBkcml2ZXI6Cj4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+IC0gY2FwdHVyZSB1bmRlcmZsb3cgZXJyb3JzIGF0IHRoZSBIVlMg bGV2ZWwgYW5kIGV4cG9zZSBhIGRlYnVnZnMgZmlsZQo+ID4gPiA+ID4gPiA+ID4gPiAgIHJlcG9y dGluZyB0aG9zZSBlcnJvcnMKPiA+ID4gPiA+ID4gPiA+ID4gLSBhZGQgZGVidWdmcyBmaWxlcyB0 byBleHBvc2Ugd2hlbiBhdG9taWNfY2hlY2sgZmFpbHMgYmVjYXVzZSBvZiB0aGUKPiA+ID4gPiA+ ID4gPiA+ID4gICBIVlMgb3IgbWVtYnVzIGxvYWQgbGltaXRhdGlvbiBvciB3aGVuIGl0IGZhaWxz IGZvciBvdGhlciByZWFzb25zCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFRo ZSBicmFuY2ggY29udGFpbmluZyB0aG9zZSBtb2RpZmljYXRpb24gaXMgYXZhaWxhYmxlIGhlcmUg WzFdLCBhbmQgdGhlCj4gPiA+ID4gPiA+ID4gPiA+IHNjcmlwdCAod2hpY2ggaXMgaW50ZXJuYWxs eSB1c2luZyBtb2RldGVzdCkgaXMgaGVyZSBbMl0gKHBsZWFzZSBub3RlCj4gPiA+ID4gPiA+ID4g PiA+IHRoYXQgSSdtIGJhZCBhdCB3cml0aW5nIHNoZWxsIHNjcmlwdHMgOi0pKS4KPiA+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gTm90ZSB0aGF0IHRob3NlIG1vZGlmaWNhdGlvbiB0 ZW5kIHRvIG92ZXItZXN0aW1hdGUgdGhlIGxvYWQsIGFuZCB0aHVzCj4gPiA+ID4gPiA+ID4gPiA+ IHJlamVjdCBzZXR1cHMgdGhhdCBtaWdodCBoYXZlIHByZXZpb3VzbHkgd29ya2VkLCBzbyB3ZSBt aWdodCB3YW50IHRvCj4gPiA+ID4gPiA+ID4gPiA+IGFkanVzdCB0aGUgbGltaXRzIHRvIGF2b2lk IHRoYXQuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFsxXWh0dHBzOi8vZ2l0 aHViLmNvbS9iYnJlemlsbG9uL2xpbnV4L3RyZWUvdmM0L2h2cy1iYW5kd2lkdGgtZXZhbAo+ID4g PiA+ID4gPiA+ID4gPiBbMl1odHRwczovL2dpdGh1Yi5jb20vYmJyZXppbGxvbi92YzQtaHZzLWJh bmR3aWR0aC10ZXN0Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQW55IGludGVyZXN0 IGluIHVzaW5nIGlndCB0byB0ZXN0IHRoaXMgc3R1ZmY/IFdlIGhhdmUgYXQgbGVhc3QgYSBidW5j aCBvZgo+ID4gPiA+ID4gPiA+ID4gdGVzdHMgYWxyZWFkeSBpbiB0aGVyZSB0aGF0IHRyeSBhbGwg a2luZHMgb2YgcGxhbmUgc2V0dXBzLiBBbmQgd2UgdXNlCj4gPiA+ID4gPiA+ID4gPiB0aG9zZSB0 byBodW50IGZvciB1bmRlcnJ1bnMgb24gaTkxNSBody4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiBXcnQgdW5kZXJydW4gcmVwb3J0aW5nOiBPbiBpOTE1IHdlIGp1c3QgZHVtcCB0aGVt IGludG8gZG1lc2cgYXQgdGhlIGVycm9yCj4gPiA+ID4gPiA+ID4gPiBsZXZlbCwgdXNpbmcgRFJN X0VSUk9SLAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gQXJlIHlvdSBtYXNraW5nIHRoZSB1 bmRlcnJ1biBpbnRlcnJ1cHQgYWZ0ZXIgaXQncyBiZWVuIHJlcG9ydGVkPyBJZiB3ZQo+ID4gPiA+ ID4gPiA+IGRvbid0IGRvIHRoYXQgb24gVkM0IHdlIGp1c3QgZW5kIHVwIGZsb29kaW5nIHRoZSBr ZXJuZWwtbG9nIGJ1ZmZlciB1bnRpbAo+ID4gPiA+ID4gPiA+IHNvbWVvbmUgY29tZXMgYW5kIHVw ZGF0ZSB0aGUgY29uZmlnLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBZZWFoIHdlIGRvIHRoYXQg dG9vLiBSdWxlIGlzIHRoYXQgYSBmdWxsIG1vZGVzZXQgd2lsbCBjbGVhciBhbnkgdW5kZXJydW4K PiA+ID4gPiA+ID4gbWFza2luZyAoc28gdGVzdHMgbmVlZCB0byBtYWtlIHN1cmUgdGhleSBzdGFy dCB3aXRoIGEgbW9kZXNldCwgb3IgaXQnbGwgYmUKPiA+ID4gPiA+ID4gZm9yIG5vdGhpbmcpLgo+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBwbHVzIGEgdHJhY2Vwb2lu dC4gU2VlIGUuZy4KPiA+ID4gPiA+ID4gPiA+IGludGVsX3BjaF9maWZvX3VuZGVycnVuX2lycV9o YW5kbGVyKCkuIElmIHRoZXJlJ3MgaW50ZXJlc3Qgd2UgY291bGQKPiA+ID4gPiA+ID4gPiA+IHBl cmhhcHMgZXh0cmFjdCB0aGlzIGludG8gc29tZXRoaW5nIGNvbW1vbiwgc2ltaWxhciB0byB3aGF0 IHdhcyBkb25lIHdpdGgKPiA+ID4gPiA+ID4gPiA+IGNyYyBzdXBwb3J0IGFscmVhZHkuCj4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSSdtIG5vdCBhIGJpZyBmYW4g b2YgaGFyZGNvZGVkIHRyYWNlIHBvaW50cyBpbiBnZW5lcmFsIChiZWNhdXNlIG9mIHRoZQo+ID4g PiA+ID4gPiA+IHdob2xlICJpdCdzIHBhcnQgb2YgdGhlIHN0YWJsZSBBQkkiIHRoaW5nKSwgYW5k IGluIHRoaXMgY2FzZSwgbWFraW5nIHRoZQo+ID4gPiA+ID4gPiA+IHRyYWNlcG9pbnQgZ2VuZXJp YyBzb3VuZHMgZXZlbiBtb3JlIHJpc2t5IHRvIG1lLiBJbmRlZWQsIGhvdyBjYW4gd2Uga25vdwo+ ID4gPiA+ID4gPiA+IGFib3V0IGFsbCB0aGUgSFcgc3BlY2lmaWMgYml0cyBvbmUgbWlnaHQgd2Fu dCB0byBleHBvc2UuIEZvciBpbnN0YW5jZSwKPiA+ID4gPiA+ID4gPiBJIHNlZSB0aGUgaW50ZWwg dW5kZXJydW4gdHJhY2Vwb2ludCBleHBvc2VzIGEgc3RydWN0IHdpdGggYSBmcmFtZSBhbmQKPiA+ ID4gPiA+ID4gPiBzY2FubGluZSBmaWVsZCwgYW5kIEFGQUlDVCwgd2UgZG9uJ3QgaGF2ZSBzdWNo IGluZm9ybWF0aW9uIGluIHRoZSBWQzQKPiA+ID4gPiA+ID4gPiBjYXNlLgo+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gQW55IG9waW5pb24gb24gdGhhdD8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gSXQncyBvbmx5IGFiaSBpZiB5b3UncmUgdW5sdWNreS4gSWYgaXQncyBqdXN0IGZvciBkZWJ1 Z2dpbmcgYW5kCj4gPiA+ID4gPiA+IHZhbGlkYXRpb24sIHlvdSBjYW4gY2hhbmdlIGl0IGFnYWlu LiBUYmgsIG5vIGlkZWEgd2h5IHdlIGV2ZW4gaGF2ZSB0aGVzZQo+ID4gPiA+ID4gPiB0cmFjZXBv aW50cywgdGhleSdyZSBmYWlybHkgdXNlbGVzcyBpbW8uIENJIG9ubHkgcmVsaWVzIHVwb24gdGhl IGRtZXNnCj4gPiA+ID4gPiA+IG91dHB1dC4gTWF5YmUgcnVuIGdpdCBibGFtZSBhbmQgYXNrIHRo ZSBvcmlnaW5hbCBhdXRob3IsIHdlIGNhbiBwcm9iYWJseQo+ID4gPiA+ID4gPiB1cGRhdGUgdGhl bSB0byBzdWl0IG91ciBuZWVkcy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPa2F5LCBJIHRoaW5rIEkn bGwgZ28gZm9yIGEgZ2VuZXJpYyBkZWJ1Z2ZzIGVudHJ5IHRoYXQgcmV0dXJucyB0cnVlCj4gPiA+ ID4gPiB3aGVuIGFuIHVuZGVycnVuIGVycm9yIGhhcHBlbmVkIHNpbmNlIHRoZSBsYXN0IG1vZGVz ZXQsIGZhbHNlIG90aGVyd2lzZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBOZXh0IHF1ZXN0aW9uIGlz OiBzaG91bGQgSSBhdHRhY2ggdGhlIHVuZGVycnVuIHN0YXR1cyB0byB0aGUgZHJtX2RldmljZQo+ ID4gPiA+ID4gb3IgaGF2ZSBvbmUgcGVyIENSVEM/IEluIG15IGNhc2UsIEkgb25seSBjYXJlIGFi b3V0IHRoZSAiaGFzIGFuCj4gPiA+ID4gPiB1bmRlcnJ1biBlcnJvciBvY2N1cnJlZCBvbiBhbnkg b2YgdGhlIGFjdGl2ZSBDUlRDIiBjYXNlLCBzbyBJJ2Qgdm90ZSBmb3IKPiA+ID4gPiA+IGEgcGVy LWRldmljZSB1bmRlcnJ1biBzdGF0dXMuCj4gPiA+ID4KPiA+ID4gPiBZZWFoIHByb2JhYmx5IGdv b2QgZW5vdWdoLiBGb3Igb3VyIENJIGFsbCB3ZSBjYXJlIGFib3V0IGlzIHRoZSB3YXJuL2Vycm9y Cj4gPiA+ID4gbGV2ZWwgZG1lc2cgb3V0cHV0LiBBbnl0aGluZyBhdCB0aGF0IGxldmVsIGlzIGNv bnNpZGVyZWQgYSBDSSBmYWlsdXJlLgo+ID4gPgo+ID4gPiBTbyBpZ3QgaXMgZ3JlcHBpbmcgZG1l c2cgdG8gZGV0ZWN0IHdoZW4gYW4gdW5kZXJydW4gaGFwcGVucz8KPiA+Cj4gPiBObywgYnV0IHRo ZSBDSSBydW5uZXIgaXMgYWxzbyBvYnNlcnZpbmcgZG1lc2cuIEFueXRoaW5nIGluIHRoZXJlIGF0 Cj4gPiB3YXJuaW5nIG9yIGhpZ2hlciBsZXZlbCBpcyBjb25zaWRlcmVkIGEgZmFpbHVyZS4KPgo+ IEVyaWMsIGRvIHlvdSBkbyB0aGUgc2FtZSB3aGVuIHlvdSBsYXVuY2ggdGhlIElHVCB0ZXN0c3Vp dGU/Cj4KPiA+Cj4gPiA+ID4gV2hhdCBkbyB5b3UgbmVlZCB0aGUgZGVidWdmcyBmaWxlIGZvcj8K PiA+ID4KPiA+ID4gSSBqdXN0IHRob3VnaHQgaGF2aW5nIGEgZGVidWdmcyBmaWxlIHRvIGV4cG9z ZSB0aGUgdW5kZXJydW4gaW5mb3JtYXRpb24KPiA+ID4gd291bGQgYmUgY2xlYW5lciB0aGFuIGhh dmluZyB0byBncmVwIGluIGRtZXNnIHRvIGRldGVjdCBzdWNoIGZhaWx1cmVzLgo+ID4KPiA+IFRo ZSBpc3N1ZSBpcyB0aGF0IHlvdSB3YW50IHRvIGRldGVjdCB1bmRlcnJ1bnMgZXZlcnl3aGVyZSwg bm90IGp1c3QgaW4gdGhlCj4gPiBzcGVjaWZpYyB0ZXN0cyB5b3UncmUgY2hlY2tpbmcgZm9yIGl0 LiBBbnl0aGluZyB0aGF0IGRvZXMgYSBtb2Rlc2V0IGNvdWxkCj4gPiBjYXVzZSBhbiB1bmRlcnJ1 biAoYXQgbGVhc3Qgd2UndmUgbWFuYWdlZCB0byBkbyBzbyBwcmV0dHkgbXVjaCBldmVyeXdoZXJl Cj4gPiBvbiBpOTE1IGh3LCBpZiB5b3UgbWlzcHJvZ3JhbSBpcyBzdWZmaWNpZW50bHkpLgo+Cj4g SW4gbXkgc3BlY2lmaWMgY2FzZSwgSSB3YW50IHRvIGhhdmUgdGhlIElHVCB0ZXN0IGNoZWNrIHRo ZSB1bmRlcnJ1bgo+IHZhbHVlIHdoaWxlIHRoZSB0ZXN0IGlzIGJlaW5nIGV4ZWN1dGVkIHNvIHRo YXQgSSBrbm93IHdoaWNoIGV4YWN0Cj4gY29uZmlndXJhdGlvbiB0cmlnZ2VycyB0aGUgdW5kZXJy dW4gc2l0dWF0aW9uLiBBdCBsZWFzdCB0aGF0J3MgaG93IEkKPiBkaWQgdG8gYWRqdXN0L2RlYnVn IHRoZSBIVlMgbG9hZCB0cmFja2luZyBjb2RlLiBNYXliZSBpdCdzIG5vdCByZWFsbHkgYQo+IHBy b2JsZW0gd2hlbiBhbGwgd2UgZG8gaXMgdHJhY2tpbmcgcmVncmVzc2lvbnMuCgpPaywgdGhhdCBt YWtlcyBzZW5zZSwgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugd2FudCB0aGUgb3ZlcmFsbCB1bmRlcnJ1 bgpjb3VudGVyIGV4cG9zZWQgaW4gZGVidWdmcy4gT3VyIGV4cGVyaWVuY2Ugd2l0aCB1bmRlcnJ1 bnMgaGFzIGJlZW4KdGhhdCBpdCdzIHZlcnkgZHluYW1pYyAob24gaTkxNSBodyksIGFuZCBtb3N0 IG9mdGVuIGl0J3Mgbm90IGEgZ2l2ZW4KY29uZmlndXJhdGlvbiwgYnV0IGEgZ2l2ZW4gc2VxdWVu Y2Ugb2YgY2hhbmdlcyB3aGlsZSBzb21lIG90aGVyCndvcmtsb2FkIGlzIGdvaW5nIG9uIC4uLgot RGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3Jh dGlvbgorNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=