From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 11/14] drm/i915: Move ILK/SNB/IVB over to the HSW WM code Date: Tue, 17 Dec 2013 00:16:02 +0200 Message-ID: <1387232162.2529.32.camel@ideak-mobl> References: <1386251501-10602-1-git-send-email-ville.syrjala@linux.intel.com> <1386251501-10602-12-git-send-email-ville.syrjala@linux.intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 02146FA9FE for ; Mon, 16 Dec 2013 14:16:32 -0800 (PST) In-Reply-To: <1386251501-10602-12-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDEzLTEyLTA1IGF0IDE1OjUxICswMjAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+IAo+IFRoZSBuZXcgSFNXIHdhdGVybWFyayBjb2RlIGNhbiBub3cgaGFu ZGxlIElMSy9TTkIvSVZCIGFzIHdlbGwsIHNvCj4gc3dpdGNoIHRoZW0gb3Zlci4gS2lsbCB0aGUg b2xkIGNvZGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAg ICB8IDY1NiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNo YW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDY0NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggM2M1OWI2Ny4uMjQwNjZjYyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTEyMDgsNyArMTEyMDgsNyBAQCB2 b2lkIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCQlwbGwtPm9uID0gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSkK PiArCWlmIChIQVNfUENIX1NQTElUKGRldikpCj4gIAkJaWxrX3dtX2dldF9od19zdGF0ZShkZXYp Owo+ICAKPiAgCWlmIChmb3JjZV9yZXN0b3JlKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4g aW5kZXggNDIwYmUyZi4uOGI5Nzg5MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBA IC05NjUsNjUgKzk2NSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3Bh cmFtcyBpODMwX3dtX2luZm8gPSB7Cj4gIAlJODMwX0ZJRk9fTElORV9TSVpFCj4gIH07Cj4gIAo+ IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgaXJvbmxha2VfZGlz cGxheV93bV9pbmZvID0gewo+IC0JSUxLX0RJU1BMQVlfRklGTywKPiAtCUlMS19ESVNQTEFZX01B WFdNLAo+IC0JSUxLX0RJU1BMQVlfREZUV00sCj4gLQkyLAo+IC0JSUxLX0ZJRk9fTElORV9TSVpF Cj4gLX07Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyBpcm9u bGFrZV9jdXJzb3Jfd21faW5mbyA9IHsKPiAtCUlMS19DVVJTT1JfRklGTywKPiAtCUlMS19DVVJT T1JfTUFYV00sCj4gLQlJTEtfQ1VSU09SX0RGVFdNLAo+IC0JMiwKPiAtCUlMS19GSUZPX0xJTkVf U0laRQo+IC19Owo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMg aXJvbmxha2VfZGlzcGxheV9zcndtX2luZm8gPSB7Cj4gLQlJTEtfRElTUExBWV9TUl9GSUZPLAo+ IC0JSUxLX0RJU1BMQVlfTUFYX1NSV00sCj4gLQlJTEtfRElTUExBWV9ERlRfU1JXTSwKPiAtCTIs Cj4gLQlJTEtfRklGT19MSU5FX1NJWkUKPiAtfTsKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF93YXRlcm1hcmtfcGFyYW1zIGlyb25sYWtlX2N1cnNvcl9zcndtX2luZm8gPSB7Cj4gLQlJTEtf Q1VSU09SX1NSX0ZJRk8sCj4gLQlJTEtfQ1VSU09SX01BWF9TUldNLAo+IC0JSUxLX0NVUlNPUl9E RlRfU1JXTSwKPiAtCTIsCj4gLQlJTEtfRklGT19MSU5FX1NJWkUKPiAtfTsKPiAtCj4gLXN0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyBzYW5keWJyaWRnZV9kaXNwbGF5 X3dtX2luZm8gPSB7Cj4gLQlTTkJfRElTUExBWV9GSUZPLAo+IC0JU05CX0RJU1BMQVlfTUFYV00s Cj4gLQlTTkJfRElTUExBWV9ERlRXTSwKPiAtCTIsCj4gLQlTTkJfRklGT19MSU5FX1NJWkUKPiAt fTsKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF93YXRlcm1hcmtfcGFyYW1zIHNhbmR5YnJp ZGdlX2N1cnNvcl93bV9pbmZvID0gewo+IC0JU05CX0NVUlNPUl9GSUZPLAo+IC0JU05CX0NVUlNP Ul9NQVhXTSwKPiAtCVNOQl9DVVJTT1JfREZUV00sCj4gLQkyLAo+IC0JU05CX0ZJRk9fTElORV9T SVpFCj4gLX07Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyBz YW5keWJyaWRnZV9kaXNwbGF5X3Nyd21faW5mbyA9IHsKPiAtCVNOQl9ESVNQTEFZX1NSX0ZJRk8s Cj4gLQlTTkJfRElTUExBWV9NQVhfU1JXTSwKPiAtCVNOQl9ESVNQTEFZX0RGVF9TUldNLAo+IC0J MiwKPiAtCVNOQl9GSUZPX0xJTkVfU0laRQo+IC19Owo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX3dhdGVybWFya19wYXJhbXMgc2FuZHlicmlkZ2VfY3Vyc29yX3Nyd21faW5mbyA9IHsKPiAt CVNOQl9DVVJTT1JfU1JfRklGTywKPiAtCVNOQl9DVVJTT1JfTUFYX1NSV00sCj4gLQlTTkJfQ1VS U09SX0RGVF9TUldNLAo+IC0JMiwKPiAtCVNOQl9GSUZPX0xJTkVfU0laRQo+IC19OwoKV2UgY291 bGQgYWxzbyByZW1vdmUgbm93IHRoZSBhYm92ZSBtYWNyb3MuCgo+IC0KPiAtCj4gIC8qKgo+ICAg KiBpbnRlbF9jYWxjdWxhdGVfd20gLSBjYWxjdWxhdGUgd2F0ZXJtYXJrIGxldmVsCj4gICAqIEBj bG9ja19pbl9raHo6IHBpeGVsIGNsb2NrCj4gQEAgLTE3MDcsNDIzICsxNjQ4LDYgQEAgc3RhdGlj IHZvaWQgaTgzMF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCUk5 MTVfV1JJVEUoRldfQkxDLCBmd2F0ZXJfbG8pOwo+ICB9Cj4gIAo+IC0vKgo+IC0gKiBDaGVjayB0 aGUgd20gcmVzdWx0Lgo+IC0gKgo+IC0gKiBJZiBhbnkgY2FsY3VsYXRlZCB3YXRlcm1hcmsgdmFs dWVzIGlzIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHZhbHVlIHRoYXQKPiAtICogY2FuIGJlIHBy b2dyYW1tZWQgaW50byB0aGUgYXNzb2NpYXRlZCB3YXRlcm1hcmsgcmVnaXN0ZXIsIHRoYXQgd2F0 ZXJtYXJrCj4gLSAqIG11c3QgYmUgZGlzYWJsZWQuCj4gLSAqLwo+IC1zdGF0aWMgYm9vbCBpcm9u bGFrZV9jaGVja19zcndtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBsZXZlbCwKPiAtCQkJ CWludCBmYmNfd20sIGludCBkaXNwbGF5X3dtLCBpbnQgY3Vyc29yX3dtLAo+IC0JCQkJY29uc3Qg c3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgKmRpc3BsYXksCj4gLQkJCQljb25zdCBzdHJ1 Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyAqY3Vyc29yKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0KPiAtCURSTV9ERUJV R19LTVMoIndhdGVybWFyayAlZDogZGlzcGxheSBwbGFuZSAlZCwgZmJjIGxpbmVzICVkLCIKPiAt CQkgICAgICAiIGN1cnNvciAlZFxuIiwgbGV2ZWwsIGRpc3BsYXlfd20sIGZiY193bSwgY3Vyc29y X3dtKTsKPiAtCj4gLQlpZiAoZmJjX3dtID4gU05CX0ZCQ19NQVhfU1JXTSkgewo+IC0JCURSTV9E RUJVR19LTVMoImZiYyB3YXRlcm1hcmsoJWQpIGlzIHRvbyBsYXJnZSglZCksIGRpc2FibGluZyB3 bSVkK1xuIiwKPiAtCQkJICAgICAgZmJjX3dtLCBTTkJfRkJDX01BWF9TUldNLCBsZXZlbCk7Cj4g LQo+IC0JCS8qIGZiYyBoYXMgaXQncyBvd24gd2F5IHRvIGRpc2FibGUgRkJDIFdNICovCj4gLQkJ STkxNV9XUklURShESVNQX0FSQl9DVEwsCj4gLQkJCSAgIEk5MTVfUkVBRChESVNQX0FSQl9DVEwp IHwgRElTUF9GQkNfV01fRElTKTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQl9IGVsc2UgaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDYpIHsKPiAtCQkvKiBlbmFibGUgRkJDIFdNIChleGNlcHQg b24gSUxLLCB3aGVyZSBpdCBtdXN0IHJlbWFpbiBvZmYpICovCj4gLQkJSTkxNV9XUklURShESVNQ X0FSQl9DVEwsCj4gLQkJCSAgIEk5MTVfUkVBRChESVNQX0FSQl9DVEwpICYgfkRJU1BfRkJDX1dN X0RJUyk7Cj4gLQl9Cj4gLQo+IC0JaWYgKGRpc3BsYXlfd20gPiBkaXNwbGF5LT5tYXhfd20pIHsK PiAtCQlEUk1fREVCVUdfS01TKCJkaXNwbGF5IHdhdGVybWFyayglZCkgaXMgdG9vIGxhcmdlKCVk KSwgZGlzYWJsaW5nIHdtJWQrXG4iLAo+IC0JCQkgICAgICBkaXNwbGF5X3dtLCBTTkJfRElTUExB WV9NQVhfU1JXTSwgbGV2ZWwpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQlpZiAo Y3Vyc29yX3dtID4gY3Vyc29yLT5tYXhfd20pIHsKPiAtCQlEUk1fREVCVUdfS01TKCJjdXJzb3Ig d2F0ZXJtYXJrKCVkKSBpcyB0b28gbGFyZ2UoJWQpLCBkaXNhYmxpbmcgd20lZCtcbiIsCj4gLQkJ CSAgICAgIGN1cnNvcl93bSwgU05CX0NVUlNPUl9NQVhfU1JXTSwgbGV2ZWwpOwo+IC0JCXJldHVy biBmYWxzZTsKPiAtCX0KPiAtCj4gLQlpZiAoIShmYmNfd20gfHwgZGlzcGxheV93bSB8fCBjdXJz b3Jfd20pKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygibGF0ZW5jeSAlZCBpcyAwLCBkaXNhYmxpbmcg d20lZCtcbiIsIGxldmVsLCBsZXZlbCk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAt CXJldHVybiB0cnVlOwo+IC19Cj4gLQo+IC0vKgo+IC0gKiBDb21wdXRlIHdhdGVybWFyayB2YWx1 ZXMgb2YgV01bMS0zXSwKPiAtICovCj4gLXN0YXRpYyBib29sIGlyb25sYWtlX2NvbXB1dGVfc3J3 bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgbGV2ZWwsIGludCBwbGFuZSwKPiAtCQkJCSAg aW50IGxhdGVuY3lfbnMsCj4gLQkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF93YXRlcm1hcmtfcGFy YW1zICpkaXNwbGF5LAo+IC0JCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFt cyAqY3Vyc29yLAo+IC0JCQkJICBpbnQgKmZiY193bSwgaW50ICpkaXNwbGF5X3dtLCBpbnQgKmN1 cnNvcl93bSkKPiAtewo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0JY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gLQl1bnNpZ25lZCBsb25nIGxpbmVf dGltZV91czsKPiAtCWludCBoZGlzcGxheSwgaHRvdGFsLCBwaXhlbF9zaXplLCBjbG9jazsKPiAt CWludCBsaW5lX2NvdW50LCBsaW5lX3NpemU7Cj4gLQlpbnQgc21hbGwsIGxhcmdlOwo+IC0JaW50 IGVudHJpZXM7Cj4gLQo+IC0JaWYgKCFsYXRlbmN5X25zKSB7Cj4gLQkJKmZiY193bSA9ICpkaXNw bGF5X3dtID0gKmN1cnNvcl93bSA9IDA7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAt CWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2LCBwbGFuZSk7Cj4gLQlhZGp1c3Rl ZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9tb2RlOwo+IC0J Y2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+IC0JaHRvdGFsID0gYWRqdXN0ZWRf bW9kZS0+Y3J0Y19odG90YWw7Cj4gLQloZGlzcGxheSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNv bmZpZy5waXBlX3NyY193Owo+IC0JcGl4ZWxfc2l6ZSA9IGNydGMtPmZiLT5iaXRzX3Blcl9waXhl bCAvIDg7Cj4gLQo+IC0JbGluZV90aW1lX3VzID0gKGh0b3RhbCAqIDEwMDApIC8gY2xvY2s7Cj4g LQlsaW5lX2NvdW50ID0gKGxhdGVuY3lfbnMgLyBsaW5lX3RpbWVfdXMgKyAxMDAwKSAvIDEwMDA7 Cj4gLQlsaW5lX3NpemUgPSBoZGlzcGxheSAqIHBpeGVsX3NpemU7Cj4gLQo+IC0JLyogVXNlIHRo ZSBtaW5pbXVtIG9mIHRoZSBzbWFsbCBhbmQgbGFyZ2UgYnVmZmVyIG1ldGhvZCBmb3IgcHJpbWFy eSAqLwo+IC0Jc21hbGwgPSAoKGNsb2NrICogcGl4ZWxfc2l6ZSAvIDEwMDApICogbGF0ZW5jeV9u cykgLyAxMDAwOwo+IC0JbGFyZ2UgPSBsaW5lX2NvdW50ICogbGluZV9zaXplOwo+IC0KPiAtCWVu dHJpZXMgPSBESVZfUk9VTkRfVVAobWluKHNtYWxsLCBsYXJnZSksIGRpc3BsYXktPmNhY2hlbGlu ZV9zaXplKTsKPiAtCSpkaXNwbGF5X3dtID0gZW50cmllcyArIGRpc3BsYXktPmd1YXJkX3NpemU7 Cj4gLQo+IC0JLyoKPiAtCSAqIFNwZWMgc2F5czoKPiAtCSAqIEZCQyBXTSA9ICgoRmluYWwgUHJp bWFyeSBXTSAqIDY0KSAvIG51bWJlciBvZiBieXRlcyBwZXIgbGluZSkgKyAyCj4gLQkgKi8KPiAt CSpmYmNfd20gPSBESVZfUk9VTkRfVVAoKmRpc3BsYXlfd20gKiA2NCwgbGluZV9zaXplKSArIDI7 Cj4gLQo+IC0JLyogY2FsY3VsYXRlIHRoZSBzZWxmLXJlZnJlc2ggd2F0ZXJtYXJrIGZvciBkaXNw bGF5IGN1cnNvciAqLwo+IC0JZW50cmllcyA9IGxpbmVfY291bnQgKiBwaXhlbF9zaXplICogNjQ7 Cj4gLQllbnRyaWVzID0gRElWX1JPVU5EX1VQKGVudHJpZXMsIGN1cnNvci0+Y2FjaGVsaW5lX3Np emUpOwo+IC0JKmN1cnNvcl93bSA9IGVudHJpZXMgKyBjdXJzb3ItPmd1YXJkX3NpemU7Cj4gLQo+ IC0JcmV0dXJuIGlyb25sYWtlX2NoZWNrX3Nyd20oZGV2LCBsZXZlbCwKPiAtCQkJCSAgICpmYmNf d20sICpkaXNwbGF5X3dtLCAqY3Vyc29yX3dtLAo+IC0JCQkJICAgZGlzcGxheSwgY3Vyc29yKTsK PiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g LQlpbnQgZmJjX3dtLCBwbGFuZV93bSwgY3Vyc29yX3dtOwo+IC0JdW5zaWduZWQgaW50IGVuYWJs ZWQ7Cj4gLQo+IC0JZW5hYmxlZCA9IDA7Cj4gLQlpZiAoZzR4X2NvbXB1dGVfd20wKGRldiwgUElQ RV9BLAo+IC0JCQkgICAgJmlyb25sYWtlX2Rpc3BsYXlfd21faW5mbywKPiAtCQkJICAgIGRldl9w cml2LT53bS5wcmlfbGF0ZW5jeVswXSAqIDEwMCwKPiAtCQkJICAgICZpcm9ubGFrZV9jdXJzb3Jf d21faW5mbywKPiAtCQkJICAgIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVswXSAqIDEwMCwKPiAt CQkJICAgICZwbGFuZV93bSwgJmN1cnNvcl93bSkpIHsKPiAtCQlJOTE1X1dSSVRFKFdNMF9QSVBF QV9JTEssCj4gLQkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9QTEFORV9TSElGVCkgfCBjdXJz b3Jfd20pOwo+IC0JCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBBIC0i Cj4gLQkJCSAgICAgICIgcGxhbmUgJWQsICIgImN1cnNvcjogJWRcbiIsCj4gLQkJCSAgICAgIHBs YW5lX3dtLCBjdXJzb3Jfd20pOwo+IC0JCWVuYWJsZWQgfD0gMSA8PCBQSVBFX0E7Cj4gLQl9Cj4g LQo+IC0JaWYgKGc0eF9jb21wdXRlX3dtMChkZXYsIFBJUEVfQiwKPiAtCQkJICAgICZpcm9ubGFr ZV9kaXNwbGF5X3dtX2luZm8sCj4gLQkJCSAgICBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbMF0g KiAxMDAsCj4gLQkJCSAgICAmaXJvbmxha2VfY3Vyc29yX3dtX2luZm8sCj4gLQkJCSAgICBkZXZf cHJpdi0+d20uY3VyX2xhdGVuY3lbMF0gKiAxMDAsCj4gLQkJCSAgICAmcGxhbmVfd20sICZjdXJz b3Jfd20pKSB7Cj4gLQkJSTkxNV9XUklURShXTTBfUElQRUJfSUxLLAo+IC0JCQkgICAocGxhbmVf d20gPDwgV00wX1BJUEVfUExBTkVfU0hJRlQpIHwgY3Vyc29yX3dtKTsKPiAtCQlEUk1fREVCVUdf S01TKCJGSUZPIHdhdGVybWFya3MgRm9yIHBpcGUgQiAtIgo+IC0JCQkgICAgICAiIHBsYW5lICVk LCBjdXJzb3I6ICVkXG4iLAo+IC0JCQkgICAgICBwbGFuZV93bSwgY3Vyc29yX3dtKTsKPiAtCQll bmFibGVkIHw9IDEgPDwgUElQRV9COwo+IC0JfQo+IC0KPiAtCS8qCj4gLQkgKiBDYWxjdWxhdGUg YW5kIHVwZGF0ZSB0aGUgc2VsZi1yZWZyZXNoIHdhdGVybWFyayBvbmx5IHdoZW4gb25lCj4gLQkg KiBkaXNwbGF5IHBsYW5lIGlzIHVzZWQuCj4gLQkgKi8KPiAtCUk5MTVfV1JJVEUoV00zX0xQX0lM SywgMCk7Cj4gLQlJOTE1X1dSSVRFKFdNMl9MUF9JTEssIDApOwo+IC0JSTkxNV9XUklURShXTTFf TFBfSUxLLCAwKTsKPiAtCj4gLQlpZiAoIXNpbmdsZV9wbGFuZV9lbmFibGVkKGVuYWJsZWQpKQo+ IC0JCXJldHVybjsKPiAtCWVuYWJsZWQgPSBmZnMoZW5hYmxlZCkgLSAxOwo+IC0KPiAtCS8qIFdN MSAqLwo+IC0JaWYgKCFpcm9ubGFrZV9jb21wdXRlX3Nyd20oZGV2LCAxLCBlbmFibGVkLAo+IC0J CQkJICAgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzFdICogNTAwLAo+IC0JCQkJICAgJmlyb25s YWtlX2Rpc3BsYXlfc3J3bV9pbmZvLAo+IC0JCQkJICAgJmlyb25sYWtlX2N1cnNvcl9zcndtX2lu Zm8sCj4gLQkJCQkgICAmZmJjX3dtLCAmcGxhbmVfd20sICZjdXJzb3Jfd20pKQo+IC0JCXJldHVy bjsKPiAtCj4gLQlJOTE1X1dSSVRFKFdNMV9MUF9JTEssCj4gLQkJICAgV00xX0xQX1NSX0VOIHwK PiAtCQkgICAoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzFdIDw8IFdNMV9MUF9MQVRFTkNZX1NI SUZUKSB8Cj4gLQkJICAgKGZiY193bSA8PCBXTTFfTFBfRkJDX1NISUZUKSB8Cj4gLQkJICAgKHBs YW5lX3dtIDw8IFdNMV9MUF9TUl9TSElGVCkgfAo+IC0JCSAgIGN1cnNvcl93bSk7Cj4gLQo+IC0J LyogV00yICovCj4gLQlpZiAoIWlyb25sYWtlX2NvbXB1dGVfc3J3bShkZXYsIDIsIGVuYWJsZWQs Cj4gLQkJCQkgICBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbMl0gKiA1MDAsCj4gLQkJCQkgICAm aXJvbmxha2VfZGlzcGxheV9zcndtX2luZm8sCj4gLQkJCQkgICAmaXJvbmxha2VfY3Vyc29yX3Ny d21faW5mbywKPiAtCQkJCSAgICZmYmNfd20sICZwbGFuZV93bSwgJmN1cnNvcl93bSkpCj4gLQkJ cmV0dXJuOwo+IC0KPiAtCUk5MTVfV1JJVEUoV00yX0xQX0lMSywKPiAtCQkgICBXTTJfTFBfRU4g fAo+IC0JCSAgIChkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbMl0gPDwgV00xX0xQX0xBVEVOQ1lf U0hJRlQpIHwKPiAtCQkgICAoZmJjX3dtIDw8IFdNMV9MUF9GQkNfU0hJRlQpIHwKPiAtCQkgICAo cGxhbmVfd20gPDwgV00xX0xQX1NSX1NISUZUKSB8Cj4gLQkJICAgY3Vyc29yX3dtKTsKPiAtCj4g LQkvKgo+IC0JICogV00zIGlzIHVuc3VwcG9ydGVkIG9uIElMSywgcHJvYmFibHkgYmVjYXVzZSB3 ZSBkb24ndCBoYXZlIGxhdGVuY3kKPiAtCSAqIGRhdGEgZm9yIHRoYXQgcG93ZXIgc3RhdGUKPiAt CSAqLwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBzYW5keWJyaWRnZV91cGRhdGVfd20oc3RydWN0 IGRybV9jcnRjICpjcnRjKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAtCWludCBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzBdICogMTAw OwkvKiBJbiB1bml0IDAuMXVzICovCj4gLQl1MzIgdmFsOwo+IC0JaW50IGZiY193bSwgcGxhbmVf d20sIGN1cnNvcl93bTsKPiAtCXVuc2lnbmVkIGludCBlbmFibGVkOwo+IC0KPiAtCWVuYWJsZWQg PSAwOwo+IC0JaWYgKGc0eF9jb21wdXRlX3dtMChkZXYsIFBJUEVfQSwKPiAtCQkJICAgICZzYW5k eWJyaWRnZV9kaXNwbGF5X3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmc2FuZHlicmlkZ2Vf Y3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20p KSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKFdNMF9QSVBFQV9JTEspOwo+IC0JCXZhbCAmPSB+KFdN MF9QSVBFX1BMQU5FX01BU0sgfCBXTTBfUElQRV9DVVJTT1JfTUFTSyk7Cj4gLQkJSTkxNV9XUklU RShXTTBfUElQRUFfSUxLLCB2YWwgfAo+IC0JCQkgICAoKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BM QU5FX1NISUZUKSB8IGN1cnNvcl93bSkpOwo+IC0JCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJt YXJrcyBGb3IgcGlwZSBBIC0iCj4gLQkJCSAgICAgICIgcGxhbmUgJWQsICIgImN1cnNvcjogJWRc biIsCj4gLQkJCSAgICAgIHBsYW5lX3dtLCBjdXJzb3Jfd20pOwo+IC0JCWVuYWJsZWQgfD0gMSA8 PCBQSVBFX0E7Cj4gLQl9Cj4gLQo+IC0JaWYgKGc0eF9jb21wdXRlX3dtMChkZXYsIFBJUEVfQiwK PiAtCQkJICAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAg ICAmc2FuZHlicmlkZ2VfY3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmcGxhbmVf d20sICZjdXJzb3Jfd20pKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKFdNMF9QSVBFQl9JTEspOwo+ IC0JCXZhbCAmPSB+KFdNMF9QSVBFX1BMQU5FX01BU0sgfCBXTTBfUElQRV9DVVJTT1JfTUFTSyk7 Cj4gLQkJSTkxNV9XUklURShXTTBfUElQRUJfSUxLLCB2YWwgfAo+IC0JCQkgICAoKHBsYW5lX3dt IDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSkpOwo+IC0JCURSTV9ERUJVR19L TVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBCIC0iCj4gLQkJCSAgICAgICIgcGxhbmUgJWQs IGN1cnNvcjogJWRcbiIsCj4gLQkJCSAgICAgIHBsYW5lX3dtLCBjdXJzb3Jfd20pOwo+IC0JCWVu YWJsZWQgfD0gMSA8PCBQSVBFX0I7Cj4gLQl9Cj4gLQo+IC0JLyoKPiAtCSAqIENhbGN1bGF0ZSBh bmQgdXBkYXRlIHRoZSBzZWxmLXJlZnJlc2ggd2F0ZXJtYXJrIG9ubHkgd2hlbiBvbmUKPiAtCSAq IGRpc3BsYXkgcGxhbmUgaXMgdXNlZC4KPiAtCSAqCj4gLQkgKiBTTkIgc3VwcG9ydCAzIGxldmVs cyBvZiB3YXRlcm1hcmsuCj4gLQkgKgo+IC0JICogV00xL1dNMi9XTTIgd2F0ZXJtYXJrcyBoYXZl IHRvIGJlIGVuYWJsZWQgaW4gdGhlIGFzY2VuZGluZyBvcmRlciwKPiAtCSAqIGFuZCBkaXNhYmxl ZCBpbiB0aGUgZGVzY2VuZGluZyBvcmRlcgo+IC0JICoKPiAtCSAqLwo+IC0JSTkxNV9XUklURShX TTNfTFBfSUxLLCAwKTsKPiAtCUk5MTVfV1JJVEUoV00yX0xQX0lMSywgMCk7Cj4gLQlJOTE1X1dS SVRFKFdNMV9MUF9JTEssIDApOwo+IC0KPiAtCWlmICghc2luZ2xlX3BsYW5lX2VuYWJsZWQoZW5h YmxlZCkgfHwKPiAtCSAgICBkZXZfcHJpdi0+c3ByaXRlX3NjYWxpbmdfZW5hYmxlZCkKPiAtCQly ZXR1cm47Cj4gLQllbmFibGVkID0gZmZzKGVuYWJsZWQpIC0gMTsKPiAtCj4gLQkvKiBXTTEgKi8K PiAtCWlmICghaXJvbmxha2VfY29tcHV0ZV9zcndtKGRldiwgMSwgZW5hYmxlZCwKPiAtCQkJCSAg IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVsxXSAqIDUwMCwKPiAtCQkJCSAgICZzYW5keWJyaWRn ZV9kaXNwbGF5X3Nyd21faW5mbywKPiAtCQkJCSAgICZzYW5keWJyaWRnZV9jdXJzb3Jfc3J3bV9p bmZvLAo+IC0JCQkJICAgJmZiY193bSwgJnBsYW5lX3dtLCAmY3Vyc29yX3dtKSkKPiAtCQlyZXR1 cm47Cj4gLQo+IC0JSTkxNV9XUklURShXTTFfTFBfSUxLLAo+IC0JCSAgIFdNMV9MUF9TUl9FTiB8 Cj4gLQkJICAgKGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVsxXSA8PCBXTTFfTFBfTEFURU5DWV9T SElGVCkgfAo+IC0JCSAgIChmYmNfd20gPDwgV00xX0xQX0ZCQ19TSElGVCkgfAo+IC0JCSAgIChw bGFuZV93bSA8PCBXTTFfTFBfU1JfU0hJRlQpIHwKPiAtCQkgICBjdXJzb3Jfd20pOwo+IC0KPiAt CS8qIFdNMiAqLwo+IC0JaWYgKCFpcm9ubGFrZV9jb21wdXRlX3Nyd20oZGV2LCAyLCBlbmFibGVk LAo+IC0JCQkJICAgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzJdICogNTAwLAo+IC0JCQkJICAg JnNhbmR5YnJpZGdlX2Rpc3BsYXlfc3J3bV9pbmZvLAo+IC0JCQkJICAgJnNhbmR5YnJpZGdlX2N1 cnNvcl9zcndtX2luZm8sCj4gLQkJCQkgICAmZmJjX3dtLCAmcGxhbmVfd20sICZjdXJzb3Jfd20p KQo+IC0JCXJldHVybjsKPiAtCj4gLQlJOTE1X1dSSVRFKFdNMl9MUF9JTEssCj4gLQkJICAgV00y X0xQX0VOIHwKPiAtCQkgICAoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzJdIDw8IFdNMV9MUF9M QVRFTkNZX1NISUZUKSB8Cj4gLQkJICAgKGZiY193bSA8PCBXTTFfTFBfRkJDX1NISUZUKSB8Cj4g LQkJICAgKHBsYW5lX3dtIDw8IFdNMV9MUF9TUl9TSElGVCkgfAo+IC0JCSAgIGN1cnNvcl93bSk7 Cj4gLQo+IC0JLyogV00zICovCj4gLQlpZiAoIWlyb25sYWtlX2NvbXB1dGVfc3J3bShkZXYsIDMs IGVuYWJsZWQsCj4gLQkJCQkgICBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbM10gKiA1MDAsCj4g LQkJCQkgICAmc2FuZHlicmlkZ2VfZGlzcGxheV9zcndtX2luZm8sCj4gLQkJCQkgICAmc2FuZHli cmlkZ2VfY3Vyc29yX3Nyd21faW5mbywKPiAtCQkJCSAgICZmYmNfd20sICZwbGFuZV93bSwgJmN1 cnNvcl93bSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCUk5MTVfV1JJVEUoV00zX0xQX0lMSywKPiAt CQkgICBXTTNfTFBfRU4gfAo+IC0JCSAgIChkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbM10gPDwg V00xX0xQX0xBVEVOQ1lfU0hJRlQpIHwKPiAtCQkgICAoZmJjX3dtIDw8IFdNMV9MUF9GQkNfU0hJ RlQpIHwKPiAtCQkgICAocGxhbmVfd20gPDwgV00xX0xQX1NSX1NISUZUKSB8Cj4gLQkJICAgY3Vy c29yX3dtKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3VwZGF0ZV93bShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+IC0JaW50IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbMF0gKiAx MDA7CS8qIEluIHVuaXQgMC4xdXMgKi8KPiAtCXUzMiB2YWw7Cj4gLQlpbnQgZmJjX3dtLCBwbGFu ZV93bSwgY3Vyc29yX3dtOwo+IC0JaW50IGlnbm9yZV9mYmNfd20sIGlnbm9yZV9wbGFuZV93bSwg aWdub3JlX2N1cnNvcl93bTsKPiAtCXVuc2lnbmVkIGludCBlbmFibGVkOwo+IC0KPiAtCWVuYWJs ZWQgPSAwOwo+IC0JaWYgKGc0eF9jb21wdXRlX3dtMChkZXYsIFBJUEVfQSwKPiAtCQkJICAgICZz YW5keWJyaWRnZV9kaXNwbGF5X3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmc2FuZHlicmlk Z2VfY3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jf d20pKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKFdNMF9QSVBFQV9JTEspOwo+IC0JCXZhbCAmPSB+ KFdNMF9QSVBFX1BMQU5FX01BU0sgfCBXTTBfUElQRV9DVVJTT1JfTUFTSyk7Cj4gLQkJSTkxNV9X UklURShXTTBfUElQRUFfSUxLLCB2YWwgfAo+IC0JCQkgICAoKHBsYW5lX3dtIDw8IFdNMF9QSVBF X1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSkpOwo+IC0JCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0 ZXJtYXJrcyBGb3IgcGlwZSBBIC0iCj4gLQkJCSAgICAgICIgcGxhbmUgJWQsICIgImN1cnNvcjog JWRcbiIsCj4gLQkJCSAgICAgIHBsYW5lX3dtLCBjdXJzb3Jfd20pOwo+IC0JCWVuYWJsZWQgfD0g MSA8PCBQSVBFX0E7Cj4gLQl9Cj4gLQo+IC0JaWYgKGc0eF9jb21wdXRlX3dtMChkZXYsIFBJUEVf QiwKPiAtCQkJICAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJ CSAgICAmc2FuZHlicmlkZ2VfY3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCj4gLQkJCSAgICAmcGxh bmVfd20sICZjdXJzb3Jfd20pKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKFdNMF9QSVBFQl9JTEsp Owo+IC0JCXZhbCAmPSB+KFdNMF9QSVBFX1BMQU5FX01BU0sgfCBXTTBfUElQRV9DVVJTT1JfTUFT Syk7Cj4gLQkJSTkxNV9XUklURShXTTBfUElQRUJfSUxLLCB2YWwgfAo+IC0JCQkgICAoKHBsYW5l X3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSkpOwo+IC0JCURSTV9ERUJV R19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBCIC0iCj4gLQkJCSAgICAgICIgcGxhbmUg JWQsIGN1cnNvcjogJWRcbiIsCj4gLQkJCSAgICAgIHBsYW5lX3dtLCBjdXJzb3Jfd20pOwo+IC0J CWVuYWJsZWQgfD0gMSA8PCBQSVBFX0I7Cj4gLQl9Cj4gLQo+IC0JaWYgKGc0eF9jb21wdXRlX3dt MChkZXYsIFBJUEVfQywKPiAtCQkJICAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3dtX2luZm8sIGxh dGVuY3ksCj4gLQkJCSAgICAmc2FuZHlicmlkZ2VfY3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCj4g LQkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20pKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKFdN MF9QSVBFQ19JVkIpOwo+IC0JCXZhbCAmPSB+KFdNMF9QSVBFX1BMQU5FX01BU0sgfCBXTTBfUElQ RV9DVVJTT1JfTUFTSyk7Cj4gLQkJSTkxNV9XUklURShXTTBfUElQRUNfSVZCLCB2YWwgfAo+IC0J CQkgICAoKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSkpOwo+ IC0JCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBDIC0iCj4gLQkJCSAg ICAgICIgcGxhbmUgJWQsIGN1cnNvcjogJWRcbiIsCj4gLQkJCSAgICAgIHBsYW5lX3dtLCBjdXJz b3Jfd20pOwo+IC0JCWVuYWJsZWQgfD0gMSA8PCBQSVBFX0M7Cj4gLQl9Cj4gLQo+IC0JLyoKPiAt CSAqIENhbGN1bGF0ZSBhbmQgdXBkYXRlIHRoZSBzZWxmLXJlZnJlc2ggd2F0ZXJtYXJrIG9ubHkg d2hlbiBvbmUKPiAtCSAqIGRpc3BsYXkgcGxhbmUgaXMgdXNlZC4KPiAtCSAqCj4gLQkgKiBTTkIg c3VwcG9ydCAzIGxldmVscyBvZiB3YXRlcm1hcmsuCj4gLQkgKgo+IC0JICogV00xL1dNMi9XTTIg d2F0ZXJtYXJrcyBoYXZlIHRvIGJlIGVuYWJsZWQgaW4gdGhlIGFzY2VuZGluZyBvcmRlciwKPiAt CSAqIGFuZCBkaXNhYmxlZCBpbiB0aGUgZGVzY2VuZGluZyBvcmRlcgo+IC0JICoKPiAtCSAqLwo+ IC0JSTkxNV9XUklURShXTTNfTFBfSUxLLCAwKTsKPiAtCUk5MTVfV1JJVEUoV00yX0xQX0lMSywg MCk7Cj4gLQlJOTE1X1dSSVRFKFdNMV9MUF9JTEssIDApOwo+IC0KPiAtCWlmICghc2luZ2xlX3Bs YW5lX2VuYWJsZWQoZW5hYmxlZCkgfHwKPiAtCSAgICBkZXZfcHJpdi0+c3ByaXRlX3NjYWxpbmdf ZW5hYmxlZCkKPiAtCQlyZXR1cm47Cj4gLQllbmFibGVkID0gZmZzKGVuYWJsZWQpIC0gMTsKPiAt Cj4gLQkvKiBXTTEgKi8KPiAtCWlmICghaXJvbmxha2VfY29tcHV0ZV9zcndtKGRldiwgMSwgZW5h YmxlZCwKPiAtCQkJCSAgIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVsxXSAqIDUwMCwKPiAtCQkJ CSAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3Nyd21faW5mbywKPiAtCQkJCSAgICZzYW5keWJyaWRn ZV9jdXJzb3Jfc3J3bV9pbmZvLAo+IC0JCQkJICAgJmZiY193bSwgJnBsYW5lX3dtLCAmY3Vyc29y X3dtKSkKPiAtCQlyZXR1cm47Cj4gLQo+IC0JSTkxNV9XUklURShXTTFfTFBfSUxLLAo+IC0JCSAg IFdNMV9MUF9TUl9FTiB8Cj4gLQkJICAgKGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVsxXSA8PCBX TTFfTFBfTEFURU5DWV9TSElGVCkgfAo+IC0JCSAgIChmYmNfd20gPDwgV00xX0xQX0ZCQ19TSElG VCkgfAo+IC0JCSAgIChwbGFuZV93bSA8PCBXTTFfTFBfU1JfU0hJRlQpIHwKPiAtCQkgICBjdXJz b3Jfd20pOwo+IC0KPiAtCS8qIFdNMiAqLwo+IC0JaWYgKCFpcm9ubGFrZV9jb21wdXRlX3Nyd20o ZGV2LCAyLCBlbmFibGVkLAo+IC0JCQkJICAgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5WzJdICog NTAwLAo+IC0JCQkJICAgJnNhbmR5YnJpZGdlX2Rpc3BsYXlfc3J3bV9pbmZvLAo+IC0JCQkJICAg JnNhbmR5YnJpZGdlX2N1cnNvcl9zcndtX2luZm8sCj4gLQkJCQkgICAmZmJjX3dtLCAmcGxhbmVf d20sICZjdXJzb3Jfd20pKQo+IC0JCXJldHVybjsKPiAtCj4gLQlJOTE1X1dSSVRFKFdNMl9MUF9J TEssCj4gLQkJICAgV00yX0xQX0VOIHwKPiAtCQkgICAoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5 WzJdIDw8IFdNMV9MUF9MQVRFTkNZX1NISUZUKSB8Cj4gLQkJICAgKGZiY193bSA8PCBXTTFfTFBf RkJDX1NISUZUKSB8Cj4gLQkJICAgKHBsYW5lX3dtIDw8IFdNMV9MUF9TUl9TSElGVCkgfAo+IC0J CSAgIGN1cnNvcl93bSk7Cj4gLQo+IC0JLyogV00zLCBub3RlIHdlIGhhdmUgdG8gY29ycmVjdCB0 aGUgY3Vyc29yIGxhdGVuY3kgKi8KPiAtCWlmICghaXJvbmxha2VfY29tcHV0ZV9zcndtKGRldiwg MywgZW5hYmxlZCwKPiAtCQkJCSAgIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVszXSAqIDUwMCwK PiAtCQkJCSAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3Nyd21faW5mbywKPiAtCQkJCSAgICZzYW5k eWJyaWRnZV9jdXJzb3Jfc3J3bV9pbmZvLAo+IC0JCQkJICAgJmZiY193bSwgJnBsYW5lX3dtLCAm aWdub3JlX2N1cnNvcl93bSkgfHwKPiAtCSAgICAhaXJvbmxha2VfY29tcHV0ZV9zcndtKGRldiwg MywgZW5hYmxlZCwKPiAtCQkJCSAgIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVszXSAqIDUwMCwK PiAtCQkJCSAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3Nyd21faW5mbywKPiAtCQkJCSAgICZzYW5k eWJyaWRnZV9jdXJzb3Jfc3J3bV9pbmZvLAo+IC0JCQkJICAgJmlnbm9yZV9mYmNfd20sICZpZ25v cmVfcGxhbmVfd20sICZjdXJzb3Jfd20pKQo+IC0JCXJldHVybjsKPiAtCj4gLQlJOTE1X1dSSVRF KFdNM19MUF9JTEssCj4gLQkJICAgV00zX0xQX0VOIHwKPiAtCQkgICAoZGV2X3ByaXYtPndtLnBy aV9sYXRlbmN5WzNdIDw8IFdNMV9MUF9MQVRFTkNZX1NISUZUKSB8Cj4gLQkJICAgKGZiY193bSA8 PCBXTTFfTFBfRkJDX1NISUZUKSB8Cj4gLQkJICAgKHBsYW5lX3dtIDw8IFdNMV9MUF9TUl9TSElG VCkgfAo+IC0JCSAgIGN1cnNvcl93bSk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB1aW50MzJfdCBpbGtf cGlwZV9waXhlbF9yYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gQEAgLTMwNTksMTY4ICsyNTgzLDYgQEAgc3RhdGljIHZv aWQgaGFzd2VsbF91cGRhdGVfc3ByaXRlX3dtKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJ aGFzd2VsbF91cGRhdGVfd20oY3J0Yyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sCj4gLXNhbmR5 YnJpZGdlX2NvbXB1dGVfc3ByaXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFu ZSwKPiAtCQkJICAgICAgdWludDMyX3Qgc3ByaXRlX3dpZHRoLCBpbnQgcGl4ZWxfc2l6ZSwKPiAt CQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgKmRpc3BsYXksCj4g LQkJCSAgICAgIGludCBkaXNwbGF5X2xhdGVuY3lfbnMsIGludCAqc3ByaXRlX3dtKQo+IC17Cj4g LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gLQlpbnQgY2xvY2s7Cj4gLQlpbnQgZW50cmllcywg dGxiX21pc3M7Cj4gLQo+IC0JY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXYsIHBs YW5lKTsKPiAtCWlmICghaW50ZWxfY3J0Y19hY3RpdmUoY3J0YykpIHsKPiAtCQkqc3ByaXRlX3dt ID0gZGlzcGxheS0+Z3VhcmRfc2l6ZTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0J Y2xvY2sgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrOwo+IC0KPiAtCS8qIFVzZSB0aGUgc21hbGwgYnVmZmVyIG1ldGhvZCB0byBjYWxjdWxhdGUg dGhlIHNwcml0ZSB3YXRlcm1hcmsgKi8KPiAtCWVudHJpZXMgPSAoKGNsb2NrICogcGl4ZWxfc2l6 ZSAvIDEwMDApICogZGlzcGxheV9sYXRlbmN5X25zKSAvIDEwMDA7Cj4gLQl0bGJfbWlzcyA9IGRp c3BsYXktPmZpZm9fc2l6ZSpkaXNwbGF5LT5jYWNoZWxpbmVfc2l6ZSAtCj4gLQkJc3ByaXRlX3dp ZHRoICogODsKPiAtCWlmICh0bGJfbWlzcyA+IDApCj4gLQkJZW50cmllcyArPSB0bGJfbWlzczsK PiAtCWVudHJpZXMgPSBESVZfUk9VTkRfVVAoZW50cmllcywgZGlzcGxheS0+Y2FjaGVsaW5lX3Np emUpOwo+IC0JKnNwcml0ZV93bSA9IGVudHJpZXMgKyBkaXNwbGF5LT5ndWFyZF9zaXplOwo+IC0J aWYgKCpzcHJpdGVfd20gPiAoaW50KWRpc3BsYXktPm1heF93bSkKPiAtCQkqc3ByaXRlX3dtID0g ZGlzcGxheS0+bWF4X3dtOwo+IC0KPiAtCXJldHVybiB0cnVlOwo+IC19Cj4gLQo+IC1zdGF0aWMg Ym9vbAo+IC1zYW5keWJyaWRnZV9jb21wdXRlX3Nwcml0ZV9zcndtKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBwbGFuZSwKPiAtCQkJCXVpbnQzMl90IHNwcml0ZV93aWR0aCwgaW50IHBpeGVs X3NpemUsCj4gLQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyAqZGlzcGxh eSwKPiAtCQkJCWludCBsYXRlbmN5X25zLCBpbnQgKnNwcml0ZV93bSkKPiAtewo+IC0Jc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+IC0JdW5zaWduZWQgbG9uZyBsaW5lX3RpbWVfdXM7Cj4gLQlpbnQg Y2xvY2s7Cj4gLQlpbnQgbGluZV9jb3VudCwgbGluZV9zaXplOwo+IC0JaW50IHNtYWxsLCBsYXJn ZTsKPiAtCWludCBlbnRyaWVzOwo+IC0KPiAtCWlmICghbGF0ZW5jeV9ucykgewo+IC0JCSpzcHJp dGVfd20gPSAwOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQljcnRjID0gaW50ZWxf Z2V0X2NydGNfZm9yX3BsYW5lKGRldiwgcGxhbmUpOwo+IC0JY2xvY2sgPSB0b19pbnRlbF9jcnRj KGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+IC0JaWYgKCFjbG9jaykg ewo+IC0JCSpzcHJpdGVfd20gPSAwOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQls aW5lX3RpbWVfdXMgPSAoc3ByaXRlX3dpZHRoICogMTAwMCkgLyBjbG9jazsKPiAtCWlmICghbGlu ZV90aW1lX3VzKSB7Cj4gLQkJKnNwcml0ZV93bSA9IDA7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0J fQo+IC0KPiAtCWxpbmVfY291bnQgPSAobGF0ZW5jeV9ucyAvIGxpbmVfdGltZV91cyArIDEwMDAp IC8gMTAwMDsKPiAtCWxpbmVfc2l6ZSA9IHNwcml0ZV93aWR0aCAqIHBpeGVsX3NpemU7Cj4gLQo+ IC0JLyogVXNlIHRoZSBtaW5pbXVtIG9mIHRoZSBzbWFsbCBhbmQgbGFyZ2UgYnVmZmVyIG1ldGhv ZCBmb3IgcHJpbWFyeSAqLwo+IC0Jc21hbGwgPSAoKGNsb2NrICogcGl4ZWxfc2l6ZSAvIDEwMDAp ICogbGF0ZW5jeV9ucykgLyAxMDAwOwo+IC0JbGFyZ2UgPSBsaW5lX2NvdW50ICogbGluZV9zaXpl Owo+IC0KPiAtCWVudHJpZXMgPSBESVZfUk9VTkRfVVAobWluKHNtYWxsLCBsYXJnZSksIGRpc3Bs YXktPmNhY2hlbGluZV9zaXplKTsKPiAtCSpzcHJpdGVfd20gPSBlbnRyaWVzICsgZGlzcGxheS0+ Z3VhcmRfc2l6ZTsKPiAtCj4gLQlyZXR1cm4gKnNwcml0ZV93bSA+IDB4M2ZmID8gZmFsc2UgOiB0 cnVlOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBzYW5keWJyaWRnZV91cGRhdGVfc3ByaXRlX3dt KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gLQkJCQkJIHVpbnQzMl90IHNwcml0ZV93aWR0aCwgaW50IHBpeGVsX3NpemUsCj4gLQkJCQkJ IGJvb2wgZW5hYmxlZCwgYm9vbCBzY2FsZWQpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBwbGFuZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWludCBwaXBlID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLT5w aXBlOwo+IC0JaW50IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbMF0gKiAxMDA7 CS8qIEluIHVuaXQgMC4xdXMgKi8KPiAtCXUzMiB2YWw7Cj4gLQlpbnQgc3ByaXRlX3dtLCByZWc7 Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWlmICghZW5hYmxlZCkKPiAtCQlyZXR1cm47Cj4gLQo+IC0J c3dpdGNoIChwaXBlKSB7Cj4gLQljYXNlIDA6Cj4gLQkJcmVnID0gV00wX1BJUEVBX0lMSzsKPiAt CQlicmVhazsKPiAtCWNhc2UgMToKPiAtCQlyZWcgPSBXTTBfUElQRUJfSUxLOwo+IC0JCWJyZWFr Owo+IC0JY2FzZSAyOgo+IC0JCXJlZyA9IFdNMF9QSVBFQ19JVkI7Cj4gLQkJYnJlYWs7Cj4gLQlk ZWZhdWx0Ogo+IC0JCXJldHVybjsgLyogYmFkIHBpcGUgKi8KPiAtCX0KPiAtCj4gLQlyZXQgPSBz YW5keWJyaWRnZV9jb21wdXRlX3Nwcml0ZV93bShkZXYsIHBpcGUsIHNwcml0ZV93aWR0aCwgcGl4 ZWxfc2l6ZSwKPiAtCQkJCQkgICAgJnNhbmR5YnJpZGdlX2Rpc3BsYXlfd21faW5mbywKPiAtCQkJ CQkgICAgbGF0ZW5jeSwgJnNwcml0ZV93bSk7Cj4gLQlpZiAoIXJldCkgewo+IC0JCURSTV9ERUJV R19LTVMoImZhaWxlZCB0byBjb21wdXRlIHNwcml0ZSB3bSBmb3IgcGlwZSAlY1xuIiwKPiAtCQkJ ICAgICAgcGlwZV9uYW1lKHBpcGUpKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JdmFsID0g STkxNV9SRUFEKHJlZyk7Cj4gLQl2YWwgJj0gfldNMF9QSVBFX1NQUklURV9NQVNLOwo+IC0JSTkx NV9XUklURShyZWcsIHZhbCB8IChzcHJpdGVfd20gPDwgV00wX1BJUEVfU1BSSVRFX1NISUZUKSk7 Cj4gLQlEUk1fREVCVUdfS01TKCJzcHJpdGUgd2F0ZXJtYXJrcyBGb3IgcGlwZSAlYyAtICVkXG4i LCBwaXBlX25hbWUocGlwZSksIHNwcml0ZV93bSk7Cj4gLQo+IC0KPiAtCXJldCA9IHNhbmR5YnJp ZGdlX2NvbXB1dGVfc3ByaXRlX3Nyd20oZGV2LCBwaXBlLCBzcHJpdGVfd2lkdGgsCj4gLQkJCQkJ ICAgICAgcGl4ZWxfc2l6ZSwKPiAtCQkJCQkgICAgICAmc2FuZHlicmlkZ2VfZGlzcGxheV9zcndt X2luZm8sCj4gLQkJCQkJICAgICAgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5WzFdICogNTAwLAo+ IC0JCQkJCSAgICAgICZzcHJpdGVfd20pOwo+IC0JaWYgKCFyZXQpIHsKPiAtCQlEUk1fREVCVUdf S01TKCJmYWlsZWQgdG8gY29tcHV0ZSBzcHJpdGUgbHAxIHdtIG9uIHBpcGUgJWNcbiIsCj4gLQkJ CSAgICAgIHBpcGVfbmFtZShwaXBlKSk7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0JSTkxNV9XUklU RShXTTFTX0xQX0lMSywgc3ByaXRlX3dtKTsKPiAtCj4gLQkvKiBPbmx5IElWQiBoYXMgdHdvIG1v cmUgTFAgd2F0ZXJtYXJrcyBmb3Igc3ByaXRlICovCj4gLQlpZiAoIUlTX0lWWUJSSURHRShkZXYp KQo+IC0JCXJldHVybjsKPiAtCj4gLQlyZXQgPSBzYW5keWJyaWRnZV9jb21wdXRlX3Nwcml0ZV9z cndtKGRldiwgcGlwZSwgc3ByaXRlX3dpZHRoLAo+IC0JCQkJCSAgICAgIHBpeGVsX3NpemUsCj4g LQkJCQkJICAgICAgJnNhbmR5YnJpZGdlX2Rpc3BsYXlfc3J3bV9pbmZvLAo+IC0JCQkJCSAgICAg IGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVsyXSAqIDUwMCwKPiAtCQkJCQkgICAgICAmc3ByaXRl X3dtKTsKPiAtCWlmICghcmV0KSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGNvbXB1 dGUgc3ByaXRlIGxwMiB3bSBvbiBwaXBlICVjXG4iLAo+IC0JCQkgICAgICBwaXBlX25hbWUocGlw ZSkpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCUk5MTVfV1JJVEUoV00yU19MUF9JVkIsIHNwcml0 ZV93bSk7Cj4gLQo+IC0JcmV0ID0gc2FuZHlicmlkZ2VfY29tcHV0ZV9zcHJpdGVfc3J3bShkZXYs IHBpcGUsIHNwcml0ZV93aWR0aCwKPiAtCQkJCQkgICAgICBwaXhlbF9zaXplLAo+IC0JCQkJCSAg ICAgICZzYW5keWJyaWRnZV9kaXNwbGF5X3Nyd21faW5mbywKPiAtCQkJCQkgICAgICBkZXZfcHJp di0+d20uc3ByX2xhdGVuY3lbM10gKiA1MDAsCj4gLQkJCQkJICAgICAgJnNwcml0ZV93bSk7Cj4g LQlpZiAoIXJldCkgewo+IC0JCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBjb21wdXRlIHNwcml0 ZSBscDMgd20gb24gcGlwZSAlY1xuIiwKPiAtCQkJICAgICAgcGlwZV9uYW1lKHBpcGUpKTsKPiAt CQlyZXR1cm47Cj4gLQl9Cj4gLQlJOTE1X1dSSVRFKFdNM1NfTFBfSVZCLCBzcHJpdGVfd20pOwo+ IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2 Owo+IEBAIC02MDcyLDkgKzU0MzQsMTEgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAkJaWYgKElTX0dFTjUoZGV2KSkgewo+ICAJCQlpZiAoZGV2X3ByaXYt PndtLnByaV9sYXRlbmN5WzFdICYmCj4gIAkJCSAgICBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lb MV0gJiYKPiAtCQkJICAgIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVsxXSkKPiAtCQkJCWRldl9w cml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGlyb25sYWtlX3VwZGF0ZV93bTsKPiAtCQkJZWxzZSB7 Cj4gKwkJCSAgICBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbMV0pIHsKPiArCQkJCWRldl9wcml2 LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGhhc3dlbGxfdXBkYXRlX3dtOwo+ICsJCQkJZGV2X3ByaXYt PmRpc3BsYXkudXBkYXRlX3Nwcml0ZV93bSA9Cj4gKwkJCQkJaGFzd2VsbF91cGRhdGVfc3ByaXRl X3dtOwoKaXJvbmxha2Ugd291bGQgYmUgYSBiZXR0ZXIgcHJlZml4IG5vdy4KCi0tSW1yZQoKPiAr CQkJfSBlbHNlIHsKCgoKPiAgCQkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBnZXQgcHJvcGVy IGxhdGVuY3kuICIKPiAgCQkJCQkgICAgICAiRGlzYWJsZSBDeFNSXG4iKTsKPiAgCQkJCWRldl9w cml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IE5VTEw7Cj4gQEAgLTYwODQsOCArNTQ0OCw5IEBAIHZv aWQgaW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQlpZiAoZGV2X3By aXYtPndtLnByaV9sYXRlbmN5WzBdICYmCj4gIAkJCSAgICBkZXZfcHJpdi0+d20uc3ByX2xhdGVu Y3lbMF0gJiYKPiAgCQkJICAgIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVswXSkgewo+IC0JCQkJ ZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gc2FuZHlicmlkZ2VfdXBkYXRlX3dtOwo+IC0J CQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3Nwcml0ZV93bSA9IHNhbmR5YnJpZGdlX3VwZGF0 ZV9zcHJpdGVfd207Cj4gKwkJCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBoYXN3ZWxs X3VwZGF0ZV93bTsKPiArCQkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9zcHJpdGVfd20gPQo+ ICsJCQkJCWhhc3dlbGxfdXBkYXRlX3Nwcml0ZV93bTsKPiAgCQkJfSBlbHNlIHsKPiAgCQkJCURS TV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgo+ICAJ CQkJCSAgICAgICJEaXNhYmxlIEN4U1JcbiIpOwo+IEBAIC02MDk2LDggKzU0NjEsOSBAQCB2b2lk IGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJaWYgKGRldl9wcml2 LT53bS5wcmlfbGF0ZW5jeVswXSAmJgo+ICAJCQkgICAgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5 WzBdICYmCj4gIAkJCSAgICBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbMF0pIHsKPiAtCQkJCWRl dl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGl2eWJyaWRnZV91cGRhdGVfd207Cj4gLQkJCQlk ZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfc3ByaXRlX3dtID0gc2FuZHlicmlkZ2VfdXBkYXRlX3Nw cml0ZV93bTsKPiArCQkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGhhc3dlbGxfdXBk YXRlX3dtOwo+ICsJCQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3Nwcml0ZV93bSA9Cj4gKwkJ CQkJaGFzd2VsbF91cGRhdGVfc3ByaXRlX3dtOwo+ICAJCQl9IGVsc2Ugewo+ICAJCQkJRFJNX0RF QlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBsYXRlbmN5LiAiCj4gIAkJCQkJ ICAgICAgIkRpc2FibGUgQ3hTUlxuIik7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK