From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 12/23] drm/amdgpu: Insert meta data during submitting IB Date: Mon, 19 Dec 2016 18:23:03 -0500 Message-ID: References: <1481991405-30422-1-git-send-email-Xiangliang.Yu@amd.com> <1481991405-30422-13-git-send-email-Xiangliang.Yu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1481991405-30422-13-git-send-email-Xiangliang.Yu-5C7GfCeVMHo@public.gmane.org> 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: Xiangliang Yu Cc: dl.SRDC_SW_GPUVirtualization-5C7GfCeVMHo@public.gmane.org, Monk Liu , amd-gfx list T24gU2F0LCBEZWMgMTcsIDIwMTYgYXQgMTE6MTYgQU0sIFhpYW5nbGlhbmcgWXUgPFhpYW5nbGlh bmcuWXVAYW1kLmNvbT4gd3JvdGU6Cj4gVmlydHVhbGl6YXRpb24gd29ybGQgc3dpdGNoIG5lZWQg ZWFjaCBjb21tYW5kIHRoYXQgaXMgc3VibWl0dGVkCj4gaW50byBHRlggd2l0aCBhbiBleHRyYSBl bnRyeSwgd2hpY2ggd2lsbCB1c2luZyBXUklURV9EQVRBIHRvCj4gZnVsbGZpbGwgQ1NBLiBJbiB0 aGlzIHdheSwgQ1Agd2lsbCBzYXZlIENFL0RFIHNuYXBzaG90cyB3aGVuCj4gcHJlZW1wdGlvbiBv Y2N1cnJlZCBhbmQgcmVzdG9yZSBpdCBsYXRlci4KPgo+IFNpZ25lZC1vZmYtYnk6IE1vbmsgTGl1 IDxNb25rLkxpdUBhbWQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFhpYW5nbGlhbmcgWXUgPFhpYW5n bGlhbmcuWXVAYW1kLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2liLmMgICB8ICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zp cnQuaCB8ICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9teGdwdS9hbWRfbXhncHUuaCAgICB8 IDM5ICsrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvbXhncHUvbXhncHVfY3Nh LmMgICAgfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNo YW5nZWQsIDEzMSBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2liLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfaWIuYwo+IGluZGV4IGFjZjQ4ZGUuLmNjMzUyNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfaWIuYwo+IEBAIC0xNzUsNiArMTc1LDggQEAgaW50IGFtZGdwdV9pYl9z Y2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMsCj4gICAg ICAgICBpZiAocmluZy0+ZnVuY3MtPmVtaXRfaGRwX2ZsdXNoKQo+ICAgICAgICAgICAgICAgICBh bWRncHVfcmluZ19lbWl0X2hkcF9mbHVzaChyaW5nKTsKPgo+ICsgICAgICAgYW1kZ3B1X2dmeF9y aW5nX2VtaXRfbWV0YV9kYXRhKHJpbmcsIHZtKTsKPiArCj4gICAgICAgICAvKiBhbHdheXMgc2V0 IGNvbmRfZXhlY19wb2xsaW5nIHRvIENPTlRJTlVFICovCj4gICAgICAgICAqcmluZy0+Y29uZF9l eGVfY3B1X2FkZHIgPSAxOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92aXJ0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmly dC5oCj4gaW5kZXggZGZmMTI0OC4uZDZmNTdhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZpcnQuaAo+IEBAIC02OSw0ICs2OSw2IEBAIGludCBhbWRfeGdwdV9zZXRf aXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAgLyogQ29udGV4dCBTYXZl IEFyZWEgZnVuY3Rpb25zICovCj4gIGludCBhbWRncHVfdm1fbWFwX2NzYShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pOwo+ICB2b2lkIGFtZGdwdV92bV91 bm1hcF9jc2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZt KTsKPiArdm9pZCBhbWRncHVfZ2Z4X3JpbmdfZW1pdF9tZXRhX2RhdGEoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBh bWRncHVfdm0gKnZtKTsKPiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvbXhncHUvYW1kX214Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL214Z3B1L2FtZF9teGdw dS5oCj4gaW5kZXggYTI1ZTA3Zi4uY2MzMTIzYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL214Z3B1L2FtZF9teGdwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9teGdw dS9hbWRfbXhncHUuaAo+IEBAIC0yNiw5ICsyNiw0OCBAQAo+Cj4gICNpbmNsdWRlICJhbWRncHUu aCIKPgo+ICsvKiBjb250ZXh0IHNhdmUgYXJlYSBzdHJ1Y3R1cmVzICovCj4gK3N0cnVjdCBhbWRn cHVfY2VfaWJfc3RhdGUgewo+ICsgICAgICAgdWludDMyX3QgICAgICAgIGNlX2liX2NvbXBsZXRp b25fc3RhdHVzOwo+ICsgICAgICAgdWludDMyX3QgICAgICAgIGNlX2NvbnN0X2VuZ2luZV9jb3Vu dDsKPiArICAgICAgIHVpbnQzMl90ICAgICAgICBjZV9pYl9vZmZzZXRfaWIxOwo+ICsgICAgICAg dWludDMyX3QgICAgICAgIGNlX2liX29mZnNldF9pYjI7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgYW1k Z3B1X2RlX2liX3N0YXRlIHsKPiArICAgICAgIHVpbnQzMl90ICAgICAgICBkZV9pYl9jb21wbGV0 aW9uX3N0YXR1czsKPiArICAgICAgIHVpbnQzMl90ICAgICAgICBkZV9jb25zdF9lbmdpbmVfY291 bnQ7Cj4gKyAgICAgICB1aW50MzJfdCAgICAgICAgZGVfaWJfb2Zmc2V0X2liMTsKPiArICAgICAg IHVpbnQzMl90ICAgICAgICBkZV9pYl9vZmZzZXRfaWIyOwo+ICsgICAgICAgdWludDMyX3QgICAg ICAgIHByZWFtYmxlX2JlZ2luX2liMTsKPiArICAgICAgIHVpbnQzMl90ICAgICAgICBwcmVhbWJs ZV9iZWdpbl9pYjI7Cj4gKyAgICAgICB1aW50MzJfdCAgICAgICAgcHJlYW1ibGVfZW5kX2liMTsK PiArICAgICAgIHVpbnQzMl90ICAgICAgICBwcmVhbWJsZV9lbmRfaWIyOwo+ICsgICAgICAgdWlu dDMyX3QgICAgICAgIGRyYXdfaW5kaXJlY3RfYmFzZV9sbzsKPiArICAgICAgIHVpbnQzMl90ICAg ICAgICBkcmF3X2luZGlyZWN0X2Jhc2VfaGk7Cj4gKyAgICAgICB1aW50MzJfdCAgICAgICAgZGlz cF9pbmRpcmVjdF9iYXNlX2xvOwo+ICsgICAgICAgdWludDMyX3QgICAgICAgIGRpc3BfaW5kaXJl Y3RfYmFzZV9oaTsKPiArICAgICAgIHVpbnQzMl90ICAgICAgICBnZHNfYmFja3VwX2FkZHJfbG87 Cj4gKyAgICAgICB1aW50MzJfdCAgICAgICAgZ2RzX2JhY2t1cF9hZGRyX2hpOwo+ICsgICAgICAg dWludDMyX3QgICAgICAgIGluZGV4X2Jhc2VfYWRkcl9sbzsKPiArICAgICAgIHVpbnQzMl90ICAg ICAgICBpbmRleF9iYXNlX2FkZHJfaGk7Cj4gKyAgICAgICB1aW50MzJfdCAgICAgICAgc2FtcGxl X2NudGw7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgYW1kZ3B1X2dmeF9tZXRhX2RhdGEgewo+ICsgICAg ICAgc3RydWN0IGFtZGdwdV9jZV9pYl9zdGF0ZSAgICAgICBjZV9wYXlsb2FkOwo+ICsgICAgICAg dWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZDFbNjBdOwo+ICsgICAgICAg c3RydWN0IGFtZGdwdV9kZV9pYl9zdGF0ZSAgICAgICBkZV9wYXlsb2FkOwo+ICsgICAgICAgdWlu dDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBkZV9pYl9iYXNlX2FkZHJfbG87Cj4gKyAgICAg ICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGRlX2liX2Jhc2VfYWRkcl9oaTsKPiAr ICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQyWzk0MV07Cj4g K307Cj4gKwoKVGhlc2UgYXJlIGdmeDggc3BlY2lmaWMgYW5kIHNob3VsZCBiZSBtb3ZlZCB0byBn Zng4IG1vZHVsZS4KCj4gIC8qIHhncHUgc3RydWN0dXJlcyAqLwo+ICBzdHJ1Y3QgYW1kX3hncHVf Y3NhIHsKPiAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gICAgICAgICAgICAqcm9iajsKPiArICAg ICAgIHN0cnVjdCBhbWRncHVfY2VfaWJfc3RhdGUgICBjZV9wYXlsb2FkOwo+ICsgICAgICAgc3Ry dWN0IGFtZGdwdV9kZV9pYl9zdGF0ZSAgIGRlX3BheWxvYWQ7Cj4gICAgICAgICB1aW50NjRfdCAg ICAgICAgICAgICAgICAgICAgZ3B1X2FkZHI7Cj4gICAgICAgICB1aW50NjRfdCAgICAgICAgICAg ICAgICAgICAgZ2RzX2FkZHI7Cj4gICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICAgICAgICAg c2l6ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9teGdwdS9teGdwdV9jc2Eu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvbXhncHUvbXhncHVfY3NhLmMKPiBpbmRleCAyNDZhNzQ3 Li42ZDQyNDZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvbXhncHUvbXhncHVf Y3NhLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL214Z3B1L214Z3B1X2NzYS5jCj4gQEAg LTIwNywzICsyMDcsOTEgQEAgdm9pZCBhbWRncHVfdm1fdW5tYXBfY3NhKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKPiAgICAgICAgIHNhID0gJnhncHUt PnNhOwo+ICAgICAgICAgeGdwdV92bV91bm1hcF9jc2EoYWRldiwgdm0sIHNhKTsKPiAgfQo+ICsK PiArc3RhdGljIHZvaWQgYW1kZ3B1X3Jpbmdfd3JpdGVfbXVsdGlwbGUoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KnNyYywgaW50IGNvdW50X2R3KQo+ICt7Cj4gKyAgICAgICBpZiAocmluZy0+Y291bnRfZHcgPCBj b3VudF9kdykKPiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJ3cml0aW5nIG1vcmUgZHdvcmRz IHRvIHRoZSByaW5nIHRoYW4gZXhwZWN0ZWQ6JWQuXG4iLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvdW50X2R3KTsKPiArICAgICAgIGVsc2Ugewo+ICsgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgY2h1bmsxLCBjaHVuazI7Cj4gKyAgICAgICAgICAgICAgIHZvaWQgKmRzdCA9ICh2 b2lkICopJnJpbmctPnJpbmdbcmluZy0+d3B0cl07Cj4gKwo+ICsgICAgICAgICAgICAgICBjaHVu azEgPSByaW5nLT5wdHJfbWFzayArIDEgLSByaW5nLT53cHRyOwo+ICsgICAgICAgICAgICAgICBj aHVuazEgPSAoY2h1bmsxID49IGNvdW50X2R3KSA/IGNvdW50X2R3IDogY2h1bmsxOwo+ICsgICAg ICAgICAgICAgICBjaHVuazIgPSBjb3VudF9kdyAtIGNodW5rMTsKPiArICAgICAgICAgICAgICAg Y2h1bmsxIDw8PSAyOwo+ICsgICAgICAgICAgICAgICBjaHVuazIgPDw9IDI7Cj4gKyAgICAgICAg ICAgICAgIGlmIChjaHVuazEpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoZHN0 LCBzcmMsIGNodW5rMSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZHN0ID0gKHZvaWQgKiko KCh1aW50NjRfdClkc3QgKyBjaHVuazEpICYKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmluZy0+cHRyX21hc2spOwo+ICsgICAgICAgICAgICAgICB9Cj4gKwo+ICsg ICAgICAgICAgICAgICBpZiAoY2h1bmsyKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3Jj ICs9IGNodW5rMTsKPiArICAgICAgICAgICAgICAgICAgICAgICBkc3QgPSAodm9pZCAqKXJpbmct PnJpbmc7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGRzdCwgc3JjLCBjaHVuazIp Owo+ICsgICAgICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICAgICByaW5nLT53cHRyICs9 IGNvdW50X2R3Owo+ICsgICAgICAgICAgICAgICByaW5nLT53cHRyICY9IHJpbmctPnB0cl9tYXNr Owo+ICsgICAgICAgICAgICAgICByaW5nLT5jb3VudF9kdyAtPSBjb3VudF9kdzsKPiArICAgICAg IH0KPiArfQo+ICsKPiArdm9pZCBhbWRncHVfZ2Z4X3JpbmdfZW1pdF9tZXRhX2RhdGEoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhbWRncHVfdm0gKnZtKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NlX2li X3N0YXRlICpjZV9wYXlsb2FkOwo+ICsgICAgICAgc3RydWN0IGFtZGdwdV9kZV9pYl9zdGF0ZSAq ZGVfcGF5bG9hZDsKPiArICAgICAgIHN0cnVjdCBhbWRfeGdwdV9jc2EgKnNhID0gTlVMTDsKPiAr ICAgICAgIHN0cnVjdCBhbWRfeGdwdSAqeGdwdSA9IChzdHJ1Y3QgYW1kX3hncHUgKilyaW5nLT5h ZGV2LT5wcml2X2RhdGE7Cj4gKyAgICAgICB1aW50NjRfdCBjc2FfYWRkciwgZ2RzX2FkZHI7Cj4g KyAgICAgICBpbnQgY250Owo+ICsKPiArICAgICAgIGlmICgheGdwdSB8fCAocmluZy0+ZnVuY3Mt PnR5cGUgIT0gQU1ER1BVX1JJTkdfVFlQRV9HRlgpKQo+ICsgICAgICAgICAgICAgICByZXR1cm47 Cj4gKwo+ICsgICAgICAgc2EgPSAmeGdwdS0+c2E7CgpObyBuZWVkIHRvIG1ha2UgdGhpcyBkZXBl bmRlbnQgb24geGdwdS4gIEFzIEkgc2FpZCBpbiB0aGUgcHJldmlvdXMKcGF0Y2ggcHJlZW1wdGlv biBpcyB1c2VmdWwgaW5kZXBlbmRlbnQgb2YgeGdwdS4KCj4gKwo+ICsgICAgICAgY2VfcGF5bG9h ZCA9ICZzYS0+Y2VfcGF5bG9hZDsKPiArICAgICAgIGRlX3BheWxvYWQgPSAmc2EtPmRlX3BheWxv YWQ7Cj4gKyAgICAgICBtZW1zZXQoY2VfcGF5bG9hZCwgMCwgc2l6ZW9mKCpjZV9wYXlsb2FkKSk7 Cj4gKyAgICAgICBtZW1zZXQoZGVfcGF5bG9hZCwgMCwgc2l6ZW9mKCpkZV9wYXlsb2FkKSk7Cj4g Kwo+ICsgICAgICAgY250ID0gKHNpemVvZigqY2VfcGF5bG9hZCkgPj4gMikgKyA0IC0gMjsKPiAr ICAgICAgIGNzYV9hZGRyID0gdm0gPyB2bS0+Y3NhLmNzYV9hZGRyIDogc2EtPmdwdV9hZGRyOwo+ ICsgICAgICAgZ2RzX2FkZHIgPSB2bSA/IHZtLT5jc2EuZ2RzX2FkZHIgOiBzYS0+Z2RzX2FkZHI7 Cj4gKyAgICAgICBkZV9wYXlsb2FkLT5nZHNfYmFja3VwX2FkZHJfbG8gPSBsb3dlcl8zMl9iaXRz KGdkc19hZGRyKTsKPiArICAgICAgIGRlX3BheWxvYWQtPmdkc19iYWNrdXBfYWRkcl9oaSA9IHVw cGVyXzMyX2JpdHMoZ2RzX2FkZHIpOwo+ICsKPiArICAgICAgIC8qIHdyaXRlIENFIG1ldGEgZGF0 YSAqLwo+ICsgICAgICAgYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMyhQQUNLRVQzX1dS SVRFX0RBVEEsIGNudCkpOwo+ICsgICAgICAgYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgV1JJVEVf REFUQV9FTkdJTkVfU0VMKDIpIHwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdS SVRFX0RBVEFfRFNUX1NFTCg4KSB8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX Ul9DT05GSVJNIHwgV1JJVEVfREFUQV9DQUNIRV9QT0xJQ1koMCkpOwo+ICsgICAgICAgYW1kZ3B1 X3Jpbmdfd3JpdGUocmluZywgbG93ZXJfMzJfYml0cyhjc2FfYWRkciArCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgYW1kZ3B1X2dmeF9tZXRhX2RhdGEsIGNlX3Bh eWxvYWQpKSk7Cj4gKyAgICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLCB1cHBlcl8zMl9iaXRz KGNzYV9hZGRyICsKPiArICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCBh bWRncHVfZ2Z4X21ldGFfZGF0YSwgY2VfcGF5bG9hZCkpKTsKPiArCj4gKyAgICAgICBhbWRncHVf cmluZ193cml0ZV9tdWx0aXBsZShyaW5nLCAodm9pZCAqKWNlX3BheWxvYWQsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKmNlX3BheWxvYWQpID4+IDIp Owo+ICsKPiArICAgICAgIC8qIHdyaXRlIERFIG1ldGEgZGF0YSAqLwo+ICsgICAgICAgY250ID0g KHNpemVvZigqZGVfcGF5bG9hZCkgPj4gMikgKyA0IC0gMjsKPiArCj4gKyAgICAgICBhbWRncHVf cmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfV1JJVEVfREFUQSwgY250KSk7Cj4gKyAg ICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLCBXUklURV9EQVRBX0VOR0lORV9TRUwoMSkgfAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JJVEVfREFUQV9EU1RfU0VMKDgpIHwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdSX0NPTkZJUk0gfCBXUklURV9EQVRB X0NBQ0hFX1BPTElDWSgwKSk7Cj4gKyAgICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLCBsb3dl cl8zMl9iaXRzKGNzYV9hZGRyICsKPiArICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9m KHN0cnVjdCBhbWRncHVfZ2Z4X21ldGFfZGF0YSwgZGVfcGF5bG9hZCkpKTsKPiArICAgICAgIGFt ZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHVwcGVyXzMyX2JpdHMoY3NhX2FkZHIgKwo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IGFtZGdwdV9nZnhfbWV0YV9kYXRhLCBk ZV9wYXlsb2FkKSkpOwo+ICsKPiArICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlX211bHRpcGxlKHJp bmcsICh2b2lkICopZGVfcGF5bG9hZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZigqZGVfcGF5bG9hZCkgPj4gMik7Cj4gK30KClRoaXMgZnVuY3Rpb24g aXMgZ2Z4OCBzcGVjaWZpYyBhbmQgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBnZng4IG1vZHVsZS4K CkFsZXgKCj4gLS0KPiAyLjcuNAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=