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 12:59:09 +0200 Message-ID: <760c1434-0739-81ff-82c3-a5210c5575d3@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7e338e23-540c-4e2e-982f-f0eb623c75b1-5C7GfCeVMHo@public.gmane.org> 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" SGkgTmljb2xhaSAmIE1vbmssCgp3ZWxsIHRoYXQgc291bmRzIGxpa2UgZXhhY3RseSB3aGF0IEkg d2FudGVkIHRvIGhlYXIuCgpXaGVuIE1lc2EgYWxyZWFkeSBoYW5kbGVzIEVDQU5DRUxFRCBncmFj ZWZ1bGx5IGFzIHJldHVybiBjb2RlIGZvciBhIGxvc3QgCmNvbnRleHQgdGhlbiBJIHRoaW5rIHdl IGNhbiBtb3ZlIGZvcndhcmQgd2l0aCB0aGF0LiBNb25rLCB3b3VsZCB0aGF0IGJlIApvayB3aXRo IHlvdT8KCk5pY29sYWksIGhvdyBoYXJkIHdvdWxkIGl0IGJlIHRvIGhhbmRsZSBFTk9ERVYgYXMg ZmFpbHVyZSBmb3IgYWxsIApjdXJyZW50bHkgZXhpc3RpbmcgY29udGV4dHM/CgpNb25rLCB3b3Vs ZCBpdCBiZSBvayB3aXRoIHlvdSB3aGVuIHdlIHJldHVybiBFTk9ERVYgb25seSBmb3IgZXhpc3Rp bmcgCmNvbnRleHQgd2hlbiBWUkFNIGlzIGxvc3QgYW5kL29yIHdlIGhhdmUgYSBzdHJpY3QgbW9k ZSBHUFUgcmVzZXQ/IEUuZy4gCm5ld2x5IGNyZWF0ZWQgY29udGV4dHMgd291bGQgY29udGludWUg d29yayBhcyB0aGV5IHNob3VsZC4KClJlZ2FyZHMsCkNocmlzdGlhbi4KCkFtIDA5LjEwLjIwMTcg dW0gMTI6NDkgc2NocmllYiBOaWNvbGFpIEjDpGhubGU6Cj4gSGkgTW9uaywKPgo+IFllcywgeW91 J3JlIHJpZ2h0LCB3ZSdyZSBvbmx5IHVzaW5nIEVDQU5DRUxFRCBpbnRlcm5hbGx5LiBCdXQgYXMg YSAKPiBjb25zZXF1ZW5jZSwgTWVzYSB3b3VsZCBhbHJlYWR5IGhhbmRsZSBhIGtlcm5lbCBlcnJv ciBvZiBFQ0FOQ0VMRUQgb24gCj4gY29udGV4dCBsb3NzIGNvcnJlY3RseSA6KQo+Cj4gQ2hlZXJz LAo+IE5pY29sYWkKPgo+IE9uIDA5LjEwLjIwMTcgMTI6MzUsIExpdSwgTW9uayB3cm90ZToKPj4g SGkgQ2hyaXN0aWFuCj4+Cj4+IFlvdSByZWplY3Qgc29tZSBvZiBteSBwYXRjaGVzIHRoYXQgcmV0 dXJucyAtRU5PREVWLCB3aXRoIHRoZSBjYXVzZSAKPj4gdGhhdCBNRVNBIGRvZXNuJ3QgZG8gdGhl IGhhbmRsaW5nIG9uIC1FTk9ERVYKPj4KPj4gQnV0IGlmIE5pY29sYWkgY2FuIGNvbmZpcm0gdGhh dCBNRVNBIGRvIGhhdmUgYSBoYW5kbGluZyBvbiAKPj4gLUVDQU5DRUxFRCwgdGhlbiB3ZSBuZWVk IHRvIG92ZXJhbGwgYWxpZ24gb3VyIGVycm9yIGNvZGUsIG9uIGRldGFpbCAKPj4gYmVsb3cgSU9D VEwgY2FuIHJldHVybiBlcnJvciBjb2RlOgo+Pgo+PiBBbWRncHVfY3NfaW9jdGwKPj4gQW1kZ3B1 X2NzX3dhaXRfaW9jdGwKPj4gQW1kZ3B1X2NzX3dhaXRfZmVuY2VzX2lvY3RsCj4+IEFtZGdwdV9p bmZvX2lvY3RsCj4+Cj4+Cj4+IE15IHBhdGNoZXMgaXM6Cj4+IHJldHVybiAtRU5PREVWIG9uIGNz X2lvY3RsIGlmIHRoZSBjb250ZXh0IGlzIGRldGVjdGVkIGd1aWx0eSwKPj4gYWxzbyByZXR1cm4g LUVOT0RFViBvbiBjc193YWl0fGNzX3dhaXRfZmVuY2VzIGlmIHRoZSBmZW5jZSBpcyAKPj4gc2ln bmFsZWQgYnV0IHdpdGggZXJyb3IgLUVUSU1FLAo+PiBhbHNvIHJldHVybiAtRU5PREVWIG9uIGlu Zm9faW9jdGwgc28gVU1EIGNhbiBxdWVyeSBpZiBncHUgcmVzZXQgCj4+IGhhcHBlbmVkIGFmdGVy IHRoZSBwcm9jZXNzIGNyZWF0ZWQgKGJlY2F1c2UgZm9yIHN0cmljdCBtb2RlIHdlIGJsb2NrIAo+ PiBwcm9jZXNzIGluc3RlYWQgb2YgY29udGV4dCkKPj4KPj4KPj4gYWNjb3JkaW5nIHRvIE5pY29s YWk6Cj4+Cj4+IGFtZGdwdV9jc19pb2N0bCAqY2FuKiByZXR1cm4gLUVDQU5DRUxFRCwgYnV0IHRv IGJlIGZyYW5rbHkgc3BlYWtpbmcsIAo+PiBrZXJuZWwgcGFydCBkb2Vzbid0IGhhdmUgYW55IHBs YWNlIHdpdGggIi1FQ0FOQ0VMRUQiIHNvIHRoaXMgc29sdXRpb24gCj4+IG9uIE1FU0Egc2lkZSBk b2Vzbid0IGFsaWduIHdpdGggKmN1cnJlbnQqIGFtZGdwdSBkcml2ZXIsCj4+IHdoaWNoIG9ubHkg cmV0dXJuIDAgb24gc3VjY2VzcyBvciAtRUlOVkFMSUQgb24gb3RoZXIgZXJyb3IgYnV0IAo+PiBk ZWZpbml0ZWx5IG5vICItRUNBTkNFTEVEIiBlcnJvciBjb2RlLAo+Pgo+PiBzbyBpZiB3ZSB0YWxr aW5nIGFib3V0IGNvbW11bml0eSBydWxlcyB3ZSBzaG91bGRuJ3QgbGV0IE1FU0EgaGFuZGxlIAo+ PiAtRUNBTkNFTEVEICwgIHdlIHNob3VsZCBoYXZlIGEgdW5pZmllZCBlcnJvciBjb2RlCj4+Cj4+ ICsgTWFyZWsKPj4KPj4gQlIgTW9uawo+Pgo+Pgo+Pgo+Pgo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+PiBGcm9tOiBIYWVobmxlLCBOaWNvbGFpCj4+IFNlbnQ6IDIwMTflubQxMOaciDnm l6UgMTg6MTQKPj4gVG86IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5j b20+OyBMaXUsIE1vbmsgCj4+IDxNb25rLkxpdUBhbWQuY29tPjsgTmljb2xhaSBIw6RobmxlIDxu aGFlaG5sZUBnbWFpbC5jb20+OyAKPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g U3ViamVjdDogUmU6IFtQQVRDSCA1LzVdIGRybS9hbWQvc2NoZWQ6IHNpZ25hbCBhbmQgZnJlZSBy ZW1haW5pbmcgCj4+IGZlbmNlcyBpbiBhbWRfc2NoZWRfZW50aXR5X2ZpbmkKPj4KPj4gT24gMDku MTAuMjAxNyAxMDowMiwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+PiBGb3IgZ3B1IHJlc2V0 IHBhdGNoZXMgKGFscmVhZHkgc3VibWl0dGVkIHRvIHB1YikgSSB3b3VsZCBtYWtlIGtlcm5lbAo+ Pj4+IHJldHVybiAtRU5PREVWIGlmIHRoZSB3YWl0aW5nIGZlbmNlIChpbiBjc193YWl0IG9yIHdh aXRfZmVuY2VzIElPQ1RMKQo+Pj4+IGZvdW5kZWQgYXMgZXJyb3IsIHRoYXQgd2F5IFVNRCB3b3Vs ZCBydW4gaW50byByb2J1c3QgZXh0ZW5zaW9uIHBhdGgKPj4+PiBhbmQgY29uc2lkZXJpbmcgdGhl IEdQVSBoYW5nIG9jY3VycmVkLAo+Pj4gV2VsbCB0aGF0IGlzIG9ubHkgY2xvc2VkIHNvdXJjZSBi ZWhhdmlvciB3aGljaCBpcyBjb21wbGV0ZWx5Cj4+PiBpcnJlbGV2YW50IGZvciB1cHN0cmVhbSBk ZXZlbG9wbWVudC4KPj4+Cj4+PiBBcyBmYXIgYXMgSSBrbm93IHdlIGhhdmVuJ3QgcHVzaGVkIHRo ZSBjaGFuZ2UgdG8gcmV0dXJuIC1FTk9ERVYgCj4+PiB1cHN0cmVhbS4KPj4KPj4gRldJVywgcmFk ZW9uc2kgY3VycmVudGx5IGV4cGVjdHMgLUVDQU5DRUxFRCBvbiBDUyBzdWJtaXNzaW9ucyBhbmQg Cj4+IHRyZWF0cyB0aG9zZSBhcyBjb250ZXh0IGxvc3QuIFBlcmhhcHMgd2UgY291bGQgdXNlIHRo ZSBzYW1lIGVycm9yIG9uIAo+PiBmZW5jZXM/Cj4+IFRoYXQgbWFrZXMgbW9yZSBzZW5zZSB0byBt ZSB0aGFuIC1FTk9ERVYuCj4+Cj4+IENoZWVycywKPj4gTmljb2xhaQo+Pgo+Pj4KPj4+IFJlZ2Fy ZHMsCj4+PiBDaHJpc3RpYW4uCj4+Pgo+Pj4gQW0gMDkuMTAuMjAxNyB1bSAwODo0MiBzY2hyaWVi IExpdSwgTW9uazoKPj4+PiBDaHJpc3RpYW4KPj4+Pgo+Pj4+PiBJdCB3b3VsZCBiZSByZWFsbHkg bmljZSB0byBoYXZlIGFuIGVycm9yIGNvZGUgc2V0IG9uCj4+Pj4+IHNfZmVuY2UtPmZpbmlzaGVk IGJlZm9yZSBpdCBpcyBzaWduYWxlZCwgdXNlIGRtYV9mZW5jZV9zZXRfZXJyb3IoKQo+Pj4+PiBm b3IgdGhpcy4KPj4+PiBGb3IgZ3B1IHJlc2V0IHBhdGNoZXMgKGFscmVhZHkgc3VibWl0dGVkIHRv IHB1YikgSSB3b3VsZCBtYWtlIGtlcm5lbAo+Pj4+IHJldHVybiAtRU5PREVWIGlmIHRoZSB3YWl0 aW5nIGZlbmNlIChpbiBjc193YWl0IG9yIHdhaXRfZmVuY2VzIElPQ1RMKQo+Pj4+IGZvdW5kZWQg YXMgZXJyb3IsIHRoYXQgd2F5IFVNRCB3b3VsZCBydW4gaW50byByb2J1c3QgZXh0ZW5zaW9uIHBh dGgKPj4+PiBhbmQgY29uc2lkZXJpbmcgdGhlIEdQVSBoYW5nIG9jY3VycmVkLAo+Pj4+Cj4+Pj4g RG9uJ3Qga25vdyBpZiB0aGlzIGlzIGV4cGVjdGVkIGZvciB0aGUgY2FzZSBvZiBub3JtYWwgcHJv Y2VzcyBiZWluZwo+Pj4+IGtpbGxlZCBvciBjcmFzaGVkIGxpa2UgTmljb2xhaSBoaXQgLi4uIHNp bmNlIHRoZXJlIGlzIG5vIGdwdSBoYW5nIGhpdAo+Pj4+Cj4+Pj4KPj4+PiBCUiBNb25rCj4+Pj4K Pj4+Pgo+Pj4+Cj4+Pj4KPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4+IEZyb206 IGFtZC1nZnggW21haWx0bzphbWQtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBP bgo+Pj4+IEJlaGFsZiBPZiBDaHJpc3RpYW4gSz9uaWcKPj4+PiBTZW50OiAyMDE35bm0OeaciDI4 5pelIDIzOjAxCj4+Pj4gVG86IE5pY29sYWkgSMOkaG5sZSA8bmhhZWhubGVAZ21haWwuY29tPjsK Pj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+IENjOiBIYWVobmxlLCBOaWNv bGFpIDxOaWNvbGFpLkhhZWhubGVAYW1kLmNvbT4KPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIDUv NV0gZHJtL2FtZC9zY2hlZDogc2lnbmFsIGFuZCBmcmVlIHJlbWFpbmluZwo+Pj4+IGZlbmNlcyBp biBhbWRfc2NoZWRfZW50aXR5X2ZpbmkKPj4+Pgo+Pj4+IEFtIDI4LjA5LjIwMTcgdW0gMTY6NTUg c2NocmllYiBOaWNvbGFpIEjDpGhubGU6Cj4+Pj4+IEZyb206IE5pY29sYWkgSMOkaG5sZSA8bmlj b2xhaS5oYWVobmxlQGFtZC5jb20+Cj4+Pj4+Cj4+Pj4+IEhpZ2hseSBjb25jdXJyZW50IFBpZ2xp dCBydW5zIGNhbiB0cmlnZ2VyIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgYQo+Pj4+PiBwZW5kaW5n IFNETUEgam9iIG9uIGEgYnVmZmVyIG9iamVjdCBpcyBuZXZlciBleGVjdXRlZCBiZWNhdXNlIHRo ZQo+Pj4+PiBjb3JyZXNwb25kaW5nIHByb2Nlc3MgaXMga2lsbGVkIChwZXJoYXBzIGR1ZSB0byBh IGNyYXNoKS4gU2luY2UgdGhlCj4+Pj4+IGpvYidzIGZlbmNlcyB3ZXJlIG5ldmVyIHNpZ25hbGVk LCB0aGUgYnVmZmVyIG9iamVjdCB3YXMgZWZmZWN0aXZlbHkKPj4+Pj4gbGVha2VkLiBXb3JzZSwg dGhlIGJ1ZmZlciB3YXMgc3R1Y2sgd2hlcmV2ZXIgaXQgaGFwcGVuZWQgdG8gYmUgYXQKPj4+Pj4g dGhlIHRpbWUsIHBvc3NpYmx5IGluIFZSQU0uCj4+Pj4+Cj4+Pj4+IFRoZSBzeW1wdG9tIHdhcyB1 c2VyIHNwYWNlIHByb2Nlc3NlcyBzdHVjayBpbiBpbnRlcnJ1cHRpYmxlIHdhaXRzCj4+Pj4+IHdp dGgga2VybmVsIHN0YWNrcyBsaWtlOgo+Pj4+Pgo+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmJjNWU2 NzIyPl0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCsweDExMi8weDI1MAo+Pj4+PiAgICAgICAgWzxm ZmZmZmZmZmJjNWU2Mzk5Pl0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dCsweDM5LzB4ZjAKPj4+Pj4g ICAgICAgIFs8ZmZmZmZmZmZiYzVlODJkMj5dCj4+Pj4+IHJlc2VydmF0aW9uX29iamVjdF93YWl0 X3RpbWVvdXRfcmN1KzB4MWMyLzB4MzAwCj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAzY2U1NmY+ XSB0dG1fYm9fY2xlYW51cF9yZWZzX2FuZF91bmxvY2srMHhmZi8weDFhMAo+Pj4+PiBbdHRtXQo+ Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwM2NmMWVhPl0gdHRtX21lbV9ldmljdF9maXJzdCsweGJh LzB4MWEwIFt0dG1dCj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAzY2Y2MTE+XSB0dG1fYm9fbWVt X3NwYWNlKzB4MzQxLzB4NGMwIFt0dG1dCj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmYzAzY2ZjNTQ+ XSB0dG1fYm9fdmFsaWRhdGUrMHhkNC8weDE1MCBbdHRtXQo+Pj4+PiAgICAgICAgWzxmZmZmZmZm ZmMwM2NmZmJkPl0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQrMHgyZWQvMHg0MjAgW3R0bV0KPj4+Pj4g ICAgICAgIFs8ZmZmZmZmZmZjMDQyZjUyMz5dIGFtZGdwdV9ib19jcmVhdGVfcmVzdHJpY3RlZCsw eDFmMy8weDQ3MAo+Pj4+PiBbYW1kZ3B1XQo+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwNDJmOWZh Pl0gYW1kZ3B1X2JvX2NyZWF0ZSsweGRhLzB4MjIwIFthbWRncHVdCj4+Pj4+ICAgICAgICBbPGZm ZmZmZmZmYzA0MzQ5ZWE+XSBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUrMHhhYS8weDE0MAo+Pj4+ PiBbYW1kZ3B1XQo+Pj4+PiAgICAgICAgWzxmZmZmZmZmZmMwNDM0Zjk3Pl0gYW1kZ3B1X2dlbV9j cmVhdGVfaW9jdGwrMHg5Ny8weDEyMAo+Pj4+PiBbYW1kZ3B1XQo+Pj4+PiAgICAgICAgWzxmZmZm ZmZmZmMwMzdkZGJhPl0gZHJtX2lvY3RsKzB4MWZhLzB4NDgwIFtkcm1dCj4+Pj4+ICAgICAgICBb PGZmZmZmZmZmYzA0MTkwNGY+XSBhbWRncHVfZHJtX2lvY3RsKzB4NGYvMHg5MCBbYW1kZ3B1XQo+ Pj4+PiAgICAgICAgWzxmZmZmZmZmZmJjMjNkYjMzPl0gZG9fdmZzX2lvY3RsKzB4YTMvMHg1ZjAK Pj4+Pj4gICAgICAgIFs8ZmZmZmZmZmZiYzIzZTBmOT5dIFN5U19pb2N0bCsweDc5LzB4OTAKPj4+ Pj4gICAgICAgIFs8ZmZmZmZmZmZiYzg2NGZmYj5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgr MHgxZS8weGFkCj4+Pj4+ICAgICAgICBbPGZmZmZmZmZmZmZmZmZmZmY+XSAweGZmZmZmZmZmZmZm ZmZmZmYKPj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogTmljb2xhaSBIw6RobmxlIDxuaWNvbGFp LmhhZWhubGVAYW1kLmNvbT4KPj4+Pj4gQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlz dGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4gLS0tCj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0v YW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMgfCA3ICsrKysrKy0KPj4+Pj4gICAgIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4+Pj4KPj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwo+ Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwo+Pj4+ PiBpbmRleCA1NGViNzdjZmZkOWIuLjMyYTk5ZTk4MGQ3OCAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwo+Pj4+PiBAQCAtMjIw LDIyICsyMjAsMjcgQEAgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2Zpbmkoc3RydWN0Cj4+Pj4+IGFt ZF9ncHVfc2NoZWR1bGVyICpzY2hlZCwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgYW1k X3NjaGVkX2VudGl0eV9pc19pZGxlKGVudGl0eSkpOwo+Pj4+PiAgICAgICAgIGFtZF9zY2hlZF9y cV9yZW1vdmVfZW50aXR5KHJxLCBlbnRpdHkpOwo+Pj4+PiAgICAgICAgIGlmIChyKSB7Cj4+Pj4+ ICAgICAgICAgICAgIHN0cnVjdCBhbWRfc2NoZWRfam9iICpqb2I7Cj4+Pj4+ICAgICAgICAgICAg IC8qIFBhcmsgdGhlIGtlcm5lbCBmb3IgYSBtb21lbnQgdG8gbWFrZSBzdXJlIGl0IGlzbid0Cj4+ Pj4+IHByb2Nlc3NpbmcKPj4+Pj4gICAgICAgICAgICAgICogb3VyIGVuaXR5Lgo+Pj4+PiAgICAg ICAgICAgICAgKi8KPj4+Pj4gICAgICAgICAgICAga3RocmVhZF9wYXJrKHNjaGVkLT50aHJlYWQp Owo+Pj4+PiAgICAgICAgICAgICBrdGhyZWFkX3VucGFyayhzY2hlZC0+dGhyZWFkKTsKPj4+Pj4g LSAgICAgICAgd2hpbGUgKGtmaWZvX291dCgmZW50aXR5LT5qb2JfcXVldWUsICZqb2IsIHNpemVv Zihqb2IpKSkKPj4+Pj4gKyAgICAgICAgd2hpbGUgKGtmaWZvX291dCgmZW50aXR5LT5qb2JfcXVl dWUsICZqb2IsIHNpemVvZihqb2IpKSkgewo+Pj4+PiArICAgICAgICAgICAgc3RydWN0IGFtZF9z Y2hlZF9mZW5jZSAqc19mZW5jZSA9IGpvYi0+c19mZW5jZTsKPj4+Pj4gKyAgICAgICAgICAgIGFt ZF9zY2hlZF9mZW5jZV9zY2hlZHVsZWQoc19mZW5jZSk7Cj4+Pj4gSXQgd291bGQgYmUgcmVhbGx5 IG5pY2UgdG8gaGF2ZSBhbiBlcnJvciBjb2RlIHNldCBvbgo+Pj4+IHNfZmVuY2UtPmZpbmlzaGVk IGJlZm9yZSBpdCBpcyBzaWduYWxlZCwgdXNlIGRtYV9mZW5jZV9zZXRfZXJyb3IoKSAKPj4+PiBm b3IgdGhpcy4KPj4+Pgo+Pj4+IEFkZGl0aW9uYWwgdG8gdGhhdCBpdCB3b3VsZCBiZSBuaWNlIHRv IG5vdGUgaW4gdGhlIHN1YmplY3QgbGluZSB0aGF0Cj4+Pj4gdGhpcyBpcyBhIHJhdGhlciBpbXBv cnRhbnQgYnVnIGZpeC4KPj4+Pgo+Pj4+IFdpdGggdGhhdCBmaXhlZCB0aGUgd2hvbGUgc2VyaWVz IGlzIFJldmlld2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnCj4+Pj4gPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4uCj4+Pj4KPj4+PiBSZWdhcmRzLAo+Pj4+IENocmlzdGlhbi4KPj4+Pgo+Pj4+PiAr IGFtZF9zY2hlZF9mZW5jZV9maW5pc2hlZChzX2ZlbmNlKTsKPj4+Pj4gKyAgICAgICAgICAgIGRt YV9mZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsKPj4+Pj4gICAgICAgICAgICAgICAgIHNj aGVkLT5vcHMtPmZyZWVfam9iKGpvYik7Cj4+Pj4+ICsgICAgICAgIH0KPj4+Pj4gICAgICAgICB9 Cj4+Pj4+ICAgICAgICAga2ZpZm9fZnJlZSgmZW50aXR5LT5qb2JfcXVldWUpOwo+Pj4+PiAgICAg fQo+Pj4+PiAgICAgc3RhdGljIHZvaWQgYW1kX3NjaGVkX2VudGl0eV93YWtldXAoc3RydWN0IGRt YV9mZW5jZSAqZiwgc3RydWN0Cj4+Pj4+IGRtYV9mZW5jZV9jYiAqY2IpCj4+Pj4+ICAgICB7Cj4+ Pj4+ICAgICAgICAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9Cj4+Pj4+ICAgICAg ICAgICAgIGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHksIGNiKTsKPj4+ Pj4gICAgICAgICBlbnRpdHktPmRlcGVuZGVuY3kgPSBOVUxMOwo+Pj4+Cj4+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBhbWQtZ2Z4IG1haWxp bmcgbGlzdAo+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBhbWQtZ2Z4IG1h aWxpbmcgbGlzdAo+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pgo+Pj4K Pj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1k LWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==