From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v5 05/12] drm: revocation check at drm subsystem Date: Mon, 29 Apr 2019 09:30:37 +0200 Message-ID: <20190429073037.GD3271@phenom.ffwll.local> References: <20190418085805.5648-1-ramalingam.c@intel.com> <20190418085805.5648-6-ramalingam.c@intel.com> <20190429072607.GB3271@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190429072607.GB3271@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ramalingam C Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, gwan-gyeong.mun@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMjksIDIwMTkgYXQgMDk6MjY6MDdBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEFwciAxOCwgMjAxOSBhdCAwMjoyNzo1OFBNICswNTMwLCBSYW1hbGlu Z2FtIEMgd3JvdGU6Cj4gPiBPbiBldmVyeSBoZGNwIHJldm9jYXRpb24gY2hlY2sgcmVxdWVzdCBT Uk0gaXMgcmVhZCBmcm9tIGZ3IGZpbGUKPiA+IC9saWIvZmlybXdhcmUvZGlzcGxheV9oZGNwX3Ny bS5iaW4KPiA+IAo+ID4gU1JNIHRhYmxlIGlzIHBhcnNlZCBhbmQgc3RvcmVkIGF0IGRybV9oZGNw LmMsIHdpdGggZnVuY3Rpb25zIGV4cG9ydGVkCj4gPiBmb3IgdGhlIHNlcnZpY2VzIGZvciByZXZv Y2F0aW9uIGNoZWNrIGZyb20gZHJpdmVycyAod2hpY2gKPiA+IGltcGxlbWVudHMgdGhlIEhEQ1Ag YXV0aGVudGljYXRpb24pCj4gPiAKPiA+IFRoaXMgcGF0Y2ggaGFuZGxlcyB0aGUgSERDUDEuNCBh bmQgMi4yIHZlcnNpb25zIG9mIFNSTSB0YWJsZS4KPiA+IAo+ID4gdjI6Cj4gPiAgIG1vdmVkIHRo ZSB1QVBJIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KCkgW0RhbmllbF0KPiA+IAo+ID4gU2ln bmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4gU3Vn Z2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gPiAtLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgfCAgIDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vZHJtX2hkY3AuYyAgICAgfCAzMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gCj4gUGxlYXNlIGFkZCBhbiBpbmNsdWRlIHN0YW56YSBmb3IgdGhpcyBuZXcgZmlsZSB0bwo+ IERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QsIHNvbWV3aGVyZSBuZWFyIHRo ZSBvdGhlciBkcC9oZGNwCj4gcmVsYXRlZCBzaW5rIGhlbHBlcnMuCj4gCj4gPiAgZHJpdmVycy9n cHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgICA0ICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5 c2ZzLmMgICAgfCAgIDIgKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICB8ICAz NiArKysrCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlCj4gPiBpbmRleCAzZDBjNzVjZDY4N2MuLmZlODQwMGFmMjQyNiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlCj4gPiBAQCAtMTksNyArMTksNyBAQCBkcm0teSAgICAgICA6PQlkcm1f YXV0aC5vIGRybV9idWZzLm8gZHJtX2NhY2hlLm8gXAo+ID4gIAkJZHJtX3BsYW5lLm8gZHJtX2Nv bG9yX21nbXQubyBkcm1fcHJpbnQubyBcCj4gPiAgCQlkcm1fZHVtYl9idWZmZXJzLm8gZHJtX21v ZGVfY29uZmlnLm8gZHJtX3ZibGFuay5vIFwKPiA+ICAJCWRybV9zeW5jb2JqLm8gZHJtX2xlYXNl Lm8gZHJtX3dyaXRlYmFjay5vIGRybV9jbGllbnQubyBcCj4gPiAtCQlkcm1fYXRvbWljX3VhcGku bwo+ID4gKwkJZHJtX2F0b21pY191YXBpLm8gZHJtX2hkY3Aubwo+ID4gIAo+ID4gIGRybS0kKENP TkZJR19EUk1fTElCX1JBTkRPTSkgKz0gbGliL2RybV9yYW5kb20ubwo+ID4gIGRybS0kKENPTkZJ R19EUk1fVk0pICs9IGRybV92bS5vCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzhiMDQzYzgxOTVlCj4gPiAtLS0gL2Rldi9u dWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwo+ID4gQEAgLTAsMCArMSwz MzYgQEAKPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gKy8qCj4g PiArICogQ29weXJpZ2h0IChDKSAyMDE5IEludGVsIENvcnBvcmF0aW9uLgo+ID4gKyAqCj4gPiAr ICogQXV0aG9yczoKPiA+ICsgKiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+ Cj4gPiArICovCj4gPiArCj4gPiArI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4gKyNpbmNs dWRlIDxsaW51eC9lcnIuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvZ2ZwLmg+Cj4gPiArI2luY2x1 ZGUgPGxpbnV4L2V4cG9ydC5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiArI2lu Y2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgPGRybS9kcm1faGRj cC5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX3N5c2ZzLmg+Cj4gPiArI2luY2x1ZGUgPGRybS9k cm1fcHJpbnQuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiA+ICsKPiA+ICtz dHJ1Y3QgaGRjcF9zcm0gewo+ID4gKwl1OCAqc3JtX2J1ZjsKPiA+ICsJc2l6ZV90IHJlY2VpdmVk X3NybV9zejsKPiA+ICsJdTMyIHJldm9jYXRlZF9rc3ZfY250Owo+ID4gKwl1OCAqcmV2b2NhdGVk X2tzdl9saXN0OwoKU28gbm90IHN1cmUgdGhpcyBpcyBmcm9tIHRoZSBzdGFuZGFyZCBvciBub3Qs IGJ1dCBteSBkaWN0aW9uYXJ5IHNheXMgdGhlCnZlcmIgaXMgcmV2b2tlLCBub3QgcmV2b2NhdGUu IFBsZWFzZSBjaGFuZ2UgZXZlcnl3aGVyZSBmcm9tIHJldm9jYXRlZCB0bwpyZXZva2VkLgoKU28g ZHJtX2hkY3BfY2hlY2tfa3N2c19yZXZva2VkKCkgZm9yIHRoZSBvbmUgZXhwb3J0ZWQgZnVuY3Rp b24uCi1EYW5pZWwKCgo+ID4gKwo+ID4gKwkvKiBNdXRleCB0byBwcm90ZWN0IGFib3ZlIHN0cnVj dCBtZW1iZXIgKi8KPiA+ICsJc3RydWN0IG11dGV4IG11dGV4Owo+ID4gK30gKnNybV9kYXRhOwo+ ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1faGRjcF9wcmludF9rc3YoY29uc3QgY2hh ciAqa3N2KQo+ID4gK3sKPiA+ICsJRFJNX0RFQlVHKCJcdCUjMDR4LCAlIzA0eCwgJSMwNHgsICUj MDR4LCAlIzA0eFxuIiwgKmtzdiAmIDB4ZmYsCj4gCj4gV2h5IDA0PyA4IGJpdCBvbmx5IG5lZWRz IDAyIEkgdGhpbmsuCj4gCj4gPiArCQkgICooa3N2ICsgMSkgJiAweGZmLCAqKGtzdiArIDIpICYg MHhmZiwgKihrc3YgKyAzKSAmIDB4ZmYsCj4gPiArCQkgICooa3N2ICsgNCkgJiAweGZmKTsKPiAK PiBUaGUgMHhmZiBpcyByZWR1bmRhbnQsIGNoYXIgaXMgYWx3YXlzIG9ubHkgOCBiaXRzLiBZb3Ug Y291bGQgYWxzbyBzaW1wbGlmeQo+IHRoZSBhcnJheSBkZXJlZmUgdXNpbmcga3N2WzBdLCBrc3Zb MV0sIC4uLiBpdCdzIHRoZSBzYW1lIGV4cHJlc3Npb24uCj4gCj4gQW5vdGhlciBvbmU6IFRoZXJl J3MgYSBiaXQgYSBjb25mdXNpb24gYmV0d2VlbiBjb25zdCBjaGFyICogYW5kIHU4KiBmb3IKPiBw YXJzaW5nIHRoZSBidWZmZXIuIEkgdGhpbmsgaXQnZCBiZSBnb29kIHRvIHN0YW5kYXJkaXplIG9u IGNvbnN0IHU4KiBmb3IKPiBldmVyeXRoaW5nLiBJIHRoaW5rIHRoYXQgc2hvdWxkIGFsc28gcmVt b3ZlIHRoZSBuZWVkIGZvciAweGZmIGNvbXBsZXRlbHksCj4gYmVjYXVzZSBubyBtb3JlIHNpZ24g ZXh0ZW5zaW9ucyB0byB0aGUgZnVsbCBpbnQuCj4gCj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB1 MzIgZHJtX2hkY3BfZ2V0X3Jldm9jYXRlZF9rc3ZfY291bnQoY29uc3QgY2hhciAqYnVmLCB1MzIg dnJsc19sZW5ndGgpCj4gPiArewo+ID4gKwl1MzIgcGFyc2VkX2J5dGVzID0gMCwga3N2X2NvdW50 ID0gMCwgdnJsX2tzdl9jbnQsIHZybF9zejsKPiA+ICsKPiA+ICsJZG8gewo+ID4gKwkJdnJsX2tz dl9jbnQgPSAqYnVmOwo+ID4gKwkJa3N2X2NvdW50ICs9IHZybF9rc3ZfY250Owo+ID4gKwo+ID4g KwkJdnJsX3N6ID0gKHZybF9rc3ZfY250ICogRFJNX0hEQ1BfS1NWX0xFTikgKyAxOwo+ID4gKwkJ YnVmICs9IHZybF9zejsKPiA+ICsJCXBhcnNlZF9ieXRlcyArPSB2cmxfc3o7Cj4gPiArCX0gd2hp bGUgKHBhcnNlZF9ieXRlcyA8IHZybHNfbGVuZ3RoKTsKPiAKPiBIbSwgaWYgd2Ugb3ZlcmZsb3cg aGVyZSAoaS5lLiBwYXJzZWRfYnl0ZXMgPiB2cmxzX2xlbmdodCkgdGhlbiB3ZSByZXR1cm4KPiBn YXJiYWdlLCBzaW5jZSB3ZSBhbHJlYWR5IGluY3JlbWVudGVkIGtzdl9jb3VudC4gUGx1cyB0aGVy ZSdzIG5vIGVycm9yCj4gY2hlY2tpbmcgb2YgdGhpcy4gS2VybmVsIHNob3VsZG4ndCB0cnVzdCBy b290IHRoaXMgbXVjaCwgYW5kIGlmIHRoZQo+IHZybHNfbGVuZ3RoIGFuZCBvdXIga3N2IHBhcnNp bmcgZG9uJ3QgYWdyZWUsIHdlIHNob3VsZCBhYm9ydCB0aGUgc3JtIGxvYWQuCj4gU28gbWF5YmUg c3dpdGNoIHRoZSByZXR1cm4gdmFsdWUgdG8gaW50LCBhbmQgb24gZXJyb3IgcmV0dXJuIC1FSU5W QUwgYW5kCj4gYWJvcnQ/Cj4gCj4gPiArCj4gPiArCXJldHVybiBrc3ZfY291bnQ7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB1MzIgZHJtX2hkY3BfZ2V0X3Jldm9jYXRlZF9rc3ZzKGNvbnN0IGNo YXIgKmJ1ZiwgdTggKnJldm9jYXRlZF9rc3ZfbGlzdCwKPiA+ICsJCQkJICAgICAgIHUzMiB2cmxz X2xlbmd0aCkKPiAKPiBUaGlzIGZ1bmN0aW9uIGhlcmUgZG9lc24ndCBuZWVkIHRvIGJlIHBhcmFu b2lkLCBzaW5jZSB3ZSBhbHJlYWR5IGNoZWNrZWQKPiB0aGUgU1JNIGJ5IHRoaXMgcG9pbnQuCj4g Cj4gPiArewo+ID4gKwl1MzIgcGFyc2VkX2J5dGVzID0gMCwga3N2X2NvdW50ID0gMDsKPiA+ICsJ dTMyIHZybF9rc3ZfY250LCB2cmxfa3N2X3N6LCB2cmxfaWR4ID0gMDsKPiA+ICsKPiA+ICsJZG8g ewo+ID4gKwkJdnJsX2tzdl9jbnQgPSAqYnVmOwo+ID4gKwkJdnJsX2tzdl9zeiA9IHZybF9rc3Zf Y250ICogRFJNX0hEQ1BfS1NWX0xFTjsKPiA+ICsKPiA+ICsJCWJ1ZisrOwo+ID4gKwo+ID4gKwkJ RFJNX0RFQlVHKCJ2cmw6ICVkLCBSZXZva2VkIEtTVnM6ICVkXG4iLCB2cmxfaWR4KyssCj4gPiAr CQkJICB2cmxfa3N2X2NudCk7Cj4gPiArCQltZW1jcHkocmV2b2NhdGVkX2tzdl9saXN0LCBidWYs IHZybF9rc3Zfc3opOwo+ID4gKwo+ID4gKwkJa3N2X2NvdW50ICs9IHZybF9rc3ZfY250Owo+ID4g KwkJcmV2b2NhdGVkX2tzdl9saXN0ICs9IHZybF9rc3Zfc3o7Cj4gPiArCQlidWYgKz0gdnJsX2tz dl9zejsKPiA+ICsKPiA+ICsJCXBhcnNlZF9ieXRlcyArPSAodnJsX2tzdl9zeiArIDEpOwo+ID4g Kwl9IHdoaWxlIChwYXJzZWRfYnl0ZXMgPCB2cmxzX2xlbmd0aCk7Cj4gPiArCj4gPiArCXJldHVy biBrc3ZfY291bnQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgZHJtX2hkY3BfcGFyc2Vf aGRjcDFfc3JtKGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQo+ID4gK3sKPiA+ICsJc3Ry dWN0IGhkY3Bfc3JtX2hlYWRlciAqaGVhZGVyOwo+ID4gKwl1MzIgdnJsX2xlbmd0aCwga3N2X2Nv dW50Owo+ID4gKwo+ID4gKwlpZiAoY291bnQgPCAoc2l6ZW9mKHN0cnVjdCBoZGNwX3NybV9oZWFk ZXIpICsKPiA+ICsJICAgIERSTV9IRENQXzFfNF9WUkxfTEVOR1RIX1NJWkUgKyBEUk1fSERDUF8x XzRfRENQX1NJR19TSVpFKSkgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGJsb2IgbGVuZ3Ro XG4iKTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCWhlYWRlciA9 IChzdHJ1Y3QgaGRjcF9zcm1faGVhZGVyICopYnVmOwo+ID4gKwltdXRleF9sb2NrKCZzcm1fZGF0 YS0+bXV0ZXgpOwo+ID4gKwlEUk1fREVCVUcoIlNSTSBJRDogMHgleCwgU1JNIFZlcjogMHgleCwg U1JNIEdlbiBObzogMHgleFxuIiwKPiA+ICsJCSAgaGVhZGVyLT5zcGVjX2luZGljYXRvci5zcm1f aWQsCj4gPiArCQkgIF9fc3dhYjE2KGhlYWRlci0+c3JtX3ZlcnNpb24pLCBoZWFkZXItPnNybV9n ZW5fbm8pOwo+ID4gKwo+ID4gKwlXQVJOX09OKGhlYWRlci0+c3BlY19pbmRpY2F0b3IucmVzZXJ2 ZWRfaGkgfHwKPiA+ICsJCWhlYWRlci0+c3BlY19pbmRpY2F0b3IucmVzZXJ2ZWRfbG8pOwo+ID4g Kwo+ID4gKwlpZiAoaGVhZGVyLT5zcGVjX2luZGljYXRvci5zcm1faWQgIT0gRFJNX0hEQ1BfMV80 X1NSTV9JRCkgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHNybV9pZFxuIik7Cj4gPiArCQlt dXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ ICsJfQo+ID4gKwo+ID4gKwlidWYgPSBidWYgKyBzaXplb2YoKmhlYWRlcik7Cj4gPiArCXZybF9s ZW5ndGggPSAoKmJ1ZiA8PCAxNiB8ICooYnVmICsgMSkgPDwgOCB8ICooYnVmICsgMikpOwo+IAo+ IE1heWJlIGEgc3RhdGljIGlubGluZSB0byBpbXBsZW1lbnQgdGhpcyBhbmQgdXNlIGluIHRoZSBo ZGNwMiB2ZXJzaW9uIGJlbG93Cj4gdG9vLiBBbHNvIEkgdGhpbmsgYnVmWzBdLCBidWZbMV0gaXMg ZWFzaWVyIHRvIHJlYWQgKGFzIGEgYmlrZXNoZWQgYWdhaW4pLgo+IAo+ID4gKwlpZiAoY291bnQg PCAoc2l6ZW9mKHN0cnVjdCBoZGNwX3NybV9oZWFkZXIpICsgdnJsX2xlbmd0aCkgfHwKPiA+ICsJ ICAgIHZybF9sZW5ndGggPCAoRFJNX0hEQ1BfMV80X1ZSTF9MRU5HVEhfU0laRSArCj4gPiArCQkJ ICBEUk1fSERDUF8xXzRfRENQX1NJR19TSVpFKSkgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZhbGlk IGJsb2IgbGVuZ3RoIG9yIHZybCBsZW5ndGhcbiIpOwo+ID4gKwkJbXV0ZXhfdW5sb2NrKCZzcm1f ZGF0YS0+bXV0ZXgpOwo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCX0KPiA+ICsKPiA+ICsJ LyogTGVuZ3RoIG9mIHRoZSBhbGwgdnJscyBjb21iaW5lZCAqLwo+ID4gKwl2cmxfbGVuZ3RoIC09 IChEUk1fSERDUF8xXzRfVlJMX0xFTkdUSF9TSVpFICsKPiA+ICsJCSAgICAgICBEUk1fSERDUF8x XzRfRENQX1NJR19TSVpFKTsKPiA+ICsKPiA+ICsJaWYgKCF2cmxfbGVuZ3RoKSB7Cj4gPiArCQlE Uk1fRVJST1IoIk5vIHZybCBmb3VuZFxuIik7Cj4gPiArCQltdXRleF91bmxvY2soJnNybV9kYXRh LT5tdXRleCk7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlidWYg Kz0gRFJNX0hEQ1BfMV80X1ZSTF9MRU5HVEhfU0laRTsKPiA+ICsJa3N2X2NvdW50ID0gZHJtX2hk Y3BfZ2V0X3Jldm9jYXRlZF9rc3ZfY291bnQoYnVmLCB2cmxfbGVuZ3RoKTsKPiA+ICsJaWYgKCFr c3ZfY291bnQpIHsKPiA+ICsJCURSTV9ERUJVRygiUmV2b2NhdGVkIEtTViBjb3VudCBpcyAwXG4i KTsKPiA+ICsJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsKPiA+ICsJCXJldHVybiBj b3VudDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlrZnJlZShzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9s aXN0KTsKPiA+ICsJc3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdCA9IGt6YWxsb2Moa3N2X2Nv dW50ICogRFJNX0hEQ1BfS1NWX0xFTiwKPiA+ICsJCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKPiAK PiBrY2FsbG9jKCkKPiAKPiA+ICsJaWYgKCFzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9saXN0KSB7 Cj4gPiArCQlEUk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOwo+ID4gKwkJbXV0ZXhfdW5sb2Nr KCZzcm1fZGF0YS0+bXV0ZXgpOwo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCX0KPiA+ICsK PiA+ICsJaWYgKGRybV9oZGNwX2dldF9yZXZvY2F0ZWRfa3N2cyhidWYsIHNybV9kYXRhLT5yZXZv Y2F0ZWRfa3N2X2xpc3QsCj4gPiArCQkJCQl2cmxfbGVuZ3RoKSAhPSBrc3ZfY291bnQpIHsKPiA+ ICsJCXNybV9kYXRhLT5yZXZvY2F0ZWRfa3N2X2NudCA9IDA7Cj4gPiArCQlrZnJlZShzcm1fZGF0 YS0+cmV2b2NhdGVkX2tzdl9saXN0KTsKPiA+ICsJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11 dGV4KTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCXNybV9kYXRh LT5yZXZvY2F0ZWRfa3N2X2NudCA9IGtzdl9jb3VudDsKPiA+ICsJbXV0ZXhfdW5sb2NrKCZzcm1f ZGF0YS0+bXV0ZXgpOwo+ID4gKwlyZXR1cm4gY291bnQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyBpbnQgZHJtX2hkY3BfcGFyc2VfaGRjcDJfc3JtKGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNv dW50KQo+ID4gK3sKPiA+ICsJc3RydWN0IGhkY3AyX3NybV9oZWFkZXIgKmhlYWRlcjsKPiA+ICsJ dTMyIHZybF9sZW5ndGgsIGtzdl9jb3VudCwga3N2X3N6Owo+ID4gKwo+ID4gKwltdXRleF9sb2Nr KCZzcm1fZGF0YS0+bXV0ZXgpOwo+ID4gKwlpZiAoY291bnQgPCAoc2l6ZW9mKHN0cnVjdCBoZGNw Ml9zcm1faGVhZGVyKSArCj4gPiArCSAgICBEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRSArIERS TV9IRENQXzJfRENQX1NJR19TSVpFKSkgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGJsb2Ig bGVuZ3RoXG4iKTsKPiA+ICsJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsKPiA+ICsJ CXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCWhlYWRlciA9IChzdHJ1Y3QgaGRj cDJfc3JtX2hlYWRlciAqKWJ1ZjsKPiA+ICsJRFJNX0RFQlVHKCJTUk0gSUQ6IDB4JXgsIFNSTSBW ZXI6IDB4JXgsIFNSTSBHZW4gTm86IDB4JXhcbiIsCj4gPiArCQkgIGhlYWRlci0+c3BlY19pbmRp Y2F0b3Iuc3JtX2lkLAo+ID4gKwkJICBfX3N3YWIxNihoZWFkZXItPnNybV92ZXJzaW9uKSwgaGVh ZGVyLT5zcm1fZ2VuX25vKTsKPiA+ICsKPiA+ICsJaWYgKGhlYWRlci0+c3BlY19pbmRpY2F0b3Iu cmVzZXJ2ZWQpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJYnVmID0gYnVmICsg c2l6ZW9mKCpoZWFkZXIpOwo+ID4gKwl2cmxfbGVuZ3RoID0gKCpidWYgPDwgMTYgfCAqKGJ1ZiAr IDEpIDw8IDggfCAqKGJ1ZiArIDIpKTsKPiA+ICsKPiA+ICsJaWYgKGNvdW50IDwgKHNpemVvZihz dHJ1Y3QgaGRjcDJfc3JtX2hlYWRlcikgKyB2cmxfbGVuZ3RoKSB8fAo+ID4gKwkgICAgdnJsX2xl bmd0aCA8IChEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRSArCj4gPiArCSAgICBEUk1fSERDUF8y X0RDUF9TSUdfU0laRSkpIHsKPiA+ICsJCURSTV9FUlJPUigiSW52YWxpZCBibG9iIGxlbmd0aCBv ciB2cmwgbGVuZ3RoXG4iKTsKPiA+ICsJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsK PiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8qIExlbmd0aCBvZiB0 aGUgYWxsIHZybHMgY29tYmluZWQgKi8KPiA+ICsJdnJsX2xlbmd0aCAtPSAoRFJNX0hEQ1BfMl9W UkxfTEVOR1RIX1NJWkUgKwo+ID4gKwkJICAgICAgIERSTV9IRENQXzJfRENQX1NJR19TSVpFKTsK PiA+ICsKPiA+ICsJaWYgKCF2cmxfbGVuZ3RoKSB7Cj4gPiArCQlEUk1fRVJST1IoIk5vIHZybCBm b3VuZFxuIik7Cj4gPiArCQltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7Cj4gPiArCQly ZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlidWYgKz0gRFJNX0hEQ1BfMl9WUkxf TEVOR1RIX1NJWkU7Cj4gPiArCWtzdl9jb3VudCA9ICgqYnVmIDw8IDIpIHwgRFJNX0hEQ1BfMl9L U1ZfQ09VTlRfMl9MU0JJVFMoKihidWYgKyAxKSk7Cj4gPiArCWlmICgha3N2X2NvdW50KSB7Cj4g PiArCQlEUk1fREVCVUcoIlJldm9jYXRlZCBLU1YgY291bnQgaXMgMFxuIik7Cj4gPiArCQltdXRl eF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7Cj4gPiArCQlyZXR1cm4gY291bnQ7Cj4gPiArCX0K PiA+ICsKPiA+ICsJa2ZyZWUoc3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdCk7Cj4gPiArCXNy bV9kYXRhLT5yZXZvY2F0ZWRfa3N2X2xpc3QgPSBremFsbG9jKGtzdl9jb3VudCAqIERSTV9IRENQ X0tTVl9MRU4sCj4gPiArCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiArCWlmICghc3JtX2Rh dGEtPnJldm9jYXRlZF9rc3ZfbGlzdCkgewo+ID4gKwkJRFJNX0VSUk9SKCJPdXQgb2YgTWVtb3J5 XG4iKTsKPiA+ICsJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsKPiA+ICsJCXJldHVy biAtRU5PTUVNOwo+ID4gKwl9Cj4gPiArCj4gPiArCWtzdl9zeiA9IGtzdl9jb3VudCAqIERSTV9I RENQX0tTVl9MRU47Cj4gPiArCWJ1ZiArPSBEUk1fSERDUF8yX05PX09GX0RFVl9QTFVTX1JFU0VS VkVEX1NaOwo+ID4gKwo+ID4gKwlEUk1fREVCVUcoIlJldm9rZWQgS1NWczogJWRcbiIsIGtzdl9j b3VudCk7Cj4gPiArCW1lbWNweShzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9saXN0LCBidWYsIGtz dl9zeik7Cj4gPiArCj4gPiArCXNybV9kYXRhLT5yZXZvY2F0ZWRfa3N2X2NudCA9IGtzdl9jb3Vu dDsKPiA+ICsJbXV0ZXhfdW5sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOwo+ID4gKwlyZXR1cm4gY291 bnQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpc19zcm1fdmVyc2lvbl9o ZGNwMShjb25zdCBjaGFyICpidWYpCj4gPiArewo+ID4gKwlyZXR1cm4gKCh1OCkqYnVmKSA9PSBE Uk1fSERDUF8xXzRfU1JNX0lEIDw8IDQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUg Ym9vbCBpc19zcm1fdmVyc2lvbl9oZGNwMihjb25zdCBjaGFyICpidWYpCj4gPiArewo+ID4gKwly ZXR1cm4gKCh1OCkqYnVmKSA9PSAoRFJNX0hEQ1BfMl9TUk1fSUQgPDwgNCB8Cj4gPiArCQkJICAg ICBEUk1fSERDUF8yX0lORElDQVRPUik7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBzc2l6ZV90 IGRybV9oZGNwX3NybV91cGRhdGUoY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCj4gPiAr ewo+ID4gKwlpZiAoaXNfc3JtX3ZlcnNpb25faGRjcDEoYnVmKSkKPiA+ICsJCXJldHVybiAoc3Np emVfdClkcm1faGRjcF9wYXJzZV9oZGNwMV9zcm0oYnVmLCBjb3VudCk7Cj4gPiArCWVsc2UgaWYg KGlzX3NybV92ZXJzaW9uX2hkY3AyKGJ1ZikpCj4gPiArCQlyZXR1cm4gKHNzaXplX3QpZHJtX2hk Y3BfcGFyc2VfaGRjcDJfc3JtKGJ1ZiwgY291bnQpOwo+ID4gKwo+ID4gKwlyZXR1cm4gKHNzaXpl X3QpLUVJTlZBTDsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBkcm1faGRjcF9yZXF1ZXN0X3NybShz dHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldikKPiA+ICt7Cj4gPiArCWNoYXIgZndfbmFtZVszNl0g PSAiZGlzcGxheV9oZGNwX3NybS5iaW4iOwo+ID4gKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3 Owo+ID4gKwo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+ID4gKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJl X2RpcmVjdCgmZncsIChjb25zdCBjaGFyICopZndfbmFtZSwKPiA+ICsJCQkJICAgICAgZHJtX2Rl di0+ZGV2KTsKPiAKPiBXZSBuZWVkIGFuIGFjayBmcm9tIE1hdHQgUm9wZXIgb3Igc29tZW9udCBl bHNlIGZyb20gaW90ZyBvbiB0aGlzLgo+IAo+ID4gKwlpZiAocmV0IDwgMCkKPiA+ICsJCWdvdG8g ZXhpdDsKPiA+ICsKPiA+ICsJaWYgKGZ3LT5zaXplICYmIGZ3LT5kYXRhKQo+ID4gKwkJZHJtX2hk Y3Bfc3JtX3VwZGF0ZSgoY29uc3QgY2hhciAqKWZ3LT5kYXRhLCBmdy0+c2l6ZSk7Cj4gPiArCj4g PiArZXhpdDoKPiA+ICsJcmVsZWFzZV9maXJtd2FyZShmdyk7Cj4gPiArfQo+ID4gKwo+ID4gKy8q IENoZWNrIGlmIGFueSBvZiB0aGUgS1NWIGlzIHJldm9jYXRlZCBieSBEQ1AgTExDIHRocm91Z2gg U1JNIHRhYmxlICovCj4gPiArYm9vbCBkcm1faGRjcF9rc3ZzX3Jldm9jYXRlZChzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiwgdTggKmtzdnMsCj4gCj4gU2luY2UgY29tbWVudCBzYXlzICJjaGVj ayIsIG1heWJlIHB1dCB0aGF0IGludG8gdGhlIGZ1bmN0aW9uIG5hbWU/IEkgbGlrZQo+IHRvIGhh dmUgdmVyYnMgaW4gZnVuY3Rpb24gbmFtZXMgdGhhdCBkbyBzb21ldGhpbmcgKGluc3RlYWQgb2Yg c2ltcGxlCj4gaGVscGVyIGZ1bmN0aW9ucyB0byBleHRyYWN0IGEgY29tcHV0YXRpb24gdG8gbWFr ZSB0aGUgY29kZSBhIGJpdCBtb3JlCj4gcmVhZGFibGUpLgo+IAo+IEFsc28gbmVlZHMgc29tZSBu aWNlIGtlcm5lbGRvYy4KPiAKPiA+ICsJCQkgICAgIHUzMiBrc3ZfY291bnQpCj4gPiArewo+ID4g Kwl1MzIgcmV2X2tzdl9jbnQsIGNudCwgaSwgajsKPiA+ICsJdTggKnJldl9rc3ZfbGlzdDsKPiA+ ICsKPiA+ICsJaWYgKCFzcm1fZGF0YSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJ ZHJtX2hkY3BfcmVxdWVzdF9zcm0oZHJtX2Rldik7Cj4gPiArCj4gPiArCW11dGV4X2xvY2soJnNy bV9kYXRhLT5tdXRleCk7Cj4gCj4gSSdkIGhhdmUgd3JhcHBlZCB0aGUgbG9ja2luZyBhcm91bmQg dGhlIGVudGlyZSBmdW5jdGlvbiwgc2hvdWxkIHNpbXBsaWZ5Cj4gdGhpbmdzIGEgbG90LiBPciBk b2VzIHRoYXQgYW5nZXIgbG9ja2RlcCB3aGVuIHdlIGNhbGwgaW50bwo+IHJlcXVlc3RfZmlybXdh cmUoKT8KPiAKPiA+ICsJcmV2X2tzdl9jbnQgPSBzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9jbnQ7 Cj4gPiArCXJldl9rc3ZfbGlzdCA9IHNybV9kYXRhLT5yZXZvY2F0ZWRfa3N2X2xpc3Q7Cj4gPiAr Cj4gPiArCS8qIElmIHRoZSBSZXZvY2F0ZWQga3N2IGxpc3QgaXMgZW1wdHkgKi8KPiA+ICsJaWYg KCFyZXZfa3N2X2NudCB8fCAhcmV2X2tzdl9saXN0KSB7Cj4gPiArCQltdXRleF91bmxvY2soJnNy bV9kYXRhLT5tdXRleCk7Cj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCX0KPiA+ICsKPiA+ICsJ Zm9yICAoY250ID0gMDsgY250IDwga3N2X2NvdW50OyBjbnQrKykgewo+ID4gKwkJcmV2X2tzdl9s aXN0ID0gc3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdDsKPiA+ICsJCWZvciAoaSA9IDA7IGkg PCByZXZfa3N2X2NudDsgaSsrKSB7Cj4gPiArCQkJZm9yIChqID0gMDsgaiA8IERSTV9IRENQX0tT Vl9MRU47IGorKykKPiA+ICsJCQkJaWYgKCooa3N2cyArIGopICE9ICoocmV2X2tzdl9saXN0ICsg aikpIHsKPiA+ICsJCQkJCWJyZWFrOwo+ID4gKwkJCQl9IGVsc2UgaWYgKGogPT0gKERSTV9IRENQ X0tTVl9MRU4gLSAxKSkgewo+ID4gKwkJCQkJRFJNX0RFQlVHKCJSZXZvY2F0ZWQgS1NWIGlzICIp Owo+ID4gKwkJCQkJZHJtX2hkY3BfcHJpbnRfa3N2KGtzdnMpOwo+ID4gKwkJCQkJbXV0ZXhfdW5s b2NrKCZzcm1fZGF0YS0+bXV0ZXgpOwo+ID4gKwkJCQkJcmV0dXJuIHRydWU7Cj4gPiArCQkJCX0K PiA+ICsJCQkvKiBNb3ZlIHRoZSBvZmZzZXQgdG8gbmV4dCBLU1YgaW4gdGhlIHJldm9jYXRlZCBs aXN0ICovCj4gPiArCQkJcmV2X2tzdl9saXN0ICs9IERSTV9IRENQX0tTVl9MRU47Cj4gPiArCQl9 Cj4gPiArCj4gPiArCQkvKiBJdGVyYXRlIHRvIG5leHQga3N2X29mZnNldCAqLwo+ID4gKwkJa3N2 cyArPSBEUk1fSERDUF9LU1ZfTEVOOwo+ID4gKwl9Cj4gPiArCW11dGV4X3VubG9jaygmc3JtX2Rh dGEtPm11dGV4KTsKPiA+ICsJcmV0dXJuIGZhbHNlOwo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9M X0dQTChkcm1faGRjcF9rc3ZzX3Jldm9jYXRlZCk7Cj4gPiArCj4gPiAraW50IGRybV9zZXR1cF9o ZGNwX3NybShzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzcykKPiA+ICt7Cj4gPiArCXNybV9kYXRhID0g a3phbGxvYyhzaXplb2YoKnNybV9kYXRhKSwgR0ZQX0tFUk5FTCk7Cj4gPiArCWlmICghc3JtX2Rh dGEpCj4gPiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ICsJc3JtX2RhdGEtPnNybV9idWYg PSBrY2FsbG9jKERSTV9IRENQX1NSTV9HRU4xX01BWF9CWVRFUywKPiA+ICsJCQkJICAgIHNpemVv Zih1OCksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIXNybV9kYXRhLT5zcm1fYnVmKSB7Cj4gPiAr CQlrZnJlZShzcm1fZGF0YSk7Cj4gPiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsJfQo+ID4gKwlt dXRleF9pbml0KCZzcm1fZGF0YS0+bXV0ZXgpOwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9 Cj4gPiArCj4gPiArdm9pZCBkcm1fdGVhcmRvd25faGRjcF9zcm0oc3RydWN0IGNsYXNzICpkcm1f Y2xhc3MpCj4gPiArewo+ID4gKwlpZiAoc3JtX2RhdGEpIHsKPiA+ICsJCWtmcmVlKHNybV9kYXRh LT5zcm1fYnVmKTsKPiA+ICsJCWtmcmVlKHNybV9kYXRhLT5yZXZvY2F0ZWRfa3N2X2xpc3QpOwo+ ID4gKwkJa2ZyZWUoc3JtX2RhdGEpOwo+ID4gKwl9Cj4gPiArfQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJu YWwuaAo+ID4gaW5kZXggZDlhNDgzYTVmY2UwLi5lZjMxODA0NDM4NzAgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faW50ZXJuYWwuaAo+ID4gQEAgLTE5OSwzICsxOTksNyBAQCBpbnQgZHJtX3N5bmNvYmpf cXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+ICB2b2lk IGRybV9mcmFtZWJ1ZmZlcl9wcmludF9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWdu ZWQgaW50IGluZGVudCwKPiA+ICAJCQkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIp Owo+ID4gIGludCBkcm1fZnJhbWVidWZmZXJfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3Ig Km1pbm9yKTsKPiA+ICsKPiA+ICsvKiBkcm1faGRjcC5jICovCj4gPiAraW50IGRybV9zZXR1cF9o ZGNwX3NybShzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzcyk7Cj4gPiArdm9pZCBkcm1fdGVhcmRvd25f aGRjcF9zcm0oc3RydWN0IGNsYXNzICpkcm1fY2xhc3MpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwo+ID4g aW5kZXggZWNiN2IzMzAwMmJiLi4xOGIxYWM0NDI5OTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX3N5c2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMu Ywo+ID4gQEAgLTc4LDYgKzc4LDcgQEAgaW50IGRybV9zeXNmc19pbml0KHZvaWQpCj4gPiAgCX0K PiA+ICAKPiA+ICAJZHJtX2NsYXNzLT5kZXZub2RlID0gZHJtX2Rldm5vZGU7Cj4gPiArCWRybV9z ZXR1cF9oZGNwX3NybShkcm1fY2xhc3MpOwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4g PiBAQCAtOTAsNiArOTEsNyBAQCB2b2lkIGRybV9zeXNmc19kZXN0cm95KHZvaWQpCj4gPiAgewo+ ID4gIAlpZiAoSVNfRVJSX09SX05VTEwoZHJtX2NsYXNzKSkKPiA+ICAJCXJldHVybjsKPiA+ICsJ ZHJtX3RlYXJkb3duX2hkY3Bfc3JtKGRybV9jbGFzcyk7Cj4gPiAgCWNsYXNzX3JlbW92ZV9maWxl KGRybV9jbGFzcywgJmNsYXNzX2F0dHJfdmVyc2lvbi5hdHRyKTsKPiA+ICAJY2xhc3NfZGVzdHJv eShkcm1fY2xhc3MpOwo+ID4gIAlkcm1fY2xhc3MgPSBOVUxMOwo+ID4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9oZGNwLmggYi9pbmNsdWRlL2RybS9kcm1faGRjcC5oCj4gPiBpbmRleCBm MjQzNDA4ZWNmMjYuLmZmMmJjZmMxZWNlZiAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9oZGNwLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKPiA+IEBAIC0yNjUsNCAr MjY1LDQwIEBAIHZvaWQgZHJtX2hkY3AyX3UzMl90b19zZXFfbnVtKHU4IHNlcV9udW1bSERDUF8y XzJfU0VRX05VTV9MRU5dLCB1MzIgdmFsKQo+ID4gIAlzZXFfbnVtWzJdID0gdmFsOwo+ID4gIH0K PiA+ICAKPiA+ICsjZGVmaW5lIERSTV9IRENQX1NSTV9HRU4xX01BWF9CWVRFUwkJKDUgKiAxMDI0 KQo+ID4gKyNkZWZpbmUgRFJNX0hEQ1BfMV80X1NSTV9JRAkJCTB4OAo+ID4gKyNkZWZpbmUgRFJN X0hEQ1BfMV80X1ZSTF9MRU5HVEhfU0laRQkJMwo+ID4gKyNkZWZpbmUgRFJNX0hEQ1BfMV80X0RD UF9TSUdfU0laRQkJNDAKPiA+ICsKPiA+ICtzdHJ1Y3QgaGRjcF9zcm1faGVhZGVyIHsKPiA+ICsJ c3RydWN0IHsKPiA+ICsJCXU4IHJlc2VydmVkX2hpOjQ7Cj4gPiArCQl1OCBzcm1faWQ6NDsKPiAK PiBiaXRmaWVsZHMgaW4gYmluYXJ5IHN0cnVjdHVyZXMgYXJlIGhlYXZpbHkgZGlzY291cmFnZWQu IEkgdGhpbmsgc2luY2UgdGhpcwo+IGlzIG9ubHkgdTggaXQgc2hvdWxkIGJlIGZpbmUsIGJ1dCBl eHBsYWluaW5nIHRoYXQgaXMgbW9yZSB3b3JrIHRoYW4ganVzdAo+IGhhdmluZyB0aGUgdXN1YWwg X01BU0svX1NISUZUICNkZWZpbmVzIGxpa2Ugd2UgZG8gd2l0aCByZWdpc3RlcnMuCj4gCj4gPiAr CQl1OCByZXNlcnZlZF9sbzsKPiA+ICsJfSBzcGVjX2luZGljYXRvcjsKPiAKPiBJZiB5b3Ugd2Fu bnQgX19wYWNrZWQsIHlvdSBhbHNvIG5lZWQgdG8gbGlzdCB0aGlzIHRvIHN1Yi1zdHJ1Y3RzLgo+ IAo+ID4gKwl1MTYgc3JtX3ZlcnNpb247Cj4gPiArCXU4IHNybV9nZW5fbm87Cj4gPiArfSBfX3Bh Y2tlZDsKPiA+ICsKPiA+ICsjZGVmaW5lIERSTV9IRENQXzJfU1JNX0lECQkJMHg5Cj4gPiArI2Rl ZmluZSBEUk1fSERDUF8yX0lORElDQVRPUgkJCTB4MQo+ID4gKyNkZWZpbmUgRFJNX0hEQ1BfMl9W UkxfTEVOR1RIX1NJWkUJCTMKPiA+ICsjZGVmaW5lIERSTV9IRENQXzJfRENQX1NJR19TSVpFCQkJ Mzg0Cj4gPiArI2RlZmluZSBEUk1fSERDUF8yX05PX09GX0RFVl9QTFVTX1JFU0VSVkVEX1NaCTQK PiA+ICsKPiA+ICsjZGVmaW5lIERSTV9IRENQXzJfS1NWX0NPVU5UXzJfTFNCSVRTKGJ5dGUpCSgo KGJ5dGUpICYgMHhDKSA+PiA2KQo+ID4gKwo+ID4gK3N0cnVjdCBoZGNwMl9zcm1faGVhZGVyIHsK PiA+ICsJc3RydWN0IHsKPiA+ICsJCXU4IGhkY3AyX2luZGljYXRvcjo0Owo+IAo+IFNpbmNlIGhk Y3AxLzIgbWF0Y2ggZXhjZXB0IGZvciB0aGlzIEkgdGhpbmsgYmV0dGVyIHRvIG1lcmdlIHRoZW0u Cj4gCj4gPiArCQl1OCBzcm1faWQ6NDsKPiA+ICsJCXU4IHJlc2VydmVkOwo+ID4gKwl9IHNwZWNf aW5kaWNhdG9yOwo+ID4gKwl1MTYgc3JtX3ZlcnNpb247Cj4gPiArCXU4IHNybV9nZW5fbm87Cj4g PiArfSBfX3BhY2tlZDsKPiA+ICsKPiA+ICtzdHJ1Y3QgZHJtX2RldmljZTsKPiA+ICsKPiA+ICti b29sIGRybV9oZGNwX2tzdnNfcmV2b2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU4ICpr c3ZzLCB1MzIga3N2X2NvdW50KTsKPiA+ICAjZW5kaWYKPiAKPiBDaGVlcnMsIERhbmllbAo+IAo+ ID4gLS0gCj4gPiAyLjE5LjEKPiA+IAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0g CkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6 Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==