From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v2 4/8] drm/crtc: Add a generic infrastructure to fake VBLANK events Date: Mon, 2 Jul 2018 10:14:51 +0200 Message-ID: <20180702101451.4382e38c@bbrezillon> References: <20180629111722.20299-1-boris.brezillon@bootlin.com> <20180629111722.20299-5-boris.brezillon@bootlin.com> <20180702080252.GF13978@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 5D9646E2E3 for ; Mon, 2 Jul 2018 08:15:03 +0000 (UTC) In-Reply-To: <20180702080252.GF13978@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: David Airlie , Liviu Dudau , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCAyIEp1bCAyMDE4IDEwOjAyOjUyICswMjAwCkRhbmllbCBWZXR0ZXIgPGRhbmllbEBm ZndsbC5jaD4gd3JvdGU6Cgo+IE9uIEZyaSwgSnVuIDI5LCAyMDE4IGF0IDAxOjE3OjE3UE0gKzAy MDAsIEJvcmlzIEJyZXppbGxvbiB3cm90ZToKPiA+IEluIHNvbWUgY2FzZXMgQ1JUQ3MgYXJlIGFj dGl2ZSBidXQgYXJlIG5vdCBhYmxlIHRvIGdlbmVyYXRpbmcgZXZlbnRzLCBhdAo+ID4gbGVhc3Qg bm90IGF0IGV2ZXJ5IGZyYW1lIGF0IGl0J3MgZXhwZWN0ZWQgdG8uCj4gPiBUaGlzIGlzIHR5cGlj YWxseSB0aGUgY2FzZSB3aGVuIHRoZSBDUlRDIGlzIGZlZWRpbmcgYSB3cml0ZWJhY2sgY29ubmVj dG9yCj4gPiB0aGF0IGhhcyBubyBqb2IgcXVldWVkLiBJbiB0aGlzIHNpdHVhdGlvbiB0aGUgQ1JU QyBpcyB1c3VhbGx5IHN0b3BwZWQKPiA+IHVudGlsIGEgbmV3IGpvYiBpcyBxdWV1ZWQsIGFuZCB0 aGlzIGNhbiBsZWFkIHRvIHRpbWVvdXRzIHdoZW4gcGFydCBvZgo+ID4gdGhlIHBpcGVsaW5lIGlz IHVwZGF0ZWQgYnV0IG5vIG5ldyBqb2JzIGFyZSBxdWV1ZWQgdG8gdGhlIGFjdGl2ZQo+ID4gd3Jp dGViYWNrIGNvbm5lY3Rvci4KPiA+IAo+ID4gSW4gb3JkZXIgdG8gc29sdmUgdGhhdCwgd2UgYWRk IGEgLT5ub192YmxhbmsgZmxhZyB0byBkcm1fY3J0Y19zdGF0ZQo+ID4gYW5kIGFzayB0aGUgQ1JU QyBkcml2ZXJzIHRvIHNldCBpdCB0byB0cnVlIHdoZW4gdGhleSBrbm93IHRoZXkncmUgbm90Cj4g PiBhYmxlIHRvIGdlbmVyYXRlIFZCTEFOSyBldmVudHMuIFRoZSBjb3JlIGRybV9hdG9taWNfaGVs cGVyX2Zha2VfdmJsYW5rKCkKPiA+IGhlbHBlciBjYW4gdGhlbiBiZSB1c2VkIHRvIGZha2UgVkJM QU5LcyBhdCBjb21taXQgdGltZS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJlemls bG9uIDxib3Jpcy5icmV6aWxsb25AYm9vdGxpbi5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiA+ICBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICB8ICAx ICsKPiA+ICBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8IDE1ICsrKysrKysr KysrKysrCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspCj4gPiAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiBpbmRleCA2OTA2M2JjZjIzMzQuLmNhNTg2 OTkzYzJhMiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBl ci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gQEAg LTIwNTEsNiArMjA1MSw0NiBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVu ZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ID4gIH0KPiA+ICBF WFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyk7Cj4g PiAgCj4gPiArLyoqCj4gPiArICogZHJtX2F0b21pY19oZWxwZXJfZmFrZV92YmxhbmsgLSBmYWtl IFZCTEFOSyBldmVudHMgaWYgbmVlZGVkCj4gPiArICogQG9sZF9zdGF0ZTogYXRvbWljIHN0YXRl IG9iamVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCj4gPiArICoKPiA+ICsgKiBUaGlzIGZ1 bmN0aW9uIHdhbGtzIGFsbCBDUlRDcyBhbmQgZmFrZSBWQkxBTksgZXZlbnRzIG9uIHRob3NlIHdp dGgKPiA+ICsgKiAmZHJtX2NydGNfc3RhdGUubm9fdmJsYW5rIHNldCB0byB0cnVlIGFuZCAmZHJt X2NydGNfc3RhdGUuZXZlbnQgIT0gTlVMTC4KPiA+ICsgKiBUaGUgcHJpbWFyeSB1c2Ugb2YgdGhp cyBmdW5jdGlvbiBpcyB3cml0ZWJhY2sgY29ubmVjdG9ycyB3b3JraW5nIGluIG9uZXNob3QKPiA+ ICsgKiBtb2RlIGFuZCBmYWtpbmcgVkJMQU5LIGV2ZW50cy4gSW4gdGhpcyBjYXNlIHRoZXkgb25s eSBmYWtlIHRoZSBWQkxBTksgZXZlbnQKPiA+ICsgKiB3aGVuIGEgam9iIGlzIHF1ZXVlZCwgYW5k IGFueSBjaGFuZ2UgdG8gdGhlIHBpcGVsaW5lIHRoYXQgZG9lcyBub3QgdG91Y2ggdGhlCj4gPiAr ICogY29ubmVjdG9yIGlzIGxlYWRpbmcgdG8gdGltZW91dHMgd2hlbiBjYWxsaW5nCj4gPiArICog ZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcygpIG9yCj4gPiArICogZHJtX2F0b21p Y19oZWxwZXJfd2FpdF9mb3JfZmxpcF9kb25lKCkuCj4gPiArICoKPiA+ICsgKiBUaGlzIGlzIHBh cnQgb2YgdGhlIGF0b21pYyBoZWxwZXIgc3VwcG9ydCBmb3Igbm9uYmxvY2tpbmcgY29tbWl0cywg c2VlCj4gPiArICogZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KCkgZm9yIGFuIG92ZXJ2 aWV3Lgo+ID4gKyAqLwo+ID4gK3ZvaWQgZHJtX2F0b21pY19oZWxwZXJfZmFrZV92Ymxhbmsoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKPiA+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJZm9yX2VhY2hfb2xkbmV3 X2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKPiA+ICsJCQkJ ICAgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiA+ICsJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4g PiArCj4gPiArCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5ub192YmxhbmsgJiYgIW9sZF9jcnRjX3N0 YXRlLT5ub192YmxhbmspICAKPiAKPiBVaCwgdGhpcyBlc3NlbnRpYWxseSBtYWtlcyBpdCBpbXBv c3NpYmxlIHRvIHJlc2V0IG5vX3ZibGFuay4KCkkgZG9uJ3Qgd2FudCAtPm5vX3ZibGFuayB0byBi ZSByZXNldCBieSB0aGUgY29yZS4gSXQncyB1cCB0byB0aGUgQ1JUQwpkcml2ZXIgdG8gY2xlYXIv c2V0IGl0IHdoZW4gc29tZXRoaW5nIGNoYW5nZXMgaW4gdGhlIHBpcGVsaW5lLgoKPiBGb3IgY29u dHJvbAo+IGZsb3cgc3RhdGUgYml0cyB3ZSBvbmx5IGNoZWNrIHRoZSBuZXcgc3RhdGUgZm9yIGl0 IChzZWUgZS5nLiB0aGUgdmFyaW91cwo+ICpfY2hhbmdlZCBvciBwbGFuZV9iaXRzIG9yIHdoYXRl dmVyKS4KCkkgdHJpZWQgd2l0aCAhbmV3X2NydGNfc3RhdGUtPm5vX3ZibGFuayBvbmx5LCBidXQg dGhlbiBpdCBkb2VzIG5vdApoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIENSVEMgYW5kIGNvbm5l Y3RvciBhcmUgYmVpbmcgZGlzYWJsZWQsIGFuZCBJCmVuZCB1cCB3aXRoIGEgdGltZW91dC4KCj4g Cj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmb2xkX3N0 YXRlLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiA+ICsJCWlmIChuZXdfY3J0Y19zdGF0ZS0+ ZXZlbnQpIHsKPiA+ICsJCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLAo+ID4gKwkJ CQkJCSAgIG5ld19jcnRjX3N0YXRlLT5ldmVudCk7Cj4gPiArCQkJbmV3X2NydGNfc3RhdGUtPmV2 ZW50ID0gTlVMTDsKPiA+ICsJCX0KPiA+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm9sZF9z dGF0ZS0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gPiArCX0KPiA+ICt9Cj4gPiArRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9mYWtlX3ZibGFuayk7Cj4gPiArCj4gPiAgLyoqCj4g PiAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUgLSBzZXR1cCBwb3NzaWJsZSBu b25ibG9ja2luZyBjb21taXQKPiA+ICAgKiBAb2xkX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0 IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4g aW5kZXggMjZhYWJhNThkNmNlLi45OWUyYTUyOTdjNjkgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRl L2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWlj X2hlbHBlci5oCj4gPiBAQCAtMTAwLDYgKzEwMCw3IEBAIGludCBfX211c3RfY2hlY2sgZHJtX2F0 b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4g PiAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4gPiAgCQkJCSAgIGJvb2wgbm9uYmxvY2spOwo+ID4gIHZvaWQgZHJtX2F0 b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSk7Cj4gPiArdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9mYWtlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4gIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29t bWl0X2h3X2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiA+ICB2b2lkIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o IGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ID4gaW5kZXggMjNlZGRiY2NhYjEwLi43NDM1ZGM2 NmMwOGEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gPiArKysgYi9p bmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gPiBAQCAtODcsNiArODcsMjAgQEAgc3RydWN0IGRybV9w bGFuZV9oZWxwZXJfZnVuY3M7Cj4gPiAgICogQHpwb3NfY2hhbmdlZDogenBvcyB2YWx1ZXMgb2Yg cGxhbmVzIG9uIHRoaXMgY3J0YyBoYXZlIGJlZW4gdXBkYXRlZAo+ID4gICAqIEBjb2xvcl9tZ210 X2NoYW5nZWQ6IGNvbG9yIG1hbmFnZW1lbnQgcHJvcGVydGllcyBoYXZlIGNoYW5nZWQgKGRlZ2Ft bWEgb3IKPiA+ICAgKglnYW1tYSBMVVQgb3IgQ1NDIG1hdHJpeCkKPiA+ICsgKiBAbm9fdmJsYW5r OiByZWZsZWN0cyB0aGUgYWJpbGl0eSBvZiBhIENSVEMgdG8gc2VuZCBWQkxBTksgZXZlbnRzLiBU aGlzIHN0YXRlCj4gPiArICoJdXN1YWxseSBkZXBlbmRzIG9uIHRoZSBwaXBlbGluZSBjb25maWd1 cmF0aW9uLCBhbmQgdGhlIG1haW4gdXN1YWdlIGlzCj4gPiArICoJQ1JUQ3MgZmVlZGluZyBhIHdy aXRlYmFjayBjb25uZWN0b3Igb3BlcmF0aW5nIGluIG9uZXNob3QgbW9kZS4gSW4gdGhpcwo+ID4g KyAqCWNhc2UgdGhlIFZCTEFOSyBldmVudCBpcyBvbmx5IGdlbmVyYXRlZCB3aGVuIGEgam9iIGlz IHF1ZXVlZCB0byB0aGUKPiA+ICsgKgl3cml0ZWJhY2sgY29ubmVjdG9yLCBhbmQgd2Ugd2FudCB0 aGUgY29yZSB0byBmYWtlIFZCTEFOSyBldmVudHMgd2hlbgo+ID4gKyAqCXRoaXMgcGFydCBvZiB0 aGUgcGlwZWxpbmUgaGFzbid0IGNoYW5nZWQgYnV0IG90aGVycyBoYWQgb3Igd2hlbiB0aGUKPiA+ ICsgKglDUlRDIGFuZCBjb25uZWN0b3JzIGFyZSBkaXNhYmxlZC4gIAo+IAo+IHMvYXJlIGRpc2Fi bGVkL2FyZSBnZXR0aW5nIGRpc2FibGVkLwo+IAo+IFlvdSdsbCBuZXZlciBnZXQgYSByZXF1ZXN0 IGZvciBhbiBldmVudCB3aGVuIGl0J3MgYWxyZWFkeSBvZmYuCgpUaGF0J3MgdHJ1ZS4KCj4gCj4g PiArICoJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSgpIHdpbGwgdGhl IHZhbHVlIGZyb20gdGhlCj4gPiArICoJY3VycmVudCBzdGF0ZSwgdGhlIENSVEMgZHJpdmVyIGlz IHRoZW4gcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoaXMKPiA+ICsgKglmaWVsZCB3aGVuIG5l ZWRlZC4gIAo+IAo+IE5vdCBwYXJzaW5nIHRoZSBhYm92ZSAuLi4gcHJvYmFibHkgbWlzc2luZyBh ICIuLi4gd2lsbCBub3QgcmVzZXQgLi4uIgoKRXhhY3RseS4gV2lsbCBhZGQgdGhlIG1pc3Npbmcg d29yZHMuCgo+IAo+ID4gKyAqCU5vdGUgdGhhdCwgZXZlbiB3aGVuIG5vX2JsYW5rIGlzIHNldCB0 byB0cnVlLCB0aGUgQ1JUQyBkcml2ZXIgY2FuIHN0aWxsCj4gPiArICoJc3RlYWwgdGhlICZkcm1f Y3J0Y19zdGF0ZS5ldmVudCBvYmplY3QgYW5kIHNlbmQgdGhlIGV2ZW50IG9uIGl0cyBvd24uCj4g PiArICoJVGhhdCdzIHVzdWFsbHkgd2hhdCBoYXBwZW5zIHdoZW4gYSBqb2IgaXMgcXVldWVkIHRv IHRoZSB3cml0ZWJhY2sKPiA+ICsgKgljb25uZWN0b3IuICAKPiAKPiBUaGUgbGFzdCBzZW50ZW5j ZSBpcyBjb25mdXNpbmcgaW1vLiBKdXN0IGRyb3AgaXQ/CgpZZXMsIEkga25vdywgYnV0IGl0J3Mg YWxzbyBpbXBvcnRhbnQgdG8gc3RhdGUgdGhhdCB0aGUgLT5ub19ibGFuayArCmV2ZW50ID09IE5V TEwgaXMgYSB2YWxpZCBjb21iaW5hdGlvbiwgYW5kIGp1c3QgbWVhbnMgdGhhdCB0aGUgZHJpdmVy CmRlY2lkZWQgdG8gZ2VuZXJhdGUgdGhlIGV2ZW50ICh0aGF0IGhhcHBlbnMgd2hlbiBhIG5ldyBX QiBqb2IgaXMKcXVldWVkKS4KCj4gCj4gUGxlYXNlIHVzZSB0aGUgaW5saW5lIGNvbW1lbnQgc3R5 bGUgZm9yIHN0cnVjdCBtZW1iZXJzLCBhbmQgdGhlbiBhbHNvCj4gcG9saXNoIHRoZSBmb3JtYXR0 aW5nIGEgYml0IChlLmcuIHBhcmFncmFwaCBicmVha3MsIHdoaWNoIGFyZSBvbmx5Cj4gcG9zc2li bGUgd2l0aCB0aGUgaW5saW5lIHN0eWxlKS4KCkkgY29uc2lkZXJlZCB0aGF0LCBidXQgdGhlIG90 aGVyIGZpZWxkcyB3ZXJlIGFscmVhZHkgZG9jdW1lbnRlZCBpbiB0aGUKc2luZ2xlIGJsb2NrIGFi b3ZlIHRoZSBzdHJ1Y3QsIHNvIEkgdGhvdWdodCBrZWVwaW5nIHRoaW5ncyBjb25zaXN0ZW50Cndh cyBiZXR0ZXIuIFNob3VsZCBJIGp1c3QgYWRkIHRoaXMgZmllbGQgZG9jIGlubGluZSBhbmQga2Vl cCB0aGUgb3RoZXIKb25lcyB3aGVyZSB0aGV5IGFyZSwgb3Igc2hvdWxkIEkgYWRkIGEgcGF0Y2gg bW92aW5nIGFsbCBkb2NzIGlubGluZT8KCj4gCj4gV2l0aCB0aGUgbml0cyBhZGRyZXNzZWQ6Cj4g Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4g Cj4gPiAgICogQHBsYW5lX21hc2s6IGJpdG1hc2sgb2YgKDEgPDwgZHJtX3BsYW5lX2luZGV4KHBs YW5lKSkgb2YgYXR0YWNoZWQgcGxhbmVzCj4gPiAgICogQGNvbm5lY3Rvcl9tYXNrOiBiaXRtYXNr IG9mICgxIDw8IGRybV9jb25uZWN0b3JfaW5kZXgoY29ubmVjdG9yKSkgb2YgYXR0YWNoZWQgY29u bmVjdG9ycwo+ID4gICAqIEBlbmNvZGVyX21hc2s6IGJpdG1hc2sgb2YgKDEgPDwgZHJtX2VuY29k ZXJfaW5kZXgoZW5jb2RlcikpIG9mIGF0dGFjaGVkIGVuY29kZXJzCj4gPiBAQCAtMTE4LDYgKzEz Miw3IEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7Cj4gPiAgCWJvb2wgY29ubmVjdG9yc19jaGFu Z2VkIDogMTsKPiA+ICAJYm9vbCB6cG9zX2NoYW5nZWQgOiAxOwo+ID4gIAlib29sIGNvbG9yX21n bXRfY2hhbmdlZCA6IDE7Cj4gPiArCWJvb2wgbm9fdmJsYW5rIDogMTsKPiA+ICAKPiA+ICAJLyog YXR0YWNoZWQgcGxhbmVzIGJpdG1hc2s6Cj4gPiAgCSAqIFdBUk5JTkc6IHRyYW5zaXRpb25hbCBo ZWxwZXJzIGRvIG5vdCBtYWludGFpbiBwbGFuZV9tYXNrIHNvCj4gPiAtLSAKPiA+IDIuMTQuMQo+ ID4gICAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=