From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730045.outbound.protection.outlook.com [40.107.73.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 076A488ED6 for ; Tue, 9 Apr 2019 14:19:24 +0000 (UTC) From: "Li, Sun peng (Leo)" Date: Tue, 9 Apr 2019 14:19:22 +0000 Message-ID: <6b4be9cf-e773-7739-6cf5-ef1067355e2a@amd.com> References: <20190403131814.3923-1-nicholas.kazlauskas@amd.com> In-Reply-To: <20190403131814.3923-1-nicholas.kazlauskas@amd.com> Content-Language: en-US Content-ID: <0AAC6F8B52C0A64F9CAA6505AAC4F986@namprd12.prod.outlook.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] tests: Add kms_plane_cursor tests 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: "Kazlauskas, Nicholas" , "igt-dev@lists.freedesktop.org" List-ID: DQoNCk9uIDIwMTktMDQtMDMgOToxOCBhLm0uLCBOaWNob2xhcyBLYXpsYXVza2FzIHdyb3RlOg0K PiBUZXN0cyB2YXJpb3VzIGN1cnNvciBwbGFuZSBpbnRlcmFjdGlvbnMgd2l0aCBwcmltYXJ5IGFu ZCBvdmVybGF5IHBsYW5lcy4NCj4gDQo+IENvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IGNvbXBh cmluZyBDUkMgdmFsdWVzIHRvIHJlZmVyZW5jZSBidWZmZXJzDQo+IGRyYXduIG9uIHRoZSBwcmlt YXJ5IHBsYW5lLg0KPiANCj4gVGhlcmUgYXJlIGV4aXN0aW5nIGdlbmVyaWMgbXVsdGktcGxhbmUg aW50ZXJhY3Rpb24gdGVzdHMgYnV0IHRoZXNlDQo+IGRvbid0IHRlc3QgcG9zaXRpb25hbCBvdXRw dXQgb24gb3ZlcmxhcHBpbmcgcGxhbmVzIG9yIGV4dGVuc2l2ZWx5DQo+IGNvdmVyIGVkZ2UgYW5k IGNvcm5lciBjYXNlcyBmb3Igb2Zmc2V0aW5nIGFuZCBwb3NpdGlvbmluZyBwbGFuZXMgYmFzZWQN Cj4gb24gRFJNIHBhcmFtZXRlcnMuDQo+IA0KPiBPbiBoYXJkd2FyZSB3aXRob3V0IGRlZGljYXRl ZCBjdXJzb3IgcGxhbmVzIChzdWNoIGFzIEFNREdQVSkgdGhlc2UgdGVzdHMNCj4gYXJlIGhlbHBm dWwgZm9yIHZlcmlmeWluZyBzb2Z0d2FyZSBjYWxjdWxhdGlvbnMgZG9uZSBmb3IgcG9zaXRpb25p bmcgdGhlDQo+IGN1cnNvciBwbGFuZS4NCj4gDQo+IENjOiBMZW8gTGkgPHN1bnBlbmcubGlAYW1k LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IExlbyBMaSA8c3VucGVuZy5saUBhbWQuY29tPg0KDQpUaGFu a3MhDQpMZW8NCg0KPiBDYzogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ DQo+IFNpZ25lZC1vZmYtYnk6IE5pY2hvbGFzIEthemxhdXNrYXMgPG5pY2hvbGFzLmthemxhdXNr YXNAYW1kLmNvbT4NCj4gLS0tDQo+ICAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgIHwgICAxICsN Cj4gICB0ZXN0cy9rbXNfcGxhbmVfY3Vyc29yLmMgfCAzNDEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ICAgdGVzdHMvbWVzb24uYnVpbGQgICAgICAgIHwgICAxICsN Cj4gICAzIGZpbGVzIGNoYW5nZWQsIDM0MyBpbnNlcnRpb25zKCspDQo+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IHRlc3RzL2ttc19wbGFuZV9jdXJzb3IuYw0KPiANCj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+IGluZGV4IDg2YWQz MDFlLi43ODM0YTU2MSAxMDA2NDQNCj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcw0KPiAr KysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+IEBAIC01Niw2ICs1Niw3IEBAIFRFU1RTX3By b2dzID0gXA0KPiAgIAlrbXNfcGlwZV9jcmNfYmFzaWMgXA0KPiAgIAlrbXNfcGxhbmUgXA0KPiAg IAlrbXNfcGxhbmVfYWxwaGFfYmxlbmQgXA0KPiArCWttc19wbGFuZV9jdXJzb3IgXA0KPiAgIAlr bXNfcGxhbmVfbG93cmVzIFwNCj4gICAJa21zX3BsYW5lX211bHRpcGxlIFwNCj4gICAJa21zX3Bs YW5lX3NjYWxpbmcgXA0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3BsYW5lX2N1cnNvci5jIGIv dGVzdHMva21zX3BsYW5lX2N1cnNvci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4 IDAwMDAwMDAwLi5jYmFkMDA0MQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3Rlc3RzL2ttc19w bGFuZV9jdXJzb3IuYw0KPiBAQCAtMCwwICsxLDM0MSBAQA0KPiArLyoNCj4gKyAqIENvcHlyaWdo dCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4gKyAqDQo+ICsgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQ0KPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwNCj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24N Cj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLA0KPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlDQo+ICsgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOg0KPiArICoNCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluDQo+ICsgKiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4NCj4gKyAqDQo+ICsgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUg0KPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQo+ICsgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwNCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUg0KPiArICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsDQo+ICsgKiBBUklT SU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1INCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gKyAqLw0K PiArDQo+ICsjaW5jbHVkZSAiaWd0LmgiDQo+ICsNCj4gKy8qDQo+ICsgKiBUaGlzIGZpbGUgdGVz dHMgY3Vyc29yIGludGVyYWN0aW9ucyB3aXRoIHByaW1hcnkgYW5kIG92ZXJsYXkgcGxhbmVzLg0K PiArICoNCj4gKyAqIFNvbWUgYXNzdW1wdGlvbnMgbWFkZToNCj4gKyAqIC0gQ3Vyc29yIHBsYW5l cyBjYW4gYmUgcGxhY2VkIG9uIHRvcCBvZiBvdmVybGF5IHBsYW5lcw0KPiArICogLSBEUk0gaW5k ZXggaW5kaWNhdGVzIHotb3JkZXJpbmcsIGhpZ2hlciBpbmRleCA9IGhpZ2hlciB6LW9yZGVyDQo+ ICsgKi8NCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArCWludCB4Ow0KPiArCWludCB5Ow0K PiArfSBwb3NfdDsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArCWludCB4Ow0KPiArCWlu dCB5Ow0KPiArCWludCB3Ow0KPiArCWludCBoOw0KPiArfSByZWN0X3Q7DQo+ICsNCj4gKy8qIENv bW1vbiB0ZXN0IGRhdGEuICovDQo+ICt0eXBlZGVmIHN0cnVjdCBkYXRhIHsNCj4gKwlpZ3RfZGlz cGxheV90IGRpc3BsYXk7DQo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7DQo+ICsJaWd0X3BsYW5l X3QgKm92ZXJsYXk7DQo+ICsJaWd0X3BsYW5lX3QgKmN1cnNvcjsNCj4gKwlpZ3Rfb3V0cHV0X3Qg Km91dHB1dDsNCj4gKwlpZ3RfcGlwZV90ICpwaXBlOw0KPiArCWlndF9waXBlX2NyY190ICpwaXBl X2NyYzsNCj4gKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7DQo+ICsJZW51bSBwaXBlIHBpcGVfaWQ7 DQo+ICsJaW50IGRybV9mZDsNCj4gKwlyZWN0X3Qgb3I7DQo+ICt9IGRhdGFfdDsNCj4gKw0KPiAr LyogQ29tbW9uIHRlc3Qgc2V0dXAuICovDQo+ICtzdGF0aWMgdm9pZCB0ZXN0X2luaXQoZGF0YV90 ICpkYXRhLCBlbnVtIHBpcGUgcGlwZV9pZCkNCj4gK3sNCj4gKwlpZ3RfZGlzcGxheV90ICpkaXNw bGF5ID0gJmRhdGEtPmRpc3BsYXk7DQo+ICsNCj4gKwlkYXRhLT5waXBlX2lkID0gcGlwZV9pZDsN Cj4gKwlkYXRhLT5waXBlID0gJmRhdGEtPmRpc3BsYXkucGlwZXNbZGF0YS0+cGlwZV9pZF07DQo+ ICsNCj4gKwlpZ3RfZGlzcGxheV9yZXNldChkaXNwbGF5KTsNCj4gKw0KPiArCWRhdGEtPm91dHB1 dCA9IGlndF9nZXRfc2luZ2xlX291dHB1dF9mb3JfcGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZV9p ZCk7DQo+ICsJaWd0X3JlcXVpcmUoZGF0YS0+b3V0cHV0KTsNCj4gKw0KPiArCWRhdGEtPm1vZGUg PSBpZ3Rfb3V0cHV0X2dldF9tb2RlKGRhdGEtPm91dHB1dCk7DQo+ICsNCj4gKwlkYXRhLT5wcmlt YXJ5ID0gaWd0X3BpcGVfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+cGlwZSwgRFJNX1BMQU5FX1RZUEVf UFJJTUFSWSk7DQo+ICsJZGF0YS0+b3ZlcmxheSA9IGlndF9waXBlX2dldF9wbGFuZV90eXBlKGRh dGEtPnBpcGUsIERSTV9QTEFORV9UWVBFX09WRVJMQVkpOw0KPiArCWRhdGEtPmN1cnNvciA9IGln dF9waXBlX2dldF9wbGFuZV90eXBlKGRhdGEtPnBpcGUsIERSTV9QTEFORV9UWVBFX0NVUlNPUik7 DQo+ICsNCj4gKwlkYXRhLT5waXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoZGF0YS0+ZHJtX2Zk LCBkYXRhLT5waXBlX2lkLA0KPiArCQkJCQkgIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsN Cj4gKw0KPiArCWlndF9vdXRwdXRfc2V0X3BpcGUoZGF0YS0+b3V0cHV0LCBkYXRhLT5waXBlX2lk KTsNCj4gKw0KPiArCS8qIE92ZXJsYXkgcmVjdGFuZ2xlIGZvciBhIHJlY3QgaW4gdGhlIGNlbnRl ciBvZiB0aGUgc2NyZWVuICovDQo+ICsJZGF0YS0+b3IueCA9IGRhdGEtPm1vZGUtPmhkaXNwbGF5 IC8gNDsNCj4gKwlkYXRhLT5vci55ID0gZGF0YS0+bW9kZS0+dmRpc3BsYXkgLyA0Ow0KPiArCWRh dGEtPm9yLncgPSBkYXRhLT5tb2RlLT5oZGlzcGxheSAvIDI7DQo+ICsJZGF0YS0+b3IuaCA9IGRh dGEtPm1vZGUtPnZkaXNwbGF5IC8gMjsNCj4gK30NCj4gKw0KPiArLyogQ29tbW9uIHRlc3QgY2xl YW51cC4gKi8NCj4gK3N0YXRpYyB2b2lkIHRlc3RfZmluaShkYXRhX3QgKmRhdGEpDQo+ICt7DQo+ ICsJaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOw0KPiArCWlndF9kaXNwbGF5X3Jl c2V0KCZkYXRhLT5kaXNwbGF5KTsNCj4gK30NCj4gKw0KPiArLyogRmlsbHMgYSBGQiB3aXRoIHRo ZSBzb2xpZCBjb2xvciBnaXZlbi4gKi8NCj4gK3N0YXRpYyB2b2lkIGRyYXdfY29sb3IoaWd0X2Zi X3QgKmZiLCBkb3VibGUgciwgZG91YmxlIGcsIGRvdWJsZSBiKQ0KPiArew0KPiArCWNhaXJvX3Qg KmNyID0gaWd0X2dldF9jYWlyb19jdHgoZmItPmZkLCBmYik7DQo+ICsNCj4gKwljYWlyb19zZXRf b3BlcmF0b3IoY3IsIENBSVJPX09QRVJBVE9SX1NPVVJDRSk7DQo+ICsJaWd0X3BhaW50X2NvbG9y KGNyLCAwLCAwLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIHIsIGcsIGIpOw0KPiArCWlndF9wdXRf Y2Fpcm9fY3R4KGZiLT5mZCwgZmIsIGNyKTsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyAqIERyYXdz IHdoaXRlIGFuZCBncmF5IChpZiBvdmVybGF5IEZCIGlzIGdpdmVuKSBvbiB0aGUgcHJpbWFyeSBG Qi4NCj4gKyAqIERyYXdzIGEgbWFnZW50YSBzcXVhcmUgd2hlcmUgdGhlIGN1cnNvciBzaG91bGQg YmUgb3ZlciB0b3AgYm90aCBwbGFuZXMuDQo+ICsgKiBUYWtlcyB0aGlzIGFzIHRoZSByZWZlcmVu Y2UgQ1JDLg0KPiArICoNCj4gKyAqIERyYXdzIHdoaXRlIG9uIHRoZSBwcmltYXJ5IEZCIGFuZCBn cmF5IG9uIHRoZSBvdmVybGF5IEZCIGlmIGdpdmVuLg0KPiArICogUGxhY2VzIHRoZSBjdXJzb3Ig d2hlcmUgdGhlIG1hZ2VudGEgc3F1YXJlIHNob3VsZCBiZSB3aXRoIGEgbWFnZW50YSBGQi4NCj4g KyAqIFRha2VzIHRoaXMgYXMgdGhlIHRlc3QgQ1JDIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgcmVm ZXJlbmNlLg0KPiArICovDQo+ICtzdGF0aWMgdm9pZCB0ZXN0X2N1cnNvcl9wb3MoZGF0YV90ICpk YXRhLCBpZ3RfZmJfdCAqcGZiLCBpZ3RfZmJfdCAqb2ZiLA0KPiArCQkJICAgIGlndF9mYl90ICpj ZmIsIGNvbnN0IHJlY3RfdCAqb3IsIGludCB4LCBpbnQgeSkNCj4gK3sNCj4gKwlpZ3RfY3JjX3Qg cmVmX2NyYywgdGVzdF9jcmM7DQo+ICsJY2Fpcm9fdCAqY3I7DQo+ICsJaW50IGN3ID0gY2ZiLT53 aWR0aDsNCj4gKwlpbnQgY2ggPSBjZmItPmhlaWdodDsNCj4gKw0KPiArCWNyID0gaWd0X2dldF9j YWlyb19jdHgocGZiLT5mZCwgcGZiKTsNCj4gKwlpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsIHBm Yi0+d2lkdGgsIHBmYi0+aGVpZ2h0LCAxLjAsIDEuMCwgMS4wKTsNCj4gKw0KPiArCWlmIChvZmIp DQo+ICsJCWlndF9wYWludF9jb2xvcihjciwgb3ItPngsIG9yLT55LCBvci0+dywgb3ItPmgsIDAu NSwgMC41LCAwLjUpOw0KPiArDQo+ICsJaWd0X3BhaW50X2NvbG9yKGNyLCB4LCB5LCBjdywgY2gs IDEuMCwgMC4wLCAxLjApOw0KPiArCWlndF9wdXRfY2Fpcm9fY3R4KHBmYi0+ZmQsIHBmYiwgY3Ip Ow0KPiArDQo+ICsJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5vdmVybGF5LCBOVUxMKTsNCj4gKwlp Z3RfcGxhbmVfc2V0X2ZiKGRhdGEtPmN1cnNvciwgTlVMTCk7DQo+ICsJaWd0X2Rpc3BsYXlfY29t bWl0X2F0b21pYygmZGF0YS0+ZGlzcGxheSwgMCwgTlVMTCk7DQo+ICsNCj4gKwlpZ3RfcGlwZV9j cmNfc3RhcnQoZGF0YS0+cGlwZV9jcmMpOw0KPiArCWlndF9waXBlX2NyY19nZXRfY3VycmVudChk YXRhLT5kcm1fZmQsIGRhdGEtPnBpcGVfY3JjLCAmcmVmX2NyYyk7DQo+ICsNCj4gKwlkcmF3X2Nv bG9yKHBmYiwgMS4wLCAxLjAsIDEuMCk7DQo+ICsNCj4gKwlpZiAob2ZiKSB7DQo+ICsJCWlndF9w bGFuZV9zZXRfZmIoZGF0YS0+b3ZlcmxheSwgb2ZiKTsNCj4gKwkJaWd0X3BsYW5lX3NldF9wb3Np dGlvbihkYXRhLT5vdmVybGF5LCBvci0+eCwgb3ItPnkpOw0KPiArCQlpZ3RfcGxhbmVfc2V0X3Np emUoZGF0YS0+b3ZlcmxheSwgb3ItPncsIG9yLT5oKTsNCj4gKwkJaWd0X2ZiX3NldF9zaXplKG9m YiwgZGF0YS0+b3ZlcmxheSwgb3ItPncsIG9yLT5oKTsNCj4gKwkJaWd0X2ZiX3NldF9wb3NpdGlv bihvZmIsIGRhdGEtPm92ZXJsYXksDQo+ICsJCQkJICAgIChvZmItPndpZHRoIC0gb3ItPncpIC8g MiwNCj4gKwkJCQkgICAgKG9mYi0+aGVpZ2h0IC0gb3ItPmgpIC8gMik7DQo+ICsJfQ0KPiArDQo+ ICsJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5jdXJzb3IsIGNmYik7DQo+ICsJaWd0X3BsYW5lX3Nl dF9wb3NpdGlvbihkYXRhLT5jdXJzb3IsIHgsIHkpOw0KPiArCWlndF9kaXNwbGF5X2NvbW1pdF9h dG9taWMoJmRhdGEtPmRpc3BsYXksIDAsIE5VTEwpOw0KPiArDQo+ICsJaWd0X3BpcGVfY3JjX2dl dF9jdXJyZW50KGRhdGEtPmRybV9mZCwgZGF0YS0+cGlwZV9jcmMsICZ0ZXN0X2NyYyk7DQo+ICsJ aWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+cGlwZV9jcmMpOw0KPiArDQo+ICsJaWd0X2Fzc2VydF9j cmNfZXF1YWwoJnJlZl9jcmMsICZ0ZXN0X2NyYyk7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBU ZXN0cyB0aGUgY3Vyc29yIG9uIGEgdmFyaWV0eSBvZiBwb3NpdGlvbnMgb24gdGhlIHNjcmVlbi4N Cj4gKyAqIFNwZWNpZmljIGVkZ2UgY2FzZXMgdGhhdCBzaG91bGQgYmUgY2FwdHVyZWQgaGVyZSBh cmUgdGhlIG5lZ2F0aXZlIGVkZ2VzDQo+ICsgKiBvZiBlYWNoIHBsYW5lIGFuZCB0aGUgY2VudGVy cy4NCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgdGVzdF9jdXJzb3Jfc3BvdHMoZGF0YV90ICpkYXRh LCBpZ3RfZmJfdCAqcGZiLCBpZ3RfZmJfdCAqb2ZiLA0KPiArCQkJICAgICAgaWd0X2ZiX3QgKmNm YiwgY29uc3QgcmVjdF90ICpvciwgaW50IHNpemUpDQo+ICt7DQo+ICsJaW50IHN3ID0gZGF0YS0+ bW9kZS0+aGRpc3BsYXk7DQo+ICsJaW50IHNoID0gZGF0YS0+bW9kZS0+dmRpc3BsYXk7DQo+ICsJ aW50IGk7DQo+ICsJY29uc3QgcG9zX3QgcG9zW10gPSB7DQo+ICsJCS8qIFRlc3QgZGlhZ29uYWxs eSBmcm9tIHRvcCBsZWZ0IHRvIGJvdHRvbSByaWdodC4gKi8NCj4gKwkJeyAtc2l6ZSAvIDMsIC1z aXplIC8gMyB9LA0KPiArCQl7IDAsIDAgfSwNCj4gKwkJeyBvci0+eCAtIHNpemUsIG9yLT55IC0g c2l6ZSB9LA0KPiArCQl7IG9yLT54IC0gc2l6ZSAvIDMsIG9yLT55IC0gc2l6ZSAvIDMgfSwNCj4g KwkJeyBvci0+eCwgb3ItPnkgfSwNCj4gKwkJeyBvci0+eCArIHNpemUsIG9yLT55ICsgc2l6ZSB9 LA0KPiArCQl7IHN3IC8gMiwgc2ggLyAyIH0sDQo+ICsJCXsgb3ItPnggKyBvci0+dyAtIHNpemUs IG9yLT55ICsgb3ItPmggLSBzaXplIH0sDQo+ICsJCXsgb3ItPnggKyBvci0+dyAtIHNpemUgLyAz LCBvci0+eSArIG9yLT5oIC0gc2l6ZSAvIDMgfSwNCj4gKwkJeyBvci0+eCArIG9yLT53ICsgc2l6 ZSwgb3ItPnkgKyBvci0+aCArIHNpemUgfSwNCj4gKwkJeyBzdyAtIHNpemUsIHNoIC0gc2l6ZSB9 LA0KPiArCQl7IHN3IC0gc2l6ZSAvIDMsIHNoIC0gc2l6ZSAvIDMgfSwNCj4gKwkJLyogVGVzdCBy ZW1haW5pbmcgY29ybmVycy4gKi8NCj4gKwkJeyBzdyAtIHNpemUsIDAgfSwNCj4gKwkJeyAwLCBz aCAtIHNpemUgfSwNCj4gKwkJeyBvci0+eCArIG9yLT53IC0gc2l6ZSwgb3ItPnkgfSwNCj4gKwkJ eyBvci0+eCwgb3ItPnkgKyBvci0+aCAtIHNpemUgfQ0KPiArCX07DQo+ICsNCj4gKwlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShwb3MpOyArK2kpIHsNCj4gKwkJdGVzdF9jdXJzb3JfcG9zKGRh dGEsIHBmYiwgb2ZiLCBjZmIsIG9yLCBwb3NbaV0ueCwgcG9zW2ldLnkpOw0KPiArCX0NCj4gK30N Cj4gKw0KPiArLyoNCj4gKyAqIFRlc3RzIGF0b21pYyBjdXJzb3IgcG9zaXRpb25pbmcgb24gYSBw cmltYXJ5IGFuZCBvdmVybGF5IHBsYW5lLg0KPiArICogQXNzdW1lcyB0aGUgY3Vyc29yIGNhbiBi ZSBwbGFjZWQgb24gdG9wIG9mIHRoZSBvdmVybGF5Lg0KPiArICovDQo+ICtzdGF0aWMgdm9pZCB0 ZXN0X2N1cnNvcl9vdmVybGF5KGRhdGFfdCAqZGF0YSwgaW50IHNpemUsIGVudW0gcGlwZSBwaXBl X2lkKQ0KPiArew0KPiArCWlndF9mYl90IHBmYiwgb2ZiLCBjZmI7DQo+ICsJaW50IHN3LCBzaDsN Cj4gKw0KPiArCXRlc3RfaW5pdChkYXRhLCBwaXBlX2lkKTsNCj4gKwlpZ3RfcmVxdWlyZShkYXRh LT5vdmVybGF5KTsNCj4gKw0KPiArCXN3ID0gZGF0YS0+bW9kZS0+aGRpc3BsYXk7DQo+ICsJc2gg PSBkYXRhLT5tb2RlLT52ZGlzcGxheTsNCj4gKw0KPiArCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0 YS0+ZHJtX2ZkLCBzdywgc2gsIERSTV9GT1JNQVRfWFJHQjg4ODgsIDAsDQo+ICsJCQkgICAgMS4w LCAxLjAsIDEuMCwgJnBmYik7DQo+ICsNCj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRy bV9mZCwgZGF0YS0+b3IudywgZGF0YS0+b3IuaCwNCj4gKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4 ODg4LCAwLCAwLjUsIDAuNSwgMC41LCAmb2ZiKTsNCj4gKw0KPiArCWlndF9jcmVhdGVfY29sb3Jf ZmIoZGF0YS0+ZHJtX2ZkLCBzaXplLCBzaXplLCBEUk1fRk9STUFUX0FSR0I4ODg4LCAwLA0KPiAr CQkJICAgIDEuMCwgMC4wLCAxLjAsICZjZmIpOw0KPiArDQo+ICsJaWd0X3BsYW5lX3NldF9mYihk YXRhLT5wcmltYXJ5LCAmcGZiKTsNCj4gKwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNw bGF5LCBDT01NSVRfQVRPTUlDKTsNCj4gKw0KPiArCXRlc3RfY3Vyc29yX3Nwb3RzKGRhdGEsICZw ZmIsICZvZmIsICZjZmIsICZkYXRhLT5vciwgc2l6ZSk7DQo+ICsNCj4gKwl0ZXN0X2ZpbmkoZGF0 YSk7DQo+ICsNCj4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmNmYik7DQo+ICsJaWd0 X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZvZmIpOw0KPiArCWlndF9yZW1vdmVfZmIoZGF0YS0+ ZHJtX2ZkLCAmcGZiKTsNCj4gK30NCj4gKw0KPiArLyogVGVzdHMgYXRvbWljIGN1cnNvciBwb3Np dGlvbmluZyBvbiBhIHByaW1hcnkgcGxhbmUuICovDQo+ICtzdGF0aWMgdm9pZCB0ZXN0X2N1cnNv cl9wcmltYXJ5KGRhdGFfdCAqZGF0YSwgaW50IHNpemUsIGVudW0gcGlwZSBwaXBlX2lkKQ0KPiAr ew0KPiArCWlndF9mYl90IHBmYiwgY2ZiOw0KPiArCWludCBzdywgc2g7DQo+ICsNCj4gKwl0ZXN0 X2luaXQoZGF0YSwgcGlwZV9pZCk7DQo+ICsNCj4gKwlzdyA9IGRhdGEtPm1vZGUtPmhkaXNwbGF5 Ow0KPiArCXNoID0gZGF0YS0+bW9kZS0+dmRpc3BsYXk7DQo+ICsNCj4gKwlpZ3RfY3JlYXRlX2Nv bG9yX2ZiKGRhdGEtPmRybV9mZCwgc3csIHNoLCBEUk1fRk9STUFUX1hSR0I4ODg4LCAwLA0KPiAr CQkJICAgIDEuMCwgMS4wLCAxLjAsICZwZmIpOw0KPiArDQo+ICsJaWd0X2NyZWF0ZV9jb2xvcl9m YihkYXRhLT5kcm1fZmQsIHNpemUsIHNpemUsIERSTV9GT1JNQVRfQVJHQjg4ODgsIDAsDQo+ICsJ CQkgICAgMS4wLCAwLjAsIDEuMCwgJmNmYik7DQo+ICsNCj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKGRh dGEtPnByaW1hcnksICZwZmIpOw0KPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3Bs YXksIENPTU1JVF9BVE9NSUMpOw0KPiArDQo+ICsJdGVzdF9jdXJzb3Jfc3BvdHMoZGF0YSwgJnBm YiwgTlVMTCwgJmNmYiwgJmRhdGEtPm9yLCBzaXplKTsNCj4gKw0KPiArCXRlc3RfZmluaShkYXRh KTsNCj4gKw0KPiArCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmY2ZiKTsNCj4gKwlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJnBmYik7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBU ZXN0cyBhdG9taWMgY3Vyc29yIHBvc2l0aW9uaW5nIG9uIGEgcHJpbWFyeSBhbmQgb3ZlcmxheSBw bGFuZS4NCj4gKyAqIFRoZSBvdmVybGF5J3MgYnVmZmVyIGlzIGxhcmdlciB0aGFuIHRoZSB2aWV3 cG9ydCBhY3R1YWxseSB1c2VkDQo+ICsgKiBmb3IgZGlzcGxheS4NCj4gKyAqLw0KPiArc3RhdGlj IHZvaWQgdGVzdF9jdXJzb3Jfdmlld3BvcnQoZGF0YV90ICpkYXRhLCBpbnQgc2l6ZSwgZW51bSBw aXBlIHBpcGVfaWQpDQo+ICt7DQo+ICsJaWd0X2ZiX3QgcGZiLCBvZmIsIGNmYjsNCj4gKwlpbnQg c3csIHNoOw0KPiArCWludCBwYWQgPSAxMjg7DQo+ICsNCj4gKwl0ZXN0X2luaXQoZGF0YSwgcGlw ZV9pZCk7DQo+ICsJaWd0X3JlcXVpcmUoZGF0YS0+b3ZlcmxheSk7DQo+ICsNCj4gKwlzdyA9IGRh dGEtPm1vZGUtPmhkaXNwbGF5Ow0KPiArCXNoID0gZGF0YS0+bW9kZS0+dmRpc3BsYXk7DQo+ICsN Cj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgc3csIHNoLCBEUk1fRk9STUFU X1hSR0I4ODg4LCAwLA0KPiArCQkJICAgIDEuMCwgMS4wLCAxLjAsICZwZmIpOw0KPiArDQo+ICsJ aWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsIGRhdGEtPm9yLncgKyBwYWQsIGRhdGEt Pm9yLmggKyBwYWQsDQo+ICsJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgMCwgMC41LCAwLjUs IDAuNSwgJm9mYik7DQo+ICsNCj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwg c2l6ZSwgc2l6ZSwgRFJNX0ZPUk1BVF9BUkdCODg4OCwgMCwNCj4gKwkJCSAgICAxLjAsIDAuMCwg MS4wLCAmY2ZiKTsNCj4gKw0KPiArCWlndF9wbGFuZV9zZXRfZmIoZGF0YS0+cHJpbWFyeSwgJnBm Yik7DQo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FUT01J Qyk7DQo+ICsNCj4gKwl0ZXN0X2N1cnNvcl9zcG90cyhkYXRhLCAmcGZiLCAmb2ZiLCAmY2ZiLCAm ZGF0YS0+b3IsIHNpemUpOw0KPiArDQo+ICsJdGVzdF9maW5pKGRhdGEpOw0KPiArDQo+ICsJaWd0 X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZjZmIpOw0KPiArCWlndF9yZW1vdmVfZmIoZGF0YS0+ ZHJtX2ZkLCAmb2ZiKTsNCj4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJnBmYik7DQo+ ICt9DQo+ICsNCj4gK2lndF9tYWluDQo+ICt7DQo+ICsJc3RhdGljIGNvbnN0IGludCBjdXJzb3Jf c2l6ZXNbXSA9IHsgNjQsIDEyOCwgMjU2IH07DQo+ICsJZGF0YV90IGRhdGEgPSB7IDAgfTsNCj4g KwllbnVtIHBpcGUgcGlwZTsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWlndF9za2lwX29uX3NpbXVs YXRpb24oKTsNCj4gKw0KPiArCWlndF9maXh0dXJlIHsNCj4gKwkJZGF0YS5kcm1fZmQgPSBkcm1f b3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOw0KPiArDQo+ICsJCWttc3Rlc3Rfc2V0X3Z0 X2dyYXBoaWNzX21vZGUoKTsNCj4gKw0KPiArCQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRp c3BsYXksIGRhdGEuZHJtX2ZkKTsNCj4gKwkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0 b21pYyk7DQo+ICsJCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KCZkYXRhLmRpc3BsYXkpOw0K PiArCX0NCj4gKw0KPiArCWZvcl9lYWNoX3BpcGVfc3RhdGljKHBpcGUpDQo+ICsJCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGN1cnNvcl9zaXplcyk7ICsraSkgew0KPiArCQkJaW50IHNpemUg PSBjdXJzb3Jfc2l6ZXNbaV07DQo+ICsNCj4gKwkJCWlndF9zdWJ0ZXN0X2YoInBpcGUtJXMtb3Zl cmxheS1zaXplLSVkIiwNCj4gKwkJCQkgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwgc2l6 ZSkNCj4gKwkJCQl0ZXN0X2N1cnNvcl9vdmVybGF5KCZkYXRhLCBzaXplLCBwaXBlKTsNCj4gKw0K PiArCQkJaWd0X3N1YnRlc3RfZigicGlwZS0lcy1wcmltYXJ5LXNpemUtJWQiLA0KPiArCQkJCSAg ICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLCBzaXplKQ0KPiArCQkJCXRlc3RfY3Vyc29yX3By aW1hcnkoJmRhdGEsIHNpemUsIHBpcGUpOw0KPiArDQo+ICsJCQlpZ3Rfc3VidGVzdF9mKCJwaXBl LSVzLXZpZXdwb3J0LXNpemUtJWQiLA0KPiArCQkJCSAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBp cGUpLCBzaXplKQ0KPiArCQkJCXRlc3RfY3Vyc29yX3ZpZXdwb3J0KCZkYXRhLCBzaXplLCBwaXBl KTsNCj4gKwkJfQ0KPiArDQo+ICsJaWd0X2ZpeHR1cmUgew0KPiArCQlpZ3RfZGlzcGxheV9maW5p KCZkYXRhLmRpc3BsYXkpOw0KPiArCX0NCj4gK30NCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29u LmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gaW5kZXggOGUxYWU0ZmQuLjU0MzVjOGQ5IDEw MDY0NA0KPiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZA0KPiArKysgYi90ZXN0cy9tZXNvbi5idWls ZA0KPiBAQCAtNDMsNiArNDMsNyBAQCB0ZXN0X3Byb2dzID0gWw0KPiAgIAkna21zX3BpcGVfY3Jj X2Jhc2ljJywNCj4gICAJJ2ttc19wbGFuZScsDQo+ICAgCSdrbXNfcGxhbmVfYWxwaGFfYmxlbmQn LA0KPiArCSdrbXNfcGxhbmVfY3Vyc29yJywNCj4gICAJJ2ttc19wbGFuZV9sb3dyZXMnLA0KPiAg IAkna21zX3BsYW5lX211bHRpcGxlJywNCj4gICAJJ2ttc19wbGFuZV9zY2FsaW5nJywNCj4gDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1h aWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=