From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 7/7] trace.pl: Fix request split mode Date: Tue, 8 May 2018 18:31:15 +0100 Message-ID: <20180508173115.24550-7-tvrtko.ursulin@linux.intel.com> References: <20180508173115.24550-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-wr0-x232.google.com (mail-wr0-x232.google.com [IPv6:2a00:1450:400c:c0c::232]) by gabe.freedesktop.org (Postfix) with ESMTPS id 971046EB16 for ; Tue, 8 May 2018 17:31:47 +0000 (UTC) Received: by mail-wr0-x232.google.com with SMTP id a12-v6so2245711wrn.13 for ; Tue, 08 May 2018 10:31:47 -0700 (PDT) In-Reply-To: <20180508173115.24550-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlcXVlc3Qg c3BsaXQgbW9kZSBoYWQgc2V2ZXJhbCBidWdzLCBib3RoIGluIHRoZSBvcmlnaW5hbCB2ZXJzaW9u IGFuZCBhbHNvCmFmdGVyIHRoZSByZWNlbnQgcmVmYWN0b3JpbmdzLgoKT25lIGJpZyBvbmUgd2Fz IHRoYXQgaXQgd2Fzbid0IGNvbnNpZGVyaW5nIGRpZmZlcmVudCBzdWJtaXQgcG9ydHMgYXMgYQpy ZWFzb24gdG8gc3BsaXQgZXhlY3V0aW9uLCBhbmQgYWxzbyB0aGF0IGl0IHdhcyB0b28gdGltZSBi YXNlZCBpbnN0ZWFkIG9mCmxvb2tpbmcgYXQgcmVsZXZhbnQgdGltZWxpbmVzLgoKSW4gdGhpcyBy ZWZhY3RvcmluZyB3ZSBhZGRyZXNzIHRoZSBmb3JtZXIgYnkgdXNpbmcgdGhlIGVuZ2luZSB0aW1l bGluZXMKaW50cm9kdWNlZCBpbiB0aGUgcHJldmlvdXMgcGF0Y2guIFNlY29uZGFyeSBwb3J0IHN1 Ym1pc3Npb25zIGFyZSBtb3ZlZAp0byBmb2xsb3cgdGhlIHByZWNlZGluZyBzdWJtaXNzaW9uIGFz IGEgZmlyc3Qgc3RlcCBpbiB0aGUgY29ycmVjdGlvbgpwcm9jZXNzLgoKSW4gdGhlIHNlY29uZCBz dGVwLCB3ZSBhZGQgY29udGV4dCB0aW1lbGluZXMgYW5kIHVzZSB0aGVuIGluIGEgc2ltaWxhcgpm YXNoaW9uIHRvIHNlcGFyYXRlIHN0YXJ0IGFuZCBlbmQgdGltZSBvZiBjb2FsZXNjZWQgcmVxdWVz dHMuIEZvciBlYWNoCmNvYWxlc2NlZCByZXF1ZXN0IHdlIGtub3cgaXRzIGJvdW5kYXJpZXMgYnkg bG9va2luZyBhdCB0aGUgZW5naW5lCnRpbWVsaW5lICh2aWEgZ2xvYmFsIHNlcW5vcyksIGFuZCB3 ZSBrbm93IHRoZSBwcmV2aW91cyByZXF1ZXN0IGl0IHNob3VsZApvbmx5IHN0YXJ0IGFmdGVyLCBi eSBsb29raW5nIGF0IHRoZSBjb250ZXh0IHRpbWVsaW5lLgoKdjI6CiAqIFJlbW92ZSBzb21lIGRl YWQgY29kZS4KICogRml4ICFwb3J0MCBzaGlmdGluZyBsb2dpYy4KCnYzOgogKiBSZWZhY3RvciBm b3IgbGVzcyBsaXN0IHdhbGtpbmcgYXMgd2l0aCBpbmNvbXBsZXRlIGhhbmRsaW5nLgoKU2lnbmVk LW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IEpv aG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+Ci0tLQogc2NyaXB0cy90cmFj ZS5wbCB8IDEyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBiL3NjcmlwdHMvdHJhY2UucGwKaW5k ZXggOTM1ZjU3MTE3YTM3Li42MzMxOTIwN2M0ZWIgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvdHJhY2Uu cGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtMjcsNyArMjcsNyBAQCB1c2Ugd2FybmluZ3M7 CiB1c2UgNS4wMTA7CiAKIG15ICRnaWQgPSAwOwotbXkgKCVkYiwgJXF1ZXVlLCAlc3VibWl0LCAl bm90aWZ5LCAlcmluZ3MsICVjdHhkYiwgJXJpbmdtYXAsICVyZXF3YWl0KTsKK215ICglZGIsICVx dWV1ZSwgJXN1Ym1pdCwgJW5vdGlmeSwgJXJpbmdzLCAlY3R4ZGIsICVyaW5nbWFwLCAlcmVxd2Fp dCwgQGN0eHRpbWVsaW5lcyk7CiBteSBAZnJlcXM7CiAKIG15ICRtYXhfaXRlbXMgPSAzMDAwOwpA QCAtNDM1LDYgKzQzNSw3IEBAIHdoaWxlICg8PikgewogCQkkcmVxeydyaW5nJ30gPSAkcmluZzsK IAkJJHJlcXsnc2Vxbm8nfSA9ICRzZXFubzsKIAkJJHJlcXsnY3R4J30gPSAkY3R4OworCQlwdXNo IEBjdHh0aW1lbGluZXMsICRjdHggLiAnLycgLiAkcmluZzsKIAkJJHJlcXsnbmFtZSd9ID0gJGN0 eCAuICcvJyAuICRzZXFubzsKIAkJJHJlcXsnZ2xvYmFsJ30gPSAkdHB7J2dsb2JhbCd9OwogCQkk cmVxeydwb3J0J30gPSAkdHB7J3BvcnQnfTsKQEAgLTU4OSw0MSArNTkwLDExMCBAQCBzdWIgc29y dFN0YXJ0IHsKIAlyZXR1cm4gJHZhbDsKIH0KIAotbXkgQHNvcnRlZF9rZXlzID0gc29ydCBzb3J0 U3RhcnQga2V5cyAlZGI7Ci1teSAkcmVfc29ydCA9IDA7CitteSAkcmVfc29ydCA9IDE7CitteSBA c29ydGVkX2tleXM7CiAKLWRpZSAiRGF0YWJhc2UgY2hhbmdlZCBzaXplPyEiIHVubGVzcyBzY2Fs YXIoQHNvcnRlZF9rZXlzKSA9PSAka2V5X2NvdW50Oworc3ViIG1heWJlX3NvcnRfa2V5cworewor CWlmICgkcmVfc29ydCkgeworCQlAc29ydGVkX2tleXMgPSBzb3J0IHNvcnRTdGFydCBrZXlzICVk YjsKKwkJJHJlX3NvcnQgPSAwOworCQlkaWUgIkRhdGFiYXNlIGNoYW5nZWQgc2l6ZT8hIiB1bmxl c3Mgc2NhbGFyKEBzb3J0ZWRfa2V5cykgPT0KKwkJCQkJCSAgICAgJGtleV9jb3VudDsKKwl9Cit9 CiAKLWZvcmVhY2ggbXkgJGtleSAoQHNvcnRlZF9rZXlzKSB7Ci0JbXkgJHJpbmcgPSAkZGJ7JGtl eX0tPnsncmluZyd9OwotCW15ICRlbmQgPSAkZGJ7JGtleX0tPnsnZW5kJ307CittYXliZV9zb3J0 X2tleXMoKTsKKworbXkgJWN0eF90aW1lbGluZXM7CisKK3N1YiBzb3J0Q29udGV4dCB7CisJbXkg JGFzID0gJGRieyRhfS0+eydzZXFubyd9OworCW15ICRicyA9ICRkYnskYn0tPnsnc2Vxbm8nfTsK KwlteSAkdmFsOworCisJJHZhbCA9ICRhcyA8PT4gJGJzOworCisJZGllIGlmICR2YWwgPT0gMDsK KworCXJldHVybiAkdmFsOworfQorCitzdWIgZ2V0X2N0eF90aW1lbGluZSB7CisJbXkgKCRjdHgs ICRyaW5nLCAka2V5KSA9IEBfOworCW15IEB0aW1lbGluZTsKKworCXJldHVybiAkY3R4X3RpbWVs aW5lc3ska2V5fSBpZiBleGlzdHMgJGN0eF90aW1lbGluZXN7JGtleX07CisKKwlAdGltZWxpbmUg PSBncmVwIHsgJGRieyRffS0+eydyaW5nJ30gPT0gJHJpbmcgYW5kCisJCQkgICAkZGJ7JF99LT57 J2N0eCd9ID09ICRjdHggfSBAc29ydGVkX2tleXM7CisJIyBGSVhNRSBzZXFubyByZXN0YXJ0CisJ QHRpbWVsaW5lID0gc29ydCBzb3J0Q29udGV4dCBAdGltZWxpbmU7CisKKwkkY3R4X3RpbWVsaW5l c3ska2V5fSA9IFxAdGltZWxpbmU7CisKKwlyZXR1cm4gXEB0aW1lbGluZTsKK30KKworIyBTcGxp dCBvdXQgbWVyZ2VkIGJhdGNoZXMgaWYgcmVxdWVzdGVkLgoraWYgKCRjb3JyZWN0X2R1cmF0aW9u cykgeworCSMgU2hpZnQgIXBvcnQwIHJlcXVlc3RzIHN0YXJ0IHRpbWUgdG8gYWZ0ZXIgdGhlIHBy ZXZpb3VzIGNvbnRleHQgb24gdGhlCisJIyBzYW1lIHRpbWVsaW5lIGhhcyBmaW5pc2hlZC4KKwlm b3JlYWNoIG15ICRnaWQgKHNvcnQga2V5cyAlcmluZ3MpIHsKKwkJbXkgJHJpbmcgPSAkcmluZ21h cHskcmluZ3N7JGdpZH19OworCQlteSAkdGltZWxpbmUgPSBnZXRfZW5naW5lX3RpbWVsaW5lKCRy aW5nKTsKKwkJbXkgJGNvbXBsZXRlOworCisJCWZvcmVhY2ggbXkgJHBvcyAoMC4uJCN7JHRpbWVs aW5lfSkgeworCQkJbXkgJGtleSA9IEB7JHRpbWVsaW5lfVskcG9zXTsKKwkJCW15ICRwcmV2ID0g JGNvbXBsZXRlOworCQkJbXkgJHBrZXk7CisKKwkJCSRjb21wbGV0ZSA9ICRrZXkgdW5sZXNzIGV4 aXN0cyAkZGJ7JGtleX0tPnsnbm8tZW5kJ307CisJCQkkcGtleSA9ICRjb21wbGV0ZTsKKworCQkJ bmV4dCBpZiAkZGJ7JGtleX0tPnsncG9ydCd9ID09IDA7CisKKwkJCSRwa2V5ID0gJHByZXYgaWYg JGNvbXBsZXRlIGVxICRrZXk7CisKKwkJCWRpZSB1bmxlc3MgZGVmaW5lZCAkcGtleTsKKworCQkJ JGRieyRrZXl9LT57J3N0YXJ0J30gPSAkZGJ7JHBrZXl9LT57J2VuZCd9OworCQkJJGRieyRrZXl9 LT57J3N0YXJ0J30gPSAkZGJ7JHBrZXl9LT57J25vdGlmeSd9IGlmICRkYnska2V5fS0+eydzdGFy dCd9ID4gJGRieyRrZXl9LT57J2VuZCd9OworCisJCQlkaWUgaWYgJGRieyRrZXl9LT57J3N0YXJ0 J30gPiAkZGJ7JGtleX0tPnsnZW5kJ307CisKKwkJCSRyZV9zb3J0ID0gMTsKKwkJfQorCX0KKwor CW1heWJlX3NvcnRfa2V5cygpOworCisJIyBCYXRjaCB3aXRoIG5vLWVuZCAobm8gcmVxdWVzdF9v dXQpIG1lYW5zIGl0IHdhcyBzdWJtaXR0ZWQgYXMgcGFydCBvZgorCSMgY29sYWVzY2VkIGNvbnRl eHQuIFRoaXMgbWVhbnMgaXQncyBzdGFydCB0aW1lIHNob3VsZCBiZSBzZXQgdG8gZW5kCisJIyB0 aW1lIG9mIGEgZm9sbG93aW5nIHJlcXVlc3Qgb24gdGhpcyB0aW1lbGluZS4KKwlmb3JlYWNoIG15 ICR0a2V5IChzb3J0IEBjdHh0aW1lbGluZXMpIHsKKwkJbXkgKCRjdHgsICRyaW5nKSA9IHNwbGl0 ICcvJywgJHRrZXk7CisJCW15ICR0aW1lbGluZSA9IGdldF9jdHhfdGltZWxpbmUoJGN0eCwgJHJp bmcsICR0a2V5KTsKKwkJbXkgJGxhc3RfY29tcGxldGUgPSAtMTsKKwkJbXkgJGNvbXBsZXRlOwor CisJCWZvcmVhY2ggbXkgJHBvcyAoMC4uJCN7JHRpbWVsaW5lfSkgeworCQkJbXkgJGtleSA9IEB7 JHRpbWVsaW5lfVskcG9zXTsKKwkJCW15ICRuZXh0X2tleTsKKworCQkJbmV4dCB1bmxlc3MgZXhp c3RzICRkYnska2V5fS0+eyduby1lbmQnfTsKKwkJCWxhc3QgaWYgJHBvcyA9PSAkI3skdGltZWxp bmV9OwogCi0JIyBjb3JyZWN0IGR1cmF0aW9uIG9mIG1lcmdlZCBiYXRjaGVzCi0JaWYgKCRjb3Jy ZWN0X2R1cmF0aW9ucyBhbmQgZXhpc3RzICRkYnska2V5fS0+eyduby1lbmQnfSkgewotCQlteSAk Y3R4ID0gJGRieyRrZXl9LT57J2N0eCd9OwotCQlteSAkc2Vxbm8gPSAkZGJ7JGtleX0tPnsnc2Vx bm8nfTsKLQkJbXkgJHN0YXJ0ID0gJGRieyRrZXl9LT57J3N0YXJ0J307Ci0JCW15ICRuZXh0X2tl eTsKLQkJbXkgJGkgPSAxOwotCi0JCWRvIHsKLQkJCSRuZXh0X2tleSA9IGRiX2tleSgkcmluZywg JGN0eCwgJHNlcW5vICsgJGkpOwotCQkJJGkrKzsKLQkJfSB1bnRpbCAoZXhpc3RzICRkYnskbmV4 dF9rZXl9IG9yICRpID4gJGtleV9jb3VudCk7ICAjIHVnbHkgc3RvcCBoYWNrCi0KLQkJIyAyMHVz IHRvbGVyYW5jZQotCQlpZiAoZXhpc3RzICRkYnskbmV4dF9rZXl9IGFuZCAkZGJ7JG5leHRfa2V5 fS0+eydzdGFydCd9IDwgJHN0YXJ0ICsgMjApIHsKLQkJCW15ICRub3RpZnkgPSAkZGJ7JGtleX0t Pnsnbm90aWZ5J307CisJCQkjIFNoaWZ0IGZvbGxvd2luZyByZXF1ZXN0IHRvIHN0YXJ0IGFmdGVy IHRoZSBjdXJyZW50IG9uZQorCQkJJG5leHRfa2V5ID0gJHskdGltZWxpbmV9WyRwb3MgKyAxXTsK KwkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJ CQkkcmVfc29ydCA9IDE7Ci0JCQkkZGJ7JG5leHRfa2V5fS0+eydzdGFydCd9ID0gJG5vdGlmeTsK LQkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfSBp ZiAkZGJ7JG5leHRfa2V5fS0+eydzdGFydCd9ID4gJGRieyRuZXh0X2tleX0tPnsnZW5kJ307Ci0J CQlkaWUgaWYgJGRieyRuZXh0X2tleX0tPnsnc3RhcnQnfSA+ICRkYnskbmV4dF9rZXl9LT57J2Vu ZCd9OwogCQl9Ci0JCWRpZSBpZiAkc3RhcnQgPiAkZW5kOwogCX0KIH0KIAotQHNvcnRlZF9rZXlz ID0gc29ydCBzb3J0U3RhcnQga2V5cyAlZGIgaWYgJHJlX3NvcnQ7CittYXliZV9zb3J0X2tleXMo KTsKIAogIyBHUFUgdGltZSBhY2NvdW50aW5nCiBteSAoJXJ1bm5pbmcsICVydW5uYWJsZSwgJXF1 ZXVlZCwgJWJhdGNoX2F2ZywgJWJhdGNoX3RvdGFsX2F2ZywgJWJhdGNoX2NvdW50KTsKLS0gCjIu MTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x22a.google.com (mail-wr0-x22a.google.com [IPv6:2a00:1450:400c:c0c::22a]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0D136EB17 for ; Tue, 8 May 2018 17:31:47 +0000 (UTC) Received: by mail-wr0-x22a.google.com with SMTP id p18-v6so33167124wrm.1 for ; Tue, 08 May 2018 10:31:47 -0700 (PDT) From: Tvrtko Ursulin Date: Tue, 8 May 2018 18:31:15 +0100 Message-Id: <20180508173115.24550-7-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180508173115.24550-1-tvrtko.ursulin@linux.intel.com> References: <20180508173115.24550-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 7/7] trace.pl: Fix request split mode 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: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlcXVlc3Qg c3BsaXQgbW9kZSBoYWQgc2V2ZXJhbCBidWdzLCBib3RoIGluIHRoZSBvcmlnaW5hbCB2ZXJzaW9u IGFuZCBhbHNvCmFmdGVyIHRoZSByZWNlbnQgcmVmYWN0b3JpbmdzLgoKT25lIGJpZyBvbmUgd2Fz IHRoYXQgaXQgd2Fzbid0IGNvbnNpZGVyaW5nIGRpZmZlcmVudCBzdWJtaXQgcG9ydHMgYXMgYQpy ZWFzb24gdG8gc3BsaXQgZXhlY3V0aW9uLCBhbmQgYWxzbyB0aGF0IGl0IHdhcyB0b28gdGltZSBi YXNlZCBpbnN0ZWFkIG9mCmxvb2tpbmcgYXQgcmVsZXZhbnQgdGltZWxpbmVzLgoKSW4gdGhpcyBy ZWZhY3RvcmluZyB3ZSBhZGRyZXNzIHRoZSBmb3JtZXIgYnkgdXNpbmcgdGhlIGVuZ2luZSB0aW1l bGluZXMKaW50cm9kdWNlZCBpbiB0aGUgcHJldmlvdXMgcGF0Y2guIFNlY29uZGFyeSBwb3J0IHN1 Ym1pc3Npb25zIGFyZSBtb3ZlZAp0byBmb2xsb3cgdGhlIHByZWNlZGluZyBzdWJtaXNzaW9uIGFz IGEgZmlyc3Qgc3RlcCBpbiB0aGUgY29ycmVjdGlvbgpwcm9jZXNzLgoKSW4gdGhlIHNlY29uZCBz dGVwLCB3ZSBhZGQgY29udGV4dCB0aW1lbGluZXMgYW5kIHVzZSB0aGVuIGluIGEgc2ltaWxhcgpm YXNoaW9uIHRvIHNlcGFyYXRlIHN0YXJ0IGFuZCBlbmQgdGltZSBvZiBjb2FsZXNjZWQgcmVxdWVz dHMuIEZvciBlYWNoCmNvYWxlc2NlZCByZXF1ZXN0IHdlIGtub3cgaXRzIGJvdW5kYXJpZXMgYnkg bG9va2luZyBhdCB0aGUgZW5naW5lCnRpbWVsaW5lICh2aWEgZ2xvYmFsIHNlcW5vcyksIGFuZCB3 ZSBrbm93IHRoZSBwcmV2aW91cyByZXF1ZXN0IGl0IHNob3VsZApvbmx5IHN0YXJ0IGFmdGVyLCBi eSBsb29raW5nIGF0IHRoZSBjb250ZXh0IHRpbWVsaW5lLgoKdjI6CiAqIFJlbW92ZSBzb21lIGRl YWQgY29kZS4KICogRml4ICFwb3J0MCBzaGlmdGluZyBsb2dpYy4KCnYzOgogKiBSZWZhY3RvciBm b3IgbGVzcyBsaXN0IHdhbGtpbmcgYXMgd2l0aCBpbmNvbXBsZXRlIGhhbmRsaW5nLgoKU2lnbmVk LW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IEpv aG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+Ci0tLQogc2NyaXB0cy90cmFj ZS5wbCB8IDEyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBiL3NjcmlwdHMvdHJhY2UucGwKaW5k ZXggOTM1ZjU3MTE3YTM3Li42MzMxOTIwN2M0ZWIgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvdHJhY2Uu cGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtMjcsNyArMjcsNyBAQCB1c2Ugd2FybmluZ3M7 CiB1c2UgNS4wMTA7CiAKIG15ICRnaWQgPSAwOwotbXkgKCVkYiwgJXF1ZXVlLCAlc3VibWl0LCAl bm90aWZ5LCAlcmluZ3MsICVjdHhkYiwgJXJpbmdtYXAsICVyZXF3YWl0KTsKK215ICglZGIsICVx dWV1ZSwgJXN1Ym1pdCwgJW5vdGlmeSwgJXJpbmdzLCAlY3R4ZGIsICVyaW5nbWFwLCAlcmVxd2Fp dCwgQGN0eHRpbWVsaW5lcyk7CiBteSBAZnJlcXM7CiAKIG15ICRtYXhfaXRlbXMgPSAzMDAwOwpA QCAtNDM1LDYgKzQzNSw3IEBAIHdoaWxlICg8PikgewogCQkkcmVxeydyaW5nJ30gPSAkcmluZzsK IAkJJHJlcXsnc2Vxbm8nfSA9ICRzZXFubzsKIAkJJHJlcXsnY3R4J30gPSAkY3R4OworCQlwdXNo IEBjdHh0aW1lbGluZXMsICRjdHggLiAnLycgLiAkcmluZzsKIAkJJHJlcXsnbmFtZSd9ID0gJGN0 eCAuICcvJyAuICRzZXFubzsKIAkJJHJlcXsnZ2xvYmFsJ30gPSAkdHB7J2dsb2JhbCd9OwogCQkk cmVxeydwb3J0J30gPSAkdHB7J3BvcnQnfTsKQEAgLTU4OSw0MSArNTkwLDExMCBAQCBzdWIgc29y dFN0YXJ0IHsKIAlyZXR1cm4gJHZhbDsKIH0KIAotbXkgQHNvcnRlZF9rZXlzID0gc29ydCBzb3J0 U3RhcnQga2V5cyAlZGI7Ci1teSAkcmVfc29ydCA9IDA7CitteSAkcmVfc29ydCA9IDE7CitteSBA c29ydGVkX2tleXM7CiAKLWRpZSAiRGF0YWJhc2UgY2hhbmdlZCBzaXplPyEiIHVubGVzcyBzY2Fs YXIoQHNvcnRlZF9rZXlzKSA9PSAka2V5X2NvdW50Oworc3ViIG1heWJlX3NvcnRfa2V5cworewor CWlmICgkcmVfc29ydCkgeworCQlAc29ydGVkX2tleXMgPSBzb3J0IHNvcnRTdGFydCBrZXlzICVk YjsKKwkJJHJlX3NvcnQgPSAwOworCQlkaWUgIkRhdGFiYXNlIGNoYW5nZWQgc2l6ZT8hIiB1bmxl c3Mgc2NhbGFyKEBzb3J0ZWRfa2V5cykgPT0KKwkJCQkJCSAgICAgJGtleV9jb3VudDsKKwl9Cit9 CiAKLWZvcmVhY2ggbXkgJGtleSAoQHNvcnRlZF9rZXlzKSB7Ci0JbXkgJHJpbmcgPSAkZGJ7JGtl eX0tPnsncmluZyd9OwotCW15ICRlbmQgPSAkZGJ7JGtleX0tPnsnZW5kJ307CittYXliZV9zb3J0 X2tleXMoKTsKKworbXkgJWN0eF90aW1lbGluZXM7CisKK3N1YiBzb3J0Q29udGV4dCB7CisJbXkg JGFzID0gJGRieyRhfS0+eydzZXFubyd9OworCW15ICRicyA9ICRkYnskYn0tPnsnc2Vxbm8nfTsK KwlteSAkdmFsOworCisJJHZhbCA9ICRhcyA8PT4gJGJzOworCisJZGllIGlmICR2YWwgPT0gMDsK KworCXJldHVybiAkdmFsOworfQorCitzdWIgZ2V0X2N0eF90aW1lbGluZSB7CisJbXkgKCRjdHgs ICRyaW5nLCAka2V5KSA9IEBfOworCW15IEB0aW1lbGluZTsKKworCXJldHVybiAkY3R4X3RpbWVs aW5lc3ska2V5fSBpZiBleGlzdHMgJGN0eF90aW1lbGluZXN7JGtleX07CisKKwlAdGltZWxpbmUg PSBncmVwIHsgJGRieyRffS0+eydyaW5nJ30gPT0gJHJpbmcgYW5kCisJCQkgICAkZGJ7JF99LT57 J2N0eCd9ID09ICRjdHggfSBAc29ydGVkX2tleXM7CisJIyBGSVhNRSBzZXFubyByZXN0YXJ0CisJ QHRpbWVsaW5lID0gc29ydCBzb3J0Q29udGV4dCBAdGltZWxpbmU7CisKKwkkY3R4X3RpbWVsaW5l c3ska2V5fSA9IFxAdGltZWxpbmU7CisKKwlyZXR1cm4gXEB0aW1lbGluZTsKK30KKworIyBTcGxp dCBvdXQgbWVyZ2VkIGJhdGNoZXMgaWYgcmVxdWVzdGVkLgoraWYgKCRjb3JyZWN0X2R1cmF0aW9u cykgeworCSMgU2hpZnQgIXBvcnQwIHJlcXVlc3RzIHN0YXJ0IHRpbWUgdG8gYWZ0ZXIgdGhlIHBy ZXZpb3VzIGNvbnRleHQgb24gdGhlCisJIyBzYW1lIHRpbWVsaW5lIGhhcyBmaW5pc2hlZC4KKwlm b3JlYWNoIG15ICRnaWQgKHNvcnQga2V5cyAlcmluZ3MpIHsKKwkJbXkgJHJpbmcgPSAkcmluZ21h cHskcmluZ3N7JGdpZH19OworCQlteSAkdGltZWxpbmUgPSBnZXRfZW5naW5lX3RpbWVsaW5lKCRy aW5nKTsKKwkJbXkgJGNvbXBsZXRlOworCisJCWZvcmVhY2ggbXkgJHBvcyAoMC4uJCN7JHRpbWVs aW5lfSkgeworCQkJbXkgJGtleSA9IEB7JHRpbWVsaW5lfVskcG9zXTsKKwkJCW15ICRwcmV2ID0g JGNvbXBsZXRlOworCQkJbXkgJHBrZXk7CisKKwkJCSRjb21wbGV0ZSA9ICRrZXkgdW5sZXNzIGV4 aXN0cyAkZGJ7JGtleX0tPnsnbm8tZW5kJ307CisJCQkkcGtleSA9ICRjb21wbGV0ZTsKKworCQkJ bmV4dCBpZiAkZGJ7JGtleX0tPnsncG9ydCd9ID09IDA7CisKKwkJCSRwa2V5ID0gJHByZXYgaWYg JGNvbXBsZXRlIGVxICRrZXk7CisKKwkJCWRpZSB1bmxlc3MgZGVmaW5lZCAkcGtleTsKKworCQkJ JGRieyRrZXl9LT57J3N0YXJ0J30gPSAkZGJ7JHBrZXl9LT57J2VuZCd9OworCQkJJGRieyRrZXl9 LT57J3N0YXJ0J30gPSAkZGJ7JHBrZXl9LT57J25vdGlmeSd9IGlmICRkYnska2V5fS0+eydzdGFy dCd9ID4gJGRieyRrZXl9LT57J2VuZCd9OworCisJCQlkaWUgaWYgJGRieyRrZXl9LT57J3N0YXJ0 J30gPiAkZGJ7JGtleX0tPnsnZW5kJ307CisKKwkJCSRyZV9zb3J0ID0gMTsKKwkJfQorCX0KKwor CW1heWJlX3NvcnRfa2V5cygpOworCisJIyBCYXRjaCB3aXRoIG5vLWVuZCAobm8gcmVxdWVzdF9v dXQpIG1lYW5zIGl0IHdhcyBzdWJtaXR0ZWQgYXMgcGFydCBvZgorCSMgY29sYWVzY2VkIGNvbnRl eHQuIFRoaXMgbWVhbnMgaXQncyBzdGFydCB0aW1lIHNob3VsZCBiZSBzZXQgdG8gZW5kCisJIyB0 aW1lIG9mIGEgZm9sbG93aW5nIHJlcXVlc3Qgb24gdGhpcyB0aW1lbGluZS4KKwlmb3JlYWNoIG15 ICR0a2V5IChzb3J0IEBjdHh0aW1lbGluZXMpIHsKKwkJbXkgKCRjdHgsICRyaW5nKSA9IHNwbGl0 ICcvJywgJHRrZXk7CisJCW15ICR0aW1lbGluZSA9IGdldF9jdHhfdGltZWxpbmUoJGN0eCwgJHJp bmcsICR0a2V5KTsKKwkJbXkgJGxhc3RfY29tcGxldGUgPSAtMTsKKwkJbXkgJGNvbXBsZXRlOwor CisJCWZvcmVhY2ggbXkgJHBvcyAoMC4uJCN7JHRpbWVsaW5lfSkgeworCQkJbXkgJGtleSA9IEB7 JHRpbWVsaW5lfVskcG9zXTsKKwkJCW15ICRuZXh0X2tleTsKKworCQkJbmV4dCB1bmxlc3MgZXhp c3RzICRkYnska2V5fS0+eyduby1lbmQnfTsKKwkJCWxhc3QgaWYgJHBvcyA9PSAkI3skdGltZWxp bmV9OwogCi0JIyBjb3JyZWN0IGR1cmF0aW9uIG9mIG1lcmdlZCBiYXRjaGVzCi0JaWYgKCRjb3Jy ZWN0X2R1cmF0aW9ucyBhbmQgZXhpc3RzICRkYnska2V5fS0+eyduby1lbmQnfSkgewotCQlteSAk Y3R4ID0gJGRieyRrZXl9LT57J2N0eCd9OwotCQlteSAkc2Vxbm8gPSAkZGJ7JGtleX0tPnsnc2Vx bm8nfTsKLQkJbXkgJHN0YXJ0ID0gJGRieyRrZXl9LT57J3N0YXJ0J307Ci0JCW15ICRuZXh0X2tl eTsKLQkJbXkgJGkgPSAxOwotCi0JCWRvIHsKLQkJCSRuZXh0X2tleSA9IGRiX2tleSgkcmluZywg JGN0eCwgJHNlcW5vICsgJGkpOwotCQkJJGkrKzsKLQkJfSB1bnRpbCAoZXhpc3RzICRkYnskbmV4 dF9rZXl9IG9yICRpID4gJGtleV9jb3VudCk7ICAjIHVnbHkgc3RvcCBoYWNrCi0KLQkJIyAyMHVz IHRvbGVyYW5jZQotCQlpZiAoZXhpc3RzICRkYnskbmV4dF9rZXl9IGFuZCAkZGJ7JG5leHRfa2V5 fS0+eydzdGFydCd9IDwgJHN0YXJ0ICsgMjApIHsKLQkJCW15ICRub3RpZnkgPSAkZGJ7JGtleX0t Pnsnbm90aWZ5J307CisJCQkjIFNoaWZ0IGZvbGxvd2luZyByZXF1ZXN0IHRvIHN0YXJ0IGFmdGVy IHRoZSBjdXJyZW50IG9uZQorCQkJJG5leHRfa2V5ID0gJHskdGltZWxpbmV9WyRwb3MgKyAxXTsK KwkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJ CQkkcmVfc29ydCA9IDE7Ci0JCQkkZGJ7JG5leHRfa2V5fS0+eydzdGFydCd9ID0gJG5vdGlmeTsK LQkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfSBp ZiAkZGJ7JG5leHRfa2V5fS0+eydzdGFydCd9ID4gJGRieyRuZXh0X2tleX0tPnsnZW5kJ307Ci0J CQlkaWUgaWYgJGRieyRuZXh0X2tleX0tPnsnc3RhcnQnfSA+ICRkYnskbmV4dF9rZXl9LT57J2Vu ZCd9OwogCQl9Ci0JCWRpZSBpZiAkc3RhcnQgPiAkZW5kOwogCX0KIH0KIAotQHNvcnRlZF9rZXlz ID0gc29ydCBzb3J0U3RhcnQga2V5cyAlZGIgaWYgJHJlX3NvcnQ7CittYXliZV9zb3J0X2tleXMo KTsKIAogIyBHUFUgdGltZSBhY2NvdW50aW5nCiBteSAoJXJ1bm5pbmcsICVydW5uYWJsZSwgJXF1 ZXVlZCwgJWJhdGNoX2F2ZywgJWJhdGNoX3RvdGFsX2F2ZywgJWJhdGNoX2NvdW50KTsKLS0gCjIu MTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==