From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915: move fdi lane configuration checks ahead Date: Mon, 29 Apr 2013 15:31:59 +0300 Message-ID: <1367238719.6390.54.camel@intelbox> References: <20130422103237.GY4469@intel.com> <1366643611-32522-1-git-send-email-daniel.vetter@ffwll.ch> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id E6BABE5C6B for ; Mon, 29 Apr 2013 05:32:02 -0700 (PDT) In-Reply-To: <1366643611-32522-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Daniel Vetter Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDEzLTA0LTIyIGF0IDE3OjEzICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ IFRoaXMgbmljZWx5IGFsbG93cyB1cyB0byBkcm9wIHNvbWUgaGFja3Mgd2hpY2ggaGF2ZSBvbmx5 IGJlZW4gdXNlZAo+IHRvIHdvcmsgYXJvdW5kIG1vZGVzZXQgZmFpbHVyZXMgZHVlIHRvIGxhY2sg b2YgZmRpIGxhbmVzLgo+IAo+IHYyOiBJbXBsZW1lbnQgcHJvcGVyIGNoZWNraW5nIGZvciBIYXN3 ZWxsIHBsYXRmb3JtcyAtIHRoZSBmZGkgbGluayB0bwo+IHRoZSBMUFQgUENIIGhhcyBvbmx5IDIg bGFuZXMuIE5vdGUgdGhhdCB3ZSBhbHJlYWR5IGZpbHRlciBvdXQKPiBpbXBvc3NpYmxlIG1vZGVz IGluIGludGVsX2NydF9tb2RlX3ZhbGlkLiBVbmZvcnR1bmF0ZWx5IExQVCBkb2VzIG5vdAo+IHN1 cHBvcnQgNmJwYyBvbiB0aGUgZmRpIHJ4LCBzbyB3ZSBjYW4ndCBwdWxsIGNsZXZlciB0cmlja3Mg dG8gc3F1ZWV6ZQo+IGluIGEgZmV3IG1vcmUgbW9kZXMuCj4gCj4gdjI6IFJlYmFzZWQgb24gdG9w IG9mIEJlbiBXaWRhd3NreSdzIG51bV9waXBlcyByZW9yZy4KPiAKPiB2MzogUmViYXNlIG9uIHRv cCBvZiBWaWxsZSdzIHBpcGUgZGVidWcgb3V0cHV0IG9jZCByYW1wYWdlLgo+IAo+IHY0OiBGaXh1 cCByZWJhc2UgZmFpbCBzcG90dGVkIGJ5IFZpbGxlLgo+IAo+IENjOiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEyOSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDlmZjNjZjYuLjUz ZDZlMmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTM5NDMs OSArMzk0Myw2OCBAQCBib29sIGludGVsX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJcmV0dXJuIGVuY29kZXItPmdldF9od19zdGF0 ZShlbmNvZGVyLCAmcGlwZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICtzdGF0aWMgYm9vbCBpcm9u bGFrZV9jaGVja19mZGlfbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBp cGUsCj4gKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpCj4g K3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqcGlwZV9CX2NydGMgPQo+ICsJCXRvX2ludGVsX2Ny dGMoZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW1BJUEVfQl0pOwo+ICsKPiArCURSTV9E RUJVR19LTVMoImNoZWNraW5nIGZkaSBjb25maWcgb24gcGlwZSAlYywgbGFuZXMgJWlcbiIsCj4g KwkJICAgICAgcGlwZV9uYW1lKHBpcGUpLCBwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzKTsKPiArCWlm IChwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID4gNCkgewo+ICsJCURSTV9ERUJVR19LTVMoImludmFs aWQgZmRpIGxhbmUgY29uZmlnIG9uIHBpcGUgJWM6ICVpIGxhbmVzXG4iLAo+ICsJCQkgICAgICBw aXBlX25hbWUocGlwZSksIHBpcGVfY29uZmlnLT5mZGlfbGFuZXMpOwo+ICsJCXJldHVybiBmYWxz ZTsKPiArCX0KPiArCj4gKwlpZiAoSVNfSEFTV0VMTChkZXYpKSB7Cj4gKwkJaWYgKHBpcGVfY29u ZmlnLT5mZGlfbGFuZXMgPiAyKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIm9ubHkgMiBsYW5lcyBv biBoYXN3ZWxsLCByZXF1aXJlZDogJWkgbGFuZXNcbiIsCj4gKwkJCQkgICAgICBwaXBlX2NvbmZp Zy0+ZmRpX2xhbmVzKTsKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXJl dHVybiB0cnVlOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5udW1f cGlwZXMpCgpDb3B5JnBhc3RlIGVycm9yIEkgYXNzdW1lLCBzaG91bGQgYmUgbnVtX3BpcGVzID09 IDIuIE90aGVyd2lzZToKUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJLyogSXZ5YnJpZGdlIDMgcGlwZSBpcyByZWFs bHkgY29tcGxpY2F0ZWQgKi8KPiArCXN3aXRjaCAocGlwZSkgewo+ICsJY2FzZSBQSVBFX0E6Cj4g KwkJcmV0dXJuIHRydWU7Cj4gKwljYXNlIFBJUEVfQjoKPiArCQlpZiAoZGV2X3ByaXYtPnBpcGVf dG9fY3J0Y19tYXBwaW5nW1BJUEVfQ10tPmVuYWJsZWQgJiYKPiArCQkgICAgcGlwZV9jb25maWct PmZkaV9sYW5lcyA+IDIpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiaW52YWxpZCBzaGFyZWQgZmRp IGxhbmUgY29uZmlnIG9uIHBpcGUgJWM6ICVpIGxhbmVzXG4iLAo+ICsJCQkJICAgICAgcGlwZV9u YW1lKHBpcGUpLCBwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzKTsKPiArCQkJcmV0dXJuIGZhbHNlOwo+ ICsJCX0KPiArCQlyZXR1cm4gdHJ1ZTsKPiArCWNhc2UgUElQRV9DOgo+ICsJCWlmICghcGlwZV9C X2NydGMtPmJhc2UuZW5hYmxlZCB8fAo+ICsJCSAgICBwaXBlX0JfY3J0Yy0+Y29uZmlnLmZkaV9s YW5lcyA8PSAyKSB7Cj4gKwkJCWlmIChwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID4gMikgewo+ICsJ CQkJRFJNX0RFQlVHX0tNUygiaW52YWxpZCBzaGFyZWQgZmRpIGxhbmUgY29uZmlnIG9uIHBpcGUg JWM6ICVpIGxhbmVzXG4iLAo+ICsJCQkJCSAgICAgIHBpcGVfbmFtZShwaXBlKSwgcGlwZV9jb25m aWctPmZkaV9sYW5lcyk7Cj4gKwkJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJCX0KPiArCQl9IGVsc2Ug ewo+ICsJCQlEUk1fREVCVUdfS01TKCJmZGkgbGluayBCIHVzZXMgdG9vIG1hbnkgbGFuZXMgdG8g ZW5hYmxlIGxpbmsgQ1xuIik7Cj4gKwkJCXJldHVybiBmYWxzZTsKPiArCQl9Cj4gKwkJcmV0dXJu IHRydWU7Cj4gKwlkZWZhdWx0Ogo+ICsJCUJVRygpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMg Ym9vbCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCj4gIAkJCQkJc3RydWN0IGludGVsX2NydGNfY29uZmlnICpwaXBlX2NvbmZpZykKPiAg ewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2NydGMtPmJhc2UuZGV2Owo+ICAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmFk anVzdGVkX21vZGU7Cj4gIAlpbnQgdGFyZ2V0X2Nsb2NrLCBsYW5lLCBsaW5rX2J3Owo+ICAKPiBA QCAtMzk3Miw2ICs0MDMxLDkgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJbGlua19idyAqPSBwaXBlX2NvbmZpZy0+ cGl4ZWxfbXVsdGlwbGllcjsKPiAgCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWct PnBpcGVfYnBwLCBsYW5lLCB0YXJnZXRfY2xvY2ssCj4gIAkJCSAgICAgICBsaW5rX2J3LCAmcGlw ZV9jb25maWctPmZkaV9tX24pOwo+ICsKPiArCXJldHVybiBpcm9ubGFrZV9jaGVja19mZGlfbGFu ZXMoaW50ZWxfY3J0Yy0+YmFzZS5kZXYsCj4gKwkJCQkJaW50ZWxfY3J0Yy0+cGlwZSwgcGlwZV9j b25maWcpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmln KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiBAQCAtNDAwOSw3ICs0MDcxLDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAl9 Cj4gIAo+ICAJaWYgKHBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gLQkJaXJvbmxha2Vf ZmRpX2NvbXB1dGVfY29uZmlnKGRldiwgcGlwZV9jb25maWcpOwo+ICsJCXJldHVybiBpcm9ubGFr ZV9mZGlfY29tcHV0ZV9jb25maWcodG9faW50ZWxfY3J0YyhjcnRjKSwgcGlwZV9jb25maWcpOwo+ ICAKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gQEAgLTUzOTMsNjMgKzU0NTUsNiBAQCBzdGF0aWMg dm9pZCBjcHRfZW5hYmxlX2ZkaV9iY19iaWZ1cmNhdGlvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJUE9TVElOR19SRUFEKFNPVVRIX0NISUNLRU4xKTsKPiAgfQo+ICAKPiAtc3RhdGljIGJv b2wgaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKnBpcGVfQl9jcnRjID0KPiAtCQl0b19pbnRlbF9jcnRj KGRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1tQSVBFX0JdKTsKPiAtCj4gLQlEUk1fREVC VUdfS01TKCJjaGVja2luZyBmZGkgY29uZmlnIG9uIHBpcGUgJWMsIGxhbmVzICVpXG4iLAo+IC0J CSAgICAgIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSwgaW50ZWxfY3J0Yy0+Y29uZmlnLmZk aV9sYW5lcyk7Cj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLmZkaV9sYW5lcyA+IDQpIHsKPiAt CQlEUk1fREVCVUdfS01TKCJpbnZhbGlkIGZkaSBsYW5lIGNvbmZpZyBvbiBwaXBlICVjOiAlaSBs YW5lc1xuIiwKPiAtCQkJICAgICAgcGlwZV9uYW1lKGludGVsX2NydGMtPnBpcGUpLCBpbnRlbF9j cnRjLT5jb25maWcuZmRpX2xhbmVzKTsKPiAtCQkvKiBDbGFtcCBsYW5lcyB0byBhdm9pZCBwcm9n cmFtbWluZyB0aGUgaHcgd2l0aCBib2d1cyB2YWx1ZXMuICovCj4gLQkJaW50ZWxfY3J0Yy0+Y29u ZmlnLmZkaV9sYW5lcyA9IDQ7Cj4gLQo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQlp ZiAoSU5URUxfSU5GTyhkZXYpLT5udW1fcGlwZXMgPT0gMikKPiAtCQlyZXR1cm4gdHJ1ZTsKPiAt Cj4gLQlzd2l0Y2ggKGludGVsX2NydGMtPnBpcGUpIHsKPiAtCWNhc2UgUElQRV9BOgo+IC0JCXJl dHVybiB0cnVlOwo+IC0JY2FzZSBQSVBFX0I6Cj4gLQkJaWYgKGRldl9wcml2LT5waXBlX3RvX2Ny dGNfbWFwcGluZ1tQSVBFX0NdLT5lbmFibGVkICYmCj4gLQkJICAgIGludGVsX2NydGMtPmNvbmZp Zy5mZGlfbGFuZXMgPiAyKSB7Cj4gLQkJCURSTV9ERUJVR19LTVMoImludmFsaWQgc2hhcmVkIGZk aSBsYW5lIGNvbmZpZyBvbiBwaXBlICVjOiAlaSBsYW5lc1xuIiwKPiAtCQkJCSAgICAgIHBpcGVf bmFtZShpbnRlbF9jcnRjLT5waXBlKSwgaW50ZWxfY3J0Yy0+Y29uZmlnLmZkaV9sYW5lcyk7Cj4g LQkJCS8qIENsYW1wIGxhbmVzIHRvIGF2b2lkIHByb2dyYW1taW5nIHRoZSBodyB3aXRoIGJvZ3Vz IHZhbHVlcy4gKi8KPiAtCQkJaW50ZWxfY3J0Yy0+Y29uZmlnLmZkaV9sYW5lcyA9IDI7Cj4gLQo+ IC0JCQlyZXR1cm4gZmFsc2U7Cj4gLQkJfQo+IC0KPiAtCQlyZXR1cm4gdHJ1ZTsKPiAtCWNhc2Ug UElQRV9DOgo+IC0JCWlmICghcGlwZV9CX2NydGMtPmJhc2UuZW5hYmxlZCB8fCBwaXBlX0JfY3J0 Yy0+Y29uZmlnLmZkaV9sYW5lcyA8PSAyKSB7Cj4gLQkJCWlmIChpbnRlbF9jcnRjLT5jb25maWcu ZmRpX2xhbmVzID4gMikgewo+IC0JCQkJRFJNX0RFQlVHX0tNUygiaW52YWxpZCBzaGFyZWQgZmRp IGxhbmUgY29uZmlnIG9uIHBpcGUgJWM6ICVpIGxhbmVzXG4iLAo+IC0JCQkJCSAgICAgIHBpcGVf bmFtZShpbnRlbF9jcnRjLT5waXBlKSwgaW50ZWxfY3J0Yy0+Y29uZmlnLmZkaV9sYW5lcyk7Cj4g LQkJCQkvKiBDbGFtcCBsYW5lcyB0byBhdm9pZCBwcm9ncmFtbWluZyB0aGUgaHcgd2l0aCBib2d1 cyB2YWx1ZXMuICovCj4gLQkJCQlpbnRlbF9jcnRjLT5jb25maWcuZmRpX2xhbmVzID0gMjsKPiAt Cj4gLQkJCQlyZXR1cm4gZmFsc2U7Cj4gLQkJCX0KPiAtCQl9IGVsc2Ugewo+IC0JCQlEUk1fREVC VUdfS01TKCJmZGkgbGluayBCIHVzZXMgdG9vIG1hbnkgbGFuZXMgdG8gZW5hYmxlIGxpbmsgQ1xu Iik7Cj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCQl9Cj4gLQo+IC0JCXJldHVybiB0cnVlOwo+IC0J ZGVmYXVsdDoKPiAtCQlCVUcoKTsKPiAtCX0KPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgaXZ5YnJp ZGdlX3VwZGF0ZV9mZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRl djsKPiBAQCAtNTY0MSw3ICs1NjQ2LDYgQEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX21vZGVf c2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWJvb2wgaXNfbHZkcyA9IGZhbHNlOwo+ICAJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAlpbnQgcmV0Owo+IC0JYm9vbCBmZGlf Y29uZmlnX29rOwo+ICAKPiAgCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVu Y29kZXIpIHsKPiAgCQlzd2l0Y2ggKGVuY29kZXItPnR5cGUpIHsKPiBAQCAtNTczNCwxNCArNTcz OCwxMSBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+ICAKPiAgCWludGVsX3NldF9waXBlX3RpbWluZ3MoaW50ZWxfY3J0YywgbW9kZSwg YWRqdXN0ZWRfbW9kZSk7Cj4gIAo+IC0JLyogTm90ZSwgdGhpcyBhbHNvIGNvbXB1dGVzIGludGVs X2NydGMtPmZkaV9sYW5lcyB3aGljaCBpcyB1c2VkIGJlbG93IGluCj4gLQkgKiBpcm9ubGFrZV9j aGVja19mZGlfbGFuZXMuICovCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLmhhc19wY2hfZW5j b2Rlcikgewo+ICAJCWludGVsX2NwdV90cmFuc2NvZGVyX3NldF9tX24oaW50ZWxfY3J0YywKPiAg CQkJCQkgICAgICZpbnRlbF9jcnRjLT5jb25maWcuZmRpX21fbik7Cj4gIAl9Cj4gIAo+IC0JZmRp X2NvbmZpZ19vayA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhpbnRlbF9jcnRjKTsKPiAgCWlm IChJU19JVllCUklER0UoZGV2KSkKPiAgCQlpdnlicmlkZ2VfdXBkYXRlX2ZkaV9iY19iaWZ1cmNh dGlvbihpbnRlbF9jcnRjKTsKPiAgCj4gQEAgLTU3NTcsNyArNTc1OCw3IEBAIHN0YXRpYyBpbnQg aXJvbmxha2VfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAo+ICAJaW50 ZWxfdXBkYXRlX2xpbmV0aW1lX3dhdGVybWFya3MoZGV2LCBwaXBlLCBhZGp1c3RlZF9tb2RlKTsK PiAgCj4gLQlyZXR1cm4gZmRpX2NvbmZpZ19vayA/IHJldCA6IC1FSU5WQUw7Cj4gKwlyZXR1cm4g cmV0Owo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpcm9ubGFrZV9nZXRfcGlwZV9jb25maWcoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK