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: Wed, 12 Jun 2019 13:59:52 -0700 Message-ID: <20190612205951.GC5765@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 33DF489265 for ; Wed, 12 Jun 2019 20:58:07 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190612193055.GR5942@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 T24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTA6MzA6NTVQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgSnVuIDEyLCAyMDE5IGF0IDEyOjExOjAyUE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAxMDowNDoyNlBNICsw MzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgSnVuIDEyLCAyMDE5IGF0 IDExOjM5OjAzQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gPiA+IE9wIDIz LTA0LTIwMTkgb20gMTc6NDggc2NocmVlZiBNYW5hc2kgTmF2YXJlOgo+ID4gPiA+ID4gSW4gY2Fz ZSBvZiB0aWxlZCBkaXNwbGF5cyB3aGVuIHRoZSB0d28gdGlsZXMgYXJlIHNlbnQgYWNyb3NzIHR3 byBDUlRDcwo+ID4gPiA+ID4gb3ZlciB0d28gc2VwYXJhdGUgRFAgU1NUIGNvbm5lY3RvcnMsIHdl IG5lZWQgYSBtZWNoYW5pc20gdG8gc3luY2hyb25pemUKPiA+ID4gPiA+IHRoZSB0d28gQ1JUQ3Mg YW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdHJhbnNjb2RlcnMuCj4gPiA+ID4gPiBTbyB1c2UgdGhl IG1hc3Rlci1zbGF2ZSBtb2RlIHdoZXJlIHRoZXJlIGlzIG9uZSBtYXN0ZXIgY29ycmVzcG9uZGlu Zwo+ID4gPiA+ID4gdG8gbGFzdCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCB0aWxlIHRoYXQgbmVl ZHMgdG8gYmUgZ2VubG9ja2VkIHdpdGgKPiA+ID4gPiA+IGFsbCBvdGhlciBzbGF2ZSB0aWxlcy4K PiA+ID4gPiA+IFRoaXMgcGF0Y2ggaWRlbnRpZmllcyBzYXZlcyB0aGUgbWFzdGVyIENSVEMgcG9p bnRlciBpbiBhbGwgdGhlIHNsYXZlCj4gPiA+ID4gPiBDUlRDIHN0YXRlcy4gVGhpcyBwb2ludGVy IGlzIG5lZWRlZCB0byBzZWxlY3QgdGhlIG1hc3RlciBDUlRDL3RyYW5zY29kZXIKPiA+ID4gPiA+ IHdoaWxlIGNvbmZpZ3VyaW5nIHRyYW5zY29kZXIgcG9ydCBzeW5jIGZvciB0aGUgY29ycmVzcG9u ZGluZyBzbGF2ZXMuCj4gPiA+ID4gPgo+ID4gPiA+ID4gdjI6Cj4gPiA+ID4gPiAqIE1vdmUgdGhp cyB0byBpbnRlbF9tb2RlX3NldF9waXBlX2NvbmZpZyhKYW5pIE4sIFZpbGxlKQo+ID4gPiA+ID4g KiBVc2Ugc2xhdmVfYml0bWFzayB0byBzYXZlIGFzc29jaWF0ZWQgc2xhdmVzIGluIG1hc3RlciBj cnRjIHN0YXRlIChWaWxsZSkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hv cnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiBDYzogTWF0 dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiA+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ID4gPiAt LS0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA4OSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgIHwgIDYgKysKPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDk1 IGluc2VydGlvbnMoKykKPiA+ID4gPiA+Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPiA+ID4gPiBpbmRleCBiMjc2MzQ1Nzc5ZTYuLjkyZGVhMjIzMTQ5OSAxMDA2 NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ ID4gPiBAQCAtMTEzMTYsNiArMTEzMTYsODYgQEAgc3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9w bGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gPiAgCXJl dHVybiAwOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0aWMgaW50IGlj bF9hZGRfZ2VubG9ja19jcnRjcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ID4gPiArCQkJ CSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gPiA+ICsJCQkJIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjLT5kZXYpOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqbWFzdGVyX2Nv bm5lY3RvciwgKmNvbm5lY3RvcjsKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3JfbGlz dF9pdGVyIGNvbm5faXRlcjsKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRjICptYXN0ZXJfY3J0 YyA9IE5VTEw7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbWFzdGVyX2NydGNf c3RhdGU7Cj4gPiA+ID4gPiArCWludCBpLCB0aWxlX2dyb3VwX2lkOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ID4gPiA+ID4gKwkJcmV0dXJu IDA7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qCj4gPiA+ID4gPiArCSAqIEluIGNhc2Ugb2Yg dGlsZWQgZGlzcGxheXMgdGhlcmUgY291bGQgYmUgb25lIG9yIG1vcmUgc2xhdmVzIGJ1dCB0aGVy ZSBpcwo+ID4gPiA+ID4gKwkgKiBvbmx5IG9uZSBtYXN0ZXIuIExldHMgbWFrZSB0aGUgQ1JUQyB1 c2VkIGJ5IHRoZSBjb25uZWN0b3IgY29ycmVzcG9uZGluZwo+ID4gPiA+ID4gKwkgKiB0byB0aGUg bGFzdCBob3Jpem9uYWwgYW5kIGxhc3QgdmVydGljYWwgdGlsZSBhIG1hc3Rlci9nZW5sb2NrIENS VEMuCj4gPiA+ID4gPiArCSAqIEFsbCB0aGUgb3RoZXIgQ1JUQ3MgY29ycmVzcG9uZGluZyB0byBv dGhlciB0aWxlcyBvZiB0aGUgc2FtZSBUaWxlIGdyb3VwCj4gPiA+ID4gPiArCSAqIGFyZSB0aGUg c2xhdmUgQ1JUQ3MgYW5kIGhvbGQgYSBwb2ludGVyIHRvIHRoZWlyIGdlbmxvY2sgQ1JUQy4KPiA+ ID4gPiA+ICsJICovCj4gPiA+ID4gPiArCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUo c3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiA+ID4gPiArCQlpZiAo Y29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGMpCj4gPiA+ID4gPiArCQkJY29udGludWU7Cj4g PiA+ID4gPiArCQlpZiAoIWNvbm5lY3Rvci0+aGFzX3RpbGUpCj4gPiA+ID4gPiArCQkJY29udGlu dWU7Cj4gPiA+ID4gPiArCQlpZiAoY29ubmVjdG9yLT50aWxlX2hfbG9jID09IGNvbm5lY3Rvci0+ bnVtX2hfdGlsZSAtIDEgJiYKPiA+ID4gPiA+ICsJCSAgICBjb25uZWN0b3ItPnRpbGVfdl9sb2Mg PT0gY29ubmVjdG9yLT5udW1fdl90aWxlIC0gMSkKPiA+ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ ID4gPiA+ICsJCWNydGNfc3RhdGUtPm1hc3Rlcl9jcnRjID0gTlVMTDsKPiA+ID4gPiA+ICsJCXRp bGVfZ3JvdXBfaWQgPSBjb25uZWN0b3ItPnRpbGVfZ3JvdXAtPmlkOwo+ID4gPiA+ID4gKwkJZHJt X2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oJmRldl9wcml2LT5kcm0sICZjb25uX2l0ZXIpOwo+ ID4gPiA+ID4gKwkJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKG1hc3Rlcl9jb25uZWN0b3Is ICZjb25uX2l0ZXIpIHsKPiA+ID4gPiA+ICsJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bWFzdGVyX2Nvbm5fc3RhdGUgPSBOVUxMOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJCWlmICgh bWFzdGVyX2Nvbm5lY3Rvci0+aGFzX3RpbGUpCj4gPiA+ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4g PiA+ID4gKwkJCWlmIChtYXN0ZXJfY29ubmVjdG9yLT50aWxlX2hfbG9jICE9IG1hc3Rlcl9jb25u ZWN0b3ItPm51bV9oX3RpbGUgLSAxIHx8Cj4gPiA+ID4gPiArCQkJICAgIG1hc3Rlcl9jb25uZWN0 b3ItPnRpbGVfdl9sb2MgIT0gbWFzdGVyX2Nvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCj4gPiA+ ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gKwkJCWlmIChtYXN0ZXJfY29ubmVjdG9yLT50 aWxlX2dyb3VwLT5pZCAhPSB0aWxlX2dyb3VwX2lkKQo+ID4gPiA+ID4gKwkJCQljb250aW51ZTsK PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCQltYXN0ZXJfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKPiA+ID4gPiA+ICsJCQkJCQkJCQkgICBtYXN0ZXJf Y29ubmVjdG9yKTsKPiA+ID4gPiA+ICsJCQlpZiAoSVNfRVJSKG1hc3Rlcl9jb25uX3N0YXRlKSkg ewo+ID4gPiA+ID4gKwkJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7 Cj4gPiA+ID4gPiArCQkJCXJldHVybiBQVFJfRVJSKG1hc3Rlcl9jb25uX3N0YXRlKTsKPiA+ID4g PiA+ICsJCQl9Cj4gPiA+ID4gPiArCQkJaWYgKG1hc3Rlcl9jb25uX3N0YXRlLT5jcnRjKSB7Cj4g PiA+ID4gPiArCQkJCW1hc3Rlcl9jcnRjID0gbWFzdGVyX2Nvbm5fc3RhdGUtPmNydGM7Cj4gPiA+ ID4gPiArCQkJCWJyZWFrOwo+ID4gPiA+ID4gKwkJCX0KPiA+ID4gPiA+ICsJCX0KPiA+ID4gPiA+ ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJCWlmICghbWFzdGVyX2NydGMpIHsKPiA+ID4gPiA+ICsJCQlEUk1fREVCVUdf S01TKCJDb3VsZCBub3QgYWRkIE1hc3RlciBDUlRDIGZvciBTbGF2ZSBDUlRDICVkXG4iLAo+ID4g PiA+ID4gKwkJCQkgICAgICBjb25uZWN0b3Jfc3RhdGUtPmNydGMtPmJhc2UuaWQpOwo+ID4gPiA+ ID4gKwkJCXJldHVybiAtRUlOVkFMOwo+ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gKwkJbWFzdGVyX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRl LAo+ID4gPiA+ID4gKwkJCQkJCQkgICAgICBtYXN0ZXJfY3J0Yyk7Cj4gPiA+ID4gPiArCQlpZiAo SVNfRVJSKG1hc3Rlcl9jcnRjX3N0YXRlKSkKPiA+ID4gPiA+ICsJCQlyZXR1cm4gUFRSX0VSUiht YXN0ZXJfY3J0Y19zdGF0ZSk7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQljcnRjX3N0YXRlLT5t YXN0ZXJfY3J0YyA9IHRvX2ludGVsX2NydGMobWFzdGVyX2NydGMpOwo+ID4gPiA+ID4gKwkJdG9f aW50ZWxfY3J0Y19zdGF0ZShtYXN0ZXJfY3J0Y19zdGF0ZSktPnRyYW5zX3BvcnRfc3luY19zbGF2 ZXMgfD0KPiA+ID4gPiA+ICsJCQlCSVQodG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZSk7Cj4gPiA+ ID4gPiArCQlEUk1fREVCVUdfS01TKCJNYXN0ZXIgQ1JUQyA9ICVkIGFkZGVkIGZvciBTbGF2ZSBD UlRDID0gJWRcbiwgc2xhdmUgYml0bWFzdCA9ICVkIiwKPiA+ID4gPiA+ICsJCQkgICAgICBtYXN0 ZXJfY3J0Yy0+YmFzZS5pZCwKPiA+ID4gPiA+ICsJCQkgICAgICBjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmJhc2UuaWQsCj4gPiA+ID4gPiArCQkJICAgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShtYXN0 ZXJfY3J0Y19zdGF0ZSktPnRyYW5zX3BvcnRfc3luY19zbGF2ZXMpOwo+ID4gPiA+ID4gKwl9Cj4g PiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiAwOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiA+ID4gPiA+ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IEBAIC0xMTc5NSw2ICsxMTg3NSw5IEBAIGNs ZWFyX2ludGVsX2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gPiA+ID4gPiAgCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8Cj4gPiA+ID4gPiAgCSAgICBJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ ICAJCXNhdmVkX3N0YXRlLT53bSA9IGNydGNfc3RhdGUtPndtOwo+ID4gPiA+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+ID4gPiA+ICsJCXNhdmVkX3N0YXRlLT50cmFuc19w b3J0X3N5bmNfc2xhdmVzID0KPiA+ID4gPiA+ICsJCQljcnRjX3N0YXRlLT50cmFuc19wb3J0X3N5 bmNfc2xhdmVzOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKiBLZWVwIGJhc2UgZHJtX2NydGNf c3RhdGUgaW50YWN0LCBvbmx5IGNsZWFyIG91ciBleHRlbmRlZCBzdHJ1Y3QgKi8KPiA+ID4gPiA+ ICAJQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBiYXNlKSk7 Cj4gPiA+ID4gPiBAQCAtMTE4ODgsNiArMTE5NzEsMTIgQEAgaW50ZWxfbW9kZXNldF9waXBlX2Nv bmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ID4gPiAgCWRybV9tb2RlX3NldF9jcnRj aW5mbygmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSwKPiA+ID4gPiA+ICAJCQkgICAg ICBDUlRDX1NURVJFT19ET1VCTEUpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlyZXQgPSBpY2xf YWRkX2dlbmxvY2tfY3J0Y3MoY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKPiA+ID4gPiA+ICsJ aWYgKHJldCkgewo+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiXG44SyBEZWJ1ZzogQ2Fubm90 IGFzc2lnbiBnZW5sb2NrIGNydGNzIik7Cj4gPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiA+ ID4gKwl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCS8qIFBhc3Mgb3VyIG1vZGUgdG8gdGhlIGNv bm5lY3RvcnMgYW5kIHRoZSBDUlRDIHRvIGdpdmUgdGhlbSBhIGNoYW5jZSB0bwo+ID4gPiA+ID4g IAkgKiBhZGp1c3QgaXQgYWNjb3JkaW5nIHRvIGxpbWl0YXRpb25zIG9yIGNvbm5lY3RvciBwcm9w ZXJ0aWVzLCBhbmQgYWxzbwo+ID4gPiA+ID4gIAkgKiBhIGNoYW5jZSB0byByZWplY3QgdGhlIG1v ZGUgZW50aXJlbHkuCj4gPiA+ID4gCj4gPiA+ID4gSSB0aGdpbmsgd2Ugc2hvdWxkIGV4dGVuZCBv biB0aGlzIHRvIG1ha2UgbWFzdGVyL3NsYXZlIG1vZGUgd29yayBieSBkb2luZyB3aGF0IG1hdHQg cm9wZXIgd2FzIHdvcmtpbmcgb24sIGluIGNvbGxhYm9yYXRpb24gd2l0aCBWaWxsZT8KPiA+ID4g PiAKPiA+ID4gPiBjcnRjLT5zdGF0ZSBwb2ludHMgdG8gZHJtX2NydGNfc3RhdGUsIHdoaWNoIGlz IHRoZSB1YXBpIHN0YXRlLCBidXQgYWxzbyBjb250YWlucyBhIHNoYWRvdyBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSwgd2hpY2ggaXMgdGhlIGFjdHVhbCBodyBzdGF0ZS4gSXQgaGFzIGl0cyBvd24g ZHJtX2NydGNfc3RhdGUgb2JqZWN0IGZvciB0aGUgcmVhbCBzdGF0ZSwgd2hpY2ggZ2V0cyBjb3Bp ZWQgYWZ0ZXIgY2hlY2suCj4gPiA+ID4gCj4gPiA+ID4gVGhpcyBzaG91bGQgdGhlbiBhbHNvIGJl IGRvbmUgZm9yIGludGVsX3BsYW5lX3N0YXRlLCB3aGljaCB3aWxsIGFsbG93IHVzIHRvIGNvcnJl Y3RseSBoYW5kbGUgdGhpcyBtb2RlLgo+ID4gPiAKPiA+ID4gSSBkb24ndCB0aGluayB0aGVyZSdz IGFueSBsaW5rYWdlIGJldHdlZW4gdGhpcyBhbmQgdGhlIDItcGlwZS0xLXBvcnQKPiA+ID4gY2Fz ZXMgb3RoZXIgdGhhbiB3ZSBtaWdodCB3YW50IHRvIGhhbmRsZSB0aWxlZCBkaXNwbGF5cyB0aGF0 IHdheSBvbmUKPiA+ID4gZGF5IHRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIHVzZXJzcGFjZS4gQnV0 IHRoYXQgaGFzIG90aGVyIGlzc3VlcyBzdWNoCj4gPiA+IGFzIHdlJ2QgaGF2ZSB0byBnZW5lcmF0 ZSBhIG5ldyBFRElEIGZvciB0aGUgd2hvbGUgZGlzcGxheSBmcm9tIHRoZSBFRElEcwo+ID4gPiBv ZiB0aGUgdGlsZXMuCj4gPiA+IAo+ID4gPiBBbHNvIHdlIG1heWJlIHdhbnQgcG9ydCBzeW5jIGZv ciAxMDAlIGluZGVwZW5kZW50IGRpc3BsYXlzIHRvby4gU28gSU1PCj4gPiA+IG5vIHBvaW50IGlu IHRyeWluZyB0byBzaG9laG9ybiBib3RoIHRoaW5ncyBpbnRvIHRoZSBzYW1lIGJ1Y2tldC4KPiA+ IAo+ID4gSSBhZ3JlZSwgYWxzbyB0aGUgdGlsZWQgZGlzcGxheSBjYXNlIGlzIHNpbXBsZSBpbiB0 ZXJtcyBvZiB0aGUgc3RhdGVzIHNpbmNlIGl0cyAyIGNvbm5lY3RvcnMgYW5kIDIgY3J0Y3MgZXhw b3NlZCB0byB0aGUgdXNlcnNwYWNlCj4gPiBzbyB0aGUgdXNlcnNwYWNlIHdpbGwgY3JlYXRlIHR3 byBzdGF0ZXMgYW5kIHRoZXkgYXJlIHVzZWQgYXMgaXMgZm9yIHRoZSB0d28gY3J0Y3MsIHRoZSBv bmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB3ZSBuZWVkIHRvIHByb2dyYW0KPiA+IG9uZSBhcyBhIHNs YXZlIGFuZCB0aGUgb3RoZXIgYXMgbWFzdGVyIGFuZCBmaW5kIGEgd2F5IHRvIHN0b3JlIGEgcG9p bnRlciB0byBtYXN0ZXIgZnJvbSB0aGUgc2xhdmUgc2luY2Ugd2UgbmVlZCB0byB1c2UgdGhhdAo+ ID4gdG8gY29uZmlndXJlIGFuZCBlbmFibGUgdHJhbnNjb2RlciBwb3J0IHN5bmMgd2hpbGUgZW5h Ymxpbmcgc2xhdmUgQ1JUQy4KPiA+IAo+ID4gU28gb24gdGhvc2UgbGluZXMsIGlmIGkgc3RvcmUg dGhlIG1hc3RlciB0cmFuc2NvZGVyIGRpcmVjdGx5IGluIHRoZSBzbGF2ZSBjcnRjIHN0YXRlIHRo ZW4gdHJhbnMgPSAwIGlzIHZhbGlkIGZvciB0cmFucyBBIHRoZW4gaG93Cj4gPiBkbyBJIGlkZW50 aWZ5IHdoaWNoIGNydGMgaXMgc2xhdmU/Cj4gPiBDdXJyZW50bHkgSSBjaGVjayBmb3IgIW1hc3Rl cl9jcnRjIGFuZCB0aGF0IHRlbGxzIG1lIHRoYXQgaXQgaXMgbm90IHNsYXZlLgo+IAo+IElOVkFM SURfVFJBTlNDT0RERVIgb3Igc29tZXRoaW5nPwoKQWN0dWFsbHkgSSBqdXN0IHJlYWxpemVkIHRo YXQgaW4gdGhlIGh3X3N0YXRlX3JlYWRvdXQgYWZ0ZXIgaSBnZXQgdGhlIHRyYW5zY29kZXIgd2hp Y2ggd291bGQgYmUgc2FtZSBhcyBwaXBlLApjYW4gSSBqdXN0IHVzZSB0aGUgaW50ZWxfZ2V0X2Ny dGNfZm9yX3BpcGUoKSBmdW5jdGlvbiB0byBnZXQgdGhlIGludGVsX2NydGMqIHdoaWNoIHNob3Vs ZCBtYXRjaCB0aGUgbWFzdGVyX2NydGMgc2F2ZWQKaW4gc2xhdmUgY3J0Y19zdGF0ZSwgd2hhIGRv IHlvdSB0aGluaz8KCk1hbmFzaQoKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=