From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-bn3nam04on060d.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe4e::60d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 298CD6E161 for ; Tue, 25 Jun 2019 16:20:08 +0000 (UTC) From: "Kazlauskas, Nicholas" Date: Tue, 25 Jun 2019 16:20:05 +0000 Message-ID: <1a151fd8-0d6e-ecfb-663c-d8c6bd879c93@amd.com> References: <20190624143144.3403-1-dingchen.zhang@amd.com> In-Reply-To: <20190624143144.3403-1-dingchen.zhang@amd.com> Content-Language: en-US Content-ID: <536EBA4B2CF7DD4DBF9C9FC3C27CC590@namprd12.prod.outlook.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 1/4] lib/igt_fb: add functionality of getting framebuffer 16-bit CRC. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Zhang, Dingchen (David)" , "igt-dev@lists.freedesktop.org" List-ID: T24gNi8yNC8xOSAxMDozMSBBTSwgRGluZ2NoZW4gWmhhbmcgd3JvdGU6DQo+IE5lZWQgZnJhbWVi dWZmZXIgQ1JDIHRvIHZhbGlkYXRlIEFNREdQVSBieXBhc3MgbW9kZS4NCj4gDQo+IEZvciBlYWNo IGNvbG9yIGNvbXBvbmVudCBsZXNzIHRoYW4gMTYtYml0cywgcGFkZGluZyB6ZXJvIGJpdHMsDQo+ IGxvb3AgdG8gdXBkYXRlIENSQyBmb3IgZWFjaCBSR0IgY29tcG9tZW50IGluIHRoZSBmcmFtZWJ1 ZmZlci4NCj4gVGhlIGFsZ29yaXRobSBpcyBiYXNlZCBvbiBEUCBzcGVjIHYxLjQuDQo+IA0KPiBD YzogSGFycnkgV2VudGxhbmQgPEhhcnJ5LldlbnRsYW5kQGFtZC5jb20+DQo+IENjOiBOaWNrIEth emxhdXNrYXMgPE5pY2hvbGFzLkthemxhdXNrYXNAYW1kLmNvbT4NCj4gQ2hhbmdlLUlkOiBJZmMy MDc2ZGY2YzliMjE1NmRiMjNjYWU3YWQ5NjhjNjFmNDA0ZDBlNA0KDQpEcm9wIHRoZSBDaGFuZ2Ut SWQncyBmcm9tIHRoZXNlIHBhdGNoZXMuDQoNCj4gU2lnbmVkLW9mZi1ieTogRGluZ2NoZW4gWmhh bmcgPGRpbmdjaGVuLnpoYW5nQGFtZC5jb20+DQo+IC0tLQ0KPiAgIGxpYi9pZ3RfZmIuYyB8IDE5 NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4g ICBsaWIvaWd0X2ZiLmggfCAgIDIgKw0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlv bnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmMgYi9saWIvaWd0X2ZiLmMNCj4g aW5kZXggOWQ0ZjkwNWUuLjJhYzk0M2MwIDEwMDY0NA0KPiAtLS0gYS9saWIvaWd0X2ZiLmMNCj4g KysrIGIvbGliL2lndF9mYi5jDQo+IEBAIC02NSw2ICs2NSw3IEBADQo+ICAgICovDQo+ICAgDQo+ ICAgI2RlZmluZSBQSVhNQU5faW52YWxpZAkwDQo+ICsjZGVmaW5lIENSQ19JTklUXzE2CTB4MDAw MA0KDQpEcm9wIHRoaXMgZGVmaW5lLCBpdCdzIG9ubHkgdXNlZCB3aXRoaW4gdGhlIENSQyBmdW5j dGlvbiBpdHNlbGYgYW5kIGl0J3MgDQpqdXN0IHplcm8uDQoNCj4gICANCj4gICAjaWYgQ0FJUk9f VkVSU0lPTiA8IENBSVJPX1ZFUlNJT05fRU5DT0RFKDEsIDE3LCAyKQ0KPiAgIC8qDQo+IEBAIC05 MDMsNiArOTA0LDIwMCBAQCBpbnQgaWd0X2NyZWF0ZV9ib193aXRoX2RpbWVuc2lvbnMoaW50IGZk LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsDQo+ICAgCXJldHVybiBmYi5nZW1faGFuZGxlOw0KPiAg IH0NCj4gICANCj4gKyNkZWZpbmUgZ2V0X3UxNl9iaXQoeCwgbikgCSgoeCAmICgxIDw8IG4pKSA+ PiBuICkNCj4gKyNkZWZpbmUgc2V0X3UxNl9iaXQoeCwgbiwgdmFsKQkoKHggJiB+KDEgPDwgbikp IHwgKHZhbCA8PCBuKSkNCj4gKy8qDQo+ICsgKiB1cGRhdGVfY3JjMTZfZHA6DQo+ICsgKiBAY3Jj X29sZDogb2xkIDE2LWJpdCBDUkMgdmFsdWUgdG8gYmUgdXBkYXRlZA0KPiArICogQGQ6IGlucHV0 IDE2LWJpdCBkYXRhIG9uIHdoaWNoIHRvIGNhbGN1bGF0ZSAxNi1iaXQgQ1JDDQo+ICsgKg0KPiAr ICogQ1JDIGFsZ29yaXRobSBpbXBsZW1lbnRhdGlvbiBkZXNjcmliZWQgaW4gRFAgMS40IHNwZWMg QXBwZW5kaXggSg0KPiArICogdGhlIDE2LWJpdCBDUkMgSUJNIGlzIGFwcGxpZWQsIHdpdGggdGhl IGZvbGxvd2luZyBwb2x5bm9taWFsOg0KPiArICoNCj4gKyAqICAgICAgIGYoeCkgPSB4IF4gMTYg KyB4IF4gMTUgKyB4IF4gMiArIDENCj4gKyAqDQo+ICsgKiB0aGUgTVNCIGlzIHNoaWZ0ZWQgaW4g Zmlyc3QsIGZvciBhbnkgY29sb3IgZm9ybWF0IHRoYXQgaXMgbGVzcyB0aGFuIDE2IGJpdHMNCj4g KyAqIHBlciBjb21wb25lbnQsIHRoZSBMU0IgaXMgemVyby1wYWRkZWQuDQo+ICsgKg0KPiArICog VGhlIGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBvbiB0aGUgaGFyZHdhcmUgcGFy YWxsZWwgMTYtYml0IENSQw0KPiArICogZ2VuZXJhdGlvbiBhbmQgcG9ydGVkIHRvIEMgY29kZS4N Cj4gKyAqDQo+ICsgKiBSZWZlcmVuY2U6IFZFU0EgRGlzcGxheVBvcnQgU3RhbmRhcmQgdjEuNCwg YXBwZW5kaXggSg0KPiArICoNCj4gKyAqIFJldHVybnM6DQo+ICsgKiB1cGRhdGVkIDE2LWJpdCBD UkMgdmFsdWUuDQo+ICsgKi8NCj4gK3N0YXRpYyB1aW50MTZfdCB1cGRhdGVfY3JjMTZfZHAodWlu dDE2X3QgY3JjX29sZCwgdWludDE2X3QgZCkNCj4gK3sNCj4gKwl1aW50MTZfdCBjcmNfbmV3ID0g MDsJLyogMTYtYml0IENSQyBvdXRwdXQgKi8NCj4gKw0KPiArCS8qIGludGVybmFsIHVzZSAqLw0K PiArCXVpbnQxNl90IGIgPSBjcmNfb2xkOw0KPiArCXVpbnQ4X3QgdmFsOw0KPiArDQo+ICsJLyog YlsxNV0gKi8NCj4gKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAwKSBeIGdldF91MTZfYml0KGIsIDEp IF4gZ2V0X3UxNl9iaXQoYiwgMikgXg0KPiArCSAgICAgIGdldF91MTZfYml0KGIsIDMpIF4gZ2V0 X3UxNl9iaXQoYiwgNCkgXiBnZXRfdTE2X2JpdChiLCA1KSBeDQo+ICsJICAgICAgZ2V0X3UxNl9i aXQoYiwgNikgXiBnZXRfdTE2X2JpdChiLCA3KSBeIGdldF91MTZfYml0KGIsIDgpIF4NCj4gKwkg ICAgICBnZXRfdTE2X2JpdChiLCA5KSBeIGdldF91MTZfYml0KGIsIDEwKSBeIGdldF91MTZfYml0 KGIsIDExKSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoYiwgMTIpIF4gZ2V0X3UxNl9iaXQoYiwg MTQpIF4gZ2V0X3UxNl9iaXQoYiwgMTUpIF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChkLCAwKSBe IGdldF91MTZfYml0KGQsIDEpIF4gZ2V0X3UxNl9iaXQoZCwgMikgXg0KPiArCSAgICAgIGdldF91 MTZfYml0KGQsIDMpIF4gZ2V0X3UxNl9iaXQoZCwgNCkgXiBnZXRfdTE2X2JpdChkLCA1KSBeDQo+ ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgNikgXiBnZXRfdTE2X2JpdChkLCA3KSBeIGdldF91MTZf Yml0KGQsIDgpIF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChkLCA5KSBeIGdldF91MTZfYml0KGQs IDEwKSBeIGdldF91MTZfYml0KGQsIDExKSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgMTIp IF4gZ2V0X3UxNl9iaXQoZCwgMTQpIF4gZ2V0X3UxNl9iaXQoZCwgMTUpOw0KPiArCWNyY19uZXcg PSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxNSwgdmFsKTsNCj4gKw0KPiArCS8qIGJbMTRdICovDQo+ ICsJdmFsID0gZ2V0X3UxNl9iaXQoYiwgMTIpIF4gZ2V0X3UxNl9iaXQoYiwgMTMpIF4NCj4gKwkg ICAgICBnZXRfdTE2X2JpdChkLCAxMikgXiBnZXRfdTE2X2JpdChkLCAxMyk7DQo+ICsJY3JjX25l dyA9IHNldF91MTZfYml0KGNyY19uZXcsIDE0LCB2YWwpOw0KPiArDQo+ICsJLyogYlsxM10gKi8N Cj4gKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAxMSkgXiBnZXRfdTE2X2JpdChiLCAxMikgXg0KPiAr CSAgICAgIGdldF91MTZfYml0KGQsIDExKSBeIGdldF91MTZfYml0KGQsIDEyKTsNCj4gKwljcmNf bmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgMTMsIHZhbCk7DQo+ICsNCj4gKwkvKiBiWzEyXSAq Lw0KPiArCXZhbCA9IGdldF91MTZfYml0KGIsIDEwKSBeIGdldF91MTZfYml0KGIsIDExKSBeDQo+ ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgMTApIF4gZ2V0X3UxNl9iaXQoZCwgMTEpOw0KPiArCWNy Y19uZXcgPSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxMiwgdmFsKTsNCj4gKw0KPiArCS8qIGJbMTFd ICovDQo+ICsJdmFsID0gZ2V0X3UxNl9iaXQoYiwgOSkgXiBnZXRfdTE2X2JpdChiLCAxMCkgXg0K PiArCSAgICAgIGdldF91MTZfYml0KGQsIDkpIF4gZ2V0X3UxNl9iaXQoZCwgMTApOw0KPiArCWNy Y19uZXcgPSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxMSwgdmFsKTsNCj4gKw0KPiArCS8qIGJbMTBd ICovDQo+ICsJdmFsID0gZ2V0X3UxNl9iaXQoYiwgOCkgXiBnZXRfdTE2X2JpdChiLCA5KSBeDQo+ ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgOCkgXiBnZXRfdTE2X2JpdChkLCA5KTsNCj4gKwljcmNf bmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgMTAsIHZhbCk7DQo+ICsNCj4gKwkvKiBiWzldICov DQo+ICsJdmFsID0gZ2V0X3UxNl9iaXQoYiwgNykgXiBnZXRfdTE2X2JpdChiLCA4KSBeDQo+ICsJ ICAgICAgZ2V0X3UxNl9iaXQoZCwgNykgXiBnZXRfdTE2X2JpdChkLCA4KTsNCj4gKwljcmNfbmV3 ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgOSwgdmFsKTsNCj4gKw0KPiArCS8qIGJbOF0gKi8NCj4g Kwl2YWwgPSBnZXRfdTE2X2JpdChiLCA2KSBeIGdldF91MTZfYml0KGIsIDcpIF4NCj4gKwkgICAg ICBnZXRfdTE2X2JpdChkLCA2KSBeIGdldF91MTZfYml0KGQsIDcpOw0KPiArCWNyY19uZXcgPSBz ZXRfdTE2X2JpdChjcmNfbmV3LCA4LCB2YWwpOw0KPiArDQo+ICsJLyogYls3XSAqLw0KPiArCXZh bCA9IGdldF91MTZfYml0KGIsIDUpIF4gZ2V0X3UxNl9iaXQoYiwgNikgXg0KPiArCSAgICAgIGdl dF91MTZfYml0KGQsIDUpIF4gZ2V0X3UxNl9iaXQoZCwgNik7DQo+ICsJY3JjX25ldyA9IHNldF91 MTZfYml0KGNyY19uZXcsIDcsIHZhbCk7DQo+ICsNCj4gKwkvKiBiWzZdICovDQo+ICsJdmFsID0g Z2V0X3UxNl9iaXQoYiwgNCkgXiBnZXRfdTE2X2JpdChiLCA1KSBeDQo+ICsJICAgICAgZ2V0X3Ux Nl9iaXQoZCwgNCkgXiBnZXRfdTE2X2JpdChkLCA1KTsNCj4gKwljcmNfbmV3ID0gc2V0X3UxNl9i aXQoY3JjX25ldywgNiwgdmFsKTsNCj4gKw0KPiArCS8qIGJbNV0gKi8NCj4gKwl2YWwgPSBnZXRf dTE2X2JpdChiLCAzKSBeIGdldF91MTZfYml0KGIsIDQpIF4NCj4gKwkgICAgICBnZXRfdTE2X2Jp dChkLCAzKSBeIGdldF91MTZfYml0KGQsIDQpOw0KPiArCWNyY19uZXcgPSBzZXRfdTE2X2JpdChj cmNfbmV3LCA1LCB2YWwpOw0KPiArDQo+ICsJLyogYls0XSAqLw0KPiArCXZhbCA9IGdldF91MTZf Yml0KGIsIDIpIF4gZ2V0X3UxNl9iaXQoYiwgMykgXg0KPiArCSAgICAgIGdldF91MTZfYml0KGQs IDIpIF4gZ2V0X3UxNl9iaXQoZCwgMyk7DQo+ICsJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19u ZXcsIDQsIHZhbCk7DQo+ICsNCj4gKwkvKiBiWzNdICovDQo+ICsJdmFsID0gZ2V0X3UxNl9iaXQo YiwgMSkgXiBnZXRfdTE2X2JpdChiLCAyKSBeIGdldF91MTZfYml0KGIsIDE1KSBeDQo+ICsJICAg ICAgZ2V0X3UxNl9iaXQoZCwgMSkgXiBnZXRfdTE2X2JpdChkLCAyKSBeIGdldF91MTZfYml0KGQs IDE1KTsNCj4gKwljcmNfbmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgMywgdmFsKTsNCj4gKw0K PiArCS8qIGJbMl0gKi8NCj4gKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAwKSBeIGdldF91MTZfYml0 KGIsIDEpIF4gZ2V0X3UxNl9iaXQoYiwgMTQpIF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChkLCAw KSBeIGdldF91MTZfYml0KGQsIDEpIF4gZ2V0X3UxNl9iaXQoZCwgMTQpOw0KPiArCWNyY19uZXcg PSBzZXRfdTE2X2JpdChjcmNfbmV3LCAyLCB2YWwpOw0KPiArDQo+ICsJLyogYlsxXSAqLw0KPiAr CXZhbCA9IGdldF91MTZfYml0KGIsIDEpIF4gZ2V0X3UxNl9iaXQoYiwgMikgXiBnZXRfdTE2X2Jp dChiLCAzKSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoYiwgNCkgXiBnZXRfdTE2X2JpdChiLCA1 KSBeIGdldF91MTZfYml0KGIsIDYpIF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChiLCA3KSBeIGdl dF91MTZfYml0KGIsIDgpIF4gZ2V0X3UxNl9iaXQoYiwgOSkgXg0KPiArCSAgICAgIGdldF91MTZf Yml0KGIsIDEwKSBeIGdldF91MTZfYml0KGIsIDExKSBeIGdldF91MTZfYml0KGIsIDEyKSBeDQo+ ICsJICAgICAgZ2V0X3UxNl9iaXQoYiwgMTMpIF4gZ2V0X3UxNl9iaXQoYiwgMTQpIF4NCj4gKwkg ICAgICBnZXRfdTE2X2JpdChkLCAxKSBeIGdldF91MTZfYml0KGQsIDIpIF4gZ2V0X3UxNl9iaXQo ZCwgMykgXg0KPiArCSAgICAgIGdldF91MTZfYml0KGQsIDQpIF4gZ2V0X3UxNl9iaXQoZCwgNSkg XiBnZXRfdTE2X2JpdChkLCA2KSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgNykgXiBnZXRf dTE2X2JpdChkLCA4KSBeIGdldF91MTZfYml0KGQsIDkpIF4NCj4gKwkgICAgICBnZXRfdTE2X2Jp dChkLCAxMCkgXiBnZXRfdTE2X2JpdChkLCAxMSkgXiBnZXRfdTE2X2JpdChkLCAxMikgXg0KPiAr CSAgICAgIGdldF91MTZfYml0KGQsIDEzKSBeIGdldF91MTZfYml0KGQsIDE0KTsNCj4gKwljcmNf bmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgMSwgdmFsKTsNCj4gKw0KPiArCS8qIGJbMF0gKi8N Cj4gKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAwKSBeIGdldF91MTZfYml0KGIsIDEpIF4gZ2V0X3Ux Nl9iaXQoYiwgMikgXg0KPiArCSAgICAgIGdldF91MTZfYml0KGIsIDMpIF4gZ2V0X3UxNl9iaXQo YiwgNCkgXiBnZXRfdTE2X2JpdChiLCA1KSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoYiwgNikg XiBnZXRfdTE2X2JpdChiLCA3KSBeIGdldF91MTZfYml0KGIsIDgpIF4NCj4gKwkgICAgICBnZXRf dTE2X2JpdChiLCA5KSBeIGdldF91MTZfYml0KGIsIDEwKSBeIGdldF91MTZfYml0KGIsIDExKSBe DQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoYiwgMTIpIF4gZ2V0X3UxNl9iaXQoYiwgMTMpIF4gZ2V0 X3UxNl9iaXQoYiwgMTUpIF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChkLCAwKSBeIGdldF91MTZf Yml0KGQsIDEpIF4gZ2V0X3UxNl9iaXQoZCwgMikgXg0KPiArCSAgICAgIGdldF91MTZfYml0KGQs IDMpIF4gZ2V0X3UxNl9iaXQoZCwgNCkgXiBnZXRfdTE2X2JpdChkLCA1KSBeDQo+ICsJICAgICAg Z2V0X3UxNl9iaXQoZCwgNikgXiBnZXRfdTE2X2JpdChkLCA3KSBeIGdldF91MTZfYml0KGQsIDgp IF4NCj4gKwkgICAgICBnZXRfdTE2X2JpdChkLCA5KSBeIGdldF91MTZfYml0KGQsIDEwKSBeIGdl dF91MTZfYml0KGQsIDExKSBeDQo+ICsJICAgICAgZ2V0X3UxNl9iaXQoZCwgMTIpIF4gZ2V0X3Ux Nl9iaXQoZCwgMTMpIF4gZ2V0X3UxNl9iaXQoZCwgMTUpOw0KPiArCWNyY19uZXcgPSBzZXRfdTE2 X2JpdChjcmNfbmV3LCAwLCB2YWwpOw0KPiArDQo+ICsJcmV0dXJuIGNyY19uZXc7DQo+ICt9DQoN ClRoaXMgaXMgcXVpdGUgdmVyYm9zZSwgYnV0IG1hdGNoaW5nIHRoZSBzcGVjIGlzIGJldHRlciB0 aGFuIHRyeWluZyB0byBiZSANCm92ZXJseSBhZ2dyZXNzaXZlIHdpdGggb3B0aW1pemF0aW9uLiBJ J20gZmluZSB3aXRoIHRoaXMuDQoNCj4gKw0KPiArLyoqDQo+ICsgKiBpZ3RfZmJfY2FsY19jcmM6 DQo+ICsgKiBAZmI6IHBvaW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUNCj4gKyAqIEBjcmM6 IHBvaW50ZXIgdG8gYW4gI2lndF9jcmNfdCBzdHJ1Y3R1cmUNCj4gKyAqDQo+ICsgKiBUaGlzIGZ1 bmN0aW9uIGNhbGN1bGF0ZSB0aGUgMTYtYml0IGZyYW1lIENSQyBvZiBSR0IgY29tcG9uZW50cyBv dmVyIGFsbA0KPiArICogdGhlIGFjdGl2ZSBwaXhlbHMuDQo+ICsgKi8NCj4gK3ZvaWQgaWd0X2Zi X2NhbGNfY3JjKHN0cnVjdCBpZ3RfZmIgKmZiLCBpZ3RfY3JjX3QgKmNyYykNCj4gK3sNCj4gKwlp bnQgeCwgeSwgaTsNCj4gKwl2b2lkICpwdHI7DQo+ICsJdWludDhfdCAqZGF0YTsNCj4gKwl1aW50 MTZfdCBkaW47DQo+ICsNCj4gKwlpZ3RfYXNzZXJ0KGZiICYmIGNyYyk7DQo+ICsNCj4gKwlwdHIg PSBpZ3RfZmJfbWFwX2J1ZmZlcihmYi0+ZmQsIGZiKTsNCj4gKwlpZ3RfYXNzZXJ0KHB0cik7DQo+ ICsNCj4gKwkvKiBzZXQgZm9yIGxhdGVyIENSQyBjb21wYXJpc29uICovDQo+ICsJY3JjLT5oYXNf dmFsaWRfZnJhbWUgPSB0cnVlOw0KPiArCWNyYy0+ZnJhbWUgPSAwOw0KPiArCWNyYy0+bl93b3Jk cyA9IDM7DQo+ICsJY3JjLT5jcmNbMF0gPSBDUkNfSU5JVF8xNjsJLyogUiAqLw0KPiArCWNyYy0+ Y3JjWzFdID0gQ1JDX0lOSVRfMTY7CS8qIEcgKi8NCj4gKwljcmMtPmNyY1syXSA9IENSQ19JTklU XzE2OwkvKiBCICovDQo+ICsNCj4gKwlkYXRhID0gcHRyICsgZmItPm9mZnNldHNbMF07DQo+ICsJ Zm9yICh5ID0gMDsgeSA8IGZiLT5oZWlnaHQ7ICsreSkgew0KPiArCQlmb3IgKHggPSAwOyB4IDwg ZmItPndpZHRoOyArK3gpIHsNCj4gKwkJCXN3aXRjaCAoZmItPmRybV9mb3JtYXQpIHsNCj4gKwkJ CWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoNCj4gKwkJCQlpID0geCAqIDQgKyB5ICogZmItPnN0 cmlkZXNbMF07DQo+ICsNCj4gKwkJCQlkaW4gPSBkYXRhW2kgKyAyXSA8PCA4OyAvKiBwYWRkaW5n LXplcm9zICovDQo+ICsJCQkJY3JjLT5jcmNbMF0gPSB1cGRhdGVfY3JjMTZfZHAoY3JjLT5jcmNb MF0sIGRpbik7DQo+ICsNCj4gKwkJCQkvKiBHcmVlbi1jb21wb25lbnQgKi8NCj4gKwkJCQlkaW4g PSBkYXRhW2kgKyAxXSA8PCA4Ow0KPiArCQkJCWNyYy0+Y3JjWzFdID0gdXBkYXRlX2NyYzE2X2Rw KGNyYy0+Y3JjWzFdLCBkaW4pOw0KPiArDQo+ICsJCQkJLyogQmx1ZS1jb21wb25lbnQgKi8NCj4g KwkJCQlkaW4gPSBkYXRhW2ldIDw8IDg7DQo+ICsJCQkJY3JjLT5jcmNbMl0gPSB1cGRhdGVfY3Jj MTZfZHAoY3JjLT5jcmNbMl0sIGRpbik7DQo+ICsJCQkJYnJlYWs7DQo+ICsJCQlkZWZhdWx0Og0K PiArCQkJCWlndF9hc3NlcnRfZigwLCAiRFJNIEZvcm1hdCBJbnZhbGlkIik7DQo+ICsJCQkJYnJl YWs7DQo+ICsJCQl9DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwlpZ3RfZmJfdW5tYXBfYnVmZmVy KGZiLCBwdHIpOw0KPiArfQ0KPiArDQo+ICAgLyoqDQo+ICAgICogaWd0X3BhaW50X2NvbG9yOg0K PiAgICAqIEBjcjogY2Fpcm8gZHJhd2luZyBjb250ZXh0DQo+IGRpZmYgLS1naXQgYS9saWIvaWd0 X2ZiLmggYi9saWIvaWd0X2ZiLmgNCj4gaW5kZXggYWRlZmViZTEuLmJlNzg2OTExIDEwMDY0NA0K PiAtLS0gYS9saWIvaWd0X2ZiLmgNCj4gKysrIGIvbGliL2lndF9mYi5oDQo+IEBAIC0zNyw2ICsz Nyw3IEBADQo+ICAgI2luY2x1ZGUgPGk5MTVfZHJtLmg+DQo+ICAgDQo+ICAgI2luY2x1ZGUgImln dF9jb2xvcl9lbmNvZGluZy5oIg0KPiArI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiDQoNClRoaXMg aW5jbHVkZSByZWFsbHkgb25seSBuZWVkcyB0byBiZSB3aXRoaW4gaWd0X2ZiLmMgaXRzZWxmIGFz IGxvbmcgYXMgDQp5b3UgZm9yd2FyZCBkZWNsYXJlIGlndF9jcmNfdCwgYnV0IHlvdSdkIG5lZWQg aWd0X2RlYnVnZnMuaCB0byByZWFsbHkgDQp1c2UgdGhlIGlndF9jcmNfdCBhbnl3YXkuDQoNCkkg Z3Vlc3MgaXQncyBmaW5lIHRvIGhhdmUgdG8gaXQgaGVyZS4NCg0KPiAgIA0KPiAgIC8qDQo+ICAg ICogSW50ZXJuYWwgZm9ybWF0IHRvIGRlbm90ZSBhIGJ1ZmZlciBjb21wYXRpYmxlIHdpdGggcGl4 bWFuJ3MNCj4gQEAgLTE1OCw2ICsxNTksNyBAQCBpbnQgaWd0X2NyZWF0ZV9ib193aXRoX2RpbWVu c2lvbnMoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdA0KPiAg IAkJCQkgIHVpbnQ2NF90IG1vZGlmaWVyLCB1bnNpZ25lZCBzdHJpZGUsDQo+ICAgCQkJCSAgdWlu dDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRlX3JldCwNCj4gICAJCQkJICBib29sICpp c19kdW1iKTsNCj4gK3ZvaWQgaWd0X2ZiX2NhbGNfY3JjKHN0cnVjdCBpZ3RfZmIgKmZiLCBpZ3Rf Y3JjX3QgKmNyYyk7DQo+ICAgDQo+ICAgdWludDY0X3QgaWd0X2ZiX21vZF90b190aWxpbmcodWlu dDY0X3QgbW9kaWZpZXIpOw0KPiAgIHVpbnQ2NF90IGlndF9mYl90aWxpbmdfdG9fbW9kKHVpbnQ2 NF90IHRpbGluZyk7DQo+IA0KDQpXaXRoIHRoZSBmaXhlcyBJJ3ZlIG1lbnRpb25lZCwgdGhpcyBj aGFuZ2UgaXM6DQoNClJldmlld2VkLWJ5OiBOaWNob2xhcyBLYXpsYXVza2FzIDxuaWNob2xhcy5r YXpsYXVza2FzQGFtZC5jb20+DQoNCk5pY2hvbGFzIEthemxhdXNrYXMNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==