From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH v3 09/21] drm/bridge: Add a drm_bridge_state object Date: Tue, 5 Nov 2019 17:05:16 +0100 Message-ID: <6e60e98e-46b2-a979-511e-4717bc6feadc@baylibre.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-10-boris.brezillon@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E38C6EADB for ; Tue, 5 Nov 2019 16:05:19 +0000 (UTC) Received: by mail-wm1-x343.google.com with SMTP id c17so14255266wmk.2 for ; Tue, 05 Nov 2019 08:05:19 -0800 (PST) In-Reply-To: <20191023154512.9762-10-boris.brezillon@collabora.com> 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 T24gMjMvMTAvMjAxOSAxNzo0NSwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+IE9uZSBvZiB0aGUg bGFzdCByZW1haW5pbmcgb2JqZWN0cyB0byBub3QgaGF2ZSBpdHMgYXRvbWljIHN0YXRlLgo+IAo+ IFRoaXMgaXMgYmVpbmcgbW90aXZhdGVkIGJ5IG91ciBhdHRlbXB0IHRvIHN1cHBvcnQgcnVudGlt ZSBidXMtZm9ybWF0Cj4gbmVnb3RpYXRpb24gYmV0d2VlbiBlbGVtZW50cyBvZiB0aGUgYnJpZGdl IGNoYWluLgo+IFRoaXMgcGF0Y2gganVzdCBwYXZlcyB0aGUgcm9hZCBmb3Igc3VjaCBhIGZlYXR1 cmUgYnkgYWRkaW5nIGEgbmV3Cj4gZHJtX2JyaWRnZV9zdGF0ZSBvYmplY3QgaW5oZXJpdGluZyBm cm9tIGRybV9wcml2YXRlX29iaiBzbyB3ZSBjYW4KPiByZS11c2Ugc29tZSBvZiB0aGUgZXhpc3Rp bmcgc3RhdGUgaW5pdGlhbGl6YXRpb24vdHJhY2tpbmcgbG9naWMuCj4gCj4gU2lnbmVkLW9mZi1i eTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNvbT4KPiAtLS0K PiBDaGFuZ2VzIGluIHYzOgo+ICogTm9uZQo+IAo+IENoYW5nZXMgaW4gdjI6Cj4gKiBVc2UgZHJt X2Zvcl9lYWNoX2JyaWRnZV9pbl9jaGFpbigpCj4gKiBSZW5hbWUgaGVscGVycyB0byBiZSBtb3Jl IGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgRFJNIEFQSQo+ICogSW1wcm92ZS9maXgg dGhlIGRvYwo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8ICAz OSArKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDIwICsr KysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyAgICAgICAgfCAxNjggKysrKysrKysr KysrKysrKysrKysrKysrKysrLQo+ICBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAg ICB8ICAgMyArCj4gIGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgIHwgMTE4ICsr KysrKysrKysrKysrKysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNDMgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKPiAKWy4uLl0KCj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5o Cj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gQEAgLTY2MCw2ICs2NjAsOSBAQCBf X2RybV9hdG9taWNfZ2V0X2N1cnJlbnRfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlLAo+ICAJcmV0dXJuIHBsYW5lLT5zdGF0ZTsKPiAgfQo+ICAKPiAraW50IF9fbXVz dF9jaGVjawo+ICtkcm1fYXRvbWljX2FkZF9lbmNvZGVyX2JyaWRnZXMoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkgICAgICAgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KTsKPiAgaW50IF9fbXVzdF9jaGVjawo+ICBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0 b3JzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQkJCSAgIHN0cnVjdCBkcm1f Y3J0YyAqY3J0Yyk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2lu Y2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+IGluZGV4IDIzOGU4NGFiNjNhMy4uYTYwOGM0N2QxZGU1 IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+ICsrKyBiL2luY2x1ZGUv ZHJtL2RybV9icmlkZ2UuaAo+IEBAIC0yNSw2ICsyNSw3IEBACj4gIAo+ICAjaW5jbHVkZSA8bGlu dXgvbGlzdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KPiArI2luY2x1ZGUgPGRybS9k cm1fYXRvbWljLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KPiAgI2luY2x1ZGUg PGRybS9kcm1fbW9kZV9vYmplY3QuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KPiBA QCAtMzMsNiArMzQsMjMgQEAgc3RydWN0IGRybV9icmlkZ2U7Cj4gIHN0cnVjdCBkcm1fYnJpZGdl X3RpbWluZ3M7Cj4gIHN0cnVjdCBkcm1fcGFuZWw7Cj4gIAo+ICsvKioKPiArICogc3RydWN0IGRy bV9icmlkZ2Vfc3RhdGUgLSBBdG9taWMgYnJpZGdlIHN0YXRlIG9iamVjdAo+ICsgKiBAYmFzZTog aW5oZXJpdCBmcm9tICZkcm1fcHJpdmF0ZV9zdGF0ZQo+ICsgKiBAYnJpZGdlOiB0aGUgYnJpZGdl IHRoaXMgc3RhdGUgcmVmZXJzIHRvCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSB7 Cj4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgYmFzZTsKPiArCj4gKwlzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlOwo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2JyaWRn ZV9zdGF0ZSAqCj4gK2RybV9wcml2X3RvX2JyaWRnZV9zdGF0ZShzdHJ1Y3QgZHJtX3ByaXZhdGVf c3RhdGUgKnByaXYpCj4gK3sKPiArCXJldHVybiBjb250YWluZXJfb2YocHJpdiwgc3RydWN0IGRy bV9icmlkZ2Vfc3RhdGUsIGJhc2UpOwo+ICt9Cj4gKwo+ICAvKioKPiAgICogc3RydWN0IGRybV9i cmlkZ2VfZnVuY3MgLSBkcm1fYnJpZGdlIGNvbnRyb2wgZnVuY3Rpb25zCj4gICAqLwo+IEBAIC0z MzgsNiArMzU2LDQ4IEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqLwo+ICAJdm9p ZCAoKmF0b21pY19wb3N0X2Rpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAkJ CQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArCj4gKwkvKioKPiArCSAq IEBhdG9taWNfZHVwbGljYXRlX3N0YXRlOgo+ICsJICoKPiArCSAqIER1cGxpY2F0ZSB0aGUgY3Vy cmVudCBicmlkZ2Ugc3RhdGUgb2JqZWN0ICh3aGljaCBpcyBndWFyYW50ZWVkIHRvIGJlCj4gKwkg KiBub24tTlVMTCkuCj4gKwkgKgo+ICsJICogVGhlIGF0b21pY19kdXBsaWNhdGVfc3RhdGUoKSBp cyBvcHRpb25hbCwgdGhlIGNvcmUgZmFsbHMgYmFjayBvbgo+ICsJICogJmRybV9hdG9taWNfaGVs cGVyX2JyaWRnZV9kdXBsaWNhdGVfc3RhdGUoKSB3aGVuIG5vdCBpbXBsZW1lbnRlZC4KPiArCSAq Cj4gKwkgKiBSRVRVUk5TOgo+ICsJICogQSB2YWxpZCBkcm1fYnJpZGdlX3N0YXRlIG9iamVjdCBv ciBOVUxMIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxzLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX2Jy aWRnZV9zdGF0ZSAqKCphdG9taWNfZHVwbGljYXRlX3N0YXRlKShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKTsKPiArCj4gKwkvKioKPiArCSAqIEBhdG9taWNfZGVzdHJveV9zdGF0ZToKPiArCSAq Cj4gKwkgKiBEZXN0cm95IGEgYnJpZGdlIHN0YXRlIG9iamVjdCBwcmV2aW91c2x5IGFsbG9jYXRl ZCBieQo+ICsJICogJmRybV9icmlkZ2VfZnVuY3MuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSgpLgo+ ICsJICoKPiArCSAqIFRoZSBhdG9taWNfZGVzdHJveV9zdGF0ZSBob29rIGlzIG9wdGlvbmFsLCB0 aGUgY29yZWYgZmFsbHMgYmFjayBvbgo+ICsJICogJmRybV9hdG9taWNfaGVscGVyX2JyaWRnZV9k ZXN0cm95X3N0YXRlKCkgd2hlbiBub3QgaW1wbGVtZW50ZWQuCj4gKwkgKi8KPiArCXZvaWQgKCph dG9taWNfZGVzdHJveV9zdGF0ZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAg ICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKnN0YXRlKTsKPiArCj4gKwkvKioKPiArCSAqIEBh dG9taWNfcmVzZXQ6Cj4gKwkgKgo+ICsJICogUmVzZXQgdGhlIGJyaWRnZSB0byBhIHByZWRlZmlu ZWQgc3RhdGUgKG9yIHJldHJpZXZlIGl0cyBjdXJyZW50Cj4gKwkgKiBzdGF0ZSkgYW5kIHJldHVy biBhICZkcm1fYnJpZGdlX3N0YXRlIG9iamVjdCBtYXRjaGluZyB0aGlzIHN0YXRlLgo+ICsJICog VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgYXR0YWNoIHRpbWUuCj4gKwkgKgo+ICsJICogVGhl IGF0b21pY19yZXNldCBob29rIGlzIG9wdGlvbmFsLCB0aGUgY29yZSBmYWxscyBiYWNrIG9uCj4g KwkgKiAmZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0KCkgd2hlbiBub3QgaW1wbGVtZW50 ZWQuCj4gKwkgKgo+ICsJICogUkVUVVJOUzoKPiArCSAqIEEgdmFsaWQgZHJtX2JyaWRnZV9zdGF0 ZSBvYmplY3QgaW4gY2FzZSBvZiBzdWNjZXNzLCBhbiBFUlJfUFRSKCkKPiArCSAqIGdpdmluZyB0 aGUgcmVhb24gb2YgdGhlIGZhaWx1cmUgb3RoZXJ3aXNlLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJt X2JyaWRnZV9zdGF0ZSAqKCphdG9taWNfcmVzZXQpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Owo+ICB9Owo+ICAKPiAgLyoqCj4gQEAgLTM4MCw2ICs0NDAsOCBAQCBzdHJ1Y3QgZHJtX2JyaWRn ZV90aW1pbmdzIHsKPiAgICogc3RydWN0IGRybV9icmlkZ2UgLSBjZW50cmFsIERSTSBicmlkZ2Ug Y29udHJvbCBzdHJ1Y3R1cmUKPiAgICovCj4gIHN0cnVjdCBkcm1fYnJpZGdlIHsKPiArCS8qKiBA YmFzZTogaW5oZXJpdCBmcm9tICZkcm1fcHJpdmF0ZV9vYmplY3QgKi8KPiArCXN0cnVjdCBkcm1f cHJpdmF0ZV9vYmogYmFzZTsKPiAgCS8qKiBAZGV2OiBEUk0gZGV2aWNlIHRoaXMgYnJpZGdlIGJl bG9uZ3MgdG8gKi8KPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4gIAkvKiogQGVuY29kZXI6 IGVuY29kZXIgdG8gd2hpY2ggdGhpcyBicmlkZ2UgaXMgY29ubmVjdGVkICovCj4gQEAgLTQwNCw2 ICs0NjYsMTIgQEAgc3RydWN0IGRybV9icmlkZ2Ugewo+ICAJdm9pZCAqZHJpdmVyX3ByaXZhdGU7 Cj4gIH07Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fYnJpZGdlICoKPiArZHJtX3By aXZfdG9fYnJpZGdlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKnByaXYpCj4gK3sKPiArCXJldHVy biBjb250YWluZXJfb2YocHJpdiwgc3RydWN0IGRybV9icmlkZ2UsIGJhc2UpOwo+ICt9Cj4gKwo+ ICB2b2lkIGRybV9icmlkZ2VfYWRkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ICB2b2lk IGRybV9icmlkZ2VfcmVtb3ZlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ICBzdHJ1Y3Qg ZHJtX2JyaWRnZSAqb2ZfZHJtX2ZpbmRfYnJpZGdlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApOwo+ IEBAIC00NzUsNiArNTQzLDU2IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2Vu YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICB2b2lkIGRybV9hdG9taWNfYnJpZGdl X2NoYWluX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJCQkJICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gIAo+ICt2b2lkIF9fZHJtX2F0b21pY19oZWxw ZXJfYnJpZGdlX3Jlc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgICAgICBz dHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqc3RhdGUpOwo+ICtzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0 ZSAqCj4gK2RybV9hdG9taWNfaGVscGVyX2JyaWRnZV9yZXNldChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKTsKPiArdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZGVzdHJveV9zdGF0ZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJCSAgICBzdHJ1Y3QgZHJtX2JyaWRnZV9z dGF0ZSAqc3RhdGUpOwo+ICt2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX2R1cGxpY2F0 ZV9zdGF0ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJCQlzdHJ1Y3QgZHJtX2Jy aWRnZV9zdGF0ZSAqbmV3KTsKPiArc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKgo+ICtkcm1fYXRv bWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UpOwo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqCj4gK2Ry bV9hdG9taWNfZ2V0X2JyaWRnZV9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gKwkJCSAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X3ByaXZhdGVfc3RhdGUgKm9ial9zdGF0ZTsKPiArCj4gKwlvYmpfc3RhdGUgPSBkcm1fYXRvbWlj X2dldF9wcml2YXRlX29ial9zdGF0ZShzdGF0ZSwgJmJyaWRnZS0+YmFzZSk7Cj4gKwlpZiAoIW9i al9zdGF0ZSkKPiArCQlyZXR1cm4gTlVMTDsKCmRybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0 YXRlIHdpbGwgcmV0dXJuIGFuIGVycm9yIG9iamVjdCBvbiBlcnJvciwgc28gc2hvdWxkIGJlOgoJ aWYgKElTX0VSUihvYmpfc3RhdGUpKQogICAgICAgICAgICAgIHJldHVybiBFUlJfQ0FTVChvYmpf c3RhdGUpOwoKPiArCj4gKwlyZXR1cm4gZHJtX3ByaXZfdG9fYnJpZGdlX3N0YXRlKG9ial9zdGF0 ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKgo+ ICtkcm1fYXRvbWljX2dldF9vbGRfYnJpZGdlX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKPiArCQkJCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3sKPiArCXN0cnVj dCBkcm1fcHJpdmF0ZV9zdGF0ZSAqb2JqX3N0YXRlOwo+ICsKPiArCW9ial9zdGF0ZSA9IGRybV9h dG9taWNfZ2V0X29sZF9wcml2YXRlX29ial9zdGF0ZShzdGF0ZSwgJmJyaWRnZS0+YmFzZSk7Cj4g KwlpZiAoIW9ial9zdGF0ZSkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlyZXR1cm4gZHJtX3By aXZfdG9fYnJpZGdlX3N0YXRlKG9ial9zdGF0ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUg c3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKgo+ICtkcm1fYXRvbWljX2dldF9uZXdfYnJpZGdlX3N0 YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJCXN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpCj4gK3sKPiArCXN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqb2JqX3N0YXRl Owo+ICsKPiArCW9ial9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19wcml2YXRlX29ial9zdGF0 ZShzdGF0ZSwgJmJyaWRnZS0+YmFzZSk7Cj4gKwlpZiAoIW9ial9zdGF0ZSkKPiArCQlyZXR1cm4g TlVMTDsKPiArCj4gKwlyZXR1cm4gZHJtX3ByaXZfdG9fYnJpZGdlX3N0YXRlKG9ial9zdGF0ZSk7 Cj4gK30KPiArCj4gICNpZmRlZiBDT05GSUdfRFJNX1BBTkVMX0JSSURHRQo+ICBzdHJ1Y3QgZHJt X2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+ ICBzdHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGRfdHlwZWQoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwsCj4gCgpXaXRoIHRoaXMgZml4ZWQsIHlvdSBjYW4ga2VlcCBteSBSZXZp ZXdlZC1ieQoKTmVpbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=