From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 04/11] drm/i915: Make request allocation caches global Date: Wed, 27 Feb 2019 10:29:43 +0000 Message-ID: <0e596684-a18d-e90d-fed2-4816714aa9c5@linux.intel.com> References: <20190226102404.29153-1-chris@chris-wilson.co.uk> <20190226102404.29153-4-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA03B6E097 for ; Wed, 27 Feb 2019 10:29:45 +0000 (UTC) In-Reply-To: <20190226102404.29153-4-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI2LzAyLzIwMTkgMTA6MjMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyBrbWVtX2NhY2hl cyBzaGFyZSB0aGUgc2FtZSBwcm9wZXJ0aWVzIChzaXplLCBhbGxvY2F0aW9uL2ZyZWUgYmVoYXZp b3VyKQo+IGZvciBhbGwgcG90ZW50aWFsIGRldmljZXMsIHdlIGNhbiB1c2UgZ2xvYmFsIGNhY2hl cy4gV2hpbGUgdGhpcwo+IHBvdGVudGlhbCBoYXMgd29yc2UgZnJhZ21lbnRhdGlvbiBiZWhhdmlv dXIgKG9uZSBjYW4gYXJndWUgdGhhdAo+IGRpZmZlcmVudCBkZXZpY2VzIHdvdWxkIGhhdmUgZGlm ZmVyZW50IGFjdGl2aXR5IGxpZmV0aW1lcywgYnV0IHlvdSBjYW4KPiBhbHNvIGFyZ3VlIHRoYXQg YWN0aXZpdHkgaXMgdGVtcG9yYWwgYWNyb3NzIHRoZSBzeXN0ZW0pIGl0IGlzIHRoZQo+IGRlZmF1 bHQgYmVoYXZpb3VyIG9mIHRoZSBzeXN0ZW0gYXQgbGFyZ2UgdG8gYW1hbGdhbWF0ZSBtYXRjaGlu ZyBjYWNoZXMuCj4gCj4gVGhlIGJlbmVmaXQgZm9yIHVzIGlzIG11Y2ggcmVkdWNlZCBwb2ludGVy IGRhbmNpbmcgYWxvbmcgdGhlIGZyZXF1ZW50Cj4gYWxsb2NhdGlvbiBwYXRocy4KPiAKPiB2Mjog RGVmZXIgc2hyaW5raW5nIHVudGlsIGFmdGVyIGEgZ2xvYmFsIGdyYWNlIHBlcmlvZCBmb3IgZnV0 dXJlcHJvb2ZpbmcKPiBtdWx0aXBsZSBjb25zdW1lcnMgb2YgdGhlIHNsYWIgY2FjaGVzLCBzaW1p bGFyIHRvIHRoZSBjdXJyZW50IHN0cmF0ZWd5Cj4gZm9yIGF2b2lkaW5nIHNocmlua2luZyB0b28g ZWFybHkuCgpJIHN1Z2dlc3RlZCB0byBjYWxsIGk5MTVfZ2xvYmFsc19wYXJrIGRpcmVjdGx5IGZy b20gX19pOTE1X2dlbV9wYXJrIGZvciAKc3ltbWV0cnkgd2l0aCBob3cgaTkxNV9nZW1fdW5wYXJr IGNhbGxzIGk5MTVfZ2xvYmFsc191bnBhcmsuIAppOTE1X2dsb2JhbHMgaGFzIGl0J3Mgb3duIGRl bGF5ZWQgc2V0dXAgc28gSSBkb24ndCB0aGluayBpdCBiZW5lZml0cyAKZnJvbSB0aGUgZG91Ymxl IGluZGlyZWN0aW9uIGNvdXJ0ZXN5IG9mIGJlaW5nIGNhbGxlZCBmcm9tIHNocmlua19jYWNoZXMu CgpPdGhlcndpc2UgSSBoYWQgbm90IG90aGVyIGNvbXBsYWludHMsIGJ1dCB0aGlzIGFzeW1tZXRy eSBmb3Igbm8gcmVhc29uIAppcyBidWdnaW5nIG1lLgoKUmVnYXJkcywKClR2cnRrbwoKPiAKPiBT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAt LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAg MSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jICAgICAgICAgICAgfCAg IDcgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggICAgICAgICAgICB8 ICAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAg fCAgIDMgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAg IHwgIDM0ICstLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmMgICAg ICAgICAgIHwgMTEzICsrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nbG9iYWxzLmggICAgICAgICAgIHwgIDE1ICsrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYyAgICAgICAgICAgICAgIHwgICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAgNTMgKysrKysrLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICAgICAgICB8ICAxMCArKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYyAgICAgICAgIHwgIDY2ICsrKysrKystLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmggICAgICAgICB8ICAzNCAr KysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgICB8 ICAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAg IHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICAg ICAgfCAgMTcgLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJj LmMgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2Vu Z2luZS5jICB8ICA0NSArKysrLS0tCj4gICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2dlbV9kZXZpY2UuYyAgfCAgMjYgLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL21vY2tfcmVxdWVzdC5jIHwgIDEyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19yZXF1ZXN0LmggfCAgIDcgLS0KPiAgIDIwIGZpbGVzIGNoYW5nZWQsIDMxMyBp bnNlcnRpb25zKCspLCAxNTAgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nbG9iYWxzLmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl Cj4gaW5kZXggMTc4N2UxMjk5YjFiLi5hMWQ4MzQwNjg3NjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQo+IEBAIC03Nyw2ICs3Nyw3IEBAIGk5MTUteSArPSBcCj4gICAJICBpOTE1X2dlbV90aWxp bmcubyBcCj4gICAJICBpOTE1X2dlbV91c2VycHRyLm8gXAo+ICAgCSAgaTkxNV9nZW1mcy5vIFwK PiArCSAgaTkxNV9nbG9iYWxzLm8gXAo+ICAgCSAgaTkxNV9xdWVyeS5vIFwKPiAgIAkgIGk5MTVf cmVxdWVzdC5vIFwKPiAgIAkgIGk5MTVfc2NoZWR1bGVyLm8gXAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9hY3RpdmUuYwo+IGluZGV4IGRiN2JiNWJkNWFkZC4uZDlmNjQ3MWFjMTZjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCj4gQEAgLTI5NCw3ICsyOTQsMTIgQEAgaW50IF9faW5p dCBpOTE1X2dsb2JhbF9hY3RpdmVfaW5pdCh2b2lkKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAg Cj4gLXZvaWQgX19leGl0IGk5MTVfZ2xvYmFsX2FjdGl2ZV9leGl0KHZvaWQpCj4gK3ZvaWQgaTkx NV9nbG9iYWxfYWN0aXZlX3Nocmluayh2b2lkKQo+ICt7Cj4gKwlrbWVtX2NhY2hlX3Nocmluayhn bG9iYWwuc2xhYl9jYWNoZSk7Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV9nbG9iYWxfYWN0aXZlX2V4 aXQodm9pZCkKPiAgIHsKPiAgIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFsLnNsYWJfY2FjaGUp Owo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaAo+IGluZGV4IDEyYjVjMWQyODdk MS4uNWZiZDkxMDIzODRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf YWN0aXZlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCj4gQEAg LTQyMCw2ICs0MjAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9hY3RpdmVfZmluaShzdHJ1 Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9Cj4gICAjZW5kaWYKPiAgIAo+ICAgaW50IGk5MTVfZ2xv YmFsX2FjdGl2ZV9pbml0KHZvaWQpOwo+ICt2b2lkIGk5MTVfZ2xvYmFsX2FjdGl2ZV9zaHJpbmso dm9pZCk7Cj4gICB2b2lkIGk5MTVfZ2xvYmFsX2FjdGl2ZV9leGl0KHZvaWQpOwo+ICAgCj4gICAj ZW5kaWYgLyogX0k5MTVfQUNUSVZFX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggY2MwOWNhZjM4NzBlLi5mMTYwMTZiMzMwYjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMTQ3Myw5ICsxNDczLDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAg CXN0cnVjdCBrbWVtX2NhY2hlICpvYmplY3RzOwo+ICAgCXN0cnVjdCBrbWVtX2NhY2hlICp2bWFz Owo+ICAgCXN0cnVjdCBrbWVtX2NhY2hlICpsdXRzOwo+IC0Jc3RydWN0IGttZW1fY2FjaGUgKnJl cXVlc3RzOwo+IC0Jc3RydWN0IGttZW1fY2FjaGUgKmRlcGVuZGVuY2llczsKPiAtCXN0cnVjdCBr bWVtX2NhY2hlICpwcmlvcml0aWVzOwo+ICAgCj4gICAJY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvIF9faW5mbzsgLyogVXNlIElOVEVMX0lORk8oKSB0byBhY2Nlc3MuICovCj4gICAJc3Ry dWN0IGludGVsX3J1bnRpbWVfaW5mbyBfX3J1bnRpbWU7IC8qIFVzZSBSVU5USU1FX0lORk8oKSB0 byBhY2Nlc3MuICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMmIyNjE1MjRjZmE0 Li43MTNlZDZmYmRjYzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNDIsNiAr NDIsNyBAQAo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gICAjaW5jbHVkZSAiaTkxNV9nZW1f Y2xmbHVzaC5oIgo+ICAgI2luY2x1ZGUgImk5MTVfZ2VtZnMuaCIKPiArI2luY2x1ZGUgImk5MTVf Z2xvYmFscy5oIgo+ICAgI2luY2x1ZGUgImk5MTVfcmVzZXQuaCIKPiAgICNpbmNsdWRlICJpOTE1 X3RyYWNlLmgiCj4gICAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCj4gQEAgLTE4Nyw2ICsxODgsOCBA QCB2b2lkIGk5MTVfZ2VtX3VucGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAg IAlpZiAodW5saWtlbHkoKytpOTE1LT5ndC5lcG9jaCA9PSAwKSkgLyoga2VlcCAwIGFzIGludmFs aWQgKi8KPiAgIAkJaTkxNS0+Z3QuZXBvY2ggPSAxOwo+ICAgCj4gKwlpOTE1X2dsb2JhbHNfdW5w YXJrKCk7Cj4gKwo+ICAgCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoaTkxNSk7Cj4gICAJaTkx NV91cGRhdGVfZ2Z4X3ZhbChpOTE1KTsKPiAgIAlpZiAoSU5URUxfR0VOKGk5MTUpID49IDYpCj4g QEAgLTI4OTIsMTIgKzI4OTUsMTEgQEAgc3RhdGljIHZvaWQgc2hyaW5rX2NhY2hlcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAkgKiBmaWxsZWQgc2xhYnMgdG8gcHJpb3JpdGlz ZSBhbGxvY2F0aW5nIGZyb20gdGhlIG1vc3RseSBmdWxsIHNsYWJzLAo+ICAgCSAqIHdpdGggdGhl IGFpbSBvZiByZWR1Y2luZyBmcmFnbWVudGF0aW9uLgo+ICAgCSAqLwo+IC0Ja21lbV9jYWNoZV9z aHJpbmsoaTkxNS0+cHJpb3JpdGllcyk7Cj4gLQlrbWVtX2NhY2hlX3NocmluayhpOTE1LT5kZXBl bmRlbmNpZXMpOwo+IC0Ja21lbV9jYWNoZV9zaHJpbmsoaTkxNS0+cmVxdWVzdHMpOwo+ICAgCWtt ZW1fY2FjaGVfc2hyaW5rKGk5MTUtPmx1dHMpOwo+ICAgCWttZW1fY2FjaGVfc2hyaW5rKGk5MTUt PnZtYXMpOwo+ICAgCWttZW1fY2FjaGVfc2hyaW5rKGk5MTUtPm9iamVjdHMpOwo+ICsKPiArCWk5 MTVfZ2xvYmFsc19wYXJrKCk7Cj4gICB9Cj4gICAKPiAgIHN0cnVjdCBzbGVlcF9yY3Vfd29yayB7 Cj4gQEAgLTUyMzUsMjMgKzUyMzcsNiBAQCBpbnQgaTkxNV9nZW1faW5pdF9lYXJseShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJaWYgKCFkZXZfcHJpdi0+bHV0cykKPiAg IAkJZ290byBlcnJfdm1hczsKPiAgIAo+IC0JZGV2X3ByaXYtPnJlcXVlc3RzID0gS01FTV9DQUNI RShpOTE1X3JlcXVlc3QsCj4gLQkJCQkJU0xBQl9IV0NBQ0hFX0FMSUdOIHwKPiAtCQkJCQlTTEFC X1JFQ0xBSU1fQUNDT1VOVCB8Cj4gLQkJCQkJU0xBQl9UWVBFU0FGRV9CWV9SQ1UpOwo+IC0JaWYg KCFkZXZfcHJpdi0+cmVxdWVzdHMpCj4gLQkJZ290byBlcnJfbHV0czsKPiAtCj4gLQlkZXZfcHJp di0+ZGVwZW5kZW5jaWVzID0gS01FTV9DQUNIRShpOTE1X2RlcGVuZGVuY3ksCj4gLQkJCQkJICAg IFNMQUJfSFdDQUNIRV9BTElHTiB8Cj4gLQkJCQkJICAgIFNMQUJfUkVDTEFJTV9BQ0NPVU5UKTsK PiAtCWlmICghZGV2X3ByaXYtPmRlcGVuZGVuY2llcykKPiAtCQlnb3RvIGVycl9yZXF1ZXN0czsK PiAtCj4gLQlkZXZfcHJpdi0+cHJpb3JpdGllcyA9IEtNRU1fQ0FDSEUoaTkxNV9wcmlvbGlzdCwg U0xBQl9IV0NBQ0hFX0FMSUdOKTsKPiAtCWlmICghZGV2X3ByaXYtPnByaW9yaXRpZXMpCj4gLQkJ Z290byBlcnJfZGVwZW5kZW5jaWVzOwo+IC0KPiAgIAlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYt Pmd0LmFjdGl2ZV9yaW5ncyk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5ndC5jbG9z ZWRfdm1hKTsKPiAgIAo+IEBAIC01Mjc2LDEyICs1MjYxLDYgQEAgaW50IGk5MTVfZ2VtX2luaXRf ZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCj4gICAJcmV0dXJu IDA7Cj4gICAKPiAtZXJyX2RlcGVuZGVuY2llczoKPiAtCWttZW1fY2FjaGVfZGVzdHJveShkZXZf cHJpdi0+ZGVwZW5kZW5jaWVzKTsKPiAtZXJyX3JlcXVlc3RzOgo+IC0Ja21lbV9jYWNoZV9kZXN0 cm95KGRldl9wcml2LT5yZXF1ZXN0cyk7Cj4gLWVycl9sdXRzOgo+IC0Ja21lbV9jYWNoZV9kZXN0 cm95KGRldl9wcml2LT5sdXRzKTsKPiAgIGVycl92bWFzOgo+ICAgCWttZW1fY2FjaGVfZGVzdHJv eShkZXZfcHJpdi0+dm1hcyk7Cj4gICBlcnJfb2JqZWN0czoKPiBAQCAtNTI5OSw5ICs1Mjc4LDYg QEAgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgIAo+ICAgCWNsZWFudXBfc3JjdV9zdHJ1Y3QoJmRldl9wcml2LT5ncHVfZXJy b3IucmVzZXRfYmFja29mZl9zcmN1KTsKPiAgIAo+IC0Ja21lbV9jYWNoZV9kZXN0cm95KGRldl9w cml2LT5wcmlvcml0aWVzKTsKPiAtCWttZW1fY2FjaGVfZGVzdHJveShkZXZfcHJpdi0+ZGVwZW5k ZW5jaWVzKTsKPiAtCWttZW1fY2FjaGVfZGVzdHJveShkZXZfcHJpdi0+cmVxdWVzdHMpOwo+ICAg CWttZW1fY2FjaGVfZGVzdHJveShkZXZfcHJpdi0+bHV0cyk7Cj4gICAJa21lbV9jYWNoZV9kZXN0 cm95KGRldl9wcml2LT52bWFzKTsKPiAgIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZGV2X3ByaXYtPm9i amVjdHMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5jCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjdmZDFiMzk0NWEwNAo+IC0tLSAvZGV2L251bGwK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYwo+IEBAIC0wLDAgKzEs MTEzIEBACj4gKy8qCj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArICoKPiAr ICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaW5j bHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Cj4gKwo+ ICsjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKPiArI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgo+ ICsjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCj4gKyNpbmNsdWRlICJpOTE1X3NjaGVkdWxlci5o Igo+ICsKPiAraW50IF9faW5pdCBpOTE1X2dsb2JhbHNfaW5pdCh2b2lkKQo+ICt7Cj4gKwlpbnQg ZXJyOwo+ICsKPiArCWVyciA9IGk5MTVfZ2xvYmFsX2FjdGl2ZV9pbml0KCk7Cj4gKwlpZiAoZXJy KQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ICsJZXJyID0gaTkxNV9nbG9iYWxfcmVxdWVzdF9pbml0 KCk7Cj4gKwlpZiAoZXJyKQo+ICsJCWdvdG8gZXJyX2FjdGl2ZTsKPiArCj4gKwllcnIgPSBpOTE1 X2dsb2JhbF9zY2hlZHVsZXJfaW5pdCgpOwo+ICsJaWYgKGVycikKPiArCQlnb3RvIGVycl9yZXF1 ZXN0Owo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3JlcXVlc3Q6Cj4gKwlpOTE1X2dsb2Jh bF9yZXF1ZXN0X2V4aXQoKTsKPiArZXJyX2FjdGl2ZToKPiArCWk5MTVfZ2xvYmFsX2FjdGl2ZV9l eGl0KCk7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpOTE1X2dsb2Jh bHNfc2hyaW5rKHZvaWQpCj4gK3sKPiArCS8qCj4gKwkgKiBrbWVtX2NhY2hlX3NocmluaygpIGRp c2NhcmRzIGVtcHR5IHNsYWJzIGFuZCByZW9yZGVycyBwYXJ0aWFsbHkKPiArCSAqIGZpbGxlZCBz bGFicyB0byBwcmlvcml0aXNlIGFsbG9jYXRpbmcgZnJvbSB0aGUgbW9zdGx5IGZ1bGwgc2xhYnMs Cj4gKwkgKiB3aXRoIHRoZSBhaW0gb2YgcmVkdWNpbmcgZnJhZ21lbnRhdGlvbi4KPiArCSAqLwo+ ICsJaTkxNV9nbG9iYWxfYWN0aXZlX3NocmluaygpOwo+ICsJaTkxNV9nbG9iYWxfcmVxdWVzdF9z aHJpbmsoKTsKPiArCWk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9zaHJpbmsoKTsKPiArfQo+ICsKPiAr c3RhdGljIGF0b21pY190IGFjdGl2ZTsKPiArc3RhdGljIGF0b21pY190IGVwb2NoOwo+ICtzdHJ1 Y3QgcGFya193b3JrIHsKPiArCXN0cnVjdCByY3Vfd29yayB3b3JrOwo+ICsJaW50IGVwb2NoOwo+ ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgX19pOTE1X2dsb2JhbHNfcGFyayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0cnVjdCBwYXJrX3dvcmsgKndyayA9IGNvbnRhaW5lcl9v Zih3b3JrLCB0eXBlb2YoKndyayksIHdvcmsud29yayk7Cj4gKwo+ICsJLyogQ29uZmlybSBub3Ro aW5nIHdva2UgdXAgaW4gdGhlIGxhc3QgZ3JhY2UgcGVyaW9kICovCj4gKwlpZiAod3JrLT5lcG9j aCA9PSBhdG9taWNfcmVhZCgmZXBvY2gpKQo+ICsJCWk5MTVfZ2xvYmFsc19zaHJpbmsoKTsKPiAr Cj4gKwlrZnJlZSh3cmspOwo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfZ2xvYmFsc19wYXJrKHZvaWQp Cj4gK3sKPiArCXN0cnVjdCBwYXJrX3dvcmsgKndyazsKPiArCj4gKwkvKgo+ICsJICogRGVmZXIg c2hyaW5raW5nIHRoZSBnbG9iYWwgc2xhYiBjYWNoZXMgKGFuZCBvdGhlciB3b3JrKSB1bnRpbAo+ ICsJICogYWZ0ZXIgYSBSQ1UgZ3JhY2UgcGVyaW9kIGhhcyBjb21wbGV0ZWQgd2l0aCBubyBhY3Rp dml0eS4gVGhpcwo+ICsJICogaXMgdG8gdHJ5IGFuZCByZWR1Y2UgdGhlIGxhdGVuY3kgaW1wYWN0 IG9uIHRoZSBjb25zdW1lcnMgY2F1c2VkCj4gKwkgKiBieSB1cyBzaHJpbmtpbmcgdGhlIGNhY2hl cyB0aGUgc2FtZSB0aW1lIGFzIHRoZXkgYXJlIHRyeWluZyB0bwo+ICsJICogYWxsb2NhdGUsIHdp dGggdGhlIGFzc3VtcHRpb24gYmVpbmcgdGhhdCBpZiB3ZSBpZGxlIGxvbmcgZW5vdWdoCj4gKwkg KiBmb3IgYW4gUkNVIGdyYWNlIHBlcmlvZCB0byBlbGFwc2Ugc2luY2UgdGhlIGxhc3QgdXNlLCBp dCBpcyBsaWtlbHkKPiArCSAqIHRvIGJlIGxvbmdlciB1bnRpbCB3ZSBuZWVkIHRoZSBjYWNoZXMg YWdhaW4uCj4gKwkgKi8KPiArCWlmICghYXRvbWljX2RlY19hbmRfdGVzdCgmYWN0aXZlKSkKPiAr CQlyZXR1cm47Cj4gKwo+ICsJd3JrID0ga21hbGxvYyhzaXplb2YoKndyayksIEdGUF9LRVJORUwp Owo+ICsJaWYgKCF3cmspCj4gKwkJcmV0dXJuOwo+ICsKPiArCXdyay0+ZXBvY2ggPSBhdG9taWNf aW5jX3JldHVybigmZXBvY2gpOwo+ICsJSU5JVF9SQ1VfV09SSygmd3JrLT53b3JrLCBfX2k5MTVf Z2xvYmFsc19wYXJrKTsKPiArCXF1ZXVlX3JjdV93b3JrKHN5c3RlbV93cSwgJndyay0+d29yayk7 Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV9nbG9iYWxzX3VucGFyayh2b2lkKQo+ICt7Cj4gKwlhdG9t aWNfaW5jKCZlcG9jaCk7Cj4gKwlhdG9taWNfaW5jKCZhY3RpdmUpOwo+ICt9Cj4gKwo+ICt2b2lk IF9fZXhpdCBpOTE1X2dsb2JhbHNfZXhpdCh2b2lkKQo+ICt7Cj4gKwkvKiBGbHVzaCBhbnkgcmVz aWR1YWwgcGFya193b3JrICovCj4gKwlyY3VfYmFycmllcigpOwo+ICsJZmx1c2hfc2NoZWR1bGVk X3dvcmsoKTsKPiArCj4gKwlpOTE1X2dsb2JhbF9zY2hlZHVsZXJfZXhpdCgpOwo+ICsJaTkxNV9n bG9iYWxfcmVxdWVzdF9leGl0KCk7Cj4gKwlpOTE1X2dsb2JhbF9hY3RpdmVfZXhpdCgpOwo+ICsK PiArCS8qIEFuZCBlbnN1cmUgdGhhdCBvdXIgREVTVFJPWV9CWV9SQ1Ugc2xhYnMgYXJlIHRydWx5 IGRlc3Ryb3llZCAqLwo+ICsJcmN1X2JhcnJpZXIoKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2xvYmFscy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu LmU0NjhmMDQxM2E3Mwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dsb2JhbHMuaAo+IEBAIC0wLDAgKzEsMTUgQEAKPiArLyoKPiArICogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IE1JVAo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX0k5MTVfR0xPQkFMU19IXwo+ICsjZGVm aW5lIF9JOTE1X0dMT0JBTFNfSF8KPiArCj4gK2ludCBpOTE1X2dsb2JhbHNfaW5pdCh2b2lkKTsK PiArdm9pZCBpOTE1X2dsb2JhbHNfcGFyayh2b2lkKTsKPiArdm9pZCBpOTE1X2dsb2JhbHNfdW5w YXJrKHZvaWQpOwo+ICt2b2lkIGk5MTVfZ2xvYmFsc19leGl0KHZvaWQpOwo+ICsKPiArI2VuZGlm IC8qIF9JOTE1X0dMT0JBTFNfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBpbmRleCBj NGQ2YjhkYTliMDMuLmE5MjExYzM3MGNkMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BjaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ IEBAIC0yOCw4ICsyOCw4IEBACj4gICAKPiAgICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgo+ICAg Cj4gLSNpbmNsdWRlICJpOTE1X2FjdGl2ZS5oIgo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4g KyNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKPiAgICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0Lmgi Cj4gICAKPiAgICNkZWZpbmUgUExBVEZPUk0oeCkgLnBsYXRmb3JtID0gKHgpLCAucGxhdGZvcm1f bWFzayA9IEJJVCh4KQo+IEBAIC04MDIsNyArODAyLDkgQEAgc3RhdGljIGludCBfX2luaXQgaTkx NV9pbml0KHZvaWQpCj4gICAJYm9vbCB1c2Vfa21zID0gdHJ1ZTsKPiAgIAlpbnQgZXJyOwo+ICAg Cj4gLQlpOTE1X2dsb2JhbF9hY3RpdmVfaW5pdCgpOwo+ICsJZXJyID0gaTkxNV9nbG9iYWxzX2lu aXQoKTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiAgIAo+ICAgCWVyciA9IGk5MTVf bW9ja19zZWxmdGVzdHMoKTsKPiAgIAlpZiAoZXJyKQo+IEBAIC04MzUsNyArODM3LDcgQEAgc3Rh dGljIHZvaWQgX19leGl0IGk5MTVfZXhpdCh2b2lkKQo+ICAgCQlyZXR1cm47Cj4gICAKPiAgIAlw Y2lfdW5yZWdpc3Rlcl9kcml2ZXIoJmk5MTVfcGNpX2RyaXZlcik7Cj4gLQlpOTE1X2dsb2JhbF9h Y3RpdmVfZXhpdCgpOwo+ICsJaTkxNV9nbG9iYWxzX2V4aXQoKTsKPiAgIH0KPiAgIAo+ICAgbW9k dWxlX2luaXQoaTkxNV9pbml0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGlu ZGV4IDAwYTFlYTdjZDkwNy4uYzY1ZjZjOTkwZmRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZXF1ZXN0LmMKPiBAQCAtMzIsNiArMzIsMTEgQEAKPiAgICNpbmNsdWRlICJpOTE1X2FjdGl2 ZS5oIgo+ICAgI2luY2x1ZGUgImk5MTVfcmVzZXQuaCIKPiAgIAo+ICtzdGF0aWMgc3RydWN0IGk5 MTVfZ2xvYmFsX3JlcXVlc3Qgewo+ICsJc3RydWN0IGttZW1fY2FjaGUgKnNsYWJfcmVxdWVzdHM7 Cj4gKwlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYl9kZXBlbmRlbmNpZXM7Cj4gK30gZ2xvYmFsOwo+ ICsKPiAgIHN0YXRpYyBjb25zdCBjaGFyICppOTE1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKPiAgIHsKPiAgIAlyZXR1cm4gImk5MTUiOwo+IEBAIC04Niw3 ICs5MSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKPiAgIAkgKi8KPiAgIAlpOTE1X3N3X2ZlbmNlX2ZpbmkoJnJxLT5zdWJtaXQpOwo+ ICAgCj4gLQlrbWVtX2NhY2hlX2ZyZWUocnEtPmk5MTUtPnJlcXVlc3RzLCBycSk7Cj4gKwlrbWVt X2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfcmVxdWVzdHMsIHJxKTsKPiAgIH0KPiAgIAo+ICAgY29u c3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgaTkxNV9mZW5jZV9vcHMgPSB7Cj4gQEAgLTI5Miw3ICsy OTcsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJlcXVlc3QpCj4gICAKPiAgIAl1bnJlc2VydmVfZ3QocmVxdWVzdC0+aTkxNSk7Cj4gICAK PiAtCWk5MTVfc2NoZWRfbm9kZV9maW5pKHJlcXVlc3QtPmk5MTUsICZyZXF1ZXN0LT5zY2hlZCk7 Cj4gKwlpOTE1X3NjaGVkX25vZGVfZmluaSgmcmVxdWVzdC0+c2NoZWQpOwo+ICAgCWk5MTVfcmVx dWVzdF9wdXQocmVxdWVzdCk7Cj4gICB9Cj4gICAKPiBAQCAtNTA2LDcgKzUxMSw3IEBAIGk5MTVf cmVxdWVzdF9hbGxvY19zbG93KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiAgIAlyaW5nX3Jl dGlyZV9yZXF1ZXN0cyhyaW5nKTsKPiAgIAo+ICAgb3V0Ogo+IC0JcmV0dXJuIGttZW1fY2FjaGVf YWxsb2MoY2UtPmdlbV9jb250ZXh0LT5pOTE1LT5yZXF1ZXN0cywgR0ZQX0tFUk5FTCk7Cj4gKwly ZXR1cm4ga21lbV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9yZXF1ZXN0cywgR0ZQX0tFUk5FTCk7 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgYWRkX3RpbWVsaW5lX2JhcnJpZXIoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCj4gQEAgLTU5NCw3ICs1OTksNyBAQCBpOTE1X3JlcXVlc3RfYWxsb2Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4KQo+ICAgCSAqCj4gICAJICogRG8gbm90IHVzZSBrbWVtX2NhY2hlX3phbGxvYygpIGhlcmUh Cj4gICAJICovCj4gLQlycSA9IGttZW1fY2FjaGVfYWxsb2MoaTkxNS0+cmVxdWVzdHMsCj4gKwly cSA9IGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJfcmVxdWVzdHMsCj4gICAJCQkgICAgICBH RlBfS0VSTkVMIHwgX19HRlBfUkVUUllfTUFZRkFJTCB8IF9fR0ZQX05PV0FSTik7Cj4gICAJaWYg KHVubGlrZWx5KCFycSkpIHsKPiAgIAkJcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2Nfc2xvdyhjZSk7 Cj4gQEAgLTY4MSw3ICs2ODYsNyBAQCBpOTE1X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICAgCUdFTV9C VUdfT04oIWxpc3RfZW1wdHkoJnJxLT5zY2hlZC5zaWduYWxlcnNfbGlzdCkpOwo+ICAgCUdFTV9C VUdfT04oIWxpc3RfZW1wdHkoJnJxLT5zY2hlZC53YWl0ZXJzX2xpc3QpKTsKPiAgIAo+IC0Ja21l bV9jYWNoZV9mcmVlKGk5MTUtPnJlcXVlc3RzLCBycSk7Cj4gKwlrbWVtX2NhY2hlX2ZyZWUoZ2xv YmFsLnNsYWJfcmVxdWVzdHMsIHJxKTsKPiAgIGVycl91bnJlc2VydmU6Cj4gICAJdW5yZXNlcnZl X2d0KGk5MTUpOwo+ICAgCWludGVsX2NvbnRleHRfdW5waW4oY2UpOwo+IEBAIC03MDAsOSArNzA1 LDcgQEAgaTkxNV9yZXF1ZXN0X2F3YWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqdG8s IHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20pCj4gICAJCXJldHVybiAwOwo+ICAgCj4gICAJaWYg KHRvLT5lbmdpbmUtPnNjaGVkdWxlKSB7Cj4gLQkJcmV0ID0gaTkxNV9zY2hlZF9ub2RlX2FkZF9k ZXBlbmRlbmN5KHRvLT5pOTE1LAo+IC0JCQkJCQkgICAgICZ0by0+c2NoZWQsCj4gLQkJCQkJCSAg ICAgJmZyb20tPnNjaGVkKTsKPiArCQlyZXQgPSBpOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVu Y3koJnRvLT5zY2hlZCwgJmZyb20tPnNjaGVkKTsKPiAgIAkJaWYgKHJldCA8IDApCj4gICAJCQly ZXR1cm4gcmV0Owo+ICAgCX0KPiBAQCAtMTE5MCwzICsxMTkzLDM3IEBAIHZvaWQgaTkxNV9yZXRp cmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAjaW5jbHVkZSAi c2VsZnRlc3RzL21vY2tfcmVxdWVzdC5jIgo+ICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3Jl cXVlc3QuYyIKPiAgICNlbmRpZgo+ICsKPiAraW50IF9faW5pdCBpOTE1X2dsb2JhbF9yZXF1ZXN0 X2luaXQodm9pZCkKPiArewo+ICsJZ2xvYmFsLnNsYWJfcmVxdWVzdHMgPSBLTUVNX0NBQ0hFKGk5 MTVfcmVxdWVzdCwKPiArCQkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiB8Cj4gKwkJCQkJICBTTEFC X1JFQ0xBSU1fQUNDT1VOVCB8Cj4gKwkJCQkJICBTTEFCX1RZUEVTQUZFX0JZX1JDVSk7Cj4gKwlp ZiAoIWdsb2JhbC5zbGFiX3JlcXVlc3RzKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWds b2JhbC5zbGFiX2RlcGVuZGVuY2llcyA9IEtNRU1fQ0FDSEUoaTkxNV9kZXBlbmRlbmN5LAo+ICsJ CQkJCSAgICAgIFNMQUJfSFdDQUNIRV9BTElHTiB8Cj4gKwkJCQkJICAgICAgU0xBQl9SRUNMQUlN X0FDQ09VTlQpOwo+ICsJaWYgKCFnbG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMpCj4gKwkJZ290byBl cnJfcmVxdWVzdHM7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfcmVxdWVzdHM6Cj4gKwlr bWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFsLnNsYWJfcmVxdWVzdHMpOwo+ICsJcmV0dXJuIC1FTk9N RU07Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV9nbG9iYWxfcmVxdWVzdF9zaHJpbmsodm9pZCkKPiAr ewo+ICsJa21lbV9jYWNoZV9zaHJpbmsoZ2xvYmFsLnNsYWJfZGVwZW5kZW5jaWVzKTsKPiArCWtt ZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFiX3JlcXVlc3RzKTsKPiArfQo+ICsKPiArdm9pZCBp OTE1X2dsb2JhbF9yZXF1ZXN0X2V4aXQodm9pZCkKPiArewo+ICsJa21lbV9jYWNoZV9kZXN0cm95 KGdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcyk7Cj4gKwlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFs LnNsYWJfcmVxdWVzdHMpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiBp bmRleCAxZTEyN2MxYzUzZmEuLmJlM2RlZDZiY2Y1NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVxdWVzdC5oCj4gQEAgLTI5LDYgKzI5LDcgQEAKPiAgIAo+ICAgI2luY2x1ZGUgImk5MTVf Z2VtLmgiCj4gICAjaW5jbHVkZSAiaTkxNV9zY2hlZHVsZXIuaCIKPiArI2luY2x1ZGUgImk5MTVf c2VsZnRlc3QuaCIKPiAgICNpbmNsdWRlICJpOTE1X3N3X2ZlbmNlLmgiCj4gICAKPiAgICNpbmNs dWRlIDx1YXBpL2RybS9pOTE1X2RybS5oPgo+IEBAIC0xOTYsNiArMTk3LDExIEBAIHN0cnVjdCBp OTE1X3JlcXVlc3Qgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJp djsKPiAgIAkvKiogZmlsZV9wcml2IGxpc3QgZW50cnkgZm9yIHRoaXMgcmVxdWVzdCAqLwo+ICAg CXN0cnVjdCBsaXN0X2hlYWQgY2xpZW50X2xpbms7Cj4gKwo+ICsJSTkxNV9TRUxGVEVTVF9ERUNM QVJFKHN0cnVjdCB7Cj4gKwkJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+ICsJCXVuc2lnbmVkIGxv bmcgZGVsYXk7Cj4gKwl9IG1vY2s7KQo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSBJOTE1X0ZFTkNF X0dGUCAoR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFVFJZX01BWUZBSUwgfCBfX0dGUF9OT1dBUk4pCj4g QEAgLTM3MSw0ICszNzcsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9yZXF1ZXN0X21hcmtf Y29tcGxldGUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gICAKPiAgIHZvaWQgaTkxNV9yZXRp cmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICAgCj4gK2ludCBp OTE1X2dsb2JhbF9yZXF1ZXN0X2luaXQodm9pZCk7Cj4gK3ZvaWQgaTkxNV9nbG9iYWxfcmVxdWVz dF9zaHJpbmsodm9pZCk7Cj4gK3ZvaWQgaTkxNV9nbG9iYWxfcmVxdWVzdF9leGl0KHZvaWQpOwo+ ICsKPiAgICNlbmRpZiAvKiBJOTE1X1JFUVVFU1RfSCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9zY2hlZHVsZXIuYwo+IGluZGV4IDlmYjk2ZmY1N2EyOS4uNTAwMThhZDMwMjMzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4gQEAgLTEwLDYgKzEwLDExIEBACj4g ICAjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCj4gICAjaW5jbHVkZSAiaTkxNV9zY2hlZHVsZXIu aCIKPiAgIAo+ICtzdGF0aWMgc3RydWN0IGk5MTVfZ2xvYmFsX3NjaGVkdWxlciB7Cj4gKwlzdHJ1 Y3Qga21lbV9jYWNoZSAqc2xhYl9kZXBlbmRlbmNpZXM7Cj4gKwlzdHJ1Y3Qga21lbV9jYWNoZSAq c2xhYl9wcmlvcml0aWVzOwo+ICt9IGdsb2JhbDsKPiArCj4gICBzdGF0aWMgREVGSU5FX1NQSU5M T0NLKHNjaGVkdWxlX2xvY2spOwo+ICAgCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcmVx dWVzdCAqCj4gQEAgLTM3LDE2ICs0MiwxNSBAQCB2b2lkIGk5MTVfc2NoZWRfbm9kZV9pbml0KHN0 cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUpCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9kZXBlbmRlbmN5ICoKPiAtaTkxNV9kZXBlbmRlbmN5X2FsbG9jKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICtpOTE1X2RlcGVuZGVuY3lfYWxsb2Modm9pZCkKPiAgIHsKPiAt CXJldHVybiBrbWVtX2NhY2hlX2FsbG9jKGk5MTUtPmRlcGVuZGVuY2llcywgR0ZQX0tFUk5FTCk7 Cj4gKwlyZXR1cm4ga21lbV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMsIEdG UF9LRVJORUwpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZAo+IC1pOTE1X2RlcGVuZGVuY3lf ZnJlZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCQkgICAgIHN0cnVjdCBpOTE1 X2RlcGVuZGVuY3kgKmRlcCkKPiAraTkxNV9kZXBlbmRlbmN5X2ZyZWUoc3RydWN0IGk5MTVfZGVw ZW5kZW5jeSAqZGVwKQo+ICAgewo+IC0Ja21lbV9jYWNoZV9mcmVlKGk5MTUtPmRlcGVuZGVuY2ll cywgZGVwKTsKPiArCWttZW1fY2FjaGVfZnJlZShnbG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMsIGRl cCk7Cj4gICB9Cj4gICAKPiAgIGJvb2wgX19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3ko c3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiBAQCAtNzMsMjUgKzc3LDIzIEBAIGJvb2wg X19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAq bm9kZSwKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gLWludCBpOTE1X3NjaGVkX25vZGVf YWRkX2RlcGVuZGVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCQkgICBz dHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLAo+ICtpbnQgaTkxNV9zY2hlZF9ub2RlX2FkZF9k ZXBlbmRlbmN5KHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gICAJCQkJICAgc3RydWN0 IGk5MTVfc2NoZWRfbm9kZSAqc2lnbmFsKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X2RlcGVuZGVu Y3kgKmRlcDsKPiAgIAo+IC0JZGVwID0gaTkxNV9kZXBlbmRlbmN5X2FsbG9jKGk5MTUpOwo+ICsJ ZGVwID0gaTkxNV9kZXBlbmRlbmN5X2FsbG9jKCk7Cj4gICAJaWYgKCFkZXApCj4gICAJCXJldHVy biAtRU5PTUVNOwo+ICAgCj4gICAJaWYgKCFfX2k5MTVfc2NoZWRfbm9kZV9hZGRfZGVwZW5kZW5j eShub2RlLCBzaWduYWwsIGRlcCwKPiAgIAkJCQkJICAgICAgSTkxNV9ERVBFTkRFTkNZX0FMTE9D KSkKPiAtCQlpOTE1X2RlcGVuZGVuY3lfZnJlZShpOTE1LCBkZXApOwo+ICsJCWk5MTVfZGVwZW5k ZW5jeV9mcmVlKGRlcCk7Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC12b2lkIGk5 MTVfc2NoZWRfbm9kZV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+IC0JCQkg IHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUpCj4gK3ZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zp bmkoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV9k ZXBlbmRlbmN5ICpkZXAsICp0bXA7Cj4gICAKPiBAQCAtMTExLDcgKzExMyw3IEBAIHZvaWQgaTkx NV9zY2hlZF9ub2RlX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAKPiAg IAkJbGlzdF9kZWwoJmRlcC0+d2FpdF9saW5rKTsKPiAgIAkJaWYgKGRlcC0+ZmxhZ3MgJiBJOTE1 X0RFUEVOREVOQ1lfQUxMT0MpCj4gLQkJCWk5MTVfZGVwZW5kZW5jeV9mcmVlKGk5MTUsIGRlcCk7 Cj4gKwkJCWk5MTVfZGVwZW5kZW5jeV9mcmVlKGRlcCk7Cj4gICAJfQo+ICAgCj4gICAJLyogUmVt b3ZlIG91cnNlbHZlcyBmcm9tIGV2ZXJ5b25lIHdobyBkZXBlbmRzIHVwb24gdXMgKi8KPiBAQCAt MTIxLDcgKzEyMyw3IEBAIHZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCj4gICAKPiAgIAkJbGlzdF9kZWwoJmRlcC0+c2lnbmFsX2xpbmspOwo+ ICAgCQlpZiAoZGVwLT5mbGFncyAmIEk5MTVfREVQRU5ERU5DWV9BTExPQykKPiAtCQkJaTkxNV9k ZXBlbmRlbmN5X2ZyZWUoaTkxNSwgZGVwKTsKPiArCQkJaTkxNV9kZXBlbmRlbmN5X2ZyZWUoZGVw KTsKPiAgIAl9Cj4gICAKPiAgIAlzcGluX3VubG9jaygmc2NoZWR1bGVfbG9jayk7Cj4gQEAgLTE5 OCw3ICsyMDAsNyBAQCBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsIGludCBwcmlvKQo+ICAgCWlmIChwcmlvID09IEk5MTVfUFJJT1JJVFlf Tk9STUFMKSB7Cj4gICAJCXAgPSAmZXhlY2xpc3RzLT5kZWZhdWx0X3ByaW9saXN0Owo+ICAgCX0g ZWxzZSB7Cj4gLQkJcCA9IGttZW1fY2FjaGVfYWxsb2MoZW5naW5lLT5pOTE1LT5wcmlvcml0aWVz LCBHRlBfQVRPTUlDKTsKPiArCQlwID0ga21lbV9jYWNoZV9hbGxvYyhnbG9iYWwuc2xhYl9wcmlv cml0aWVzLCBHRlBfQVRPTUlDKTsKPiAgIAkJLyogQ29udmVydCBhbiBhbGxvY2F0aW9uIGZhaWx1 cmUgdG8gYSBwcmlvcml0eSBidW1wICovCj4gICAJCWlmICh1bmxpa2VseSghcCkpIHsKPiAgIAkJ CXByaW8gPSBJOTE1X1BSSU9SSVRZX05PUk1BTDsgLyogcmVjdXJzZXMganVzdCBvbmNlICovCj4g QEAgLTQyMywzICs0MjUsMzkgQEAgdm9pZCBpOTE1X3NjaGVkdWxlX2J1bXBfcHJpb3JpdHkoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnEsIHVuc2lnbmVkIGludCBidW1wKQo+ICAgCj4gICAJc3Bpbl91 bmxvY2tfYmgoJnNjaGVkdWxlX2xvY2spOwo+ICAgfQo+ICsKPiArdm9pZCBfX2k5MTVfcHJpb2xp c3RfZnJlZShzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCkKPiArewo+ICsJa21lbV9jYWNoZV9mcmVl KGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMsIHApOwo+ICt9Cj4gKwo+ICtpbnQgX19pbml0IGk5MTVf Z2xvYmFsX3NjaGVkdWxlcl9pbml0KHZvaWQpCj4gK3sKPiArCWdsb2JhbC5zbGFiX2RlcGVuZGVu Y2llcyA9IEtNRU1fQ0FDSEUoaTkxNV9kZXBlbmRlbmN5LAo+ICsJCQkJCSAgICAgIFNMQUJfSFdD QUNIRV9BTElHTik7Cj4gKwlpZiAoIWdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcykKPiArCQlyZXR1 cm4gLUVOT01FTTsKPiArCj4gKwlnbG9iYWwuc2xhYl9wcmlvcml0aWVzID0gS01FTV9DQUNIRShp OTE1X3ByaW9saXN0LAo+ICsJCQkJCSAgICBTTEFCX0hXQ0FDSEVfQUxJR04pOwo+ICsJaWYgKCFn bG9iYWwuc2xhYl9wcmlvcml0aWVzKQo+ICsJCWdvdG8gZXJyX3ByaW9yaXRpZXM7Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gKwo+ICtlcnJfcHJpb3JpdGllczoKPiArCWttZW1fY2FjaGVfZGVzdHJveShn bG9iYWwuc2xhYl9wcmlvcml0aWVzKTsKPiArCXJldHVybiAtRU5PTUVNOwo+ICt9Cj4gKwo+ICt2 b2lkIGk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9zaHJpbmsodm9pZCkKPiArewo+ICsJa21lbV9jYWNo ZV9zaHJpbmsoZ2xvYmFsLnNsYWJfZGVwZW5kZW5jaWVzKTsKPiArCWttZW1fY2FjaGVfc2hyaW5r KGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMpOwo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfZ2xvYmFsX3Nj aGVkdWxlcl9leGl0KHZvaWQpCj4gK3sKPiArCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xh Yl9kZXBlbmRlbmNpZXMpOwo+ICsJa21lbV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFiX3ByaW9y aXRpZXMpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCj4gaW5kZXgg NTRiZDZjODk4MTdlLi41MTk2Y2UwN2I2YzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c2NoZWR1bGVyLmgKPiBAQCAtODUsNiArODUsMjMgQEAgc3RydWN0IGk5MTVfZGVwZW5kZW5jeSB7 Cj4gICAjZGVmaW5lIEk5MTVfREVQRU5ERU5DWV9BTExPQyBCSVQoMCkKPiAgIH07Cj4gICAKPiAr c3RydWN0IGk5MTVfcHJpb2xpc3Qgewo+ICsJc3RydWN0IGxpc3RfaGVhZCByZXF1ZXN0c1tJOTE1 X1BSSU9SSVRZX0NPVU5UXTsKPiArCXN0cnVjdCByYl9ub2RlIG5vZGU7Cj4gKwl1bnNpZ25lZCBs b25nIHVzZWQ7Cj4gKwlpbnQgcHJpb3JpdHk7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIHByaW9saXN0 X2Zvcl9lYWNoX3JlcXVlc3QoaXQsIHBsaXN0LCBpZHgpIFwKPiArCWZvciAoaWR4ID0gMDsgaWR4 IDwgQVJSQVlfU0laRSgocGxpc3QpLT5yZXF1ZXN0cyk7IGlkeCsrKSBcCj4gKwkJbGlzdF9mb3Jf ZWFjaF9lbnRyeShpdCwgJihwbGlzdCktPnJlcXVlc3RzW2lkeF0sIHNjaGVkLmxpbmspCj4gKwo+ ICsjZGVmaW5lIHByaW9saXN0X2Zvcl9lYWNoX3JlcXVlc3RfY29uc3VtZShpdCwgbiwgcGxpc3Qs IGlkeCkgXAo+ICsJZm9yICg7IChpZHggPSBmZnMoKHBsaXN0KS0+dXNlZCkpOyAocGxpc3QpLT51 c2VkICY9IH5CSVQoaWR4IC0gMSkpIFwKPiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaXQs IG4sIFwKPiArCQkJCQkgJihwbGlzdCktPnJlcXVlc3RzW2lkeCAtIDFdLCBcCj4gKwkJCQkJIHNj aGVkLmxpbmspCj4gKwo+ICAgdm9pZCBpOTE1X3NjaGVkX25vZGVfaW5pdChzdHJ1Y3QgaTkxNV9z Y2hlZF9ub2RlICpub2RlKTsKPiAgIAo+ICAgYm9vbCBfX2k5MTVfc2NoZWRfbm9kZV9hZGRfZGVw ZW5kZW5jeShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLAo+IEBAIC05MiwxMiArMTA5LDEw IEBAIGJvb2wgX19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0IGk5MTVfc2No ZWRfbm9kZSAqbm9kZSwKPiAgIAkJCQkgICAgICBzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5ICpkZXAs Cj4gICAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7Cj4gICAKPiAtaW50IGk5MTVfc2No ZWRfbm9kZV9hZGRfZGVwZW5kZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAt CQkJCSAgIHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gK2ludCBpOTE1X3NjaGVkX25v ZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgIAkJCQkg ICBzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpzaWduYWwpOwo+ICAgCj4gLXZvaWQgaTkxNV9zY2hl ZF9ub2RlX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCSAgc3RydWN0 IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSk7Cj4gK3ZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3Ry dWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSk7Cj4gICAKPiAgIHZvaWQgaTkxNV9zY2hlZHVsZShz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCQkgICBjb25zdCBzdHJ1Y3QgaTkxNV9z Y2hlZF9hdHRyICphdHRyKTsKPiBAQCAtMTA3LDQgKzEyMiwxNSBAQCB2b2lkIGk5MTVfc2NoZWR1 bGVfYnVtcF9wcmlvcml0eShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgaW50IGJ1 bXApOwo+ICAgc3RydWN0IGxpc3RfaGVhZCAqCj4gICBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlz dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBwcmlvKTsKPiAgIAo+ICt2b2lk IF9faTkxNV9wcmlvbGlzdF9mcmVlKHN0cnVjdCBpOTE1X3ByaW9saXN0ICpwKTsKPiArc3RhdGlj IGlubGluZSB2b2lkIGk5MTVfcHJpb2xpc3RfZnJlZShzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCkK PiArewo+ICsJaWYgKHAtPnByaW9yaXR5ICE9IEk5MTVfUFJJT1JJVFlfTk9STUFMKQo+ICsJCV9f aTkxNV9wcmlvbGlzdF9mcmVlKHApOwo+ICt9Cj4gKwo+ICtpbnQgaTkxNV9nbG9iYWxfc2NoZWR1 bGVyX2luaXQodm9pZCk7Cj4gK3ZvaWQgaTkxNV9nbG9iYWxfc2NoZWR1bGVyX3Nocmluayh2b2lk KTsKPiArdm9pZCBpOTE1X2dsb2JhbF9zY2hlZHVsZXJfZXhpdCh2b2lkKTsKPiArCj4gICAjZW5k aWYgLyogX0k5MTVfU0NIRURVTEVSX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggYTI4NDZlYTFlNjJjLi41NmJhMmZjYmFiZTYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAt NzgxLDggKzc4MSw3IEBAIHN0YXRpYyBib29sIF9fZ3VjX2RlcXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAgCQl9Cj4gICAKPiAgIAkJcmJfZXJhc2VfY2FjaGVkKCZwLT5u b2RlLCAmZXhlY2xpc3RzLT5xdWV1ZSk7Cj4gLQkJaWYgKHAtPnByaW9yaXR5ICE9IEk5MTVfUFJJ T1JJVFlfTk9STUFMKQo+IC0JCQlrbWVtX2NhY2hlX2ZyZWUoZW5naW5lLT5pOTE1LT5wcmlvcml0 aWVzLCBwKTsKPiArCQlpOTE1X3ByaW9saXN0X2ZyZWUocCk7Cj4gICAJfQo+ICAgZG9uZToKPiAg IAlleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQgPQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4gaW5kZXggZGJhMTliYWY2ODA4Li4yOWIyYTJmMzRlZGIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwo+IEBAIC04MTgsOCArODE4LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3Rz X2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCQl9Cj4gICAKPiAg IAkJcmJfZXJhc2VfY2FjaGVkKCZwLT5ub2RlLCAmZXhlY2xpc3RzLT5xdWV1ZSk7Cj4gLQkJaWYg KHAtPnByaW9yaXR5ICE9IEk5MTVfUFJJT1JJVFlfTk9STUFMKQo+IC0JCQlrbWVtX2NhY2hlX2Zy ZWUoZW5naW5lLT5pOTE1LT5wcmlvcml0aWVzLCBwKTsKPiArCQlpOTE1X3ByaW9saXN0X2ZyZWUo cCk7Cj4gICAJfQo+ICAgCj4gICBkb25lOgo+IEBAIC05NzIsOCArOTcxLDcgQEAgc3RhdGljIHZv aWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gICAJCX0KPiAgIAo+ICAgCQlyYl9lcmFzZV9jYWNoZWQoJnAtPm5vZGUsICZleGVjbGlz dHMtPnF1ZXVlKTsKPiAtCQlpZiAocC0+cHJpb3JpdHkgIT0gSTkxNV9QUklPUklUWV9OT1JNQUwp Cj4gLQkJCWttZW1fY2FjaGVfZnJlZShlbmdpbmUtPmk5MTUtPnByaW9yaXRpZXMsIHApOwo+ICsJ CWk5MTVfcHJpb2xpc3RfZnJlZShwKTsKPiAgIAl9Cj4gICAKPiAgIAkvKiBSZW1haW5pbmcgX3Vu cmVhZHlfIHJlcXVlc3RzIHdpbGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IGRlOGRiYTc1NjViMC4uNTI4 NGYyNDM5MzFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ IEBAIC0xODcsMjMgKzE4Nyw2IEBAIGVudW0gaW50ZWxfZW5naW5lX2lkIHsKPiAgICNkZWZpbmUg X1ZFQ1MobikgKFZFQ1MgKyAobikpCj4gICB9Owo+ICAgCj4gLXN0cnVjdCBpOTE1X3ByaW9saXN0 IHsKPiAtCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHNbSTkxNV9QUklPUklUWV9DT1VOVF07Cj4g LQlzdHJ1Y3QgcmJfbm9kZSBub2RlOwo+IC0JdW5zaWduZWQgbG9uZyB1c2VkOwo+IC0JaW50IHBy aW9yaXR5Owo+IC19Owo+IC0KPiAtI2RlZmluZSBwcmlvbGlzdF9mb3JfZWFjaF9yZXF1ZXN0KGl0 LCBwbGlzdCwgaWR4KSBcCj4gLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoKHBsaXN0 KS0+cmVxdWVzdHMpOyBpZHgrKykgXAo+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnkoaXQsICYocGxp c3QpLT5yZXF1ZXN0c1tpZHhdLCBzY2hlZC5saW5rKQo+IC0KPiAtI2RlZmluZSBwcmlvbGlzdF9m b3JfZWFjaF9yZXF1ZXN0X2NvbnN1bWUoaXQsIG4sIHBsaXN0LCBpZHgpIFwKPiAtCWZvciAoOyAo aWR4ID0gZmZzKChwbGlzdCktPnVzZWQpKTsgKHBsaXN0KS0+dXNlZCAmPSB+QklUKGlkeCAtIDEp KSBcCj4gLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGl0LCBuLCBcCj4gLQkJCQkJICYocGxp c3QpLT5yZXF1ZXN0c1tpZHggLSAxXSwgXAo+IC0JCQkJCSBzY2hlZC5saW5rKQo+IC0KPiAgIHN0 cnVjdCBzdF9wcmVlbXB0X2hhbmcgewo+ICAgCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247 Cj4gICAJdW5zaWduZWQgaW50IGNvdW50Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaW50ZWxfbHJjLmMKPiBpbmRleCA3MTcyZjZjN2YyNWEuLjJkNTgyYTIxZWJhOSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiBAQCAtNDQxLDcg KzQ0MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpkdW1teV9yZXF1ZXN0KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHN0YXRpYyB2b2lkIGR1bW15X3JlcXVlc3Rf ZnJlZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpkdW1teSkKPiAgIHsKPiAgIAlpOTE1X3JlcXVlc3Rf bWFya19jb21wbGV0ZShkdW1teSk7Cj4gLQlpOTE1X3NjaGVkX25vZGVfZmluaShkdW1teS0+ZW5n aW5lLT5pOTE1LCAmZHVtbXktPnNjaGVkKTsKPiArCWk5MTVfc2NoZWRfbm9kZV9maW5pKCZkdW1t eS0+c2NoZWQpOwo+ICAgCWk5MTVfc3dfZmVuY2VfZmluaSgmZHVtbXktPnN1Ym1pdCk7Cj4gICAK PiAgIAlkbWFfZmVuY2VfZnJlZSgmZHVtbXktPmZlbmNlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+IGluZGV4IDZmM2ZiODAzYzc0Ny4uZWMxYWU5 NDg5NTRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2VuZ2luZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5n aW5lLmMKPiBAQCAtNzYsMjYgKzc2LDI2IEBAIHN0YXRpYyB2b2lkIG1vY2tfcmluZ19mcmVlKHN0 cnVjdCBpbnRlbF9yaW5nICpiYXNlKQo+ICAgCWtmcmVlKHJpbmcpOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyBzdHJ1Y3QgbW9ja19yZXF1ZXN0ICpmaXJzdF9yZXF1ZXN0KHN0cnVjdCBtb2NrX2VuZ2lu ZSAqZW5naW5lKQo+ICtzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqZmlyc3RfcmVxdWVzdChz dHJ1Y3QgbW9ja19lbmdpbmUgKmVuZ2luZSkKPiAgIHsKPiAgIAlyZXR1cm4gbGlzdF9maXJzdF9l bnRyeV9vcl9udWxsKCZlbmdpbmUtPmh3X3F1ZXVlLAo+IC0JCQkJCXN0cnVjdCBtb2NrX3JlcXVl c3QsCj4gLQkJCQkJbGluayk7Cj4gKwkJCQkJc3RydWN0IGk5MTVfcmVxdWVzdCwKPiArCQkJCQlt b2NrLmxpbmspOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGFkdmFuY2Uoc3RydWN0IG1vY2tf cmVxdWVzdCAqcmVxdWVzdCkKPiArc3RhdGljIHZvaWQgYWR2YW5jZShzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0KQo+ICAgewo+IC0JbGlzdF9kZWxfaW5pdCgmcmVxdWVzdC0+bGluayk7Cj4g LQlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZSgmcmVxdWVzdC0+YmFzZSk7Cj4gLQlHRU1fQlVH X09OKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKCZyZXF1ZXN0LT5iYXNlKSk7Cj4gKwlsaXN0X2Rl bF9pbml0KCZyZXF1ZXN0LT5tb2NrLmxpbmspOwo+ICsJaTkxNV9yZXF1ZXN0X21hcmtfY29tcGxl dGUocmVxdWVzdCk7Cj4gKwlHRU1fQlVHX09OKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVl c3QpKTsKPiAgIAo+IC0JaW50ZWxfZW5naW5lX3F1ZXVlX2JyZWFkY3J1bWJzKHJlcXVlc3QtPmJh c2UuZW5naW5lKTsKPiArCWludGVsX2VuZ2luZV9xdWV1ZV9icmVhZGNydW1icyhyZXF1ZXN0LT5l bmdpbmUpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBod19kZWxheV9jb21wbGV0ZShzdHJ1 Y3QgdGltZXJfbGlzdCAqdCkKPiAgIHsKPiAgIAlzdHJ1Y3QgbW9ja19lbmdpbmUgKmVuZ2luZSA9 IGZyb21fdGltZXIoZW5naW5lLCB0LCBod19kZWxheSk7Cj4gLQlzdHJ1Y3QgbW9ja19yZXF1ZXN0 ICpyZXF1ZXN0Owo+ICsJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKPiAgIAl1bnNpZ25l ZCBsb25nIGZsYWdzOwo+ICAgCj4gICAJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+aHdfbG9j aywgZmxhZ3MpOwo+IEBAIC0xMTAsOCArMTEwLDkgQEAgc3RhdGljIHZvaWQgaHdfZGVsYXlfY29t cGxldGUoc3RydWN0IHRpbWVyX2xpc3QgKnQpCj4gICAJICogcmVxdWV1ZSB0aGUgdGltZXIgZm9y IHRoZSBuZXh0IGRlbGF5ZWQgcmVxdWVzdC4KPiAgIAkgKi8KPiAgIAl3aGlsZSAoKHJlcXVlc3Qg PSBmaXJzdF9yZXF1ZXN0KGVuZ2luZSkpKSB7Cj4gLQkJaWYgKHJlcXVlc3QtPmRlbGF5KSB7Cj4g LQkJCW1vZF90aW1lcigmZW5naW5lLT5od19kZWxheSwgamlmZmllcyArIHJlcXVlc3QtPmRlbGF5 KTsKPiArCQlpZiAocmVxdWVzdC0+bW9jay5kZWxheSkgewo+ICsJCQltb2RfdGltZXIoJmVuZ2lu ZS0+aHdfZGVsYXksCj4gKwkJCQkgIGppZmZpZXMgKyByZXF1ZXN0LT5tb2NrLmRlbGF5KTsKPiAg IAkJCWJyZWFrOwo+ICAgCQl9Cj4gICAKPiBAQCAtMTY5LDEwICsxNzAsOCBAQCBtb2NrX2NvbnRl eHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAo+ICAgc3RhdGljIGlu dCBtb2NrX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIHsK PiAtCXN0cnVjdCBtb2NrX3JlcXVlc3QgKm1vY2sgPSBjb250YWluZXJfb2YocmVxdWVzdCwgdHlw ZW9mKCptb2NrKSwgYmFzZSk7Cj4gLQo+IC0JSU5JVF9MSVNUX0hFQUQoJm1vY2stPmxpbmspOwo+ IC0JbW9jay0+ZGVsYXkgPSAwOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnJlcXVlc3QtPm1vY2subGlu ayk7Cj4gKwlyZXF1ZXN0LT5tb2NrLmRlbGF5ID0gMDsKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAg fQo+IEBAIC0xOTAsNyArMTg5LDYgQEAgc3RhdGljIHUzMiAqbW9ja19lbWl0X2JyZWFkY3J1bWIo c3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykKPiAgIAo+ICAgc3RhdGljIHZv aWQgbW9ja19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAg ewo+IC0Jc3RydWN0IG1vY2tfcmVxdWVzdCAqbW9jayA9IGNvbnRhaW5lcl9vZihyZXF1ZXN0LCB0 eXBlb2YoKm1vY2spLCBiYXNlKTsKPiAgIAlzdHJ1Y3QgbW9ja19lbmdpbmUgKmVuZ2luZSA9Cj4g ICAJCWNvbnRhaW5lcl9vZihyZXF1ZXN0LT5lbmdpbmUsIHR5cGVvZigqZW5naW5lKSwgYmFzZSk7 Cj4gICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBAQCAtMTk4LDEyICsxOTYsMTMgQEAgc3RhdGlj IHZvaWQgbW9ja19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ ICAgCWk5MTVfcmVxdWVzdF9zdWJtaXQocmVxdWVzdCk7Cj4gICAKPiAgIAlzcGluX2xvY2tfaXJx c2F2ZSgmZW5naW5lLT5od19sb2NrLCBmbGFncyk7Cj4gLQlsaXN0X2FkZF90YWlsKCZtb2NrLT5s aW5rLCAmZW5naW5lLT5od19xdWV1ZSk7Cj4gLQlpZiAobW9jay0+bGluay5wcmV2ID09ICZlbmdp bmUtPmh3X3F1ZXVlKSB7Cj4gLQkJaWYgKG1vY2stPmRlbGF5KQo+IC0JCQltb2RfdGltZXIoJmVu Z2luZS0+aHdfZGVsYXksIGppZmZpZXMgKyBtb2NrLT5kZWxheSk7Cj4gKwlsaXN0X2FkZF90YWls KCZyZXF1ZXN0LT5tb2NrLmxpbmssICZlbmdpbmUtPmh3X3F1ZXVlKTsKPiArCWlmIChsaXN0X2lz X2ZpcnN0KCZyZXF1ZXN0LT5tb2NrLmxpbmssICZlbmdpbmUtPmh3X3F1ZXVlKSkgewo+ICsJCWlm IChyZXF1ZXN0LT5tb2NrLmRlbGF5KQo+ICsJCQltb2RfdGltZXIoJmVuZ2luZS0+aHdfZGVsYXks Cj4gKwkJCQkgIGppZmZpZXMgKyByZXF1ZXN0LT5tb2NrLmRlbGF5KTsKPiAgIAkJZWxzZQo+IC0J CQlhZHZhbmNlKG1vY2spOwo+ICsJCQlhZHZhbmNlKHJlcXVlc3QpOwo+ICAgCX0KPiAgIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmh3X2xvY2ssIGZsYWdzKTsKPiAgIH0KPiBAQCAt MjYzLDEyICsyNjIsMTIgQEAgdm9pZCBtb2NrX2VuZ2luZV9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gICB7Cj4gICAJc3RydWN0IG1vY2tfZW5naW5lICptb2NrID0KPiAg IAkJY29udGFpbmVyX29mKGVuZ2luZSwgdHlwZW9mKCptb2NrKSwgYmFzZSk7Cj4gLQlzdHJ1Y3Qg bW9ja19yZXF1ZXN0ICpyZXF1ZXN0LCAqcm47Cj4gKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0LCAqcm47Cj4gICAKPiAgIAlkZWxfdGltZXJfc3luYygmbW9jay0+aHdfZGVsYXkpOwo+ICAg Cj4gICAJc3Bpbl9sb2NrX2lycSgmbW9jay0+aHdfbG9jayk7Cj4gLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUocmVxdWVzdCwgcm4sICZtb2NrLT5od19xdWV1ZSwgbGluaykKPiArCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShyZXF1ZXN0LCBybiwgJm1vY2stPmh3X3F1ZXVlLCBtb2NrLmxpbmsp Cj4gICAJCWFkdmFuY2UocmVxdWVzdCk7Cj4gICAJc3Bpbl91bmxvY2tfaXJxKCZtb2NrLT5od19s b2NrKTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tf Z2VtX2RldmljZS5jCj4gaW5kZXggZmM1MTZhMjk3MGY0Li41YTk4Y2FiYTZkNjkgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4g QEAgLTc5LDkgKzc5LDYgQEAgc3RhdGljIHZvaWQgbW9ja19kZXZpY2VfcmVsZWFzZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAgCj4gICAJZGVzdHJveV93b3JrcXVldWUoaTkxNS0+d3EpOwo+ ICAgCj4gLQlrbWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+cHJpb3JpdGllcyk7Cj4gLQlrbWVtX2Nh Y2hlX2Rlc3Ryb3koaTkxNS0+ZGVwZW5kZW5jaWVzKTsKPiAtCWttZW1fY2FjaGVfZGVzdHJveShp OTE1LT5yZXF1ZXN0cyk7Cj4gICAJa21lbV9jYWNoZV9kZXN0cm95KGk5MTUtPnZtYXMpOwo+ICAg CWttZW1fY2FjaGVfZGVzdHJveShpOTE1LT5vYmplY3RzKTsKPiAgIAo+IEBAIC0yMTEsMjMgKzIw OCw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9pZCkKPiAg IAlpZiAoIWk5MTUtPnZtYXMpCj4gICAJCWdvdG8gZXJyX29iamVjdHM7Cj4gICAKPiAtCWk5MTUt PnJlcXVlc3RzID0gS01FTV9DQUNIRShtb2NrX3JlcXVlc3QsCj4gLQkJCQkgICAgU0xBQl9IV0NB Q0hFX0FMSUdOIHwKPiAtCQkJCSAgICBTTEFCX1JFQ0xBSU1fQUNDT1VOVCB8Cj4gLQkJCQkgICAg U0xBQl9UWVBFU0FGRV9CWV9SQ1UpOwo+IC0JaWYgKCFpOTE1LT5yZXF1ZXN0cykKPiAtCQlnb3Rv IGVycl92bWFzOwo+IC0KPiAtCWk5MTUtPmRlcGVuZGVuY2llcyA9IEtNRU1fQ0FDSEUoaTkxNV9k ZXBlbmRlbmN5LAo+IC0JCQkJCVNMQUJfSFdDQUNIRV9BTElHTiB8Cj4gLQkJCQkJU0xBQl9SRUNM QUlNX0FDQ09VTlQpOwo+IC0JaWYgKCFpOTE1LT5kZXBlbmRlbmNpZXMpCj4gLQkJZ290byBlcnJf cmVxdWVzdHM7Cj4gLQo+IC0JaTkxNS0+cHJpb3JpdGllcyA9IEtNRU1fQ0FDSEUoaTkxNV9wcmlv bGlzdCwgU0xBQl9IV0NBQ0hFX0FMSUdOKTsKPiAtCWlmICghaTkxNS0+cHJpb3JpdGllcykKPiAt CQlnb3RvIGVycl9kZXBlbmRlbmNpZXM7Cj4gLQo+ICAgCWk5MTVfdGltZWxpbmVzX2luaXQoaTkx NSk7Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVBRCgmaTkxNS0+Z3QuYWN0aXZlX3JpbmdzKTsKPiBA QCAtMjU3LDEyICsyMzcsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2 aWNlKHZvaWQpCj4gICBlcnJfdW5sb2NrOgo+ICAgCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gICAJaTkxNV90aW1lbGluZXNfZmluaShpOTE1KTsKPiAtCWttZW1fY2Fj aGVfZGVzdHJveShpOTE1LT5wcmlvcml0aWVzKTsKPiAtZXJyX2RlcGVuZGVuY2llczoKPiAtCWtt ZW1fY2FjaGVfZGVzdHJveShpOTE1LT5kZXBlbmRlbmNpZXMpOwo+IC1lcnJfcmVxdWVzdHM6Cj4g LQlrbWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+cmVxdWVzdHMpOwo+IC1lcnJfdm1hczoKPiAgIAlr bWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+dm1hcyk7Cj4gICBlcnJfb2JqZWN0czoKPiAgIAlrbWVt X2NhY2hlX2Rlc3Ryb3koaTkxNS0+b2JqZWN0cyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYwo+IGluZGV4IDBkYzI5ZTI0MjU5Ny4uZDFhN2M5NjA4 NzEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3Jl cXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVl c3QuYwo+IEBAIC0zMSwyOSArMzEsMjUgQEAgbW9ja19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKPiAgIAkgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCj4gICB7Cj4gICAJ c3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKPiAtCXN0cnVjdCBtb2NrX3JlcXVlc3QgKm1v Y2s7Cj4gICAKPiAgIAkvKiBOQiB0aGUgaTkxNS0+cmVxdWVzdHMgc2xhYiBjYWNoZSBpcyBlbmxh cmdlZCB0byBmaXQgbW9ja19yZXF1ZXN0ICovCj4gICAJcmVxdWVzdCA9IGk5MTVfcmVxdWVzdF9h bGxvYyhlbmdpbmUsIGNvbnRleHQpOwo+ICAgCWlmIChJU19FUlIocmVxdWVzdCkpCj4gICAJCXJl dHVybiBOVUxMOwo+ICAgCj4gLQltb2NrID0gY29udGFpbmVyX29mKHJlcXVlc3QsIHR5cGVvZigq bW9jayksIGJhc2UpOwo+IC0JbW9jay0+ZGVsYXkgPSBkZWxheTsKPiAtCj4gLQlyZXR1cm4gJm1v Y2stPmJhc2U7Cj4gKwlyZXF1ZXN0LT5tb2NrLmRlbGF5ID0gZGVsYXk7Cj4gKwlyZXR1cm4gcmVx dWVzdDsKPiAgIH0KPiAgIAo+ICAgYm9vbCBtb2NrX2NhbmNlbF9yZXF1ZXN0KHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gLQlzdHJ1Y3QgbW9ja19yZXF1ZXN0ICptb2NrID0g Y29udGFpbmVyX29mKHJlcXVlc3QsIHR5cGVvZigqbW9jayksIGJhc2UpOwo+ICAgCXN0cnVjdCBt b2NrX2VuZ2luZSAqZW5naW5lID0KPiAgIAkJY29udGFpbmVyX29mKHJlcXVlc3QtPmVuZ2luZSwg dHlwZW9mKCplbmdpbmUpLCBiYXNlKTsKPiAgIAlib29sIHdhc19xdWV1ZWQ7Cj4gICAKPiAgIAlz cGluX2xvY2tfaXJxKCZlbmdpbmUtPmh3X2xvY2spOwo+IC0Jd2FzX3F1ZXVlZCA9ICFsaXN0X2Vt cHR5KCZtb2NrLT5saW5rKTsKPiAtCWxpc3RfZGVsX2luaXQoJm1vY2stPmxpbmspOwo+ICsJd2Fz X3F1ZXVlZCA9ICFsaXN0X2VtcHR5KCZyZXF1ZXN0LT5tb2NrLmxpbmspOwo+ICsJbGlzdF9kZWxf aW5pdCgmcmVxdWVzdC0+bW9jay5saW5rKTsKPiAgIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+ aHdfbG9jayk7Cj4gICAKPiAgIAlpZiAod2FzX3F1ZXVlZCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfcmVxdWVzdC5oCj4gaW5kZXggOTk1ZmI3MjgzODBjLi40YWNm MDIxMWRmMjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfcmVxdWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tf cmVxdWVzdC5oCj4gQEAgLTI5LDEzICsyOSw2IEBACj4gICAKPiAgICNpbmNsdWRlICIuLi9pOTE1 X3JlcXVlc3QuaCIKPiAgIAo+IC1zdHJ1Y3QgbW9ja19yZXF1ZXN0IHsKPiAtCXN0cnVjdCBpOTE1 X3JlcXVlc3QgYmFzZTsKPiAtCj4gLQlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4gLQl1bnNpZ25l ZCBsb25nIGRlbGF5Owo+IC19Owo+IC0KPiAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ICAgbW9j a19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAkgICAgIHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjb250ZXh0LAo+IApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=