From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH] drm/syncobj: Add better overview documentation for syncobj (v2) Date: Thu, 8 Aug 2019 07:25:33 +0000 Message-ID: References: <20190802174033.10505-1-jason@jlekstrand.net> <20190806161905.30769-1-jason@jlekstrand.net> <6b44d308-27e7-762a-a891-9813d58154fb@intel.com> <16c6f8d83a8.27ad.c6988b7ea6112e3e892765a0d4287e0c@jlekstrand.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690066.outbound.protection.outlook.com [40.107.69.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B18B6E788 for ; Thu, 8 Aug 2019 07:25:39 +0000 (UTC) In-Reply-To: <16c6f8d83a8.27ad.c6988b7ea6112e3e892765a0d4287e0c@jlekstrand.net> Content-Language: en-US Content-ID: <632466E2234C8C40AD265FDBBE78B2B5@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: Jason Ekstrand , Lionel Landwerlin , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgSmFzb24sDQoNCnRoaXMgbWFpbCBhbHNvIHNvbWVob3cgZW5kZWQgdXAgdG8gYmUgcmVqZWN0 ZWQgYnkgb3VyIHNwYW0gZmlsdGVyIGFuZCANCkknbSBub3Qgc3VyZSB3aHkgOigNCg0KQW55d2F5 LCBmZWVsIGZyZWUgdG8gYWRkIG15IEFja2VkLWJ5LiBGcm9tIHRoZSB0ZWNobmljYWwgcG9pbnQg SSB3b3VsZCANCmdpdmUgYW4gci1iIGFzIHdlbGwsIGJ1dCBJJ20gbm90IGEgbmF0aXZlIHNwZWFr ZXIgb2YgRW5nbGlzaC4NCg0KQ2hlZXJzLA0KQ2hyaXN0aWFuLg0KDQpBbSAwOC4wOC4xOSB1bSAw Njo0NyBzY2hyaWViIEphc29uIEVrc3RyYW5kOg0KPiBDaHJpc3RhbiwgYW55IHRob3VnaHRzIG9u IHYyPw0KPg0KPiAtLUphc29uDQo+DQo+DQo+IE9uIEF1Z3VzdCA3LCAyMDE5IDA5OjA2OjQ3IExp b25lbCBMYW5kd2VybGluIA0KPiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+IHdyb3Rl Og0KPg0KPj4gT24gMDYvMDgvMjAxOSAxOToxOSwgSmFzb24gRWtzdHJhbmQgd3JvdGU6DQo+Pj4g VGhpcyBwYXRjaCBvbmx5IGJyaW5ncyB0aGUgc3luY29iaiBkb2N1bWVudGF0aW9uIHVwLXRvLWRh dGUgZm9yIHRoZQ0KPj4+IG9yaWdpbmFsIGZvcm0gb2Ygc3luY29iai7CoCBJdCBkb2VzIG5vdCBj b250YWluIGFueSBpbmZvcm1hdGlvbiBhYm91dCANCj4+PiB0aGUNCj4+PiBkZXNpZ24gb2YgdGlt ZWxpbmUgc3luY29ianMuDQo+Pj4NCj4+PiB2MjogSW5jb3Jwb3JhdGUgZmVlZGJhY2sgZnJvbSBM aW9uZWwgYW5kIENocmlzdGlhbjoNCj4+PiDCoCAtIE1lbnRpb24gYWN0dWFsIGlvY3RsIGFuZCBm bGFnIG5hbWVzDQo+Pj4gwqAgLSBCZXR0ZXIgbGFuZ3VhZ2UgYXJvdW5kIHJlZmVyZW5jZSBjb3Vu dGluZw0KPj4+IMKgIC0gTWlzYy4gbGFuZ3VhZ2UgY2xlYW51cHMNCj4+Pg0KPj4+IFNpZ25lZC1v ZmYtYnk6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4NCj4+DQo+PiBSZXZp ZXdlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29t Pg0KPj4NCj4+PiAtLS0NCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYyB8IDk4 IA0KPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQo+Pj4gwqAgMSBmaWxl IGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPj4+DQo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jIA0KPj4+IGIvZHJpdmVycy9n cHUvZHJtL2RybV9zeW5jb2JqLmMNCj4+PiBpbmRleCAxNDM4ZGNiM2ViYjEuLjRiNWM3YjBlZDcx NCAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYw0KPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jDQo+Pj4gQEAgLTI5LDIxICsyOSw5NyBA QA0KPj4+IMKgIC8qKg0KPj4+IMKgwqAgKiBET0M6IE92ZXJ2aWV3DQo+Pj4gwqDCoCAqDQo+Pj4g LSAqIERSTSBzeW5jaHJvbmlzYXRpb24gb2JqZWN0cyAoc3luY29iaiwgc2VlIHN0cnVjdCAmZHJt X3N5bmNvYmopIGFyZQ0KPj4+IC0gKiBwZXJzaXN0ZW50IG9iamVjdHMgdGhhdCBjb250YWluIGFu IG9wdGlvbmFsIGZlbmNlLiBUaGUgT2ssZmVuY2UgDQo+Pj4gY2FuIGJlIHVwZGF0ZWQNCj4+PiAt ICogd2l0aCBhIG5ldyBmZW5jZSwgb3IgYmUgTlVMTC4NCj4+PiArICogRFJNIHN5bmNocm9uaXNh dGlvbiBvYmplY3RzIChzeW5jb2JqLCBzZWUgc3RydWN0ICZkcm1fc3luY29iaikgDQo+Pj4gcHJv dmlkZSBhDQo+Pj4gKyAqIGNvbnRhaW5lciBmb3IgYSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZl IHdoaWNoIGNhbiBiZSB1c2VkIGJ5IA0KPj4+IHVzZXJzcGFjZQ0KPj4+ICsgKiB0byBleHBsaWNp dGx5IHN5bmNocm9uaXplIEdQVSBjb21tYW5kcywgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIA0KPj4+ IHVzZXJzcGFjZQ0KPj4+ICsgKiBwcm9jZXNzZXMsIGFuZCBjYW4gYmUgc2hhcmVkIGJldHdlZW4g ZGlmZmVyZW50IERSTSBkcml2ZXJzLg0KPj4+ICsgKiBUaGVpciBwcmltYXJ5IHVzZS1jYXNlIGlz IHRvIGltcGxlbWVudCBWdWxrYW4gZmVuY2VzIGFuZCANCj4+PiBzZW1hcGhvcmVzLg0KPj4+ICsg KiBUaGUgc3luY29iaiB1c2Vyc3BhY2UgQVBJIHByb3ZpZGVzIGlvY3RscyBmb3Igc2V2ZXJhbCBv cGVyYXRpb25zOg0KPj4+IMKgwqAgKg0KPj4+IC0gKiBzeW5jb2JqJ3MgY2FuIGJlIHdhaXRlZCB1 cG9uLCB3aGVyZSBpdCB3aWxsIHdhaXQgZm9yIHRoZSB1bmRlcmx5aW5nDQo+Pj4gLSAqIGZlbmNl Lg0KPj4+ICsgKsKgIC0gQ3JlYXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIHN5bmNvYmpzDQo+Pj4g KyAqwqAgLSBJbXBvcnQgYW5kIGV4cG9ydCBvZiBzeW5jb2JqcyB0by9mcm9tIGEgc3luY29iaiBm aWxlIGRlc2NyaXB0b3INCj4+PiArICrCoCAtIEltcG9ydCBhbmQgZXhwb3J0IGEgc3luY29iaidz IHVuZGVybHlpbmcgZmVuY2UgdG8vZnJvbSBhIHN5bmMgDQo+Pj4gZmlsZQ0KPj4+ICsgKsKgIC0g UmVzZXQgYSBzeW5jb2JqIChzZXQgaXRzIGZlbmNlIHRvIE5VTEwpDQo+Pj4gKyAqwqAgLSBTaWdu YWwgYSBzeW5jb2JqIChzZXQgYSB0cml2aWFsbHkgc2lnbmFsZWQgZmVuY2UpDQo+Pj4gKyAqwqAg LSBXYWl0IGZvciBhIHN5bmNvYmoncyBmZW5jZSB0byBhcHBlYXIgYW5kIGJlIHNpZ25hbGVkDQo+ Pj4gwqDCoCAqDQo+Pj4gLSAqIHN5bmNvYmoncyBjYW4gYmUgZXhwb3J0IHRvIGZkJ3MgYW5kIGJh Y2ssIHRoZXNlIGZkJ3MgYXJlIG9wYXF1ZSBhbmQNCj4+PiAtICogaGF2ZSBubyBvdGhlciB1c2Ug Y2FzZSwgZXhjZXB0IHBhc3NpbmcgdGhlIHN5bmNvYmogYmV0d2VlbiANCj4+PiBwcm9jZXNzZXMu DQo+Pj4gKyAqIEF0IGl0J3MgY29yZSwgYSBzeW5jb2JqIGlzIHNpbXBseSBhIHdyYXBwZXIgYXJv dW5kIGEgcG9pbnRlciB0byANCj4+PiBhIHN0cnVjdA0KPj4+ICsgKiAmZG1hX2ZlbmNlIHdoaWNo IG1heSBiZSBOVUxMLg0KPj4+ICsgKiBXaGVuIGEgc3luY29iaiBpcyBmaXJzdCBjcmVhdGVkLCBp dHMgcG9pbnRlciBpcyBlaXRoZXIgTlVMTCBvciBhIA0KPj4+IHBvaW50ZXINCj4+PiArICogdG8g YW4gYWxyZWFkeSBzaWduYWxlZCBmZW5jZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUNCj4+PiAr ICogJkRSTV9TWU5DT0JKX0NSRUFURV9TSUdOQUxFRCBmbGFnIGlzIHBhc3NlZCB0bw0KPj4+ICsg KiAmRFJNX0lPQ1RMX1NZTkNPQkpfQ1JFQVRFLg0KPj4+ICsgKiBXaGVuIEdQVSB3b3JrIHdoaWNo IHNpZ25hbHMgYSBzeW5jb2JqIGlzIGVucXVldWVkIGluIGEgRFJNIGRyaXZlciwNCj4+PiArICog dGhlIHN5bmNvYmogZmVuY2UgaXMgcmVwbGFjZWQgd2l0aCBhIGZlbmNlIHdoaWNoIHdpbGwgYmUg DQo+Pj4gc2lnbmFsZWQgYnkgdGhlDQo+Pj4gKyAqIGNvbXBsZXRpb24gb2YgdGhhdCB3b3JrLg0K Pj4+ICsgKiBXaGVuIEdQVSB3b3JrIHdoaWNoIHdhaXRzIG9uIGEgc3luY29iaiBpcyBlbnF1ZXVl ZCBpbiBhIERSTSANCj4+PiBkcml2ZXIsIHRoZQ0KPj4+ICsgKiBkcml2ZXIgcmV0cmlldmVzIHN5 bmNvYmoncyBjdXJyZW50IGZlbmNlIGF0IHRoZSB0aW1lIHRoZSB3b3JrIGlzIA0KPj4+IGVucXVl dWVkDQo+Pj4gKyAqIHdhaXRzIG9uIHRoYXQgZmVuY2UgYmVmb3JlIHN1Ym1pdHRpbmcgdGhlIHdv cmsgdG8gaGFyZHdhcmUuDQo+Pj4gKyAqIElmIHRoZSBzeW5jb2JqJ3MgZmVuY2UgaXMgTlVMTCwg dGhlIGVucXVldWUgb3BlcmF0aW9uIGlzIA0KPj4+IGV4cGVjdGVkIHRvIGZhaWwuDQo+Pj4gKyAq IEFsbCBtYW5pcHVsYXRpb24gb2YgdGhlIHN5bmNvYmpzJ3MgZmVuY2UgaGFwcGVucyBpbiB0ZXJt cyBvZiB0aGUgDQo+Pj4gY3VycmVudA0KPj4+ICsgKiBmZW5jZSBhdCB0aGUgdGltZSB0aGUgaW9j dGwgaXMgY2FsbGVkIGJ5IHVzZXJzcGFjZSByZWdhcmRsZXNzIG9mIA0KPj4+IHdoZXRoZXINCj4+ PiArICogdGhhdCBvcGVyYXRpb24gaXMgYW4gaW1tZWRpYXRlIGhvc3Qtc2lkZSBvcGVyYXRpb24g KHNpZ25hbCBvciANCj4+PiByZXNldCkgb3INCj4+PiArICogb3IgYW4gb3BlcmF0aW9uIHdoaWNo IGlzIGVucXVldWVkIGluIHNvbWUgZHJpdmVyIHF1ZXVlLg0KPj4+ICsgKiAmRFJNX0lPQ1RMX1NZ TkNPQkpfUkVTRVQgYW5kICZEUk1fSU9DVExfU1lOQ09CSl9TSUdOQUwgY2FuIGJlIA0KPj4+IHVz ZWQgdG8NCj4+PiArICogbWFuaXB1bGF0ZSBhIHN5bmNvYmogZnJvbSB0aGUgaG9zdCBieSByZXNl dHRpbmcgaXRzIHBvaW50ZXIgdG8gDQo+Pj4gTlVMTCBvcg0KPj4+ICsgKiBzZXR0aW5nIGl0cyBw b2ludGVyIHRvIGEgZmVuY2Ugd2hpY2ggaXMgYWxyZWFkeSBzaWduYWxlZC4NCj4+PiDCoMKgICoN Cj4+PiAtICogVGhlaXIgcHJpbWFyeSB1c2UtY2FzZSBpcyB0byBpbXBsZW1lbnQgVnVsa2FuIGZl bmNlcyBhbmQgDQo+Pj4gc2VtYXBob3Jlcy4NCj4+PiDCoMKgICoNCj4+PiAtICogc3luY29iaiBo YXZlIGEga3JlZiByZWZlcmVuY2UgY291bnQsIGJ1dCBhbHNvIGhhdmUgYW4gb3B0aW9uYWwgDQo+ Pj4gZmlsZS4NCj4+PiAtICogVGhlIGZpbGUgaXMgb25seSBjcmVhdGVkIG9uY2UgdGhlIHN5bmNv YmogaXMgZXhwb3J0ZWQuDQo+Pj4gLSAqIFRoZSBmaWxlIHRha2VzIGEgcmVmZXJlbmNlIG9uIHRo ZSBrcmVmLg0KPj4+ICsgKiBIb3N0LXNpZGUgd2FpdCBvbiBzeW5jb2Jqcw0KPj4+ICsgKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+ICsgKg0KPj4+ICsgKiAmRFJNX0lPQ1RMX1NZTkNP QkpfV0FJVCB0YWtlcyBhbiBhcnJheSBvZiBzeW5jb2JqIGhhbmRsZXMgYW5kIA0KPj4+IGRvZXMg YQ0KPj4+ICsgKiBob3N0LXNpZGUgd2FpdCBvbiBhbGwgb2YgdGhlIHN5bmNvYmogZmVuY2VzIHNp bXVsdGFuZW91c2x5Lg0KPj4+ICsgKiBJZiAmRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FM TCBpcyBzZXQsIHRoZSB3YWl0IGlvY3RsIHdpbGwgDQo+Pj4gd2FpdCBvbg0KPj4+ICsgKiBhbGwg b2YgdGhlIHN5bmNvYmogZmVuY2VzIHRvIGJlIHNpZ25hbGVkIGJlZm9yZSBpdCByZXR1cm5zLg0K Pj4+ICsgKiBPdGhlcndpc2UsIGl0IHJldHVybnMgb25jZSBhdCBsZWFzdCBvbmUgc3luY29iaiBm ZW5jZSBoYXMgYmVlbiANCj4+PiBzaWduYWxlZA0KPj4+ICsgKiBhbmQgdGhlIGluZGV4IG9mIGEg c2lnbmFsZWQgZmVuY2UgaXMgd3JpdHRlbiBiYWNrIHRvIHRoZSBjbGllbnQuDQo+Pj4gKyAqDQo+ Pj4gKyAqIFVubGlrZSB0aGUgZW5xdWV1ZWQgR1BVIHdvcmsgZGVwZW5kZW5jaWVzIHdoaWNoIGZh aWwgaWYgdGhleSBzZWUgDQo+Pj4gYSBOVUxMDQo+Pj4gKyAqIGZlbmNlIGluIGEgc3luY29iaiwg aWYgJkRSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUIA0KPj4+IGlzIHNldCwN Cj4+PiArICogdGhlIGhvc3Qtc2lkZSB3YWl0IHdpbGwgZmlyc3Qgd2FpdCBmb3IgdGhlIHN5bmNv YmogdG8gcmVjZWl2ZSBhIA0KPj4+IG5vbi1OVUxMDQo+Pj4gKyAqIGZlbmNlIGFuZCB0aGVuIHdh aXQgb24gdGhhdCBmZW5jZS4NCj4+PiArICogSWYgJkRSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJ VF9GT1JfU1VCTUlUIGlzIG5vdCBzZXQgYW5kIGFueSANCj4+PiBvbmUgb2YgdGhlDQo+Pj4gKyAq IHN5bmNvYmpzIGluIHRoZSBhcnJheSBoYXMgYSBOVUxMIGZlbmNlLCAtRUlOVkFMIHdpbGwgYmUg cmV0dXJuZWQuDQo+Pj4gKyAqIEFzc3VtaW5nIHRoZSBzeW5jb2JqIHN0YXJ0cyBvZmYgd2l0aCBh IE5VTEwgZmVuY2UsIHRoaXMgYWxsb3dzIGEgDQo+Pj4gY2xpZW50DQo+Pj4gKyAqIHRvIGRvIGEg aG9zdCB3YWl0IGluIG9uZSB0aHJlYWQgKG9yIHByb2Nlc3MpIHdoaWNoIHdhaXRzIG9uIEdQVSAN Cj4+PiB3b3JrDQo+Pj4gKyAqIHN1Ym1pdHRlZCBpbiBhbm90aGVyIHRocmVhZCAob3IgcHJvY2Vz cykgd2l0aG91dCBoYXZpbmcgdG8gbWFudWFsbHkNCj4+PiArICogc3luY2hyb25pemUgYmV0d2Vl biB0aGUgdHdvLg0KPj4+ICsgKiBUaGlzIHJlcXVpcmVtZW50IGlzIGluaGVyaXRlZCBmcm9tIHRo ZSBWdWxrYW4gZmVuY2UgQVBJLg0KPj4+ICsgKg0KPj4+ICsgKg0KPj4+ICsgKiBJbXBvcnQvZXhw b3J0IG9mIHN5bmNvYmpzDQo+Pj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+PiAr ICoNCj4+PiArICogJkRSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSBhbmQgJkRSTV9JT0NU TF9TWU5DT0JKX0hBTkRMRV9UT19GRA0KPj4+ICsgKiBwcm92aWRlIHR3byBtZWNoYW5pc21zIGZv ciBpbXBvcnQvZXhwb3J0IG9mIHN5bmNvYmpzLg0KPj4+ICsgKg0KPj4+ICsgKiBUaGUgZmlyc3Qg bGV0cyB0aGUgY2xpZW50IGltcG9ydCBvciBleHBvcnQgYW4gZW50aXJlIHN5bmNvYmogdG8gDQo+ Pj4gYSBmaWxlDQo+Pj4gKyAqIGRlc2NyaXB0b3IuDQo+Pj4gKyAqIFRoZXNlIGZkJ3MgYXJlIG9w YXF1ZSBhbmQgaGF2ZSBubyBvdGhlciB1c2UgY2FzZSwgZXhjZXB0IHBhc3NpbmcgDQo+Pj4gdGhl DQo+Pj4gKyAqIHN5bmNvYmogYmV0d2VlbiBwcm9jZXNzZXMuDQo+Pj4gKyAqIEFsbCBleHBvcnRl ZCBmaWxlIGRlc2NyaXB0b3JzIGFuZCBhbnkgc3luY29iaiBoYW5kbGVzIGNyZWF0ZWQgYXMgYQ0K Pj4+ICsgKiByZXN1bHQgb2YgaW1wb3J0aW5nIHRob3NlIGZpbGUgZGVzY3JpcHRvcnMgb3duIGEg cmVmZXJlbmNlIHRvIHRoZQ0KPj4+ICsgKiBzYW1lIHVuZGVybHlpbmcgc3RydWN0ICZkcm1fc3lu Y29iaiBhbmQgdGhlIHN5bmNvYmogY2FuIGJlIHVzZWQNCj4+PiArICogcGVyc2lzdGVudGx5IGFj cm9zcyBhbGwgdGhlIHByb2Nlc3NlcyB3aXRoIHdoaWNoIGl0IGlzIHNoYXJlZC4NCj4+PiArICog VGhlIHN5bmNvYmogaXMgZnJlZWQgb25seSBvbmNlIHRoZSBsYXN0IHJlZmVyZW5jZSBpcyBkcm9w cGVkLg0KPj4+ICsgKiBVbmxpa2UgZG1hLWJ1ZiwgaW1wb3J0aW5nIGEgc3luY29iaiBjcmVhdGVz IGEgbmV3IGhhbmRsZSAod2l0aCANCj4+PiBpdHMgb3duDQo+Pj4gKyAqIHJlZmVyZW5jZSkgZm9y IGV2ZXJ5IGltcG9ydCBpbnN0ZWFkIG9mIGRlLWR1cGxpY2F0aW5nLg0KPj4+ICsgKiBUaGUgcHJp bWFyeSB1c2UtY2FzZSBvZiB0aGlzIHBlcnNpc3RlbnQgaW1wb3J0L2V4cG9ydCBpcyBmb3Igc2hh cmVkDQo+Pj4gKyAqIFZ1bGthbiBmZW5jZXMgYW5kIHNlbWFwaG9yZXMuDQo+Pj4gKyAqDQo+Pj4g KyAqIFRoZSBzZWNvbmQgaW1wb3J0L2V4cG9ydCBtZWNoYW5pc20sIHdoaWNoIGlzIGluZGljYXRl ZCBieQ0KPj4+ICsgKiAmRFJNX1NZTkNPQkpfRkRfVE9fSEFORExFX0ZMQUdTX0lNUE9SVF9TWU5D X0ZJTEUgb3INCj4+PiArICogJkRSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRf U1lOQ19GSUxFIGxldHMgdGhlIGNsaWVudA0KPj4+ICsgKiBpbXBvcnQvZXhwb3J0IHRoZSBzeW5j b2JqJ3MgY3VycmVudCBmZW5jZSBmcm9tL3RvIGEgJnN5bmNfZmlsZS4NCj4+PiArICogV2hlbiBh IHN5bmNvYmogaXMgZXhwb3J0ZWQgdG8gYSBzeW5jIGZpbGUsIHRoYXQgc3luYyBmaWxlIHdyYXBz IHRoZQ0KPj4+ICsgKiBzeWNub2JqJ3MgZmVuY2UgYXQgdGhlIHRpbWUgb2YgZXhwb3J0IGFuZCBh bnkgbGF0ZXIgc2lnbmFsIG9yIHJlc2V0DQo+Pj4gKyAqIG9wZXJhdGlvbnMgb24gdGhlIHN5bmNv Ymogd2lsbCBub3QgYWZmZWN0IHRoZSBleHBvcnRlZCBzeW5jIGZpbGUuDQo+Pj4gKyAqIFdoZW4g YSBzeW5jIGZpbGUgaXMgaW1wb3J0ZWQgaW50byBhIHN5bmNvYmosIHRoZSBzeW5jb2JqJ3MgZmVu Y2UgDQo+Pj4gaXMgc2V0DQo+Pj4gKyAqIHRvIHRoZSBmZW5jZSB3cmFwcGVkIGJ5IHRoYXQgc3lu YyBmaWxlLg0KPj4+ICsgKiBCZWNhdXNlIHN5bmMgZmlsZXMgYXJlIGltbXV0YWJsZSwgcmVzZXR0 aW5nIG9yIHNpZ25hbGluZyB0aGUgDQo+Pj4gc3luY29iag0KPj4+ICsgKiB3aWxsIG5vdCBhZmZl Y3QgYW55IHN5bmMgZmlsZXMgd2hvc2UgZmVuY2VzIGhhdmUgYmVlbiBpbXBvcnRlZCANCj4+PiBp bnRvIHRoZQ0KPj4+ICsgKiBzeW5jb2JqLg0KPj4+IMKgwqAgKi8NCj4+Pg0KPj4+IMKgICNpbmNs dWRlIDxsaW51eC9hbm9uX2lub2Rlcy5oPg0KPg0KPg0KPg0KDQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=