From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DD906E24F for ; Thu, 14 Jun 2018 22:07:08 +0000 (UTC) Message-ID: <1529015573.7432.92.camel@intel.com> From: Dhinakaran Pandiyan Date: Thu, 14 Jun 2018 15:32:53 -0700 In-Reply-To: <20180614140055.GH20518@intel.com> References: <20180614071141.144275-1-tarun.vyas@intel.com> <20180614104359.GU23723@intel.com> <87efh9zg4p.fsf@intel.com> <20180614125529.GD20518@intel.com> <878t7hzerc.fsf@intel.com> <20180614140055.GH20518@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] tools: Add a simple tool to read/write/decode dpcd registers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: dhinakaran.pandiyan@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= , Jani Nikula Cc: igt-dev@lists.freedesktop.org List-ID: T24gVGh1LCAyMDE4LTA2LTE0IGF0IDE3OjAwICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4gT24gVGh1LCBKdW4gMTQsIDIwMTggYXQgMDQ6MjA6MDdQTSArMDMwMCwgSmFuaSBOaWt1bGEg d3JvdGU6Cj4gPiAKPiA+IE9uIFRodSwgMTQgSnVuIDIwMTgsIFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiB3cm90ZToKPiA+ID4gCj4gPiA+IE9uIFRo dSwgSnVuIDE0LCAyMDE4IGF0IDAzOjUwOjMwUE0gKzAzMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+ ID4gPiA+IAo+ID4gPiA+IE9uIFRodSwgMTQgSnVuIDIwMTgsIFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jCj4gPiA+ID4gb20+IHdyb3RlOgo+ID4gPiA+ID4gCj4g PiA+ID4gPiBPbiBUaHUsIEp1biAxNCwgMjAxOCBhdCAxMjoxMTo0MUFNIC0wNzAwLCBUYXJ1biBW eWFzIHdyb3RlOgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVGhpcyB0b29sIHNlcnZlcyBhcyBh IHdyYXBwZXIgYXJvdW5kIHRoZSBjb25zdHJ1Y3RzCj4gPiA+ID4gPiA+IHByb3ZpZGVkIGJ5IHRo ZQo+ID4gPiA+ID4gPiBkcm1fZHBjZF9hdXhfZGV2IGtlcm5lbCBtb2R1bGUgYnkgd29ya2luZyBv biB0aGUKPiA+ID4gPiA+ID4gL2Rldi9kcm1fZHBfYXV4W25dCj4gPiA+ID4gPiA+IGRldmljZXMg Y3JlYXRlZCBieSB0aGUga2VybmVsIG1vZHVsZS4KPiA+ID4gPiA+ID4gSXQgc3VwcG9ydHMgcmVh ZGluZyBhbmQgd3JpdGluZyBkcGNkIHJlZ2lzdGVycyBvbiB0aGUKPiA+ID4gPiA+ID4gY29ubmVj dGVkIGF1eAo+ID4gPiA+ID4gPiBjaGFubmVscy4KPiA+ID4gPiA+ID4gSW4gdGhlIGZvbGxvdy11 cCBwYXRjaCwgc3VwcG9ydCBmb3IgZGVjb2RpbmcgdGhlc2UKPiA+ID4gPiA+ID4gcmVnaXN0ZXJz IHdpbGwgYmUKPiA+ID4gPiA+ID4gYWRkZWQgdG8gZmFjaWxhdGUgZGVidWdnaW5nIHBhbmVsIHJl bGF0ZWQgaXNzdWVzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU3VnZ2VzdGVkLWJ5OiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGUKPiA+ID4gPiA+ID4gbC5j b20+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFRhcnVuIFZ5YXMgPHRhcnVuLnZ5YXNAaW50 ZWwuY29tPgo+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gwqB0b29scy9NYWtlZmlsZS5hbcKg wqDCoMKgwqDCoHzCoMKgwqAyICstCj4gPiA+ID4gPiA+IMKgdG9vbHMvTWFrZWZpbGUuc291cmNl cyB8wqDCoMKgNCArLQo+ID4gPiA+ID4gPiDCoHRvb2xzL2RwY2RfcmVnLmPCoMKgwqDCoMKgwqDC oHwgMjE5Cj4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiA+ID4gPiA+ID4gwqAzIGZpbGVzIGNoYW5nZWQsIDIyMyBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29s cy9kcGNkX3JlZy5jCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMv TWFrZWZpbGUuYW0gYi90b29scy9NYWtlZmlsZS5hbQo+ID4gPiA+ID4gPiBpbmRleCAwOWI2ZGJj YzNlY2UuLmI3ODgyNGRhZGZkYiAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvdG9vbHMvTWFrZWZp bGUuYW0KPiA+ID4gPiA+ID4gKysrIGIvdG9vbHMvTWFrZWZpbGUuYW0KPiA+ID4gPiA+ID4gQEAg LTcsNyArNyw3IEBAIGJpbl9QUk9HUkFNUyArPSAkKExJQkRSTV9JTlRFTF9CSU4pCj4gPiA+ID4g PiA+IMKgaW50ZWxfZXJyb3JfZGVjb2RlX0xERkxBR1MgPSAtbHoKPiA+ID4gPiA+ID4gwqBlbmRp Zgo+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiAtYmluX1BST0dSQU1TICs9IGludGVsX2RwX2Nv bXBsaWFuY2UKPiA+ID4gPiA+ID4gK2Jpbl9QUk9HUkFNUyArPSBpbnRlbF9kcF9jb21wbGlhbmNl IGRwY2RfcmVnCj4gPiA+ID4gPiBOb3QgdGhlIGJlc3QgcGxhY2UgZm9yIHRoaXMgSSB0aGluay4K PiA+ID4gPiA+IAo+ID4gPiA+ID4gTWlzc2luZyBtZXNvbi5idWlsZCBzbyBubyBvbmUgaXMgYWN0 dWFsbHkgZ29pbmcgdG8gYnVpbGQKPiA+ID4gPiA+IHRoaXMuCj4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+IMKgaW50ZWxfZHBfY29tcGxpYW5jZV9DRkxBR1MgPSAkKEFNX0NGTEFH UykgJChHTElCX0NGTEFHUykKPiA+ID4gPiA+ID4gwqBpbnRlbF9kcF9jb21wbGlhbmNlX0xEQURE ID0KPiA+ID4gPiA+ID4gJCh0b3BfYnVpbGRkaXIpL2xpYi9saWJpbnRlbF90b29scy5sYQo+ID4g PiA+ID4gPiDCoAo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUuc291cmNl cwo+ID4gPiA+ID4gPiBiL3Rvb2xzL01ha2VmaWxlLnNvdXJjZXMKPiA+ID4gPiA+ID4gaW5kZXgg YWJkMjNhMGY0NjI4Li5kYjYwNmIyODU2MGYgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL3Rvb2xz L01ha2VmaWxlLnNvdXJjZXMKPiA+ID4gPiA+ID4gKysrIGIvdG9vbHMvTWFrZWZpbGUuc291cmNl cwo+ID4gPiA+ID4gPiBAQCAtNjQsNCArNjQsNiBAQCBpbnRlbF9kcF9jb21wbGlhbmNlX1NPVVJD RVMgPSBcCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGludGVsX2RwX2NvbXBsaWFuY2Uu aCBcCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGludGVsX2RwX2NvbXBsaWFuY2VfaG90 cGx1Zy5jIFwKPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgJChOVUxMKQo+ID4gPiA+ID4g PiAtCj4gPiA+ID4gPiA+ICtkcGNkX3JlZ19TT1VSQ0VTID0gXAo+ID4gPiA+ID4gPiArCWRwY2Rf cmVnLmMgXAo+ID4gPiA+ID4gPiArCSQoTlVMTCkKPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL3Rv b2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNkX3JlZy5jCj4gPiA+ID4gPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gPiA+ID4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjg0ODI3N2FhNzkyCj4g PiA+ID4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gPiA+ID4gKysrIGIvdG9vbHMvZHBjZF9yZWcu Ywo+ID4gPiA+ID4gPiBAQCAtMCwwICsxLDIxOSBAQAo+ID4gPiA+ID4gPiArLyoKPiA+ID4gPiA+ ID4gKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gPiA+ID4gPiA+ICsg Kgo+ID4gPiA+ID4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueQo+ID4gPiA+ID4gPiBwZXJzb24gb2J0YWluaW5nIGEKPiA+ID4gPiA+ID4g KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCj4g PiA+ID4gPiA+IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gPiA+ID4gPiA+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPiA+ID4gPiA+ ID4gd2l0aG91dCBsaW1pdGF0aW9uCj4gPiA+ID4gPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKPiA+ID4gPiA+ID4gZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKPiA+ID4gPiA+ID4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQKPiA+ID4gPiA+ID4gcGVyc29ucyB0byB3aG9tIHRoZQo+ID4gPiA+ ID4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZQo+ ID4gPiA+ID4gPiBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4g PiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZQo+ID4gPiA+ID4gPiAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gPiA+ID4gPiA+ICsgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3IKPiA+ID4gPiA+ID4gc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPiA+ID4gPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ID4g PiA+ID4gKyAqCj4gPiA+ID4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRgo+ID4gPiA+ID4gPiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ ID4gPiA+ID4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRgo+ID4gPiA+ID4gPiBNRVJDSEFOVEFCSUxJVFksCj4gPiA+ID4gPiA+ICsg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKPiA+ID4gPiA+ID4gTk9OSU5G UklOR0VNRU5ULsKgwqBJTiBOTyBFVkVOVCBTSEFMTAo+ID4gPiA+ID4gPiArICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKPiA+ID4gPiA+ID4gQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPiA+ID4gPiA+ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPiA+ID4gPiA+ID4gT1RIRVJXSVNFLCBB UklTSU5HIEZST00sCj4gPiA+ID4gPiA+ICsgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gPiA+ID4gPiA+IE9USEVSIERFQUxJTkdTIElO IFRIRQo+ID4gPiA+ID4gPiArICogU09GVFdBUkUuCj4gPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4g PiArICrCoAkJRFBDRCByZWdpc3RlciByZWFkL2RlY29kZSB0b29sCj4gPiA+ID4gPiA+ICsgKiBU aGlzIHRvb2wgd3JhcHMgYXJvdW5kIERSTV9EUF9BVVhfREVWIG1vZHVsZSB0byBwcm92aWRlCj4g PiA+ID4gPiA+IERQQ0QgcmVnaXN0ZXIgcmVhZCwKPiA+ID4gPiA+ID4gKyAqIHdyaXRlIGFuZCBk ZWNvZGUsIHNvIENPTkZJR19EUk1fRFBfQVVYX0RFViBuZWVkcyB0byBiZQo+ID4gPiA+ID4gPiBz ZXQuCj4gPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArI2luY2x1ZGUg ImlndF9jb3JlLmgiCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiA+ID4gPiA+ID4g KyNpbmNsdWRlIDxmY250bC5oPgo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsjZGVmaW5lIElO VkFMSUQJMHhmZgo+ID4gPiA+ID4gPiArI2RlZmluZSBSV19TSVpFCTEKPiA+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gPiArY29uc3QgY2hhciBhdXhfZGV2W10gPSAiL2Rldi9kcm1fZHBfYXV4IjsKPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgcHJpbnRfdXNhZ2UoY2hhciAqdG9v bCwgaW50IGhlbHApCj4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ICsJaWd0X2luZm8oIkRQQ0Qg cmVnaXN0ZXIgcncgYW5kIGRlY29kZSB0b29sXG5cbiIpOwo+ID4gPiA+ID4gPiArCWlndF9pbmZv KCJUaGlzIHRvb2wgcmVxdWlyZXMKPiA+ID4gPiA+ID4gQ09ORklHX0RSTV9EUF9BVVhfQ0hBUkRF VlxuIgo+ID4gPiA+ID4gPiArCQnCoCJ0byBiZSBzZXQgaW4gdGhlIGtlcm5lbCBjb25maWcuXG4i KTsKPiA+ID4gPiA+ID4gKwlpZ3RfaW5mbygiVXNhZ2UgJXMgY29tbWFuZCBbb3B0aW9ucy4uLl1c biIsIHRvb2wpOwo+ID4gPiA+ID4gPiArCWlndF9pbmZvKCJTdXBwb3J0ZWQgY29tbWFuZHMgYXJl OlxuIgo+ID4gPiA+ID4gPiArCQnCoCJcdHJlYWQ6IFJlYWQgYSBkcGNkIHJlZyBhdCBhbiBvZmZz ZXRcbiIKPiA+ID4gPiA+ID4gKwkJwqAiXHR3cml0ZTogV3JpdGUgYSBkcGNkIHJlZyBhdCBhbgo+ ID4gPiA+ID4gPiBvZmZzZXRcbiIKPiA+ID4gPiA+ID4gKwkJwqAiXHRkZWNvZGU6IERlY29kZSB0 aGUgdmFsdWUgb2YgYSBkcGNkCj4gPiA+ID4gPiA+IHJlZ1xuIik7Cj4gPiA+ID4gPiBZb3UgZGlk bid0IGltcGxlbWVudCBkZWNvZGUgc28gbm8gcG9pbnQgaW4gbWVudGlvbmluZyBpdC4KPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gKwlpZ3RfaW5mbygiT3B0aW9ucyBmb3IgdGhl IGFib3ZlIGNvbW1hbmRzIGFyZVxuIgo+ID4gPiA+ID4gPiArCQnCoCJcdC0tZGV2aWNlOiBBdXgg ZGV2aWNlIGlkLAo+ID4gPiA+ID4gPiBJU19SRVFVSVJFRFxuIgo+ID4gPiA+ID4gPiArCQnCoCJc dC0taGVscDogcHJpbnQgdGhlIHVzYWdlXG4iCj4gPiA+ID4gPiA+ICsJCcKgIlx0LS1vZmZzZXQ6 IERQQ0QgcmVnaXN0ZXIgb2Zmc2V0IGluIGhleCwKPiA+ID4gPiA+ID4gSVNfUkVRVUlSRURcbiIK PiA+ID4gPiA+ID4gKwkJwqAiXHQtLXNwZWM6IFNwZWNpZnkgRFAvZURQIHNwZWMgdmVyc2lvbgo+ ID4gPiA+ID4gPiBmb3IgZGVjb2RpbmcsIElTX09QVElPTkFMXG4iCj4gPiA+ID4gPiA+ICsJCcKg Ilx0LS12YWw6IFNwZWNpZnkgYSB2YWx1ZSwgZm9yIHJlZwo+ID4gPiA+ID4gPiB3cml0ZXNcbiIp Owo+ID4gPiA+ID4gSSB0aGluayB5b3Ugc2hvdWxkIG1vZGVsIHRoZSBVSSBiYXNlZCBvbiBpbnRl bF9yZWcuCj4gPiA+ID4gSSBvcmlnaW5hbGx5IGhhZCBwbGFucyB0byBwbHVnIHRoaXMgKmludG8q IGludGVsX3JlZywgd2l0aCBlLmcuCj4gPiA+ID4gZHBjZDoKPiA+ID4gPiBwcmVmaXguIFRoZXJl IHdlIGhhdmUgdGhlIGZyYW1ld29yayByZWFkeSBmb3IgYWRkaW5nIG5hbWVzIHRvCj4gPiA+ID4g dGhlCj4gPiA+ID4gcmVnaXN0ZXJzIHVzaW5nIHNlcGFyYXRlIGRlZmluaXRpb24gZmlsZXMsIGFu ZCB3ZSBoYXZlIGFsbCB0aGUKPiA+ID4gPiBmcmFtZXdvcmtzIHJlYWR5IGZvciBkb2luZyBkZWNv ZGVkIGR1bXBzIG9mIHRoZSBkcGNkIHNwYWNlLiAKCkkgc3VwcG9zZSB3ZSBjb3VsZCBnbyB3aXRo IHRoaXMgdG9vbCBhcyBpdCBpcyBub3cgYW5kIHRoZW4gbGF0ZXIgcmV1c2UKcGFydHMgb2YgdGhl IGRlY29kZSBsb2dpYyBmcm9tIGludGVsX3JlZy4KCj4gPiA+ID4gSnVzdCBzYXlpbmcuCj4gPiA+ IFRoYXQncyBvbmUgb3B0aW9uLiBCdXQgbWF5YmUgcGVvcGxlIHdvcmtpbmcgb24gbm9uLUludGVs IGh3IHdvdWxkCj4gPiA+IHdhbnQKPiA+ID4gdG8gdXNlIHRoaXMgYXMgd2VsbD8KPiA+IEkga25v dywgdGhhdCdzIGEgY29uc2lkZXJhdGlvbi4KPiA+IAo+ID4gSXQncyBqdXN0IHRoYXQgaXQncyB0 b3RhbGx5IG9idmlvdXMgYW55IERQQ0QgdG9vbCB3aWxsIGdyb3cgYSBsYXJnZQo+ID4gYnVuY2gg b2YgY29kZSBhbHJlYWR5IHdyaXR0ZW4gaW4gaW50ZWxfcmVnLmMuIExvb2tpbmcgYXQgdGhlCj4g PiBwcm9wb3NlZAo+ID4gcGF0Y2gsIHRoZXJlJ3Mgb25seSBzdXBwb3J0IGZvciByZWFkaW5nIG9u ZSBvZmZzZXQgYXQgYSB0aW1lIG5vdy4KPiA+IFRoZQo+ID4gZmlyc3QgdGhpbmcgYW55b25lIHdp bGwgd2FudCBpcyBhYmlsaXR5IHRvIHJlYWQgTiBieXRlcy4gT3IgYSBidW5jaAo+ID4gb2YKPiA+ IG9mZnNldHMgaGVyZSBhbmQgdGhlcmUuIFdpdGggaW50ZWxfcmVnLCB5b3UgZ2V0IGFsbCBvZiB0 aGF0IGZvcgo+ID4gZnJlZS4KPiBJbmRlZWQuIEFjdHVhbGx5IHRoYXQgcmVtaW5kcyBtZSB0aGF0 IGl0IHdvdWxkIGJlIGF3ZXNvbWUgdG8gaGF2ZSBhCj4gd2F5Cj4gdG8gc3BlY2lmeSBvZmZzZXQ6 Y291bnQgcGFpcnMgZm9yIGludGVsX3JlZyByZWFkLiBDdXJyZW50bHkgb25lCj4gZWl0aGVyCj4g aGFzIHRvIGR1bXAgYSBidW5jaCBvZiBpcnJlbGV2YW50L25vbi1leGlzdGluZyByZWdpc3RlcnMs IG9yIGV4ZWN1dGUKPiBpbnRlbF9yZWcgbXVsdGlwbGUgdGltZXMuCj4gCj4gPiAKPiA+IFJlbWVt YmVyIHRoZSB0aW1lcyB3aGVuIHdlIGhhZCBzZXBhcmF0ZSBhbmQgc2xpZ2h0bHkgZGlmZmVyZW50 IHJlZwo+ID4gdG9vbHMKPiA+IGZvciBhbGwgb2YgdGhlIGRpZmZlcmVudCAicmVnaXN0ZXIgcG9y dHMiIGluIGludGVsX3JlZz8gSSBkb24ndAo+ID4gcGFydGljdWxhcmx5IG1pc3MgdGhhdC4KPiA+ IAo+ID4gTm90ZSBhbHNvIHRoYXQgZm9yIGk5MTUgRFAgZGVidWdnaW5nLCB3aXRoIERQQ0Qgc3Vw cG9ydCBpbgo+ID4gaW50ZWxfcmVnLAo+ID4geW91IGNvdWxkIGhhdmUgdGhlIERQQ0QgcmVhZHMg aW50ZXJzcGFjZWQgd2l0aCByZWdpc3RlciByZWFkcy4gSG93Cj4gPiBjb29sCj4gPiBpcyB0aGF0 Pwo+IFllcywgdGhhdCBjb3VsZCBiZSBpbnRlcmVzdGluZy4KPsKgCj4gPiAKPiA+IFNvIEknbSBu b3QgZ29pbmcgdG8gaW5zaXN0IG9uIHVzaW5nIGludGVsX3JlZy4gSSB1bmRlcnN0YW5kIHRoZQo+ ID4gY291bnRlcgo+ID4gYXJndW1lbnQuIEJ1dCB3aGVuIHRoZSB0d28gdG9vbHMgaGF2ZSBncm93 biBhIGJ1bmNoIG9mIG92ZXJsYXBwaW5nCj4gPiBhbmQKPiA+IGR1cGxpY2F0ZWQgY29kZSB3aXRo IHNsaWdodGx5IGNvbmZsaWN0aW5nIHVzZXIgaW50ZXJmYWNlcywgSQo+ID4gcmVzZXJ2ZSB0aGUK PiA+IHJpZ2h0IHRvIGJlIGFsbCwgIkkgdG90YWxseSB0b2xkIHlvdSBzby4iCj4gTWF5YmUgd2Ug c2hvdWxkIHJlbmFtZSBpbnRlbF9yZWcgdG8gaWd0X3JlZyBhbmQgbWFrZSBzdXJlIGl0IGNhbgo+ IGFjdHVhbGx5IGJlIHVzZWQgd2l0aG91dCBhbiBJbnRlbCBHUFU/IE90aGVyIGRyaXZlcnMgY291 bGQgdGhlbgo+IHBlcmhhcHMgYWxzbyBwbHVnIGluIHRoZWlyIG93biBiYWNrZW5kcyB0byB0aGUg c2FtZSB0b29sPyBOb3Qgc3VyZQo+IGhvdyBmZWFzaWJsZSB0aGF0IHdvdWxkIGJlIG9yIHdoZXRo ZXIgYW55b25lIHdvdWxkIGV2ZW4gYmUgaW50ZXJlc3RlZAo+IGluIGRvaW5nIHNvLgo+IApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK