From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/9] drm/i915: Add support for port enable/disable for dual link configuration Date: Mon, 01 Dec 2014 21:21:33 +0200 Message-ID: <87oarn9nwi.fsf@intel.com> References: <1417254967-27384-1-git-send-email-gaurav.k.singh@intel.com> <1417254967-27384-4-git-send-email-gaurav.k.singh@intel.com> <878uirbj1n.fsf@intel.com> <87wq6ba291.fsf@intel.com> <547CADF5.1070105@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 ESMTP id CD56A6E535 for ; Mon, 1 Dec 2014 11:21:55 -0800 (PST) In-Reply-To: <547CADF5.1070105@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Singh, Gaurav K" , intel-gfx Cc: Shobhit Kumar List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwMSBEZWMgMjAxNCwgIlNpbmdoLCBHYXVyYXYgSyIgPGdhdXJhdi5rLnNpbmdoQGlu dGVsLmNvbT4gd3JvdGU6Cj4gT24gMTIvMS8yMDE0IDc6NDEgUE0sIEphbmkgTmlrdWxhIHdyb3Rl Ogo+PiBPbiBNb24sIDAxIERlYyAyMDE0LCBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXgu aW50ZWwuY29tPiB3cm90ZToKPj4+IE9uIFNhdCwgMjkgTm92IDIwMTQsIEdhdXJhdiBLIFNpbmdo IDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+IHdyb3RlOgo+Pj4+IEZvciBEdWFsIExpbmsgTUlQ SSBQYW5lbHMsIGJvdGggUG9ydCBBIGFuZCBQb3J0IEMgc2hvdWxkIGJlIGVuYWJsZWQKPj4+PiBk dXJpbmcgdGhlIE1JUEkgZW5jb2RlciBlbmFibGluZyBzZXF1ZW5jZS4gU2ltaWxhcmx5LCBkdXJp bmcgdGhlCj4+Pj4gZGlzYWJsaW5nIHNlcXVlbmNlLCBib3RoIHBvcnRzIG5lZWRzIHRvIGJlIGRp c2FibGVkLgo+Pj4+Cj4+Pj4gdjI6IFVzZWQgZm9yX2VhY2hfZHNpX3BvcnQgbWFjcm8gaW5zdGVh ZCBvZiBmb3IgbG9vcAo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogR2F1cmF2IEsgU2luZ2ggPGdh dXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBTaG9iaGl0IEt1bWFy IDxzaG9iaGl0Lmt1bWFyQGludGVsLmNvbT4KPj4+PiAtLS0KPj4+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgICB8ICAgIDEgKwo+Pj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICAgICAgIHwgICAzOSArKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaCAgICAgICAg ICAgfCAgICAxICsKPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92 YnQuYyB8ICAgIDcgKysrKysKPj4+PiAgIDQgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+PiBp bmRleCBkYzAzZmFjLi5jOTgxZjVkIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4+Pj4gQEAgLTY2NjQsNiArNjY2NCw3IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4+Pj4g ICAjZGVmaW5lICBEUElfRU5BQkxFCQkJCQkoMSA8PCAzMSkgLyogQSArIEMgKi8KPj4+PiAgICNk ZWZpbmUgIE1JUElBX01JUEk0RFBIWV9ERUxBWV9DT1VOVF9TSElGVAkJMjcKPj4+PiAgICNkZWZp bmUgIE1JUElBX01JUEk0RFBIWV9ERUxBWV9DT1VOVF9NQVNLCQkoMHhmIDw8IDI3KQo+Pj4+ICsj ZGVmaW5lICBEVUFMX0xJTktfTU9ERV9TSElGVAkJCQkyNgo+Pj4+ICAgI2RlZmluZSAgRFVBTF9M SU5LX01PREVfTUFTSwkJCQkoMSA8PCAyNikKPj4+PiAgICNkZWZpbmUgIERVQUxfTElOS19NT0RF X0ZST05UX0JBQ0sJCQkoMCA8PCAyNikKPj4+PiAgICNkZWZpbmUgIERVQUxfTElOS19NT0RFX1BJ WEVMX0FMVEVSTkFUSVZFCQkoMSA8PCAyNikKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ Pj4+IGluZGV4IDY5MzczNmIuLjExNjNhNWIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuYwo+Pj4+IEBAIC0xMDgsMjggKzEwOCw0MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf cG9ydF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+Pj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4+PiAgIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFz ZS5jcnRjKTsKPj4+PiAgIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPj4+PiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZHNp X3BpcGVfdG9fcG9ydChpbnRlbF9jcnRjLT5waXBlKTsKPj4+PiArCWVudW0gcG9ydCBwb3J0Owo+ Pj4+ICAgCXUzMiB0ZW1wOwo+Pj4+ICAgCj4+Pj4gLQkvKiBhc3NlcnQgaXBfdGdfZW5hYmxlIHNp Z25hbCAqLwo+Pj4+IC0JdGVtcCA9IEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChwb3J0KSkgJiB+ TEFORV9DT05GSUdVUkFUSU9OX01BU0s7Cj4+Pj4gLQl0ZW1wID0gdGVtcCB8IGludGVsX2RzaS0+ cG9ydF9iaXRzOwo+Pj4+IC0JSTkxNV9XUklURShNSVBJX1BPUlRfQ1RSTChwb3J0KSwgdGVtcCB8 IERQSV9FTkFCTEUpOwo+Pj4+IC0JUE9TVElOR19SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsK Pj4+PiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4+PiAr CQl0ZW1wID0gSTkxNV9SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsKPj4+PiArCj4+Pj4gKwkJ aWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKSB7Cj4+Pj4gKwkJCWlmIChwb3J0ID09IFBPUlRfQSkK Pj4+PiArCQkJCWludGVsX2RzaS0+cG9ydF9iaXRzIHw9IGludGVsX2NydGMtPnBpcGUgPwo+Pj4+ ICsJCQkJCUxBTkVfQ09ORklHVVJBVElPTl9EVUFMX0xJTktfQiA6Cj4+Pj4gKwkJCQkJTEFORV9D T05GSUdVUkFUSU9OX0RVQUxfTElOS19BOwo+Pj4+ICsJCQllbHNlCj4+Pj4gKwkJCQlpbnRlbF9k c2ktPnBvcnRfYml0cyA9IDA7Cj4+PiBJdCBmZWVscyB3cm9uZyB0byBjbG9iYmVyIGludGVsX2Rz aS0+cG9ydF9iaXRzIGhlcmU7IHRoZSBvbGQgY29kZSBkaWRuJ3QKPj4+IGRvIHRoYXQgZWl0aGVy LiBJIHRoaW5rIHlvdSBzaG91bGQgZWl0aGVyIHNldCBwb3J0X2JpdHMgc29tZXdoZXJlIGVsc2UK Pj4+IChvciByZW1vdmUgaXQgYWx0b2dldGhlciksIGFuZCB0aGVuIG1vZGlmeSB0ZW1wIGRlcGVu ZGluZyBvbiBwb3J0Lgo+Pj4KPj4+IFNpZGUgbm90ZSwgaXQgc2VlbXMgdG8gbWUgaW50ZWxfZHNp LT5kdWFsX2xpbmsgaXMgYmVjb21pbmcgcmVkdW5kYW50LCBhcwo+Pj4gaW50ZWxfZHNpLT5wb3J0 cyB3aWxsIGhhdmUgbW9yZSB0aGFuIG9uZSBiaXQgc2V0IGluIHRoZSBkdWFsIGxpbmsKPj4+IGNh c2UuIFRoaXMgY2FuIGJlIGEgZnV0dXJlIGNsZWFudXAgdGhvdWdoLgo+PiBPa2F5LCBzbyBpdCdz IGJlY29taW5nIHJlZHVuZGFudCBmb3IgY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgZHVh bAo+PiBsaW5rIG9yIG5vdCwgYnV0IGl0IHN0aWxsIGhhcyBpdCdzIHBsYWNlIGZvciBpbmRpY2F0 aW5nIHdoaWNoIGR1YWwgbGluawo+PiBtb2RlIHRvIHVzZS4KPj4KPj4gQlIsCj4+IEphbmkuCj4g SGkgSmFuaSwKPiBJIHByZWZlcnJlZCBpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspIHRoYW4gaWYg KGludGVsX2RzaS0+cG9ydHMgPT0oKDEgPDwgCj4gUE9SVF9BKSB8ICgxIDw8IFBPUlRfQykpKSwg YXMgaXQgbG9va3MgbW9yZSBjbGVhbmVyIHRoYW4gdGhlIHNlY29uZCBvbmUuCgpJIHdhcyB0aGlu a2luZyB3ZSBjb3VsZCBhZGQgYSBoZWxwZXIgZm9yIHRoYXQsIGJ1dCBsZXQncyBsZWF2ZSBpdCBh cyBpdAppcyBub3cuCgo+IFJlZ2FyZGluZyBwb3J0X2JpdHMsIGluIHRoZSBvbGQgY29kZSBmb3Ig c2luZ2xlIGxpbmsgRFNJIHBhbmVscywgdGhpcyAKPiB2YXJpYWJsZSB3YXMgYWx3YXlzIDAsIGFu ZCBpdCBkaWQgbm90IGhhZCBhbnkgdXNlLiBCdXQgd2l0aCBkdWFsIGxpbmsgCj4gY29uZmlndXJh dGlvbiwgdGhlcmUgYXJlIGZldyBtb3JlIHJlZ2lzdGVyIGJpdHMgd2hpY2ggd2UgbmVlZCB0byAK PiBjb25maWd1cmUsIHNpbmNlIHRoZSBmdW5jdGlvbiBuYW1lIHdhcyBpbnRlbF9kc2lfcG9ydF9l bmFibGUsIGkgdGhvdWdodCAKPiBvZiBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nIG1pcGkgcG9y dF9iaXRzIHZhcmlhYmxlIGluIHRoaXMgZnVuY3Rpb24gCj4gaXRzZWxmLgoKSGVyZSdzIG15IHRo aW5raW5nOgoKSWYgcG9ydF9iaXRzIGlzIChvciB3aWxsIGJlKSB1c2VkIGluIHBsYWNlcyBvdGhl ciB0aGFuCmludGVsX2RzaV9wb3J0X2VuYWJsZSwgSSB0aGluayBpdCBuZWVkcyB0byBiZSBzZXQg YmVmb3JlaGFuZCwgYmVjYXVzZQpvdGhlcndpc2UgdGhlIG90aGVyIHVzZXJzIHdpbGwgZGVwZW5k IG9uIGludGVsX2RzaV9wb3J0X2VuYWJsZSBoYXZpbmcKYmVlbiBjYWxsZWQuCgpPbiB0aGUgb3Ro ZXIgaGFuZCwgaWYgcG9ydF9iaXRzIGlzIG5vdCAoYW5kIHdpbGwgbm90IGJlKSB1c2VkIGluIG90 aGVyCnBsYWNlcywgaW50ZWxfZHNpX3BvcnRfZW5hYmxlIGhhcyBhbGwgdGhlIGluZm9ybWF0aW9u IHRvIHNldApNSVBJX1BPUlRfQ1RSTCwgYW5kIHRoZSB3aG9sZSBpbnRlbF9kc2ktPnBvcnRfYml0 cyBmaWVsZCBjYW4gYmUgcmVtb3ZlZC4KCkJSLApKYW5pLgoKCgo+Cj4gV2l0aCByZWdhcmRzLAo+ IEdhdXJhdgo+Cj4+Cj4+PiBCUiwKPj4+IEphbmkuCj4+Pgo+Pj4+ICsJCX0gZWxzZQo+Pj4+ICsJ CQl0ZW1wICY9IH5MQU5FX0NPTkZJR1VSQVRJT05fTUFTSzsKPj4+PiArCj4+Pj4gKwkJLyogYXNz ZXJ0IGlwX3RnX2VuYWJsZSBzaWduYWwgKi8KPj4+PiArCQl0ZW1wID0gdGVtcCB8IGludGVsX2Rz aS0+cG9ydF9iaXRzOwo+Pj4+ICsJCUk5MTVfV1JJVEUoTUlQSV9QT1JUX0NUUkwocG9ydCksIHRl bXAgfCBEUElfRU5BQkxFKTsKPj4+PiArCQlQT1NUSU5HX1JFQUQoTUlQSV9QT1JUX0NUUkwocG9y dCkpOwo+Pj4+ICsJfQo+Pj4+ICAgfQo+Pj4+ICAgCj4+Pj4gICBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfcG9ydF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+Pj4+ICAgewo+ Pj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPj4+PiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ Pj4+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29k ZXItPmJhc2UuY3J0Yyk7Cj4+Pj4gLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9waXBlX3Rv X3BvcnQoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4+Pj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPj4+PiArCWVudW0gcG9ydCBw b3J0Owo+Pj4+ICAgCXUzMiB0ZW1wOwo+Pj4+ICAgCj4+Pj4gLQkvKiBkZS1hc3NlcnQgaXBfdGdf ZW5hYmxlIHNpZ25hbCAqLwo+Pj4+IC0JdGVtcCA9IEk5MTVfUkVBRChNSVBJX1BPUlRfQ1RSTChw b3J0KSk7Cj4+Pj4gLQlJOTE1X1dSSVRFKE1JUElfUE9SVF9DVFJMKHBvcnQpLCB0ZW1wICYgfkRQ SV9FTkFCTEUpOwo+Pj4+IC0JUE9TVElOR19SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsKPj4+ PiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4+PiArCQkv KiBkZS1hc3NlcnQgaXBfdGdfZW5hYmxlIHNpZ25hbCAqLwo+Pj4+ICsJCXRlbXAgPSBJOTE1X1JF QUQoTUlQSV9QT1JUX0NUUkwocG9ydCkpOwo+Pj4+ICsJCUk5MTVfV1JJVEUoTUlQSV9QT1JUX0NU UkwocG9ydCksIHRlbXAgJiB+RFBJX0VOQUJMRSk7Cj4+Pj4gKwkJUE9TVElOR19SRUFEKE1JUElf UE9SVF9DVFJMKHBvcnQpKTsKPj4+PiArCX0KPj4+PiAgIH0KPj4+PiAgIAo+Pj4+ICAgc3RhdGlj IHZvaWQgaW50ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+Pj4+IGluZGV4IDdmNWQwMjguLmYyY2My ZmMgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+Pj4+IEBAIC0xMDQsNiAr MTA0LDcgQEAgc3RydWN0IGludGVsX2RzaSB7Cj4+Pj4gICAJdTggY2xvY2tfc3RvcDsKPj4+PiAg IAo+Pj4+ICAgCXU4IGVzY2FwZV9jbGtfZGl2Owo+Pj4+ICsJdTggZHVhbF9saW5rOwo+Pj4+ICAg CXUzMiBwb3J0X2JpdHM7Cj4+Pj4gICAJdTMyIGJ3X3RpbWVyOwo+Pj4+ICAgCXUzMiBkcGh5X3Jl ZzsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVs X3ZidC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCj4+Pj4g aW5kZXggNjEyNTkyZi4uN2YxYmE1OCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKPj4+PiBAQCAtMjg3LDYgKzI4NywxMyBAQCBzdGF0aWMg Ym9vbCBnZW5lcmljX2luaXQoc3RydWN0IGludGVsX2RzaV9kZXZpY2UgKmRzaSkKPj4+PiAgIAlp bnRlbF9kc2ktPmNsb2NrX3N0b3AgPSBtaXBpX2NvbmZpZy0+ZW5hYmxlX2Nsa19zdG9wID8gMSA6 IDA7Cj4+Pj4gICAJaW50ZWxfZHNpLT5sYW5lX2NvdW50ID0gbWlwaV9jb25maWctPmxhbmVfY250 ICsgMTsKPj4+PiAgIAlpbnRlbF9kc2ktPnBpeGVsX2Zvcm1hdCA9IG1pcGlfY29uZmlnLT52aWRl b21vZGVfY29sb3JfZm9ybWF0IDw8IDc7Cj4+Pj4gKwlpbnRlbF9kc2ktPmR1YWxfbGluayA9IG1p cGlfY29uZmlnLT5kdWFsX2xpbms7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGludGVsX2RzaS0+ZHVhbF9s aW5rKSB7Cj4+Pj4gKwkJaW50ZWxfZHNpLT5wb3J0cyA9ICgoMSA8PCBQT1JUX0EpIHwgKDEgPDwg UE9SVF9DKSk7Cj4+Pj4gKwkJaW50ZWxfZHNpLT5wb3J0X2JpdHMgPSAoaW50ZWxfZHNpLT5kdWFs X2xpbmsgLSAxKQo+Pj4+ICsJCQkJCTw8IERVQUxfTElOS19NT0RFX1NISUZUOwo+Pj4+ICsJfQo+ Pj4+ICAgCj4+Pj4gICAJaWYgKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0ID09IFZJRF9NT0RFX0ZP Uk1BVF9SR0I2NjYpCj4+Pj4gICAJCWJpdHNfcGVyX3BpeGVsID0gMTg7Cj4+Pj4gLS0gCj4+Pj4g MS43LjkuNQo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+Pj4+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKPj4+IC0tIAo+Pj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4g U291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK