From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v7 09/11] drm: uevent for connector status change Date: Wed, 15 May 2019 09:48:57 +0200 Message-ID: <20190515074857.GZ17751@phenom.ffwll.local> References: <20190507162745.25600-10-ramalingam.c@intel.com> <31dad9a323382628911c5301a6eec179855aa815.camel@bootlin.com> <8aa3980a6948b9b2b989c237f8453ca54e72ad95.camel@bootlin.com> <47a92b839dce94a7706c20b9aec03bc99539b46b.camel@bootlin.com> <71c180817caf7be0199e57bb515d038b9e0d39b4.camel@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <71c180817caf7be0199e57bb515d038b9e0d39b4.camel@bootlin.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Paul Kocialkowski Cc: David Airlie , Maxime Ripard , Daniel Vetter , intel-gfx , dri-devel , Gwan-gyeong Mun , "Ser, Simon" , Thomas Petazzoni , Daniel Vetter , Sean Paul List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXkgMTUsIDIwMTkgYXQgMDk6NDM6MjRBTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gSGksCj4gCj4gT24gVHVlLCAyMDE5LTA1LTE0IGF0IDE2OjI4ICswMjAwLCBE YW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gT24gVHVlLCBNYXkgMTQsIDIwMTkgYXQgNDoxMyBQTSBQ YXVsIEtvY2lhbGtvd3NraQo+ID4gPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPiB3cm90 ZToKPiA+ID4gSGksCj4gPiA+IAo+ID4gPiBPbiBUdWUsIDIwMTktMDUtMTQgYXQgMTM6MDkgKzAy MDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gT24gTW9uLCBNYXkgMTMsIDIwMTkgYXQg NzoxNCBQTSBQYXVsIEtvY2lhbGtvd3NraQo+ID4gPiA+IDxwYXVsLmtvY2lhbGtvd3NraUBib290 bGluLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiBIZXksCj4gPiA+ID4gPiAKPiA+ID4gPiA+IExlIGx1 bmRpIDEzIG1haSAyMDE5IMOgIDExOjM0ICswMjAwLCBEYW5pZWwgVmV0dGVyIGEgw6ljcml0IDoK PiA+ID4gPiA+ID4gT24gTW9uLCBNYXkgMTMsIDIwMTkgYXQgMTE6MDIgQU0gUGF1bCBLb2NpYWxr b3dza2kKPiA+ID4gPiA+ID4gPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPiB3cm90ZToK PiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBPbiBGcmksIDIw MTktMDUtMTAgYXQgMTY6NTQgKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ ID4gPiBPbiBGcmksIE1heSAxMCwgMjAxOSBhdCAyOjEyIFBNIFBhdWwgS29jaWFsa293c2tpCj4g PiA+ID4gPiA+ID4gPiA8cGF1bC5rb2NpYWxrb3dza2lAYm9vdGxpbi5jb20+IHdyb3RlOgo+ID4g PiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IE9u IFR1ZSwgMjAxOS0wNS0wNyBhdCAyMTo1NyArMDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+ID4g PiA+ID4gPiA+ID4gPiA+IERSTSBBUEkgZm9yIGdlbmVyYXRpbmcgdWV2ZW50IGZvciBhIHN0YXR1 cyBjaGFuZ2VzIG9mIGNvbm5lY3RvcidzCj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvcGVydHkuCj4g PiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyB1ZXZlbnQgd2lsbCBo YXZlIGZvbGxvd2luZyBkZXRhaWxzIHJlbGF0ZWQgdG8gdGhlIHN0YXR1cyBjaGFuZ2U6Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBIT1RQTFVHPTEsIENPTk5FQ1RP Uj08Y29ubmVjdG9yX2lkPiBhbmQgUFJPUEVSVFk9PHByb3BlcnR5X2lkPgo+ID4gPiA+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IE5lZWQgQUNLIGZyb20gdGhpcyB1ZXZlbnQgZnJv bSB1c2Vyc3BhY2UgY29uc3VtZXIuCj4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4g PiBTbyB3ZSBqdXN0IGhhZCBzb21lIGRpc2N1c3Npb25zIG92ZXIgb24gSVJDIGFuZCBhdCBhYm91 dCB0aGUgaG90cGx1Zwo+ID4gPiA+ID4gPiA+ID4gPiBpc3N1ZSBhbmQgY2FtZSB1cCB3aXRoIHNp bWlsYXIgaWRlYXM6Cj4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LU1heS8yMTc0MDguaHRtbAo+ID4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGNvbmNsdXNpb25zIG9mIHRoZXNlIGRpc2N1c3Np b25zIHNvIGZhciB3b3VsZCBiZSB0byBoYXZlIGEgbW9yZSBvcgo+ID4gPiA+ID4gPiA+ID4gPiBs ZXNzIGZpbmUgZ3JhaW4gb2YgdWV2ZW50IHJlcG9ydGluZyBkZXBlbmRpbmcgb24gd2hhdCBoYXBw ZW5lZC4gVGhlCj4gPiA+ID4gPiA+ID4gPiA+IHBvaW50IGlzIHRoYXQgd2UgbmVlZCB0byBjb3Zl ciBkaWZmZXJlbnQgY2FzZXM6Cj4gPiA+ID4gPiA+ID4gPiA+IC0gb25lIG9yIG1vcmUgcHJvcGVy dGllcyBjaGFuZ2VkOwo+ID4gPiA+ID4gPiA+ID4gPiAtIHRoZSBjb25uZWN0b3Igc3RhdHVzIGNo YW5nZWQ7Cj4gPiA+ID4gPiA+ID4gPiA+IC0gc29tZXRoaW5nIGVsc2UgYWJvdXQgdGhlIGNvbm5l Y3RvciBjaGFuZ2VkIChlLmcuIEVESUQvbW9kZXMpCj4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ID4gPiBGb3IgdGhlIGZpcnN0IGNhc2UsIHdlIGNhbiBzZW5kIG91dDoKPiA+ID4gPiA+ ID4gPiA+ID4gSE9UUExVRz0xCj4gPiA+ID4gPiA+ID4gPiA+IENPTk5FQ1RPUj08aWQ+Cj4gPiA+ ID4gPiA+ID4gPiA+IFBST1BFUlRZPTxpZD4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ ID4gPiA+IGFuZCBubyByZXByb2JlIGlzIHJlcXVpcmVkLgo+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+ID4gRm9yIHRoZSBzZWNvbmQgb25lLCBzb21ldGhpbmcgbGlrZToKPiA+ID4g PiA+ID4gPiA+ID4gSE9UUExVRz0xCj4gPiA+ID4gPiA+ID4gPiA+IENPTk5FQ1RPUj08aWQ+Cj4g PiA+ID4gPiA+ID4gPiA+IFNUQVRVUz1Db25uZWN0ZWQvRGlzY29ubmVjdGVkCj4gPiA+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiBhbmQgYSBjb25uZWN0b3IgcHJvYmUgaXMgbmVlZGVk IGZvciBjb25uZWN0ZWQsIGJ1dCBub3QgZm9yCj4gPiA+ID4gPiA+ID4gPiA+IGRpc2Nvbm5lY3Rl ZDsKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IEZvciB0aGUgdGhpcmQgb25l LCB3ZSBjYW4gb25seSBpbmRpY2F0ZSB0aGUgY29ubmVjdG9yOgo+ID4gPiA+ID4gPiA+ID4gPiBI T1RQTFVHPTEKPiA+ID4gPiA+ID4gPiA+ID4gQ09OTkVDVE9SPTxpZD4KPiA+ID4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCBhIHJlcHJvYmUgb2YgdGhlIGNvbm5lY3RvciBpcyBh bHdheXMgbmVlZGVkCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IFRoZXJlJ3Mgbm8g bWF0ZXJpYWwgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgb25lIGFuZCB0aGUgcHJldmlvdXMgb25l Lgo+ID4gPiA+ID4gPiA+ID4gUGx1cyB0aGVyZSdzIG5vIGJlZW5maXQgaW4gc3VwcGx5aW5nIHRo ZSBhY3R1YWwgdmFsdWUgb2YgdGhlIHByb3BlcnR5LAo+ID4gPiA+ID4gPiA+ID4gaS5lLiB3ZSBj YW4gcmV1c2UgdGhlIHNhbWUgUFJPUEVSVFk9PGlkLW9mLXN0YXR1cy1wcm9wZXJ0eT4gdHJpY2su Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gVGhhdCdzIHRoZSBpZGVhLCBidXQgd2UgbmVl ZCB0byBoYW5kbGUgc3RhdHVzIGNoYW5nZXMgZGlmZmVyZW50bHkgdGhhbgo+ID4gPiA+ID4gPiA+ IHByb3BlcnRpZXMsIHNpbmNlIGFzIGZhciBhcyBJIGtub3csIGNvbm5lY3RlZC91bmNvbm5lY3Rl ZCBzdGF0dXMgaXMgbm90Cj4gPiA+ID4gPiA+ID4gZXhwb3NlZCBhcyBhIHByb3AgZm9yIHRoZSBj b25uZWN0b3IuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBPb3BzLCB0b3RhbGx5IG1pc3NlZCB0 aGF0LiAiRXZlcnl0aGluZyBpcyBhIHByb3BlcnR5IiBpcyBraW5kYQo+ID4gPiA+ID4gPiBuZXct aXNoLCBhdCBsZWFzdCBjb21wYXJlZCB0byBrbXMuIEtpbmRhIHRlbXB0ZWQgdG8ganVzdCBtYWtl IHN0YXR1cwo+ID4gPiA+ID4gPiBpbnRvIGEgcHJvcGVydHkuIE9yIGFub3RoZXIgZXhjdXNlIHdo eSB3ZSBzaG91bGQgZXhwb3NlIHRoZSBlcG9jaAo+ID4gPiA+ID4gPiBwcm9wZXJ0eSA6LSkKPiA+ ID4gPiA+IAo+ID4gPiA+ID4gV2VsbCBJIHRoaW5rIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgYW55d2F5 LCBhcyBsb25nIGFzIHdlIGNhbiBtYWtlIHN1cmUgaXQKPiA+ID4gPiA+IHN0YXlzIGNvbnNpc3Rl bnQgd2l0aCB0aGUgb25lIHJlcG9ydGVkIGluIHRoZSBjb25uZWN0b3Igc3RydWN0Lgo+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gPiBIZXJlJ3Mgd2h5Ogo+ID4gPiA+ID4gPiA+ID4gLSBBIHNpZGUg ZWZmZWN0IG9mIGZvcmNpbmcgYSBwcm9iZSBvbiBhIGNvbm5lY3RvciBpcyB0aGF0IHlvdSBnZXQg dG8KPiA+ID4gPiA+ID4gPiA+IHJlYWQgYWxsIHRoZSBwcm9wZXJ0aWVzLCBzbyBzdXBwbHlpbmcg dGhlbSBpcyBraW5kYSBwb2ludGxlc3MuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gQWdy ZWVkLCBleGNlcHQgZm9yIHRoZSBzdGF0dXMgY2FzZSB3aGVyZSBpdCdzIHVzZWZ1bCB0byBrbm93 IGl0J3MgYQo+ID4gPiA+ID4gPiA+IGRpc2Nvbm5lY3QsIGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCBh bnkgcHJvYmUgc3RlcCBpbiB0aGF0IGNhc2UuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4g PiAtIFlvdSBjYW4gcmVhZCBTVEFUVVMgd2l0aG91dCBmb3JjaW5nIGEgcmVwcm9iZSwgaWYgeW91 IHdhbnQgdG8gYXZvaWQKPiA+ID4gPiA+ID4gPiA+IHRoZSByZXByb2JlIGZvciBkaXNjb25uZWN0 ZWQuIEknZCBraW5kYSBub3QgcmVjb21tZW5kIHRoYXQgdGhvdWdoLAo+ID4gPiA+ID4gPiA+ID4g ZmVlbHMgYSBiaXQgbGlrZSBvdmVyb3B0aW1pemluZy4gQW5kIGZvciByZWFzb25hYmxlIGNvbm5l Y3RvcnMgKGkuZS4KPiA+ID4gPiA+ID4gPiA+IGRwKSByZXByb2JpbmcgYSBkaXNjb25uZWN0ZWQg b3V0cHV0IGlzIGZhc3QuIEhETUkgaXMgLi4uIGxlc3MKPiA+ID4gPiA+ID4gPiA+IHJlYXNvbmFi bGUgdW5mb3J0dW5hdGVseSwgYnV0IG9oIHdlbGwuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ ID4gSG93IHdvdWxkIHRoYXQgYmUgcmV0cmVpdmVkIHRoZW4/IEZyb20gdGhlIGxvb2tzIG9mIGl0 LCB0aGF0J3MgYQo+ID4gPiA+ID4gPiA+IE1PREVfR0VUQ09OTkVDVE9SIGlvY3RsIGFuZCBJIHdh cyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGlzIGlzIHdoYXQKPiA+ID4gPiA+ID4gPiBkb2VzIHRo ZSBmdWxsIHJlcHJvYmUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBkcm1HZXRDb25uZWN0b3Ig dnMgZHJtR2V0Q29ubmVjdG9yQ3VycmVudC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQWggcmlnaHQs IGZvcmdvdCBhYm91dCB0aGF0IG9uZSwgdGhhbmtzLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4g Tm90IHN1cmUgd2hhdCBpc3N1ZXMgY291bGQgYXJpc2UgaW4gY2FzZSBvZiBkaXNjb25uZWN0IHdp dGhvdXQgcmVwcm9iZQo+ID4gPiA+ID4gPiA+IC0tIGF0IGxlYXN0IEkgZG9uJ3Qgc2VlIHdoeSB1 c2Vyc3BhY2Ugc2hvdWxkIGhhdmUgdG8gZG8gYW55dGhpbmcgaW4KPiA+ID4gPiA+ID4gPiBwYXJ0 aWN1bGFyIGV4Y2VwdCBubyBsb25nZXIgdXNpbmcgdGhlIGNvbm5lY3RvciwgZXZlbiBpbiBjb21w bGV4IERQIE1TVAo+ID4gPiA+ID4gPiA+IGNhc2VzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g Y29ubmVjdG9yLT5zdGF0dXMgbWlnaHQgYmUgYSBsaWUgd2l0aG91dCBhIGZ1bGwgcmVwcm9iZSwg YW5kIHdyb25nbHkKPiA+ID4gPiA+ID4gaW5kaWNhdGUgdGhhdCB0aGUgY29ubmVjdG9yIGlzIGRp c2Nvbm5lY3RlZCB3aGlsZSB0aGVyZSdzIHN0aWxsCj4gPiA+ID4gPiA+IHNvbWV0aGluZyBwbHVn Z2VkIGluLiBJJ20gbm90IHN1cmUgd2UndmUgZml4ZWQgdGhvc2UgYnVncyBieSBub3cKPiA+ID4g PiA+ID4gKHVzdWFsbHkgaXQncyBhcm91bmQgImhwZCBpbmRpY2F0ZXMgZGlzY29ubmVjdGVkIiB2 cy4gImkyYyBpbmRpY2F0ZXMKPiA+ID4gPiA+ID4gY29ubmVjdGVkLCBhbmQgd2UgY2FuJ3QgYnJl YWsgdGhpcyBiZWNhdXNlIGV2ZXJ5IGludGVsIHBsYXRmb3JtIGV2ZXIKPiA+ID4gPiA+ID4gc2hp cHBlZCBoYXMgYSBmZXcgZGV2aWNlcyB3aGVyZSB0aGlzIGlzIHNvbWVob3cgYnJva2VuLCBpcnJl c3BlY3RpdmUKPiA+ID4gPiA+ID4gb2YgdGhlIHNpbmspLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBN aGggZWl0aGVyIHdheSwgSSB0aGluayBpdCdzIHVwIHRvIHRoZSBkcml2ZXIgdG8gcmVwb3J0IHRo YXQgYW5kIG1ha2UKPiA+ID4gPiA+IGl0IGNvbnNpc3RlbnQuIEkgdGhpbmsgd2UgaGF2ZSBwb2xs IGhlbHBlcnMgdG8gbWFrZSB1cCBmb3IgY2FzZXMgd2hlcmUKPiA+ID4gPiA+IGhvdHBsdWcgaXMg bm90IGF2YWlsYWJsZSB0b28uIFNvIEknbSBub3Qgc3VyZSB3aHkgYSBmdWxsIHJlcHJvYmUgd291 bGQKPiA+ID4gPiA+IGJlIG5lZWRlZDogZHJpdmVycyBqdXN0IG5lZWQgdG8gZG8gdGhlIHJpZ2h0 IHRoaW5nLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiAtIFRoZXJlJ3Mgbm8gd2F5IHRvIG9u bHkgcmVwcm9iZSBzdGF0dXMsIHlvdSBjYW4gb25seSBldmVyIHJlcHJvYmUKPiA+ID4gPiA+ID4g PiA+IGV2ZXJ5dGhpbmcgd2l0aCB0aGUgY3VycmVudCBpb2N0bCBhbmQgaW1wbGVtZW50YXRpb25z LiBIYXZpbmcgYW4KPiA+ID4gPiA+ID4gPiA+IG9wdGlvbiB0byByZXByb2JlIG9ubHkgcGFydHMg b2YgaXQgZG9lc24ndCBzZWVtIHVzZWZ1bCB0byBtZSAod2UgbmVlZAo+ID4gPiA+ID4gPiA+ID4g dG8gcmVhZCB0aGUgRURJRCBhbnl3YXksIGFuZCB0aGF0J3MgdGhlIGV4cGVuc2l2ZSBwYXJ0IG9m IHJlcHJvYmluZyBpbgo+ID4gPiA+ID4gPiA+ID4gYWxtb3N0IGFsbCBjYXNlcykuCj4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gQWdyZWVkLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ ID4gSW4gYSB3YXkgUFJPUEVSVFk9PHN0YXR1cy1wcm9wLWlkPiBzaW1wbHkgdGVsbHMgdXNlcnNw YWNlIHRoYXQgaXQKPiA+ID4gPiA+ID4gPiA+IG5lZWRzIHRvIHJlcHJvYmUgdGhpcyBjb25uZWN0 b3IuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gSSB0aG91Z2h0IHdlIGNvdWxkIGFjY2Vz cyB0aGUgcHJvcHMgYWxvbmUsIHdoaWNoIGF2b2lkcyBkb2luZyBhIHJlcHJvYmUKPiA+ID4gPiA+ ID4gPiB3aGVuIHRoZSBrZXJuZWwga25vd3MgdGhhdCBvbmx5IGEgcHJvcCBvciBhIHNldCBvZiBw cm9wcyBjaGFuZ2VkIGFuZCBkbwo+ID4gPiA+ID4gPiA+IG5vdCByZXF1aXJlIGEgZnVsbCByZXBy b2JlLiBUaGF0J3MgdGhlIGZpcnN0IGNhc2UgSSB3YXMgbWVudGlvbm5pbmcuCj4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gPiBBdCB0aGF0IHBvaW50IHdlIG5lZWQgdG8gZmlndXJlIG91dCB3 aGV0aGVyIHRoaXMgaXMgYSBnb29kIHVhcGkgb3IKPiA+ID4gPiA+ID4gPiA+IG5vdCwgYW5kIHRo YXQncyB3aGVyZSB0aGUgZXBvY2ggY29tZXMgaW4uIFRoZXJlJ3MgdHdvIHJlYXNvbnMgZm9yIGFu Cj4gPiA+ID4gPiA+ID4gPiBlcG9jaDoKPiA+ID4gPiA+ID4gPiA+IC0gV2UgbmVlZCBpdCBpbnRl cm5hbGx5IGJlY2F1c2UgSSdtIG5vdCBnb2luaWcgdG8gd2lyZSBhIG5ldyByZXR1cm4KPiA+ID4g PiA+ID4gPiA+IHZhbHVlIHRocm91Z2ggaHVuZHJlZHMgb2YgY29ubmVjdG9yIHByb2JlIGZ1bmN0 aW9ucy4gSXQncyBtdWNoIGVhc2llcgo+ID4gPiA+ID4gPiA+ID4gdG8gaGF2ZSBhbiBlcG9jaCBj b3VudGVyIHdoaWNoIHdlIHNldCBmcm9tIGUuZy4gZHJtX3NldF9lZGlkIGFuZAo+ID4gPiA+ID4g PiA+ID4gc2ltaWxhciBmdW5jdGlvbnMgdGhhdCB1cGRhdGUgcHJvYmUgc3RhdGUuCj4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gSSBkb24ndCB0aGluayBJJ20gZm9sbG93aW5nIHdoYXQgaXNz dWUgdGhpcyBpcyB0cnlpbmcgdG8gc29sdmUKPiA+ID4gPiA+ID4gPiBpbnRlcm5hbGx5Lgo+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gU28gSSdtIGFzc3VtaW5nIHRoYXQgaWYgd2UgaGFuZGxlIGEg aG90cGx1Zywgd2Ugb25seSB3YW50IHRvIGdlbmVyYXRlCj4gPiA+ID4gPiA+IG9uZSB1ZXZlbnQg Zm9yIHRoYXQsIG5vdCBvbmUgZm9yIGV2ZXJ5IGxpdHRsZSB0aGluZyB0aGF0IGNoYW5nZWQuCj4g PiA+ID4gPiA+IFRoZXJlJ3MgdHdvIHdheXMgdG8gaW1wbGVtZW50IHRoaXMgbG9naWM6Cj4gPiA+ ID4gPiA+IC0gV2l0aCBzb21lIGVwb2NoIGNvdW50ZXIgYW5kIGEgaGVscGVyIGZ1bmN0aW9uIHlv dSBjYW4gY2FsbCBldmVyeXRpbWUKPiA+ID4gPiA+ID4gc29tZXRoaW5nIGNoYW5nZWQgKGUuZy4g c3RhdHVzLCBvciBlZGlkLCBvciBhbnl0aGluZyBlbHNlIHdlIGNhcmUKPiA+ID4gPiA+ID4gYWJv dXQgZS5nLiBmcm9tIGRwIGF1eCkuIFRoaXMgd29uJ3QgbmVlZCBtdWNoIChpZiBhbnkpIGRyaXZl ciBjaGFuZ2VzLAo+ID4gPiA+ID4gPiBiZWNhdXNlIHdlIGNhbiBqdXN0IHB1dCB0aGVzZSBpbnRv IHRoZSByZWxldmFudCBoZWxwZXIvY29yZSBmdW5jdGlvbnMKPiA+ID4gPiA+ID4gKGxpa2UgZWRp ZCB1cGRhdGUsIG9yIGRwIGF1eCByZWFkaW5nIG9yIHdoYXRldmVyKS4KPiA+ID4gPiA+ID4gLSBX aXJpbmcgYSBuZXcgcmV0dXJuIHZhbHVlIHRocm91Z2ggdGhlIGVudGlyZSBzdGFjayAoYW5kIF9h bGxfIHRoZQo+ID4gPiA+ID4gPiBrbXMgZHJpdmVycykgc28gdGhhdCB0aGUgcHJvYmUgaGVscGVy cyBjb3VsZCBhZ2dyZWdhdGUgdGhpcyBsaWtlIHRoZXkKPiA+ID4gPiA+ID4gY3VycmVudGx5IGRv Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gT25lIG9mIHRoZXNlIGlzIGEgbG90IGxlc3MgdHlw aW5nLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBPaCBJIGhhZCBtaXNzZWQgdGhpcyBpc3N1ZS4gWWVh aCBvZiBjb3Vyc2UgaWYgd2Ugc3RhcnQgcmVwb3J0aW5nCj4gPiA+ID4gPiBwcm9wZXJ0eSBjaGFu Z2VzLCBhIGhvdHBsdWcgd2lsbCBiZSBsb3RzIG9mIHN1Y2ggY2hhbmdlcy4KPiA+ID4gPiA+IAo+ ID4gPiA+ID4gU28gYW4gZXBvY2ggY291bnRlciBwcm9wZXJ0eSB3b3VsZCBpbmRlZWQgYWxzbyBz b2x2ZSB0aGUgcmVwcm9iaW5nCj4gPiA+ID4gPiBwcm9ibGVtLiBCdXQgSSB0aGluayBpdCB3b3Vs ZCBiZSBuaWNlIHRvIGtlZXAgdGhlIGFiaWxpdHkgdG8gYmUKPiA+ID4gPiA+IG5vdGlmaWVkIG9m IHdoYXQgY2hhbmdlZCBwcmVjaXNlbHkgdmlhIHVldmVudC4gSSdtIG5vdCByZWFsbHkgYnV5aW5n Cj4gPiA+ID4gPiB0aGUgIm1pc3NpbmcgdWV2ZW50IiB0aGluZyBzbyBtdWNoIGFuZCBJIHRoaW5r IHdlIGNhbiByZWFzb25hYmx5IGV4cGVjdAo+ID4gPiA+ID4gdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bC4gRXZlbnRzIGNvdWxkIGJlIGFnZ3JlZ2F0ZWQgKHdoaWNoIHRoZSBlcG9jaAo+ID4gPiA+ID4g Y291bnRlciB3b3VsZCBwcm9iYWJseSBhbHNvIGFsbG93KSBhbmQgc2VudCBvdXQgYWx0b2dldGhl ciB3aGVuIHRoZQo+ID4gPiA+ID4gY29ubmVjdG9yIHN0YXR1cyBjaGFuZ2VzIChhbG9uZyB3aXRo IHRoZSBzdGF0dXMgaW5mb3JtYXRpb24pLiBJIHRoaW5rCj4gPiA+ID4gPiB3ZSdyZSB1bmRlci11 c2luZyB1ZXZlbnQgY3VycmVudGx5LCBhbmQgZmVlbCBsaWtlIHRoaXMgc2hvdWxkIGJlIGZpeGVk Cj4gPiA+ID4gPiByZWdhcmRsZXNzIG9mIHRoZSBmdWxsIHJlcHJvYmUgaXNzdWUuCj4gPiA+ID4g Cj4gPiA+ID4gSSBzZWUgdHdvIG9wdGlvbnM6Cj4gPiA+ID4gCj4gPiA+ID4gMSkga2VybmVsIGFn Z3JlZ2F0ZXMgdWV2ZW50cyBhIGJpdCwgYW5kIHNlbmRzIG91dCBvbmUgKHBlciBjb25uZWN0b3IK PiA+ID4gPiB0aGF0IGNoYW5nZWQpIGluZGljYXRpbmcgdGhhdCBzaW5rIHJlbGF0ZWQgc3RhdGUg Y2hhbmdlZC4gVXNlcnNwYWNlCj4gPiA+ID4gbGlzdGVucyB0byB0aGF0LCBhbmQgZG9lcyBhIGRy bUdldENvbm5lY3RvciBhcyBhIHJlc3VsdCB0byB1cGRhdGUKPiA+ID4gPiBpdHNlbGYuIE1vc3Qg b2YgdGhpcyBjb2RlIG5lZWRzIHRvIGV4aXN0IGFueXdheS4KPiA+ID4gPiAKPiA+ID4gPiAyKSBr ZXJuZWwgc2VuZHMgb3V0IHVwZGF0ZXMgYXMgd2UgZ28sIHVzZXJzcGFjZSByZWFzc2VtYmxlcyBl dmVyeXRoaW5nCj4gPiA+ID4gYWdhaW4gKGFuZCBub3QgcmVhbGx5IGFuIGlkZWEgd2hlbiBhbGwg dGhlIHVwZGF0ZXMgYXJlIGluLCBzZWUgTHl1ZGUncwo+ID4gPiA+IHF1ZXN0aW9uLiBQbHVzIHVz ZXJzcGFjZSBzdGlsbCBuZWVkcyB0byBoYXZlIHRoZSBkcm1HZXRDb25uZWN0b3IgcGF0aCwKPiA+ ID4gPiBhdCBsZWFzdCBmb3IgaW5pdGlhbCBzZXR1cC4KPiA+ID4gPiAKPiA+ID4gPiBJIGRvbid0 IHNlZSB3aHkgMikgaXMgYW55IGJldHRlciB0aGFuIDEpLCBhbmQgaXQgaGFzIHNvbWUgY2xlYXIg ZG93bnNpZGVzLgo+ID4gPiAKPiA+ID4gTXkgbWFpbiBwb2ludCBpcyB0aGF0IHdoZW4gdGhlIGtl cm5lbCBrbm93cyBzb21lIGluZGl2aWR1YWwgcHJvcGVydHkKPiA+ID4gY2hhbmdlZCwgaXQgc2hv dWxkIHVwZGF0ZSBpdHMgaW50ZXJuYWwgc3RhdGUgYW5kIHJlcG9ydCB3aGF0IHByb3AKPiA+ID4g Y2hhbmdlZCAqaW4gY2FzZXMgdGhhdCBkb24ndCByZXF1aXJlIGEgZnVsbCByZXByb2JlKiBhbmQg cmVwb3J0IG9ubHkKPiA+ID4gd2hpY2ggY29ubmVjdG9yIGNoYW5nZWQgd2hlbiBhIGNvbm5lY3Rv ciByZXByb2JlIGlzIG5lZWRlZCBhbnl3YXkuCj4gPiA+IAo+ID4gPiBNYXliZSB3ZSBjb3VsZCBl dmVuIGhhdmUgcXVpcmtzIGZvciBkcml2ZXJzIHRvIGluZGljYXRlIHRoYXQgY29tbW9uCj4gPiA+ IGFjdGlvbnMgdGhhdCBzaG91bGRuJ3QgcmVxdWlyZSBhIHJlcHJvYmUgYWN0dWFsbHkgZG8gZm9y IHRoaXMgZHJpdmVyIGluCj4gPiA+IHBhcnRpY3VsYXIsIGJlY2F1c2Ugb2Ygd2hhdGV2ZXIgaW5z dGFiaWxpdHkgd2Ugd2FudCB0byBiZSBjb25maWRlbnQKPiA+ID4gYWJvdXQgaGFuZGxpbmcuIEkg YmVsaWV2ZSB0aGlzIHNob3VsZCBiZSBhYnN0cmFjdGVkIGF3YXkgaW4gRFJNIGFuZCBub3QKPiA+ ID4gcmVmbGVjdGVkIG9uIHRoZSB1c2Vyc3BhY2UgQVBJLgo+ID4gPiAKPiA+ID4gU28gaXQncyBu b3QganVzdCBhYm91dCBwcm92aWRpbmcgcGVyLXByb3BlcnR5IHVwZGF0ZXMsIHRoZSB1cGRhdGVz Cj4gPiA+IHJlcG9ydGVkIHRoaXMgd2F5IGhhdmUgdG8gYmUgInN0YW5kYWxvbmUiIGFuZCBuZXZl ciBpbXBseSB0aGF0IGFueXRoaW5nCj4gPiA+IGVsc2UgYWJvdXQgdGhlIGNvbm5lY3RvcidzIHN0 YXRlIGNvdWxkIGhhdmUgY2hhbmdlLiBEcml2ZXIncyBndWFyYW50ZWUuCj4gPiAKPiA+IEknbSBu b3Qgc3VyZSB3aGF0IHRoYXQgZ3VhcmFudGVlIGJ1eXMgdXMuIFlvdSBjYW4gbmV2ZXIgYXNzdW1l IHRoYXQgaWYKPiA+IHlvdSBnZXQgdGhpcyBldmVudCB0aGF0IG9ubHkgdGhhdCBwcm9wZXJ0eSBj aGFuZ2VkLCBzaW5jZSBvdGhlciBzdHVmZgo+ID4gbWlnaHQgaGF2ZSBjaGFuZ2VkIG1lYW53aGls ZS4KPiAKPiBUaGVuIHlvdSBnZXQgYSBzZWNvbmQgZXZlbnQgbm90aWZpY2F0aW9uIGFuZCBhY3Qg YWNjb3JkaW5nbHkuIEFuZCB0aGUKPiBrZXJuZWwgd2lsbCBncm91cCBpbmRpdmlkdWFsIHByb3Bl cnR5IGNoYW5nZSBldmVudHMgaW50byBsb2dpY2FsIGV2ZW50cwo+IHRoYXQgb25seSBnZXQgcmVw b3J0ZWQgb25jZSwgdG9vLCBzbyBpdCB3aWxsIGJlIHJhcmUgaW4gcHJhY3RpY2UuIEkKPiBkb24n dCBzZWUgd2hhdCBpc3N1ZSB3ZSBoYXZlIGF0IGhhbmQuCj4gCj4gPiBBbmQgZXNwZWNpYWxseSBm b3IgYSBzaW5rIGNoYW5nZSB3ZSBrbm93IHRoYXQgYSBsb3Qgb2YgcHJvcGVydGllcwo+ID4gKGlu Y2x1ZGluZyBzdHVmZiBsaWtlIGNvbm5lY3Rvci0+c3RhdHVzIGhlcmUgdGhhdCdzIG5vdCB5ZXQg YQo+ID4gcHJvcGVydHkpIHdpbGwgaGF2ZSBjaGFuZ2VkLiBBbmQgZXZlbnQgd2l0aCBlLmcuIFBS T1BFUlRZPWVwb2NoIHdvdWxkCj4gPiBzaW1wbHkgaW5kaWNhdGUgdGhhdCBhbGwgdGhlIHNpbmsg cmVsYXRlZCB0aGluZ3MgaGF2ZSBiZWVuIHVwZGF0ZWQsCj4gPiBhbmQgeW91IGNhbiBnZXQgdGhl bSB3aXRoIGRybUdldENvbm5lY3RvckN1cnJlbnQuCj4gCj4gVGhhdCdzIHdoYXQgSSBoYWQgaW4g bWluZCB3aXRoIHJlcG9ydGluZyBDT05ORUNUT1I9IHdpdGhvdXQgYW55Cj4gUFJPUEVSVFkuIFJl cG9ydGluZyB0aGF0IGVwb2NoIGNoYW5nZSBmZWVscyB3ZWlyZCB0byBtZSwgZXBvY2ggaXMgbW9y ZQo+IG9mIGEgbWV0YS1pbmZvcm1hdGlvbiBhYm91dCB0aGUgY29ubmVjdG9yIHRoYXQgdXNlcnNw YWNlIHNob3VsZAo+IHByb2JhYmx5IHF1ZXJ5IG9uIGl0cyBvd24uCj4gCj4gPiBXZSBhbHNvIG5l ZWQgc29tZSB3YXkgdG8gaW5kaWNhdGUgdGhhdCBhbiBlbnRpcmUgYmF0Y2ggb2YgdXBkYXRlcyBo YXZlCj4gPiBjb21wbGV0ZWQgaWYgd2Ugc2VuZCBvdXQgZXZlbnRzIGZvciBldmVyeSBwYXJ0IG9m IHRoaXMuIFNlbmRpbmcgb3V0Cj4gPiBiaWdnZXIgZXZlbnRzIG5lYXRseSBzaWRlc3RlcHMgdGhh dCBpc3N1ZS4KPiAKPiBBcyB3ZSBkaXNjdXNzZWQsIGdyb3VwaW5nIHByb3BlcnR5IGNoYW5nZXMg aW50byBsb2dpY2FsIGNoYW5nZXMgc2VlbXMKPiBhZ3JlZWFibGUgdG8gZXZlcnlvbmUuCgpZZWFo IG5vIG9uZSdzIGRpc2FncmVlaW5nIG9uIHRoYXQgSSBndWVzcywgaXQncyBqdXN0IHRoYXQgdGhl cmUncyB3YXlzIHRvCmdldCB0aGVyZSB0aGF0IGludm9sdmUgbW9yZSBvciBsZXNzIHR5cGluZyA6 LSkKCj4gPiA+ID4gPiBXaXRoIHRoYXQsIEkgYWdyZWUgdGhhdCBhIGdsb2JhbCBlcG9jaCBjb3Vu dGVyIGZyb20gdGhlIGNvbm5lY3RvciB3b3VsZAo+ID4gPiA+ID4gYmUgYSBnb29kIHF1aWNrIHdh eSBmb3IgdXNlcnNwYWNlIHRvIHRlbGwgaWYgYSBjb25uZWN0b3IgY2hhbmdlZCBvciBub3QKPiA+ ID4gPiA+IHNpbmNlIHRoZSBsYXN0IHRpbWUgaXQgY2hlY2tlZC4KPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ID4gLSBJZiB1c2Vyc3BhY2UgbWlzc2VzIGFuIGV2ZW50IGFuZCB0aGVyZSdzIG5vIGVw b2NoLCB3ZSdyZSBmb3JjaW5nCj4gPiA+ID4gPiA+ID4gPiB1c2Vyc3BhY2UgdG8gcmVwcm9iZSBl dmVyeXRoaW5nLiBVc2UgY2FzZSB3b3VsZCBiZSBpZiBhIGNvbXBvc2l0b3IgaXMKPiA+ID4gPiA+ ID4gPiA+IHN3aXRjaGVkIGF3YXkgd2UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBwaXNzIG9mIHRo ZSBjdXJyZW50IGNvbXBvc2l0b3IKPiA+ID4gPiA+ID4gPiA+IGJ5IGJsb2NraW5nIGl0J3Mgb3du IHByb2JlIGtlcm5lbCBjYWxscyBieSBkb2luZyBvdXIgb3duIChwcm9iZSBpcwo+ID4gPiA+ID4g PiA+ID4gc2luZ2xlLXRocmVhZGVkIGluIHRoZSBrZXJuZWwgdGhyb3VnaCB0aGUgZGV2LT5tb2Rl X2NvbmZpZy5tdXRleCkuIElmCj4gPiA+ID4gPiA+ID4gPiBpdCBjYW4gcmVhZCB0aGUgZXBvY2gg cHJvcGVydHkgKHdoaWNoIGl0IGNhbiBkbyB3aXRob3V0IGZvcmNpbmcgYQo+ID4gPiA+ID4gPiA+ ID4gcmVwcm9iZSkgdXNlcnNwYWNlIHdvdWxkIGtub3cgd2hpY2ggY29ubmVjdG9ycyBpdCBuZWVk cyB0byBjaGVjayBhbmQKPiA+ID4gPiA+ID4gPiA+IHJlcHJvYmUuCj4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+IEhlbmNlIHdoeSBlcG9jaCwgaXQncyBhIGJpdCBtb3JlIHJvYnVzdCB1 c2Vyc3BhY2UgYXBpLiBPZmMgeW91IGNvdWxkCj4gPiA+ID4gPiA+ID4gPiBhbHNvIHJlcXVpcmUg dGhhdCB1c2Vyc3BhY2UgbmVlZHMgdG8ga2VlcCBwYXJzaW5nIGFsbCB1ZXZlbnRzIGFuZCBtYWtl Cj4gPiA+ID4gPiA+ID4gPiBhIGxpc3Qgb2YgYWxsIGNvbm5lY3RvcnMgaXQgbmVlZHMgdG8gcmVw cm9iZSB3aGVuIGl0J3MgYmFjayB0byBiZWluZwo+ID4gPiA+ID4gPiA+ID4gdGhlIGFjdGl2ZSBj b21wb3NpdG9yLiBCdXQganVzdCBjb21wYXJpbmcgYSBjdXJyZW50IGVwb2NoIHdpdGggdGhlIG9u ZQo+ID4gPiA+ID4gPiA+ID4geW91IGNhY2hlZCBmcm9tIHRoZSBsYXN0IGZ1bGwgcHJvYmUgaXMg bXVjaCBlYXNpZXIuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gRmFpciBlbm91Z2gsIEkg dGhpbmsgaXQncyBhIGZpbmUgaWRlYSBmb3Igcm9idXN0bmVzcyB5ZXMsIGJ1dCBJIHRoaW5rCj4g PiA+ID4gPiA+ID4gd2UgY291bGQgYWxzbyBwcm92aWRlIGV4dHJhIGluZm8gaW4gdGhlIHVldmVu dCB3aGVuIHJlbGV2YW50IGFuZCBub3QKPiA+ID4gPiA+ID4gPiByZWx5IG9uIHRoYXQgZW50aXJl bHkuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBTZWUgYWJvdmUsIHdpdGggZHJtR2V0Q29ubmVj dG9yQ3VycmVudCB0aGVyZSdzIG5vIG5lZWQgdG8gcHJvdmlkZSBtb3JlCj4gPiA+ID4gPiA+IHRo YW4gd2hhdCdzIG5lZWRlZCBpbiB0aGUgdWV2ZW50LCBzaW5jZSB1c2Vyc3BhY2UgY2FuIGdldCBl dmVyeXRoaW5nCj4gPiA+ID4gPiA+IGVsc2UgYXQgdGhlIGNvc3Qgb2Ygb25lIGlvY3RsLCB3aXRo b3V0IHJlcHJvYmluZy4gV2l0aCBhIGJpdCBvZgo+ID4gPiA+ID4gPiBlbmdpbmVlcmluZyB3b3Jr IHdlIGNvdWxkIGV2ZW4gYXZvaWQgdGFraW5nIHRoZSBleHBlbnNpdmUKPiA+ID4gPiA+ID4gZGV2 LT5tb2RlX2NvbmZpZy5tdXRleCBsb2NrIGZvciB0aGlzIGZhc3RwYXRoLgo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+IEFub3RoZXIgdGhpbmc6IE5vbmUgb2YgdGhpcyB3ZSBjYW4gZm9yIGNv bm5lY3RvcnMgd2l0aCB1bnJlbGlhYmxlIGhkcC4KPiA+ID4gPiA+ID4gPiA+IE9yIGF0IGxlYXN0 IHlvdSdsbCBwaXNzIG9mIHVzZXJzIGlmIHlvdSBjYWNoZSBhbHdheXMuIFRoZSBzYWQgdGhpbmcg aXMKPiA+ID4gPiA+ID4gPiA+IHRoYXQgSERNSSBpcyB1bnJlbGlhYmxlLCBhdCBsZWFzdCBvbiBz b21lIG1hY2hpbmVzL3NjcmVlbiBjb21ib3MgKHlvdQo+ID4gPiA+ID4gPiA+ID4gbmV2ZXIgZ2V0 IGEgaHBkIGlycSBpZiB5b3UgcGx1ZyBpbi91bnBsdWcpLiBTbyByZWFsIGNvbXBvc2l0b3JzIHN0 aWxsCj4gPiA+ID4gPiA+ID4gPiBuZWVkIHRvIHJlcHJvYmUgd2hlbiB0aGUgdXNlciBhc2tzIGZv ciBpdC4gaWd0IGNhbiBwcm9iYWJseSBnZXQgYXdheQo+ID4gPiA+ID4gPiA+ID4gd2l0aG91dCBy ZXByb2JpbmcuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gSSB3b25kZXIgaG93IHRoYXQg aXMgaGFuZGxlZCBjdXJyZW50bHkgYW5kIGhvdyBhIHVzZXIgYWN0aW9uIGNhbiBzb2x2ZQo+ID4g PiA+ID4gPiA+IHRoZSBpc3N1ZSB3aXRob3V0IGFueSBub3RpZmljYXRpb24gZnJvbSB0aGUga2Vy bmVsLiBNYXliZSBhIG5lZWQgYQo+ID4gPiA+ID4gPiA+IGJldHRlciB1bmRlcnN0YW5kaW5nIG9m IHRoYXQgY2FzZSB0byBoYXZlIGEgY2xlYXJlciBpZGVhLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gVXNlciBvcGVucyB0aGUgc2NyZWVuIGNvbmZpZ3VyYXRpb24gdG9vbCAtPiB1c3VhbGx5IGF0 IHRoYXQgcG9pbnQgdGhlCj4gPiA+ID4gPiA+IHRvb2wvY29tcG9zaXRvciBmb3JjZSBhIGZ1bGwg cmVwcm9iZSwgd2hpY2ggdGhlbiBvZnRlbiB0cmlnZ2VycyB0aGUKPiA+ID4gPiA+ID4gYXV0b21h dGljIHJlY29uZmlndXJpbmcuIEUuZy4gb24gb25lIGxhcHRvcCBJIGhhdmUgaGVyZSB3aGVuIEkg cGx1ZyBpbgo+ID4gPiA+ID4gPiByYW5kb20gc2hpdCBwcm9qZWN0b3JzIGF0IGNvbmZlcmVuY2Vz IG5vdGhpbmcgaGFwcGVucywgdW50aWwgSSBydW4KPiA+ID4gPiA+ID4geHJhbmRyLCB3aGljaCB0 cmlnZ2VycyB0aGUgZnVsbCByZXByb2JlLCB3aGljaCB0aGVuIG1ha2VzIHRoZSBrZXJuZWwKPiA+ ID4gPiA+ID4gcmVhbGl6ZSBzb21ldGhpbmcgY2hhbmdlLCBzZW5kaW5nIGFuZCB1ZXZlbnQsIHdo aWNoIHN0YXJ0cyB0aGUKPiA+ID4gPiA+ID4gYXV0b21hdGljIHJlY29uZmlndXJlIG1hY2hpbmVy eS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gT2ggcmlnaHQgaGVoZSwgSSBkZWZpbml0ZWx5IGRvIHRo YXQgYmxpbmQgYWx0K2YyIGdub21lLWNvbnRyb2wtY2VudGVyCj4gPiA+ID4gPiB0byBnZXQgbWUg b3V0IG9mIGFuIG9mZi1wYW5lbCBzaXR1YXRpb24gbXVjaCB0b28gb2Z0ZW4uCj4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gVGhlcmUncyBhbHNvIHRoZSBpc3N1ZSB0aGF0IHRoZXJlJ3MgbWFjaGluZXMg d2l0aCBocGQgc3Rvcm1zIChldmVuIG9uCj4gPiA+ID4gPiA+IERQLCB3aGVyZSB5b3UgcmVhbGx5 IG5lZWQgaHBkIHRvIHdvcmsgdG8gYmUgY29tcGxpYW50KSwgYW5kIHdlIGhhdmUgdG8KPiA+ID4g PiA+ID4gdHVybiBvZiB0aGUgaHBkIGlycSB0byBrZWVwIHRoZSBtYWNoaW5lIHVzZWFibGUuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgd2Ugc3dp dGNoIHRvIHBvbGxpbmcgd2hlbiBhIGhwZCBzdG9ybQo+ID4gPiA+ID4gaXMgZGV0ZWN0ZWQgaW4g aTkxNSAoYnV0IHRoYXQncyBhIHZhZ3VlIG1lbW9yeSBmcm9tIG15IHN1bW1lcgo+ID4gPiA+ID4g aW50ZXJuc2hpcCBhdCBJbnRlbCAyIHllYXJzIGFnbykuCj4gPiA+ID4gCj4gPiA+ID4gV2UgZG8g cG9sbCwgYnV0IHRoZSBpc3N1ZSBpcyBzdGlsbCB0aGF0IHBvbGxpbmcgZG9lc24ndCBkbyB0aGUg c2FtZQo+ID4gPiA+IHRoaW5nIGFzIGZ1bGwgcmVwcm9iZS4gT25lIGp1c3QgY2FsbHMgLT5kZXRl Y3QsIHRoZSBvdGhlciAtPmRldGVjdCArCj4gPiA+ID4gLT5nZXRfbW9kZXMuIFRoaXMgaXMgYSBi aXQgYSBzaWxsaW5lc3Mgb2YgdGhlIGhlbHBlcnMgYW5kIHNvdXJjZSBvZgo+ID4gPiA+IGxvdHMg b2YgY29uZnVzaW9uLiBBIHBvc3NpYmxlIGZpeCBtaWdodCBiZSB0byBhbHdheXMgY2FsbCBib3Ro Lgo+ID4gPiAKPiA+ID4gSSB0aGluayB0aGF0IHdvdWxkIG1ha2UgYSBsb3Qgb2Ygc2Vuc2UuIEkg ZG9uJ3QgcmVhbGx5IGdldCB3aHkgd2UgaGF2ZQo+ID4gPiB0byB3YWl0IGZvciB1c2Vyc3BhY2Ug dG8gZG8gYSByZXByb2JlIHRvIGdldCB0aGUgbmV3IG1vZGVzIHdoZW4gdGhlCj4gPiA+IGtlcm5l bCBjYW4gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhlIG1vZGVzIGNoYW5nZWQgYW5kIG5lZWQg dG8gYmUKPiA+ID4gcmVmcmVzaGVkLgo+ID4gCj4gPiBEb24ndCBsZXQgdGhlIG5hbWVzIHRyaWNr IHlvdSwgaXQncyBhbiBlbnRpcmVseSBhcmJpdHJhcnkgc3BsaXQsCj4gPiBoaXN0b3JpY2FsbHkg Z3Jvd24gOi0pCj4gCj4gU2VlbXMgbGlrZSBpdCB3b3VsZCBiZSBzYW5lIHRvIGZpeCB0aGF0IHVw IGF0IHRoaXMgcG9pbnQuCgpTdXJlLCB0aGUgcHJvYmxlbSBpcyBmaXhpbmcgdXAgZXZlcnlvbmUu Cgo+ID4gPiA+IFBsdXMgZXZlbiB3aGVuIHRoYXQgbWVzcyBpcyBzb3J0ZWQgdGhlcmUncyBzdGls bCB0aGUgaXNzdWUgb2YgYnJva2VuCj4gPiA+ID4gaHcsIGFuZCB3ZSBoYXZlIG5vIGlkZWEgaG93 IG11Y2gvd2hlcmUvd2hpY2ggZXhhY3RseS4gRXhjZXB0IHRoYXQKPiA+ID4gPiBldmVyeSB0aW1l IHdlIHJlbGllZCBvbiBocGQgc3RhdHVzLCB3ZSBnb3QgcmVncmVzc2lvbiByZXBvcnRzIGFuZCBo YWQKPiA+ID4gPiB0byByZXZlcnQuCj4gPiA+IAo+ID4gPiBJIHRoaW5rIHdlIGNvdWxkIGNvbmZp Z3VyZSB0aGUgbm90aWZpY2F0aW9uIGJlaGF2aW9yIHBlci1kcml2ZXIgYW5kCj4gPiA+IHNvbWUg ZXZlbnRzIHRoYXQgd291bGRuJ3QgcmVxdWlyZSBhIGZ1bGwgcHJvYmUgb24gc29tZSBkcml2ZXJz IGNvdWxkIGRvCj4gPiA+IHNvIG9uIG90aGVyIGRyaXZlcnMuIFVzZXJzcGFjZSBzaG91bGQgZmlu ZCBvdXQgd2hldGhlciB0byByZXByb2JlIG9yCj4gPiA+IG5vdCBkeW5hbWljYWxseSBiYXNlZCBv biB3aGF0J3MgaW4gdGhlIHVldmVudCBhbnl3YXksIHNvIGl0J3Mgbm90IGV2ZW4KPiA+ID4gYW4g aW5jb25zaXN0ZW5jeSBpbiB0aGUgaW50ZXJmYWNlIHRoYXQgMiBldmVudHMgYmUgcmVwb3J0ZWQg ZGlmZmVyZW50bHkKPiA+ID4gaW4gMiBkcml2ZXJzLiBJIHRoaW5rIHRoYXQnZCBiZSBiZXR0ZXIg dGhhbiB0aGUgY3VycmVudCBzaXR1YXRpb24gd2UncmUKPiA+ID4gaW4gYW55d2F5LiBJZiBzb21l IGRyaXZlcnMgd2FudCBiZSBwYXJhbm9pZCBhbmQgYWx3YXlzIGFzayBmb3IKPiA+ID4gYSByZXBy b2JlIG9mIHRoZSBjb25uZWN0b3JzIGJlY2F1c2Ugb2YgdW5yZWxpYWJsZSBodywgdGhlaXIgY2hv aWNlLgo+ID4gCj4gPiBUaGUgcHJvYmxlbSBpc24ndCB0eXBpbmcgdGhlIGNvZGUsIGl0J3MgbWFr aW5nIHN1cmUgd2UgZG9uJ3QgYnJlYWsgdGhlCj4gPiB3b3JsZCB3aXRoIHRoaXMuIEV2ZW4gaWYg eW91IGxpbWl0IHRoaXMgdG8gaTkxNSBhbG9uZS4gVGhhdCdzIHdoeSBJJ20KPiA+IHN1Z2dlc3Rp bmcgd2UgdW50YW5nbGUgdGhpbmdzIGFzIG11Y2ggYXMgcG9zc2libGUsIG1ha2VzIGl0IGVhc2ll ciB0bwo+ID4gZG8gdGhlIChwcmV0dHkgbXVjaCBpbmV2aXRhYmxlKSByZXZlcnQuCj4gCj4gSSBy ZWFsbHkgc3Ryb25nbHkgYmVsaWV2ZSB0aGF0IGNhc2VzIG9mIGJyb2tlbiBoYXJkd2FyZSBzaG91 bGQgbm90IGJlIGEKPiBzaG93LXN0b3BwZXIgZm9yIGltcHJvdmluZyB0aGUgc2l0dWF0aW9uIGZv ciBldmVyeSBvdGhlciBub24tYnJva2VuCj4gY2FzZSBvdSB0aGVyZS4gU3VyZSwgdGhlcmUncyB0 aGUgcG9saWN5IG9mIG5vIHJlZ3Jlc3Npb25zLCBidXQgaXQgaGFzCj4gbGltaXRzIHRvby4gV2Fu dGluZyB0byBzdXBwb3J0IGJyb2tlbiBoYXJkd2FyZSBpcyBhIG5vYmxlIGdvYWwsIGJ1dCBJCj4g dGhpbmsgd2Ugc2hvdWxkIGZyYW5rbHkgYXNrIG91cnNlbHZlcyBhdCB3aGF0IGNvc3Qgd2Ugd2Fu dCBpdCwgYW5kIGhvdwo+IG11Y2ggd2Ugd2FudCB0byBsZXQgdGhhdCBkZWdyYWRlIHRoZSBzaXR1 YXRpb24gZm9yIG90aGVyIG5vbi1icm9rZW4KPiBoYXJkd2FyZS4KClRoZSBwb2xpY3kgb2YgIm5v IHJlZ3Jlc3Npb24iIGhhcyBwcmV0dHkgbXVjaCBubyBsaW1pdHMuIEVpdGhlciB5b3UgZml4IHVw CmV2ZXJ5dGhpbmcsIG9yIGl0J3Mgbm90IGdvaW5nIHRvIGhhcHBlbi4gT3IgdGhlcmUncyBzb21l IHJlYXNvbmFibGUKZm9yd2FyZC1jb21wYXRpYmxlIG9wdGlvbi4KLURhbmllbAoKPiBBbmQgaW4g cHJhY3RpY2UsIEkgc3RpbGwgZG9uJ3Qgc2VlIHdoeSB0aGVyZSBoYXZlIHRvIGJlIHJlZ3Jlc3Np b25zLiBJZgo+IGEgZHJpdmVyIGFpbXMgdG8gc3VwcG9ydCBicm9rZW4gc2V0dXBzLCBpdCBzaG91 bGQgZGVhbCB3aXRoIHRoYXQgaXRzZWxmCj4gYW5kIG5vdCBleHBlY3QgdGhlIGNvcmUgdG8uIFdp dGggd2hhdCBJJ20gcHJvcG9zaW5nLCB0aGF0IGNvdWxkIG1lYW4KPiByZXBvcnRpbmcgdGhhdCBh IGZ1bGwgcmVwcm9iZSBpcyBuZWVkZWQgb24gYmFzaWNhbGx5IGFueSBldmVudCBsaWtlIHdlCj4g ZG8gdG9kYXkuIEJ1dCBwbGVhc2UsIGxldCBvdGhlciBkcml2ZXJzIGRvIGJldHRlciB0aGFuIHRo YXQgaWYgdGhleQo+IGNhbi4KPiAKPiBDaGVlcnMsCj4gCj4gUGF1bAo+IAo+ID4gLURhbmllbAo+ ID4gCj4gPiA+IENoZWVycywKPiA+ID4gCj4gPiA+IFBhdWwKPiA+ID4gCj4gPiA+ID4gLURhbmll bAo+ID4gPiA+IAo+ID4gPiA+ID4gQ2hlZXJzLAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBQYXVsCj4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+ID4gQ2hlZXJzLAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFBhdWwKPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IC1EYW5pZWwKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+ID4gPiBUaGVuIHdlIHN0aWxsIGhhdmUgdGhlIGxlZ2FjeSBjYXNlOgo+ID4gPiA+ID4gPiA+ ID4gPiBIT1RQTFVHPTEKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IHdoZXJl IHVzZXJzcGFjZSBpcyBleHBlY3RlZCB0byByZXByb2JlIGFsbCB0aGUgY29ubmVjdG9ycy4KPiA+ ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IEkgdGhpbmsgdGhpcyB3b3VsZCBkZXNl cnZlIHRvIGJlIGEgc2VwYXJhdGUgc2VyaWVzIG9uIGl0cyBvd24uIFNvIEkgYW0KPiA+ID4gPiA+ ID4gPiA+ID4gcHJvcG9zaW5nIHRvIHRha2UgdGhpcyBvbmUgb2ZmIHlvdXIgcGxhdGUgYW5kIGNv bWUgdXAgd2l0aCBhbm90aGVyCj4gPiA+ID4gPiA+ID4gPiA+IHNlcmVzIGltcGxlbWVudGluZyB0 aGlzIHByb3Bvc2FsLiBXaGF0IGRvIHlvdSB0aGluaz8KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiA+IENoZWVycywKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ IFBhdWwKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gdjI6Cj4gPiA+ID4g PiA+ID4gPiA+ID4gICBNaW5vciBmaXhlcyBhdCBLRG9jIGNvbW1lbnRzIFtEYW5pZWxdCj4gPiA+ ID4gPiA+ID4gPiA+ID4gdjM6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICBDaGVjayB0aGUgcHJvcGVy dHkgaXMgcmVhbGx5IGF0dGFjaGVkIHdpdGggY29ubmVjdG9yIFtEYW5pZWxdCj4gPiA+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBD IDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gPiA+IFJldmlld2VkLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gPiA+ID4gPiA+ID4g PiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMg fCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiA+ID4g PiA+ICBpbmNsdWRlL2RybS9kcm1fc3lzZnMuaCAgICAgfCAgNSArKysrLQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK PiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9zeXNmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCj4g PiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggMThiMWFjNDQyOTk3Li42M2ZhOTUxYTIwZGIgMTAwNjQ0 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCj4g PiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCj4gPiA+ ID4gPiA+ID4gPiA+ID4gQEAgLTIxLDYgKzIxLDcgQEAKPiA+ID4gPiA+ID4gPiA+ID4gPiAgI2lu Y2x1ZGUgPGRybS9kcm1fc3lzZnMuaD4KPiA+ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPGRy bS9kcm1QLmg+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIK PiA+ID4gPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCj4gPiA+ ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gICNkZWZpbmUgdG9fZHJtX21pbm9y KGQpIGRldl9nZXRfZHJ2ZGF0YShkKQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAjZGVmaW5lIHRvX2Ry bV9jb25uZWN0b3IoZCkgZGV2X2dldF9kcnZkYXRhKGQpCj4gPiA+ID4gPiA+ID4gPiA+ID4gQEAg LTMyMCw2ICszMjEsOSBAQCB2b2lkIGRybV9zeXNmc19sZWFzZV9ldmVudChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgKiBTZW5kIGEgdWV2ZW50IGZvciB0aGUg RFJNIGRldmljZSBzcGVjaWZpZWQgYnkgQGRldi4gIEN1cnJlbnRseSB3ZSBvbmx5Cj4gPiA+ID4g PiA+ID4gPiA+ID4gICAqIHNldCBIT1RQTFVHPTEgaW4gdGhlIHVldmVudCBlbnZpcm9ubWVudCwg YnV0IHRoaXMgY291bGQgYmUgZXhwYW5kZWQgdG8KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICogZGVh bCB3aXRoIG90aGVyIHR5cGVzIG9mIGV2ZW50cy4KPiA+ID4gPiA+ID4gPiA+ID4gPiArICoKPiA+ ID4gPiA+ID4gPiA+ID4gPiArICogQW55IG5ldyB1YXBpIHNob3VsZCBiZSB1c2luZyB0aGUgZHJt X3N5c2ZzX2Nvbm5lY3Rvcl9zdGF0dXNfZXZlbnQoKQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBm b3IgdWV2ZW50cyBvbiBjb25uZWN0b3Igc3RhdHVzIGNoYW5nZS4KPiA+ID4gPiA+ID4gPiA+ID4g PiAgICovCj4gPiA+ID4gPiA+ID4gPiA+ID4gIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdfZXZlbnQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4g PiA+ID4gPiA+IEBAIC0zMzIsNiArMzM2LDM3IEBAIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdfZXZl bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9zeXNmc19ob3RwbHVnX2V2ZW50KTsKPiA+ ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiArLyoqCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAqIGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50IC0gZ2VuZXJhdGUgYSBE Uk0gdWV2ZW50IGZvciBjb25uZWN0b3IKPiA+ID4gPiA+ID4gPiA+ID4gPiArICogcHJvcGVydHkg c3RhdHVzIGNoYW5nZQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBAY29ubmVjdG9yOiBjb25uZWN0 b3Igb24gd2hpY2ggcHJvcGVydHkgc3RhdHVzIGNoYW5nZWQKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICogQHByb3BlcnR5OiBjb25uZWN0b3IgcHJvcGVydHkgd2hvZXMgc3RhdHVzIGNoYW5nZWQuCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIFNlbmQgYSB1ZXZl bnQgZm9yIHRoZSBEUk0gZGV2aWNlIHNwZWNpZmllZCBieSBAZGV2LiAgQ3VycmVudGx5IHdlCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAqIHNldCBIT1RQTFVHPTEgYW5kIGNvbm5lY3RvciBpZCBhbG9u ZyB3aXRoIHRoZSBhdHRhY2hlZCBwcm9wZXJ0eSBpZAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBy ZWxhdGVkIHRvIHRoZSBzdGF0dXMgY2hhbmdlLgo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8KPiA+ ID4gPiA+ID4gPiA+ID4gPiArdm9pZCBkcm1fc3lzZnNfY29ubmVjdG9yX3N0YXR1c19ldmVudChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3Bl cnR5KQo+ID4gPiA+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgIGNoYXIgaG90cGx1Z19zdHJbXSA9ICJIT1RQTFVHPTEiLCBjb25uX2lkWzMwXSwgcHJv cF9pZFszMF07Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgY2hhciAqZW52cFs0XSA9IHsgaG90 cGx1Z19zdHIsIGNvbm5faWQsIHByb3BfaWQsIE5VTEwgfTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgV0FSTl9PTighZHJtX21vZGVfb2JqX2ZpbmRfcHJv cF9pZCgmY29ubmVjdG9yLT5iYXNlLAo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHktPmJhc2UuaWQpKTsKPiA+ID4gPiA+ ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgc25wcmludGYoY29ubl9pZCwg QVJSQVlfU0laRShjb25uX2lkKSwKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAi Q09OTkVDVE9SPSV1IiwgY29ubmVjdG9yLT5iYXNlLmlkKTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICBzbnByaW50Zihwcm9wX2lkLCBBUlJBWV9TSVpFKHByb3BfaWQpLAo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICJQUk9QRVJUWT0ldSIsIHByb3BlcnR5LT5iYXNlLmlkKTsK PiA+ID4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgRFJNX0RFQlVH KCJnZW5lcmF0aW5nIGNvbm5lY3RvciBzdGF0dXMgZXZlbnRcbiIpOwo+ID4gPiA+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICBrb2JqZWN0X3VldmVudF9lbnYoJmRldi0+ cHJpbWFyeS0+a2Rldi0+a29iaiwgS09CSl9DSEFOR0UsIGVudnApOwo+ID4gPiA+ID4gPiA+ID4g PiA+ICt9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJtX3N5c2ZzX2Nvbm5l Y3Rvcl9zdGF0dXNfZXZlbnQpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ ID4gPiAgc3RhdGljIHZvaWQgZHJtX3N5c2ZzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAga2ZyZWUoZGV2 KTsKPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3N5c2Zz LmggYi9pbmNsdWRlL2RybS9kcm1fc3lzZnMuaAo+ID4gPiA+ID4gPiA+ID4gPiA+IGluZGV4IDRm MzExZTgzNmNkYy4uZDQ1NGVmNjE3YjJjIDEwMDY0NAo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLSBh L2luY2x1ZGUvZHJtL2RybV9zeXNmcy5oCj4gPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX3N5c2ZzLmgKPiA+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNCwxMCArNCwxMyBAQAo+ ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ICBzdHJ1Y3QgZHJtX2Rldmlj ZTsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgc3RydWN0IGRldmljZTsKPiA+ID4gPiA+ID4gPiA+ID4g PiArc3RydWN0IGRybV9jb25uZWN0b3I7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gK3N0cnVjdCBkcm1f cHJvcGVydHk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gIGludCBk cm1fY2xhc3NfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gIHZvaWQgZHJtX2NsYXNzX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2Ug KmRldik7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gIHZvaWQgZHJt X3N5c2ZzX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiA+ID4gPiA+ ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4gPiA+ICt2b2lkIGRybV9zeXNmc19jb25uZWN0b3Jf c3RhdHVzX2V2ZW50KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJvcGVydHkpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPiA+ ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+ID4gUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4K PiA+ID4gPiA+ID4gPiA+ID4gRW1iZWRkZWQgTGludXggYW5kIGtlcm5lbCBlbmdpbmVlcmluZwo+ ID4gPiA+ID4gPiA+ID4gPiBodHRwczovL2Jvb3RsaW4uY29tCj4gPiA+ID4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4gUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4K PiA+ID4gPiA+ID4gPiBFbWJlZGRlZCBMaW51eCBhbmQga2VybmVsIGVuZ2luZWVyaW5nCj4gPiA+ ID4gPiA+ID4gaHR0cHM6Ly9ib290bGluLmNvbQo+ID4gPiA+ID4gPiA+IAo+ID4gPiAtLQo+ID4g PiBQYXVsIEtvY2lhbGtvd3NraSwgQm9vdGxpbgo+ID4gPiBFbWJlZGRlZCBMaW51eCBhbmQga2Vy bmVsIGVuZ2luZWVyaW5nCj4gPiA+IGh0dHBzOi8vYm9vdGxpbi5jb20KPiA+ID4gCj4gPiAKPiA+ IAo+IC0tIAo+IFBhdWwgS29jaWFsa293c2tpLCBCb290bGluCj4gRW1iZWRkZWQgTGludXggYW5k IGtlcm5lbCBlbmdpbmVlcmluZwo+IGh0dHBzOi8vYm9vdGxpbi5jb20KPiAKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=