From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Patel, Vedang" Subject: Re: Regression on rt kernel while using POSIX timers Date: Thu, 2 Mar 2017 03:23:02 +0000 Message-ID: <1488424982.29259.32.camel@intel.com> References: <1486579285.29816.105.camel@intel.com> <20170210190708.gkx5pzxnd6uhfczn@linutronix.de> <1487011713.17279.27.camel@intel.com> <20170215165447.zr4k5rmenwvormdk@linutronix.de> <20170216020516.GB1733@jcartwri.amer.corp.natinst.com> <1487212458.10966.7.camel@intel.com> <1487727789.28401.17.camel@intel.com> <20170301152230.mjoi44so6t5qy3q2@linutronix.de> <472B70D9-E1AF-4D14-BE79-ABAAC74BA4DB@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "ranshalit@gmail.com" , "julia@ni.com" , "linux-rt-users@vger.kernel.org" , "Hart, Darren" To: "bigeasy@linutronix.de" , "tlsmith3777@gmail.com" Return-path: Received: from mga02.intel.com ([134.134.136.20]:45191 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753447AbdCBD0P (ORCPT ); Wed, 1 Mar 2017 22:26:15 -0500 In-Reply-To: <472B70D9-E1AF-4D14-BE79-ABAAC74BA4DB@gmail.com> Content-Language: en-US Content-ID: <18C04B4E6FB6434CA21F72C4DC684701@intel.com> Sender: linux-rt-users-owner@vger.kernel.org List-ID: SGkgVHJhY3ksDQoNClRoZSB0ZXN0cyBiZWxvdyBpbmNsdWRlICctbicgYXJndW1lbnQgd2hpY2gg bWVhbiB0aGV5IHdpbGwgdXNlDQpjbG9ja19uYW5vc2xlZXAuIEkgZG9uJ3QgZmFjZSBhbnkgcHJv YmxlbXMgd2l0aCB0aGlzIHNjZW5hcmlvLiBJIGZhY2UNCnByb2JsZW1zIHdoZW4gSSBkbyBub3Qg cHJvdmlkZSB0aGUgJy1uJyBhcmd1bWVudCBhbmQgUE9TSVggdGltZXJzIGFyZQ0KdXNlZC4gQnV0 LCBmb3IgeW91ciBpbmZvcm1hdGlvbiwgSSBzZWUgYXZlcmFnZSBvZiAxMHVzIGFuZCBtYXggMTh1 cw0Kd2hlbiBJIGFtIHJ1bm5pbmcgdGhlIHRlc3RzIHRoYXQgeW91IHByb3ZpZGVkLiBQbGVhc2Ug bm90ZSB0aGF0IHRoaXMgaXMNCndpdGhvdXQgYW55IHdvcmtsb2FkcyBhbmQgdGhlc2UgdGVzdHMg YXJlIHBlcmZvcm1lZCBvbiB2NC4xLjMwLXJ0MzQgb27CoA0KaHR0cDovL3d3dy5zdXBlcm1pY3Jv LmNvbS9wcm9kdWN0cy9tb3RoZXJib2FyZC9BdG9tL1gxMC9BMVNSaS0yNzU4Ri5jZm0NCi4NCg0K DQpBcyBmb3IgcnVubmluZyBjeWNsaWN0ZXN0IHdpdGggcG9zaXggdGltZXJzLCBJIHNlZSB0aGUg Zm9sbG93aW5nDQpyZXN1bHRzIHdpdGggdGhlIHNhbWUgaGFyZHdhcmUgYW5kIGtlcm5lbDoNCg0K Q2FzZSAxOg0Kfi9ydC10ZXN0cyMgLi9jeWNsaWN0ZXN0IC10MSAtcCA4MCAtaSA1MDAgLWwgMTAw MDAwwqDCoMKgDQojIC9kZXYvY3B1X2RtYV9sYXRlbmN5IHNldCB0byAwdXMNCnBvbGljeTogZmlm bzogbG9hZGF2ZzogMC4wMSAwLjAyIDAuMDAgMi8yMDQgNjkzNg0KDQpUOiAwICggNjkyNikgUDo4 MCBJOjUwMCBDOiAxMDAwMDAgTWluOsKgwqDCoMKgwqAxMSBBY3Q6wqDCoMKgMTYgQXZnOsKgwqDC oDE1IE1heDrCoMKgwqDCoMKgwqA2NQ0KDQoNCkNhc2UgMjoNCn4vcnQtdGVzdHMjIC4vY3ljbGlj dGVzdCAtYSAzIC10MSAtcCA4MCAtaSA1MDAgLWwgMTAwMDAwDQojIC9kZXYvY3B1X2RtYV9sYXRl bmN5IHNldCB0byAwdXMNCnBvbGljeTogZmlmbzogbG9hZGF2ZzogMC4xNSAwLjA0IDAuMDEgMS8y MDQgNjk1NMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCg0KVDogMCAoIDY5NDMpIFA6ODAgSTo1MDAg QzogMTAwMDAwIE1pbjrCoMKgwqDCoMKgMzEgQWN0OsKgwqDCoDQ1IEF2ZzrCoMKgwqA0MyBNYXg6 wqDCoMKgwqDCoMKgNTkNCg0KTm90ZSB0aGF0IHRoZSBmaXJzdCB0ZXN0IGlzIHdpdGhvdXQgYW55 IGNwdSBhZmZpbml0eSBhbmQgdGhlIHNlY29uZA0KdGVzdCBieSBwaW5uaW5nIGRvd24gwqB0aGUg Y3ljbGljdGVzdCBwcm9jZXNzIHRvIGEgQ1BVIGJ5IHByb3ZpZGluZyB0aGUNCictYScgYXJndW1l bnQuDQoNCkkgYWxzbyB0cmllZCB0cmFjaW5nIGN5Y2xpY3Rlc3QgdXNpbmcgdHJhY2UtY21kIGJ5 IGVuYWJsaW5nDQpocnRpbWVyX3N0YXJ0LCBzY2hlZF9zd2l0Y2gsIHNjaGVkX21pZ3JhdGVfdGFz aywgc2lnbmFsX2dlbmVyYXRlIGFuZA0KZ3JlcHBpbmcgZm9yIGN5Y2xpY3Rlc3QgaW4gdGhlIGxv Z3MuIEkgc2VlIHRoZSBmb2xsb3dpbmcgdHJhbnNpdGlvbnMgaW4NCmJvdGggdGhlIGNhc2VzOg0K DQpDYXNlIDE6DQoJVEFTSwkJQ1BVwqAJVElNRVNUQU1QCUVWRU5UCQnCoA0KwqAgwqAgwqAgY3lj bGljdGVzdC0yMzUxwqDCoFswMDNdwqDCoDc3NzMuMTMwOTY0OiBocnRpbWVyX3N0YXJ0OsKgwqDC oMKgwqDCoMKgwqBocnRpbWVyPTB4ZmZmZjg4MDQ2YjA5ODgyOCBmdW5jdGlvbj1wb3NpeF90aW1l cl9mbi8weDAgZXhwaXJlcz03NzY3MDQzMDQ3OTUyIHNvZnRleHBpcmVzPTc3NjcwNDMwNDc5NTIN CsKgwqDCoMKgwqDCoGN5Y2xpY3Rlc3QtMjM1McKgwqBbMDAzXcKgwqA3NzczLjEzMDk3ODogc2No ZWRfc3dpdGNoOsKgwqDCoMKgwqDCoMKgwqDCoGN5Y2xpY3Rlc3Q6MjM1MSBbMTldIFMgPT0+IGt0 aW1lcnNvZnRkLzM6MzYgWzk4XQ0KwqDCoMKga3RpbWVyc29mdGQvMy0zNsKgwqDCoMKgWzAwM13C oMKgNzc3My4xMzA5OTI6IHNjaGVkX3N3aXRjaDrCoMKgwqDCoMKgwqDCoMKgwqBrdGltZXJzb2Z0 ZC8zOjM2IFs5OF0gUiA9PT4gY3ljbGljdGVzdDoyMzUxIFsxOV0NCsKgwqDCoMKgwqDCoGN5Y2xp Y3Rlc3QtMjM1McKgwqBbMDAzXcKgwqA3NzczLjEzMTAwMzogc2NoZWRfc3dpdGNoOsKgwqDCoMKg wqDCoMKgwqDCoGN5Y2xpY3Rlc3Q6MjM1MSBbMTldIEQgPT0+IGt0aW1lcnNvZnRkLzM6MzYgWzE5 XSA8LS0tIGN5Y2xpY3Rlc3QgaXMgaW4gVEFTS19VTklOVEVSUlVQVElCTEUgc3RhdGUuDQrCoMKg wqBrdGltZXJzb2Z0ZC8zLTM2wqDCoMKgwqBbMDAzXcKgwqA3NzczLjEzMTAwNjogc2lnbmFsX2dl bmVyYXRlOsKgwqDCoMKgwqDCoHNpZz0xNCBlcnJubz0wIGNvZGU9MTMxMDcwIGNvbW09Y3ljbGlj dGVzdCBwaWQ9MjM1MSBncnA9MCByZXM9MA0KwqDCoMKga3RpbWVyc29mdGQvMy0zNsKgwqDCoMKg WzAwM13CoMKgNzc3My4xMzEwMTg6IHNjaGVkX3N3aXRjaDrCoMKgwqDCoMKgwqDCoMKgwqBrdGlt ZXJzb2Z0ZC8zOjM2IFs5OF0gUiA9PT4gY3ljbGljdGVzdDoyMzUxIFsxOV0NCsKgwqDCoMKgwqDC oGN5Y2xpY3Rlc3QtMjM1McKgwqBbMDAzXcKgwqA3NzczLjEzMTAzMTogc2NoZWRfc3dpdGNoOsKg wqDCoMKgwqDCoMKgwqDCoGN5Y2xpY3Rlc3Q6MjM1MSBbMTldIEQgPT0+IGt0aW1lcnNvZnRkLzM6 MzYgWzE5XQ0KwqDCoMKga3RpbWVyc29mdGQvMy0zNsKgwqDCoMKgWzAwM13CoMKgNzc3My4xMzEw NDY6IHNjaGVkX3N3aXRjaDrCoMKgwqDCoMKgwqDCoMKgwqBrdGltZXJzb2Z0ZC8zOjM2IFs5OF0g UiA9PT4gY3ljbGljdGVzdDoyMzUxIFsxOV0NCg0KQ2FzZSAyOg0KCVRBU0sJCUNQVcKgCVRJTUVT VEFNUAlFVkVOVAkJwqANCsKgIMKgIMKgIMKgY3ljbGljdGVzdC0yMzg2wqDCoFswMDRdwqDCoDc4 MzMuMzEyMTk0OiBocnRpbWVyX3N0YXJ0OsKgwqDCoMKgwqDCoMKgwqBocnRpbWVyPTB4ZmZmZjg4 MDQ2M2E3ODE5OCBmdW5jdGlvbj1wb3NpeF90aW1lcl9mbi8weDAgZXhwaXJlcz03ODI3MTc3Mzk0 MTg2IHNvZnRleHBpcmVzPTc4MjcxNzczOTQxODYNCsKgwqDCoMKgwqDCoGN5Y2xpY3Rlc3QtMjM4 NsKgwqBbMDA0XcKgwqA3ODMzLjMxMjIwNDogc2NoZWRfc3dpdGNoOsKgwqDCoMKgwqDCoMKgwqDC oGN5Y2xpY3Rlc3Q6MjM4NiBbMTldIFMgPT0+IHN3YXBwZXIvNDowIFsxMjBdDQrCoMKgwqBrdGlt ZXJzb2Z0ZC80LTQ2wqDCoMKgwqBbMDA0XcKgwqA3ODMzLjMxMjI4NTogc2NoZWRfbWlncmF0ZV90 YXNrOsKgwqDCoGNvbW09Y3ljbGljdGVzdCBwaWQ9MjM4NiBwcmlvPTE5IG9yaWdfY3B1PTQgZGVz dF9jcHU9NQ0KwqDCoMKga3RpbWVyc29mdGQvNC00NsKgwqDCoMKgWzAwNF3CoMKgNzgzMy4zMTIy ODg6IHNpZ25hbF9nZW5lcmF0ZTrCoMKgwqDCoMKgwqBzaWc9MTQgZXJybm89MCBjb2RlPTEzMTA3 MCBjb21tPWN5Y2xpY3Rlc3QgcGlkPTIzODYgZ3JwPTAgcmVzPTANCsKgwqDCoMKgwqDCoMKgwqDC oMKgPGlkbGU+LTDCoMKgwqDCoMKgWzAwNV3CoMKgNzgzMy4zMTIyODk6IHNjaGVkX3N3aXRjaDrC oMKgwqDCoMKgwqDCoMKgwqBzd2FwcGVyLzU6MCBbMTIwXSBSID09PiBjeWNsaWN0ZXN0OjIzODYg WzE5XQ0KwqDCoMKgwqDCoMKgY3ljbGljdGVzdC0yMzg2wqDCoFswMDVdwqDCoDc4MzMuMzEyMjk0 OiBocnRpbWVyX3N0YXJ0OsKgwqDCoMKgwqDCoMKgwqBocnRpbWVyPTB4ZmZmZjg4MDQ2M2E3ODE5 OCBmdW5jdGlvbj1wb3NpeF90aW1lcl9mbi8weDAgZXhwaXJlcz03ODI3MTc3NDk0MTg2IHNvZnRl eHBpcmVzPTc4MjcxNzc0OTQxODYNCsKgwqDCoMKgwqDCoGN5Y2xpY3Rlc3QtMjM4NsKgwqBbMDA1 XcKgwqA3ODMzLjMxMjMwMzogc2NoZWRfc3dpdGNoOsKgwqDCoMKgwqDCoMKgwqDCoGN5Y2xpY3Rl c3Q6MjM4NiBbMTldIFMgPT0+IHN3YXBwZXIvNTowIFsxMjBdDQrCoMKgwqBrdGltZXJzb2Z0ZC81 LTUzwqDCoMKgwqBbMDA1XcKgwqA3ODMzLjMxMjM4NTogc2NoZWRfbWlncmF0ZV90YXNrOsKgwqDC oGNvbW09Y3ljbGljdGVzdCBwaWQ9MjM4NiBwcmlvPTE5IG9yaWdfY3B1PTUgZGVzdF9jcHU9NA0K wqDCoMKga3RpbWVyc29mdGQvNS01M8KgwqDCoMKgWzAwNV3CoMKgNzgzMy4zMTIzODg6IHNpZ25h bF9nZW5lcmF0ZTrCoMKgwqDCoMKgwqBzaWc9MTQgZXJybm89MCBjb2RlPTEzMTA3MCBjb21tPWN5 Y2xpY3Rlc3QgcGlkPTIzODYgZ3JwPTAgcmVzPTANCsKgwqDCoMKgwqDCoMKgwqDCoMKgPGlkbGU+ LTDCoMKgwqDCoMKgWzAwNF3CoMKgNzgzMy4zMTIzOTA6IHNjaGVkX3N3aXRjaDrCoMKgwqDCoMKg wqDCoMKgwqBzd2FwcGVyLzQ6MCBbMTIwXSBSID09PiBjeWNsaWN0ZXN0OjIzODYgWzE5XQ0KKE5v dGU6IHRoZSBhYm92ZSBldmVudHMgaW5kaWNhdGUgMiBsb29wcyBvZiBjeWNsaWN0ZXN0LikNCg0K VGhlIGFib3ZlIGNhc2VzIGJlaGF2ZSBhY2NvcmRpbmcgdG8gd2hhdCBTZWJhc3RpYW4gc2FpZCBp biB0aGUgcHJldmlvdXMNCmVtYWlsLg0KDQpJbiBDYXNlIDEsIMKgSSBhbSBub3Qgc3VyZSB3aHkg dGhlIDMgY29udGV4dCBzd2l0Y2hlcyBhcmUgb2NjdXJpbmcNCmJlZm9yZSB0aGUgc2lnbmFsX2dl bmVyYXRlLiBBbHNvLCB3aHkgaXMgY3ljbGljdGVzdCBpcyBpbg0KVEFTS19VTklOVEVSUlVQVElC TEUgc3RhdGUgKEkgZGVkdWNlZCBpdCBieSBjcm9zcy1yZWZlcmVuY2luZyB0aGUgJ0QnDQppbiBp bmNsdWRlL2xpbnV4L3NjaGVkLmguIEhvcGUgSSBhbSByaWdodC4pLiBBbHNvLCBrdGltZXJzb2Z0 ZCBzZWVtcyB0bw0KaW5oZXJpdCB0aGUgcHJpb3JpdHkgb2YgY3ljbGljdGVzdC4gSXMgaXQgdG8g cnVuIHRoZSB0aW1lcj8NCg0KQ2FzZSAyIGlzIG11Y2ggbGVzcyBjb25mdXNpbmcgYW5kIEkgdGhp bmsgSSBhbSBhYmxlIHRvIGZvbGxvdyBpdC4NCg0KVGhhbmtzLA0KVmVkYW5nDQoNCk9uIFdlZCwg MjAxNy0wMy0wMSBhdCAxMzowMyAtMDYwMCwgVHJhY3kgU21pdGggd3JvdGU6DQo+IFBsZWFlZSBp c29sYXRlIHRoZSBzcGVjaWZpYyByZWxlYXNlIHdoZXJlIGxhdGVuY3kgcmVncmVzc2lvbiBvY2N1 cnJlZA0KPiBpZiB0aGUgY29tbXVuaXR5IGhhcyBub3QgYWxyZWFkeSBkb25lIHNvLiBQb3NzaWJs eSBiYWNraW5nIG91dA0KPiBjaGFuZ2VzIHNwZWNpZmljIHRvIHRpbWVycyBhbmQgcG9zaXggdGhy ZWFkcyBmb3IgdGhhdCByZWxlYXNlIHRvIHNlZQ0KPiB3aGF0IGltcGFjdGVkIGxhdGVuY3kuwqDC oFRoaXMgaXMgY3J1Y2lhbCBmb3IgTlhQIGFuZCBvdGhlcnMgYXMgdGhleQ0KPiBtaWdyYXRlIHRv IGxhdGVyIHJlbGVhc2VzIG9mIHRoZSBrZXJuZWwuDQo+IA0KPiBBbHNvIHBsZWFzZSBzaGFyZSB5 b3VyIGxhdGVuY3kgbnVtYmVycyB3aGlsZSB0ZXN0aW5nIGZvciByZWdyZXNzaW9uDQo+IGZvciBl YWNoIHJlbGVhc2UgaWYgcG9zc2libGUuDQo+IA0KPiBVc2luZzoNCj4gDQo+IHRhc2tzZXQgLWMg MiBjeWNsaWN0ZXN0IC1tIC1uIC1QIC1wIDk5IC10IDEgLWkgMTAwMDAtMTM2MDAwMDAwwqANCj4g dGFza3NldCAtYyAzIGN5Y2xpY3Rlc3QgLW0gLW4gLVAgLXAgOTkgLXTCoMKgMSAtaSAxMDAwMDAw MCAtbCAwDQo+IA0KPiBPbiBhbiBBUk0tOCBDb3J0ZXgtQTUzIE5YUCBMUzEwNDNBUkRCIDR4IGNv cmUgdGhlIGxhdGVuY3kgd2FzIGFwcHJveA0KPiAzIHVzIG1pbi9hdmcgYW5kIG1heCA3IHdpdGgg bm8gbGF0ZW5jeSBzcGlrZXMgb24gNC4xLjMwLXJ0MzQrZzY2N2U2YmEgDQo+IFNNUCBQUkVFTVBU IFJUIE5YUCBTREsgMi4wLTE2MDkuwqDCoFVzZWQgc2FyLCBpcGVyZiwgYW5kIHN0cmVzcyBmb3IN Cj4gbG9hZC4NCj4gDQo+IFRyYWN5IFNtaXRoDQo+IFNvZnR3YXJlIEVuZ2luZWVyDQo+IERTQw0K PiANCj4gDQo+IA0KPiA+IA0KPiA+IE9uIE1hciAxLCAyMDE3LCBhdCA5OjIyIEFNLCAiYmlnZWFz eUBsaW51dHJvbml4LmRlIg0KPiA+IDxiaWdlYXN5QGxpbnV0cm9uaXguZGU+IHdyb3RlOg0KPiA+ IA0KPiA+ID4gDQo+ID4gPiBPbiAyMDE3LTAyLTIyIDAxOjQzOjA5IFsrMDAwMF0sIFBhdGVsLCBW ZWRhbmcgd3JvdGU6DQo+ID4gPiBBbHNvLCBJIGNoZWNrZWQgdGhlIG51bWJlciBvZiBjcHUgbWln cmF0aW9ucyBhbmQgY29udGV4dCBzd2l0Y2hlcw0KPiA+ID4gdXNpbmcNCj4gPiA+IHBlcmYgc3Rh dC4gRm9sbG93aW5nIGFyZSB0aGUgcmVzdWx0cyBmb3IgYm90aCB0aGUgY2FzZXM6DQo+ID4gPiAN Cj4gPiA+IGN5Y2xpY3Rlc3Qgbm90IHBpbm5lZCB0byBDUFU6IHRoZSBudW1iZXIgb2YgQ1BVIG1p Z3JhdGlvbnMgYW5kDQo+ID4gPiBjb250ZXh0DQo+ID4gPiBzd2l0Y2hlcyBhcmUgZXF1YWwgdG8g dGhlIG51bWJlciBvZiBsb29wcyBJIGFtIHJ1bm5pbmcgZm9yDQo+ID4gPiBjeWNsaWN0ZXN0Lg0K PiA+ID4gSGVyZSwgdGhlcmUgYXJlIGEgbG90IG9mIGNvbnRleHQgc3dpdGNoZXMgd2l0aCB0aGUg a3RpbWVyc29mdGQNCj4gPiA+IHByb2Nlc3MuDQo+ID4gPiANCj4gPiA+IGN5Y2xpY3Rlc3QgcGlu bmVkIHRvIGEgQ1BVOiB0aGVyZSBhcmUgdmVyeSBmZXcgQ1BVIG1pZ3JhdGlvbnMuDQo+ID4gPiBC dXQsIHRoZQ0KPiA+ID4gbnVtYmVyIG9mIGNvbnRleHQgc3dpdGNoZXMgYXJlIGFwcHJveGltYXRl bHkgMyB0aW1lcyB0aGUgbnVtYmVyDQo+ID4gPiBvZg0KPiA+ID4gbG9vcHMuIE1vc3Qgb2YgdGhl IGNvbnRleHQgc3dpdGNoZXMgYXJlIHdpdGggdGhlIHN3YXBwZXIgKGlkbGUpDQo+ID4gPiBwcm9j ZXNzLg0KPiA+ID4gDQo+ID4gPiBJbiBib3RoIHRoZSBjYXNlcywgdGhlIG51bWJlciBvZiBwYWdl IGZhdWx0cyBhcmUgcHJldHR5IGxvdw0KPiA+ID4gKH42NSkuDQo+ID4gPiANCj4gPiA+IEkgYWxz byB0cmllZCBzaW1pbGFyIGV4cGVyaW1lbnRzIHdpdGggbWFpbmxpbmUga2VybmVsICh2NC40LjQ3 KS4NCj4gPiA+IFRoZQ0KPiA+ID4gbnVtYmVyIG9mIENQVSBtaWdyYXRpb25zIHdlcmUgcHJldHR5 IGxvdyAoc2luZ2xlIGRpZ2l0cykgZm9yIGJvdGgNCj4gPiA+IHRoZQ0KPiA+ID4gY2FzZXMgZGVz Y3JpYmVkIGFib3ZlLiBBbHNvLCB0aGUgbnVtYmVyIG9mIGNvbnRleHQgc3dpdGNoZXMgd2VyZQ0K PiA+ID4gZXF1YWwNCj4gPiA+IHRvIHRoZSBudW1iZXIgb2YgbG9vcHMgcHJvdmlkZWQgYXMgYW4g YXJndW1lbnQgdG8gY3ljbGljdGVzdC4NCj4gPiBUaGUgaGFyZHdhcmUgaW50ZXJydXB0IHdha2Vz IHRoZSAidGltZXItc29mdGlycSIgdGhyZWFkLiBUaGlzIFJULQ0KPiA+IHRocmVhZA0KPiA+IGlu IHR1cm4gd2lsbCB3YWtlIHVwIHlvdXIgYXBwbGljYXRpb24gLyBjeWNsaWN0ZXN0IHdoaWNoIHVz ZXMgdGhlDQo+ID4gcG9zaXgtdGltZXJzLiBTbyB0aGUgcHJpb3JpdHkgb2YgdGhpcyB0aHJlYWQg aXMgYWxzbyBpbXBvcnRhbnQuDQo+ID4gQWZ0ZXINCj4gPiB0aGUgd2FrZXVwIGl0IGlzIHBvc3Np YmxlIHRoYXQgdGhlIG5ld2VyIGtlcm5lbCB0cmllcyBtaWdyYXRlIHRoZQ0KPiA+IFJUDQo+ID4g dGFzayBpZiBwb3NzaWJsZSBpbiBvcmRlciB0byBrZWVwIGl0IHJ1bm5pbmcgYXMgc29vbiBhcyBw b3NzaWJsZS4NCj4gPiBJZiBpdA0KPiA+IGRvZXMgbm90IG1pZ3JhdGUgaXQsIHRoZW4gZWl0aGVy IHRoZSBjeWNsaWN0ZXN0IHRhc2sgaGFzIHRvIHdhaXQgb3INCj4gPiB0aGUNCj4gPiAidGltZXIt c29mdGlycSIgdGhyZWFkLg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBUaGFua3MsDQo+ID4gPiBWZWRh bmcgUGF0ZWwNCj4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyDQo+ID4gPiBJbnRlbCBDb3Jwb3JhdGlv bg0KPiA+IFNlYmFzdGlhbg0KPiA+IC0tDQo+ID4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxp c3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXJ0LQ0KPiA+IHVzZXJzIiBpbg0K PiA+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+ ID4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdMKgwqBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9y ZG9tby1pbmZvLmh0bWw=