From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Purushothaman, Vijay A" Subject: Re: [PATCH] drm/i915: More DPIO magic for CHV HDMI & DP Date: Thu, 12 Feb 2015 18:49:21 +0530 Message-ID: <54DCA859.805@linux.intel.com> References: <1422556313-3198-1-git-send-email-vijay.a.purushothaman@linux.intel.com> <20150130110902.GB19354@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 828628931D for ; Thu, 12 Feb 2015 05:24:01 -0800 (PST) In-Reply-To: <20150130110902.GB19354@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: Intel Graphics List-Id: intel-gfx@lists.freedesktop.org T24gMS8zMC8yMDE1IDQ6MzkgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiBPbiBGcmksIEph biAzMCwgMjAxNSBhdCAxMjowMTo1M0FNICswNTMwLCBWaWpheSBQdXJ1c2hvdGhhbWFuIHdyb3Rl Ogo+PiBUaGlzIHBhdGNoIGltcGxlbWVudHMgbGF0ZXN0IGNoYW5nZXMgaW4gR2FpbiwgbG9jayB0 aHJlc2hvbGQgYW5kIGludGVnZXIKPj4gY28tZWZmaWNpZW50IHZhbHVlcyB1c2luZyBzaWRlYmFu ZCByL3cuIFdpdGhvdXQgdGhlc2UgY2hhbmdlcyB0aGVyZSB3aWxsCj4+IGJlIHNpZ25hbCBpbnRl Z3JpdHkgaXNzdWVzIGZvciBib3RoIEhETUkgYW5kIERQLgo+Pgo+PiBDaGFuZ2UtSWQ6IEk3Yjcx NTFiNWFiM2E1MmM0YzkxMmNmMTA2MDJjNjlhN2QxYTcwMjIyCj4+IFNpZ25lZC1vZmYtYnk6IFZp amF5IFB1cnVzaG90aGFtYW4gPHZpamF5LmEucHVydXNob3RoYW1hbkBsaW51eC5pbnRlbC5jb20+ Cj4+IFRlc3RlZC1ieTogSG9uZyBMaXUgPGhvbmcubGl1QGludGVsLmNvbT4KPj4gLS0tCj4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAzMSArKysrKysrKysrKysr KysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICA2NyArKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA3OSBp bnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4+IGluZGV4IDEzN2M1ZTAuLjJiM2YwNjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+PiBAQCAtMTA0OSw2ICsxMDQ5LDM3IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4+ICAg I2RlZmluZSAgIERQSU9fQ0hWX1BST1BfQ09FRkZfU0hJRlQJMAo+PiAgICNkZWZpbmUgQ0hWX1BM TF9EVzYoY2gpIF9QSVBFKGNoLCBfQ0hWX1BMTF9EVzZfQ0gwLCBfQ0hWX1BMTF9EVzZfQ0gxKQo+ PiAgIAo+PiArI2RlZmluZSBfQ0hWX1BMTF9EVzdfQ0gwCQkweDgwMWMKPj4gKyNkZWZpbmUgX0NI Vl9QTExfRFc3X0NIMQkJMHg4MDNjCj4+ICsjZGVmaW5lIENIVl9QTExfRFc3KGNoKSBfUElQRShj aCwgX0NIVl9QTExfRFc3X0NIMCwgX0NIVl9QTExfRFc3X0NIMSkKPiB1bnVzZWQKSSB3aWxsIHJl bW92ZSB0aGVzZSBkZWZpbml0aW9ucyBpbiB0aGUgbmV4dCBwYXRjaCBzZXJpZXMuCgo+Cj4+ICsK Pj4gKyNkZWZpbmUgX0NIVl9QTExfRFc4X0NIMAkJMHg4MDIwCj4+ICsjZGVmaW5lIF9DSFZfUExM X0RXOF9DSDEJCTB4ODFBMAo+PiArI2RlZmluZSBDSFZfUExMX0RXOChjaCkgX1BJUEUoY2gsIF9D SFZfUExMX0RXOF9DSDAsIF9DSFZfUExMX0RXOF9DSDEpCj4+ICsKPj4gKyNkZWZpbmUgX0NIVl9Q TExfRFc5X0NIMAkJMHg4MDI0Cj4+ICsjZGVmaW5lIF9DSFZfUExMX0RXOV9DSDEJCTB4ODFBNAo+ PiArI2RlZmluZSAgRFBJT19DSFZfSU5UX0xPQ0tfVEhSRVNIT0xEX1NISUZUCQkxIC8qIDMgYml0 cyAqLwo+PiArI2RlZmluZSAgRFBJT19DSFZfSU5UX0xPQ0tfVEhSRVNIT0xEX1NFTF9DT0FSU0UJ MSAvKiAxOiBjb2Fyc2UgJiAwIDogZmluZSAgKi8KPj4gKyNkZWZpbmUgQ0hWX1BMTF9EVzkoY2gp IF9QSVBFKGNoLCBfQ0hWX1BMTF9EVzlfQ0gwLCBfQ0hWX1BMTF9EVzlfQ0gxKQo+PiArCj4+ICsj ZGVmaW5lIF9DSFZfUExMX0RXMTBfQ0gwCQkweDgwNDAKPj4gKyNkZWZpbmUgX0NIVl9QTExfRFcx MF9DSDEJCTB4ODA2MAo+PiArI2RlZmluZSBDSFZfUExMX0RXMTAoY2gpIF9QSVBFKGNoLCBfQ0hW X1BMTF9EVzEwX0NIMCwgX0NIVl9QTExfRFcxMF9DSDEpCj4+ICsKPj4gKyNkZWZpbmUgX0NIVl9Q TExfRFcxMV9CQ0FTVAkJMHhDMDQ0Cj4+ICsjZGVmaW5lIF9DSFZfUExMX0RXMTFfQ0gwCQkweDgw NDQKPj4gKyNkZWZpbmUgX0NIVl9QTExfRFcxMV9DSDEJCTB4ODA2NAo+PiArI2RlZmluZSBDSFZf UExMX0RXMTEoY2gpIF9QSVBFKGNoLCBfQ0hWX1BMTF9EVzExX0NIMCwgX0NIVl9QTExfRFcxMV9D SDEpCj4+ICsKPj4gKyNkZWZpbmUgX0NIVl9QTExfRFcxMl9DSDAJCTB4ODA0OAo+PiArI2RlZmlu ZSBfQ0hWX1BMTF9EVzEyX0NIMQkJMHg4MDY4Cj4+ICsjZGVmaW5lIENIVl9QTExfRFcxMihjaCkg X1BJUEUoY2gsIF9DSFZfUExMX0RXMTJfQ0gwLCBfQ0hWX1BMTF9EVzEyX0NIMSkKPj4gKwo+PiAr I2RlZmluZSBfQ0hWX1BMTF9EVzEzX0NIMAkJMHg4MDRDCj4+ICsjZGVmaW5lIF9DSFZfUExMX0RX MTNfQ0gxCQkweDgwNkMKPj4gKyNkZWZpbmUgQ0hWX1BMTF9EVzEzKGNoKSBfUElQRShjaCwgX0NI Vl9QTExfRFcxM19DSDAsIF9DSFZfUExMX0RXMTNfQ0gxKQo+IERXMTAtRFcxMyBhcmUgdW51c2Vk IGFzIHdlbGwKSSB3aWxsIHJlbW92ZSB0aGVzZSBkZWZpbml0aW9ucyBhcyB3ZWxsLgoKPj4gKwo+ PiAgICNkZWZpbmUgX0NIVl9DTU5fRFc1X0NIMCAgICAgICAgICAgICAgIDB4ODExNAo+PiAgICNk ZWZpbmUgICBDSFZfQlVGUklHSFRFTkExX0RJU0FCTEUJKDAgPDwgMjApCj4+ICAgI2RlZmluZSAg IENIVl9CVUZSSUdIVEVOQTFfTk9STUFMCSgxIDw8IDIwKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4+IGluZGV4IGMzNjJkMTFlLi5mYjI3ZmFmIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC02NTc2LDkgKzY1NzYsOSBAQCBzdGF0aWMg dm9pZCBjaHZfdXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gICAJaW50IHBp cGUgPSBjcnRjLT5waXBlOwo+PiAgIAlpbnQgZHBsbF9yZWcgPSBEUExMKGNydGMtPnBpcGUpOwo+ PiAgIAllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X3BpcGVfdG9fY2hhbm5lbChwaXBlKTsK Pj4gLQl1MzIgbG9vcGZpbHRlciwgaW50Y29lZmY7Cj4+ICsJdTMyIGxvb3BmaWx0ZXIsIHRyaWJ1 Zl9jYWxjbnRyOwo+PiAgIAl1MzIgYmVzdG4sIGJlc3RtMSwgYmVzdG0yLCBiZXN0cDEsIGJlc3Rw MiwgYmVzdG0yX2ZyYWM7Cj4+IC0JaW50IHJlZmNsazsKPj4gKwlpbnQgdmNvOwo+PiAgIAo+PiAg IAljcnRjLT5jb25maWcuZHBsbF9od19zdGF0ZS5kcGxsID0gRFBMTF9TU0NfUkVGX0NMT0NLX0NI ViB8Cj4+ICAgCQlEUExMX1JFRkFfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUyB8 Cj4+IEBAIC02NTk1LDYgKzY1OTUsNyBAQCBzdGF0aWMgdm9pZCBjaHZfdXBkYXRlX3BsbChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gICAJYmVzdG0yID0gY3J0Yy0+Y29uZmlnLmRwbGwubTIg Pj4gMjI7Cj4+ICAgCWJlc3RwMSA9IGNydGMtPmNvbmZpZy5kcGxsLnAxOwo+PiAgIAliZXN0cDIg PSBjcnRjLT5jb25maWcuZHBsbC5wMjsKPj4gKwl2Y28gPSBjcnRjLT5jb25maWcuZHBsbC52Y287 Cj4+ICAgCj4+ICAgCS8qCj4+ICAgCSAqIEVuYWJsZSBSZWZjbGsgYW5kIFNTQwo+PiBAQCAtNjYx OSwzMSArNjYyMCw1OSBAQCBzdGF0aWMgdm9pZCBjaHZfdXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPj4gICAJCQlEUElPX0NIVl9NMV9ESVZfQllfMiB8Cj4+ICAgCQkJMSA8PCBE UElPX0NIVl9OX0RJVl9TSElGVCk7Cj4+ICAgCj4+IC0JLyogTTIgZnJhY3Rpb24gZGl2aXNpb24g Ki8KPj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgQ0hWX1BMTF9EVzIocG9ydCks IGJlc3RtMl9mcmFjKTsKPj4gKwlpZiAoYmVzdG0yX2ZyYWMpIHsKPj4gKwkJLyogTTIgZnJhY3Rp b24gZGl2aXNpb24gKi8KPj4gKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9Q TExfRFcyKHBvcnQpLCBiZXN0bTJfZnJhYyk7Cj4+ICsKPj4gKwkJLyogTTIgZnJhY3Rpb24gZGl2 aXNpb24gZW5hYmxlICovCj4+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZf UExMX0RXMyhwb3J0KSwKPj4gKwkJCQl2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBDSFZf UExMX0RXMyhwb3J0KSkgJgo+IHMvJi98Lwo+Cj4gQXMgYSBnZW5lcmFsIHN0eWxlIGlzc3VlIEkg ZG9uJ3QgbGlrZSBoaWRpbmcgdGhlIHZsdl9kcGlvX3JlYWQoKSBpbnNpZGUKPiB0aGUgdmx2X2Rw aW9fd3JpdGUoKS4gU28gdGhlIHBhdHRlciBoYXMgYmVlbjoKPgo+IHZhbCA9IHZsdl9kcGlvX3Jl YWQoKTsKPiBjaGFuZ2UgdmFsCj4gdmx2X2RwaXBfd3JpdGUodmFsKTsKPgo+IEV2ZW50dWFsbHkg SSdtIHBsYW5uaW5nIHRvIGdldCByaWQgb2YgdGhlIFJNVyBzdHVmZi4gQnV0IEkndmUgbm90IGRv bmUKPiB0aGF0IHlldCBzaW5jZSBJIHdhcyB3b3JyaWVkIHNvbWUgb2YgdGhlIHVuY2hhbmdlZCBy ZXNldCB2YWx1ZXMgd291bGQKPiBzdGlsbCBjaGFuZ2UgYXMgdGhlIGhhcmR3YXJlIGV2b2x2ZXMu IEknbSBob3Bpbmcgc3R1ZmYgaGFzIGJlZW4gbW9yZSBvcgo+IGxlc3MgbmFpbGVkIGRvd24gYnkg bm93IHNvIHdlIGNvdWxkIHByb2JhYmx5IGF0dGVtcHQgdGhpcy4KSSB3YXMgdHJ5aW5nIHRvIGZv bGxvdyB0aGUgc2FtZSBjb252ZW50aW9uIHVzZWQgaW4gdGhpcyBmdW5jdGlvbi4gSSBkbyAKYWdy ZWUgdGhhdCBoaWRpbmcgdmx2X2RwaW9fcmVhZCgpIGluc2lkZSB2bHZfZHBpb193cml0ZSgpIGlz IG5vdCBhIGdvb2QgCnByYWN0aWNlLgpJIHdvdWxkIHByZWZlciB0byBrZWVwIHRoZSBSTVcgc3R1 ZmYgdGhvdWdoLiBJbiBnZW5lcmFsIGkgYW0gYXZlcnNlIHRvIAp0b3VjaCBhbnl0aGluZyBpbiBE UElPIHNpZGUgbG9naWMgc2luY2UgaXQgcmVzdWx0cyBpbiBtYW55IHRyaWFsIGFuZCAKZXJyb3Jz IGJlZm9yZSB3ZSBnZXQgdGhlIHNlcXVlbmNlIHJpZ2h0LgoKPgo+PiArCQkJCURQSU9fQ0hWX0ZS QUNfRElWX0VOKTsKPj4gKwo+PiArCQkvKiBQcm9ncmFtIGRpZ2l0YWwgbG9jayBkZXRlY3QgdGhy ZXNob2xkICovCj4+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfUExMX0RX OShwb3J0KSwKPj4gKwkJCQl2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBDSFZfUExMX0RX OShwb3J0KSkgfAo+PiArCQkJCSgweDUgPDwgRFBJT19DSFZfSU5UX0xPQ0tfVEhSRVNIT0xEX1NI SUZUKSk7Cj4+ICsJfSBlbHNlIHsKPj4gKwkJLyogTTIgZnJhY3Rpb24gZGl2aXNpb24gZGlzYWJs ZSAqLwo+PiArCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgQ0hWX1BMTF9EVzMocG9y dCksCj4+ICsJCQkJdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgQ0hWX1BMTF9EVzMocG9y dCkpICYKPj4gKwkJCQl+KERQSU9fQ0hWX0ZSQUNfRElWX0VOKSk7Cj4+ICAgCj4+IC0JLyogTTIg ZnJhY3Rpb24gZGl2aXNpb24gZW5hYmxlICovCj4+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIENIVl9QTExfRFczKHBvcnQpLAo+PiAtCQkgICAgICAgRFBJT19DSFZfRlJBQ19ESVZf RU4gfAo+PiAtCQkgICAgICAgKDIgPDwgRFBJT19DSFZfRkVFREZXRF9HQUlOX1NISUZUKSk7Cj4+ ICsJCS8qIFByb2dyYW0gZGlnaXRhbCBsb2NrIGRldGVjdCB0aHJlc2hvbGQgKi8KPj4gKwkJdmx2 X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9QTExfRFc5KHBvcnQpLAo+PiArCQkJCXZs dl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIENIVl9QTExfRFc5KHBvcnQpKSB8Cj4+ICsJCQkJ KDB4NSA8PCBEUElPX0NIVl9JTlRfTE9DS19USFJFU0hPTERfU0hJRlQpIHwKPj4gKwkJCQlEUElP X0NIVl9JTlRfTE9DS19USFJFU0hPTERfU0VMX0NPQVJTRSk7Cj4+ICsJfQo+PiAgIAo+PiAgIAkv KiBMb29wIGZpbHRlciAqLwo+PiAtCXJlZmNsayA9IGk5eHhfZ2V0X3JlZmNsaygmY3J0Yy0+YmFz ZSwgMCk7Cj4+IC0JbG9vcGZpbHRlciA9IDUgPDwgRFBJT19DSFZfUFJPUF9DT0VGRl9TSElGVCB8 Cj4+IC0JCTIgPDwgRFBJT19DSFZfR0FJTl9DVFJMX1NISUZUOwo+PiAtCWlmIChyZWZjbGsgPT0g MTAwMDAwKQo+PiAtCQlpbnRjb2VmZiA9IDExOwo+PiAtCWVsc2UgaWYgKHJlZmNsayA9PSAzODQw MCkKPj4gLQkJaW50Y29lZmYgPSAxMDsKPj4gKwlpZiAodmNvID09IDU0MDAwMCkKPj4gKwkJbG9v cGZpbHRlciA9IDB4MTA4MDM7Cj4+ICsJZWxzZSBpZiAodmNvIDw9IDYyMDAwMCkKPj4gKwkJbG9v cGZpbHRlciA9IDB4MzBCMDU7Cj4+ICsJZWxzZSBpZiAodmNvIDw9IDY0ODAwMCkKPiBUaG9zZSB2 Y28gbGltaXRzIGxvb2sgd2F5IHRvbyBsb3cuIFRoZSB2Y28gZnJlcSBzaG91bGQgYmUgc29tZXdo ZXJlCj4gaW4gdGhlIDQtNiBHSHogcmFuZ2UuIEFyZSB0aGVzZSBvZmYgYnkgYSBmYWN0b3Igb2Yg MTAsIG9yIHdlcmUgeW91Cj4gdGhpbmtpbmcgb2Ygc29tZSBvdGhlciBjbG9jayBoZXJlPwpUaGUg dmFsdWVzIHVzZWQgYXJlIGluIEtIeiByYW5nZS4gSSB3aWxsIGZpeCB0aGlzIGluIGEgcHJvcGVy IHdheSBpbiAKbmV4dCBwYXRjaCBzZXJpZXMuCj4KPj4gKwkJbG9vcGZpbHRlciA9IDB4MzA5MDQ7 Cj4+ICsJZWxzZQo+PiArCQlsb29wZmlsdGVyID0gMHgxMDgwMzsKPiBJJ2QgbGlrZSB0byBoYXZl IG5hbWVzIGZvciBhbGwgdGhlIG1hZ2ljIGJpdHMsIGVzcGVjaWFsbHkgYXMgdGhlIHNwZWMKPiBz aXR1YXRpb24gaXMgd2hhdCBpdCBpcywgc28gZGVjb2RpbmcgbWFnaWMgbnVtYmVycyBpcyBhIGJp dCBwYWluZnVsLgpXaWxsIHRyeSBteSBsZXZlbCBiZXN0IHRvIGRlY29kZSB0aGUgbWFnaWMgYml0 cy4gVGhpcyB2YWx1ZSBpcyB1c2VkIAphcy1pcyBmcm9tIHdpbmRvd3MgY29kZSBzbmlwcGV0LiBJ IHdhcyB0b2xkIHRoYXQgdGhlIFBIWSBoL3cgdGVhbSBwYXNzZWQgCnRoZXNlIG1hZ2ljIG51bWJl cnMgaW4gdGhlIHNhbWUgZm9ybWF0IGFuZCBzaW5jZSBpdCB3YXMgd29ya2luZyBpbiAKd2luZG93 cywgbXkgcmVxdWVzdCBmb3IgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBpcyBub3QgZ2V0dGluZyB0 aGUgcmlnaHQgCmF0dGVudGlvbi4KCj4KPj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlw ZSwgQ0hWX1BMTF9EVzYocG9ydCksCj4+ICsJCQkoKHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBp cGUsIENIVl9QTExfRFc2KHBvcnQpKSAmCj4+ICsJCQkweEZGMDAwMDAwKSB8IGxvb3BmaWx0ZXIp KTsKPiBUaGUgdG9wIGJpdHMgc2VlbSB0byBiZSBhbGwgcmVzZXJ2ZWQgYW5kIGRlZmF1bHQgdG8g MC4gU28gdGhlIG1hc2sgYW5kCj4gUk1XIGNhbiBzdXJlbHkgZ28/Clllcy4KCj4KPj4gKwo+PiAr CWlmICh2Y28gPD0gNjIwMDAwKQo+PiArCQl0cmlidWZfY2FsY250ciA9IDB4OTsKPj4gKwllbHNl IGlmICh2Y28gPD0gNjQ4MDAwKQo+PiArCQl0cmlidWZfY2FsY250ciA9IDB4ODsKPj4gICAJZWxz ZQo+PiAtCQlpbnRjb2VmZiA9IDk7Cj4+IC0JbG9vcGZpbHRlciB8PSBpbnRjb2VmZiA8PCBEUElP X0NIVl9JTlRfQ09FRkZfU0hJRlQ7Cj4+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUs IENIVl9QTExfRFc2KHBvcnQpLCBsb29wZmlsdGVyKTsKPj4gKwkJdHJpYnVmX2NhbGNudHIgPSAw Owo+PiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfUExMX0RXOChwb3J0KSwK Pj4gKwkJCSgodmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgQ0hWX1BMTF9EVzgocG9ydCkp ICYKPj4gKwkJCTB4RkZGRkZGMDApIHwgdHJpYnVmX2NhbGNudHIpKTsKPj4gICAKPj4gICAJLyog QUZDIFJlY2FsICovCj4+ICAgCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfQ01O X0RXMTQocG9ydCksCj4+ICAgCQkJdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgQ0hWX0NN Tl9EVzE0KHBvcnQpKSB8Cj4+IC0JCQlEUElPX0FGQ19SRUNBTCk7Cj4+ICsJCQlEUElPX0FGQ19S RUNBTCB8IERQSU9fRENMS1BfRU4pOwo+IFdoeSB0aGlzPyBXZSBlbmFibGUgaXQgaW4gY2h2X2Vu YWJsZV9wbGwoKSBhbHJlYWR5IGFmdGVyIHRoZSBQTEwgaXRzZWxmCj4gaGFzIGJlZW4gZW5hYmxl ZC4gSXMgdGhhdCB0b28gbGF0ZSBmb3Igc29tZSByZWFzb24/CkFnYWluIHRoaXMgaXMgYmFzZWQg b24gdHJpYWwgYW5kIGVycm9yIGluIG90aGVyIE9TIGFuZCB0aGUgdGlwIGZyb20gCndpbmRvd3Mg ZHJpdmVyIHRlYW0gaXMgdG8gc2V0IGJvdGggRFBJT19BRkNfUkVDQUwgYW5kIERQSU9fQ0xLUF9F TiBpbiBhIApzaW5nbGUgc2hvdC4gT3RoZXJ3aXNlIHRoZXkgYXJlIHNlZWluZyBzb21lIHN0YWJp bGl0eSBpc3N1ZXMuIEkgZ3Vlc3MgaSAKd2lsbCBoYXZlIHRvIG1vdmUgdGhpcyBwYXJ0IHRvIGNo dl9lbmFibGVfcGxsLgo+Cj4KPiBHZW5lcmFsbHkgSSB0aGluayB0aGUgcGF0Y2ggc2hvdWxkIGJl IHNwbGl0IGludG8gc2V2ZXJhbCBwYXJ0czoKPiAtIGZyYWMgdnMuIGludCBkaXZpZGVyCj4gLSBp bnRfbG9ja190aHJlc2hvbGQKPiAtIGxvb3AgZmlsdGVyIHN0dWZmCj4gLSBkY2xrcCBlbmFibGUs IGlmIHJlYWxseSBuZWVkZWQsIGFuZCB0aGUgY29tbWl0IG1lc3NhZ2Ugc2hvdWxkIHNheSB3aHkK PiAgICBpdCdzIG5lZWRlZC4Kc3VyZS4gSSB3aWxsIGFkZHJlc3MgdGhpcyBpbiBteSBuZXh0IHBh dGNoIHNldC4KPgo+IE9uIGEgc2xpZ2h0bHkgcmVsYXRlZCB0b3BpYywgeWVzdGVyZGF5IEkgbWFu YWdlZCB0byBuYXJyb3cgZG93biBzb21lIGtpbmQKPiBvZiBwcm9ibGVtIHdpdGggZGF0YSBsYW5l IERDQyBjYWxpYnJhdGlvbi4gSXQgbWFuaWZlc3RzIGFzIGxpbmsgdHJhaW5pbmcKPiBmYWlsaW5n IHdoZW4gZHJpdmluZyBEUCBwb3J0IEIgd2l0aCBwaXBlIEEgYWZ0ZXIgdGhlIGNtbmxhbmUgcG93 ZXIgd2VsbAo+IGhhcyBiZWVuIHR1cm5lZCBvZmYsIG9yIGlmIHBvcnQgQiBoYXMgYmVlbiBkcml2 ZW4gd2l0aCBwaXBlIEIgcHJldmlvdXNseS4KPiBJZiBJIHJldHJ5IHRoZSBtb2Rlc2V0IGEgc2Vj b25kIHRpbWUgdGhlIGxpbmsgdHJhaW5pbmcgd2lsbCBzdWNjZWVkLiBJCj4gYWxzbyBtYW5hZ2Vk IHRvIG1ha2UgaXQgd29yayBieSBmb3JjaW5nIGEgRENDIGNhbGlicmF0aW9uIGluCj4gY2h2X3By ZV9lbmFibGVfZHAoKS4gV2hhdCdzIHNsaWdodGx5IG9kZCBpcyB0aGF0IHdpdGggcGlwZSBBIHRo ZSBmb3JjZWQKPiBjYWxpYnJhdGlvbiBzdWNjZWVkcywgYnV0IHdpdGggcGlwZSBCIGl0IGRvZXNu J3QgYW5kIHlldCBwaXBlIEIgYWx3YXlzCj4gd29ya3MgYW5kIHRoZSBjYWxpYnJhdGlvbiBzdGF0 dXMgc2VlbXMgdG8gaW5kaWNhdGVzIHN1Y2Nlc3MgYWZ0ZXIgdGhlCj4gRFAgcG9ydCByZWdpc3Rl ciBoYXMgYmVlbiBlbmFibGVkLiBJJ20gc3RpbGwgbG9va2luZyBpbnRvIHRoaXMsIGJ1dCBJCj4g d2FzIGp1c3Qgd29uZGVyaW5nIGlmIHlvdSd2ZSBzZWVuIGFueXRoaW5nIHNpbWlsYXI/CkkgaGF2 ZSBub3Qgb2JzZXJ2ZWQgdGhpcyB5ZXQuIFRoaXMgY291bGQgYmUgYmVjYXVzZSAgbW9zdCBvZiBv dXIgZWZmb3J0cyAKYXJlIG9uIGEgZGlmZmVyZW50IGNvZGUgYmFzZSAtIEFERi4KClRoYW5rcywK VmlqYXkKPgo+PiAgIAo+PiAgIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcGlvX2xvY2spOwo+ PiAgIH0KPj4gLS0gCj4+IDEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==