From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from axentia.se ([87.96.186.132]:64256 "EHLO EMAIL.axentia.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932200AbbLNKp4 (ORCPT ); Mon, 14 Dec 2015 05:45:56 -0500 From: Peter Rosin To: Jonathan Cameron , Linus Walleij , Peter Rosin , "linux-iio@vger.kernel.org" CC: "linux-gpio@vger.kernel.org" , "Alexandre Courbot" , Jean-Christophe Plagniol-Villard , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Lars-Peter Clausen , "mporter@linaro.org" Subject: RE: [RESEND RFC PATCH 0/2] Expose the PIO_ISR register on SAMA5D3 Date: Mon, 14 Dec 2015 10:38:30 +0000 Message-ID: <85d1850f20c141b2952d93be72199fdf@EMAIL.axentia.se> References: <1449544808-3163-1-git-send-email-peda@lysator.liu.se> <566C6122.6040406@kernel.org> In-Reply-To: <566C6122.6040406@kernel.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-iio-owner@vger.kernel.org List-Id: linux-iio@vger.kernel.org Sm9uYXRoYW4gQ2FtZXJvbiBbbWFpbHRvOmppYzIzQGtlcm5lbC5vcmddIHdyb3RlOg0KPiBPbiAx MS8xMi8xNSAxMjo1MywgTGludXMgV2FsbGVpaiB3cm90ZToNCj4gPiBRdW90aW5nIGV4dGVuc2l2 ZWx5IHNpbmNlIEknbSBpbnZvbHZpbmcgdGhlIGxpbnV4LWlpbyBtYWlsaW5nbGlzdC4NCj4gPiAN Cj4gPiBUaGUgdXNlIGNhc2UgeW91IGRlc2NyaWJlIGlzIGhhbmQtaW4tZ2xvdmUgd2l0aCBJbmR1 c3RyaWFsIEkvTy4NCj4gPiBJIHRoaW5rIHlvdSB3YW50IGEgdHJpZ2dlciBpbnRlcmZhY2UgZnJv bSBJSU8gYW5kIHJlYWQgZXZlbnRzIGZyb20NCj4gPiB1c2Vyc3BhY2UgdXNpbmcgdGhlIElJTyBj aGFyYWN0ZXIgZGV2aWNlLg0KPiA+IA0KPiA+IExvb2sgYXQgdGhlIHVzZXJzcGFjZSBleGFtcGxl cyBpbiB0b29scy9paW8gZm9yIGhvdyBpdCdzIHVzZWQNCj4gPiBpbiB1c2Vyc3BhY2UsIHRoZSBz dWJzeXN0ZW0gaXMgaW4gZHJpdmVycy9paW8uIEkgc3VzcGVjdA0KPiA+IGRyaXZlcnMvaWlvL2Fk Yy9wb2xsZWQtZ3Bpby5jIG9yIHNvbWV0aGluZyBpcyB3aGVyZSB5b3UgYWN0dWFsbHkNCj4gPiB3 YW50IHRvIGdvIHdpdGggdGhpcy4gVGhlIG1vZHVsZSBzaG91bGQgZG8gYWxsIHRoZSBmYXN0cGF0 aA0KPiA+IHdvcmsgYW5kIHRoZW4gZXhwb3NlIHdoYXQgeW91IGFjdHVhbGx5IHdhbnQgdG8ga25v dyB0bw0KPiA+IHVzZXJzcGFjZSB1c2luZyB0aGUgSUlPIHRyaWdnZXJzIG9yIGV2ZW50cy4NCj4g PiANCj4gPiBJIGhhdmUgdXNlZCBJSU8gbXlzZWxmLCBpdCBpcyByZWFsbHkgbmVhdCBmb3IgdGhp cyBraW5kIG9mIHVzZWNhc2UsDQo+ID4gYW5kIGRlc2lnbmVkIHJpZ2h0IGZyb20gdGhlIGdyb3Vu ZCB1cC4NCj4gPiANCj4gPiBJIHRoaW5rIHlvdSB3aG91bGQgdGhpbmsgYWJvdXQgaG93IHRvIHdy aXRlIHRoZSByaWdodCBraW5kIG9mDQo+ID4gZHJpdmVyIGZvciBJSU8gdG8gZG8gd2hhdCB5b3Ug d2FudC4NCj4gUGV0ZXIgaGFzIGEgc3BvdCBvZiBJSU8gZXhwZXJpZW5jZSBhcyB3ZWxsIDopDQoN ClJpZ2h0LCB0aGUgIkRBQyIgSSdtIHVzaW5nIHRvIGNvbnRyb2wgdGhlIGlucHV0IGxldmVsIG9u IHRoZSBjb21wYXJhdG9yDQppcyBhY3R1YWxseSBteSBJSU8gbWNwNDUzMSBwb3RlbnRpb21ldGVy IGRyaXZlci4gQnV0IEkgaGF2ZSBvbmx5DQpydWRpbWVudGFyeSBJSU8ga25vd2xlZGdlOyB0aGF0 IGRyaXZlciBpcyB0cml2aWFsLg0KDQo+IEknbSBub3Qgc3VyZSBJIGVudGlyZWx5IHVuZGVyc3Rh bmQgd2hhdCB0aGUgZGF0YSBmbG93cyBhcmUgaGVyZSBzbyBJIG1heQ0KPiBnZXQgdGhpcyBjb21w bGV0ZWx5IHdyb25nIQ0KPiANCj4gU291bmRzIGxpa2UgYSBxdWljaywgZGlydHkgYW5kIHNpbXBs ZSAnY2FwdHVyZSB1bml0JyBsaWtlIHlvdSdkIGZpbmQgb24gYSBQTEMgdG8NCj4gbWUgKGJlIGJp dCBvbmUgdGhhdCBkb2Vzbid0IGdyYWIgbXVjaCBkYXRhIC0gSSB1c2UgdGhlc2UgYWxsIHRoZSB0 aW1lIGF0DQo+IHdvcmsgdG8gY2F0Y2ggdGhlIG91dHB1dCBmcm9tIGJlYW0gYnJlYWsgc2Vuc29y IG9uIGF1dG9tYXRlZCBzeXN0ZW1zIGFuZA0KPiBzdHVmZiBsaWtlIHRoYXQpLiAgVGltZXJzIG9m dGVuIHN1cHBvcnQgYSBjb3B5IHRvIHJlZ2lzdGVyIG9uIGEgZ3Bpbw0KPiBzaWduYWwgYnV0IEkn bSBub3Qgc3VyZSBJJ3ZlIGV2ZXIgc2VlbiB0aGF0IHN1cHBvcnRlZCBpbiBrZXJuZWwgZWl0aGVy DQo+IChzb21lIGRpc2N1c3Npb24gYWJvdXQgZG9pbmcgdGhpcyBpbiBJSU8gb2NjdXJyZWQgYSB3 aGlsZSBhZ28gYnV0IEkgZG9uJ3QNCj4gdGhpbmsgYW55dGhpbmcgZXZlciBjYW1lIG9mIGl0IHVu Zm9ydHVuYXRlbHkpLiBJdCB3YXMgZm9yIHRoZSBUSSBFQ0FQIGRldmljZXMNCj4gYnkgTWF0dCBQ b3J0ZXIgKGNjJ2QpICBOb3QgdGhhdCBjbG9zZWx5IHJlbGF0ZWQgYnV0IHBlcmhhcHMgTWF0dCB3 aWxsDQo+IGhhdmUgc29tZSBpbnNpZ2h0IGhlcmUuDQo+IA0KPiBTbzoNCj4gDQo+IEFyZSB3ZSBs b29raW5nIHRvIHN5bmNocm9uaXNlZCBjb250cm9sIG9mIHRoZSBEQUMNCj4gZmVlZGluZyB0aGUg Y29tcGFyYXRvciBvciBpcyB0aGF0IGVudGlyZWx5IGF1dG9ub21vdXM/DQo+IChmb3Igbm93IEkn bGwgYXNzdW1lIGF1dG9ub21vdXMgLSBpdCBnZXRzIGludGVyZXN0aW5nIGlmDQo+ICBub3QgLSB3 ZSdkIG5lZWQgdGhlIGJ1ZmZlcmVkIG91dHB1dCBzdHVmZiBMYXJzIGhhcyBmb3IgdGhhdCkNCj4g DQo+IEhvdyBmYXN0IGFyZSB3ZSB0YWxraW5nPw0KPiANCj4gU28gSSB0aGluayB3ZSBhcmUgYmFz aWNhbGx5IGxvb2tpbmcgZm9yIGZhc3Qgc2FtcGxpbmcgb2YgdGhlIGdwaW8gd2l0aCBsYXRjaGlu Zy4NCj4gDQo+IEkgc3VzcGVjdCB0aGUgcmF0ZXMgYXJlIGhpZ2ggZW5vdWdoIHRoYXQgYW4gSUlP IHRyaWdnZXIgaXMgZ29pbmcgdG8gYmUgdG9vIGV4cGVuc2l2ZQ0KPiAoYXMgaXQgZWZmZWN0aXZl bHkgcnVucyBhcyBhbiBpcnEpLiAgVGhhdCdzIGZpbmUgdGhvdWdoIGFzIHRoZXkgYXJlIG9wdGlv bmFsIGlmDQo+IHlvdSBoYXZlIGEgZ29vZCByZWFzb24gbm90IHRvIHVzZSB0aGVtIGFuZCBhIGRp cmVjdCBwb2xsaW5nIG9mIHRoZSBpc3IgYW5kIGZpbGxpbmcgYQ0KPiBidWZmZXIgbWlnaHQgd29y ay4NCj4gDQo+IFdlIGRvbid0IGN1cnJlbnRseSBoYXZlIDEgYml0IGNoYW5uZWwgc3VwcG9ydCBp biBJSU8gYW5kIGluIHRoaXMgcGFydGljdWxhciBjYXNlDQo+IG91ciBub3JtYWwgYnVmZmVycyBh cmUgZ29pbmcgdG8gYmUgdmVyeSBpbmVmZmljaWVudCBhcyB0aGV5IGFyZSBrZmlmbyBiYXNlZA0K PiBhbmQgaGVuY2Ugd2lsbCBidXJuIDEgYnl0ZSBwZXIgc2FtcGxlIGlmIHdlIGRvIHRoaXMgdGhl IHNpbXBsZSB3YXkuDQo+IFRoZSBjbG9zZXN0IHdlIGhhdmUgZ290dGVuIHRvIGEgMSBiaXQgc3Vw cG9ydCB3YXMgYSBjb21wYXJhdG9yIGRyaXZlciBhbmQNCj4gaW4gdGhlIGVuZCB0aGUgYXV0aG9y IGRlY2lkZWQgdG8gc3VwcG9ydCB0aGF0IHZpYSBldmVudHMgd2hpY2ggaGF2ZSB3YXkgaGlnaGVy DQo+IG92ZXJoZWFkIHRoYW4gSSB0aGluayB5b3Ugd2FudC4NCj4gDQo+IFNvIGlmIElJTyBpcyB0 aGUgc2Vuc2libGUgd2F5IHRvIHN1cHBvcnQgdGhpcyBJIHRoaW5rIHdlIG5lZWQgc29tZXRoaW5n IGxpa2UNCj4gdGhlIGZvbGxvd2luZzoNCj4gDQo+IDEpIDEgYml0IGRhdGEgdHlwZSBzdXBwb3J0 IGluIElJTyAtIG5vdCB0b28gYmFkIHRvIGFkZCwgdGhvdWdoIHdpbGwgbmVlZA0KPiAgICB0byBo YXZlIHNvbWUgcmVzdHJpY3Rpb25zIGluIHRoZSBkZW11eCBhcyBhcmJpdGFyeSBiaXQgY2hhbm5l bCByZWNvbWJpbmluZw0KPiAgICB3b3VsZCBiZSBob3JyaWJsZSBhbmQgY29zdGx5LiAgU28gaW4g dGhlIGZpcnN0IGluc3RhbmNlIHdlJ2QgcHJvYmFibHkgYnVybiAxIGJ5dGUNCj4gICAgcGVyIDEg Yml0IGNoYW5uZWwgZWFjaCBzYW1wbGUgLSBhZGRyZXNzIHRoaXMgbGF0ZXIgcGVyaGFwcy4gIElm IGJ1cm5pbmcNCj4gICAgYSBieXRlLCBqdXN0IHNwZWNpZnkgdGhhdCB5b3UgaGF2ZSBhIGNoYW5u ZWwgd2l0aCByZWFsYml0cyA9IDEsIHN0b3JhZ2ViaXRzID0gOA0KPiAgICBhbmQgaXQgc2hvdWxk IGFsbCB3b3JrLiAgSSdkIGxpa2UgdG8gYWRkIDEgYml0IHN1cHBvcnQgZnVsbHkgaWYgeW91IGFy ZQ0KPiAgICBpbnRlcmVzdGVkIHRob3VnaCENCj4gDQo+IDIpIEEgZHJpdmVyIHRoYXQgY2FuIGVm ZmVjdGl2ZWx5IGNoZWNrIGFuZCBjbGVhciB0aGUgaW50ZXJydXB0IHJlZ2lzdGVyIGFuZA0KPiAg ICBwdXNoIHRoYXQgdG8gdGhlIGtmaWZvLiAgUHJvYmFibHkgcnVubmluZyBhIGt0aHJlYWQgdG8g a2VlcCB0aGUgb3ZlcmhlYWQNCj4gICAgbG93IC0gc29tZXRoaW5nIGxpa2UgdGhlIHJlY2VudCBJ TkEyWFggZHJpdmVyIGlzIGRvaW5nICh0aG91Z2ggZm9yIGEgcmF0aGVyDQo+ICAgIGRpZmZlcmVu dCByZWFzb24pLiAgVGhhdCB3b3VsZCB0aGVuIHNob3ZlIGRhdGEgaW50byB0aGUgYnVmZmVyIGF0 IHJlZ3VsYXINCj4gICAgaW50ZXJ2YWxzLg0KPiANCj4gMykgTm9ybWFsIHVzZXJzcGFjZSBjb2Rl IHdvdWxkIHRoZW4gcmVhZCB0aGlzIC0gaWRlYWxseSB3aXRoIHVwZGF0ZXMgdG8NCj4gICAgY29y cmVjdGx5IGludGVycHJldCBpdCBhcyBib29sZWFuIGRhdGEuDQo+IA0KPiBEb2Vzbid0IHNvdW5k IHRvbyBiYWQgLSBqdXN0IGEgcXVlc3Rpb24gb2Ygd2hldGhlciBpdCB3aWxsIGJlIGxpZ2h0d2Vp Z2h0DQo+IGVub3VnaCBmb3IgeW91ciB1c2UgY2FzZS4NCj4gDQo+IEFzc3VtaW5nIEkgaGF2ZSB1 bmRlcnN0b29kIGV2ZW4gdmFndWVseSB3aGF0IHlvdSBhcmUgZG9pbmcgOykNCj4gIA0KPiBTb3Vu ZHMgZnVuLg0KDQpIbW0sIEkndmUgYmVlbiByZWFkaW5nIHRoZSByZXNwb25zZXMgZnJvbSB5b3Ug YW5kIExpbnVzIGEgY291cGxlIG9mDQp0aW1lcywgYW5kIEkgdGhpbmsgeW91IGhhdmUgbWlzdW5k ZXJzdG9vZD8gWW91IHRhbGsgYWJvdXQgdHJpZ2dlcnMsDQpmYXN0cGF0aCwgaGlnaCByYXRlcyBh bmQgd2hhdG5vdC4gVGhhdCBpcyBub3Qgd2hhdCBJIG5lZWQgYW5kIG5vdCBteQ0KaXRjaCBhdCBh bGwhIEknbSBub3QgbG9va2luZyBhdCBnZXR0aW5nIGEgY29udGludW91cyBzdHJlYW0gb2YgZW52 ZWxvcGUNCnZhbHVlcywgSSBvbmx5IG5lZWQgdG8gY2hlY2sgdGhlIGVudmVsb3BlIHZhbHVlIGV2 ZXJ5IDUgc2Vjb25kcyBvcg0Kc28uIEFsc28sIHRoZSB3aG9sZSB0aGluZyBpcyBjb21wbGljYXRl ZCBieSB0aGUgZW52ZWxvcGUgZGV0ZWN0b3INCmJlaW5nIG11bHRpcGxleGVkLCBzbyB0aGF0IHRo ZSBvbmUgZW52ZWxvcGUgZGV0ZWN0b3IgY2FuIGJlIHVzZWQNCmZvciBhIGhhbmRmdWwgb2Ygc2ln bmFscy4NCg0KVGhlIHNpbXBsaWZpZWQgc2NoZW1hdGljcyBhcmU6DQoNCiAgICAgLS0tLS0tLQ0K IC0+IHwgSTEgICAgfCAgICAgICAgICAgICAgLS0tLS0tLSAgICAgIC0tLS0tLS0NCiAtPiB8IEky ICBPIHwgLT4gSU5QVVQgLT4gfCBBICAgICB8ICAgIHwgICAgICAgfA0KIC0+IHwgSTMgICAgfCAg ICAgICAgICAgICB8ICAgICBDIHwgLT4gfCBncGlvICB8DQogLT4gfCBJNCAgICB8ICAgICAgREFD IC0+IHwgQiAgICAgfCAgICB8ICAgICAgIHwNCiAtPiB8IEk1ICAgIHwgICAgICAgICAgICAgIC0t LS0tLS0gICAgICAtLS0tLS0tDQogICAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIENNUCAgICAg ICAgICBNQ1UNCiAgICAgICBNVVgNCg0KVXNlcnNwYWNlIGRvZXMgdGhlIGZvbGxvd2luZyB3aGVu IGRvaW5nIHRoaXMgdy9vIHRoZSBpc3IgcGF0Y2hlczoNCg0KMS4gc2VsZWN0IHNpZ25hbCB1c2lu ZyB0aGUgTVVYDQoyLiBzZXQgdGhlIERBQyBzbyBoaWdoIHRoYXQgSU5QVVQgaXMgbmV2ZXIgcmVh Y2hpbmcgdGhhdCBsZXZlbC4NCiAgIEMgKGFuZCB0aHVzIGdwaW8pIGlzIG5vdyBzdGFibGUNCjMu IHN0YXJ0IHdhaXRpbmcgZm9yIGludGVycnVwdHMgb24gZ3Bpbw0KNC4gYWRqdXN0IHRoZSBEQUMg bGV2ZWwgdG8gdGhlIGxldmVsIG9mIGludGVyZXN0DQo1LiBhYm9ydCBvbiBpbnRlcnJ1cHQgb3Ig dGltZW91dA0KDQpJZiB0aGUgbWVhc3VyZW1lbnQgdGltZWQgb3V0LCBJIGtub3cgdGhhdCB0aGUg c2lnbmFsIGlzIHdlYWtlciB0aGFuIHRoZQ0KZ2l2ZW4gREFDIHRocmVzaG9sZCwgYW5kIGNhbiBn byBiYWNrIHRvIDQgd2l0aCBhIGxvd2VyIERBQyBsZXZlbC4gSWYgdGhlDQptZWFzdXJlbWVudCB3 YXMgaW50ZXJydXB0ZWQsIEkgbmVlZCB0byBnbyBiYWNrIHRvIDIgaW4gb3JkZXIgdG8gc2V0IGEN CmhpZ2hlciBEQUMgbGV2ZWwgd2hlbiBwb2ludCA0IGlzIHJlYWNoZWQuDQoNClRoZSBhY3R1YWwg SU5QVVQgZW52ZWxvcGUgaXMgZm91bmQgb3V0IGJ5IHJlcGVhdGluZyB0aGlzIHVudGlsIHdlDQpy dW4gb3V0IG9mIGJpdHMgaW4gdGhlIERBQyAoaS5lLiB1c2luZyBhIGJpbmFyeSBzZWFyY2ggcGF0 dGVybikuDQoNCkluIG15IHVzZSBjYXNlLCBJIGRvbid0IHByZXRlbmQgdG8gZGV0ZWN0IHNpZ25h bHMgbG93ZXIgdGhhbiAyMEh6LCBzbw0KbXkgdGltZW91dCBpcyA1MG1zLg0KDQpXaXRoIHRoZSBp c3IgcGF0Y2hlcywgdGhlIGFib3ZlIHRyYW5zZm9ybXMgaW50bzoNCg0KMS4gc2VsZWN0IHNpZ25h bCB1c2luZyB0aGUgTVVYDQoyLiBzZXQgdGhlIERBQyBzbyBoaWdoIHRoYXQgSU5QVVQgaXMgbmV2 ZXIgcmVhY2hpbmcgdGhhdCBsZXZlbC4NCiAgIEMgKGFuZCB0aHVzIGdwaW8pIGlzIG5vdyBzdGFi bGUNCjMuIHJlYWQgdGhlIGlzciBiaXQgdG8gY2xlYXIgaXQNCjQuIGFkanVzdCB0aGUgREFDIGxl dmVsIHRvIHRoZSBsZXZlbCBvZiBpbnRlcmVzdA0KNS4gcmVhZCB0aGUgaXNyIGJpdCBhZ2FpbiBh ZnRlciA1MG1zDQoNClRoZSByZXN1bHQgaXMgYXZhaWxhYmxlIGRpcmVjdGx5IGluIHRoZSBpc3Ig Yml0LCBubyBpbnRlcnJ1cHRzIG5lZWRlZC4NCklmIEkgaGFwcGVuIHRvIHdhaXQgbG9uZ2VyIHRo YW4gNTBtcywgdGhhdCdzIG5vdCBhIHByb2JsZW0gZWl0aGVyLiBXaXRoDQp0aGUgaXNyIHJlZ2lz dGVyIHZlcnNpb24sIHRoZXJlIGlzIHNpbXBseSBubyBuZWVkIHRvIGRvIGFueSBvZiB0aGlzDQp3 aXRoIGFueSBjcml0aWNhbCB1cmdlbmN5Lg0KDQpUaGUgYWN0dWFsIElOUFVUIGVudmVsb3BlIGlz IGZvdW5kIG91dCBpbiB0aGUgc2FtZSB3YXkgYXMgaW4gdGhlDQppbnRlcnJ1cHQgY2FzZSwgYnkg bG9vcGluZyB1bnRpbCB3ZSBydW4gb3V0IG9mIERBQyBiaXRzLg0KDQpTbywgbXkgcHJvYmxlbSBp cyB0aGF0IGRvaW5nIHRoaXMgd2l0aCB0aGUgaW50ZXJydXB0IHZlcnNpb24NCmludHJvZHVjZXMg YSByaXNrIHRoYXQgeW91IGdldCBhIG5ldmVyLWVuZGluZyBmbG9vZCBvZiBpbnRlcnJ1cHRzIGlm DQpJTlBVVCBoYXMgYSBmcmVxdWVuY3kgdGhhdCdzIGhpZ2ggZW5vdWdoLiBVc2VyIHNwYWNlIG1h eSBuZXZlciBnZXQNCmEgY2hhbmNlIHRvIHNheSB0aGF0IG1vcmUgaW50ZXJydXB0cyBhcmUgbm90 IGludGVyZXN0aW5nLiBPciwNCmF0IGxlYXN0LCB0aGUgZGV2aWNlIG1heSBiZSB0aWVkIHVwIHdp dGggaGFuZGxpbmcgdG90YWxseSBwb2ludGxlc3MNCmludGVycnVwdHMgZm9yIGFuIHVuYWNjZXB0 YWJsZSBhbW91bnQgb2YgdGltZSBiZWZvcmUgdXNlciBzcGFjZQ0KZ2V0cyB0byBydW4uDQoNCklO UFVUIG1heSBiZSBhbiBleHRlcm5hbCBzaWduYWwgdG8gdGhlIGRldmljZSwgYW5kIHdoaWxlIEkg Y291bGQgYWRkDQpzcGVjcyB0aGF0IHN0YXRlIGEgbWF4IGZyZXF1ZW5jeSBhbmQgdGhlbiBibGFt ZSB0aGUgZW5kIHVzZXIgaW4gY2FzZSBvZg0KdHJvdWJsZSwgSSB3b3VsZCB2ZXJ5IG11Y2ggbGlr ZSBpdCBpZiBpdCB3YXMgbm90IHBvc3NpYmxlIHRoZSBraWxsIHRoZQ0KZGV2aWNlIGJ5IGFwcGx5 aW5nIHRoZSAicmlnaHQiIHNpZ25hbC4NCg0KDQoNCkkgaGF2ZSByZWFsaXplZCB0aGF0IEkgY291 bGQgd29yayB3aXRoIG9uZS1zaG90LWludGVycnVwdHMuIFRoZW4gdGhlDQp1cmdlbmN5IHRvIGRp c2FibGUgaW50ZXJydXB0cyBnbyBhd2F5LCBhcyBvbmx5IG9uZSBpbnRlcnJ1cHQgd291bGQNCmJl IHNlcnZlZC4gVGhhdCB3YXMgbm90IG15IGltbWVkaWF0ZSBzb2x1dGlvbiB0aG91Z2gsIGFzIEkg aGF2ZSBiZWVuDQp1c2luZyBpc3IgdHlwZSByZWdpc3RlcnMgaW4gdGhpcyB3YXkgc2V2ZXJhbCB0 aW1lcyBiZWZvcmUuDQoNCk9uZSBnYWluIHdpdGggdGhlIGludGVycnVwdCBhcHByb2FjaCBpcyB0 aGF0IHlvdSBtYXkgbm90IG5lZWQgdG8gd2FpdA0KdGhlIGZ1bGwgNTBtcyBmb3IgZWFjaCBtZWFz dXJlbWVudCwgYnV0IEkgY2FuJ3Qgc2F5IHRoYXQgSSBjYXJlIG11Y2gNCmFib3V0IHRoYXQuDQoN CklmIHRoaXMgaXMgdG8gYmUgZG9uZSBpbiBJSU8sIEkgaW1hZ2luZSB0aGF0IHRoZSBzYW5lc3Qg dGhpbmcgd291bGQNCmJlIHRvIGludGVncmF0ZSB0aGUgd2hvbGUgREFDLWxvb3AgYW5kIHByZXNl bnQgYSBmaW5pc2hlZCBlbnZlbG9wZQ0KdmFsdWUgdG8gdXNlciBzcGFjZT8gVGhpcyBlbnZlbG9w ZSBkZXRlY3RvciB3b3VsZCBoYXZlIHRvIGJlIHByZXR0eQ0KY29uZmlndXJhYmxlLCBvciBpdCB3 aWxsIGJlIG5leHQgdG8gdXNlbGVzcyB0byBhbnlib2R5IGJ1dCBtZS4NCg0KSSBjb3VsZCBpbWFn aW5nIHRoYXQgdGhpcyBuZXcgSUlPIGRyaXZlciBzaG91bGQgYmUgYWJsZSB0byB3b3JrDQp3aXRo IGFueSBEQUMgdHlwZSBkZXZpY2UsIHdoaWNoIGluIG15IGNhc2Ugd291bGQgYmUgdGhlIG1jcDQ1 MzENCmRwb3QuIFdoaWNoIGlzIG5vdCBhIERBQywgbWF5YmUgdGhhdCBjb3VsZCBiZSBzb2x2ZWQg d2l0aCBhIG5ldw0KZGFjLWRwb3QgZHJpdmVyLCBhcHBsaWNhYmxlIHRvIGNhc2VzIHdoZXJlIGEg ZHBvdCBpcyB3aXJlZCBhcyBhDQpzaW1wbGUgdm9sdGFnZSBkaXZpZGVyPyBUaGUgbmV3IElJTyBk cml2ZXIgYWxzbyBuZWVkcyB0byBrbm93IGhvdw0KdG8gZ2V0IGEgcmVhZGluZyBmcm9tIHRoZSBj b21wYXJhdG9yLiBJIHRoaW5rIHRoZSBkcml2ZXIgc2hvdWxkDQpzdXBwb3J0IGhhdmluZyBhIGxh dGNoIGJldHdlZW4gdGhlIGNvbXBhcmF0b3IgYW5kIHRoZSBncGlvLCBzbyBpdA0KbmVlZCB0byBr bm93IGhvdyB0byBvcHRpb25hbGx5ICJyZXNldCB0aGUgY29tcGFyYXRvciIuIFRoYXQNCndvdWxk IGhhdmUgc29sdmVkIHRoZSB3aG9sZSBwcm9ibGVtLCB5b3Ugd291bGQgbmV2ZXIgaGF2ZSBzZWVu DQphbnkgb2YgdGhpcyBpZiBJIGhhZCBzdWNoIGEgbGF0Y2ggb24gbXkgYm9hcmQuIEJ1dCB0aGUg aXNyDQpyZWdpc3RlciBpcyBhIGxhdGNoLCBzby4uLg0KDQpSZWdhcmRsZXNzLCBJIHRoaW5rIHN1 Y2ggYSBkcml2ZXIgc3RpbGwgbmVlZHMgc3VwcG9ydCBmcm9tIGdwaW8NCmFuZC9vciBwaW5jdHJs LiBFaXRoZXIgZXhwb3NpbmcgdGhlIGlzciByZWdpc3RlciBvciBzdXBwb3J0aW5nDQpvbmUtc2hv dC1pbnRlcnJ1cHRzIHRoYXQgZGlzYXJtIHRoZW1zZWx2ZXMgYmVmb3JlIHJlc3RvcmluZyB0aGUN CnByb2Nlc3NvciBpbnRlcnJ1cHQgZmxhZyAobWF5YmUgdGhhdCBleGlzdHM/KS4gT3RoZXJ3aXNl IHRoZQ0KY29yZSBwcm9ibGVtIHJlbWFpbnMgdW5zb2x2ZWQuIEFsc28sIHRoaXMgaW1hZ2luYXJ5 IElJTyBkcml2ZXINCnByb2JhYmx5IGhhdmUgdG8gYmUgdG90YWxseSBvYmxpdmlvdXMgb2YgdGhl IE1VWCwgb3IgdGhlIG51bWJlcg0Kb2YgcG9zc2liaWxpdGllcyBleHBsb2RlLg0KDQpDaGVlcnMs DQpQZXRlcg0KDQo+ID4gWW91cnMsDQo+ID4gTGludXMgV2FsbGVpag0KPiA+IA0KPiA+IE9uIFR1 ZSwgRGVjIDgsIDIwMTUgYXQgNDoyMCBBTSwgUGV0ZXIgUm9zaW4gPHBlZGFAbHlzYXRvci5saXUu c2U+IHdyb3RlOg0KPiA+PiBGcm9tOiBQZXRlciBSb3NpbiA8cGVkYUBheGVudGlhLnNlPg0KPiA+ Pg0KPiA+PiBIaSENCj4gPj4NCj4gPj4gSSBoYXZlIGEgc2lnbmFsIGNvbm5lY3RlZCB0byBhIGdw aW8gcGluIHdoaWNoIGlzIHRoZSBvdXRwdXQgb2YNCj4gPj4gYSBjb21wYXJhdG9yLiBCeSBjaGFu Z2luZyB0aGUgbGV2ZWwgb2Ygb25lIG9mIHRoZSBpbnB1dHMgdG8gdGhlDQo+ID4+IGNvbXBhcmF0 b3IsIEkgY2FuIGRldGVjdCB0aGUgZW52ZWxvcGUgb2YgdGhlIG90aGVyIGlucHV0IHRvDQo+ID4+ IHRoZSBjb21wYXJhdG9yIGJ5IHVzaW5nIGEgc2VyaWVzIG9mIG1lYXN1cmVtZW50cyBtdWNoIGlu IHRoZQ0KPiA+PiBzYW1lIG1hbmVyIGEgbWFudWFsIEFEQyB3b3JrcywgYnV0IHdhdGNoaW5nIGZv ciBjaGFuZ2VzIG9uIHRoZQ0KPiA+PiBjb21wYXJhdG9yIG92ZXIgYSBwZXJpb2Qgb2YgdGltZSBp bnN0ZWFkIG9mIG9ubHkgdGhlIGltbWVkaWF0ZQ0KPiA+PiBvdXRwdXQuDQo+ID4+DQo+ID4+IE5v dywgdGhlIGlucHV0IHNpZ25hbCB0byB0aGUgY29tcGFyYXRvciBtaWdodCBoYXZlIGEgaGlnaCBm cmVxdWVuY3ksDQo+ID4+IHdoaWNoIHdpbGwgY2F1c2UgdGhlIG91dHB1dCBmcm9tIHRoZSBjb21w YXJhdG9yIChhbmQgdGh1cyB0aGUgR1BJTw0KPiA+PiBpbnB1dCkgdG8gY2hhbmdlIHJhcGlkbHku DQo+ID4+DQo+ID4+IEEgY29tbW9uKD8pIGlkaW9tIGZvciB0aGlzIGlzIHRvIHVzZSB0aGUgaW50 ZXJydXB0IHN0YXR1cyByZWdpc3Rlcg0KPiA+PiB0byBjYXRjaCB0aGUgZ2xpdGNoZXMsIGJ1dCB0 aGVuIG5vdCBoYXZlIGFueSBpbnRlcnJ1cHQgdGllZCB0bw0KPiA+PiB0aGUgcGluIGFzIHRoYXQg Y291bGQgcG9zc2libHkgZ2VuZXJhdGUgcG9pbnRsZXNzIGJ1cnN0cyBvZg0KPiA+PiAoZXhwZW5z aXZlKSBpbnRlcnJ1cHRzLg0KPiA+Pg0KPiA+PiBTbywgdGhlc2UgdHdvIHBhdGNoZXMgZXhwb3Nl IGFuIGludGVyZmFjZSB0byB0aGUgUElPX0lTUiByZWdpc3Rlcg0KPiA+PiBvZiB0aGUgcGlvIGNv bnRyb2xsZXJzIG9uIHRoZSBwbGF0Zm9ybSBJJ20gdGFyZ2V0dGluZy4gVGhlIGZpcnN0DQo+ID4+ IHBhdGNoIGFkZHMgc29tZSBpbmZyYXN0cnVjdHVyZSB0byB0aGUgZ3BpbyBjb3JlIGFuZCB0aGUg c2Vjb25kDQo+ID4+IHBhdGNoIGhvb2tzIHVwICJteSIgcGluIGNvbnRyb2xsZXIuDQo+ID4+DQo+ ID4+IEJ1dCBoZXksIHRoaXMgc2VlbXMgbGlrZSBhbiBvbGQgcHJvYmxlbSBhbmQgSSB3YXMgc3Vy cHJpc2VkIHRoYXQNCj4gPj4gSSBoYWQgdG8gdG91Y2ggdGhlIHNvdXJjZSB0byBkbyBpdC4gV2hp Y2ggbWFrZXMgbWUgd29uZGVyIHdoYXQgSSdtDQo+ID4+IG1pc3NpbmcgYW5kIHdoYXQgb3RoZXJz IG5lZWRpbmcgdG8gc2VlIHNob3J0IHB1bHNlcyBvbiBhIHBpbiBidXQgbm90DQo+ID4+IG5lZWRp bmcvd2FudGluZyBpbnRlcnJ1cHRzIGFyZSBkb2luZz8NCj4gQmFzaWNhbGx5IGEgY2FwdHVyZSB1 bml0Li4uIEJlIGl0IG9uZSB0aGF0IGRvZXNuJ3QgZ3JhYiBhbnl0aGluZyBlbHNlDQo+IGF0IHRo ZSBtb21lbnQuDQo+ID4+DQo+ID4+IFllcywgdGhlcmUgbmVlZHMgdG8gYmUgYSB3YXkgdG8gc2Vs ZWN0IHRoZSBpbnRlcnJ1cHQgZWRnZSB3L28NCj4gPj4gYWN0dWFsbHkgYXJtaW5nIHRoZSBpbnRl cnJ1cHQsIHRoYXQgaXMgbWlzc2luZy4gQW5kIHByb2JhYmx5DQo+ID4+IG90aGVyIHRoaW5ncyB0 b28sIGJ1dCBJIGRpZG4ndCB3YW50IHRvIGRvIG1vcmUgd29yayBpbiBjYXNlIHRoaXMNCj4gPj4g aXMgYSBkZWFkIGVuZCBmb3Igc29tZSByZWFzb24uLi4NCj4gPj4NCj4gPj4gQ2hlZXJzLA0KPiA+ PiBQZXRlcg0KPiA+Pg0KPiA+PiBQZXRlciBSb3NpbiAoMik6DQo+ID4+ICAgZ3BpbzogQWRkIGlz ciBwcm9wZXJ0eSBvZiBncGlvIHBpbnMNCj4gPj4gICBwaW5jdHJsOiBhdDkxOiBleHBvc2UgdGhl IGlzciBiaXQNCj4gPj4NCj4gPj4gIERvY3VtZW50YXRpb24vZ3Bpby9zeXNmcy50eHQgICB8ICAg MTIgKysrKysrKysrKw0KPiA+PiAgZHJpdmVycy9ncGlvL2dwaW9saWItc3lzZnMuYyAgIHwgICAz MCArKysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4gIGRyaXZlcnMvZ3Bpby9ncGlvbGliLmMg ICAgICAgICB8ICAgMTUgKysrKysrKysrKysrDQo+ID4+ICBkcml2ZXJzL3BpbmN0cmwvcGluY3Ry bC1hdDkxLmMgfCAgIDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0N Cj4gPj4gIGluY2x1ZGUvbGludXgvZ3Bpby9jb25zdW1lci5oICB8ICAgIDEgKw0KPiA+PiAgaW5j bHVkZS9saW51eC9ncGlvL2RyaXZlci5oICAgIHwgICAgMiArKw0KPiA+PiAgNiBmaWxlcyBjaGFu Z2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4gLS0NCj4g Pj4gMS43LjEwLjQNCj4gPj4NCg==