From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [RFC v5] drm/i915/psr: Kill scheduled work for Core platforms. Date: Wed, 14 Mar 2018 22:38:45 +0000 Message-ID: <1521068565.4958.107.camel@dk-H97M-D3H> References: <1520893121.4958.48.camel@dk-H97M-D3H> <20180313222319.2721-1-rodrigo.vivi@intel.com> <1521060493.4958.86.camel@dk-H97M-D3H> <20180314204753.GP3945@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B55E899A7 for ; Wed, 14 Mar 2018 22:38:48 +0000 (UTC) In-Reply-To: <20180314204753.GP3945@intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org DQoNCg0KT24gV2VkLCAyMDE4LTAzLTE0IGF0IDEzOjQ3IC0wNzAwLCBSb2RyaWdvIFZpdmkgd3Jv dGU6DQo+IE9uIFdlZCwgTWFyIDE0LCAyMDE4IGF0IDAxOjI0OjEzUE0gLTA3MDAsIFBhbmRpeWFu LCBEaGluYWthcmFuIHdyb3RlOg0KPiA+IE9uIFR1ZSwgMjAxOC0wMy0xMyBhdCAxNToyMyAtMDcw MCwgUm9kcmlnbyBWaXZpIHdyb3RlOg0KPiA+ID4gVGhlIGltbWVkaWF0ZSBlbmFibGluZyBpcyBh Y3R1YWxseSBub3QgYW4gaXNzdWUgZm9yIHRoZQ0KPiA+ID4gSFcgcGVyc3BlY3RpdmUgZm9yIGNv cmUgcGxhdGZvcm1zIHRoYXQgaGF2ZSBIVyB0cmFja2luZy4NCj4gPiA+IEhXIHdpbGwgd2FpdCBm ZXcgaWRlbnRpY2FsIGlkbGUgZnJhbWVzIGJlZm9yZSB0cmFuc2l0aW9uaW5nDQo+ID4gPiB0byBh Y3R1YWwgcHNyIGFjdGl2ZSBhbnl3YXlzLg0KPiA+ID4gDQo+ID4gPiBOb3RlIHRoYXQgdGhpcyBw YXRjaCBhbHNvIHJlbW92ZSB0aGUgZGVsYXllZCBhY3RpdmF0aW9uDQo+ID4gPiBvbiBIU1cgYW5k IEJEVyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCAnZDBhYzg5NmE0NzdkDQo+ID4gPiAoImRybS9pOTE1 OiBEZWxheSBmaXJzdCBQU1IgYWN0aXZhdGlvbi4iKScuIFRoaXMgd2FzDQo+ID4gPiBpbnRyb2R1 Y2VkIHRvIGZpeCBhIGJsYW5rIHNjcmVlbiBvbiBWTFYvQ0hWIGFuZCBhbHNvDQo+ID4gPiBtYXNr ZWQgc29tZSBmcm96ZW4gc2NyZWVucyBvbiBvdGhlciBjb3JlIHBsYXRmb3Jtcy4NCj4gPiA+IFBy b2JhYmx5IHRoZSBzYW1lIHRoYXQgd2UgYXJlIG5vdyBwcm9wZXJseSBodW50aW5nIGFuZCBmaXhp bmcuDQo+ID4gPiANCj4gPiA+IEZ1cnRoZXJtb3JlLCBpZiB3ZSBzdG9wIHVzaW5nIGRlbGF5ZWQg YWN0aXZhdGlvbiBvbiBjb3JlDQo+ID4gPiBwbGF0Zm9ybXMgd2Ugd2lsbCBiZSBhYmxlLCBvbiBm b2xsb3dpbmcgdXAgcGF0Y2hlcywNCj4gPiA+IHRvIHVzZSBhdmFpbGFibGUgd29ya2Fyb3VuZHMg dG8gbWFrZSBIVyB0cmFja2luZyBwcm9wZXJseQ0KPiA+ID4gZXhpdCBQU1IgaW5zdGVhZCBvZiB0 aGUgYmlnIG51a2Ugb2YgZGlzYWJsaW5nIHBzciBhbmQNCj4gPiA+IHJlLWVuYWJsZSBvbiBleGl0 IGFuZCBhY3RpdmF0ZSByZXNwZWN0aXZlbHkuDQo+ID4gPiBBdCBsZWFzdCBvbiBmZXcgcmVsaWFi bGUgY2FzZXMuDQo+ID4gPiANCj4gPiA+IHYyOihESyk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBXQVJO X09OcyBhbmQgbWFrZSBzb21lIG90aGVyDQo+ID4gPiAJIFZMViB8IENIViBtb3JlIHJlYWRhYmxl Lg0KPiA+ID4gdjM6IERvIGl0IHJlZ2FyZGxlc3MgdGhlIHRpbWVyIHJld29yay4NCj4gPiA+IHY0 OiAoREsvQ0kpOiBBZGQgVkxWIHx8IENIViBjaGVjayBvbiBjYW5jZWwgd29yayBhdCBwc3JfZGlz YWJsZS4NCj4gPiA+IHY1OiBLaWxsIHJlbWFpbmluZyBpdGVtcyBhbmQgZnVsbHkgcmV3b3JrIGFj dGl2YXRpb24gZnVuY3Rpb25zLg0KPiA+ID4gDQo+ID4gPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlh biA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBS b2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8ICAyMCArKystLS0NCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgMyArLQ0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAgIHwgMTM0ICsrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygr KSwgOTIgZGVsZXRpb25zKC0pDQo+ID4gPiANCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jDQo+ID4gPiBpbmRleCA5NzIwMTRiMjQ5N2QuLjdkZmFkYTg2M2Y5YyAxMDA2NDQNCj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+ID4gQEAgLTI1NjcsMTUg KzI1NjcsMTQgQEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkNCj4gPiA+ICAJc2VxX3ByaW50ZihtLCAiRW5hYmxlZDogJXNcbiIs IHllc25vKChib29sKWRldl9wcml2LT5wc3IuZW5hYmxlZCkpOw0KPiA+ID4gIAlzZXFfcHJpbnRm KG0sICJCdXN5IGZyb250YnVmZmVyIGJpdHM6IDB4JTAzeFxuIiwNCj4gPiA+ICAJCSAgIGRldl9w cml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKTsNCj4gPiA+IC0Jc2VxX3ByaW50ZihtLCAi UmUtZW5hYmxlIHdvcmsgc2NoZWR1bGVkOiAlc1xuIiwNCj4gPiA+IC0JCSAgIHllc25vKHdvcmtf YnVzeSgmZGV2X3ByaXYtPnBzci53b3JrLndvcmspKSk7DQo+ID4gPiAgDQo+ID4gPiAtCWlmIChI QVNfRERJKGRldl9wcml2KSkgew0KPiA+ID4gLQkJaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBw b3J0KQ0KPiA+ID4gLQkJCWVuYWJsZWQgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKSAmIEVEUF9Q U1IyX0VOQUJMRTsNCj4gPiA+IC0JCWVsc2UNCj4gPiA+IC0JCQllbmFibGVkID0gSTkxNV9SRUFE KEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFOw0KPiA+ID4gLQl9IGVsc2Ugew0KPiA+ID4g KwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp IHsNCj4gPiA+ICsJCWJvb2wgc2NoZWR1bGVkOw0KPiA+ID4gKw0KPiA+ID4gKwkJc2NoZWR1bGVk ID0gd29ya19idXN5KCZkZXZfcHJpdi0+cHNyLnZsdl9hY3RpdmF0ZV93b3JrLndvcmspOw0KPiA+ ID4gKwkJc2VxX3ByaW50ZihtLCAiUmUtZW5hYmxlIHdvcmsgc2NoZWR1bGVkOiAlc1xuIiwNCj4g PiA+ICsJCQkgICB5ZXNubyhzY2hlZHVsZWQpKTsNCj4gPiA+ICsNCj4gPiA+ICAJCWZvcl9lYWNo X3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsNCj4gPiA+ICAJCQllbnVtIHRyYW5zY29kZXIgY3B1X3Ry YW5zY29kZXIgPQ0KPiA+ID4gIAkJCQlpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKGRldl9w cml2LCBwaXBlKTsNCj4gPiA+IEBAIC0yNTk0LDYgKzI1OTMsMTEgQEAgc3RhdGljIGludCBpOTE1 X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkNCj4gPiA+ICAN Cj4gPiA+ICAJCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWlu KTsNCj4gPiA+ICAJCX0NCj4gPiA+ICsJfSBlbHNlIHsNCj4gPiA+ICsJCWlmIChkZXZfcHJpdi0+ cHNyLnBzcjJfc3VwcG9ydCkNCj4gPiA+ICsJCQllbmFibGVkID0gSTkxNV9SRUFEKEVEUF9QU1Iy X0NUTCkgJiBFRFBfUFNSMl9FTkFCTEU7DQo+ID4gPiArCQllbHNlDQo+ID4gPiArCQkJZW5hYmxl ZCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRTsNCj4gPiA+ICAJfQ0K PiA+ID4gIA0KPiA+ID4gIAlzZXFfcHJpbnRmKG0sICJNYWluIGxpbmsgaW4gc3RhbmRieSBtb2Rl OiAlc1xuIiwNCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ID4gaW5kZXggNzRiMGU5 ZDhmZjYyLi40MDk5OTdmMjllMDcgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oDQo+ID4gPiBAQCAtNTk4LDcgKzU5OCw3IEBAIHN0cnVjdCBpOTE1X3BzciB7DQo+ID4gPiAg CWJvb2wgc2lua19zdXBwb3J0Ow0KPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmVuYWJsZWQ7DQo+ ID4gPiAgCWJvb2wgYWN0aXZlOw0KPiA+ID4gLQlzdHJ1Y3QgZGVsYXllZF93b3JrIHdvcms7DQo+ ID4gPiArCXN0cnVjdCBkZWxheWVkX3dvcmsgdmx2X2FjdGl2YXRlX3dvcms7DQo+ID4gPiAgCXVu c2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0czsNCj4gPiA+ICAJYm9vbCBwc3IyX3N1cHBvcnQ7 DQo+ID4gPiAgCWJvb2wgYXV4X2ZyYW1lX3N5bmM7DQo+ID4gPiBAQCAtNjEzLDcgKzYxMyw2IEBA IHN0cnVjdCBpOTE1X3BzciB7DQo+ID4gPiAgCXZvaWQgKCpkaXNhYmxlX3NvdXJjZSkoc3RydWN0 IGludGVsX2RwICosDQo+ID4gPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICopOw0KPiA+ID4gIAl2b2lkICgqZW5hYmxlX3NpbmspKHN0cnVjdCBpbnRlbF9kcCAqKTsN Cj4gPiA+IC0Jdm9pZCAoKmFjdGl2YXRlKShzdHJ1Y3QgaW50ZWxfZHAgKik7DQo+ID4gPiAgCXZv aWQgKCpzZXR1cF92c2MpKHN0cnVjdCBpbnRlbF9kcCAqLCBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqKTsNCj4gPiA+ICB9Ow0KPiA+ID4gIA0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMNCj4gPiA+IGluZGV4IDMxN2NiNGExMjY5My4uYmM3Yjk0YTA2NDE3IDEwMDY0NA0KPiA+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMNCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jDQo+ID4gPiBAQCAtMzExLDI0ICszMTEsNiBA QCBzdGF0aWMgdm9pZCB2bHZfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwNCj4gPiA+ICAJCSAgIFZMVl9FRFBfUFNSX0VOQUJMRSk7DQo+ID4gPiAgfQ0KPiA+ID4g IA0KPiA+ID4gLXN0YXRpYyB2b2lkIHZsdl9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkNCj4gPiA+IC17DQo+ID4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOw0KPiA+ID4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+ID4gPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsNCj4gPiA+IC0Jc3RydWN0IGRy bV9jcnRjICpjcnRjID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOw0KPiA+ID4gLQllbnVtIHBp cGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7DQo+ID4gPiAtDQo+ID4gPiAtCS8q DQo+ID4gPiAtCSAqIExldCdzIGRvIHRoZSB0cmFuc2l0aW9uIGZyb20gUFNSX3N0YXRlIDEgKGlu YWN0aXZlKSB0bw0KPiA+ID4gLQkgKiBQU1Jfc3RhdGUgMiAodHJhbnNpdGlvbiB0byBhY3RpdmUg LSBzdGF0aWMgZnJhbWUgdHJhbnNtaXNzaW9uKS4NCj4gPiA+IC0JICogVGhlbiBIYXJkd2FyZSBp cyByZXNwb25zaWJsZSBmb3IgdGhlIHRyYW5zaXRpb24gdG8NCj4gPiA+IC0JICogUFNSX3N0YXRl IDMgKGFjdGl2ZSAtIG5vIFJlbW90ZSBGcmFtZSBCdWZmZXIgKFJGQikgdXBkYXRlKS4NCj4gPiA+ IC0JICovDQo+ID4gPiAtCUk5MTVfV1JJVEUoVkxWX1BTUkNUTChwaXBlKSwgSTkxNV9SRUFEKFZM Vl9QU1JDVEwocGlwZSkpIHwNCj4gPiA+IC0JCSAgIFZMVl9FRFBfUFNSX0FDVElWRV9FTlRSWSk7 DQo+ID4gPiAtfQ0KPiA+ID4gLQ0KPiA+ID4gIHN0YXRpYyB2b2lkIGhzd19hY3RpdmF0ZV9wc3Ix KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ID4gPiAgew0KPiA+ID4gIAlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsNCj4g PiA+IEBAIC00MzQsMTYgKzQxNiwyNSBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2FjdGl2YXRlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ID4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsNCj4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiA+ID4gIA0KPiA+ID4gKwlXQVJOX09OKGRl dl9wcml2LT5wc3IuYWN0aXZlKTsNCj4gPiA+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3By aXYtPnBzci5sb2NrKTsNCj4gPiA+ICsNCj4gPiA+ICAJLyogT24gSFNXKyBhZnRlciB3ZSBlbmFi bGUgUFNSIG9uIHNvdXJjZSBpdCB3aWxsIGFjdGl2YXRlIGl0DQo+ID4gPiAgCSAqIGFzIHNvb24g YXMgaXQgbWF0Y2ggY29uZmlndXJlIGlkbGVfZnJhbWUgY291bnQuIFNvDQo+ID4gPiAgCSAqIHdl IGp1c3QgYWN0dWFsbHkgZW5hYmxlIGl0IGhlcmUgb24gYWN0aXZhdGlvbiB0aW1lLg0KPiA+ID4g IAkgKi8NCj4gPiA+ICsJaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQ0KPiA+ID4gKwkJ V0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKSAmIEVEUF9QU1IyX0VOQUJMRSk7DQo+ID4g PiArCWVsc2UNCj4gPiA+ICsJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9Q U1JfRU5BQkxFKTsNCj4gPiA+ICANCj4gPiA+ICAJLyogcHNyMSBhbmQgcHNyMiBhcmUgbXV0dWFs bHkgZXhjbHVzaXZlLiovDQo+ID4gPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkN Cj4gPiA+ICAJCWhzd19hY3RpdmF0ZV9wc3IyKGludGVsX2RwKTsNCj4gPiA+ICAJZWxzZQ0KPiA+ ID4gIAkJaHN3X2FjdGl2YXRlX3BzcjEoaW50ZWxfZHApOw0KPiA+IA0KPiA+IG5pdDogVGhlIGJy YW5jaGVzIGNhbiBiZSBncm91cGVkIHRvZ2V0aGVyLg0KPiA+IA0KPiA+ID4gKw0KPiA+ID4gKwlk ZXZfcHJpdi0+cHNyLmFjdGl2ZSA9IHRydWU7DQo+ID4gPiAgfQ0KPiA+ID4gIA0KPiA+ID4gIHN0 YXRpYyBib29sIGludGVsX3BzcjJfY29uZmlnX3ZhbGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsDQo+ID4gPiBAQCAtNTY4LDE1ICs1NTksMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2Fj dGl2YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ID4gPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsNCj4gPiA+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiA+ID4gIA0KPiA+ ID4gLQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpDQo+ID4gPiAtCQlXQVJOX09OKEk5 MTVfUkVBRChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxFKTsNCj4gPiA+IC0JZWxzZQ0K PiA+ID4gLQkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEUp Ow0KPiA+ID4gLQlXQVJOX09OKGRldl9wcml2LT5wc3IuYWN0aXZlKTsNCj4gPiA+IC0JbG9ja2Rl cF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2NrKTsNCj4gPiA+ICsJaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7DQo+ID4gPiArCQkv Kg0KPiA+ID4gKwkJICogRklYTUU6IFZMVi9DSFYgaGFzIG1hbnkgcHJvYmxlbXMsIGJ1dCB3b3Jz dCBiZWluZyBibGFuaw0KPiA+ID4gKwkJICogc2NyZWVucyBvbiBmaXJzdCBhY3RpdmF0aW9uLiBM ZXQncyBwaWNrIHRoZSB3b3JzdCBjYXNlDQo+ID4gPiArCQkgKiBkZWxheSBmb3Igbm93Lg0KPiA+ ID4gKwkJICovDQo+ID4gPiArCQlpbnQgZGVsYXkgPSAxNTAwOw0KPiA+ID4gIA0KPiA+ID4gLQlk ZXZfcHJpdi0+cHNyLmFjdGl2YXRlKGludGVsX2RwKTsNCj4gPiA+IC0JZGV2X3ByaXYtPnBzci5h Y3RpdmUgPSB0cnVlOw0KPiA+ID4gKwkJaWYgKCF3b3JrX2J1c3koJmRldl9wcml2LT5wc3Iudmx2 X2FjdGl2YXRlX3dvcmsud29yaykpDQo+ID4gDQo+ID4gU2luY2UgdGhlIHdvcmsgaXMgYWxyZWFk eSBjYW5jZWxsZWQsIGRvIHdlIG5lZWQgdGhpcz8NCj4gDQo+IGlmIHdlIGFyZSBmb3Igc3VyZSBj YW5jZWxpbmcgZXZlcnl3aGVyZSB5b3UgYXJlIHJpZ2h0LiB3ZSBjb3VsZCByZW1vdmUgdGhpcy4N Cj4gPiANCj4gPiBUaGUgcGF0Y2ggbG9va3MgZ29vZCB0byBtZSwgZmV3ZXIgaW5kaXJlY3QgY2Fs bHMgYW5kIGVhc2llciB0byByZWFkLg0KPiA+IA0KPiA+IA0KPiA+ID4gKwkJCXNjaGVkdWxlX2Rl bGF5ZWRfd29yaygmZGV2X3ByaXYtPnBzci52bHZfYWN0aXZhdGVfd29yaywNCj4gPiA+ICsJCQkJ CSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoZGVsYXkpKTsNCj4gPiA+ICsJfSBlbHNlIHsNCj4gPiA+ ICsJCWhzd19wc3JfYWN0aXZhdGUoaW50ZWxfZHApOw0KPiA+ID4gKwl9DQo+ID4gPiAgfQ0KPiA+ ID4gIA0KPiA+ID4gIHN0YXRpYyB2b2lkIGhzd19wc3JfZW5hYmxlX3NvdXJjZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLA0KPiA+ID4gQEAgLTY1MiwyMiArNjQ4LDcgQEAgdm9pZCBpbnRlbF9w c3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ID4gPiAgCWRldl9wcml2LT5w c3IuZW5hYmxlX3NvdXJjZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7DQo+ID4gPiAgCWRldl9wcml2 LT5wc3IuZW5hYmxlZCA9IGludGVsX2RwOw0KPiA+ID4gIA0KPiA+ID4gLQlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA5KSB7DQo+ID4gPiAtCQlpbnRlbF9wc3JfYWN0aXZhdGUoaW50ZWxfZHAp Ow0KPiA+ID4gLQl9IGVsc2Ugew0KPiA+ID4gLQkJLyoNCj4gPiA+IC0JCSAqIEZJWE1FOiBBY3Rp dmF0aW9uIHNob3VsZCBoYXBwZW4gaW1tZWRpYXRlbHkgc2luY2UgdGhpcw0KPiA+ID4gLQkJICog ZnVuY3Rpb24gaXMganVzdCBjYWxsZWQgYWZ0ZXIgcGlwZSBpcyBmdWxseSB0cmFpbmVkIGFuZA0K PiA+ID4gLQkJICogZW5hYmxlZC4NCj4gPiA+IC0JCSAqIEhvd2V2ZXIgb24gc29tZSBwbGF0Zm9y bXMgd2UgZmFjZSBpc3N1ZXMgd2hlbiBmaXJzdA0KPiA+ID4gLQkJICogYWN0aXZhdGlvbiBmb2xs b3dzIGEgbW9kZXNldCBzbyBxdWlja2x5Lg0KPiA+ID4gLQkJICogICAgIC0gT24gVkxWL0NIViB3 ZSBnZXQgYmFuayBzY3JlZW4gb24gZmlyc3QgYWN0aXZhdGlvbg0KPiA+ID4gLQkJICogICAgIC0g T24gSFNXL0JEVyB3ZSBnZXQgYSByZWNvdmVyYWJsZSBmcm96ZW4gc2NyZWVuIHVudGlsDQo+ID4g PiAtCQkgKiAgICAgICBuZXh0IGV4aXQtYWN0aXZhdGUgc2VxdWVuY2UuDQo+ID4gPiAtCQkgKi8N Cj4gPiA+IC0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnBzci53b3JrLA0KPiA+ ID4gLQkJCQkgICAgICBtc2Vjc190b19qaWZmaWVzKGludGVsX2RwLT5wYW5lbF9wb3dlcl9jeWNs ZV9kZWxheSAqIDUpKTsNCj4gPiA+IC0JfQ0KPiA+ID4gKwlpbnRlbF9wc3JfYWN0aXZhdGUoaW50 ZWxfZHApOw0KPiA+ID4gIA0KPiA+ID4gIHVubG9jazoNCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ID4gQEAgLTc4NiwxMyArNzY3LDE0IEBAIHZvaWQgaW50 ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiA+ICAJZGV2X3By aXYtPnBzci5lbmFibGVkID0gTlVMTDsNCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ cHNyLmxvY2spOw0KPiA+ID4gIA0KPiA+ID4gLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRl dl9wcml2LT5wc3Iud29yayk7DQo+ID4gPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8 fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkNCj4gPiA+ICsJCWNhbmNlbF9kZWxheWVkX3dvcmtf c3luYygmZGV2X3ByaXYtPnBzci52bHZfYWN0aXZhdGVfd29yayk7DQo+ID4gPiAgfQ0KPiA+ID4g IA0KPiA+ID4gLXN0YXRpYyB2b2lkIGludGVsX3Bzcl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykNCj4gPiA+ICtzdGF0aWMgdm9pZCB2bHZfcHNyX2FjdGl2YXRlX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQ0KPiA+ID4gIHsNCj4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0NCj4gPiA+IC0JCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9w cml2KSwgcHNyLndvcmsud29yayk7DQo+ID4gPiArCSAgICAgIGNvbnRhaW5lcl9vZih3b3JrLCB0 eXBlb2YoKmRldl9wcml2KSwgcHNyLnZsdl9hY3RpdmF0ZV93b3JrLndvcmspOw0KPiA+ID4gIAlz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZGV2X3ByaXYtPnBzci5lbmFibGVkOw0KPiA+ID4g IAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2Uu YmFzZS5jcnRjOw0KPiA+ID4gIAllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PnBpcGU7DQo+ID4gPiBAQCAtODAyLDM1ICs3ODQsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNy X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPiA+ID4gIAkgKiBQU1IgbWlnaHQgdGFr ZSBzb21lIHRpbWUgdG8gZ2V0IGZ1bGx5IGRpc2FibGVkDQo+ID4gPiAgCSAqIGFuZCBiZSByZWFk eSBmb3IgcmUtZW5hYmxlLg0KPiA+ID4gIAkgKi8NCj4gPiA+IC0JaWYgKEhBU19EREkoZGV2X3By aXYpKSB7DQo+ID4gPiAtCQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIHsNCj4gPiA+ IC0JCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsDQo+ID4gPiAtCQkJCQkJ ICAgIEVEUF9QU1IyX1NUQVRVUywNCj4gPiA+IC0JCQkJCQkgICAgRURQX1BTUjJfU1RBVFVTX1NU QVRFX01BU0ssDQo+ID4gPiAtCQkJCQkJICAgIDAsDQo+ID4gPiAtCQkJCQkJICAgIDUwKSkgew0K PiA+ID4gLQkJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IyIElkbGUgZm9y IHJlLWVuYWJsZVxuIik7DQo+ID4gPiAtCQkJCXJldHVybjsNCj4gPiA+IC0JCQl9DQo+ID4gPiAt CQl9IGVsc2Ugew0KPiA+ID4gLQkJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJp diwNCj4gPiA+IC0JCQkJCQkgICAgRURQX1BTUl9TVEFUVVMsDQo+ID4gPiAtCQkJCQkJICAgIEVE UF9QU1JfU1RBVFVTX1NUQVRFX01BU0ssDQo+ID4gPiAtCQkJCQkJICAgIDAsDQo+ID4gPiAtCQkJ CQkJICAgIDUwKSkgew0KPiA+ID4gLQkJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZv ciBQU1IgSWRsZSBmb3IgcmUtZW5hYmxlXG4iKTsNCj4gPiA+IC0JCQkJcmV0dXJuOw0KPiA+ID4g LQkJCX0NCj4gPiA+IC0JCX0NCj4gPiA+IC0JfSBlbHNlIHsNCj4gPiA+IC0JCWlmIChpbnRlbF93 YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwNCj4gPiA+IC0JCQkJCSAgICBWTFZfUFNSU1RBVChw aXBlKSwNCj4gPiA+IC0JCQkJCSAgICBWTFZfRURQX1BTUl9JTl9UUkFOUywNCj4gPiA+IC0JCQkJ CSAgICAwLA0KPiA+ID4gLQkJCQkJICAgIDEpKSB7DQo+ID4gPiAtCQkJRFJNX0VSUk9SKCJUaW1l ZCBvdXQgd2FpdGluZyBmb3IgUFNSIElkbGUgZm9yIHJlLWVuYWJsZVxuIik7DQo+ID4gPiAtCQkJ cmV0dXJuOw0KPiA+ID4gLQkJfQ0KPiA+ID4gKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIo ZGV2X3ByaXYsDQo+ID4gPiArCQkJCSAgICBWTFZfUFNSU1RBVChwaXBlKSwNCj4gPiA+ICsJCQkJ ICAgIFZMVl9FRFBfUFNSX0lOX1RSQU5TLA0KPiA+ID4gKwkJCQkgICAgMCwNCj4gPiA+ICsJCQkJ ICAgIDEpKSB7DQo+ID4gPiArCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1Ig SWRsZSBmb3IgcmUtZW5hYmxlXG4iKTsNCj4gPiA+ICsJCXJldHVybjsNCj4gPiA+ICAJfQ0KPiA+ ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ID4gIAlpbnRlbF9kcCA9 IGRldl9wcml2LT5wc3IuZW5hYmxlZDsNCj4gPiA+IEBAIC04NDYsOCArODA2LDE3IEBAIHN0YXRp YyB2b2lkIGludGVsX3Bzcl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gPiA+ICAJ aWYgKGRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKQ0KPiA+ID4gIAkJZ290byB1 bmxvY2s7DQo+ID4gPiAgDQo+ID4gPiAtCWludGVsX3Bzcl9hY3RpdmF0ZShpbnRlbF9kcCk7DQo+ ID4gPiAtdW5sb2NrOg0KPiA+ID4gKwkvKg0KPiA+ID4gKwkgKiBMZXQncyBkbyB0aGUgdHJhbnNp dGlvbiBmcm9tIFBTUl9zdGF0ZSAxIChpbmFjdGl2ZSkgdG8NCj4gPiA+ICsJICogUFNSX3N0YXRl IDIgKHRyYW5zaXRpb24gdG8gYWN0aXZlIC0gc3RhdGljIGZyYW1lIHRyYW5zbWlzc2lvbikuDQo+ ID4gPiArCSAqIFRoZW4gSGFyZHdhcmUgaXMgcmVzcG9uc2libGUgZm9yIHRoZSB0cmFuc2l0aW9u IHRvDQo+ID4gPiArCSAqIFBTUl9zdGF0ZSAzIChhY3RpdmUgLSBubyBSZW1vdGUgRnJhbWUgQnVm ZmVyIChSRkIpIHVwZGF0ZSkuDQo+ID4gPiArCSAqLw0KPiA+ID4gKwlJOTE1X1dSSVRFKFZMVl9Q U1JDVEwocGlwZSksIEk5MTVfUkVBRChWTFZfUFNSQ1RMKHBpcGUpKSB8DQo+ID4gPiArCQkgICBW TFZfRURQX1BTUl9BQ1RJVkVfRU5UUlkpOw0KPiA+ID4gKwlkZXZfcHJpdi0+cHNyLmFjdGl2ZSA9 IHRydWU7DQo+ID4gPiArDQo+ID4gPiArIHVubG9jazoNCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ID4gIH0NCj4gPiA+ICANCj4gPiA+IEBAIC0xMDIxLDYg Kzk5MCw5IEBAIHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwNCj4gPiA+ICAJaWYgKGRldl9wcml2LT5wc3IuaGFzX2h3X3RyYWNraW5nICYmIG9y aWdpbiA9PSBPUklHSU5fRkxJUCkNCj4gPiA+ICAJCXJldHVybjsNCj4gPiA+ICANCj4gPiA+ICsJ aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQ0K PiA+ID4gKwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+cHNyLnZsdl9hY3Rp dmF0ZV93b3JrKTsNCj4gPiANCj4gPiBwc3JfaW52YWxpZGF0ZSgpIHdpbGwgYWxzbyBuZWVkIGEg Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCkNCj4gDQo+IGluZGVlZC4uLg0KPiANCj4gPiBJIHdv bmRlciBpZg0KPiA+IHRoaXMgc2hvdWxkIG1vdmUgdG8gaW50ZWxfcHNyX2V4aXQoKSwgcmlnaHQg YmVmb3JlIHdyaXRpbmcgdG8NCj4gPiBWTFZfUFNSQ1RMLg0KPiANCj4gSSdtIGFmcmFpZCBvZiBj YWxsaW5nIGl0IGZyb20gaW5zaWRlIHRoZSBtdXRleCBhcmVhIHNpbmNlIGl0IGlzDQo+IGNhbmNl bCBhbmQgd2FpdCBhbmQgd2FpdCBtaWdodCBiZSBvbiB0aGUgbXV0ZXhfbG9jayBpbnNpZGUgdGhl IHdvcmsuLi4NCj4gDQo+IHRob3VnaHRzPw0KDQpXYWl0aW5nIHNob3VsZCBiZSBva2F5LiBXZSdk IGJlIHdhaXRpbmcgZm9yIHRoZSBtdXRleCBpZiB0aGUgd29yaw0KZnVuY3Rpb24gaXMgYWxyZWFk eSBleGVjdXRpbmcgYW5kIGhhcyBhY3F1aXJlZCB0aGUgbXV0ZXguIFNvIGNhbmNlbF93b3JrDQp3 aWxsIG5vdCBpbnZvbHZlIGFueSB3YWl0aW5nLg0KDQpCdXQsIGlmIHRoZSBtdXRleCBpcyBhdmFp bGFibGUgZm9yIGZsdXNoIGFuZCB0aGUgd29yayBmdW5jdGlvbiBoYXMNCmFscmVhZHkgc3RhcnRl ZCBleGVjdXRpbmcgYnV0IGhhc24ndCBhY3F1aXJlZCB0aGUgbXV0ZXggeWV0LCBJIHRoaW5rIHdl DQptaWdodCBkZWFkbG9jayBpbiBjYW5jZWxfd29ya19zeW5jLiBXZSBjYW4gY2hlY2sgd2hhdCBs b2NrZGVwIHNheXMgYnkNCm1ha2luZyB0aGF0IGNoYW5nZS4NCg0KVGhlIHdheSBpdCBpcyBjdXJy ZW50bHkgKGFuZCBhZnRlciB5b3UgbWFkZSB0aGUgY2hhbmdlIHRvIGluY2x1ZGUNCmNhbmNlbF93 b3JrIGluIGludmFsZGF0ZSApIHNlZW1zIHJhY3kuIElmIGludmFsaWRhdGUgZm9sbG93cyBhIGZs dXNoLCB3ZQ0KY2FuIGVuZCB1cCBpbiB0d28gc2l0dWF0aW9ucw0KDQoxKQ0KCSAJRmx1c2gNCklu dmFsaWRhdGUJY2FuY2VsX3dvcmsoKQ0KY2FuY2VsX3dvcmsoKQ0KCQlleGl0KCkNCgkJc2NoZWR1 bGVfd29yaygpDQpleGl0KCkNCg0KDQoyKQ0KCQlGbHVzaA0KSW52YWxpZGF0ZQljYW5jZWxfd29y aw0KCQlleGl0KCkNCgkJc2NoZWR1bGVfd29yaygpDQpjYW5jZWxfd29yaygpDQpleGl0KCkNCg0K DQoNCj4gDQo+ID4gDQo+ID4gDQo+ID4gPiArDQo+ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5wc3IubG9jayk7DQo+ID4gPiAgCWlmICghZGV2X3ByaXYtPnBzci5lbmFibGVkKSB7DQo+ID4g PiAgCQltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7DQo+ID4gPiBAQCAtMTA1Myw5 ICsxMDI1LDggQEAgdm9pZCBpbnRlbF9wc3JfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LA0KPiA+ID4gIAl9DQo+ID4gPiAgDQo+ID4gPiAgCWlmICghZGV2X3ByaXYtPnBz ci5hY3RpdmUgJiYgIWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKQ0KPiA+ID4g LQkJaWYgKCF3b3JrX2J1c3koJmRldl9wcml2LT5wc3Iud29yay53b3JrKSkNCj4gPiA+IC0JCQlz Y2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5wc3Iud29yaywNCj4gPiA+IC0JCQkJCSAg ICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwKSk7DQo+ID4gPiArCQlpbnRlbF9wc3JfYWN0aXZhdGUo ZGV2X3ByaXYtPnBzci5lbmFibGVkKTsNCj4gPiA+ICsNCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ID4gIH0NCj4gPiA+ICANCj4gPiA+IEBAIC0xMTAyLDIx ICsxMDczLDIwIEBAIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQ0KPiA+ID4gIAkJZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkgPSBmYWxzZTsN Cj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gLQlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYt PnBzci53b3JrLCBpbnRlbF9wc3Jfd29yayk7DQo+ID4gPiAgCW11dGV4X2luaXQoJmRldl9wcml2 LT5wc3IubG9jayk7DQo+ID4gPiAgDQo+ID4gPiAgCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgew0KPiA+ID4gKwkJSU5JVF9ERUxBWUVEX1dP UksoJmRldl9wcml2LT5wc3Iudmx2X2FjdGl2YXRlX3dvcmssDQo+ID4gPiArCQkJCSAgdmx2X3Bz cl9hY3RpdmF0ZV93b3JrKTsNCj4gPiA+ICAJCWRldl9wcml2LT5wc3IuZW5hYmxlX3NvdXJjZSA9 IHZsdl9wc3JfZW5hYmxlX3NvdXJjZTsNCj4gPiA+ICAJCWRldl9wcml2LT5wc3IuZGlzYWJsZV9z b3VyY2UgPSB2bHZfcHNyX2Rpc2FibGU7DQo+ID4gPiAgCQlkZXZfcHJpdi0+cHNyLmVuYWJsZV9z aW5rID0gdmx2X3Bzcl9lbmFibGVfc2luazsNCj4gPiA+IC0JCWRldl9wcml2LT5wc3IuYWN0aXZh dGUgPSB2bHZfcHNyX2FjdGl2YXRlOw0KPiA+ID4gIAkJZGV2X3ByaXYtPnBzci5zZXR1cF92c2Mg PSB2bHZfcHNyX3NldHVwX3ZzYzsNCj4gPiA+ICAJfSBlbHNlIHsNCj4gPiA+ICAJCWRldl9wcml2 LT5wc3IuaGFzX2h3X3RyYWNraW5nID0gdHJ1ZTsNCj4gPiA+ICAJCWRldl9wcml2LT5wc3IuZW5h YmxlX3NvdXJjZSA9IGhzd19wc3JfZW5hYmxlX3NvdXJjZTsNCj4gPiA+ICAJCWRldl9wcml2LT5w c3IuZGlzYWJsZV9zb3VyY2UgPSBoc3dfcHNyX2Rpc2FibGU7DQo+ID4gPiAgCQlkZXZfcHJpdi0+ cHNyLmVuYWJsZV9zaW5rID0gaHN3X3Bzcl9lbmFibGVfc2luazsNCj4gPiANCj4gPiBXZSBtaWdo dCBiZSBhYmxlIHRvIHJlbW92ZSBlbmFibGVfc2luayBhbHNvIGlmIG15IGF1eCBwYXRjaCBnb2Vz DQo+ID4gdGhyb3VnaC4gZW5hYmxlXypzaW5rKiByZXF1aXJlZCBwbGF0Zm9ybSBzcGVjaWZpYyBo b29rcyBpcyBhIGJpdCBvZGQNCj4gPiBJTU8uDQo+IA0KPiBjb29sIQ0KPiANCj4gPiANCj4gPiAN Cj4gPiA+IC0JCWRldl9wcml2LT5wc3IuYWN0aXZhdGUgPSBoc3dfcHNyX2FjdGl2YXRlOw0KPiA+ ID4gIAkJZGV2X3ByaXYtPnBzci5zZXR1cF92c2MgPSBoc3dfcHNyX3NldHVwX3ZzYzsNCj4gPiA+ ICAJfQ0KPiA+ID4gIH0NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdA0KPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnDQo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK