From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH v2 05/10] drm/i915/gen9: Get rid of redundant watermark values Date: Thu, 13 Oct 2016 17:04:03 -0300 Message-ID: <1476389043.2478.30.camel@intel.com> References: <1475885497-6094-1-git-send-email-cpaul@redhat.com> <1475885497-6094-6-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , Lyude , intel-gfx@lists.freedesktop.org Cc: David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RW0gUXVpLCAyMDE2LTEwLTEzIMOgcyAxNTozOSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3QgZXNj cmV2ZXU6Cj4gT3AgMDgtMTAtMTYgb20gMDI6MTEgc2NocmVlZiBMeXVkZToKPiA+IAo+ID4gTm93 IHRoYXQgd2UndmUgbWFrZSBza2xfd21fbGV2ZWxzIG1ha2UgYSBsaXR0bGUgbW9yZSBzZW5zZSwg d2UgY2FuCj4gPiByZW1vdmUgYWxsIG9mIHRoZSByZWR1bmRhbnQgd20gaW5mb3JtYXRpb24uIFVw IHVudGlsIG5vdyB3ZSdkIGJlZW4KPiA+IHN0b3JpbmcgdHdvIGNvcGllcyBvZiBhbGwgb2YgdGhl IHNrbCB3YXRlcm1hcmtzOiBvbmUgYmVpbmcgdGhlCj4gPiBza2xfcGlwZV93bSBzdHJ1Y3RzLCB0 aGUgb3RoZXIgYmVpbmcgdGhlIGdsb2JhbCB3bSBzdHJ1Y3QgaW4KPiA+IGRybV9pOTE1X3ByaXZh dGUgY29udGFpbmluZyB0aGUgcmF3IHJlZ2lzdGVyIHZhbHVlcy4gVGhpcyBpcwo+ID4gY29uZnVz aW5nCj4gPiBhbmQgcHJvYmxlbWF0aWMsIHNpbmNlIGl0IG1lYW5zIHdlJ3JlIHByb25lIHRvIGFj Y2lkZW50YWxseSBsZXR0aW5nCj4gPiB0aGUKPiA+IHR3byBjb3BpZXMgZ28gb3V0IG9mIHN5bmMu IFNvLCBnZXQgcmlkIG9mIGFsbCBvZiB0aGUgZnVuY3Rpb25zCj4gPiByZXNwb25zaWJsZSBmb3Ig Y29tcHV0aW5nIHRoZSByZWdpc3RlciB2YWx1ZXMgYW5kIGp1c3QgdXNlIGEgc2luZ2xlCj4gPiBo ZWxwZXIsIHNrbF93cml0ZV93bV9sZXZlbCgpLCB0byBjb252ZXJ0IGFuZCB3cml0ZSB0aGUgbmV3 Cj4gPiB3YXRlcm1hcmtzIG9uCj4gPiB0aGUgZmx5Lgo+ID4gCj4gPiBDaGFuZ2VzIHNpbmNlIHYx Ogo+ID4gLSBGaXh1cCBza2xfd3JpdGVfd21fbGV2ZWwoKQo+ID4gLSBGaXh1cCBza2xfd21fbGV2 ZWxfZnJvbV9yZWdfdmFsKCkKPiA+IC0gRG9uJ3QgZm9yZ2V0IHRvIGNvcHkgKmFjdGl2ZSB0byBp bnRlbF9jcnRjLT53bS5hY3RpdmUuc2tsCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEx5dWRlIDxj cGF1bEByZWRoYXQuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxv LnIuemFub25pQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5owqDCoMKgwqDCoMKgfMKgwqDCoDIgLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgfMKgwqAxNCArKy0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmjCoMKgwqDCoMKgfMKgwqDCoDYgKy0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uY8KgwqDCoMKgwqDCoHwgMjA0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tCj4g PiAtLS0tLS0tLS0tLS0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmPC oMKgfMKgwqDCoDggKy0KPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAx NDQgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGlu ZGV4IDAyODdjOTMuLjc2NTgzYjIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g PiBAQCAtMTY0NCw4ICsxNjQ0LDYgQEAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiB7Cj4gPiDC oHN0cnVjdCBza2xfd21fdmFsdWVzIHsKPiA+IMKgCXVuc2lnbmVkIGRpcnR5X3BpcGVzOwo+ID4g wqAJc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiBkZGI7Cj4gPiAtCXVpbnQzMl90IHBsYW5lW0k5 MTVfTUFYX1BJUEVTXVtJOTE1X01BWF9QTEFORVNdWzhdOwo+ID4gLQl1aW50MzJfdCBwbGFuZV90 cmFuc1tJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsKPiA+IMKgfTsKPiA+IMKgCj4g PiDCoHN0cnVjdCBza2xfd21fbGV2ZWwgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IGluZGV4IGE3MWQwNWEuLjM5NDAwYTAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTMzNzgsNiArMzM3OCw4IEBAIHN0YXRpYyB2 b2lkCj4gPiBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAo+ID4gwqAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtCj4gPiA+YmFzZS5jcnRjKTsKPiA+IMKgCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4gPiDCoAljb25zdCBzdHJ1Y3Qgc2tsX3dt X3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtCj4gPiA+d20uc2tsX3Jlc3VsdHM7Cj4gPiArCWNvbnN0 IHN0cnVjdCBza2xfcGxhbmVfd20gKnBfd20gPQo+ID4gKwkJJmNydGNfc3RhdGUtPndtLnNrbC5v cHRpbWFsLnBsYW5lc1swXTsKPiA+IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ IMKgCXUzMiBwbGFuZV9jdGw7Cj4gPiDCoAl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9z dGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiA+IEBAIC0zNDE0LDcgKzM0MTYsNyBAQCBzdGF0aWMgdm9p ZAo+ID4gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiA+IMKgCWludGVsX2NydGMtPmFkanVzdGVkX3kgPSBzcmNfeTsKPiA+IMKgCj4gPiDCoAlp ZiAod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzaygmaW50ZWxfY3J0Yy0+YmFzZSkpCj4g PiAtCQlza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIDApOwo+ID4gKwkJc2tsX3dy aXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiLCAwKTsKPiA+IMKgCj4gPiDC oAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgcGxhbmVfY3RsKTsKPiA+IMKgCUk5MTVf V1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCAoc3JjX3kgPDwgMTYpIHwgc3JjX3gpOwo+ID4g QEAgLTM0NDgsNiArMzQ1MCw4IEBAIHN0YXRpYyB2b2lkCj4gPiBza3lsYWtlX2Rpc2FibGVfcHJp bWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ID4gwqAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSA9Cj4gPiB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiA+ICsJY29u c3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqcF93bSA9ICZjc3RhdGUtCj4gPiA+d20uc2tsLm9wdGlt YWwucGxhbmVzWzBdOwo+ID4gwqAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gwqAK PiA+IMKgCS8qCj4gPiBAQCAtMzQ1NSw3ICszNDU5LDggQEAgc3RhdGljIHZvaWQKPiA+IHNreWxh a2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCj4gPiDC oAnCoCogcGxhbmUncyB2aXNpYmxpdHkgaXNuJ3QgYWN0dWFsbHkgY2hhbmdpbmcgbmVpdGhlciBp cwo+ID4gaXRzIHdhdGVybWFya3MuCj4gPiDCoAnCoCovCj4gPiDCoAlpZiAoIWNydGMtPnByaW1h cnktPnN0YXRlLT52aXNpYmxlKQo+ID4gLQkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMs ICZkZXZfcHJpdi0KPiA+ID53bS5za2xfcmVzdWx0cywgMCk7Cj4gPiArCQlza2xfd3JpdGVfcGxh bmVfd20oaW50ZWxfY3J0YywgcF93bSwKPiA+ICsJCQkJwqDCoMKgJmRldl9wcml2LT53bS5za2xf cmVzdWx0cy5kZGIsCj4gPiAwKTsKPiA+IMKgCj4gPiDCoAlJOTE1X1dSSVRFKFBMQU5FX0NUTChw aXBlLCAwKSwgMCk7Cj4gPiDCoAlJOTE1X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwgMCksIDApOwo+ ID4gQEAgLTEwODE5LDEyICsxMDgyNCwxNSBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJz b3Ioc3RydWN0Cj4gPiBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UsCj4gPiDCoAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gwqAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlID0KPiA+IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4gwqAJ Y29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LQo+ID4gPndtLnNrbF9y ZXN1bHRzOwo+ID4gKwljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0KPiA+ICsJCSZj c3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1tQTEFORV9DVVJTT1JdOwo+ID4gwqAJaW50IHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gwqAJdWludDMyX3QgY250bCA9IDA7Cj4gPiDCoAo+ ID4gwqAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMgJgo+ ID4gZHJtX2NydGNfbWFzayhjcnRjKSkKPiA+IC0JCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxf Y3J0Yywgd20pOwo+ID4gKwkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCBwX3dtLCAm d20tPmRkYik7Cj4gPiDCoAo+ID4gwqAJaWYgKHBsYW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT5i YXNlLnZpc2libGUpIHsKPiA+IMKgCQljbnRsID0gTUNVUlNPUl9HQU1NQV9FTkFCTEU7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGQ2ODRmNGYuLjk1OGRjNzIgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xNzY1LDkgKzE3NjUsMTEg QEAgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fZXF1YWxzKGNvbnN0IHN0cnVjdAo+ID4gc2tsX2Rk Yl9hbGxvY2F0aW9uICpvbGQsCj4gPiDCoGJvb2wgc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IMKgCQkJCcKgc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMpOwo+ID4gwqB2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiAtCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3Zh bHVlcyAqd20pOwo+ID4gKwkJCcKgY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20sCj4gPiAr CQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpOwo+ID4gwqB2b2lkIHNr bF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+IC0JCQlj b25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20sCj4gPiArCQkJY29uc3Qgc3RydWN0IHNrbF9w bGFuZV93bSAqd20sCj4gPiArCQkJY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRi LAo+ID4gwqAJCQlpbnQgcGxhbmUpOwo+ID4gwqB1aW50MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqcGlwZV9jb25maWcpOwo+ID4gwqBi b29sIGlsa19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggNWRiYWYxMi4uNWNiNTM3YyAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IEBAIC0zMDAwLDYgKzMwMDAsOCBAQCBib29sIGlu dGVsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ ID4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ID4gwqAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQo+ID4gdG9faW50 ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiA+IMKgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKPiA+ICsJc3RydWN0IHNrbF9wbGFu ZV93bSAqd207Cj4gPiDCoAllbnVtIHBpcGUgcGlwZTsKPiA+IMKgCWludCBsZXZlbCwgcGxhbmU7 Cj4gPiDCoAo+ID4gQEAgLTMwMjAsMTggKzMwMjIsMjEgQEAgYm9vbCBpbnRlbF9jYW5fZW5hYmxl X3NhZ3Yoc3RydWN0Cj4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+IMKgCS8qIFNpbmNl IHdlJ3JlIG5vdyBndWFyYW50ZWVkIHRvIG9ubHkgaGF2ZSBvbmUgYWN0aXZlCj4gPiBDUlRDLi4u ICovCj4gPiDCoAlwaXBlID0gZmZzKGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIC0gMTsKPiA+ IMKgCWNydGMgPSBkZXZfcHJpdi0+cGlwZV90b19jcnRjX21hcHBpbmdbcGlwZV07Cj4gPiArCWNz dGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+IHRvX2ludGVsX2Ny dGMoY3J0YykpOwo+IFdyb25nIGNzdGF0ZSBoZXJlLCBzaG91bGQgYmUgY3J0Yy0+c3RhdGUgc2lu Y2UgaXQncyBjb21taXR0ZWQgYW5kCj4gY3J0Y19zdGF0ZSBpcyB0aGUgb2xkIHN0YXRlLgoKQWgu Li4gSG93IG1hbnkgaW5zdGFuY2VzIG9mIHRoZSAieW91J3JlIGxvb2tpbmcgYXQgdGhlIHdyb25n IHN0YXRlCnN0cnVjdCIgaGF2ZSB3ZSBzcG90dGVkL2ZpeGVkIGV2ZXIgc2luY2UgdGhlIGludHJv ZHVjdGlvbiBvZiB0aGUgYXRvbWljCmNvZGU/IENhbid0IHdlIHRyeSB0byBkbyBzb21ldGhpbmcg bW9yZSBodW1hbi1wcm9vZiBpbiBvcmRlciB0byBhdm9pZAp0aGVzZSBwcm9ibGVtcyBmcm9tIGhh cHBlbmluZyBhZ2FpbiBhbmQgYWdhaW4/CgpMaWtlIGZvciBleGFtcGxlIGNvcHlpbmcgdGhlIG9s ZCBzdGF0ZXMgdG8gYSBzcGVjaWZpYyBzdHJ1Y3R1cmUgbGlrZQpkcm1fYXRvbWljX3N0YXRlLT5v bGRfc3RhdGVzX3doaWNoX3lvdV9wcm9iYWJseV9zaG91bGRuX2JlX3VzaW5nLCBhbmQKdGhlbiBz ZXR0aW5nIHRoZSBDUlRDL2Nvbm5lY3Rvci9wbGFuZSBzdGF0ZXMgaW4gdGhlIGRybV9hdG9taWNf c3RhdGUKc3RydWN0IHRvIE5VTEwgc28gYnVncyB3aWxsIGJlIG11Y2ggZWFzaWVyIHRvIHNwb3Q/ CgpBbnl3YXksIHdpdGggdGhpcyBwcm9ibGVtIGZpeGVkLCBmZWVsIGZyZWUgdG8gYWRkOgpSZXZp ZXdlZC1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cgo+IAo+IH5N YWFydGVuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=