From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lankhorst, Maarten" Subject: Re: [PATCH 2/2] drm/i915/skl+: consider max supported plane pixel rate while scaling Date: Thu, 18 May 2017 11:18:56 +0000 Message-ID: <1495106334.18565.4.camel@intel.com> References: <20170518100931.9236-1-mahesh1.kumar@intel.com> <20170518100931.9236-3-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3255389B60 for ; Thu, 18 May 2017 11:19:00 +0000 (UTC) In-Reply-To: <20170518100931.9236-3-mahesh1.kumar@intel.com> Content-Language: en-US Content-ID: <577E9A55AB5DE74B89E7CFF0AB1A8E7F@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "Kumar, Mahesh1" Cc: "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org TWFoZXNoIEt1bWFyIHNjaHJlZWYgb3AgZG8gMTgtMDUtMjAxNyBvbSAxNTozOSBbKzA1MzBdOg0K PiBGcm9tOiAiS3VtYXIsIE1haGVzaCIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPg0KPiANCj4g QSBkaXNwbGF5IHJlc29sdXRpb24gaXMgb25seSBzdXBwb3J0ZWQgaWYgaXQgbWVldHMgYWxsIHRo ZQ0KPiByZXN0cmljdGlvbnMNCj4gYmVsb3cgZm9yIE1heGltdW0gUGlwZSBQaXhlbCBSYXRlLg0K PiANCj4gVGhlIGRpc3BsYXkgcmVzb2x1dGlvbiBtdXN0IGZpdCB3aXRoaW4gdGhlIG1heGltdW0g cGl4ZWwgcmF0ZSBvdXRwdXQNCj4gZnJvbSB0aGUgcGlwZS4gTWFrZSBzdXJlIHRoYXQgdGhlIGRp c3BsYXkgcGlwZSBpcyBhYmxlIHRvIGZlZWQgcGl4ZWxzDQo+IGF0DQo+IGEgcmF0ZSByZXF1aXJl ZCB0byBzdXBwb3J0IHRoZSBkZXNpcmVkIHJlc29sdXRpb24uDQo+IEZvciBlYWNoIGVuYWJsZWQg cGxhbmUgb24gdGhlIHBpcGUgew0KPiDCoMKgwqDCoElmIHBsYW5lIHNjYWxpbmcgZW5hYmxlZCB7 DQo+IAlIb3Jpem9udGFsIGRvd24gc2NhbGUgYW1vdW50ID0gTWF4aW11bVsxLCBwbGFuZSBob3Jp em9udGFsIHNpemUNCj4gLw0KPiAJCcKgwqDCoMKgc2NhbGVyIGhvcml6b250YWwgd2luZG93IHNp emVdDQo+IAlWZXJ0aWNhbCBkb3duIHNjYWxlIGFtb3VudCA9IE1heGltdW1bMSwgcGxhbmUgdmVy dGljYWwgc2l6ZSAvDQo+IAkJwqDCoMKgwqBzY2FsZXIgdmVydGljYWwgd2luZG93IHNpemVdDQo+ IAlQbGFuZSBkb3duIHNjYWxlIGFtb3VudCA9IEhvcml6b250YWwgZG93biBzY2FsZSBhbW91bnQg Kg0KPiAJCcKgwqDCoMKgVmVydGljYWwgZG93biBzY2FsZSBhbW91bnQNCj4gCVBsYW5lIFJhdGlv ID0gMSAvIFBsYW5lIGRvd24gc2NhbGUgYW1vdW50DQo+IMKgwqDCoMKgfQ0KPiDCoMKgwqDCoEVs c2Ugew0KPiAJUGxhbmUgUmF0aW8gPSAxDQo+IMKgwqDCoMKgfQ0KPiDCoMKgwqDCoElmIHBsYW5l IHNvdXJjZSBwaXhlbCBmb3JtYXQgaXMgNjQgYml0cyBwZXIgcGl4ZWwgew0KPiAJUGxhbmUgUmF0 aW8gPSBQbGFuZSBSYXRpbyAqIDgvOQ0KPiDCoMKgwqDCoH0NCj4gfQ0KPiANCj4gUGlwZSBSYXRp byA9IE1pbmltdW0gUGxhbmUgUmF0aW8gb2YgYWxsIGVuYWJsZWQgcGxhbmVzIG9uIHRoZSBwaXBl DQo+IA0KPiBJZiBwaXBlIHNjYWxpbmcgaXMgZW5hYmxlZCB7DQo+IMKgwqDCoMKgSG9yaXpvbnRh bCBkb3duIHNjYWxlIGFtb3VudCA9IE1heGltdW1bMSwgcGlwZSBob3Jpem9udGFsIHNvdXJjZQ0K PiBzaXplIC8NCj4gCQlzY2FsZXIgaG9yaXpvbnRhbCB3aW5kb3cgc2l6ZV0NCj4gwqDCoMKgwqBW ZXJ0aWNhbCBkb3duIHNjYWxlIGFtb3VudCA9IE1heGltdW1bMSwgcGlwZSB2ZXJ0aWNhbCBzb3Vy Y2Ugc2l6ZQ0KPiAvDQo+IAkJc2NhbGVyIHZlcnRpY2FsIHdpbmRvdyBzaXplXQ0KPiDCoMKgwqDC oE5vdGU6IFRoZSBwcm9ncmVzc2l2ZSBmZXRjaCAtIGludGVybGFjZSBkaXNwbGF5IG1vZGUgaXMN Cj4gZXF1aXZhbGVudCB0byBhDQo+IAkJMi4wIHZlcnRpY2FsIGRvd24gc2NhbGUNCj4gwqDCoMKg wqBQaXBlIGRvd24gc2NhbGUgYW1vdW50ID0gSG9yaXpvbnRhbCBkb3duIHNjYWxlIGFtb3VudCAq DQo+IAkJVmVydGljYWwgZG93biBzY2FsZSBhbW91bnQNCj4gwqDCoMKgwqBQaXBlIFJhdGlvID0g UGlwZSBSYXRpbyAvIFBpcGUgZG93biBzY2FsZSBhbW91bnQNCj4gfQ0KPiANCj4gUGlwZSBtYXhp bXVtIHBpeGVsIHJhdGUgPSBDRENMSyBmcmVxdWVuY3kgKiBQaXBlIFJhdGlvDQo+IA0KPiBJbiB0 aGlzIHBhdGNoIG91ciBjYWxjdWxhdGlvbiBpcyBiYXNlZCBvbiBwaXBlIGRvd25zY2FsZSBhbW91 bnQNCj4gKHBsYW5lIG1heCBkb3duc2NhbGUgYW1vdW50ICogcGlwZSBkb3duc2NhbGUgYW1vdW50 KSBpbnN0ZWFkIG9mIFBpcGUNCj4gUmF0aW8uIFNvLA0KPiBtYXggc3VwcG9ydGVkIGNydGMgY2xv Y2sgd2l0aCBnaXZlbiBzY2FsaW5nID0gQ0RDTEsgLyBwaXBlIGRvd25zY2FsZS4NCj4gRmxpcCB3 aWxsIGZhaWwgaWYsDQo+IGN1cnJlbnQgY3J0YyBjbG9jayA+IG1heCBzdXBwb3J0ZWQgY3JjdCBj bG9jayB3aXRoIGdpdmVuIHNjYWxpbmcuDQo+IA0KPiBDaGFuZ2VzIHNpbmNlIFYxOg0KPiDCoC0g c2VwYXJhdGUgb3V0IGZpeGVkXzE2XzE2IHdyYXBwZXIgQVBJIGRlZmluaXRpb24NCj4gQ2hhbmdl cyBzaW5jZSBWMjoNCj4gwqAtIEZpeCBidWdneSBjcnRjICFhY3RpdmUgY29uZGl0aW9uIChNYWFy dGVuKQ0KPiDCoC0gdXNlIGludGVsX3dtX3BsYW5lX3Zpc2libGUgd3JhcHBlciBhcyBwZXIgTWFh cnRlbidzIHN1Z2dlc3Rpb24NCj4gQ2hhbmdlcyBzaW5jZSBWMzoNCj4gwqAtIENoYW5nZSBmYWls dXJlIHJldHVybiBmcm9tIEVSQU5HRSB0byBFSU5WQUwNCj4gQ2hhbmdlcyBzaW5jZSBWNDoNCj4g wqAtIFJlYmFzZSBiYXNlZCBvbiBwcmV2aW91cyBwYXRjaCBjaGFuZ2VzDQo+IENoYW5nZXMgc2lu Y2UgVjU6DQo+IMKgLSByZXR1cm4gRUlOVkFMIGluc3RlYWQgb2YgY29udGludWUgKE1hYXJ0ZW4p DQo+IENoYW5nZXMgc2luY2UgVjY6DQo+IMKgLSBJbXByb3ZlIGNvbW1pdCBtZXNzYWdlDQo+IMKg LSBBZGRyZXNzIHJldmlldyBjb21tZW50DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggS3Vt YXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8 bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hv cnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+DQo+IC0tLQ0KPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8wqDCoDMgKysNCj4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgwqB8wqDCoDIgKw0KPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmPCoMKgwqDCoMKgwqB8IDg3DQo+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiDCoDMgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygr KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Yw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBpbmRleCA4MjE3 ZWQwZTcxMzIuLmRmMGIzZTc3MTI5YiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYw0KPiBAQCAtMTExNzcsNiArMTExNzcsOSBAQCBzdGF0aWMgaW50IGludGVsX2NydGNf YXRvbWljX2NoZWNrKHN0cnVjdA0KPiBkcm1fY3J0YyAqY3J0YywNCj4gwqAJCQlyZXQgPSBza2xf dXBkYXRlX3NjYWxlcl9jcnRjKHBpcGVfY29uZmlnKTsNCj4gwqANCj4gwqAJCWlmICghcmV0KQ0K PiArCQkJcmV0ID0NCj4gc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUoaW50ZWxfY3J0YywN Cj4gKwkJCQkJCQnCoMKgwqDCoHBpcGVfY29uDQo+IGZpZyk7DQo+ICsJCWlmICghcmV0KQ0KPiDC oAkJCXJldCA9IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKGRldl9wcml2LA0KPiBpbnRlbF9j cnRjLA0KPiDCoAkJCQkJCQnCoHBpcGVfY29uZmlnDQo+ICk7DQo+IMKgCX0NCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgNCj4gaW5kZXggYmQ1MDA5NzdiM2ZjLi45M2FmYWM0YTgzZmEgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IEBAIC0xODg1LDYgKzE4ODUsOCBAQCBi b29sIHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFwcyhjb25zdCBzdHJ1Y3QNCj4gc2tsX2RkYl9l bnRyeSAqKmVudHJpZXMsDQo+IMKgCQkJCcKgaW50IGlnbm9yZSk7DQo+IMKgYm9vbCBpbGtfZGlz YWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsNCj4gwqBpbnQgc2FuaXRpemVfcmM2 X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludA0KPiBlbmFibGVf cmM2KTsNCj4gK2ludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YywNCj4gKwkJCQnCoMKgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSk7DQo+IMKgc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZW5hYmxlX3JjNih2b2lkKQ0KPiDC oHsNCj4gwqAJcmV0dXJuIGk5MTUuZW5hYmxlX3JjNjsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jDQo+IGluZGV4IGZiNGNlYzNmYjkyYy4uNGVkYzVmNGVlNTk4IDEwMDY0NA0KPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMNCj4gQEAgLTM4NjMsNiArMzg2Myw5MyBAQCBza2xfcGxhbmVfZG93bnNj YWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QNCj4gaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLA0KPiDC oAlyZXR1cm4gbXVsX2ZpeGVkMTYoZG93bnNjYWxlX3csIGRvd25zY2FsZV9oKTsNCj4gwqB9DQo+ IMKgDQo+ICtzdGF0aWMgdWludF9maXhlZF8xNl8xNl90DQo+ICtza2xfcGlwZV9kb3duc2NhbGVf YW1vdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpDQo+ICt7DQo+ICsJ dWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkXzE2XzE2KDEp Ow0KPiArDQo+ICsJaWYgKCFjb25maWctPmJhc2UuYWN0aXZlKQ0KPiArCQlyZXR1cm4gcGlwZV9k b3duc2NhbGU7DQpTb3JyeSwganVzdCBvbmUgbW9yZSB0aGluZyBJIGZhaWxlZCB0byBub3RpY2Ug dGhlIGZpcnN0IHRpbWUgYXJvdW5kLg0KDQpJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGNvbmZpZy0+ YmFzZS5lbmFibGUsIGluIGNhc2Ugb2YgIWFjdGl2ZSB0aGUgY3J0Yw0KaXMgY29uZmlndXJlZCBh cyBpZiBpdCdzIG9uLCBhbmQgaXQncyBvayB0byBydW4gc2NhbGluZyBjaGVja3MgaGVyZS4NClRo ZSBleGlzdGluZyBjb2RlIGV4cGVjdHMgdGhpcyBhcyB3ZWxsLg0KDQpjb25maWcgc2hvdWxkIHBy b2JhYmx5IGJlIHJlbmFtZWQgdG8gY3J0Y19zdGF0ZSwgb3IgcGlwZV9jb25maWcuIDopDQpFaXRo ZXIgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggY3VycmVudCBjb2RlLg0KPiArDQo+ICsJaWYgKGNv bmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgew0KPiArCQl1aW50MzJfdCBzcmNfdywgc3JjX2gsIGRz dF93LCBkc3RfaDsNCj4gKwkJdWludDMyX3QgcGZpdF9zaXplID0gY29uZmlnLT5wY2hfcGZpdC5z aXplOw0KPiArCQl1aW50X2ZpeGVkXzE2XzE2X3QgZnBfd19yYXRpbywgZnBfaF9yYXRpbzsNCj4g KwkJdWludF9maXhlZF8xNl8xNl90IGRvd25zY2FsZV9oLCBkb3duc2NhbGVfdzsNCj4gKw0KPiAr CQlzcmNfdyA9IGNvbmZpZy0+cGlwZV9zcmNfdzsNCj4gKwkJc3JjX2ggPSBjb25maWctPnBpcGVf c3JjX2g7DQo+ICsJCWRzdF93ID0gcGZpdF9zaXplID4+IDE2Ow0KPiArCQlkc3RfaCA9IHBmaXRf c2l6ZSAmIDB4ZmZmZjsNCj4gKw0KPiArCQlpZiAoIWRzdF93IHx8ICFkc3RfaCkNCj4gKwkJCXJl dHVybiBwaXBlX2Rvd25zY2FsZTsNCj4gKw0KPiArCQlmcF93X3JhdGlvID0gZml4ZWRfMTZfMTZf ZGl2KHNyY193LCBkc3Rfdyk7DQo+ICsJCWZwX2hfcmF0aW8gPSBmaXhlZF8xNl8xNl9kaXYoc3Jj X2gsIGRzdF9oKTsNCj4gKwkJZG93bnNjYWxlX3cgPSBtYXhfZml4ZWRfMTZfMTYoZnBfd19yYXRp bywNCj4gdTMyX3RvX2ZpeGVkXzE2XzE2KDEpKTsNCj4gKwkJZG93bnNjYWxlX2ggPSBtYXhfZml4 ZWRfMTZfMTYoZnBfaF9yYXRpbywNCj4gdTMyX3RvX2ZpeGVkXzE2XzE2KDEpKTsNCj4gKw0KPiAr CQlwaXBlX2Rvd25zY2FsZSA9IG11bF9maXhlZDE2KGRvd25zY2FsZV93LA0KPiBkb3duc2NhbGVf aCk7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHBpcGVfZG93bnNjYWxlOw0KPiArfQ0KPiArDQo+ ICtpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsDQo+ICsJCQkJwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpDQo+ ICt7DQo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gJmNzdGF0ZS0+YmFz ZTsNCj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0 ZTsNCj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsNCj4gKwljb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpwc3RhdGU7DQo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9w c3RhdGU7DQo+ICsJaW50IGNydGNfY2xvY2ssIGNkY2xrOw0KPiArCXVpbnQzMl90IHBpcGVfbWF4 X3BpeGVsX3JhdGU7DQo+ICsJdWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxlOw0KPiAr CXVpbnRfZml4ZWRfMTZfMTZfdCBtYXhfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkXzE2XzE2KDEp Ow0KPiArDQo+ICsJaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKQ0KPiArCQlyZXR1cm4gMDsNClRo aXMgb25lIGNhbiBiZSBjaGFuZ2VkIHRvIGVuYWJsZSBhcyB3ZWxsIEkgaG9wZSwgdGhvdWdoIHRo ZSBGSVhNRSBpbg0KaW50ZWxfd21fcGxhbmVfdmlzaWJsZSBhcHBsaWVzLi4gOikNCg0KPiArCWRy bV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcHN0YXRlLA0K PiBjcnRjX3N0YXRlKSB7DQo+ICsJCXVpbnRfZml4ZWRfMTZfMTZfdCBwbGFuZV9kb3duc2NhbGU7 DQo+ICsJCXVpbnRfZml4ZWRfMTZfMTZfdCBmcF85X2Rpdl84ID0gZml4ZWRfMTZfMTZfZGl2KDks DQo+IDgpOw0KPiArCQlpbnQgYnBwOw0KPiArDQo+ICsJCWlmICghaW50ZWxfd21fcGxhbmVfdmlz aWJsZShjc3RhdGUsDQo+ICsJCQkJCcKgwqDCoMKgdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0DQo+ IGF0ZSkpKQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJaWYgKFdBUk5fT04oIXBzdGF0ZS0+ ZmIpKQ0KPiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwkJaW50ZWxfcHN0YXRlID0gdG9f aW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKTsNCj4gKwkJcGxhbmVfZG93bnNjYWxlID0gc2tsX3Bs YW5lX2Rvd25zY2FsZV9hbW91bnQoY3N0YXRlLA0KPiArCQkJCQkJCcKgwqDCoMKgwqBpbnRlbF9w DQo+IHN0YXRlKTsNCj4gKwkJYnBwID0gcHN0YXRlLT5mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4Ow0K PiArCQlpZiAoYnBwID09IDY0KQ0KPiArCQkJcGxhbmVfZG93bnNjYWxlID0NCj4gbXVsX2ZpeGVk MTYocGxhbmVfZG93bnNjYWxlLA0KPiArCQkJCQkJwqDCoMKgwqDCoMKgZnBfOV9kaXZfOCk7DQo+ ICsNCj4gKwkJbWF4X2Rvd25zY2FsZSA9IG1heF9maXhlZF8xNl8xNihwbGFuZV9kb3duc2NhbGUs DQo+IG1heF9kb3duc2NhbGUpOw0KPiArCX0NCj4gKwlwaXBlX2Rvd25zY2FsZSA9IHNrbF9waXBl X2Rvd25zY2FsZV9hbW91bnQoY3N0YXRlKTsNCj4gKw0KPiArCXBpcGVfZG93bnNjYWxlID0gbXVs X2ZpeGVkMTYocGlwZV9kb3duc2NhbGUsIG1heF9kb3duc2NhbGUpOw0KPiArDQo+ICsJY3J0Y19j bG9jayA9IGNydGNfc3RhdGUtPmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsNCj4gKwljZGNsayA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrLmxvZ2ljYWwuY2RjbGs7DQo+ICsJ cGlwZV9tYXhfcGl4ZWxfcmF0ZSA9IGRpdl9yb3VuZF91cF91MzJfZml4ZWQxNihjZGNsaywNCj4g cGlwZV9kb3duc2NhbGUpOw0KPiArDQo+ICsJaWYgKHBpcGVfbWF4X3BpeGVsX3JhdGUgPCBjcnRj X2Nsb2NrKSB7DQo+ICsJCURSTV9FUlJPUigiTWF4IHN1cHBvcnRlZCBwaXhlbCBjbG9jayB3aXRo IHNjYWxpbmcNCj4gZXhjZWVkZWRcbiIpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiDCoHN0YXRpYyB1bnNpZ25lZCBpbnQNCj4g wqBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsDQo+IMKgCQkJwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBzdGF0ZSwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==