From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heikki Krogerus Subject: Re: [PATCH 0/3] Propagate DP-over-Type-C hotplug events from Type-C subsys to drm-drivers Date: Mon, 4 Mar 2019 17:17:04 +0200 Message-ID: <20190304151704.GA8238@kuha.fi.intel.com> References: <20190225132037.31458-1-hdegoede@redhat.com> <20190227105546.GF27730@kuha.fi.intel.com> <87o96xo510.fsf@intel.com> <14e6877b-eb78-f331-6e54-572f7d8e8535@redhat.com> <20190228091529.GH27730@kuha.fi.intel.com> <78ed689c-c254-3c16-d056-2cb2eb220fdf@redhat.com> <20190228144743.GA8623@kuha.fi.intel.com> <384ec9e7-a599-880c-26f8-66bfa87acb33@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <384ec9e7-a599-880c-26f8-66bfa87acb33@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede Cc: linux-usb@vger.kernel.org, Maxime Ripard , Greg Kroah-Hartman , intel-gfx , David Airlie , Sean Paul , dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SGkgSGFucywKCk9uIFRodSwgRmViIDI4LCAyMDE5IGF0IDA1OjU0OjIxUE0gKzAxMDAsIEhhbnMg ZGUgR29lZGUgd3JvdGU6Cj4gSGkgSGVpa2tpLAo+IAo+IE9uIDI4LTAyLTE5IDE1OjQ3LCBIZWlr a2kgS3JvZ2VydXMgd3JvdGU6Cj4gPiBIaSBIYW5zLAo+ID4gCj4gPiBPbiBUaHUsIEZlYiAyOCwg MjAxOSBhdCAxMjoyNDoyNVBNICswMTAwLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+ID4gPiBIaSwK PiA+ID4gCj4gPiA+IE9uIDI4LTAyLTE5IDEwOjE1LCBIZWlra2kgS3JvZ2VydXMgd3JvdGU6Cj4g Cj4gPHNuaXA+Cj4gCj4gPiA+ID4gSSd2ZSBiZWVuIHRoaW5raW5nIGFib3V0IHRoaXMuLi4gRG8g d2UgYWN0dWFsbHkgbmVlZCB0byBsaW5rIHRoZQo+ID4gPiA+IGNvcnJlY3QgZHJtX2Nvbm5lY3Rv ciB0byB0aGUgVHlwZS1DIGNvbm5lY3Rvcj8gUGVyaGFwcyB3ZSBjYW4gbWFrZQo+ID4gPiA+IHRo aXMgd29yayBieSBqdXN0IGxpbmtpbmcgdGhlIEdGWCBkZXZpY2UgdG8gdGhlIFR5cGUtQyBjb25u ZWN0b3IuCj4gPiA+IAo+ID4gPiBXaGF0IHVzZSBpcyBpdCB0byB0aGUga21zIGRyaXZlciBpZiBp dCBnZXRzIGFuIGV2ZW50IHRoZXJlIGlzIGEgRFAKPiA+ID4gaG90cGx1ZyB3aXRoIHggbGFuZXMg YW5kIG9yaWVudGF0aW9uIGZvbywgaWYgd2UgYXJlIG5vdCB0ZWxsaW5nIGl0Cj4gPiA+IG9uIHdo aWNoIERQIHBvcnQgaXQgaXMgPyBrbXMgZGV2aWNlcyBhbHJlYWR5IGhhdmUgbXVsdGlwbGUgRFAg cG9ydHMKPiA+ID4gYW5kIG1vcmUgdGhlbiBvbmUgY291bGQgYmUgaG9va2VkLXVwIHRvIHR5cGUt YyBjb25uZWN0b3JzLgo+ID4gCj4gPiBJIHdhcyBsb29raW5nIGF0IHRoaXMgc2VyaWVzLiBZb3Ug d2FsayB0cm91Z2ggZXZlcnkgRFAgcG9ydCBpbiB0aGUKPiA+IHN5c3RlbSB3aGVuIHRoZSBEUCBh bHQgbW9kZSBkcml2ZXIgYnJvYWRjYXN0cyB0aGUgZXZlbnQsIGJ1dCBtYXliZQo+ID4gdGhhdCdz IGRpZmZlcmVudC4gTmV2ZXIgbWluZC4KPiAKPiBSaWdodCwgbXkgInNpbXBsZSAvIG5haXZlIiBz b2x1dGlvbiBzaW1wbHkgdGVsbHMgdGhlIGttcyBkcml2ZXIgdG8KPiBjaGVjayBhbGwgRFAgcG9y dHMgZm9yIGNvbm5lY3Rpb24gc3RhdGUgY2hhbmdlcywgc2ltaWxhciB0byBob3cKPiBydW5uaW5n ICJ4cmFuZHIiIHVuZGVyIFhvcmcgY2F1c2VzIHRoZSBrbXMgZHJpdmVyIHRvIHJlLWNoZWNrIHRo ZQo+IGNvbm5lY3Rpb24gc3RhdHVzIG9mIGFsbCBwb3J0cy4gQWN0dWFsbHkgcnVubmluZyB4cmFu ZHIgdW5kZXIgWG9yZwo+IGFmdGVyIHBsdWdnaW5nIGluIHRoZSBjYWJsZSwgaXMgaG93IEkgZGlk IG15IGluaXRpYWwgRFAgb3ZlciBUeXBlLUMKPiB0ZXN0aW5nIG9uIHRoZSBHUEQgd2luLgo+IAo+ IEJ1dCBvbmNlIHdlIHN0YXJ0IHBhc3NpbmcgZXh0cmEtaW5mbywgSSBiZWxpZXZlIHRoZSBrbXMg ZHJpdmVyIG5lZWRzCj4gdG8ga25vdyB0byB3aGljaCBjb25uZWN0b3IgdGhhdCBpbmZvIGJlbG9u Z3MuCj4gCj4gPHNuaXA+Cj4gCj4gPiA+ID4gV2VsbCwgSSBkb24ndCB0aGluayB3ZSBjYW4gZGVu eSB0aGUgR1BVIGRyaXZlciAoaW4gdGhpcyBjYXNlKSB0aGUKPiA+ID4gPiBpbmZvcm1hdGlvbiB0 aGF0IHdlIGhhdmUgYW5kIHRoYXQgaXMgcmVsZXZhbnQgdG8gaXQsIGp1c3QgYmVjYXVzZSBpdAo+ ID4gPiA+IHNlZW1zIGRpZmZpY3VsdCB0byBkZWxpdmVyIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhl IHJpZ2h0IGxvY2F0aW9uLgo+ID4gPiAKPiA+ID4gUmlnaHQsIGJ1dCB0aGlzIGRvZXMgbm90IHJl cXVpcmUgYSB0aWdodC1jb3VwbGluZy4gTXkgb3JpZ2luYWwKPiA+ID4gcHJvcG9zYWwgY2FuIGRv IHRoaXMgaWYgd2UgcGFzcyBhIGRhdGEgc3RydWN0IHdpdGggYW4gaWRlbnRpZmllcgo+ID4gPiBm b3IgdGhlIERQIHBvcnQgZm9yIHdoaWNoIHRoZSBldmVudCBpcyB0byB0aGUgbm90aWZpZXIuIEkg c3VnZ2VzdCB1c2luZwo+ID4gPiBhIHN0cmluZyBmb3IgaWRlbnRpZmllciwgc29tZXRoaW5nIGxp a2U6ICIwMDAwOjAwOjAyLjAvRFAtMSIgdGhpcwo+ID4gPiBldmVudCBzdHJ1Y3QgY291bGQgdGhl biBhbHNvIGNvbnRhaW4gYWxsIHRoZSBpbmZvIHdlIHdhbnQgdG8gcGFzcy4KPiA+IAo+ID4gSSBk byBhZ3JlZSB0aGF0IHdlIHNob3VsZCBub3QgdGllIHRoZSBvYmplY3RzIChkZXZpY2UgZW50cmll cykKPiA+IHJlcHJlc2VudGluZyB0aGVzZSBjb21wb25lbnRzIGluIGtlcm5lbCB0b2dldGhlciwg YnV0IEkgYXNzdW1lIHRoYXQgd2UKPiA+IGFncmVlIG5vdyB0aGF0IHRoZSBjb25uZWN0aW9uIGJl dHdlZW4gdGhlIHR3byAtIHRoZSBVU0IgVHlwZS1DCj4gPiBjb25uZWN0b3IgYW5kIHRoZSBEaXNw bGF5UG9ydCAtIG11c3QgYmUgZGVzY3JpYmVkIHNvbWV3aGVyZSwgZWl0aGVyIGluCj4gPiBmaXJt d2FyZSBvciBidWlsZC1pbj8gU28gSSBndWVzcyB3ZSBhcmUgdGFsa2luZyBpbXBsZW1lbnRhdGlv biBkZXRhaWxzCj4gPiBoZXJlLCByaWdodD8KPiAKPiBSaWdodC4KPiAKPiA+IElmIHRoYXQgaXMg dGhlIGNhc2UuLi4KPiA+IAo+ID4gVGhhdCBzdHJpbmcgaWRlbnRpZmllciB5b3UgcHJvcG9zZWQg d291bGQgYmFzaWNhbGx5IHByb3ZpZGUgdGhlCj4gPiBkZXRhaWxzIGFib3V0IHRoZSBjb25uZWN0 aW9uLCBzbyBpZiB3ZSBrbm93IHRob3NlIGRldGFpbHMsIHdlIG1pZ2h0IGFzCj4gPiB3ZWxsIHVz ZSAibm9ybWFsIiB3YXlzIHRvIGRlc2NyaWJlIHRoZSBjb25uZWN0aW9uIGFuZCBqdXN0IGV4dHJh Y3QKPiA+IHRoZW0gaW4gcnVudGltZSBpbiB0aGUgZnVuY3Rpb24gdGhhdCBvdXIgRFAgYWx0IG1v ZGUgZHJpdmVyIGNhbGxzLiBJCj4gPiB0aGluayB0aGUgY29ubmVjdGlvbiBoYXMgdG8gYmUgZGVm aW5lZCBpbiBpOTE1IG9uIENIVCBpbiBhbnkgY2FzZS4KPiAKPiBJbnRlcmVzdGluZywgSSB0aGlu ayB0aGUgY29ubmVjdGlvbiBzaG91bGQgYmUgZGVzY3JpYmVkIGluIHRoZSBmd25vZGUKPiBmb3Ig dGhlIGZ1c2IzMDIgZGV2aWNlIGZvciB0aGUgQ0hUL0dQRCB3aW4gY2FzZS4gU3BlY2lmaWNhbGx5 IEkgdGhpbmsKPiB0aGlzIGZpdHMgd2VsbCBhcyBhIHByb3BlcnR5IG9mIHRoZSBkcCBhbHRtb2Rl LgoKT0ssIHlvdSBhcmUgY29ycmVjdC4gSSB3YXMgc3R1cGlkbHkgc3RpbGwgdGhpbmtpbmcgYWJv dXQgdGhlIGRyaXZlcgpsb2FkaW5nIG9yZGVyLCBidXQgdGhlIG9yZGVyIGRvZXMgbm90IG1hdHRl ci4KCj4gPiBUaGUgRFAgYWx0IG1vZGUgZHJpdmVyIHNob3VsZCBkZWZpbml0ZWx5IG5vdCBuZWVk IHRvIHBhc3MgYW55dGhpbmcKPiA+IGVsc2UgdG8gdGhlIG5vdGlmaWVyIG90aGVyIHRoYW4gaGFu ZGxlIHRvIGl0c2VsZiAoYWN0dWFsbHksIGhhbmRsZQo+ID4gc3RyYWlnaHQgdG8gdGhlIHBvcnQg ZGV2aWNlIHdvdWxkIGJlIGJldHRlcikgYXMgYW4gaWRlbnRpZmllci4gVGhlCj4gPiBub3RpZmll ciBmdW5jdGlvbiBuZWVkcyB0byBiZSB0aGUgb25lIHRoYXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFs Cj4gPiBjb25uZWN0aW9uIHVzaW5nIHRoYXQgaGFuZGxlLiBFdmVuIGlmIHRoZSB0YXJnZXQgRFAg aXMgZGVzY3JpYmVkIHVzaW5nCj4gPiBhIHN0cmluZyBsaWtlIHlvdSBwcm9wb3NlLCB0aGVuIHRo YXQgc3RyaW5nIGhhcyB0byBjb21lIGZyb20KPiA+IHNvbWV3aGVyZSwgbW9zdCBsaWtlbHkgZnJv bSBhIGRldmljZSBwcm9wZXJ0eS4gVGhlIG5vdGlmaWVyIGZ1bmN0aW9uCj4gPiBjYW4ganVzdCBh cyB3ZWxsIGV4dHJhY3QgaXQsIHdlIGRvbid0IG5lZWQgdG8gcGFzcyBpdCBzZXBhcmF0ZWx5Lgo+ ID4gCj4gPiBIZXJlJ3MgbXkgc3VnZ2VzdGlvbiBmb3IgZnVuY3Rpb24gcHJvdG90eXBlOgo+ID4g Cj4gPiBpbnQgZHJtX3R5cGVjX2RwX25vdGlmaWNhdGlvbihzdHJ1Y3QgZGV2aWNlICp0eXBlY19w b3J0X2RldiwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZWNf ZGlzcGxheXBvcnRfZGF0YSAqZGF0YSk7Cj4gCj4gSG93IGFib3V0IGluc3RlYWQgb2YgdGhlIHBv cnRfZGV2IHdlIHBhc3MgaW4gdGhlIGFsdG1vZGUgb2JqZWN0IGFuZAo+IHdlIGhhdmUgYSBtZXRo b2QgdG8gZ2V0IHRoZSBmd25vZGUgZm9yIHRoZSBhbHRtb2RlPyBUaGVuIHRoZQo+IGRybV90eXBl Y19kcF9ub3RpZmljYXRpb24oKSBmdW5jdGlvbiBjYW4gZ2V0IGluZm8gZnJvbSB0aGF0IGZ3bm9k ZQo+IHRvIGltcGxlbWVudCB0aGUgY29ubmVjdGlvbiBmaW5kaW5nIHlvdSBkZXNjcmliZSBiZWxv dzoKCldlIGNhbiBwYXNzIHRoZSBhbHRtb2RlIG9iamVjdCwgbnAsIGJ1dCBsZXQncyBub3QgZGVj aWRlIHdoaWNoIGZ3bm9kZQp3ZSdsbCB1bHRpbWF0ZWx5IHVzZS4gSSdtIHN0aWxsIGxlYW5pbmcg dG93YXJkcyB0aGUgY29ubmVjdG9yIG5vZGUuCgo+ID4gU28gdGhhdCBmdW5jdGlvbiBmaW5kcyB0 aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHR5cGVjX3BvcnRfZGV2IGFuZCB0aGUKPiA+IGNvcnJlY3Qg RFAgaW4gcnVudGltZSwgcG9zc2libHkgYnkgbGV0dGluZyBpOTE1IChvciB3aGF0IGV2ZXIgR1BV Cj4gPiBkcml2ZXIpIHRvIGRvIHRoYXQuIE9uY2UgdGhlIGZ1bmN0aW9uIGlzIGRvbmUsIGl0IGRl Y3JlbWVudHMgYW55IHJlZgo+ID4gY291bnRzIHRoYXQgaXQgaW5jcmVtZW50ZWQgYmVmb3JlIHJl dHVybmluZy4KPiA+IAo+ID4gVGhhdCBzdHJ1Y3QgdHlwZWNfZGlzcGxheXBvcnRfZGF0YSBoYXMg YWxsIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIC0KPiA+IHRoZSBjdXJyZW50IHBpbiBhc3NpZ25t ZW50IGZyb20gdGhlIENvbmZpZ3VyZSBWRE8sIEhQRCBJUlEgZnJvbSB0aGUKPiA+IGxhc3QgU3Rh dHVzIFVwZGF0ZSwgZXRjLiAtIHNvIGl0IG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBwYXlsb2FkIHRv IHRoZQo+ID4gbm90aWZpZXIuCj4gCj4gQWNrLgo+IAo+IFNvIEkgYmVsaWV2ZSB0aGF0IHRoaXMg ZGlzY3Vzc2lvbiB0aWVzIGludG8gdGhlIGRpc2N1c3Npb24gZnJvbSB0aGU6Cj4gIltQQVRDSCAw LzJdIHBsYXRmb3JtL3g4NjogaW50ZWxfY2h0X2ludDMzZmU6IFN0YXJ0IHVzaW5nIHNvZnR3YXJl IG5vZGVzIgo+IAo+IE1haWwgdGhyZWFkLiBBcyBkaXNjdXNzZWQgdGhlcmUgSSBhZ3JlZSB0aGF0 IGFkZGluZyBhIHVzYl9jb25uZWN0b3IKPiBjaGlsZCBmd25vZGUgdG8gdGhlIGZ3bm9kZSBmb3Ig dGhlIGZ1c2IzMDIgdG8gZGVzY3JpYmUgdGhpbmdzIGxpa2UKPiBzaW5rLSBhbmQgc291cmNlLXBk b3MgaXMgYSBnb29kIGlkZWEuCj4gCj4gT3VyIGxhc3QgZmV3IG1haWxzIHdlcmUgZGlzY3Vzc2lu ZyBkZXNjcmliaW5nIHN1cHBvcnRlZCBhbHQtbW9kZXMgb24KPiB0aGUgY29ubmVjdG9yIGJ5IGFk ZGluZyBhbHRtb2RlIGNoaWxkLW5vZGVzIHRvIHRoZSB1c2JfY29ubmVjdG9yIG5vZGUuCj4gCj4g SSB0aGluayBpdCBpcyBiZXN0IHRvIGNvbnRpbnVlIHRoYXQgZGlzY3Vzc2lvbiBoZXJlLCBhcyB0 aGUgMiBkaXNjdXNzaW9ucwo+IHRpZSBpbnRvIG9uZSBhbm90aGVyLgo+IAo+IFNvIG15IGxhc3Qg cHJvcG9zYWwgaW4gdGhhdCB0aHJlYWQgd2FzIGFkZGluZyB0aGUgZm9sbG93aW5nIHRvOgo+IAo+ IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jb25uZWN0b3IvdXNiLWNvbm5lY3Rv ci50eHQ6Cj4gCj4gIiIiCj4gT3B0aW9uYWxseSBhbiAidXNiLWMtY29ubmVjdG9yIiBjYW4gaGF2 ZSBjaGlsZCBub2RlcywgZGVzY3JpYmluZwo+IHN1cHBvcnRlZCBhbHQtbW9kZXMuCj4gCj4gUmVx dWlyZWQgcHJvcGVydGllcyBmb3IgdXNiLWMtY29ubmVjdG9yIGFsdG1vZGUgY2hpbGQtbm9kZXM6 Cj4gY29tcGF0aWJsZTogICAgICAgICJ1c2ItdHlwZS1jLWFsdG1vZGUiCj4gc3ZpZDogICAgICAg ICAgICAgIGludGVnZXIsIFN0YW5kYXJkIG9yIFZlbmRvciBJRCBmb3IgdGhlIGFsdG1vZGUgKHUx NiBzdG9yZWQgaW4gYW4gdTMyKSBwcm9wZXJ0eSBhbmQgYW4gdTMyCj4gdmRvOiAgICAgICAgICAg ICAgIGludGVnZXIsIFZlbmRvciBEYXRhIE9iamVjdCwgVkRPIGRlc2NyaWJpbmcgdGhlIGFsdG1v ZGUgY2FwYWJpbGllcywgU1ZJRCBzcGVjaWZpYwo+ICIiIgo+IAo+IFNpbmNlIHdlIG5vdyB3YW50 IHRvIGhhdmUgdGhlIGtlcm5lbCBrbm93IHdoaWNoIERQIGNvbm5lY3RvciBiZWxvbmdzIHRvCj4g dGhlIHVzYl9jb25uZWN0b3IgYmVpbmcgaW4gRFAgYWx0bW9kZSBJIHN1Z2dlc3QgYWRkaXRpb25h bGx5IGFkZGluZwo+IHRoZSBmb2xsb3dpbmc6Cj4gCj4gIiIiCj4gT3B0aW9uYWwgcHJvcGVydGll cyBmb3IgRGlzcGxheVBvcnQgKHN2aWQ9PTB4ZmYwMSkgYWx0bW9kZSBjaGlsZC1ub2Rlcy4KPiAK PiBsaW51eCxkcC1jb25uZWN0b3IgU3RyaW5nIGluIHRoZSBmb3JtIG9mICJkZXZpY2UtbmFtZS9j b25uZWN0b3ItbmFtZSIgZGVzY3JpYmluZyB0aGUKPiAgICAgICAgICAgICAgICAgICAgRGlzcGxh eVBvcnQgY29ubmVjdG9yIG9uIHRoZSBHUFUgd2hpY2ggaXMgdXNlZCB3aGVuIHRoZSB1c2ItYy1j b25uZWN0b3IKPiAgICAgICAgICAgICAgICAgICAgaXMgaW4gRGlzcGxheVBvcnQgYWx0bW9kZSwg ZS5nLiAiMDAwMDowMDowMi4wL0RQLTEiCj4gIiIiCj4gCj4gVGhpcyB0byBtZSBmZWVscyBsaWtl IGl0IGlzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RvcmUgdGhlIGNvbm5lY3Rpb24gaW5m bywKPiBhdCBsZWFzdCBmb3IgdGhlIENIVC9HUEQgd2luIGNhc2UuICBGb3Igb3RoZXIgY2FzZXMg d2UgbWF5IHZlcnktd2VsbCBuZWVkIHNvbWV0aGluZwo+IGRpZmZlcmVudC4gU2luY2Ugb24gdGhl IENIVC9HUEQgd2luIGNhc2UgYm90aCB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIG9mIHRoaXMK PiBwcm9wZXJ0eSB3aWxsIGJlIGluIGtlcm5lbCwgSSB0aGluayBpdCBpcyBiZXN0IHRvIGp1c3Qg Z28gd2l0aCB0aGlzIGZvciBub3cuCj4gSWYgd2UgdGhlbiBsYXRlciBnZXQgYSBkaWZmZXJlbnQg c29sdXRpb24gZm9yIG90aGVyIGNhc2VzIGFuZCB0aGF0IHNvbHV0aW9uIHR1cm5zCj4gb3V0IHRv IGJlIGdlbmVyaWMgZW5vdWdoIHRoYXQgaXQgd2lsbCBhbHNvIHdvcmsgb24gdGhlIEdQRCB3aW4g d2UgY2FuIGFsd2F5cyBtb3ZlCj4gdGhlIEdQRCB3aW4gKGFuZCBwb2NrZXQpIG92ZXIgdG8gdGhl IG5ldyBzb2x1dGlvbi4gSnVzdCBsaWtlIHdlIGFyZSBtb3ZpbmcgaXQKPiBvdmVyIHRvIHRoZSB1 c2JfY29ubmVjdG9yIGZ3bm9kZSBub3cuCgpJIGRvbid0IGhhdmUgYSBwcm9ibGVtIHdpdGggeW91 ciBwcm9wb3NhbCBvZiB1c2luZyBhIHN0cmluZyBsaWtlIHRoYXQKYXQgdGhpcyBwb2ludCwgYnV0 IGRvbid0IGRvY3VtZW50IGl0LiBJIHdhbnQgdG8gYXQgbGVhc3Qgc2VlIGlmIGl0J3MKcG9zc2li bGUgdG8gdXNlIHJlYWwgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBzdHJpbmcuIEknbSBhbHNvIHN0 aWxsCm5vdCBzdXJlIHNob3VsZCB0aGF0IGJlIHBsYWNlZCB1bmRlciB0aGUgYWx0bW9kZSBub2Rl IG9yIHNob3VsZCBnbwp1bmRlciB0aGUgY29ubmVjdG9yIG5vZGUuCgpTbyBwbGVhc2UgZG9uJ3Qg YWRkIGl0IHRvIHRoZSB1c2ItY29ubmVjdG9yLnR4dCBhdCB0aGlzIHBvaW50LCBldmVuIGFzCmFu IG9wdGlvbmFsIHByb3BlcnR5LgoKCnRoYW5rcywKCi0tIApoZWlra2kKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4