From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/8] drm/i915: Use literal representation of cdclk tables Date: Tue, 10 Sep 2019 15:56:16 +0300 Message-ID: <20190910125616.GO7482@intel.com> References: <20190908025752.5242-1-matthew.d.roper@intel.com> <20190908040500.18930-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id D02896E051 for ; Tue, 10 Sep 2019 12:56:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190908040500.18930-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gU2F0LCBTZXAgMDcsIDIwMTkgYXQgMDk6MDU6MDBQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBUaGUgYnNwZWMgbGF5cyBvdXQgbGVnYWwgY2RjbGsgZnJlcXVlbmNpZXMsIFBMTCByYXRp b3MsIGFuZCBDRDJYCj4gZGl2aWRlcnMgaW4gYW4gZWFzeS10by1yZWFkIHRhYmxlIGZvciBtb3N0 IHJlY2VudCBwbGF0Zm9ybXMuICBXZSd2ZSBiZWVuCj4gdHJhbnNsYXRpbmcgdGhlIGRhdGEgZnJv bSB0aGF0IHRhYmxlIGludG8gcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBsb2dpYywKPiBidXQgaXQn cyBlYXN5IHRvIG92ZXJsb29rIGFuIGFyZWEgd2UgbmVlZCB0byB1cGRhdGUgd2hlbiBhZGRpbmcg bmV3Cj4gY2RjbGsgdmFsdWVzIG9yIGVuYWJsaW5nIG5ldyBwbGF0Zm9ybXMuICBMZXQncyBqdXN0 IGFkZCBhIGZvcm0gb2YgdGhlCj4gYnNwZWMgdGFibGUgdG8gdGhlIGNvZGUgYW5kIHRoZW4gYWRq dXN0IG91ciBmdW5jdGlvbnMgdG8gcHVsbCB3aGF0IHRoZXkKPiBuZWVkIGRpcmVjdGx5IG91dCBv ZiB0aGUgdGFibGUuCj4gCj4gdjI6IEZpeCBjb21wYXJpc29uIHdoZW4gZmluZGluZyBiZXN0IGNk Y2xrLgo+IAo+IHYzOiBBbm90aGVyIGxvZ2ljIGZpeCBmb3IgY2FsY19jZGNsay4KPiAKPiBDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQt b2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgfCAzMTggKysrKysrKyst LS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsu aCB8ICAgOCArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8 ICAgNCArCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDIwNSBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCj4g aW5kZXggZTA3ZGUzYjg0Y2VjLi5jYTY0MTQzYjZkN2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCj4gQEAgLTExNjEsMjggKzExNjEsOTYgQEAgc3Rh dGljIHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQ RSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYnh0X2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaykK PiAtewo+IC0JaWYgKG1pbl9jZGNsayA+IDU3NjAwMCkKPiAtCQlyZXR1cm4gNjI0MDAwOwo+IC0J ZWxzZSBpZiAobWluX2NkY2xrID4gMzg0MDAwKQo+IC0JCXJldHVybiA1NzYwMDA7Cj4gLQllbHNl IGlmIChtaW5fY2RjbGsgPiAyODgwMDApCj4gLQkJcmV0dXJuIDM4NDAwMDsKPiAtCWVsc2UgaWYg KG1pbl9jZGNsayA+IDE0NDAwMCkKPiAtCQlyZXR1cm4gMjg4MDAwOwo+IC0JZWxzZQo+IC0JCXJl dHVybiAxNDQwMDA7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyBieHRf Y2RjbGtfdGFibGVbXSA9IHsKPiArCXsgMTQ0MDAwLCA4LCA2MCB9LAo+ICsJeyAyODgwMDAsIDQs IDYwIH0sCj4gKwl7IDM4NDAwMCwgMywgNjAgfSwKPiArCXsgNTc2MDAwLCAyLCA2MCB9LAo+ICsJ eyA2MjQwMDAsIDIsIDY1IH0sCgpOYW1lZCBpbml0aWFsaXplcnMgbWlnaHQgbWFrZSB0aGlzIG51 bWJlciBzb3VwIGRpZ2VzdGlibGUuCgo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9jZGNsa192YWxzIGdsa19jZGNsa190YWJsZVtdID0gewo+ICsJeyAgNzkyMDAsIDgsIDMz IH0sCj4gKwl7IDE1ODQwMCwgNCwgMzMgfSwKPiArCXsgMzE2ODAwLCAyLCAzMyB9LAo+ICt9Owo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa192YWxzIGNubF9jZGNsa190YWJs ZVtdID0gewo+ICsJeyAxNjgwMDAsIDQsIDM1LCAyOCB9LAo+ICsJeyAzMzYwMDAsIDIsIDM1LCAy OCB9LAo+ICsJeyA1MjgwMDAsIDIsIDU1LCA0NCB9LAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa192YWxzIGljbF9jZGNsa190YWJsZVtdID0gewo+ICsJeyAxNzI4 MDAsIDIsIDE4LCAgMCwgIDkgfSwKPiArCXsgMTgwMDAwLCAyLCAgMCwgMTUsICAwIH0sCj4gKwl7 IDE5MjAwMCwgMiwgMjAsIDE2LCAxMCB9LAo+ICsJeyAzMDcyMDAsIDIsIDMyLCAgMCwgMTYgfSwK PiArCXsgMzEyMDAwLCAyLCAgMCwgMjYsICAwIH0sCj4gKwl7IDMyNDAwMCwgNCwgIDAsIDU0LCAg MCB9LAo+ICsJeyAzMjY0MDAsIDQsIDY4LCAgMCwgMzQgfSwKPiArCXsgNTUyMDAwLCAyLCAgMCwg NDYsICAwIH0sCj4gKwl7IDU1NjgwMCwgMiwgNTgsICAwLCAyOSB9LAo+ICsJeyA2NDgwMDAsIDIs ICAwLCA1NCwgIDAgfSwKPiArCXsgNjUyODAwLCAyLCA2OCwgIDAsIDM0IH0sCj4gK307Cj4gKwo+ ICtzdGF0aWMgaW50IGNhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICsJCSAgICAgIGludCBtaW5fY2RjbGspCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa192YWxzICp0YWJsZSA9IGRldl9wcml2LT5jZGNsay50YWJsZTsKPiArCXVuc2lnbmVkIGlu dCByZWYgPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwo+ICsJaW50IGJlc3RfY2RjbGsgPSAwOwo+ ICsJaW50IGk7Cj4gKwo+ICsJaWYgKFdBUk5fT04ocmVmICE9IDE5MjAwICYmIHJlZiAhPSAyNDAw MCAmJiByZWYgIT0gMzg0MDApKQo+ICsJCXJlZiA9IDE5MjAwOwoKRmVlbHMgYSBiaXQgbGlrZSBk ZWFkIGNvZGUuCgo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+Y2RjbGsudGFibGVf c2l6ZTsgaSsrKSB7Cj4gKwkJaWYgKChyZWYgPT0gMTkyMDAgJiYgdGFibGVbaV0ucmF0aW9fMTkg PT0gMCkgfHwKPiArCQkgICAgKHJlZiA9PSAyNDAwMCAmJiB0YWJsZVtpXS5yYXRpb18yNCA9PSAw KSB8fAo+ICsJCSAgICAocmVmID09IDM4NDAwICYmIHRhYmxlW2ldLnJhdGlvXzM4ID09IDApKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJYmVzdF9jZGNsayA9IHRhYmxlW2ldLmNkY2xrOwo+ICsJ CWlmICh0YWJsZVtpXS5jZGNsayA+PSBtaW5fY2RjbGspCj4gKwkJCXJldHVybiBiZXN0X2NkY2xr Owo+ICsJfQo+ICsKPiArCVdBUk4oMSwgIkNhbm5vdCBzYXRpc2Z5IG1pbmltdW0gY2RjbGsgJWRc biIsIG1pbl9jZGNsayk7Cj4gKwlyZXR1cm4gYmVzdF9jZGNsazsKClNhbWUgZm9yIHRoZSBiZXN0 X2NkY2xrIHRoaW5nLiBJJ2QgcHJvYmFibHkganVzdCBNSVNTSU5HX0NBU0UoKSAKYW5kIHJldHVy biAwLCBvciBzb21ldGhpbmcuCgo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGdsa19jYWxjX2NkY2xr KGludCBtaW5fY2RjbGspCj4gK3N0YXRpYyBpbnQgY2FsY19jZGNsa19wbGxfdmNvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQoKV2Ugc3RpbGwgdXNlIHRoZXNl IHRoaW5ncyBmb3IgYnh0KyBvbmx5LCBzbyB3b3VsZCBiZSBuaWNlIGlmCnRoZSBuYW1lcyBrZXB0 IHJlZmxlY3RpbmcgdGhhdCBmYWN0LgoKVGhvdWdoIEkgc3VwcG9zZSB3ZSBzaG91bGQgYmUgYWJs ZSB0byBleHRlbmQgdGhpcyBtb3JlCmRlY2xhcmF0aXZlIGFwcHJvYWNoIGJhY2t3YXJkcyB0byBv bGRlciBwbGF0Zm9ybXMgYXMgd2VsbC4KCj4gIHsKPiAtCWlmIChtaW5fY2RjbGsgPiAxNTg0MDAp Cj4gLQkJcmV0dXJuIDMxNjgwMDsKPiAtCWVsc2UgaWYgKG1pbl9jZGNsayA+IDc5MjAwKQo+IC0J CXJldHVybiAxNTg0MDA7Cj4gLQllbHNlCj4gLQkJcmV0dXJuIDc5MjAwOwo+ICsJY29uc3Qgc3Ry dWN0IGludGVsX2NkY2xrX3ZhbHMgKnRhYmxlID0gZGV2X3ByaXYtPmNkY2xrLnRhYmxlOwo+ICsJ aW50IHJhdGlvLCBiZXN0X3JhdGlvLCBpOwo+ICsKPiArCWlmIChjZGNsayA9PSBkZXZfcHJpdi0+ Y2RjbGsuaHcuYnlwYXNzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBk ZXZfcHJpdi0+Y2RjbGsudGFibGVfc2l6ZTsgaSsrKSB7Cj4gKwkJaWYgKGRldl9wcml2LT5jZGNs ay5ody5yZWYgPT0gMTkyMDApCj4gKwkJCXJhdGlvID0gdGFibGVbaV0ucmF0aW9fMTk7Cj4gKwkJ ZWxzZSBpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAyNDAwMCkKPiArCQkJcmF0aW8gPSB0 YWJsZVtpXS5yYXRpb18yNDsKPiArCQllbHNlCj4gKwkJCXJhdGlvID0gdGFibGVbaV0ucmF0aW9f Mzg7Cj4gKwo+ICsJCWlmIChyYXRpbyA9PSAwKQo+ICsJCQljb250aW51ZTsKPiArCQllbHNlCj4g KwkJCWJlc3RfcmF0aW8gPSByYXRpbzsKPiArCj4gKwkJaWYgKHRhYmxlW2ldLmNkY2xrID09IGNk Y2xrIHx8Cj4gKwkJICAgIFdBUk5fT04odGFibGVbaV0uY2RjbGsgPiBjZGNsaykpCj4gKwkJCXJl dHVybiBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICogcmF0aW87Cj4gKwl9Cj4gKwo+ICsJV0FSTigx LCAiY2RjbGsgJWQgbm90IHZhbGlkIGZvciByZWZjbGsgJWRcbiIsCj4gKwkgICAgIGNkY2xrLCBk ZXZfcHJpdi0+Y2RjbGsuaHcucmVmKTsKPiArCj4gKwlyZXR1cm4gZGV2X3ByaXYtPmNkY2xrLmh3 LnJlZiAqIGJlc3RfcmF0aW87Cj4gIH0KPiAgCj4gIHN0YXRpYyB1OCBieHRfY2FsY192b2x0YWdl X2xldmVsKGludCBjZGNsaykKPiBAQCAtMTIyMCw1MiArMTI4OCw2IEBAIHN0YXRpYyB1OCBlaGxf Y2FsY192b2x0YWdlX2xldmVsKGludCBjZGNsaykKPiAgCQlyZXR1cm4gMDsKPiAgfQo+ICAKPiAt c3RhdGljIGludCBieHRfZGVfcGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGludCBjZGNsaykKPiAtewo+IC0JaW50IHJhdGlvOwo+IC0KPiAtCWlmIChjZGNsayA9PSBk ZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCXN3aXRjaCAo Y2RjbGspIHsKPiAtCWRlZmF1bHQ6Cj4gLQkJTUlTU0lOR19DQVNFKGNkY2xrKTsKPiAtCQkvKiBm YWxsIHRocm91Z2ggKi8KPiAtCWNhc2UgMTQ0MDAwOgo+IC0JY2FzZSAyODgwMDA6Cj4gLQljYXNl IDM4NDAwMDoKPiAtCWNhc2UgNTc2MDAwOgo+IC0JCXJhdGlvID0gNjA7Cj4gLQkJYnJlYWs7Cj4g LQljYXNlIDYyNDAwMDoKPiAtCQlyYXRpbyA9IDY1Owo+IC0JCWJyZWFrOwo+IC0JfQo+IC0KPiAt CXJldHVybiBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICogcmF0aW87Cj4gLX0KPiAtCj4gLXN0YXRp YyBpbnQgZ2xrX2RlX3BsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBp bnQgY2RjbGspCj4gLXsKPiAtCWludCByYXRpbzsKPiAtCj4gLQlpZiAoY2RjbGsgPT0gZGV2X3By aXYtPmNkY2xrLmh3LmJ5cGFzcykKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlzd2l0Y2ggKGNkY2xr KSB7Cj4gLQlkZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShjZGNsayk7Cj4gLQkJLyogZmFsbCB0 aHJvdWdoICovCj4gLQljYXNlICA3OTIwMDoKPiAtCWNhc2UgMTU4NDAwOgo+IC0JY2FzZSAzMTY4 MDA6Cj4gLQkJcmF0aW8gPSAzMzsKPiAtCQlicmVhazsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gZGV2 X3ByaXYtPmNkY2xrLmh3LnJlZiAqIHJhdGlvOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBjbmxf cmVhZG91dF9yZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkg ICAgICAgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKPiAgewo+IEBAIC0x NTc2LDEzICsxNTk4LDggQEAgc3RhdGljIHZvaWQgYnh0X2luaXRfY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJICogLSBUaGUgaW5pdGlhbCBDRENMSyBuZWVkcyB0 byBiZSByZWFkIGZyb20gVkJULgo+ICAJICogICBOZWVkIHRvIG1ha2UgdGhpcyBjaGFuZ2UgYWZ0 ZXIgVkJUIGhhcyBjaGFuZ2VzIGZvciBCWFQuCj4gIAkgKi8KPiAtCWlmIChJU19HRU1JTklMQUtF KGRldl9wcml2KSkgewo+IC0JCWNkY2xrX3N0YXRlLmNkY2xrID0gZ2xrX2NhbGNfY2RjbGsoMCk7 Cj4gLQkJY2RjbGtfc3RhdGUudmNvID0gZ2xrX2RlX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrX3N0 YXRlLmNkY2xrKTsKPiAtCX0gZWxzZSB7Cj4gLQkJY2RjbGtfc3RhdGUuY2RjbGsgPSBieHRfY2Fs Y19jZGNsaygwKTsKPiAtCQljZGNsa19zdGF0ZS52Y28gPSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJp diwgY2RjbGtfc3RhdGUuY2RjbGspOwo+IC0JfQo+ICsJY2RjbGtfc3RhdGUuY2RjbGsgPSBjYWxj X2NkY2xrKGRldl9wcml2LCAwKTsKPiArCWNkY2xrX3N0YXRlLnZjbyA9IGNhbGNfY2RjbGtfcGxs X3ZjbyhkZXZfcHJpdiwgY2RjbGtfc3RhdGUuY2RjbGspOwo+ICAJY2RjbGtfc3RhdGUudm9sdGFn ZV9sZXZlbCA9IGJ4dF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwo+ICAK PiAgCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsK PiBAQCAtMTU5OSwxNiArMTYxNiw2IEBAIHN0YXRpYyB2b2lkIGJ4dF91bmluaXRfY2RjbGsoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJYnh0X3NldF9jZGNsayhkZXZfcHJp diwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGNu bF9jYWxjX2NkY2xrKGludCBtaW5fY2RjbGspCj4gLXsKPiAtCWlmIChtaW5fY2RjbGsgPiAzMzYw MDApCj4gLQkJcmV0dXJuIDUyODAwMDsKPiAtCWVsc2UgaWYgKG1pbl9jZGNsayA+IDE2ODAwMCkK PiAtCQlyZXR1cm4gMzM2MDAwOwo+IC0JZWxzZQo+IC0JCXJldHVybiAxNjgwMDA7Cj4gLX0KPiAt Cj4gIHN0YXRpYyB2b2lkIGNubF9jZGNsa19wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXUzMiB2YWw7Cj4gQEAgLTE3MTgsMjkgKzE3MjUsNiBA QCBzdGF0aWMgdm9pZCBjbmxfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCWRldl9wcml2LT5jZGNsay5ody52b2x0YWdlX2xldmVsID0gY2RjbGtfc3RhdGUt PnZvbHRhZ2VfbGV2ZWw7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgY25sX2NkY2xrX3BsbF92Y28o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgY2RjbGspCj4gLXsKPiAtCWlu dCByYXRpbzsKPiAtCj4gLQlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrLmh3LmJ5cGFzcykK PiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlzd2l0Y2ggKGNkY2xrKSB7Cj4gLQlkZWZhdWx0Ogo+IC0J CU1JU1NJTkdfQ0FTRShjZGNsayk7Cj4gLQkJLyogZmFsbCB0aHJvdWdoICovCj4gLQljYXNlIDE2 ODAwMDoKPiAtCWNhc2UgMzM2MDAwOgo+IC0JCXJhdGlvID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJl ZiA9PSAxOTIwMCA/IDM1IDogMjg7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIDUyODAwMDoKPiAtCQly YXRpbyA9IGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMTkyMDAgPyA1NSA6IDQ0Owo+IC0JCWJy ZWFrOwo+IC0JfQo+IC0KPiAtCXJldHVybiBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICogcmF0aW87 Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIGNubF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXUzMiBjZGN0bCwgZXhwZWN0ZWQ7Cj4gQEAg LTE3ODMsNzcgKzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBjbmxfc2FuaXRpemVfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyA9 IC0xOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGljbF9jYWxjX2NkY2xrKGludCBtaW5fY2RjbGss IHVuc2lnbmVkIGludCByZWYpCj4gLXsKPiAtCXN0YXRpYyBjb25zdCBpbnQgcmFuZ2VzXzI0W10g PSB7IDE4MDAwMCwgMTkyMDAwLCAzMTIwMDAsIDMyNDAwMCwKPiAtCQkJCQkgNTUyMDAwLCA2NDgw MDAgfTsKPiAtCXN0YXRpYyBjb25zdCBpbnQgcmFuZ2VzXzE5XzM4W10gPSB7IDE3MjgwMCwgMTky MDAwLCAzMDcyMDAsIDMyNjQwMCwKPiAtCQkJCQkgICAgNTU2ODAwLCA2NTI4MDAgfTsKPiAtCWNv bnN0IGludCAqcmFuZ2VzOwo+IC0JaW50IGxlbiwgaTsKPiAtCj4gLQlzd2l0Y2ggKHJlZikgewo+ IC0JZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NBU0UocmVmKTsKPiAtCQkvKiBmYWxsIHRocm91Z2gg Ki8KPiAtCWNhc2UgMjQwMDA6Cj4gLQkJcmFuZ2VzID0gcmFuZ2VzXzI0Owo+IC0JCWxlbiA9IEFS UkFZX1NJWkUocmFuZ2VzXzI0KTsKPiAtCQlicmVhazsKPiAtCWNhc2UgMTkyMDA6Cj4gLQljYXNl IDM4NDAwOgo+IC0JCXJhbmdlcyA9IHJhbmdlc18xOV8zODsKPiAtCQlsZW4gPSBBUlJBWV9TSVpF KHJhbmdlc18xOV8zOCk7Cj4gLQkJYnJlYWs7Cj4gLQl9Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8 IGxlbjsgaSsrKSB7Cj4gLQkJaWYgKG1pbl9jZGNsayA8PSByYW5nZXNbaV0pCj4gLQkJCXJldHVy biByYW5nZXNbaV07Cj4gLQl9Cj4gLQo+IC0JV0FSTl9PTihtaW5fY2RjbGsgPiByYW5nZXNbbGVu IC0gMV0pOwo+IC0JcmV0dXJuIHJhbmdlc1tsZW4gLSAxXTsKPiAtfQo+IC0KPiAtc3RhdGljIGlu dCBpY2xfY2FsY19jZGNsa19wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgaW50IGNkY2xrKQo+IC17Cj4gLQlpbnQgcmF0aW87Cj4gLQo+IC0JaWYgKGNkY2xrID09IGRl dl9wcml2LT5jZGNsay5ody5ieXBhc3MpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0Jc3dpdGNoIChj ZGNsaykgewo+IC0JZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NBU0UoY2RjbGspOwo+IC0JCS8qIGZh bGwgdGhyb3VnaCAqLwo+IC0JY2FzZSAxNzI4MDA6Cj4gLQljYXNlIDMwNzIwMDoKPiAtCWNhc2Ug MzI2NDAwOgo+IC0JY2FzZSA1NTY4MDA6Cj4gLQljYXNlIDY1MjgwMDoKPiAtCQlXQVJOX09OKGRl dl9wcml2LT5jZGNsay5ody5yZWYgIT0gMTkyMDAgJiYKPiAtCQkJZGV2X3ByaXYtPmNkY2xrLmh3 LnJlZiAhPSAzODQwMCk7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIDE4MDAwMDoKPiAtCWNhc2UgMzEy MDAwOgo+IC0JY2FzZSAzMjQwMDA6Cj4gLQljYXNlIDU1MjAwMDoKPiAtCWNhc2UgNjQ4MDAwOgo+ IC0JCVdBUk5fT04oZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAhPSAyNDAwMCk7Cj4gLQkJYnJlYWs7 Cj4gLQljYXNlIDE5MjAwMDoKPiAtCQlXQVJOX09OKGRldl9wcml2LT5jZGNsay5ody5yZWYgIT0g MTkyMDAgJiYKPiAtCQkJZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAhPSAzODQwMCAmJgo+IC0JCQlk ZXZfcHJpdi0+Y2RjbGsuaHcucmVmICE9IDI0MDAwKTsKPiAtCQlicmVhazsKPiAtCX0KPiAtCj4g LQlyYXRpbyA9IGNkY2xrIC8gKGRldl9wcml2LT5jZGNsay5ody5yZWYgLyAyKTsKPiAtCj4gLQly ZXR1cm4gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAqIHJhdGlvOwo+IC19Cj4gLQo+ICBzdGF0aWMg dm9pZCBpY2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBzYW5pdGl6ZWRfc3RhdGU7Cj4gQEAgLTE4 ODIsOSArMTc5NSw5IEBAIHN0YXRpYyB2b2lkIGljbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgCURSTV9ERUJVR19LTVMoIlNhbml0aXppbmcgY2RjbGsg cHJvZ3JhbW1lZCBieSBwcmUtb3NcbiIpOwo+ICAKPiAgCXNhbml0aXplZF9zdGF0ZS5yZWYgPSBk ZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwo+IC0Jc2FuaXRpemVkX3N0YXRlLmNkY2xrID0gaWNsX2Nh bGNfY2RjbGsoMCwgc2FuaXRpemVkX3N0YXRlLnJlZik7Cj4gLQlzYW5pdGl6ZWRfc3RhdGUudmNv ID0gaWNsX2NhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwKPiAtCQkJCQkJICAgICBzYW5pdGl6 ZWRfc3RhdGUuY2RjbGspOwo+ICsJc2FuaXRpemVkX3N0YXRlLmNkY2xrID0gY2FsY19jZGNsayhk ZXZfcHJpdiwgMCk7Cj4gKwlzYW5pdGl6ZWRfc3RhdGUudmNvID0gY2FsY19jZGNsa19wbGxfdmNv KGRldl9wcml2LAo+ICsJCQkJCQkgc2FuaXRpemVkX3N0YXRlLmNkY2xrKTsKPiAgCWlmIChJU19F TEtIQVJUTEFLRShkZXZfcHJpdikpCj4gIAkJc2FuaXRpemVkX3N0YXRlLnZvbHRhZ2VfbGV2ZWwg PQo+ICAJCQllaGxfY2FsY192b2x0YWdlX2xldmVsKHNhbml0aXplZF9zdGF0ZS5jZGNsayk7Cj4g QEAgLTE5MjMsOCArMTgzNiw4IEBAIHN0YXRpYyB2b2lkIGNubF9pbml0X2NkY2xrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4gIAljZGNsa19zdGF0ZSA9IGRldl9wcml2 LT5jZGNsay5odzsKPiAgCj4gLQljZGNsa19zdGF0ZS5jZGNsayA9IGNubF9jYWxjX2NkY2xrKDAp Owo+IC0JY2RjbGtfc3RhdGUudmNvID0gY25sX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xr X3N0YXRlLmNkY2xrKTsKPiArCWNkY2xrX3N0YXRlLmNkY2xrID0gY2FsY19jZGNsayhkZXZfcHJp diwgMCk7Cj4gKwljZGNsa19zdGF0ZS52Y28gPSBjYWxjX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYs IGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBjbmxf Y2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgCj4gIAljbmxfc2V0X2Nk Y2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7Cj4gQEAgLTI0MjYsMTMg KzIzMzksOCBAQCBzdGF0aWMgaW50IGJ4dF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlpZiAobWluX2NkY2xrIDwgMCkKPiAgCQlyZXR1cm4g bWluX2NkY2xrOwo+ICAKPiAtCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+IC0JCWNk Y2xrID0gZ2xrX2NhbGNfY2RjbGsobWluX2NkY2xrKTsKPiAtCQl2Y28gPSBnbGtfZGVfcGxsX3Zj byhkZXZfcHJpdiwgY2RjbGspOwo+IC0JfSBlbHNlIHsKPiAtCQljZGNsayA9IGJ4dF9jYWxjX2Nk Y2xrKG1pbl9jZGNsayk7Cj4gLQkJdmNvID0gYnh0X2RlX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xr KTsKPiAtCX0KPiArCWNkY2xrID0gY2FsY19jZGNsayhkZXZfcHJpdiwgbWluX2NkY2xrKTsKPiAr CXZjbyA9IGNhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+ICAKPiAgCXN0YXRl LT5jZGNsay5sb2dpY2FsLnZjbyA9IHZjbzsKPiAgCXN0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xr ID0gY2RjbGs7Cj4gQEAgLTI0NDAsMTMgKzIzNDgsOCBAQCBzdGF0aWMgaW50IGJ4dF9tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJYnh0X2Nh bGNfdm9sdGFnZV9sZXZlbChjZGNsayk7Cj4gIAo+ICAJaWYgKCFzdGF0ZS0+YWN0aXZlX3BpcGVz KSB7Cj4gLQkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gLQkJCWNkY2xrID0gZ2xr X2NhbGNfY2RjbGsoc3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsayk7Cj4gLQkJCXZjbyA9IGds a19kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gLQkJfSBlbHNlIHsKPiAtCQkJY2RjbGsg PSBieHRfY2FsY19jZGNsayhzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrKTsKPiAtCQkJdmNv ID0gYnh0X2RlX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiAtCQl9Cj4gKwkJY2RjbGsgPSBj YWxjX2NkY2xrKGRldl9wcml2LCBzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrKTsKPiArCQl2 Y28gPSBjYWxjX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiAgCj4gIAkJc3RhdGUt PmNkY2xrLmFjdHVhbC52Y28gPSB2Y287Cj4gIAkJc3RhdGUtPmNkY2xrLmFjdHVhbC5jZGNsayA9 IGNkY2xrOwo+IEBAIC0yNDY4LDggKzIzNzEsOCBAQCBzdGF0aWMgaW50IGNubF9tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlpZiAobWluX2Nk Y2xrIDwgMCkKPiAgCQlyZXR1cm4gbWluX2NkY2xrOwo+ICAKPiAtCWNkY2xrID0gY25sX2NhbGNf Y2RjbGsobWluX2NkY2xrKTsKPiAtCXZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBj ZGNsayk7Cj4gKwljZGNsayA9IGNhbGNfY2RjbGsoZGV2X3ByaXYsIG1pbl9jZGNsayk7Cj4gKwl2 Y28gPSBjYWxjX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiAgCj4gIAlzdGF0ZS0+ Y2RjbGsubG9naWNhbC52Y28gPSB2Y287Cj4gIAlzdGF0ZS0+Y2RjbGsubG9naWNhbC5jZGNsayA9 IGNkY2xrOwo+IEBAIC0yNDc4LDggKzIzODEsOCBAQCBzdGF0aWMgaW50IGNubF9tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJICAgIGNubF9j b21wdXRlX21pbl92b2x0YWdlX2xldmVsKHN0YXRlKSk7Cj4gIAo+ICAJaWYgKCFzdGF0ZS0+YWN0 aXZlX3BpcGVzKSB7Cj4gLQkJY2RjbGsgPSBjbmxfY2FsY19jZGNsayhzdGF0ZS0+Y2RjbGsuZm9y Y2VfbWluX2NkY2xrKTsKPiAtCQl2Y28gPSBjbmxfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2Rj bGspOwo+ICsJCWNkY2xrID0gY2FsY19jZGNsayhkZXZfcHJpdiwgc3RhdGUtPmNkY2xrLmZvcmNl X21pbl9jZGNsayk7Cj4gKwkJdmNvID0gY2FsY19jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNs ayk7Cj4gIAo+ICAJCXN0YXRlLT5jZGNsay5hY3R1YWwudmNvID0gdmNvOwo+ICAJCXN0YXRlLT5j ZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKPiBAQCAtMjQ5NSwxNSArMjM5OCwxNCBAQCBzdGF0 aWMgaW50IGNubF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gIHN0YXRpYyBpbnQgaWNsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+IC0JdW5zaWduZWQgaW50IHJlZiA9 IHN0YXRlLT5jZGNsay5sb2dpY2FsLnJlZjsKPiAgCWludCBtaW5fY2RjbGssIGNkY2xrLCB2Y287 Cj4gIAo+ICAJbWluX2NkY2xrID0gaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RhdGUpOwo+ICAJ aWYgKG1pbl9jZGNsayA8IDApCj4gIAkJcmV0dXJuIG1pbl9jZGNsazsKPiAgCj4gLQljZGNsayA9 IGljbF9jYWxjX2NkY2xrKG1pbl9jZGNsaywgcmVmKTsKPiAtCXZjbyA9IGljbF9jYWxjX2NkY2xr X3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiArCWNkY2xrID0gY2FsY19jZGNsayhkZXZfcHJp diwgbWluX2NkY2xrKTsKPiArCXZjbyA9IGNhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2Rj bGspOwo+ICAKPiAgCXN0YXRlLT5jZGNsay5sb2dpY2FsLnZjbyA9IHZjbzsKPiAgCXN0YXRlLT5j ZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Cj4gQEAgLTI1MTcsOCArMjQxOSw4IEBAIHN0YXRp YyBpbnQgaWNsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAgCQkJICAgIGNubF9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKHN0YXRlKSk7Cj4g IAo+ICAJaWYgKCFzdGF0ZS0+YWN0aXZlX3BpcGVzKSB7Cj4gLQkJY2RjbGsgPSBpY2xfY2FsY19j ZGNsayhzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrLCByZWYpOwo+IC0JCXZjbyA9IGljbF9j YWxjX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiArCQljZGNsayA9IGNhbGNfY2Rj bGsoZGV2X3ByaXYsIHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOwo+ICsJCXZjbyA9IGNh bGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+ICAKPiAgCQlzdGF0ZS0+Y2RjbGsu YWN0dWFsLnZjbyA9IHZjbzsKPiAgCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7 Cj4gQEAgLTI3NTQsMTIgKzI2NTYsMTggQEAgdm9pZCBpbnRlbF9pbml0X2NkY2xrX2hvb2tzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDExKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gY25sX3NldF9j ZGNsazsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPSBpY2xfbW9k ZXNldF9jYWxjX2NkY2xrOwo+ICsJCWRldl9wcml2LT5jZGNsay50YWJsZSA9IGljbF9jZGNsa190 YWJsZTsKPiArCQlkZXZfcHJpdi0+Y2RjbGsudGFibGVfc2l6ZSA9IEFSUkFZX1NJWkUoaWNsX2Nk Y2xrX3RhYmxlKTsKPiAgCX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiAg CQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBjbmxfc2V0X2NkY2xrOwo+ICAJCWRldl9w cml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9IGNubF9tb2Rlc2V0X2NhbGNfY2RjbGs7 Cj4gKwkJZGV2X3ByaXYtPmNkY2xrLnRhYmxlID0gY25sX2NkY2xrX3RhYmxlOwo+ICsJCWRldl9w cml2LT5jZGNsay50YWJsZV9zaXplID0gQVJSQVlfU0laRShjbmxfY2RjbGtfdGFibGUpOwo+ICAJ fSBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5 LnNldF9jZGNsayA9IGJ4dF9zZXRfY2RjbGs7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNl dF9jYWxjX2NkY2xrID0gYnh0X21vZGVzZXRfY2FsY19jZGNsazsKPiArCQlkZXZfcHJpdi0+Y2Rj bGsudGFibGUgPSBieHRfY2RjbGtfdGFibGU7Cj4gKwkJZGV2X3ByaXYtPmNkY2xrLnRhYmxlX3Np emUgPSBBUlJBWV9TSVpFKGJ4dF9jZGNsa190YWJsZSk7Cj4gIAl9IGVsc2UgaWYgKElTX0dFTjlf QkMoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gc2tsX3Nl dF9jZGNsazsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPSBza2xf bW9kZXNldF9jYWxjX2NkY2xrOwo+IEBAIC0yNzc0LDcgKzI2ODIsNyBAQCB2b2lkIGludGVsX2lu aXRfY2RjbGtfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRl dl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9IHZsdl9tb2Rlc2V0X2NhbGNfY2Rj bGs7Cj4gIAl9Cj4gIAo+IC0JZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikgfHwgSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMCkKPiArCWlmIChJU19HRU45X0xQKGRldl9wcml2KSB8fCBJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEwKQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9 IGJ4dF9nZXRfY2RjbGs7Cj4gIAllbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkKPiAgCQlk ZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBza2xfZ2V0X2NkY2xrOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmgKPiBpbmRleCA0ZDZmN2Y1Zjg5MzAuLjgw ZGMxN2EwN2FhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2NkY2xrLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nk Y2xrLmgKPiBAQCAtMTUsNiArMTUsMTQgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZTsKPiAg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKPiAg Cj4gK3N0cnVjdCBpbnRlbF9jZGNsa192YWxzIHsKPiArCWludCBjZGNsazsKPiArCWludCBkaXZp ZGVyOyAgIC8qIENEMlggZGl2aWRlciAqIDIgKi8KPiArCWludCByYXRpb18xOTsKPiArCWludCBy YXRpb18yNDsKPiArCWludCByYXRpb18zODsKCkkgdGhpbmsgYSBidW5jaCBvZiB0aGVzZSBjYW4g ZWFzaWx5IGZpdCBzbWFsbGVyIHR5cGVzLgoKQSBtb3JlIGdlbmVyYWwgYXBwcm9hY2ggbWlnaHQg YmUganVzdCAKc3RydWN0IC4uLiB7CgljZGNsawoJcmVmCglkaXZpZGVyCglyYXRpbwp9OwoKSWUu IGFkZCBhIHVuaXF1ZSBlbnRyeSBmb3IgZWFjaCBjZGNsaytyZWYgY29tYm8uIHRoYXQgd2F5IHdl IGRvbid0IGhhdmUKdG8gZW5jb2RlIHRoZSBzZXQgb2YgcG9zc2libGUgcmVmIGNsb2NrcyBoZXJl IGF0IGFsbCwgYW5kIHRodXMgY2FuIHVzZQp0aGlzIHN0aWxsIHdoZW4gdGhlIHNldCBvZiByZWYg Y2xvY2tzIGNoYW5nZXMgb24gc29tZSBmdXR1cmUgcGxhdGZvcm0uCgkKPiArfTsKPiArCj4gIGlu dCBpbnRlbF9jcnRjX2NvbXB1dGVfbWluX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9jZGNsa19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KTsKPiAgdm9pZCBpbnRlbF9jZGNsa191bmluaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGRiNzQ4 MDgzMWU1Mi4uYTRkMjQ5MTkzZGM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAg LTE0MjAsNiArMTQyMCwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkJLyogVGhl IGN1cnJlbnQgaGFyZHdhcmUgY2RjbGsgc3RhdGUgKi8KPiAgCQlzdHJ1Y3QgaW50ZWxfY2RjbGtf c3RhdGUgaHc7Cj4gIAo+ICsJCS8qIGNkY2xrLCBkaXZpZGVyLCBhbmQgcmF0aW8gdGFibGUgZnJv bSBic3BlYyAqLwo+ICsJCWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa192YWxzICp0YWJsZTsKPiAr CQlpbnQgdGFibGVfc2l6ZTsKCk9yIHdlIHRlcm1pbmF0ZSB0aGUgdGFibGVzIHdpdGgge30gPwoK PiArCj4gIAkJaW50IGZvcmNlX21pbl9jZGNsazsKPiAgCX0gY2RjbGs7Cj4gIAo+IC0tIAo+IDIu MjAuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=