From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [v3 PATCH 3/3] drm/amd/display: Switch to using atomic_helper for flip. Date: Mon, 30 Jan 2017 10:38:47 -0500 Message-ID: <3bc6646b-1b65-6e4d-f250-287ef6325896@amd.com> References: <1485656811-4211-1-git-send-email-Andrey.Grodzovsky@amd.com> <1485656811-4211-4-git-send-email-Andrey.Grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1485656811-4211-4-git-send-email-Andrey.Grodzovsky-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Andrey Grodzovsky , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: dc_upstream-5C7GfCeVMHo@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, daniel.vetter-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: nouveau.vger.kernel.org T24gMjAxNy0wMS0yOCAwOToyNiBQTSwgQW5kcmV5IEdyb2R6b3Zza3kgd3JvdGU6Cj4gU3dpY3Ro IHRvIHVzZSBhdG9taWMgaGVscGVyLgo+IFN0YXJ0IHVzaW5nIGFjdHVhbCB1c2VyJ3MgZ2l2ZW4g dGFyZ2V0X3ZibGFuayB2YWx1ZSBmb3IgZmxpcCAKPiBpbnN0ZWFkIG9mIGN1cnJlbnQgdmFsdWUu Cj4gCj4gdjM6Cj4gVXBkYXRlIGZvciBtb3ZpZyBwZmxpcCBmbGFncyB0byBjcnRjX3N0YXRlCj4g Cj4gQ2hhbmdlLUlkOiBJMjVkYWU2ZDhjMjlkZTVkMDIyYTQyYWE5OWExOGEzMjY3NGI1NmNkYQo+ IFNpZ25lZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxBbmRyZXkuR3JvZHpvdnNreUBhbWQu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oICAg ICAgICAgICB8ICAgMSAtCj4gIC4uLi9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9k bV90eXBlcy5jICAgIHwgMTA5ICsrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaAo+IGluZGV4IDRjMGE4NmUuLjNmZjNjMTQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKPiBAQCAtNDQzLDcgKzQ0 Myw2IEBAIHN0cnVjdCBhbWRncHVfY3J0YyB7Cj4gIAllbnVtIGFtZGdwdV9pbnRlcnJ1cHRfc3Rh dGUgdnN5bmNfdGltZXJfZW5hYmxlZDsKPiAgCj4gIAlpbnQgb3RnX2luc3Q7Cj4gLQl1aW50MzJf dCBmbGlwX2ZsYWdzOwo+ICAJLyogQWZ0ZXIgU2V0IE1vZGUgdGFyZ2V0IHdpbGwgYmUgbm9uLU5V TEwgKi8KPiAgCXN0cnVjdCBkY190YXJnZXQgKnRhcmdldDsKPiAgfTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHlwZXMuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3R5cGVzLmMK PiBpbmRleCBhNDQzYjcwLi4xNDg3ODBkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3R5cGVzLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90eXBlcy5jCj4gQEAgLTEwNjAs ODMgKzEwNjAsNiBAQCBzdGF0aWMgaW50IGRtX2NydGNfZnVuY3NfYXRvbWljX3NldF9wcm9wZXJ0 eSgKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC0KPiAtc3RhdGljIGludCBhbWRncHVfYXRvbWlj X2hlbHBlcl9wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCQkJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCj4gLQkJCQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50 ICpldmVudCwKPiAtCQkJCXVpbnQzMl90IGZsYWdzKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSA9IGNydGMtPnByaW1hcnk7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFjcnRjID0g dG9fYW1kZ3B1X2NydGMoY3J0Yyk7Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4gLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiAtCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiAtCWludCByZXQgPSAwOwo+IC0KPiAtCXN0YXRlID0g ZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhwbGFuZS0+ZGV2KTsKPiAtCWlmICghc3RhdGUpCj4gLQkJ cmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0JcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsK PiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQlzdGF0ZS0+YWNxdWlyZV9jdHgg PSBkcm1fbW9kZXNldF9sZWdhY3lfYWNxdWlyZV9jdHgoY3J0Yyk7Cj4gLXJldHJ5Ogo+IC0JY3J0 Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+IC0JaWYg KElTX0VSUihjcnRjX3N0YXRlKSkgewo+IC0JCXJldCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4g LQkJZ290byBmYWlsOwo+IC0JfQo+IC0JY3J0Y19zdGF0ZS0+ZXZlbnQgPSBldmVudDsKPiAtCj4g LQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7 Cj4gLQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgewo+IC0JCXJldCA9IFBUUl9FUlIocGxhbmVf c3RhdGUpOwo+IC0JCWdvdG8gZmFpbDsKPiAtCX0KPiAtCj4gLQlyZXQgPSBkcm1fYXRvbWljX3Nl dF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgY3J0Yyk7Cj4gLQlpZiAocmV0ICE9IDApCj4g LQkJZ290byBmYWlsOwo+IC0JZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRl LCBmYik7Cj4gLQo+IC0JLyogTWFrZSBzdXJlIHdlIGRvbid0IGFjY2lkZW50YWxseSBkbyBhIGZ1 bGwgbW9kZXNldC4gKi8KPiAtCXN0YXRlLT5hbGxvd19tb2Rlc2V0ID0gZmFsc2U7Cj4gLQlpZiAo IWNydGNfc3RhdGUtPmFjdGl2ZSkgewo+IC0JCURSTV9ERUJVR19BVE9NSUMoIltDUlRDOiVkXSBk aXNhYmxlZCwgcmVqZWN0aW5nIGxlZ2FjeSBmbGlwXG4iLAo+IC0JCQkJIGNydGMtPmJhc2UuaWQp Owo+IC0JCXJldCA9IC1FSU5WQUw7Cj4gLQkJZ290byBmYWlsOwo+IC0JfQo+IC0JYWNydGMtPmZs aXBfZmxhZ3MgPSBmbGFnczsKPiAtCj4gLQlyZXQgPSBkcm1fYXRvbWljX25vbmJsb2NraW5nX2Nv bW1pdChzdGF0ZSk7Cj4gLQo+IC1mYWlsOgo+IC0JaWYgKHJldCA9PSAtRURFQURMSykKPiAtCQln b3RvIGJhY2tvZmY7Cj4gLQo+IC0JaWYgKHJldCkKPiAtCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNy dGMpOwo+IC0KPiAtCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAtCj4gLQlyZXR1cm4g cmV0Owo+IC1iYWNrb2ZmOgo+IC0JZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gLQlk cm1fYXRvbWljX2xlZ2FjeV9iYWNrb2ZmKHN0YXRlKTsKPiAtCj4gLQkvKgo+IC0JICogU29tZW9u ZSBtaWdodCBoYXZlIGV4Y2hhbmdlZCB0aGUgZnJhbWVidWZmZXIgd2hpbGUgd2UgZHJvcHBlZCBs b2Nrcwo+IC0JICogaW4gdGhlIGJhY2tvZmYgY29kZS4gV2UgbmVlZCB0byBmaXggdXAgdGhlIGZi IHJlZmNvdW50IHRyYWNraW5nIHRoZQo+IC0JICogY29yZSBkb2VzIGZvciB1cy4KPiAtCSAqLwo+ IC0JcGxhbmUtPm9sZF9mYiA9IHBsYW5lLT5mYjsKPiAtCj4gLQlnb3RvIHJldHJ5Owo+IC19Cj4g LQo+ICAvKiBJbXBsZW1lbnRlZCBvbmx5IHRoZSBvcHRpb25zIGN1cnJlbnRseSBhdmFpbGlibGUg Zm9yIHRoZSBkcml2ZXIgKi8KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBh bWRncHVfZG1fY3J0Y19mdW5jcyA9IHsKPiAgCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Ny dGNfcmVzZXQsCj4gQEAgLTExNDUsNyArMTA2OCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2F0b21p Y19oZWxwZXJfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCS5kZXN0cm95ID0g YW1kZ3B1X2RtX2NydGNfZGVzdHJveSwKPiAgCS5nYW1tYV9zZXQgPSBhbWRncHVfZG1fYXRvbWlj X2NydGNfZ2FtbWFfc2V0LAo+ICAJLnNldF9jb25maWcgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXRf Y29uZmlnLAo+IC0JLnBhZ2VfZmxpcCA9IGFtZGdwdV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwK PiArCS5wYWdlX2ZsaXBfdGFyZ2V0ID0gZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwX3Rhcmdl dCwKPiAgCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k dXBsaWNhdGVfc3RhdGUsCj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hl bHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUsCj4gIAkuYXRvbWljX3NldF9wcm9wZXJ0eSA9IGRtX2Ny dGNfZnVuY3NfYXRvbWljX3NldF9wcm9wZXJ0eQo+IEBAIC0xNjI2LDcgKzE1NDksOCBAQCBzdGF0 aWMgdm9pZCBjbGVhcl91bnJlbGF0ZWRfZmllbGRzKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0 YXRlKQo+ICBzdGF0aWMgYm9vbCBwYWdlX2ZsaXBfbmVlZGVkKAo+ICAJY29uc3Qgc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRlLAo+ICAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqb2xkX3N0YXRlLAo+IC0JYm9vbCBjb21taXRfc3VyZmFjZV9yZXF1aXJlZCkKPiArCWJvb2wg Y29tbWl0X3N1cmZhY2VfcmVxdWlyZWQsCj4gKwl1aW50MzJfdCBwZmxpcF9mbGFncykKPiAgewo+ ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBvbGRfc3RhdGVfdG1wOwo+ICAJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSBuZXdfc3RhdGVfdG1wOwo+IEBAIC0xNjc5LDcgKzE2MDMsNyBAQCBzdGF0aWMg Ym9vbCBwYWdlX2ZsaXBfbmVlZGVkKAo+ICAJCQkJICAgIHNpemVvZihvbGRfc3RhdGVfdG1wKSkg PT0gMCA/IHRydWU6ZmFsc2U7Cj4gIAlpZiAobmV3X3N0YXRlLT5jcnRjICYmIHBhZ2VfZmxpcF9y ZXF1aXJlZCA9PSBmYWxzZSkgewo+ICAJCWFjcnRjX25ldyA9IHRvX2FtZGdwdV9jcnRjKG5ld19z dGF0ZS0+Y3J0Yyk7Cj4gLQkJaWYgKGFjcnRjX25ldy0+ZmxpcF9mbGFncyAmIERSTV9NT0RFX1BB R0VfRkxJUF9BU1lOQykKPiArCQlpZiAocGZsaXBfZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBf QVNZTkMpCj4gIAkJCXBhZ2VfZmxpcF9yZXF1aXJlZCA9IHRydWU7Cj4gIAl9Cj4gIAlyZXR1cm4g cGFnZV9mbGlwX3JlcXVpcmVkOwo+IEBAIC0yNjk2LDcgKzI2MjAsOSBAQCBpbnQgYW1kZ3B1X2Rt X2F0b21pY19jb21taXQoCj4gIAkJICogMS4gVGhpcyBjb21taXQgaXMgbm90IGEgcGFnZSBmbGlw Lgo+ICAJCSAqIDIuIFRoaXMgY29tbWl0IGlzIGEgcGFnZSBmbGlwLCBhbmQgdGFyZ2V0cyBhcmUg Y3JlYXRlZC4KPiAgCQkgKi8KPiAtCQlpZiAoIXBhZ2VfZmxpcF9uZWVkZWQocGxhbmVfc3RhdGUs IG9sZF9wbGFuZV9zdGF0ZSwgdHJ1ZSkgfHwKPiArCQlpZiAoIXBhZ2VfZmxpcF9uZWVkZWQoCj4g KwkJCQlwbGFuZV9zdGF0ZSwgb2xkX3BsYW5lX3N0YXRlLCB0cnVlLCBjcnRjLT5zdGF0ZS0+cGZs aXBfZmxhZ3MpCj4gKwkJCQl8fAo+ICAJCQkJYWN0aW9uID09IERNX0NPTU1JVF9BQ1RJT05fRFBN U19PTiB8fAo+ICAJCQkJYWN0aW9uID09IERNX0NPTU1JVF9BQ1RJT05fU0VUKSB7CgpNaWdodCBi ZSBnb29kIHRvIGNsZWFuIHVwIGluZGVudGF0aW9uIHRvIGNvbmZvcm0gYSBiaXQgbW9yZSB0byBr ZXJuZWwKc3R5bGUuIFNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcsIEkgdGhpbmsgKEkgaG9w ZSBUaHVuZGVyYmlyZCBkb2Vzbid0Cm1hbmdsZSBpdCk6CgoJCWlmICghcGFnZV9mbGlwX25lZWRl ZChwbGFuZV9zdGF0ZSwKCQkJCSAgICAgIG9sZF9wbGFuZV9zdGF0ZSwKCQkJCSAgICAgIHRydWUs CgkJCQkgICAgICBjcnRjLT5zdGF0ZS0+cGZsaXBfZmxhZ3MpIHx8CgkJCQlhY3Rpb24gPT0gRE1f Q09NTUlUX0FDVElPTl9EUE1TX09OIHx8CgkJCQlhY3Rpb24gPT0gRE1fQ09NTUlUX0FDVElPTl9T RVQpIHsKCj4gIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLAo+IEBAIC0yNzYwLDIx ICsyNjg2LDIyIEBAIGludCBhbWRncHVfZG1fYXRvbWljX2NvbW1pdCgKPiAgCWZvcl9lYWNoX3Bs YW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7Cj4gIAkJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBwbGFuZS0+c3RhdGU7Cj4gIAkJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gcGxhbmVfc3RhdGUtPmNydGM7Cj4gLQkJc3RydWN0IGFtZGdw dV9jcnRjICphY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwo+ICAJCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmZiOwo+ICsJCXVpbnQzMl90IHBmbGlwX2ZsYWdz Owo+ICAKPiAgCQlpZiAoIWZiIHx8ICFjcnRjIHx8ICFjcnRjLT5zdGF0ZS0+cGxhbmVzX2NoYW5n ZWQgfHwKPiAgCQkJIWNydGMtPnN0YXRlLT5hY3RpdmUpCj4gIAkJCWNvbnRpbnVlOwo+IC0KPiAt CQlpZiAocGFnZV9mbGlwX25lZWRlZChwbGFuZV9zdGF0ZSwgb2xkX3BsYW5lX3N0YXRlLCBmYWxz ZSkpIHsKPiArCQkKPiArCQlwZmxpcF9mbGFncyA9IGNydGMtPnN0YXRlLT5wZmxpcF9mbGFnczsK PiArCQlpZiAocGFnZV9mbGlwX25lZWRlZCgKPiArCQkJCXBsYW5lX3N0YXRlLCBvbGRfcGxhbmVf c3RhdGUsIGZhbHNlLCBwZmxpcF9mbGFncykpIHsKCkluZGVudGF0aW9uIGFnYWluLgoKCj4gIAkJ CXJldCA9IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoY3J0YywKPiAgCQkJCQkJCSAgIGZi LAo+ICAJCQkJCQkJICAgY3J0Yy0+c3RhdGUtPmV2ZW50LAo+IC0JCQkJCQkJICAgYWNydGMtPmZs aXBfZmxhZ3MsCj4gLQkJCQkJCQkgICBkcm1fY3J0Y192YmxhbmtfY291bnQoY3J0YykpOwo+IC0J CQkvKmNsZWFuIHVwIHRoZSBmbGFncyBmb3IgbmV4dCB1c2FnZSovCj4gLQkJCWFjcnRjLT5mbGlw X2ZsYWdzID0gMDsKPiArCQkJCQkJCSAgIGNydGMtPnN0YXRlLT5wZmxpcF9mbGFncywKPiArCQkJ CQkJCSAgIGNydGMtPnN0YXRlLT50YXJnZXRfdmJsYW5rKTsKPiArCj4gIAkJCWlmIChyZXQpCj4g IAkJCQlicmVhazsKPiAgCQl9Cj4gQEAgLTMxMzgsMTMgKzMwNjUsMTUgQEAgaW50IGFtZGdwdV9k bV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCWNvbnRpbnVlOwo+ ICAKPiAgCQkJYWN0aW9uID0gZ2V0X2RtX2NvbW1pdF9hY3Rpb24oY3J0Yy0+c3RhdGUpOwo+ICsJ CQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7Cj4gIAo+ICAJCQkvKiBTdXJmYWNlcyBhcmUgY3JlYXRlZCB1bmRlciB0d28gc2NlbmFy aW9zOgo+ICAJCQkgKiAxLiBUaGlzIGNvbW1pdCBpcyBub3QgYSBwYWdlIGZsaXAuCj4gIAkJCSAq IDIuIFRoaXMgY29tbWl0IGlzIGEgcGFnZSBmbGlwLCBhbmQgdGFyZ2V0cyBhcmUgY3JlYXRlZC4K PiAgCQkJICovCj4gLQkJCWlmICghcGFnZV9mbGlwX25lZWRlZChwbGFuZV9zdGF0ZSwgb2xkX3Bs YW5lX3N0YXRlLAo+IC0JCQkJCSAgICAgIHRydWUpIHx8Cj4gKwkJCWlmICghcGFnZV9mbGlwX25l ZWRlZCgKPiArCQkJCQlwbGFuZV9zdGF0ZSwgb2xkX3BsYW5lX3N0YXRlLCB0cnVlLCBjcnRjX3N0 YXRlLT5wZmxpcF9mbGFncykKPiArCQkJCQl8fAoKQW5kIGhlcmUgYXMgd2VsbC4KCk90aGVyd2lz ZSBwYXRjaCBsb29rcyBnb29kLgoKSGFycnkKCj4gIAkJCQkJYWN0aW9uID09IERNX0NPTU1JVF9B Q1RJT05fRFBNU19PTiB8fAo+ICAJCQkJCWFjdGlvbiA9PSBETV9DT01NSVRfQUNUSU9OX1NFVCkg ewo+ICAJCQkJc3RydWN0IGRjX3N1cmZhY2UgKnN1cmZhY2U7Cj4gCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=