From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [igt-dev] [PATCH i-g-t 1/8] trace.pl: Improve time axis labels Date: Thu, 19 Jul 2018 10:39:27 +0100 Message-ID: <9484a74f-b461-5789-1130-8d2b742018d9@linux.intel.com> References: <20180718094514.5903-1-tvrtko.ursulin@linux.intel.com> <20180718094514.5903-2-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John Harrison , Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE4LzA3LzIwMTggMjE6MDMsIEpvaG4gSGFycmlzb24gd3JvdGU6Cj4gT24gNy8xOC8yMDE4 IDI6NDUgQU0sIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBJdCBpcyBwb3NzaWJsZSB0byBjdXN0b21p emUgdGhlIGF4aXMgZGlzcGxheSBzbyBjaGFuZ2UgaXQgdG8gZGlzcGxheQo+PiB0aW1lc3RhbXBz IGluIHNlY29uZHMgb24gdGhlIG1ham9yIGF4aXMgKHdpdGggc2l4IGRlY2ltYWwgc3BhY2VzKSBh bmQKPj4gbWlsbGlzZWNvbmQgb2Zmc2V0cyBvbiB0aGUgbWlub3IgYXhpcy4KPj4KPj4gdjI6Cj4+ IMKgICogR2l2ZSB1cCBvbiBicm9rZW4gcmVsYXRpdmUgdGltZXN0YW1wcy4KPj4KPj4gdjM6Cj4+ IMKgICogRHJvcCBhbGwgZGF0ZSBjb21wbGljYXRpb25zIGFuZCBqdXN0IHVzZSBtaWNybyBzZWNv bmRzIHRocm91Z2hvdXQuCj4+IMKgwqDCoCAoSm9obiBIYXJyaXNvbikKPj4KPj4gU2lnbmVkLW9m Zi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gU3VnZ2Vz dGVkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4gQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+PiBDYzogSm9obiBIYXJyaXNv biA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IEpvaG4gSGFycmlz b24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ICMgdjIKPj4gLS0tCj4+IMKgIHNjcmlwdHMv dHJhY2UucGwgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0KPj4gwqAgMSBmaWxlIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBiL3NjcmlwdHMvdHJhY2Uu cGwKPj4gaW5kZXggZmMxNzEzZTRmOWE3Li4zYWQ1ZWZmYWZkMGEgMTAwNzU1Cj4+IC0tLSBhL3Nj cmlwdHMvdHJhY2UucGwKPj4gKysrIGIvc2NyaXB0cy90cmFjZS5wbAo+PiBAQCAtMzI5LDIwICsz MjksNiBAQCBzdWIgc2FuaXRpemVfY3R4Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCB9Cj4+IC1zdWIg dHMKPj4gLXsKPj4gLcKgwqDCoCBteSAoJHVzKSA9IEBfOwo+PiAtwqDCoMKgIG15ICgkeSwgJG1v LCAkZCwgJGgsICRtLCAkcyk7Cj4+IC0KPj4gLcKgwqDCoCAkcyA9IGludCgkdXMgLyAxMDAwMDAw KTsKPj4gLcKgwqDCoCAkdXMgPSAkdXMgJSAxMDAwMDAwOwo+PiAtCj4+IC3CoMKgwqAgKCRzLCAk bSwgJGgsICRkLCAkbW8sICR5KSA9IGdtdGltZSgkcyk7Cj4+IC0KPj4gLcKgwqDCoCByZXR1cm4g c3ByaW50ZignJTA0dS0lMDJ1LSUwMnUgJTAydTolMDJ1OiUwMnUuJTA2dScsCj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJHksIDEgKyAkbW8sICRkLCAkaCwgJG0sICRzLCBpbnQo JHVzKSk7Cj4+IC19Cj4+IC0KPj4gwqAgIyBNYWluIGlucHV0IGxvb3AgLSBwYXJzZSBsaW5lcyBh bmQgYnVpbGQgdGhlIGludGVybmFsIAo+PiByZXByZXNlbnRhdGlvbiBvZiB0aGUKPj4gwqAgIyB0 cmFjZSB1c2luZyBhIGhhc2ggb2YgcmVxdWVzdHMgYW5kIHNvbWUgYXV4aWxsaWFyeSBkYXRhIHN0 cnVjdHVyZXMuCj4+IMKgIG15ICRwcmV2X2ZyZXEgPSAwOwo+PiBAQCAtOTEyLDcgKzg5OCw3IEBA IGZvcmVhY2ggbXkgJGtleSAoc29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsKPj4gwqDCoMKgwqDC oMKgwqDCoMKgICRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eF9jb2xvdXIoJGN0eCwgJ3F1ZXVlJyk7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAkY29udGVudCA9ICIkbmFtZTxicj4kZGJ7JGtleX0tPnsn c3VibWl0LWRlbGF5J311cyAKPj4gPHNtYWxsPigkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9 dXMpPC9zbWFsbD4iOwo+PiAtwqDCoMKgwqDCoMKgwqAgJHN0YXJ0ZW5kID0gJ3N0YXJ0OiBcJycg LiB0cygkcXVldWUpIC4gJ1wnLCBlbmQ6IFwnJyAuIAo+PiB0cygkc3VibWl0KSAuICdcJyc7Cj4+ ICvCoMKgwqDCoMKgwqDCoCAkc3RhcnRlbmQgPSAnc3RhcnQ6ICcgLiAkcXVldWUgLiAnLCBlbmQ6 ICcgLiAkc3VibWl0Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJpbnQgIlx0e2lkOiAkaSwga2V5 OiAkc2tleSwgJHR5cGUgZ3JvdXA6ICRncm91cCwgc3ViZ3JvdXA6IAo+PiAkc3ViZ3JvdXAsIHN1 Ymdyb3VwT3JkZXI6ICRzdWJncm91cCwgY29udGVudDogJyRjb250ZW50JywgJHN0YXJ0ZW5kLCAK Pj4gc3R5bGU6IFwnJHN0eWxlXCd9LFxuIjsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICRpKys7Cj4+ IMKgwqDCoMKgwqAgfQo+PiBAQCAtOTIzLDcgKzkwOSw3IEBAIGZvcmVhY2ggbXkgJGtleSAoc29y dCBzb3J0UXVldWUga2V5cyAlZGIpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICRzdHlsZSA9ICdj b2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGN0eF9jb2xvdXIoJGN0eCwgJ3JlYWR5Jyk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDC oCAkY29udGVudCA9IAo+PiAiPHNtYWxsPiRuYW1lPGJyPiRkYnska2V5fS0+eydleGVjdXRlLWRl bGF5J311czwvc21hbGw+IjsKPj4gLcKgwqDCoMKgwqDCoMKgICRzdGFydGVuZCA9ICdzdGFydDog XCcnIC4gdHMoJHN1Ym1pdCkgLiAnXCcsIGVuZDogXCcnIC4gCj4+IHRzKCRzdGFydCkgLiAnXCcn Owo+PiArwqDCoMKgwqDCoMKgwqAgJHN0YXJ0ZW5kID0gJ3N0YXJ0OiAnIC4gJHN1Ym1pdCAuICcs IGVuZDogJyAuICRzdGFydDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHByaW50ICJcdHtpZDogJGks IGtleTogJHNrZXksICR0eXBlIGdyb3VwOiAkZ3JvdXAsIHN1Ymdyb3VwOiAKPj4gJHN1Ymdyb3Vw LCBzdWJncm91cE9yZGVyOiAkc3ViZ3JvdXAsIGNvbnRlbnQ6ICckY29udGVudCcsICRzdGFydGVu ZCwgCj4+IHN0eWxlOiBcJyRzdHlsZVwnfSxcbiI7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAkaSsr Owo+PiDCoMKgwqDCoMKgIH0KPj4gQEAgLTk0Miw3ICs5MjgsNyBAQCBmb3JlYWNoIG15ICRrZXkg KHNvcnQgc29ydFF1ZXVlIGtleXMgJWRiKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAkY29udGVu dCAuPSAnIDxzbWFsbD48aT4rKzwvaT48L3NtYWxsPiAnIGlmIGV4aXN0cyAKPj4gJGRieyRrZXl9 LT57J25vLWVuZCd9Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbnRlbnQgLj0gJyA8c21hbGw+ PGk+KzwvaT48L3NtYWxsPiAnIGlmIGV4aXN0cyAKPj4gJGRieyRrZXl9LT57J25vLW5vdGlmeSd9 Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbnRlbnQgLj0gIjxicj4kZGJ7JGtleX0tPnsnZHVy YXRpb24nfXVzIAo+PiA8c21hbGw+KCRkYnska2V5fS0+eydjb250ZXh0LWNvbXBsZXRlLWRlbGF5 J311cyk8L3NtYWxsPiI7Cj4+IC3CoMKgwqDCoMKgwqDCoCAkc3RhcnRlbmQgPSAnc3RhcnQ6IFwn JyAuIHRzKCRzdGFydCkgLiAnXCcsIGVuZDogXCcnIC4gCj4+IHRzKCRub3RpZnkpIC4gJ1wnJzsK Pj4gK8KgwqDCoMKgwqDCoMKgICRzdGFydGVuZCA9ICdzdGFydDogJyAuICRzdGFydCAuICcsIGVu ZDogJyAuICRub3RpZnk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBwcmludCAiXHR7aWQ6ICRpLCBr ZXk6ICRza2V5LCAkdHlwZSBncm91cDogJGdyb3VwLCBzdWJncm91cDogCj4+ICRzdWJncm91cCwg c3ViZ3JvdXBPcmRlcjogJHN1Ymdyb3VwLCBjb250ZW50OiAnJGNvbnRlbnQnLCAkc3RhcnRlbmQs IAo+PiBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGkrKzsK Pj4gwqDCoMKgwqDCoCB9Cj4+IEBAIC05NTYsNyArOTQyLDcgQEAgZm9yZWFjaCBteSAka2V5IChz b3J0IHNvcnRRdWV1ZSBrZXlzICVkYikgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbnRlbnQg Lj0gJyA8c21hbGw+PGk+Pz8/PC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzIAo+PiAkZGJ7JGtleX0t PnsnaW5jb21wbGV0ZSd9Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbnRlbnQgLj0gJyA8c21h bGw+PGk+Kys8L2k+PC9zbWFsbD4gJyBpZiBleGlzdHMgCj4+ICRkYnska2V5fS0+eyduby1lbmQn fTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICRjb250ZW50IC49ICcgPHNtYWxsPjxpPis8L2k+PC9z bWFsbD4gJyBpZiBleGlzdHMgCj4+ICRkYnska2V5fS0+eyduby1ub3RpZnknfTsKPj4gLcKgwqDC oMKgwqDCoMKgICRzdGFydGVuZCA9ICdzdGFydDogXCcnIC4gdHMoJG5vdGlmeSkgLiAnXCcsIGVu ZDogXCcnIC4gCj4+IHRzKCRlbmQpIC4gJ1wnJzsKPj4gK8KgwqDCoMKgwqDCoMKgICRzdGFydGVu ZCA9ICdzdGFydDogJyAuICRub3RpZnkgLiAnLCBlbmQ6ICcgLiAkZW5kOwo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgcHJpbnQgIlx0e2lkOiAkaSwga2V5OiAkc2tleSwgJHR5cGUgZ3JvdXA6ICRncm91 cCwgc3ViZ3JvdXA6IAo+PiAkc3ViZ3JvdXAsIHN1Ymdyb3VwT3JkZXI6ICRzdWJncm91cCwgY29u dGVudDogJyRjb250ZW50JywgJHN0YXJ0ZW5kLCAKPj4gc3R5bGU6IFwnJHN0eWxlXCd9LFxuIjsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgICRpKys7Cj4+IMKgwqDCoMKgwqAgfQo+PiBAQCAtOTc0LDcg Kzk2MCw3IEBAIGZvcmVhY2ggbXkgJGl0ZW0gKEBmcmVxcykgewo+PiDCoMKgwqDCoMKgICRzdGFy dCA9ICRmaXJzdF90cyBpZiAkc3RhcnQgPCAkZmlyc3RfdHM7Cj4+IMKgwqDCoMKgwqAgJGVuZCA9 ICRsYXN0X3RzIGlmICRlbmQgPiAkbGFzdF90czsKPj4gLcKgwqDCoCAkc3RhcnRlbmQgPSAnc3Rh cnQ6IFwnJyAuIHRzKCRzdGFydCkgLiAnXCcsIGVuZDogXCcnIC4gdHMoJGVuZCkgLiAKPj4gJ1wn JzsKPj4gK8KgwqDCoCAkc3RhcnRlbmQgPSAnc3RhcnQ6ICcgLiAkc3RhcnQgLiAnLCBlbmQ6ICcg LiAkZW5kOwo+PiDCoMKgwqDCoMKgIHByaW50ICJcdHtpZDogJGksIHR5cGU6ICdyYW5nZScsIGdy b3VwOiAwLCBjb250ZW50OiAnJGZyZXEnLCAKPj4gJHN0YXJ0ZW5kfSxcbiI7Cj4+IMKgwqDCoMKg wqAgJGkrKzsKPj4gwqAgfQo+PiBAQCAtOTg4LDE4ICs5NzQsNTUgQEAgaWYgKCRncHVfdGltZWxp bmUpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICRzdGFydCA9ICRmaXJzdF90cyBpZiAkc3RhcnQg PCAkZmlyc3RfdHM7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAkZW5kID0gJGxhc3RfdHMgaWYgJGVu ZCA+ICRsYXN0X3RzOwo+PiAtwqDCoMKgwqDCoMKgwqAgJHN0YXJ0ZW5kID0gJ3N0YXJ0OiBcJycg LiB0cygkc3RhcnQpIC4gJ1wnLCBlbmQ6IFwnJyAuIAo+PiB0cygkZW5kKSAuICdcJyc7Cj4+ICvC oMKgwqDCoMKgwqDCoCAkc3RhcnRlbmQgPSAnc3RhcnQ6ICcgLiAkc3RhcnQgLiAnLCBlbmQ6ICcg LiAkZW5kOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJpbnQgIlx0e2lkOiAkaSwgdHlwZTogJ3Jh bmdlJywgZ3JvdXA6IDEsICRzdGFydGVuZH0sXG4iOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgJGkr KzsKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIH0KPj4gLW15ICRlbmRfdHMgPSB0cygkZmlyc3RfdHMg KyAkd2lkdGhfdXMpOwo+PiAtJGZpcnN0X3RzID0gdHMoJGZpcnN0X3RzKTsKPj4gK215ICRlbmRf dHMgPSAkZmlyc3RfdHMgKyAkd2lkdGhfdXM7Cj4+ICskZmlyc3RfdHMgPSAkZmlyc3RfdHM7Cj4+ IMKgIHByaW50IDw8RU5ESFRNTDsKPj4gwqDCoMKgIF0pOwo+PiArwqAgZnVuY3Rpb24gbWFqb3JB eGlzKGRhdGUsIHNjYWxlLCBzdGVwKSB7Cj4+ICvCoMKgwqAgdmFyIHMgPSBkYXRlIC8gMTAwMDAw MDsKPj4gK8KgwqDCoCB2YXIgcHJlY2lzaW9uOwo+PiArCj4+ICvCoMKgwqAgaWYgKHNjYWxlID09 ICdtaWxsaXNlY29uZCcpCj4+ICvCoMKgwqDCoMKgwqDCoCBwcmVjaXNpb24gPSA2Owo+PiArwqDC oMKgIGVsc2UgaWYgKHNjYWxlID09ICdzZWNvbmQnKQo+PiArwqDCoMKgwqDCoMKgwqAgcHJlY2lz aW9uID0gMzsKPj4gK8KgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDCoCBwcmVjaXNpb24gPSAw Owo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIHMudG9GaXhlZChwcmVjaXNpb24pICsgInMiOwo+PiAr wqAgfQo+PiArCj4+ICvCoCBmdW5jdGlvbiBtaW5vckF4aXMoZGF0ZSwgc2NhbGUsIHN0ZXApIHsK Pj4gK8KgwqDCoCB2YXIgdCA9IGRhdGU7Cj4+ICvCoMKgwqAgdmFyIHByZWNpc2lvbjsKPj4gK8Kg wqDCoCB2YXIgdW5pdDsKPj4gKwo+PiArwqDCoMKgIGlmIChzY2FsZSA9PSAnbWlsbGlzZWNvbmQn KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB0ICU9IDEwMDA7Cj4+ICvCoMKgwqDCoMKgwqDCoCBwcmVj aXNpb24gPSAwOwo+PiArwqDCoMKgwqDCoMKgwqAgdW5pdCA9ICd1cyc7Cj4+ICvCoMKgwqAgfSBl bHNlIGlmIChzY2FsZSA9PSAnc2Vjb25kJykgewo+PiArwqDCoMKgwqDCoMKgwqAgdCAvPSAxMDAw Owo+PiArwqDCoMKgwqDCoMKgwqAgdCAlPSAxMDAwOwo+PiArwqDCoMKgwqDCoMKgwqAgcHJlY2lz aW9uID0gMDsKPj4gK8KgwqDCoMKgwqDCoMKgIHVuaXQgPSAnbXMnOwo+PiArwqDCoMKgIH0gZWxz ZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB0IC89IDEwMDAwMDA7Cj4+ICvCoMKgwqDCoMKgwqDCoCBw cmVjaXNpb24gPSAxOwo+PiArwqDCoMKgwqDCoMKgwqAgdW5pdCA9ICdzJzsKPj4gK8KgwqDCoCB9 Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gdC50b0ZpeGVkKHByZWNpc2lvbikgKyB1bml0Owo+PiAr wqAgfQo+PiArCj4+IMKgwqDCoCAvLyBDb25maWd1cmF0aW9uIGZvciB0aGUgVGltZWxpbmUKPj4g wqDCoMKgIHZhciBvcHRpb25zID0geyBncm91cE9yZGVyOiAnY29udGVudCcsCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaG9yaXpvbnRhbFNjcm9sbDogdHJ1ZSwKPj4gQEAgLTEwMDcsOCArMTAz MCw5IEBAIHByaW50IDw8RU5ESFRNTDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGFja1N1 Ymdyb3VwczogZmFsc2UsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgem9vbUtleTogJ2N0cmxL ZXknLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9yaWVudGF0aW9uOiAndG9wJywKPj4gLcKg wqDCoMKgwqDCoMKgwqDCoCBzdGFydDogJyRmaXJzdF90cycsCj4+IC3CoMKgwqDCoMKgwqDCoMKg wqAgZW5kOiAnJGVuZF90cyd9Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgIGZvcm1hdDogeyBtYWpv ckxhYmVsczogbWFqb3JBeGlzLCBtaW5vckxhYmVsczogbWlub3JBeGlzIH0sCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqAgc3RhcnQ6ICRmaXJzdF90cywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoCBlbmQ6 ICRlbmRfdHN9Owo+PiDCoMKgwqAgLy8gQ3JlYXRlIGEgVGltZWxpbmUKPj4gwqDCoMKgIHZhciB0 aW1lbGluZSA9IG5ldyB2aXMuVGltZWxpbmUoY29udGFpbmVyLCBpdGVtcywgZ3JvdXBzLCBvcHRp b25zKTsKPiAKPiBXb29ob28hCj4gCj4gVGhpcyBvbmUgc2VlbXMgdG8gd29yayBmaW5lIG9uIGJv dGggRmlyZWZveCBhbmQgQ2hyb21lLiBJdCBldmVuIHdvcmtzIG9uIAo+IElFIGFuZCBFZGdlIHVu bGlrZSB0aGUgcHJldmlvdXMgdmVyc2lvbiEgSSBndWVzcyB0aGV5IGNhbiBvbmx5IGNvcGUgd2l0 aCAKPiByYXcgdGltZXMgbm90IGRhdGVzIT8KPiAKPiBPbmUgdGhpbmcgSSd2ZSBqdXN0IG5vdGlj ZWQgaXMgdGhhdCB0aGVyZSBpcyBhbHNvIGEgJ25vdycgbGluZSBvbiB0aGUgCj4gdGltZWxpbmUg LSBhIHJlZCB2ZXJ0aWNhbCBiYXIgYWNyb3NzIHRoZSBlbnRpcmUgdGltZWxpbmUuIE9uIHRoZSBv bGQgCj4gJ2RhdGUnIHZlcnNpb25zLCBpdCB3YXMgZm9sbG93aW5nIHRoZSBjdXJyZW50IHN5c3Rl bSB0aW1lIGFuZCBoZW5jZSAKPiB3YW5kZXJpbmcgZm9yd2FyZHMgYXQgb25lIHNlY29uZCBwZXIg c2Vjb25kLiBPbiB0aGlzIHZlcnNpb24sIGl0IGlzIG91dCAKPiBvZiBwb3NpdGlvbiBhbmQgYWR2 YW5jaW5nIGF0IG9uZSBtaWxsaXNlY29uZCBwZXIgc2Vjb25kLiBQcmVzdW1hYmx5IAo+IGJlY2F1 c2UgeW91IGFyZSBzY2FsaW5nIHRoZSBheGVzIGJ5IGEgZmFjdG9yIG9mIG9uZSB0aG91c2FuZCBp biBvcmRlciB0byAKPiBnYWluIHRoZSBuZWNlc3NhcnkgcHJlY2lzaW9uIGluIHRoZSBwbG90LiBT b21ldGhpbmcgb2YgYSBjdXJpb3NpdHkgYnV0IAo+IGNlcnRhaW5seSBub3QgYSBwcm9ibGVtIQoK QSBtb3ZpbmcgcmVkIGxpbmU/IEkgbmV2ZXIgc2F3IHRoYXQhIEluIGFueSBicm93c2VyPwoKPiBT aGlwIGl0IDopCgpJIGhhdmUgc2hpcHBlZCBpdCwgdGhhbmtzIQoKSSBoYXZlIHJlc2VudCB0aGUg cmVtYWluaW5nIHR3byB1bnJldmlld2VkIHBhdGNoZXMsIHBsdXMgdHdvIG5ldyBvbmVzLiAKT25l IGlzIGEgZml4IGZvciBmcmVxdWVuY3kgdGltZWxpbmUsIGFuZCBhbm90aGVyIGlzIGJyaW5naW5n IGJhY2sgKG5vdyAKd29ya2luZykgc3RhY2tpbmcgYnV0dG9uLiAoQnV0IGl0IGlzIG9mZiBieSBk ZWZhdWx0LikKClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==