From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 5/5] drm/amd/sched: signal and free remaining fences in amd_sched_entity_fini Date: Mon, 9 Oct 2017 14:33:49 +0200 Message-ID: <2f113fd3-ab4a-58b8-31d8-dc0a23751513@amd.com> References: <20170928145530.12844-1-nhaehnle@gmail.com> <20170928145530.12844-5-nhaehnle@gmail.com> <3032bef3-4829-8cae-199a-11353b38c49a@gmail.com> <11f21e54-16b8-68e4-c63e-d791ef8bbffa@gmail.com> <7e338e23-540c-4e2e-982f-f0eb623c75b1@amd.com> <760c1434-0739-81ff-82c3-a5210c5575d3@amd.com> <9619ebd2-f218-7568-3b24-0a9d2b008a6a@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?Q?Nicolai_H=c3=a4hnle?= , "Liu, Monk" , =?UTF-8?Q?Nicolai_H=c3=a4hnle?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Olsak, Marek" Cc: "Li, Bingley" QW0gMDkuMTAuMjAxNyB1bSAxMzoyNyBzY2hyaWViIE5pY29sYWkgSMOkaG5sZToKPiBPbiAwOS4x MC4yMDE3IDEzOjEyLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4KPj4+PiBOaWNvbGFpLCBo b3cgaGFyZCB3b3VsZCBpdCBiZSB0byBoYW5kbGUgRU5PREVWIGFzIGZhaWx1cmUgZm9yIGFsbCAK Pj4+PiBjdXJyZW50bHkgZXhpc3RpbmcgY29udGV4dHM/Cj4+Pgo+Pj4gSW1wb3NzaWJsZT8gIkFs bCBjdXJyZW50bHkgZXhpc3RpbmcgY29udGV4dHMiIGlzIG5vdCBhIHdlbGwtZGVmaW5lZCAKPj4+ IGNvbmNlcHQgd2hlbiBtdWx0aXBsZSBkcml2ZXJzIGNvLWV4aXN0IGluIHRoZSBzYW1lIHByb2Nl c3MuCj4+Cj4+IE9rLCBsZXQgbWUgcmVmaW5lIHRoZSBxdWVzdGlvbjogSSBhc3N1bWUgdGhlcmUg YXJlIHJlc291cmNlcyAic2hhcmVkIiAKPj4gYmV0d2VlbiBjb250ZXh0cyBsaWtlIGJpbmFyeSBz aGFkZXIgY29kZSBmb3IgZXhhbXBsZSB3aGljaCBuZWVkcyB0byAKPj4gYmUgcmV1cGxvYWRlZCB3 aGVuIFZSQU0gaXMgbG9zdC4KPj4KPj4gSG93IGhhcmQgd291bGQgaXQgYmUgdG8gaGFuZGxlIHRo YXQgY29ycmVjdGx5Pwo+Cj4gT2theSwgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIDopCj4KPiBXaXRo IHRoZSBjdXJyZW50IGludGVyZmFjZSBpdCdzIHN0aWxsIHByZXR0eSBkaWZmaWN1bHQsIGJ1dCBp ZiB3ZSAKPiBjb3VsZCBnZXQgYSBuZXcgcGVyLWRldmljZSBxdWVyeSBpb2N0bCB3aGljaCByZXR1 cm5zIGEgIlZSQU0gbG9zcyAKPiBjb3VudGVyIiwgaXQgd291bGQgYmUgcmVhc29uYWJseSBzdHJh aWdodC1mb3J3YXJkLgoKVGhlIHByb2JsZW0gd2l0aCB0aGUgVlJBTSBsb3N0IGNvdW50ZXIgaXMg dGhhdCB0aGlzIGlzbid0IHNhdmUgZWl0aGVyLiAKRS5nLiB5b3UgY291bGQgaGF2ZSBhbiBhcHBs aWNhdGlvbiB3aGljaCB1cGxvYWRzIHNoYWRlcnMsIGEgR1BVIHJlc2V0IApoYXBwZW5zIGFuZCBW UkFNIGlzIGxvc3QgYW5kIHRoZW4gdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZXMgYSBuZXcgY29udGV4 dCAKYW5kIG1ha2VzIHN1Ym1pc3Npb24gd2l0aCBicm9rZW4gc2hhZGVyIGJpbmFyaWVzLgoKU28g SSB3b3VsZCBzdGlsbCB2b3RlIGZvciBhIHNlcGFyYXRlIElPQ1RMIHRvIHJlc2V0IHRoZSBWUkFN IGxvc3Qgc3RhdGUgCndoaWNoIGlzIGNhbGxlZCAqYmVmb3JlIiB1c2VyIHNwYWNlIHN0YXJ0cyB0 byByZXVwbG9hZCAKc2hhZGVyL2Rlc2NyaXB0b3JzIGV0Yy4uLgoKVGhpcyB3YXkgeW91IGFsc28g Y2F0Y2ggdGhlIGNhc2Ugd2hlbiBhbm90aGVyIHJlc2V0IGhhcHBlbnMgd2hpbGUgeW91IApyZXVw bG9hZCB0aGluZ3MuCgo+Cj4+PiBBbmQgd2hhdCB3b3VsZCBiZSB0aGUgcHVycG9zZSBvZiB0aGlz PyBJZiBpdCdzIHRvIHN1cHBvcnQgVlJBTSBsb3NzLCAKPj4+IGhhdmluZyBhIHBlci1jb250ZXh0 IFZSQU0gbG9zcyBjb3VudGVyIHdvdWxkIGVuYWJsZSBlYWNoIGNvbnRleHQgdG8gCj4+PiBzaWdu YWwgRUNBTkNFTEVEIHNlcGFyYXRlbHkuCj4+Cj4+IEkgdGhvdWdodCBvZiB0aGF0IG9uIHRvcCBv ZiB0aGUgLUVOT0RFViBoYW5kbGluZy4KPj4KPj4gSW4gb3RoZXIgd29yZHMgd2hlbiB3ZSBzZWUg LUVOT0RFViB3ZSBjYWxsIGFuIElPQ1RMIHRvIGxldCB0aGUga2VybmVsIAo+PiBrbm93IHdlIG5v dGljZWQgdGhhdCBzb21ldGhpbmcgaXMgd3JvbmcgYW5kIHRoZW4gcmVpbml0IGFsbCBzaGFyZWQg Cj4+IHJlc291cmNlcyBpbiB1c2Vyc3BhY2UuCj4+Cj4+IEFsbCBleGlzdGluZyBjb250ZXh0IHdp bGwgc3RpbGwgc2VlIC1FQ0FOQ0VMRUQgd2hlbiB3ZSBkcm9wIHRoZWlyIAo+PiBjb21tYW5kIHN1 Ym1pc3Npb24sIGJ1dCBuZXcgY29udGV4dHMgd291bGQgYXQgbGVhc3Qgbm90IGNhdXNlIGEgbmV3 IAo+PiBsb2NrdXAgaW1tZWRpYXRlbHkgYmVjYXVzZSB0aGVpciBzaGFkZXIgYmluYXJpZXMgYXJl IGNvcnJ1cHRlZC4KPgo+IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCAtRU5PREVWIGZvciB0aGlzLiBX ZSBqdXN0IG5lZWQgLUVDQU5DRUxFRCB0byBiZSAKPiByZXR1cm5lZCB3aGVuIGEgc3VibWlzc2lv biBpcyByZWplY3RlZCBkdWUgdG8gcmVzZXQgKGhhbmcgb3IgVlJBTSBsb3NzKS4KPgo+IE1lc2Eg d291bGQga2VlcCBhIHNoYWRvdyBvZiB0aGUgVlJBTSBsb3NzIGNvdW50ZXIgaW4gcGlwZV9zY3Jl ZW4gYW5kIAo+IHBpcGVfY29udGV4dCwgYW5kIHF1ZXJ5IHRoZSBrZXJuZWwncyBjb3VudGVyIHdo ZW4gaXQgZW5jb3VudGVycyAKPiAtRUNBTkNFTEVELiBFYWNoIGNvbnRleHQgd291bGQgdGhlbiBr bm93IHRvIGRyb3AgdGhlIENTIGl0J3MgYnVpbHQgdXAgCj4gc28gZmFyIGFuZCByZXN0YXJ0IGJh c2VkIG9uIGNvbXBhcmluZyB0aGUgVlJBTSBsb3NzIGNvdW50ZXIgb2YgCj4gcGlwZV9zY3JlZW4g dG8gdGhhdCBvZiBwaXBlX2NvbnRleHQsIGFuZCBzaW1pbGFybHkgd2UgY291bGQga2VlcCBhIAo+ IGNvcHkgb2YgdGhlIFZSQU0gbG9zcyBjb3VudGVyIGZvciBpbXBvcnRhbnQgYnVmZmVyIG9iamVj dHMgbGlrZSBzaGFkZXIgCj4gYmluYXJpZXMsIGRlc2NyaXB0b3JzLCBldGMuCj4KPiBUaGlzIHNl ZW1zIG1vcmUgcm9idXN0IHRvIG1lIHRoYW4gcmVseWluZyBvbmx5IG9uIGFuIEVOT0RFVi4gV2Un ZCBtb3N0IAo+IGxpa2VseSBrZWVwIHNvbWUga2luZCBvZiBWUkFNIGxvc3MgY291bnRlciBpbiBN ZXNhICphbnl3YXkqICh3ZSBkb24ndCAKPiBtYWludGFpbiBhIGxpc3Qgb2YgYWxsIHNoYWRlcnMs IGZvciBleGFtcGxlLCBhbmQgd2UgY2FuJ3QgbnVrZSAKPiBpbXBvcnRhbnQgcGVyLWNvbnRleHQg YWNyb3NzIHRocmVhZHMpLCBhbmQgc3ludGhlc2l6aW5nIHN1Y2ggYSBjb3VudGVyIAo+IGZyb20g RU5PREVWcyBpcyBub3QgcGFydGljdWxhcmx5IHJvYnVzdCAod2hhdCBpZiBtdWx0aXBsZSBFTk9E RVZzIAo+IG9jY3VyIGZvciB0aGUgc2FtZSBsb3NzIGV2ZW50PykuCj4KPiBCVFcsIEkgc3RpbGwg ZG9uJ3QgbGlrZSBFTk9ERVYuIEl0IHNlZW1zIG1vcmUgbGlrZSB0aGUga2luZCBvZiBlcnJvciAK PiBjb2RlIHlvdSdkIHJldHVybiB3aXRoIGhvdC1wbHVnZ2FibGUgR1BVcyB3aGVyZSB0aGUgZGV2 aWNlIGNhbiAKPiBwaHlzaWNhbGx5IGRpc2FwcGVhci4uLgoKWWVhaCwgRUNBTkNFTEVEIHNvdW5k cyBsaWtlIGEgYmV0dGVyIGFsdGVybmF0aXZlLiBCdXQgSSB0aGluayB3ZSBzaG91bGQgCnN0aWxs IHNvbWVob3cgbm90ZSB0aGUgZmF0YWxpdHkgb2YgbG9vc2luZyBWUkFNIHRvIHVzZXJzcGFjZS4K CkhvdyBhYm91dCBFTk9EQVRBIG9yIEVCQURGRD8KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4KPiBD aGVlcnMsCj4gTmljb2xhaQo+Cj4KPj4KPj4gUmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+PiBB bSAwOS4xMC4yMDE3IHVtIDEzOjA0IHNjaHJpZWIgTmljb2xhaSBIw6RobmxlOgo+Pj4gT24gMDku MTAuMjAxNyAxMjo1OSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+PiBOaWNvbGFpLCBob3cg aGFyZCB3b3VsZCBpdCBiZSB0byBoYW5kbGUgRU5PREVWIGFzIGZhaWx1cmUgZm9yIGFsbCAKPj4+ PiBjdXJyZW50bHkgZXhpc3RpbmcgY29udGV4dHM/Cj4+Pgo+Pj4gSW1wb3NzaWJsZT8gIkFsbCBj dXJyZW50bHkgZXhpc3RpbmcgY29udGV4dHMiIGlzIG5vdCBhIHdlbGwtZGVmaW5lZCAKPj4+IGNv bmNlcHQgd2hlbiBtdWx0aXBsZSBkcml2ZXJzIGNvLWV4aXN0IGluIHRoZSBzYW1lIHByb2Nlc3Mu Cj4+Pgo+Pj4gQW5kIHdoYXQgd291bGQgYmUgdGhlIHB1cnBvc2Ugb2YgdGhpcz8gSWYgaXQncyB0 byBzdXBwb3J0IFZSQU0gbG9zcywgCj4+PiBoYXZpbmcgYSBwZXItY29udGV4dCBWUkFNIGxvc3Mg Y291bnRlciB3b3VsZCBlbmFibGUgZWFjaCBjb250ZXh0IHRvIAo+Pj4gc2lnbmFsIEVDQU5DRUxF RCBzZXBhcmF0ZWx5Lgo+Pj4KPj4+IENoZWVycywKPj4+IE5pY29sYWkKPj4+Cj4+Pgo+Pj4+Cj4+ Pj4gTW9uaywgd291bGQgaXQgYmUgb2sgd2l0aCB5b3Ugd2hlbiB3ZSByZXR1cm4gRU5PREVWIG9u bHkgZm9yIAo+Pj4+IGV4aXN0aW5nIGNvbnRleHQgd2hlbiBWUkFNIGlzIGxvc3QgYW5kL29yIHdl IGhhdmUgYSBzdHJpY3QgbW9kZSBHUFUgCj4+Pj4gcmVzZXQ/IEUuZy4gbmV3bHkgY3JlYXRlZCBj b250ZXh0cyB3b3VsZCBjb250aW51ZSB3b3JrIGFzIHRoZXkgc2hvdWxkLgo+Pj4+Cj4+Pj4gUmVn YXJkcywKPj4+PiBDaHJpc3RpYW4uCj4+Pj4KPj4+PiBBbSAwOS4xMC4yMDE3IHVtIDEyOjQ5IHNj aHJpZWIgTmljb2xhaSBIw6RobmxlOgo+Pj4+PiBIaSBNb25rLAo+Pj4+Pgo+Pj4+PiBZZXMsIHlv dSdyZSByaWdodCwgd2UncmUgb25seSB1c2luZyBFQ0FOQ0VMRUQgaW50ZXJuYWxseS4gQnV0IGFz IGEgCj4+Pj4+IGNvbnNlcXVlbmNlLCBNZXNhIHdvdWxkIGFscmVhZHkgaGFuZGxlIGEga2VybmVs IGVycm9yIG9mIEVDQU5DRUxFRCAKPj4+Pj4gb24gY29udGV4dCBsb3NzIGNvcnJlY3RseSA6KQo+ Pj4+Pgo+Pj4+PiBDaGVlcnMsCj4+Pj4+IE5pY29sYWkKPj4+Pj4KPj4+Pj4gT24gMDkuMTAuMjAx NyAxMjozNSwgTGl1LCBNb25rIHdyb3RlOgo+Pj4+Pj4gSGkgQ2hyaXN0aWFuCj4+Pj4+Pgo+Pj4+ Pj4gWW91IHJlamVjdCBzb21lIG9mIG15IHBhdGNoZXMgdGhhdCByZXR1cm5zIC1FTk9ERVYsIHdp dGggdGhlIAo+Pj4+Pj4gY2F1c2UgdGhhdCBNRVNBIGRvZXNuJ3QgZG8gdGhlIGhhbmRsaW5nIG9u IC1FTk9ERVYKPj4+Pj4+Cj4+Pj4+PiBCdXQgaWYgTmljb2xhaSBjYW4gY29uZmlybSB0aGF0IE1F U0EgZG8gaGF2ZSBhIGhhbmRsaW5nIG9uIAo+Pj4+Pj4gLUVDQU5DRUxFRCwgdGhlbiB3ZSBuZWVk IHRvIG92ZXJhbGwgYWxpZ24gb3VyIGVycm9yIGNvZGUsIG9uIAo+Pj4+Pj4gZGV0YWlsIGJlbG93 IElPQ1RMIGNhbiByZXR1cm4gZXJyb3IgY29kZToKPj4+Pj4+Cj4+Pj4+PiBBbWRncHVfY3NfaW9j dGwKPj4+Pj4+IEFtZGdwdV9jc193YWl0X2lvY3RsCj4+Pj4+PiBBbWRncHVfY3Nfd2FpdF9mZW5j ZXNfaW9jdGwKPj4+Pj4+IEFtZGdwdV9pbmZvX2lvY3RsCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IE15 IHBhdGNoZXMgaXM6Cj4+Pj4+PiByZXR1cm4gLUVOT0RFViBvbiBjc19pb2N0bCBpZiB0aGUgY29u dGV4dCBpcyBkZXRlY3RlZCBndWlsdHksCj4+Pj4+PiBhbHNvIHJldHVybiAtRU5PREVWIG9uIGNz X3dhaXR8Y3Nfd2FpdF9mZW5jZXMgaWYgdGhlIGZlbmNlIGlzIAo+Pj4+Pj4gc2lnbmFsZWQgYnV0 IHdpdGggZXJyb3IgLUVUSU1FLAo+Pj4+Pj4gYWxzbyByZXR1cm4gLUVOT0RFViBvbiBpbmZvX2lv Y3RsIHNvIFVNRCBjYW4gcXVlcnkgaWYgZ3B1IHJlc2V0IAo+Pj4+Pj4gaGFwcGVuZWQgYWZ0ZXIg dGhlIHByb2Nlc3MgY3JlYXRlZCAoYmVjYXVzZSBmb3Igc3RyaWN0IG1vZGUgd2UgCj4+Pj4+PiBi bG9jayBwcm9jZXNzIGluc3RlYWQgb2YgY29udGV4dCkKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gYWNj b3JkaW5nIHRvIE5pY29sYWk6Cj4+Pj4+Pgo+Pj4+Pj4gYW1kZ3B1X2NzX2lvY3RsICpjYW4qIHJl dHVybiAtRUNBTkNFTEVELCBidXQgdG8gYmUgZnJhbmtseSAKPj4+Pj4+IHNwZWFraW5nLCBrZXJu ZWwgcGFydCBkb2Vzbid0IGhhdmUgYW55IHBsYWNlIHdpdGggIi1FQ0FOQ0VMRUQiIHNvIAo+Pj4+ Pj4gdGhpcyBzb2x1dGlvbiBvbiBNRVNBIHNpZGUgZG9lc24ndCBhbGlnbiB3aXRoICpjdXJyZW50 KiBhbWRncHUgCj4+Pj4+PiBkcml2ZXIsCj4+Pj4+PiB3aGljaCBvbmx5IHJldHVybiAwIG9uIHN1 Y2Nlc3Mgb3IgLUVJTlZBTElEIG9uIG90aGVyIGVycm9yIGJ1dCAKPj4+Pj4+IGRlZmluaXRlbHkg bm8gIi1FQ0FOQ0VMRUQiIGVycm9yIGNvZGUsCj4+Pj4+Pgo+Pj4+Pj4gc28gaWYgd2UgdGFsa2lu ZyBhYm91dCBjb21tdW5pdHkgcnVsZXMgd2Ugc2hvdWxkbid0IGxldCBNRVNBIAo+Pj4+Pj4gaGFu ZGxlIC1FQ0FOQ0VMRUQgLCAgd2Ugc2hvdWxkIGhhdmUgYSB1bmlmaWVkIGVycm9yIGNvZGUKPj4+ Pj4+Cj4+Pj4+PiArIE1hcmVrCj4+Pj4+Pgo+Pj4+Pj4gQlIgTW9uawo+Pj4+Pj4KPj4+Pj4+Cj4+ Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+PiBGcm9t OiBIYWVobmxlLCBOaWNvbGFpCj4+Pj4+PiBTZW50OiAyMDE35bm0MTDmnIg55pelIDE4OjE0Cj4+ Pj4+PiBUbzogS29lbmlnLCBDaHJpc3RpYW4gPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT47IExp dSwgTW9uayAKPj4+Pj4+IDxNb25rLkxpdUBhbWQuY29tPjsgTmljb2xhaSBIw6RobmxlIDxuaGFl aG5sZUBnbWFpbC5jb20+OyAKPj4+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+ Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIDUvNV0gZHJtL2FtZC9zY2hlZDogc2lnbmFsIGFuZCBm cmVlIHJlbWFpbmluZyAKPj4+Pj4+IGZlbmNlcyBpbiBhbWRfc2NoZWRfZW50aXR5X2ZpbmkKPj4+ Pj4+Cj4+Pj4+PiBPbiAwOS4xMC4yMDE3IDEwOjAyLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+ Pj4+Pj4+PiBGb3IgZ3B1IHJlc2V0IHBhdGNoZXMgKGFscmVhZHkgc3VibWl0dGVkIHRvIHB1Yikg SSB3b3VsZCBtYWtlIAo+Pj4+Pj4+PiBrZXJuZWwKPj4+Pj4+Pj4gcmV0dXJuIC1FTk9ERVYgaWYg dGhlIHdhaXRpbmcgZmVuY2UgKGluIGNzX3dhaXQgb3Igd2FpdF9mZW5jZXMgCj4+Pj4+Pj4+IElP Q1RMKQo+Pj4+Pj4+PiBmb3VuZGVkIGFzIGVycm9yLCB0aGF0IHdheSBVTUQgd291bGQgcnVuIGlu dG8gcm9idXN0IGV4dGVuc2lvbiAKPj4+Pj4+Pj4gcGF0aAo+Pj4+Pj4+PiBhbmQgY29uc2lkZXJp bmcgdGhlIEdQVSBoYW5nIG9jY3VycmVkLAo+Pj4+Pj4+IFdlbGwgdGhhdCBpcyBvbmx5IGNsb3Nl ZCBzb3VyY2UgYmVoYXZpb3Igd2hpY2ggaXMgY29tcGxldGVseQo+Pj4+Pj4+IGlycmVsZXZhbnQg Zm9yIHVwc3RyZWFtIGRldmVsb3BtZW50Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gQXMgZmFyIGFzIEkga25v dyB3ZSBoYXZlbid0IHB1c2hlZCB0aGUgY2hhbmdlIHRvIHJldHVybiAtRU5PREVWIAo+Pj4+Pj4+ IHVwc3RyZWFtLgo+Pj4+Pj4KPj4+Pj4+IEZXSVcsIHJhZGVvbnNpIGN1cnJlbnRseSBleHBlY3Rz IC1FQ0FOQ0VMRUQgb24gQ1Mgc3VibWlzc2lvbnMgYW5kIAo+Pj4+Pj4gdHJlYXRzIHRob3NlIGFz IGNvbnRleHQgbG9zdC4gUGVyaGFwcyB3ZSBjb3VsZCB1c2UgdGhlIHNhbWUgZXJyb3IgCj4+Pj4+ PiBvbiBmZW5jZXM/Cj4+Pj4+PiBUaGF0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gbWUgdGhhbiAtRU5P REVWLgo+Pj4+Pj4KPj4+Pj4+IENoZWVycywKPj4+Pj4+IE5pY29sYWkKPj4+Pj4+Cj4+Pj4+Pj4K Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+IENocmlzdGlhbi4KPj4+Pj4+Pgo+Pj4+Pj4+IEFtIDA5 LjEwLjIwMTcgdW0gMDg6NDIgc2NocmllYiBMaXUsIE1vbms6Cj4+Pj4+Pj4+IENocmlzdGlhbgo+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSXQgd291bGQgYmUgcmVhbGx5IG5pY2UgdG8gaGF2ZSBhbiBlcnJv ciBjb2RlIHNldCBvbgo+Pj4+Pj4+Pj4gc19mZW5jZS0+ZmluaXNoZWQgYmVmb3JlIGl0IGlzIHNp Z25hbGVkLCB1c2UgCj4+Pj4+Pj4+PiBkbWFfZmVuY2Vfc2V0X2Vycm9yKCkKPj4+Pj4+Pj4+IGZv ciB0aGlzLgo+Pj4+Pj4+PiBGb3IgZ3B1IHJlc2V0IHBhdGNoZXMgKGFscmVhZHkgc3VibWl0dGVk IHRvIHB1YikgSSB3b3VsZCBtYWtlIAo+Pj4+Pj4+PiBrZXJuZWwKPj4+Pj4+Pj4gcmV0dXJuIC1F Tk9ERVYgaWYgdGhlIHdhaXRpbmcgZmVuY2UgKGluIGNzX3dhaXQgb3Igd2FpdF9mZW5jZXMgCj4+ Pj4+Pj4+IElPQ1RMKQo+Pj4+Pj4+PiBmb3VuZGVkIGFzIGVycm9yLCB0aGF0IHdheSBVTUQgd291 bGQgcnVuIGludG8gcm9idXN0IGV4dGVuc2lvbiAKPj4+Pj4+Pj4gcGF0aAo+Pj4+Pj4+PiBhbmQg Y29uc2lkZXJpbmcgdGhlIEdQVSBoYW5nIG9jY3VycmVkLAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBEb24n dCBrbm93IGlmIHRoaXMgaXMgZXhwZWN0ZWQgZm9yIHRoZSBjYXNlIG9mIG5vcm1hbCBwcm9jZXNz IAo+Pj4+Pj4+PiBiZWluZwo+Pj4+Pj4+PiBraWxsZWQgb3IgY3Jhc2hlZCBsaWtlIE5pY29sYWkg aGl0IC4uLiBzaW5jZSB0aGVyZSBpcyBubyBncHUgCj4+Pj4+Pj4+IGhhbmcgaGl0Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEJSIE1vbmsKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+Pj4+Pj4gRnJvbTog YW1kLWdmeCBbbWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9u Cj4+Pj4+Pj4+IEJlaGFsZiBPZiBDaHJpc3RpYW4gSz9uaWcKPj4+Pj4+Pj4gU2VudDogMjAxN+W5 tDnmnIgyOOaXpSAyMzowMQo+Pj4+Pj4+PiBUbzogTmljb2xhaSBIw6RobmxlIDxuaGFlaG5sZUBn bWFpbC5jb20+Owo+Pj4+Pj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+ PiBDYzogSGFlaG5sZSwgTmljb2xhaSA8Tmljb2xhaS5IYWVobmxlQGFtZC5jb20+Cj4+Pj4+Pj4+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggNS81XSBkcm0vYW1kL3NjaGVkOiBzaWduYWwgYW5kIGZyZWUg cmVtYWluaW5nCj4+Pj4+Pj4+IGZlbmNlcyBpbiBhbWRfc2NoZWRfZW50aXR5X2ZpbmkKPj4+Pj4+ Pj4KPj4+Pj4+Pj4gQW0gMjguMDkuMjAxNyB1bSAxNjo1NSBzY2hyaWViIE5pY29sYWkgSMOkaG5s ZToKPj4+Pj4+Pj4+IEZyb206IE5pY29sYWkgSMOkaG5sZSA8bmljb2xhaS5oYWVobmxlQGFtZC5j b20+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSGlnaGx5IGNvbmN1cnJlbnQgUGlnbGl0IHJ1bnMgY2Fu IHRyaWdnZXIgYSByYWNlIGNvbmRpdGlvbiAKPj4+Pj4+Pj4+IHdoZXJlIGEKPj4+Pj4+Pj4+IHBl bmRpbmcgU0RNQSBqb2Igb24gYSBidWZmZXIgb2JqZWN0IGlzIG5ldmVyIGV4ZWN1dGVkIGJlY2F1 c2UgdGhlCj4+Pj4+Pj4+PiBjb3JyZXNwb25kaW5nIHByb2Nlc3MgaXMga2lsbGVkIChwZXJoYXBz IGR1ZSB0byBhIGNyYXNoKS4gCj4+Pj4+Pj4+PiBTaW5jZSB0aGUKPj4+Pj4+Pj4+IGpvYidzIGZl bmNlcyB3ZXJlIG5ldmVyIHNpZ25hbGVkLCB0aGUgYnVmZmVyIG9iamVjdCB3YXMgCj4+Pj4+Pj4+ PiBlZmZlY3RpdmVseQo+Pj4+Pj4+Pj4gbGVha2VkLiBXb3JzZSwgdGhlIGJ1ZmZlciB3YXMgc3R1 Y2sgd2hlcmV2ZXIgaXQgaGFwcGVuZWQgdG8gYmUgYXQKPj4+Pj4+Pj4+IHRoZSB0aW1lLCBwb3Nz aWJseSBpbiBWUkFNLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBzeW1wdG9tIHdhcyB1c2VyIHNw YWNlIHByb2Nlc3NlcyBzdHVjayBpbiBpbnRlcnJ1cHRpYmxlIHdhaXRzCj4+Pj4+Pj4+PiB3aXRo IGtlcm5lbCBzdGFja3MgbGlrZToKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZm ZmJjNWU2NzIyPl0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCsweDExMi8weDI1MAo+Pj4+Pj4+Pj4g ICAgICAgIFs8ZmZmZmZmZmZiYzVlNjM5OT5dIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQrMHgzOS8w eGYwCj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmJjNWU4MmQyPl0KPj4+Pj4+Pj4+IHJlc2Vy dmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KzB4MWMyLzB4MzAwCj4+Pj4+Pj4+PiAgICAg ICAgWzxmZmZmZmZmZmMwM2NlNTZmPl0gCj4+Pj4+Pj4+PiB0dG1fYm9fY2xlYW51cF9yZWZzX2Fu ZF91bmxvY2srMHhmZi8weDFhMAo+Pj4+Pj4+Pj4gW3R0bV0KPj4+Pj4+Pj4+ICAgICAgICBbPGZm ZmZmZmZmYzAzY2YxZWE+XSB0dG1fbWVtX2V2aWN0X2ZpcnN0KzB4YmEvMHgxYTAgW3R0bV0KPj4+ Pj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAzY2Y2MTE+XSB0dG1fYm9fbWVtX3NwYWNlKzB4MzQx LzB4NGMwIFt0dG1dCj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwM2NmYzU0Pl0gdHRtX2Jv X3ZhbGlkYXRlKzB4ZDQvMHgxNTAgW3R0bV0KPj4+Pj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAz Y2ZmYmQ+XSB0dG1fYm9faW5pdF9yZXNlcnZlZCsweDJlZC8weDQyMCAKPj4+Pj4+Pj4+IFt0dG1d Cj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwNDJmNTIzPl0gCj4+Pj4+Pj4+PiBhbWRncHVf Ym9fY3JlYXRlX3Jlc3RyaWN0ZWQrMHgxZjMvMHg0NzAKPj4+Pj4+Pj4+IFthbWRncHVdCj4+Pj4+ Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwNDJmOWZhPl0gYW1kZ3B1X2JvX2NyZWF0ZSsweGRhLzB4 MjIwIFthbWRncHVdCj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwNDM0OWVhPl0gYW1kZ3B1 X2dlbV9vYmplY3RfY3JlYXRlKzB4YWEvMHgxNDAKPj4+Pj4+Pj4+IFthbWRncHVdCj4+Pj4+Pj4+ PiAgICAgICAgWzxmZmZmZmZmZmMwNDM0Zjk3Pl0gYW1kZ3B1X2dlbV9jcmVhdGVfaW9jdGwrMHg5 Ny8weDEyMAo+Pj4+Pj4+Pj4gW2FtZGdwdV0KPj4+Pj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAz N2RkYmE+XSBkcm1faW9jdGwrMHgxZmEvMHg0ODAgW2RybV0KPj4+Pj4+Pj4+ICAgICAgICBbPGZm ZmZmZmZmYzA0MTkwNGY+XSBhbWRncHVfZHJtX2lvY3RsKzB4NGYvMHg5MCBbYW1kZ3B1XQo+Pj4+ Pj4+Pj4gICAgICAgIFs8ZmZmZmZmZmZiYzIzZGIzMz5dIGRvX3Zmc19pb2N0bCsweGEzLzB4NWYw Cj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmJjMjNlMGY5Pl0gU3lTX2lvY3RsKzB4NzkvMHg5 MAo+Pj4+Pj4+Pj4gICAgICAgIFs8ZmZmZmZmZmZiYzg2NGZmYj5dIGVudHJ5X1NZU0NBTExfNjRf ZmFzdHBhdGgrMHgxZS8weGFkCj4+Pj4+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmZmZmZmZmZmPl0g MHhmZmZmZmZmZmZmZmZmZmZmCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTmlj b2xhaSBIw6RobmxlIDxuaWNvbGFpLmhhZWhubGVAYW1kLmNvbT4KPj4+Pj4+Pj4+IEFja2VkLWJ5 OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+Pj4+PiAt LS0KPj4+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1 bGVyLmMgfCA3ICsrKysrKy0KPj4+Pj4+Pj4+ICAgICAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwo+Pj4+Pj4+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKPj4+Pj4+Pj4+IGlu ZGV4IDU0ZWI3N2NmZmQ5Yi4uMzJhOTllOTgwZDc4IDEwMDY0NAo+Pj4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCj4+Pj4+Pj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKPj4+Pj4+Pj4+ IEBAIC0yMjAsMjIgKzIyMCwyNyBAQCB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfZmluaShzdHJ1Y3QK Pj4+Pj4+Pj4+IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hlZCwKPj4+Pj4+Pj4+IGFtZF9zY2hlZF9l bnRpdHlfaXNfaWRsZShlbnRpdHkpKTsKPj4+Pj4+Pj4+ICAgICAgICAgYW1kX3NjaGVkX3JxX3Jl bW92ZV9lbnRpdHkocnEsIGVudGl0eSk7Cj4+Pj4+Pj4+PiAgICAgICAgIGlmIChyKSB7Cj4+Pj4+ Pj4+PiAgICAgICAgICAgICBzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqam9iOwo+Pj4+Pj4+Pj4gICAg ICAgICAgICAgLyogUGFyayB0aGUga2VybmVsIGZvciBhIG1vbWVudCB0byBtYWtlIHN1cmUgaXQg aXNuJ3QKPj4+Pj4+Pj4+IHByb2Nlc3NpbmcKPj4+Pj4+Pj4+ICAgICAgICAgICAgICAqIG91ciBl bml0eS4KPj4+Pj4+Pj4+ICAgICAgICAgICAgICAqLwo+Pj4+Pj4+Pj4gICAgICAgICAgICAga3Ro cmVhZF9wYXJrKHNjaGVkLT50aHJlYWQpOwo+Pj4+Pj4+Pj4gICAgICAgICAgICAga3RocmVhZF91 bnBhcmsoc2NoZWQtPnRocmVhZCk7Cj4+Pj4+Pj4+PiAtICAgICAgICB3aGlsZSAoa2ZpZm9fb3V0 KCZlbnRpdHktPmpvYl9xdWV1ZSwgJmpvYiwgc2l6ZW9mKGpvYikpKQo+Pj4+Pj4+Pj4gKyAgICAg ICAgd2hpbGUgKGtmaWZvX291dCgmZW50aXR5LT5qb2JfcXVldWUsICZqb2IsIAo+Pj4+Pj4+Pj4g c2l6ZW9mKGpvYikpKSB7Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgc3RydWN0IGFtZF9zY2hlZF9m ZW5jZSAqc19mZW5jZSA9IGpvYi0+c19mZW5jZTsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICBhbWRf c2NoZWRfZmVuY2Vfc2NoZWR1bGVkKHNfZmVuY2UpOwo+Pj4+Pj4+PiBJdCB3b3VsZCBiZSByZWFs bHkgbmljZSB0byBoYXZlIGFuIGVycm9yIGNvZGUgc2V0IG9uCj4+Pj4+Pj4+IHNfZmVuY2UtPmZp bmlzaGVkIGJlZm9yZSBpdCBpcyBzaWduYWxlZCwgdXNlIAo+Pj4+Pj4+PiBkbWFfZmVuY2Vfc2V0 X2Vycm9yKCkgZm9yIHRoaXMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEFkZGl0aW9uYWwgdG8gdGhhdCBp dCB3b3VsZCBiZSBuaWNlIHRvIG5vdGUgaW4gdGhlIHN1YmplY3QgbGluZSAKPj4+Pj4+Pj4gdGhh dAo+Pj4+Pj4+PiB0aGlzIGlzIGEgcmF0aGVyIGltcG9ydGFudCBidWcgZml4Lgo+Pj4+Pj4+Pgo+ Pj4+Pj4+PiBXaXRoIHRoYXQgZml4ZWQgdGhlIHdob2xlIHNlcmllcyBpcyBSZXZpZXdlZC1ieTog Q2hyaXN0aWFuIEvDtm5pZwo+Pj4+Pj4+PiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPi4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gKyBhbWRfc2NoZWRfZmVuY2VfZmluaXNoZWQoc19mZW5jZSk7Cj4+Pj4+Pj4+PiArIGRt YV9mZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsKPj4+Pj4+Pj4+ICAgICAgICAgICAgICAg ICBzY2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOwo+Pj4+Pj4+Pj4gKyAgICAgICAgfQo+Pj4+Pj4+ Pj4gICAgICAgICB9Cj4+Pj4+Pj4+PiAgICAgICAgIGtmaWZvX2ZyZWUoJmVudGl0eS0+am9iX3F1 ZXVlKTsKPj4+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4+PiAgICAgc3RhdGljIHZvaWQgYW1kX3NjaGVk X2VudGl0eV93YWtldXAoc3RydWN0IGRtYV9mZW5jZSAqZiwgCj4+Pj4+Pj4+PiBzdHJ1Y3QKPj4+ Pj4+Pj4+IGRtYV9mZW5jZV9jYiAqY2IpCj4+Pj4+Pj4+PiAgICAgewo+Pj4+Pj4+Pj4gICAgICAg ICBzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eSAqZW50aXR5ID0KPj4+Pj4+Pj4+ICAgICAgICAgICAg IGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHksIGNiKTsKPj4+Pj4+Pj4+ ICAgICAgICAgZW50aXR5LT5kZXBlbmRlbmN5ID0gTlVMTDsKPj4+Pj4+Pj4KPj4+Pj4+Pj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+Pj4gYW1k LWdmeCBtYWlsaW5nIGxpc3QKPj4+Pj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK Pj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Cj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+Pj4+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+IGFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Cj4+ Pj4KPj4+Cj4+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=