From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH v3 07/21] drm/bridge: Make the bridge chain a double-linked list Date: Tue, 5 Nov 2019 17:02:30 +0100 Message-ID: References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-8-boris.brezillon@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A2488959D for ; Tue, 5 Nov 2019 16:02:34 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id n1so22036744wra.10 for ; Tue, 05 Nov 2019 08:02:34 -0800 (PST) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon , dri-devel@lists.freedesktop.org Cc: Nikita Yushchenko , Mark Rutland , Jernej Skrabec , Jonas Karlman , Andrey Smirnov , Seung-Woo Kim , Rob Herring , Kyungmin Park , Thierry Reding , Laurent Pinchart , kernel@collabora.com, Sam Ravnborg , devicetree@vger.kernel.org, Chris Healy List-Id: dri-devel@lists.freedesktop.org SGksCgoKT24gMjUvMTAvMjAxOSAxNToyOSwgTmVpbCBBcm1zdHJvbmcgd3JvdGU6Cj4gT24gMjMv MTAvMjAxOSAxNzo0NCwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+PiBTbyB0aGF0IGVhY2ggZWxl bWVudCBpbiB0aGUgY2hhaW4gY2FuIGVhc2lseSBhY2Nlc3MgaXRzIHByZWRlY2Vzc29yLgo+PiBU aGlzIHdpbGwgYmUgbmVlZGVkIHRvIHN1cHBvcnQgYnVzIGZvcm1hdCBuZWdvdGlhdGlvbiBiZXR3 ZWVuIGVsZW1lbnRzCj4+IG9mIHRoZSBicmlkZ2UgY2hhaW4uCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+Cj4+IC0tLQo+ PiBDaGFuZ2VzIGluIHYzOgo+PiAqIE5vbmUKPj4KPj4gQ2hhbmdlcyBpbiB2MjoKPj4gKiBBZGp1 c3QgdGhpbmdzIHRvIHRoZSAiZHVtbXkgZW5jb2RlciBicmlkZ2UiIGNoYW5nZSAocGF0Y2ggMiBp biB0aGlzCj4+ICAgc2VyaWVzKQo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdl LmMgIHwgMTcxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPj4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fZW5jb2Rlci5jIHwgIDE2ICstLS0KPj4gIGluY2x1ZGUvZHJtL2RybV9icmlk Z2UuaCAgICAgIHwgIDEyICsrLQo+PiAgaW5jbHVkZS9kcm0vZHJtX2VuY29kZXIuaCAgICAgfCAg IDkgKy0KPj4gIDQgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9u cygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPj4gaW5kZXggNTRjODc0NDkzYzU3Li5jNWNmOGE5 YzQyMzcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwoKWy4uLl0KCj4+ICAKPj4gQEAgLTQyNiwx NSArNDcxLDIzIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9k aXNhYmxlKTsKPj4gIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+PiAgCQkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4+ICB7Cj4+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+PiArCXN0cnVj dCBkcm1fYnJpZGdlICppdGVyOwo+PiArCj4+ICAJaWYgKCFicmlkZ2UpCj4+ICAJCXJldHVybjsK Pj4gIAo+PiAtCWRybV9hdG9taWNfYnJpZGdlX2NoYWluX3ByZV9lbmFibGUoYnJpZGdlLT5uZXh0 LCBzdGF0ZSk7Cj4+ICsJZW5jb2RlciA9IGJyaWRnZS0+ZW5jb2RlcjsKPj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X3JldmVyc2UoaXRlciwgJmJyaWRnZS0+ZW5jb2Rlci0+YnJpZGdlX2NoYWluLAo+ PiArCQkJCSAgICBjaGFpbl9ub2RlKSB7CgpUaGlzIHNob3VsZCB1c2UgdGhlIGVuY29kZXIgbG9j YWwgdmFyaWFibGUgaW4gbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKCkKCj4+ICsJCWlmIChp dGVyLT5mdW5jcy0+YXRvbWljX3ByZV9lbmFibGUpCj4+ICsJCQlpdGVyLT5mdW5jcy0+YXRvbWlj X3ByZV9lbmFibGUoaXRlciwgc3RhdGUpOwo+PiArCQllbHNlIGlmIChpdGVyLT5mdW5jcy0+cHJl X2VuYWJsZSkKPj4gKwkJCWl0ZXItPmZ1bmNzLT5wcmVfZW5hYmxlKGl0ZXIpOwo+PiAgCj4+IC0J aWYgKGJyaWRnZS0+ZnVuY3MtPmF0b21pY19wcmVfZW5hYmxlKQo+PiAtCQlicmlkZ2UtPmZ1bmNz LT5hdG9taWNfcHJlX2VuYWJsZShicmlkZ2UsIHN0YXRlKTsKPj4gLQllbHNlIGlmIChicmlkZ2Ut PmZ1bmNzLT5wcmVfZW5hYmxlKQo+PiAtCQlicmlkZ2UtPmZ1bmNzLT5wcmVfZW5hYmxlKGJyaWRn ZSk7Cj4+ICsJCWlmIChpdGVyID09IGJyaWRnZSkKPj4gKwkJCWJyZWFrOwo+PiArCX0KPj4gIH0K Pj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZSk7Cj4+ ICAKPj4gQEAgLTQ1MywxNSArNTA2LDE5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlk Z2VfY2hhaW5fcHJlX2VuYWJsZSk7Cj4+ICB2b2lkIGRybV9hdG9taWNfYnJpZGdlX2NoYWluX2Vu YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+PiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4+ICB7Cj4+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy Owo+PiArCj4+ICAJaWYgKCFicmlkZ2UpCj4+ICAJCXJldHVybjsKPj4gIAo+PiAtCWlmIChicmlk Z2UtPmZ1bmNzLT5hdG9taWNfZW5hYmxlKQo+PiAtCQlicmlkZ2UtPmZ1bmNzLT5hdG9taWNfZW5h YmxlKGJyaWRnZSwgc3RhdGUpOwo+PiAtCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPmVuYWJsZSkK Pj4gLQkJYnJpZGdlLT5mdW5jcy0+ZW5hYmxlKGJyaWRnZSk7Cj4+IC0KPj4gLQlkcm1fYXRvbWlj X2JyaWRnZV9jaGFpbl9lbmFibGUoYnJpZGdlLT5uZXh0LCBzdGF0ZSk7Cj4+ICsJZW5jb2RlciA9 IGJyaWRnZS0+ZW5jb2RlcjsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20oYnJpZGdlLCAm YnJpZGdlLT5lbmNvZGVyLT5icmlkZ2VfY2hhaW4sCj4+ICsJCQkJIGNoYWluX25vZGUpIHsKClRo aXMgc2hvdWxkIHVzZSBlbmNvZGVyIGluc3RlYWQgb2YgYnJpZGdlLT5lbmNvZGVyIG90aGVyd2lz ZSBicmlkZ2Ugd2lsbApjaGFuZ2UgYW5kIGJyaWRnZS0+ZW5jb2Rlci0+YnJpZGdlX2NoYWluIHdv bid0IGJlIHZhbGlkIGR1cmluZyB0aGUgZm9yX2VhY2ggYW5kCmNhdXNlIHRoZSBmb2xsb3dpbmcg OgoKWyAgIDc5LjA4Mjg2MV0gV0FSTklORzogQ1BVOiAyIFBJRDogMTk5OSBhdCBkcml2ZXJzL2dw dS9kcm0vZHJtX2JyaWRnZS5jOjYwNyBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9lbmFibGUrMHhh Yy8weGMwCi4uLgpbICAgNzkuMjEwMTUzXSAgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fZW5hYmxl KzB4YWMvMHhjMApbICAgNzkuMjE1MTU2XSAgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVz ZXRfZW5hYmxlcysweDEzOC8weDI0OApbICAgNzkuMjIxMTkwXSAgZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0X3RhaWxfcnBtKzB4MmMvMHg3OApbICAgNzkuMjI2NDUyXSAgY29tbWl0X3RhaWwrMHg1 MC8weGMwClsgICA3OS4yMjk4MTVdICBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQrMHhlOC8weDE2 OApbICAgNzkuMjM0Mzg2XSAgZHJtX2F0b21pY19jb21taXQrMHg0OC8weDU4ClsgICA3OS4yMzgy NjldICBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYy5pc3JhLjE1KzB4MTg0LzB4MjIw ClsgICA3OS4yNDQzMDVdICBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2ZvcmNlKzB4NjQvMHgx YTAKWyAgIDc5LjI0OTQ4Ml0gIGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9j a2VkKzB4NzAvMHhlOApbICAgNzkuMjU1NDMyXSAgZHJtX2ZiZGV2X2NsaWVudF9yZXN0b3JlKzB4 MTQvMHgyMApbICAgNzkuMjU5OTIwXSAgZHJtX2NsaWVudF9kZXZfcmVzdG9yZSsweDgwLzB4ZDgK WyAgIDc5LjI2NDIzMV0gIGRybV9sYXN0Y2xvc2UrMHg0Yy8weDU4ClsgICA3OS4yNjc3NjVdICBk cm1fcmVsZWFzZSsweGE4LzB4MTc4Cgo+PiArCQlpZiAoYnJpZGdlLT5mdW5jcy0+YXRvbWljX2Vu YWJsZSkKPj4gKwkJCWJyaWRnZS0+ZnVuY3MtPmF0b21pY19lbmFibGUoYnJpZGdlLCBzdGF0ZSk7 Cj4+ICsJCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPmVuYWJsZSkKPj4gKwkJCWJyaWRnZS0+ZnVu Y3MtPmVuYWJsZShicmlkZ2UpOwo+PiArCX0KPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0 b21pY19icmlkZ2VfY2hhaW5fZW5hYmxlKTsKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VuY29kZXIuYwo+PiBp bmRleCA0ZmU5ZTcyM2UyMjcuLmU1NTUyODFmNDNkNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9lbmNvZGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lbmNvZGVy LmMKPj4gQEAgLTE0MCw2ICsxNDAsNyBAQCBpbnQgZHJtX2VuY29kZXJfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+PiAgCQlnb3RvIG91dF9wdXQ7Cj4+ICAJfQo+PiAgCj4+ICsJSU5JVF9M SVNUX0hFQUQoJmVuY29kZXItPmJyaWRnZV9jaGFpbik7Cj4+ICAJbGlzdF9hZGRfdGFpbCgmZW5j b2Rlci0+aGVhZCwgJmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0KTsKPj4gIAllbmNvZGVy LT5pbmRleCA9IGRldi0+bW9kZV9jb25maWcubnVtX2VuY29kZXIrKzsKPj4gIAo+PiBAQCAtMTYw LDIzICsxNjEsMTYgQEAgRVhQT1JUX1NZTUJPTChkcm1fZW5jb2Rlcl9pbml0KTsKPj4gIHZvaWQg ZHJtX2VuY29kZXJfY2xlYW51cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4+ICB7Cj4+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPj4gKwlzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLCAqbmV4dDsKPj4gIAo+PiAgCS8qIE5vdGUgdGhhdCB0aGUgZW5jb2Rl cl9saXN0IGlzIGNvbnNpZGVyZWQgdG8gYmUgc3RhdGljOyBzaG91bGQgd2UKPj4gIAkgKiByZW1v dmUgdGhlIGRybV9lbmNvZGVyIGF0IHJ1bnRpbWUgd2Ugd291bGQgaGF2ZSB0byBkZWNyZW1lbnQg YWxsCj4+ICAJICogdGhlIGluZGljZXMgb24gdGhlIGRybV9lbmNvZGVyIGFmdGVyIHVzIGluIHRo ZSBlbmNvZGVyX2xpc3QuCj4+ICAJICovCj4+ICAKPj4gLQlpZiAoZW5jb2Rlci0+YnJpZGdlKSB7 Cj4+IC0JCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2U7Cj4+IC0JCXN0cnVjdCBkcm1fYnJpZGdl ICpuZXh0Owo+PiAtCj4+IC0JCWJyaWRnZSA9IGRybV9icmlkZ2VfY2hhaW5fZ2V0X2ZpcnN0X2Jy aWRnZShlbmNvZGVyKTsKPj4gLQkJd2hpbGUgKGJyaWRnZSkgewo+PiAtCQkJbmV4dCA9IGJyaWRn ZS0+bmV4dDsKPj4gLQkJCWRybV9icmlkZ2VfZGV0YWNoKGJyaWRnZSk7Cj4+IC0JCQlicmlkZ2Ug PSBuZXh0Owo+PiAtCQl9Cj4+IC0JfQo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShicmlk Z2UsIG5leHQsICZlbmNvZGVyLT5icmlkZ2VfY2hhaW4sCj4+ICsJCQkJIGNoYWluX25vZGUpCj4+ ICsJCWRybV9icmlkZ2VfZGV0YWNoKGJyaWRnZSk7Cj4+ICAKPj4gIAlkcm1fbW9kZV9vYmplY3Rf dW5yZWdpc3RlcihkZXYsICZlbmNvZGVyLT5iYXNlKTsKPj4gIAlrZnJlZShlbmNvZGVyLT5uYW1l KTsKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2luY2x1ZGUvZHJt L2RybV9icmlkZ2UuaAo+PiBpbmRleCAyN2VlZjYzY2UwZmYuLjNhYjE2Yzk1ZTU5ZSAxMDA2NDQK Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9icmlkZ2UuaAo+PiBAQCAtMzg0LDggKzM4NCw4IEBAIHN0cnVjdCBkcm1fYnJpZGdlIHsKPj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+PiAgCS8qKiBAZW5jb2RlcjogZW5jb2RlciB0byB3 aGljaCB0aGlzIGJyaWRnZSBpcyBjb25uZWN0ZWQgKi8KPj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXI7Cj4+IC0JLyoqIEBuZXh0OiB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGVuY29kZXIg Y2hhaW4gKi8KPj4gLQlzdHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dDsKPj4gKwkvKiogQGNoYWluX25v ZGU6IHVzZWQgdG8gZm9ybSBhIGJyaWRnZSBjaGFpbiAqLwo+PiArCXN0cnVjdCBsaXN0X2hlYWQg Y2hhaW5fbm9kZTsKPj4gICNpZmRlZiBDT05GSUdfT0YKPj4gIAkvKiogQG9mX25vZGU6IGRldmlj ZSBub2RlIHBvaW50ZXIgdG8gdGhlIGJyaWRnZSAqLwo+PiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAq b2Zfbm9kZTsKPj4gQEAgLTQyMCw3ICs0MjAsMTAgQEAgaW50IGRybV9icmlkZ2VfYXR0YWNoKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPj4g IHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9icmlkZ2UgKgo+PiAgZHJtX2JyaWRnZV9jaGFpbl9n ZXRfbmV4dF9icmlkZ2Uoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPj4gIHsKPj4gLQlyZXR1 cm4gYnJpZGdlLT5uZXh0Owo+PiArCWlmIChsaXN0X2lzX2xhc3QoJmJyaWRnZS0+Y2hhaW5fbm9k ZSwgJmJyaWRnZS0+ZW5jb2Rlci0+YnJpZGdlX2NoYWluKSkKPj4gKwkJcmV0dXJuIE5VTEw7Cj4+ ICsKPj4gKwlyZXR1cm4gbGlzdF9uZXh0X2VudHJ5KGJyaWRnZSwgY2hhaW5fbm9kZSk7Cj4+ICB9 Cj4+ICAKPj4gIC8qKgo+PiBAQCAtNDM0LDcgKzQzNyw4IEBAIGRybV9icmlkZ2VfY2hhaW5fZ2V0 X25leHRfYnJpZGdlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4+ICBzdGF0aWMgaW5saW5l IHN0cnVjdCBkcm1fYnJpZGdlICoKPj4gIGRybV9icmlkZ2VfY2hhaW5fZ2V0X2ZpcnN0X2JyaWRn ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4+ICB7Cj4+IC0JcmV0dXJuIGVuY29kZXIt PmJyaWRnZTsKPj4gKwlyZXR1cm4gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZlbmNvZGVyLT5i cmlkZ2VfY2hhaW4sCj4+ICsJCQkJCXN0cnVjdCBkcm1fYnJpZGdlLCBjaGFpbl9ub2RlKTsKPj4g IH0KPj4gIAo+PiAgYm9vbCBkcm1fYnJpZGdlX2NoYWluX21vZGVfZml4dXAoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9lbmNvZGVyLmgg Yi9pbmNsdWRlL2RybS9kcm1fZW5jb2Rlci5oCj4+IGluZGV4IGYwNjE2NGY0NGVmZS4uOWIzZGRl MTc3YzgxIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZW5jb2Rlci5oCj4+ICsrKyBi L2luY2x1ZGUvZHJtL2RybV9lbmNvZGVyLmgKPj4gQEAgLTE3Miw3ICsxNzIsMTQgQEAgc3RydWN0 IGRybV9lbmNvZGVyIHsKPj4gIAkgKiAmZHJtX2Nvbm5lY3Rvcl9zdGF0ZS5jcnRjLgo+PiAgCSAq Lwo+PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPj4gLQlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlOwo+PiArCj4+ICsJLyoqCj4+ICsJICogQGJyaWRnZV9jaGFpbjogQnJpZGdlcyBhdHRhY2hl ZCB0byB0aGlzIGVuY29kZXIuIFRoZSBmaXJzdCBlbnRyeSBvZgo+PiArCSAqIHRoaXMgbGlzdCBp cyBhbHdheXMgJmRybV9lbmNvZGVyLmJyaWRnZS4gSXQgbWF5IGJlIGZvbGxvd2VkIGJ5IG90aGVy Cj4+ICsJICogYnJpZGdlIGVudGl0aWVzLgo+PiArCSAqLwo+PiArCXN0cnVjdCBsaXN0X2hlYWQg YnJpZGdlX2NoYWluOwo+PiArCj4+ICAJY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzICpm dW5jczsKPj4gIAljb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzICpoZWxwZXJf cHJpdmF0ZTsKPj4gIH07Cj4+Cj4gCj4gUmV2aWV3ZWQtYnk6IE5laWwgQXJtc3Ryb25nIDxuYXJt c3Ryb25nQGJheWxpYnJlLmNvbT4KPiAKCldpdGggdGhlc2UgZml4ZWQsIHlvdSBjYW4ga2VlcCBt eSBSZXZpZXdlZC1ieQoKTmVpbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=