From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Conselvan De Oliveira, Ander" Subject: Re: [PATCH] drm/i915: Use IS_GEN9 and IS_LP to put Skylake and Kabylake in the same bucket. Date: Mon, 23 Jan 2017 08:04:43 +0000 Message-ID: <1485158682.3573.31.camel@intel.com> References: <1484871418-22335-1-git-send-email-anusha.srivatsa@intel.com> <878tq6i5i8.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25C6E6E39F for ; Mon, 23 Jan 2017 08:04:47 +0000 (UTC) In-Reply-To: Content-Language: en-US Content-ID: <81BE5A3390E03949A9FB117FE7D309F8@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "mika.kuoppala@linux.intel.com" , "rodrigo.vivi@gmail.com" , "Nikula, Jani" , "Lahtinen, Joonas" , "tvrtko.ursulin@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE3LTAxLTIwIGF0IDA4OjIyIC0wODAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6DQo+ IE9uIFRodSwgSmFuIDE5LCAyMDE3IGF0IDEwOjU2IFBNLCBKYW5pIE5pa3VsYSA8amFuaS5uaWt1 bGFAaW50ZWwuY29tPiB3cm90ZToNCj4gPiANCj4gPiBPbiBGcmksIDIwIEphbiAyMDE3LCBBbnVz aGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4gDQo+ ID4gPiBXaXRoIEdMSyB3YXMgaW50cm9kdWNlZCBJU19MUC4NCj4gPiA+IFdpdGggdGhpcywgd2Ug Y2FuIHVzZSBJU19HRU45IGFuZCBJU19MUCB0byBwdXQgU2t5bGFrZQ0KPiA+ID4gYW5kIEthYnls YWtlIGluIHRoZSBzYW1lIGJ1Y2tldC4gVGhlIG1haW4gaW50ZW50aW9uIGlzDQo+ID4gPiB0byBz aW1wbGlmeSB0aGUgaWYgYW5kIGVsc2Ugc3RhdGVtZW50cyB0aGF0IGdldHMgYWRkZWQNCj4gPiA+ IGZvciBldmVyeSBuZXcgcGxhdGZvcm0uDQo+ID4gPiANCj4gPiA+IFRoaXMgYXBwcm9hY2ggcHJv cG9zZXMgdGhlIGlkZWEgdG8gY3JlYXRlIGEgY29tbW9uIGJ1Y2tldA0KPiA+ID4gdG8gcHV0IG11 bHRpcGxlIHBsYXRmb3JtcyAoU0tMIGFuZCBLQkwgaW4gdGhpcyBjYXNlKQ0KPiA+ID4gdG9nZXRo ZXIuIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW50cm9kdWNlIElTX0dFTjlfQkMNCj4g PiA+IGFzIHN1Z2dlc3RlZCBieSBSb2RyaWdvLCB3aGVyZSBfQkMgc3RhbmRzIGZvciBCaWcgQ29y ZS4NCj4gPiBJIHRoaW5rIHdlIG5lZWQgdG8gY29tZSB1cCB3aXRoIGFuIGFsaWFzIGxpa2UgSVNf R0VOOV9CQygpLCBhbHRob3VnaCBJJ20NCj4gPiBub3QgY29udmluY2VkIGFib3V0IHRoYXQgcGFy YXRpY3VsYXIgbmFtZS4gVGhlIGN1cnJlbnQgKEZPTyB8fCBCQVIpIGZvcg0KPiA+IHNwZWNpZmlj IEZPTyBhbmQgQkFSIGlzICptdWNoKiBmYXN0ZXIgdG8gcmVhZCB0aGFuIHRoZSBzbGlnaHRseQ0K PiA+IGNvbmZ1c2luZyAoR1JPVVAgJiYgIVNVQkdST1VQKS4NCj4gSSBkb24ndCBoYXZlIGEgc3Ry b25nIG9waW5pb24gb24gdGhpcyBvbmUgZXhjZXB0IHRoYXQgSSBiZWxpZXZlIHdlDQo+IG5lZWQg dG8gZ3JvdXAgc29tZWhvdy4NCj4gDQo+IEJ1dCBJIGRpZG4ndCB0cnkgdG8gbWVyZ2UgdGhlIHJl dmlld2VkIGlzX2dlbjlfYmMgYmVjYXVzZSBzb21lb25lDQo+IHJhaXNlZCBjb25jZXJucyBvbiBp cmMgbGlrZSBuYWtpbmcgaXQuLi4NCj4gbWF5YmUgTWlrYSBvciBNYXJ0ZWVuLCBJIGNhbid0IHJl bWVtYmVyLi4uDQo+IEFuZGVyLCBkbyB5b3UgcmVtZW1iZXIgd2hvIGNvbXBsYWluZWQgdGhhdCBk YXkgb24gaXJjPw0KDQpJIHRoaW5rIGl0IHdhcyBKb29uYXMuIEhlIGRpZG4ndCBsaWtlIG15IHN1 Z2dlc3Rpb24gb2YgX0hQIGZvciBoaWdoIHBvd2VyLiBUbyBiZQ0KaG9uZXN0LCBJIGRvbid0IGxp a2UgaXQgZWl0aGVyLiA6KQ0KPiANCj4gSSByZW1lbWJlciBUdnJ0a28gd2FzIHRoZSBvbmUgaW4g ZmF2b3Igb2YgdXNpbmcgIWlzX2xwLi4uDQoNCklTX0dFTjlfTlAgZm9yIG5vdC1sb3cgcG93ZXIu IE9yIGV2ZW4gbm9ybWFsIHBvd2VyLg0KDQo+IA0KPiBJIGFncmVlIF9CQyAoQmlnIENvcmUpIGlz IG5vdCBhIGdvb2QgbmFtZS4uLiBidXQgSSBjb3VsZG4ndCBjb21lIHdpdGgNCj4gc29tZXRoaW5n IGJldHRlci4gOigNCj4gDQo+IFNvIGVpdGhlciB3YXkgd29ya3MgZm9yIG1lIGFzIGxvbmcgYXMg d2UgYnVja2V0IGlzIHNvbWVob3cuLi4NCj4gU28sIGNvbW1lbnRzPw0KDQpJIGRvbid0IGtub3cg ZWl0aGVyLiBJIHRoaW5rIHRoZXJlJ3MgdmFsdWUgaW4gdGhlIGNoYW5nZSBhbmQgSSB3b3VsZG4n dCBtaW5kIGlmDQppdCBpcyBjYWxsZWQgX0JDLCBhbmQgdGhhdCdzIHdoeSB0aGF0IHBhdGNoIGhh cyBteSBSLWIuIFdvdWxkbid0IGl0IGJlIGVhc2llciB0bw0KZG8gc2VkICdzL0lTX0dFTjlfQkMv c29tZXRoaW5nIGVsc2UvJyBpZiBzb21lIG9uZSBoYXMgYSBncmVhdCBtb21lbnQgb2YNCmluc3Bp cmF0aW9uPw0KDQpBbmRlcg0KDQo+IA0KPiA+IA0KPiA+IA0KPiA+IE9uZSBvdGhlciBjb21tZW50 IGlubGluZS4NCj4gPiANCj4gPiA+IA0KPiA+ID4gVGhlIGk5MTVfZHJ2LmMgd2FzIGxldCBvdXQg b2YgdGhpcyBwYXRjaCBvbiBwdXJwb3NlDQo+ID4gPiBiZWNhdXNlIHRoYXQgaXMgcmVhbGx5IGEg ZGVjaXNpb24gcGVyIHBsYXRmb3JtLCBqdXN0IGxpa2UNCj4gPiA+IG90aGVyIGNhc2VzIHdoZXJl IElTX0tBQllMQUtFIGlzIGRpZmZlcmVudCBmcm9tIElTX1NLWUxBS0UuDQo+ID4gPiANCj4gPiA+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+ID4gPiBDYzogQW5k ZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50 ZWwuY29tPg0KPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+DQo+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRl bC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmPCoMKgwqDCoMKgwqB8IDEyICsrKysrKy0tLS0tLQ0KPiA+ID4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jwqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0NCj4gPiA+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuY8KgwqDCoMKgwqDCoMKgfMKgwqA0ICsrLS0N Cj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmPCoMKgwqDCoMKgwqDCoMKg wqB8IDIwICsrKysrKysrKystLS0tLS0tLS0tDQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RldmljZV9pbmZvLmMgfMKgwqAyICstDQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuY8KgwqDCoMKgwqB8IDEyICsrKysrKy0tLS0tLQ0KPiA+ID4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQg KystLQ0KPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jwqDCoMKg wqB8wqDCoDIgKy0NCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmPCoMKg wqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0NCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaTJjLmPCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQgKystLQ0KPiA+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9tb2NzLmPCoMKgwqDCoMKgwqDCoMKgfMKgwqAyICstDQo+ID4gPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMTEg KysrKystLS0tLS0NCj4gPiA+IMKgMTIgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwg MzkgZGVsZXRpb25zKC0pDQo+ID4gPiANCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYw0KPiA+ID4gaW5kZXggZmE2OWQ3Mi4uYTRmZGI5ZiAxMDA2NDQNCj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+ID4gQEAgLTEyMjQsMjAgKzEyMjQs MjAgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwN Cj4gPiA+IHZvaWQgKnVudXNlZCkNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoG1heF9mcmVxID0gKElTX0dFTjlfTFAoZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+ IDAgOg0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJwX3N0YXRlX2NhcCA+PiAxNikgJiAweGZmOw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllM QUtFKGRldl9wcml2KSA/DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtYXhfZnJl cSAqPSAoKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpID8NCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdFTjlf RlJFUV9TQ0FMRVIgOiAxKTsNCj4gPiBUaGVyZSdzIGFscmVhZHkgc3VwZXJmbHVvdXMgYnJhY2Vz IHRvIGJlZ2luIHdpdGgsIHBsZWFzZSBkb24ndCBhZGQgbW9yZSENCj4gPiBTYW1lIGFsbCBhcm91 bmQuDQo+IGluZGVlZA0KPiANCj4gPiANCj4gPiANCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHNlcV9wcmludGYobSwgIkxvd2VzdCAoUlBOKSBmcmVxdWVuY3k6ICVk TUh6XG4iLA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgbWF4X2ZyZXEpKTsNCj4gPiA+IA0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1heF9mcmVxID0gKHJwX3N0YXRlX2NhcCAm IDB4ZmYwMCkgPj4gODsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1heF9mcmVx ICo9IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikgPw0KPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWF4X2ZyZXEgKj0gKChJU19HRU45KGRldl9w cml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSA/DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHRU45X0ZSRVFfU0NBTEVSIDogMSk7DQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2VxX3ByaW50ZihtLCAiTm9taW5hbCAo UlAxKSBmcmVxdWVuY3k6ICVkTUh6XG4iLA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgbWF4X2Zy ZXEpKTsNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1heF9mcmVx ID0gKElTX0dFTjlfTFAoZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDE2IDoNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBycF9zdGF0 ZV9jYXAgPj4gMCkgJiAweGZmOw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWF4 X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSA/ DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtYXhfZnJlcSAqPSAoKElTX0dFTjko ZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpID8NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdFTjlfRlJFUV9TQ0FMRVIgOiAx KTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzZXFfcHJpbnRmKG0sICJNYXgg bm9uLW92ZXJjbG9ja2VkIChSUDApIGZyZXF1ZW5jeToNCj4gPiA+ICVkTUh6XG4iLA0KPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9n cHVfZnJlcShkZXZfcHJpdiwgbWF4X2ZyZXEpKTsNCj4gPiA+IEBAIC0xODE0LDcgKzE4MTQsNyBA QCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAqbSwNCj4g PiA+IHZvaWQgKnVudXNlZCkNCj4gPiA+IMKgwqDCoMKgwqDCoGlmIChyZXQpDQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBvdXQ7DQo+ID4gPiANCj4gPiA+IC3CoMKgwqDC oMKgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgew0K PiA+ID4gK8KgwqDCoMKgwqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2 KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIENvbnZlcnQgR1QgZnJl cXVlbmN5IHRvIDUwIEhaIHVuaXRzICovDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgbWluX2dwdV9mcmVxID0NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGV2X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQgLyBHRU45X0ZSRVFf U0NBTEVSOw0KPiA+ID4gQEAgLTE4MzQsNyArMTgzNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5n X2ZyZXFfdGFibGUoc3RydWN0IHNlcV9maWxlICptLA0KPiA+ID4gdm9pZCAqdW51c2VkKQ0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAmaWFfZnJlcSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc2VxX3ByaW50ZihtLCAiJWRcdFx0JWRcdFx0XHRcdCVkXG4iLA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9ncHVf ZnJlcShkZXZfcHJpdiwgKGdwdV9mcmVxICoNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKElTX1NLWUxBS0UoZGV2X3ByaXYp IHx8DQo+ID4gPiBJU19LQUJZTEFLRShkZXZfcHJpdikgPw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoKElTX0dFTjkoZGV2 X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpID8NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgR0VOOV9GUkVRX1NDQUxF UiA6IDEpKSksDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCgoaWFfZnJlcSA+PiAwKSAmIDB4ZmYpICogMTAwLA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoKGlhX2ZyZXEgPj4gOCkg JiAweGZmKSAqIDEwMCk7DQo+ID4gPiBAQCAtNDQ0NCw3ICs0NDQ0LDcgQEAgc3RhdGljIHZvaWQg Z2VuOV9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0DQo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNzZXUt PnNsaWNlX21hc2sgfD0gQklUKHMpOw0KPiA+ID4gDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYp KQ0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYp ICYmICFJU19MUChkZXZfcHJpdikpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHNzZXUtPnN1YnNsaWNlX21hc2sgPQ0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSU5URUxfSU5G TyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfbWFzazsNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMNCj4gPiA+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+ID4gaW5kZXggMTZjMjAyNy4uZmIyYTdlZSAx MDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMNCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMNCj4gPiA+IEBAIC03 MDIsNyArNzAyLDcgQEAgc3RhdGljIHZvaWQNCj4gPiA+IGk5MTVfYXVkaW9fY29tcG9uZW50X2Nv ZGVjX3dha2Vfb3ZlcnJpZGUoc3RydWN0IGRldmljZSAqa2RldiwNCj4gPiA+IMKgwqDCoMKgwqDC oHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2KTsN Cj4gPiA+IMKgwqDCoMKgwqDCoHUzMiB0bXA7DQo+ID4gPiANCj4gPiA+IC3CoMKgwqDCoMKgaWYg KCFJU19TS1lMQUtFKGRldl9wcml2KSAmJiAhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQ0KPiA+ID4g K8KgwqDCoMKgwqBpZiAoIShJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSkN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+ID4gPiANCj4gPiA+ IMKgwqDCoMKgwqDCoGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlcihrZGV2KTsNCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jDQo+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMNCj4gPiA+IGluZGV4IGQ4MTIzMmIu LmMxZTY4OTEgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b2xvci5jDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jDQo+ ID4gPiBAQCAtNTM2LDggKzUzNiw4IEBAIHZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgZHJt X2NydGMgKmNydGMpDQo+ID4gPiDCoMKgwqDCoMKgwqB9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X3ByaXYtPmRp c3BsYXkubG9hZF9jc2NfbWF0cml4ID0gaTl4eF9sb2FkX2NzY19tYXRyaXg7DQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaGFz d2VsbF9sb2FkX2x1dHM7DQo+ID4gPiAtwqDCoMKgwqDCoH0gZWxzZSBpZiAoSVNfQlJPQURXRUxM KGRldl9wcml2KSB8fCBJU19TS1lMQUtFKGRldl9wcml2KSB8fA0KPiA+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgSVNfQlJPWFRPTihkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKSB7DQo+ID4gPiArwqDCoMKgwqDCoH0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRl dl9wcml2KSB8fCAoSVNfR0VOOShkZXZfcHJpdikgJiYNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpKSB7DQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9j c2NfbWF0cml4ID0gaTl4eF9sb2FkX2NzY19tYXRyaXg7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gYnJvYWR3ZWxsX2xvYWRf bHV0czsNCj4gPiA+IMKgwqDCoMKgwqDCoH0gZWxzZSB7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMNCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMNCj4gPiA+IGluZGV4IDY2YjM2N2QuLjdjMzY0MjMgMTAwNjQ0DQo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYw0KPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMNCj4gPiA+IEBAIC00NDUsNyArNDQ1LDcgQEAg c3RhdGljIGludCBpbnRlbF9kZGlfaGRtaV9sZXZlbChzdHJ1Y3QNCj4gPiA+IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9yDQo+ID4gPiDCoMKgwqDCoMKgwqBpZiAoSVNf R0VOOV9MUChkZXZfcHJpdikpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIGhkbWlfbGV2ZWw7DQo+ID4gPiANCj4gPiA+IC3CoMKgwqDCoMKgaWYgKElTX1NLWUxBS0Uo ZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgew0KPiA+ID4gK8KgwqDCoMKgwqBp ZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkgew0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsICZu X2hkbWlfZW50cmllcyk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaGRtaV9k ZWZhdWx0X2VudHJ5ID0gODsNCj4gPiA+IMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAoSVNfQlJPQURX RUxMKGRldl9wcml2KSkgew0KPiA+ID4gQEAgLTUxOCw3ICs1MTgsNyBAQCB2b2lkIGludGVsX3By ZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXINCj4gPiA+ICplbmNvZGVy KQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5fZHBfZW50cmllcyA9IEFSUkFZ X1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfZHApOw0KPiA+ID4gwqDCoMKgwqDCoMKgfQ0KPiA+ ID4gDQo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpIHsNCj4gPiA+ICvCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYp ICYmICFJU19MUChkZXZfcHJpdikpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAvKiBJZiB3ZSdyZSBib29zdGluZyB0aGUgY3VycmVudCwgc2V0IGJpdCAzMSBvZiB0cmFuczEg Ki8NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoZGV2X3ByaXYtPnZidC5k ZGlfcG9ydF9pbmZvW3BvcnRdLmRwX2Jvb3N0X2xldmVsKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpYm9vc3RfYml0ID0gRERJX0JVRl9CQUxBTkNF X0xFR19FTkFCTEU7DQo+ID4gPiBAQCAtNTcyLDcgKzU3Miw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3ByZXBhcmVfaGRtaV9kZGlfYnVmZmVycyhzdHJ1Y3QNCj4gPiA+IGludGVsX2VuY29kZXIgKmVu Y29kZXIpDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDCoGhkbWlfbGV2ZWwgPSBpbnRlbF9kZGlf aGRtaV9sZXZlbChkZXZfcHJpdiwgcG9ydCk7DQo+ID4gPiANCj4gPiA+IC3CoMKgwqDCoMKgaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgew0KPiA+ID4g K8KgwqDCoMKgwqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkgew0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRkaV90cmFuc2xhdGlvbnNfaGRtaSA9 IHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsDQo+ID4gPiAmbl9oZG1pX2VudHJpZXMp Ow0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogSWYgd2UncmUg Ym9vc3RpbmcgdGhlIGN1cnJlbnQsIHNldCBiaXQgMzEgb2YgdHJhbnMxICovDQo+ID4gPiBAQCAt MTA4OSw3ICsxMDg5LDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9l bmNvZGVyDQo+ID4gPiAqZW5jb2RlciwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPD0gOCkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBoc3dfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7DQo+ID4gPiAtwqDCoMKg wqDCoGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSkNCj4gPiA+ICvCoMKgwqDCoMKgZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQ KGRldl9wcml2KSkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBza2xfZGRpX2Ns b2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7DQo+ID4gPiDCoMKgwqDCoMKgwqBlbHNlIGlm IChJU19HRU45X0xQKGRldl9wcml2KSkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7DQo+ID4gPiBAQCAtMTE1 MCw3ICsxMTUwLDcgQEAgYm9vbCBpbnRlbF9kZGlfcGxsX3NlbGVjdChzdHJ1Y3QgaW50ZWxfY3J0 Yw0KPiA+ID4gKmludGVsX2NydGMsDQo+ID4gPiDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNvZGVyKGNydGNfc3RhdGUpOw0KPiA+ID4gDQo+ID4g PiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikpDQo+ID4gPiArwqDCoMKgwqDCoGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAo ZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBza2xf ZGRpX3BsbF9zZWxlY3QoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSwNCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaW50ZWxfZW5jb2Rlcik7DQo+ID4gPiDCoMKgwqDCoMKgwqBlbHNlIGlmIChJ U19HRU45X0xQKGRldl9wcml2KSkNCj4gPiA+IEBAIC0xNjQxLDcgKzE2NDEsNyBAQCB1aW50MzJf dCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHANCj4gPiA+ICppbnRlbF9kcCkNCj4g PiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgbGV2ZWwgPSB0cmFuc2xhdGVfc2lnbmFsX2xldmVsKHNp Z25hbF9sZXZlbHMpOw0KPiA+ID4gDQo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpDQo+ID4gPiArwqDCoMKgwqDCoGlmIChJ U19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHNrbF9kZGlfc2V0X2lib29zdChlbmNvZGVyLCBsZXZlbCk7DQo+ID4g PiDCoMKgwqDCoMKgwqBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJpdiwg bGV2ZWwsIHBvcnQsIGVuY29kZXItDQo+ID4gPiA+dHlwZSk7DQo+ID4gPiBAQCAtMTY1OCw3ICsx NjU4LDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2Rlcg0K PiA+ID4gKmVuY29kZXIsDQo+ID4gPiDCoMKgwqDCoMKgwqBpZiAoV0FSTl9PTighcGxsKSkNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+ID4gPiANCj4gPiA+IC3C oMKgwqDCoMKgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSkgew0KPiA+ID4gK8KgwqDCoMKgwqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRl dl9wcml2KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVpbnQzMl90IHZh bDsNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIERESSAtPiBQ TEwgbWFwcGluZ8KgwqAqLw0KPiA+ID4gQEAgLTE3MTQsNyArMTcxNCw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0DQo+ID4gPiBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLA0KPiA+ID4gwqDCoMKgwqDCoMKgaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291 dHB1dChpbnRlbF9oZG1pLCB0cnVlKTsNCj4gPiA+IMKgwqDCoMKgwqDCoGludGVsX2RkaV9jbGtf c2VsZWN0KGVuY29kZXIsIHBsbCk7DQo+ID4gPiDCoMKgwqDCoMKgwqBpbnRlbF9wcmVwYXJlX2hk bWlfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7DQo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtF KGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpDQo+ID4gPiArwqDCoMKgwqDCoGlm IChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHNrbF9kZGlfc2V0X2lib29zdChlbmNvZGVyLCBsZXZlbCk7DQo+ ID4gPiDCoMKgwqDCoMKgwqBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJp diwgbGV2ZWwsIHBvcnQsDQo+ID4gPiBAQCAtMTc4NCw3ICsxNzg0LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QNCj4gPiA+IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZWRwX3Bh bmVsX29mZihpbnRlbF9kcCk7DQo+ID4gPiDCoMKgwqDCoMKgwqB9DQo+ID4gPiANCj4gPiA+IC3C oMKgwqDCoMKgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSkNCj4gPiA+ICvCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZf cHJpdikpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSTkxNV9XUklURShEUExM X0NUUkwyLCAoSTkxNV9SRUFEKERQTExfQ1RSTDIpIHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBEUExMX0NUUkwyX0RESV9DTEtfT0ZGKHBvcnQpKSk7DQo+ID4gPiDCoMKgwqDCoMKgwqBlbHNl IGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkNCj4gPiA+IEBAIC0yMTU3LDcgKzIxNTcsNyBA QCBpbnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KPiA+ ID4gaW50IGNsb2NrKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBwbGwtPnN0YXRlID0gdG1wX3BsbF9zdGF0ZTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIE5VTEw7DQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiA+ID4gLcKgwqDCoMKgwqB9IGVsc2UgaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgew0KPiA+ID4gK8KgwqDC oMKgwqB9IGVsc2UgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpIHsN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwbGwgPSBza2xfZmluZF9saW5rX3Bs bChkZXZfcHJpdiwgY2xvY2spOw0KPiA+ID4gwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChJU19IQVNX RUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7DQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcGxsID0gaHN3X2RkaV9kcF9nZXRfZHBsbChlbmNvZGVyLCBj bG9jayk7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uYw0KPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5m by5jDQo+ID4gPiBpbmRleCBmY2Y4MTgxLi44YWNkN2RjIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYw0KPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYw0KPiA+ID4gQEAgLTE4OSw3ICsxODks NyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdA0KPiA+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoCogcGFpciBwZXIgc3Vi c2xpY2UuDQo+ID4gPiDCoMKgwqDCoMKgwqAqLw0KPiA+ID4gwqDCoMKgwqDCoMKgc3NldS0+aGFz X3NsaWNlX3BnID0NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChJU19TS1lMQUtF KGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpICYmDQo+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkg JiYNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBod2VpZ2h0OChzc2V1LT5zbGlj ZV9tYXNrKSA+IDE7DQo+ID4gPiDCoMKgwqDCoMKgwqBzc2V1LT5oYXNfc3Vic2xpY2VfcGcgPQ0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoElTX0dFTjlfTFAoZGV2X3ByaXYpICYm IHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPiAxOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiA+IGluZGV4IDBmNDI3MmYuLjk1MmQwYjQgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gQEAgLTU3 OTksNyArNTc5OSw3IEBAIHN0YXRpYyBpbnQgc2tsX2NhbGNfY2RjbGsoaW50IG1heF9waXhjbGss IGludCB2Y28pOw0KPiA+ID4gDQo+ID4gPiDCoHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gwqB7DQo+ID4g PiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikpIHsNCj4gPiA+ICvCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19M UChkZXZfcHJpdikpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgbGlt aXQgPSBJOTE1X1JFQUQoU0tMX0RGU00pICYgU0tMX0RGU01fQ0RDTEtfTElNSVRfTUFTSzsNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgbWF4X2NkY2xrLCB2Y287DQo+ID4g PiANCj4gPiA+IEBAIC0xMDY2Niw3ICsxMDY2Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0 X2RkaV9wb3J0X3N0YXRlKHN0cnVjdA0KPiA+ID4gaW50ZWxfY3J0YyAqY3J0YywNCj4gPiA+IA0K PiA+ID4gwqDCoMKgwqDCoMKgcG9ydCA9ICh0bXAgJiBUUkFOU19ERElfUE9SVF9NQVNLKSA+PiBU UkFOU19ERElfUE9SVF9TSElGVDsNCj4gPiA+IA0KPiA+ID4gLcKgwqDCoMKgwqBpZiAoSVNfU0tZ TEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQ0KPiA+ID4gK8KgwqDCoMKg wqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBza3lsYWtlX2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0 LCBwaXBlX2NvbmZpZyk7DQo+ID4gPiDCoMKgwqDCoMKgwqBlbHNlIGlmIChJU19HRU45X0xQKGRl dl9wcml2KSkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBieHRfZ2V0X2RkaV9w bGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsNCj4gPiA+IEBAIC0xNTY2Nyw3ICsxNTY2 Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0DQo+ID4gPiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCovDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZm91bmQgPSBJOTE1X1JF QUQoRERJX0JVRl9DVEwoUE9SVF9BKSkgJg0KPiA+ID4gRERJX0lOSVRfRElTUExBWV9ERVRFQ1RF RDsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBXYUlnbm9yZURESUFTdHJh cDogc2tsICovDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoZm91bmQgfHwg SVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQ0KPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGZvdW5kIHx8IChJU19HRU45KGRldl9wcml2KSAm JiAhSVNfTFAoZGV2X3ByaXYpKSkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaW50ZWxfZGRpX2luaXQoZGV2X3ByaXYsIFBPUlRfQSk7DQo+ID4gPiAN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBEREkgQiwgQyBhbmQgRCBkZXRl Y3Rpb24gaXMgaW5kaWNhdGVkIGJ5IHRoZSBTRlVTRV9TVFJBUA0KPiA+ID4gQEAgLTE1NjgzLDcg KzE1NjgzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QNCj4gPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqIE9uIFNLTCB3 ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGRldGVjdCBEREktRSBzbyB3ZSByZWx5IG9uDQo+ID4gPiBW QlQuDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqLw0KPiA+ID4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpICYmDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAo KElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpICYmDQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZv W1BPUlRfRV0uc3VwcG9ydHNfZHAgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3VwcG9ydHNf ZHZpIHx8DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9w cml2LT52YnQuZGRpX3BvcnRfaW5mb1tQT1JUX0VdLnN1cHBvcnRzX2hkbWkpKQ0KPiA+ID4gQEAg LTE2MTgyLDcgKzE2MTgyLDcgQEAgdm9pZCBpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3Moc3RydWN0 DQo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiA+IMKgwqDCoMKgwqDCoH0N Cj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgLyogUmV0dXJucyB0aGUgY29yZSBkaXNwbGF5IGNs b2NrIHNwZWVkICovDQo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8 fCBJU19LQUJZTEFLRShkZXZfcHJpdikpDQo+ID4gPiArwqDCoMKgwqDCoGlmIChJU19HRU45KGRl dl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0NCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2t5bGFrZV9nZXRf ZGlzcGxheV9jbG9ja19zcGVlZDsNCj4gPiA+IMKgwqDCoMKgwqDCoGVsc2UgaWYgKElTX0dFTjlf TFAoZGV2X3ByaXYpKQ0KPiA+ID4gQEAgLTE2MjYzLDcgKzE2MjYzLDcgQEAgdm9pZCBpbnRlbF9p bml0X2Rpc3BsYXlfaG9va3Moc3RydWN0DQo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnh0 X21vZGVzZXRfY29tbWl0X2NkY2xrOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9DQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJ4dF9tb2Rlc2V0X2NhbGNfY2RjbGs7 DQo+ID4gPiAtwqDCoMKgwqDCoH0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNf S0FCWUxBS0UoZGV2X3ByaXYpKSB7DQo+ID4gPiArwqDCoMKgwqDCoH0gZWxzZSBpZiAoSVNfR0VO OShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrID0NCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2tsX21vZGVz ZXRfY29tbWl0X2NkY2xrOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9w cml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jDQo+ID4gPiBpbmRleCBlODBkNjIwLi5hODA2NDM5IDEwMDY0NA0KPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+ID4gQEAgLTIyNiw3ICsyMjYsNyBAQCBpbnRl bF9kcF9zb3VyY2VfcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgY29uc3QNCj4gPiA+ IGludCAqKnNvdXJjZV9yYXRlcykNCj4gPiA+IMKgwqDCoMKgwqDCoGlmIChJU19HRU45X0xQKGRl dl9wcml2KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpzb3VyY2VfcmF0 ZXMgPSBieHRfcmF0ZXM7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2l6ZSA9 IEFSUkFZX1NJWkUoYnh0X3JhdGVzKTsNCj4gPiA+IC3CoMKgwqDCoMKgfSBlbHNlIGlmIChJU19T S1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsNCj4gPiA+ICvCoMKg wqDCoMKgfSBlbHNlIGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSB7 DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKnNvdXJjZV9yYXRlcyA9IHNrbF9y YXRlczsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzaXplID0gQVJSQVlfU0la RShza2xfcmF0ZXMpOw0KPiA+ID4gwqDCoMKgwqDCoMKgfSBlbHNlIHsNCj4gPiA+IEBAIC0xNzUy LDcgKzE3NTIsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl cg0KPiA+ID4gKmVuY29kZXIsDQo+ID4gPiDCoMKgwqDCoMKgwqDCoCogY2xvY2sgZm9yIGVEUC4g VGhpcyB3aWxsIGFmZmVjdCBjZGNsayBhcyB3ZWxsLg0KPiA+ID4gwqDCoMKgwqDCoMKgwqAqLw0K PiA+ID4gwqDCoMKgwqDCoMKgaWYgKGlzX2VkcChpbnRlbF9kcCkgJiYNCj4gPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYp KSkgew0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoChJU19HRU45KGRldl9wcml2KSAmJiAhSVNf TFAoZGV2X3ByaXYpKSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCB2 Y287DQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzd2l0Y2ggKHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gMikgew0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMNCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBsbF9tZ3IuYw0KPiA+ID4gaW5kZXggYzkyYTI1NS4uYjVmYWZkNCAxMDA2NDQN Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMNCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMNCj4gPiA+IEBAIC0y MDE1LDcgKzIwMTUsNyBAQCB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikNCj4gPiA+IMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRw bGxfaW5mbzsNCj4gPiA+IMKgwqDCoMKgwqDCoGludCBpOw0KPiA+ID4gDQo+ID4gPiAtwqDCoMKg wqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpDQo+ ID4gPiArwqDCoMKgwqDCoGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYp KQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRwbGxfbWdyID0gJnNrbF9wbGxf bWdyOw0KPiA+ID4gwqDCoMKgwqDCoMKgZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHBsbF9tZ3IgPSAmYnh0X3BsbF9tZ3I7 DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4g PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiA+IGluZGV4IDg5ZmU1 YzguLjJhMGI5OGMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4g PiA+IEBAIC01MzgsNyArNTM4LDcgQEAgc3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9uX3RocmVz aG9sZChzdHJ1Y3QNCj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ID4gwqDC oMKgwqDCoMKgwqAqIElmIHdlIGVuYWJsZSBGQkMgdXNpbmcgYSBDRkIgb24gdGhhdCBtZW1vcnkg cmFuZ2Ugd2UnbGwgZ2V0IEZJRk8NCj4gPiA+IMKgwqDCoMKgwqDCoMKgKiB1bmRlcnJ1bnMsIGV2 ZW4gaWYgdGhhdCByYW5nZSBpcyBub3QgcmVzZXJ2ZWQgYnkgdGhlIEJJT1MuICovDQo+ID4gPiDC oMKgwqDCoMKgwqBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fA0KPiA+ID4gLcKgwqDCoMKg wqDCoMKgwqDCoElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkN Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRl dl9wcml2KSkpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW5kID0gZ2d0dC0+ c3RvbGVuX3NpemUgLSA4ICogMTAyNCAqIDEwMjQ7DQo+ID4gPiDCoMKgwqDCoMKgwqBlbHNlDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW5kID0gVTY0X01BWDsNCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYw0KPiA+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYw0KPiA+ID4gaW5kZXggYmNlMWJhOC4uYTBmZmFh YyAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jDQo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYw0KPiA+ID4gQEAgLTc0 LDcgKzc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnbWJ1c19waW4gKmdldF9nbWJ1c19waW4o c3RydWN0DQo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiA+IMKgew0KPiA+ ID4gwqDCoMKgwqDCoMKgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAmZ21idXNfcGluc19ieHRbcGluXTsNCj4gPiA+IC3C oMKgwqDCoMKgZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2 X3ByaXYpKQ0KPiA+ID4gK8KgwqDCoMKgwqBlbHNlIGlmIChJU19HRU45KGRldl9wcml2KSAmJiAh SVNfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biAmZ21idXNfcGluc19za2xbcGluXTsNCj4gPiA+IMKgwqDCoMKgwqDCoGVsc2UgaWYgKElTX0JS T0FEV0VMTChkZXZfcHJpdikpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuICZnbWJ1c19waW5zX2Jkd1twaW5dOw0KPiA+ID4gQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBp bnRlbF9nbWJ1c19pc192YWxpZF9waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiA+ICpk ZXZfcHJpdiwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgaWYgKElTX0dFTjlfTFAoZGV2X3By aXYpKQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNpemUgPSBBUlJBWV9TSVpF KGdtYnVzX3BpbnNfYnh0KTsNCj4gPiA+IC3CoMKgwqDCoMKgZWxzZSBpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQ0KPiA+ID4gK8KgwqDCoMKgwqBlbHNl IGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQ0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNpemUgPSBBUlJBWV9TSVpFKGdtYnVzX3BpbnNfc2tsKTsN Cj4gPiA+IMKgwqDCoMKgwqDCoGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpDQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGlu c19iZHcpOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21v Y3MuYw0KPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMNCj4gPiA+IGlu ZGV4IGM3ODdmYzQuLjQ5NTY2ODEgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tb2NzLmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X21vY3MuYw0KPiA+ID4gQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgYm9vbCBnZXRfbW9jc19z ZXR0aW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ID4gKmRldl9wcml2LA0KPiA+ID4g wqB7DQo+ID4gPiDCoMKgwqDCoMKgwqBib29sIHJlc3VsdCA9IGZhbHNlOw0KPiA+ID4gDQo+ID4g PiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikpIHsNCj4gPiA+ICvCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19M UChkZXZfcHJpdikpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0YWJsZS0+ c2l6ZcKgwqA9IEFSUkFZX1NJWkUoc2t5bGFrZV9tb2NzX3RhYmxlKTsNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB0YWJsZS0+dGFibGUgPSBza3lsYWtlX21vY3NfdGFibGU7DQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVzdWx0ID0gdHJ1ZTsNCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jDQo+ID4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gPiA+IGluZGV4IDI0OTYyM2QuLmVjMWNhODMg MTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jDQo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jDQo+ID4gPiBAQCAtNTI5Myw4 ICs1MjkzLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jwc19mcmVxdWVuY2llcyhzdHJ1Y3QN Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gwqDCoMKgwqDCoMKgZGV2 X3ByaXYtPnJwcy5tYXhfZnJlcSA9IGRldl9wcml2LT5ycHMucnAwX2ZyZXE7DQo+ID4gPiANCj4g PiA+IMKgwqDCoMKgwqDCoGRldl9wcml2LT5ycHMuZWZmaWNpZW50X2ZyZXEgPSBkZXZfcHJpdi0+ cnBzLnJwMV9mcmVxOw0KPiA+ID4gLcKgwqDCoMKgwqBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikg fHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgew0KPiA+ID4gK8Kg wqDCoMKgwqBpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgJiYgIUlTX0xQKGRldl9wcml2 KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHUzMiBkZGNjX3N0YXR1cyA9 IDA7DQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoc2FuZHli cmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwNCj4gPiA+IEBAIC01MzA3LDcgKzUzMDYsNyBAQCBz dGF0aWMgdm9pZCBnZW42X2luaXRfcnBzX2ZyZXF1ZW5jaWVzKHN0cnVjdA0KPiA+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X3ByaXYt PnJwcy5tYXhfZnJlcSk7DQo+ID4gPiDCoMKgwqDCoMKgwqB9DQo+ID4gPiANCj4gPiA+IC3CoMKg wqDCoMKgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkg ew0KPiA+ID4gK8KgwqDCoMKgwqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9w cml2KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIFN0b3JlIHRoZSBm cmVxdWVuY3kgdmFsdWVzIGluIDE2LjY2IE1IWiB1bml0cywgd2hpY2ggaXMNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCogdGhlIG5hdHVyYWwgaGFyZHdhcmUgdW5pdCBmb3Ig U0tMDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqLw0KPiA+ID4gQEAgLTU2 MzcsNyArNTYzNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfdXBkYXRlX3JpbmdfZnJlcShzdHJ1Y3QN Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gwqDCoMKgwqDCoMKgLyog Y29udmVydCBERFIgZnJlcXVlbmN5IGZyb20gdW5pdHMgb2YgMjY2LjZNSHogdG8gYmFuZHdpZHRo ICovDQo+ID4gPiDCoMKgwqDCoMKgwqBtaW5fcmluZ19mcmVxID0gbXVsdF9mcmFjKG1pbl9yaW5n X2ZyZXEsIDgsIDMpOw0KPiA+ID4gDQo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsNCj4gPiA+ICvCoMKgwqDCoMKgaWYg KElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpIHsNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBDb252ZXJ0IEdUIGZyZXF1ZW5jeSB0byA1MCBIWiB1bml0 cyAqLw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1pbl9ncHVfZnJlcSA9IGRl dl9wcml2LT5ycHMubWluX2ZyZXEgLyBHRU45X0ZSRVFfU0NBTEVSOw0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoG1heF9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWF4X2ZyZXEg LyBHRU45X0ZSRVFfU0NBTEVSOw0KPiA+ID4gQEAgLTU2NTUsNyArNTY1NCw3IEBAIHN0YXRpYyB2 b2lkIGdlbjZfdXBkYXRlX3JpbmdfZnJlcShzdHJ1Y3QNCj4gPiA+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCBkaWZmID0g bWF4X2dwdV9mcmVxIC0gZ3B1X2ZyZXE7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgdW5zaWduZWQgaW50IGlhX2ZyZXEgPSAwLCByaW5nX2ZyZXEgPSAwOw0KPiA+ID4gDQo+ID4g PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkgew0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKg0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCogcmluZ19mcmVxID0gMiAq IEdULiByaW5nX2ZyZXEgaXMgaW4gMTAwTUh6IHVuaXRzDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKiBObyBmbG9vciByZXF1aXJlZCBmb3Igcmlu ZyBmcmVxdWVuY3kgb24gU0tMLg0KPiA+ID4gQEAgLTY3NzUsNyArNjc3NCw3IEBAIHZvaWQgaW50 ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QNCj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQ0KPiA+ID4gwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnZW45X2VuYWJsZV9y YzYoZGV2X3ByaXYpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdlbjlfZW5h YmxlX3JwcyhkZXZfcHJpdik7DQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAo SVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQ0KPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChk ZXZfcHJpdikpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGdlbjZfdXBkYXRlX3JpbmdfZnJlcShkZXZfcHJpdik7DQo+ID4gPiDCoMKgwqDCoMKgwqB9 IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBnZW44X2VuYWJsZV9ycHMoZGV2X3ByaXYpOw0KPiA+IC0tDQo+ID4gSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyDQo+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0DQo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4DQo+ IA0KPiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCkludGVsIEZpbmxhbmQgT3kKUmVnaXN0ZXJlZCBBZGRyZXNzOiBQ TCAyODEsIDAwMTgxIEhlbHNpbmtpIApCdXNpbmVzcyBJZGVudGl0eSBDb2RlOiAwMzU3NjA2IC0g NCAKRG9taWNpbGVkIGluIEhlbHNpbmtpIAoKVGhpcyBlLW1haWwgYW5kIGFueSBhdHRhY2htZW50 cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0ZXJpYWwgZm9yCnRoZSBzb2xlIHVzZSBvZiB0 aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9yIGRpc3RyaWJ1dGlvbgpieSBv dGhlcnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVk CnJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQgZGVsZXRlIGFsbCBjb3Bp ZXMuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=