From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: Re: [PATCH v2 4/5] drm: Add decoding of i915 ioctls Date: Tue, 30 Jun 2015 09:52:23 +0200 Message-ID: <20150630075223.GB12526@patrik-dev-mach> References: <1434616965-5157-1-git-send-email-patrik.jakobsson@linux.intel.com> <1434616965-5157-5-git-send-email-patrik.jakobsson@linux.intel.com> <20150629194650.7a63c2d1@guiness.lab.lse.epita.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 04FA46E5A8 for ; Tue, 30 Jun 2015 00:52:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150629194650.7a63c2d1@guiness.lab.lse.epita.fr> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Gabriel Laskar Cc: intel-gfx@lists.freedesktop.org, ldv@altlinux.org, strace-devel@lists.sourceforge.net List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMjksIDIwMTUgYXQgMDc6NDY6NTBQTSArMDIwMCwgR2FicmllbCBMYXNrYXIg d3JvdGU6Cj4gT24gVGh1LCAxOCBKdW4gMjAxNSAxMDo0Mjo0NCArMDIwMAo+IFBhdHJpayBKYWtv YnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPiB3cm90ZToKPiAKPiA+IFRo ZXJlIGFyZSBtb3JlIGlvY3RscyB0byBhZGQgYnV0IHRoZSBvbmVzIGluIHRoaXMgcGF0Y2ggYXJl IG1vc3QKPiA+IGNvbW1vbmx5IHVzZWQuCj4gPiAKPiA+ICogTWFrZWZpbGUuYW06IEFkZCBjb21w aWxhdGlvbiBvZiBkcm1faTkxNS5jCj4gPiAqIGRybS5jOiBEaXNwYXRjaCBpOTE1IGlvY3Rscwo+ ID4gKiBkcm1faTkxNS5jOiBEZWNvZGUgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0KPiA+ICogZHJt X2k5MTUuYzogRGVjb2RlIERSTV9JT0NUTF9JOTE1X1NFVFBBUkFNCj4gPiAqIGRybV9pOTE1LmM6 IERlY29kZSBEUk1fSU9DVExfSTkxNV9HRU1fRVhFQ0JVRkZFUjIKPiA+ICogZHJtX2k5MTUuYzog RGVjb2RlIERSTV9JT0NUTF9JOTE1X0dFTV9CVVNZCj4gPiAqIGRybV9pOTE1LmM6IERlY29kZSBE Uk1fSU9DVExfSTkxNV9HRU1fQ1JFQVRFCj4gPiAqIGRybV9pOTE1LmM6IERlY29kZSBEUk1fSU9D VExfSTkxNV9HRU1fUFJFQUQKPiA+ICogZHJtX2k5MTUuYzogRGVjb2RlIERSTV9JT0NUTF9JOTE1 X0dFTV9QV1JJVEUKPiA+ICogZHJtX2k5MTUuYzogRGVjb2RlIERSTV9JT0NUTF9JOTE1X0dFTV9N TUFQCj4gPiAqIGRybV9pOTE1LmM6IERlY29kZSBEUk1fSU9DVExfSTkxNV9HRU1fTU1BUF9HVFQK PiA+ICogZHJtX2k5MTUuYzogRGVjb2RlIERSTV9JT0NUTF9JOTE1X1NFVF9ET01BSU4KPiA+ICog ZHJtX2k5MTUuYzogRGVjb2RlIERSTV9JT0NUTF9JOTE1X01BRFZJU0UKPiA+ICogZHJtX2k5MTUu YzogRGVjb2RlIERSTV9JT0NUTF9JOTE1X0dFVF9USUxJTkcKPiA+ICogZHJtX2k5MTUuYzogRGVj b2RlIERSTV9JT0NUTF9JOTE1X1NFVF9USUxJTkcKPiA+ICogZHJtX2k5MTUuYzogRGVjb2RlIERS TV9JT0NUTF9JOTE1X1VTRVJQVFIKPiA+ICogeGxhdC9kcm1faTkxNV9nZXRwYXJhbXMuaW46IExp c3QgR0VUUEFSQU0gcGFyYW1ldGVycwo+ID4gKiB4bGF0L2RybV9pOTE1X3NldHBhcmFtcy5pbjog TGlzdCBTRVRQQVJBTSBwYXJhbWV0ZXJzCj4gPiAqIHhsYXQvZHJtX2k5MTVfaW9jdGxzLmluOiBM aXN0IGk5MTUgaW9jdGxzCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFBhdHJpayBKYWtvYnNzb24g PHBhdHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgTWFrZWZpbGUu YW0gICAgICAgICAgICAgICAgfCAgIDEgKwo+ID4gIGRybS5jICAgICAgICAgICAgICAgICAgICAg IHwgIDE0ICsrCj4gPiAgZHJtX2k5MTUuYyAgICAgICAgICAgICAgICAgfCAzMzIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgeGxhdC9kcm1faTkxNV9n ZXRwYXJhbXMuaW4gfCAgMjggKysrKwo+ID4gIHhsYXQvZHJtX2k5MTVfaW9jdGxzLmluICAgIHwg IDUxICsrKysrKysKPiA+ICB4bGF0L2RybV9pOTE1X3NldHBhcmFtcy5pbiB8ICAgNCArCj4gPiAg NiBmaWxlcyBjaGFuZ2VkLCA0MzAgaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcm1faTkxNS5jCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhsYXQvZHJtX2k5MTVfZ2V0cGFy YW1zLmluCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhsYXQvZHJtX2k5MTVfaW9jdGxzLmluCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhsYXQvZHJtX2k5MTVfc2V0cGFyYW1zLmluCj4gPiAKPiA+ IGRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCj4gPiBpbmRleCA5OTM4MmJk Li5hYTI3ZTBjIDEwMDY0NAo+ID4gLS0tIGEvTWFrZWZpbGUuYW0KPiA+ICsrKyBiL01ha2VmaWxl LmFtCj4gPiBAQCAtNDIsNiArNDIsNyBAQCBzdHJhY2VfU09VUkNFUyA9CVwKPiA+ICAJZGVzYy5j CQlcCj4gPiAgCWRpcmVudC5jCVwKPiA+ICAJZHJtLmMJCVwKPiA+ICsJZHJtX2k5MTUuYwlcCj4g PiAgCWV2ZGV2LmMJCVwKPiA+ICAJZXhlY3ZlLmMJXAo+ID4gIAlleGl0LmMJCVwKPiA+IGRpZmYg LS1naXQgYS9kcm0uYyBiL2RybS5jCj4gPiBpbmRleCA2MWRmMDlmLi44ZTNmN2QxIDEwMDY0NAo+ ID4gLS0tIGEvZHJtLmMKPiA+ICsrKyBiL2RybS5jCj4gPiBAQCAtMzUsNiArMzUsOSBAQAo+ID4g IAo+ID4gICNkZWZpbmUgRFJNX01BWF9OQU1FX0xFTiAxMjgKPiA+ICAKPiA+ICtleHRlcm4gaW50 IGRybV9pOTE1X2RlY29kZV9udW1iZXIoc3RydWN0IHRjYiAqdGNwLCB1bnNpZ25lZCBpbnQgYXJn KTsKPiA+ICtleHRlcm4gaW50IGRybV9pOTE1X2lvY3RsKHN0cnVjdCB0Y2IgKnRjcCwgY29uc3Qg dW5zaWduZWQgaW50IGNvZGUsIGxvbmcgYXJnKTsKPiA+ICsKPiA+ICBzdHJ1Y3QgZHJtX2lvY3Rs X3ByaXYgewo+ID4gIAljaGFyIG5hbWVbRFJNX01BWF9OQU1FX0xFTl07Cj4gPiAgfTsKPiA+IEBA IC05MywxMSArOTYsMjIgQEAgaW50IGRybV9pc19kcml2ZXIoc3RydWN0IHRjYiAqdGNwLCBjb25z dCBjaGFyICpuYW1lKQo+ID4gIAo+ID4gIGludCBkcm1fZGVjb2RlX251bWJlcihzdHJ1Y3QgdGNi ICp0Y3AsIHVuc2lnbmVkIGludCBhcmcpCj4gPiAgewo+ID4gKwlpZiAoZHJtX2lzX3ByaXYodGNw LT51X2FyZ1sxXSkpIHsKPiA+ICsJCWlmICh2ZXJib3NlKHRjcCkgJiYgZHJtX2lzX2RyaXZlcih0 Y3AsICJpOTE1IikpCj4gPiArCQkJcmV0dXJuIGRybV9pOTE1X2RlY29kZV9udW1iZXIodGNwLCBh cmcpOwo+ID4gKwl9Cj4gPiArCj4gPiAgCXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+ICBpbnQg ZHJtX2lvY3RsKHN0cnVjdCB0Y2IgKnRjcCwgY29uc3QgdW5zaWduZWQgaW50IGNvZGUsIGxvbmcg YXJnKQo+ID4gIHsKPiA+ICsJLyogQ2hlY2sgZm9yIGRldmljZSBzcGVjaWZpYyBpb2N0bHMgKi8K PiA+ICsJaWYgKGRybV9pc19wcml2KHRjcC0+dV9hcmdbMV0pKSB7Cj4gPiArCQlpZiAodmVyYm9z ZSh0Y3ApICYmIGRybV9pc19kcml2ZXIodGNwLCAiaTkxNSIpKQo+ID4gKwkJCXJldHVybiBkcm1f aTkxNV9pb2N0bCh0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCX0KPiA+ICsKPiA+ICAJLyogRnJlZSBh bnkgYWxsb2NhdGVkIHByaXZhdGUgZGF0YSAqLwo+ID4gIAlpZiAoZXhpdGluZyh0Y3ApICYmIHRj cC0+cHJpdl9kYXRhICE9IE5VTEwpIHsKPiA+ICAJCWZyZWUodGNwLT5wcml2X2RhdGEpOwo+ID4g ZGlmZiAtLWdpdCBhL2RybV9pOTE1LmMgYi9kcm1faTkxNS5jCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uMjVjNzk3Ygo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysr IGIvZHJtX2k5MTUuYwo+ID4gQEAgLTAsMCArMSwzMzIgQEAKPiA+ICsvKgo+ID4gKyAqIENvcHly aWdodCAoYykgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gKyAqIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCj4gPiArICoKPiA+ICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKPiA+ICsgKiBtb2RpZmljYXRpb24sIGFyZSBw ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKPiA+ICsgKiBh cmUgbWV0Ogo+ID4gKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gPiArICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgo+ID4gKyAqIDIuIFJlZGlz dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp Z2h0Cj4gPiArICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQo+ID4gKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCj4gPiArICog My4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw cm9tb3RlIHByb2R1Y3RzCj4gPiArICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0 aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCj4gPiArICoKPiA+ICsgKiBU SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkg RVhQUkVTUyBPUgo+ID4gKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKPiA+ICsgKiBPRiBNRVJDSEFOVEFC SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE Lgo+ID4gKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkg RElSRUNULCBJTkRJUkVDVCwKPiA+ICsgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKPiA+ICsgKiBOT1QgTElN SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T UyBPRiBVU0UsCj4gPiArICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCj4gPiArICogVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAo+ID4gKyAq IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP VVQgT0YgVEhFIFVTRSBPRgo+ID4gKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCj4gPiArICoKPiA+ICsgKiBBdXRob3Jz Ogo+ID4gKyAqICAgIFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50 ZWwuY29tPgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpbmNsdWRlICJkZWZzLmgiCj4gPiArCj4gPiAr I2luY2x1ZGUgPGRybS5oPgo+ID4gKyNpbmNsdWRlIDxpOTE1X2RybS5oPgo+ID4gKyNpbmNsdWRl ICJ4bGF0L2RybV9pOTE1X2lvY3Rscy5oIgo+ID4gKyNpbmNsdWRlICJ4bGF0L2RybV9pOTE1X2dl dHBhcmFtcy5oIgo+ID4gKyNpbmNsdWRlICJ4bGF0L2RybV9pOTE1X3NldHBhcmFtcy5oIgo+ID4g Kwo+ID4gK3N0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHVu c2lnbmVkIGludCBjb2RlLCBsb25nIGFyZykKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9n ZXRwYXJhbSBwYXJhbTsKPiA+ICsJaW50IHZhbHVlOwo+ID4gKwo+ID4gKwlpZiAodW1vdmUodGNw LCBhcmcsICZwYXJhbSkpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5n KHRjcCkpIHsKPiA+ICsJCXRwcmludHMoIiwge3BhcmFtPSIpOwo+ID4gKwkJcHJpbnR4dmFsKGRy bV9pOTE1X2dldHBhcmFtcywgcGFyYW0ucGFyYW0sICJJOTE1X1BBUkFNXz8/PyIpOwo+ID4gKwl9 IGVsc2UgaWYgKGV4aXRpbmcodGNwKSkgewo+ID4gKwkJaWYgKHVtb3ZlKHRjcCwgKGxvbmcpcGFy YW0udmFsdWUsICZ2YWx1ZSkpCj4gPiArCQkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCQl0cHJpbnRz KCIsIHZhbHVlPSIpOwo+ID4gKwkJc3dpdGNoIChwYXJhbS5wYXJhbSkgewo+ID4gKwkJY2FzZSBJ OTE1X1BBUkFNX0NISVBTRVRfSUQ6Cj4gPiArCQkJdHByaW50ZigiMHglMDR4IiwgdmFsdWUpOwo+ ID4gKwkJCWJyZWFrOwo+ID4gKwkJZGVmYXVsdDoKPiA+ICsJCQl0cHJpbnRmKCIlZCIsIHZhbHVl KTsKPiA+ICsJCX0KPiA+ICsJCXRwcmludHMoIn0iKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1 cm4gMTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpOTE1X3NldHBhcmFtKHN0cnVjdCB0 Y2IgKnRjcCwgY29uc3QgdW5zaWduZWQgaW50IGNvZGUsIGxvbmcgYXJnKQo+ID4gK3sKPiA+ICsJ c3RydWN0IGRybV9pOTE1X3NldHBhcmFtIHBhcmFtOwo+ID4gKwo+ID4gKwlpZiAodW1vdmUodGNw LCBhcmcsICZwYXJhbSkpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5n KHRjcCkpIHsKPiA+ICsJCXRwcmludHMoIiwge3BhcmFtPSIpOwo+ID4gKwkJcHJpbnR4dmFsKGRy bV9pOTE1X3NldHBhcmFtcywgcGFyYW0ucGFyYW0sICJJOTE1X1BBUkFNXz8/PyIpOwo+ID4gKwl9 IGVsc2UgaWYgKGV4aXRpbmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCB2YWx1ZT0lZH0iLCBw YXJhbS52YWx1ZSk7Cj4gPiArCX0KPiAKPiBIZXJlLCBpdCBzZWVtcyB0aGF0IHBhcmFtLnZhbHVl IGNhbiBiZSBwcmludGVkIG9uIGVudGVyaW5nLgo+IApBaCB5ZXMKCj4gPiArCj4gPiArCXJldHVy biAxOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0 cnVjdCB0Y2IgKnRjcCwgY29uc3QgdW5zaWduZWQgaW50IGNvZGUsCj4gPiArCQkJCWxvbmcgYXJn KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYjsKPiA+ICsK PiA+ICsJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmZWIpKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4g PiArCWlmIChlbnRlcmluZyh0Y3ApKSB7Cj4gPiArCQl0cHJpbnRmKCIsIHtidWZmZXJzX3B0cj0l cCwgYnVmZmVyX2NvdW50PSV1LCAiCj4gPiArCQkJImJhdGNoX3N0YXJ0X29mZnNldD0leCwgYmF0 Y2hfbGVuPSV1LCBEUjE9JXUsIERSND0ldSwgIgo+ID4gKwkJCSJudW1fY2xpcHJlY3RzPSV1LCBj bGlwcmVjdHNfcHRyPSVwLCBmbGFncz0weCVMeH0iLAo+ID4gKwkJCSh2b2lkICopZWIuYnVmZmVy c19wdHIsIGViLmJ1ZmZlcl9jb3VudCwKPiA+ICsJCQllYi5iYXRjaF9zdGFydF9vZmZzZXQsIGVi LmJhdGNoX2xlbiwgZWIuRFIxLCBlYi5EUjQsCj4gPiArCQkJZWIubnVtX2NsaXByZWN0cywgKHZv aWQgKillYi5jbGlwcmVjdHNfcHRyLCBlYi5mbGFncyk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0 dXJuIDE7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaTkxNV9nZW1fYnVzeShzdHJ1Y3Qg dGNiICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLCBsb25nIGFyZykKPiA+ICt7Cj4gPiAr CXN0cnVjdCBkcm1faTkxNV9nZW1fYnVzeSBidXN5Owo+ID4gKwo+ID4gKwlpZiAodW1vdmUodGNw LCBhcmcsICZidXN5KSkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlpZiAoZW50ZXJpbmco dGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCB7aGFuZGxlPSV1IiwgYnVzeS5oYW5kbGUpOwo+ID4g Kwl9IGVsc2UgaWYgKGV4aXRpbmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCBidXN5PSVjLCBy aW5nPSV1fSIsCj4gPiArCQkJKGJ1c3kuYnVzeSAmIDB4MSkgPyAnWScgOiAnTicsIChidXN5LmJ1 c3kgPj4gMTYpKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gMTsKPiA+ICt9Cj4gPiArCj4g PiArc3RhdGljIGludCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IHRjYiAqdGNwLCBjb25zdCB1bnNp Z25lZCBpbnQgY29kZSwgbG9uZyBhcmcpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NyZWF0ZSBjcmVhdGU7Cj4gPiArCj4gPiArCWlmICh1bW92ZSh0Y3AsIGFyZywgJmNyZWF0ZSkp Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5nKHRjcCkpIHsKPiA+ICsJ CXRwcmludGYoIiwge3NpemU9JUx1IiwgY3JlYXRlLnNpemUpOwo+ID4gKwl9IGVsc2UgaWYgKGV4 aXRpbmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCBoYW5kbGU9JXV9IiwgY3JlYXRlLmhhbmRs ZSk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIDE7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyBpbnQgaTkxNV9nZW1fcHJlYWQoc3RydWN0IHRjYiAqdGNwLCBjb25zdCB1bnNpZ25lZCBpbnQg Y29kZSwgbG9uZyBhcmcpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3ByZWFkIHBy Owo+ID4gKwo+ID4gKwlpZiAodW1vdmUodGNwLCBhcmcsICZwcikpCj4gPiArCQlyZXR1cm4gMDsK PiA+ICsKPiA+ICsJaWYgKGVudGVyaW5nKHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwge2hhbmRs ZT0ldSwgb2Zmc2V0PSVMdSwgc2l6ZT0lTHUsIGRhdGFfcHRyPSVwfSIsCj4gPiArCQkJcHIuaGFu ZGxlLCBwci5vZmZzZXQsIHByLnNpemUsICh2b2lkICopcHIuZGF0YV9wdHIpOwo+ID4gKwl9Cj4g PiArCj4gPiArCXJldHVybiAxOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGk5MTVfZ2Vt X3B3cml0ZShzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLCBsb25nIGFy ZykKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcHdyaXRlIHB3Owo+ID4gKwo+ID4g KwlpZiAodW1vdmUodGNwLCBhcmcsICZwdykpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJ aWYgKGVudGVyaW5nKHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwge2hhbmRsZT0ldSwgb2Zmc2V0 PSVMdSwgc2l6ZT0lTHUsIGRhdGFfcHRyPSVwfSIsCj4gPiArCQkJcHcuaGFuZGxlLCBwdy5vZmZz ZXQsIHB3LnNpemUsICh2b2lkICopcHcuZGF0YV9wdHIpOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJl dHVybiAxOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGk5MTVfZ2VtX21tYXAoc3RydWN0 IHRjYiAqdGNwLCBjb25zdCB1bnNpZ25lZCBpbnQgY29kZSwgbG9uZyBhcmcpCj4gPiArewo+ID4g KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21tYXAgbW1hcDsKPiA+ICsKPiA+ICsJaWYgKHVtb3ZlKHRj cCwgYXJnLCAmbW1hcCkpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5n KHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwge2hhbmRsZT0ldSwgc2l6ZT0lTHUiLCBtbWFwLmhh bmRsZSwgbW1hcC5zaXplKTsKPiA+ICsJfSBlbHNlIGlmIChleGl0aW5nKHRjcCkpIHsKPiA+ICsJ CXRwcmludGYoIiwgb2Zmc2V0PSVMdSwgYWRkcl9wdHI9JXB9IiwKPiA+ICsJCQltbWFwLm9mZnNl dCwgKHZvaWQgKiltbWFwLmFkZHJfcHRyKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gMTsK PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1Y3QgdGNi ICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLCBsb25nIGFyZykKPiA+ICt7Cj4gPiArCXN0 cnVjdCBkcm1faTkxNV9nZW1fbW1hcF9ndHQgbW1hcDsKPiA+ICsKPiA+ICsJaWYgKHVtb3ZlKHRj cCwgYXJnLCAmbW1hcCkpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5n KHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwge2hhbmRsZT0ldSIsIG1tYXAuaGFuZGxlKTsKPiA+ ICsJfSBlbHNlIGlmIChleGl0aW5nKHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwgb2Zmc2V0PSVM dX0iLCBtbWFwLm9mZnNldCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIDE7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyBpbnQgaTkxNV9nZW1fc2V0X2RvbWFpbihzdHJ1Y3QgdGNiICp0Y3As IGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLAo+ID4gKwkJCSAgICAgICBsb25nIGFyZykKPiA+ICt7 Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fc2V0X2RvbWFpbiBkb207Cj4gPiArCj4gPiArCWlm ICh1bW92ZSh0Y3AsIGFyZywgJmRvbSkpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYg KGVudGVyaW5nKHRjcCkpIHsKPiA+ICsJCXRwcmludGYoIiwge2hhbmRsZT0ldSwgcmVhZF9kb21h aW5zPSV4LCB3cml0ZV9kb21haW49JXh9IiwKPiA+ICsJCQlkb20uaGFuZGxlLCBkb20ucmVhZF9k b21haW5zLCBkb20ud3JpdGVfZG9tYWluKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gMTsK PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpOTE1X2dlbV9tYWR2aXNlKHN0cnVjdCB0Y2Ig KnRjcCwgY29uc3QgdW5zaWduZWQgaW50IGNvZGUsIGxvbmcgYXJnKQo+ID4gK3sKPiA+ICsJc3Ry dWN0IGRybV9pOTE1X2dlbV9tYWR2aXNlIG1hZHY7Cj4gPiArCj4gPiArCWlmICh1bW92ZSh0Y3As IGFyZywgJm1hZHYpKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCWlmIChlbnRlcmluZyh0 Y3ApKSB7Cj4gPiArCQl0cHJpbnRmKCIsIHtoYW5kbGU9JXUsIG1hZHY9JXUiLCBtYWR2LmhhbmRs ZSwgbWFkdi5tYWR2KTsKPiA+ICsJfSBlbHNlIGlmIChleGl0aW5nKHRjcCkpIHsKPiA+ICsJCXRw cmludGYoIiwgcmV0YWluZWQ9JXV9IiwgbWFkdi5yZXRhaW5lZCk7Cj4gPiArCX0KPiA+ICsKPiA+ ICsJcmV0dXJuIDE7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaTkxNV9nZW1fZ2V0X3Rp bGluZyhzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLAo+ID4gKwkJCSAg ICAgICBsb25nIGFyZykKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fZ2V0X3RpbGlu ZyB0aWxpbmc7Cj4gPiArCj4gPiArCWlmICh1bW92ZSh0Y3AsIGFyZywgJnRpbGluZykpCj4gPiAr CQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKGVudGVyaW5nKHRjcCkpIHsKPiA+ICsJCXRwcmlu dGYoIiwge2hhbmRsZT0ldSIsIHRpbGluZy5oYW5kbGUpOwo+ID4gKwl9IGVsc2UgaWYgKGV4aXRp bmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCB0aWxpbmdfbW9kZT0ldSwgc3dpenpsZV9tb2Rl PSV1fSIsIHRpbGluZy50aWxpbmdfbW9kZSwKPiA+ICsJCQl0aWxpbmcuc3dpenpsZV9tb2RlKTsK PiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gMTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlu dCBpOTE1X2dlbV9zZXRfdGlsaW5nKHN0cnVjdCB0Y2IgKnRjcCwgY29uc3QgdW5zaWduZWQgaW50 IGNvZGUsCj4gPiArCQkJICAgICAgIGxvbmcgYXJnKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9p OTE1X2dlbV9zZXRfdGlsaW5nIHRpbGluZzsKPiA+ICsKPiA+ICsJaWYgKHVtb3ZlKHRjcCwgYXJn LCAmdGlsaW5nKSkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlpZiAoZW50ZXJpbmcodGNw KSkgewo+ID4gKwkJdHByaW50ZigiLCB7aGFuZGxlPSV1LCB0aWxpbmdfbW9kZT0ldSwgc3RyaWRl PSV1IiwKPiA+ICsJCQl0aWxpbmcuaGFuZGxlLCB0aWxpbmcudGlsaW5nX21vZGUsIHRpbGluZy5z dHJpZGUpOwo+ID4gKwl9IGVsc2UgaWYgKGV4aXRpbmcodGNwKSkgewo+ID4gKwkJdHByaW50Zigi LCBzd2l6emxlX21vZGU9JXV9IiwgdGlsaW5nLnN3aXp6bGVfbW9kZSk7Cj4gPiArCX0KPiA+ICsK PiA+ICsJcmV0dXJuIDE7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaTkxNV9nZW1fdXNl cnB0cihzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLCBsb25nIGFyZykK PiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fdXNlcnB0ciB1cHRyOwo+ID4gKwo+ID4g KwlpZiAodW1vdmUodGNwLCBhcmcsICZ1cHRyKSkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4g KwlpZiAoZW50ZXJpbmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCB7dXNlcl9wdHI9JXAsIHVz ZXJfc2l6ZT0lTHUiLCAodm9pZCAqKXVwdHIudXNlcl9wdHIsCj4gPiArCQkJdXB0ci51c2VyX3Np emUpOwo+ID4gKwl9IGVsc2UgaWYgKGV4aXRpbmcodGNwKSkgewo+ID4gKwkJdHByaW50ZigiLCBm bGFncz0weCV4LCBoYW5kbGU9JXV9IiwgdXB0ci5mbGFncywgdXB0ci5oYW5kbGUpOwo+ID4gKwl9 Cj4gPiArCj4gPiArCXJldHVybiAxOwo+ID4gK30KPiA+ICsKPiA+ICtpbnQgZHJtX2k5MTVfZGVj b2RlX251bWJlcihzdHJ1Y3QgdGNiICp0Y3AsIHVuc2lnbmVkIGludCBhcmcpCj4gPiArewo+ID4g Kwljb25zdCBjaGFyICpzdHIgPSB4bG9va3VwKGRybV9pOTE1X2lvY3RscywgYXJnKTsKPiA+ICsK PiA+ICsJaWYgKHN0cikgewo+ID4gKwkJdHByaW50ZigiJXMiLCBzdHIpOwo+ID4gKwkJcmV0dXJu IDE7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBk cm1faTkxNV9pb2N0bChzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHVuc2lnbmVkIGludCBjb2RlLCBs b25nIGFyZykKPiA+ICt7Cj4gPiArCXN3aXRjaCAoY29kZSkgewo+ID4gKwljYXNlIERSTV9JT0NU TF9JOTE1X0dFVFBBUkFNOgo+ID4gKwkJcmV0dXJuIGk5MTVfZ2V0cGFyYW0odGNwLCBjb2RlLCBh cmcpOwo+ID4gKwljYXNlIERSTV9JT0NUTF9JOTE1X1NFVFBBUkFNOgo+ID4gKwkJcmV0dXJuIGk5 MTVfc2V0cGFyYW0odGNwLCBjb2RlLCBhcmcpOwo+ID4gKwljYXNlIERSTV9JT0NUTF9JOTE1X0dF TV9FWEVDQlVGRkVSMjoKPiA+ICsJCXJldHVybiBpOTE1X2dlbV9leGVjYnVmZmVyMih0Y3AsIGNv ZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5MTVfR0VNX0JVU1k6Cj4gPiArCQlyZXR1 cm4gaTkxNV9nZW1fYnVzeSh0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5 MTVfR0VNX0NSRUFURToKPiA+ICsJCXJldHVybiBpOTE1X2dlbV9jcmVhdGUodGNwLCBjb2RlLCBh cmcpOwo+ID4gKwljYXNlIERSTV9JT0NUTF9JOTE1X0dFTV9QUkVBRDoKPiA+ICsJCXJldHVybiBp OTE1X2dlbV9wcmVhZCh0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5MTVf R0VNX1BXUklURToKPiA+ICsJCXJldHVybiBpOTE1X2dlbV9wd3JpdGUodGNwLCBjb2RlLCBhcmcp Owo+ID4gKwljYXNlIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQOgo+ID4gKwkJcmV0dXJuIGk5MTVf Z2VtX21tYXAodGNwLCBjb2RlLCBhcmcpOwo+ID4gKwljYXNlIERSTV9JT0NUTF9JOTE1X0dFTV9N TUFQX0dUVDoKPiA+ICsJCXJldHVybiBpOTE1X2dlbV9tbWFwX2d0dCh0Y3AsIGNvZGUsIGFyZyk7 Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5MTVfR0VNX1NFVF9ET01BSU46Cj4gPiArCQlyZXR1cm4g aTkxNV9nZW1fc2V0X2RvbWFpbih0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RM X0k5MTVfR0VNX01BRFZJU0U6Cj4gPiArCQlyZXR1cm4gaTkxNV9nZW1fbWFkdmlzZSh0Y3AsIGNv ZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5MTVfR0VNX0dFVF9USUxJTkc6Cj4gPiAr CQlyZXR1cm4gaTkxNV9nZW1fZ2V0X3RpbGluZyh0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCWNhc2Ug RFJNX0lPQ1RMX0k5MTVfR0VNX1NFVF9USUxJTkc6Cj4gPiArCQlyZXR1cm4gaTkxNV9nZW1fc2V0 X3RpbGluZyh0Y3AsIGNvZGUsIGFyZyk7Cj4gPiArCWNhc2UgRFJNX0lPQ1RMX0k5MTVfR0VNX1VT RVJQVFI6Cj4gPiArCQlyZXR1cm4gaTkxNV9nZW1fdXNlcnB0cih0Y3AsIGNvZGUsIGFyZyk7Cj4g PiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gZGlmZiAtLWdpdCBhL3hsYXQv ZHJtX2k5MTVfZ2V0cGFyYW1zLmluIGIveGxhdC9kcm1faTkxNV9nZXRwYXJhbXMuaW4KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi4xNTI3NWNiCj4gPiAtLS0gL2Rl di9udWxsCj4gPiArKysgYi94bGF0L2RybV9pOTE1X2dldHBhcmFtcy5pbgo+ID4gQEAgLTAsMCAr MSwyOCBAQAo+ID4gK0k5MTVfUEFSQU1fSVJRX0FDVElWRQo+ID4gK0k5MTVfUEFSQU1fQUxMT1df QkFUQ0hCVUZGRVIKPiA+ICtJOTE1X1BBUkFNX0xBU1RfRElTUEFUQ0gKPiA+ICtJOTE1X1BBUkFN X0NISVBTRVRfSUQKPiA+ICtJOTE1X1BBUkFNX0hBU19HRU0KPiA+ICtJOTE1X1BBUkFNX05VTV9G RU5DRVNfQVZBSUwKPiA+ICtJOTE1X1BBUkFNX0hBU19PVkVSTEFZCj4gPiArSTkxNV9QQVJBTV9I QVNfUEFHRUZMSVBQSU5HCj4gPiArSTkxNV9QQVJBTV9IQVNfRVhFQ0JVRjIKPiA+ICtJOTE1X1BB UkFNX0hBU19CU0QKPiA+ICtJOTE1X1BBUkFNX0hBU19CTFQKPiA+ICtJOTE1X1BBUkFNX0hBU19S RUxBWEVEX0ZFTkNJTkcKPiA+ICtJOTE1X1BBUkFNX0hBU19DT0hFUkVOVF9SSU5HUwo+ID4gK0k5 MTVfUEFSQU1fSEFTX0VYRUNfQ09OU1RBTlRTCj4gPiArSTkxNV9QQVJBTV9IQVNfUkVMQVhFRF9E RUxUQQo+ID4gK0k5MTVfUEFSQU1fSEFTX0dFTjdfU09MX1JFU0VUCj4gPiArSTkxNV9QQVJBTV9I QVNfTExDCj4gPiArSTkxNV9QQVJBTV9IQVNfQUxJQVNJTkdfUFBHVFQKPiA+ICtJOTE1X1BBUkFN X0hBU19XQUlUX1RJTUVPVVQKPiA+ICtJOTE1X1BBUkFNX0hBU19TRU1BUEhPUkVTCj4gPiArSTkx NV9QQVJBTV9IQVNfUFJJTUVfVk1BUF9GTFVTSAo+ID4gK0k5MTVfUEFSQU1fSEFTX1ZFQk9YCj4g PiArSTkxNV9QQVJBTV9IQVNfU0VDVVJFX0JBVENIRVMKPiA+ICtJOTE1X1BBUkFNX0hBU19QSU5O RURfQkFUQ0hFUwo+ID4gK0k5MTVfUEFSQU1fSEFTX0VYRUNfTk9fUkVMT0MKPiA+ICtJOTE1X1BB UkFNX0hBU19FWEVDX0hBTkRMRV9MVVQKPiA+ICtJOTE1X1BBUkFNX0hBU19XVAo+ID4gK0k5MTVf UEFSQU1fQ01EX1BBUlNFUl9WRVJTSU9OCj4gPiBkaWZmIC0tZ2l0IGEveGxhdC9kcm1faTkxNV9p b2N0bHMuaW4gYi94bGF0L2RybV9pOTE1X2lvY3Rscy5pbgo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiA+IGluZGV4IDAwMDAwMDAuLjIxYzMzOTcKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBi L3hsYXQvZHJtX2k5MTVfaW9jdGxzLmluCj4gPiBAQCAtMCwwICsxLDUxIEBACj4gPiArLyogVW5m b3J0dW5hdGVseSBpOTE1IGNvbGxpZGVzIHdpdGggb3RoZXIgRFJNIGRyaXZlcnMgc28gd2UgbXVz dCBzcGVjaWZ5IHRoZXNlICovCj4gPiArRFJNX0lPQ1RMX0k5MTVfSU5JVAo+ID4gK0RSTV9JT0NU TF9JOTE1X0ZMVVNICj4gPiArRFJNX0lPQ1RMX0k5MTVfRkxJUAo+ID4gK0RSTV9JT0NUTF9JOTE1 X0JBVENIQlVGRkVSCj4gPiArRFJNX0lPQ1RMX0k5MTVfSVJRX0VNSVQKPiA+ICtEUk1fSU9DVExf STkxNV9JUlFfV0FJVAo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFVFBBUkFNCj4gPiArRFJNX0lPQ1RM X0k5MTVfU0VUUEFSQU0KPiA+ICtEUk1fSU9DVExfSTkxNV9BTExPQwo+ID4gK0RSTV9JT0NUTF9J OTE1X0ZSRUUKPiA+ICtEUk1fSU9DVExfSTkxNV9JTklUX0hFQVAKPiA+ICtEUk1fSU9DVExfSTkx NV9DTURCVUZGRVIKPiA+ICtEUk1fSU9DVExfSTkxNV9ERVNUUk9ZX0hFQVAKPiA+ICtEUk1fSU9D VExfSTkxNV9TRVRfVkJMQU5LX1BJUEUKPiA+ICtEUk1fSU9DVExfSTkxNV9HRVRfVkJMQU5LX1BJ UEUKPiA+ICtEUk1fSU9DVExfSTkxNV9WQkxBTktfU1dBUAo+ID4gK0RSTV9JT0NUTF9JOTE1X0hX U19BRERSCj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX0lOSVQKPiA+ICtEUk1fSU9DVExfSTkxNV9H RU1fRVhFQ0JVRkZFUgo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9FWEVDQlVGRkVSMgo+ID4gK0RS TV9JT0NUTF9JOTE1X0dFTV9QSU4KPiA+ICtEUk1fSU9DVExfSTkxNV9HRU1fVU5QSU4KPiA+ICtE Uk1fSU9DVExfSTkxNV9HRU1fQlVTWQo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9TRVRfQ0FDSElO Rwo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9HRVRfQ0FDSElORwo+ID4gK0RSTV9JT0NUTF9JOTE1 X0dFTV9USFJPVFRMRQo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9FTlRFUlZUCj4gPiArRFJNX0lP Q1RMX0k5MTVfR0VNX0xFQVZFVlQKPiA+ICtEUk1fSU9DVExfSTkxNV9HRU1fQ1JFQVRFCj4gPiAr RFJNX0lPQ1RMX0k5MTVfR0VNX1BSRUFECj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX1BXUklURQo+ ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9NTUFQCj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBf R1RUCj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX1NFVF9ET01BSU4KPiA+ICtEUk1fSU9DVExfSTkx NV9HRU1fU1dfRklOSVNICj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX1NFVF9USUxJTkcKPiA+ICtE Uk1fSU9DVExfSTkxNV9HRU1fR0VUX1RJTElORwo+ID4gK0RSTV9JT0NUTF9JOTE1X0dFTV9HRVRf QVBFUlRVUkUKPiA+ICtEUk1fSU9DVExfSTkxNV9HRVRfUElQRV9GUk9NX0NSVENfSUQKPiA+ICtE Uk1fSU9DVExfSTkxNV9HRU1fTUFEVklTRQo+ID4gK0RSTV9JT0NUTF9JOTE1X09WRVJMQVlfUFVU X0lNQUdFCj4gPiArRFJNX0lPQ1RMX0k5MTVfT1ZFUkxBWV9BVFRSUwo+ID4gK0RSTV9JT0NUTF9J OTE1X1NFVF9TUFJJVEVfQ09MT1JLRVkKPiA+ICtEUk1fSU9DVExfSTkxNV9HRVRfU1BSSVRFX0NP TE9SS0VZCj4gPiArRFJNX0lPQ1RMX0k5MTVfR0VNX1dBSVQKPiA+ICtEUk1fSU9DVExfSTkxNV9H RU1fQ09OVEVYVF9DUkVBVEUKPiA+ICtEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9Z Cj4gPiArRFJNX0lPQ1RMX0k5MTVfUkVHX1JFQUQKPiA+ICtEUk1fSU9DVExfSTkxNV9HRVRfUkVT RVRfU1RBVFMKPiA+ICtEUk1fSU9DVExfSTkxNV9HRU1fVVNFUlBUUgo+ID4gZGlmZiAtLWdpdCBh L3hsYXQvZHJtX2k5MTVfc2V0cGFyYW1zLmluIGIveGxhdC9kcm1faTkxNV9zZXRwYXJhbXMuaW4K PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi5kOTNkMmVhCj4gPiAt LS0gL2Rldi9udWxsCj4gPiArKysgYi94bGF0L2RybV9pOTE1X3NldHBhcmFtcy5pbgo+ID4gQEAg LTAsMCArMSw0IEBACj4gPiArSTkxNV9TRVRQQVJBTV9VU0VfTUlfQkFUQ0hCVUZGRVJfU1RBUlQK PiA+ICtJOTE1X1NFVFBBUkFNX1RFWF9MUlVfTE9HX0dSQU5VTEFSSVRZCj4gPiArSTkxNV9TRVRQ QVJBTV9BTExPV19CQVRDSEJVRkZFUgo+ID4gK0k5MTVfU0VUUEFSQU1fTlVNX1VTRURfRkVOQ0VT Cj4gCj4gCj4gCj4gLS0gCj4gR2FicmllbCBMYXNrYXIKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK