From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 06/10] drm/i915/ddi: Use power well CTL IDX instead of ID Date: Thu, 02 Aug 2018 13:40:55 -0700 Message-ID: <1533242455.2533.7.camel@intel.com> References: <20180720141504.22832-1-imre.deak@intel.com> <20180720141504.22832-7-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8F87B6E17B for ; Thu, 2 Aug 2018 20:40:56 +0000 (UTC) In-Reply-To: <20180720141504.22832-7-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 , intel-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE4LTA3LTIwIMOgcyAxNzoxNSArMDMwMCwgSW1yZSBEZWFrIGVzY3JldmV1Ogo+ IFNpbWlsYXJseSB0byB0aGUgcHJldmlvdXMgcGF0Y2ggdXNlIGEgc2VwYXJhdGUgcmVxdWVzdC9z dGF0dXMgSFcgZmxhZwo+IGluZGV4IGRlZmluZWQgcmlnaHQgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRp bmcgY29udHJvbCByZWdpc3RlcnMgaW5zdGVhZAo+IG9mCj4gZGVwZW5kaW5nIGZvciB0aGlzIG9u IHRoZSBwb3dlciB3ZWxsIElEcy4gU2luY2UgdGhlIHNldCBvZgo+IGNvbnRyb2wvc3RhdHVzIHJl Z2lzdGVycyB2YXJpZXMgYW1vbmcgdGhlIGRpZmZlcmVudCBwb3dlciB3ZWxscyAob24gYQo+IHNp bmdsZSBwbGF0Zm9ybSksIGFsc28gYWRkIGEgbmV3IGk5MTVfcG93ZXJfd2VsbF9yZWdpc3RlcnMg c3RydWN0Cj4gdGhhdAo+IHdlIHBvcHVsYXRlIGFuZCBhc3NpZ24gdG8gZWFjaCBEREkgcG93ZXIg d2VsbCBhcyBuZWVkZWQuCj4gCj4gQWxzbyBjbGFyaWZ5IGEgYml0IHRoZSBjb2RlIGNvbW1lbnQg ZGVzY3JpYmluZyB0aGUgZnVuY3Rpb24gYW5kCj4gbGF5b3V0Cj4gb2YgdGhlIGNvbnRyb2wgcmVn aXN0ZXJzLgo+IAo+IFRoaXMgYWxzbyBmaXhlcyBhIHByb2JsZW0gb24gSUNMLCB3aGVyZSB3ZSBp bmNvcnJlY3RseSByZWFkIHRoZSBLVk1SCj4gY29udHJvbCByZWdpc3RlciBpbiBoc3dfcG93ZXJf d2VsbF9yZXF1ZXN0ZXJzKCkgZXZlbiBmb3IgRERJIGFuZCBBVVgKPiBwb3dlciB3ZWxscy4KPiAK PiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6 IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IENjOiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1y ZS5kZWFrQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRs ZXJzLmMgICAgIHwgIDMwICstLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgIDEzICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAg ICB8IDEyNiArKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyAgICB8ICAgNSArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmMgfCAzMDIKPiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICA1IGZpbGVzIGNo YW5nZWQsIDM1OSBpbnNlcnRpb25zKCspLCAxMTcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCj4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvaGFuZGxlcnMuYwo+IGluZGV4IDdhNThjYTU1NTE5Ny4uNzllNzQ4NTY5ZDMx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMKPiBAQCAtMTI4NywxMiArMTI4 NywxMiBAQCBzdGF0aWMgaW50IHBvd2VyX3dlbGxfY3RsX21taW9fd3JpdGUoc3RydWN0Cj4gaW50 ZWxfdmdwdSAqdmdwdSwKPiAgewo+ICAJd3JpdGVfdnJlZyh2Z3B1LCBvZmZzZXQsIHBfZGF0YSwg Ynl0ZXMpOwo+ICAKPiAtCWlmICh2Z3B1X3ZyZWcodmdwdSwgb2Zmc2V0KSAmCj4gSFNXX1BXUl9X RUxMX0NUTF9SRVEoSFNXX0RJU1BfUFdfR0xPQkFMKSkKPiArCWlmICh2Z3B1X3ZyZWcodmdwdSwg b2Zmc2V0KSAmCj4gSFNXX1BXUl9XRUxMX0NUTF9SRVEoSFNXX1BXX0NUTF9JRFhfR0xPQkFMKSkK PiAgCQl2Z3B1X3ZyZWcodmdwdSwgb2Zmc2V0KSB8PQo+IC0JCQlIU1dfUFdSX1dFTExfQ1RMX1NU QVRFKEhTV19ESVNQX1BXX0dMT0JBTCk7Cj4gKwkJCUhTV19QV1JfV0VMTF9DVExfU1RBVEUoSFNX X1BXX0NUTF9JRFhfR0xPQkFMCj4gKTsKPiAgCWVsc2UKPiAgCQl2Z3B1X3ZyZWcodmdwdSwgb2Zm c2V0KSAmPQo+IC0JCQl+SFNXX1BXUl9XRUxMX0NUTF9TVEFURShIU1dfRElTUF9QV19HTE9CQUwp Owo+ICsJCQl+SFNXX1BXUl9XRUxMX0NUTF9TVEFURShIU1dfUFdfQ1RMX0lEWF9HTE9CQQo+IEwp Owo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTI0NDMsMTcgKzI0NDMsMTAgQEAgc3RhdGlj IGludCBpbml0X2dlbmVyaWNfbW1pb19pbmZvKHN0cnVjdAo+IGludGVsX2d2dCAqZ3Z0KQo+ICAJ TU1JT19EKEdFTjZfUkM2cF9USFJFU0hPTEQsIERfQUxMKTsKPiAgCU1NSU9fRChHRU42X1JDNnBw X1RIUkVTSE9MRCwgRF9BTEwpOwo+ICAJTU1JT19EKEdFTjZfUE1JTlRSTVNLLCBEX0FMTCk7Cj4g LQkvKgo+IC0JICogVXNlIGFuIGFyYml0cmFyeSBwb3dlciB3ZWxsIGNvbnRyb2xsZWQgYnkgdGhl Cj4gUFdSX1dFTExfQ1RMCj4gLQkgKiByZWdpc3Rlci4KPiAtCSAqLwo+IC0JTU1JT19ESChIU1df UFdSX1dFTExfQ1RMX0JJT1MoSFNXX0RJU1BfUFdfR0xPQkFMKSwgRF9CRFcsCj4gTlVMTCwKPiAt CQlwb3dlcl93ZWxsX2N0bF9tbWlvX3dyaXRlKTsKPiAtCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NU TF9EUklWRVIoSFNXX0RJU1BfUFdfR0xPQkFMKSwgRF9CRFcsCj4gTlVMTCwKPiAtCQlwb3dlcl93 ZWxsX2N0bF9tbWlvX3dyaXRlKTsKPiAtCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTF9LVk1SLCBE X0JEVywgTlVMTCwKPiBwb3dlcl93ZWxsX2N0bF9tbWlvX3dyaXRlKTsKPiAtCU1NSU9fREgoSFNX X1BXUl9XRUxMX0NUTF9ERUJVRyhIU1dfRElTUF9QV19HTE9CQUwpLCBEX0JEVywKPiBOVUxMLAo+ IC0JCXBvd2VyX3dlbGxfY3RsX21taW9fd3JpdGUpOwo+ICsJTU1JT19ESChIU1dfUFdSX1dFTExf Q1RMMSwgRF9CRFcsIE5VTEwsCj4gcG93ZXJfd2VsbF9jdGxfbW1pb193cml0ZSk7Cj4gKwlNTUlP X0RIKEhTV19QV1JfV0VMTF9DVEwyLCBEX0JEVywgTlVMTCwKPiBwb3dlcl93ZWxsX2N0bF9tbWlv X3dyaXRlKTsKPiArCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTDMsIERfQkRXLCBOVUxMLAo+IHBv d2VyX3dlbGxfY3RsX21taW9fd3JpdGUpOwo+ICsJTU1JT19ESChIU1dfUFdSX1dFTExfQ1RMNCwg RF9CRFcsIE5VTEwsCj4gcG93ZXJfd2VsbF9jdGxfbW1pb193cml0ZSk7Cj4gIAlNTUlPX0RIKEhT V19QV1JfV0VMTF9DVEw1LCBEX0JEVywgTlVMTCwKPiBwb3dlcl93ZWxsX2N0bF9tbWlvX3dyaXRl KTsKPiAgCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTDYsIERfQkRXLCBOVUxMLAo+IHBvd2VyX3dl bGxfY3RsX21taW9fd3JpdGUpOwo+ICAKPiBAQCAtMjgwNCwxMyArMjc5Nyw4IEBAIHN0YXRpYyBp bnQgaW5pdF9za2xfbW1pb19pbmZvKHN0cnVjdCBpbnRlbF9ndnQKPiAqZ3Z0KQo+ICAJTU1JT19G KF9NTUlPKF9EUERfQVVYX0NIX0NUTCksIDYgKiA0LCAwLCAwLCAwLCBEX1NLTF9QTFVTLAo+IE5V TEwsCj4gIAkJCQkJCWRwX2F1eF9jaF9jdGxfbW1pb193Cj4gcml0ZSk7Cj4gIAo+IC0JLyoKPiAt CSAqIFVzZSBhbiBhcmJpdHJhcnkgcG93ZXIgd2VsbCBjb250cm9sbGVkIGJ5IHRoZQo+IFBXUl9X RUxMX0NUTAo+IC0JICogcmVnaXN0ZXIuCj4gLQkgKi8KPiAtCU1NSU9fRChIU1dfUFdSX1dFTExf Q1RMX0JJT1MoU0tMX0RJU1BfUFdfTUlTQ19JTyksCj4gRF9TS0xfUExVUyk7Cj4gLQlNTUlPX0RI KEhTV19QV1JfV0VMTF9DVExfRFJJVkVSKFNLTF9ESVNQX1BXX01JU0NfSU8pLAo+IERfU0tMX1BM VVMsIE5VTEwsCj4gLQkJc2tsX3Bvd2VyX3dlbGxfY3RsX3dyaXRlKTsKPiArCU1NSU9fRChIU1df UFdSX1dFTExfQ1RMMSwgRF9TS0xfUExVUyk7Cj4gKwlNTUlPX0RIKEhTV19QV1JfV0VMTF9DVEwy LCBEX1NLTF9QTFVTLCBOVUxMLAo+IHNrbF9wb3dlcl93ZWxsX2N0bF93cml0ZSk7Cj4gIAo+ICAJ TU1JT19EKF9NTUlPKDB4YTIxMCksIERfU0tMX1BMVVMpOwo+ICAJTU1JT19EKEdFTjlfTUVESUFf UEdfSURMRV9IWVNURVJFU0lTLCBEX1NLTF9QTFVTKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IGluZGV4IGQzMWE4ZWYwNWQxOC4uZDczY2UwYTdiOGY3IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gQEAgLTg2MSw2ICs4NjEsMTMgQEAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9v cHMgewo+ICAJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKTsKPiAgfTsK PiAgCj4gK3N0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfcmVncyB7Cj4gKwlpOTE1X3JlZ190IGJpb3M7 Cj4gKwlpOTE1X3JlZ190IGRyaXZlcjsKPiArCWk5MTVfcmVnX3Qga3ZtcjsKPiArCWk5MTVfcmVn X3QgZGVidWc7Cj4gK307Cj4gKwo+ICAvKiBQb3dlciB3ZWxsIHN0cnVjdHVyZSBmb3IgaGFzd2Vs bCAqLwo+ICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2Mgewo+ICAJY29uc3QgY2hhciAqbmFt ZTsKPiBAQCAtODg0LDYgKzg5MSwxMiBAQCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2Mgewo+ ICAJCQllbnVtIGRwaW9fcGh5IHBoeTsKPiAgCQl9IGJ4dDsKPiAgCQlzdHJ1Y3Qgewo+ICsJCQlj b25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX3JlZ3MgKnJlZ3M7Cj4gKwkJCS8qCj4gKwkJCSAq IHJlcXVlc3Qvc3RhdHVzIGZsYWcgaW5kZXggaW4gdGhlIHBvd2VyCj4gd2VsbAo+ICsJCQkgKiBj b25zdHJvbC9zdGF0dXMgcmVnaXN0ZXJzLgo+ICsJCQkgKi8KPiArCQkJdTggaWR4Owo+ICAJCQkv KiBNYXNrIG9mIHBpcGVzIHdob3NlIElSUSBsb2dpYyBpcyBiYWNrZWQKPiBieSB0aGUgcHcgKi8K PiAgCQkJdTggaXJxX3BpcGVfbWFzazsKPiAgCQkJLyogVGhlIHB3IGlzIGJhY2tpbmcgdGhlIFZH QSBmdW5jdGlvbmFsaXR5Cj4gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IGY3 NmJiNGYzYzk0NC4uYjcwMjJmYjhkNTI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4g QEAgLTg4NDIsNDYgKzg4NDIsNzggQEAgZW51bSB7Cj4gICNkZWZpbmUgSFNXX0FVRF9DSElDS0VO QklUCQkJX01NSU8oMHg2NWYxMCkKPiAgI2RlZmluZSAgIFNLTF9BVURfQ09ERUNfV0FLRV9TSUdO QUwJCSgxIDw8IDE1KQo+ICAKPiAtLyogSFNXIFBvd2VyIFdlbGxzICovCj4gLSNkZWZpbmUgX0hT V19QV1JfV0VMTF9DVEwxCQkJMHg0NTQwMAo+IC0jZGVmaW5lIF9IU1dfUFdSX1dFTExfQ1RMMgkJ CTB4NDU0MDQKPiAtI2RlZmluZSBfSFNXX1BXUl9XRUxMX0NUTDMJCQkweDQ1NDA4Cj4gLSNkZWZp bmUgX0hTV19QV1JfV0VMTF9DVEw0CQkJMHg0NTQwQwo+IC0KPiAtI2RlZmluZSBfSUNMX1BXUl9X RUxMX0NUTF9BVVgxCQkJMHg0NTQ0MAo+IC0jZGVmaW5lIF9JQ0xfUFdSX1dFTExfQ1RMX0FVWDIJ CQkweDQ1NDQ0Cj4gLSNkZWZpbmUgX0lDTF9QV1JfV0VMTF9DVExfQVVYNAkJCTB4NDU0NEMKPiAt Cj4gLSNkZWZpbmUgX0lDTF9QV1JfV0VMTF9DVExfRERJMQkJCTB4NDU0NTAKPiAtI2RlZmluZSBf SUNMX1BXUl9XRUxMX0NUTF9EREkyCQkJMHg0NTQ1NAo+IC0jZGVmaW5lIF9JQ0xfUFdSX1dFTExf Q1RMX0RESTQJCQkweDQ1NDVDCj4gLQo+ICAvKgo+IC0gKiBFYWNoIHBvd2VyIHdlbGwgY29udHJv bCByZWdpc3RlciBjb250YWlucyB1cCB0byAxNiAocmVxdWVzdCwKPiBzdGF0dXMpIEhXCj4gLSAq IGZsYWcgdHVwbGVzLiBUaGUgcmVnaXN0ZXIgaW5kZXggYW5kIEhXIGZsYWcgc2hpZnQgaXMgZGV0 ZXJtaW5lZAo+IGJ5IHRoZQo+IC0gKiBwb3dlciB3ZWxsIElEIChzZWUgaTkxNV9wb3dlcl93ZWxs X2lkKS4gVGhlcmUgYXJlIDQgcG9zc2libGUKPiBzb3VyY2VzIG9mCj4gLSAqIHBvd2VyIHdlbGwg cmVxdWVzdHMgZWFjaCBzb3VyY2UgaGF2aW5nIGl0cyBvd24gc2V0IG9mIGNvbnRyb2wKPiByZWdp c3RlcnM6Cj4gLSAqIEJJT1MsIERSSVZFUiwgS1ZNUiwgREVCVUcuCj4gKyAqIEhTVy1JQ0wgcG93 ZXIgd2VsbHMKPiArICoKPiArICogUGxhdGZvcm1zIGhhdmUgdXAgdG8gMyBwb3dlciB3ZWxsIGNv bnRyb2wgcmVnaXN0ZXIgc2V0cywgZWFjaCBzZXQKPiArICogY29udHJvbGxpbmcgdXAgdG8gMTYg cG93ZXIgd2VsbHMgdmlhIGEgcmVxdWVzdC9zdGF0dXMgSFcgZmxhZwo+IHR1cGxlOgo+ICsgKiAt IG1haW4gKEhTV19QV1JfV0VMTF9DVExbMS00XSkKPiArICogLSBBVVggIChJQ0xfUFdSX1dFTExf Q1RMX0FVWFsxLTRdKQo+ICsgKiAtIERESSAgKElDTF9QV1JfV0VMTF9DVExfRERJWzEtNF0pCj4g KyAqIEVhY2ggY29udHJvbCByZWdpc3RlciBzZXQgY29uc2lzdHMgb2YgdXAgdG8gNCByZWdpc3Rl cnMgdXNlZCBieQo+IGRpZmZlcmVudAo+ICsgKiBzb3VyY2VzIHRoYXQgY2FuIHJlcXVlc3QgYSBw b3dlciB3ZWxsIHRvIGJlIGVuYWJsZWQ6Cj4gKyAqIC0KPiBCSU9TICAgKEhTV19QV1JfV0VMTF9D VEwxL0lDTF9QV1JfV0VMTF9DVExfQVVYMS9JQ0xfUFdSX1dFTExfQ1RMX0RESTEKPiApCj4gKyAq IC0gRFJJVkVSCj4gKEhTV19QV1JfV0VMTF9DVEwyL0lDTF9QV1JfV0VMTF9DVExfQVVYMi9JQ0xf UFdSX1dFTExfQ1RMX0RESTIpCj4gKyAqIC0gS1ZNUiAgIChIU1dfUFdSX1dFTExfQ1RMMykgICAo b25seSBpbiB0aGUgbWFpbiByZWdpc3RlciBzZXQpCj4gKyAqIC0KPiBERUJVRyAgKEhTV19QV1Jf V0VMTF9DVEw0L0lDTF9QV1JfV0VMTF9DVExfQVVYNC9JQ0xfUFdSX1dFTExfQ1RMX0RESTQKPiAp Cj4gICAqLwo+IC0jZGVmaW5lIF9IU1dfUFdfUkVHX0lEWChwdykJCQkoKHB3KSA+PiA0KQo+IC0j ZGVmaW5lIF9IU1dfUFdfU0hJRlQocHcpCQkJKCgocHcpICYgMHhmKSAqIDIpCj4gLSNkZWZpbmUg SFNXX1BXUl9XRUxMX0NUTF9CSU9TKHB3KQlfTU1JTyhfUElDSyhfSFNXX1BXX1JFR19JRFgKPiAo cHcpLCAgICAgICBcCj4gLQkJCQkJCSAgICBfSFNXX1BXUl9XRUxMX0NUCj4gTDEsCSAgICAgICBc Cj4gLQkJCQkJCSAgICBfSUNMX1BXUl9XRUxMX0NUCj4gTF9BVVgxLCAgICBcCj4gLQkJCQkJCSAg ICBfSUNMX1BXUl9XRUxMX0NUCj4gTF9EREkxKSkKPiAtI2RlZmluZSBIU1dfUFdSX1dFTExfQ1RM X0RSSVZFUihwdykJX01NSU8oX1BJQ0soX0hTV19QV19SRUdfSQo+IERYKHB3KSwgICAgICAgXAo+ IC0JCQkJCQkgICAgX0hTV19QV1JfV0VMTF9DVAo+IEwyLAkgICAgICAgXAo+IC0JCQkJCQkgICAg X0lDTF9QV1JfV0VMTF9DVAo+IExfQVVYMiwgICAgXAo+IC0JCQkJCQkgICAgX0lDTF9QV1JfV0VM TF9DVAo+IExfRERJMikpCj4gLS8qIEtWTVIgZG9lc24ndCBoYXZlIGEgcmVnIGZvciBBVVggb3Ig RERJIHBvd2VyIHdlbGwgY29udHJvbCAqLwo+IC0jZGVmaW5lIEhTV19QV1JfV0VMTF9DVExfS1ZN UgkJX01NSU8oX0hTV19QV1JfV0VMTF9DVEwKPiAzKQo+IC0jZGVmaW5lIEhTV19QV1JfV0VMTF9D VExfREVCVUcocHcpCV9NTUlPKF9QSUNLKF9IU1dfUFdfUkVHX0lECj4gWChwdyksICAgICAgIFwK PiAtCQkJCQkJICAgIF9IU1dfUFdSX1dFTExfQ1QKPiBMNCwJICAgICAgIFwKPiAtCQkJCQkJICAg IF9JQ0xfUFdSX1dFTExfQ1QKPiBMX0FVWDQsICAgIFwKPiAtCQkJCQkJICAgIF9JQ0xfUFdSX1dF TExfQ1QKPiBMX0RESTQpKQo+ICsjZGVmaW5lIEhTV19QV1JfV0VMTF9DVEwxCQkJX01NSU8oMHg0 NTQwMCkKPiArI2RlZmluZSBIU1dfUFdSX1dFTExfQ1RMMgkJCV9NTUlPKDB4NDU0MDQpCj4gKyNk ZWZpbmUgSFNXX1BXUl9XRUxMX0NUTDMJCQlfTU1JTygweDQ1NDA4KQo+ICsjZGVmaW5lIEhTV19Q V1JfV0VMTF9DVEw0CQkJX01NSU8oMHg0NTQwQykKPiArI2RlZmluZSAgIEhTV19QV1JfV0VMTF9D VExfUkVRKHB3X2lkeCkJCSgweDIgPDwKPiAoKHB3X2lkeCkgKiAyKSkKPiArI2RlZmluZSAgIEhT V19QV1JfV0VMTF9DVExfU1RBVEUocHdfaWR4KQkoMHgxIDw8ICgocHdfaWR4KSAqCj4gMikpCj4g IAo+IC0jZGVmaW5lICAgSFNXX1BXUl9XRUxMX0NUTF9SRVEocHcpCQkoMSA8PAo+IChfSFNXX1BX X1NISUZUKHB3KSArIDEpKQo+IC0jZGVmaW5lICAgSFNXX1BXUl9XRUxMX0NUTF9TVEFURShwdykJ CSgxIDw8Cj4gX0hTV19QV19TSElGVChwdykpCj4gKy8qIEhTVy9CRFcgcG93ZXIgd2VsbCAqLwo+ ICsjZGVmaW5lICAgSFNXX1BXX0NUTF9JRFhfR0xPQkFMCQkJMTUKPiArCj4gKy8qIFNLTC9CWFQv R0xLL0NOTCBwb3dlciB3ZWxscyAqLwo+ICsjZGVmaW5lICAgU0tMX1BXX0NUTF9JRFhfUFdfMgkJ CTE1Cj4gKyNkZWZpbmUgICBTS0xfUFdfQ1RMX0lEWF9QV18xCQkJMTQKPiArI2RlZmluZSAgIENO TF9QV19DVExfSURYX0FVWF9GCQkJMTIKPiArI2RlZmluZSAgIENOTF9QV19DVExfSURYX0FVWF9E CQkJMTEKPiArI2RlZmluZSAgIEdMS19QV19DVExfSURYX0FVWF9DCQkJMTAKPiArI2RlZmluZSAg IEdMS19QV19DVExfSURYX0FVWF9CCQkJOQo+ICsjZGVmaW5lICAgR0xLX1BXX0NUTF9JRFhfQVVY X0EJCQk4Cj4gKyNkZWZpbmUgICBDTkxfUFdfQ1RMX0lEWF9ERElfRgkJCTYKPiArI2RlZmluZSAg IFNLTF9QV19DVExfSURYX0RESV9ECQkJNAo+ICsjZGVmaW5lICAgU0tMX1BXX0NUTF9JRFhfRERJ X0MJCQkzCj4gKyNkZWZpbmUgICBTS0xfUFdfQ1RMX0lEWF9ERElfQgkJCTIKPiArI2RlZmluZSAg IFNLTF9QV19DVExfSURYX0RESV9BX0UJCTEKPiArI2RlZmluZSAgIEdMS19QV19DVExfSURYX0RE SV9BCQkJMQo+ICsjZGVmaW5lICAgU0tMX1BXX0NUTF9JRFhfTUlTQ19JTwkJMAo+ICsKPiArLyog SUNMLSBwb3dlciB3ZWxscyAqLwoKU2luZ2xlIG5pdHBpY2sgZm9yIGEgYmlnIHBhdGNoOiBteSBP Q0QgdGVsbHMgbWUgdG8gcHV0IGEgc3BhY2UgYmVmb3JlCictJyBvciByZW1vdmUgaXQgY29tcGxl dGVseSBiZWNhdXNlICJJQ0wtIiBhcyBpcyBjYW4gYmUgcmVhZCBhcyAiSUNMCmFuZCBvbGRlciIg dG8gdGhlIGRpc3RyYWN0ZWQgcmVhZGVyLgoKUmV2aWV3ZWQtYnk6IFBhdWxvIFphbm9uaSA8cGF1 bG8uci56YW5vbmlAaW50ZWwuY29tPgoKCj4gKyNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9QV180 CQkJMwo+ICsjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfUFdfMwkJCTIKPiArI2RlZmluZSAgIElD TF9QV19DVExfSURYX1BXXzIJCQkxCj4gKyNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9QV18xCQkJ MAo+ICsKPiArI2RlZmluZSBJQ0xfUFdSX1dFTExfQ1RMX0FVWDEJCQlfTU1JTygweDQ1NDQwKQo+ ICsjZGVmaW5lIElDTF9QV1JfV0VMTF9DVExfQVVYMgkJCV9NTUlPKDB4NDU0NDQpCj4gKyNkZWZp bmUgSUNMX1BXUl9XRUxMX0NUTF9BVVg0CQkJX01NSU8oMHg0NTQ0QykKPiArI2RlZmluZSAgIElD TF9QV19DVExfSURYX0FVWF9UQlQ0CQkxMQo+ICsjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVY X1RCVDMJCTEwCj4gKyNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMgkJOQo+ICsjZGVm aW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX1RCVDEJCTgKPiArI2RlZmluZSAgIElDTF9QV19DVExf SURYX0FVWF9GCQkJNQo+ICsjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX0UJCQk0Cj4gKyNk ZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfRAkJCTMKPiArI2RlZmluZSAgIElDTF9QV19DVExf SURYX0FVWF9DCQkJMgo+ICsjZGVmaW5lICAgSUNMX1BXX0NUTF9JRFhfQVVYX0IJCQkxCj4gKyNk ZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9BVVhfQQkJCTAKPiArCj4gKyNkZWZpbmUgSUNMX1BXUl9X RUxMX0NUTF9EREkxCQkJX01NSU8oMHg0NTQ1MCkKPiArI2RlZmluZSBJQ0xfUFdSX1dFTExfQ1RM X0RESTIJCQlfTU1JTygweDQ1NDU0KQo+ICsjZGVmaW5lIElDTF9QV1JfV0VMTF9DVExfRERJNAkJ CV9NTUlPKDB4NDU0NUMpCj4gKyNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfRgkJCTUKPiAr I2RlZmluZSAgIElDTF9QV19DVExfSURYX0RESV9FCQkJNAo+ICsjZGVmaW5lICAgSUNMX1BXX0NU TF9JRFhfRERJX0QJCQkzCj4gKyNkZWZpbmUgICBJQ0xfUFdfQ1RMX0lEWF9ERElfQwkJCTIKPiAr I2RlZmluZSAgIElDTF9QV19DVExfSURYX0RESV9CCQkJMQo+ICsjZGVmaW5lICAgSUNMX1BXX0NU TF9JRFhfRERJX0EJCQkwCj4gKwo+ICsvKiBIU1ctIHBvd2VyIHdlbGwgbWlzYyBkZWJ1ZyByZWdp c3RlcnMgKi8KPiAgI2RlZmluZSBIU1dfUFdSX1dFTExfQ1RMNQkJCV9NTUlPKDB4NDU0MTApCj4g ICNkZWZpbmUgICBIU1dfUFdSX1dFTExfRU5BQkxFX1NJTkdMRV9TVEVQCSgxIDw8IDMxKQo+ICAj ZGVmaW5lICAgSFNXX1BXUl9XRUxMX1BXUl9HQVRFX09WRVJSSURFCSgxIDw8IDIwKQo+IEBAIC04 ODk3LDE4ICs4OTI5LDI2IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ICAKPiAgI2RlZmluZSBT S0xfRlVTRV9TVEFUVVMJCQkJX01NSU8oMHg0MjAwMAo+ICkKPiAgI2RlZmluZSAgU0tMX0ZVU0Vf RE9XTkxPQURfU1RBVFVTCQkoMSA8PCAzMSkKPiAtLyogUEcwIChIVyBjb250cm9sLT5ubyBwb3dl ciB3ZWxsIElEKSwgUEcxLi5QRzIKPiAoU0tMX0RJU1BfUFcxLi5TS0xfRElTUF9QVzIpICovCj4g LSNkZWZpbmUgIFNLTF9QV19UT19QRyhwdykJCQkoKHB3KSAtCj4gU0tMX0RJU1BfUFdfMSArIFNL TF9QRzEpCj4gLS8qIFBHMCAoSFcgY29udHJvbC0+bm8gcG93ZXIgd2VsbCBJRCksIFBHMS4uUEc0 Cj4gKElDTF9ESVNQX1BXMS4uSUNMX0RJU1BfUFc0KSAqLwo+IC0jZGVmaW5lICBJQ0xfUFdfVE9f UEcocHcpCQkJKChwdykgLQo+IElDTF9ESVNQX1BXXzEgKyBTS0xfUEcxKQo+ICsvKgo+ICsgKiBQ RzAgaXMgSFcgY29udHJvbGxlZCwgc28gZG9lc24ndCBoYXZlIGEgY29ycmVzcG9uZGluZyBwb3dl ciB3ZWxsCj4gY29udHJvbCBrbm9iCj4gKyAqIFNLTF9ESVNQX1BXMV9JRFguLlNLTF9ESVNQX1BX Ml9JRFggLT4gUEcxLi5QRzIKPiArICovCj4gKyNkZWZpbmUgIFNLTF9QV19DVExfSURYX1RPX1BH KHB3X2lkeCkJCVwKPiArCSgocHdfaWR4KSAtIFNLTF9QV19DVExfSURYX1BXXzEgKyBTS0xfUEcx KQo+ICsvKgo+ICsgKiBQRzAgaXMgSFcgY29udHJvbGxlZCwgc28gZG9lc24ndCBoYXZlIGEgY29y cmVzcG9uZGluZyBwb3dlciB3ZWxsCj4gY29udHJvbCBrbm9iCj4gKyAqIElDTF9ESVNQX1BXMV9J RFguLklDTF9ESVNQX1BXNF9JRFggLT4gUEcxLi5QRzQKPiArICovCj4gKyNkZWZpbmUgIElDTF9Q V19DVExfSURYX1RPX1BHKHB3X2lkeCkJCVwKPiArCSgocHdfaWR4KSAtIElDTF9QV19DVExfSURY X1BXXzEgKyBTS0xfUEcxKQo+ICAjZGVmaW5lICBTS0xfRlVTRV9QR19ESVNUX1NUQVRVUyhwZykJ CSgxIDw8ICgyNyAtCj4gKHBnKSkpCj4gIAo+IC0jZGVmaW5lIF9DTkxfQVVYX1JFR19JRFgocHcp CQkoKHB3KSAtIDkpCj4gKyNkZWZpbmUgX0NOTF9BVVhfUkVHX0lEWChwd19pZHgpCSgocHdfaWR4 KSAtCj4gR0xLX1BXX0NUTF9JRFhfQVVYX0IpCj4gICNkZWZpbmUgX0NOTF9BVVhfQU5BT1ZSRDFf QgkJMHgxNjIyNTAKPiAgI2RlZmluZSBfQ05MX0FVWF9BTkFPVlJEMV9DCQkweDE2MjIxMAo+ICAj ZGVmaW5lIF9DTkxfQVVYX0FOQU9WUkQxX0QJCTB4MTYyMkQwCj4gICNkZWZpbmUgX0NOTF9BVVhf QU5BT1ZSRDFfRgkJMHgxNjJBOTAKPiAtI2RlZmluZSBDTkxfQVVYX0FOQU9WUkQxKHB3KQkJX01N SU8oX1BJQ0soX0NOTF9BVVhfUkVHCj4gX0lEWChwdyksIFwKPiArI2RlZmluZSBDTkxfQVVYX0FO QU9WUkQxKHB3X2lkeCkJX01NSU8oX1BJQ0soX0NOTF9BVVhfUkVHX0lEWAo+IChwd19pZHgpLCBc Cj4gIAkJCQkJCSAgICBfQ05MX0FVWF9BTkFPVlJECj4gMV9CLCBcCj4gIAkJCQkJCSAgICBfQ05M X0FVWF9BTkFPVlJECj4gMV9DLCBcCj4gIAkJCQkJCSAgICBfQ05MX0FVWF9BTkFPVlJECj4gMV9E LCBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggODdlNGNmYmZk MDk2Li42NDBlYzVkZjRkNjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gQEAgLTg5NzMsNyArODk3Myw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9s Y3BsbChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlJOTE1X1NUQVRF X1dBUk4oY3J0Yy0+YWN0aXZlLCAiQ1JUQyBmb3IgcGlwZSAlYwo+IGVuYWJsZWRcbiIsCj4gIAkJ ICAgICBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwo+ICAKPiAtCUk5MTVfU1RBVEVfV0FSTihJOTE1 X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoSFNXX0RJU1BfUAo+IFdfR0xPQkFMKSksCj4g KwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVEwyKSwKPiAgCQkJIkRp c3BsYXkgcG93ZXIgd2VsbCBvblxuIik7Cj4gIAlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKFNQ TExfQ1RMKSAmIFNQTExfUExMX0VOQUJMRSwgIlNQTEwKPiBlbmFibGVkXG4iKTsKPiAgCUk5MTVf U1RBVEVfV0FSTihJOTE1X1JFQUQoV1JQTExfQ1RMKDApKSAmIFdSUExMX1BMTF9FTkFCTEUsCj4g IldSUExMMSBlbmFibGVkXG4iKTsKPiBAQCAtMTYwNTIsOCArMTYwNTIsNyBAQCBpbnRlbF9kaXNw bGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8 IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gLQkJZXJyb3ItPnBvd2VyX3dlbGxfZHJpdmVyID0K PiAtCQkJSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVExfRFJJVkVSKEhTV19ESVNQX1AKPiBXX0dM T0JBTCkpOwo+ICsJCWVycm9yLT5wb3dlcl93ZWxsX2RyaXZlciA9Cj4gSTkxNV9SRUFEKEhTV19Q V1JfV0VMTF9DVEwyKTsKPiAgCj4gIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBpKSB7Cj4gIAkJ ZXJyb3ItPnBpcGVbaV0ucG93ZXJfZG9tYWluX29uID0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKPiBpbmRleCAwNWQ4Y2RhYjA4Y2MuLjU1Mjc1MDRkNjY0ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBAQCAtMzIzLDI2ICsz MjMsMjkgQEAgc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoc3RydWN0Cj4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyB2b2lkIGhzd193YWl0X2Zvcl9w b3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiAg CQkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4gKnBvd2VyX3dlbGwpCj4gIHsKPiAtCWVu dW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gcG93ZXJfd2VsbC0+ZGVzYy0+aWQ7Cj4gKwljb25z dCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX3JlZ3MgKnJlZ3MgPSBwb3dlcl93ZWxsLT5kZXNjLQo+ ID5oc3cucmVnczsKPiArCWludCBwd19pZHggPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaWR4Owo+ ICAKPiAgCS8qIFRpbWVvdXQgZm9yIFBXMToxMCB1cywgQVVYOm5vdCBzcGVjaWZpZWQsIG90aGVy IFBXczoyMAo+IHVzLiAqLwo+ICAJV0FSTl9PTihpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZf cHJpdiwKPiAtCQkJCQlIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCksCj4gLQkJCQkJSFNXX1BX Ul9XRUxMX0NUTF9TVEFURShpZCksCj4gLQkJCQkJSFNXX1BXUl9XRUxMX0NUTF9TVEFURShpZCks Cj4gKwkJCQkJcmVncy0+ZHJpdmVyLAo+ICsJCQkJCUhTV19QV1JfV0VMTF9DVExfU1RBVEUocHdf aWQKPiB4KSwKPiArCQkJCQlIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKHB3X2lkCj4geCksCj4gIAkJ CQkJMSkpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdTMyIGhzd19wb3dlcl93ZWxsX3JlcXVlc3RlcnMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gLQkJCQkgICAgIGVudW0gaTkx NV9wb3dlcl93ZWxsX2lkIGlkKQo+ICsJCQkJICAgICBjb25zdCBzdHJ1Y3QKPiBpOTE1X3Bvd2Vy X3dlbGxfcmVncyAqcmVncywKPiArCQkJCSAgICAgaW50IHB3X2lkeCkKPiAgewo+IC0JdTMyIHJl cV9tYXNrID0gSFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpOwo+ICsJdTMyIHJlcV9tYXNrID0gSFNX X1BXUl9XRUxMX0NUTF9SRVEocHdfaWR4KTsKPiAgCXUzMiByZXQ7Cj4gIAo+IC0JcmV0ID0gSTkx NV9SRUFEKEhTV19QV1JfV0VMTF9DVExfQklPUyhpZCkpICYgcmVxX21hc2sgPyAxIDoKPiAwOwo+ IC0JcmV0IHw9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCkpICYgcmVxX21h c2sgPyAyCj4gOiAwOwo+IC0JcmV0IHw9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0tWTVIp ICYgcmVxX21hc2sgPyA0IDogMDsKPiAtCXJldCB8PSBJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NU TF9ERUJVRyhpZCkpICYgcmVxX21hc2sgPyA4Cj4gOiAwOwo+ICsJcmV0ID0gSTkxNV9SRUFEKHJl Z3MtPmJpb3MpICYgcmVxX21hc2sgPyAxIDogMDsKPiArCXJldCB8PSBJOTE1X1JFQUQocmVncy0+ ZHJpdmVyKSAmIHJlcV9tYXNrID8gMiA6IDA7Cj4gKwlpZiAocmVncy0+a3Ztci5yZWcpCj4gKwkJ cmV0IHw9IEk5MTVfUkVBRChyZWdzLT5rdm1yKSAmIHJlcV9tYXNrID8gNCA6IDA7Cj4gKwlyZXQg fD0gSTkxNV9SRUFEKHJlZ3MtPmRlYnVnKSAmIHJlcV9tYXNrID8gOCA6IDA7Cj4gIAo+ICAJcmV0 dXJuIHJldDsKPiAgfQo+IEBAIC0zNTAsNyArMzUzLDggQEAgc3RhdGljIHUzMiBoc3dfcG93ZXJf d2VsbF9yZXF1ZXN0ZXJzKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICBz dGF0aWMgdm9pZCBoc3dfd2FpdF9mb3JfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICAJCQkJCSAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxs Cj4gKnBvd2VyX3dlbGwpCj4gIHsKPiAtCWVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gcG93 ZXJfd2VsbC0+ZGVzYy0+aWQ7Cj4gKwljb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX3JlZ3Mg KnJlZ3MgPSBwb3dlcl93ZWxsLT5kZXNjLQo+ID5oc3cucmVnczsKPiArCWludCBwd19pZHggPSBw b3dlcl93ZWxsLT5kZXNjLT5oc3cuaWR4Owo+ICAJYm9vbCBkaXNhYmxlZDsKPiAgCXUzMiByZXFz Owo+ICAKPiBAQCAtMzYzLDkgKzM2Nyw5IEBAIHN0YXRpYyB2b2lkCj4gaHN3X3dhaXRfZm9yX3Bv d2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkg KiBTa2lwIHRoZSB3YWl0IGluIGNhc2UgYW55IG9mIHRoZSByZXF1ZXN0IGJpdHMgYXJlIHNldCBh bmQKPiBwcmludCBhCj4gIAkgKiBkaWFnbm9zdGljIG1lc3NhZ2UuCj4gIAkgKi8KPiAtCXdhaXRf Zm9yKChkaXNhYmxlZCA9Cj4gIShJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQp KSAmCj4gLQkJCSAgICAgICBIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKGlkKSkpIHx8Cj4gLQkJIChy ZXFzID0gaHN3X3Bvd2VyX3dlbGxfcmVxdWVzdGVycyhkZXZfcHJpdiwgaWQpKSwKPiAxKTsKPiAr CXdhaXRfZm9yKChkaXNhYmxlZCA9ICEoSTkxNV9SRUFEKHJlZ3MtPmRyaXZlcikgJgo+ICsJCQkg ICAgICAgSFNXX1BXUl9XRUxMX0NUTF9TVEFURShwd19pZHgpKSkgfHwKPiArCQkgKHJlcXMgPSBo c3dfcG93ZXJfd2VsbF9yZXF1ZXN0ZXJzKGRldl9wcml2LCByZWdzLAo+IHB3X2lkeCkpLCAxKTsK PiAgCWlmIChkaXNhYmxlZCkKPiAgCQlyZXR1cm47Cj4gIAo+IEBAIC0zODYsMTQgKzM5MCwxNSBA QCBzdGF0aWMgdm9pZAo+IGdlbjlfd2FpdF9mb3JfcG93ZXJfd2VsbF9mdXNlcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkgIHN0cnVjdCBp OTE1X3Bvd2VyX3dlbGwKPiAqcG93ZXJfd2VsbCkKPiAgewo+IC0JZW51bSBpOTE1X3Bvd2VyX3dl bGxfaWQgaWQgPSBwb3dlcl93ZWxsLT5kZXNjLT5pZDsKPiArCWNvbnN0IHN0cnVjdCBpOTE1X3Bv d2VyX3dlbGxfcmVncyAqcmVncyA9IHBvd2VyX3dlbGwtPmRlc2MtCj4gPmhzdy5yZWdzOwo+ICsJ aW50IHB3X2lkeCA9IHBvd2VyX3dlbGwtPmRlc2MtPmhzdy5pZHg7Cj4gIAlib29sIHdhaXRfZnVz ZXMgPSBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaGFzX2Z1c2VzOwo+ICAJZW51bSBza2xfcG93ZXJf Z2F0ZSB1bmluaXRpYWxpemVkX3ZhcihwZyk7Cj4gIAl1MzIgdmFsOwo+ICAKPiAgCWlmICh3YWl0 X2Z1c2VzKSB7Cj4gLQkJcGcgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExID8gSUNMX1BXX1RP X1BHKGlkKSA6Cj4gLQkJCQkJCSBTS0xfUFdfVE9fUEcoaWQpOwo+ICsJCXBnID0gSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSA/Cj4gSUNMX1BXX0NUTF9JRFhfVE9fUEcocHdfaWR4KSA6Cj4gKwkJ CQkJCSBTS0xfUFdfQ1RMX0lEWF9UT19QCj4gRyhwd19pZHgpOwo+ICAJCS8qCj4gIAkJICogRm9y IFBXMSB3ZSBoYXZlIHRvIHdhaXQgYm90aCBmb3IgdGhlIFBXMC9QRzAgZnVzZQo+IHN0YXRlCj4g IAkJICogYmVmb3JlIGVuYWJsaW5nIHRoZSBwb3dlciB3ZWxsIGFuZCBQVzEvUEcxJ3Mgb3duCj4g ZnVzZQo+IEBAIC00MDUsMTcgKzQxMCwxNyBAQCBzdGF0aWMgdm9pZCBoc3dfcG93ZXJfd2VsbF9l bmFibGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCWdlbjlfd2Fp dF9mb3JfcG93ZXJfd2VsbF9mdXNlcyhkZXZfcHJpdiwKPiBTS0xfUEcwKTsKPiAgCX0KPiAgCj4g LQl2YWwgPSBJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpKTsKPiAtCUk5MTVf V1JJVEUoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpLCB2YWwgfAo+IEhTV19QV1JfV0VMTF9D VExfUkVRKGlkKSk7Cj4gKwl2YWwgPSBJOTE1X1JFQUQocmVncy0+ZHJpdmVyKTsKPiArCUk5MTVf V1JJVEUocmVncy0+ZHJpdmVyLCB2YWwgfAo+IEhTV19QV1JfV0VMTF9DVExfUkVRKHB3X2lkeCkp Owo+ICAJaHN3X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZW5hYmxlKGRldl9wcml2LCBwb3dlcl93ZWxs KTsKPiAgCj4gIAkvKiBEaXNwbGF5IFdBICMxMTc4OiBjbmwgKi8KPiAgCWlmIChJU19DQU5OT05M QUtFKGRldl9wcml2KSAmJgo+IC0JICAgIChpZCA9PSBDTkxfRElTUF9QV19BVVhfQiB8fCBpZCA9 PSBDTkxfRElTUF9QV19BVVhfQyB8fAo+IC0JICAgICBpZCA9PSBDTkxfRElTUF9QV19BVVhfRCB8 fCBpZCA9PSBDTkxfRElTUF9QV19BVVhfRikpIHsKPiAtCQl2YWwgPSBJOTE1X1JFQUQoQ05MX0FV WF9BTkFPVlJEMShpZCkpOwo+ICsJICAgIHB3X2lkeCA+PSBHTEtfUFdfQ1RMX0lEWF9BVVhfQiAm Jgo+ICsJICAgIHB3X2lkeCA8PSBDTkxfUFdfQ1RMX0lEWF9BVVhfRikgewo+ICsJCXZhbCA9IEk5 MTVfUkVBRChDTkxfQVVYX0FOQU9WUkQxKHB3X2lkeCkpOwo+ICAJCXZhbCB8PSBDTkxfQVVYX0FO QU9WUkQxX0VOQUJMRSB8Cj4gQ05MX0FVWF9BTkFPVlJEMV9MRE9fQllQQVNTOwo+IC0JCUk5MTVf V1JJVEUoQ05MX0FVWF9BTkFPVlJEMShpZCksIHZhbCk7Cj4gKwkJSTkxNV9XUklURShDTkxfQVVY X0FOQU9WUkQxKHB3X2lkeCksIHZhbCk7Cj4gIAl9Cj4gIAo+ICAJaWYgKHdhaXRfZnVzZXMpCj4g QEAgLTQyOSwzMCArNDM0LDMxIEBAIHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX2VuYWJsZShz dHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgc3RhdGljIHZvaWQgaHN3X3Bv d2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiAg CQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiAqcG93ZXJfd2VsbCkKPiAgewo+IC0JZW51 bSBpOTE1X3Bvd2VyX3dlbGxfaWQgaWQgPSBwb3dlcl93ZWxsLT5kZXNjLT5pZDsKPiArCWNvbnN0 IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfcmVncyAqcmVncyA9IHBvd2VyX3dlbGwtPmRlc2MtCj4g Pmhzdy5yZWdzOwo+ICsJaW50IHB3X2lkeCA9IHBvd2VyX3dlbGwtPmRlc2MtPmhzdy5pZHg7Cj4g IAl1MzIgdmFsOwo+ICAKPiAgCWhzd19wb3dlcl93ZWxsX3ByZV9kaXNhYmxlKGRldl9wcml2LAo+ ICAJCQkJICAgcG93ZXJfd2VsbC0+ZGVzYy0KPiA+aHN3LmlycV9waXBlX21hc2spOwo+ICAKPiAt CXZhbCA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCkpOwo+IC0JSTkxNV9X UklURShIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCksCj4gLQkJICAgdmFsICYgfkhTV19QV1Jf V0VMTF9DVExfUkVRKGlkKSk7Cj4gKwl2YWwgPSBJOTE1X1JFQUQocmVncy0+ZHJpdmVyKTsKPiAr CUk5MTVfV1JJVEUocmVncy0+ZHJpdmVyLCB2YWwgJgo+IH5IU1dfUFdSX1dFTExfQ1RMX1JFUShw d19pZHgpKTsKPiAgCWhzd193YWl0X2Zvcl9wb3dlcl93ZWxsX2Rpc2FibGUoZGV2X3ByaXYsIHBv d2VyX3dlbGwpOwo+ICB9Cj4gIAo+IC0jZGVmaW5lIElDTF9BVVhfUFdfVE9fUE9SVChwdykJKChw dykgLSBJQ0xfRElTUF9QV19BVVhfQSkKPiArI2RlZmluZSBJQ0xfQVVYX1BXX1RPX1BPUlQocHdf aWR4KQkoKHB3X2lkeCkgLQo+IElDTF9QV19DVExfSURYX0FVWF9BKQo+ICAKPiAgc3RhdGljIHZv aWQKPiAgaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gIAkJCQkgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbAo+ ICpwb3dlcl93ZWxsKQo+ICB7Cj4gLQllbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCBpZCA9IHBvd2Vy X3dlbGwtPmRlc2MtPmlkOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBJQ0xfQVVYX1BXX1RPX1BPUlQo aWQpOwo+ICsJY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9yZWdzICpyZWdzID0gcG93ZXJf d2VsbC0+ZGVzYy0KPiA+aHN3LnJlZ3M7Cj4gKwlpbnQgcHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVz Yy0+aHN3LmlkeDsKPiArCWVudW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9QV19UT19QT1JUKHB3X2lk eCk7Cj4gIAl1MzIgdmFsOwo+ICAKPiAtCXZhbCA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RM X0RSSVZFUihpZCkpOwo+IC0JSTkxNV9XUklURShIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCks IHZhbCB8Cj4gSFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpKTsKPiArCXZhbCA9IEk5MTVfUkVBRChy ZWdzLT5kcml2ZXIpOwo+ICsJSTkxNV9XUklURShyZWdzLT5kcml2ZXIsIHZhbCB8Cj4gSFNXX1BX Ul9XRUxMX0NUTF9SRVEocHdfaWR4KSk7Cj4gIAo+ICAJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JU X0NMX0RXMTIocG9ydCkpOwo+ICAJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzEyKHBvcnQpLCB2 YWwgfAo+IElDTF9MQU5FX0VOQUJMRV9BVVgpOwo+IEBAIC00NjQsMTYgKzQ3MCwxNiBAQCBzdGF0 aWMgdm9pZAo+ICBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gIAkJCQkgICAgIHN0cnVjdCBpOTE1X3Bvd2Vy X3dlbGwKPiAqcG93ZXJfd2VsbCkKPiAgewo+IC0JZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgaWQg PSBwb3dlcl93ZWxsLT5kZXNjLT5pZDsKPiAtCWVudW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9QV19U T19QT1JUKGlkKTsKPiArCWNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfcmVncyAqcmVncyA9 IHBvd2VyX3dlbGwtPmRlc2MtCj4gPmhzdy5yZWdzOwo+ICsJaW50IHB3X2lkeCA9IHBvd2VyX3dl bGwtPmRlc2MtPmhzdy5pZHg7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IElDTF9BVVhfUFdfVE9fUE9S VChwd19pZHgpOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRf Q0xfRFcxMihwb3J0KSk7Cj4gIAlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXMTIocG9ydCksIHZh bCAmCj4gfklDTF9MQU5FX0VOQUJMRV9BVVgpOwo+ICAKPiAtCXZhbCA9IEk5MTVfUkVBRChIU1df UFdSX1dFTExfQ1RMX0RSSVZFUihpZCkpOwo+IC0JSTkxNV9XUklURShIU1dfUFdSX1dFTExfQ1RM X0RSSVZFUihpZCksCj4gLQkJICAgdmFsICYgfkhTV19QV1JfV0VMTF9DVExfUkVRKGlkKSk7Cj4g Kwl2YWwgPSBJOTE1X1JFQUQocmVncy0+ZHJpdmVyKTsKPiArCUk5MTVfV1JJVEUocmVncy0+ZHJp dmVyLCB2YWwgJgo+IH5IU1dfUFdSX1dFTExfQ1RMX1JFUShwd19pZHgpKTsKPiAgCj4gIAloc3df d2FpdF9mb3JfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKPiAgfQo+ IEBAIC00ODYsMjIgKzQ5MiwyMiBAQCBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2Fi bGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyBib29sIGhz d19wb3dlcl93ZWxsX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYs Cj4gIAkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4gKnBvd2VyX3dlbGwpCj4gIHsKPiAt CWVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gcG93ZXJfd2VsbC0+ZGVzYy0+aWQ7Cj4gLQl1 MzIgbWFzayA9IEhTV19QV1JfV0VMTF9DVExfUkVRKGlkKSB8Cj4gSFNXX1BXUl9XRUxMX0NUTF9T VEFURShpZCk7Cj4gKwljb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX3JlZ3MgKnJlZ3MgPSBw b3dlcl93ZWxsLT5kZXNjLQo+ID5oc3cucmVnczsKPiArCWludCBwd19pZHggPSBwb3dlcl93ZWxs LT5kZXNjLT5oc3cuaWR4Owo+ICsJdTMyIG1hc2sgPSBIU1dfUFdSX1dFTExfQ1RMX1JFUShwd19p ZHgpIHwKPiArCQkgICBIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKHB3X2lkeCk7Cj4gIAo+IC0JcmV0 dXJuIChJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpKSAmIG1hc2spID09Cj4g bWFzazsKPiArCXJldHVybiAoSTkxNV9SRUFEKHJlZ3MtPmRyaXZlcikgJiBtYXNrKSA9PSBtYXNr Owo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBhc3NlcnRfY2FuX2VuYWJsZV9kYzkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQllbnVtIGk5MTVfcG93ZXJfd2VsbF9p ZCBpZCA9IFNLTF9ESVNQX1BXXzI7Cj4gLQo+ICAJV0FSTl9PTkNFKChJOTE1X1JFQUQoRENfU1RB VEVfRU4pICYgRENfU1RBVEVfRU5fREM5KSwKPiAgCQkgICJEQzkgYWxyZWFkeSBwcm9ncmFtbWVk IHRvIGJlIGVuYWJsZWQuXG4iKTsKPiAgCVdBUk5fT05DRShJOTE1X1JFQUQoRENfU1RBVEVfRU4p ICYgRENfU1RBVEVfRU5fVVBUT19EQzUsCj4gIAkJICAiREM1IHN0aWxsIG5vdCBkaXNhYmxlZCB0 byBlbmFibGUgREM5LlxuIik7Cj4gLQlXQVJOX09OQ0UoSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9D VExfRFJJVkVSKGlkKSkgJgo+IC0JCSAgSFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpLAo+ICsJV0FS Tl9PTkNFKEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMMikgJgo+ICsJCSAgSFNXX1BXUl9XRUxM X0NUTF9SRVEoU0tMX1BXX0NUTF9JRFhfUFdfMiksCj4gIAkJICAiUG93ZXIgd2VsbCAyIG9uLlxu Iik7Cj4gIAlXQVJOX09OQ0UoaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSwKPiAgCQkgICJJ bnRlcnJ1cHRzIG5vdCBkaXNhYmxlZCB5ZXQuXG4iKTsKPiBAQCAtNzI1LDE3ICs3MzEsMTggQEAg c3RhdGljIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX3N5bmNfaHcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gIAkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxs Cj4gKnBvd2VyX3dlbGwpCj4gIHsKPiAtCWVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gcG93 ZXJfd2VsbC0+ZGVzYy0+aWQ7Cj4gLQl1MzIgbWFzayA9IEhTV19QV1JfV0VMTF9DVExfUkVRKGlk KTsKPiAtCXUzMiBiaW9zX3JlcSA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0JJT1MoaWQp KTsKPiArCWNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfcmVncyAqcmVncyA9IHBvd2VyX3dl bGwtPmRlc2MtCj4gPmhzdy5yZWdzOwo+ICsJaW50IHB3X2lkeCA9IHBvd2VyX3dlbGwtPmRlc2Mt Pmhzdy5pZHg7Cj4gKwl1MzIgbWFzayA9IEhTV19QV1JfV0VMTF9DVExfUkVRKHB3X2lkeCk7Cj4g Kwl1MzIgYmlvc19yZXEgPSBJOTE1X1JFQUQocmVncy0+Ymlvcyk7Cj4gIAo+ICAJLyogVGFrZSBv dmVyIHRoZSByZXF1ZXN0IGJpdCBpZiBzZXQgYnkgQklPUy4gKi8KPiAgCWlmIChiaW9zX3JlcSAm IG1hc2spIHsKPiAtCQl1MzIgZHJ2X3JlcSA9Cj4gSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVExf RFJJVkVSKGlkKSk7Cj4gKwkJdTMyIGRydl9yZXEgPSBJOTE1X1JFQUQocmVncy0+ZHJpdmVyKTsK PiAgCj4gIAkJaWYgKCEoZHJ2X3JlcSAmIG1hc2spKQo+IC0JCQlJOTE1X1dSSVRFKEhTV19QV1Jf V0VMTF9DVExfRFJJVkVSKGlkKSwKPiBkcnZfcmVxIHwgbWFzayk7Cj4gLQkJSTkxNV9XUklURShI U1dfUFdSX1dFTExfQ1RMX0JJT1MoaWQpLCBiaW9zX3JlcSAmCj4gfm1hc2spOwo+ICsJCQlJOTE1 X1dSSVRFKHJlZ3MtPmRyaXZlciwgZHJ2X3JlcSB8IG1hc2spOwo+ICsJCUk5MTVfV1JJVEUocmVn cy0+YmlvcywgYmlvc19yZXEgJiB+bWFzayk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTIxMDgsNiAr MjExNSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMKPiBieHRf ZHBpb19jbW5fcG93ZXJfd2VsbF9vcHMgPSB7Cj4gIAkuaXNfZW5hYmxlZCA9IGJ4dF9kcGlvX2Nt bl9wb3dlcl93ZWxsX2VuYWJsZWQsCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfcG93ZXJfd2VsbF9yZWdzIGhzd19wb3dlcl93ZWxsX3JlZ3MgPSB7Cj4gKwkuYmlvcwk9IEhT V19QV1JfV0VMTF9DVEwxLAo+ICsJLmRyaXZlcgk9IEhTV19QV1JfV0VMTF9DVEwyLAo+ICsJLmt2 bXIJPSBIU1dfUFdSX1dFTExfQ1RMMywKPiArCS5kZWJ1Zwk9IEhTV19QV1JfV0VMTF9DVEw0LAo+ ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYyBoc3df cG93ZXJfd2VsbHNbXSA9IHsKPiAgCXsKPiAgCQkubmFtZSA9ICJhbHdheXMtb24iLAo+IEBAIC0y MTIyLDYgKzIxMzYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNj Cj4gaHN3X3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMs Cj4gIAkJLmlkID0gSFNXX0RJU1BfUFdfR0xPQkFMLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdzID0g Jmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSFNXX1BXX0NUTF9JRFhfR0xP QkFMLAo+ICAJCQkuaHN3Lmhhc192Z2EgPSB0cnVlLAo+ICAJCX0sCj4gIAl9LAo+IEBAIC0yMTQx LDYgKzIxNTcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjCj4g YmR3X3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4g IAkJLmlkID0gSFNXX0RJU1BfUFdfR0xPQkFMLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhz d19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSFNXX1BXX0NUTF9JRFhfR0xPQkFM LAo+ICAJCQkuaHN3LmlycV9waXBlX21hc2sgPSBCSVQoUElQRV9CKSB8Cj4gQklUKFBJUEVfQyks Cj4gIAkJCS5oc3cuaGFzX3ZnYSA9IHRydWUsCj4gIAkJfSwKPiBAQCAtMjMxMCw2ICsyMzI4LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYwo+IHNrbF9wb3dlcl93 ZWxsc1tdID0gewo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IFNL TF9ESVNQX1BXXzEsCj4gIAkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVn cywKPiArCQkJLmhzdy5pZHggPSBTS0xfUFdfQ1RMX0lEWF9QV18xLAo+ICAJCQkuaHN3Lmhhc19m dXNlcyA9IHRydWUsCj4gIAkJfSwKPiAgCX0sCj4gQEAgLTIzMTksNiArMjMzOSwxMCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjCj4gc2tsX3Bvd2VyX3dlbGxzW10g PSB7Cj4gIAkJLmRvbWFpbnMgPSAwLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ ICAJCS5pZCA9IFNLTF9ESVNQX1BXX01JU0NfSU8sCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAm aHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBTS0xfUFdfQ1RMX0lEWF9NSVND X0lPLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRDIG9mZiIsCj4gQEAgLTIz MzIsNiArMjM1Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2MK PiBza2xfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywK PiAgCQkuaWQgPSBTS0xfRElTUF9QV18yLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhzd19w b3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gU0tMX1BXX0NUTF9JRFhfUFdfMiwKPiAg CQkJLmhzdy5pcnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQikgfAo+IEJJVChQSVBFX0MpLAo+ICAJ CQkuaHN3Lmhhc192Z2EgPSB0cnVlLAo+ICAJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gQEAg LTIzNDIsMjQgKzIzNjgsNDAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxf ZGVzYwo+IHNrbF9wb3dlcl93ZWxsc1tdID0gewo+ICAJCS5kb21haW5zID0gU0tMX0RJU1BMQVlf RERJX0lPX0FfRV9QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3Bz LAo+ICAJCS5pZCA9IFNLTF9ESVNQX1BXX0RESV9BX0UsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3Mg PSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBTS0xfUFdfQ1RMX0lEWF9E RElfQV9FLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRESSBCIElPIHBvd2Vy IHdlbGwiLAo+ICAJCS5kb21haW5zID0gU0tMX0RJU1BMQVlfRERJX0lPX0JfUE9XRVJfRE9NQUlO UywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9Q V19ERElfQiwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RESV9CLAo+ICsJCX0sCj4gIAl9LAo+ICAJ ewo+ICAJCS5uYW1lID0gIkRESSBDIElPIHBvd2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gU0tM X0RJU1BMQVlfRERJX0lPX0NfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93 ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV19ERElfQywKPiArCQl7Cj4gKwkJCS5oc3cu cmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExf SURYX0RESV9DLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRESSBEIElPIHBv d2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gU0tMX0RJU1BMQVlfRERJX0lPX0RfUE9XRVJfRE9N QUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElT UF9QV19ERElfRCwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdz LAo+ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RESV9ELAo+ICsJCX0sCj4gIAl9LAo+ ICB9Owo+ICAKPiBAQCAtMjM3Nyw2ICsyNDE5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X3Bvd2VyX3dlbGxfZGVzYwo+IGJ4dF9wb3dlcl93ZWxsc1tdID0gewo+ICAJCS5vcHMgPSAmaHN3 X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IFNLTF9ESVNQX1BXXzEsCj4gIAkJewo+ICsJCQku aHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBTS0xfUFdf Q1RMX0lEWF9QV18xLAo+ICAJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gIAkJfSwKPiAgCX0s Cj4gQEAgLTIzOTIsNiArMjQzNiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93 ZWxsX2Rlc2MKPiBieHRfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhzd19wb3dlcl93 ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV18yLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdz ID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gU0tMX1BXX0NUTF9JRFhf UFdfMiwKPiAgCQkJLmhzdy5pcnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQikgfAo+IEJJVChQSVBF X0MpLAo+ICAJCQkuaHN3Lmhhc192Z2EgPSB0cnVlLAo+ICAJCQkuaHN3Lmhhc19mdXNlcyA9IHRy dWUsCj4gQEAgLTI0MzIsNiArMjQ3OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dl cl93ZWxsX2Rlc2MKPiBnbGtfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhzd19wb3dl cl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV18xLAo+ICAJCXsKPiArCQkJLmhzdy5y ZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gU0tMX1BXX0NUTF9J RFhfUFdfMSwKPiAgCQkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ICAJCX0sCj4gIAl9LAo+IEBA IC0yNDQ3LDYgKzI0OTUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9k ZXNjCj4gZ2xrX3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9v cHMsCj4gIAkJLmlkID0gU0tMX0RJU1BfUFdfMiwKPiAgCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZo c3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX1BXXzIs Cj4gIAkJCS5oc3cuaXJxX3BpcGVfbWFzayA9IEJJVChQSVBFX0IpIHwKPiBCSVQoUElQRV9DKSwK PiAgCQkJLmhzdy5oYXNfdmdhID0gdHJ1ZSwKPiAgCQkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ IEBAIC0yNDg0LDM2ICsyNTM0LDYwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93 ZWxsX2Rlc2MKPiBnbGtfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkuZG9tYWlucyA9IEdMS19ESVNQ TEFZX0FVWF9BX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMs Cj4gIAkJLmlkID0gR0xLX0RJU1BfUFdfQVVYX0EsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAm aHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBHTEtfUFdfQ1RMX0lEWF9BVVhf QSwKPiArCQl9LAo+ICAJfSwKPiAgCXsKPiAgCQkubmFtZSA9ICJBVVggQiIsCj4gIAkJLmRvbWFp bnMgPSBHTEtfRElTUExBWV9BVVhfQl9QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bv d2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IEdMS19ESVNQX1BXX0FVWF9CLAo+ICsJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gR0xLX1BX X0NUTF9JRFhfQVVYX0IsCj4gKwkJfSwKPiAgCX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiQVVYIEMi LAo+ICAJCS5kb21haW5zID0gR0xLX0RJU1BMQVlfQVVYX0NfUE9XRVJfRE9NQUlOUywKPiAgCQku b3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBHTEtfRElTUF9QV19BVVhfQywK PiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3 LmlkeCA9IEdMS19QV19DVExfSURYX0FVWF9DLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5u YW1lID0gIkRESSBBIElPIHBvd2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gR0xLX0RJU1BMQVlf RERJX0lPX0FfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywK PiAgCQkuaWQgPSBHTEtfRElTUF9QV19ERElfQSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZo c3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IEdMS19QV19DVExfSURYX0RESV9B LAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRESSBCIElPIHBvd2VyIHdlbGwi LAo+ICAJCS5kb21haW5zID0gR0xLX0RJU1BMQVlfRERJX0lPX0JfUE9XRVJfRE9NQUlOUywKPiAg CQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV19ERElf QiwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQku aHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RESV9CLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJ CS5uYW1lID0gIkRESSBDIElPIHBvd2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gR0xLX0RJU1BM QVlfRERJX0lPX0NfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29w cywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV19ERElfQywKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9 ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RE SV9DLAo+ICsJCX0sCj4gIAl9LAo+ICB9Owo+ICAKPiBAQCAtMjUzMiw2ICsyNjA2LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYwo+IGNubF9wb3dlcl93ZWxsc1td ID0gewo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IFNLTF9ESVNQ X1BXXzEsCj4gIAkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKPiAr CQkJLmhzdy5pZHggPSBTS0xfUFdfQ1RMX0lEWF9QV18xLAo+ICAJCQkuaHN3Lmhhc19mdXNlcyA9 IHRydWUsCj4gIAkJfSwKPiAgCX0sCj4gQEAgLTI1NDAsMjQgKzI2MTYsNDAgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYwo+IGNubF9wb3dlcl93ZWxsc1tdID0gewo+ ICAJCS5kb21haW5zID0gQ05MX0RJU1BMQVlfQVVYX0FfUE9XRVJfRE9NQUlOUywKPiAgCQkub3Bz ID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBDTkxfRElTUF9QV19BVVhfQSwKPiAr CQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3Lmlk eCA9IEdMS19QV19DVExfSURYX0FVWF9BLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1l ID0gIkFVWCBCIiwKPiAgCQkuZG9tYWlucyA9IENOTF9ESVNQTEFZX0FVWF9CX1BPV0VSX0RPTUFJ TlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gQ05MX0RJU1Bf UFdfQVVYX0IsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywK PiArCQkJLmhzdy5pZHggPSBHTEtfUFdfQ1RMX0lEWF9BVVhfQiwKPiArCQl9LAo+ICAJfSwKPiAg CXsKPiAgCQkubmFtZSA9ICJBVVggQyIsCj4gIAkJLmRvbWFpbnMgPSBDTkxfRElTUExBWV9BVVhf Q19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5p ZCA9IENOTF9ESVNQX1BXX0FVWF9DLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhzd19wb3dl cl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gR0xLX1BXX0NUTF9JRFhfQVVYX0MsCj4gKwkJ fSwKPiAgCX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiQVVYIEQiLAo+ICAJCS5kb21haW5zID0gQ05M X0RJU1BMQVlfQVVYX0RfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxs X29wcywKPiAgCQkuaWQgPSBDTkxfRElTUF9QV19BVVhfRCwKPiArCQl7Cj4gKwkJCS5oc3cucmVn cyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IENOTF9QV19DVExfSURY X0FVWF9ELAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRDIG9mZiIsCj4gQEAg LTI1NzEsNiArMjY2Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rl c2MKPiBjbmxfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29w cywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV18yLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhz d19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gU0tMX1BXX0NUTF9JRFhfUFdfMiwK PiAgCQkJLmhzdy5pcnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQikgfAo+IEJJVChQSVBFX0MpLAo+ ICAJCQkuaHN3Lmhhc192Z2EgPSB0cnVlLAo+ICAJCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4g QEAgLTI1ODEsMzYgKzI2NzUsNjAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dl bGxfZGVzYwo+IGNubF9wb3dlcl93ZWxsc1tdID0gewo+ICAJCS5kb21haW5zID0gQ05MX0RJU1BM QVlfRERJX0FfSU9fUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29w cywKPiAgCQkuaWQgPSBDTkxfRElTUF9QV19ERElfQSwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9 ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IEdMS19QV19DVExfSURYX0RE SV9BLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRESSBCIElPIHBvd2VyIHdl bGwiLAo+ICAJCS5kb21haW5zID0gQ05MX0RJU1BMQVlfRERJX0JfSU9fUE9XRVJfRE9NQUlOUywK PiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV19E RElfQiwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJ CQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RESV9CLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ ICAJCS5uYW1lID0gIkRESSBDIElPIHBvd2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gQ05MX0RJ U1BMQVlfRERJX0NfSU9fUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxs X29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9QV19ERElfQywKPiArCQl7Cj4gKwkJCS5oc3cucmVn cyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURY X0RESV9DLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkRESSBEIElPIHBvd2Vy IHdlbGwiLAo+ICAJCS5kb21haW5zID0gQ05MX0RJU1BMQVlfRERJX0RfSU9fUE9XRVJfRE9NQUlO UywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBTS0xfRElTUF9Q V19ERElfRCwKPiArCQl7Cj4gKwkJCS5oc3cucmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ ICsJCQkuaHN3LmlkeCA9IFNLTF9QV19DVExfSURYX0RESV9ELAo+ICsJCX0sCj4gIAl9LAo+ICAJ ewo+ICAJCS5uYW1lID0gIkRESSBGIElPIHBvd2VyIHdlbGwiLAo+ICAJCS5kb21haW5zID0gQ05M X0RJU1BMQVlfRERJX0ZfSU9fUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJmhzd19wb3dlcl93 ZWxsX29wcywKPiAgCQkuaWQgPSBDTkxfRElTUF9QV19ERElfRiwKPiArCQl7Cj4gKwkJCS5oc3cu cmVncyA9ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IENOTF9QV19DVExf SURYX0RESV9GLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBGIiwKPiAg CQkuZG9tYWlucyA9IENOTF9ESVNQTEFZX0FVWF9GX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9wcyA9 ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gQ05MX0RJU1BfUFdfQVVYX0YsCj4gKwkJ ewo+ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHgg PSBDTkxfUFdfQ1RMX0lEWF9BVVhfRiwKPiArCQl9LAo+ICAJfSwKPiAgfTsKPiAgCj4gQEAgLTI2 MjEsNiArMjczOSwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMK PiBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX29wcyA9IHsKPiAgCS5pc19lbmFibGVkID0g aHN3X3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsX3JlZ3MgaWNsX2F1eF9wb3dlcl93ZWxsX3JlZ3MgPSB7Cj4gKwkuYmlv cwk9IElDTF9QV1JfV0VMTF9DVExfQVVYMSwKPiArCS5kcml2ZXIJPSBJQ0xfUFdSX1dFTExfQ1RM X0FVWDIsCj4gKwkuZGVidWcJPSBJQ0xfUFdSX1dFTExfQ1RMX0FVWDQsCj4gK307Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9yZWdzIGljbF9kZGlfcG93ZXJfd2Vs bF9yZWdzID0gewo+ICsJLmJpb3MJPSBJQ0xfUFdSX1dFTExfQ1RMX0RESTEsCj4gKwkuZHJpdmVy CT0gSUNMX1BXUl9XRUxMX0NUTF9EREkyLAo+ICsJLmRlYnVnCT0gSUNMX1BXUl9XRUxMX0NUTF9E REk0LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVz YyBpY2xfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCXsKPiAgCQkubmFtZSA9ICJhbHdheXMtb24iLAo+ IEBAIC0yNjM2LDYgKzI3NjYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2Vs bF9kZXNjCj4gaWNsX3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2Vs bF9vcHMsCj4gIAkJLmlkID0gSUNMX0RJU1BfUFdfMSwKPiAgCQl7Cj4gKwkJCS5oc3cucmVncyA9 ICZoc3dfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX1BX XzEsCj4gIAkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKPiAgCQl9LAo+ICAJfSwKPiBAQCAtMjY0 NSw2ICsyNzc3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYwo+ IGljbF9wb3dlcl93ZWxsc1tdID0gewo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ ICAJCS5pZCA9IElDTF9ESVNQX1BXXzIsCj4gIAkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaHN3X3Bv d2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBJQ0xfUFdfQ1RMX0lEWF9QV18yLAo+ICAJ CQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gIAkJfSwKPiAgCX0sCj4gQEAgLTI2NjAsNiArMjc5 NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2MKPiBpY2xfcG93 ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQg PSBJQ0xfRElTUF9QV18zLAo+ICAJCXsKPiArCQkJLmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxs X3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfUFdfMywKPiAgCQkJLmhzdy5p cnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQiksCj4gIAkJCS5oc3cuaGFzX3ZnYSA9IHRydWUsCj4g IAkJCS5oc3cuaGFzX2Z1c2VzID0gdHJ1ZSwKPiBAQCAtMjY3MCw5NiArMjgwNiwxNjAgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYwo+IGljbF9wb3dlcl93ZWxsc1td ID0gewo+ICAJCS5kb21haW5zID0gSUNMX0RESV9JT19BX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9w cyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gSUNMX0RJU1BfUFdfRERJX0EsCj4g KwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5o c3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJX0EsCj4gKwkJfSwKPiAgCX0sCj4gIAl7Cj4gIAkJ Lm5hbWUgPSAiRERJIEIgSU8iLAo+ICAJCS5kb21haW5zID0gSUNMX0RESV9JT19CX1BPV0VSX0RP TUFJTlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gSUNMX0RJ U1BfUFdfRERJX0IsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxs X3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJX0IsCj4gKwkJfSwKPiAg CX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiRERJIEMgSU8iLAo+ICAJCS5kb21haW5zID0gSUNMX0RE SV9JT19DX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4g IAkJLmlkID0gSUNMX0RJU1BfUFdfRERJX0MsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNs X2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJ X0MsCj4gKwkJfSwKPiAgCX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiRERJIEQgSU8iLAo+ICAJCS5k b21haW5zID0gSUNMX0RESV9JT19EX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93 ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gSUNMX0RJU1BfUFdfRERJX0QsCj4gKwkJewo+ICsJCQku aHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNM X1BXX0NUTF9JRFhfRERJX0QsCj4gKwkJfSwKPiAgCX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiRERJ IEUgSU8iLAo+ICAJCS5kb21haW5zID0gSUNMX0RESV9JT19FX1BPV0VSX0RPTUFJTlMsCj4gIAkJ Lm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gSUNMX0RJU1BfUFdfRERJX0Us Cj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJ CS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJX0UsCj4gKwkJfSwKPiAgCX0sCj4gIAl7Cj4g IAkJLm5hbWUgPSAiRERJIEYgSU8iLAo+ICAJCS5kb21haW5zID0gSUNMX0RESV9JT19GX1BPV0VS X0RPTUFJTlMsCj4gIAkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmlkID0gSUNM X0RJU1BfUFdfRERJX0YsCj4gKwkJewo+ICsJCQkuaHN3LnJlZ3MgPSAmaWNsX2RkaV9wb3dlcl93 ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BXX0NUTF9JRFhfRERJX0YsCj4gKwkJfSwK PiAgCX0sCj4gIAl7Cj4gIAkJLm5hbWUgPSAiQVVYIEEiLAo+ICAJCS5kb21haW5zID0gSUNMX0FV WF9BX0lPX1BPV0VSX0RPTUFJTlMsCj4gIAkJLm9wcyA9ICZpY2xfY29tYm9fcGh5X2F1eF9wb3dl cl93ZWxsX29wcywKPiAgCQkuaWQgPSBJQ0xfRElTUF9QV19BVVhfQSwKPiArCQl7Cj4gKwkJCS5o c3cucmVncyA9ICZpY2xfYXV4X3Bvd2VyX3dlbGxfcmVncywKPiArCQkJLmhzdy5pZHggPSBJQ0xf UFdfQ1RMX0lEWF9BVVhfQSwKPiArCQl9LAo+ICAJfSwKPiAgCXsKPiAgCQkubmFtZSA9ICJBVVgg QiIsCj4gIAkJLmRvbWFpbnMgPSBJQ0xfQVVYX0JfSU9fUE9XRVJfRE9NQUlOUywKPiAgCQkub3Bz ID0gJmljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQ X1BXX0FVWF9CLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9y ZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9CLAo+ICsJCX0sCj4gIAl9 LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBDIiwKPiAgCQkuZG9tYWlucyA9IElDTF9BVVhfQ19J T19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5p ZCA9IElDTF9ESVNQX1BXX0FVWF9DLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhf cG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9DLAo+ ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBEIiwKPiAgCQkuZG9tYWlucyA9 IElDTF9BVVhfRF9JT19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxf b3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9ELAo+ICsJCXsKPiArCQkJLmhzdy5yZWdz ID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExf SURYX0FVWF9ELAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBFIiwKPiAg CQkuZG9tYWlucyA9IElDTF9BVVhfRV9JT19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3 X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9FLAo+ICsJCXsKPiAr CQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9 IElDTF9QV19DVExfSURYX0FVWF9FLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0g IkFVWCBGIiwKPiAgCQkuZG9tYWlucyA9IElDTF9BVVhfRl9JT19QT1dFUl9ET01BSU5TLAo+ICAJ CS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9G LAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJ CQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9GLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ ICAJCS5uYW1lID0gIkFVWCBUQlQxIiwKPiAgCQkuZG9tYWlucyA9IElDTF9BVVhfVEJUMV9JT19Q T1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9 IElDTF9ESVNQX1BXX0FVWF9UQlQxLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhf cG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9UQlQx LAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBUQlQyIiwKPiAgCQkuZG9t YWlucyA9IElDTF9BVVhfVEJUMl9JT19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bv d2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9UQlQyLAo+ICsJCXsKPiAr CQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9 IElDTF9QV19DVExfSURYX0FVWF9UQlQyLAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1l ID0gIkFVWCBUQlQzIiwKPiAgCQkuZG9tYWlucyA9IElDTF9BVVhfVEJUM19JT19QT1dFUl9ET01B SU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQ X1BXX0FVWF9UQlQzLAo+ICsJCXsKPiArCQkJLmhzdy5yZWdzID0gJmljbF9hdXhfcG93ZXJfd2Vs bF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19DVExfSURYX0FVWF9UQlQzLAo+ICsJCX0s Cj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gIkFVWCBUQlQ0IiwKPiAgCQkuZG9tYWlucyA9IElD TF9BVVhfVEJUNF9JT19QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxf b3BzLAo+ICAJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9UQlQ0LAo+ICsJCXsKPiArCQkJLmhzdy5y ZWdzID0gJmljbF9hdXhfcG93ZXJfd2VsbF9yZWdzLAo+ICsJCQkuaHN3LmlkeCA9IElDTF9QV19D VExfSURYX0FVWF9UQlQ0LAo+ICsJCX0sCj4gIAl9LAo+ICAJewo+ICAJCS5uYW1lID0gInBvd2Vy IHdlbGwgNCIsCj4gQEAgLTI3NjcsNiArMjk2Nyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9wb3dlcl93ZWxsX2Rlc2MKPiBpY2xfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkub3BzID0gJmhz d19wb3dlcl93ZWxsX29wcywKPiAgCQkuaWQgPSBJQ0xfRElTUF9QV180LAo+ICAJCXsKPiArCQkJ Lmhzdy5yZWdzID0gJmhzd19wb3dlcl93ZWxsX3JlZ3MsCj4gKwkJCS5oc3cuaWR4ID0gSUNMX1BX X0NUTF9JRFhfUFdfNCwKPiAgCQkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ICAJCQkuaHN3Lmly cV9waXBlX21hc2sgPSBCSVQoUElQRV9DKSwKPiAgCQl9LApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK