From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH 09/60] drm/bridge: Add connector-related bridge operations and data Date: Fri, 12 Jul 2019 11:01:38 +0200 Message-ID: <7797e98a-9587-b501-9869-9393b6fc6bd2@samsung.com> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-6-laurent.pinchart@ideasonboard.com> <1f98e5f0-d513-d3f2-420d-80e0e0c3c71b@samsung.com> <20190711073548.GD15868@phenom.ffwll.local> <1d48919c-e876-152c-0f05-64eb4c62fcaf@samsung.com> <20190711131816.GM15868@phenom.ffwll.local> <6bbb03e6-0228-a3ea-f1bb-8ed6e52114d7@samsung.com> <20190711155035.GO15868@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id C060B6E314 for ; Fri, 12 Jul 2019 09:01:38 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190712090136euoutp01236c07c517884ccb4f624f95cb3f4b6f~wnV3RssWt2152421524euoutp01t for ; Fri, 12 Jul 2019 09:01:36 +0000 (GMT) In-Reply-To: <20190711155035.GO15868@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gMTEuMDcuMjAxOSAxNzo1MCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIEp1bCAx MSwgMjAxOSBhdCAwNToxMjoyNlBNICswMjAwLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+PiBPbiAx MS4wNy4yMDE5IDE1OjE4LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gVGh1LCBKdWwgMTEs IDIwMTkgYXQgMDI6NDE6MDFQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPj4+PiBPbiAx MS4wNy4yMDE5IDA5OjM1LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+PiBPbiBXZWQsIEp1bCAx MCwgMjAxOSBhdCAwMjoxMjoxNFBNICswMjAwLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+Pj4+Pj4g SGkgTGF1cmVudCwKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gSSBsaWtlIHRoZSBhcHByb2FjaCwgY3Vy cmVudCBwcmFjdGljZSB3aGVuIGFsbW9zdCBldmVyeSBicmlkZ2Ugc2hvdWxkCj4+Pj4+PiBvcHRp b25hbGx5IGltcGxlbWVudCBjb25uZWN0b3IsIG9yIGFsdGVybmF0aXZlbHkgZG93bnN0cmVhbSBi cmlkZ2Ugb3IKPj4+Pj4+IHBhbmVsIGlzIHZlcnkgcGFpbmZ1bC4KPj4+Pj4gWWVhaCBJIHRoaW5r IHRoaXMgbG9va3MgbW9zdGx5IHJlYXNvbmFibGUuIFNvbWUgYXBpIGRlc2lnbiBjb21tZW50cyBv biB0b3AKPj4+Pj4gb2YgQW5kcnplaicsIHdpdGggdGhlIGZhaXIgd2FybmluZyB0aGF0IEkgZGlk bid0IGJvdGhlciB0byByZWFkIHVwIG9uIGhvdwo+Pj4+PiBpdCdzIGFsbCB1c2VkIGluIHRoZSBl bmQuIEkgcHJvYmFibHkgc2hvdWxkIGdvIGFuZCBkbyB0aGF0LCBhdCBsZWFzdCB0bwo+Pj4+PiBn ZXQgYSBmZWVsaW5nIGZvciB3aGF0IHlvdXIgaHBkX2NiIHVzdWFsbHkgZG9lcy4KPj4+Pj4KPj4+ Pj4+IE1vcmUgY29tbWVudHMgaW5saW5lZC4KPj4+Pj4+Cj4+Pj4+PiBPbiAwNy4wNy4yMDE5IDIw OjE4LCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+Pj4+Pj4+IFRvIHN1cHBvcnQgaW1wbGVtZW50 YXRpb24gb2YgRFJNIGNvbm5lY3RvcnMgb24gdG9wIG9mIERSTSBicmlkZ2VzCj4+Pj4+Pj4gaW5z dGVhZCBvZiBieSBicmlkZ2VzLCB0aGUgZHJtX2JyaWRnZSBuZWVkcyB0byBleHBvc2UgbmV3IG9w ZXJhdGlvbnMgYW5kCj4+Pj4+Pj4gZGF0YToKPj4+Pj4+Pgo+Pj4+Pj4+IC0gT3V0cHV0IGRldGVj dGlvbiwgaG90LXBsdWcgbm90aWZpY2F0aW9uLCBtb2RlIHJldHJpZXZhbCBhbmQgRURJRAo+Pj4+ Pj4+ICAgcmV0cmlldmFsIG9wZXJhdGlvbnMKPj4+Pj4+PiAtIEJpdG1hc2sgb2Ygc3VwcG9ydGVk IG9wZXJhdGlvbnMKPj4+Pj4+IFdoeSBkbyB3ZSBuZWVkIHRoZXNlIGJpdG1hc2sgYXQgYWxsPyBX aHkgY2Fubm90IHdlIHJlbHkgb24gcHJlc2VuY2Ugb2YKPj4+Pj4+IG9wZXJhdGlvbidzIGNhbGxi YWNrPwo+Pj4+PiBZZWFoIGFsc28gbm90IGEgaHVnZSBmYW4gb2YgdGhlc2UgYml0bWFza3MuIFNt ZWxscyBsaWtlCj4+Pj4+IERSSVZFUl9HRU18RFJJVkVSX01PREVTRVQsIGFuZCBJIHBlcnNvbmFs bHkgcmVhbGx5IGhhdGUgdGhvc2UuIEVhc3kgdG8KPj4+Pj4gYWRkLCBnZW5lcmFsbHkgZ29vZCBl eGN1c2UgdG8gbm90IGhhdmUgdG8gdGhpbmsgdGhyb3VnaCB0aGUgZGVzaWduIGJldHdlZW4KPj4+ Pj4gZGlmZmVyZW50IHBhcnRzIG9mIGRyaXZlcnMgLSAianVzdCIgYWRkIGFub3RoZXIgZmxhZy4K Pj4+Pj4+PiAtIEJyaWRnZSBvdXRwdXQgdHlwZQo+Pj4+Pj4+Cj4+Pj4+Pj4gQWRkIGFuZCBkb2N1 bWVudCB0aGVzZS4KPj4+Pj4+Pgo+Pj4+Pj4+IFRocmVlIG5ldyBicmlkZ2UgaGVscGVyIGZ1bmN0 aW9ucyBhcmUgYWxzbyBhZGRlZCB0byBoYW5kbGUgaG90IHBsdWcKPj4+Pj4+PiBub3RpZmljYXRp b24gaW4gYSB3YXkgdGhhdCBpcyBhcyB0cmFuc3BhcmVudCBhcyBwb3NzaWJsZSBmb3IgdGhlCj4+ Pj4+Pj4gYnJpZGdlcy4KPj4+Pj4+IERvY3VtZW50YXRpb24gb2YgbmV3IG9wc2VzIGRvZXMgbm90 IGV4cGxhaW4gaG93IGl0IHNob3VsZCBjb29wZXJhdGUgd2l0aAo+Pj4+Pj4gYnJpZGdlIGNoYWlu aW5nLCBJIHN1cHBvc2UgdGhleSBzaG91bGQgYmUgY2hhaW5lZCBleHBsaWNpdGx5LCBhbSBJCj4+ Pj4+PiByaWdodD8gTW9yZSBjb21tZW50cyBhYm91dCBpdCBsYXRlci4KPj4+Pj4+Cj4+Pj4+Pgo+ Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRA aWRlYXNvbmJvYXJkLmNvbT4KPj4+Pj4+PiAtLS0KPj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9icmlkZ2UuYyB8ICA5MiArKysrKysrKysrKysrKysrKysrCj4+Pj4+Pj4gIGluY2x1ZGUvZHJt L2RybV9icmlkZ2UuaCAgICAgfCAxNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPj4+Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAyNjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Pj4+Pj4+Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJp ZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4+Pj4+Pj4gaW5kZXggNTE5NTc3 ZjM2M2UzLi4zYzJhMjU1ZGY3YWYgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9icmlkZ2UuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMK Pj4+Pj4+PiBAQCAtNzAsNiArNzAsOCBAQCBzdGF0aWMgTElTVF9IRUFEKGJyaWRnZV9saXN0KTsK Pj4+Pj4+PiAgICovCj4+Pj4+Pj4gIHZvaWQgZHJtX2JyaWRnZV9hZGQoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPj4+Pj4+PiAgewo+Pj4+Pj4+ICsJbXV0ZXhfaW5pdCgmYnJpZGdlLT5ocGRf bXV0ZXgpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAgCW11dGV4X2xvY2soJmJyaWRnZV9sb2NrKTsKPj4+ Pj4+PiAgCWxpc3RfYWRkX3RhaWwoJmJyaWRnZS0+bGlzdCwgJmJyaWRnZV9saXN0KTsKPj4+Pj4+ PiAgCW11dGV4X3VubG9jaygmYnJpZGdlX2xvY2spOwo+Pj4+Pj4+IEBAIC04Niw2ICs4OCw4IEBA IHZvaWQgZHJtX2JyaWRnZV9yZW1vdmUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPj4+Pj4+ PiAgCW11dGV4X2xvY2soJmJyaWRnZV9sb2NrKTsKPj4+Pj4+PiAgCWxpc3RfZGVsX2luaXQoJmJy aWRnZS0+bGlzdCk7Cj4+Pj4+Pj4gIAltdXRleF91bmxvY2soJmJyaWRnZV9sb2NrKTsKPj4+Pj4+ PiArCj4+Pj4+Pj4gKwltdXRleF9kZXN0cm95KCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4+Pj4+Pj4g IH0KPj4+Pj4+PiAgRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX3JlbW92ZSk7Cj4+Pj4+Pj4gIAo+ Pj4+Pj4+IEBAIC00NjMsNiArNDY3LDk0IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxl KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+Pj4+Pj4gIH0KPj4+Pj4+PiAgRVhQT1JUX1NZ TUJPTChkcm1fYXRvbWljX2JyaWRnZV9lbmFibGUpOwo+Pj4+Pj4+ICAKPj4+Pj4+PiArLyoqCj4+ Pj4+Pj4gKyAqIGRybV9icmlkZ2VfaHBkX2VuYWJsZSAtIGVuYWJsZSBob3QgcGx1ZyBkZXRlY3Rp b24gZm9yIHRoZSBicmlkZ2UKPj4+Pj4+PiArICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3Ry dWN0dXJlCj4+Pj4+Pj4gKyAqIEBjYjogaG90LXBsdWcgZGV0ZWN0aW9uIGNhbGxiYWNrCj4+Pj4+ Pj4gKyAqIEBkYXRhOiBkYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgaG90LXBsdWcgZGV0ZWN0aW9u IGNhbGxiYWNrCj4+Pj4+Pj4gKyAqCj4+Pj4+Pj4gKyAqIENhbGwgJmRybV9icmlkZ2VfZnVuY3Mu aHBkX2VuYWJsZSBhbmQgcmVnaXN0ZXIgdGhlIGdpdmVuIEBjYiBhbmQgQGRhdGEgYXMKPj4+Pj4+ PiArICogaG90IHBsdWcgbm90aWZpY2F0aW9uIGNhbGxiYWNrLiBGcm9tIG5vdyBvbiB0aGUgQGNi IHdpbGwgYmUgY2FsbGVkIHdpdGgKPj4+Pj4+PiArICogQGRhdGEgd2hlbiBhbiBvdXRwdXQgc3Rh dHVzIGNoYW5nZSBpcyBkZXRlY3RlZCBieSB0aGUgYnJpZGdlLCB1bnRpbCBob3QgcGx1Zwo+Pj4+ Pj4+ICsgKiBub3RpZmljYXRpb24gZ2V0cyBkaXNhYmxlZCB3aXRoIGRybV9icmlkZ2VfaHBkX2Rp c2FibGUoKS4KPj4+Pj4+PiArICoKPj4+Pj4+PiArICogSG90IHBsdWcgZGV0ZWN0aW9uIGlzIHN1 cHBvcnRlZCBvbmx5IGlmIHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGlzIHNldCBpbgo+Pj4+ Pj4+ICsgKiBicmlkZ2UtPm9wcy4gVGhpcyBmdW5jdGlvbiBzaGFsbCBub3QgYmUgY2FsbGVkIHdo ZW4gdGhlIGZsYWcgaXMgbm90IHNldC4KPj4+Pj4+PiArICoKPj4+Pj4+PiArICogT25seSBvbmUg aG90IHBsdWcgZGV0ZWN0aW9uIGNhbGxiYWNrIGNhbiBiZSByZWdpc3RlcmVkIGF0IGEgdGltZSwg aXQgaXMgYW4KPj4+Pj4+PiArICogZXJyb3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gaG90 IHBsdWcgZGV0ZWN0aW9uIGlzIGFscmVhZHkgZW5hYmxlZCBmb3IKPj4+Pj4+PiArICogdGhlIGJy aWRnZS4KPj4+Pj4+PiArICovCj4+Pj4+PiBUbyBzaW1wbGlmeSBhcmNoaXRlY3R1cmUgbWF5YmUg d291bGQgYmUgYmV0dGVyIHRvIGVuYWJsZSBocGQganVzdCBvbgo+Pj4+Pj4gYnJpZGdlIGF0dGFj aDoKPj4+Pj4+Cj4+Pj4+PiBicmlkZ2UtPmhwZF9jYiA9IGNiOwo+Pj4+Pj4KPj4+Pj4+IGJyaWRn ZS0+aHBkX2RhdGEgPSBkYXRhOwo+Pj4+Pj4KPj4+Pj4+IHJldCA9IGRybV9icmlkZ2VfYXR0YWNo KC4uLik7Cj4+Pj4+IFllYWggSSBsaWtlIHRoaXMgbW9yZS4gVGhlIG90aGVyIHByb2JsZW0gaGVy ZSBpcywgd2hhdCBpZiB5b3UgbmVlZCBtb3JlCj4+Pj4+IHRoYW4gMSBjYWxsYmFjayByZWdpc3Rl cnMgb24gdGhlIHNhbWUgYnJpZGdlIGhkcCBzaWduYWw/Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+PiBUaGlz IHdheSB3ZSBjb3VsZCBhdm9pZCBhZGRpbmcgbmV3IGNhbGxiYWNrcyBocGRfKGVuYWJsZXxkaXNh YmxlKQo+Pj4+Pj4gd2l0aG91dCBiaWcgc2FjcmlmaWNlcy4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4g T25lIG1vcmUgdGhpbmc6IEhQRCBpbiBEaXNwbGF5UG9ydC9IRE1JIGJlc2lkZSBzaWduYWxsaW5n IHBsdWcvdW5wbHVnLAo+Pj4+Pj4gbm90aWZpZXMgYWJvdXQgc2luayBzdGF0dXMgY2hhbmdlLCBo b3cgaXQgdHJhbnNsYXRlcyB0byB0aGlzIGNiPwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gK3ZvaWQg ZHJtX2JyaWRnZV9ocGRfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+Pj4+Pj4g KwkJCSAgIHZvaWQgKCpjYikodm9pZCAqZGF0YSwKPj4+Pj4+PiArCQkJCSAgICAgIGVudW0gZHJt X2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzKSwKPj4+Pj4+PiArCQkJICAgdm9pZCAqZGF0YSkKPj4+ Pj4+PiArewo+Pj4+Pj4+ICsJaWYgKCFicmlkZ2UgfHwgIWJyaWRnZS0+ZnVuY3MtPmhwZF9lbmFi bGUpCj4+Pj4+Pj4gKwkJcmV0dXJuOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArCW11dGV4X2xvY2soJmJy aWRnZS0+aHBkX211dGV4KTsKPj4+Pj4+PiArCj4+Pj4+Pj4gKwlpZiAoV0FSTihicmlkZ2UtPmhw ZF9jYiwgIkhvdCBwbHVnIGRldGVjdGlvbiBhbHJlYWR5IGVuYWJsZWRcbiIpKQo+Pj4+Pj4+ICsJ CWdvdG8gdW5sb2NrOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArCWJyaWRnZS0+aHBkX2NiID0gY2I7Cj4+ Pj4+Pj4gKwlicmlkZ2UtPmhwZF9kYXRhID0gZGF0YTsKPj4+Pj4+PiArCj4+Pj4+Pj4gKwlicmlk Z2UtPmZ1bmNzLT5ocGRfZW5hYmxlKGJyaWRnZSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICt1bmxvY2s6 Cj4+Pj4+Pj4gKwltdXRleF91bmxvY2soJmJyaWRnZS0+aHBkX211dGV4KTsKPj4+Pj4+PiArfQo+ Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQTChkcm1fYnJpZGdlX2hwZF9lbmFibGUpOwo+Pj4+Pj4+ ICsKPj4+Pj4+PiArLyoqCj4+Pj4+Pj4gKyAqIGRybV9icmlkZ2VfaHBkX2Rpc2FibGUgLSBkaXNh YmxlIGhvdCBwbHVnIGRldGVjdGlvbiBmb3IgdGhlIGJyaWRnZQo+Pj4+Pj4+ICsgKiBAYnJpZGdl OiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPj4+Pj4+PiArICoKPj4+Pj4+PiArICogQ2FsbCAm ZHJtX2JyaWRnZV9mdW5jcy5ocGRfZGlzYWJsZSBhbmQgdW5yZWdpc3RlciB0aGUgaG90IHBsdWcg ZGV0ZWN0aW9uCj4+Pj4+Pj4gKyAqIGNhbGxiYWNrIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRo IGRybV9icmlkZ2VfaHBkX2VuYWJsZSgpLiBPbmNlIHRoaXMKPj4+Pj4+PiArICogZnVuY3Rpb24g cmV0dXJucyB0aGUgY2FsbGJhY2sgd2lsbCBub3QgYmUgY2FsbGVkIGJ5IHRoZSBicmlkZ2Ugd2hl biBhbgo+Pj4+Pj4+ICsgKiBvdXRwdXQgc3RhdHVzIGNoYW5nZSBvY2N1cnMuCj4+Pj4+Pj4gKyAq Cj4+Pj4+Pj4gKyAqIEhvdCBwbHVnIGRldGVjdGlvbiBpcyBzdXBwb3J0ZWQgb25seSBpZiB0aGUg RFJNX0JSSURHRV9PUF9IUEQgZmxhZyBpcyBzZXQgaW4KPj4+Pj4+PiArICogYnJpZGdlLT5vcHMu IFRoaXMgZnVuY3Rpb24gc2hhbGwgbm90IGJlIGNhbGxlZCB3aGVuIHRoZSBmbGFnIGlzIG5vdCBz ZXQuCj4+Pj4+Pj4gKyAqLwo+Pj4+Pj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX2Rpc2FibGUoc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPj4+Pj4+PiArewo+Pj4+Pj4+ICsJaWYgKCFicmlkZ2Ug fHwgIWJyaWRnZS0+ZnVuY3MtPmhwZF9kaXNhYmxlKQo+Pj4+Pj4+ICsJCXJldHVybjsKPj4+Pj4+ PiArCj4+Pj4+Pj4gKwltdXRleF9sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4+Pj4+Pj4gKwli cmlkZ2UtPmZ1bmNzLT5ocGRfZGlzYWJsZShicmlkZ2UpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArCWJy aWRnZS0+aHBkX2NiID0gTlVMTDsKPj4+Pj4+PiArCWJyaWRnZS0+aHBkX2RhdGEgPSBOVUxMOwo+ Pj4+Pj4+ICsJbXV0ZXhfdW5sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4+Pj4+Pj4gK30KPj4+ Pj4+PiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2JyaWRnZV9ocGRfZGlzYWJsZSk7Cj4+Pj4+Pj4g Kwo+Pj4+Pj4+ICsvKioKPj4+Pj4+PiArICogZHJtX2JyaWRnZV9ocGRfbm90aWZ5IC0gbm90aWZ5 IGhvdCBwbHVnIGRldGVjdGlvbiBldmVudHMKPj4+Pj4+PiArICogQGJyaWRnZTogYnJpZGdlIGNv bnRyb2wgc3RydWN0dXJlCj4+Pj4+Pj4gKyAqIEBzdGF0dXM6IG91dHB1dCBjb25uZWN0aW9uIHN0 YXR1cwo+Pj4+Pj4+ICsgKgo+Pj4+Pj4+ICsgKiBCcmlkZ2UgZHJpdmVycyBzaGFsbCBjYWxsIHRo aXMgZnVuY3Rpb24gdG8gcmVwb3J0IGhvdCBwbHVnIGV2ZW50cyB3aGVuIHRoZXkKPj4+Pj4+PiAr ICogZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSBvdXRwdXQgc3RhdHVzLCB3aGVuIGhvdCBwbHVnIGRl dGVjdGlvbiBoYXMgYmVlbgo+Pj4+Pj4+ICsgKiBlbmFibGVkIGJ5IHRoZSAmZHJtX2JyaWRnZV9m dW5jcy5ocGRfZW5hYmxlIGNhbGxiYWNrLgo+Pj4+Pj4+ICsgKgo+Pj4+Pj4+ICsgKiBUaGlzIGZ1 bmN0aW9uIHNoYWxsIGJlIGNhbGxlZCBpbiBhIGNvbnRleHQgdGhhdCBjYW4gc2xlZXAuCj4+Pj4+ Pj4gKyAqLwo+Pj4+Pj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+Pj4+Pj4+ICsJCQkgICBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0 YXR1cykKPj4+Pj4+PiArewo+Pj4+Pj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdlLT5ocGRfbXV0ZXgp Owo+Pj4+Pj4+ICsJaWYgKGJyaWRnZS0+aHBkX2NiKQo+Pj4+Pj4+ICsJCWJyaWRnZS0+aHBkX2Ni KGJyaWRnZS0+aHBkX2RhdGEsIHN0YXR1cyk7Cj4+Pj4+IFNvIHRoaXMgaXNuJ3QgcXVpdGUgd2hh dCBJIGhhZCBpbiBtaW5kLiBJbnN0ZWFkIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4+Pj4+Cj4+Pj4+ IAkvKiBpdGVyYXRlcyBvdmVyIGFsbCBicmlkZ2VzIGluIHRoZSBjaGFpbiBjb250YWluaW5nIEBi cmlkZ2UgKi8KPj4+Pj4gCWZvcl9lYWNoX2JyaWRnZSh0bXBfYnJpZGdlLCBicmlkZ2UpIHsKPj4+ Pj4gCQlpZiAodG1wX2JyaWRnZSA9PSBicmlkZ2UpCj4+Pj4+IAkJCWNvbnRpbnVlOwo+Pj4+PiAJ CWlmIChicmlkZ2UtPmhwZF9ub3RpZnkpOwo+Pj4+PiAJCQlicmlkZ2UtPmhwZF9ub3RpZnkodG1w X2JyaWRnZSwgYnJpZGdlLCBzdGF0dXMpOwo+Pj4+PiAJfQo+Pj4+Pgo+Pj4+PiAJZW5jb2RlciA9 IGVuY29kZXJfZm9yX2JyaWRnZShicmlkZ2UpOwo+Pj4+PiAJaWYgKGVuY29kZXItPmhlbHBlcl9w cml2YXRlLT5icmlkZ2VfaHBkX25vdGlmeSkKPj4+Pj4gCQllbmNvZGVyLT5oZWxwZXJfcHJpdmF0 ZS0+YnJpZGdlX2hwZF9ub3RpZnkoZW5jb2RlciwgYnJpZGdlLCBzdGF0dXMpOwo+Pj4+Pgo+Pj4+ PiAJZGV2ID0gYnJpZGdlLT5kZXYKPj4+Pj4gCWlmIChkZXYtPm1vZGVfY29uZmlnLmhlbHBlcl9w cml2YXRlLT5icmlkZ2VfaHBkX25vdGlmeSkKPj4+Pj4gCQlkZXYtPm1vZGVfY29uZmlnLmhlbHBl cl9wcml2YXRlLT5icmlkZ2VfaHBkX25vdGlmeShkZXYsIGJyaWRnZSwgc3RhdHVzKQo+Pj4+Pgo+ Pj4+PiBObyByZWdpc3RlciBjYWxsYmFjayBuZWVkZWQsIG5vIGxvY2tpbmcgbmVlZGVkLCBldmVy eW9uZSBnZXRzIGV4YWN0bHkgdGhlCj4+Pj4+IGhwZCB0aGV5IHdhbnQvbmVlZC4KPj4+PiBBcyBJ IHVuZGVyc3RhbmQgeW91IHdhbnQgdG8gbm90aWZ5IGV2ZXJ5IG1lbWJlciBvZiB0aGUgcGlwZWxp bmUuCj4+Pj4KPj4+PiBJIHRoaW5rIGl0IHNob3VsZCBiZSBlbm91Z2ggdG8gbm90aWZ5IG9ubHkg dGhlIHNvdXJjZSwgYW5kIHRoZW4gc291cmNlCj4+Pj4gc2hvdWxkIGRlY2lkZSBpZi93aGVuIHRo ZSBocGQgc2hvdWxkIGJlIHByb3BhZ2F0ZWQgdXBzdHJlYW0uCj4+Pj4KPj4+PiBJdCBsb29rcyBt b3JlIGdlbmVyaWMgZm9yIG1lLgo+Pj4gSSdtIG5vdCBwYXJzaW5nIC4uLiBkbyB5b3UgdGhpbmsg bXkgaWRlYSBpcyBtb3JlIGdlbmVyaWMgYW5kIHVzZWZ1bCwgb3IKPj4+IHRoZSBvbmUgZnJvbSBM YXVyZW50PyBLaW5kYSBjb25mdXNlZCBoZXJlLgo+Pgo+PiBSZWdhcmRpbmcgZ2VuZXJhbCBpZGVh Ogo+Pgo+PiAxLiBMYXVyZW50J3MgYXBwcm9hY2ggaXMgdG8gbm90aWZ5IG9ubHkgY29uc3VtZXIs IEkgZ3Vlc3MgdXN1YWxseSB2aWRlbwo+PiBzb3VyY2UuCj4+Cj4+IDIuIFlvdXIgaXMgdG8gbm90 aWZ5IGFsbCBvdGhlciBicmlkZ2VzIGFuZCBlbmNvZGVyLgo+Pgo+Pgo+PiBBbmQgSSBwcmVmZXIg MXN0IGFwcHJvYWNoLCB3aHk6Cj4+Cj4+IC0gdGhlIHNvdXJjZSBjYW4gZGVjaWRlIGlmL3doZW4g YW5kIHRvIHdobyBwcm9wYWdhdGUgdGhlIHNpZ25hbCwKPj4KPj4gLSBpcyBtb3JlIGdlbmVyaWMs IGZvciBleGFtcGxlIGlmIGJyaWRnZSBzZW5kIHNpZ25hbCB0byB0d28KPj4gbW9uaXRvcnMvcGFu ZWxzLCBpdCBjYW4gZGVsYXkgaHBkIHByb3BhZ2F0aW9uIHRpbGwgYm90aCBzaW5rcyBhcmUgcHJl c2VudCwKPiBXaXRoIExhdXJlbnQncyBhcHByb2FjaCB0aGUgYnJpZGdlIGNhbm5vdCBzZW5kIHRo ZSBocGQgdG8gbW9yZSB0aGFuIG9uZQo+IGNvbnN1bWVyLiBUaGVyZSdzIG9ubHkgMSBjYWxsYmFj ay4gU28geW91J3JlIGV4YW1wbGUgZG9lc24ndCB3b3JrLgoKCklmIHRoZXJlIHdpbGwgYmUgdHdv IGNvbnN1bWVycywgdGhlcmUgd2lsbCBiZSB0d28gYnJpZGdlIGF0dGFjaG1lbnRzLAp0aHVzIHRo ZXJlIHdpbGwgYmUgdHdvIG5vdGlmaWNhdGlvbnMsIGl0IHNob3VsZCB3b3JrLgoKCj4KPj4gLSBp dCByZXNlbWJsZXMgaGFyZHdhcmUgd2lyZXMgOikKPiBUaGlzIGlzbid0IGZvciB0aGUgaHcgd2ly ZXMgYWZhaXVpLiBUaGUgaHcgaHBkIHRlcm1pbmF0ZXMgaW4gdGhlIHNvdXJjZQo+IGJyaWRnZSwg d2hpY2ggdGhlbiBjYWxscyBkcm1fYnJpZGdlX2hwZF9ub3RpZnkoKSB0byBpbmZvcm0gYW55b25l IGVsc2UKPiBpbnRlcmVzdGVkIGluIHRoYXQgaHBkIHNpbmdhbC4gVGhpcyBpbmNsdWRlczoKPiAt IE90aGVyIGJyaWRnZXMsIGUuZy4gaWYgdGhleSBwcm92aWRlIENFQyBzdXBwb3J0Lgo+IC0gT3Ro ZXIgYnJpZGdlcywgbWF5YmUgdGhleSBuZWVkIHRvIHJlLXJ1biB0aGUgSERDUCBzdGF0ZSBlbmdp bmUKPiAtIE92ZXJhbGwgZHJpdmVyLCBzbyBpdCBjYW4gdXBkYXRlIHRoZSBtb2Rlcy9jb25uZWN0 b3Igc3RhdHVzIGFuZCBzZW5kIHRoZQo+ICAgdWV2ZW50IHRvIHRoZSBkcml2ZXIuCj4gLSBPdmVy YWxsIGRpc3BsYXkgcGlwZWxpbmUgZm9yIHRoaXMgc3BlY2lmaWMgYnJpZGdlLCBtYXliZSB5b3Ug bmVlZCB0bwo+ICAgc2h1dCBkb3duL3JlLWVuYWJsZSB0aGUgcGlwZSBiZWNhdXNlICRyZWFzb25z Lgo+ICAKPiBUaGF0J3MgYXQgbGVhc3QgbXkgdW5kZXJzdGFuZGluZyBmcm9tIGxvdHMgb2YgY2hh dHMgd2l0aCBMYXVyZW50IGFib3V0Cj4gd2hhdCBoZSB3YW50cyB0byBkbyBoZXJlLgoKCkkgZG8g bm90IGtub3cgdGhlIGZ1bGwgcGljdHVyZSwgYnV0IHRoZSBzb2x1dGlvbiB3aGVyZSBwYXJ0aWN1 bGFyIGJyaWRnZQpub3RpZmllcyBldmVyeXRoaW5nIHVuY29uZGl0aW9uYWxseSBzZWVtcyB0byBt ZSBtdWNoIGxlc3MgZmxleGlibGUuCgpJZiBIUEQgc2lnbmFscyBpcyByZWNlaXZlZCBieSB0aGUg Y29uc3VtZXIsIGlmIHRoZXJlIGFyZSBubyBvYnN0YWNsZXMgaXQKY2FuIHByb3BhZ2F0ZSBpdCBm dXJ0aGVyLCB1cHN0cmVhbSBicmlkZ2UvZW5jb2RlciBvciB0byBkcm0gY29yZSAtIGl0CndpbGwg bWltaWMgeW91ciBzY2VuYXJpby4KCkJ1dCB0aGVyZSBhcmUgYWxzbyBvdGhlciBzY2VuYXJpb3Mg d2hlcmUgYnJpZGdlIGRvZXMgbm90IHdhbnQgdG8KcHJvcGFnYXRlIHNpZ25hbCwgYmVjYXVzZSBm b3IgZXhhbXBsZToKCi0gaXQgd2FudHMgdG8gd2FpdCBmb3Igb3RoZXIgc2lua3MgdG8gd2FrZSB1 cCwKCi0gaXQgcHJvcGFnYXRlcyBIUEQgc2lnbmFsIHZpYSBoYXJkd2FyZSB3aXJlLAoKLSBmaXJz dCBpdCB3YW50cyB0byB2ZXJpZnkgaWYgdGhlIHNpbmsgaXMgdmFsaWQvY29tcGF0aWJsZS9hdXRo b3JpemVkCmRldmljZS4KCgpJbiBnZW5lcmFsIEhQRCBpcyBpbnB1dCBzaWduYWwgZm9yIG5vdGlm eSBvZiBzdGF0ZSBjaGFuZ2VzIG9uIHBhcnRpY3VsYXIKYnVzLCBpbiBjYXNlIG9mIHR5cGljYWwg dmlkZW8gYnJpZGdlIG9uIGl0cyBvdXRwdXQgdmlkZW8gYnVzLgoKSW4gY2FzZSBvZiBicmlkZ2Vz IHRoZXkgaGF2ZSBhbHNvIGlucHV0IHZpZGVvIGJ1c2VzLCBhbmQgdGhleSBjYW4gc2VuZApIUEQg c2lnbmFsIHZpYSB0aGlzIGJ1cywgYnV0IHRoaXMgaXMgaW5kZWVkIGRpZmZlcmVudCBIUEQgc2ln bmFsLCBldmVuCmlmIGZvciBtb3N0IGNhc2VzIHRoZXkgbG9va3Mgc2ltaWxhci4KCgo+Cj4+IEFu ZCByZWdhcmRpbmcgaW1wbGVtZW50YXRpb246Cj4+Cj4+IDEuIExhdXJlbnQgcHJvcG9zZXMgdG8g cmVnaXN0ZXIgY2FsbGJhY2sgZHJtX2JyaWRnZV9ocGRfZW5hYmxlLgo+Pgo+PiAyLiBZb3UgcHJv cG9zZSB0byBhZGQgb3BzIGhwZF9ub3RpZnkgaW4gYnJpZGdlcyBhbmQgZW5jb2RlcnMuCj4+Cj4+ Cj4+IFlvdXIgcHJvcG9zaXRpb24gaXMgbW9yZSBzdHJhaWdodGZvcndhcmQsIGJ1dCBpZiB3ZSB3 YW50IHRvIG5vdGlmeSBvbmx5Cj4+IHNvdXJjZSB3ZSBzaG91bGQgbG9jYXRlIGl0IGJ5IHBhcnNp bmcgbm90aWZpY2F0aW9uIGNoYWluICh3aGF0IGFib3V0Cj4+IHVuY2hhaW5lZCBicmlkZ2VzKSwg b3Igc3RvcmUgcG9pbnRlciBzb21ld2hlcmUgZHVyaW5nIGF0dGFjaG1lbnQuCj4+Cj4+IEl0IHN0 aWxsIGxlYXZlcyB1cyB3aXRoIHRoaXMgdWdseSBkdWFsaXNtIC0gc291cmNlIGlzIGVuY29kZXIg b3IgYnJpZGdlLAo+PiBzaW1pbGFybHkgdG8gc2luayBhcyBicmlkZ2Ugb3IgcGFuZWwsIGJ1dCBm aXhpbmcgaXQgY2FuIGJlIGRvbmUgbGF0ZXIuCj4gVWggSSB0aGluayB3ZSdyZSBub3QgdGFsa2lu ZyBhYm91dCB0aGUgc2FtZSB0aGluZyByZWFsbHkuIE15IHVuZGVyc3RhbmRpbmcKPiBpcyB0aGF0 IHRoaXMgY2FsbGJhY2sgaXMgaWYgc29tZW9uZSAob3V0c2lkZSBvZiB0aGlzIGJyaWRnZSkgaXMg aW50ZXJlc3RlZAo+IGluIGEgaHBkIHNpZ25hbCBfZnJvbV8gdGhpcyBicmlkZ2UuIFdoaWNoIG1l YW5zIHlvdSBjYW4gb25seSBldmVyIGhhdmUgMQo+IGxpc3RlbmVyLgoKCkRvIHdlIGhhdmUgcmVh bCBsaWZlIGV4YW1wbGVzPwoKSSB3YW50IHRvIGRpc3Rpbmd1aXNoIHR3byBzaXR1YXRpb25zOgoK LSBhbm90aGVyIGRldmljZSB3YW50cyB0byBrbm93IGlmIGlucHV0IGJ1cyBvZiB0aGUgYnJpZGdl IGhhcyBjaGFuZ2VkIHN0YXRlLAoKLSBhbm90aGVyIGRldmljZSB3YW50cyB0byBrbm93IGlmIG91 dHB1dCBidXMgb2YgdGhlIGJyaWRnZSBoYXMgY2hhbmdlZApzdGF0ZS4KCgpSZWdhcmRzCgpBbmRy emVqCgoKPgo+IFlvdSBzZWVtIHRvIGhhdmUgc29tZSBvdGhlciBpZGVhIGhlcmUuCj4gLURhbmll bAo+Cj4+Cj4+IFJlZ2FyZHMKPj4KPj4gQW5kcnplago+Pgo+Pgo+Pj4gLURhbmllbAo+Pj4KPj4+ PiBSZWdhcmRzCj4+Pj4KPj4+PiBBbmRyemVqCj4+Pj4KPj4+Pgo+Pj4+Pj4+ICsJbXV0ZXhfdW5s b2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArRVhQT1JUX1NZTUJP TF9HUEwoZHJtX2JyaWRnZV9ocGRfbm90aWZ5KTsKPj4+Pj4+PiArCj4+Pj4+Pj4gICNpZmRlZiBD T05GSUdfT0YKPj4+Pj4+PiAgLyoqCj4+Pj4+Pj4gICAqIG9mX2RybV9maW5kX2JyaWRnZSAtIGZp bmQgdGhlIGJyaWRnZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZXZpY2Ugbm9kZSBpbgo+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggYi9pbmNsdWRlL2RybS9kcm1f YnJpZGdlLmgKPj4+Pj4+PiBpbmRleCAwOGRjMTVmOTNkZWQuLmI5NDQ1YWE1YjFlZiAxMDA2NDQK Pj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPj4+Pj4+PiArKysgYi9pbmNs dWRlL2RybS9kcm1fYnJpZGdlLmgKPj4+Pj4+PiBAQCAtMjMsOCArMjMsOSBAQAo+Pj4+Pj4+ICAj aWZuZGVmIF9fRFJNX0JSSURHRV9IX18KPj4+Pj4+PiAgI2RlZmluZSBfX0RSTV9CUklER0VfSF9f Cj4+Pj4+Pj4gIAo+Pj4+Pj4+IC0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgo+Pj4+Pj4+ICAjaW5j bHVkZSA8bGludXgvY3R5cGUuaD4KPj4+Pj4+PiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPj4+ Pj4+PiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Cj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJt X21vZGVfb2JqZWN0Lmg+Cj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4+Pj4+ Pj4gIAo+Pj4+Pj4+IEBAIC0zMzQsNiArMzM1LDExMCBAQCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5j cyB7Cj4+Pj4+Pj4gIAkgKi8KPj4+Pj4+PiAgCXZvaWQgKCphdG9taWNfcG9zdF9kaXNhYmxlKShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+Pj4+Pj4+ICAJCQkJICAgIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsJLyoqCj4+Pj4+Pj4gKwkgKiBA ZGV0ZWN0Ogo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIENoZWNrIGlmIGFueXRoaW5nIGlzIGF0 dGFjaGVkIHRvIHRoZSBicmlkZ2Ugb3V0cHV0Lgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIFRo aXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwsIGlmIG5vdCBpbXBsZW1lbnRlZCB0aGUgYnJpZGdlIHdp bGwgYmUKPj4+Pj4+PiArCSAqIGNvbnNpZGVyZWQgYXMgYWx3YXlzIGhhdmluZyBhIGNvbXBvbmVu dCBhdHRhY2hlZCB0byBpdHMgb3V0cHV0Lgo+Pj4+Pj4+ICsJICogQnJpZGdlcyB0aGF0IGltcGxl bWVudCB0aGlzIGNhbGxiYWNrIHNoYWxsIHNldCB0aGUKPj4+Pj4+PiArCSAqIERSTV9CUklER0Vf T1BfREVURUNUIGZsYWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPj4+Pj4+PiArCSAqCj4+ Pj4+Pj4gKwkgKiBSRVRVUk5TOgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIGRybV9jb25uZWN0 b3Jfc3RhdHVzIGluZGljYXRpbmcgdGhlIGJyaWRnZSBvdXRwdXQgc3RhdHVzLgo+Pj4+Pj4+ICsJ ICovCj4+Pj4+Pj4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzICgqZGV0ZWN0KShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gKwkvKioKPj4+Pj4+PiArCSAq IEBnZXRfbW9kZXM6Cj4+Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJICogRmlsbCBhbGwgbW9kZXMgY3Vy cmVudGx5IHZhbGlkIGZvciB0aGUgc2luayBpbnRvIHRoZSAmZHJtX2Nvbm5lY3Rvcgo+Pj4+Pj4+ ICsJICogd2l0aCBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4+Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJ ICogVGhlIEBnZXRfbW9kZXMgY2FsbGJhY2sgaXMgbW9zdGx5IGludGVuZGVkIHRvIHN1cHBvcnQg bm9uLXByb2JhYmxlCj4+Pj4+Pj4gKwkgKiBkaXNwbGF5cyBzdWNoIGFzIG1hbnkgZml4ZWQgcGFu ZWxzLiBCcmlkZ2VzIHRoYXQgc3VwcG9ydCByZWFkaW5nCj4+Pj4+Pj4gKwkgKiBFRElEIHNoYWxs IGxlYXZlIEBnZXRfbW9kZXMgdW5pbXBsZW1lbnRlZCBhbmQgaW1wbGVtZW50IHRoZQo+Pj4+Pj4+ ICsJICogJmRybV9icmlkZ2VfZnVuY3MtPmdldF9lZGlkIGNhbGxiYWNrIGluc3RlYWQuCj4+Pj4+ Pj4gKwkgKgo+Pj4+Pj4+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4gQnJpZGdlcyB0 aGF0IGltcGxlbWVudCBpdCBzaGFsbCBzZXQgdGhlCj4+Pj4+Pj4gKwkgKiBEUk1fQlJJREdFX09Q X01PREVTIGZsYWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPj4+Pj4+PiArCSAqCj4+Pj4+ Pj4gKwkgKiBSRVRVUk5TOgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIFRoZSBudW1iZXIgb2Yg bW9kZXMgYWRkZWQgYnkgY2FsbGluZyBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4+Pj4+Pj4gKwkg Ki8KPj4+Pj4+PiArCWludCAoKmdldF9tb2Rlcykoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwK Pj4+Pj4+PiArCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Pj4+Pj4+ICsK Pj4+Pj4+PiArCS8qKgo+Pj4+Pj4+ICsJICogQGdldF9lZGlkOgo+Pj4+Pj4+ICsJICoKPj4+Pj4+ PiArCSAqIFJlYWQgYW5kIHBhcnNlIHRoZSBFRElEIGRhdGEgb2YgdGhlIGNvbm5lY3RlZCBkaXNw bGF5Lgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIFRoZSBAZ2V0X2VkaWQgY2FsbGJhY2sgaXMg dGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIG1vZGUKPj4+Pj4+PiArCSAqIGluZm9ybWF0 aW9uIGZvciBhIGRpc3BsYXkgY29ubmVjdGVkIHRvIHRoZSBicmlkZ2Ugb3V0cHV0LiBCcmlkZ2Vz Cj4+Pj4+Pj4gKwkgKiB0aGF0IHN1cHBvcnQgcmVhZGluZCBFRElEIHNoYWxsIGltcGxlbWVudCB0 aGlzIGNhbGxiYWNrIGFuZCBsZWF2ZQo+Pj4+Pj4+ICsJICogdGhlIEBnZXRfbW9kZXMgY2FsbGJh Y2sgdW5pbXBsZW1lbnRlZC4KPj4+Pj4+PiArCSAqCj4+Pj4+Pj4gKwkgKiBUaGUgY2FsbGVyIG9m IHRoaXMgb3BlcmF0aW9uIHNoYWxsIGZpcnN0IHZlcmlmeSB0aGUgb3V0cHV0Cj4+Pj4+Pj4gKwkg KiBjb25uZWN0aW9uIHN0YXR1cyBhbmQgcmVmcmFpbiBmcm9tIHJlYWRpbmcgRURJRCBmcm9tIGEg ZGlzY29ubmVjdGVkCj4+Pj4+Pj4gKwkgKiBvdXRwdXQuCj4+Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJ ICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4gQnJpZGdlcyB0aGF0IGltcGxlbWVudCBpdCBz aGFsbCBzZXQgdGhlCj4+Pj4+Pj4gKwkgKiBEUk1fQlJJREdFX09QX0VESUQgZmxhZyBpbiB0aGVp ciAmZHJtX2JyaWRnZS0+b3BzLgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIFJFVFVSTlM6Cj4+ Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJICogQW4gZWRpZCBzdHJ1Y3R1cmUgbmV3bHkgYWxsb2NhdGVk IHdpdGgga21hbGxvYygpIChvciBzaW1pbGFyKSBvbgo+Pj4+Pj4+ICsJICogc3VjY2Vzcywgb3Ig TlVMTCBvdGhlcndpc2UuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcKPj4+ Pj4+PiArCSAqIHRoZSByZXR1cm5lZCBlZGlkIHN0cnVjdHVyZSB3aXRoIGtmcmVlKCkuCj4+Pj4+ Pj4gKwkgKi8KPj4+Pj4+PiArCXN0cnVjdCBlZGlkICooKmdldF9lZGlkKShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+Pj4+Pj4+ICsJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpOwo+Pj4+Pj4gSXQgb3ZlcmxhcHMgd2l0aCBnZXRfbW9kZXMsIEkgZ3Vlc3MgcHJlc2VuY2Ug b2Ygb25lIG9wcyBzaG91bGQgZGlzYWxsb3cKPj4+Pj4+IHByZXNlbmNlIG9mIGFub3RoZXIgb25l Pwo+Pj4+Pj4KPj4+Pj4+IEkgYW0gbm90IHJlYWxseSBjb252aW5jZWQgd2UgbmVlZCB0aGlzIG9w IGF0IGFsbCwgY2Fubm90IHdlIGp1c3QgYXNzaWduCj4+Pj4+PiBzb21lIGhlbHBlciBmdW5jdGlv biB0byAuZ2V0X21vZGVzIGNiLCB3aGljaCB3aWxsIGRvIHRoZSBzYW1lPwo+Pj4+PiBQbGFuIEIp OiBkaXRjaCAtPmdldF9lZGlkLCByZXF1aXJlIHRoYXQgdGhlIGRyaXZlciBoYXMgLT5nZXRfbW9k ZXMgaW4gdGhhdAo+Pj4+PiBjYXNlLCBhbmQgcmVxdWlyZSB0aGF0IGlmIGl0IGhhcyBhbiBlZGlk IGl0IG11c3QgZmlsbCBvdXQgY29ubmVjdG9yLT5pbmZvCj4+Pj4+IGFuZCBjb25uZWN0b3ItPmVk aWQgY29ycmVjdGx5Lgo+Pj4+Pgo+Pj4+PiBCdHcgaWYgYSBocGQgaGFwcGVucywgd2hvJ3MgcmVz cG9uaWJsZSBmb3IgbWFraW5nIHN1cmUgdGhlIGVkaWQvbW9kZSBsaXN0Cj4+Pj4+IGluIHRoZSBj b25uZWN0b3IgaXMgdXAtdG8tZGF0ZT8gV2l0aCB5b3VyIGN1cnJlbnQgY2FsbGJhY2sgZGVzaWdu IHRoYXQncwo+Pj4+PiB1cCB0byB0aGUgY2FsbGJhY2ssIHdoaWNoIGRvZXNuJ3QgZmVlbCBncmVh dC4gTWF5YmUgIGRybV9icmlkZ2VfaHBkX25vdGlmeQo+Pj4+PiBzaG91bGQgZ3VhcmFudGVlIHRo YXQgaXQnbGwgZmlyc3Qgd2FsayB0aGUgY29ubmVjdG9ycyB0byB1cGRhdGUgc3RhdHVzIGFuZAo+ Pj4+PiBlZGlkL21vZGUgbGlzdCBmb3IgdGhlIGZpbmFsIGRybV9jb25uZWN0b3IuIEFuZCB0aGVu IGluc3RlYWQgb2YganVzdAo+Pj4+PiBwYXNzaW5nIHRoZSBzaW1wbGUgInN0YXR1cyIsIGl0J2xs IHBhc3MgdGhlIGNvbm5lY3Rvciwgd2l0aCBldmVyeXRoaW5nCj4+Pj4+IGNvcnJlY3RseSB1cGRh dGVkLgo+Pj4+Pgo+Pj4+PiBPdGhlcndpc2UgZXZlcnlvbmUgaW50ZXJlc3RlZCBpbiB0aGF0IGhw ZCBzaWduYWwgd2lsbCBnbyBhbmQgcmUtZmV0Y2ggdGhlCj4+Pj4+IGVkaWQsIHdoaWNoIGlzIG5v dCBzbyBhd2Vzb21lIDotKQo+Pj4+PiAtRGFuaWVsCj4+Pj4+Cj4+Pj4+PiBSZWdhcmRzCj4+Pj4+ Pgo+Pj4+Pj4gQW5kcnplago+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsJLyoqCj4+ Pj4+Pj4gKwkgKiBAbG9zdF9ob3RwbHVnOgo+Pj4+Pj4+ICsJICoKPj4+Pj4+PiArCSAqIE5vdGlm eSB0aGUgYnJpZGdlIG9mIGRpc3BsYXkgZGlzY29ubmVjdGlvbi4KPj4+Pj4+PiArCSAqCj4+Pj4+ Pj4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLCBpdCBtYXkgYmUgaW1wbGVtZW50ZWQg YnkgYnJpZGdlcyB0aGF0Cj4+Pj4+Pj4gKwkgKiBuZWVkIHRvIGJlIG5vdGlmaWVkIG9mIGRpc3Bs YXkgZGlzY29ubmVjdGlvbiBmb3IgaW50ZXJuYWwgcmVhc29ucy4KPj4+Pj4+PiArCSAqIE9uZSB1 c2UgY2FzZSBpcyB0byByZXNldCB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgQ0VDIGNvbnRyb2xsZXJz IGZvcgo+Pj4+Pj4+ICsJICogSERNSSBicmlkZ2VzLgo+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4gKwl2 b2lkICgqbG9zdF9ob3RwbHVnKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+Pj4+PiAr Cj4+Pj4+Pj4gKwkvKioKPj4+Pj4+PiArCSAqIEBocGRfZW5hYmxlOgo+Pj4+Pj4+ICsJICoKPj4+ Pj4+PiArCSAqIEVuYWJsZSBob3QgcGx1ZyBkZXRlY3Rpb24uIEZyb20gbm93IG9uIHRoZSBicmlk Z2Ugc2hhbGwgY2FsbAo+Pj4+Pj4+ICsJICogZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCkgZWFjaCB0 aW1lIGEgY2hhbmdlIGlzIGRldGVjdGVkIGluIHRoZSBvdXRwdXQKPj4+Pj4+PiArCSAqIGNvbm5l Y3Rpb24gc3RhdHVzLCB1bnRpbCBob3QgcGx1ZyBkZXRlY3Rpb24gZ2V0cyBkaXNhYmxlZCB3aXRo Cj4+Pj4+Pj4gKwkgKiBAaHBkX2Rpc2FibGUuCj4+Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJICogVGhp cyBjYWxsYmFjayBpcyBvcHRpb25hbCBhbmQgc2hhbGwgb25seSBiZSBpbXBsZW1lbnRlZCBieSBi cmlkZ2VzCj4+Pj4+Pj4gKwkgKiB0aGF0IHN1cHBvcnQgaG90LXBsdWcgbm90aWZpY2F0aW9uIHdp dGhvdXQgcG9sbGluZy4gQnJpZGdlcyB0aGF0Cj4+Pj4+Pj4gKwkgKiBpbXBsZW1lbnQgaXQgc2hh bGwgYWxzbyBpbXBsZW1lbnQgdGhlIEBocGRfZGlzYWJsZSBjYWxsYmFjayBhbmQgc2V0Cj4+Pj4+ Pj4gKwkgKiB0aGUgRFJNX0JSSURHRV9PUF9IUEQgZmxhZyBpbiB0aGVpciAmZHJtX2JyaWRnZS0+ b3BzLgo+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4gKwl2b2lkICgqaHBkX2VuYWJsZSkoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsJLyoqCj4+Pj4+Pj4gKwkgKiBA aHBkX2Rpc2FibGU6Cj4+Pj4+Pj4gKwkgKgo+Pj4+Pj4+ICsJICogRGlzYWJsZSBob3QgcGx1ZyBk ZXRlY3Rpb24uIE9uY2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBicmlkZ2UKPj4+Pj4+PiAr CSAqIHNoYWxsIG5vdCBjYWxsIGRybV9icmlkZ2VfaHBkX25vdGlmeSgpIHdoZW4gYSBjaGFuZ2Ug aW4gdGhlIG91dHB1dAo+Pj4+Pj4+ICsJICogY29ubmVjdGlvbiBzdGF0dXMgb2NjdXJzLgo+Pj4+ Pj4+ICsJICoKPj4+Pj4+PiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwgYW5kIHNoYWxs IG9ubHkgYmUgaW1wbGVtZW50ZWQgYnkgYnJpZGdlcwo+Pj4+Pj4+ICsJICogdGhhdCBzdXBwb3J0 IGhvdC1wbHVnIG5vdGlmaWNhdGlvbiB3aXRob3V0IHBvbGxpbmcuIEJyaWRnZXMgdGhhdAo+Pj4+ Pj4+ICsJICogaW1wbGVtZW50IGl0IHNoYWxsIGFsc28gaW1wbGVtZW50IHRoZSBAaHBkX2VuYWJs ZSBjYWxsYmFjayBhbmQgc2V0Cj4+Pj4+Pj4gKwkgKiB0aGUgRFJNX0JSSURHRV9PUF9IUEQgZmxh ZyBpbiB0aGVpciAmZHJtX2JyaWRnZS0+b3BzLgo+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4gKwl2b2lk ICgqaHBkX2Rpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+Pj4+Pj4+ICB9Owo+ Pj4+Pj4+ICAKPj4+Pj4+PiAgLyoqCj4+Pj4+Pj4gQEAgLTM3Miw2ICs0NzcsMzggQEAgc3RydWN0 IGRybV9icmlkZ2VfdGltaW5ncyB7Cj4+Pj4+Pj4gIAlib29sIGR1YWxfbGluazsKPj4+Pj4+PiAg fTsKPj4+Pj4+PiAgCj4+Pj4+Pj4gKy8qKgo+Pj4+Pj4+ICsgKiBlbnVtIGRybV9icmlkZ2Vfb3Bz IC0gQml0bWFzayBvZiBvcGVyYXRpb25zIHN1cHBvcnRlZCBieSB0aGUgYnJpZGdlCj4+Pj4+Pj4g KyAqLwo+Pj4+Pj4+ICtlbnVtIGRybV9icmlkZ2Vfb3BzIHsKPj4+Pj4+PiArCS8qKgo+Pj4+Pj4+ ICsJICogQERSTV9CUklER0VfT1BfREVURUNUOiBUaGUgYnJpZGdlIGNhbiBkZXRlY3QgZGlzcGxh eXMgY29ubmVjdGVkIHRvCj4+Pj4+Pj4gKwkgKiBpdHMgb3V0cHV0LiBCcmlkZ2VzIHRoYXQgc2V0 IHRoaXMgZmxhZyBzaGFsbCBpbXBsZW1lbnQgdGhlCj4+Pj4+Pj4gKwkgKiAmZHJtX2JyaWRnZV9m dW5jcy0+ZGV0ZWN0IGNhbGxiYWNrLgo+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4gKwlEUk1fQlJJREdF X09QX0RFVEVDVCA9IEJJVCgwKSwKPj4+Pj4+PiArCS8qKgo+Pj4+Pj4+ICsJICogQERSTV9CUklE R0VfT1BfRURJRDogVGhlIGJyaWRnZSBjYW4gcmV0cmlldmUgdGhlIEVESUQgb2YgdGhlIGRpc3Bs YXkKPj4+Pj4+PiArCSAqIGNvbm5lY3RlZCB0byBpdHMgb3V0cHV0LiBCcmlkZ2VzIHRoYXQgc2V0 IHRoaXMgZmxhZyBzaGFsbCBpbXBsZW1lbnQKPj4+Pj4+PiArCSAqIHRoZSAmZHJtX2JyaWRnZV9m dW5jcy0+Z2V0X2VkaWQgY2FsbGJhY2suCj4+Pj4+Pj4gKwkgKi8KPj4+Pj4+PiArCURSTV9CUklE R0VfT1BfRURJRCA9IEJJVCgxKSwKPj4+Pj4+PiArCS8qKgo+Pj4+Pj4+ICsJICogQERSTV9CUklE R0VfT1BfSFBEOiBUaGUgYnJpZGdlIGNhbiBkZXRlY3QgaG90LXBsdWcgYW5kIGhvdC11bnBsdWcK Pj4+Pj4+PiArCSAqIHdpdGhvdXQgcmVxdWlyaW5nIHBvbGxpbmcuIEJyaWRnZXMgdGhhdCBzZXQg dGhpcyBmbGFnIHNoYWxsCj4+Pj4+Pj4gKwkgKiBpbXBsZW1lbnQgdGhlICZkcm1fYnJpZGdlX2Z1 bmNzLT5ocGRfZW5hYmxlIGFuZAo+Pj4+Pj4+ICsJICogJmRybV9icmlkZ2VfZnVuY3MtPmRpc2Fi bGVfaHBkX2NiIGNhbGxiYWNrcy4KPj4+Pj4+PiArCSAqLwo+Pj4+Pj4+ICsJRFJNX0JSSURHRV9P UF9IUEQgPSBCSVQoMiksCj4+Pj4+Pj4gKwkvKioKPj4+Pj4+PiArCSAqIEBEUk1fQlJJREdFX09Q X01PREVTOiBUaGUgYnJpZGdlIGNhbiByZXRyaWV2aW5nIHRoZSBtb2RlcyBzdXBwb3J0ZWQKPj4+ Pj4+PiArCSAqIGJ5IHRoZSBkaXNwbGF5IGF0IGl0cyBvdXRwdXQuIFRoaXMgZG9lcyBub3QgaW5j bHVkZSByZWFkaW5kIEVESUQKPj4+Pj4+PiArCSAqIHdoaWNoIGlzIHNlcGFyYXRlbHkgY292ZXJl ZCBieSBARFJNX0JSSURHRV9PUF9FRElELiBCcmlkZ2VzIHRoYXQgc2V0Cj4+Pj4+Pj4gKwkgKiB0 aGlzIGZsYWcgc2hhbGwgaW1wbGVtZW50IHRoZSAmZHJtX2JyaWRnZV9mdW5jcy0+Z2V0X21vZGVz IGNhbGxiYWNrLgo+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4gKwlEUk1fQlJJREdFX09QX01PREVTID0g QklUKDMpLAo+Pj4+Pj4+ICt9Owo+Pj4+Pj4+ICsKPj4+Pj4+PiAgLyoqCj4+Pj4+Pj4gICAqIHN0 cnVjdCBkcm1fYnJpZGdlIC0gY2VudHJhbCBEUk0gYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4+ Pj4+Pj4gICAqLwo+Pj4+Pj4+IEBAIC0zOTgsNiArNTM1LDI5IEBAIHN0cnVjdCBkcm1fYnJpZGdl IHsKPj4+Pj4+PiAgCWNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzICpmdW5jczsKPj4+Pj4+ PiAgCS8qKiBAZHJpdmVyX3ByaXZhdGU6IHBvaW50ZXIgdG8gdGhlIGJyaWRnZSBkcml2ZXIncyBp bnRlcm5hbCBjb250ZXh0ICovCj4+Pj4+Pj4gIAl2b2lkICpkcml2ZXJfcHJpdmF0ZTsKPj4+Pj4+ PiArCS8qKiBAb3BzOiBiaXRtYXNrIG9mIG9wZXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBicmlk Z2UgKi8KPj4+Pj4+PiArCWVudW0gZHJtX2JyaWRnZV9vcHMgb3BzOwo+Pj4+Pj4+ICsJLyoqCj4+ Pj4+Pj4gKwkgKiBAdHlwZTogVHlwZSBvZiB0aGUgY29ubmVjdGlvbiBhdCB0aGUgYnJpZGdlIG91 dHB1dAo+Pj4+Pj4+ICsJICogKERSTV9NT0RFX0NPTk5FQ1RPUl8qKS4gRm9yIGJyaWRnZXMgYXQg dGhlIGVuZCBvZiB0aGlzIGNoYWluIHRoaXMKPj4+Pj4+PiArCSAqIGlkZW50aWZpZXMgdGhlIHR5 cGUgb2YgY29ubmVjdGVkIGRpc3BsYXkuCj4+Pj4+Pj4gKwkgKi8KPj4+Pj4+PiArCWludCB0eXBl Owo+Pj4+Pj4+ICsJLyoqIHByaXZhdGU6ICovCj4+Pj4+Pj4gKwkvKioKPj4+Pj4+PiArCSAqIEBo cGRfbXV0ZXg6IFByb3RlY3RzIHRoZSBAaHBkX2NiIGFuZCBAaHBkX2RhdGEgZmllbGRzLgo+Pj4+ Pj4+ICsJICovCj4+Pj4+Pj4gKwlzdHJ1Y3QgbXV0ZXggaHBkX211dGV4Owo+Pj4+Pj4+ICsJLyoq Cj4+Pj4+Pj4gKwkgKiBAaHBkX2NiOiBIb3QgcGx1ZyBkZXRlY3Rpb24gY2FsbGJhY2ssIHJlZ2lz dGVyZWQgd2l0aAo+Pj4+Pj4+ICsJICogZHJtX2JyaWRnZV9ocGRfZW5hYmxlKCkuCj4+Pj4+Pj4g KwkgKi8KPj4+Pj4+PiArCXZvaWQgKCpocGRfY2IpKHZvaWQgKmRhdGEsIGVudW0gZHJtX2Nvbm5l Y3Rvcl9zdGF0dXMgc3RhdHVzKTsKPj4+Pj4+PiArCS8qKgo+Pj4+Pj4+ICsJICogQGhwZF9kYXRh OiBQcml2YXRlIGRhdGEgcGFzc2VkIHRvIHRoZSBIb3QgcGx1ZyBkZXRlY3Rpb24gY2FsbGJhY2sK Pj4+Pj4+PiArCSAqIEBocGRfY2IuCj4+Pj4+Pj4gKwkgKi8KPj4+Pj4+PiArCXZvaWQgKmhwZF9k YXRhOwo+Pj4+Pj4+ICB9Owo+Pj4+Pj4+ICAKPj4+Pj4+PiAgdm9pZCBkcm1fYnJpZGdlX2FkZChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+Pj4+PiBAQCAtNDI4LDYgKzU4OCwxNCBAQCB2 b2lkIGRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKPj4+Pj4+PiAgdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKPj4+Pj4+PiAgCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKPj4+Pj4+PiAgCj4+Pj4+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRfZW5hYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+Pj4+Pj4gKwkJCSAgIHZvaWQgKCpjYikodm9pZCAqZGF0 YSwKPj4+Pj4+PiArCQkJCSAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzKSwK Pj4+Pj4+PiArCQkJICAgdm9pZCAqZGF0YSk7Cj4+Pj4+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+Pj4+PiArdm9pZCBkcm1fYnJp ZGdlX2hwZF9ub3RpZnkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPj4+Pj4+PiArCQkJICAg ZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAgI2lm ZGVmIENPTkZJR19EUk1fUEFORUxfQlJJREdFCj4+Pj4+Pj4gIHN0cnVjdCBkcm1fYnJpZGdlICpk cm1fcGFuZWxfYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKPj4+Pj4+PiAgCQkJ CQl1MzIgY29ubmVjdG9yX3R5cGUpOwo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVs