From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH 0/3] Propagate DP-over-Type-C hotplug events from Type-C subsys to drm-drivers Date: Tue, 5 Mar 2019 08:45:29 +0100 Message-ID: <8c2bfdf8-6d2e-f369-ede1-f9b499e2868d@redhat.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> <20190304151704.GA8238@kuha.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id A817589EBB for ; Tue, 5 Mar 2019 07:45:32 +0000 (UTC) Received: by mail-ed1-f67.google.com with SMTP id x7so6385717eds.8 for ; Mon, 04 Mar 2019 23:45:32 -0800 (PST) In-Reply-To: <20190304151704.GA8238@kuha.fi.intel.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: Heikki Krogerus Cc: linux-usb@vger.kernel.org, Maxime Ripard , Greg Kroah-Hartman , intel-gfx , David Airlie , Sean Paul , dri-devel@lists.freedesktop.org, Rodrigo Vivi , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAwNC0wMy0xOSAxNjoxNywgSGVpa2tpIEtyb2dlcnVzIHdyb3RlOgo+IEhpIEhhbnMs Cj4gCj4gT24gVGh1LCBGZWIgMjgsIDIwMTkgYXQgMDU6NTQ6MjFQTSArMDEwMCwgSGFucyBkZSBH b2VkZSB3cm90ZToKPj4gSGkgSGVpa2tpLAo+Pgo+PiBPbiAyOC0wMi0xOSAxNTo0NywgSGVpa2tp IEtyb2dlcnVzIHdyb3RlOgo+Pj4gSGkgSGFucywKPj4+Cj4+PiBPbiBUaHUsIEZlYiAyOCwgMjAx OSBhdCAxMjoyNDoyNVBNICswMTAwLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+Pj4+IEhpLAo+Pj4+ Cj4+Pj4gT24gMjgtMDItMTkgMTA6MTUsIEhlaWtraSBLcm9nZXJ1cyB3cm90ZToKPj4KPj4gPHNu aXA+Cj4+Cj4+Pj4+IEkndmUgYmVlbiB0aGlua2luZyBhYm91dCB0aGlzLi4uIERvIHdlIGFjdHVh bGx5IG5lZWQgdG8gbGluayB0aGUKPj4+Pj4gY29ycmVjdCBkcm1fY29ubmVjdG9yIHRvIHRoZSBU eXBlLUMgY29ubmVjdG9yPyBQZXJoYXBzIHdlIGNhbiBtYWtlCj4+Pj4+IHRoaXMgd29yayBieSBq dXN0IGxpbmtpbmcgdGhlIEdGWCBkZXZpY2UgdG8gdGhlIFR5cGUtQyBjb25uZWN0b3IuCj4+Pj4K Pj4+PiBXaGF0IHVzZSBpcyBpdCB0byB0aGUga21zIGRyaXZlciBpZiBpdCBnZXRzIGFuIGV2ZW50 IHRoZXJlIGlzIGEgRFAKPj4+PiBob3RwbHVnIHdpdGggeCBsYW5lcyBhbmQgb3JpZW50YXRpb24g Zm9vLCBpZiB3ZSBhcmUgbm90IHRlbGxpbmcgaXQKPj4+PiBvbiB3aGljaCBEUCBwb3J0IGl0IGlz ID8ga21zIGRldmljZXMgYWxyZWFkeSBoYXZlIG11bHRpcGxlIERQIHBvcnRzCj4+Pj4gYW5kIG1v cmUgdGhlbiBvbmUgY291bGQgYmUgaG9va2VkLXVwIHRvIHR5cGUtYyBjb25uZWN0b3JzLgo+Pj4K Pj4+IEkgd2FzIGxvb2tpbmcgYXQgdGhpcyBzZXJpZXMuIFlvdSB3YWxrIHRyb3VnaCBldmVyeSBE UCBwb3J0IGluIHRoZQo+Pj4gc3lzdGVtIHdoZW4gdGhlIERQIGFsdCBtb2RlIGRyaXZlciBicm9h ZGNhc3RzIHRoZSBldmVudCwgYnV0IG1heWJlCj4+PiB0aGF0J3MgZGlmZmVyZW50LiBOZXZlciBt aW5kLgo+Pgo+PiBSaWdodCwgbXkgInNpbXBsZSAvIG5haXZlIiBzb2x1dGlvbiBzaW1wbHkgdGVs bHMgdGhlIGttcyBkcml2ZXIgdG8KPj4gY2hlY2sgYWxsIERQIHBvcnRzIGZvciBjb25uZWN0aW9u IHN0YXRlIGNoYW5nZXMsIHNpbWlsYXIgdG8gaG93Cj4+IHJ1bm5pbmcgInhyYW5kciIgdW5kZXIg WG9yZyBjYXVzZXMgdGhlIGttcyBkcml2ZXIgdG8gcmUtY2hlY2sgdGhlCj4+IGNvbm5lY3Rpb24g c3RhdHVzIG9mIGFsbCBwb3J0cy4gQWN0dWFsbHkgcnVubmluZyB4cmFuZHIgdW5kZXIgWG9yZwo+ PiBhZnRlciBwbHVnZ2luZyBpbiB0aGUgY2FibGUsIGlzIGhvdyBJIGRpZCBteSBpbml0aWFsIERQ IG92ZXIgVHlwZS1DCj4+IHRlc3Rpbmcgb24gdGhlIEdQRCB3aW4uCj4+Cj4+IEJ1dCBvbmNlIHdl IHN0YXJ0IHBhc3NpbmcgZXh0cmEtaW5mbywgSSBiZWxpZXZlIHRoZSBrbXMgZHJpdmVyIG5lZWRz Cj4+IHRvIGtub3cgdG8gd2hpY2ggY29ubmVjdG9yIHRoYXQgaW5mbyBiZWxvbmdzLgo+Pgo+PiA8 c25pcD4KPj4KPj4+Pj4gV2VsbCwgSSBkb24ndCB0aGluayB3ZSBjYW4gZGVueSB0aGUgR1BVIGRy aXZlciAoaW4gdGhpcyBjYXNlKSB0aGUKPj4+Pj4gaW5mb3JtYXRpb24gdGhhdCB3ZSBoYXZlIGFu ZCB0aGF0IGlzIHJlbGV2YW50IHRvIGl0LCBqdXN0IGJlY2F1c2UgaXQKPj4+Pj4gc2VlbXMgZGlm ZmljdWx0IHRvIGRlbGl2ZXIgdGhhdCBpbmZvcm1hdGlvbiB0byB0aGUgcmlnaHQgbG9jYXRpb24u Cj4+Pj4KPj4+PiBSaWdodCwgYnV0IHRoaXMgZG9lcyBub3QgcmVxdWlyZSBhIHRpZ2h0LWNvdXBs aW5nLiBNeSBvcmlnaW5hbAo+Pj4+IHByb3Bvc2FsIGNhbiBkbyB0aGlzIGlmIHdlIHBhc3MgYSBk YXRhIHN0cnVjdCB3aXRoIGFuIGlkZW50aWZpZXIKPj4+PiBmb3IgdGhlIERQIHBvcnQgZm9yIHdo aWNoIHRoZSBldmVudCBpcyB0byB0aGUgbm90aWZpZXIuIEkgc3VnZ2VzdCB1c2luZwo+Pj4+IGEg c3RyaW5nIGZvciBpZGVudGlmaWVyLCBzb21ldGhpbmcgbGlrZTogIjAwMDA6MDA6MDIuMC9EUC0x IiB0aGlzCj4+Pj4gZXZlbnQgc3RydWN0IGNvdWxkIHRoZW4gYWxzbyBjb250YWluIGFsbCB0aGUg aW5mbyB3ZSB3YW50IHRvIHBhc3MuCj4+Pgo+Pj4gSSBkbyBhZ3JlZSB0aGF0IHdlIHNob3VsZCBu b3QgdGllIHRoZSBvYmplY3RzIChkZXZpY2UgZW50cmllcykKPj4+IHJlcHJlc2VudGluZyB0aGVz ZSBjb21wb25lbnRzIGluIGtlcm5lbCB0b2dldGhlciwgYnV0IEkgYXNzdW1lIHRoYXQgd2UKPj4+ IGFncmVlIG5vdyB0aGF0IHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlIHR3byAtIHRoZSBVU0Ig VHlwZS1DCj4+PiBjb25uZWN0b3IgYW5kIHRoZSBEaXNwbGF5UG9ydCAtIG11c3QgYmUgZGVzY3Jp YmVkIHNvbWV3aGVyZSwgZWl0aGVyIGluCj4+PiBmaXJtd2FyZSBvciBidWlsZC1pbj8gU28gSSBn dWVzcyB3ZSBhcmUgdGFsa2luZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzCj4+PiBoZXJlLCByaWdo dD8KPj4KPj4gUmlnaHQuCj4+Cj4+PiBJZiB0aGF0IGlzIHRoZSBjYXNlLi4uCj4+Pgo+Pj4gVGhh dCBzdHJpbmcgaWRlbnRpZmllciB5b3UgcHJvcG9zZWQgd291bGQgYmFzaWNhbGx5IHByb3ZpZGUg dGhlCj4+PiBkZXRhaWxzIGFib3V0IHRoZSBjb25uZWN0aW9uLCBzbyBpZiB3ZSBrbm93IHRob3Nl IGRldGFpbHMsIHdlIG1pZ2h0IGFzCj4+PiB3ZWxsIHVzZSAibm9ybWFsIiB3YXlzIHRvIGRlc2Ny aWJlIHRoZSBjb25uZWN0aW9uIGFuZCBqdXN0IGV4dHJhY3QKPj4+IHRoZW0gaW4gcnVudGltZSBp biB0aGUgZnVuY3Rpb24gdGhhdCBvdXIgRFAgYWx0IG1vZGUgZHJpdmVyIGNhbGxzLiBJCj4+PiB0 aGluayB0aGUgY29ubmVjdGlvbiBoYXMgdG8gYmUgZGVmaW5lZCBpbiBpOTE1IG9uIENIVCBpbiBh bnkgY2FzZS4KPj4KPj4gSW50ZXJlc3RpbmcsIEkgdGhpbmsgdGhlIGNvbm5lY3Rpb24gc2hvdWxk IGJlIGRlc2NyaWJlZCBpbiB0aGUgZndub2RlCj4+IGZvciB0aGUgZnVzYjMwMiBkZXZpY2UgZm9y IHRoZSBDSFQvR1BEIHdpbiBjYXNlLiBTcGVjaWZpY2FsbHkgSSB0aGluawo+PiB0aGlzIGZpdHMg d2VsbCBhcyBhIHByb3BlcnR5IG9mIHRoZSBkcCBhbHRtb2RlLgo+IAo+IE9LLCB5b3UgYXJlIGNv cnJlY3QuIEkgd2FzIHN0dXBpZGx5IHN0aWxsIHRoaW5raW5nIGFib3V0IHRoZSBkcml2ZXIKPiBs b2FkaW5nIG9yZGVyLCBidXQgdGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlci4KPiAKPj4+IFRoZSBE UCBhbHQgbW9kZSBkcml2ZXIgc2hvdWxkIGRlZmluaXRlbHkgbm90IG5lZWQgdG8gcGFzcyBhbnl0 aGluZwo+Pj4gZWxzZSB0byB0aGUgbm90aWZpZXIgb3RoZXIgdGhhbiBoYW5kbGUgdG8gaXRzZWxm IChhY3R1YWxseSwgaGFuZGxlCj4+PiBzdHJhaWdodCB0byB0aGUgcG9ydCBkZXZpY2Ugd291bGQg YmUgYmV0dGVyKSBhcyBhbiBpZGVudGlmaWVyLiBUaGUKPj4+IG5vdGlmaWVyIGZ1bmN0aW9uIG5l ZWRzIHRvIGJlIHRoZSBvbmUgdGhhdCBkZXRlcm1pbmVzIHRoZSBhY3R1YWwKPj4+IGNvbm5lY3Rp b24gdXNpbmcgdGhhdCBoYW5kbGUuIEV2ZW4gaWYgdGhlIHRhcmdldCBEUCBpcyBkZXNjcmliZWQg dXNpbmcKPj4+IGEgc3RyaW5nIGxpa2UgeW91IHByb3Bvc2UsIHRoZW4gdGhhdCBzdHJpbmcgaGFz IHRvIGNvbWUgZnJvbQo+Pj4gc29tZXdoZXJlLCBtb3N0IGxpa2VseSBmcm9tIGEgZGV2aWNlIHBy b3BlcnR5LiBUaGUgbm90aWZpZXIgZnVuY3Rpb24KPj4+IGNhbiBqdXN0IGFzIHdlbGwgZXh0cmFj dCBpdCwgd2UgZG9uJ3QgbmVlZCB0byBwYXNzIGl0IHNlcGFyYXRlbHkuCj4+Pgo+Pj4gSGVyZSdz IG15IHN1Z2dlc3Rpb24gZm9yIGZ1bmN0aW9uIHByb3RvdHlwZToKPj4+Cj4+PiBpbnQgZHJtX3R5 cGVjX2RwX25vdGlmaWNhdGlvbihzdHJ1Y3QgZGV2aWNlICp0eXBlY19wb3J0X2RldiwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGVjX2Rpc3BsYXlwb3J0X2Rh dGEgKmRhdGEpOwo+Pgo+PiBIb3cgYWJvdXQgaW5zdGVhZCBvZiB0aGUgcG9ydF9kZXYgd2UgcGFz cyBpbiB0aGUgYWx0bW9kZSBvYmplY3QgYW5kCj4+IHdlIGhhdmUgYSBtZXRob2QgdG8gZ2V0IHRo ZSBmd25vZGUgZm9yIHRoZSBhbHRtb2RlPyBUaGVuIHRoZQo+PiBkcm1fdHlwZWNfZHBfbm90aWZp Y2F0aW9uKCkgZnVuY3Rpb24gY2FuIGdldCBpbmZvIGZyb20gdGhhdCBmd25vZGUKPj4gdG8gaW1w bGVtZW50IHRoZSBjb25uZWN0aW9uIGZpbmRpbmcgeW91IGRlc2NyaWJlIGJlbG93Ogo+IAo+IFdl IGNhbiBwYXNzIHRoZSBhbHRtb2RlIG9iamVjdCwgbnAsIGJ1dCBsZXQncyBub3QgZGVjaWRlIHdo aWNoIGZ3bm9kZQo+IHdlJ2xsIHVsdGltYXRlbHkgdXNlLiBJJ20gc3RpbGwgbGVhbmluZyB0b3dh cmRzIHRoZSBjb25uZWN0b3Igbm9kZS4KPiAKPj4+IFNvIHRoYXQgZnVuY3Rpb24gZmluZHMgdGhl IGNvbm5lY3Rpb24gYmV0d2VlbiB0eXBlY19wb3J0X2RldiBhbmQgdGhlCj4+PiBjb3JyZWN0IERQ IGluIHJ1bnRpbWUsIHBvc3NpYmx5IGJ5IGxldHRpbmcgaTkxNSAob3Igd2hhdCBldmVyIEdQVQo+ Pj4gZHJpdmVyKSB0byBkbyB0aGF0LiBPbmNlIHRoZSBmdW5jdGlvbiBpcyBkb25lLCBpdCBkZWNy ZW1lbnRzIGFueSByZWYKPj4+IGNvdW50cyB0aGF0IGl0IGluY3JlbWVudGVkIGJlZm9yZSByZXR1 cm5pbmcuCj4+Pgo+Pj4gVGhhdCBzdHJ1Y3QgdHlwZWNfZGlzcGxheXBvcnRfZGF0YSBoYXMgYWxs IHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIC0KPj4+IHRoZSBjdXJyZW50IHBpbiBhc3NpZ25tZW50 IGZyb20gdGhlIENvbmZpZ3VyZSBWRE8sIEhQRCBJUlEgZnJvbSB0aGUKPj4+IGxhc3QgU3RhdHVz IFVwZGF0ZSwgZXRjLiAtIHNvIGl0IG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBwYXlsb2FkIHRvIHRo ZQo+Pj4gbm90aWZpZXIuCj4+Cj4+IEFjay4KPj4KPj4gU28gSSBiZWxpZXZlIHRoYXQgdGhpcyBk aXNjdXNzaW9uIHRpZXMgaW50byB0aGUgZGlzY3Vzc2lvbiBmcm9tIHRoZToKPj4gIltQQVRDSCAw LzJdIHBsYXRmb3JtL3g4NjogaW50ZWxfY2h0X2ludDMzZmU6IFN0YXJ0IHVzaW5nIHNvZnR3YXJl IG5vZGVzIgo+Pgo+PiBNYWlsIHRocmVhZC4gQXMgZGlzY3Vzc2VkIHRoZXJlIEkgYWdyZWUgdGhh dCBhZGRpbmcgYSB1c2JfY29ubmVjdG9yCj4+IGNoaWxkIGZ3bm9kZSB0byB0aGUgZndub2RlIGZv ciB0aGUgZnVzYjMwMiB0byBkZXNjcmliZSB0aGluZ3MgbGlrZQo+PiBzaW5rLSBhbmQgc291cmNl LXBkb3MgaXMgYSBnb29kIGlkZWEuCj4+Cj4+IE91ciBsYXN0IGZldyBtYWlscyB3ZXJlIGRpc2N1 c3NpbmcgZGVzY3JpYmluZyBzdXBwb3J0ZWQgYWx0LW1vZGVzIG9uCj4+IHRoZSBjb25uZWN0b3Ig YnkgYWRkaW5nIGFsdG1vZGUgY2hpbGQtbm9kZXMgdG8gdGhlIHVzYl9jb25uZWN0b3Igbm9kZS4K Pj4KPj4gSSB0aGluayBpdCBpcyBiZXN0IHRvIGNvbnRpbnVlIHRoYXQgZGlzY3Vzc2lvbiBoZXJl LCBhcyB0aGUgMiBkaXNjdXNzaW9ucwo+PiB0aWUgaW50byBvbmUgYW5vdGhlci4KPj4KPj4gU28g bXkgbGFzdCBwcm9wb3NhbCBpbiB0aGF0IHRocmVhZCB3YXMgYWRkaW5nIHRoZSBmb2xsb3dpbmcg dG86Cj4+Cj4+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jb25uZWN0b3IvdXNi LWNvbm5lY3Rvci50eHQ6Cj4+Cj4+ICIiIgo+PiBPcHRpb25hbGx5IGFuICJ1c2ItYy1jb25uZWN0 b3IiIGNhbiBoYXZlIGNoaWxkIG5vZGVzLCBkZXNjcmliaW5nCj4+IHN1cHBvcnRlZCBhbHQtbW9k ZXMuCj4+Cj4+IFJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHVzYi1jLWNvbm5lY3RvciBhbHRtb2Rl IGNoaWxkLW5vZGVzOgo+PiBjb21wYXRpYmxlOiAgICAgICAgInVzYi10eXBlLWMtYWx0bW9kZSIK Pj4gc3ZpZDogICAgICAgICAgICAgIGludGVnZXIsIFN0YW5kYXJkIG9yIFZlbmRvciBJRCBmb3Ig dGhlIGFsdG1vZGUgKHUxNiBzdG9yZWQgaW4gYW4gdTMyKSBwcm9wZXJ0eSBhbmQgYW4gdTMyCj4+ IHZkbzogICAgICAgICAgICAgICBpbnRlZ2VyLCBWZW5kb3IgRGF0YSBPYmplY3QsIFZETyBkZXNj cmliaW5nIHRoZSBhbHRtb2RlIGNhcGFiaWxpZXMsIFNWSUQgc3BlY2lmaWMKPj4gIiIiCj4+Cj4+ IFNpbmNlIHdlIG5vdyB3YW50IHRvIGhhdmUgdGhlIGtlcm5lbCBrbm93IHdoaWNoIERQIGNvbm5l Y3RvciBiZWxvbmdzIHRvCj4+IHRoZSB1c2JfY29ubmVjdG9yIGJlaW5nIGluIERQIGFsdG1vZGUg SSBzdWdnZXN0IGFkZGl0aW9uYWxseSBhZGRpbmcKPj4gdGhlIGZvbGxvd2luZzoKPj4KPj4gIiIi Cj4+IE9wdGlvbmFsIHByb3BlcnRpZXMgZm9yIERpc3BsYXlQb3J0IChzdmlkPT0weGZmMDEpIGFs dG1vZGUgY2hpbGQtbm9kZXMuCj4+Cj4+IGxpbnV4LGRwLWNvbm5lY3RvciBTdHJpbmcgaW4gdGhl IGZvcm0gb2YgImRldmljZS1uYW1lL2Nvbm5lY3Rvci1uYW1lIiBkZXNjcmliaW5nIHRoZQo+PiAg ICAgICAgICAgICAgICAgICAgIERpc3BsYXlQb3J0IGNvbm5lY3RvciBvbiB0aGUgR1BVIHdoaWNo IGlzIHVzZWQgd2hlbiB0aGUgdXNiLWMtY29ubmVjdG9yCj4+ICAgICAgICAgICAgICAgICAgICAg aXMgaW4gRGlzcGxheVBvcnQgYWx0bW9kZSwgZS5nLiAiMDAwMDowMDowMi4wL0RQLTEiCj4+ICIi Igo+Pgo+PiBUaGlzIHRvIG1lIGZlZWxzIGxpa2UgaXQgaXMgdGhlIG1vc3QgbG9naWNhbCBwbGFj ZSB0byBzdG9yZSB0aGUgY29ubmVjdGlvbiBpbmZvLAo+PiBhdCBsZWFzdCBmb3IgdGhlIENIVC9H UEQgd2luIGNhc2UuICBGb3Igb3RoZXIgY2FzZXMgd2UgbWF5IHZlcnktd2VsbCBuZWVkIHNvbWV0 aGluZwo+PiBkaWZmZXJlbnQuIFNpbmNlIG9uIHRoZSBDSFQvR1BEIHdpbiBjYXNlIGJvdGggdGhl IHByb2R1Y2VyIGFuZCBjb25zdW1lciBvZiB0aGlzCj4+IHByb3BlcnR5IHdpbGwgYmUgaW4ga2Vy bmVsLCBJIHRoaW5rIGl0IGlzIGJlc3QgdG8ganVzdCBnbyB3aXRoIHRoaXMgZm9yIG5vdy4KPj4g SWYgd2UgdGhlbiBsYXRlciBnZXQgYSBkaWZmZXJlbnQgc29sdXRpb24gZm9yIG90aGVyIGNhc2Vz IGFuZCB0aGF0IHNvbHV0aW9uIHR1cm5zCj4+IG91dCB0byBiZSBnZW5lcmljIGVub3VnaCB0aGF0 IGl0IHdpbGwgYWxzbyB3b3JrIG9uIHRoZSBHUEQgd2luIHdlIGNhbiBhbHdheXMgbW92ZQo+PiB0 aGUgR1BEIHdpbiAoYW5kIHBvY2tldCkgb3ZlciB0byB0aGUgbmV3IHNvbHV0aW9uLiBKdXN0IGxp a2Ugd2UgYXJlIG1vdmluZyBpdAo+PiBvdmVyIHRvIHRoZSB1c2JfY29ubmVjdG9yIGZ3bm9kZSBu b3cuCj4gCj4gSSBkb24ndCBoYXZlIGEgcHJvYmxlbSB3aXRoIHlvdXIgcHJvcG9zYWwgb2YgdXNp bmcgYSBzdHJpbmcgbGlrZSB0aGF0Cj4gYXQgdGhpcyBwb2ludCwgYnV0IGRvbid0IGRvY3VtZW50 IGl0LiBJIHdhbnQgdG8gYXQgbGVhc3Qgc2VlIGlmIGl0J3MKPiBwb3NzaWJsZSB0byB1c2UgcmVh bCByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHN0cmluZy4gSSdtIGFsc28gc3RpbGwKPiBub3Qgc3Vy ZSBzaG91bGQgdGhhdCBiZSBwbGFjZWQgdW5kZXIgdGhlIGFsdG1vZGUgbm9kZSBvciBzaG91bGQg Z28KPiB1bmRlciB0aGUgY29ubmVjdG9yIG5vZGUuCj4gCj4gU28gcGxlYXNlIGRvbid0IGFkZCBp dCB0byB0aGUgdXNiLWNvbm5lY3Rvci50eHQgYXQgdGhpcyBwb2ludCwgZXZlbiBhcwo+IGFuIG9w dGlvbmFsIHByb3BlcnR5LgoKT2ssIEkgd2lsbCBnaXZlIHRoZSBkaXNjdXNzZWQgYXBwcm9hY2gg YSB0cnkgYW5kIHRoZW4gcG9zdCBhIG5ldyB2ZXJzaW9uIG9mCnRoZSBwYXRjaHNldC4gSSBob3Bl IHRvIGdldCBhcm91bmQgdG8gdGhpcyB0aGlzIHdlZWtlbmQgKGFzIHlvdSBrbm93IHRoaXMgaXMg YSBzaWRlIC8Kc3BhcmUtdGltZSBwcm9qZWN0IGZvciBtZSkuCgpSZWdhcmRzLAoKSGFucwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=