From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 30/49] drm/i915/bxt: add display initialize/uninitialize sequence (CDCLK) Date: Wed, 15 Apr 2015 17:14:00 +0300 Message-ID: <20150415141400.GF1237@intel.com> References: <1426585215-8788-31-git-send-email-imre.deak@intel.com> <1429105378-12535-1-git-send-email-imre.deak@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 ESMTP id 02AA46E841 for ; Wed, 15 Apr 2015 07:14:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1429105378-12535-1-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMTUsIDIwMTUgYXQgMDQ6NDI6NTZQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEZyb206IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4gCj4g QWRkIENEQ0xLIHNwZWNpZmljIGRpc3BsYXkgY2xvY2sgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Ug YXMgcGVyIEJTcGVjLgo+IAo+IE5vdGUgdGhhdCB0aGUgQ0RDTEsgaW5pdGlhbGl6YXRpb24vdW5p bml0aWFsaXphdGlvbiBhcmUgZG9uZSBhdCB0aGVpcgo+IGN1cnJlbnQgcGxhY2Ugb25seSBmb3Ig c2ltcGxpY2l0eSwgaW4gYSBmdXR1cmUgcGF0Y2ggLSB3aGVuIG1vcmUgb2YgdGhlCj4gcnVudGlt ZSBQTSBmZWF0dXJlcyB3aWxsIGJlIGVuYWJsZWQgLSB0aGVzZSB3aWxsIGJlIG1vdmVkIHRvIHBv d2VyCj4gd2VsbCMxIGFuZCBtb2Rlc2V0IGVuY29kZXIgZW5hYmxpbmcvZGlzYWJsaW5nIGhvb2tz IHJlc3BlY3RpdmVseS4gVGhpcwo+IGFsc28gbWVhbnMgdGhhdCBhdG0gZHluYW1pYyBwb3dlciBn YXRpbmcgcG93ZXIgd2VsbCAjMSBpcyBlZmZlY3RpdmVseQo+IGRpc2FibGVkLgo+IAo+IFRoZSBj YWxsIHRvIHVuaW5pdGlhbGl6ZSBDRENMSyBkdXJpbmcgc3lzdGVtL3J1bnRpbWUgc3VzcGVuZCB3 aWxsIGJlCj4gYWRkZWQgbGF0ZXIgaW4gdGhpcyBwYXRjaHNldC4KPiAKPiB2MTogQWRkZWQgZnVu Y3Rpb24gZGVmaW5pdGlvbnMgaW4gaGVhZGVyIGZpbGVzCj4gdjI6IEltcmUncyByZXZpZXcgY29t bWVudHMgYWRkcmVzc2VkCj4gLSBNb3ZlZCBDRENMSyByZWxhdGVkIGRlZmluaXRpb25zIHRvIGk5 MTVfcmVnLmgKPiAtIFJlbW92ZWQgZGVmaW50aW9ucyBmb3IgQ0RDTEsgZnJlcXVlbmN5Cj4gLSBT cGxpdCB1bmluaXRfY2RjbGsoKSBieSBhZGRpbmcgYSBwaHlfdW5pbml0IGZ1bmN0aW9uCj4gLSBD YWxjdWxhdGUgZnJlcSBhbmQgZGVjaW1hbCBiYXNlZCBvbiBpbnB1dCBmcmVxdWVuY3kKPiAtIFBy b2dyYW0gU1NBIHByZWNoYXJnZSBiYXNlZCBvbiBpbnB1dCBmcmVxdWVuY3kKPiAtIFVzZSB3YWl0 X2ZvciAxbXMgaW5zdGVhZCAyMDB1cyB1ZGVsYXkgZm9yIERFIFBMTCBsb2NraW5nCj4gLSBSZW1v dmVkIGluaXRpYWwgdmFsdWUgZm9yIGRpdmlkZXIsIGZyZXEsIGRlY2ltYWwsIHJhdGlvLgo+IC0g UmVwbGFjZWQgcG9sbGluZyBsb29wcyB3aXRoIHdhaXRfZm9yCj4gLSBQYXJhbWV0ZXJpemVkIGxh dGVuY3kgb3B0aW0gc2V0dGluZwo+IC0gRml4IHRoZSBwYXJ0cyB3aGVyZSBERSBQTEwgaGFzIHRv IGJlIGRpc2FibGVkLgo+IC0gQ2FsbCBDRENMSyBzZWxlY3Rpb24gZnJvbSBtb2RlIHNldAo+IAo+ IHYzOiAoaW1yZSkKPiAtIGFkZCBub3RlIGFib3V0IHRoZSBwbGFuIHRvIG1vdmUgdGhlIGNkY2xr L3BoeSBpbml0IHRvIGEgYmV0dGVyIHBsYWNlCj4gLSB0YWtlIHJwcy5od19sb2NrIGFyb3VuZCBw Y29kZSBhY2Nlc3MKPiAtIG1vdmUgREUgUExMIHJlZ2lzdGVyIG1hY3JvcyBoZXJlIGZyb20gYW5v dGhlciBwYXRjaCBzaW5jZSB0aGV5IGFyZQo+ICAgdXNlZCBoZXJlIGZpcnN0Cj4gLSBhZGQgQlhU XyBwcmVmaXggdG8gQ0RDTEsgZmxhZ3MKPiAtIGFkZCBtaXNzaW5nIG1hc2tpbmcgd2hlbiBwcm9n cmFtbWluZyBDRENMS19GUkVRX0RFQ0lNQUwKPiAKPiB2NDogKHZpbGxlKQo+IC0gc3BsaXQgdGhl IENEQ0xLL1BIWSBwYXJ0cyBpbnRvIHR3byBwYXRjaGVzLCB1cGRhdGUgY29tbWl0IG1lc3NhZ2UK PiAgIGFjY29yZGluZ2x5Cj4gLSBzL0RJU1BMQVlfUENVX0NPTlRST0wvSFNXX1BDT0RFX0RFX1dS SVRFX0ZSRVFfUkVRLwo+IC0gc2ltcGxpZnkgQlhUX0RFX1BMTF9SQVRJTyBtYWNyb3MKPiAtIGZp eCBCWFRfREVfUExMX1JBVElPX01BU0sKPiAtIHMvYnh0X3NlbGVjdF9jZGNsa19mcmVxL2Jyb3h0 b25fc2V0X2NkY2xrX2ZyZXEvCj4gLSBtb3ZlIGNkY2xrIGluaXQvdW5pbml0L3NldCBjb2RlIGZy b20gaW50ZWxfZGRpLmMgdG8gaW50ZWxfZGlzcGxheS5jCj4gLSByZW1vdmUgcmVkdW5kYW50IGNv ZGUgY29tbWVudHMgZm9yIGJyb3h0b25fc2V0X2NkY2xrX2ZyZXEoKQo+IC0gc2FuaXRpemUgZml4 ZWQgcG9pbnQ8LT5pbnRlZ2VyIGZyZXF1ZW5jeSB2YWx1ZSBjb252ZXJzaW9uCj4gLSB1c2UgRFJN X0VSUk9SIGluc3RlYWQgb2YgV0FSTgo+IC0gZG8gUk1XIHdoZW4gcHJvZ3JhbW1pbmcgQlhUX0RF X1BMTF9DVEwgZm9yIHNhZmV0eQo+IC0gYWRkIG5vdGUgYWJvdXQgUExMIGxvY2sgdGltZW91dCBi ZWluZyBleGFjdGx5IDIwMHVzCj4gLSBtYWtlIFBDVSBlcnJvciBtZXNzYWdlcyBtb3JlIGRlc2Ny aXB0aXZlCj4gLSBpbnN0ZWFkIG9mIHVzaW5nIDAgZnJlcSB0byBtZWFuIFBMTCBvZmYvYnlwYXNz IGZyZXEgdXNlIDE5MjAwCj4gICBmb3IgY2xhcml0eSwgYXMgdGhlIGxhdHRlciBvbmUgaXMgdGhl IGFjdHVhbCByYXRlCj4gLSBzaW1wbGlmeSBwY29kZSBwcm9ncmFtbWluZywgcmVtb3ZpbmcgZHVw bGljYXRlZAo+ICAgc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoKSBjYWxsCj4gLSBzYW5pdGl6ZSBj b2RlIGZsb3csIHJlbW92ZSB1bm5lY2Vzc2FyeSBzY3JhdGNoIHZhcnMgaW4KPiAgIGJyb3h0b25f c2V0X2NkY2xrKCkgKGltcmUpCj4gLSBSZW1vdmUgYm91bmQgY2hlY2sgZm9yIG1heG1pbXVtIGZy ZXEgdG8gbWF0Y2ggY3VycmVudCBjb2RlLgo+ICAgVGhpcyBjaGVjayB3aWxsIGJlIGFkZGVkIGxh dGVyIGF0IGEgbW9yZSBwcm9wZXIgcGxhdGZvcm0KPiAgIGluZGVwZW5kZW50IHBsYWNlIG9uY2Ug YXRvbWljIHN1cHBvcnQgbGFuZHMuCj4gLSBhZGQgbm90ZSB0byByZW1vdmUgZnJlcSBndWFyZCBi YW5kIHdoaWNoIGlzbid0IG5lZWRlZCBvbiBCWFQKPiAtIGFkZCBub3RlIHRvIHJlZHVjZSBmcmVx IHRvIG1pbmltdW0gaWYgbm8gcGlwZSBpcyBlbmFibGVkCj4gLSBjb21iaW5lIGJyb3h0b25fbW9k ZXNldF9nbG9iYWxfcGlwZXMoKSB3aXRoCj4gICB2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3Bp cGVzKCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWYW5kYW5hIEthbm5hbiA8dmFuZGFuYS5rYW5uYW5A aW50ZWwuY29tPiAodjIpCj4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50 ZWwuY29tPgoKVGhhdCdzIHF1aXRlIGEgY2hhbmdlbG9nIEkgY2F1c2VkLiBTb3JyeSA6KQoKQnV0 IEkgbGlrZSBob3cgaXQncyBsb29raW5nIG5vdy4gQSBmZXcgbWlub3IgRklYTUVzIGluIHRoZXJl LCBidXQgSQphZ3JlZSB0aGF0IHRob3NlIGNhbiBiZSBkZWFsdCB3aXRoIGxhdGVyLgoKUmV2aWV3 ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgMjAgKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAgIDIgKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyMjYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwg ICAzICsKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA0YjUzYjIwLi5jNzliZjhkIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTU0NTIsNiArNTQ1Miw5IEBAIGVudW0g c2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICBESVNQX0ZCQ19XTV9ESVMJCSgxPDwx NSkKPiAgI2RlZmluZSBESVNQX0FSQl9DVEwyCTB4NDUwMDQKPiAgI2RlZmluZSAgRElTUF9EQVRB X1BBUlRJVElPTl81XzYJKDE8PDYpCj4gKyNkZWZpbmUgREJVRl9DVEwJMHg0NTAwOAo+ICsjZGVm aW5lICBEQlVGX1BPV0VSX1JFUVVFU1QJCSgxPDwzMSkKPiArI2RlZmluZSAgREJVRl9QT1dFUl9T VEFURQkJKDE8PDMwKQo+ICAjZGVmaW5lIEdFTjdfTVNHX0NUTAkweDQ1MDEwCj4gICNkZWZpbmUg IFdBSVRfRk9SX1BDSF9SRVNFVF9BQ0sJCSgxPDwxKQo+ICAjZGVmaW5lICBXQUlUX0ZPUl9QQ0hf RkxSX0FDSwkJKDE8PDApCj4gQEAgLTY0MDMsNiArNjQwNiw3IEBAIGVudW0gc2tsX2Rpc3BfcG93 ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgR0VONl9QQ09ERV9XUklURV9EX0NPTVAJCTB4MTEKPiAg I2RlZmluZSAgIEdFTjZfRU5DT0RFX1JDNl9WSUQobXYpCQkoKChtdikgLSAyNDUpIC8gNSkKPiAg I2RlZmluZSAgIEdFTjZfREVDT0RFX1JDNl9WSUQodmlkcykJCSgoKHZpZHMpICogNSkgKyAyNDUp Cj4gKyNkZWZpbmUgICBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEJCTB4MTcKPiAgI2RlZmlu ZSAgIERJU1BMQVlfSVBTX0NPTlRST0wJCQkweDE5Cj4gICNkZWZpbmUJICBIU1dfUENPREVfRFlO QU1JQ19EVVRZX0NZQ0xFX0NPTlRST0wJMHgxQQo+ICAjZGVmaW5lIEdFTjZfUENPREVfREFUQQkJ CQkweDEzODEyOAo+IEBAIC02ODc0LDYgKzY4NzgsMTMgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7Cj4gICNkZWZpbmUgIENEQ0xLX0ZSRVFfNjc1XzYxNwkJKDM8PDI2KQo+ICAjZGVmaW5l ICBDRENMS19GUkVRX0RFQ0lNQUxfTUFTSwkoMHg3ZmYpCj4gIAo+ICsjZGVmaW5lICBCWFRfQ0RD TEtfQ0QyWF9ESVZfU0VMX01BU0sJKDM8PDIyKQo+ICsjZGVmaW5lICBCWFRfQ0RDTEtfQ0QyWF9E SVZfU0VMXzEJKDA8PDIyKQo+ICsjZGVmaW5lICBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzFfNQko MTw8MjIpCj4gKyNkZWZpbmUgIEJYVF9DRENMS19DRDJYX0RJVl9TRUxfMgkoMjw8MjIpCj4gKyNk ZWZpbmUgIEJYVF9DRENMS19DRDJYX0RJVl9TRUxfNAkoMzw8MjIpCj4gKyNkZWZpbmUgIEJYVF9D RENMS19TU0FfUFJFQ0hBUkdFX0VOQUJMRQkoMTw8MTYpCj4gKwo+ICAvKiBMQ1BMTF9DVEwgKi8K PiAgI2RlZmluZSBMQ1BMTDFfQ1RMCQkweDQ2MDEwCj4gICNkZWZpbmUgTENQTEwyX0NUTAkJMHg0 NjAxNAo+IEBAIC02OTM4LDYgKzY5NDksMTUgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7 Cj4gICNkZWZpbmUgR0VUX0NGR19DUjFfUkVHKGlkKSAoRFBMTDFfQ0ZHQ1IxICsgKGlkIC0gU0tM X0RQTEwxKSAqIDgpCj4gICNkZWZpbmUgR0VUX0NGR19DUjJfUkVHKGlkKSAoRFBMTDFfQ0ZHQ1Iy ICsgKGlkIC0gU0tMX0RQTEwxKSAqIDgpCj4gIAo+ICsvKiBCWFQgZGlzcGxheSBlbmdpbmUgUExM ICovCj4gKyNkZWZpbmUgQlhUX0RFX1BMTF9DVEwJCQkweDZkMDAwCj4gKyNkZWZpbmUgICBCWFRf REVfUExMX1JBVElPKHgpCQkoeCkJLyogezYwLDY1LDEwMH0gKiAxOS4yTUh6ICovCj4gKyNkZWZp bmUgICBCWFRfREVfUExMX1JBVElPX01BU0sJCTB4ZmYKPiArCj4gKyNkZWZpbmUgQlhUX0RFX1BM TF9FTkFCTEUJCTB4NDYwNzAKPiArI2RlZmluZSAgIEJYVF9ERV9QTExfUExMX0VOQUJMRQkJKDEg PDwgMzEpCj4gKyNkZWZpbmUgICBCWFRfREVfUExMX0xPQ0sJCSgxIDw8IDMwKQo+ICsKPiAgLyog UGxlYXNlIHNlZSBoc3dfcmVhZF9kY29tcCgpIGFuZCBoc3dfd3JpdGVfZGNvbXAoKSBiZWZvcmUg dXNpbmcgdGhpcyByZWdpc3RlciwKPiAgICogc2luY2Ugb24gSFNXIHdlIGNhbid0IHdyaXRlIHRv IGl0IHVzaW5nIEk5MTVfV1JJVEUuICovCj4gICNkZWZpbmUgRF9DT01QX0hTVwkJCShNQ0hCQVJf TUlSUk9SX0JBU0VfU05CICsgMHg1RjBDKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5k ZXggNWI1MDQ4NC4uMjVkNjk3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAg LTE4ODAsNiArMTg4MCw4IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gIAlpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gIAkJaWYgKCEoSTkxNV9SRUFE KExDUExMMV9DVEwpICYgTENQTExfUExMX0VOQUJMRSkpCj4gIAkJCURSTV9FUlJPUigiTENQTEwx IGlzIGRpc2FibGVkXG4iKTsKPiArCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwkJ YnJveHRvbl9pbml0X2NkY2xrKGRldik7Cj4gIAl9IGVsc2Ugewo+ICAJCS8qCj4gIAkJICogVGhl IExDUExMIHJlZ2lzdGVyIHNob3VsZCBiZSB0dXJuZWQgb24gYnkgdGhlIEJJT1MuIEZvciBub3cK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYmI1ZjJhNS4uNWVlNWQ4 YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTE5Niw2ICs1 MTk2LDE4MSBAQCBzdGF0aWMgdm9pZCBtb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJaW50ZWxfZGlzcGxheV9zZXRfaW5p dF9wb3dlcihkZXZfcHJpdiwgZmFsc2UpOwo+ICB9Cj4gIAo+ICt2b2lkIGJyb3h0b25fc2V0X2Nk Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmcmVxdWVuY3kpCj4gK3sKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1aW50 MzJfdCBkaXZpZGVyOwo+ICsJdWludDMyX3QgcmF0aW87Cj4gKwl1aW50MzJfdCBjdXJyZW50X2Zy ZXE7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCS8qIGZyZXF1ZW5jeSA9IDE5LjJNSHogKiByYXRpbyAv IDIgLyBkaXZ7MSwxLjUsMiw0fSAqLwo+ICsJc3dpdGNoIChmcmVxdWVuY3kpIHsKPiArCWNhc2Ug MTQ0MDAwOgo+ICsJCWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzQ7Cj4gKwkJcmF0 aW8gPSBCWFRfREVfUExMX1JBVElPKDYwKTsKPiArCQlicmVhazsKPiArCWNhc2UgMjg4MDAwOgo+ ICsJCWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzI7Cj4gKwkJcmF0aW8gPSBCWFRf REVfUExMX1JBVElPKDYwKTsKPiArCQlicmVhazsKPiArCWNhc2UgMzg0MDAwOgo+ICsJCWRpdmlk ZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzFfNTsKPiArCQlyYXRpbyA9IEJYVF9ERV9QTExf UkFUSU8oNjApOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSA1NzYwMDA6Cj4gKwkJZGl2aWRlciA9IEJY VF9DRENMS19DRDJYX0RJVl9TRUxfMTsKPiArCQlyYXRpbyA9IEJYVF9ERV9QTExfUkFUSU8oNjAp Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSA2MjQwMDA6Cj4gKwkJZGl2aWRlciA9IEJYVF9DRENMS19D RDJYX0RJVl9TRUxfMTsKPiArCQlyYXRpbyA9IEJYVF9ERV9QTExfUkFUSU8oNjUpOwo+ICsJCWJy ZWFrOwo+ICsJY2FzZSAxOTIwMDoKPiArCQkvKgo+ICsJCSAqIEJ5cGFzcyBmcmVxdWVuY3kgd2l0 aCBERSBQTEwgZGlzYWJsZWQuIEluaXQgcmF0aW8sIGRpdmlkZXIKPiArCQkgKiB0byBzdXBwcmVz cyBHQ0Mgd2FybmluZy4KPiArCQkgKi8KPiArCQlyYXRpbyA9IDA7Cj4gKwkJZGl2aWRlciA9IDA7 Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCURSTV9FUlJPUigidW5zdXBwb3J0ZWQgQ0RD TEsgZnJlcSAlZCIsIGZyZXF1ZW5jeSk7Cj4gKwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJLyogSW5mb3JtIHBvd2VyIGNv bnRyb2xsZXIgb2YgdXBjb21pbmcgZnJlcXVlbmN5IGNoYW5nZSAqLwo+ICsJcmV0ID0gc2FuZHli cmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEhTV19QQ09ERV9ERV9XUklURV9GUkVRX1JFUSwK PiArCQkJCSAgICAgIDB4ODAwMDAwMDApOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBz Lmh3X2xvY2spOwo+ICsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIlBDb2RlIENEQ0xL IGZyZXEgY2hhbmdlIG5vdGlmeSBmYWlsZWQgKGVyciAlZCwgZnJlcSAlZClcbiIsCj4gKwkJCSAg cmV0LCBmcmVxdWVuY3kpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwljdXJyZW50X2ZyZXEg PSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKSAmIENEQ0xLX0ZSRVFfREVDSU1BTF9NQVNLOwo+ICsJLyog Y29udmVydCBmcm9tIC4xIGZpeHBvaW50IE1IeiB3aXRoIC0xTUh6IG9mZnNldCB0byBrSHogKi8K PiArCWN1cnJlbnRfZnJlcSA9IGN1cnJlbnRfZnJlcSAqIDUwMCArIDEwMDA7Cj4gKwo+ICsJLyoK PiArCSAqIERFIFBMTCBoYXMgdG8gYmUgZGlzYWJsZWQgd2hlbgo+ICsJICogLSBzZXR0aW5nIHRv IDE5LjJNSHogKGJ5cGFzcywgUExMIGlzbid0IHVzZWQpCj4gKwkgKiAtIGJlZm9yZSBzZXR0aW5n IHRvIDYyNE1IeiAoUExMIG5lZWRzIHRvZ2dsaW5nKQo+ICsJICogLSBiZWZvcmUgc2V0dGluZyB0 byBhbnkgZnJlcXVlbmN5IGZyb20gNjI0TUh6IChQTEwgbmVlZHMgdG9nZ2xpbmcpCj4gKwkgKi8K PiArCWlmIChmcmVxdWVuY3kgPT0gMTkyMDAgfHwgZnJlcXVlbmN5ID09IDYyNDAwMCB8fAo+ICsJ ICAgIGN1cnJlbnRfZnJlcSA9PSA2MjQwMDApIHsKPiArCQlJOTE1X1dSSVRFKEJYVF9ERV9QTExf RU5BQkxFLCB+QlhUX0RFX1BMTF9QTExfRU5BQkxFKTsKPiArCQkvKiBUaW1lb3V0IDIwMHVzICov Cj4gKwkJaWYgKHdhaXRfZm9yKCEoSTkxNV9SRUFEKEJYVF9ERV9QTExfRU5BQkxFKSAmIEJYVF9E RV9QTExfTE9DSyksCj4gKwkJCSAgICAgMSkpCj4gKwkJCURSTV9FUlJPUigidGltb3V0IHdhaXRp bmcgZm9yIERFIFBMTCB1bmxvY2tcbiIpOwo+ICsJfQo+ICsKPiArCWlmIChmcmVxdWVuY3kgIT0g MTkyMDApIHsKPiArCQl1aW50MzJfdCB2YWw7Cj4gKwo+ICsJCXZhbCA9IEk5MTVfUkVBRChCWFRf REVfUExMX0NUTCk7Cj4gKwkJdmFsICY9IH5CWFRfREVfUExMX1JBVElPX01BU0s7Cj4gKwkJdmFs IHw9IHJhdGlvOwo+ICsJCUk5MTVfV1JJVEUoQlhUX0RFX1BMTF9DVEwsIHZhbCk7Cj4gKwo+ICsJ CUk5MTVfV1JJVEUoQlhUX0RFX1BMTF9FTkFCTEUsIEJYVF9ERV9QTExfUExMX0VOQUJMRSk7Cj4g KwkJLyogVGltZW91dCAyMDB1cyAqLwo+ICsJCWlmICh3YWl0X2ZvcihJOTE1X1JFQUQoQlhUX0RF X1BMTF9FTkFCTEUpICYgQlhUX0RFX1BMTF9MT0NLLCAxKSkKPiArCQkJRFJNX0VSUk9SKCJ0aW1l b3V0IHdhaXRpbmcgZm9yIERFIFBMTCBsb2NrXG4iKTsKPiArCj4gKwkJdmFsID0gSTkxNV9SRUFE KENEQ0xLX0NUTCk7Cj4gKwkJdmFsICY9IH5CWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMX01BU0s7Cj4g KwkJdmFsIHw9IGRpdmlkZXI7Cj4gKwkJLyoKPiArCQkgKiBEaXNhYmxlIFNTQSBQcmVjaGFyZ2Ug d2hlbiBDRCBjbG9jayBmcmVxdWVuY3kgPCA1MDAgTUh6LAo+ICsJCSAqIGVuYWJsZSBvdGhlcndp c2UuCj4gKwkJICovCj4gKwkJdmFsICY9IH5CWFRfQ0RDTEtfU1NBX1BSRUNIQVJHRV9FTkFCTEU7 Cj4gKwkJaWYgKGZyZXF1ZW5jeSA+PSA1MDAwMDApCj4gKwkJCXZhbCB8PSBCWFRfQ0RDTEtfU1NB X1BSRUNIQVJHRV9FTkFCTEU7Cj4gKwo+ICsJCXZhbCAmPSB+Q0RDTEtfRlJFUV9ERUNJTUFMX01B U0s7Cj4gKwkJLyogY29udmVydCBmcm9tIGtIeiB0byAuMSBmaXhwb2ludCBNSHogd2l0aCAtMU1I eiBvZmZzZXQgKi8KPiArCQl2YWwgfD0gKGZyZXF1ZW5jeSAtIDEwMDApIC8gNTAwOwo+ICsJCUk5 MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwo+ICsJfQo+ICsKPiArCW11dGV4X2xvY2soJmRldl9w cml2LT5ycHMuaHdfbG9jayk7Cj4gKwlyZXQgPSBzYW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZf cHJpdiwgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVRLAo+ICsJCQkJICAgICAgRElWX1JPVU5E X1VQKGZyZXF1ZW5jeSwgMjUwMDApKTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5o d19sb2NrKTsKPiArCj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJQQ29kZSBDRENMSyBm cmVxIHNldCBmYWlsZWQsIChlcnIgJWQsIGZyZXEgJWQpXG4iLAo+ICsJCQkgIHJldCwgZnJlcXVl bmN5KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJZGV2X3ByaXYtPmNkY2xrX2ZyZXEgPSBm cmVxdWVuY3k7Cj4gK30KPiArCj4gK3ZvaWQgYnJveHRvbl9pbml0X2NkY2xrKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1aW50MzJfdCB2YWw7Cj4gKwo+ICsJLyoKPiArCSAqIE5E RV9SU1RXUk5fT1BUIFJTVCBQQ0ggSGFuZHNoYWtlIEVuIG11c3QgYWx3YXlzIGJlIDBiIG9uIEJY VAo+ICsJICogb3IgZWxzZSB0aGUgcmVzZXQgd2lsbCBoYW5nIGJlY2F1c2UgdGhlcmUgaXMgbm8g UENIIHRvIHJlc3BvbmQuCj4gKwkgKiBNb3ZlIHRoZSBoYW5kc2hha2UgcHJvZ3JhbW1pbmcgdG8g aW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuCj4gKwkgKiBQcmV2aW91c2x5IHdhcyBsZWZ0IHVwIHRv IEJJT1MuCj4gKwkgKi8KPiArCXZhbCA9IEk5MTVfUkVBRChIU1dfTkRFX1JTVFdSTl9PUFQpOwo+ ICsJdmFsICY9IH5SRVNFVF9QQ0hfSEFORFNIQUtFX0VOQUJMRTsKPiArCUk5MTVfV1JJVEUoSFNX X05ERV9SU1RXUk5fT1BULCB2YWwpOwo+ICsKPiArCS8qIEVuYWJsZSBQRzEgZm9yIGNkY2xrICov Cj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BMTFMp Owo+ICsKPiArCS8qIGNoZWNrIGlmIGNkIGNsb2NrIGlzIGVuYWJsZWQgKi8KPiArCWlmIChJOTE1 X1JFQUQoQlhUX0RFX1BMTF9FTkFCTEUpICYgQlhUX0RFX1BMTF9QTExfRU5BQkxFKSB7Cj4gKwkJ RFJNX0RFQlVHX0tNUygiRGlzcGxheSBhbHJlYWR5IGluaXRpYWxpemVkXG4iKTsKPiArCQlyZXR1 cm47Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FOgo+ICsJICogLSBUaGUgaW5pdGlhbCBD RENMSyBuZWVkcyB0byBiZSByZWFkIGZyb20gVkJULgo+ICsJICogICBOZWVkIHRvIG1ha2UgdGhp cyBjaGFuZ2UgYWZ0ZXIgVkJUIGhhcyBjaGFuZ2VzIGZvciBCWFQuCj4gKwkgKiAtIGNoZWNrIGlm IHNldHRpbmcgdGhlIG1heCAob3IgYW55KSBjZGNsayBmcmVxIGlzIHJlYWxseSBuZWNlc3NhcnkK PiArCSAqICAgaGVyZSwgaXQgYmVsb25ncyB0byBtb2Rlc2V0IHRpbWUKPiArCSAqLwo+ICsJYnJv eHRvbl9zZXRfY2RjbGsoZGV2LCA2MjQwMDApOwo+ICsKPiArCUk5MTVfV1JJVEUoREJVRl9DVEws IEk5MTVfUkVBRChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+ICsJdWRlbGF5KDEw KTsKPiArCj4gKwlpZiAoIShJOTE1X1JFQUQoREJVRl9DVEwpICYgREJVRl9QT1dFUl9TVEFURSkp Cj4gKwkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGVuYWJsZSB0aW1lb3V0IVxuIik7Cj4gK30KPiAr Cj4gK3ZvaWQgYnJveHRvbl91bmluaXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAr ewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCj4gKwlJOTE1X1dSSVRFKERCVUZfQ1RMLCBJOTE1X1JFQUQoREJVRl9DVEwpICYgfkRC VUZfUE9XRVJfUkVRVUVTVCk7Cj4gKwl1ZGVsYXkoMTApOwo+ICsKPiArCWlmIChJOTE1X1JFQUQo REJVRl9DVEwpICYgREJVRl9QT1dFUl9TVEFURSkKPiArCQlEUk1fRVJST1IoIkRCdWYgcG93ZXIg ZGlzYWJsZSB0aW1lb3V0IVxuIik7Cj4gKwo+ICsJLyogU2V0IG1pbmltdW0gKGJ5cGFzcykgZnJl cXVlbmN5LCBpbiBlZmZlY3QgdHVybmluZyBvZmYgdGhlIERFIFBMTCAqLwo+ICsJYnJveHRvbl9z ZXRfY2RjbGsoZGV2LCAxOTIwMCk7Cj4gKwo+ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2 X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKTsKPiArfQo+ICsKPiAgLyogcmV0dXJucyBIUExMIGZy ZXF1ZW5jeSBpbiBrSHogKi8KPiAgc3RhdGljIGludCB2YWxsZXl2aWV3X2dldF92Y28oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gQEAgLTUzNjMsNiArNTUzOCwyNiBA QCBzdGF0aWMgaW50IHZhbGxleXZpZXdfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuIDIwMDAwMDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBi cm94dG9uX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJ CQkgICAgICBpbnQgbWF4X3BpeGNsaykKPiArewo+ICsJLyoKPiArCSAqIEZJWE1FOgo+ICsJICog LSByZW1vdmUgdGhlIGd1YXJkYmFuZCwgaXQncyBub3QgbmVlZGVkIG9uIEJYVAo+ICsJICogLSBz ZXQgMTkuMk1IeiBieXBhc3MgZnJlcXVlbmN5IGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgcGlwZXMK PiArCSAqLwo+ICsJaWYgKG1heF9waXhjbGsgPiA1NzYwMDAqOS8xMCkKPiArCQlyZXR1cm4gNjI0 MDAwOwo+ICsJZWxzZSBpZiAobWF4X3BpeGNsayA+IDM4NDAwMCo5LzEwKQo+ICsJCXJldHVybiA1 NzYwMDA7Cj4gKwllbHNlIGlmIChtYXhfcGl4Y2xrID4gMjg4MDAwKjkvMTApCj4gKwkJcmV0dXJu IDM4NDAwMDsKPiArCWVsc2UgaWYgKG1heF9waXhjbGsgPiAxNDQwMDAqOS8xMCkKPiArCQlyZXR1 cm4gMjg4MDAwOwo+ICsJZWxzZQo+ICsJCXJldHVybiAxNDQwMDA7Cj4gK30KPiArCj4gIC8qIGNv bXB1dGUgdGhlIG1heCBwaXhlbCBjbG9jayBmb3IgbmV3IGNvbmZpZ3VyYXRpb24gKi8KPiAgc3Rh dGljIGludCBpbnRlbF9tb2RlX21heF9waXhjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ICB7Cj4gQEAgLTUzOTIsMTIgKzU1ODcsMTcgQEAgc3RhdGljIGludCB2YWxsZXl2aWV3 X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7 Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAgCWludCBtYXhfcGl4Y2xrID0g aW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0YXRlKTsKPiArCWludCBjZGNsazsKPiAgCj4gIAlpZiAo bWF4X3BpeGNsayA8IDApCj4gIAkJcmV0dXJuIG1heF9waXhjbGs7Cj4gIAo+IC0JaWYgKHZhbGxl eXZpZXdfY2FsY19jZGNsayhkZXZfcHJpdiwgbWF4X3BpeGNsaykgPT0KPiAtCSAgICBkZXZfcHJp di0+Y2RjbGtfZnJlcSkKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKPiArCQljZGNs ayA9IHZhbGxleXZpZXdfY2FsY19jZGNsayhkZXZfcHJpdiwgbWF4X3BpeGNsayk7Cj4gKwllbHNl Cj4gKwkJY2RjbGsgPSBicm94dG9uX2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhjbGspOwo+ ICsKPiArCWlmIChjZGNsayA9PSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkKPiAgCQlyZXR1cm4gMDsK PiAgCj4gIAkvKiBkaXNhYmxlL2VuYWJsZSBhbGwgY3VycmVudGx5IGFjdGl2ZSBwaXBlcyB3aGls ZSB3ZSBjaGFuZ2UgY2RjbGsgKi8KPiBAQCAtODgyNyw2ICs5MDI3LDIzIEBAIHZvaWQgaHN3X2Rp c2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWludGVsX3By ZXBhcmVfZGRpKGRldik7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGJyb3h0b25fbW9kZXNldF9n bG9iYWxfcmVzb3VyY2VzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJaW50IG1heF9waXhjbGsg PSBpbnRlbF9tb2RlX21heF9waXhjbGsoc3RhdGUpOwo+ICsJaW50IHJlcV9jZGNsazsKPiArCj4g KwkvKiBzZWUgdGhlIGNvbW1lbnQgaW4gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJj ZXMgKi8KPiArCWlmIChXQVJOX09OKG1heF9waXhjbGsgPCAwKSkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJcmVxX2NkY2xrID0gYnJveHRvbl9jYWxjX2NkY2xrKGRldl9wcml2LCBtYXhfcGl4Y2xrKTsK PiArCj4gKwlpZiAocmVxX2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxKQo+ICsJCWJyb3h0 b25fc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiArfQo+ICsKPiAgc3RhdGljIGludCBoYXN3 ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJCSAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gQEAgLTExOTgz LDcgKzEyMjAwLDcgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiAgCSAqIG1vZGUgc2V0IG9uIHRoaXMgY3J0Yy4gIEZvciBvdGhlciBjcnRjcyB3 ZSBuZWVkIHRvIHVzZSB0aGUKPiAgCSAqIGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBk aXJlY3RseS4KPiAgCSAqLwo+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ICsJaWYgKElT X1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsKPiAgCQlyZXQgPSB2YWxsZXl2 aWV3X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlLCAmcHJlcGFyZV9waXBlcyk7Cj4gIAkJaWYg KHJldCkKPiAgCQkJZ290byBkb25lOwo+IEBAIC0xNDAwNSw2ICsxNDIyMiw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfSBlbHNl IGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2dsb2JhbF9yZXNvdXJjZXMgPQo+ICAJCQl2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3Jlc291 cmNlczsKPiArCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwkJZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiArCQkJYnJveHRvbl9tb2Rlc2V0X2ds b2JhbF9yZXNvdXJjZXM7Cj4gIAl9Cj4gIAo+ICAJc3dpdGNoIChJTlRFTF9JTkZPKGRldiktPmdl bikgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNmEyZWUwYy4uNWJhODhlYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExMTIsNiArMTExMiw5IEBAIHZv aWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBp bnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgaHN3X2Vu YWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBoc3df ZGlzYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBi cm94dG9uX2luaXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK3ZvaWQgYnJveHRv bl91bmluaXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK3ZvaWQgYnJveHRvbl9z ZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGZyZXF1ZW5jeSk7Cj4gIHZvaWQg aW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ICB2b2lkIGludGVsX2RwX3NldF9t X24oc3RydWN0IGludGVsX2NydGMgKmNydGMsIGVudW0gbGlua19tX25fc2V0IG1fbik7Cj4gLS0g Cj4gMi4xLjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==