From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 09/11] drm: Add drm_atomic_set_mode_for_crtc Date: Fri, 22 May 2015 16:26:29 +0200 Message-ID: <20150522142629.GU15256@phenom.ffwll.local> References: <1432298094-22239-1-git-send-email-daniels@collabora.com> <1432298094-22239-10-git-send-email-daniels@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 49F5C6E2C1 for ; Fri, 22 May 2015 07:24:04 -0700 (PDT) Received: by wgez8 with SMTP id z8so19518499wge.0 for ; Fri, 22 May 2015 07:24:03 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1432298094-22239-10-git-send-email-daniels@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Stone Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXkgMjIsIDIwMTUgYXQgMDE6MzQ6NTJQTSArMDEwMCwgRGFuaWVsIFN0b25lIHdy b3RlOgo+IEFkZCBhIG5ldyBoZWxwZXIsIHRvIGJlIHVzZWQgbGF0ZXIgZm9yIGJsb2IgcHJvcGVy dHkgbWFuYWdlbWVudCwgdGhhdAo+IHNldHMgdGhlIG1vZGUgZm9yIGEgQ1JUQyBzdGF0ZSwgYXMg d2VsbCBhcyB1cGRhdGluZyB0aGUgQ1JUQyBlbmFibGUvYWN0aXZlCj4gc3RhdGUgYXQgdGhlIHNh bWUgdGltZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgU3RvbmUgPGRhbmllbHNAY29sbGFi b3JhLmNvbT4KPiBUZXN0ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoK QSBmZXcgc21hbGwgbml0cyBiZWxvdy4KLURhbmllbAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICB8IDI0ICsrKysr Ky0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgICAg fCAgNiArKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYg KysrKysrKysrLS0tLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgIHwg IDYgKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gaW5kZXggMzEzNGY1MC4uNjdjMjUxZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+IEBAIC0yOTAsNiArMjkwLDQ4IEBAIGRybV9hdG9taWNfZ2V0 X2NydGNfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUpOwo+ICAKPiAgLyoqCj4gKyAqIGRybV9hdG9t aWNfc2V0X21vZGVfZm9yX2NydGMgLSBzZXQgbW9kZSBmb3IgQ1JUQwo+ICsgKiBAc3RhdGU6IHRo ZSBDUlRDIHdob3NlIGluY29taW5nIHN0YXRlIHRvIHVwZGF0ZQo+ICsgKiBAbW9kZToga2VybmVs LWludGVybmFsIG1vZGUgdG8gdXNlIGZvciB0aGUgQ1JUQywgb3IgTlVMTCB0byBkaXNhYmxlCj4g KyAqCj4gKyAqIFNldCBhIG1vZGUgKG9yaWdpbmF0aW5nIGZyb20gdGhlIGtlcm5lbCkgb24gdGhl IGRlc2lyZWQgQ1JUQyBzdGF0ZSwgYW5kCj4gKyAqIHVwZGF0ZSB0aGUgQ1JUQyBzdGF0ZSdzIGVu YWJsZSBhbmQgbW9kZV9jaGFuZ2VkIHBhcmFtZXRlcnMgYXMgbmVjZXNzYXJ5Lgo+ICsgKiBJZiBk aXNhYmxpbmcsIGl0IHdpbGwgYWxzbyBzZXQgYWN0aXZlIHRvIGZhbHNlLgoKS2VybmVsZG9jIGZv ciByZXR1cm4gdmFsdWVzIGlzIG1pc3NpbmcuIEZhaXJseSBpbXBvcnRhbnQgc2luY2UgbWFueSBh dG9taWMKZnVuY3Rpb25zIGNhbiByZXR1cm4gLUVERUFETEssIGJ1dCB0aGlzIG9uZSBkb2VzbiAo ZXZlbiBub3Qgd2hlbiBhbGwgdGhlCnBhdGNoZXMgYXJlIGFwcGxpZWQpLgoKPiArICovCj4gK2lu dCBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUsCj4gKwkJCQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gK3sKPiArCS8qIEVh cmx5IHJldHVybiBmb3Igbm8gY2hhbmdlLiAqLwo+ICsJaWYgKCFtb2RlICYmICFzdGF0ZS0+ZW5h YmxlKQo+ICsJCXJldHVybiAwOwo+ICsJaWYgKG1vZGUgJiYgc3RhdGUtPmVuYWJsZSAmJgo+ICsJ ICAgIG1lbWNtcCgmc3RhdGUtPm1vZGUsIG1vZGUsIHNpemVvZigqbW9kZSkpID09IDApCj4gKwkJ cmV0dXJuIDA7Cj4gKwo+ICsJc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CgpMYXllcmluZyB2 aW9sYXRpb246IC0+bW9kZV9jaGFuZ2VkIGlzIHB1cmVseSBzb21ldGhpbmcgZm9yIHRoZSBiZW5l Zml0IG9mCmRyaXZlcnMvaGVscGVycyBhbmQgbm90IHNvbWV0aGluZyB0aGUgY29yZSBtYW5hZGF0 ZXMuIEhlbmNlIHRoaXMgc2hvdWxkCmdldCByZW1vdmVkIGltby4KCj4gKwo+ICsJaWYgKG1vZGUp IHsKPiArCQlkcm1fbW9kZV9jb3B5KCZzdGF0ZS0+bW9kZSwgbW9kZSk7Cj4gKwkJc3RhdGUtPmVu YWJsZSA9IHRydWU7Cj4gKwl9IGVsc2Ugewo+ICsJCW1lbXNldCgmc3RhdGUtPm1vZGUsIDAsIHNp emVvZihzdGF0ZS0+bW9kZSkpOwo+ICsJCXN0YXRlLT5lbmFibGUgPSBmYWxzZTsKPiArCQlzdGF0 ZS0+YWN0aXZlID0gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJaWYgKHN0YXRlLT5lbmFibGUpCj4gKwkJ RFJNX0RFQlVHX0FUT01JQygiU2V0IFtNT0RFOiVzXSBmb3IgQ1JUQyBzdGF0ZSAlcFxuIiwKPiAr CQkJCSBtb2RlLT5uYW1lLCBzdGF0ZSk7Cj4gKwllbHNlCj4gKwkJRFJNX0RFQlVHX0FUT01JQygi U2V0IFtOT01PREVdIGZvciBDUlRDIHN0YXRlICVwXG4iLAo+ICsJCQkJIHN0YXRlKTsKPiArCj4g KwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc2V0X21vZGVfZm9y X2NydGMpOwo+ICsKPiArCj4gKy8qKgo+ICAgKiBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5 IC0gc2V0IHByb3BlcnR5IG9uIENSVEMKPiAgICogQGNydGM6IHRoZSBkcm0gQ1JUQyB0byBzZXQg YSBwcm9wZXJ0eSBvbgo+ICAgKiBAc3RhdGU6IHRoZSBzdGF0ZSBvYmplY3QgdG8gdXBkYXRlIHdp dGggdGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gaW5kZXggYTY0YmFjZC4uNzBjZTI0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gQEAgLTM2OSwyMCArMzY5LDYgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9k ZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCWludCBpLCByZXQ7Cj4gIAo+IC0JZm9yX2VhY2hfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+IC0JCWlmICghZHJtX21v ZGVfZXF1YWwoJmNydGMtPnN0YXRlLT5tb2RlLCAmY3J0Y19zdGF0ZS0+bW9kZSkpIHsKPiAtCQkJ RFJNX0RFQlVHX0FUT01JQygiW0NSVEM6JWRdIG1vZGUgY2hhbmdlZFxuIiwKPiAtCQkJCQkgY3J0 Yy0+YmFzZS5pZCk7Cj4gLQkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gLQkJ fQo+IC0KPiAtCQlpZiAoY3J0Yy0+c3RhdGUtPmVuYWJsZSAhPSBjcnRjX3N0YXRlLT5lbmFibGUp IHsKPiAtCQkJRFJNX0RFQlVHX0FUT01JQygiW0NSVEM6JWRdIGVuYWJsZSBjaGFuZ2VkXG4iLAo+ IC0JCQkJCSBjcnRjLT5iYXNlLmlkKTsKPiAtCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0g dHJ1ZTsKPiAtCQl9Cj4gLQl9CgpPZmMgdGhlbiB0aGlzIGh1bmsgaGVyZSBuZWVkcyB0byBzdGF5 LgoKPiAtCj4gIAlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwg Y29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gIAkJLyoKPiAgCQkgKiBUaGlzIG9ubHkgc2V0cyBjcnRj LT5tb2RlX2NoYW5nZWQgZm9yIHJvdXRpbmcgY2hhbmdlcywKPiBAQCAtMTYwNyw4ICsxNTkzLDkg QEAgcmV0cnk6Cj4gIAkJV0FSTl9PTihzZXQtPmZiKTsKPiAgCQlXQVJOX09OKHNldC0+bnVtX2Nv bm5lY3RvcnMpOwo+ICAKPiAtCQljcnRjX3N0YXRlLT5lbmFibGUgPSBmYWxzZTsKPiAtCQljcnRj X3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKPiArCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zv cl9jcnRjKGNydGNfc3RhdGUsIE5VTEwpOwo+ICsJCWlmIChyZXQgIT0gMCkKPiArCQkJZ290byBm YWlsOwo+ICAKPiAgCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5 X3N0YXRlLCBOVUxMKTsKPiAgCQlpZiAocmV0ICE9IDApCj4gQEAgLTE2MjIsOSArMTYwOSwxMCBA QCByZXRyeToKPiAgCVdBUk5fT04oIXNldC0+ZmIpOwo+ICAJV0FSTl9PTighc2V0LT5udW1fY29u bmVjdG9ycyk7Cj4gIAo+IC0JY3J0Y19zdGF0ZS0+ZW5hYmxlID0gdHJ1ZTsKPiArCXJldCA9IGRy bV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKPiArCWlm IChyZXQgIT0gMCkKPiArCQlnb3RvIGZhaWw7Cj4gIAljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVl Owo+IC0JZHJtX21vZGVfY29weSgmY3J0Y19zdGF0ZS0+bW9kZSwgc2V0LT5tb2RlKTsKPiAgCj4g IAlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBjcnRj KTsKPiAgCWlmIChyZXQgIT0gMCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gaW5kZXgg OTI5N2E2MS4uY2M3N2E0ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKPiBAQCAt OTM3LDEwICs5MzcsMTAgQEAgaW50IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2QKPiAgCQkJY3J0Y19zdGF0 ZS0+Y3J0YyA9IGNydGM7Cj4gIAl9Cj4gIAo+IC0JY3J0Y19zdGF0ZS0+ZW5hYmxlID0gdHJ1ZTsK PiAgCWNydGNfc3RhdGUtPnBsYW5lc19jaGFuZ2VkID0gdHJ1ZTsKPiAtCWNydGNfc3RhdGUtPm1v ZGVfY2hhbmdlZCA9IHRydWU7Cj4gLQlkcm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5tb2RlLCBt b2RlKTsKPiArCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwg bW9kZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0Owo+ICAJZHJtX21vZGVfY29weSgmY3J0 Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4gIAo+ICAJaWYgKGNydGNf ZnVuY3MtPmF0b21pY19jaGVjaykgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBpbmRleCAyNDAwOTJhLi43ZTMxOTcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC05ODk2LDcgKzk4OTYsOSBAQCByZXRyeToKPiAgCWlmIChyZXQpCj4gIAkJ Z290byBmYWlsOwo+ICAKPiAtCWRybV9tb2RlX2NvcHkoJmNydGNfc3RhdGUtPmJhc2UubW9kZSwg bW9kZSk7Cj4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRl LT5iYXNlLCBtb2RlKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAgCWlmIChp bnRlbF9zZXRfbW9kZShjcnRjLCBzdGF0ZSkpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJmYWlsZWQg dG8gc2V0IG1vZGUgb24gbG9hZC1kZXRlY3QgcGlwZVxuIik7Cj4gQEAgLTEyNDk0LDggKzEyNDk2 LDExIEBAIHZvaWQgaW50ZWxfY3J0Y19yZXN0b3JlX21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAKPiAgCQljcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA9IGludGVsX2NydGMtPm5ld19lbmFi bGVkOwo+ICAKPiAtCQlpZiAoJmludGVsX2NydGMtPmJhc2UgPT0gY3J0YykKPiAtCQkJZHJtX21v ZGVfY29weSgmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLCAmY3J0Yy0+bW9kZSk7Cj4gKwkJaWYgKCZp bnRlbF9jcnRjLT5iYXNlID09IGNydGMpIHsKPiArCQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9k ZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+YmFzZSwKPiArCQkJCQkJCSAgICZjcnRjLT5tb2RlKTsK PiArCQkJV0FSTl9PTihyZXQpOwo+ICsJCX0KPiAgCX0KPiAgCj4gIAlpbnRlbF9tb2Rlc2V0X3Nl dHVwX3BsYW5lX3N0YXRlKHN0YXRlLCBjcnRjLCAmY3J0Yy0+bW9kZSwKPiBAQCAtMTI2MzMsOCAr MTI2MzgsOSBAQCBpbnRlbF9tb2Rlc2V0X3N0YWdlX291dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiAgCQlyZXR1cm4gUFRSX0VS UihjcnRjX3N0YXRlKTsKPiAgCj4gLQlpZiAoc2V0LT5tb2RlKQo+IC0JCWRybV9tb2RlX2NvcHko JmNydGNfc3RhdGUtPm1vZGUsIHNldC0+bW9kZSk7Cj4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9t b2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIHNldC0+bW9kZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJl dHVybiByZXQ7Cj4gIAo+ICAJaWYgKHNldC0+bnVtX2Nvbm5lY3RvcnMpCj4gIAkJY3J0Y19zdGF0 ZS0+YWN0aXZlID0gdHJ1ZTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5o IGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gaW5kZXggZTg5ZGIwYy4uNTVmNDYwNCAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPiArKysgYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljLmgKPiBAQCAtMTEwLDYgKzExMCwxMiBAQCBkcm1fYXRvbWljX2dldF9leGlzdGlu Z19jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICB9Cj4g IAo+ICBpbnQgX19tdXN0X2NoZWNrCj4gK2RybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSk7Cj4gK2ludCBfX211c3RfY2hlY2sKPiArZHJtX2F0b21pY19zZXRfbW9kZV9w cm9wX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgIHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYik7Cj4gK2ludCBfX211c3RfY2hlY2sKPiAgZHJtX2F0 b21pY19zZXRfY3J0Y19mb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUsCj4gIAkJCSAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIHZvaWQgZHJtX2F0b21p Y19zZXRfZmJfZm9yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAo+ IC0tIAo+IDIuNC4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=