From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 09/25] drm/i915/tgl: Add power well support Date: Tue, 9 Jul 2019 18:53:11 +0300 Message-ID: <20190709155311.GX5942@intel.com> References: <20190708231629.9296-1-lucas.demarchi@intel.com> <20190708231629.9296-10-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 557946E081 for ; Tue, 9 Jul 2019 15:53:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190708231629.9296-10-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 T24gTW9uLCBKdWwgMDgsIDIwMTkgYXQgMDQ6MTY6MTNQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp 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+IFRDIzQtNi4KPiAKPiB2 MiAoTHVjYXMpOgo+ICAgLSBTZXBhcmF0ZSBvdXQgdGhlIGJpdHMgYW5kIGRlZmluaXRpb25zIGZv ciBUR0wgZnJvbSB0aGUgSUNMIG9uZXMuCj4gICAgIEZpeCB1c2Ugb2YgVFJBTlNDT0RFUl9FRFBf VkRTQywgdGhhdCBpcyBub3cgdGhlIGNvcnJlY3QgZGVmaW5lIHNpbmNlCj4gICAgIHdlIGRvbid0 IGRlZmluZSBUUkFOU0NPREVSX0FfVkRTQyBwb3dlciBkb21haW4gdG8gc3BhcmUgYSBvbmUgYml0 IGluCj4gICAgIHRoZSBiaXRtYXNrIChzdWdnZXN0ZWQgYnkgVmlsbGUpCj4gCj4gQ2M6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEFudXNoYSBT cml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiBDYzogUm9kcmlnbyBWaXZpIDxy b2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3Nl LnNvdXphQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0Bp bnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNo aUBpbnRlbC5jb20+Cj4gLS0tCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf cG93ZXIuYyAgICB8IDQ4MCArKysrKysrKysrKysrKysrKy0KPiAgLi4uL2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV9wb3dlci5oICAgIHwgIDI2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8ICAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAgMTggKwo+ICA0IGZpbGVzIGNoYW5nZWQs IDUwOCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+IGluZGV4IDc0Mzdm YzcxZDI4OS4uYzNmNDIxNjk4MzFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiBAQCAtMjMsOCArMjMsMTEgQEAgYm9v bCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3dlbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkJIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHBvd2VyX3dl bGxfaWQpOwo+ICAKPiAgY29uc3QgY2hhciAqCj4gLWludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWlu X3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKPiAraW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW5fc3RyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsJ CQkgICAgICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCj4gIHsKPiAr CWJvb2wgZGRpX3RjX3BvcnRzID0gSVNfR0VOKGk5MTUsIDEyKTsKPiArCj4gIAlzd2l0Y2ggKGRv bWFpbikgewo+ICAJY2FzZSBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFOgo+ICAJCXJldHVybiAi RElTUExBWV9DT1JFIjsKPiBAQCAtNjEsMTEgKzY0LDIzIEBAIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKPiAgCWNh c2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVM6Cj4gIAkJcmV0dXJuICJQT1JUX0RESV9D X0xBTkVTIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVM6Cj4gLQkJcmV0 dXJuICJQT1JUX0RESV9EX0xBTkVTIjsKPiArCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX1BP UlRfRERJX0RfTEFORVMgIT0KPiArCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMxX0xB TkVTKTsKPiArCQlyZXR1cm4gZGRpX3RjX3BvcnRzID8gIlBPUlRfRERJX1RDMV9MQU5FUyIgOiAi UE9SVF9ERElfRF9MQU5FUyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0xBTkVT Ogo+IC0JCXJldHVybiAiUE9SVF9ERElfRV9MQU5FUyI7Cj4gKwkJQlVJTERfQlVHX09OKFBPV0VS X0RPTUFJTl9QT1JUX0RESV9FX0xBTkVTICE9Cj4gKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRf RERJX1RDMl9MQU5FUyk7Cj4gKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzJf TEFORVMiIDogIlBPUlRfRERJX0VfTEFORVMiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9E RElfRl9MQU5FUzoKPiAtCQlyZXR1cm4gIlBPUlRfRERJX0ZfTEFORVMiOwo+ICsJCUJVSUxEX0JV R19PTihQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9MQU5FUyAhPQo+ICsJCQkgICAgIFBPV0VSX0RP TUFJTl9QT1JUX0RESV9UQzNfTEFORVMpOwo+ICsJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiUE9S VF9ERElfVEMzX0xBTkVTIiA6ICJQT1JUX0RESV9GX0xBTkVTIjsKPiArCWNhc2UgUE9XRVJfRE9N QUlOX1BPUlRfRERJX1RDNF9MQU5FUzoKPiArCQlyZXR1cm4gIlBPUlRfRERJX1RDNF9MQU5FUyI7 Cj4gKwljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzVfTEFORVM6Cj4gKwkJcmV0dXJuICJQ T1JUX0RESV9UQzVfTEFORVMiOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0xB TkVTOgo+ICsJCXJldHVybiAiUE9SVF9ERElfVEM2X0xBTkVTIjsKPiAgCWNhc2UgUE9XRVJfRE9N QUlOX1BPUlRfRERJX0FfSU86Cj4gIAkJcmV0dXJuICJQT1JUX0RESV9BX0lPIjsKPiAgCWNhc2Ug UE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfSU86Cj4gQEAgLTczLDExICs4OCwyMyBAQCBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBk b21haW4pCj4gIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0lPOgo+ICAJCXJldHVybiAi UE9SVF9ERElfQ19JTyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0lPOgo+IC0J CXJldHVybiAiUE9SVF9ERElfRF9JTyI7Cj4gKwkJQlVJTERfQlVHX09OKFBPV0VSX0RPTUFJTl9Q T1JUX0RESV9EX0lPICE9Cj4gKwkJCSAgICAgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMV9JTyk7 Cj4gKwkJcmV0dXJuIGRkaV90Y19wb3J0cyA/ICJQT1JUX0RESV9UQzFfSU8iIDogIlBPUlRfRERJ X0RfSU8iOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRV9JTzoKPiAtCQlyZXR1cm4g IlBPUlRfRERJX0VfSU8iOwo+ICsJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fUE9SVF9ERElf RV9JTyAhPQo+ICsJCQkgICAgIFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzJfSU8pOwo+ICsJCXJl dHVybiBkZGlfdGNfcG9ydHMgPyAiUE9SVF9ERElfVEMyX0lPIiA6ICJQT1JUX0RESV9FX0lPIjsK PiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU86Cj4gLQkJcmV0dXJuICJQT1JUX0RE SV9GX0lPIjsKPiArCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8gIT0K PiArCQkJICAgICBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lPKTsKPiArCQlyZXR1cm4gZGRp X3RjX3BvcnRzID8gIlBPUlRfRERJX1RDM19JTyIgOiAiUE9SVF9ERElfRl9JTyI7Cj4gKwljYXNl IFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfSU86Cj4gKwkJcmV0dXJuICJQT1JUX0RESV9UQzRf SU8iOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM1X0lPOgo+ICsJCXJldHVybiAi UE9SVF9ERElfVEM1X0lPIjsKPiArCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNl9JTzoK PiArCQlyZXR1cm4gIlBPUlRfRERJX1RDNl9JTyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9QT1JU X0RTSToKPiAgCQlyZXR1cm4gIlBPUlRfRFNJIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRf Q1JUOgo+IEBAIC05NSwxMSArMTIyLDIwIEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0 cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKPiAgCWNhc2UgUE9XRVJf RE9NQUlOX0FVWF9DOgo+ICAJCXJldHVybiAiQVVYX0MiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5f QVVYX0Q6Cj4gLQkJcmV0dXJuICJBVVhfRCI7Cj4gKwkJQlVJTERfQlVHX09OKFBPV0VSX0RPTUFJ Tl9BVVhfRCAhPSBQT1dFUl9ET01BSU5fQVVYX1RDMSk7Cj4gKwkJcmV0dXJuIGRkaV90Y19wb3J0 cyA/ICJBVVhfVEMxIiA6ICJBVVhfRCI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9BVVhfRToKPiAt CQlyZXR1cm4gIkFVWF9FIjsKPiArCQlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX0FVWF9FICE9 IFBPV0VSX0RPTUFJTl9BVVhfVEMyKTsKPiArCQlyZXR1cm4gZGRpX3RjX3BvcnRzID8gIkFVWF9U QzIiIDogIkFVWF9FIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9GOgo+IC0JCXJldHVybiAi QVVYX0YiOwo+ICsJCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fQVVYX0YgIT0gUE9XRVJfRE9N QUlOX0FVWF9UQzMpOwo+ICsJCXJldHVybiBkZGlfdGNfcG9ydHMgPyAiQVVYX1RDMyIgOiAiQVVY X0YiOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RDNDoKPiArCQlyZXR1cm4gIkFVWF9UQzQi Owo+ICsJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RDNToKPiArCQlyZXR1cm4gIkFVWF9UQzUiOwo+ ICsJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RDNjoKPiArCQlyZXR1cm4gIkFVWF9UQzYiOwo+ICAJ Y2FzZSBQT1dFUl9ET01BSU5fQVVYX0lPX0E6Cj4gIAkJcmV0dXJuICJBVVhfSU9fQSI7Cj4gIAlj YXNlIFBPV0VSX0RPTUFJTl9BVVhfVEJUMToKPiBAQCAtMTEwLDYgKzE0NiwxMCBAQCBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBk b21haW4pCj4gIAkJcmV0dXJuICJBVVhfVEJUMyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9BVVhf VEJUNDoKPiAgCQlyZXR1cm4gIkFVWF9UQlQ0IjsKPiArCWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9U QlQ1Ogo+ICsJCXJldHVybiAiQVVYX1RCVDUiOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fQVVYX1RC VDY6Cj4gKwkJcmV0dXJuICJBVVhfVEJUNiI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9HTUJVUzoK PiAgCQlyZXR1cm4gIkdNQlVTIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX0lOSVQ6Cj4gQEAgLTE2 NjQsMTIgKzE3MDQsMTUgQEAgX19hc3luY19wdXRfZG9tYWluc19zdGF0ZV9vayhzdHJ1Y3QgaTkx NV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zKQo+ICBzdGF0aWMgdm9pZCBwcmludF9wb3dl cl9kb21haW5zKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMsCj4gIAkJ CQljb25zdCBjaGFyICpwcmVmaXgsIHU2NCBtYXNrKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9Cj4gKwkJY29udGFpbmVyX29mKHBvd2VyX2RvbWFpbnMsIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlLAo+ICsJCQkgICAgIHBvd2VyX2RvbWFpbnMpOwo+ICAJZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47Cj4gIAo+ICAJRFJNX0RFQlVHX0RSSVZFUigi JXMgKCVsdSk6XG4iLCBwcmVmaXgsIGh3ZWlnaHQ2NChtYXNrKSk7Cj4gIAlmb3JfZWFjaF9wb3dl cl9kb21haW4oZG9tYWluLCBtYXNrKQo+ICAJCURSTV9ERUJVR19EUklWRVIoIiVzIHVzZV9jb3Vu dCAlZFxuIiwKPiAtCQkJCSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZG9tYWluKSwK PiArCQkJCSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoaTkxNSwgZG9tYWluKSwKPiAg CQkJCSBwb3dlcl9kb21haW5zLT5kb21haW5fdXNlX2NvdW50W2RvbWFpbl0pOwo+ICB9Cj4gIAo+ IEBAIC0xODM5LDcgKzE4ODIsNyBAQCBfX2ludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X2RvbWFpbihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHsKPiAgCXN0cnVjdCBpOTE1X3Bv d2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnM7Cj4gIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpw b3dlcl93ZWxsOwo+IC0JY29uc3QgY2hhciAqbmFtZSA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluX3N0cihkb21haW4pOwo+ICsJY29uc3QgY2hhciAqbmFtZSA9IGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluX3N0cihkZXZfcHJpdiwgZG9tYWluKTsKPiAgCj4gIAlwb3dlcl9kb21haW5zID0g JmRldl9wcml2LT5wb3dlcl9kb21haW5zOwo+ICAKPiBAQCAtMjQwOCwxMSArMjQ1MSwxMSBAQCB2 b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgICogLSBERElfQQo+ICAgKiAtIEZCQwo+ICAgKi8KPiArLyogVE9ETzogVEdMX1BX XzVfUE9XRVJfRE9NQUlOUzogUElQRV9EICovCj4gICNkZWZpbmUgSUNMX1BXXzRfUE9XRVJfRE9N QUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DKSB8CQkJXAo+ICAJQklU X1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAlcCj4gIAlCSVRfVUxMKFBP V0VSX0RPTUFJTl9JTklUKSkKPiAtCS8qIFZEU0Mvam9pbmluZyAqLwo+ICAjZGVmaW5lIElDTF9Q V18zX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiAgCUlDTF9QV180X1BPV0VSX0RPTUFJTlMgfAkJCVwK PiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKPiBAQCAtMjQ0OCwxNiArMjQ5 MSwxNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCSAqLwo+ICAjZGVmaW5lIElDTF9QV18yX1BPV0VSX0RPTUFJTlMg KAkJCVwKPiAgCUlDTF9QV18zX1BPV0VSX0RPTUFJTlMgfAkJCVwKPiAtCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1RSQU5TQ09ERVJfRURQX1ZEU0MpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlO X1RSQU5TQ09ERVJfRURQX1ZEU0MpIHwJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkp Cj4gIAkvKgo+ICAJICogLSBLVk1SIChIVyBjb250cm9sKQo+ICsJICogLSBHRU4gMTE6IGVEUC9E U0kgVkRTQwo+ICAJICovCj4gICNkZWZpbmUgSUNMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJ TlMgKAkJXAo+ICAJSUNMX1BXXzJfUE9XRVJfRE9NQUlOUyB8CQkJXAo+ICAJQklUX1VMTChQT1dF Ul9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9BKSB8 CQkJXAo+IC0JQklUX1VMTChQT1dFUl9ET01BSU5fRFBMTF9EQ19PRkYpIHwJCQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9EUExMX0RDX09GRikgfAkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01B SU5fSU5JVCkpCj4gIAo+ICAjZGVmaW5lIElDTF9ERElfSU9fQV9QT1dFUl9ET01BSU5TICgJCQlc Cj4gQEAgLTI0OTUsNiArMjUzOSw4NyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgI2RlZmluZSBJQ0xfQVVYX1RCVDRf SU9fUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDQp KQo+ICAKPiArI2RlZmluZSBUR0xfUFdfNF9QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBF X0NfUEFORUxfRklUVEVSKSB8CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsK PiArI2RlZmluZSBUR0xfUFdfM19QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlUR0xfUFdfNF9QT1dF Ul9ET01BSU5TIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX1RSQU5TQ09ERVJfQykgfAkJXAo+ICsJLyogVE9ETzogVFJBTlNDT0RFUl9EICov CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfTEFORVMpIHwJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMxX0lPKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9UQzJfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9S VF9ERElfVEMyX0lPKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzNf TEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0lPKSB8CQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfTEFORVMpIHwJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM0X0lPKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9QT1JUX0RESV9UQzVfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f UE9SVF9ERElfVEM1X0lPKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9U QzZfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM2X0lPKSB8 CQlcCgpUaGUgSU8gcG93ZXIgc3R1ZmYgc2hvdWxuJ3QgYmUgaGVyZSBJIGd1ZXNzLiBCdXQgSSBh bHJlYWR5IGRpc2N1c3NlZAp0aGF0IHdpdGggSW1yZSwgYW5kIEkgYmVsaWV2ZSB3ZSBoYXZlIHRo ZSBzYW1lIGlzc3VlIG9uIGljbC4gU28gSQpndWVzcyB3ZSBjYW4gc29ydCBpdCBvdXQgbGF0ZXIg Zm9yIGJvdGggcGxhdGZvcm1zLgoKUGF0Y2ggbGd0bQpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gKwlCSVRfVUxMKFBPV0VSX0RP TUFJTl9BVVhfVEMxKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEMyKSB8CQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEMzKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9BVVhfVEM0KSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM1KSB8 CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM2KSB8CQlcCj4gKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9BVVhfVEJUMSkgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RC VDIpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQzKSB8CQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNCkgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5f QVVYX1RCVDUpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQ2KSB8CQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9BVURJTykgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsKPiArI2Rl ZmluZSBUR0xfUFdfMl9QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlUR0xfUFdfM19QT1dFUl9ET01B SU5TIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUF9WRFNDKSB8 CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsKPiArI2RlZmluZSBUR0xfRElT UExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlUR0xfUFdfMl9QT1dFUl9ET01BSU5T IHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklU KSkKPiArCj4gKyNkZWZpbmUgVEdMX0RESV9JT19UQzFfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfSU8pKQo+ICsjZGVmaW5lIFRHTF9ERElf SU9fVEMyX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9E RElfVEMyX0lPKSkKPiArI2RlZmluZSBUR0xfRERJX0lPX1RDM19QT1dFUl9ET01BSU5TICgJCVwK PiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDM19JTykpCj4gKyNkZWZpbmUgVEdM X0RESV9JT19UQzRfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9Q T1JUX0RESV9UQzRfSU8pKQo+ICsjZGVmaW5lIFRHTF9ERElfSU9fVEM1X1BPV0VSX0RPTUFJTlMg KAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM1X0lPKSkKPiArI2RlZmlu ZSBUR0xfRERJX0lPX1RDNl9QT1dFUl9ET01BSU5TICgJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1BPUlRfRERJX1RDNl9JTykpCj4gKwo+ICsjZGVmaW5lIFRHTF9BVVhfVEMxX0lPX1BPV0VS X0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RDMSkpCj4gKyNkZWZp bmUgVEdMX0FVWF9UQzJfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RP TUFJTl9BVVhfVEMyKSkKPiArI2RlZmluZSBUR0xfQVVYX1RDM19JT19QT1dFUl9ET01BSU5TICgJ CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzMpKQo+ICsjZGVmaW5lIFRHTF9BVVhf VEM0X0lPX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RD NCkpCj4gKyNkZWZpbmUgVEdMX0FVWF9UQzVfSU9fUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9BVVhfVEM1KSkKPiArI2RlZmluZSBUR0xfQVVYX1RDNl9JT19QT1dF Ul9ET01BSU5TICgJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQzYpKQo+ICsjZGVm aW5lIFRHTF9BVVhfVEJUNV9JT19QT1dFUl9ET01BSU5TICgJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0FVWF9UQlQ1KSkKPiArI2RlZmluZSBUR0xfQVVYX1RCVDZfSU9fUE9XRVJfRE9NQUlO UyAoCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNikpCj4gKwo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgaTl4eF9hbHdheXNfb25fcG93ZXJfd2Vs bF9vcHMgPSB7Cj4gIAkuc3luY19odyA9IGk5eHhfcG93ZXJfd2VsbF9zeW5jX2h3X25vb3AsCj4g IAkuZW5hYmxlID0gaTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbF9ub29wLAo+IEBAIC0zNDUyLDYg KzM1NzcsMzI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2MgaWNs X3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAl9LAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X3Bvd2VyX3dlbGxfZGVzYyB0Z2xfcG93ZXJfd2VsbHNbXSA9IHsKPiArCXsKPiArCQku bmFtZSA9ICJhbHdheXMtb24iLAo+ICsJCS5hbHdheXNfb24gPSB0cnVlLAo+ICsJCS5kb21haW5z ID0gUE9XRVJfRE9NQUlOX01BU0ssCj4gKwkJLm9wcyA9ICZpOXh4X2Fsd2F5c19vbl9wb3dlcl93 ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwl9LAo+ICsJewo+ICsJCS5u YW1lID0gInBvd2VyIHdlbGwgMSIsCj4gKwkJLyogSGFuZGxlZCBieSB0aGUgRE1DIGZpcm13YXJl ICovCj4gKwkJLmFsd2F5c19vbiA9IHRydWUsCj4gKwkJLmRvbWFpbnMgPSAwLAo+ICsJCS5vcHMg PSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IFNLTF9ESVNQX1BXXzEsCj4gKwkJewo+ ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBJ Q0xfUFdfQ1RMX0lEWF9QV18xLAo+ICsJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gKwkJfSwK PiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiREMgb2ZmIiwKPiArCQkuZG9tYWlucyA9IFRHTF9E SVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93 ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJfSwKPiArCXsKPiAr CQkubmFtZSA9ICJwb3dlciB3ZWxsIDIiLAo+ICsJCS5kb21haW5zID0gVEdMX1BXXzJfUE9XRVJf RE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBTS0xf RElTUF9QV18yLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3Ms Cj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfMiwKPiArCQkJLmhzdy5oYXNfZnVz ZXMgPSB0cnVlLAo+ICsJCX0sCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gInBvd2VyIHdlbGwg MyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfUFdfM19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAm aHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKPiArCQl7Cj4g KwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElD TF9QV19DVExfSURYX1BXXzMsCj4gKwkJCS5oc3cuaXJxX3BpcGVfbWFzayA9IEJJVChQSVBFX0Ip LAo+ICsJCQkuaHN3Lmhhc192Z2EgPSB0cnVlLAo+ICsJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUs Cj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJIEEgSU8iLAo+ICsJCS5kb21h aW5zID0gSUNMX0RESV9JT19BX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJf d2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5y ZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19D VExfSURYX0RESV9BLAo+ICsJCX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJIEIgSU8i LAo+ICsJCS5kb21haW5zID0gSUNMX0RESV9JT19CX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9 ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsK PiArCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3Lmlk eCA9IElDTF9QV19DVExfSURYX0RESV9CLAo+ICsJCX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUg PSAiRERJIEMgSU8iLAo+ICsJCS5kb21haW5zID0gSUNMX0RESV9JT19DX1BPV0VSX0RPTUFJTlMs Cj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9O T05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0RESV9DLAo+ICsJCX0KPiArCX0sCj4gKwl7 Cj4gKwkJLm5hbWUgPSAiRERJIFRDMSBJTyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RD MV9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5p ZCA9IERJU1BfUFdfSURfTk9ORSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bv d2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEMxLAo+ ICsJCX0sCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gIkRESSBUQzIgSU8iLAo+ICsJCS5kb21h aW5zID0gVEdMX0RESV9JT19UQzJfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dl cl93ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3 LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gVEdMX1BX X0NUTF9JRFhfRERJX1RDMiwKPiArCQl9LAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJEREkg VEMzIElPIiwKPiArCQkuZG9tYWlucyA9IFRHTF9ERElfSU9fVEMzX1BPV0VSX0RPTUFJTlMsCj4g KwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05F LAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJ CQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0RESV9UQzMsCj4gKwkJfSwKPiArCX0sCj4gKwl7 Cj4gKwkJLm5hbWUgPSAiRERJIFRDNCBJTyIsCj4gKwkJLmRvbWFpbnMgPSBUR0xfRERJX0lPX1RD NF9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5p ZCA9IERJU1BfUFdfSURfTk9ORSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZpY2xfZGRpX3Bv d2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBUR0xfUFdfQ1RMX0lEWF9ERElfVEM0LAo+ ICsJCX0sCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gIkRESSBUQzUgSU8iLAo+ICsJCS5kb21h aW5zID0gVEdMX0RESV9JT19UQzVfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dl cl93ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3 LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gVEdMX1BX X0NUTF9JRFhfRERJX1RDNSwKPiArCQl9LAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJEREkg VEM2IElPIiwKPiArCQkuZG9tYWlucyA9IFRHTF9ERElfSU9fVEM2X1BPV0VSX0RPTUFJTlMsCj4g KwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05F LAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9kZGlfcG93ZXJfd2VsbF9yZWdzLAo+ICsJ CQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0RESV9UQzYsCj4gKwkJfSwKPiArCX0sCj4gKwl7 Cj4gKwkJLm5hbWUgPSAiQVVYIEEiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9BX0lPX1BPV0VS X0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcywK PiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNs X2F1eF9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVY X0EsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIEIiLAo+ICsJCS5kb21h aW5zID0gSUNMX0FVWF9CX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZpY2xfY29tYm9f cGh5X2F1eF9wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gKwkJ ewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cu aWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVYX0IsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5h bWUgPSAiQVVYIEMiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9DX0lPX1BPV0VSX0RPTUFJTlMs Cj4gKwkJLm9wcyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcywKPiArCQkuaWQg PSBESVNQX1BXX0lEX05PTkUsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2F1eF9wb3dl cl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfQVVYX0MsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDMSIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDMV9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzEsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDMiIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDMl9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzIsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDMyIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDM19JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzMsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDNCIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDNF9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzQsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDNSIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDNV9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzUsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRDNiIsCj4gKwkJLmRvbWFpbnMgPSBU R0xfQVVYX1RDNl9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX3RjX3BoeV9hdXhf cG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRH TF9QV19DVExfSURYX0FVWF9UQzYsCj4gKwkJCS5oc3cuaXNfdGNfdGJ0ID0gZmFsc2UsCj4gKwkJ fSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDEiLAo+ICsJCS5kb21haW5zID0g SUNMX0FVWF9UQlQxX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2Vs bF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdz ID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExf SURYX0FVWF9UQlQxLAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0s Cj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDIiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9U QlQyX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9h dXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9U QlQyLAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4g KwkJLm5hbWUgPSAiQVVYIFRCVDMiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9UQlQzX0lPX1BP V0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0g RElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJf d2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQzLAo+ICsJ CQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUg PSAiQVVYIFRCVDQiLAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9UQlQ0X0lPX1BPV0VSX0RPTUFJ TlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19J RF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdz LAo+ICsJCQkuaHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQ0LAo+ICsJCQkuaHN3Lmlz X3RjX3RidCA9IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRC VDUiLAo+ICsJCS5kb21haW5zID0gVEdMX0FVWF9UQlQ1X0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJ Lm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQku aHN3LmlkeCA9IFRHTF9QV19DVExfSURYX0FVWF9UQlQ1LAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9 IHRydWUsCj4gKwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDYiLAo+ICsJ CS5kb21haW5zID0gVEdMX0FVWF9UQlQ2X0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZo c3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiAr CQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9 IFRHTF9QV19DVExfSURYX0FVWF9UQlQ2LAo+ICsJCQkuaHN3LmlzX3RjX3RidCA9IHRydWUsCj4g KwkJfSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAicG93ZXIgd2VsbCA0IiwKPiArCQkuZG9t YWlucyA9IElDTF9QV180X1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2Vs bF9vcHMsCj4gKwkJLmlkID0gRElTUF9QV19JRF9OT05FLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdz ID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhf UFdfNCwKPiArCQkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ICsJCQkuaHN3LmlycV9waXBlX21h c2sgPSBCSVQoUElQRV9DKSwKPiArCQl9Cj4gKwl9LAo+ICsJLyogVE9ETzogcG93ZXIgd2VsbCA1 IGZvciBwaXBlIEQgKi8KPiArfTsKPiArCj4gIHN0YXRpYyBpbnQKPiAgc2FuaXRpemVfZGlzYWJs ZV9wb3dlcl93ZWxsX29wdGlvbihjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAkJCQkgICBpbnQgZGlzYWJsZV9wb3dlcl93ZWxsKQo+IEBAIC0zNTc5LDcgKzQwMjIs OSBAQCBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCSAqIFRoZSBlbmFibGluZyBvcmRlciB3aWxsIGJlIGZyb20gbG93ZXIg dG8gaGlnaGVyIGluZGV4ZWQgd2VsbHMsCj4gIAkgKiB0aGUgZGlzYWJsaW5nIG9yZGVyIGlzIHJl dmVyc2VkLgo+ICAJICovCj4gLQlpZiAoSVNfR0VOKGRldl9wcml2LCAxMSkpIHsKPiArCWlmIChJ U19HRU4oZGV2X3ByaXYsIDEyKSkgewo+ICsJCWVyciA9IHNldF9wb3dlcl93ZWxscyhwb3dlcl9k b21haW5zLCB0Z2xfcG93ZXJfd2VsbHMpOwo+ICsJfSBlbHNlIGlmIChJU19HRU4oZGV2X3ByaXYs IDExKSkgewo+ICAJCWVyciA9IHNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBpY2xfcG93 ZXJfd2VsbHMpOwo+ICAJfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ICAJ CWVyciA9IHNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBjbmxfcG93ZXJfd2VsbHMpOwo+ IEBAIC00NjQzLDcgKzUwODgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2R1 bXBfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCj4gIAkJZm9yX2VhY2hf cG93ZXJfZG9tYWluKGRvbWFpbiwgcG93ZXJfd2VsbC0+ZGVzYy0+ZG9tYWlucykKPiAgCQkJRFJN X0RFQlVHX0RSSVZFUigiICAlLTIzcyAlZFxuIiwKPiAtCQkJCQkgaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW5fc3RyKGRvbWFpbiksCj4gKwkJCQkJIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWlu X3N0cihpOTE1LAo+ICsJCQkJCQkJCQlkb21haW4pLAo+ICAJCQkJCSBwb3dlcl9kb21haW5zLT5k b21haW5fdXNlX2NvdW50W2RvbWFpbl0pOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKPiBpbmRleCA4ZjQzZjcw NTFhMTYuLjg2YWZkNzBjMWZiMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oCj4gQEAgLTMyLDE0ICszMiwyOSBAQCBlbnVt IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHsKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9C X0xBTkVTLAo+ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMsCj4gIAlQT1dFUl9ET01B SU5fUE9SVF9ERElfRF9MQU5FUywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfTEFORVMg PSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RE SV9FX0xBTkVTLAo+ICsJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9MQU5FUyA9IFBPV0VSX0RP TUFJTl9QT1JUX0RESV9FX0xBTkVTLAo+ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfTEFORVMs Cj4gKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEMzX0xBTkVTID0gUE9XRVJfRE9NQUlOX1BPUlRf RERJX0ZfTEFORVMsCj4gKwlQT1dFUl9ET01BSU5fUE9SVF9ERElfVEM0X0xBTkVTLAo+ICsJUE9X RVJfRE9NQUlOX1BPUlRfRERJX1RDNV9MQU5FUywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9U QzZfTEFORVMsCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9JTywKPiAgCVBPV0VSX0RPTUFJ Tl9QT1JUX0RESV9CX0lPLAo+ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU8sCj4gIAlQT1dF Ul9ET01BSU5fUE9SVF9ERElfRF9JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzFfSU8g PSBQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9JTywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9F X0lPLAo+ICsJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDMl9JTyA9IFBPV0VSX0RPTUFJTl9QT1JU X0RESV9FX0lPLAo+ICAJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8sCj4gKwlQT1dFUl9ET01B SU5fUE9SVF9ERElfVEMzX0lPID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8sCj4gKwlQT1dF Ul9ET01BSU5fUE9SVF9ERElfR19JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9UQzRfSU8g PSBQT1dFUl9ET01BSU5fUE9SVF9ERElfR19JTywKPiArCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9I X0lPLAo+ICsJUE9XRVJfRE9NQUlOX1BPUlRfRERJX1RDNV9JTyA9IFBPV0VSX0RPTUFJTl9QT1JU X0RESV9IX0lPLAo+ICsJUE9XRVJfRE9NQUlOX1BPUlRfRERJX0lfSU8sCj4gKwlQT1dFUl9ET01B SU5fUE9SVF9ERElfVEM2X0lPID0gUE9XRVJfRE9NQUlOX1BPUlRfRERJX0lfSU8sCj4gIAlQT1dF Ul9ET01BSU5fUE9SVF9EU0ksCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9DUlQsCj4gIAlQT1dFUl9E T01BSU5fUE9SVF9PVEhFUiwKPiBAQCAtNDksMTMgKzY0LDIxIEBAIGVudW0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW4gewo+ICAJUE9XRVJfRE9NQUlOX0FVWF9CLAo+ICAJUE9XRVJfRE9NQUlO X0FVWF9DLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9ELAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9UQzEg PSBQT1dFUl9ET01BSU5fQVVYX0QsCj4gIAlQT1dFUl9ET01BSU5fQVVYX0UsCj4gKwlQT1dFUl9E T01BSU5fQVVYX1RDMiA9IFBPV0VSX0RPTUFJTl9BVVhfRSwKPiAgCVBPV0VSX0RPTUFJTl9BVVhf RiwKPiArCVBPV0VSX0RPTUFJTl9BVVhfVEMzID0gUE9XRVJfRE9NQUlOX0FVWF9GLAo+ICsJUE9X RVJfRE9NQUlOX0FVWF9UQzQsCj4gKwlQT1dFUl9ET01BSU5fQVVYX1RDNSwKPiArCVBPV0VSX0RP TUFJTl9BVVhfVEM2LAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9JT19BLAo+ICAJUE9XRVJfRE9NQUlO X0FVWF9UQlQxLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9UQlQyLAo+ICAJUE9XRVJfRE9NQUlOX0FV WF9UQlQzLAo+ICAJUE9XRVJfRE9NQUlOX0FVWF9UQlQ0LAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9U QlQ1LAo+ICsJUE9XRVJfRE9NQUlOX0FVWF9UQlQ2LAo+ICAJUE9XRVJfRE9NQUlOX0dNQlVTLAo+ ICAJUE9XRVJfRE9NQUlOX01PREVTRVQsCj4gIAlQT1dFUl9ET01BSU5fR1RfSVJRLAo+IEBAIC0y MjgsNyArMjUxLDggQEAgdm9pZCBieHRfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSk7Cj4gIHZvaWQgYnh0X2Rpc3BsYXlfY29y ZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgCj4gIGNvbnN0 IGNoYXIgKgo+IC1pbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwo+ICtpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9z dHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCSAgICAgICBlbnVtIGludGVs X2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbik7Cj4gIAo+ICBib29sIGludGVsX2Rpc3BsYXlf cG93ZXJfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ CQkgICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggM2U0ZjU4ZjE5MzYyLi40ZDU5OTcyZTk2ODkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNDcyLDcgKzI0NzIs OCBAQCBzdGF0aWMgaW50IGk5MTVfcG93ZXJfZG9tYWluX2luZm8oc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICp1bnVzZWQpCj4gIAo+ICAJCWZvcl9lYWNoX3Bvd2VyX2RvbWFpbihwb3dlcl9kb21h aW4sIHBvd2VyX3dlbGwtPmRlc2MtPmRvbWFpbnMpCj4gIAkJCXNlcV9wcmludGYobSwgIiAgJS0y M3MgJWRcbiIsCj4gLQkJCQkgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKHBvd2VyX2Rv bWFpbiksCj4gKwkJCQkgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGRldl9wcml2LAo+ ICsJCQkJCQkJCXBvd2VyX2RvbWFpbiksCj4gIAkJCQkgcG93ZXJfZG9tYWlucy0+ZG9tYWluX3Vz ZV9jb3VudFtwb3dlcl9kb21haW5dKTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gaW5kZXggMDhkYzcxZTRiODE4Li5mNTljYjVjNDVjMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiBAQCAtOTE1NiwxMyArOTE1NiwyNSBAQCBlbnVtIHsKPiAgI2RlZmluZSBJQ0xf UFdSX1dFTExfQ1RMX0FVWDEJCQlfTU1JTygweDQ1NDQwKQo+ICAjZGVmaW5lIElDTF9QV1JfV0VM TF9DVExfQVVYMgkJCV9NTUlPKDB4NDU0NDQpCj4gICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9B VVg0CQkJX01NSU8oMHg0NTQ0QykKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQlQ2 CQkxNAo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RCVDUJCTEzCj4gKyNkZWZpbmUg ICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEJUNAkJMTIKPiAgI2RlZmluZSAgIElDTF9QV19DVExfSURY X0FVWF9UQlQ0CQkxMQo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RCVDMJCTExCj4g ICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMwkJMTAKPiArI2RlZmluZSAgIFRHTF9Q V19DVExfSURYX0FVWF9UQlQyCQkxMAo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX1RC VDIJCTkKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURYX0FVWF9UQlQxCQk5Cj4gICNkZWZpbmUg ICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMQkJOAo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhf QVVYX1RDNgkJOAo+ICsjZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDNQkJNwo+ICsjZGVm aW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDNAkJNgo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9J RFhfQVVYX0YJCQk1Cj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9BVVhfVEMzCQk1Cj4gICNk ZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfRQkJCTQKPiArI2RlZmluZSAgIFRHTF9QV19DVExf SURYX0FVWF9UQzIJCTQKPiAgI2RlZmluZSAgIElDTF9QV19DVExfSURYX0FVWF9ECQkJMwo+ICsj ZGVmaW5lICAgVEdMX1BXX0NUTF9JRFhfQVVYX1RDMQkJMwo+ICAjZGVmaW5lICAgSUNMX1BXX0NU TF9JRFhfQVVYX0MJCQkyCj4gICNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQgkJCTEKPiAg I2RlZmluZSAgIElDTF9QV19DVExfSURYX0FVWF9BCQkJMAo+IEBAIC05MTcwLDkgKzkxODIsMTUg QEAgZW51bSB7Cj4gICNkZWZpbmUgSUNMX1BXUl9XRUxMX0NUTF9EREkxCQkJX01NSU8oMHg0NTQ1 MCkKPiAgI2RlZmluZSBJQ0xfUFdSX1dFTExfQ1RMX0RESTIJCQlfTU1JTygweDQ1NDU0KQo+ICAj ZGVmaW5lIElDTF9QV1JfV0VMTF9DVExfRERJNAkJCV9NTUlPKDB4NDU0NUMpCj4gKyNkZWZpbmUg ICBUR0xfUFdfQ1RMX0lEWF9ERElfVEM2CQk4Cj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9E RElfVEM1CQk3Cj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEM0CQk2Cj4gICNkZWZp bmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfRgkJCTUKPiArI2RlZmluZSAgIFRHTF9QV19DVExfSURY X0RESV9UQzMJCTUKPiAgI2RlZmluZSAgIElDTF9QV19DVExfSURYX0RESV9FCQkJNAo+ICsjZGVm aW5lICAgVEdMX1BXX0NUTF9JRFhfRERJX1RDMgkJNAo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9J RFhfRERJX0QJCQkzCj4gKyNkZWZpbmUgICBUR0xfUFdfQ1RMX0lEWF9ERElfVEMxCQkzCj4gICNk ZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfQwkJCTIKPiAgI2RlZmluZSAgIElDTF9QV19DVExf SURYX0RESV9CCQkJMQo+ICAjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfRERJX0EJCQkwCj4gLS0g Cj4gMi4yMS4wCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==