From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 0/3] A DRM API for adaptive sync and variable refresh rate support Date: Wed, 3 Oct 2018 10:41:20 +0200 Message-ID: <20181003084120.GP11082@phenom.ffwll.local> References: <20180924181537.12092-1-nicholas.kazlauskas@amd.com> <20181001071525.GJ11082@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Harry Wentland Cc: manasi.d.navare@intel.com, nicolai.haehnle@amd.com, michel@daenzer.net, dri-devel@lists.freedesktop.org, Christian.Koenig@amd.com, Marek.Olsak@amd.com, amd-gfx@lists.freedesktop.org, Alexander.Deucher@amd.com, Arkadiusz Hiler , Nicholas Kazlauskas List-Id: amd-gfx.lists.freedesktop.org T24gVHVlLCBPY3QgMDIsIDIwMTggYXQgMTA6NDk6MTdBTSAtMDQwMCwgSGFycnkgV2VudGxhbmQg d3JvdGU6Cj4gCj4gCj4gT24gMjAxOC0xMC0wMSAwMzoxNSBBTSwgRGFuaWVsIFZldHRlciB3cm90 ZToKPiA+IE9uIE1vbiwgU2VwIDI0LCAyMDE4IGF0IDAyOjE1OjM0UE0gLTA0MDAsIE5pY2hvbGFz IEthemxhdXNrYXMgd3JvdGU6Cj4gPj4gVGhlc2UgcGF0Y2hlcyBhcmUgcGFydCBvZiBhIHByb3Bv c2VkIG5ldyBpbnRlcmZhY2UgZm9yIHN1cHBvcnRpbmcgdmFyaWFibGUgcmVmcmVzaCByYXRlIHZp YSBEUk0gcHJvcGVydGllcy4KPiA+Pgo+ID4+ID09PSBDaGFuZ2VzIGZyb20gdjEgPT09Cj4gPj4K PiA+PiBGb3IgZHJtOgo+ID4+Cj4gPj4gKiBUaGUgdmFyaWFibGVfcmVmcmVzaF9jYXBhYmxlIHBy b3BlcnR5IGlzIG5vdyBmbGFnZ2VkIGFzIERSTV9NT0RFX1BST1BfSU1NVVRBQkxFCj4gPj4KPiA+ PiBGb3IgZHJtL2dwdS9hbWQvZGlzcGxheToKPiA+Pgo+ID4+ICogUGF0Y2hlcyBubyBsb25nZXIg cHVsbCBpbiBJT0NUTC9GcmVlU3luYyByZWZhY3RvcmluZyBjb2RlCj4gPj4gKiBGcmVlU3luYyBl bmFibGUvZGlzYWJsZSBiZWhhdmlvciBoYXMgYmVlbiBtb2RpZmllZCB0byByZWZsZWN0IGNoYW5n ZXMgaW4gdXNlcnNwYWNlIGJlaGF2aW9yIGZyb20geGY4Ni12aWRlby1hbWRncHUgYW5kIG1lc2EK PiA+Pgo+ID4+ID09PSBBZGFwdGl2ZSBzeW5jIGFuZCB2YXJpYWJsZSByZWZyZXNoIHJhdGUgPT09 Cj4gPj4KPiA+PiBBZGFwdGl2ZSBzeW5jIGlzIHBhcnQgb2YgdGhlIERpc3BsYXlQb3J0IHNwZWMg YW5kIGFsbG93cyBmb3IgZ3JhcGhpY3MgYWRhcHRlcnMgdG8gZHJpdmUgZGlzcGxheXMgd2l0aCB2 YXJ5aW5nIGZyYW1lIHRpbWluZ3MuCj4gPj4KPiA+PiBWYXJpYWJsZSByZWZyZXNoIHJhdGUgKFZS UikgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUsIGJ1dCBkZWZpbmVkIGZvciBIRE1JLgo+ID4+Cj4g Pj4gPT09IFVzZSBjYXNlcyBmb3IgdmFyaWFibGUgcmVmcmVzaCByYXRlID09PQo+ID4+Cj4gPj4g VmFyaWFibGUgZnJhbWUgKGZsaXApIHRpbWluZ3MgZG9uJ3QgYWxpZ24gd2VsbCB3aXRoIGZpeGVk IHJlZnJlc2ggcmF0ZSBkaXNwbGF5cy4gVGhpcyByZXN1bHRzIGluIHN0dXR0ZXJpbmcsIHRlYXJp bmcgYW5kL29yIGlucHV0IGxhZy4gQnkgYWRqdXN0aW5nIHRoZSBkaXNwbGF5IHJlZnJlc2ggcmF0 ZSBkeW5hbWljYWxseSB0aGVzZSBpc3N1ZXMgY2FuIGJlIHJlZHVjZWQgb3IgZWxpbWluYXRlZC4K PiA+Pgo+ID4+IEhvd2V2ZXIsIG5vdCBhbGwgY29udGVudCBpcyBzdWl0YWJsZSBmb3IgZHluYW1p YyByZWZyZXNoIGFkYXB0YXRpb24uIENvbnRlbnQgdGhhdCBpcyBmbGlwcGVkIGluZnJlcXVlbnRs eSBvciBhdCByYW5kb20gaW50ZXJ2YWxzIHRlbmRzIHRvIGZhaXIgcG9vcmx5LiBNdWx0aXBsZSBj bGllbnRzIHRyeWluZyB0byBmbGlwIHVuZGVyIHRoZSBzYW1lIHNjcmVlbiBjYW4gc2ltaWxhcmx5 IGludGVyZmVyZSB3aXRoIHByZWRpY3Rpb24uCj4gPj4KPiA+PiBVc2VybGFuZCBuZWVkcyBhIHdh eSB0byBsZXQgdGhlIGRyaXZlciBrbm93IHdoZW4gdGhlIGNvbnRlbnQgb24gdGhlIHNjcmVlbiBp cyBzdWl0YWJsZSBmb3IgdmFyaWFibGUgcmVmcmVzaCByYXRlIGFuZCBpZiB0aGUgdXNlciB3aXNo ZXMgdG8gaGF2ZSB0aGUgZmVhdHVyZSBlbmFibGVkLgo+ID4+Cj4gPj4gPT09IERSTSBBUEkgdG8g c3VwcG9ydCB2YXJpYWJsZSByZWZyZXNoIHJhdGVzID09PQo+ID4+Cj4gPj4gVGhpcyBwYXRjaCBp bnRyb2R1Y2VzIGEgbmV3IEFQSSB2aWEgYXRvbWljIHByb3BlcnRpZXMgb24gdGhlIERSTSBjb25u ZWN0b3IgYW5kIENSVEMuCj4gPj4KPiA+PiBUaGUgY29ubmVjdG9yIGhhcyB0d28gbmV3IG9wdGlv bmFsIHByb3BlcnRpZXM6Cj4gPj4KPiA+PiAqIGJvb2wgdmFyaWFibGVfcmVmcmVzaF9jYXBhYmxl IC0gc2V0IGJ5IHRoZSBkcml2ZXIgaWYgdGhlIGhhcmR3YXJlIGlzIGNhcGFibGUgb2Ygc3VwcG9y dGluZyB2YXJpYWJsZSByZWZyZXNoIHRlY2gKPiA+Pgo+ID4+ICogYm9vbCB2YXJpYWJsZV9yZWZy ZXNoX2VuYWJsZWQgLSBzZXQgYnkgdGhlIHVzZXIgdG8gZW5hYmxlIHZhcmlhYmxlIHJlZnJlc2gg YWRqdXN0bWVudCBvdmVyIHRoZSBjb25uZWN0b3IKPiA+Pgo+ID4+IFRoZSBDUlRDIGhhcyBvbmUg YWRkaXRpb25hbCBkZWZhdWx0IHByb3BlcnR5Ogo+ID4+Cj4gPj4gKiBib29sIHZhcmlhYmxlX3Jl ZnJlc2ggLSBhIGNvbnRlbnQgaGludCB0byB0aGUgZHJpdmVyIHNwZWNpZnlpbmcgdGhhdCB0aGUg Q1JUQyBjb250ZW50cyBhcmUgc3VpdGFibGUgZm9yIHZhcmlhYmxlIHJlZnJlc2ggYWRqdXN0bWVu dAo+ID4+Cj4gPj4gPT0gT3ZlcnZpZXcgZm9yIERSTSBkcml2ZXIgZGV2ZWxvcGVycyA9PT0KPiA+ Pgo+ID4+IERyaXZlciBkZXZlbG9wZXJzIGNhbiBhdHRhY2ggdGhlIG9wdGlvbmFsIGNvbm5lY3Rv ciBwcm9wZXJ0aWVzIHZpYSBkcm1fY29ubmVjdG9yX2F0dGFjaF92YXJpYWJsZV9yZWZyZXNoX3By b3BlcnRpZXMgb24gY29ubmVjdG9ycyB0aGF0IHN1cHBvcnQgdmFyaWFibGUgcmVmcmVzaCAodHlw aWNhbGx5IERQIG9yIEhETUkpLgo+ID4+Cj4gPj4gVGhlIHZhcmlhYmxlX3JlZnJlc2hfY2FwYWJs ZSBwcm9wZXJ0eSBzaG91bGQgYmUgbWFuYWdlZCBhcyB0aGUgb3V0cHV0IG9uIHRoZSBjb25uZWN0 b3IgY2hhbmdlcy4gVGhlIHByb3BlcnR5IGlzIHJlYWQgb25seSBmcm9tIHVzZXJzcGFjZS4KPiA+ Pgo+ID4+IFRoZSB2YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWQgcHJvcGVydHkgaXMgaW50ZW5kZWQg dG8gYmUgYSBwcm9wZXJ0eSBjb250cm9sbGVkIGJ5IHVzZXJsYW5kIGFzIGEgZ2xvYmFsIG9uL29m ZiBzd2l0Y2ggZm9yIHZhcmlhYmxlIHJlZnJlc2ggdGVjaG5vbG9neS4gSXQgc2hvdWxkIGJlIGNo ZWNrZWQgYmVmb3JlIGVuYWJsaW5nIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZS4KPiA+Pgo+ID4+ID09 PSBPdmVydmlldyBmb3IgVXNlcmxhbmQgZGV2ZWxvcGVycyA9PQo+ID4+Cj4gPj4gVGhlIHZhcmlh YmxlX3JlZnJlc2ggcHJvcGVydHkgb24gdGhlIENSVEMgc2hvdWxkIGJlIHNldCB0byB0cnVlIHdo ZW4gdGhlIENSVENzIGFyZSBzdWl0YWJsZSBmb3IgdmFyaWFibGUgcmVmcmVzaCByYXRlLiBJbiBw cmFjdGljZSB0aGlzIGlzIHByb2JhYmx5IGFuIGFwcGxpY2F0aW9uIGxpa2UgYSBnYW1lIC0gYSBz aW5nbGUgd2luZG93IHRoYXQgY292ZXJzIHRoZSB3aG9sZSBDUlRDIHN1cmZhY2UgYW5kIGlzIHRo ZSBvbmx5IGNsaWVudCBpc3N1aW5nIGZsaXBzLgo+ID4+Cj4gPj4gVG8gZGVtb25zdHJhdGUgdGhl IHN1aXRhYmlsaXR5IG9mIHRoZSBBUEkgZm9yIHZhcmlhYmxlIHJlZnJlc2ggYW5kIGR5bmFtaWMg YWRhcHRhdGlvbiB0aGVyZSBhcmUgYWRkaXRpb25hbCBwYXRjaGVzIHVzaW5nIHRoaXMgQVBJIHRo YXQgaW1wbGVtZW50IGFkYXB0aXZlIHZhcmlhYmxlIHJlZnJlc2ggYWNyb3NzIGtlcm5lbCBhbmQg dXNlcmxhbmQgcHJvamVjdHM6Cj4gPj4KPiA+PiAqIERSTSAoZHJpLWRldmVsKQo+ID4+ICogYW1k Z3B1IERSTSBrZXJuZWwgZHJpdmVyIChhbWQtZ2Z4KQo+ID4+ICogeGY4Ni12aWRlby1hbWRncHUg KGFtZC1nZngpCj4gPj4gKiBtZXNhIChtZXNhLWRldikKPiA+Pgo+ID4+IFRoZXNlIHBhdGNoZXMg ZW5hYmxlIGFkYXB0aXZlIHZhcmlhYmxlIHJlZnJlc2ggb24gWCBmb3IgQU1EIGhhcmR3YXJlIHBy b3ZpZGVkIHRoYXQgdGhlIHVzZXIgc2V0cyB0aGUgdmFyaWFibGVfcmVmcmVzaF9lbmFibGVkIHBy b3BlcnR5IHRvIHRydWUgb24gc3VwcG9ydGVkIGNvbm5lY3RvcnMgKGllLiB1c2luZyB4cmFuZHIg LS1zZXQtcHJvcCkuCj4gPj4KPiA+PiBUaGUgcGF0Y2hlcyBoYXZlIGJlZW4gdGVzdGVkIGFzIHdv cmtpbmcgb24gdXBzdHJlYW0gdXNlcmxhbmQgd2l0aCB0aGUgR05PTUUgZGVza3RvcCBlbnZpcm9u bWVudCB1bmRlciBhIHNpbmdsZSBtb25pdG9yIHNldHVwLiBUaGV5IGFsc28gd29yayBvbiBLREUg aW4gc2luZ2xlIG1vbml0b3Igc2V0dXAgaWYgdGhlIGNvbXBvc2l0b3IgaXMgZGlzYWJsZWQuCj4g Pj4KPiA+PiBUaGUgcGF0Y2hlcyByZXF1aXJlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdpbmRvdyBj YW4gaXNzdWUgc2NyZWVuIGZsaXBzIHZpYSB0aGUgUHJlc2VudCBleHRlbnNpb24gdG8geGY4Ni12 aWRlby1hbWRncHUuIER1ZSB0byBQcmVzZW50IGV4dGVuc2lvbiBsaW1pdGF0aW9ucyBzb21lIGRl c2t0b3AgZW52aXJvbm1lbnRzIGFuZCBtdWx0aS1tb25pdG9yIHNldHVwcyBhcmUgY3VycmVudGx5 IG5vdCBjb21wYXRpYmxlLgo+ID4+Cj4gPj4gRnVsbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGZv ciB0aGVzZSBjaGFuZ2VzIGNhbiBiZSByZXZpZXdlZCBpbiB0aGVpciByZXNwZWN0aXZlIG1haWxp bmcgbGlzdHMuCj4gPj4KPiA+PiA9PT0gUHJldmlvdXMgZGlzY3Vzc2lvbnMgPT09Cj4gPj4KPiA+ PiBUaGVzZSBwYXRjaGVzIGFyZSBiYXNlZCB1cG9uIGZlZWRiYWNrIGZyb20gcGF0Y2hlcyBhbmQg ZmVlZGJhY2sgZnJvbSB0d28gcHJldmlvdXMgdGhyZWFkcyBvbiB0aGUgc3ViamVjdCB3aGljaCBh cmUgbGlua2VkIGJlbG93IGZvciByZWZlcmVuY2U6Cj4gPj4KPiA+PiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9hbWQtZ2Z4LzIwMTgtQXByaWwvMDIxMDQ3Lmh0bWwKPiA+ PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNy1P Y3RvYmVyLzE1NTIwNy5odG1sCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJj aGl2ZXMvZHJpLWRldmVsLzIwMTgtU2VwdGVtYmVyLzE4OTQwNC5odG1sCj4gPj4KPiA+PiBOaWNo b2xhcyBLYXpsYXVza2FzCj4gPj4KPiA+PiBOaWNob2xhcyBLYXpsYXVza2FzICgzKToKPiA+PiAg IGRybTogQWRkIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSBwcm9wZXJ0aWVzIHRvIGNvbm5lY3Rvcgo+ ID4+ICAgZHJtOiBBZGQgdmFyaWFibGUgcmVmcmVzaCBwcm9wZXJ0eSB0byBEUk0gQ1JUQwo+ID4+ ICAgZHJtL2FtZC9kaXNwbGF5OiBTZXQgRnJlZVN5bmMgc3RhdGUgdXNpbmcgRFJNIFZSUiBwcm9w ZXJ0aWVzCj4gPiAKPiA+IFBsZWFzZSBpbmNsdWRlIE1hbmFzaSBtYW5hc2kuZC5uYXZhcmVAaW50 ZWwuY29tIHdoZW4gcmVzZW5kaW5nLCBzaGUncwo+ID4gd29ya2luZyBvbiB0aGlzIGZyb20gb3Vy IHNpZGUuCj4gPiAKPiA+IEFsc28gc29tZSBvdmVydmlldyBrZXJuZWwtZG9jcyB0aGF0IGRvY3Vt ZW50IHRoZSB1YXBpIGFzcGVjdCBvZiBob3cgdGhlCj4gPiBwcm9ydGllcyBhcmUgZHJpdmVuIHNo b3VsZCBiZSBpbmNsdWRlZC4gUHJvYmFibHkgYmVzdCBpZiB5b3UgYWRkIGEgbmV3Cj4gPiAiVmFy aWFibGUgUmVmcmVzaCBSYXRlIiBzZWN0aW9uIHVuZGVyCj4gPiAKPiA+IGh0dHBzOi8vZHJpLmZy ZWVkZXNrdG9wLm9yZy9kb2NzL2RybS9ncHUvZHJtLWttcy5odG1sI2ttcy1wcm9wZXJ0aWVzCj4g PiAKPiA+IHdpdGggbGlua3MgdG8gZnVuY3Rpb25zIGRyaXZlcnMgc2hvdWxkIGNhbGwgdG8gc2V0 IHVwIGFuZCBldmVyeXRoaW5nLiBCZXN0Cj4gPiBwcmFjdGljZSBpcyB0byBzdHVmZiBhbGwgdGhh dCBpbnRvIGEgRE9DOiBjb21tZW50Lgo+ID4gCj4gPiBBbiBpZ3QgdGVzdGNhc2Ugd291bGQgYmUg bmVhdCB0b28uCj4gPiAKPiAKPiBUaGFua3MgZm9yIGJyaW5naW5nIHVwIGRvY3MgYW5kIGlndC4K PiAKPiBGb3IgaWd0IGlmIHdlIGV4cG9zZSBhIG1vbml0b3IncyB2bWluL3ZtYXggdGhyb3VnaCBh IGRlYnVnZnMgd2UgY291bGQKPiB0aGVuIGRvIHZyciBmbGlwcyBhdCBkaWZmZXJlbnQgcG9pbnRz IHdpdGhpbiB0aGF0IHJhbmdlIGFuZCBtZWFzdXJlIHRoZQo+IHRpbWUgdW50aWwgdmJsYW5rIG5v dGlmaWNhdGlvbnMgdG8gY2hlY2sgdGhhdCB0aGV5IChyb3VnaGx5KSBhbGlnbiB3aXRoCj4gdGhl IHZ0b3RhbC4gTm90IHN1cmUgaG93IGRpZmZpY3VsdCB0aGF0J2QgYmUgd2l0aCBpZ3QuIFdvbmRl ciBpZiBBcmVrCj4gaGFzIGFueSBpZGVhcyBvZiBhIGJldHRlciBhcHByb2FjaC4KCldlIGNhbiBk byBtdWNoIGJldHRlcjoKCjEuIGFsbG9jYXRlIGEgYnVuY2ggb2YgYnVmZmVycwoyLiBzaGFyZSB3 aXRoIHZnZW0KMy4gdXNlIHZnZW0gZmFrZSBmZW5jZXMgdG8gcGVyZmVjdGx5IGNvbnRyb2wgdGhl ICJyZW5kZXJpbmciIG9mIHlvdXIgZmFrZQp3b3JrbG9hZAo0LiBmbGlwIGF3YXksIGFuZCBjaGVj ayB0aGF0IHZyciBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0byBkby4KCkV2ZW4gbW9yZSBldmls IHRoYW4gdnJyLCB0aGlzIHdvdWxkIHRlc3QgcHJpbWUrdnJyIDotKQoKUGxhbiBiKSwgYnV0IG9u bHkgd29ya3Mgb24gaW50ZWw6IFVzZSB0aGUgbWFnaWMgc3Bpbm5pbmcgYmF0Y2ggc3VwcG9ydCB3 ZQpoYXZlIGZvciBpOTE1LmtvLCB3aGVyZSBhIGR3b3JkIHdyaXRlIGZyb20gdGhlIGNwdSBzdG9w cyB0aGUgc3Bpbm5pbmcsIGFuZApoZW5jZSBhbGxvd3MgeW91IHRvIGNvbnRyb2wgaG93IGxvbmcg dGhlICJyZW5kZXJpbmciIHRha2VzIHZlcnkKYWNjdXJhdGVseS4KCk5laXRoZXIgbmVlZHMgZHJp dmVyIGhhY2tzIG9yIGRlYnVnZnMuCgpDaGVlcnMsIERhbmllbAo+IAo+IEhhcnJ5Cj4gCj4gPiBD aGVlcnMsIERhbmllbAo+ID4gCj4gPj4KPiA+PiAgLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1k Z3B1X2RtL2FtZGdwdV9kbS5jIHwgMjMyICsrKysrKysrKy0tLS0tLS0tLQo+ID4+ICAuLi4vZ3B1 L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmggfCAgIDYgKy0KPiA+PiAgZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICAgICAgIHwgICAxICsKPiA+PiAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgICAgICAgICAgIHwgIDEyICsKPiA+ PiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgICAgIHwgIDM1ICsr Kwo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAgICAgICAgfCAg IDIgKwo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgICAgICAgICAgICAg fCAgIDYgKwo+ID4+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgICAgICAg ICAgfCAgMjcgKysKPiA+PiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEzICsKPiA+PiAgaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggICAgICAg ICAgICAgICAgIHwgICA4ICsKPiA+PiAgMTAgZmlsZXMgY2hhbmdlZCwgMjI1IGluc2VydGlvbnMo KyksIDExNyBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IC0tIAo+ID4+IDIuMTkuMAo+ID4+Cj4gPiAK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK