From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Nicolai_H=c3=a4hnle?= Subject: Re: [PATCH 5/5] drm/amd/sched: signal and free remaining fences in amd_sched_entity_fini Date: Mon, 9 Oct 2017 12:49:19 +0200 Message-ID: <7e338e23-540c-4e2e-982f-f0eb623c75b1@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> 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: "Liu, Monk" , "Koenig, Christian" , =?UTF-8?Q?Nicolai_H=c3=a4hnle?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Olsak, Marek" Cc: "Li, Bingley" SGkgTW9uaywKClllcywgeW91J3JlIHJpZ2h0LCB3ZSdyZSBvbmx5IHVzaW5nIEVDQU5DRUxFRCBp bnRlcm5hbGx5LiBCdXQgYXMgYSAKY29uc2VxdWVuY2UsIE1lc2Egd291bGQgYWxyZWFkeSBoYW5k bGUgYSBrZXJuZWwgZXJyb3Igb2YgRUNBTkNFTEVEIG9uIApjb250ZXh0IGxvc3MgY29ycmVjdGx5 IDopCgpDaGVlcnMsCk5pY29sYWkKCk9uIDA5LjEwLjIwMTcgMTI6MzUsIExpdSwgTW9uayB3cm90 ZToKPiBIaSBDaHJpc3RpYW4KPiAKPiBZb3UgcmVqZWN0IHNvbWUgb2YgbXkgcGF0Y2hlcyB0aGF0 IHJldHVybnMgLUVOT0RFViwgd2l0aCB0aGUgY2F1c2UgdGhhdCBNRVNBIGRvZXNuJ3QgZG8gdGhl IGhhbmRsaW5nIG9uIC1FTk9ERVYKPiAKPiBCdXQgaWYgTmljb2xhaSBjYW4gY29uZmlybSB0aGF0 IE1FU0EgZG8gaGF2ZSBhIGhhbmRsaW5nIG9uIC1FQ0FOQ0VMRUQsIHRoZW4gd2UgbmVlZCB0byBv dmVyYWxsIGFsaWduIG91ciBlcnJvciBjb2RlLCBvbiBkZXRhaWwgYmVsb3cgSU9DVEwgY2FuIHJl dHVybiBlcnJvciBjb2RlOgo+IAo+IEFtZGdwdV9jc19pb2N0bAo+IEFtZGdwdV9jc193YWl0X2lv Y3RsCj4gQW1kZ3B1X2NzX3dhaXRfZmVuY2VzX2lvY3RsCj4gQW1kZ3B1X2luZm9faW9jdGwKPiAK PiAKPiBNeSBwYXRjaGVzIGlzOgo+IHJldHVybiAtRU5PREVWIG9uIGNzX2lvY3RsIGlmIHRoZSBj b250ZXh0IGlzIGRldGVjdGVkIGd1aWx0eSwKPiBhbHNvIHJldHVybiAtRU5PREVWIG9uIGNzX3dh aXR8Y3Nfd2FpdF9mZW5jZXMgaWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVkIGJ1dCB3aXRoIGVycm9y IC1FVElNRSwKPiBhbHNvIHJldHVybiAtRU5PREVWIG9uIGluZm9faW9jdGwgc28gVU1EIGNhbiBx dWVyeSBpZiBncHUgcmVzZXQgaGFwcGVuZWQgYWZ0ZXIgdGhlIHByb2Nlc3MgY3JlYXRlZCAoYmVj YXVzZSBmb3Igc3RyaWN0IG1vZGUgd2UgYmxvY2sgcHJvY2VzcyBpbnN0ZWFkIG9mIGNvbnRleHQp Cj4gCj4gCj4gYWNjb3JkaW5nIHRvIE5pY29sYWk6Cj4gCj4gYW1kZ3B1X2NzX2lvY3RsICpjYW4q IHJldHVybiAtRUNBTkNFTEVELCBidXQgdG8gYmUgZnJhbmtseSBzcGVha2luZywga2VybmVsIHBh cnQgZG9lc24ndCBoYXZlIGFueSBwbGFjZSB3aXRoICItRUNBTkNFTEVEIiBzbyB0aGlzIHNvbHV0 aW9uIG9uIE1FU0Egc2lkZSBkb2Vzbid0IGFsaWduIHdpdGggKmN1cnJlbnQqIGFtZGdwdSBkcml2 ZXIsCj4gd2hpY2ggb25seSByZXR1cm4gMCBvbiBzdWNjZXNzIG9yIC1FSU5WQUxJRCBvbiBvdGhl ciBlcnJvciBidXQgZGVmaW5pdGVseSBubyAiLUVDQU5DRUxFRCIgZXJyb3IgY29kZSwKPiAKPiBz byBpZiB3ZSB0YWxraW5nIGFib3V0IGNvbW11bml0eSBydWxlcyB3ZSBzaG91bGRuJ3QgbGV0IE1F U0EgaGFuZGxlIC1FQ0FOQ0VMRUQgLCAgd2Ugc2hvdWxkIGhhdmUgYSB1bmlmaWVkIGVycm9yIGNv ZGUKPiAKPiArIE1hcmVrCj4gCj4gQlIgTW9uawo+IAo+ICAgCj4gCj4gCj4gCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBIYWVobmxlLCBOaWNvbGFpCj4gU2VudDogMjAxN+W5 tDEw5pyIOeaXpSAxODoxNAo+IFRvOiBLb2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5p Z0BhbWQuY29tPjsgTGl1LCBNb25rIDxNb25rLkxpdUBhbWQuY29tPjsgTmljb2xhaSBIw6Robmxl IDxuaGFlaG5sZUBnbWFpbC5jb20+OyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggNS81XSBkcm0vYW1kL3NjaGVkOiBzaWduYWwgYW5kIGZyZWUgcmVt YWluaW5nIGZlbmNlcyBpbiBhbWRfc2NoZWRfZW50aXR5X2ZpbmkKPiAKPiBPbiAwOS4xMC4yMDE3 IDEwOjAyLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gRm9yIGdwdSByZXNldCBwYXRjaGVz IChhbHJlYWR5IHN1Ym1pdHRlZCB0byBwdWIpIEkgd291bGQgbWFrZSBrZXJuZWwKPj4+IHJldHVy biAtRU5PREVWIGlmIHRoZSB3YWl0aW5nIGZlbmNlIChpbiBjc193YWl0IG9yIHdhaXRfZmVuY2Vz IElPQ1RMKQo+Pj4gZm91bmRlZCBhcyBlcnJvciwgdGhhdCB3YXkgVU1EIHdvdWxkIHJ1biBpbnRv IHJvYnVzdCBleHRlbnNpb24gcGF0aAo+Pj4gYW5kIGNvbnNpZGVyaW5nIHRoZSBHUFUgaGFuZyBv Y2N1cnJlZCwKPj4gV2VsbCB0aGF0IGlzIG9ubHkgY2xvc2VkIHNvdXJjZSBiZWhhdmlvciB3aGlj aCBpcyBjb21wbGV0ZWx5Cj4+IGlycmVsZXZhbnQgZm9yIHVwc3RyZWFtIGRldmVsb3BtZW50Lgo+ Pgo+PiBBcyBmYXIgYXMgSSBrbm93IHdlIGhhdmVuJ3QgcHVzaGVkIHRoZSBjaGFuZ2UgdG8gcmV0 dXJuIC1FTk9ERVYgdXBzdHJlYW0uCj4gCj4gRldJVywgcmFkZW9uc2kgY3VycmVudGx5IGV4cGVj dHMgLUVDQU5DRUxFRCBvbiBDUyBzdWJtaXNzaW9ucyBhbmQgdHJlYXRzIHRob3NlIGFzIGNvbnRl eHQgbG9zdC4gUGVyaGFwcyB3ZSBjb3VsZCB1c2UgdGhlIHNhbWUgZXJyb3Igb24gZmVuY2VzPwo+ IFRoYXQgbWFrZXMgbW9yZSBzZW5zZSB0byBtZSB0aGFuIC1FTk9ERVYuCj4gCj4gQ2hlZXJzLAo+ IE5pY29sYWkKPiAKPj4KPj4gUmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+PiBBbSAwOS4xMC4y MDE3IHVtIDA4OjQyIHNjaHJpZWIgTGl1LCBNb25rOgo+Pj4gQ2hyaXN0aWFuCj4+Pgo+Pj4+IEl0 IHdvdWxkIGJlIHJlYWxseSBuaWNlIHRvIGhhdmUgYW4gZXJyb3IgY29kZSBzZXQgb24KPj4+PiBz X2ZlbmNlLT5maW5pc2hlZCBiZWZvcmUgaXQgaXMgc2lnbmFsZWQsIHVzZSBkbWFfZmVuY2Vfc2V0 X2Vycm9yKCkKPj4+PiBmb3IgdGhpcy4KPj4+IEZvciBncHUgcmVzZXQgcGF0Y2hlcyAoYWxyZWFk eSBzdWJtaXR0ZWQgdG8gcHViKSBJIHdvdWxkIG1ha2Uga2VybmVsCj4+PiByZXR1cm4gLUVOT0RF ViBpZiB0aGUgd2FpdGluZyBmZW5jZSAoaW4gY3Nfd2FpdCBvciB3YWl0X2ZlbmNlcyBJT0NUTCkK Pj4+IGZvdW5kZWQgYXMgZXJyb3IsIHRoYXQgd2F5IFVNRCB3b3VsZCBydW4gaW50byByb2J1c3Qg ZXh0ZW5zaW9uIHBhdGgKPj4+IGFuZCBjb25zaWRlcmluZyB0aGUgR1BVIGhhbmcgb2NjdXJyZWQs Cj4+Pgo+Pj4gRG9uJ3Qga25vdyBpZiB0aGlzIGlzIGV4cGVjdGVkIGZvciB0aGUgY2FzZSBvZiBu b3JtYWwgcHJvY2VzcyBiZWluZwo+Pj4ga2lsbGVkIG9yIGNyYXNoZWQgbGlrZSBOaWNvbGFpIGhp dCAuLi4gc2luY2UgdGhlcmUgaXMgbm8gZ3B1IGhhbmcgaGl0Cj4+Pgo+Pj4KPj4+IEJSIE1vbmsK Pj4+Cj4+Pgo+Pj4KPj4+Cj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4gRnJvbTog YW1kLWdmeCBbbWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9u Cj4+PiBCZWhhbGYgT2YgQ2hyaXN0aWFuIEs/bmlnCj4+PiBTZW50OiAyMDE35bm0OeaciDI45pel IDIzOjAxCj4+PiBUbzogTmljb2xhaSBIw6RobmxlIDxuaGFlaG5sZUBnbWFpbC5jb20+Owo+Pj4g YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IENjOiBIYWVobmxlLCBOaWNvbGFpIDxO aWNvbGFpLkhhZWhubGVAYW1kLmNvbT4KPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggNS81XSBkcm0v YW1kL3NjaGVkOiBzaWduYWwgYW5kIGZyZWUgcmVtYWluaW5nCj4+PiBmZW5jZXMgaW4gYW1kX3Nj aGVkX2VudGl0eV9maW5pCj4+Pgo+Pj4gQW0gMjguMDkuMjAxNyB1bSAxNjo1NSBzY2hyaWViIE5p Y29sYWkgSMOkaG5sZToKPj4+PiBGcm9tOiBOaWNvbGFpIEjDpGhubGUgPG5pY29sYWkuaGFlaG5s ZUBhbWQuY29tPgo+Pj4+Cj4+Pj4gSGlnaGx5IGNvbmN1cnJlbnQgUGlnbGl0IHJ1bnMgY2FuIHRy aWdnZXIgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSBhCj4+Pj4gcGVuZGluZyBTRE1BIGpvYiBvbiBh IGJ1ZmZlciBvYmplY3QgaXMgbmV2ZXIgZXhlY3V0ZWQgYmVjYXVzZSB0aGUKPj4+PiBjb3JyZXNw b25kaW5nIHByb2Nlc3MgaXMga2lsbGVkIChwZXJoYXBzIGR1ZSB0byBhIGNyYXNoKS4gU2luY2Ug dGhlCj4+Pj4gam9iJ3MgZmVuY2VzIHdlcmUgbmV2ZXIgc2lnbmFsZWQsIHRoZSBidWZmZXIgb2Jq ZWN0IHdhcyBlZmZlY3RpdmVseQo+Pj4+IGxlYWtlZC4gV29yc2UsIHRoZSBidWZmZXIgd2FzIHN0 dWNrIHdoZXJldmVyIGl0IGhhcHBlbmVkIHRvIGJlIGF0Cj4+Pj4gdGhlIHRpbWUsIHBvc3NpYmx5 IGluIFZSQU0uCj4+Pj4KPj4+PiBUaGUgc3ltcHRvbSB3YXMgdXNlciBzcGFjZSBwcm9jZXNzZXMg c3R1Y2sgaW4gaW50ZXJydXB0aWJsZSB3YWl0cwo+Pj4+IHdpdGgga2VybmVsIHN0YWNrcyBsaWtl Ogo+Pj4+Cj4+Pj4gIMKgwqDCoMKgwqAgWzxmZmZmZmZmZmJjNWU2NzIyPl0gZG1hX2ZlbmNlX2Rl ZmF1bHRfd2FpdCsweDExMi8weDI1MAo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZiYzVlNjM5 OT5dIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQrMHgzOS8weGYwCj4+Pj4gIMKgwqDCoMKgwqAgWzxm ZmZmZmZmZmJjNWU4MmQyPl0KPj4+PiByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3Jj dSsweDFjMi8weDMwMAo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZjMDNjZTU2Zj5dIHR0bV9i b19jbGVhbnVwX3JlZnNfYW5kX3VubG9jaysweGZmLzB4MWEwCj4+Pj4gW3R0bV0KPj4+PiAgwqDC oMKgwqDCoCBbPGZmZmZmZmZmYzAzY2YxZWE+XSB0dG1fbWVtX2V2aWN0X2ZpcnN0KzB4YmEvMHgx YTAgW3R0bV0KPj4+PiAgwqDCoMKgwqDCoCBbPGZmZmZmZmZmYzAzY2Y2MTE+XSB0dG1fYm9fbWVt X3NwYWNlKzB4MzQxLzB4NGMwIFt0dG1dCj4+Pj4gIMKgwqDCoMKgwqAgWzxmZmZmZmZmZmMwM2Nm YzU0Pl0gdHRtX2JvX3ZhbGlkYXRlKzB4ZDQvMHgxNTAgW3R0bV0KPj4+PiAgwqDCoMKgwqDCoCBb PGZmZmZmZmZmYzAzY2ZmYmQ+XSB0dG1fYm9faW5pdF9yZXNlcnZlZCsweDJlZC8weDQyMCBbdHRt XQo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZjMDQyZjUyMz5dIGFtZGdwdV9ib19jcmVhdGVf cmVzdHJpY3RlZCsweDFmMy8weDQ3MAo+Pj4+IFthbWRncHVdCj4+Pj4gIMKgwqDCoMKgwqAgWzxm ZmZmZmZmZmMwNDJmOWZhPl0gYW1kZ3B1X2JvX2NyZWF0ZSsweGRhLzB4MjIwIFthbWRncHVdCj4+ Pj4gIMKgwqDCoMKgwqAgWzxmZmZmZmZmZmMwNDM0OWVhPl0gYW1kZ3B1X2dlbV9vYmplY3RfY3Jl YXRlKzB4YWEvMHgxNDAKPj4+PiBbYW1kZ3B1XQo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZj MDQzNGY5Nz5dIGFtZGdwdV9nZW1fY3JlYXRlX2lvY3RsKzB4OTcvMHgxMjAKPj4+PiBbYW1kZ3B1 XQo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZjMDM3ZGRiYT5dIGRybV9pb2N0bCsweDFmYS8w eDQ4MCBbZHJtXQo+Pj4+ICDCoMKgwqDCoMKgIFs8ZmZmZmZmZmZjMDQxOTA0Zj5dIGFtZGdwdV9k cm1faW9jdGwrMHg0Zi8weDkwIFthbWRncHVdCj4+Pj4gIMKgwqDCoMKgwqAgWzxmZmZmZmZmZmJj MjNkYjMzPl0gZG9fdmZzX2lvY3RsKzB4YTMvMHg1ZjAKPj4+PiAgwqDCoMKgwqDCoCBbPGZmZmZm ZmZmYmMyM2UwZjk+XSBTeVNfaW9jdGwrMHg3OS8weDkwCj4+Pj4gIMKgwqDCoMKgwqAgWzxmZmZm ZmZmZmJjODY0ZmZiPl0gZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFlLzB4YWQKPj4+PiAg wqDCoMKgwqDCoCBbPGZmZmZmZmZmZmZmZmZmZmY+XSAweGZmZmZmZmZmZmZmZmZmZmYKPj4+Pgo+ Pj4+IFNpZ25lZC1vZmYtYnk6IE5pY29sYWkgSMOkaG5sZSA8bmljb2xhaS5oYWVobmxlQGFtZC5j b20+Cj4+Pj4gQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1k LmNvbT4KPj4+PiAtLS0KPj4+PiAgwqDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9n cHVfc2NoZWR1bGVyLmMgfCA3ICsrKysrKy0KPj4+PiAgwqDCoCAxIGZpbGUgY2hhbmdlZCwgNiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCj4+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKPj4+PiBpbmRleCA1NGViNzdjZmZk OWIuLjMyYTk5ZTk4MGQ3OCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Nj aGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Nj aGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKPj4+PiBAQCAtMjIwLDIyICsyMjAsMjcgQEAgdm9pZCBh bWRfc2NoZWRfZW50aXR5X2Zpbmkoc3RydWN0Cj4+Pj4gYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVk LAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhbWRf c2NoZWRfZW50aXR5X2lzX2lkbGUoZW50aXR5KSk7Cj4+Pj4gIMKgwqDCoMKgwqDCoCBhbWRfc2No ZWRfcnFfcmVtb3ZlX2VudGl0eShycSwgZW50aXR5KTsKPj4+PiAgwqDCoMKgwqDCoMKgIGlmIChy KSB7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRfc2NoZWRfam9iICpqb2I7 Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFBhcmsgdGhlIGtlcm5lbCBmb3IgYSBtb21l bnQgdG8gbWFrZSBzdXJlIGl0IGlzbid0Cj4+Pj4gcHJvY2Vzc2luZwo+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICogb3VyIGVuaXR5Lgo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICov Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGt0aHJlYWRfcGFyayhzY2hlZC0+dGhyZWFkKTsK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAga3RocmVhZF91bnBhcmsoc2NoZWQtPnRocmVhZCk7 Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHdoaWxlIChrZmlmb19vdXQoJmVudGl0eS0+am9iX3F1ZXVl LCAmam9iLCBzaXplb2Yoam9iKSkpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHdoaWxlIChrZmlmb19v dXQoJmVudGl0eS0+am9iX3F1ZXVlLCAmam9iLCBzaXplb2Yoam9iKSkpIHsKPj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gam9iLT5z X2ZlbmNlOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZF9zY2hlZF9mZW5jZV9zY2hl ZHVsZWQoc19mZW5jZSk7Cj4+PiBJdCB3b3VsZCBiZSByZWFsbHkgbmljZSB0byBoYXZlIGFuIGVy cm9yIGNvZGUgc2V0IG9uCj4+PiBzX2ZlbmNlLT5maW5pc2hlZCBiZWZvcmUgaXQgaXMgc2lnbmFs ZWQsIHVzZSBkbWFfZmVuY2Vfc2V0X2Vycm9yKCkgZm9yIHRoaXMuCj4+Pgo+Pj4gQWRkaXRpb25h bCB0byB0aGF0IGl0IHdvdWxkIGJlIG5pY2UgdG8gbm90ZSBpbiB0aGUgc3ViamVjdCBsaW5lIHRo YXQKPj4+IHRoaXMgaXMgYSByYXRoZXIgaW1wb3J0YW50IGJ1ZyBmaXguCj4+Pgo+Pj4gV2l0aCB0 aGF0IGZpeGVkIHRoZSB3aG9sZSBzZXJpZXMgaXMgUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7Zu aWcKPj4+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Lgo+Pj4KPj4+IFJlZ2FyZHMsCj4+PiBD aHJpc3RpYW4uCj4+Pgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZF9zY2hlZF9mZW5j ZV9maW5pc2hlZChzX2ZlbmNlKTsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkbWFfZmVu Y2VfcHV0KCZzX2ZlbmNlLT5maW5pc2hlZCk7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc2NoZWQtPm9wcy0+ZnJlZV9qb2Ioam9iKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+ Pj4+ICDCoMKgwqDCoMKgwqAgfQo+Pj4+ICDCoMKgwqDCoMKgwqAga2ZpZm9fZnJlZSgmZW50aXR5 LT5qb2JfcXVldWUpOwo+Pj4+ICDCoMKgIH0KPj4+PiAgwqDCoCBzdGF0aWMgdm9pZCBhbWRfc2No ZWRfZW50aXR5X3dha2V1cChzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QKPj4+PiBkbWFfZmVu Y2VfY2IgKmNiKQo+Pj4+ICDCoMKgIHsKPj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRfc2No ZWRfZW50aXR5ICplbnRpdHkgPQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250YWluZXJf b2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5LCBjYik7Cj4+Pj4gIMKgwqDCoMKgwqDCoCBl bnRpdHktPmRlcGVuZGVuY3kgPSBOVUxMOwo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+PiBhbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Cj4+Cj4gCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK