From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 536CB6E18C for ; Mon, 9 Jul 2018 13:20:13 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id b15-v6so10975354wrv.10 for ; Mon, 09 Jul 2018 06:20:13 -0700 (PDT) From: Tvrtko Ursulin Date: Mon, 9 Jul 2018 14:19:55 +0100 Message-Id: <20180709132004.14468-3-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180709132004.14468-1-tvrtko.ursulin@linux.intel.com> References: <20180709132004.14468-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 02/11] trace.pl: Improve readability of graphical timeline representation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFkZCBz dHJpcGVzIGZvciBkaWZmZXJlbnQgc3RhZ2VzIG9mIHJlcXVlc3QgZXhlY3V0aW9uIHNvIGl0IGlz IGVhc2llcgp0byBmb2xsb3cgb25lIGNvbnRleHQgaW4gdGhlIG11bHRpLWNvbG91ciBtb2RlLgoK VmVydGljYWwgc3RyaXBlIHBhdHRlcm4gaW5kaWNhdGVzIHBpcGVsaW5lICJibG9ja2FnZXMiIC0g cmVxdWVzdHMgd2FpdGluZwpmb3IgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJs ZS4KCkRpYWdvbmFsIHN0cmlwZXMgaW5kaWNhdGUgcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBm b3IgR1BVIHRpbWUuCgpIb3Jpem9udGFsIHN0cmlwcyBhcmUgcmVxdWVzdHMgZXhlY3V0aW5nIG9u IHRoZSBHUFUuCgpBbHNvIHVzZSB0aGlzIG5ldyBtdWx0aS1jb2xvdXJlZCBtb2RlIGZyb20gbWVk aWEtYmVuY2gucGwuCgp2MjoKIEpvaG4gSGFycmlzb246CiAqIE1lbnRpb24gbWVkaWEtYmVuY2gu cGwgaW4gdGhlIGNvbW1pdC4KICogRml4IEhUTUwgZm9yIHNpbmdsZSBjb2xvdXIgbW9kZS4KCnYz OgogKiBSZWJhc2UuCiAqIEFwcGx5IHN0cmlwZXMgdG8gbGVnYWN5IGNvbG91cmluZyBhcyB3ZWxs LgoKdjQ6CiBKb2huIEhhcnJpc29uOgogKiBVc2UgcGVyIGNvbnRleHQgY29sb3VycyBmb3IgY3R4 c2F2ZSBhbmQgaW5jb21wbGV0ZSBib3hlcy4KICogQ2xlYXJlciB0aW1lbGluZSBsZWdlbmQuCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBzY3JpcHRz L21lZGlhLWJlbmNoLnBsIHwgICAyICstCiBzY3JpcHRzL3RyYWNlLnBsICAgICAgIHwgMTEyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDkwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMv bWVkaWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IGM1NjI4YzdmMjgz Ni4uMzc1ODQ0ZDljZGY2IDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBi L3NjcmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdWIgdHJhY2Vfd29y a2xvYWQKIAlzaG93X2NtZCgkY21kKTsKIAlzeXN0ZW0oJGNtZCk7CiAKLQkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgIjsKKwkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgLWMgIjsKIAkkY21kIC49IGpv aW4gJyAnLCBtYXAoIi1pICRfIiwgQHNraXBfZW5naW5lKTsKIAkkY21kIC49ICIgPiAke2ZpbGV9 Lmh0bWwiOwogCXNob3dfY21kKCRjbWQpOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBi L3NjcmlwdHMvdHJhY2UucGwKaW5kZXggZmQ0MTRmNWE0YjFlLi4xZWM4YjI5N2QxNWUgMTAwNzU1 Ci0tLSBhL3NjcmlwdHMvdHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNzI3LDkg KzcyNywxNCBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJXJlcXdhaXQpIHsKIHNheSBzcHJpbnRm KCdHUFU6ICUuMmYlJSBpZGxlLCAlLjJmJSUgYnVzeScsCiAJICAgICAkZmxhdF9idXN5eydncHUt aWRsZSd9LCAkZmxhdF9idXN5eydncHUtYnVzeSd9KSB1bmxlc3MgJGh0bWw7CiAKLW15ICRxdWV1 ZWRfY29sb3VyID0gJGNvbG91cl9jb250ZXh0cyA/ICdtdWx0aS1jb2xvdXIgbGlnaHQnIDogJ2Js dWUnOwotbXkgJHJ1bm5hYmxlX2NvbG91ciA9ICRjb2xvdXJfY29udGV4dHMgPyAnbXVsdGktY29s b3VyIGRhcmsnIDogJ2dyZXknOwotbXkgJGV4ZWN1dGVfY29sb3VyID0gJGNvbG91cl9jb250ZXh0 cyA/ICdtdWx0aS1jb2xvdXInIDogJ3BpbmsnOworbXkgJHRpbWVsaW5lX3RleHQgPSAkY29sb3Vy X2NvbnRleHRzID8KKwkJICAgICdQZXIgY29udGV4dCBjb2xvdXJlZCBzaGFkaW5nIGxpa2U6JyA6 ICdCb3ggc2hhZGluZyBsaWtlOic7CisKK215ICRxdWV1ZWRfc3R5bGUgPSBib3hfc3R5bGUoJG1p bl9jdHgsICdxdWV1ZScpOworbXkgJHJlYWR5X3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAn cmVhZHknKTsKK215ICRleGVjdXRlX3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAnZXhlY3V0 ZScpOworbXkgJGN0eHNhdmVfc3R5bGUgPSBib3hfc3R5bGUoJG1pbl9jdHgsICdjdHhzYXZlJyk7 CitteSAkaW5jb21wbGV0ZV9zdHlsZSA9IGJveF9zdHlsZSgkbWluX2N0eCwgJ2luY29tcGxldGUn KTsKIAogcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwogPCFET0NUWVBFIEhUTUw+CkBAIC03NTEs OSArNzU2LDI4IEBAIHByaW50IDw8RU5ESFRNTCBpZiAkaHRtbDsKIDxidXR0b24gb25jbGljaz0i dG9nZ2xlU3RhY2tTdWJncm91cHMoKSI+VG9nZ2xlIHN0YWNraW5nPC9idXR0b24+CiAKIDxwPgot JGV4ZWN1dGVfY29sb3VyID0gcmVxdWVzdHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+Ci0kcnVu bmFibGVfY29sb3VyID0gcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBmb3IgYSBzbG90IG9uIEdQ VTxicj4KLSRxdWV1ZWRfY29sb3VyID0gcmVxdWVzdHMgd2FpdGluZyBvbiBmZW5jZXMgYW5kIGRl cGVuZGVuY2llcyBiZWZvcmUgdGhleSBhcmUgcnVubmFibGU8YnI+Cis8Yj5UaW1lbGluZSByZXF1 ZXN0IHZpZXc6PC9iPgorPHRhYmxlPgorPHRyPjx0ZCBjb2xzcGFuPSc0Jz4kdGltZWxpbmVfdGV4 dDwvdGQ+PC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0nY2VudGVyJz48ZGl2IHN0eWxlPSckcXVldWVk X3N0eWxlJz5RVUVVRUQ8L2Rpdj48L3RkPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYgc3R5bGU9 JyRyZWFkeV9zdHlsZSc+UkVBRFk8L2Rpdj48L3RkPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYg c3R5bGU9JyRleGVjdXRlX3N0eWxlJz5FWEVDVVRFPC9kaXY+PC90ZD4KKzx0ZCBhbGlnbj0nY2Vu dGVyJz48ZGl2IHN0eWxlPSckY3R4c2F2ZV9zdHlsZSc+Q1RYU0FWRTwvZGl2PjwvdGQ+Cis8L3Ry Pjx0cj4KKzx0ZD48L3RkPgorPHRkPjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+PGRpdiBzdHls ZT0nJGluY29tcGxldGVfc3R5bGUnPihJTkNPTVBMRVRFKTwvZGl2PjwvdGQ+Cis8dGQ+PC90ZD4K KzwvdHIvPjwvdGFibGU+Cis8L3A+Cis8cD4KKzxzbWFsbD4KK1FVRVVFRCA9IHJlcXVlc3RzIGV4 ZWN1dGluZyBvbiB0aGUgR1BVPGJyPgorUkVBRFkgPSBydW5uYWJsZSByZXF1ZXN0cyB3YWl0aW5n IGZvciBhIHNsb3Qgb24gR1BVPGJyPgorRVhFQ1VURSA9IHJlcXVlc3RzIHdhaXRpbmcgb24gZmVu Y2VzIGFuZCBkZXBlbmRlbmNpZXMgYmVmb3JlIHRoZXkgYXJlIHJ1bm5hYmxlPGJyPgorQ1RYU0FW RSA9IEdQVSBzYXZpbmcgdGhlIGNvbnRleHQgaW1hZ2U8YnI+Cis8L3NtYWxsPgogPC9wPgogPHA+ CiBCb3hlcyBhcmUgaW4gZm9ybWF0ICdjdHgtaWQvc2Vxbm8nLgpAQCAtODczLDE3ICs4OTcsMzEg QEAgc3ViIHNvcnRRdWV1ZSB7CiAKIHN1YiBjdHhfY29sb3VyCiB7Ci0JbXkgKCRjdHgsICRzdGFn ZSkgPSAoQF8pOworCW15ICgkY3R4LCAkc3RhZ2UsICRsZmFjKSA9IChAXyk7CiAJbXkgKCRzLCAk bCk7CiAJbXkgJHZhbDsKIAogCXVubGVzcyAoJGNvbG91cl9jb250ZXh0cykgewogCQlpZiAoJHN0 YWdlIGVxICdxdWV1ZScpIHsKLQkJCXJldHVybiAnbGlnaHRibHVlOyc7CisJCQkkdmFsID0gMjEw OworCQkJJHMgPSA2NTsKKwkJCSRsID0gNTI7CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAncmVhZHkn KSB7Ci0JCQlyZXR1cm4gJ2xpZ2h0Z3JleTsnOworCQkJJHZhbCA9IDA7CisJCQkkcyA9IDA7CisJ CQkkbCA9IDQ3OwogCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2V4ZWN1dGUnKSB7Ci0JCQlyZXR1cm4g J3Bpbms7JzsKKwkJCSR2YWwgPSAzNDY7CisJCQkkcyA9IDY4OworCQkJJGwgPSA2NTsKKwkJfSBl bHNpZiAoJHN0YWdlIGVxICdjdHhzYXZlJykgeworCQkJJHZhbCA9IDI2OworCQkJJHMgPSA5MDsK KwkJCSRsID0gNTI7CisJCX0gZWxzaWYgKCRzdGFnZSBlcSAnaW5jb21wbGV0ZScpIHsKKwkJCSR2 YWwgPSAwOworCQkJJHMgPSA4NTsKKwkJCSRsID0gNTA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAo JHN0YWdlIGVxICdxdWV1ZScpIHsKQEAgLTg5NSwxMiArOTMzLDQ1IEBAIHN1YiBjdHhfY29sb3Vy CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKIAkJCSRzID0gODA7CiAJCQkkbCA9 IDY1OworCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCQkkcyA9IDc1OworCQkJ JGwgPSA3MDsKKwkJfSBlbHNpZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgeworCQkJJHMgPSA4 MDsKKwkJCSRsID0gMjU7CiAJCX0KKworCQkkdmFsID0gaW50KDM2MCAvICgkbWF4X2N0eCAtICRt aW5fY3R4ICsgMSkpICogKCRjdHggLSAkbWluX2N0eCk7CiAJfQogCi0JJHZhbCA9IGludCgzNjAg LyAoJG1heF9jdHggLSAkbWluX2N0eCArIDEpKSAqICgkY3R4IC0gJG1pbl9jdHgpOworCSRsID0g aW50KCRsICogJGxmYWMpOwogCi0JcmV0dXJuICJoc2woJHZhbCwgJHMlLCAkbCUpOyI7CisJcmV0 dXJuICJoc2woJHZhbCwgJHMlLCAkbCUpIjsKK30KKworc3ViIGJveF9zdHlsZQoreworCW15ICgk Y3R4LCAkc3RhZ2UpID0gQF87CisJbXkgJGRlZzsKKworCWlmICgkc3RhZ2UgZXEgJ3F1ZXVlJykg eworCQkkZGVnID0gOTA7CisJfSBlbHNpZiAoJHN0YWdlIGVxICdyZWFkeScpIHsKKwkJJGRlZyA9 IDQ1OworCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKKwkJJGRlZyA9IDA7CisJfSBl bHNpZiAoJHN0YWdlIGVxICdjdHhzYXZlJykgeworCQkkZGVnID0gMTA1OworCX0gZWxzaWYgKCRz dGFnZSBlcSAnaW5jb21wbGV0ZScpIHsKKwkJJGRlZyA9IDA7CisJfQorCisJcmV0dXJuICdjb2xv cjogYmxhY2s7IGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoJyAuCisJCSRk ZWcgLiAnZGVnLCAnIC4KKwkJY3R4X2NvbG91cigkY3R4LCAkc3RhZ2UsIDEuMCkgLiAnLCAnIC4K KwkJY3R4X2NvbG91cigkY3R4LCAkc3RhZ2UsIDEuMCkgLiAnIDEwcHgsICcgLgorCQljdHhfY29s b3VyKCRjdHgsICRzdGFnZSwgMC45MCkgLiAnIDEwcHgsICcgLgorCQljdHhfY29sb3VyKCRjdHgs ICRzdGFnZSwgMC45MCkgLiAnIDIwcHgpOyc7CiB9CiAKIG15ICRpID0gMDsKQEAgLTkxNyw4ICs5 ODgsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRiKSB7CiAJIyBz dWJtaXQgdG8gZXhlY3V0ZQogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsncXVldWUnfSkgewog CQkkc2tleSA9IDIgKiAkbWF4X3NlcW5vICogJGN0eCArIDIgKiAkc2Vxbm87Ci0JCSRzdHlsZSA9 ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJIGN0eF9jb2xvdXIoJGN0 eCwgJ3F1ZXVlJyk7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAncXVldWUnKTsKIAkJJGNv bnRlbnQgPSAiJG5hbWU8YnI+JGRieyRrZXl9LT57J3N1Ym1pdC1kZWxheSd9dXMgPHNtYWxsPigk ZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9dXMpPC9zbWFsbD4iOwogCQkkc3RhcnRlbmQgPSAn c3RhcnQ6IFwnJyAuIHRzKCRxdWV1ZSkgLiAnXCcsIGVuZDogXCcnIC4gdHMoJHN1Ym1pdCkgLiAn XCcnOwogCQlwcmludCAiXHR7aWQ6ICRpLCBrZXk6ICRza2V5LCAkdHlwZSBncm91cDogJGdyb3Vw LCBzdWJncm91cDogMSwgc3ViZ3JvdXBPcmRlcjogMSwgY29udGVudDogJyRjb250ZW50JywgJHN0 YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAtOTI4LDggKzk5OCw3IEBAIGZvcmVh Y2ggbXkgJGtleSAoc29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsKIAkjIGV4ZWN1dGUgdG8gc3Rh cnQKIAl1bmxlc3MgKGV4aXN0cyAkc2tpcF9ib3h7J3JlYWR5J30pIHsKIAkJJHNrZXkgPSAyICog JG1heF9zZXFubyAqICRjdHggKyAyICogJHNlcW5vICsgMTsKLQkJJHN0eWxlID0gJ2NvbG9yOiBi bGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkgY3R4X2NvbG91cigkY3R4LCAncmVhZHkn KTsKKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsICdyZWFkeScpOwogCQkkY29udGVudCA9ICI8 c21hbGw+JG5hbWU8YnI+JGRieyRrZXl9LT57J2V4ZWN1dGUtZGVsYXknfXVzPC9zbWFsbD4iOwog CQkkc3RhcnRlbmQgPSAnc3RhcnQ6IFwnJyAuIHRzKCRzdWJtaXQpIC4gJ1wnLCBlbmQ6IFwnJyAu IHRzKCRzdGFydCkgLiAnXCcnOwogCQlwcmludCAiXHR7aWQ6ICRpLCBrZXk6ICRza2V5LCAkdHlw ZSBncm91cDogJGdyb3VwLCBzdWJncm91cDogMSwgc3ViZ3JvdXBPcmRlcjogMiwgY29udGVudDog JyRjb250ZW50JywgJHN0YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAtOTM5LDEy ICsxMDA4LDkgQEAgZm9yZWFjaCBteSAka2V5IChzb3J0IHNvcnRRdWV1ZSBrZXlzICVkYikgewog CSMgc3RhcnQgdG8gdXNlciBpbnRlcnJ1cHQKIAl1bmxlc3MgKGV4aXN0cyAkc2tpcF9ib3h7J2V4 ZWN1dGUnfSkgewogCQkkc2tleSA9IC0yICogJG1heF9zZXFubyAqICRjdHggLSAyICogJHNlcW5v IC0gMTsKLQkJaWYgKGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9KSB7Ci0JCQkkc3R5 bGUgPSAnY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7JzsKLQkJfSBlbHNlIHsK LQkJCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJCSAg Y3R4X2NvbG91cigkY3R4LCAnZXhlY3V0ZScpOwotCQl9CisJCSRzdHlsZSA9IGJveF9zdHlsZSgk Y3R4LAorCQkJCSAgIGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9ID8KKwkJCQkgICAn aW5jb21wbGV0ZScgOiAnZXhlY3V0ZScpOwogCQkkY29udGVudCA9ICIkbmFtZSA8c21hbGw+JGRi eyRrZXl9LT57J3BvcnQnfTwvc21hbGw+IjsKIAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+PGk+Pz8/ PC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ307CiAJCSRj b250ZW50IC49ICcgPHNtYWxsPjxpPisrPC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRkYnska2V5 fS0+eyduby1lbmQnfTsKQEAgLTk1OCw3ICsxMDI0LDcgQEAgZm9yZWFjaCBteSAka2V5IChzb3J0 IHNvcnRRdWV1ZSBrZXlzICVkYikgewogCSMgdXNlciBpbnRlcnJ1cHQgdG8gY29udGV4dCBjb21w bGV0ZQogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsnY3R4c2F2ZSd9KSB7CiAJCSRza2V5ID0g LTIgKiAkbWF4X3NlcW5vICogJGN0eCAtIDIgKiAkc2Vxbm87Ci0JCSRzdHlsZSA9ICdjb2xvcjog YmxhY2s7IGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsnOworCQkkc3R5bGUgPSBib3hfc3R5bGUo JGN0eCwgJ2N0eHNhdmUnKTsKIAkJbXkgJGN0eHNhdmUgPSAkZGJ7JGtleX0tPnsnZW5kJ30gLSAk ZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJCSRjb250ZW50ID0gIjxzbWFsbD4kbmFtZTxicj4ke2N0 eHNhdmV9dXM8L3NtYWxsPiI7CiAJCSRjb250ZW50IC49ICcgPHNtYWxsPjxpPj8/PzwvaT48L3Nt YWxsPiAnIGlmIGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9OwotLSAKMi4xNy4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1h aWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 02/11] trace.pl: Improve readability of graphical timeline representation Date: Mon, 9 Jul 2018 14:19:55 +0100 Message-ID: <20180709132004.14468-3-tvrtko.ursulin@linux.intel.com> References: <20180709132004.14468-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id 19CC36E174 for ; Mon, 9 Jul 2018 13:20:13 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id h10-v6so10956925wre.6 for ; Mon, 09 Jul 2018 06:20:13 -0700 (PDT) In-Reply-To: <20180709132004.14468-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFkZCBz dHJpcGVzIGZvciBkaWZmZXJlbnQgc3RhZ2VzIG9mIHJlcXVlc3QgZXhlY3V0aW9uIHNvIGl0IGlz IGVhc2llcgp0byBmb2xsb3cgb25lIGNvbnRleHQgaW4gdGhlIG11bHRpLWNvbG91ciBtb2RlLgoK VmVydGljYWwgc3RyaXBlIHBhdHRlcm4gaW5kaWNhdGVzIHBpcGVsaW5lICJibG9ja2FnZXMiIC0g cmVxdWVzdHMgd2FpdGluZwpmb3IgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJs ZS4KCkRpYWdvbmFsIHN0cmlwZXMgaW5kaWNhdGUgcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBm b3IgR1BVIHRpbWUuCgpIb3Jpem9udGFsIHN0cmlwcyBhcmUgcmVxdWVzdHMgZXhlY3V0aW5nIG9u IHRoZSBHUFUuCgpBbHNvIHVzZSB0aGlzIG5ldyBtdWx0aS1jb2xvdXJlZCBtb2RlIGZyb20gbWVk aWEtYmVuY2gucGwuCgp2MjoKIEpvaG4gSGFycmlzb246CiAqIE1lbnRpb24gbWVkaWEtYmVuY2gu cGwgaW4gdGhlIGNvbW1pdC4KICogRml4IEhUTUwgZm9yIHNpbmdsZSBjb2xvdXIgbW9kZS4KCnYz OgogKiBSZWJhc2UuCiAqIEFwcGx5IHN0cmlwZXMgdG8gbGVnYWN5IGNvbG91cmluZyBhcyB3ZWxs LgoKdjQ6CiBKb2huIEhhcnJpc29uOgogKiBVc2UgcGVyIGNvbnRleHQgY29sb3VycyBmb3IgY3R4 c2F2ZSBhbmQgaW5jb21wbGV0ZSBib3hlcy4KICogQ2xlYXJlciB0aW1lbGluZSBsZWdlbmQuCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBzY3JpcHRz L21lZGlhLWJlbmNoLnBsIHwgICAyICstCiBzY3JpcHRzL3RyYWNlLnBsICAgICAgIHwgMTEyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDkwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMv bWVkaWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IGM1NjI4YzdmMjgz Ni4uMzc1ODQ0ZDljZGY2IDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBi L3NjcmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdWIgdHJhY2Vfd29y a2xvYWQKIAlzaG93X2NtZCgkY21kKTsKIAlzeXN0ZW0oJGNtZCk7CiAKLQkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgIjsKKwkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgLWMgIjsKIAkkY21kIC49IGpv aW4gJyAnLCBtYXAoIi1pICRfIiwgQHNraXBfZW5naW5lKTsKIAkkY21kIC49ICIgPiAke2ZpbGV9 Lmh0bWwiOwogCXNob3dfY21kKCRjbWQpOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBi L3NjcmlwdHMvdHJhY2UucGwKaW5kZXggZmQ0MTRmNWE0YjFlLi4xZWM4YjI5N2QxNWUgMTAwNzU1 Ci0tLSBhL3NjcmlwdHMvdHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNzI3LDkg KzcyNywxNCBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJXJlcXdhaXQpIHsKIHNheSBzcHJpbnRm KCdHUFU6ICUuMmYlJSBpZGxlLCAlLjJmJSUgYnVzeScsCiAJICAgICAkZmxhdF9idXN5eydncHUt aWRsZSd9LCAkZmxhdF9idXN5eydncHUtYnVzeSd9KSB1bmxlc3MgJGh0bWw7CiAKLW15ICRxdWV1 ZWRfY29sb3VyID0gJGNvbG91cl9jb250ZXh0cyA/ICdtdWx0aS1jb2xvdXIgbGlnaHQnIDogJ2Js dWUnOwotbXkgJHJ1bm5hYmxlX2NvbG91ciA9ICRjb2xvdXJfY29udGV4dHMgPyAnbXVsdGktY29s b3VyIGRhcmsnIDogJ2dyZXknOwotbXkgJGV4ZWN1dGVfY29sb3VyID0gJGNvbG91cl9jb250ZXh0 cyA/ICdtdWx0aS1jb2xvdXInIDogJ3BpbmsnOworbXkgJHRpbWVsaW5lX3RleHQgPSAkY29sb3Vy X2NvbnRleHRzID8KKwkJICAgICdQZXIgY29udGV4dCBjb2xvdXJlZCBzaGFkaW5nIGxpa2U6JyA6 ICdCb3ggc2hhZGluZyBsaWtlOic7CisKK215ICRxdWV1ZWRfc3R5bGUgPSBib3hfc3R5bGUoJG1p bl9jdHgsICdxdWV1ZScpOworbXkgJHJlYWR5X3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAn cmVhZHknKTsKK215ICRleGVjdXRlX3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAnZXhlY3V0 ZScpOworbXkgJGN0eHNhdmVfc3R5bGUgPSBib3hfc3R5bGUoJG1pbl9jdHgsICdjdHhzYXZlJyk7 CitteSAkaW5jb21wbGV0ZV9zdHlsZSA9IGJveF9zdHlsZSgkbWluX2N0eCwgJ2luY29tcGxldGUn KTsKIAogcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwogPCFET0NUWVBFIEhUTUw+CkBAIC03NTEs OSArNzU2LDI4IEBAIHByaW50IDw8RU5ESFRNTCBpZiAkaHRtbDsKIDxidXR0b24gb25jbGljaz0i dG9nZ2xlU3RhY2tTdWJncm91cHMoKSI+VG9nZ2xlIHN0YWNraW5nPC9idXR0b24+CiAKIDxwPgot JGV4ZWN1dGVfY29sb3VyID0gcmVxdWVzdHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+Ci0kcnVu bmFibGVfY29sb3VyID0gcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBmb3IgYSBzbG90IG9uIEdQ VTxicj4KLSRxdWV1ZWRfY29sb3VyID0gcmVxdWVzdHMgd2FpdGluZyBvbiBmZW5jZXMgYW5kIGRl cGVuZGVuY2llcyBiZWZvcmUgdGhleSBhcmUgcnVubmFibGU8YnI+Cis8Yj5UaW1lbGluZSByZXF1 ZXN0IHZpZXc6PC9iPgorPHRhYmxlPgorPHRyPjx0ZCBjb2xzcGFuPSc0Jz4kdGltZWxpbmVfdGV4 dDwvdGQ+PC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0nY2VudGVyJz48ZGl2IHN0eWxlPSckcXVldWVk X3N0eWxlJz5RVUVVRUQ8L2Rpdj48L3RkPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYgc3R5bGU9 JyRyZWFkeV9zdHlsZSc+UkVBRFk8L2Rpdj48L3RkPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYg c3R5bGU9JyRleGVjdXRlX3N0eWxlJz5FWEVDVVRFPC9kaXY+PC90ZD4KKzx0ZCBhbGlnbj0nY2Vu dGVyJz48ZGl2IHN0eWxlPSckY3R4c2F2ZV9zdHlsZSc+Q1RYU0FWRTwvZGl2PjwvdGQ+Cis8L3Ry Pjx0cj4KKzx0ZD48L3RkPgorPHRkPjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+PGRpdiBzdHls ZT0nJGluY29tcGxldGVfc3R5bGUnPihJTkNPTVBMRVRFKTwvZGl2PjwvdGQ+Cis8dGQ+PC90ZD4K KzwvdHIvPjwvdGFibGU+Cis8L3A+Cis8cD4KKzxzbWFsbD4KK1FVRVVFRCA9IHJlcXVlc3RzIGV4 ZWN1dGluZyBvbiB0aGUgR1BVPGJyPgorUkVBRFkgPSBydW5uYWJsZSByZXF1ZXN0cyB3YWl0aW5n IGZvciBhIHNsb3Qgb24gR1BVPGJyPgorRVhFQ1VURSA9IHJlcXVlc3RzIHdhaXRpbmcgb24gZmVu Y2VzIGFuZCBkZXBlbmRlbmNpZXMgYmVmb3JlIHRoZXkgYXJlIHJ1bm5hYmxlPGJyPgorQ1RYU0FW RSA9IEdQVSBzYXZpbmcgdGhlIGNvbnRleHQgaW1hZ2U8YnI+Cis8L3NtYWxsPgogPC9wPgogPHA+ CiBCb3hlcyBhcmUgaW4gZm9ybWF0ICdjdHgtaWQvc2Vxbm8nLgpAQCAtODczLDE3ICs4OTcsMzEg QEAgc3ViIHNvcnRRdWV1ZSB7CiAKIHN1YiBjdHhfY29sb3VyCiB7Ci0JbXkgKCRjdHgsICRzdGFn ZSkgPSAoQF8pOworCW15ICgkY3R4LCAkc3RhZ2UsICRsZmFjKSA9IChAXyk7CiAJbXkgKCRzLCAk bCk7CiAJbXkgJHZhbDsKIAogCXVubGVzcyAoJGNvbG91cl9jb250ZXh0cykgewogCQlpZiAoJHN0 YWdlIGVxICdxdWV1ZScpIHsKLQkJCXJldHVybiAnbGlnaHRibHVlOyc7CisJCQkkdmFsID0gMjEw OworCQkJJHMgPSA2NTsKKwkJCSRsID0gNTI7CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAncmVhZHkn KSB7Ci0JCQlyZXR1cm4gJ2xpZ2h0Z3JleTsnOworCQkJJHZhbCA9IDA7CisJCQkkcyA9IDA7CisJ CQkkbCA9IDQ3OwogCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2V4ZWN1dGUnKSB7Ci0JCQlyZXR1cm4g J3Bpbms7JzsKKwkJCSR2YWwgPSAzNDY7CisJCQkkcyA9IDY4OworCQkJJGwgPSA2NTsKKwkJfSBl bHNpZiAoJHN0YWdlIGVxICdjdHhzYXZlJykgeworCQkJJHZhbCA9IDI2OworCQkJJHMgPSA5MDsK KwkJCSRsID0gNTI7CisJCX0gZWxzaWYgKCRzdGFnZSBlcSAnaW5jb21wbGV0ZScpIHsKKwkJCSR2 YWwgPSAwOworCQkJJHMgPSA4NTsKKwkJCSRsID0gNTA7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAo JHN0YWdlIGVxICdxdWV1ZScpIHsKQEAgLTg5NSwxMiArOTMzLDQ1IEBAIHN1YiBjdHhfY29sb3Vy CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKIAkJCSRzID0gODA7CiAJCQkkbCA9 IDY1OworCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCQkkcyA9IDc1OworCQkJ JGwgPSA3MDsKKwkJfSBlbHNpZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgeworCQkJJHMgPSA4 MDsKKwkJCSRsID0gMjU7CiAJCX0KKworCQkkdmFsID0gaW50KDM2MCAvICgkbWF4X2N0eCAtICRt aW5fY3R4ICsgMSkpICogKCRjdHggLSAkbWluX2N0eCk7CiAJfQogCi0JJHZhbCA9IGludCgzNjAg LyAoJG1heF9jdHggLSAkbWluX2N0eCArIDEpKSAqICgkY3R4IC0gJG1pbl9jdHgpOworCSRsID0g aW50KCRsICogJGxmYWMpOwogCi0JcmV0dXJuICJoc2woJHZhbCwgJHMlLCAkbCUpOyI7CisJcmV0 dXJuICJoc2woJHZhbCwgJHMlLCAkbCUpIjsKK30KKworc3ViIGJveF9zdHlsZQoreworCW15ICgk Y3R4LCAkc3RhZ2UpID0gQF87CisJbXkgJGRlZzsKKworCWlmICgkc3RhZ2UgZXEgJ3F1ZXVlJykg eworCQkkZGVnID0gOTA7CisJfSBlbHNpZiAoJHN0YWdlIGVxICdyZWFkeScpIHsKKwkJJGRlZyA9 IDQ1OworCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKKwkJJGRlZyA9IDA7CisJfSBl bHNpZiAoJHN0YWdlIGVxICdjdHhzYXZlJykgeworCQkkZGVnID0gMTA1OworCX0gZWxzaWYgKCRz dGFnZSBlcSAnaW5jb21wbGV0ZScpIHsKKwkJJGRlZyA9IDA7CisJfQorCisJcmV0dXJuICdjb2xv cjogYmxhY2s7IGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoJyAuCisJCSRk ZWcgLiAnZGVnLCAnIC4KKwkJY3R4X2NvbG91cigkY3R4LCAkc3RhZ2UsIDEuMCkgLiAnLCAnIC4K KwkJY3R4X2NvbG91cigkY3R4LCAkc3RhZ2UsIDEuMCkgLiAnIDEwcHgsICcgLgorCQljdHhfY29s b3VyKCRjdHgsICRzdGFnZSwgMC45MCkgLiAnIDEwcHgsICcgLgorCQljdHhfY29sb3VyKCRjdHgs ICRzdGFnZSwgMC45MCkgLiAnIDIwcHgpOyc7CiB9CiAKIG15ICRpID0gMDsKQEAgLTkxNyw4ICs5 ODgsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRiKSB7CiAJIyBz dWJtaXQgdG8gZXhlY3V0ZQogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsncXVldWUnfSkgewog CQkkc2tleSA9IDIgKiAkbWF4X3NlcW5vICogJGN0eCArIDIgKiAkc2Vxbm87Ci0JCSRzdHlsZSA9 ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJIGN0eF9jb2xvdXIoJGN0 eCwgJ3F1ZXVlJyk7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAncXVldWUnKTsKIAkJJGNv bnRlbnQgPSAiJG5hbWU8YnI+JGRieyRrZXl9LT57J3N1Ym1pdC1kZWxheSd9dXMgPHNtYWxsPigk ZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9dXMpPC9zbWFsbD4iOwogCQkkc3RhcnRlbmQgPSAn c3RhcnQ6IFwnJyAuIHRzKCRxdWV1ZSkgLiAnXCcsIGVuZDogXCcnIC4gdHMoJHN1Ym1pdCkgLiAn XCcnOwogCQlwcmludCAiXHR7aWQ6ICRpLCBrZXk6ICRza2V5LCAkdHlwZSBncm91cDogJGdyb3Vw LCBzdWJncm91cDogMSwgc3ViZ3JvdXBPcmRlcjogMSwgY29udGVudDogJyRjb250ZW50JywgJHN0 YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAtOTI4LDggKzk5OCw3IEBAIGZvcmVh Y2ggbXkgJGtleSAoc29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsKIAkjIGV4ZWN1dGUgdG8gc3Rh cnQKIAl1bmxlc3MgKGV4aXN0cyAkc2tpcF9ib3h7J3JlYWR5J30pIHsKIAkJJHNrZXkgPSAyICog JG1heF9zZXFubyAqICRjdHggKyAyICogJHNlcW5vICsgMTsKLQkJJHN0eWxlID0gJ2NvbG9yOiBi bGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkgY3R4X2NvbG91cigkY3R4LCAncmVhZHkn KTsKKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsICdyZWFkeScpOwogCQkkY29udGVudCA9ICI8 c21hbGw+JG5hbWU8YnI+JGRieyRrZXl9LT57J2V4ZWN1dGUtZGVsYXknfXVzPC9zbWFsbD4iOwog CQkkc3RhcnRlbmQgPSAnc3RhcnQ6IFwnJyAuIHRzKCRzdWJtaXQpIC4gJ1wnLCBlbmQ6IFwnJyAu IHRzKCRzdGFydCkgLiAnXCcnOwogCQlwcmludCAiXHR7aWQ6ICRpLCBrZXk6ICRza2V5LCAkdHlw ZSBncm91cDogJGdyb3VwLCBzdWJncm91cDogMSwgc3ViZ3JvdXBPcmRlcjogMiwgY29udGVudDog JyRjb250ZW50JywgJHN0YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAtOTM5LDEy ICsxMDA4LDkgQEAgZm9yZWFjaCBteSAka2V5IChzb3J0IHNvcnRRdWV1ZSBrZXlzICVkYikgewog CSMgc3RhcnQgdG8gdXNlciBpbnRlcnJ1cHQKIAl1bmxlc3MgKGV4aXN0cyAkc2tpcF9ib3h7J2V4 ZWN1dGUnfSkgewogCQkkc2tleSA9IC0yICogJG1heF9zZXFubyAqICRjdHggLSAyICogJHNlcW5v IC0gMTsKLQkJaWYgKGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9KSB7Ci0JCQkkc3R5 bGUgPSAnY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7JzsKLQkJfSBlbHNlIHsK LQkJCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJCSAg Y3R4X2NvbG91cigkY3R4LCAnZXhlY3V0ZScpOwotCQl9CisJCSRzdHlsZSA9IGJveF9zdHlsZSgk Y3R4LAorCQkJCSAgIGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9ID8KKwkJCQkgICAn aW5jb21wbGV0ZScgOiAnZXhlY3V0ZScpOwogCQkkY29udGVudCA9ICIkbmFtZSA8c21hbGw+JGRi eyRrZXl9LT57J3BvcnQnfTwvc21hbGw+IjsKIAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+PGk+Pz8/ PC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ307CiAJCSRj b250ZW50IC49ICcgPHNtYWxsPjxpPisrPC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRkYnska2V5 fS0+eyduby1lbmQnfTsKQEAgLTk1OCw3ICsxMDI0LDcgQEAgZm9yZWFjaCBteSAka2V5IChzb3J0 IHNvcnRRdWV1ZSBrZXlzICVkYikgewogCSMgdXNlciBpbnRlcnJ1cHQgdG8gY29udGV4dCBjb21w bGV0ZQogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsnY3R4c2F2ZSd9KSB7CiAJCSRza2V5ID0g LTIgKiAkbWF4X3NlcW5vICogJGN0eCAtIDIgKiAkc2Vxbm87Ci0JCSRzdHlsZSA9ICdjb2xvcjog YmxhY2s7IGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsnOworCQkkc3R5bGUgPSBib3hfc3R5bGUo JGN0eCwgJ2N0eHNhdmUnKTsKIAkJbXkgJGN0eHNhdmUgPSAkZGJ7JGtleX0tPnsnZW5kJ30gLSAk ZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJCSRjb250ZW50ID0gIjxzbWFsbD4kbmFtZTxicj4ke2N0 eHNhdmV9dXM8L3NtYWxsPiI7CiAJCSRjb250ZW50IC49ICcgPHNtYWxsPjxpPj8/PzwvaT48L3Nt YWxsPiAnIGlmIGV4aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9OwotLSAKMi4xNy4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK