From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/8] drm: Add drm_for_each_connector_encoder_ids() Date: Wed, 27 Jun 2018 18:07:39 +0300 Message-ID: <20180627150739.GF20518@intel.com> References: <20180626174714.32012-1-ville.syrjala@linux.intel.com> <20180626174714.32012-4-ville.syrjala@linux.intel.com> <20180627090848.GG13978@phenom.ffwll.local> <20180627091157.GH13978@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180627091157.GH13978@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMjcsIDIwMTggYXQgMTE6MTE6NTdBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEp1biAyNywgMjAxOCBhdCAxMTowODo0OEFNICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gT24gVHVlLCBKdW4gMjYsIDIwMTggYXQgMDg6NDc6MDlQTSArMDMw MCwgVmlsbGUgU3lyamFsYSB3cm90ZToKPiA+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+IEFkZCBhIGNvbnZlbmllbmNl IG1hY3JvIGZvciBpdGVyYXRpbmcgY29ubmVjdG9yLT5lbmNvZGVyX2lkc1tdLgo+ID4gPiBJc29s YXRlcyB0aGUgdXNlcnMgZnJvbSB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4KPiA+ID4gCj4g PiA+IEFsc28gdXNlIEFSUkFZX1NJWkUoKSB3aGVuIHBvcHVsYXRpbmcgdGhlIGFycmF5IHRvIGF2 b2lkIHNwcmVhZGluZwo+ID4gPiBrbm93bGVkZ2UgYWJvdXQgdGhlIGFycmF5IHNpemUgYWxsIG92 ZXIuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fY29ubmVjdG9yLmMgICAgfCAyMiArKysrKysrKysrLS0tLS0tLS0tLS0tCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgIHwgIDYgKysrLS0tCj4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jIHwgIDkgKysrKystLS0tCj4gPiA+ICBpbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgIHwgMTEgKysrKysrKysrKysKPiA+ID4gIDQgZmls ZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ID4gaW5kZXggMmY5ZWJkZGQxNzhlLi5jNDM2NDZj YjgxNDUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4gPiBAQCAtMzIx LDcgKzMyMSw3IEBAIGludCBkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAlpZiAoV0FSTl9PTihjb25uZWN0b3It PmVuY29kZXIpKQo+ID4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gIAo+ID4gPiAtCWZvciAo aSA9IDA7IGkgPCBEUk1fQ09OTkVDVE9SX01BWF9FTkNPREVSOyBpKyspIHsKPiA+ID4gKwlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb25uZWN0b3ItPmVuY29kZXJfaWRzKTsgaSsrKSB7Cj4g PiA+ICAJCWlmIChjb25uZWN0b3ItPmVuY29kZXJfaWRzW2ldID09IDApIHsKPiA+ID4gIAkJCWNv bm5lY3Rvci0+ZW5jb2Rlcl9pZHNbaV0gPSBlbmNvZGVyLT5iYXNlLmlkOwo+ID4gPiAgCQkJcmV0 dXJuIDA7Cj4gPiA+IEBAIC0xNjkzLDYgKzE2OTMsNyBAQCBpbnQgZHJtX21vZGVfZ2V0Y29ubmVj dG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPiA+ICAJaW50IGVuY29k ZXJzX2NvdW50ID0gMDsKPiA+ID4gIAlpbnQgcmV0ID0gMDsKPiA+ID4gIAlpbnQgY29waWVkID0g MDsKPiA+ID4gKwl1MzIgZW5jb2Rlcl9pZDsKPiA+ID4gIAlpbnQgaTsKPiA+ID4gIAlzdHJ1Y3Qg ZHJtX21vZGVfbW9kZWluZm8gdV9tb2RlOwo+ID4gPiAgCXN0cnVjdCBkcm1fbW9kZV9tb2RlaW5m byBfX3VzZXIgKm1vZGVfcHRyOwo+ID4gPiBAQCAtMTcwOCwyMiArMTcwOSwxOSBAQCBpbnQgZHJt X21vZGVfZ2V0Y29ubmVjdG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4g PiA+ICAJaWYgKCFjb25uZWN0b3IpCj4gPiA+ICAJCXJldHVybiAtRU5PRU5UOwo+ID4gPiAgCj4g PiA+IC0JZm9yIChpID0gMDsgaSA8IERSTV9DT05ORUNUT1JfTUFYX0VOQ09ERVI7IGkrKykKPiA+ ID4gLQkJaWYgKGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbaV0gIT0gMCkKPiA+ID4gLQkJCWVuY29k ZXJzX2NvdW50Kys7Cj4gPiA+ICsJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9lbmNvZGVyX2lkcyhj b25uZWN0b3IsIGVuY29kZXJfaWQsIGkpCj4gPiA+ICsJCWVuY29kZXJzX2NvdW50Kys7Cj4gPiA+ ICAKPiA+ID4gIAlpZiAoKG91dF9yZXNwLT5jb3VudF9lbmNvZGVycyA+PSBlbmNvZGVyc19jb3Vu dCkgJiYgZW5jb2RlcnNfY291bnQpIHsKPiA+ID4gIAkJY29waWVkID0gMDsKPiA+ID4gIAkJZW5j b2Rlcl9wdHIgPSAodWludDMyX3QgX191c2VyICopKHVuc2lnbmVkIGxvbmcpKG91dF9yZXNwLT5l bmNvZGVyc19wdHIpOwo+ID4gPiAtCQlmb3IgKGkgPSAwOyBpIDwgRFJNX0NPTk5FQ1RPUl9NQVhf RU5DT0RFUjsgaSsrKSB7Cj4gPiA+IC0JCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyX2lkc1tpXSAh PSAwKSB7Cj4gPiA+IC0JCQkJaWYgKHB1dF91c2VyKGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbaV0s Cj4gPiA+IC0JCQkJCSAgICAgZW5jb2Rlcl9wdHIgKyBjb3BpZWQpKSB7Cj4gPiA+IC0JCQkJCXJl dCA9IC1FRkFVTFQ7Cj4gPiA+IC0JCQkJCWdvdG8gb3V0Owo+ID4gPiAtCQkJCX0KPiA+ID4gLQkJ CQljb3BpZWQrKzsKPiA+ID4gKwo+ID4gPiArCQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2VuY29k ZXJfaWRzKGNvbm5lY3RvciwgZW5jb2Rlcl9pZCwgaSkgewo+ID4gPiArCQkJaWYgKHB1dF91c2Vy KGVuY29kZXJfaWQsIGVuY29kZXJfcHRyICsgY29waWVkKSkgewo+ID4gPiArCQkJCXJldCA9IC1F RkFVTFQ7Cj4gPiA+ICsJCQkJZ290byBvdXQ7Cj4gPiA+ICAJCQl9Cj4gPiA+ICsJCQljb3BpZWQr KzsKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gIAlvdXRfcmVzcC0+Y291bnRfZW5jb2RlcnMg PSBlbmNvZGVyc19jb3VudDsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gPiA+IGluZGV4 IDYxYzM5Y2Q3NWEyNy4uZTA4NmIwODc0OGY0IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJf aGVscGVyLmMKPiA+ID4gQEAgLTIzMjYsMTIgKzIzMjYsMTIgQEAgc3RhdGljIGJvb2wgZHJtX3Rh cmdldF9wcmVmZXJyZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiA+ID4gIHN0 YXRpYyBib29sIGNvbm5lY3Rvcl9jcnRjX29rKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPiA+ICAJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiA+ICB7Cj4gPiA+ ICsJdTMyIGVuY29kZXJfaWQ7Cj4gPiA+ICAJaW50IGk7Cj4gPiA+ICAKPiA+ID4gLQlmb3IgKGkg PSAwOyBpIDwgRFJNX0NPTk5FQ1RPUl9NQVhfRU5DT0RFUjsgaSsrKSB7Cj4gPiA+ICsJZHJtX2Zv cl9lYWNoX2Nvbm5lY3Rvcl9lbmNvZGVyX2lkcyhjb25uZWN0b3IsIGVuY29kZXJfaWQsIGkpIHsK PiA+ID4gIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0KPiA+ID4gLQkJCWRybV9lbmNv ZGVyX2ZpbmQoY29ubmVjdG9yLT5kZXYsIE5VTEwsCj4gPiA+IC0JCQkJCSBjb25uZWN0b3ItPmVu Y29kZXJfaWRzW2ldKTsKPiA+ID4gKwkJCWRybV9lbmNvZGVyX2ZpbmQoY29ubmVjdG9yLT5kZXYs IE5VTEwsIGVuY29kZXJfaWQpOwo+ID4gPiAgCj4gPiA+ICAJCWlmIChlbmNvZGVyLT5wb3NzaWJs ZV9jcnRjcyAmIGRybV9jcnRjX21hc2soY3J0YykpCj4gPiA+ICAJCQlyZXR1cm4gdHJ1ZTsKPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gPiA+IGluZGV4IDUyNzc0MzM5NDE1MC4u MDIzOWY3NmM1MmZiIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2Jl X2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMK PiA+ID4gQEAgLTg4LDkgKzg4LDkgQEAgZHJtX21vZGVfdmFsaWRhdGVfcGlwZWxpbmUoc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gPiA+ICAJCQkgICAgc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y29ubmVjdG9yLT5kZXY7Cj4gPiA+IC0JdWludDMyX3QgKmlkcyA9IGNvbm5lY3Rvci0+ZW5jb2Rl cl9pZHM7Cj4gPiA+ICAJZW51bSBkcm1fbW9kZV9zdGF0dXMgcmV0ID0gTU9ERV9PSzsKPiA+ID4g LQl1bnNpZ25lZCBpbnQgaTsKPiA+ID4gKwl1MzIgZW5jb2Rlcl9pZDsKPiA+ID4gKwlpbnQgaTsK PiA+ID4gIAo+ID4gPiAgCS8qIFN0ZXAgMTogVmFsaWRhdGUgYWdhaW5zdCBjb25uZWN0b3IgKi8K PiA+ID4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX21vZGVfdmFsaWQoY29ubmVjdG9yLCBtb2RlKTsK PiA+ID4gQEAgLTk4LDggKzk4LDkgQEAgZHJtX21vZGVfdmFsaWRhdGVfcGlwZWxpbmUoc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gPiA+ICAJCXJldHVybiByZXQ7Cj4gPiA+ICAKPiA+ ID4gIAkvKiBTdGVwIDI6IFZhbGlkYXRlIGFnYWluc3QgZW5jb2RlcnMgYW5kIGNydGNzICovCj4g PiA+IC0JZm9yIChpID0gMDsgaSA8IERSTV9DT05ORUNUT1JfTUFYX0VOQ09ERVI7IGkrKykgewo+ ID4gPiAtCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBkcm1fZW5jb2Rlcl9maW5kKGRl diwgTlVMTCwgaWRzW2ldKTsKPiA+ID4gKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2VuY29kZXJf aWRzKGNvbm5lY3RvciwgZW5jb2Rlcl9pZCwgaSkgewo+ID4gPiArCQlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIgPQo+ID4gPiArCQkJZHJtX2VuY29kZXJfZmluZChkZXYsIE5VTEwsIGVuY29k ZXJfaWQpOwo+ID4gPiAgCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ICAKPiA+ID4gIAkJ aWYgKCFlbmNvZGVyKQo+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiA+IGluZGV4IDE0YWI1OGFkZTg3 Zi4uNGEwMzYzZjdkZDhjIDEwMDY0NAo+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiA+IEBAIC0x MTkzLDQgKzExOTMsMTUgQEAgdm9pZCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoc3RydWN0 IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyICppdGVyKTsKPiA+ID4gICNkZWZpbmUgZHJtX2Zvcl9l YWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgaXRlcikgXAo+ID4gPiAgCXdoaWxlICgoY29u bmVjdG9yID0gZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfbmV4dChpdGVyKSkpCj4gPiA+ICAKPiA+ ID4gKy8qKgo+ID4gPiArICogZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9lbmNvZGVyX2lkcyAtIGl0 ZXJhdGUgY29ubmVjdG9yIGVuY29kZXJfaWRzW10KPiA+IAo+ID4gJmRybV9jb25uZWN0b3IuZW5j b2Rlcl9pZHMgd291bGQgZ2l2ZSB5b3UgYSAoZmFpcmx5IGRpcmVjdCkgbGluay4gSnVzdCBhCj4g PiBuaXRwaWNrLgo+ID4gCj4gPiBXcnQgdGhlIGFwaTogSSB0aGluayBpbmNsdWRpbmcgdGhlIGRy bV9lbmNvZGVyX2ZpbmQgd291bGQgYmUgdXNlZnVsIGhlcmUgLQo+ID4gaXQncyB3aGF0IDIvMyB1 c2VycyB3YW50IGFueXdheSwgYW5kIHRoZSBpb2N0bCBjYW4gZWFzaWx5IGxvb2sgdXAgdGhlIGlk Cj4gPiBhZ2FpbiBieSBmb2xsb3dpbmcgZW5jb2Rlci0+YmFzZS5pZC4gQW5kIHRoZW4gbWF5YmUg Y2FsbCB0aGUgZnVuY3Rpb24gYQo+ID4gYml0IGRpZmZlcmVudGx5LCBJIHRoaW5rIHVzdWFsbHkg d2UgZ28gd2l0aAo+ID4gJHBhcmVudF9vYmplY3RfZm9yX2VhY2hfJGl0ZXJhdGVkX3RoaW5nLCBz bwo+ID4gZHJtX2Nvbm5lY3Rvcl9mb3JfZWFjaF9lbmNvZGVyKCkuIFRoZXJlJ3MgYWxzbyB0aGUK PiA+IGZvcl9lYWNoXyR0aGluZ19pbl8kcGFyZW50X29iamVjdCBwYXR0ZXJuICh1c2VkIGZvciBh dG9taWMgc3RhdGVzKSwgYnV0IEkKPiA+IHRoaW5rIHRoYXQncyBsZXNzIGZpdHRpbmcgaGVyZS4K PiA+IAo+ID4gQXBvbG9naWVzIGZvciB0aGUgaW50ZXJmYWNlIGJpa2VzaGVkZGluZyAuLi4KPiAK PiBMb29raW5nIGF0IGFsbCB0aGUgcGF0Y2hlcyBpdCdzIDE1IHBsYWNlcyB0aGF0IHdhbnQgdGhl IGRybV9lbmNvZGVyX2ZpbmQKPiBpbnRlZ3JhdGVkIHZzLiA0IHRoYXQgZG9uJ3Qgd2FudCBpdCAo d2l0aG91dCBmdXJ0aGVyIHJlZmFjdG9yaW5nKS4gU28gZXZlbgo+IG1vcmUgcmVhc29ucyBmb3Ig ZHJtX2Nvbm5lY3Rvcl9mb3JfZWFjaF9lbmNvZGVyIGltby4KCkkgaGFkIHRoYXQgc2FtZSB0aG91 Z2h0IGluaXRpYWxseSwgYnV0IHRoZW4gZm9yZ290IGFib3V0IGl0IGZvcgpzb21lIHJlYXNvbi4g SXQgZG9lcyBpbmRlZWQgbGVhZCB0byBhbiBldmVuIG5lYXRlciByZXN1bHQuCgpBbHRob3VnaCBp dCBzaG91bGQgYmUgc29tZXdoYXQgb2J2aW91cyB0aGF0IHRoZXJlIGNhbiBvbmx5IGJlIG9uZQpj dXJyZW50bHkgdXNlZCBlbmNvZGVyIGZvciBhIGNvbm5lY3RvciwgSSB0aGluayB3ZSBtYXkgd2Fu dCB0byBuYW1lCnRoaXMgZWcuIGRybV9jb25uZWN0b3JfZm9yX2VhY2hfcG9zc2libGVfZW5jb2Rl cigpIHRvIG1ha2UgaXQgc3VwZXIKY2xlYXIgd2hhdCB3ZSdyZSB0YWxraW5nIGFib3V0LgoKPiAt RGFuaWVsCj4gCj4gPiAtRGFuaWVsCj4gPiAKPiA+ID4gKyAqIEBjb25uZWN0b3I6ICZzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciBwb2ludGVyIHVzZWQgYXMgY3Vyc29yCj4gPiA+ICsgKiBAZW5jb2Rlcl9p ZDogdGhlIGVuY29kZXIgSUQKPiA+ID4gKyAqIEBfX2k6IGludCBpdGVyYXRpb24gY3Vyc29yLCBm b3IgbWFjcm8taW50ZXJuYWwgdXNlCj4gPiA+ICsgKi8KPiA+ID4gKyNkZWZpbmUgZHJtX2Zvcl9l YWNoX2Nvbm5lY3Rvcl9lbmNvZGVyX2lkcyhjb25uZWN0b3IsIGVuY29kZXJfaWQsIF9faSkgXAo+ ID4gPiArCWZvciAoKF9faSkgPSAwOyAoX19pKSA8IEFSUkFZX1NJWkUoKGNvbm5lY3RvciktPmVu Y29kZXJfaWRzKSAmJiBcCj4gPiA+ICsJCSAgICAgKGNvbm5lY3RvciktPmVuY29kZXJfaWRzWyhf X2kpXSAhPSAwOyAoX19pKSsrKSBcCj4gPiA+ICsJCWZvcl9lYWNoX2lmKChlbmNvZGVyX2lkKSA9 IChjb25uZWN0b3IpLT5lbmNvZGVyX2lkc1soX19pKV0pCj4gPiA+ICsKPiA+ID4gICNlbmRpZgo+ ID4gPiAtLSAKPiA+ID4gMi4xNi40Cj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4g PiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+IAo+ID4gLS0gCj4g PiBEYW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24K PiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=