From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] drm/i915: Do not acquire crtc state to check clock during modeset, v2. Date: Tue, 27 Oct 2015 15:49:46 +0200 Message-ID: <20151027134946.GF4437@intel.com> References: <1445514996-18733-3-git-send-email-maarten.lankhorst@linux.intel.com> <1445952393-25283-1-git-send-email-maarten.lankhorst@linux.intel.com> <20151027132917.GC4437@intel.com> <562F7EFC.80909@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 3BF2D6EAE6 for ; Tue, 27 Oct 2015 06:49:49 -0700 (PDT) Content-Disposition: inline In-Reply-To: <562F7EFC.80909@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjcsIDIwMTUgYXQgMDI6NDE6MTZQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjctMTAtMTUgb20gMTQ6Mjkgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUdWUsIE9jdCAyNywgMjAxNSBhdCAwMjoyNjozMVBNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBQYXJhbGxlbCBtb2Rlc2V0cyBhcmUgc3RpbGwgbm90IGFsbG93 ZWQsIGJ1dCB0aGlzIHdpbGwgYWxsb3cgdXBkYXRpbmcKPiA+PiBhIGRpZmZlcmVudCBjcnRjIGR1 cmluZyBhIG1vZGVzZXQgaWYgdGhlIGNsb2NrIGlzIG5vdCBjaGFuZ2VkLgo+ID4+Cj4gPj4gQWRk aXRpb25hbGx5IHdoZW4gYWxsIHBpcGVzIGFyZSBEUE1TIG9mZiB0aGUgY2RjbGsgd2lsbCBiZSBs b3dlcmVkCj4gPj4gdG8gdGhlIG1pbmltdW0gYWxsb3dlZC4KPiA+Pgo+ID4+IENoYW5nZXMgc2lu Y2UgdjE6Cj4gPj4gLSBBZGQgZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyBmb3IgdHJhY2tpbmcgd2hp Y2ggY3J0Y3MgYXJlIGFjdGl2ZS4KPiA+PiAtIFJlbmFtZSBtaW5fY2RjbGsgdG8gbWluX3BpeGNs ayBhbmQgbW92ZSB0byBkZXZfcHJpdi4KPiA+PiAtIEFkZCBhIGFjdGl2ZV9jcnRjcyBtYXNrIHdo aWNoIGlzIHVwZGF0ZWQgYXRvbWljYWxseS4KPiA+PiAtIEFkZCBpbnRlbF9hdG9taWNfc3RhdGUt Pm1vZGVzZXQgd2hpY2ggaXMgc2V0IG9uIG1vZGVzZXRzLgo+ID4+IC0gQ29tbWl0IG5ldyBwaXhj bGsvYWN0aXZlX2NydGNzIHJpZ2h0IGFmdGVyIHN0YXRlIHN3YXAuCj4gPj4KPiA+PiBTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg fCAgIDUgKysKPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgIHwgICAy ICstCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE2MCArKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgfCAgIDcgKy0KPiA+PiAgNCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5z ZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiA+PiBpbmRleCA1OWM5NDkyOWYyNWIuLjM3ZWVmODZlNGEwYSAxMDA2NDQKPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+IEBAIC0xODM3LDggKzE4MzcsMTMgQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgewo+ID4+ICAJc3RydWN0IGludGVsX3BpcGVfY3JjIHBpcGVfY3JjW0k5 MTVfTUFYX1BJUEVTXTsKPiA+PiAgI2VuZGlmCj4gPj4gIAo+ID4+ICsJLyogZHBsbCBhbmQgY2Rj bGsgc3RhdGUgaXMgcHJvdGVjdGVkIGJ5IGNvbm5lY3Rpb25fbXV0ZXggKi8KPiA+PiAgCWludCBu dW1fc2hhcmVkX2RwbGw7Cj4gPj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgc2hhcmVkX2Rw bGxzW0k5MTVfTlVNX1BMTFNdOwo+ID4+ICsKPiA+PiArCXVuc2lnbmVkIGludCBhY3RpdmVfY3J0 Y3M7Cj4gPj4gKwl1bnNpZ25lZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107Cj4gPj4g Kwo+ID4+ICAJaW50IGRwaW9fcGh5X2lvc2ZfcG9ydFtJOTE1X05VTV9QSFlTX1ZMVl07Cj4gPj4g IAo+ID4+ICAJc3RydWN0IGk5MTVfd29ya2Fyb3VuZHMgd29ya2Fyb3VuZHM7Cj4gPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+PiBpbmRleCAyNWE4OTFhYTM4MjQuLmNiOGZjZjRm ZTdmMiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMu Ywo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gPj4gQEAg LTMwNSw1ICszMDUsNSBAQCB2b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqcykKPiA+PiAgewo+ID4+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUocyk7Cj4gPj4gIAlkcm1fYXRvbWljX3N0 YXRlX2RlZmF1bHRfY2xlYXIoJnN0YXRlLT5iYXNlKTsKPiA+PiAtCXN0YXRlLT5kcGxsX3NldCA9 IGZhbHNlOwo+ID4+ICsJc3RhdGUtPmRwbGxfc2V0ID0gc3RhdGUtPm1vZGVzZXQgPSBmYWxzZTsK PiA+PiAgfQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBpbmRleCAw MjJlNjI4Yjg1MjAuLmEwNTA4ZDVlOWUxMyAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+PiBAQCAtNTIzNyw2ICs1MjM3LDcgQEAgc3RhdGljIHZvaWQgbW9k ZXNldF9wdXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gPj4gIAo+ID4+ICBzdGF0aWMgdm9pZCBtb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFp bnMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4+ICB7Cj4gPj4gKwlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSk7Cj4gPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiA+PiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g Pj4gIAl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zW0k5MTVfTUFYX1BJUEVTXSA9IHt9Owo+ID4+ IEBAIC01MjQ1LDEzICs1MjQ2LDE4IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRfdXBkYXRlX2NydGNf cG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPj4gIAlpbnQg aTsKPiA+PiAgCj4gPj4gIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRj X3N0YXRlLCBpKSB7Cj4gPj4gLQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ID4+ IC0JCQlwdXRfZG9tYWluc1t0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlXSA9Cj4gPj4gLQkJCQlt b2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoY3J0Yyk7Cj4gPj4gKwkJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPQo+ID4+ICsJCQl0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4+ICsJ CWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+PiArCj4gPj4gKwkJaWYgKCFu ZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKPiA+PiArCQkJY29udGludWU7Cj4gPj4gKwo+ID4+ ICsJCXB1dF9kb21haW5zW3BpcGVdID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKGNy dGMpOwo+ID4+ICAJfQo+ID4+ICAKPiA+PiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NvbW1pdF9jZGNsaykgewo+ID4+IC0JCXVuc2lnbmVkIGludCBjZGNsayA9IHRvX2ludGVsX2F0 b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrOwo+ID4+ICsJCXVuc2lnbmVkIGludCBjZGNsayA9IGlu dGVsX3N0YXRlLT5jZGNsazsKPiA+PiAgCj4gPj4gIAkJaWYgKGNkY2xrICE9IGRldl9wcml2LT5j ZGNsa19mcmVxICYmCj4gPj4gIAkJICAgICFXQVJOX09OKCFzdGF0ZS0+YWxsb3dfbW9kZXNldCkp Cj4gPj4gQEAgLTU5MzgsMjMgKzU5NDQsMzIgQEAgc3RhdGljIGludCBicm94dG9uX2NhbGNfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICBzdGF0aWMgaW50IGlu dGVsX21vZGVfbWF4X3BpeGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+ICAJCQkJIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+PiAgewo+ID4+IC0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGM7Cj4gPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKPiA+PiAtCWludCBtYXhfcGl4Y2xrID0gMDsKPiA+PiArCXN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiA+ PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gPj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNydGNfc3RhdGU7Cj4gPj4gKwl1bnNpZ25lZCBtYXhfcGl4ZWxfcmF0ZSA9IDAsIGk7Cj4g Pj4gKwllbnVtIHBpcGUgcGlwZTsKPiA+PiAgCj4gPj4gLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRl diwgaW50ZWxfY3J0Yykgewo+ID4+IC0JCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2Ny dGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+ID4+IC0JCWlmIChJU19FUlIoY3J0Y19zdGF0 ZSkpCj4gPj4gLQkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ID4+ICsJbWVtY3B5KGlu dGVsX3N0YXRlLT5taW5fcGl4Y2xrLCBkZXZfcHJpdi0+bWluX3BpeGNsaywKPiA+PiArCSAgICAg ICBzaXplb2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKPiA+PiAgCj4gPj4gLQkJaWYgKCFj cnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKPiA+PiAtCQkJY29udGludWU7Cj4gPj4gKwlmb3JfZWFj aF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gPj4gKwkJaW50 IHBpeGNsayA9IDA7Cj4gPj4gIAo+ID4+IC0JCW1heF9waXhjbGsgPSBtYXgobWF4X3BpeGNsaywK PiA+PiAtCQkJCSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7Cj4g Pj4gKwkJaWYgKGNydGNfc3RhdGUtPmVuYWJsZSkKPiA+PiArCQkJcGl4Y2xrID0gY3J0Y19zdGF0 ZS0+YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+ID4+ICsKPiA+PiArCQlpbnRlbF9zdGF0ZS0+ bWluX3BpeGNsa1tpXSA9IHBpeGNsazsKPiA+PiAgCX0KPiA+PiAgCj4gPj4gLQlyZXR1cm4gbWF4 X3BpeGNsazsKPiA+PiArCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykKPiA+PiArCQly ZXR1cm4gMDsKPiA+PiArCj4gPj4gKwlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+ID4+ ICsJCW1heF9waXhlbF9yYXRlID0gbWF4KGludGVsX3N0YXRlLT5taW5fcGl4Y2xrW3BpcGVdLCBt YXhfcGl4ZWxfcmF0ZSk7Cj4gPj4gKwo+ID4+ICsJcmV0dXJuIG1heF9waXhlbF9yYXRlOwo+ID4+ ICB9Cj4gPj4gIAo+ID4+ICBzdGF0aWMgaW50IHZhbGxleXZpZXdfbW9kZXNldF9jYWxjX2NkY2xr KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+PiBAQCAtNjI1NSw2ICs2MjcwLDkg QEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiA+PiAgCWZvcl9lYWNoX3Bvd2VyX2RvbWFpbihkb21haW4sIGRvbWFpbnMpCj4g Pj4gIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIGRvbWFpbik7Cj4gPj4gIAlp bnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSAwOwo+ID4+ICsKPiA+PiArCWRldl9w cml2LT5hY3RpdmVfY3J0Y3MgJj0gfigxIDw8IGludGVsX2NydGMtPnBpcGUpOwo+ID4+ICsJZGV2 X3ByaXYtPm1pbl9waXhjbGtbaW50ZWxfY3J0Yy0+cGlwZV0gPSAwOwo+ID4+ICB9Cj4gPj4gIAo+ ID4+ICAvKgo+ID4+IEBAIC05NDkwLDI5ICs5NTA4LDM5IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25f bW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkK PiA+PiAgLyogY29tcHV0ZSB0aGUgbWF4IHJhdGUgZm9yIG5ldyBjb25maWd1cmF0aW9uICovCj4g Pj4gIHN0YXRpYyBpbnQgaWxrX21heF9waXhlbF9yYXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPiA+PiAgewo+ID4+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4g Pj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+PiAtCWludCBtYXhf cGl4ZWxfcmF0ZSA9IDA7Cj4gPj4gKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9z dGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gPj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdGF0ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+PiArCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+PiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKPiA+PiArCXVuc2lnbmVkIG1heF9waXhlbF9yYXRlID0gMCwgaTsKPiA+PiArCWVudW0g cGlwZSBwaXBlOwo+ID4+ICAKPiA+PiAtCWZvcl9lYWNoX2ludGVsX2NydGMoc3RhdGUtPmRldiwg aW50ZWxfY3J0Yykgewo+ID4+IC0JCWludCBwaXhlbF9yYXRlOwo+ID4+ICsJbWVtY3B5KGludGVs X3N0YXRlLT5taW5fcGl4Y2xrLCBkZXZfcHJpdi0+bWluX3BpeGNsaywKPiA+PiArCSAgICAgICBz aXplb2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKPiA+PiAgCj4gPj4gLQkJY3J0Y19zdGF0 ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7Cj4gPj4g LQkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiA+PiAtCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19z dGF0ZSk7Cj4gPj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0 YXRlLCBpKSB7Cj4gPj4gKwkJaW50IHBpeGNsayA9IDA7Cj4gPj4gIAo+ID4+IC0JCWlmICghY3J0 Y19zdGF0ZS0+YmFzZS5lbmFibGUpCj4gPj4gLQkJCWNvbnRpbnVlOwo+ID4+ICsJCWlmIChjcnRj X3N0YXRlLT5lbmFibGUpIHsKPiA+PiArCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVs X2NydGNfc3RhdGUgPQo+ID4+ICsJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsK PiA+PiAgCj4gPj4gLQkJcGl4ZWxfcmF0ZSA9IGlsa19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0 ZSk7Cj4gPj4gKwkJCXBpeGNsayA9IGlsa19waXBlX3BpeGVsX3JhdGUoaW50ZWxfY3J0Y19zdGF0 ZSk7Cj4gPiBDb3VsZCB5b3UgYXZvaWQgdGhlIHJlaW5kZW50IGFuZCByZW5hbWVzIHBsZWFzZT8K PiA+Cj4gVGhlIHBpeGNsayBoYXMgdG8gYmUgc2V0IGV2ZW4gd2hlbiBlbmFibGVkID0gZmFsc2Uu IFRoaXMgd2F5IHRoZSBuYW1lcyBmb3IgaWxrX21heF9waXhlbF9yYXRlIGFuZCBpbnRlbF9tb2Rl X21heF9waXhjbGsgYXJlIGlkZW50aWNhbC4KCkkgZG9uJ3QgZm9sbG93LgoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK