From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 10/28] drm/i915/tgl: Add power well support Date: Thu, 27 Jun 2019 12:15:26 -0700 Message-ID: <20190627191526.GA3880@intel.com> References: <20190625175437.14840-1-lucas.demarchi@intel.com> <20190625175437.14840-11-lucas.demarchi@intel.com> 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 ESMTPS id 9775B6E4BA for ; Thu, 27 Jun 2019 19:13:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190625175437.14840-11-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMjUsIDIwMTkgYXQgMTA6NTQ6MTlBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IEZyb206IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAKPiBUaGUg cGF0Y2ggYWRkcyB0aGUgbmV3IHBvd2VyIHdlbGxzIGludHJvZHVjZWQgYnkgVEdMIChHRU4gMTIp IGFuZAo+IG1hcHMgdGhlc2UgdG8gZXhpc3RpbmcvbmV3IHBvd2VyIGRvbWFpbnMuIFRoZSBjaGFu Z2VzIGZvciBHRU4gMTIgd3J0Cj4gdG8gR0VOIDExIGFyZSB0aGUgZm9sbG93aW5nOgo+IAo+IC0g VHJhbnNjb2RlciNFRFAgcmVtb3ZlZCBmcm9tIHBvd2VyIHdlbGwjMSAoVHJhbnNjb2RlciNBIHVz ZWQgaW4KPiAgIGxvdy1wb3dlciBtb2RlIGluc3RlYWQpCj4gLSBUcmFuc2NvZGVyI0EgaXMgbm93 IGJhY2tlZCBieSBwb3dlciB3ZWxsIzEgaW5zdGVhZCBvZiBwb3dlciB3ZWxsIzMKPiAtIFRoZSBE REkjQi9DIGNvbWJvIFBIWSBwb3J0cyBhcmUgbm93IGJhY2tlZCBieSBwb3dlciB3ZWxsIzEgaW5z dGVhZCBvZgo+ICAgcG93ZXIgd2VsbCMzCj4gLSBOZXcgcG93ZXIgd2VsbCM1IGFkZGVkIGZvciBw aXBlI0QgZnVuY3Rpb25hbGl0eSAoVE9ETykKPiAtIDIgYWRkaXRpb25hbCBUQyBwb3J0cyAoVEMj NS02KSBiYWNrZWQgYnkgcG93ZXIgd2VsbCMzLCAyIHBvcnQKPiAgIHNwZWNpZmljIElPIHBvd2Vy IHdlbGxzIChvbmx5IGZvciB0aGUgbm9uLVRCVCBtb2RlcykgYW5kIDQgcG9ydAo+ICAgc3BlY2lm aWMgQVVYIHBvd2VyIHdlbGxzICgyLTIgZm9yIFRCVCB2cy4gbm9uLVRCVCBtb2RlcykKPiAtIFBv d2VyIHdlbGwjMiBiYWNrcyBub3cgVkRTQy9qb2luaW5nIGZvciBwaXBlI0EgaW5zdGVhZCBvZiBW RFNDIGZvcgo+ICAgZURQIGFuZCBNSVBJIERTSSAoVE9ETykKPiAKPiBPbiBUR0wgUG9ydCBEREkj QyBjaGFuZ2VkIHRvIGJlIGEgY29tYm8gUEhZIChuYXRpdmUgRFAvSERNSSkgYW5kCj4gQlNwZWMg aGFzIHJlbmFtZWQgcG9ydHMgRERJI0QtRiB0byBUQyM0LTYgcmVzcGVjdGl2ZWx5LiBUaHVzIG9u IElDTCB3ZQo+IGhhdmUgdGhlIGZvbGxvd2luZyBuYW1pbmcgZm9yIHBvcnRzOgo+IAo+IC0gQ29t Ym8gUEhZcyAobmF0aXZlIERQL0hETUkpOgo+ICAgRERJI0EtQgo+IC0gVEJUL25vbi1UQlQgKFRD IGFsdG1vZGUsIG5hdGl2ZSBEUC9IRE1JKSBQSFlzOgo+ICAgRERJI0MtRgo+IAo+IFN0YXJ0aW5n IGZyb20gR0VOIDEyIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBuYW1pbmcgZm9yIHBvcnRzOgo+IC0g Q29tYm8gUEhZcyAobmF0aXZlIERQL0hETUkpOgo+ICAgRERJI0EtQwo+IC0gVEJUL25vbi1UQlQg KFRDIGFsdG1vZGUsIG5hdGl2ZSBEUC9IRE1JKSBQSFlzOgo+ICAgRERJIFRDIzEtNgo+IAo+IFRv IHNhdmUgc29tZSBzcGFjZSBpbiB0aGUgcG93ZXIgZG9tYWluIGVudW0gdGhlIHBvd2VyIGRvbWFp biBuYW1pbmcgaW4KPiB0aGUgZHJpdmVyIHJlZmxlY3RzIHRoZSBhYm92ZSBjaGFuZ2UsIHRoYXQg aXMgcG93ZXIgZG9tYWlucyBUQyMxLTMgYXJlCj4gYWRkZWQgYXMgYWxpYXNlcyBmb3IgRERJI0Qt RiBhbmQgbmV3IHBvd2VyIGRvbWFpbnMgYXJlIHJlc2VydmVkIGZvcgo+IFRDIzQtNi4KPiAKPiBD YzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IENjOiBSb2Ry aWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IEpvc8OpIFJvYmVydG8gZGUg U291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8 aW1yZS5kZWFrQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1 Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiAtLS0KPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV9wb3dlci5jICAgIHwgNDc0ICsrKysrKysrKysrKysrKysrLQo+ICAuLi4vZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggICAgfCAgMjYgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgICAzICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgICAgICB8ICAxOCArCj4gIDQgZmls ZXMgY2hhbmdlZCwgNTAyIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4g aW5kZXggYzkzYWQ1MTIwMTRjLi4yMGIyMDA5Y2VjYzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+IEBAIC0yMiw4ICsy MiwxMSBAQCBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfd2VsbF9pc19lbmFibGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCQkgZW51bSBpOTE1X3Bvd2VyX3dlbGxf aWQgcG93ZXJfd2VsbF9pZCk7Cj4gIAo+ICBjb25zdCBjaGFyICoKPiAtaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKQo+ ICtpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCj4gKwkJCSAgICAgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFp bikKPiAgewo+ICsJYm9vbCBkZGlfdGNfcG9ydHMgPSBJU19HRU4oaTkxNSwgMTIpOwo+ICsKPiAg CXN3aXRjaCAoZG9tYWluKSB7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9ESVNQTEFZX0NPUkU6Cj4g IAkJcmV0dXJuICJESVNQTEFZX0NPUkUiOwo+IEBAIC02MCwxMSArNjMsMjMgQEAgaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9t YWluKQo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUzoKPiAgCQlyZXR1cm4g IlBPUlRfRERJX0NfTEFORVMiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5F UzoKPiAtCQlyZXR1cm4gIlBPUlRfRERJX0RfTEFORVMiOwo+ICsJCUJVSUxEX0JVR19PTihQT1dF Ul9ET01BSU5fUE9SVF9ERElfRF9MQU5FUyAhPQo+ICsJCQkgICAgIFBPV0VSX0RPTUFJTl9QT1JU X0RESV9UQzFfTEFORVMpOwo+ICsJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMx X0xBTkVTIiA6ICJQT1JUX0RESV9EX0xBTkVTIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRf RERJX0VfTEFORVM6Cj4gLQkJcmV0dXJuICJQT1JUX0RESV9FX0xBTkVTIjsKPiArCQlCVUlMRF9C VUdfT04oUE9XRVJfRE9NQUlOX1BPUlRfRERJX0VfTEFORVMgIT0KPiArCQkJICAgICBQT1dFUl9E T01BSU5fUE9SVF9ERElfVEMyX0xBTkVTKTsKPiArCQlyZXR1cm4gZGRpX3RjX3BvcnRzID8gIlBP UlRfRERJX1RDMl9MQU5FUyIgOiAiUE9SVF9ERElfRV9MQU5FUyI7Cj4gIAljYXNlIFBPV0VSX0RP TUFJTl9QT1JUX0RESV9GX0xBTkVTOgo+IC0JCXJldHVybiAiUE9SVF9ERElfRl9MQU5FUyI7Cj4g KwkJQlVJTERfQlVHX09OKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9GX0xBTkVTICE9Cj4gKwkJCSAg ICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDM19MQU5FUyk7Cj4gKwkJcmV0dXJuIGRkaV90Y19w b3J0cyA/ICJQT1JUX0RESV9UQzNfTEFORVMiIDogIlBPUlRfRERJX0ZfTEFORVMiOwo+ICsJY2Fz ZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM0X0xBTkVTOgo+ICsJCXJldHVybiAiUE9SVF9ERElf VEM0X0xBTkVTIjsKPiArCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNV9MQU5FUzoKPiAr CQlyZXR1cm4gIlBPUlRfRERJX1RDNV9MQU5FUyI7Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JU X0RESV9UQzZfTEFORVM6Cj4gKwkJcmV0dXJuICJQT1JUX0RESV9UQzZfTEFORVMiOwo+ICAJY2Fz ZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9JTzoKPiAgCQlyZXR1cm4gIlBPUlRfRERJX0FfSU8i Owo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9JTzoKPiBAQCAtNzIsMTEgKzg3LDIz IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIGRvbWFpbikKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU86Cj4g IAkJcmV0dXJuICJQT1JUX0RESV9DX0lPIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJ X0RfSU86Cj4gLQkJcmV0dXJuICJQT1JUX0RESV9EX0lPIjsKPiArCQlCVUlMRF9CVUdfT04oUE9X RVJfRE9NQUlOX1BPUlRfRERJX0RfSU8gIT0KPiArCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9E RElfVEMxX0lPKTsKPiArCQlyZXR1cm4gZGRpX3RjX3BvcnRzID8gIlBPUlRfRERJX1RDMV9JTyIg OiAiUE9SVF9ERElfRF9JTyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPOgo+ IC0JCXJldHVybiAiUE9SVF9ERElfRV9JTyI7Cj4gKwkJQlVJTERfQlVHX09OKFBPV0VSX0RPTUFJ Tl9QT1JUX0RESV9FX0lPICE9Cj4gKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9J Tyk7Cj4gKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzJfSU8iIDogIlBPUlRf RERJX0VfSU8iOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9JTzoKPiAtCQlyZXR1 cm4gIlBPUlRfRERJX0ZfSU8iOwo+ICsJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fUE9SVF9E RElfRl9JTyAhPQo+ICsJCQkgICAgIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzNfSU8pOwo+ICsJ CXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMzX0lPIiA6ICJQT1JUX0RESV9GX0lP IjsKPiArCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNF9JTzoKPiArCQlyZXR1cm4gIlBP UlRfRERJX1RDNF9JTyI7Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfSU86Cj4g KwkJcmV0dXJuICJQT1JUX0RESV9UQzVfSU8iOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9E RElfVEM2X0lPOgo+ICsJCXJldHVybiAiUE9SVF9ERElfVEM2X0lPIjsKPiAgCWNhc2UgUE9XRVJf RE9NQUlOX1BPUlRfRFNJOgo+ICAJCXJldHVybiAiUE9SVF9EU0kiOwo+ICAJY2FzZSBQT1dFUl9E T01BSU5fUE9SVF9DUlQ6Cj4gQEAgLTk0LDExICsxMjEsMjAgQEAgaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKQo+ICAJ Y2FzZSBQT1dFUl9ET01BSU5fQVVYX0M6Cj4gIAkJcmV0dXJuICJBVVhfQyI7Cj4gIAljYXNlIFBP V0VSX0RPTUFJTl9BVVhfRDoKPiAtCQlyZXR1cm4gIkFVWF9EIjsKPiArCQlCVUlMRF9CVUdfT04o UE9XRVJfRE9NQUlOX0FVWF9EICE9IFBPV0VSX0RPTUFJTl9BVVhfVEMxKTsKPiArCQlyZXR1cm4g ZGRpX3RjX3BvcnRzID8gIkFVWF9UQzEiIDogIkFVWF9EIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlO X0FVWF9FOgo+IC0JCXJldHVybiAiQVVYX0UiOwo+ICsJCUJVSUxEX0JVR19PTihQT1dFUl9ET01B SU5fQVVYX0UgIT0gUE9XRVJfRE9NQUlOX0FVWF9UQzIpOwo+ICsJCXJldHVybiBkZGlfdGNfcG9y dHMgPyAiQVVYX1RDMiIgOiAiQVVYX0UiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fQVVYX0Y6Cj4g LQkJcmV0dXJuICJBVVhfRiI7Cj4gKwkJQlVJTERfQlVHX09OKFBPV0VSX0RPTUFJTl9BVVhfRiAh PSBQT1dFUl9ET01BSU5fQVVYX1RDMyk7Cj4gKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJBVVhf VEMzIiA6ICJBVVhfRiI7Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfVEM0Ogo+ICsJCXJldHVy biAiQVVYX1RDNCI7Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfVEM1Ogo+ICsJCXJldHVybiAi QVVYX1RDNSI7Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfVEM2Ogo+ICsJCXJldHVybiAiQVVY X1RDNiI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9BVVhfSU9fQToKPiAgCQlyZXR1cm4gIkFVWF9J T19BIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9UQlQxOgo+IEBAIC0xMDksNiArMTQ1LDEw IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIGRvbWFpbikKPiAgCQlyZXR1cm4gIkFVWF9UQlQzIjsKPiAgCWNhc2UgUE9XRVJf RE9NQUlOX0FVWF9UQlQ0Ogo+ICAJCXJldHVybiAiQVVYX1RCVDQiOwo+ICsJY2FzZSBQT1dFUl9E T01BSU5fQVVYX1RCVDU6Cj4gKwkJcmV0dXJuICJBVVhfVEJUNSI7Cj4gKwljYXNlIFBPV0VSX0RP TUFJTl9BVVhfVEJUNjoKPiArCQlyZXR1cm4gIkFVWF9UQlQ2IjsKPiAgCWNhc2UgUE9XRVJfRE9N QUlOX0dNQlVTOgo+ICAJCXJldHVybiAiR01CVVMiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fSU5J VDoKPiBAQCAtMTU2OCwxMiArMTYwOCwxNSBAQCBfX2FzeW5jX3B1dF9kb21haW5zX3N0YXRlX29r KHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMpCj4gIHN0YXRpYyB2b2lk IHByaW50X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9t YWlucywKPiAgCQkJCWNvbnN0IGNoYXIgKnByZWZpeCwgdTY0IG1hc2spCj4gIHsKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0KPiArCQljb250YWluZXJfb2YocG93ZXJfZG9tYWlu cywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4gKwkJCSAgICAgcG93ZXJfZG9tYWlucyk7Cj4g IAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKPiAgCj4gIAlEUk1fREVC VUdfRFJJVkVSKCIlcyAoJWx1KTpcbiIsIHByZWZpeCwgaHdlaWdodDY0KG1hc2spKTsKPiAgCWZv cl9lYWNoX3Bvd2VyX2RvbWFpbihkb21haW4sIG1hc2spCj4gIAkJRFJNX0RFQlVHX0RSSVZFUigi JXMgdXNlX2NvdW50ICVkXG4iLAo+IC0JCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0 cihkb21haW4pLAo+ICsJCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihpOTE1LCBk b21haW4pLAo+ICAJCQkJIHBvd2VyX2RvbWFpbnMtPmRvbWFpbl91c2VfY291bnRbZG9tYWluXSk7 Cj4gIH0KPiAgCj4gQEAgLTE3NDMsNyArMTc4Niw3IEBAIF9faW50ZWxfZGlzcGxheV9wb3dlcl9w dXRfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgewo+ICAJc3Ry dWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWluczsKPiAgCXN0cnVjdCBpOTE1X3Bv d2VyX3dlbGwgKnBvd2VyX3dlbGw7Cj4gLQljb25zdCBjaGFyICpuYW1lID0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW5fc3RyKGRvbWFpbik7Cj4gKwljb25zdCBjaGFyICpuYW1lID0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGRldl9wcml2LCBkb21haW4pOwo+ICAKPiAgCXBvd2Vy X2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7Cj4gIAo+IEBAIC0yMzA3LDExICsy MzUwLDE0IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAgKiBJQ0wgUFdfMS9QR18xIGRvbWFpbnMgKEhXL0RNQyBjb250 cm9sKToKPiAgICogLSBEQlVGIGZ1bmN0aW9uCj4gICAqIC0gUElQRV9BIGFuZCBpdHMgcGxhbmVz LCBleGNlcHQgVkdBCj4gLSAqIC0gdHJhbnNjb2RlciBFRFAgKyBQU1IKPiArICogLSBHRU4gMTE6 IHRyYW5zY29kZXIgRURQICsgUFNSCj4gKyAqICAgR0VOIDEyOiB0cmFuc2NvZGVyIEEgKyBQU1IK PiAgICogLSB0cmFuc2NvZGVyIERTSQo+IC0gKiAtIERESV9BCj4gKyAqIC0gR0VOIDExOiBERElf QQo+ICsgKiAgIEdFTiAxMjogRERJX0EtQwo+ICAgKiAtIEZCQwo+ICAgKi8KPiArLyogVE9ETzog VEdMX1BXXzVfUE9XRVJfRE9NQUlOUzogUElQRV9EICovCj4gICNkZWZpbmUgSUNMX1BXXzRfUE9X RVJfRE9NQUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DKSB8CQkJXAo+ ICAJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAlcCj4gQEAgLTIz NDYsMjIgKzIzOTIsNjcgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9WR0EpIHwJ CQlcCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJCVwKPiAgCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0lOSVQpKQo+ICsjZGVmaW5lIFRHTF9QV18zX1BPV0VSX0RPTUFJTlMgKAkJCVwK PiArCUlDTF9QV180X1BPV0VSX0RPTUFJTlMgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlO X1BJUEVfQikgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJ XAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCj4gKwkvKiBUT0RP OiBUUkFOU0NPREVSX0QgKi8JCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFO RUxfRklUVEVSKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMV9MQU5F UykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfSU8pIHwJCVwKPiAr CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9MQU5FUykgfAlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzJfSU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1BPUlRfRERJX1RDM19MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9UQzNfSU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNF9M QU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfSU8pIHwJCVwK PiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNV9MQU5FUykgfAlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfSU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1BPUlRfRERJX1RDNl9MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9Q T1JUX0RESV9UQzZfSU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzEpIHwJ CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzIpIHwJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0FVWF9UQzMpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzQp IHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzUpIHwJCVwKPiArCUJJVF9VTEwo UE9XRVJfRE9NQUlOX0FVWF9UQzYpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9U QlQxKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUMikgfAkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDMpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0FVWF9UQlQ0KSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNSkgfAkJXAo+ ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDYpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1ZHQSkgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAo+ ICsJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCj4gIAkvKgo+ICAJICogLSB0cmFuc2NvZGVy IFdECj4gIAkgKiAtIEtWTVIgKEhXIGNvbnRyb2wpCj4gIAkgKi8KPiAgI2RlZmluZSBJQ0xfUFdf Ml9QT1dFUl9ET01BSU5TICgJCQlcCj4gIAlJQ0xfUFdfM19QT1dFUl9ET01BSU5TIHwJCQlcCj4g LQlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUF9WRFNDKSB8CQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUF9WRFNDKSB8CVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0lOSVQpKQo+ICsjZGVmaW5lIFRHTF9QV18yX1BPV0VSX0RPTUFJTlMgKAkJCVwK PiArCVRHTF9QV18zX1BPV0VSX0RPTUFJTlMgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlO X1RSQU5TQ09ERVJfRURQX1ZEU0MpIHwJXAoKU2hvdWxkbid0IHRoaXMgYmUgUE9XRVJfRE9NQUlO X1RSQU5TQ09ERVJfQV9WRFNDIGZvciBWRFNDL2pvaW5pbmcgb24gUGlwZSBBIG9yClRyYW5zY29k ZXIgQT8KUGF0Y2ggMTIgb2YgdGhpcyBzZXJpZXMgdGhlbiBhc2lzZ25zIFBPV0VSX0RPTUFJTl9U UkFOU0NPREVSX0FfVkRTQwoKTWFuYXNpCgo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkp Cj4gIAkvKgo+ICAJICogLSBLVk1SIChIVyBjb250cm9sKQo+ICsJICogLSBHRU4gMTE6IGVEUC9E U0kgVkRTQwo+ICsJICogLSBHRU4gMTI6IFBJUEUgQSBWRFNDL2pvaW5pbmcKPiAgCSAqLwo+ICAj ZGVmaW5lIElDTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TICgJCVwKPiAgCUlDTF9QV18y X1BPV0VSX0RPTUFJTlMgfAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJ CQlcCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiAgCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0lOSVQpKQo+ICsjZGVmaW5lIFRHTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01B SU5TICgJCVwKPiArCVRHTF9QV18yX1BPV0VSX0RPTUFJTlMgfAkJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkg fAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICAKPiAgI2RlZmluZSBJQ0xf RERJX0lPX0FfUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fUE9S VF9ERElfQV9JTykpCj4gQEAgLTIzNzEsMTAgKzI0NjIsMjIgQEAgdm9pZCBpbnRlbF9kaXNwbGF5 X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0lPKSkKPiAgI2RlZmluZSBJQ0xfRERJX0lPX0RfUE9X RVJfRE9NQUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9JTykp Cj4gKyNkZWZpbmUgVEdMX0RESV9JT19UQzFfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfSU8pKQo+ICAjZGVmaW5lIElDTF9ERElfSU9fRV9Q T1dFUl9ET01BSU5TICgJCQlcCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lP KSkKPiArI2RlZmluZSBUR0xfRERJX0lPX1RDMl9QT1dFUl9ET01BSU5TICgJCVwKPiArCUJJVF9V TEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9JTykpCj4gICNkZWZpbmUgSUNMX0RESV9JT19G X1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0Zf SU8pKQo+ICsjZGVmaW5lIFRHTF9ERElfSU9fVEMzX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lPKSkKPiArI2RlZmluZSBUR0xfRERJX0lP X1RDNF9QT1dFUl9ET01BSU5TICgJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJ X1RDNF9JTykpCj4gKyNkZWZpbmUgVEdMX0RESV9JT19UQzVfUE9XRVJfRE9NQUlOUyAoCQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfSU8pKQo+ICsjZGVmaW5lIFRHTF9E RElfSU9fVEM2X1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9S VF9ERElfVEM2X0lPKSkKPiAgCj4gICNkZWZpbmUgSUNMX0FVWF9BX0lPX1BPV0VSX0RPTUFJTlMg KAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9JT19BKSB8CQlcCj4gQEAgLTIzODUs MTAgKzI0ODgsMjIgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQykpCj4g ICNkZWZpbmUgSUNMX0FVWF9EX0lPX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAgCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0FVWF9EKSkKPiArI2RlZmluZSBUR0xfQVVYX1RDMV9JT19QT1dFUl9ET01BSU5T ICgJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzEpKQo+ICAjZGVmaW5lIElDTF9B VVhfRV9JT19QT1dFUl9ET01BSU5TICgJCQlcCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhf RSkpCj4gKyNkZWZpbmUgVEdMX0FVWF9UQzJfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9BVVhfVEMyKSkKPiAgI2RlZmluZSBJQ0xfQVVYX0ZfSU9fUE9XRVJf RE9NQUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0YpKQo+ICsjZGVmaW5l IFRHTF9BVVhfVEMzX0lPX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX1RDMykpCj4gKyNkZWZpbmUgVEdMX0FVWF9UQzRfSU9fUE9XRVJfRE9NQUlOUyAoCQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM0KSkKPiArI2RlZmluZSBUR0xfQVVYX1RD NV9JT19QT1dFUl9ET01BSU5TICgJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzUp KQo+ICsjZGVmaW5lIFRHTF9BVVhfVEM2X0lPX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fQVVYX1RDNikpCj4gICNkZWZpbmUgSUNMX0FVWF9UQlQxX0lPX1BPV0VS X0RPTUFJTlMgKAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQxKSkKPiAgI2Rl ZmluZSBJQ0xfQVVYX1RCVDJfSU9fUE9XRVJfRE9NQUlOUyAoCQkJXAo+IEBAIC0yMzk3LDYgKzI1 MTIsMTAgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUMykpCj4gICNk ZWZpbmUgSUNMX0FVWF9UQlQ0X0lPX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAgCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0FVWF9UQlQ0KSkKPiArI2RlZmluZSBUR0xfQVVYX1RCVDVfSU9fUE9XRVJfRE9N QUlOUyAoCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNSkpCj4gKyNkZWZpbmUg VEdMX0FVWF9UQlQ2X0lPX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX1RCVDYpKQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxf b3BzIGk5eHhfYWx3YXlzX29uX3Bvd2VyX3dlbGxfb3BzID0gewo+ICAJLnN5bmNfaHcgPSBpOXh4 X3Bvd2VyX3dlbGxfc3luY19od19ub29wLAo+IEBAIC0zMzU1LDYgKzM0NzQsMzI0IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2MgaWNsX3Bvd2VyX3dlbGxzW10gPSB7 Cj4gIAl9LAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxf ZGVzYyB0Z2xfcG93ZXJfd2VsbHNbXSA9IHsKPiArCXsKPiArCQkubmFtZSA9ICJhbHdheXMtb24i LAo+ICsJCS5hbHdheXNfb24gPSB0cnVlLAo+ICsJCS5kb21haW5zID0gUE9XRVJfRE9NQUlOX01B U0ssCj4gKwkJLm9wcyA9ICZpOXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxsX29wcywKPiArCQkuaWQg PSBESVNQX1BXX0lEX05PTkUsCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gInBvd2VyIHdlbGwg MSIsCj4gKwkJLyogSGFuZGxlZCBieSB0aGUgRE1DIGZpcm13YXJlICovCj4gKwkJLmFsd2F5c19v biA9IHRydWUsCj4gKwkJLmRvbWFpbnMgPSAwLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxf b3BzLAo+ICsJCS5pZCA9IFNLTF9ESVNQX1BXXzEsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAm aHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBJQ0xfUFdfQ1RMX0lEWF9QV18x LAo+ICsJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJ Lm5hbWUgPSAiREMgb2ZmIiwKPiArCQkuZG9tYWlucyA9IFRHTF9ESVNQTEFZX0RDX09GRl9QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMsCj4gKwkJ LmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJwb3dlciB3 ZWxsIDIiLAo+ICsJCS5kb21haW5zID0gVEdMX1BXXzJfUE9XRVJfRE9NQUlOUywKPiArCQkub3Bz ID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBTS0xfRElTUF9QV18yLAo+ICsJCXsK PiArCQkJLmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0g SUNMX1BXX0NUTF9JRFhfUFdfMiwKPiArCQkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ICsJCX0s Cj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gInBvd2VyIHdlbGwgMyIsCj4gKwkJLmRvbWFpbnMg PSBUR0xfUFdfM19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3Bz LAo+ICsJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZo c3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX1BXXzMs Cj4gKwkJCS5oc3cuaXJxX3BpcGVfbWFzayA9IEJJVChQSVBFX0IpLAo+ICsJCQkuaHN3Lmhhc192 Z2EgPSB0cnVlLAo+ICsJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4g Kwl7Cj4gKwkJLm5hbWUgPSAiRERJIEEgSU8iLAo+ICsJCS5kb21haW5zID0gSUNMX0RESV9JT19B X1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlk ID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93 ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0RESV9BLAo+ICsJ CX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJIEIgSU8iLAo+ICsJCS5kb21haW5zID0g SUNMX0RESV9JT19CX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9v cHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0g JmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURY X0RESV9CLAo+ICsJCX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJIEMgSU8iLAo+ICsJ CS5kb21haW5zID0gSUNMX0RESV9JT19DX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3df cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElD TF9QV19DVExfSURYX0RESV9DLAo+ICsJCX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJ IFRDMSBJTyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RDMV9QT1dFUl9ET01BSU5TLAo+ ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IERJU1BfUFdfSURfTk9O RSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bvd2VyX3dlbGxfcmVncywKPiAr CQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEMxLAo+ICsJCX0sCj4gKwl9LAo+ICsJ ewo+ICsJCS5uYW1lID0gIkRESSBUQzIgSU8iLAo+ICsJCS5kb21haW5zID0gVEdMX0RESV9JT19U QzJfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQku aWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9w b3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfRERJX1RDMiwK PiArCQl9LAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJEREkgVEMzIElPIiwKPiArCQkuZG9t YWlucyA9IFRHTF9ERElfSU9fVEMzX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93 ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhz dy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9Q V19DVExfSURYX0RESV9UQzMsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJ IFRDNCBJTyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RDNF9QT1dFUl9ET01BSU5TLAo+ ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IERJU1BfUFdfSURfTk9O RSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bvd2VyX3dlbGxfcmVncywKPiAr CQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEM0LAo+ICsJCX0sCj4gKwl9LAo+ICsJ ewo+ICsJCS5uYW1lID0gIkRESSBUQzUgSU8iLAo+ICsJCS5kb21haW5zID0gVEdMX0RESV9JT19U QzVfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQku aWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9w b3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gVEdMX1BXX0NUTF9JRFhfRERJX1RDNSwK PiArCQl9LAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJEREkgVEM2IElPIiwKPiArCQkuZG9t YWlucyA9IFRHTF9ERElfSU9fVEM2X1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93 ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhz dy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9Q V19DVExfSURYX0RESV9UQzYsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVY IEEiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9BX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9w cyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BX X0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3Jl Z3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVYX0EsCj4gKwkJfSwKPiArCX0s Cj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIEIiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9CX0lP X1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxs X29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3Mg PSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9J RFhfQVVYX0IsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIEMiLAo+ICsJ CS5kb21haW5zID0gSUNMX0FVWF9DX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZpY2xf Y29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUs Cj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJ CS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVYX0MsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDMSIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDMV9JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzEsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDMiIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDMl9JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzIsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDMyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDM19JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzMsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDNCIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDNF9JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzQsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDNSIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDNV9JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzUsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRDNiIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfQVVYX1RDNl9JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QzYsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRCVDEiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9UQlQxX0lPX1BP V0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0g RElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJf d2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQxLAo+ICsJ CQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUg PSAiQVVYIFRCVDIiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9UQlQyX0lPX1BPV0VSX0RPTUFJ TlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19J RF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdz LAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQyLAo+ICsJCQkuaHN3Lmlz X3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRC VDMiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9UQlQzX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJ Lm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQku aHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQzLAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9 IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDQiLAo+ICsJ CS5kb21haW5zID0gSUNMX0FVWF9UQlQ0X0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZo c3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiAr CQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9 IFRHTF9QV19DVExfSURYX0FVWF9UQlQ0LAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4g KwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDUiLAo+ICsJCS5kb21haW5z ID0gVEdMX0FVWF9UQlQ1X0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJf d2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5y ZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19D VExfSURYX0FVWF9UQlQ1LAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiAr CX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDYiLAo+ICsJCS5kb21haW5zID0gVEdMX0FV WF9UQlQ2X0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMs Cj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmlj bF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FV WF9UQlQ2LAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7 Cj4gKwkJLm5hbWUgPSAicG93ZXIgd2VsbCA0IiwKPiArCQkuZG9tYWlucyA9IElDTF9QV180X1BP V0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0g RElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxs X3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfNCwKPiArCQkJLmhzdy5o YXNfZnVzZXMgPSB0cnVlLAo+ICsJCQkuaHN3LmlycV9waXBlX21hc2sgPSBCSVQoUElQRV9DKSwK PiArCQl9Cj4gKwl9LAo+ICsJLyogVE9ETzogcG93ZXIgd2VsbCA1IGZvciBwaXBlIEQgKi8KPiAr fTsKPiArCj4gIHN0YXRpYyBpbnQKPiAgc2FuaXRpemVfZGlzYWJsZV9wb3dlcl93ZWxsX29wdGlv bihjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkgICBpbnQg ZGlzYWJsZV9wb3dlcl93ZWxsKQo+IEBAIC0zNDgyLDcgKzM5MTksOSBAQCBpbnQgaW50ZWxfcG93 ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCSAq IFRoZSBlbmFibGluZyBvcmRlciB3aWxsIGJlIGZyb20gbG93ZXIgdG8gaGlnaGVyIGluZGV4ZWQg d2VsbHMsCj4gIAkgKiB0aGUgZGlzYWJsaW5nIG9yZGVyIGlzIHJldmVyc2VkLgo+ICAJICovCj4g LQlpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpIHsKPiArCWlmIChJU19HRU4oZGV2X3ByaXYsIDEy KSkgewo+ICsJCWVyciA9IHNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCB0Z2xfcG93ZXJf d2VsbHMpOwo+ICsJfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDExKSkgewo+ICAJCWVyciA9 IHNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBpY2xfcG93ZXJfd2VsbHMpOwo+ICAJfSBl bHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ICAJCWVyciA9IHNldF9wb3dlcl93 ZWxscyhwb3dlcl9kb21haW5zLCBjbmxfcG93ZXJfd2VsbHMpOwo+IEBAIC00NTQ2LDcgKzQ5ODUs OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2R1bXBfaW5mbyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCj4gIAkJZm9yX2VhY2hfcG93ZXJfZG9tYWluKGRvbWFp biwgcG93ZXJfd2VsbC0+ZGVzYy0+ZG9tYWlucykKPiAgCQkJRFJNX0RFQlVHX0RSSVZFUigiICAl LTIzcyAlZFxuIiwKPiAtCQkJCQkgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGRvbWFp biksCj4gKwkJCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihpOTE1LAo+ICsJCQkJ CQkJCQlkb21haW4pLAo+ICAJCQkJCSBwb3dlcl9kb21haW5zLT5kb21haW5fdXNlX2NvdW50W2Rv bWFpbl0pOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKPiBpbmRleCBmZjU3YjBhN2ZlNTkuLjhmODFiNzY5YmMy ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfcG93ZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV9wb3dlci5oCj4gQEAgLTMyLDE0ICszMiwyOSBAQCBlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHsKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTLAo+ICAJUE9XRVJf RE9NQUlOX1BPUlRfRERJX0NfTEFORVMsCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5F UywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfTEFORVMgPSBQT1dFUl9ET01BSU5fUE9S VF9ERElfRF9MQU5FUywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0xBTkVTLAo+ICsJUE9X RVJfRE9NQUlOX1BPUlRfRERJX1RDMl9MQU5FUyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0xB TkVTLAo+ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVMsCj4gKwlQT1dFUl9ET01BSU5f UE9SVF9ERElfVEMzX0xBTkVTID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVMsCj4gKwlQ T1dFUl9ET01BSU5fUE9SVF9ERElfVEM0X0xBTkVTLAo+ICsJUE9XRVJfRE9NQUlOX1BPUlRfRERJ X1RDNV9MQU5FUywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzZfTEFORVMsCj4gIAlQT1dF Ul9ET01BSU5fUE9SVF9ERElfQV9JTywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0lPLAo+ ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU8sCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9ERElf RF9JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfSU8gPSBQT1dFUl9ET01BSU5fUE9S VF9ERElfRF9JTywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPLAo+ICsJUE9XRVJfRE9N QUlOX1BPUlRfRERJX1RDMl9JTyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPLAo+ICAJUE9X RVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8sCj4gKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lP ID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8sCj4gKwlQT1dFUl9ET01BSU5fUE9SVF9ERElf R19JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfSU8gPSBQT1dFUl9ET01BSU5fUE9S VF9ERElfR19JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9IX0lPLAo+ICsJUE9XRVJfRE9N QUlOX1BPUlRfRERJX1RDNV9JTyA9IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9IX0lPLAo+ICsJUE9X RVJfRE9NQUlOX1BPUlRfRERJX0lfSU8sCj4gKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0lP ID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0lfSU8sCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9EU0ks Cj4gIAlQT1dFUl9ET01BSU5fUE9SVF9DUlQsCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9PVEhFUiwK PiBAQCAtNDksMTMgKzY0LDIxIEBAIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gewo+ ICAJUE9XRVJfRE9NQUlOX0FVWF9CLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9DLAo+ICAJUE9XRVJf RE9NQUlOX0FVWF9ELAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9UQzEgPSBQT1dFUl9ET01BSU5fQVVY X0QsCj4gIAlQT1dFUl9ET01BSU5fQVVYX0UsCj4gKwlQT1dFUl9ET01BSU5fQVVYX1RDMiA9IFBP V0VSX0RPTUFJTl9BVVhfRSwKPiAgCVBPV0VSX0RPTUFJTl9BVVhfRiwKPiArCVBPV0VSX0RPTUFJ Tl9BVVhfVEMzID0gUE9XRVJfRE9NQUlOX0FVWF9GLAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9UQzQs Cj4gKwlQT1dFUl9ET01BSU5fQVVYX1RDNSwKPiArCVBPV0VSX0RPTUFJTl9BVVhfVEM2LAo+ICAJ UE9XRVJfRE9NQUlOX0FVWF9JT19BLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9UQlQxLAo+ICAJUE9X RVJfRE9NQUlOX0FVWF9UQlQyLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9UQlQzLAo+ICAJUE9XRVJf RE9NQUlOX0FVWF9UQlQ0LAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9UQlQ1LAo+ICsJUE9XRVJfRE9N QUlOX0FVWF9UQlQ2LAo+ICAJUE9XRVJfRE9NQUlOX0dNQlVTLAo+ICAJUE9XRVJfRE9NQUlOX01P REVTRVQsCj4gIAlQT1dFUl9ET01BSU5fR1RfSVJRLAo+IEBAIC0yMjcsNyArMjUwLDggQEAgdm9p ZCBieHRfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBib29sIHJlc3VtZSk7Cj4gIHZvaWQgYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgCj4gIGNvbnN0IGNoYXIgKgo+IC1pbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBk b21haW4pOwo+ICtpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCj4gKwkJCSAgICAgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluIGRvbWFpbik7Cj4gIAo+ICBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkgICAgZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gaW5kZXggZWVlY2RhZDBlM2NhLi41MjQ3ZmE2OWRmZWMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNDc5LDcgKzI0NzksOCBAQCBzdGF0aWMgaW50IGk5 MTVfcG93ZXJfZG9tYWluX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4g IAo+ICAJCWZvcl9lYWNoX3Bvd2VyX2RvbWFpbihwb3dlcl9kb21haW4sIHBvd2VyX3dlbGwtPmRl c2MtPmRvbWFpbnMpCj4gIAkJCXNlcV9wcmludGYobSwgIiAgJS0yM3MgJWRcbiIsCj4gLQkJCQkg aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKHBvd2VyX2RvbWFpbiksCj4gKwkJCQkgaW50 ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGRldl9wcml2LAo+ICsJCQkJCQkJCXBvd2VyX2Rv bWFpbiksCj4gIAkJCQkgcG93ZXJfZG9tYWlucy0+ZG9tYWluX3VzZV9jb3VudFtwb3dlcl9kb21h aW5dKTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggOTVmZGM4ZGJj YTMxLi5hMjAxMGIzMGNhODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtOTE0 MSwxMyArOTE0MSwyNSBAQCBlbnVtIHsKPiAgI2RlZmluZSBJQ0xfUFdSX1dFTExfQ1RMX0FVWDEJ CQlfTU1JTygweDQ1NDQwKQo+ICAjZGVmaW5lIElDTF9QV1JfV0VMTF9DVExfQVVYMgkJCV9NTUlP KDB4NDU0NDQpCj4gICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9BVVg0CQkJX01NSU8oMHg0NTQ0 QykKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQlQ2CQkxNAo+ICsjZGVmaW5lICAg VEdMX1BXX0NUTF9JRFhfQVVYX1RCVDUJCTEzCj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9B VVhfVEJUNAkJMTIKPiAgI2RlZmluZSAgIElDTF9QV19DVExfSURYX0FVWF9UQlQ0CQkxMQo+ICsj ZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RCVDMJCTExCj4gICNkZWZpbmUgICBJQ0xfUFdf Q1RMX0lEWF9BVVhfVEJUMwkJMTAKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQlQy CQkxMAo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX1RCVDIJCTkKPiArI2RlZmluZSAg IFRHTF9QV19DVExfSURYX0FVWF9UQlQxCQk5Cj4gICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9B VVhfVEJUMQkJOAo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDNgkJOAo+ICsjZGVm aW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDNQkJNwo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9J RFhfQVVYX1RDNAkJNgo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX0YJCQk1Cj4gKyNk ZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEMzCQk1Cj4gICNkZWZpbmUgICBJQ0xfUFdfQ1RM X0lEWF9BVVhfRQkJCTQKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQzIJCTQKPiAg I2RlZmluZSAgIElDTF9QV19DVExfSURYX0FVWF9ECQkJMwo+ICsjZGVmaW5lICAgVEdMX1BXX0NU TF9JRFhfQVVYX1RDMQkJMwo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX0MJCQkyCj4g ICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQgkJCTEKPiAgI2RlZmluZSAgIElDTF9QV19D VExfSURYX0FVWF9BCQkJMAo+IEBAIC05MTU1LDkgKzkxNjcsMTUgQEAgZW51bSB7Cj4gICNkZWZp bmUgSUNMX1BXUl9XRUxMX0NUTF9EREkxCQkJX01NSU8oMHg0NTQ1MCkKPiAgI2RlZmluZSBJQ0xf UFdSX1dFTExfQ1RMX0RESTIJCQlfTU1JTygweDQ1NDU0KQo+ICAjZGVmaW5lIElDTF9QV1JfV0VM TF9DVExfRERJNAkJCV9NTUlPKDB4NDU0NUMpCj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9E RElfVEM2CQk4Cj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEM1CQk3Cj4gKyNkZWZp bmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEM0CQk2Cj4gICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lE WF9ERElfRgkJCTUKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0RESV9UQzMJCTUKPiAgI2Rl ZmluZSAgIElDTF9QV19DVExfSURYX0RESV9FCQkJNAo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9J RFhfRERJX1RDMgkJNAo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfRERJX0QJCQkzCj4gKyNk ZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEMxCQkzCj4gICNkZWZpbmUgICBJQ0xfUFdfQ1RM X0lEWF9ERElfQwkJCTIKPiAgI2RlZmluZSAgIElDTF9QV19DVExfSURYX0RESV9CCQkJMQo+ICAj ZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfRERJX0EJCQkwCj4gLS0gCj4gMi4yMS4wCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==