From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 1/4] drm/i915/icl: Assign Master slave crtc links for Transcoder Port Sync Date: Thu, 13 Jun 2019 13:13:28 -0700 Message-ID: <20190613201328.GA10554@intel.com> References: <20190423154901.15222-1-manasi.d.navare@intel.com> <20190423154901.15222-2-manasi.d.navare@intel.com> <22e58e8c-53be-3fa6-46b8-8ed6c5a446da@linux.intel.com> <20190612190426.GQ5942@intel.com> <20190612191101.GB5765@intel.com> <20190612193055.GR5942@intel.com> <20190612205951.GC5765@intel.com> <20190613091057.GS5942@intel.com> <20190613164142.GA10097@intel.com> <20190613171237.GX5942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF3C3891DB for ; Thu, 13 Jun 2019 20:11:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190613171237.GX5942@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMTMsIDIwMTkgYXQgMDg6MTI6MzdQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgSnVuIDEzLCAyMDE5IGF0IDA5OjQxOjQyQU0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBPbiBUaHUsIEp1biAxMywgMjAxOSBhdCAxMjoxMDo1N1BNICsw MzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgSnVuIDEyLCAyMDE5IGF0 IDAxOjU5OjUyUE0gLTA3MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBK dW4gMTIsIDIwMTkgYXQgMTA6MzA6NTVQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ ID4gPiA+ID4gT24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTI6MTE6MDJQTSAtMDcwMCwgTWFuYXNp IE5hdmFyZSB3cm90ZToKPiA+ID4gPiA+ID4gT24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTA6MDQ6 MjZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+ID4gPiA+IE9uIFdlZCwg SnVuIDEyLCAyMDE5IGF0IDExOjM5OjAzQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3Rl Ogo+ID4gPiA+ID4gPiA+ID4gT3AgMjMtMDQtMjAxOSBvbSAxNzo0OCBzY2hyZWVmIE1hbmFzaSBO YXZhcmU6Cj4gPiA+ID4gPiA+ID4gPiA+IEluIGNhc2Ugb2YgdGlsZWQgZGlzcGxheXMgd2hlbiB0 aGUgdHdvIHRpbGVzIGFyZSBzZW50IGFjcm9zcyB0d28gQ1JUQ3MKPiA+ID4gPiA+ID4gPiA+ID4g b3ZlciB0d28gc2VwYXJhdGUgRFAgU1NUIGNvbm5lY3RvcnMsIHdlIG5lZWQgYSBtZWNoYW5pc20g dG8gc3luY2hyb25pemUKPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHR3byBDUlRDcyBhbmQgdGhlaXIg Y29ycmVzcG9uZGluZyB0cmFuc2NvZGVycy4KPiA+ID4gPiA+ID4gPiA+ID4gU28gdXNlIHRoZSBt YXN0ZXItc2xhdmUgbW9kZSB3aGVyZSB0aGVyZSBpcyBvbmUgbWFzdGVyIGNvcnJlc3BvbmRpbmcK PiA+ID4gPiA+ID4gPiA+ID4gdG8gbGFzdCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCB0aWxlIHRo YXQgbmVlZHMgdG8gYmUgZ2VubG9ja2VkIHdpdGgKPiA+ID4gPiA+ID4gPiA+ID4gYWxsIG90aGVy IHNsYXZlIHRpbGVzLgo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGlkZW50aWZpZXMgc2F2 ZXMgdGhlIG1hc3RlciBDUlRDIHBvaW50ZXIgaW4gYWxsIHRoZSBzbGF2ZQo+ID4gPiA+ID4gPiA+ ID4gPiBDUlRDIHN0YXRlcy4gVGhpcyBwb2ludGVyIGlzIG5lZWRlZCB0byBzZWxlY3QgdGhlIG1h c3RlciBDUlRDL3RyYW5zY29kZXIKPiA+ID4gPiA+ID4gPiA+ID4gd2hpbGUgY29uZmlndXJpbmcg dHJhbnNjb2RlciBwb3J0IHN5bmMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHNsYXZlcy4KPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gdjI6Cj4gPiA+ID4gPiA+ID4gPiA+ICogTW92 ZSB0aGlzIHRvIGludGVsX21vZGVfc2V0X3BpcGVfY29uZmlnKEphbmkgTiwgVmlsbGUpCj4gPiA+ ID4gPiA+ID4gPiA+ICogVXNlIHNsYXZlX2JpdG1hc2sgdG8gc2F2ZSBhc3NvY2lhdGVkIHNsYXZl cyBpbiBtYXN0ZXIgY3J0YyBzdGF0ZSAoVmlsbGUpCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4g PiA+ID4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gPiA+IENjOiBNYXR0IFJv cGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gPiA+ ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+ ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA2ICsrCj4g PiA+ID4gPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKykKPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gPiA+ID4gPiA+ID4gPiBpbmRleCBiMjc2MzQ1Nzc5ZTYuLjkyZGVhMjIzMTQ5OSAx MDA2NDQKPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtMTEzMTYsNiArMTEzMTYsODYgQEAg c3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gPiA+ID4gPiA+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4gPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiA+ID4gK3N0YXRpYyBpbnQg aWNsX2FkZF9nZW5sb2NrX2NydGNzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ID4g PiA+ID4gKwkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ID4g PiA+ID4gPiA+ICsJCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gPiA+ ID4gPiA+ID4gK3sKPiA+ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiA+ID4gPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqbWFzdGVyX2Nvbm5lY3RvciwgKmNvbm5l Y3RvcjsKPiA+ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bmVjdG9yX3N0YXRlOwo+ID4gPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xp c3RfaXRlciBjb25uX2l0ZXI7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpt YXN0ZXJfY3J0YyA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRjX3N0 YXRlICptYXN0ZXJfY3J0Y19zdGF0ZTsKPiA+ID4gPiA+ID4gPiA+ID4gKwlpbnQgaSwgdGlsZV9n cm91cF9pZDsKPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDwgMTEpCj4gPiA+ID4gPiA+ID4gPiA+ICsJCXJldHVybiAwOwo+ID4g PiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ID4gPiA+ID4g KwkgKiBJbiBjYXNlIG9mIHRpbGVkIGRpc3BsYXlzIHRoZXJlIGNvdWxkIGJlIG9uZSBvciBtb3Jl IHNsYXZlcyBidXQgdGhlcmUgaXMKPiA+ID4gPiA+ID4gPiA+ID4gKwkgKiBvbmx5IG9uZSBtYXN0 ZXIuIExldHMgbWFrZSB0aGUgQ1JUQyB1c2VkIGJ5IHRoZSBjb25uZWN0b3IgY29ycmVzcG9uZGlu Zwo+ID4gPiA+ID4gPiA+ID4gPiArCSAqIHRvIHRoZSBsYXN0IGhvcml6b25hbCBhbmQgbGFzdCB2 ZXJ0aWNhbCB0aWxlIGEgbWFzdGVyL2dlbmxvY2sgQ1JUQy4KPiA+ID4gPiA+ID4gPiA+ID4gKwkg KiBBbGwgdGhlIG90aGVyIENSVENzIGNvcnJlc3BvbmRpbmcgdG8gb3RoZXIgdGlsZXMgb2YgdGhl IHNhbWUgVGlsZSBncm91cAo+ID4gPiA+ID4gPiA+ID4gPiArCSAqIGFyZSB0aGUgc2xhdmUgQ1JU Q3MgYW5kIGhvbGQgYSBwb2ludGVyIHRvIHRoZWlyIGdlbmxvY2sgQ1JUQy4KPiA+ID4gPiA+ID4g PiA+ID4gKwkgKi8KPiA+ID4gPiA+ID4gPiA+ID4gKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2lu X3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewo+ID4gPiA+ID4g PiA+ID4gPiArCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGMpCj4gPiA+ID4gPiA+ ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJaWYgKCFjb25uZWN0b3It Pmhhc190aWxlKQo+ID4gPiA+ID4gPiA+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ID4gPiA+ID4g PiA+ICsJCWlmIChjb25uZWN0b3ItPnRpbGVfaF9sb2MgPT0gY29ubmVjdG9yLT5udW1faF90aWxl IC0gMSAmJgo+ID4gPiA+ID4gPiA+ID4gPiArCQkgICAgY29ubmVjdG9yLT50aWxlX3ZfbG9jID09 IGNvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCj4gPiA+ID4gPiA+ID4gPiA+ICsJCQljb250aW51 ZTsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJY3J0Y19zdGF0ZS0+bWFzdGVyX2NydGMgPSBOVUxMOwo+ ID4gPiA+ID4gPiA+ID4gPiArCQl0aWxlX2dyb3VwX2lkID0gY29ubmVjdG9yLT50aWxlX2dyb3Vw LT5pZDsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4o JmRldl9wcml2LT5kcm0sICZjb25uX2l0ZXIpOwo+ID4gPiA+ID4gPiA+ID4gPiArCQlkcm1fZm9y X2VhY2hfY29ubmVjdG9yX2l0ZXIobWFzdGVyX2Nvbm5lY3RvciwgJmNvbm5faXRlcikgewo+ID4g PiA+ID4gPiA+ID4gPiArCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm1hc3Rlcl9jb25u X3N0YXRlID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiArCQkJ aWYgKCFtYXN0ZXJfY29ubmVjdG9yLT5oYXNfdGlsZSkKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQlj b250aW51ZTsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCWlmIChtYXN0ZXJfY29ubmVjdG9yLT50aWxl X2hfbG9jICE9IG1hc3Rlcl9jb25uZWN0b3ItPm51bV9oX3RpbGUgLSAxIHx8Cj4gPiA+ID4gPiA+ ID4gPiA+ICsJCQkgICAgbWFzdGVyX2Nvbm5lY3Rvci0+dGlsZV92X2xvYyAhPSBtYXN0ZXJfY29u bmVjdG9yLT5udW1fdl90aWxlIC0gMSkKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQljb250aW51ZTsK PiA+ID4gPiA+ID4gPiA+ID4gKwkJCWlmIChtYXN0ZXJfY29ubmVjdG9yLT50aWxlX2dyb3VwLT5p ZCAhPSB0aWxlX2dyb3VwX2lkKQo+ID4gPiA+ID4gPiA+ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4g PiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ICsJCQltYXN0ZXJfY29ubl9zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKPiA+ID4gPiA+ID4gPiA+ID4g KwkJCQkJCQkJCSAgIG1hc3Rlcl9jb25uZWN0b3IpOwo+ID4gPiA+ID4gPiA+ID4gPiArCQkJaWYg KElTX0VSUihtYXN0ZXJfY29ubl9zdGF0ZSkpIHsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJ CQkJcmV0dXJuIFBUUl9FUlIobWFzdGVyX2Nvbm5fc3RhdGUpOwo+ID4gPiA+ID4gPiA+ID4gPiAr CQkJfQo+ID4gPiA+ID4gPiA+ID4gPiArCQkJaWYgKG1hc3Rlcl9jb25uX3N0YXRlLT5jcnRjKSB7 Cj4gPiA+ID4gPiA+ID4gPiA+ICsJCQkJbWFzdGVyX2NydGMgPSBtYXN0ZXJfY29ubl9zdGF0ZS0+ Y3J0YzsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQlicmVhazsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJ CX0KPiA+ID4gPiA+ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4gPiA+ID4gPiArCQlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7Cj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4g PiA+ID4gPiA+ID4gKwkJaWYgKCFtYXN0ZXJfY3J0Yykgewo+ID4gPiA+ID4gPiA+ID4gPiArCQkJ RFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGFkZCBNYXN0ZXIgQ1JUQyBmb3IgU2xhdmUgQ1JUQyAl ZFxuIiwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQkgICAgICBjb25uZWN0b3Jfc3RhdGUtPmNydGMt PmJhc2UuaWQpOwo+ID4gPiA+ID4gPiA+ID4gPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4g PiA+ID4gPiA+ICsJCX0KPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiArCQlt YXN0ZXJfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsCj4gPiA+ ID4gPiA+ID4gPiA+ICsJCQkJCQkJICAgICAgbWFzdGVyX2NydGMpOwo+ID4gPiA+ID4gPiA+ID4g PiArCQlpZiAoSVNfRVJSKG1hc3Rlcl9jcnRjX3N0YXRlKSkKPiA+ID4gPiA+ID4gPiA+ID4gKwkJ CXJldHVybiBQVFJfRVJSKG1hc3Rlcl9jcnRjX3N0YXRlKTsKPiA+ID4gPiA+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gPiA+ID4gPiArCQljcnRjX3N0YXRlLT5tYXN0ZXJfY3J0YyA9IHRvX2ludGVsX2Ny dGMobWFzdGVyX2NydGMpOwo+ID4gPiA+ID4gPiA+ID4gPiArCQl0b19pbnRlbF9jcnRjX3N0YXRl KG1hc3Rlcl9jcnRjX3N0YXRlKS0+dHJhbnNfcG9ydF9zeW5jX3NsYXZlcyB8PQo+ID4gPiA+ID4g PiA+ID4gPiArCQkJQklUKHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGUpOwo+ID4gPiA+ID4gPiA+ ID4gPiArCQlEUk1fREVCVUdfS01TKCJNYXN0ZXIgQ1JUQyA9ICVkIGFkZGVkIGZvciBTbGF2ZSBD UlRDID0gJWRcbiwgc2xhdmUgYml0bWFzdCA9ICVkIiwKPiA+ID4gPiA+ID4gPiA+ID4gKwkJCSAg ICAgIG1hc3Rlcl9jcnRjLT5iYXNlLmlkLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkJICAgICAgY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5iYXNlLmlkLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkJICAgICAg dG9faW50ZWxfY3J0Y19zdGF0ZShtYXN0ZXJfY3J0Y19zdGF0ZSktPnRyYW5zX3BvcnRfc3luY19z bGF2ZXMpOwo+ID4gPiA+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiA+ID4gPiArCXJldHVybiAwOwo+ID4gPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ID4gPiA+ID4gIAkJCQkgICBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gPiA+ID4gPiA+ICB7Cj4gPiA+ ID4gPiA+ID4gPiA+IEBAIC0xMTc5NSw2ICsxMTg3NSw5IEBAIGNsZWFyX2ludGVsX2NydGNfc3Rh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gPiA+ID4gPiA+ ICAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwKPiA+ID4gPiA+ID4gPiA+ID4gIAkgICAgSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiA+ID4gPiA+ ID4gPiA+ICAJCXNhdmVkX3N0YXRlLT53bSA9IGNydGNfc3RhdGUtPndtOwo+ID4gPiA+ID4gPiA+ ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+ID4gPiA+ID4gPiA+ID4gPiAr CQlzYXZlZF9zdGF0ZS0+dHJhbnNfcG9ydF9zeW5jX3NsYXZlcyA9Cj4gPiA+ID4gPiA+ID4gPiA+ ICsJCQljcnRjX3N0YXRlLT50cmFuc19wb3J0X3N5bmNfc2xhdmVzOwo+ID4gPiA+ID4gPiA+ID4g PiAgCj4gPiA+ID4gPiA+ID4gPiA+ICAJLyogS2VlcCBiYXNlIGRybV9jcnRjX3N0YXRlIGludGFj dCwgb25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3RydWN0ICovCj4gPiA+ID4gPiA+ID4gPiA+ICAJ QlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBiYXNlKSk7Cj4g PiA+ID4gPiA+ID4gPiA+IEBAIC0xMTg4OCw2ICsxMTk3MSwxMiBAQCBpbnRlbF9tb2Rlc2V0X3Bp cGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ID4gPiA+ID4gIAlkcm1f bW9kZV9zZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUsCj4gPiA+ ID4gPiA+ID4gPiA+ICAJCQkgICAgICBDUlRDX1NURVJFT19ET1VCTEUpOwo+ID4gPiA+ID4gPiA+ ID4gPiAgCj4gPiA+ID4gPiA+ID4gPiA+ICsJcmV0ID0gaWNsX2FkZF9nZW5sb2NrX2NydGNzKGNy dGMsIHBpcGVfY29uZmlnLCBzdGF0ZSk7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJaWYgKHJldCkgewo+ ID4gPiA+ID4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJcbjhLIERlYnVnOiBDYW5ub3QgYXNz aWduIGdlbmxvY2sgY3J0Y3MiKTsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ ID4gPiA+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4g IAkvKiBQYXNzIG91ciBtb2RlIHRvIHRoZSBjb25uZWN0b3JzIGFuZCB0aGUgQ1JUQyB0byBnaXZl IHRoZW0gYSBjaGFuY2UgdG8KPiA+ID4gPiA+ID4gPiA+ID4gIAkgKiBhZGp1c3QgaXQgYWNjb3Jk aW5nIHRvIGxpbWl0YXRpb25zIG9yIGNvbm5lY3RvciBwcm9wZXJ0aWVzLCBhbmQgYWxzbwo+ID4g PiA+ID4gPiA+ID4gPiAgCSAqIGEgY2hhbmNlIHRvIHJlamVjdCB0aGUgbW9kZSBlbnRpcmVseS4K PiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gSSB0aGdpbmsgd2Ugc2hvdWxkIGV4dGVu ZCBvbiB0aGlzIHRvIG1ha2UgbWFzdGVyL3NsYXZlIG1vZGUgd29yayBieSBkb2luZyB3aGF0IG1h dHQgcm9wZXIgd2FzIHdvcmtpbmcgb24sIGluIGNvbGxhYm9yYXRpb24gd2l0aCBWaWxsZT8KPiA+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gY3J0Yy0+c3RhdGUgcG9pbnRzIHRvIGRybV9j cnRjX3N0YXRlLCB3aGljaCBpcyB0aGUgdWFwaSBzdGF0ZSwgYnV0IGFsc28gY29udGFpbnMgYSBz aGFkb3cgc3RydWN0IGludGVsX2NydGNfc3RhdGUsIHdoaWNoIGlzIHRoZSBhY3R1YWwgaHcgc3Rh dGUuIEl0IGhhcyBpdHMgb3duIGRybV9jcnRjX3N0YXRlIG9iamVjdCBmb3IgdGhlIHJlYWwgc3Rh dGUsIHdoaWNoIGdldHMgY29waWVkIGFmdGVyIGNoZWNrLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiBUaGlzIHNob3VsZCB0aGVuIGFsc28gYmUgZG9uZSBmb3IgaW50ZWxfcGxhbmVf c3RhdGUsIHdoaWNoIHdpbGwgYWxsb3cgdXMgdG8gY29ycmVjdGx5IGhhbmRsZSB0aGlzIG1vZGUu Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gSSBkb24ndCB0aGluayB0aGVyZSdzIGFueSBs aW5rYWdlIGJldHdlZW4gdGhpcyBhbmQgdGhlIDItcGlwZS0xLXBvcnQKPiA+ID4gPiA+ID4gPiBj YXNlcyBvdGhlciB0aGFuIHdlIG1pZ2h0IHdhbnQgdG8gaGFuZGxlIHRpbGVkIGRpc3BsYXlzIHRo YXQgd2F5IG9uZQo+ID4gPiA+ID4gPiA+IGRheSB0byBtYWtlIGxpZmUgZWFzaWVyIGZvciB1c2Vy c3BhY2UuIEJ1dCB0aGF0IGhhcyBvdGhlciBpc3N1ZXMgc3VjaAo+ID4gPiA+ID4gPiA+IGFzIHdl J2QgaGF2ZSB0byBnZW5lcmF0ZSBhIG5ldyBFRElEIGZvciB0aGUgd2hvbGUgZGlzcGxheSBmcm9t IHRoZSBFRElEcwo+ID4gPiA+ID4gPiA+IG9mIHRoZSB0aWxlcy4KPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiBBbHNvIHdlIG1heWJlIHdhbnQgcG9ydCBzeW5jIGZvciAxMDAlIGluZGVwZW5k ZW50IGRpc3BsYXlzIHRvby4gU28gSU1PCj4gPiA+ID4gPiA+ID4gbm8gcG9pbnQgaW4gdHJ5aW5n IHRvIHNob2Vob3JuIGJvdGggdGhpbmdzIGludG8gdGhlIHNhbWUgYnVja2V0Lgo+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gSSBhZ3JlZSwgYWxzbyB0aGUgdGlsZWQgZGlzcGxheSBjYXNlIGlzIHNp bXBsZSBpbiB0ZXJtcyBvZiB0aGUgc3RhdGVzIHNpbmNlIGl0cyAyIGNvbm5lY3RvcnMgYW5kIDIg Y3J0Y3MgZXhwb3NlZCB0byB0aGUgdXNlcnNwYWNlCj4gPiA+ID4gPiA+IHNvIHRoZSB1c2Vyc3Bh Y2Ugd2lsbCBjcmVhdGUgdHdvIHN0YXRlcyBhbmQgdGhleSBhcmUgdXNlZCBhcyBpcyBmb3IgdGhl IHR3byBjcnRjcywgdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHdlIG5lZWQgdG8gcHJvZ3Jh bQo+ID4gPiA+ID4gPiBvbmUgYXMgYSBzbGF2ZSBhbmQgdGhlIG90aGVyIGFzIG1hc3RlciBhbmQg ZmluZCBhIHdheSB0byBzdG9yZSBhIHBvaW50ZXIgdG8gbWFzdGVyIGZyb20gdGhlIHNsYXZlIHNp bmNlIHdlIG5lZWQgdG8gdXNlIHRoYXQKPiA+ID4gPiA+ID4gdG8gY29uZmlndXJlIGFuZCBlbmFi bGUgdHJhbnNjb2RlciBwb3J0IHN5bmMgd2hpbGUgZW5hYmxpbmcgc2xhdmUgQ1JUQy4KPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+IFNvIG9uIHRob3NlIGxpbmVzLCBpZiBpIHN0b3JlIHRoZSBtYXN0 ZXIgdHJhbnNjb2RlciBkaXJlY3RseSBpbiB0aGUgc2xhdmUgY3J0YyBzdGF0ZSB0aGVuIHRyYW5z ID0gMCBpcyB2YWxpZCBmb3IgdHJhbnMgQSB0aGVuIGhvdwo+ID4gPiA+ID4gPiBkbyBJIGlkZW50 aWZ5IHdoaWNoIGNydGMgaXMgc2xhdmU/Cj4gPiA+ID4gPiA+IEN1cnJlbnRseSBJIGNoZWNrIGZv ciAhbWFzdGVyX2NydGMgYW5kIHRoYXQgdGVsbHMgbWUgdGhhdCBpdCBpcyBub3Qgc2xhdmUuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IElOVkFMSURfVFJBTlNDT0RERVIgb3Igc29tZXRoaW5nPwo+ID4g PiA+IAo+ID4gPiA+IEFjdHVhbGx5IEkganVzdCByZWFsaXplZCB0aGF0IGluIHRoZSBod19zdGF0 ZV9yZWFkb3V0IGFmdGVyIGkgZ2V0IHRoZSB0cmFuc2NvZGVyIHdoaWNoIHdvdWxkIGJlIHNhbWUg YXMgcGlwZSwKPiA+ID4gPiBjYW4gSSBqdXN0IHVzZSB0aGUgaW50ZWxfZ2V0X2NydGNfZm9yX3Bp cGUoKSBmdW5jdGlvbiB0byBnZXQgdGhlIGludGVsX2NydGMqIHdoaWNoIHNob3VsZCBtYXRjaCB0 aGUgbWFzdGVyX2NydGMgc2F2ZWQKPiA+ID4gPiBpbiBzbGF2ZSBjcnRjX3N0YXRlLCB3aGEgZG8g eW91IHRoaW5rPwo+ID4gPiAKPiA+ID4gT25seSBpZiB5b3UgaWdub3JlIHRoZSBmYWN0IHRoYXQg dHJhbnNjb2RlciBFRFAgY2FuIGJlIHRoZSBtYXN0ZXIuCj4gPiAKPiA+IEFjdHVhbGx5IFRyYW5z Y29kZXIgRURQIGNhbiBuZXZlciBiZSB0aGUgbWFzdGVyIHNvIHRoZXJlIHNob3VsZCBiZSBhIHdh cm5pbmcgaWYgVFJBTlNDT0RFUiBFRFAgZ2V0cyBzZXQgYXMgYSBtYXN0ZXIgaW4gdGVoIGNvbmZp Z3VyYXRpb24gdGltZSBpdHNlbGYuCj4gCj4gSUlSQyB0aGUgZG9jcyBzYXkgaXQgY2FuIGJlIG1h c3RlciwgYnV0IG5vdCBzbGF2ZS4KClNvIGl0cyBwcm9iYWJseSBiZXR0ZXIgdG8ganVzdCBzdG9y ZSB0aGUgbWFzdGVyIGNwdSB0cmFuc2NvZGVyIGRpcmVjdGx5IGluIHRoZSBzbGF2ZSBjcnRjIHN0 YXRlLiBJbiB0aGF0IGNhc2UsIEkgd2lsbCBoYXZlIHRvIGFkZCBUUkFOU0NPREVSX0lOVkFMSUQg PSAtMQp0byB0aGUgZW51bSB0cmFuc2NvZGVyIGp1c3QgbGlrZSB3ZSBkbyBmb3IgdGhlIFBJUEVf SU5WQUxJRCBhbmQgdGhlbiBJIGNhbiB1c2UgVFJBTlNDT0RFUl9JTlZBTElEIHRvICBkZWNpZGUg d2hldGhlciBpdHMgYSBzbGF2ZSBvciBtYXN0ZXIuCgpBbHNvIGZvciB0cmFuc19wb3J0X3N5bmNf c2xhdmVzIGJpdG1hc2ssIGluIHRoZSBIVyBzdGF0ZSByZWFkb3V0IGZvciBtYXN0ZXIgQ1JUQywg SSB3aWxsIGxvb3AgdGhyb3VnaCBhbGwgdGhlIGFjdGl2ZSB0cmFuc2NvZGVycyBhbmQgZmluZCB0 aGUgcGlwZSBmb3IgdGhlCnRyYW5zY29kZXJzIHRoYXQgaGF2ZSBwb3J0IHN5bmMgZW5hYmxlIHNl dCBpbiB0aGVpciBUUkFOU19QT1JUX1NZTkMgcmVnCgpEb2VzIHRoaXMgc291bmQgbGlrZSBhIGNv cnJlY3QgYXBwcm9hY2g/CgpNYW5hc2kKCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50 ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4