From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH] FOR_UPSTREAM [VPG]: drm/i915/skl+: Implement Transition WM Date: Fri, 2 Sep 2016 12:21:25 +0000 Message-ID: <1472818883.4592.1.camel@intel.com> References: <20160829123522.9532-1-mahesh1.kumar@intel.com> <20160829123522.9532-7-mahesh1.kumar@intel.com> <1472585549.2387.15.camel@intel.com> <1472651265.2387.20.camel@intel.com> <57C966B2.9040302@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 664296E0D9 for ; Fri, 2 Sep 2016 12:21:27 +0000 (UTC) In-Reply-To: <57C966B2.9040302@intel.com> Content-Language: en-US Content-ID: <88DDF54496089C42A3EB1342C4EC7F50@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: "Runyan, Arthur J" List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE2LTA5LTAyIMOgcyAxNzoxNiArMDUzMCwgTWFoZXNoIEt1bWFyIGVzY3JldmV1 Og0KPiBIaSwNCj4gDQo+IE9uIFdlZG5lc2RheSAzMSBBdWd1c3QgMjAxNiAwNzoxNyBQTSwgWmFu b25pLCBQYXVsbyBSIHdyb3RlOg0KPiA+IA0KPiA+IEVtIFRlciwgMjAxNi0wOC0zMCDDoHMgMTk6 MzIgKzAwMDAsIFphbm9uaSwgUGF1bG8gUiBlc2NyZXZldToNCj4gPiA+IA0KPiA+ID4gSGkNCj4g PiA+IA0KPiA+ID4gRW0gU2VnLCAyMDE2LTA4LTI5IMOgcyAxODowNSArMDUzMCwgS3VtYXIsIE1h aGVzaCBlc2NyZXZldToNCj4gPiA+ID4gDQo+ID4gPiA+IFRoaXMgcGF0Y2ggZW5hYmxlcyBUcmFu c2l0aW9uIFdNIGZvciBTS0wrIHBsYXRmb3Jtcy4NCj4gPiA+ID4gDQo+ID4gPiA+IFRyYW5zaXRp b24gV00gYXJlIHVzZWQgaWYgSVBDIGlzIGVuYWJsZWQsIHRvIGRlY2lkZSwgbnVtYmVyIG9mDQo+ ID4gPiA+IGJsb2Nrcw0KPiA+ID4gPiB0byBiZSBmZXRjaGVkIGJlZm9yZSByZWR1Y2luZyB0aGUg cHJpb3JpdHkgb2YgZGlzcGxheSB0byBmZXRjaA0KPiA+ID4gPiBmcm9tDQo+ID4gPiA+IG1lbW9y eS4NCj4gPiA+ID4gDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEt1bWFyLCBNYWhlc2ggPG1haGVz aDEua3VtYXJAaW50ZWwuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDU3DQo+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tDQo+ID4gPiA+IMKgIDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jDQo+ID4gPiA+IGluZGV4IDlmNjkwNTAuLmY0ZjM4N2YgMTAwNjQ0DQo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYw0KPiA+ID4gPiBAQCAtMjg2MSw2ICsy ODYxLDggQEAgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZQ0KPiA+ID4g PiAqZGV2KQ0KPiA+ID4gPiDCoCAjZGVmaW5lIFNLTF9EREJfU0laRQkJODk2CS8qIGluIGJsb2Nr cw0KPiA+ID4gPiAqLw0KPiA+ID4gPiDCoCAjZGVmaW5lIEJYVF9EREJfU0laRQkJNTEyDQo+ID4g PiA+IMKgICNkZWZpbmUgU0tMX1NBR1ZfQkxPQ0tfVElNRQkzMCAvKiDCtXMgKi8NCj4gPiA+ID4g KyNkZWZpbmUgU0tMX1RSQU5TX1dNX0FNT1VOVAkxMA0KPiA+ID4gPiArI2RlZmluZSBTS0xfVFJB TlNfV01fTUlOCTE0DQo+ID4gPiBBcyBmYXIgYXMgSSB1bmRlcnN0b29kIChhbmQgbWF5YmUgSSdt IHdyb25nKSwgU0tMX1RSQU5TX1dNX0FNT1VOVA0KPiA+ID4gaXMNCj4gPiA+IGENCj4gPiA+IHR1 bmFibGUgdmFsdWUsIHNvIGl0IGRlcGVuZHMgb24gYSBsb3Qgb2YgdmFyaWFibGUgZmFjdG9ycy4g V2h5DQo+ID4gPiBkb2VzDQo+ID4gPiB0aGlzIHBhdGNoIHVzZSAxMCBpbnN0ZWFkIG9mIGV2ZXJ5 IG90aGVyIHBvc3NpYmxlIHZhbHVlPw0KPiBUaGlzIHZhbHVlIDEwIHdhcyBkcml2ZW4gYnkgZXhw ZXJpbWVudHMgaW4gb3RoZXIgT1Mgd2l0aCB0aGUgaGVscCBvZg0KPiBTVsKgDQo+IHRlYW0uDQo+ IEknbSB0cnlpbmcgdG8gZ2V0IG1vcmUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoaXMgZnJvbSBI Vy9TViB0ZWFtLg0KPiB3ZSBjYW4gdXBkYXRlIHRoaXMgdmFsdWUgbGF0ZXIgaWYgcmVxdWlyZWQs IHdoYXQgaXMgeW91ciB0aG91Z2h0IG9uDQo+IHRoaXM/DQo+ID4gDQo+ID4gSSBrZXB0IGludmVz dGlnYXRpbmcgYW5kIGl0IHNlZW1zIHRoYXQgdGhlIGN1cnJlbnQgcmVjb21tZW5kYXRpb24NCj4g PiBpcw0KPiA+IHN0aWxsIHRoYXQgdHJhbnNpdGlvbiB3YXRlcm1hcmtzIHN0YXkgZGlzYWJsZWQg Zm9yIFNLTCBhbmQgS0JMLg0KPiANCj4gTXkgZWFybGllciBpbXByZXNzaW9uIGZyb20gQnNwZWMg d2FzIHRyYW5zaXRpb24gV00ncyBzaG91bGQgYmUNCj4gZGlzYWJsZWTCoA0KPiBpbiBTS0wgQS9C IHN0ZXBwaW5nIG9ubHkuIEJ1dCBmcm9tIHRoZSBsYXRlc3QgZGlzY3Vzc2lvbiB3aXRoIEhXDQo+ IHRlYW0sDQo+IGl0IHNlZW1zIHRyYW5zaXRpb24gV00gbXVzdCBiZSBkaXNhYmxlZCBmb3IgYWxs IFNLTCBzdGVwcGluZy4NCj4gU1YgdGVhbSByZWNvbW1lbmRhdGlvbiBpcywgSXQgc2hvdWxkIGJl IGVuYWJsZWQgd2l0aCBJUEMgZm9yIEJYVC9BUEzCoA0KPiBzeXN0ZW1zLCBTbyB3aWxsIHVwZGF0 ZSB0aGUgcGF0Y2ggd2l0aCBJU19CWFQoKSBjaGVjay4NCg0KQlNwZWMgc2F5cyB0cmFuc2l0aW9u IHdhdGVybWFya3Mgc2hvdWxkIGJlIGRpc2FibGVkIGZvciBHRU45OkFMTC4NCg0KQXJ0aHVyLCBj YW4geW91IHBsZWFzZSBjb21tZW50IG9uIHRoaXM/DQoNCj4gDQo+IHRoYW5rcywNCj4gDQo+IFJl Z2FyZHMsDQo+IC1NYWhlc2gNCj4gPiANCj4gPiANCj4gPiA+IA0KPiA+ID4gVGhhbmtzLA0KPiA+ ID4gUGF1bG8NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiDCoMKgDQo+ID4gPiA+ IMKgIC8qDQo+ID4gPiA+IMKgwqDCoCogUmV0dXJuIHRoZSBpbmRleCBvZiBhIHBsYW5lIGluIHRo ZSBTS0wgRERCIGFuZCB3bSByZXN1bHQNCj4gPiA+ID4gYXJyYXlzLsKgwqBQcmltYXJ5DQo+ID4g PiA+IEBAIC0zNTc5LDYgKzM1ODEsNDEgQEAgc3RhdGljIHVpbnQzMl90DQo+ID4gPiA+IHNrbF9h ZGp1c3RlZF9wbGFuZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlDQo+ ID4gPiA+ICpjc3QNCj4gPiA+ID4gwqDCoAlyZXR1cm4gcGl4ZWxfcmF0ZTsNCj4gPiA+ID4gwqAg fQ0KPiA+ID4gPiDCoMKgDQo+ID4gPiA+ICtzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV9wbGFuZV90 cmFuc193bShjb25zdCBzdHJ1Y3QNCj4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ID4gPiAq ZGV2X3ByaXYsDQo+ID4gPiA+ICsJCQkJCXN0cnVjdCBza2xfcGlwZV93bQ0KPiA+ID4gPiAqcGlw ZV93bSwNCj4gPiA+ID4gKwkJCQkJc3RydWN0DQo+ID4gPiA+IGludGVsX3BsYW5lX3N0YXRlDQo+ ID4gPiA+ICppbnRlbF9wc3RhdGUsDQo+ID4gPiA+ICsJCQkJCXVpbnQzMl90IHlfdGlsZV9taW4s DQo+ID4gPiA+ICsJCQkJCWJvb2wgeV90aWxlKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArCXN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSA9ICZpbnRlbF9wc3RhdGUtPmJhc2U7DQo+ID4gPiA+ ICsJaW50IGlkID0gc2tsX3dtX3BsYW5lX2lkKHRvX2ludGVsX3BsYW5lKHBzdGF0ZS0NCj4gPiA+ ID4gPnBsYW5lKSk7DQo+ID4gPiA+ICsJdWludDE2X3QgKm91dF9ibG9ja3MgPSAmcGlwZV93bS0N Cj4gPiA+ID4gPnRyYW5zX3dtLnBsYW5lX3Jlc19iW2lkXTsNCj4gPiA+ID4gKwl1aW50OF90ICpv dXRfbGluZXMgPSAmcGlwZV93bS0NCj4gPiA+ID4gPnRyYW5zX3dtLnBsYW5lX3Jlc19sW2lkXTsN Cj4gPiA+ID4gKwl1aW50MTZfdCByZXNfYmxvY2tzID0gcGlwZV93bS0+d21bMF0ucGxhbmVfcmVz X2JbaWRdOw0KPiA+ID4gPiArCXVpbnQzMl90IHRyYW5zX21pbiA9IDAsIHRyYW5zX29mZnNldF9i bG9ja3M7DQo+ID4gPiA+ICsJdWludDE2X3QgdHJhbnNfeV90aWxlX21pbiA9IDA7DQo+ID4gPiA+ ICsJdWludDE2X3QgdHJhbnNfcmVzX2Jsb2NrczsNCj4gPiA+ID4gKw0KPiA+ID4gPiArDQo+ID4g PiA+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpKQ0KPiA+ID4gPiArCQl0cmFuc19taW4gPSBTS0xf VFJBTlNfV01fTUlOOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJdHJhbnNfb2Zmc2V0X2Jsb2NrcyA9 IHRyYW5zX21pbiArIFNLTF9UUkFOU19XTV9BTU9VTlQ7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlp ZiAoeV90aWxlKSB7DQo+ID4gPiA+ICsJCXRyYW5zX3lfdGlsZV9taW4gPSAyICogeV90aWxlX21p bjsNCj4gPiA+ID4gKwkJdHJhbnNfcmVzX2Jsb2NrcyA9IG1heCh0cmFuc195X3RpbGVfbWluLA0K PiA+ID4gPiByZXNfYmxvY2tzKQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsJCQl0cmFuc19vZmZzZXRf YmxvY2tzOw0KPiA+ID4gPiArCX0gZWxzZSB7DQo+ID4gPiA+ICsJCXRyYW5zX3Jlc19ibG9ja3Mg PSByZXNfYmxvY2tzICsNCj4gPiA+ID4gdHJhbnNfb2Zmc2V0X2Jsb2NrczsNCj4gPiA+ID4gKwkJ LyogV0EgQlVHOjE5Mzg0NjYgYWRkIG9uZSBibG9jayBmb3Igbm9uIHktdGlsZQ0KPiA+ID4gPiBw bGFuZXMgKi8NCj4gPiA+ID4gKwkJdHJhbnNfcmVzX2Jsb2NrcyArPSAxOw0KPiA+ID4gPiArCX0N Cj4gPiA+ID4gKw0KPiA+ID4gPiArCSpvdXRfYmxvY2tzID0gdHJhbnNfcmVzX2Jsb2NrczsNCj4g PiA+ID4gKwkqb3V0X2xpbmVzID0gMDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiDC oCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9w cml2YXRlDQo+ID4gPiA+ICpkZXZfcHJpdiwNCj4gPiA+ID4gwqDCoAkJCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZQ0KPiA+ID4gPiAqY3N0YXRlLA0KPiA+ID4gPiDCoMKgCQkJCXN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZQ0KPiA+ID4gPiAqaW50ZWxfcHN0YXRlLA0KPiA+ID4gPiBAQCAtMzYwMCw2 ICszNjM3LDggQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdA0KPiA+ID4g PiBzdHJ1Y3QNCj4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gPiA+IMKg wqAJc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0ID0gJnBpcGVfd20tPndtW2xldmVsXTsNCj4g PiA+ID4gwqDCoAl1aW50MTZfdCAqb3V0X2Jsb2NrcyA9ICZyZXN1bHQtPnBsYW5lX3Jlc19iW2lk XTsNCj4gPiA+ID4gwqDCoAl1aW50OF90ICpvdXRfbGluZXMgPSAmcmVzdWx0LT5wbGFuZV9yZXNf bFtpZF07DQo+ID4gPiA+ICsJdWludDMyX3QgeV90aWxlX21pbmltdW0gPSAwOw0KPiA+ID4gPiAr CWJvb2wgeV90aWxlID0gZmFsc2U7DQo+ID4gPiA+IMKgwqANCj4gPiA+ID4gwqDCoAlpZiAobGF0 ZW5jeSA9PSAwIHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZlIHx8DQo+ID4gPiA+ICFpbnRlbF9wc3Rh dGUtDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gYmFzZS52aXNpYmxlKQ0KPiA+ID4gPiDCoMKgCQly ZXR1cm4gMDsNCj4gPiA+ID4gQEAgLTM2MjcsNyArMzY2Niw2IEBAIHN0YXRpYyBpbnQgc2tsX2Nv bXB1dGVfcGxhbmVfd20oY29uc3QNCj4gPiA+ID4gc3RydWN0DQo+ID4gPiA+IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LA0KPiA+ID4gPiDCoMKgCWlmIChmYi0+bW9kaWZpZXJbMF0gPT0gSTkx NV9GT1JNQVRfTU9EX1lfVElMRUQgfHwNCj4gPiA+ID4gwqDCoAnCoMKgwqDCoGZiLT5tb2RpZmll clswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpIHsNCj4gPiA+ID4gwqDCoAkJdWludDMy X3QgbWluX3NjYW5saW5lcyA9IDQ7DQo+ID4gPiA+IC0JCXVpbnQzMl90IHlfdGlsZV9taW5pbXVt Ow0KPiA+ID4gPiDCoMKgCQlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHBzdGF0ZS0NCj4g PiA+ID4gPnJvdGF0aW9uKSkgew0KPiA+ID4gPiDCoMKgCQkJaW50IGNwcCA9IChmYi0+cGl4ZWxf Zm9ybWF0ID09DQo+ID4gPiA+IERSTV9GT1JNQVRfTlYxMikgPw0KPiA+ID4gPiDCoMKgCQkJCWRy bV9mb3JtYXRfcGxhbmVfY3BwKGZiLQ0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IHBpeGVsX2Zvcm1h dCwgMSkgOg0KPiA+ID4gPiBAQCAtMzY0Niw2ICszNjg0LDcgQEAgc3RhdGljIGludCBza2xfY29t cHV0ZV9wbGFuZV93bShjb25zdA0KPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsDQo+ID4gPiA+IMKgwqAJCX0NCj4gPiA+ID4gwqDCoAkJeV90aWxlX21p bmltdW0gPSBwbGFuZV9ibG9ja3NfcGVyX2xpbmUgKg0KPiA+ID4gPiBtaW5fc2NhbmxpbmVzOw0K PiA+ID4gPiDCoMKgCQlzZWxlY3RlZF9yZXN1bHQgPSBtYXgobWV0aG9kMiwNCj4gPiA+ID4geV90 aWxlX21pbmltdW0pOw0KPiA+ID4gPiArCQl5X3RpbGUgPSB0cnVlOw0KPiA+ID4gPiDCoMKgCX0g ZWxzZSB7DQo+ID4gPiA+IMKgwqAJCWxpbmV0aW1lX3VzID0gRElWX1JPVU5EX1VQKHdpZHRoICog MTAwMCwNCj4gPiA+ID4gwqDCoAkJCQlza2xfcGlwZV9waXhlbF9yYXRlKGNzdGF0ZSkpOw0KPiA+ ID4gPiBAQCAtMzY2OSw2ICszNzA4LDkgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93 bShjb25zdA0KPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsDQo+ID4gPiA+IMKgwqAJKm91dF9ibG9ja3MgPSByZXNfYmxvY2tzOw0KPiA+ID4gPiDCoMKg CSpvdXRfbGluZXMgPSByZXNfbGluZXM7DQo+ID4gPiA+IMKgwqANCj4gPiA+ID4gKwlpZiAobGV2 ZWwgPT0gMCkNCj4gPiA+ID4gKwkJc2tsX2NvbXB1dGVfcGxhbmVfdHJhbnNfd20oZGV2X3ByaXYs IHBpcGVfd20sDQo+ID4gPiA+IGludGVsX3BzdGF0ZSwNCj4gPiA+ID4gKwkJCQkJCXlfdGlsZV9t aW5pbXVtDQo+ID4gPiA+ICwNCj4gPiA+ID4geV90aWxlKTsNCj4gPiA+ID4gwqDCoAlyZXR1cm4g MDsNCj4gPiA+ID4gwqAgfQ0KPiA+ID4gPiDCoMKgDQo+ID4gPiA+IEBAIC0zNzM4LDExICszNzgw LDEzIEBAIHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKHN0cnVjdA0KPiA+ID4gPiBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUpDQo+ID4gPiA+IMKgIH0NCj4gPiA+ID4gwqDCoA0KPiA+ID4gPiDCoCBz dGF0aWMgdm9pZCBza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlDQo+ID4gPiA+ICpjc3RhdGUsDQo+ID4gPiA+IC0JCQkJwqDCoMKgwqDCoMKgc3RydWN0IHNr bF93bV9sZXZlbA0KPiA+ID4gPiAqdHJhbnNfd20NCj4gPiA+ID4gLyogb3V0ICovKQ0KPiA+ID4g PiArCQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBza2xfd21fbGV2ZWwNCj4gPiA+ID4gKnRyYW5zX3dt LA0KPiA+ID4gPiArCQkJCcKgwqDCoMKgwqDCoHN0cnVjdA0KPiA+ID4gPiBza2xfZGRiX2FsbG9j YXRpb24NCj4gPiA+ID4gKmRkYikNCj4gPiA+ID4gwqAgew0KPiA+ID4gPiDCoMKgCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOw0KPiA+ID4gPiDCoMKgCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsNCj4gPiA+ID4gwqDC oAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOw0KPiA+ID4gPiArCWVudW0gcGlwZSBw aXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsNCj4gPiA+ID4gwqDCoA0KPiA+ID4gPiDC oMKgCWlmICghY3N0YXRlLT5iYXNlLmFjdGl2ZSkNCj4gPiA+ID4gwqDCoAkJcmV0dXJuOw0KPiA+ ID4gPiBAQCAtMzc1MCw4ICszNzk0LDEzIEBAIHN0YXRpYyB2b2lkDQo+ID4gPiA+IHNrbF9jb21w dXRlX3RyYW5zaXRpb25fd20oc3RydWN0DQo+ID4gPiA+IGludGVsX2NydGNfc3RhdGUgKmNzdGF0 ZSwNCj4gPiA+ID4gwqDCoAkvKiBVbnRpbCB3ZSBrbm93IG1vcmUsIGp1c3QgZGlzYWJsZSB0cmFu c2l0aW9uIFdNcyAqLw0KPiA+ID4gPiDCoMKgCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo Y3J0Yy0+ZGV2LCBpbnRlbF9jcnRjLA0KPiA+ID4gPiBpbnRlbF9wbGFuZSkgew0KPiA+ID4gPiDC oMKgCQlpbnQgaSA9IHNrbF93bV9wbGFuZV9pZChpbnRlbF9wbGFuZSk7DQo+ID4gPiA+ICsJCXVp bnQxNl90IHBsYW5lX2RkYiA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLQ0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IHBsYW5lW3BpcGVdW2ldKTsNCj4gPiA+ID4gKwkJdWludDE2X3QgdHJhbnNfcmVz X2Jsb2NrcyA9IHRyYW5zX3dtLQ0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IHBsYW5lX3Jlc19iW2ld Ow0KPiA+ID4gPiDCoMKgDQo+ID4gPiA+IC0JCXRyYW5zX3dtLT5wbGFuZV9lbltpXSA9IGZhbHNl Ow0KPiA+ID4gPiArCQlpZiAoKHBsYW5lX2RkYiA9PSAwKSB8fCAodHJhbnNfcmVzX2Jsb2NrcyA+ DQo+ID4gPiA+IHBsYW5lX2RkYikpDQo+ID4gPiA+ICsJCQl0cmFuc193bS0+cGxhbmVfZW5baV0g PSBmYWxzZTsNCj4gPiA+ID4gKwkJZWxzZQ0KPiA+ID4gPiArCQkJdHJhbnNfd20tPnBsYW5lX2Vu W2ldID0gdHJ1ZTsNCj4gPiA+ID4gwqDCoAl9DQo+ID4gPiA+IMKgIH0NCj4gPiA+ID4gwqDCoA0K PiA+ID4gPiBAQCAtMzc4Miw3ICszODMxLDcgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93 bShzdHJ1Y3QNCj4gPiA+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLA0KPiA+ID4gPiDCoMKg DQo+ID4gPiA+IMKgwqAJcGlwZV93bS0+bGluZXRpbWUgPSBza2xfY29tcHV0ZV9saW5ldGltZV93 bShjc3RhdGUpOw0KPiA+ID4gPiDCoMKgDQo+ID4gPiA+IC0Jc2tsX2NvbXB1dGVfdHJhbnNpdGlv bl93bShjc3RhdGUsICZwaXBlX3dtLT50cmFuc193bSk7DQo+ID4gPiA+ICsJc2tsX2NvbXB1dGVf dHJhbnNpdGlvbl93bShjc3RhdGUsICZwaXBlX3dtLT50cmFuc193bSwNCj4gPiA+ID4gZGRiKTsN Cj4gPiA+ID4gwqDCoA0KPiA+ID4gPiDCoMKgCXJldHVybiAwOw0KPiA+ID4gPiDCoCB9DQo+ID4g PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdA0KPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZw0KPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngNCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=