From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCHv2 2/4] st/xa: use pipe-loader to get screen Date: Tue, 11 Feb 2014 04:36:35 +0000 Message-ID: <52F9A8D3.4050206@gmail.com> References: <1392057261-25942-1-git-send-email-robdclark@gmail.com> <1392057261-25942-3-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-we0-f175.google.com (mail-we0-f175.google.com [74.125.82.175]) by gabe.freedesktop.org (Postfix) with ESMTP id 88D08F9ED3 for ; Mon, 10 Feb 2014 20:34:27 -0800 (PST) Received: by mail-we0-f175.google.com with SMTP id q59so4929658wes.6 for ; Mon, 10 Feb 2014 20:34:26 -0800 (PST) In-Reply-To: <1392057261-25942-3-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: Rob Clark , dri-devel@lists.freedesktop.org Cc: emil.l.velikov@gmail.com, Rob Clark List-Id: dri-devel@lists.freedesktop.org T24gMTAvMDIvMTQgMTg6MzQsIFJvYiBDbGFyayB3cm90ZToKPiBGcm9tOiBSb2IgQ2xhcmsgPHJv YmNsYXJrQGZyZWVkZXNrdG9wLm9yZz4KPiAKPiBUaGlzIGxldHMgbXVsdGlwbGUgZ2FsbGl1bSBk cml2ZXJzIHVzZSBYQS4KPiAKSGkgUm9iLAoKU2VlbXMgbGlrZSBJIHNob3VsZCBoYXZlIGV4cGxh aW5lZCBhIGJpdCBiZXR0ZXIuCgpUaGVyZSBpcyBubyBuZWVkIHRvIGhhdmUgc291cmNlZmlsZXMg aW4gb3JkZXIgdG8gaGF2ZSBhIHNwZWNpZmljIHRhcmdldC4KQWxsIHlvdSBuZWVkZWQgd2FzIHRv IGxpbmsgdGhlIHN0YXRlLXRyYWNrZXIsIG1lc2FnYWxsaXVtLCBnYWxsaXVtKGF1eApsaWJyYXJ5 KSwgcGlwZS1sb2FkZXIgYW5kIGEgZmV3IHdpbnN5cycgdG8gd3JhcCB1cCB0aGUgbGlicmFyeS4K ClRoZSBvcGVuY2wgdGFyZ2V0ICsgbXkgdmRwYXUvZHJpIHBhdGNoZXMgYXJlIGEgZGVjZW50IGV4 YW1wbGUgb2Ygd2hhdCBJCmhhZCBpbiBtaW5kLgoKU29ycnkgZm9yIHRoZSBjb25mdXNpb24KLUVt aWwKCj4gU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2JjbGFya0BmcmVlZGVza3RvcC5vcmc+ Cj4gLS0tCj4gIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA5ICsrLS0KPiAgc3JjL2dhbGxpdW0vc3RhdGVfdHJhY2tlcnMveGEvTWFrZWZpbGUuYW0gICAg IHwgIDEgKwo+ICBzcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94YS94YV9wcml2LmggICAgICAg fCAgMSArCj4gIHNyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hhL3hhX3RyYWNrZXIuYyAgICB8 ICA5ICsrKy0KPiAgc3JjL2dhbGxpdW0vdGFyZ2V0cy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAg IHwgIDggKystLQo+ICBzcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC9NYWtlZmlsZS5hbSAg ICAgfCA2MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgc3JjL2dhbGxpdW0vdGFyZ2V0cy94 YS12bXdnZngvdm13X3RhcmdldC5jICAgIHwgMjYgLS0tLS0tLS0tLQo+ICBzcmMvZ2FsbGl1bS90 YXJnZXRzL3hhLXZtd2dmeC94YXRyYWNrZXIucGMuaW4gfCAgOSAtLS0tCj4gIHNyYy9nYWxsaXVt L3RhcmdldHMveGEvTWFrZWZpbGUuYW0gICAgICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICBzcmMvZ2FsbGl1bS90YXJnZXRzL3hhL3hhLmMgICAgICAgICAgICAgICAg ICAgfCA0OSArKysrKysrKysrKysrKysrKysrCj4gIHNyYy9nYWxsaXVtL3RhcmdldHMveGEveGEu aCAgICAgICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKwo+ICBzcmMvZ2FsbGl1bS90 YXJnZXRzL3hhL3hhdHJhY2tlci5wYy5pbiAgICAgICAgfCAgOSArKysrCj4gIDEyIGZpbGVzIGNo YW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCAxMDUgZGVsZXRpb25zKC0pCj4gIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC9NYWtlZmlsZS5hbQo+ICBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS12bXdnZngvdm13X3RhcmdldC5j Cj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC94YXRy YWNrZXIucGMuaW4KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9nYWxsaXVtL3RhcmdldHMveGEv TWFrZWZpbGUuYW0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9nYWxsaXVtL3RhcmdldHMveGEv eGEuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS94YS5oCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvZ2FsbGl1bS90YXJnZXRzL3hhL3hhdHJhY2tlci5wYy5p bgo+IAo+IGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKPiBpbmRleCBj YmE2MzAxLi4yOWNhOTU0IDEwMDY0NAo+IC0tLSBhL2NvbmZpZ3VyZS5hYwo+ICsrKyBiL2NvbmZp Z3VyZS5hYwo+IEBAIC0xMjcwLDYgKzEyNzAsNyBAQCBkbmwgWEEgY29uZmlndXJhdGlvbgo+ICBk bmwKPiAgaWYgdGVzdCAieCRlbmFibGVfeGEiID0geHllczsgdGhlbgo+ICAgICAgR0FMTElVTV9T VEFURV9UUkFDS0VSU19ESVJTPSJ4YSAkR0FMTElVTV9TVEFURV9UUkFDS0VSU19ESVJTIgo+ICsg ICAgZW5hYmxlX2dhbGxpdW1fbG9hZGVyPXllcwo+ICBmaQo+ICBBTV9DT05ESVRJT05BTChIQVZF X1NUX1hBLCB0ZXN0ICJ4JGVuYWJsZV94YSIgPSB4eWVzKQo+ICAKPiBAQCAtMTc0Myw3ICsxNzQ0 LDcgQEAgaWYgdGVzdCAieCR3aXRoX2dhbGxpdW1fZHJpdmVycyIgIT0geDsgdGhlbgo+ICAgICAg ICAgIHhzdmdhKQo+ICAgICAgICAgICAgICBIQVZFX0dBTExJVU1fU1ZHQT15ZXMKPiAgICAgICAg ICAgICAgR0FMTElVTV9EUklWRVJTX0RJUlM9IiRHQUxMSVVNX0RSSVZFUlNfRElSUyBzdmdhIHNv ZnRwaXBlIgo+IC0gICAgICAgICAgICBnYWxsaXVtX2NoZWNrX3N0ICJzdmdhL2RybSIgImRyaS12 bXdnZngiICJ4YS12bXdnZngiCj4gKyAgICAgICAgICAgIGdhbGxpdW1fY2hlY2tfc3QgInN2Z2Ev ZHJtIiAiZHJpLXZtd2dmeCIgIiIKPiAgICAgICAgICAgICAgOzsKPiAgICAgICAgICB4aTkxNSkK PiAgICAgICAgICAgICAgSEFWRV9HQUxMSVVNX0k5MTU9eWVzCj4gQEAgLTE5NjIsNyArMTk2Myw3 IEBAIEFDX1NVQlNUKFtYVk1DX01BSk9SXSwgMSkKPiAgQUNfU1VCU1QoW1hWTUNfTUlOT1JdLCAw KQo+ICAKPiAgQUNfU1VCU1QoW1hBX01BSk9SXSwgMikKPiAtQUNfU1VCU1QoW1hBX01JTk9SXSwg MSkKPiArQUNfU1VCU1QoW1hBX01JTk9SXSwgMikKPiAgQUNfU1VCU1QoW1hBX1RJTlldLCAwKQo+ ICBBQ19TVUJTVChbWEFfVkVSU0lPTl0sICIkWEFfTUFKT1IuJFhBX01JTk9SLiRYQV9USU5ZIikK PiAgCj4gQEAgLTIwMzUsNiArMjAzNiw4IEBAIEFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGUKPiAg CQlzcmMvZ2FsbGl1bS90YXJnZXRzL2VnbC1zdGF0aWMvTWFrZWZpbGUKPiAgCQlzcmMvZ2FsbGl1 bS90YXJnZXRzL2dibS9NYWtlZmlsZQo+ICAJCXNyYy9nYWxsaXVtL3RhcmdldHMvb3BlbmNsL01h a2VmaWxlCj4gKwkJc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS9NYWtlZmlsZQo+ICsJCXNyYy9nYWxs aXVtL3RhcmdldHMveGEveGF0cmFja2VyLnBjCj4gIAkJc3JjL2dhbGxpdW0vdGFyZ2V0cy9vc21l c2EvTWFrZWZpbGUKPiAgCQlzcmMvZ2FsbGl1bS90YXJnZXRzL29zbWVzYS9vc21lc2EucGMKPiAg CQlzcmMvZ2FsbGl1bS90YXJnZXRzL3BpcGUtbG9hZGVyL01ha2VmaWxlCj4gQEAgLTIwNDYsOCAr MjA0OSw2IEBAIEFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGUKPiAgCQlzcmMvZ2FsbGl1bS90YXJn ZXRzL3I2MDAveHZtYy9NYWtlZmlsZQo+ICAJCXNyYy9nYWxsaXVtL3RhcmdldHMvbGliZ2wteGxp Yi9NYWtlZmlsZQo+ICAJCXNyYy9nYWxsaXVtL3RhcmdldHMvdmRwYXUtbm91dmVhdS9NYWtlZmls ZQo+IC0JCXNyYy9nYWxsaXVtL3RhcmdldHMveGEtdm13Z2Z4L01ha2VmaWxlCj4gLQkJc3JjL2dh bGxpdW0vdGFyZ2V0cy94YS12bXdnZngveGF0cmFja2VyLnBjCj4gIAkJc3JjL2dhbGxpdW0vdGFy Z2V0cy94dm1jLW5vdXZlYXUvTWFrZWZpbGUKPiAgCQlzcmMvZ2FsbGl1bS90ZXN0cy90cml2aWFs L01ha2VmaWxlCj4gIAkJc3JjL2dhbGxpdW0vdGVzdHMvdW5pdC9NYWtlZmlsZQo+IGRpZmYgLS1n aXQgYS9zcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94YS9NYWtlZmlsZS5hbSBiL3NyYy9nYWxs aXVtL3N0YXRlX3RyYWNrZXJzL3hhL01ha2VmaWxlLmFtCj4gaW5kZXggN2QwYjM2Ni4uYWY3OWNj ZCAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94YS9NYWtlZmlsZS5h bQo+ICsrKyBiL3NyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hhL01ha2VmaWxlLmFtCj4gQEAg LTI5LDYgKzI5LDcgQEAgQU1fQ0ZMQUdTID0gXAo+ICAJJChWSVNJQklMSVRZX0NGTEFHUykKPiAg Cj4gIEFNX0NQUEZMQUdTID0gXAo+ICsJLUkkKHRvcF9zcmNkaXIpL3NyYy9nYWxsaXVtL3Rhcmdl dHMveGEgXAo+ICAJLUkkKHRvcF9zcmNkaXIpL3NyYy9nYWxsaXVtLyBcCj4gIAktSSQodG9wX3Ny Y2Rpcikvc3JjL2dhbGxpdW0vd2luc3lzIFwKPiAgCS1JJCh0b3Bfc3JjZGlyKS9zcmMvZ2FsbGl1 bS9kcml2ZXJzCj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hhL3hh X3ByaXYuaCBiL3NyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hhL3hhX3ByaXYuaAo+IGluZGV4 IGVlMTgyZTcuLmI5OWMyMTQgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vc3RhdGVfdHJhY2tl cnMveGEveGFfcHJpdi5oCj4gKysrIGIvc3JjL2dhbGxpdW0vc3RhdGVfdHJhY2tlcnMveGEveGFf cHJpdi5oCj4gQEAgLTc0LDYgKzc0LDcgQEAgc3RydWN0IHhhX3RyYWNrZXIgewo+ICAgICAgdW5z aWduZWQgaW50IGZvcm1hdF9tYXBbWEFfTEFTVF9TVVJGQUNFX1RZUEVdWzJdOwo+ICAgICAgaW50 IGRfZGVwdGhfYml0c19sYXN0Owo+ICAgICAgaW50IGRzX2RlcHRoX2JpdHNfbGFzdDsKPiArICAg IHN0cnVjdCBwaXBlX2xvYWRlcl9kZXZpY2UgKmRldjsKPiAgICAgIHN0cnVjdCBwaXBlX3NjcmVl biAqc2NyZWVuOwo+ICAgICAgc3RydWN0IHhhX2NvbnRleHQgKmRlZmF1bHRfY3R4Owo+ICB9Owo+ IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94YS94YV90cmFja2VyLmMg Yi9zcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94YS94YV90cmFja2VyLmMKPiBpbmRleCBjZGE2 NTAxLi42OTQzYTI5IDEwMDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hh L3hhX3RyYWNrZXIuYwo+ICsrKyBiL3NyYy9nYWxsaXVtL3N0YXRlX3RyYWNrZXJzL3hhL3hhX3Ry YWNrZXIuYwo+IEBAIC0yOCw4ICsyOCwxMCBAQAo+ICAKPiAgI2luY2x1ZGUgInhhX3RyYWNrZXIu aCIKPiAgI2luY2x1ZGUgInhhX3ByaXYuaCIKPiArI2luY2x1ZGUgInhhLmgiCj4gICNpbmNsdWRl ICJwaXBlL3Bfc3RhdGUuaCIKPiAgI2luY2x1ZGUgInBpcGUvcF9mb3JtYXQuaCIKPiArI2luY2x1 ZGUgInBpcGUtbG9hZGVyL3BpcGVfbG9hZGVyLmgiCj4gICNpbmNsdWRlICJzdGF0ZV90cmFja2Vy L2RybV9kcml2ZXIuaCIKPiAgI2luY2x1ZGUgInV0aWwvdV9pbmxpbmVzLmgiCj4gIAo+IEBAIC0x NDMsNyArMTQ1LDkgQEAgeGFfdHJhY2tlcl9jcmVhdGUoaW50IGRybV9mZCkKPiAgICAgIGlmICgh eGEpCj4gIAlyZXR1cm4gTlVMTDsKPiAgCj4gLSAgICB4YS0+c2NyZWVuID0gZHJpdmVyX2Rlc2Ny aXB0b3IuY3JlYXRlX3NjcmVlbihkcm1fZmQpOwo+ICsgICAgeGEtPmRldiA9IHhhX3BpcGVfcHJv YmUoZHJtX2ZkKTsKPiArICAgIGlmICh4YS0+ZGV2KQo+ICsJeGEtPnNjcmVlbiA9IHhhX3BpcGVf Y3JlYXRlX3NjcmVlbih4YS0+ZGV2KTsKPiAgICAgIGlmICgheGEtPnNjcmVlbikKPiAgCWdvdG8g b3V0X25vX3NjcmVlbjsKPiAgCj4gQEAgLTE5MCw2ICsxOTQsOCBAQCB4YV90cmFja2VyX2NyZWF0 ZShpbnQgZHJtX2ZkKQo+ICAgb3V0X25vX3BpcGU6Cj4gICAgICB4YS0+c2NyZWVuLT5kZXN0cm95 KHhhLT5zY3JlZW4pOwo+ICAgb3V0X25vX3NjcmVlbjoKPiArICAgIGlmICh4YS0+ZGV2KQo+ICsJ eGFfcGlwZV9yZWxlYXNlKHhhLT5kZXYpOwo+ICAgICAgZnJlZSh4YSk7Cj4gICAgICByZXR1cm4g TlVMTDsKPiAgfQo+IEBAIC0yMDAsNiArMjA2LDcgQEAgeGFfdHJhY2tlcl9kZXN0cm95KHN0cnVj dCB4YV90cmFja2VyICp4YSkKPiAgICAgIGZyZWUoeGEtPnN1cHBvcnRlZF9mb3JtYXRzKTsKPiAg ICAgIHhhX2NvbnRleHRfZGVzdHJveSh4YS0+ZGVmYXVsdF9jdHgpOwo+ICAgICAgeGEtPnNjcmVl bi0+ZGVzdHJveSh4YS0+c2NyZWVuKTsKPiArICAgIHhhX3BpcGVfcmVsZWFzZSh4YS0+ZGV2KTsK PiAgICAgIGZyZWUoeGEpOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS90YXJn ZXRzL01ha2VmaWxlLmFtIGIvc3JjL2dhbGxpdW0vdGFyZ2V0cy9NYWtlZmlsZS5hbQo+IGluZGV4 IGUzNTYwMjAuLmE3YzcwZjQgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vdGFyZ2V0cy9NYWtl ZmlsZS5hbQo+ICsrKyBiL3NyYy9nYWxsaXVtL3RhcmdldHMvTWFrZWZpbGUuYW0KPiBAQCAtMzQs NiArMzQsMTAgQEAgaWYgSEFWRV9HQUxMSVVNX0dCTQo+ICBTVUJESVJTICs9IGdibQo+ICBlbmRp Zgo+ICAKPiAraWYgSEFWRV9TVF9YQQo+ICtTVUJESVJTICs9IHhhCj4gK2VuZGlmCj4gKwo+ICBp ZiBIQVZFX0NMT1ZFUgo+ICBTVUJESVJTICs9IG9wZW5jbAo+ICBlbmRpZgo+IEBAIC00MiwxMCAr NDYsNiBAQCBpZiBIQVZFX0dBTExJVU1fU1ZHQQo+ICBpZiBIQVZFX0RSSQo+ICBTVUJESVJTICs9 IGRyaS12bXdnZngKPiAgZW5kaWYKPiAtCj4gLWlmIEhBVkVfU1RfWEEKPiAtU1VCRElSUyArPSB4 YS12bXdnZngKPiAtZW5kaWYKPiAgZW5kaWYKPiAgCj4gIGlmIEhBVkVfR0FMTElVTV9GUkVFRFJF Tk8KPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS12bXdnZngvTWFrZWZpbGUu YW0gYi9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC9NYWtlZmlsZS5hbQo+IGRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDZmZTA1MTAuLjAwMDAwMDAKPiAtLS0gYS9zcmMvZ2Fs bGl1bS90YXJnZXRzL3hhLXZtd2dmeC9NYWtlZmlsZS5hbQo+ICsrKyAvZGV2L251bGwKPiBAQCAt MSw2MSArMCwwIEBACj4gLSMgQ29weXJpZ2h0IMKpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KPiAt Iwo+IC0jIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhCj4gLSMgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiAtIyB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCj4gLSMgdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gLSMgYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gLSMgU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKPiAtIwo+IC0jIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiAtIyBwYXJhZ3JhcGgpIHNoYWxs IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl Cj4gLSMgU29mdHdhcmUuCj4gLSMKPiAtIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKPiAtIyBFWFBSRVNTIE9SIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiAtIyBNRVJD SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAo+IC0jIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VAo+IC0jIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLAo+IC0jIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAo+IC0jIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiAtIyBERUFMSU5HUyBJTiBUSEUg U09GVFdBUkUuCj4gLQo+IC1pbmNsdWRlICQodG9wX3NyY2Rpcikvc3JjL2dhbGxpdW0vQXV0b21h a2UuaW5jCj4gLQo+IC1BTV9DRkxBR1MgPSBcCj4gLQktV2FsbCAtcGVkYW50aWMgXAo+IC0JJChH QUxMSVVNX0NGTEFHUykgXAo+IC0JJChYT1JHX0NGTEFHUykKPiAtQU1fQ1BQRkxBR1MgPSBcCj4g LQktSSQodG9wX3NyY2Rpcikvc3JjL2dhbGxpdW0vZHJpdmVycyBcCj4gLQktSSQodG9wX3NyY2Rp cikvc3JjL2dhbGxpdW0vd2luc3lzCj4gLQo+IC1wa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtn Y29uZmlnCj4gLXBrZ2NvbmZpZ19EQVRBID0geGF0cmFja2VyLnBjCj4gLQo+IC1saWJfTFRMSUJS QVJJRVMgPSBsaWJ4YXRyYWNrZXIubGEKPiAtCj4gLWxpYnhhdHJhY2tlcl9sYV9TT1VSQ0VTID0g dm13X3RhcmdldC5jCj4gLQo+IC1saWJ4YXRyYWNrZXJfbGFfTERGTEFHUyA9IC12ZXJzaW9uLW51 bWJlciAkKFhBX01BSk9SKTokKFhBX01JTk9SKTokKFhBX1RJTlkpCj4gLQo+IC1saWJ4YXRyYWNr ZXJfbGFfTElCQUREID0gXAo+IC0JJCh0b3BfYnVpbGRkaXIpL3NyYy9nYWxsaXVtL2F1eGlsaWFy eS9saWJnYWxsaXVtLmxhIFwKPiAtCSQodG9wX2J1aWxkZGlyKS9zcmMvZ2FsbGl1bS9zdGF0ZV90 cmFja2Vycy94YS9saWJ4YXRyYWNrZXIubGEgXAo+IC0JJCh0b3BfYnVpbGRkaXIpL3NyYy9nYWxs aXVtL3dpbnN5cy9zdmdhL2RybS9saWJzdmdhZHJtLmxhIFwKPiAtCSQodG9wX2J1aWxkZGlyKS9z cmMvZ2FsbGl1bS9kcml2ZXJzL3N2Z2EvbGlic3ZnYS5sYSBcCj4gLQkkKHRvcF9idWlsZGRpcikv c3JjL2dhbGxpdW0vZHJpdmVycy90cmFjZS9saWJ0cmFjZS5sYSBcCj4gLQkkKHRvcF9idWlsZGRp cikvc3JjL2dhbGxpdW0vZHJpdmVycy9yYnVnL2xpYnJidWcubGEKPiAtCj4gLW5vZGlzdF9FWFRS QV9saWJ4YXRyYWNrZXJfbGFfU09VUkNFUyA9IGR1bW15LmNwcAo+IC0KPiAtaWYgSEFWRV9NRVNB X0xMVk0KPiAtbGlieGF0cmFja2VyX2xhX0xERkxBR1MgKz0gJChMTFZNX0xERkxBR1MpCj4gLWxp YnhhdHJhY2tlcl9sYV9MSUJBREQgKz0gJChMTFZNX0xJQlMpCj4gLWVuZGlmCj4gLQo+IC0jIFBy b3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRoIHNjcmlwdHMgZm9yIHRoZSBvbGQgTWVzYSBidWlsZCBz eXN0ZW0gZm9yCj4gLSMgYSB3aGlsZSBieSBwdXR0aW5nIGEgbGluayB0byB0aGUgZHJpdmVyIGlu dG8gL2xpYiBvZiB0aGUgYnVpbGQgdHJlZS4KPiAtYWxsLWxvY2FsOiBsaWJ4YXRyYWNrZXIubGEK PiAtCSQoTUtESVJfUCkgJCh0b3BfYnVpbGRkaXIpLyQoTElCX0RJUikvZ2FsbGl1bQo+IC0JbG4g LWYgLmxpYnMvbGlieGF0cmFja2VyLnNvKiAkKHRvcF9idWlsZGRpcikvJChMSUJfRElSKS9nYWxs aXVtLwo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC92bXdfdGFy Z2V0LmMgYi9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhLXZtd2dmeC92bXdfdGFyZ2V0LmMKPiBkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAxMDg3ODAxLi4wMDAwMDAwCj4gLS0tIGEvc3Jj L2dhbGxpdW0vdGFyZ2V0cy94YS12bXdnZngvdm13X3RhcmdldC5jCj4gKysrIC9kZXYvbnVsbAo+ IEBAIC0xLDI2ICswLDAgQEAKPiAtCj4gLSNpbmNsdWRlICJ0YXJnZXQtaGVscGVycy9pbmxpbmVf ZGVidWdfaGVscGVyLmgiCj4gLSNpbmNsdWRlICJzdGF0ZV90cmFja2VyL2RybV9kcml2ZXIuaCIK PiAtI2luY2x1ZGUgInN2Z2EvZHJtL3N2Z2FfZHJtX3B1YmxpYy5oIgo+IC0jaW5jbHVkZSAic3Zn YS9zdmdhX3B1YmxpYy5oIgo+IC0KPiAtc3RhdGljIHN0cnVjdCBwaXBlX3NjcmVlbiAqCj4gLWNy ZWF0ZV9zY3JlZW4oaW50IGZkKQo+IC17Cj4gLSAgIHN0cnVjdCBzdmdhX3dpbnN5c19zY3JlZW4g KnN3czsKPiAtICAgc3RydWN0IHBpcGVfc2NyZWVuICpzY3JlZW47Cj4gLQo+IC0gICBzd3MgPSBz dmdhX2RybV93aW5zeXNfc2NyZWVuX2NyZWF0ZShmZCk7Cj4gLSAgIGlmICghc3dzKQo+IC0gICAg ICByZXR1cm4gTlVMTDsKPiAtCj4gLSAgIHNjcmVlbiA9IHN2Z2Ffc2NyZWVuX2NyZWF0ZShzd3Mp Owo+IC0gICBpZiAoIXNjcmVlbikKPiAtICAgICAgcmV0dXJuIE5VTEw7Cj4gLQo+IC0gICBzY3Jl ZW4gPSBkZWJ1Z19zY3JlZW5fd3JhcChzY3JlZW4pOwo+IC0KPiAtICAgcmV0dXJuIHNjcmVlbjsK PiAtfQo+IC0KPiAtRFJNX0RSSVZFUl9ERVNDUklQVE9SKCJ2bXdnZngiLCAidm13Z2Z4IiwgY3Jl YXRlX3NjcmVlbiwgTlVMTCkKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS12 bXdnZngveGF0cmFja2VyLnBjLmluIGIvc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS12bXdnZngveGF0 cmFja2VyLnBjLmluCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggYzk5ZDhkNi4u MDAwMDAwMAo+IC0tLSBhL3NyYy9nYWxsaXVtL3RhcmdldHMveGEtdm13Z2Z4L3hhdHJhY2tlci5w Yy5pbgo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSw5ICswLDAgQEAKPiAtcHJlZml4PUBwcmVmaXhA Cj4gLWV4ZWNfcHJlZml4PSR7cHJlZml4fQo+IC1saWJkaXI9QGxpYmRpckAKPiAtaW5jbHVkZWRp cj1AaW5jbHVkZWRpckAKPiAtCj4gLU5hbWU6IHhhdHJhY2tlcgo+IC1EZXNjcmlwdGlvbjogWG9y ZyBHYWxsaXVtM0QgYWNjZWxlcmF0aW9uIGxpYnJhcnkKPiAtVmVyc2lvbjogQFhBX1ZFUlNJT05A Cj4gLUxpYnM6IC1MJHtsaWJkaXJ9IC1seGF0cmFja2VyCj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxs aXVtL3RhcmdldHMveGEvTWFrZWZpbGUuYW0gYi9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhL01ha2Vm aWxlLmFtCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5kZGRiMDVjCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9nYWxsaXVtL3RhcmdldHMveGEvTWFrZWZpbGUuYW0K PiBAQCAtMCwwICsxLDY4IEBACj4gKyMgQ29weXJpZ2h0IMKpIDIwMTIgSW50ZWwgQ29ycG9yYXRp b24KPiArIwo+ICsjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyMgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArIyB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCj4gKyMgdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyMgYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4g KyMgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPiArIwo+ICsjIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArIyBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCj4gKyMgU29mdHdhcmUuCj4gKyMKPiArIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKPiArIyBFWFBSRVNTIE9SIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiAr IyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAo+ ICsjIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP UFlSSUdIVAo+ICsjIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIgTElBQklMSVRZLAo+ICsjIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAo+ICsjIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArIyBERUFMSU5HUyBJ TiBUSEUgU09GVFdBUkUuCj4gKwo+ICtpbmNsdWRlICQodG9wX3NyY2Rpcikvc3JjL2dhbGxpdW0v QXV0b21ha2UuaW5jCj4gKwo+ICtBTV9DUFBGTEFHUyA9IFwKPiArCS1JJCh0b3Bfc3JjZGlyKS9p bmNsdWRlIFwKPiArCS1JJCh0b3Bfc3JjZGlyKS9zcmMvZ2FsbGl1bS9zdGF0ZV90cmFja2Vycy94 YSBcCj4gKwktSSQodG9wX3NyY2Rpcikvc3JjL2dhbGxpdW0vd2luc3lzIFwKPiArCSQoR0FMTElV TV9QSVBFX0xPQURFUl9ERUZJTkVTKSBcCj4gKwktRFBJUEVfU0VBUkNIX0RJUj1cIiQobGliZGly KS9nYWxsaXVtLXBpcGVcIgo+ICsKPiArQU1fQ0ZMQUdTID0gXAo+ICsJJChHQUxMSVVNX0NGTEFH UykgXAo+ICsJJChMSUJVREVWX0NGTEFHUykgXAo+ICsJJChMSUJEUk1fQ0ZMQUdTKQo+ICsKPiAr cGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZwo+ICtwa2djb25maWdfREFUQSA9IHhh dHJhY2tlci5wYwo+ICsKPiArbGliX0xUTElCUkFSSUVTID0gbGlieGF0cmFja2VyLmxhCj4gKwo+ ICtsaWJ4YXRyYWNrZXJfbGFfU09VUkNFUyA9IHhhLmMKPiArCj4gK2xpYnhhdHJhY2tlcl9sYV9M SUJBREQgPSBcCj4gKwkkKEdBTExJVU1fUElQRV9MT0FERVJfTElCUykgXAo+ICsJJCh0b3BfYnVp bGRkaXIpL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS9waXBlLWxvYWRlci9saWJwaXBlX2xvYWRlci5s YSBcCj4gKwkkKHRvcF9idWlsZGRpcikvc3JjL2dhbGxpdW0vc3RhdGVfdHJhY2tlcnMveGEvbGli eGF0cmFja2VyLmxhIFwKPiArCSQodG9wX2J1aWxkZGlyKS9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkv bGliZ2FsbGl1bS5sYSBcCj4gKwkkKExJQlVERVZfTElCUykgXAo+ICsJJChMSUJEUk1fTElCUykK PiArCj4gK2xpYnhhdHJhY2tlcl9sYV9MREZMQUdTID0gXAo+ICsJLW5vLXVuZGVmaW5lZCBcCj4g KwktdmVyc2lvbi1udW1iZXIgJChYQV9NQUpPUik6JChYQV9NSU5PUik6JChYQV9USU5ZKQo+ICsK PiArIyBGSVhNRTogdGhpcyBzaG91bGRuJ3QgYmUgbmVlZGVkCj4gK2lmIEhBVkVfTUVTQV9MTFZN Cj4gK2xpYnhhdHJhY2tlcl9sYV9MSU5LID0gJChDWFhMSU5LKSAkKGxpYnhhdHJhY2tlcl9sYV9M REZMQUdTKQo+ICsjIE1lbnRpb24gYSBkdW1teSBwdXJlIEMrKyBmaWxlIHRvIHRyaWdnZXIgZ2Vu ZXJhdGlvbiBvZiB0aGUgJChMSU5LKSB2YXJpYWJsZQo+ICtub2Rpc3RfRVhUUkFfbGlieGF0cmFj a2VyX2xhX1NPVVJDRVMgPSBkdW1teS1jcHAuY3BwCj4gKwo+ICtsaWJ4YXRyYWNrZXJfbGFfTElC QUREICs9ICQoTExWTV9MSUJTKQo+ICtsaWJ4YXRyYWNrZXJfbGFfTERGTEFHUyArPSAkKExMVk1f TERGTEFHUykKPiArZWxzZQo+ICtsaWJ4YXRyYWNrZXJfbGFfTElOSyA9ICQoQ1hYTElOSykgJChs aWJ4YXRyYWNrZXJfbGFfTERGTEFHUykKPiArIyBNZW50aW9uIGEgZHVtbXkgcHVyZSBDIGZpbGUg dG8gdHJpZ2dlciBnZW5lcmF0aW9uIG9mIHRoZSAkKExJTkspIHZhcmlhYmxlCj4gK25vZGlzdF9F WFRSQV9saWJ4YXRyYWNrZXJfbGFfU09VUkNFUyA9IGR1bW15LWMuYwo+ICtlbmRpZgo+IGRpZmYg LS1naXQgYS9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhL3hhLmMgYi9zcmMvZ2FsbGl1bS90YXJnZXRz L3hhL3hhLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmUzY2VhZjYK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvc3JjL2dhbGxpdW0vdGFyZ2V0cy94YS94YS5jCj4gQEAg LTAsMCArMSw0OSBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTQgUmVkIEhhdAo+ICsg Kgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiAr ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCj4gKyAqIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg SU4gVEhFCj4gKyAqIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBBdXRob3JzOgo+ICsgKiAgICBSb2Ig Q2xhcmsgPHJvYmNsYXJrQGZyZWVkZXNrdG9wLm9yZz4KPiArICovCj4gKwo+ICsjaW5jbHVkZSAi eGEuaCIKPiArCj4gK3N0cnVjdCBwaXBlX2xvYWRlcl9kZXZpY2UgKgo+ICt4YV9waXBlX3Byb2Jl KGludCBmZCkKPiArewo+ICsgICAgc3RydWN0IHBpcGVfbG9hZGVyX2RldmljZSAqZGV2Owo+ICsg ICAgaWYgKHBpcGVfbG9hZGVyX2RybV9wcm9iZV9mZCgmZGV2LCBmZCkpCj4gKwlyZXR1cm4gZGV2 Owo+ICsgICAgcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK3ZvaWQKPiAreGFfcGlwZV9yZWxlYXNl KHN0cnVjdCBwaXBlX2xvYWRlcl9kZXZpY2UgKmRldikKPiArewo+ICsgICAgaWYgKGRldikKPiAr CXBpcGVfbG9hZGVyX3JlbGVhc2UoJmRldiwgMSk7Cj4gK30KPiArCj4gK3N0cnVjdCBwaXBlX3Nj cmVlbiAqCj4gK3hhX3BpcGVfY3JlYXRlX3NjcmVlbihzdHJ1Y3QgcGlwZV9sb2FkZXJfZGV2aWNl ICpkZXYpCj4gK3sKPiArICAgIHJldHVybiBwaXBlX2xvYWRlcl9jcmVhdGVfc2NyZWVuKGRldiwg UElQRV9TRUFSQ0hfRElSKTsKPiArfQo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS90YXJnZXRz L3hhL3hhLmggYi9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhL3hhLmgKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAuLjlkZTY4NTEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvc3Jj L2dhbGxpdW0vdGFyZ2V0cy94YS94YS5oCj4gQEAgLTAsMCArMSwzNyBAQAo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgKEMpIDIwMTQgUmVkIEhhdAo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HIEZST00sCj4gKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCj4gKyAqIFNPRlRXQVJFLgo+ICsg Kgo+ICsgKiBBdXRob3JzOgo+ICsgKiAgICBSb2IgQ2xhcmsgPHJvYmNsYXJrQGZyZWVkZXNrdG9w Lm9yZz4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9YQV9IXwo+ICsjZGVmaW5lIF9YQV9IXwo+ICsK PiArI2luY2x1ZGUgInBpcGUvcF9zY3JlZW4uaCIKPiArI2luY2x1ZGUgInBpcGUtbG9hZGVyL3Bp cGVfbG9hZGVyLmgiCj4gKwo+ICtzdHJ1Y3QgcGlwZV9sb2FkZXJfZGV2aWNlICp4YV9waXBlX3By b2JlKGludCBmZCk7Cj4gK3ZvaWQgeGFfcGlwZV9yZWxlYXNlKHN0cnVjdCBwaXBlX2xvYWRlcl9k ZXZpY2UgKmRldik7Cj4gK3N0cnVjdCBwaXBlX3NjcmVlbiAqIHhhX3BpcGVfY3JlYXRlX3NjcmVl bihzdHJ1Y3QgcGlwZV9sb2FkZXJfZGV2aWNlICpkZXYpOwo+ICsKPiArI2VuZGlmIC8qIF9YQV9I XyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS90YXJnZXRzL3hhL3hhdHJhY2tlci5wYy5p biBiL3NyYy9nYWxsaXVtL3RhcmdldHMveGEveGF0cmFja2VyLnBjLmluCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5jOTlkOGQ2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L3NyYy9nYWxsaXVtL3RhcmdldHMveGEveGF0cmFja2VyLnBjLmluCj4gQEAgLTAsMCArMSw5IEBA Cj4gK3ByZWZpeD1AcHJlZml4QAo+ICtleGVjX3ByZWZpeD0ke3ByZWZpeH0KPiArbGliZGlyPUBs aWJkaXJACj4gK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACj4gKwo+ICtOYW1lOiB4YXRyYWNrZXIK PiArRGVzY3JpcHRpb246IFhvcmcgR2FsbGl1bTNEIGFjY2VsZXJhdGlvbiBsaWJyYXJ5Cj4gK1Zl cnNpb246IEBYQV9WRVJTSU9OQAo+ICtMaWJzOiAtTCR7bGliZGlyfSAtbHhhdHJhY2tlcgo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK