From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: Re: [PATCH v3 1/1] drm/syncobj: add sideband payload Date: Thu, 8 Aug 2019 13:42:48 +0000 Message-ID: References: <20190808131402.14519-1-lionel.g.landwerlin@intel.com> <20190808131402.14519-2-lionel.g.landwerlin@intel.com> <1df1b652-ee72-e5f8-7ed0-acbfa9f89f58@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <4651095F5FAFFE4BAAD99D5FC1747B69@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lionel Landwerlin , "dri-devel@freedesktop.org" Cc: "Koenig, Christian" , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org Tm8sIEkganVzdCBzZWUgeW91ciBjb21tZW50ICJUaGUgbmV4dCB2a1F1ZXVlU3VibWl0KCkNCndh aXRpbmcgb24gYSB0aGUgc3luY29iaiB3aWxsIHJlYWQgdGhlIHNpZGViYW5kIHBheWxvYWQgYW5k IHdhaXQgZm9yIGENCmZlbmNlIGNoYWluIGVsZW1lbnQgd2l0aCBhIHNlcW5vIHN1cGVyaW9yIG9y IGVxdWFsIHRvIHRoZSBzaWRlYmFuZA0KcGF5bG9hZCB2YWx1ZSB0byBiZSBhZGRlZCBpbnRvIHRo ZSBmZW5jZSBjaGFpbiBhbmQgdXNlIHRoYXQgZmVuY2UgdG8NCnRyaWdnZXIgdGhlIHN1Ym1pc3Np b24gb24gdGhlIGtlcm5lbCBkcml2ZXIuICIuDQoNCkluIHRoYXQsIHlvdSBtZW50aW9uZWQgd2Fp dCBmb3Igc2lkZWJhbmQuDQpTbyBJIHdhbnQgdG8ga25vdyB3ZSBob3cgdG8gdXNlIHRoYXQsIG1h eWJlIEkgbWlzcyBzb21ldGhpbmcgaW4gcHJldmlvdXMgDQpkaXNjdXNzaW5nIHRocmVhZC4NCg0K LURBdmlkDQoNCg0K5ZyoIDIwMTkvOC84IDIxOjM4LCBMaW9uZWwgTGFuZHdlcmxpbiDlhpnpgZM6 DQo+IEludGVyZXN0aW5nIHF1ZXN0aW9uIDopDQo+DQo+IEkgZGlkbid0IHNlZSBhbnkgdXNlY2Fz ZSBmb3IgdGhhdC4NCj4gVGhpcyBzaWRlYmFuZCBwYXlsb2FkIHZhbHVlIGlzIHVzZWQgZm9yIGEg d2FpdCBzbyB3YWl0aW5nIG9uIHRoZSB3YWl0IA0KPiB2YWx1ZSBmb3IgYW5vdGhlciB3YWl0IGlz IGJpdCBtZXRhIDopDQo+DQo+IERvIHlvdSBoYXZlIGEgdXNlIGNhc2UgZm9yIHRoYXQ/DQo+DQo+ IC1MaW9uZWwNCj4NCj4gT24gMDgvMDgvMjAxOSAxNjoyMywgQ2h1bm1pbmcgWmhvdSB3cm90ZToN Cj4+IFRoZSBwcm9wdXJzYWwgaXMgZmluZSB3aXRoIG1lLg0KPj4NCj4+IG9uZSBxdWVzdGlvbjoN Cj4+DQo+PiBob3cgdG8gd2FpdCBzaWRlYmFuZCBwYXlsb2FkPyBGb2xsb3dpbmcgcGF0Y2ggd2ls bCBzaG93IHRoYXQ/DQo+Pg0KPj4gLURhdmlkDQo+Pg0KPj4g5ZyoIDIwMTkvOC84IDIxOjE0LCBM aW9uZWwgTGFuZHdlcmxpbiDlhpnpgZM6DQo+Pj4gVGhlIFZ1bGthbiB0aW1lbGluZSBzZW1hcGhv cmVzIGFsbG93IHNpZ25hbGluZyB0byBoYXBwZW4gb24gdGhlIHBvaW50DQo+Pj4gb2YgdGhlIHRp bWVsaW5lIHdpdGhvdXQgYWxsIG9mIHRoZSBpdHMgZGVwZW5kZW5jaWVzIHRvIGJlIGNyZWF0ZWQu DQo+Pj4NCj4+PiBUaGUgY3VycmVudCAyIGltcGxlbWVudGF0aW9ucyAoQU1EL0ludGVsKSBvZiB0 aGUgVnVsa2FuIHNwZWMgb24gdG9wIG9mDQo+Pj4gdGhlIExpbnV4IGtlcm5lbCBhcmUgdXNpbmcg YSB0aHJlYWQgdG8gd2FpdCBvbiB0aGUgZGVwZW5kZW5jaWVzIG9mIGENCj4+PiBnaXZlbiBwb2lu dCB0byBtYXRlcmlhbGl6ZSBhbmQgZGVsYXkgYWN0dWFsIHN1Ym1pc3Npb24gdG8gdGhlIGtlcm5l bA0KPj4+IGRyaXZlciB1bnRpbCB0aGUgd2FpdCBjb21wbGV0ZXMuDQo+Pj4NCj4+PiBJZiBhIGJp bmFyeSBzZW1hcGhvcmUgaXMgc3VibWl0dGVkIGZvciBzaWduYWxpbmcgYWxvbmcgdGhlIHNpZGUg b2YgYQ0KPj4+IHRpbWVsaW5lIHNlbWFwaG9yZSB3YWl0aW5nIGZvciBjb21wbGV0aW9uIHRoYXQg bWVhbnMgdGhhdCB0aGUgZHJtDQo+Pj4gc3luY29iaiBhc3NvY2lhdGVkIHdpdGggdGhhdCBiaW5h cnkgc2VtYXBob3JlIHdpbGwgbm90IGhhdmUgYSBETUENCj4+PiBmZW5jZSBhc3NvY2lhdGVkIHdp dGggaXQgYnkgdGhlIHRpbWUgdmtRdWV1ZVN1Ym1pdCgpIHJldHVybnMuIFRoaXMgYW5kDQo+Pj4g dGhlIGZhY3QgdGhhdCBhIGJpbmFyeSBzZW1hcGhvcmUgY2FuIGJlIHNpZ25hbGVkIGFuZCB1bnNp Z25hbGVkIGFzDQo+Pj4gYmVmb3JlIGl0cyBETUEgZmVuY2VzIG1hdGVyaWFsaXplIG1lYW4gdGhh dCB3ZSBjYW5ub3QganVzdCByZWx5IG9uIHRoZQ0KPj4+IGZlbmNlIHdpdGhpbiB0aGUgc3luY29i aiBidXQgd2UgYWxzbyBuZWVkIGEgc2lkZWJhbmQgcGF5bG9hZCB2ZXJpZnlpbmcNCj4+PiB0aGF0 IHRoZSBmZW5jZSBpbiB0aGUgc3luY29iaiBtYXRjaGVzIHRoZSBsYXN0IHN1Ym1pc3Npb24gZnJv bSB0aGUNCj4+PiBWdWxrYW4gQVBJIHBvaW50IG9mIHZpZXcuDQo+Pj4NCj4+PiBUaGlzIGNoYW5n ZSBhZGRzIGEgc2lkZWJhbmQgcGF5bG9hZCB0aGF0IGlzIGluY3JlbWVudGVkIHdpdGggc2lnbmFs ZWQNCj4+PiBzeW5jb2JqIHdoZW4gdmtRdWV1ZVN1Ym1pdCgpIGlzIGNhbGxlZC4gVGhlIG5leHQg dmtRdWV1ZVN1Ym1pdCgpDQo+Pj4gd2FpdGluZyBvbiBhIHRoZSBzeW5jb2JqIHdpbGwgcmVhZCB0 aGUgc2lkZWJhbmQgcGF5bG9hZCBhbmQgd2FpdCBmb3IgYQ0KPj4+IGZlbmNlIGNoYWluIGVsZW1l bnQgd2l0aCBhIHNlcW5vIHN1cGVyaW9yIG9yIGVxdWFsIHRvIHRoZSBzaWRlYmFuZA0KPj4+IHBh eWxvYWQgdmFsdWUgdG8gYmUgYWRkZWQgaW50byB0aGUgZmVuY2UgY2hhaW4gYW5kIHVzZSB0aGF0 IGZlbmNlIHRvDQo+Pj4gdHJpZ2dlciB0aGUgc3VibWlzc2lvbiBvbiB0aGUga2VybmVsIGRyaXZl ci4NCj4+Pg0KPj4+IHYyOiBVc2UgYSBzZXBhcmF0ZSBpb2N0bCB0byBnZXQvc2V0IHRoZSBzaWRl YmFuZCB2YWx1ZSAoQ2hyaXN0aWFuKQ0KPj4+DQo+Pj4gdjM6IFVzZSAyIGlvY3RscyBmb3IgZ2V0 L3NldCAoQ2hyaXN0aWFuKQ0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogTGlvbmVsIExhbmR3ZXJs aW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPg0KPj4+IENjOiBDaHJpc3RpYW4gS29l bmlnIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+DQo+Pj4gQ2M6IEphc29uIEVrc3RyYW5kIDxq YXNvbkBqbGVrc3RyYW5kLm5ldD4NCj4+PiBDYzogRGF2aWQoQ2h1bk1pbmcpIFpob3UgPERhdmlk MS5aaG91QGFtZC5jb20+DQo+Pj4gLS0tDQo+Pj4gwqDCoCBkcml2ZXJzL2dwdS9kcm0vZHJtX2lu dGVybmFsLmggfMKgIDQgKysNCj4+PiDCoMKgIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuY8Kg wqDCoCB8wqAgNSArKysNCj4+PiDCoMKgIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jwqAg fCA3OSANCj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+Pj4gwqDCoCBp bmNsdWRlL2RybS9kcm1fc3luY29iai5owqDCoMKgwqDCoCB8wqAgOSArKysrDQo+Pj4gwqDCoCBp bmNsdWRlL3VhcGkvZHJtL2RybS5owqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArDQo+Pj4gwqDCoCA1 IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+Pg0KPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggDQo+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgNCj4+PiBpbmRleCA1MWEyMDU1YzhmMTguLjBjOTcz NjE5OWRmMCAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgN Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgNCj4+PiBAQCAtMjA4LDYg KzIwOCwxMCBAQCBpbnQgZHJtX3N5bmNvYmpfdGltZWxpbmVfc2lnbmFsX2lvY3RsKHN0cnVjdCAN Cj4+PiBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 YXRlKTsNCj4+PiDCoMKgIGludCBkcm1fc3luY29ial9xdWVyeV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7DQo+Pj4gK2ludCBkcm1fc3lu Y29ial9nZXRfc2lkZWJhbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2YXRlKTsNCj4+PiAraW50IGRybV9zeW5jb2JqX3NldF9zaWRlYmFuZF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUp Ow0KPj4+IMKgwqAgwqDCoCAvKiBkcm1fZnJhbWVidWZmZXIuYyAqLw0KPj4+IMKgwqAgdm9pZCBk cm1fZnJhbWVidWZmZXJfcHJpbnRfaW5mbyhzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHVuc2lnbmVk IA0KPj4+IGludCBpbmRlbnQsDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYw0KPj4+IGluZGV4IGY2NzVhM2Ji MmM4OC4uNDg1MDBiZjYyODAxIDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW9jdGwuYw0KPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYw0KPj4+IEBAIC03 MDMsNiArNzAzLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lv Y3Rsc1tdIA0KPj4+ID0gew0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERS TV9SRU5ERVJfQUxMT1cpLA0KPj4+IMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfREVGKERSTV9JT0NU TF9TWU5DT0JKX1FVRVJZLCBkcm1fc3luY29ial9xdWVyeV9pb2N0bCwNCj4+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fUkVOREVSX0FMTE9XKSwNCj4+PiArwqDCoMKgIERS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfR0VUX1NJREVCQU5ELCANCj4+PiBkcm1fc3lu Y29ial9nZXRfc2lkZWJhbmRfaW9jdGwsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IERSTV9SRU5ERVJfQUxMT1cpLA0KPj4+ICvCoMKgwqAgRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf U1lOQ09CSl9TRVRfU0lERUJBTkQsIA0KPj4+IGRybV9zeW5jb2JqX3NldF9zaWRlYmFuZF9pb2N0 bCwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJNX1JFTkRFUl9BTExPVyksDQo+ Pj4gKw0KPj4+IMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfREVGKERSTV9JT0NUTF9DUlRDX0dFVF9T RVFVRU5DRSwgDQo+Pj4gZHJtX2NydGNfZ2V0X3NlcXVlbmNlX2lvY3RsLCAwKSwNCj4+PiDCoMKg wqDCoMKgwqAgRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQ1JUQ19RVUVVRV9TRVFVRU5DRSwgDQo+ Pj4gZHJtX2NydGNfcXVldWVfc2VxdWVuY2VfaW9jdGwsIDApLA0KPj4+IMKgwqDCoMKgwqDCoCBE Uk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NSRUFURV9MRUFTRSwgDQo+Pj4gZHJtX21vZGVf Y3JlYXRlX2xlYXNlX2lvY3RsLCBEUk1fTUFTVEVSKSwNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgDQo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNv YmouYw0KPj4+IGluZGV4IGI5MjdlNDgyZTU1NC4uYzkwZWYyMGI5MjQyIDEwMDY0NA0KPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jDQo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9zeW5jb2JqLmMNCj4+PiBAQCAtMTE1MCw4ICsxMTUwLDEwIEBAIGRybV9zeW5jb2Jq X3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlIA0KPj4+ICpkZXYsIHZvaWQgKmRhdGEsDQo+ Pj4gwqDCoMKgwqDCoMKgIGlmIChyZXQgPCAwKQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiByZXQ7DQo+Pj4gwqDCoCAtwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5jb3VudF9o YW5kbGVzOyBpKyspDQo+Pj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYXJncy0+Y291bnRfaGFu ZGxlczsgaSsrKSB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHJtX3N5bmNvYmpfcmVwbGFj ZV9mZW5jZShzeW5jb2Jqc1tpXSwgTlVMTCk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHN5bmNvYmpz W2ldLT5zaWRlYmFuZF9wYXlsb2FkID0gMDsNCj4+PiArwqDCoMKgIH0NCj4+PiDCoMKgIMKgwqDC oMKgwqDCoCBkcm1fc3luY29ial9hcnJheV9mcmVlKHN5bmNvYmpzLCBhcmdzLT5jb3VudF9oYW5k bGVzKTsNCj4+PiDCoMKgIEBAIC0xMzIxLDYgKzEzMjMsODEgQEAgaW50IGRybV9zeW5jb2JqX3F1 ZXJ5X2lvY3RsKHN0cnVjdCANCj4+PiBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGJyZWFrOw0KPj4+IMKgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqAgZHJt X3N5bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7DQo+Pj4g Kw0KPj4+ICvCoMKgwqAgcmV0dXJuIHJldDsNCj4+PiArfQ0KPj4+ICsNCj4+PiAraW50IGRybV9z eW5jb2JqX2dldF9zaWRlYmFuZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXZhdGUpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIHN0cnVjdCBkcm1fc3lu Y29ial90aW1lbGluZV9hcnJheSAqYXJncyA9IGRhdGE7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZHJt X3N5bmNvYmogKipzeW5jb2JqczsNCj4+PiArwqDCoMKgIHVpbnQ2NF90IF9fdXNlciAqcG9pbnRz ID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnBvaW50cyk7DQo+Pj4gK8KgwqDCoCB1aW50MzJfdCBp Ow0KPj4+ICvCoMKgwqAgaW50IHJldDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoIWRybV9jb3Jl X2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSl9USU1FTElORSkpDQo+Pj4gK8KgwqDC oMKgwqDCoMKgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoYXJn cy0+cGFkICE9IDApDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+ICsN Cj4+PiArwqDCoMKgIGlmIChhcmdzLT5jb3VudF9oYW5kbGVzID09IDApDQo+Pj4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+ICsNCj4+PiArwqDCoMKgIHJldCA9IGRybV9zeW5j b2JqX2FycmF5X2ZpbmQoZmlsZV9wcml2YXRlLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHU2NF90b191c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwNCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhcmdzLT5jb3VudF9oYW5k bGVzLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZzeW5j b2Jqcyk7DQo+Pj4gK8KgwqDCoCBpZiAocmV0IDwgMCkNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIHJldDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYXJncy0+Y291bnRf aGFuZGxlczsgaSsrKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGNvcHlfdG9fdXNlcigmcG9pbnRz W2ldLCAmc3luY29ianNbaV0tPnNpZGViYW5kX3BheWxvYWQsIA0KPj4+IHNpemVvZih1aW50NjRf dCkpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSByZXQgPyAtRUZBVUxUIDogMDsNCj4+PiAr wqDCoMKgwqDCoMKgwqAgaWYgKHJldCkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVh azsNCj4+PiArwqDCoMKgIH0NCj4+PiArDQo+Pj4gK8KgwqDCoCBkcm1fc3luY29ial9hcnJheV9m cmVlKHN5bmNvYmpzLCBhcmdzLT5jb3VudF9oYW5kbGVzKTsNCj4+PiArDQo+Pj4gK8KgwqDCoCBy ZXR1cm4gcmV0Ow0KPj4+ICt9DQo+Pj4gKw0KPj4+ICtpbnQgZHJtX3N5bmNvYmpfc2V0X3NpZGVi YW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSkNCj4+PiArew0KPj4+ICvCoMKgwqAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX2Fy cmF5ICphcmdzID0gZGF0YTsNCj4+PiArwqDCoMKgIHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNv YmpzOw0KPj4+ICvCoMKgwqAgdWludDY0X3QgX191c2VyICpwb2ludHMgPSB1NjRfdG9fdXNlcl9w dHIoYXJncy0+cG9pbnRzKTsNCj4+PiArwqDCoMKgIHVpbnQzMl90IGk7DQo+Pj4gK8KgwqDCoCBp bnQgcmV0Ow0KPj4+ICsNCj4+PiArwqDCoMKgIGlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShk ZXYsIERSSVZFUl9TWU5DT0JKX1RJTUVMSU5FKSkNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu IC1FT1BOT1RTVVBQOw0KPj4+ICsNCj4+PiArwqDCoMKgIGlmIChhcmdzLT5wYWQgIT0gMCkNCj4+ PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgaWYg KGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1F SU5WQUw7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfZmluZChm aWxlX3ByaXZhdGUsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmhhbmRsZXMpLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmNvdW50X2hhbmRsZXMsDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnN5bmNvYmpzKTsNCj4+PiArwqDC oMKgIGlmIChyZXQgPCAwKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4+ICsN Cj4+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5jb3VudF9oYW5kbGVzOyBpKyspIHsN Cj4+PiArwqDCoMKgwqDCoMKgwqAgY29weV9mcm9tX3VzZXIoJnN5bmNvYmpzW2ldLT5zaWRlYmFu ZF9wYXlsb2FkLCAmcG9pbnRzW2ldLCANCj4+PiBzaXplb2YodWludDY0X3QpKTsNCj4+PiArwqDC oMKgwqDCoMKgwqAgcmV0ID0gcmV0ID8gLUVGQVVMVCA6IDA7DQo+Pj4gK8KgwqDCoMKgwqDCoMKg IGlmIChyZXQpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+Pj4gK8KgwqDC oCB9DQo+Pj4gKw0KPj4+IMKgwqDCoMKgwqDCoCBkcm1fc3luY29ial9hcnJheV9mcmVlKHN5bmNv YmpzLCBhcmdzLT5jb3VudF9oYW5kbGVzKTsNCj4+PiDCoMKgIMKgwqDCoMKgwqDCoCByZXR1cm4g cmV0Ow0KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fc3luY29iai5oIGIvaW5jbHVk ZS9kcm0vZHJtX3N5bmNvYmouaA0KPj4+IGluZGV4IDZjZjcyNDNhMWRjNS4uYjU4N2I4ZTA3NTQ3 IDEwMDY0NA0KPj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9zeW5jb2JqLmgNCj4+PiArKysgYi9p bmNsdWRlL2RybS9kcm1fc3luY29iai5oDQo+Pj4gQEAgLTYxLDYgKzYxLDE1IEBAIHN0cnVjdCBk cm1fc3luY29iaiB7DQo+Pj4gwqDCoMKgwqDCoMKgwqAgKiBAZmlsZTogQSBmaWxlIGJhY2tpbmcg Zm9yIHRoaXMgc3luY29iai4NCj4+PiDCoMKgwqDCoMKgwqDCoCAqLw0KPj4+IMKgwqDCoMKgwqDC oCBzdHJ1Y3QgZmlsZSAqZmlsZTsNCj4+PiArwqDCoMKgIC8qKg0KPj4+ICvCoMKgwqDCoCAqIEBz aWRlYmFuZF9wYXlsb2FkOiBBIDY0Yml0IHNpZGUgYmFuZCBwYXlsb2FkLg0KPj4+ICvCoMKgwqDC oCAqDQo+Pj4gK8KgwqDCoMKgICogV2UgdXNlIHRoZSBzaWRlYmFuZCBwYXlsb2FkIHZhbHVlIHRv IHdhaXQgb24gYmluYXJ5IHN5bmNvYmogDQo+Pj4gZmVuY2VzDQo+Pj4gK8KgwqDCoMKgICogdG8g bWF0ZXJpYWxpemUuIEl0IGlzIGEgcmVzZXJ2YXRpb24gbWVjaGFuaXNtIGZvciB0aGUgDQo+Pj4g c2lnbmFsZXIgdG8NCj4+PiArwqDCoMKgwqAgKiBleHByZXNzIHRoYXQgYXQgc29tZSBwb2ludCBp biB0aGUgZnV0dXJlIGEgZG1hIGZlbmNlIHdpdGggDQo+Pj4gdGhlIHNhbWUNCj4+PiArwqDCoMKg wqAgKiBzZXFubyB3aWxsIGJlIHB1dCBpbnRvIHRoZSBzeW5jb2JqLg0KPj4+ICvCoMKgwqDCoCAq Lw0KPj4+ICvCoMKgwqAgdTY0IHNpZGViYW5kX3BheWxvYWQ7DQo+Pj4gwqDCoCB9Ow0KPj4+IMKg wqAgwqDCoCB2b2lkIGRybV9zeW5jb2JqX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpOw0KPj4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0u aA0KPj4+IGluZGV4IDhhNWIyZjhmOGViOS4uY2ZmZGM2Yzk3NzJjIDEwMDY0NA0KPj4+IC0tLSBh L2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgNCj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5o DQo+Pj4gQEAgLTk0Niw2ICs5NDYsOCBAQCBleHRlcm4gIkMiIHsNCj4+PiDCoMKgICNkZWZpbmUg RFJNX0lPQ1RMX1NZTkNPQkpfUVVFUlnCoMKgwqDCoMKgwqDCoCBEUk1fSU9XUigweENCLCBzdHJ1 Y3QgDQo+Pj4gZHJtX3N5bmNvYmpfdGltZWxpbmVfYXJyYXkpDQo+Pj4gwqDCoCAjZGVmaW5lIERS TV9JT0NUTF9TWU5DT0JKX1RSQU5TRkVSwqDCoMKgIERSTV9JT1dSKDB4Q0MsIHN0cnVjdCANCj4+ PiBkcm1fc3luY29ial90cmFuc2ZlcikNCj4+PiDCoMKgICNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNP QkpfVElNRUxJTkVfU0lHTkFMwqDCoMKgIERSTV9JT1dSKDB4Q0QsIA0KPj4+IHN0cnVjdCBkcm1f c3luY29ial90aW1lbGluZV9hcnJheSkNCj4+PiArI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9H RVRfU0lERUJBTkTCoMKgwqAgRFJNX0lPUigweENFLCBzdHJ1Y3QgDQo+Pj4gZHJtX3N5bmNvYmpf dGltZWxpbmVfYXJyYXkpDQo+Pj4gKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfU0VUX1NJREVC QU5EwqDCoMKgIERSTV9JT1dSKDB4Q0YsIHN0cnVjdCANCj4+PiBkcm1fc3luY29ial90aW1lbGlu ZV9hcnJheSkNCj4+PiDCoMKgIMKgwqAgLyoqDQo+Pj4gwqDCoMKgICogRGV2aWNlIHNwZWNpZmlj IGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMNCj4NCj4N Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==