From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH RFC] drm: Add a new connector atomic property for link status Date: Wed, 23 Nov 2016 17:15:26 +0200 Message-ID: <87shqiut0x.fsf@intel.com> References: <1479864621-8105-1-git-send-email-manasi.d.navare@intel.com> <20161123080928.ywu4njrdk6s4xlsc@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul , Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , dri-devel List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMyBOb3YgMjAxNiwgU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+IHdy b3RlOgo+IE9uIFdlZCwgTm92IDIzLCAyMDE2IGF0IDM6MDkgQU0sIERhbmllbCBWZXR0ZXIgPGRh bmllbEBmZndsbC5jaD4gd3JvdGU6Cj4+IE9uIFR1ZSwgTm92IDIyLCAyMDE2IGF0IDA5OjI3OjM1 UE0gLTA1MDAsIFNlYW4gUGF1bCB3cm90ZToKPj4+IE9uIFR1ZSwgTm92IDIyLCAyMDE2IGF0IDg6 MzAgUE0sIE1hbmFzaSBOYXZhcmUKPj4+IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPiB3cm90 ZToKPj4+ID4gVGhpcyBpcyBSRkMgcGF0Y2ggZm9yIGFkZGluZyBhIGNvbm5lY3RvciBsaW5rLXN0 YXR1cyBwcm9wZXJ0eQo+Pj4gPiBhbmQgbWFraW5nIGl0IGF0b21pYyBieSBhZGRpbmcgaXQgdG8g dGhlIGRybV9jb25uZWN0b3Jfc3RhdGUuCj4+PiA+IFRoaXMgaXMgdG8gbWFrZSBzdXJlIGl0cyB3 aXJlZCBwcm9wZXJseSBpbiBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkKPj4+ID4g YW5kIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eSBmdW5jdGlvbnMuCj4+PiA+Cj4+ Pgo+Pj4gVGhhbmtzIGZvciBzZW5kaW5nIHRoaXMuIFdlIHJhbiBpbnRvIHNvbWUgcmUtdHJhaW5p bmcgYXdrd2FyZG5lc3MKPj4+IHJlY2VudGx5LCBhbmQgSQo+Pj4gd2FzIGhvcGluZyBmb3Igc3Vj aCBhIHBhdGNoLgo+Pj4KPj4+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5p bnRlbC5jb20+Cj4+PiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KPj4+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+Pj4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+PiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4+PiA+IC0tLQo+Pj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICB8ICA1ICsr KysKPj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgfCA2NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oICAgICB8IDEyICsrKysrKystCj4+PiA+ICBpbmNsdWRlL2RybS9kcm1fbW9kZV9j b25maWcuaCAgIHwgIDUgKysrKwo+Pj4gPiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAg ICB8ICA0ICsrKwo+Pj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQo+Pj4gPgo+Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4+ID4gaW5kZXggODk3Mzdl NC4uNjQ0ZDE5ZiAxMDA2NDQKPj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu Ywo+Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4+PiA+IEBAIC0xMDg3 LDYgKzEwODcsOSBAQCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+PiA+ICAgICAgICAgICAgICAgICAgKiBub3c/ KSBhdG9taWMgd3JpdGVzIHRvIERQTVMgcHJvcGVydHk6Cj4+PiA+ICAgICAgICAgICAgICAgICAg Ki8KPj4+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4gPiArICAgICAgIH0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5saW5rX3N0YXR1c19wcm9wZXJ0eSkgewo+Pj4g PiArICAgICAgICAgICAgICAgc3RhdGUtPmxpbmtfc3RhdHVzID0gdmFsOwo+Pgo+PiBJIHRoaW5r IHdlIHNob3VsZCBoYXZlIGEgY2hlY2sgaGVyZSB0byBtYWtlIHN1cmUgdXNlcnNwYWNlIG5ldmVy IHRyaWVzIHRvCj4+IHNldCB0aGlzIGZyb20gIkdPT0QiIHRvICJCQUQiLiAiQkFEIiB0byAiQkFE IiB3ZSBuZWVkIHRvIGFsbG93LCBzaW5jZSB3aXRoCj4+IGF0b21pYyB1c2Vyc3BhY2UgaXMgc3Vw cG9zZWQgdG8gYmUgYWJsZSB0byBqdXN0IHJlc3RvcmUgZXZlcnl0aGluZyB0byB3aGF0Cj4+IGl0 IHdhcy4KPj4KPj4gSSBkb24ndCB0aGluayB0cnlpbmcgdG8gc2V0IGl0IHRvICJCQUQiIHNob3Vs ZCBjYXVzZSBhbiBlcnJvciB0aG91Z2gsIGp1c3QKPj4gc2lsZW50bHkga2VlcCB0aGUgbGluayBz dGF0dXMgYXQgIkdPT0ciLiBTbzoKPj4KPj4gICAgICAgICAvKiBOZXZlciBkb3duZ3JhZGUgZnJv bSBHT09EIHRvIEJBRCBvbiB1c2Vyc3BhY2UncyByZXF1ZXN0IGhlcmUsCj4+ICAgICAgICAgICog b25seSBodyBpc3N1ZXMgY2FuIGRvIHRoYXQuICovCj4+ICAgICAgICAgaWYgKHN0YXRlLT5saW5r X3N0YXR1cyA9PSBHT09EKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4KPiBDYW4gd2Ug cmV0dXJuIGFuIGVycm9yIGlmIHRoZSB0cmFuc2l0aW9uIGlzIGludmFsaWQ/Cj4KPj4gICAgICAg ICBzdGF0ZS0+bGlua19zdGF0dXMgPSB2YWw7Cj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+Cj4+PiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+ID4gICAgICAgICB9IGVsc2UgaWYgKGNvbm5l Y3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPj4+ID4gICAgICAgICAgICAgICAg IHJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwK Pj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgcHJvcGVydHksIHZh bCk7Cj4+PiA+IEBAIC0xMTM1LDYgKzExMzgsOCBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2Nv bm5lY3Rvcl9wcmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4+PiA+ICAgICAgICAg ICAgICAgICAqdmFsID0gKHN0YXRlLT5jcnRjKSA/IHN0YXRlLT5jcnRjLT5iYXNlLmlkIDogMDsK Pj4+ID4gICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZHBtc19wcm9wZXJ0 eSkgewo+Pj4gPiAgICAgICAgICAgICAgICAgKnZhbCA9IGNvbm5lY3Rvci0+ZHBtczsKPj4+ID4g KyAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVy dHkpIHsKPj4+ID4gKyAgICAgICAgICAgICAgICp2YWwgPSBzdGF0ZS0+bGlua19zdGF0dXM7Cj4+ PiA+ICAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3Bl cnR5KSB7Cj4+PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4+PiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9y LmMKPj4+ID4gaW5kZXggNWE0NTI2Mi4uNDU3NmM5ZiAxMDA2NDQKPj4+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jCj4+PiA+IEBAIC0yNDMsNiArMjQzLDEwIEBAIGludCBkcm1fY29ubmVjdG9y X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ID4gICAgICAgICBkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+Pj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+ZHBtc19wcm9wZXJ0eSwgMCk7Cj4+PiA+Cj4+PiA+ ICsgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPj4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmxpbmtfc3RhdHVz X3Byb3BlcnR5LAo+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwo+ Pj4gPiArCj4+PiA+ICAgICAgICAgaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklW RVJfQVRPTUlDKSkgewo+Pj4gPiAgICAgICAgICAgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgY29uZmlnLT5wcm9wX2NydGNfaWQsIDApOwo+Pj4gPiAg ICAgICAgIH0KPj4+ID4gQEAgLTUwNiw2ICs1MTAsMTIgQEAgY29uc3QgY2hhciAqZHJtX2dldF9z dWJwaXhlbF9vcmRlcl9uYW1lKGVudW0gc3VicGl4ZWxfb3JkZXIgb3JkZXIpCj4+PiA+ICB9Owo+ Pj4gPiAgRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2RwbXNfbmFtZSwgZHJtX2RwbXNfZW51bV9s aXN0KQo+Pj4gPgo+Pj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3Qg ZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdFtdID0gewo+Pj4gPiArICAgICAgIHsgRFJNX01PREVf TElOS19TVEFUVVNfR09PRCwgIkdvb2QiIH0sCj4+PiA+ICsgICAgICAgeyBEUk1fTU9ERV9MSU5L X1NUQVRVU19CQUQsICJCYWQiIH0sCj4+PiA+ICt9Owo+Pj4gPiArRFJNX0VOVU1fTkFNRV9GTihk cm1fZ2V0X2xpbmtfc3RhdHVzX25hbWUsIGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QpCj4+PiA+ ICsKPj4+ID4gIC8qKgo+Pj4gPiAgICogZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMg LSBzZXQgdGhlIHN1cHBvcnRlZCBidXMgZm9ybWF0cwo+Pj4gPiAgICogQGluZm86IGRpc3BsYXkg aW5mbyB0byBzdG9yZSBidXMgZm9ybWF0cyBpbgo+Pj4gPiBAQCAtNjE2LDcgKzYyNiw3IEBAIGlu dCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5m byAqaW5mbywKPj4+ID4gICAqICAgICBwYXRoIHByb3BlcnR5IHRoZSBNU1QgbWFuYWdlciBjcmVh dGVkLiBVc2Vyc3BhY2UgY2Fubm90IGNoYW5nZSB0aGlzCj4+PiA+ICAgKiAgICAgcHJvcGVydHku Cj4+PiA+ICAgKiBUSUxFOgo+Pj4gPiAtICogICAgIENvbm5lY3RvciB0aWxlIGdyb3VwIHByb3Bl cnR5IHRvIGluZGljYXRlIGhvdyBhIHNldCBvZiBEUk0gY29ubmVjdG9yCj4+PiA+ICsgKiAgICAg IENvbm5lY3RvciB0aWxlIGdyb3VwIHByb3BlcnR5IHRvIGluZGljYXRlIGhvdyBhIHNldCBvZiBE Uk0gY29ubmVjdG9yCj4+Pgo+Pj4ga2V5Ym9hcmQgc2xpcCBoZXJlCj4+Pgo+Pj4gPiAgICogICAg IGNvbXBvc2UgdG9nZXRoZXIgaW50byBvbmUgbG9naWNhbCBzY3JlZW4uIFRoaXMgaXMgdXNlZCBi eSBib3RoIGhpZ2gtcmVzCj4+PiA+ICAgKiAgICAgZXh0ZXJuYWwgc2NyZWVucyAob2Z0ZW4gb25s eSB1c2luZyBhIHNpbmdsZSBjYWJsZSwgYnV0IGV4cG9zaW5nIG11bHRpcGxlCj4+PiA+ICAgKiAg ICAgRFAgTVNUIHNpbmtzKSwgb3IgaGlnaC1yZXMgaW50ZWdyYXRlZCBwYW5lbHMgKGxpa2UgZHVh bC1saW5rIERTSSkgd2hpY2gKPj4+ID4gQEAgLTYyNSw3ICs2MzUsMTQgQEAgaW50IGRybV9kaXNw bGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvLAo+ Pj4gPiAgICogICAgIHRpbGluZyBhbmQgdmlydHVhbGl6ZSBib3RoICZkcm1fY3J0YyBhbmQgJmRy bV9wbGFuZSBpZiBuZWVkZWQuIERyaXZlcnMKPj4+ID4gICAqICAgICBzaG91bGQgdXBkYXRlIHRo aXMgdmFsdWUgdXNpbmcgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KCkuCj4+ PiA+ICAgKiAgICAgVXNlcnNwYWNlIGNhbm5vdCBjaGFuZ2UgdGhpcyBwcm9wZXJ0eS4KPj4+ID4g LSAqCj4+PiA+ICsgKiBsaW5rLXN0YXR1czoKPj4+ID4gKyAqICAgICAgQ29ubmVjdG9yIGxpbmst c3RhdHVzIHByb3BlcnR5IHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2YgbGluayBkdXJpbmcKPj4+ ID4gKyAqICAgICAgdGhlIG1vZGVzZXQuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGxpbmstc3RhdHVz IGlzICJHT09EIi4gSWYgc29tZXRoaW5nCj4+PiA+ICsgKiAgICAgIGZhaWxzIGR1cmluZyBtb2Rl c2V0LCB0aGUga2VybmVsIGRyaXZlciBjYW4gc2V0IHRoaXMgdG8gIkJBRCIsIHBydW5lCj4+PiA+ ICsgKiAgICAgIHRoZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3IGxpbmsgcGFyYW1ldGVycyBhbmQg c2VuZCBhIGhvdHBsdWcgdWV2ZW50Cj4+PiA+ICsgKiAgICAgIHRvIG5vdGlmeSB1c2Vyc3BhY2Ug dG8gcmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5FQ1RPUgo+Pj4gPiAr ICogICAgICBJT0NUTCBhbmQgcmVkbyBhIG1vZGVzZXQuIERyaXZlcnMgc2hvdWxkIHVwZGF0ZSB0 aGlzIHZhbHVlIHVzaW5nCj4+PiA+ICsgKiAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlu a19zdGF0dXNfcHJvcGVydHkoKS4KPj4+ID4gICAqIENvbm5lY3RvcnMgYWxzbyBoYXZlIG9uZSBz dGFuZGFyZGl6ZWQgYXRvbWljIHByb3BlcnR5Ogo+Pj4gPiAgICoKPj4+ID4gICAqIENSVENfSUQ6 Cj4+PiA+IEBAIC02NjYsNiArNjgzLDEzIEBAIGludCBkcm1fY29ubmVjdG9yX2NyZWF0ZV9zdGFu ZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+PiA+ICAgICAgICAgICAg ICAgICByZXR1cm4gLUVOT01FTTsKPj4+ID4gICAgICAgICBkZXYtPm1vZGVfY29uZmlnLnRpbGVf cHJvcGVydHkgPSBwcm9wOwo+Pj4gPgo+Pj4gPiArICAgICAgIHByb3AgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX2VudW0oZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywgImxpbmstc3RhdHVzIiwKPj4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9saW5rX3N0YXR1 c19lbnVtX2xpc3QsCj4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBUlJBWV9TSVpFKGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QpKTsKPj4+ID4gKyAgICAgICBp ZiAoIXByb3ApCj4+PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+ID4gKyAg ICAgICBkZXYtPm1vZGVfY29uZmlnLmxpbmtfc3RhdHVzX3Byb3BlcnR5ID0gcHJvcDsKPj4+ID4g Kwo+Pj4gPiAgICAgICAgIHJldHVybiAwOwo+Pj4gPiAgfQo+Pj4gPgo+Pj4gPiBAQCAtOTk1LDYg KzEwMTksNDMgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gPiAgfQo+Pj4gPiAgRVhQT1JUX1NZ TUJPTChkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkpOwo+Pj4gPgo+Pj4g PiArLyoqCj4+PiA+ICsgKiBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3Bl cnR5IC0gU2V0IGxpbmsgc3RhdHVzIHByb3BlcnR5IG9mIGEgY29ubmVjdG9yCj4+PiA+ICsgKiBA Y29ubmVjdG9yOiBkcm0gY29ubmVjdG9yCj4+PiA+ICsgKiBAbGlua19zdGF0dXM6IG5ldyB2YWx1 ZSBvZiBsaW5rIHN0YXR1cyBwcm9wZXJ0eSAoMDogR29vZCwgMTogQmFkKQo+Pj4gPiArICoKPj4+ ID4gKyAqIEluIHVzdWFsIHdvcmtpbmcgc2NlbmFyaW8sIHRoaXMgbGluayBzdGF0dXMgcHJvcGVy dHkgd2lsbCBhbHdheXMgYmUgc2V0IHRvCj4+PiA+ICsgKiAiR09PRCIuIElmIHNvbWV0aGluZyBm YWlscyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2RlIHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgc2hvdWxk Cj4+PiA+ICsgKiBzZXQgdGhpcyBsaW5rIHN0YXR1cyBwcm9wZXJ0eSB0byAiQkFEIiBhbmQgcHJ1 bmUgdGhlIG1vZGUgbGlzdCBiYXNlZCBvbiBuZXcKPj4+Cj4+PiBEb2VzIHRoZSBtb2RlIGxpc3Qg cmVhbGx5ICpuZWVkKiB0byBiZSBwcnVuZWQ/IEluIHRoZSBjYXNlIG9mIG5lZWRpbmcKPj4+IHRv IHJlLXRyYWluIGEgRFAgbGluaywKPj4+IGl0IHNlZW1zIGxpa2Ugd2Ugc2hvdWxkIGJlIGFibGUg dG8gc2V0IHRoaXMgQkFEIGFuZCBrZWVwIHRoZSBtb2RlbGlzdAo+Pj4gYXMtaXMgKHNpbmNlIHRo ZSBzaW5rCj4+PiBoYXNuJ3QgY2hhbmdlZCkKPj4KPj4gV2VsbCwgaWYgeW91IHBydW5lIGl0IHdp dGggdGhlIHNhbWUgY29uc3RyYWludHMgYXMgYmVmb3JlLCBubyBhZGRpdGlvbmFsCj4+IG1vZGVz IHdpbGwgYmUgcmVtb3ZlZCBhbmQgdGhlIHNhbWUgbGlzdCBpcyB0aGVyZS4gUHJ1bmluZyBoZXJl IHJlZmVycyB0bwo+PiB0aGUgLT5tb2RlX3ZhbGlkIHN0ZXAgYXMgZG9uZSBpbiBlLmcuIGRybV9o ZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlcy4KPj4KPj4gV2UgbWlnaHQgd2FudCB0 byBiZSBhIGJpdCBtb3JlIGV4cGxpY2l0IGhlcmUgcGVyaGFwcz8gSGF2ZSBzb21lIGdvb2QKPj4g cHJvcG9zYWwgdGV4dCB0byBpbnNlcnQ/Cj4KPiBBaCwgaG1tLCBJIGhhZG4ndCBlcXVhdGVkIHRo aXMgcHJ1bmUgdG8gdGhlIG5vcm1hbCBkcm1fY29ubmVjdG9yCj4gcHJ1bmVfaW52YWxpZC4gSSBz dXBwb3NlIHRoZSAiYmFzZWQgb24gbmV3IGluZm9ybWF0aW9uIiBpcyB3aGF0IGRpZAo+IGl0LiBJ dCBzZWVtcyBsaWtlIHRoZSBtb2RlX3ZhbGlkIHBydW5pbmcgd2lsbCBoYXBwZW4gYXV0b21hZ2lj YWxseQo+IHdoZW4gdXNlcnNwYWNlIHJlYWxpemVzIHRoZSBjb25uZWN0aW9uIGlzIEJBRCBhbmQg YXNrcyBmb3IgYSBuZXcgbW9kZQo+IGxpc3QuIFNvIGlzIGl0IHdvcnRoIGV2ZW4gbWVudGlvbmlu ZyBwcnVuaW5nIHRoZSBtb2RlIGxpc3Q/Cj4KPj4+Cj4+PiA+ICsgKiBpbmZvcm1hdGlvbi4gVGhl IGNhbGxlciB0aGVuIG5lZWRzIHRvIHNlbmQgYSBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNwYWNl IHRvCj4+PiA+ICsgKiAgcmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5F Q1RPUl9JT0NUTCBhbmQgcmV0cnkgbW9kZXNldC4KPj4+Cj4+PiBleHRyYSBzcGFjZQo+Pj4KPj4+ ID4gKyAqCj4+PiA+ICsgKiBOb3RlIHRoYXQgYSBsb3Qgb2YgZXhpc3RpbmcgdXNlcnNwYWNlIGRv IG5vdCBoYW5kbGUgdGhpcyBwcm9wZXJ0eS4KPj4+ID4gKyAqIERyaXZlcnMgY2FuIHRoZXJlZm9y ZSBub3QgcmVseSBvbiB1c2Vyc3BhY2UgdG8gZml4IHVwIGV2ZXJ5dGhpbmcgYW5kCj4+PiA+ICsg KiBzaG91bGQgdHJ5IHRvIGhhbmRsZSBpc3N1ZXMgKGxpa2UganVzdCByZS10cmFpbmluZyBhIGxp bmspIHdpdGhvdXQKPj4+ID4gKyAqIHVzZXJzcGFjZSdzIGludGVydmVudGlvbi4gVGhpcyBzaG91 bGQgb25seSBiZSB1c2VkIHdoZW4gdGhlIGN1cnJlbnQgbW9kZQo+Pj4gPiArICogZmFpbHMgYW5k IHVzZXJzcGFjZSBtdXN0IHNlbGVjdCBhIGRpZmZlcmVudCBkaXNwbGF5IG1vZGUuCj4+Pgo+Pj4g SG1tLCBJIHN1cHBvc2UgdGhpcyBhbnN3ZXJzIG15IGxhc3QgcXVlc3Rpb24uIEl0J3MgdG9vIGJh ZCB3ZSBjYW4ndAo+Pj4gcmVseSBvbiB0aGlzLCBzaW5jZSB3ZSdsbAo+Pj4ganVzdCBlbmQgdXAg d2l0aCBlYWNoIGRyaXZlciByb2xsaW5nIHRoZWlyIG93biByZS10cmFpbmluZyBsb2dpYyBvbgo+ Pj4gdG9wIG9mIHBvc3NpYmx5IHN1cHBvcnRpbmcKPj4+IHRoaXMgKGJ1dCBwcm9iYWJseSBub3Qs IHNpbmNlIGl0J3MgcmVhbGx5IGp1c3Qgb3ZlcmhlYWQpLiBQZXJoYXBzIHRoaXMKPj4+IGlzIGFu IG92ZXJseSBwZXNzaW1pc3RpYwo+Pj4gdmlldz8KPj4KPj4gWW91IGNhbiBmb3JnbyBhbnkgcmUt dHJhaW5pbmcgb2YgY291cnNlLCB0aGF0IHNob3VsZCB3b3JrIHRvby4gSXQncyBqdXN0Cj4+IHRo YXQgRFAgc3BlYyBhbmQgZXZlcnlvbmUgZWxzZSBzZWVtIHRvIHJlY29tbWVuZCB0byBhdCBsZWFz dCBkbyBzb21lCj4+IG1pbmltYWwgZWZmb3J0IChvciBtYXliZSBldmVuIHVwZnJvbnQgbGluayB0 cmFpbmluZykgaGVyZS4gQnV0IHRvdGFsbHkgbm90Cj4+IGRvaW5nIGFueXRoaW5nIGlmIHRoZSBs aW5rIGlzIGJhZCBzaG91bGQgYmUgb2sgdG9vIChhbmQgcHJvYmFibHkgcmVhbGx5Cj4+IHNpbXBs ZSB0byBpbXBsZW1lbnQgZm9yIGRyaXZlcnMsIG1heWJlIGV2ZW4gd2l0aCBhIGRwX2hwZF9oYW5k bGVyKCkgaGVscGVyCj4+IGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBsaW5rIHN0YXR1cyBhbmQgc2V0 IGxpbmstc3RhdHVzIHRvIGJhZCZmaXJlcyBvZmYgdGhlCj4+IHVldmVudCBpZiBuZWVkZWQuCj4+ Cj4+IEFnYWluLCBkbyB5b3UgaGF2ZSBzb21lIHNhbXBsZSBwcm9zZSB0byBhZGQgaGVyZSB0byBj bGFyaWZ5IHRoaXM/Cj4+Cj4KPiBJIGRvbid0IHRoaW5rIGl0J3MgbWVyZWx5IGEgbWF0dGVyIG9m IGNsYXJpZnlpbmcgdGhlIGNvbW1lbnQsIHRiaC4KPiBXaXRob3V0IHJlbHlpbmcgb24gdXNlcnNw YWNlIHRvIGZpeCB1cywgdGhlcmUncyBub3QgbXVjaCBwb2ludCBpbgo+IGV4cG9zaW5nIHRoZSBw cm9wZXJ0eSBpbiB0aGUgZmlyc3QgcGxhY2UuCj4KPiBBcyBhIGRyaXZlciBhdXRob3IsIEkgbmVl ZCB0byBkZWNpZGUgd2hldGhlciBJIHdhbnQgcmUtdHJhaW5pbmcgdG8KPiB3b3JrIHByb3Blcmx5 LiBJZiBJIGRvLCBJIG5lZWQgdG8gaGFuZHJvbGwgaXQgaW4gbXkgZHJpdmVyIHNpbmNlIEkKPiBj YW4ndCByZWx5IG9uIHVzZXJzcGFjZSwgYXQgd2hpY2ggcG9pbnQsIGltcGxlbWVudGluZyB0aGUg cHJvcGVydHkKPiBpc24ndCBtZWFuaW5nZnVsLiBJZiBJIGRvbid0IGNhcmUgYWJvdXQgaXQgYmVp bmcgYnVsbGV0cHJvb2YsIEkgY2FuCj4gZXhwb3NlIHRoZSBwcm9wZXJ0eSBhbmQgbGV0IHVzZXJz cGFjZSBmaXggbWUgaWYgdGhleSBrbm93IGhvdy4KPgo+IFNvIEknZCBwcmVmZXIgdG8gaGF2ZSB0 aGUgaGVscGVyIGJlIGEgaHlicmlkIGJldHdlZW4gdGhpcyBwYXRjaCBhbmQKPiB0aGUgcHJldmlv dXMgb25lIHRoYXQgZGlkIGEgZnVsbCBtb2Rlc2V0IHVuZGVyIHRoZSBjb3ZlcnMgKHBlcmhhcHMK PiB3aXRoIGEgY2xpZW50IGNhcCBvciBzaW1pbGFyIHRvIGxldCB1cyBrbm93IHdoaWNoIHBhdGgg dG8gdHJ1c3QpLiBUaGF0Cj4gd2F5IEkgY2FuIGNhbGwgdGhlIGhlbHBlciBmcm9tIG15IGRyaXZl ciBhbmQga25vdyB0aGF0IEknbSBnb2luZyB0byBiZQo+IHJlLXRyYWluZWQgZWl0aGVyIHdheS4K CklmIHlvdXIgZHJpdmVyIGlzIGFibGUgdG8gaGFuZGxlIGV2ZXJ5dGhpbmcgaW4ga2VybmVsLCB0 aGVuIGRvIHNvIGJ5IGFsbAptZWFucy4gSWYgaXQgY2FuJ3QsIGRlZmVyIHRvIHVzZXJzcGFjZSwg d2hpY2ggbWF5IG9yIG1heSBub3QgZml4IHN0dWZmLApkZXBlbmRpbmcgb24gd2hldGhlciBpdCBs b29rcyBhdCB0aGUgcHJvcGVydHkuIElmIHRoZSB1c2Vyc3BhY2UgZG9lc24ndApkbyBhbnl0aGlu ZywgdGhpbmdzIHdpbGwgYmUganVzdCBhcyBnb29kIG9yIGJhZCBhcyB0aGV5IGFyZSBjdXJyZW50 bHksCmJlZm9yZSB0aGlzIHByb3BlcnR5LgoKVGhpcyBhbGxvd3MgdGhlIGRyaXZlcnMgdG8gY2hv b3NlIGhvdyBtdWNoIHRoZXkgY2FuL3dhbnQgdG8gZG8gaW4Ka2VybmVsLCBhbmQgd2hhdCB0aGV5 IGRlZmVyIHRvIHVzZXJzcGFjZS4KCkJSLApKYW5pLgoKCgo+Cj4gU2Vhbgo+Cj4KPj4gVGhhbmtz IGZvciB0YWtpbmcgYSBsb29rIGF0IHRoaXMuCj4+Cj4+IENoZWVycywgRGFuaWVsCj4+Cj4+PiA+ ICsgKiBUaGUgRFJNIGRyaXZlciBjYW4gY2hvc2UgdG8gbm90IG1vZGlmeSBwcm9wZXJ0eSBhbmQg a2VlcCBsaW5rIHN0YXR1cwo+Pj4gPiArICogYXMgIkdPT0QiIGFsd2F5cyB0byBrZWVwIHRoZSB1 c2VyIGV4cGVyaWVuY2Ugc2FtZSBhcyBpdCBjdXJyZW50bHkgaXMuCj4+PiA+ICsgKgo+Pj4gPiAr ICogVGhlIHJlYXNvbiBmb3IgYWRkaW5nIHRoaXMgcHJvcGVydHkgaXMgdG8gaGFuZGxlIGxpbmsg dHJhaW5pbmcgZmFpbHVyZXMsIGJ1dAo+Pj4gPiArICogaXQgaXMgbm90IGxpbWl0ZWQgdG8gRFAg b3IgbGluayB0cmFpbmluZy4gRm9yIGV4YW1wbGUsIGlmIHdlIGltcGxlbWVudAo+Pj4gPiArICog YXN5bmNocm9ub3VzIHNldGNydGMsIHRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gcmVwb3J0 IGFueSBmYWlsdXJlcyBpbiB0aGF0Lgo+Pj4gPiArICovCj4+PiA+ICt2b2lkIGRybV9tb2RlX2Nv bm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90IGxpbmtfc3RhdHVzKQo+Pj4gPiArewo+Pj4gPiArICAgICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPj4+ID4gKwo+Pj4gPiArICAgICAg IC8qIE1ha2Ugc3VyZSB0aGUgbXV0ZXggaXMgZ3JhYmJlZCAqLwo+Pj4gPiArICAgICAgIGxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+Pj4gPiArICAgICAgIGNv bm5lY3Rvci0+bGlua19zdGF0dXMgPSBsaW5rX3N0YXR1czsKPj4+ID4gKyAgICAgICBkcm1fb2Jq ZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLAo+Pj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+bW9kZV9jb25maWcubGlua19zdGF0dXNf cHJvcGVydHksCj4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu a19zdGF0dXMpOwo+Pj4gPiArfQo+Pj4gPiArRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jb25uZWN0 b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KTsKPj4+ID4gKwo+Pj4gPiAgaW50IGRybV9tb2Rl X2Nvbm5lY3Rvcl9zZXRfb2JqX3Byb3Aoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAo+Pj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wZXJ0eSwKPj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgdmFsdWUpCj4+PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPj4+ID4gaW5kZXggMzRmOTc0MS4uM2Q1 MTNhYiAxMDA2NDQKPj4+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+PiA+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+Pj4gPiBAQCAtMjEzLDYgKzIxMyw5 IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPj4+ID4KPj4+ID4gICAgICAgICBzdHJ1 Y3QgZHJtX2VuY29kZXIgKmJlc3RfZW5jb2RlcjsKPj4+ID4KPj4+ID4gKyAgICAgICAvKiBDb25u ZWN0b3IgTGluayBzdGF0dXMgKi8KPj4+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbGlua19zdGF0 dXM7Cj4+PiA+ICsKPj4+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4+PiA+ICB9Owo+Pj4gPgo+Pj4gPiBAQCAtNjk1LDYgKzY5OCwxMiBAQCBzdHJ1Y3QgZHJtX2Nv bm5lY3RvciB7Cj4+PiA+ICAgICAgICAgdWludDhfdCBudW1faF90aWxlLCBudW1fdl90aWxlOwo+ Pj4gPiAgICAgICAgIHVpbnQ4X3QgdGlsZV9oX2xvYywgdGlsZV92X2xvYzsKPj4+ID4gICAgICAg ICB1aW50MTZfdCB0aWxlX2hfc2l6ZSwgdGlsZV92X3NpemU7Cj4+PiA+ICsKPj4+ID4gKyAgICAg ICAvKiBDb25uZWN0b3IgTGluayBzdGF0dXMKPj4+ID4gKyAgICAgICAgKiAwOiBJZiB0aGUgbGlu ayBpcyBHb29kCj4+PiA+ICsgICAgICAgICogMTogSWYgdGhlIGxpbmsgaXMgQmFkCj4+PiA+ICsg ICAgICAgICovCj4+PiA+ICsgICAgICAgaW50IGxpbmtfc3RhdHVzOwo+Pj4gPiAgfTsKPj4+ID4K Pj4+ID4gICNkZWZpbmUgb2JqX3RvX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0 IGRybV9jb25uZWN0b3IsIGJhc2UpCj4+PiA+IEBAIC03NjcsMTIgKzc3NiwxMyBAQCBpbnQgZHJt X21vZGVfY3JlYXRlX3R2X3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ID4g IGludCBkcm1fbW9kZV9jcmVhdGVfc2NhbGluZ19tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+Pj4gPiAgaW50IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVy dHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiA+ICBpbnQgZHJtX21vZGVfY3JlYXRlX3N1 Z2dlc3RlZF9vZmZzZXRfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4+ID4g LQo+Pj4KPj4+IGxvc3QgYSBsaW5lIGhlcmUKPj4+Cj4+PiA+ICBpbnQgZHJtX21vZGVfY29ubmVj dG9yX3NldF9wYXRoX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq cGF0aCk7Cj4+PiA+ICBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Pj4gPiAgaW50IGRybV9tb2RlX2Nvbm5l Y3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBlZGlkICplZGlkKTsKPj4+ID4gK3ZvaWQgZHJtX21vZGVfY29ubmVjdG9yX3NldF9s aW5rX3N0YXR1c19wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgbGlua19zdGF0dXMpOwo+Pj4gPgo+Pj4gPiAgLyoqCj4+PiA+ICAgKiBzdHJ1Y3QgZHJtX3Rp bGVfZ3JvdXAgLSBUaWxlIGdyb3VwIG1ldGFkYXRhCj4+PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4+ PiA+IGluZGV4IGJmOTk5MWIuLjg2ZmFlZTQgMTAwNjQ0Cj4+PiA+IC0tLSBhL2luY2x1ZGUvZHJt L2RybV9tb2RlX2NvbmZpZy5oCj4+PiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZp Zy5oCj4+PiA+IEBAIC00MzEsNiArNDMxLDExIEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewo+ Pj4gPiAgICAgICAgICAqLwo+Pj4gPiAgICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnRpbGVf cHJvcGVydHk7Cj4+PiA+ICAgICAgICAgLyoqCj4+PiA+ICsgICAgICAgICogQGxpbmtfc3RhdHVz X3Byb3BlcnR5OiBEZWZhdWx0IGNvbm5lY3RvciBwcm9wZXJ0eSBmb3IgbGluayBzdGF0dXMKPj4+ ID4gKyAgICAgICAgKiBvZiBhIGNvbm5lY3Rvcgo+Pj4gPiArICAgICAgICAqLwo+Pj4gPiArICAg ICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKmxpbmtfc3RhdHVzX3Byb3BlcnR5Owo+Pj4gPiArICAg ICAgIC8qKgo+Pj4gPiAgICAgICAgICAqIEBwbGFuZV90eXBlX3Byb3BlcnR5OiBEZWZhdWx0IHBs YW5lIHByb3BlcnR5IHRvIGRpZmZlcmVudGlhdGUKPj4+ID4gICAgICAgICAgKiBDVVJTT1IsIFBS SU1BUlkgYW5kIE9WRVJMQVkgbGVnYWN5IHVzZXMgb2YgcGxhbmVzLgo+Pj4gPiAgICAgICAgICAq Lwo+Pj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oCj4+PiA+IGluZGV4IDcyODc5MGIuLjMwOWM0NzggMTAwNjQ0 Cj4+PiA+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+Pj4gPiArKysgYi9pbmNs dWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPj4+ID4gQEAgLTEyMyw2ICsxMjMsMTAgQEAKPj4+ID4g ICNkZWZpbmUgRFJNX01PREVfRElSVFlfT04gICAgICAgMQo+Pj4gPiAgI2RlZmluZSBEUk1fTU9E RV9ESVJUWV9BTk5PVEFURSAyCj4+PiA+Cj4+PiA+ICsvKiBMaW5rIFN0YXR1cyBvcHRpb25zICov Cj4+PiA+ICsjZGVmaW5lIERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0QgICAgICAwCj4+PiA+ICsj ZGVmaW5lIERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCAgICAgICAxCj4+PiA+ICsKPj4+ID4gIHN0 cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7Cj4+PiA+ICAgICAgICAgX191MzIgY2xvY2s7Cj4+PiA+ ICAgICAgICAgX191MTYgaGRpc3BsYXk7Cj4+PiA+IC0tCj4+PiA+IDEuOS4xCj4+PiA+Cj4+PiA+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiA+IGRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+Pj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCj4+Cj4+IC0tCj4+IERhbmllbCBWZXR0ZXIKPj4gU29mdHdhcmUgRW5naW5l ZXIsIEludGVsIENvcnBvcmF0aW9uCj4+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKSmFuaSBOaWt1 bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=