From mboxrd@z Thu Jan 1 00:00:00 1970 From: "He, Hongbo" Subject: RE: [PATCH 2/6] drm/ttm: add BO priorities for the LRUs Date: Mon, 16 Jan 2017 03:29:42 +0000 Message-ID: References: <1484301071-21703-1-git-send-email-deathsimple@vodafone.de> <1484301071-21703-3-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484301071-21703-3-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" List-Id: dri-devel@lists.freedesktop.org UmV2aWV3ZWQtYnk6IFJvZ2VyLkhlIDxIb25nYm8uSGVAYW1kLmNvbT4gDQoNCi0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBhbWQtZ2Z4IFttYWlsdG86YW1kLWdmeC1ib3VuY2VzQGxp c3RzLmZyZWVkZXNrdG9wLm9yZ10gT24gQmVoYWxmIE9mIENocmlzdGlhbiBLP25pZw0KU2VudDog RnJpZGF5LCBKYW51YXJ5IDEzLCAyMDE3IDU6NTEgUE0NClRvOiBIZSwgSG9uZ2JvIDxIb25nYm8u SGVAYW1kLmNvbT4NCkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBhbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KU3ViamVjdDogW1BBVENIIDIvNl0gZHJtL3R0bTogYWRk IEJPIHByaW9yaXRpZXMgZm9yIHRoZSBMUlVzDQoNCkZyb206IENocmlzdGlhbiBLw7ZuaWcgPGNo cmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4NCg0KVGhpcyB3YXkgdGhlIGRyaXZlciBjYW4gc3BlY2lm eSBhIHByaW9yaXR5IGZvciBhIEJPIHdoaWNoIGhhcyB0aGUgZWZmZWN0IHRoYXQgYSBCTyBpcyBv bmx5IGV2aWN0ZWQgd2hlbiBhbGwgb3RoZXIgQk9zIHdpdGggYSBsb3dlciBwcmlvcml0eSBhcmUg ZXZpY3RlZCBmaXJzdC4NCg0KU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3R0bS5jIHwgIDQgKy0NCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAg ICAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCiBpbmNsdWRlL2RybS90 dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAgfCAgMiArDQogaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaCAgICAgICAgIHwgIDYgKystDQogNCBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRp b25zKCspLCAyNyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uYw0KaW5kZXggMDcxN2RkMS4uMGE2MTkzMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5jDQpAQCAtMTE2Niw4ICsxMTY2LDggQEAgaW50IGFtZGdwdV90dG1f aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCiAJCXN0cnVjdCBhbWRncHVfbW1hbl9s cnUgKmxydSA9ICZhZGV2LT5tbWFuLmxvZzJfc2l6ZVtpXTsNCiANCiAJCWZvciAoaiA9IDA7IGog PCBUVE1fTlVNX01FTV9UWVBFUzsgKytqKQ0KLQkJCWxydS0+bHJ1W2pdID0gJmFkZXYtPm1tYW4u YmRldi5tYW5bal0ubHJ1Ow0KLQkJbHJ1LT5zd2FwX2xydSA9ICZhZGV2LT5tbWFuLmJkZXYuZ2xv Yi0+c3dhcF9scnU7DQorCQkJbHJ1LT5scnVbal0gPSAmYWRldi0+bW1hbi5iZGV2Lm1hbltqXS5s cnVbMF07DQorCQlscnUtPnN3YXBfbHJ1ID0gJmFkZXYtPm1tYW4uYmRldi5nbG9iLT5zd2FwX2xy dVswXTsNCiAJfQ0KIA0KIAlmb3IgKGogPSAwOyBqIDwgVFRNX05VTV9NRU1fVFlQRVM7ICsraikg ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jIGluZGV4IDY2ODMzOTkuLmYwNzhiNDMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jDQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fbW92ZV90b19s cnVfdGFpbCk7DQogDQogc3RydWN0IGxpc3RfaGVhZCAqdHRtX2JvX2RlZmF1bHRfbHJ1X3RhaWwo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykgIHsNCi0JcmV0dXJuIGJvLT5iZGV2LT5tYW5b Ym8tPm1lbS5tZW1fdHlwZV0ubHJ1LnByZXY7DQorCXJldHVybiBiby0+YmRldi0+bWFuW2JvLT5t ZW0ubWVtX3R5cGVdLmxydVtiby0+cHJpb3JpdHldLnByZXY7DQogfQ0KIEVYUE9SVF9TWU1CT0wo dHRtX2JvX2RlZmF1bHRfbHJ1X3RhaWwpOw0KIA0KIHN0cnVjdCBsaXN0X2hlYWQgKnR0bV9ib19k ZWZhdWx0X3N3YXBfbHJ1X3RhaWwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykgIHsNCi0J cmV0dXJuIGJvLT5nbG9iLT5zd2FwX2xydS5wcmV2Ow0KKwlyZXR1cm4gYm8tPmdsb2ItPnN3YXBf bHJ1W2JvLT5wcmlvcml0eV0ucHJldjsNCiB9DQogRVhQT1JUX1NZTUJPTCh0dG1fYm9fZGVmYXVs dF9zd2FwX2xydV90YWlsKTsNCiANCkBAIC03NDEsMjAgKzc0MSwyNyBAQCBzdGF0aWMgaW50IHR0 bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsDQogCXN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gJmJkZXYtPm1hblttZW1fdHlwZV07DQogCXN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm87DQogCWludCByZXQgPSAtRUJVU1ksIHB1dF9jb3VudDsN CisJdW5zaWduZWQgaTsNCiANCiAJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7DQotCWxpc3Rf Zm9yX2VhY2hfZW50cnkoYm8sICZtYW4tPmxydSwgbHJ1KSB7DQotCQlyZXQgPSBfX3R0bV9ib19y ZXNlcnZlKGJvLCBmYWxzZSwgdHJ1ZSwgTlVMTCk7DQotCQlpZiAocmV0KQ0KLQkJCWNvbnRpbnVl Ow0KKwlmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKSB7DQorCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbWFuLT5scnVbaV0sIGxydSkgew0KKwkJCXJldCA9IF9fdHRt X2JvX3Jlc2VydmUoYm8sIGZhbHNlLCB0cnVlLCBOVUxMKTsNCisJCQlpZiAocmV0KQ0KKwkJCQlj b250aW51ZTsNCiANCi0JCWlmIChwbGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1 YWJsZShibywgcGxhY2UpKSB7DQotCQkJX190dG1fYm9fdW5yZXNlcnZlKGJvKTsNCi0JCQlyZXQg PSAtRUJVU1k7DQotCQkJY29udGludWU7DQorCQkJaWYgKHBsYWNlICYmICFiZGV2LT5kcml2ZXIt PmV2aWN0aW9uX3ZhbHVhYmxlKGJvLA0KKwkJCQkJCQkJICAgICAgcGxhY2UpKSB7DQorCQkJCV9f dHRtX2JvX3VucmVzZXJ2ZShibyk7DQorCQkJCXJldCA9IC1FQlVTWTsNCisJCQkJY29udGludWU7 DQorCQkJfQ0KKw0KKwkJCWJyZWFrOw0KIAkJfQ0KIA0KLQkJYnJlYWs7DQorCQlpZiAoIXJldCkN CisJCQlicmVhazsNCiAJfQ0KIA0KIAlpZiAocmV0KSB7DQpAQCAtMTE5Nyw2ICsxMjA0LDcgQEAg aW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LA0KIAl9DQogCWF0b21p Y19pbmMoJmJvLT5nbG9iLT5ib19jb3VudCk7DQogCWRybV92bWFfbm9kZV9yZXNldCgmYm8tPnZt YV9ub2RlKTsNCisJYm8tPnByaW9yaXR5ID0gMDsNCiANCiAJLyoNCiAJICogRm9yIHR0bV9ib190 eXBlX2RldmljZSBidWZmZXJzLCBhbGxvY2F0ZSBAQCAtMTI5NywxOCArMTMwNSwyMSBAQCBzdGF0 aWMgaW50IHR0bV9ib19mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LA0KIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7DQogCXN0cnVjdCBm ZW5jZSAqZmVuY2U7DQogCWludCByZXQ7DQorCXVuc2lnbmVkIGk7DQogDQogCS8qDQogCSAqIENh bid0IHVzZSBzdGFuZGFyZCBsaXN0IHRyYXZlcnNhbCBzaW5jZSB3ZSdyZSB1bmxvY2tpbmcuDQog CSAqLw0KIA0KIAlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsNCi0Jd2hpbGUgKCFsaXN0X2Vt cHR5KCZtYW4tPmxydSkpIHsNCi0JCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7DQotCQly ZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYsIG1lbV90eXBlLCBOVUxMLCBmYWxzZSwgZmFs c2UpOw0KLQkJaWYgKHJldCkNCi0JCQlyZXR1cm4gcmV0Ow0KLQkJc3Bpbl9sb2NrKCZnbG9iLT5s cnVfbG9jayk7DQorCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsN CisJCXdoaWxlICghbGlzdF9lbXB0eSgmbWFuLT5scnVbaV0pKSB7DQorCQkJc3Bpbl91bmxvY2so Jmdsb2ItPmxydV9sb2NrKTsNCisJCQlyZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYsIG1l bV90eXBlLCBOVUxMLCBmYWxzZSwgZmFsc2UpOw0KKwkJCWlmIChyZXQpDQorCQkJCXJldHVybiBy ZXQ7DQorCQkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7DQorCQl9DQogCX0NCiAJc3Bpbl91 bmxvY2soJmdsb2ItPmxydV9sb2NrKTsNCiANCkBAIC0xMzg1LDYgKzEzOTYsNyBAQCBpbnQgdHRt X2JvX2luaXRfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIHR5cGUsICB7 DQogCWludCByZXQgPSAtRUlOVkFMOw0KIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h bjsNCisJdW5zaWduZWQgaTsNCiANCiAJQlVHX09OKHR5cGUgPj0gVFRNX05VTV9NRU1fVFlQRVMp Ow0KIAltYW4gPSAmYmRldi0+bWFuW3R5cGVdOw0KQEAgLTE0MTAsNyArMTQyMiw4IEBAIGludCB0 dG1fYm9faW5pdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgdHlwZSwN CiAJbWFuLT51c2VfdHlwZSA9IHRydWU7DQogCW1hbi0+c2l6ZSA9IHBfc2l6ZTsNCiANCi0JSU5J VF9MSVNUX0hFQUQoJm1hbi0+bHJ1KTsNCisJZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9fUFJJ T1JJVFk7ICsraSkNCisJCUlOSVRfTElTVF9IRUFEKCZtYW4tPmxydVtpXSk7DQogCW1hbi0+bW92 ZSA9IE5VTEw7DQogDQogCXJldHVybiAwOw0KQEAgLTE0NDIsNiArMTQ1NSw3IEBAIGludCB0dG1f Ym9fZ2xvYmFsX2luaXQoc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNlICpyZWYpDQogCQljb250 YWluZXJfb2YocmVmLCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYsIHJlZik7DQogCXN0cnVjdCB0 dG1fYm9fZ2xvYmFsICpnbG9iID0gcmVmLT5vYmplY3Q7DQogCWludCByZXQ7DQorCXVuc2lnbmVk IGk7DQogDQogCW11dGV4X2luaXQoJmdsb2ItPmRldmljZV9saXN0X211dGV4KTsNCiAJc3Bpbl9s b2NrX2luaXQoJmdsb2ItPmxydV9sb2NrKTsNCkBAIC0xNDUzLDcgKzE0NjcsOCBAQCBpbnQgdHRt X2JvX2dsb2JhbF9pbml0KHN0cnVjdCBkcm1fZ2xvYmFsX3JlZmVyZW5jZSAqcmVmKQ0KIAkJZ290 byBvdXRfbm9fZHJwOw0KIAl9DQogDQotCUlOSVRfTElTVF9IRUFEKCZnbG9iLT5zd2FwX2xydSk7 DQorCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpDQorCQlJTklUX0xJ U1RfSEVBRCgmZ2xvYi0+c3dhcF9scnVbaV0pOw0KIAlJTklUX0xJU1RfSEVBRCgmZ2xvYi0+ZGV2 aWNlX2xpc3QpOw0KIA0KIAl0dG1fbWVtX2luaXRfc2hyaW5rKCZnbG9iLT5zaHJpbmssIHR0bV9i b19zd2Fwb3V0KTsgQEAgLTE1MTIsOCArMTUyNyw5IEBAIGludCB0dG1fYm9fZGV2aWNlX3JlbGVh c2Uoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpDQogCWlmIChsaXN0X2VtcHR5KCZiZGV2LT5k ZGVzdHJveSkpDQogCQlUVE1fREVCVUcoIkRlbGF5ZWQgZGVzdHJveSBsaXN0IHdhcyBjbGVhblxu Iik7DQogDQotCWlmIChsaXN0X2VtcHR5KCZiZGV2LT5tYW5bMF0ubHJ1KSkNCi0JCVRUTV9ERUJV RygiU3dhcCBsaXN0IHdhcyBjbGVhblxuIik7DQorCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JP X1BSSU9SSVRZOyArK2kpDQorCQlpZiAobGlzdF9lbXB0eSgmYmRldi0+bWFuWzBdLmxydVswXSkp DQorCQkJVFRNX0RFQlVHKCJTd2FwIGxpc3QgJWQgd2FzIGNsZWFuXG4iLCBpKTsNCiAJc3Bpbl91 bmxvY2soJmdsb2ItPmxydV9sb2NrKTsNCiANCiAJZHJtX3ZtYV9vZmZzZXRfbWFuYWdlcl9kZXN0 cm95KCZiZGV2LT52bWFfbWFuYWdlcik7DQpAQCAtMTY2NSwxMCArMTY4MSwxNSBAQCBzdGF0aWMg aW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fbWVtX3NocmluayAqc2hyaW5rKQ0KIAlpbnQg cmV0ID0gLUVCVVNZOw0KIAlpbnQgcHV0X2NvdW50Ow0KIAl1aW50MzJfdCBzd2FwX3BsYWNlbWVu dCA9IChUVE1fUExfRkxBR19DQUNIRUQgfCBUVE1fUExfRkxBR19TWVNURU0pOw0KKwl1bnNpZ25l ZCBpOw0KIA0KIAlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsNCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShibywgJmdsb2ItPnN3YXBfbHJ1LCBzd2FwKSB7DQotCQlyZXQgPSBfX3R0bV9ib19yZXNl cnZlKGJvLCBmYWxzZSwgdHJ1ZSwgTlVMTCk7DQorCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JP X1BSSU9SSVRZOyArK2kpIHsNCisJCWxpc3RfZm9yX2VhY2hfZW50cnkoYm8sICZnbG9iLT5zd2Fw X2xydVtpXSwgc3dhcCkgew0KKwkJCXJldCA9IF9fdHRtX2JvX3Jlc2VydmUoYm8sIGZhbHNlLCB0 cnVlLCBOVUxMKTsNCisJCQlpZiAoIXJldCkNCisJCQkJYnJlYWs7DQorCQl9DQogCQlpZiAoIXJl dCkNCiAJCQlicmVhazsNCiAJfQ0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f YXBpLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oIGluZGV4IGJiNmEzMzUuLmYxOTU4 OTkgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oDQorKysgYi9pbmNs dWRlL2RybS90dG0vdHRtX2JvX2FwaS5oDQpAQCAtMjE1LDYgKzIxNSw4IEBAIHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCB7DQogDQogCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlIHZtYV9ub2Rl Ow0KIA0KKwl1bnNpZ25lZCBwcmlvcml0eTsNCisNCiAJLyoqDQogCSAqIFNwZWNpYWwgbWVtYmVy cyB0aGF0IGFyZSBwcm90ZWN0ZWQgYnkgdGhlIHJlc2VydmUgbG9jaw0KIAkgKiBhbmQgdGhlIGJv Ojpsb2NrIHdoZW4gd3JpdHRlbiB0by4gQ2FuIGJlIHJlYWQgd2l0aCBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJp dmVyLmggaW5kZXggMTJhYTE1NS4uOTBkZDVlOSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmgNCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgN CkBAIC00Miw2ICs0Miw4IEBADQogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+DQogI2luY2x1 ZGUgPGxpbnV4L3Jlc2VydmF0aW9uLmg+DQogDQorI2RlZmluZSBUVE1fTUFYX0JPX1BSSU9SSVRZ CTE2DQorDQogc3RydWN0IHR0bV9iYWNrZW5kX2Z1bmMgew0KIAkvKioNCiAJICogc3RydWN0IHR0 bV9iYWNrZW5kX2Z1bmMgbWVtYmVyIGJpbmQgQEAgLTI5OCw3ICszMDAsNyBAQCBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgew0KIAkgKiBQcm90ZWN0ZWQgYnkgdGhlIGdsb2JhbC0+bHJ1X2xv Y2suDQogCSAqLw0KIA0KLQlzdHJ1Y3QgbGlzdF9oZWFkIGxydTsNCisJc3RydWN0IGxpc3RfaGVh ZCBscnVbVFRNX01BWF9CT19QUklPUklUWV07DQogDQogCS8qDQogCSAqIFByb3RlY3RlZCBieSBA bW92ZV9sb2NrLg0KQEAgLTUxOCw3ICs1MjAsNyBAQCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCB7DQog CS8qKg0KIAkgKiBQcm90ZWN0ZWQgYnkgdGhlIGxydV9sb2NrLg0KIAkgKi8NCi0Jc3RydWN0IGxp c3RfaGVhZCBzd2FwX2xydTsNCisJc3RydWN0IGxpc3RfaGVhZCBzd2FwX2xydVtUVE1fTUFYX0JP X1BSSU9SSVRZXTsNCiANCiAJLyoqDQogCSAqIEludGVybmFsIHByb3RlY3Rpb24uDQotLQ0KMi43 LjQNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmFt ZC1nZnggbWFpbGluZyBsaXN0DQphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcg bGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK