From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/12] drm/i915: Use the new rq->i915 field where appropriate Date: Tue, 24 Nov 2015 14:57:04 +0100 Message-ID: <20151124135704.GC17050@phenom.ffwll.local> References: <1448023432-10726-1-git-send-email-chris@chris-wilson.co.uk> <1448023432-10726-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com [74.125.82.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97BFC6E8F1 for ; Tue, 24 Nov 2015 05:57:08 -0800 (PST) Received: by wmec201 with SMTP id c201so27679228wme.1 for ; Tue, 24 Nov 2015 05:57:07 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448023432-10726-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMjAsIDIwMTUgYXQgMTI6NDM6NDJQTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEluIGEgZmV3IGZyZXF1ZW50IGNhc2VzLCBoYXZpbmcgYSBkaXJlY3QgcG9pbnRlciB0 byB0aGUgZHJtX2k5MTVfcHJpdmF0ZQo+IGZyb20gdGhlIHJlcXVlc3QgaXMgdmVyeSB1c2VmdWwu Cj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+CgpyZXEtPmk5MTUgaXMgYSBiaXQgaW5jb25zaXN0ZW50IGltbywgaTkxNV9kZXYgd291bGQg YmUgYmV0dGVyLiBBbnl3YXksIG5vdApzb21ldGhpbmcgeW91IHN0YXJ0ZWQsIGp1c3QgbWFrZXMg dGhlIGNvZGUgYSBiaXQgaGFyZGVyIHRvIHNwZWVkLXJlYWQgOy0pCgpSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDIyICsrKysrKystLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAyMyArKysrKysr KystLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YyB8ICAzICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAg fCAgOCArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAg ICB8ICAzICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAg fCAzNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCAz OSBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiBpbmRleCBlNmFjMDQ5YTQ2OTguLjVjM2QxMWQwMjBmMCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwo+IEBAIC0xMjIxLDggKzEyMjEsNyBAQCBpbnQgX19pOTE1X3dhaXRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgCQkJc3RydWN0IGludGVsX3Jw c19jbGllbnQgKnJwcykKPiAgewo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSByaW5nLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVx LT5pOTE1Owo+ICAJY29uc3QgYm9vbCBpcnFfdGVzdF9pbl9wcm9ncmVzcyA9Cj4gIAkJQUNDRVNT X09OQ0UoZGV2X3ByaXYtPmdwdV9lcnJvci50ZXN0X2lycV9yaW5ncykgJiBpbnRlbF9yaW5nX2Zs YWcocmluZyk7Cj4gIAlpbnQgc3RhdGUgPSBpbnRlcnJ1cHRpYmxlID8gVEFTS19JTlRFUlJVUFRJ QkxFIDogVEFTS19VTklOVEVSUlVQVElCTEU7Cj4gQEAgLTEzMzYsNyArMTMzNSw2IEBAIG91dDoK PiAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKPiAgCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9pOTE1 X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2Owo+ICAKPiAgCVdBUk5fT04oIXJlcSB8fCAhZmlsZSB8 fCByZXEtPmZpbGVfcHJpdik7Cj4gQEAgLTEzNDcsNyArMTM0NSw2IEBAIGludCBpOTE1X2dlbV9y ZXF1ZXN0X2FkZF90b19jbGllbnQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4g IAlpZiAocmVxLT5maWxlX3ByaXYpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IC0JZGV2X3By aXZhdGUgPSByZXEtPnJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlmaWxlX3ByaXYgPSBmaWxl LT5kcml2ZXJfcHJpdjsKPiAgCj4gIAlzcGluX2xvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7Cj4g QEAgLTE0MjUsMTggKzE0MjIsMTYgQEAgX19pOTE1X2dlbV9yZXF1ZXN0X3JldGlyZV9fdXB0byhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgaW50Cj4gIGk5MTVfd2FpdF9yZXF1 ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2Owo+ICAJ Ym9vbCBpbnRlcnJ1cHRpYmxlOwo+ICAJaW50IHJldDsKPiAgCj4gIAlCVUdfT04ocmVxID09IE5V TEwpOwo+ICAKPiAtCWRldiA9IHJlcS0+cmluZy0+ZGV2Owo+IC0JZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+ICsJZGV2X3ByaXYgPSByZXEtPmk5MTU7Cj4gIAlpbnRlcnJ1cHRpYmxlID0g ZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGU7Cj4gIAo+IC0JQlVHX09OKCFtdXRleF9pc19sb2Nr ZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gKwlCVUdfT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2 X3ByaXYtPmRldi0+c3RydWN0X211dGV4KSk7Cj4gIAo+ICAJcmV0ID0gaTkxNV9nZW1fY2hlY2tf d2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsIGludGVycnVwdGlibGUpOwo+ICAJaWYgKHJldCkK PiBAQCAtMjU2OCw3ICsyNTYzLDcgQEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAJCXJldHVybjsKPiAgCj4gIAlyaW5nID0g cmVxdWVzdC0+cmluZzsKPiAtCWRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAr CWRldl9wcml2ID0gcmVxdWVzdC0+aTkxNTsKPiAgCXJpbmdidWYgPSByZXF1ZXN0LT5yaW5nYnVm Owo+ICAKPiAgCS8qCj4gQEAgLTMxNTAsOCArMzE0NSw4IEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5 bmMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCWlmIChpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChmcm9tX3JlcSwgdHJ1ZSkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JaWYg KCFpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKHRvX2k5MTUob2JqLT5iYXNlLmRldikpKSB7Cj4g LQkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYp Owo+ICsJaWYgKCFpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGZyb21fcmVxLT5pOTE1KSkgewo+ ICsJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZnJvbV9yZXEtPmk5MTU7Cj4gIAkJ cmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdChmcm9tX3JlcSwKPiAgCQkJCQkgIGF0b21pY19yZWFk KCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfY291bnRlciksCj4gIAkJCQkJICBpOTE1LT5tbS5pbnRl cnJ1cHRpYmxlLAo+IEBAIC00NjQ4LDEzICs0NjQzLDEyIEBAIGVycjoKPiAgaW50IGk5MTVfZ2Vt X2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc2xpY2UpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsKPiAgCXUzMiByZWdfYmFzZSA9IEdFTjdfTDNMT0df QkFTRSArIChzbGljZSAqIDB4MjAwKTsKPiAgCXUzMiAqcmVtYXBfaW5mbyA9IGRldl9wcml2LT5s M19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV07Cj4gIAlpbnQgaSwgcmV0Owo+ICAKPiAtCWlmICgh SEFTX0wzX0RQRihkZXYpIHx8ICFyZW1hcF9pbmZvKQo+ICsJaWYgKCFIQVNfTDNfRFBGKGRldl9w cml2KSB8fCAhcmVtYXBfaW5mbykKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJlcSwgR0VON19MM0xPR19TSVpFIC8gNCAqIDMpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCA1NWQyOTg1YzFkYmIuLjgyYTlmNzE5N2Qz MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtNDgz LDggKzQ4Myw4IEBAIG1pX3NldF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLCB1MzIgaHdfZmxhZ3MpCj4gIAl1MzIgZmxhZ3MgPSBod19mbGFncyB8IE1JX01NX1NQQUNF X0dUVDsKPiAgCWNvbnN0IGludCBudW1fcmluZ3MgPQo+ICAJCS8qIFVzZSBhbiBleHRlbmRlZCB3 L2Egb24gaXZiKyBpZiBzaWduYWxsaW5nIGZyb20gb3RoZXIgcmluZ3MgKi8KPiAtCQlpOTE1X3Nl bWFwaG9yZV9pc19lbmFibGVkKHRvX2k5MTUocmluZy0+ZGV2KSkgPwo+IC0JCWh3ZWlnaHQzMihJ TlRFTF9JTkZPKHJpbmctPmRldiktPnJpbmdfbWFzaykgLSAxIDoKPiArCQlpOTE1X3NlbWFwaG9y ZV9pc19lbmFibGVkKHJlcS0+aTkxNSkgPwo+ICsJCWh3ZWlnaHQzMihJTlRFTF9JTkZPKHJlcS0+ aTkxNSktPnJpbmdfbWFzaykgLSAxIDoKPiAgCQkwOwo+ICAJaW50IGxlbiwgaSwgcmV0Owo+ICAK PiBAQCAtNDkzLDIxICs0OTMsMjEgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsIHUzMiBod19mbGFncykKPiAgCSAqIGV4cGxpY2l0bHksIHNvIHdlIHJl bHkgb24gdGhlIHZhbHVlIGF0IHJpbmcgaW5pdCwgc3RvcmVkIGluCj4gIAkgKiBpdGxiX2JlZm9y ZV9jdHhfc3dpdGNoLgo+ICAJICovCj4gLQlpZiAoSVNfR0VONihyaW5nLT5kZXYpKSB7Cj4gKwlp ZiAoSVNfR0VONihyZXEtPmk5MTUpKSB7Cj4gIAkJcmV0ID0gcmluZy0+Zmx1c2gocmVxLCBJOTE1 X0dFTV9HUFVfRE9NQUlOUywgMCk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAg CX0KPiAgCj4gIAkvKiBUaGVzZSBmbGFncyBhcmUgZm9yIHJlc291cmNlIHN0cmVhbWVyIG9uIEhT VysgKi8KPiAtCWlmIChJU19IQVNXRUxMKHJpbmctPmRldikgfHwgSU5URUxfSU5GTyhyaW5nLT5k ZXYpLT5nZW4gPj0gOCkKPiArCWlmIChJU19IQVNXRUxMKHJlcS0+aTkxNSkgfHwgSU5URUxfSU5G TyhyZXEtPmk5MTUpLT5nZW4gPj0gOCkKPiAgCQlmbGFncyB8PSAoSFNXX01JX1JTX1NBVkVfU1RB VEVfRU4gfCBIU1dfTUlfUlNfUkVTVE9SRV9TVEFURV9FTik7Cj4gLQllbHNlIGlmIChJTlRFTF9J TkZPKHJpbmctPmRldiktPmdlbiA8IDgpCj4gKwllbHNlIGlmIChJTlRFTF9JTkZPKHJlcS0+aTkx NSktPmdlbiA8IDgpCj4gIAkJZmxhZ3MgfD0gKE1JX1NBVkVfRVhUX1NUQVRFX0VOIHwgTUlfUkVT VE9SRV9FWFRfU1RBVEVfRU4pOwo+ICAKPiAgCj4gIAlsZW4gPSA0Owo+IC0JaWYgKElOVEVMX0lO Rk8ocmluZy0+ZGV2KS0+Z2VuID49IDcpCj4gKwlpZiAoSU5URUxfSU5GTyhyZXEtPmk5MTUpLT5n ZW4gPj0gNykKPiAgCQlsZW4gKz0gMiArIChudW1fcmluZ3MgPyA0Km51bV9yaW5ncyArIDIgOiAw KTsKPiAgCj4gIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgbGVuKTsKPiBAQCAtNTE1LDEz ICs1MTUsMTMgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsIHUzMiBod19mbGFncykKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCS8qIFdhUHJvZ3JhbU1p QXJiT25PZmZBcm91bmRNaVNldENvbnRleHQ6aXZiLHZsdixoc3csYmR3LGNodiAqLwo+IC0JaWYg KElOVEVMX0lORk8ocmluZy0+ZGV2KS0+Z2VuID49IDcpIHsKPiArCWlmIChJTlRFTF9JTkZPKHJl cS0+aTkxNSktPmdlbiA+PSA3KSB7Cj4gIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0FSQl9P Tl9PRkYgfCBNSV9BUkJfRElTQUJMRSk7Cj4gIAkJaWYgKG51bV9yaW5ncykgewo+ICAJCQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpzaWduYWxsZXI7Cj4gIAo+ICAJCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0obnVtX3JpbmdzKSk7Cj4gLQkJCWZvcl9lYWNoX3Jp bmcoc2lnbmFsbGVyLCB0b19pOTE1KHJpbmctPmRldiksIGkpIHsKPiArCQkJZm9yX2VhY2hfcmlu ZyhzaWduYWxsZXIsIHJlcS0+aTkxNSwgaSkgewo+ICAJCQkJaWYgKHNpZ25hbGxlciA9PSByaW5n KQo+ICAJCQkJCWNvbnRpbnVlOwo+ICAKPiBAQCAtNTQxLDEyICs1NDEsMTIgQEAgbWlfc2V0X2Nv bnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUzMiBod19mbGFncykKPiAg CSAqLwo+ICAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwo+ICAKPiAtCWlmIChJTlRF TF9JTkZPKHJpbmctPmRldiktPmdlbiA+PSA3KSB7Cj4gKwlpZiAoSU5URUxfSU5GTyhyZXEtPmk5 MTUpLT5nZW4gPj0gNykgewo+ICAJCWlmIChudW1fcmluZ3MpIHsKPiAgCQkJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqc2lnbmFsbGVyOwo+ICAKPiAgCQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1J X0xPQURfUkVHSVNURVJfSU1NKG51bV9yaW5ncykpOwo+IC0JCQlmb3JfZWFjaF9yaW5nKHNpZ25h bGxlciwgdG9faTkxNShyaW5nLT5kZXYpLCBpKSB7Cj4gKwkJCWZvcl9lYWNoX3Jpbmcoc2lnbmFs bGVyLCByZXEtPmk5MTUsIGkpIHsKPiAgCQkJCWlmIChzaWduYWxsZXIgPT0gcmluZykKPiAgCQkJ CQljb250aW51ZTsKPiAgCj4gQEAgLTc4NSwxMCArNzg1LDkgQEAgdW5waW5fb3V0Ogo+ICBpbnQg aTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAg ewo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAtCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4g IAo+ICAJV0FSTl9PTihpOTE1LmVuYWJsZV9leGVjbGlzdHMpOwo+IC0JV0FSTl9PTighbXV0ZXhf aXNfbG9ja2VkKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiArCVdBUk5fT04oIW11 dGV4X2lzX2xvY2tlZCgmcmVxLT5pOTE1LT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICAKPiAgCWlm IChyZXEtPmN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUgPT0gTlVMTCkgeyAvKiBXZSBoYXZl IHRoZSBmYWtlIGNvbnRleHQgKi8KPiAgCQlpZiAocmVxLT5jdHggIT0gcmluZy0+bGFzdF9jb250 ZXh0KSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGlu ZGV4IDdhYzQ2ODVlMGQzZS4uZTgxNjRiNjQ0ZTBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC0xMDY2LDcgKzEwNjYsNiBAQCB2b2lkCj4g IGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1h cywKPiAgCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICB7Cj4gLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmluZyhy ZXEpOwo+ICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRy eSh2bWEsIHZtYXMsIGV4ZWNfbGlzdCkgewo+IEBAIC0xMDkzLDcgKzEwOTIsNyBAQCBpOTE1X2dl bV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMsCj4gIAkJ aWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFKSB7Cj4gIAkJCWk5MTVf Z2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfZmVuY2VkX3JlcSwgcmVxKTsKPiAgCQkJaWYg KGVudHJ5LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfSEFTX0ZFTkNFKSB7Cj4gLQkJCQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHJpbmctPmRldik7Cj4gKwkJCQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXEtPmk5MTU7Cj4gIAkJCQlsaXN0 X21vdmVfdGFpbCgmZGV2X3ByaXYtPmZlbmNlX3JlZ3Nbb2JqLT5mZW5jZV9yZWddLmxydV9saXN0 LAo+ICAJCQkJCSAgICAgICAmZGV2X3ByaXYtPm1tLmZlbmNlX2xpc3QpOwo+ICAJCQl9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCAxMDAyMDUwNWJlNzUuLmNmYTc3YTU5YjM1MiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTMwNyw4ICszMDcsNyBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfZWxzcF93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJxMCwKPiAgewo+ICAKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBycTAtPnJp bmc7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJxMC0+aTkxNTsKPiAgCXVpbnQ2NF90IGRlc2Nb Ml07Cj4gIAo+ICAJaWYgKHJxMSkgewo+IEBAIC03ODcsNyArNzg2LDcgQEAgaW50IGludGVsX2xv Z2ljYWxfcmluZ19iZWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IG51 bV9kd29yZHMpCj4gIAlpbnQgcmV0Owo+ICAKPiAgCVdBUk5fT04ocmVxID09IE5VTEwpOwo+IC0J ZGV2X3ByaXYgPSByZXEtPnJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlkZXZfcHJpdiA9IHJl cS0+aTkxNTsKPiAgCj4gIAlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3ByaXYtPmdw dV9lcnJvciwKPiAgCQkJCSAgIGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKPiBAQCAtMTAy Nyw4ICsxMDI2LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdfd29ya2Fyb3VuZHNf ZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCWludCByZXQsIGk7Cj4g IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHJlcS0+aTkxNTsKPiAgCXN0cnVjdCBpOTE1X3dvcmthcm91bmRzICp3ID0gJmRldl9w cml2LT53b3JrYXJvdW5kczsKPiAgCj4gIAlpZiAoV0FSTl9PTl9PTkNFKHctPmNvdW50ID09IDAp KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGFlZjllYjFjNmMzMy4uM2Q1NGY3NmFk MTc2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTc0MTAsOCArNzQxMCw3IEBA IHN0YXRpYyB2b2lkIF9faW50ZWxfcnBzX2Jvb3N0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBib29zdC0+cmVxOwo+ ICAKPiAgCWlmICghaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxLCB0cnVlKSkKPiAtCQlp bnRlbF9ycHNfYm9vc3QodG9faTkxNShyZXEtPnJpbmctPmRldiksIE5VTEwsCj4gLQkJCSAgICAg ICAJcmVxLT5lbWl0dGVkX2ppZmZpZXMpOwo+ICsJCWludGVsX3Jwc19ib29zdChyZXEtPmk5MTUs IE5VTEwsIHJlcS0+ZW1pdHRlZF9qaWZmaWVzKTsKPiAgCj4gIAlpOTE1X2dlbV9yZXF1ZXN0X3Vu cmVmZXJlbmNlX191bmxvY2tlZChyZXEpOwo+ICAJa2ZyZWUoYm9vc3QpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCA4ZDhiYTcxN2EwMjIuLjlmYmU3MzBh YWU0NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAt MTIzLDcgKzEyMyw2IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCj4gIAkJICAgICAgIHUzMglmbHVzaF9kb21haW5zKQo+ICB7Cj4gIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiAgCXUzMiBjbWQ7Cj4gIAlpbnQgcmV0Owo+ICAKPiBA QCAtMTYyLDcgKzE2MSw3IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAkJY21kIHw9IE1JX0VYRV9GTFVTSDsKPiAgCj4gIAlpZiAo aW52YWxpZGF0ZV9kb21haW5zICYgSTkxNV9HRU1fRE9NQUlOX0NPTU1BTkQgJiYKPiAtCSAgICAo SVNfRzRYKGRldikgfHwgSVNfR0VONShkZXYpKSkKPiArCSAgICAoSVNfRzRYKHJlcS0+aTkxNSkg fHwgSVNfR0VONShyZXEtPmk5MTUpKSkKPiAgCQljbWQgfD0gTUlfSU5WQUxJREFURV9JU1A7Cj4g IAo+ICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+IEBAIC03MTUsOCArNzE0LDcg QEAgc3RhdGljIGludCBpbnRlbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIHsKPiAgCWludCByZXQsIGk7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IHJpbmctPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXEt Pmk5MTU7Cj4gIAlzdHJ1Y3QgaTkxNV93b3JrYXJvdW5kcyAqdyA9ICZkZXZfcHJpdi0+d29ya2Fy b3VuZHM7Cj4gIAo+ICAJaWYgKFdBUk5fT05fT05DRSh3LT5jb3VudCA9PSAwKSkKPiBAQCAtMTE4 NywxMiArMTE4NSwxMSBAQCBzdGF0aWMgaW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4gIHsKPiAgI2RlZmluZSBNQk9YX1VQREFU RV9EV09SRFMgOAo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyID0gc2lnbmFs bGVyX3JlcS0+cmluZzsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzaWduYWxsZXItPmRl djsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzaWduYWxsZXJfcmVx LT5pOTE1Owo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqd2FpdGVyOwo+ICAJaW50IGksIHJl dCwgbnVtX3JpbmdzOwo+ICAKPiAtCW51bV9yaW5ncyA9IGh3ZWlnaHQzMihJTlRFTF9JTkZPKGRl diktPnJpbmdfbWFzayk7Cj4gKwludW1fcmluZ3MgPSBod2VpZ2h0MzIoSU5URUxfSU5GTyhkZXZf cHJpdiktPnJpbmdfbWFzayk7Cj4gIAludW1fZHdvcmRzICs9IChudW1fcmluZ3MtMSkgKiBNQk9Y X1VQREFURV9EV09SRFM7Cj4gICN1bmRlZiBNQk9YX1VQREFURV9EV09SRFMKPiAgCj4gQEAgLTEy MjgsMTIgKzEyMjUsMTEgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICB7Cj4gICNkZWZpbmUgTUJPWF9VUERB VEVfRFdPUkRTIDYKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpZ25hbGxlciA9IHNpZ25h bGxlcl9yZXEtPnJpbmc7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc2lnbmFsbGVyLT5k ZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc2lnbmFsbGVyX3Jl cS0+aTkxNTsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKndhaXRlcjsKPiAgCWludCBpLCBy ZXQsIG51bV9yaW5nczsKPiAgCj4gLQludW1fcmluZ3MgPSBod2VpZ2h0MzIoSU5URUxfSU5GTyhk ZXYpLT5yaW5nX21hc2spOwo+ICsJbnVtX3JpbmdzID0gaHdlaWdodDMyKElOVEVMX0lORk8oZGV2 X3ByaXYpLT5yaW5nX21hc2spOwo+ICAJbnVtX2R3b3JkcyArPSAobnVtX3JpbmdzLTEpICogTUJP WF9VUERBVEVfRFdPUkRTOwo+ICAjdW5kZWYgTUJPWF9VUERBVEVfRFdPUkRTCj4gIAo+IEBAIC0x MjY2LDEzICsxMjYyLDEyIEBAIHN0YXRpYyBpbnQgZ2VuNl9zaWduYWwoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAJCSAgICAgICB1bnNpZ25lZCBpbnQgbnVt X2R3b3JkcykKPiAgewo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyID0gc2ln bmFsbGVyX3JlcS0+cmluZzsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzaWduYWxsZXIt PmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzaWduYWxsZXJf cmVxLT5pOTE1Owo+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdXNlbGVzczsKPiAgCWludCBp LCByZXQsIG51bV9yaW5nczsKPiAgCj4gICNkZWZpbmUgTUJPWF9VUERBVEVfRFdPUkRTIDMKPiAt CW51bV9yaW5ncyA9IGh3ZWlnaHQzMihJTlRFTF9JTkZPKGRldiktPnJpbmdfbWFzayk7Cj4gKwlu dW1fcmluZ3MgPSBod2VpZ2h0MzIoSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzayk7Cj4g IAludW1fZHdvcmRzICs9IHJvdW5kX3VwKChudW1fcmluZ3MtMSkgKiBNQk9YX1VQREFURV9EV09S RFMsIDIpOwo+ICAjdW5kZWYgTUJPWF9VUERBVEVfRFdPUkRTCj4gIAo+IEBAIC0xMzQ5LDcgKzEz NDQsNyBAQCBnZW44X3Jpbmdfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKndhaXRl cl9yZXEsCj4gIAkgICAgICAgdTMyIHNlcW5vKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICp3YWl0ZXIgPSB3YWl0ZXJfcmVxLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gd2FpdGVyLT5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gd2FpdGVyX3JlcS0+aTkxNTsKPiAgCWludCByZXQ7Cj4g IAo+ICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbih3YWl0ZXJfcmVxLCA0KTsKPiBAQCAtMjIwMSw4 ICsyMTk2LDggQEAgaW50IGludGVsX3JpbmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+ICAKPiAgCS8qIE1ha2Ugc3VyZSB3ZSBkbyBub3QgdHJpZ2dlciBhbnkgcmV0aXJlcyAq Lwo+ICAJcmV0dXJuIF9faTkxNV93YWl0X3JlcXVlc3QocmVxLAo+IC0JCQkJICAgYXRvbWljX3Jl YWQoJnRvX2k5MTUocmluZy0+ZGV2KS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+IC0JCQkJ ICAgdG9faTkxNShyaW5nLT5kZXYpLT5tbS5pbnRlcnJ1cHRpYmxlLAo+ICsJCQkJICAgYXRvbWlj X3JlYWQoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAo+ICsJCQkJICAgcmVx LT5pOTE1LT5tbS5pbnRlcnJ1cHRpYmxlLAo+ICAJCQkJICAgTlVMTCwgTlVMTCk7Cj4gIH0KPiAg Cj4gQEAgLTIzMzAsNyArMjMyNSw3IEBAIGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAKPiAgCVdBUk5fT04ocmVxID09IE5VTEwpOwo+ICAJ cmluZyA9IHJlcS0+cmluZzsKPiAtCWRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsK PiArCWRldl9wcml2ID0gcmVxLT5pOTE1Owo+ICAKPiAgCXJldCA9IGk5MTVfZ2VtX2NoZWNrX3dl ZGdlKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLAo+ICAJCQkJICAgZGV2X3ByaXYtPm1tLmludGVycnVw dGlibGUpOwo+IEBAIC0yNDY3LDcgKzI0NjIsNyBAQCBnZW44X3JpbmdfZGlzcGF0Y2hfZXhlY2J1 ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgCQkJICAgICAgdW5zaWdu ZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcg PSByZXEtPnJpbmc7Cj4gLQlib29sIHBwZ3R0ID0gVVNFU19QUEdUVChyaW5nLT5kZXYpICYmCj4g Kwlib29sIHBwZ3R0ID0gVVNFU19QUEdUVChyZXEtPmk5MTUpICYmCj4gIAkJCSEoZGlzcGF0Y2hf ZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAtMjU0 MSw3ICsyNTM2LDYgQEAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsCj4gIAkJCSAgIHUzMiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+ICAJdWludDMyX3QgY21kOwo+ICAJaW50 IHJldDsKPiAgCj4gQEAgLTI1NTAsNyArMjU0NCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2Zs dXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAJCXJldHVybiByZXQ7Cj4g IAo+ICAJY21kID0gTUlfRkxVU0hfRFc7Cj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OCkKPiArCWlmIChJTlRFTF9JTkZPKHJlcS0+aTkxNSktPmdlbiA+PSA4KQo+ICAJCWNtZCArPSAx Owo+ICAKPiAgCS8qIFdlIGFsd2F5cyByZXF1aXJlIGEgY29tbWFuZCBiYXJyaWVyIHNvIHRoYXQg c3Vic2VxdWVudAo+IEBAIC0yNTcwLDcgKzI1NjQsNyBAQCBzdGF0aWMgaW50IGdlbjZfcmluZ19m bHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgCQljbWQgfD0gTUlfSU5W QUxJREFURV9UTEI7Cj4gIAlpbnRlbF9yaW5nX2VtaXQocmluZywgY21kKTsKPiAgCWludGVsX3Jp bmdfZW1pdChyaW5nLCBJOTE1X0dFTV9IV1NfU0NSQVRDSF9BRERSIHwgTUlfRkxVU0hfRFdfVVNF X0dUVCk7Cj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewo+ICsJaWYgKElOVEVM X0lORk8ocmVxLT5pOTE1KS0+Z2VuID49IDgpIHsKPiAgCQlpbnRlbF9yaW5nX2VtaXQocmluZywg MCk7IC8qIHVwcGVyIGFkZHIgKi8KPiAgCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7IC8qIHZh bHVlICovCj4gIAl9IGVsc2UgIHsKPiAtLSAKPiAyLjYuMgo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK