From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13809 invoked by alias); 16 May 2013 07:29:37 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13796 invoked by uid 89); 16 May 2013 07:29:37 -0000 X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS,TW_XP autolearn=ham version=3.3.1 Received: from mail-oa0-f53.google.com (HELO mail-oa0-f53.google.com) (209.85.219.53) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 16 May 2013 07:29:35 +0000 Received: by mail-oa0-f53.google.com with SMTP id g12so3277232oah.40 for ; Thu, 16 May 2013 00:29:33 -0700 (PDT) X-Received: by 10.182.118.42 with SMTP id kj10mr15398715obb.99.1368689373804; Thu, 16 May 2013 00:29:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Thu, 16 May 2013 00:28:53 -0700 (PDT) In-Reply-To: References: <1361192891-29341-1-git-send-email-yao@codesourcery.com> <8738wpd3qe.fsf@fleche.redhat.com> <5176C14B.6010603@redhat.com> <51774714.9060306@codesourcery.com> From: Hui Zhu Date: Thu, 16 May 2013 07:29:00 -0000 Message-ID: Subject: Re: [RFC] PR 15075 dprintf interferes with "next" To: gdb-patches@sourceware.org Cc: Keith Seitz , Tom Tromey , Yao Qi Content-Type: multipart/mixed; boundary=f46d0447878def50e104dcd0d3cb X-Virus-Found: No X-SW-Source: 2013-05/txt/msg00574.txt.bz2 --f46d0447878def50e104dcd0d3cb Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 3659 Hi, Because this patch also can handle bug 15434, I updated the test patches to add test dprintf with non-stop mode. Thanks, Hui 2013-05-16 Yao Qi Hui Zhu PR breakpoints/15075 PR breakpoints/15434 * breakpoint.c (bpstat_stop_status): Call b->ops->after_cond. (update_dprintf_command_list): Don't append "continue" command to the command of dprintf breakpoint. (base_breakpoint_after_cond): New. (base_breakpoint_ops): Add base_breakpoint_after_cond. (dprintf_after_cond): New. (initialize_breakpoint_ops): Set dprintf_after_cond. * breakpoint.h (breakpoint_ops): Add after_cond. 2013-05-16 Yao Qi Hui Zhu PR breakpoints/15075 PR breakpoints/15434 * gdb.base/dprintf.exp: Don't check "continue" in the output of "info breakpoints". Add test dprintf with non-stop mode. * gdb.base/dprintf.c: Add a sleep for test dprintf with non-stop mode. * gdb.mi/mi-breakpoint-changed.exp (test_insert_delete_modify): Don't check "continue" in script field. * gdb.base/pr15075.c: New. * gdb.base/pr15075.exp: New. On Wed, Apr 24, 2013 at 11:18 AM, Hui Zhu wrote: > On Wed, Apr 24, 2013 at 10:44 AM, Yao Qi wrote: >> On 04/24/2013 07:59 AM, Hui Zhu wrote: >>> >>> 2013-04-23 Yao Qi >>> Hui Zhu >>> >>> PR gdb/15075 >> >> ^^^^^^^^^^^^ "PR breakpoints/15075" >> >> >>> >>> * breakpoint.c (bpstat_stop_status): Call b->ops->after_cond. >>> (update_dprintf_command_list): Don't append "continue" command >>> to the command of dprintf breakpoint. >>> (base_breakpoint_after_cond): New. >>> (base_breakpoint_ops): Add base_breakpoint_after_cond. >>> (dprintf_after_cond): New. >>> (initialize_breakpoint_ops): Set dprintf_after_cond. >>> * breakpoint.h (breakpoint_ops): Add after_cond. >>> >>> 2013-04-23 Hui Zhu >>> >>> PR gdb/15075 >>> >>> * gdb.base/dprintf.exp: Remove "continue" from "info breakpoint" >>> test. >> >> We also need to stop checking "continue" in gdb.mi/mi-breakpoint-changed= .exp >> also, as what patch [1] does. B.T.W, why don't you add >> gdb.base/pr15075.[c,exp] from patch [1]? >> >> -- >> Yao (=E9=BD=90=E5=B0=A7) >> >> [1] http://sourceware.org/ml/gdb-patches/2013-02/msg00736.html > > Oops, I am sorry that the discussion threads confused me. Post a new > version for it. > > And I didn't include the "disallows setting commands for dprintf" > patch because looks it is still in discussion. > > Thanks, > Hui > > 2013-04-23 Yao Qi > Hui Zhu > > PR breakpoints/15075 > > * breakpoint.c (bpstat_stop_status): Call b->ops->after_cond. > (update_dprintf_command_list): Don't append "continue" command > to the command of dprintf breakpoint. > (base_breakpoint_after_cond): New. > (base_breakpoint_ops): Add base_breakpoint_after_cond. > (dprintf_after_cond): New. > (initialize_breakpoint_ops): Set dprintf_after_cond. > * breakpoint.h (breakpoint_ops): Add after_cond. > > 2013-04-23 Yao Qi > > PR breakpoints/15075 > > * gdb.base/dprintf.exp: DOn't check "continue" in the output > of "info breakpoints". > * gdb.mi/mi-breakpoint-changed.exp (test_insert_delete_modify): > Don't check "continue" in script field. > * gdb.base/pr15075.c: New. > * gdb.base/pr15075.exp: New. --f46d0447878def50e104dcd0d3cb Content-Type: text/plain; charset=US-ASCII; name="dprintf-continue.txt" Content-Disposition: attachment; filename="dprintf-continue.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hgrm9tbp2 Content-length: 5116 LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5j CkBAIC01MjgzLDEzICs1MjgzLDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChz dHJ1Y3QgYWRkcmVzc19zcGFjZQogCQkgICAgYi0+ZW5hYmxlX3N0YXRlID0g YnBfZGlzYWJsZWQ7CiAJCSAgcmVtb3ZlZF9hbnkgPSAxOwogCQl9Ci0JICAg ICAgaWYgKGItPnNpbGVudCkKLQkJYnMtPnByaW50ID0gMDsKLQkgICAgICBi cy0+Y29tbWFuZHMgPSBiLT5jb21tYW5kczsKLQkgICAgICBpbmNyZWZfY291 bnRlZF9jb21tYW5kX2xpbmUgKGJzLT5jb21tYW5kcyk7Ci0JICAgICAgaWYg KGNvbW1hbmRfbGluZV9pc19zaWxlbnQgKGJzLT5jb21tYW5kcwotCQkJCQkg ID8gYnMtPmNvbW1hbmRzLT5jb21tYW5kcyA6IE5VTEwpKQotCQlicy0+cHJp bnQgPSAwOworCSAgICAgIGItPm9wcy0+YWZ0ZXJfY29uZCAoYnMpOwogCSAg ICB9CiAKIAl9CkBAIC04OTM5LDI1ICs4OTMzLDE2IEBAIHVwZGF0ZV9kcHJp bnRmX2NvbW1hbmRfbGlzdCAoc3RydWN0IGJyZWEKIAkJICAgIF8oIkludmFs aWQgZHByaW50ZiBzdHlsZS4iKSk7CiAKICAgZ2RiX2Fzc2VydCAocHJpbnRm X2xpbmUgIT0gTlVMTCk7Ci0gIC8qIE1hbnVmYWN0dXJlIGEgcHJpbnRmL2Nv bnRpbnVlIHNlcXVlbmNlLiAgKi8KKyAgLyogTWFudWZhY3R1cmUgYSBwcmlu dGYgc2VxdWVuY2UuICAqLwogICB7Ci0gICAgc3RydWN0IGNvbW1hbmRfbGlu ZSAqcHJpbnRmX2NtZF9saW5lLCAqY29udF9jbWRfbGluZSA9IE5VTEw7Ci0K LSAgICBpZiAoc3RyY21wIChkcHJpbnRmX3N0eWxlLCBkcHJpbnRmX3N0eWxl X2FnZW50KSAhPSAwKQotICAgICAgewotCWNvbnRfY21kX2xpbmUgPSB4bWFs bG9jIChzaXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKLQljb250X2Nt ZF9saW5lLT5jb250cm9sX3R5cGUgPSBzaW1wbGVfY29udHJvbDsKLQljb250 X2NtZF9saW5lLT5ib2R5X2NvdW50ID0gMDsKLQljb250X2NtZF9saW5lLT5i b2R5X2xpc3QgPSBOVUxMOwotCWNvbnRfY21kX2xpbmUtPm5leHQgPSBOVUxM OwotCWNvbnRfY21kX2xpbmUtPmxpbmUgPSB4c3RyZHVwICgiY29udGludWUi KTsKLSAgICAgIH0KKyAgICBzdHJ1Y3QgY29tbWFuZF9saW5lICpwcmludGZf Y21kX2xpbmUKKyAgICAgID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgY29t bWFuZF9saW5lKSk7CiAKICAgICBwcmludGZfY21kX2xpbmUgPSB4bWFsbG9j IChzaXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKICAgICBwcmludGZf Y21kX2xpbmUtPmNvbnRyb2xfdHlwZSA9IHNpbXBsZV9jb250cm9sOwogICAg IHByaW50Zl9jbWRfbGluZS0+Ym9keV9jb3VudCA9IDA7CiAgICAgcHJpbnRm X2NtZF9saW5lLT5ib2R5X2xpc3QgPSBOVUxMOwotICAgIHByaW50Zl9jbWRf bGluZS0+bmV4dCA9IGNvbnRfY21kX2xpbmU7CisgICAgcHJpbnRmX2NtZF9s aW5lLT5uZXh0ID0gTlVMTDsKICAgICBwcmludGZfY21kX2xpbmUtPmxpbmUg PSBwcmludGZfbGluZTsKIAogICAgIGJyZWFrcG9pbnRfc2V0X2NvbW1hbmRz IChiLCBwcmludGZfY21kX2xpbmUpOwpAQCAtMTI3NDMsNiArMTI3MjgsMjIg QEAgYmFzZV9icmVha3BvaW50X2V4cGxhaW5zX3NpZ25hbCAoc3RydWN0CiAg IHJldHVybiBCUFNUQVRfU0lHTkFMX0hJREU7CiB9CiAKKy8qIFRoZSBkZWZh dWx0ICdhZnRlcl9jb25kJyBtZXRob2QuICAqLworCitzdGF0aWMgdm9pZAor YmFzZV9icmVha3BvaW50X2FmdGVyX2NvbmQgKHN0cnVjdCBicHN0YXRzICpi cykKK3sKKyAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBicy0+YnJlYWtwb2lu dF9hdDsKKworICBpZiAoYi0+c2lsZW50KQorICAgIGJzLT5wcmludCA9IDA7 CisgIGJzLT5jb21tYW5kcyA9IGItPmNvbW1hbmRzOworICBpbmNyZWZfY291 bnRlZF9jb21tYW5kX2xpbmUgKGJzLT5jb21tYW5kcyk7CisgIGlmIChjb21t YW5kX2xpbmVfaXNfc2lsZW50IChicy0+Y29tbWFuZHMKKwkJCSAgICAgID8g YnMtPmNvbW1hbmRzLT5jb21tYW5kcyA6IE5VTEwpKQorICBicy0+cHJpbnQg PSAwOworfQorCiBzdHJ1Y3QgYnJlYWtwb2ludF9vcHMgYmFzZV9icmVha3Bv aW50X29wcyA9CiB7CiAgIGJhc2VfYnJlYWtwb2ludF9kdG9yLApAQCAtMTI3 NjIsNyArMTI3NjMsOCBAQCBzdHJ1Y3QgYnJlYWtwb2ludF9vcHMgYmFzZV9i cmVha3BvaW50X29wCiAgIGJhc2VfYnJlYWtwb2ludF9jcmVhdGVfc2Fsc19m cm9tX2FkZHJlc3MsCiAgIGJhc2VfYnJlYWtwb2ludF9jcmVhdGVfYnJlYWtw b2ludHNfc2FsLAogICBiYXNlX2JyZWFrcG9pbnRfZGVjb2RlX2xpbmVzcGVj LAotICBiYXNlX2JyZWFrcG9pbnRfZXhwbGFpbnNfc2lnbmFsCisgIGJhc2Vf YnJlYWtwb2ludF9leHBsYWluc19zaWduYWwsCisgIGJhc2VfYnJlYWtwb2lu dF9hZnRlcl9jb25kLAogfTsKIAogLyogRGVmYXVsdCBicmVha3BvaW50X29w cyBtZXRob2RzLiAgKi8KQEAgLTEzMzU2LDYgKzEzMzU4LDI0IEBAIGRwcmlu dGZfcHJpbnRfcmVjcmVhdGUgKHN0cnVjdCBicmVha3BvaW4KICAgcHJpbnRf cmVjcmVhdGVfdGhyZWFkICh0cCwgZnApOwogfQogCisvKiBJbXBsZW1lbnQg dGhlICJhZnRlcl9jb25kIiAgYnJlYWtwb2ludF9vcHMgbWV0aG9kIGZvciBk cHJpbnRmLiAgKi8KKworc3RhdGljIHZvaWQKK2RwcmludGZfYWZ0ZXJfY29u ZCAoc3RydWN0IGJwc3RhdHMgKmJzKQoreworICBicHN0YXQgdG1wOworICBz dHJ1Y3QgYnJlYWtwb2ludCAqYiA9IGJzLT5icmVha3BvaW50X2F0OworCisg IGJzLT5zdG9wID0gMDsKKyAgYnMtPnByaW50ID0gMDsKKyAgYnMtPmNvbW1h bmRzID0gYi0+Y29tbWFuZHM7CisgIHRtcCA9IGJzLT5uZXh0OworICBicy0+ bmV4dCA9IHRtcDsKKyAgaW5jcmVmX2NvdW50ZWRfY29tbWFuZF9saW5lIChi cy0+Y29tbWFuZHMpOworICBicHN0YXRfZG9fYWN0aW9uc18xICgmYnMpOwor ICBicy0+bmV4dCA9IHRtcDsKK30KKwogLyogVGhlIGJyZWFrcG9pbnRfb3Bz IHN0cnVjdHVyZSB0byBiZSB1c2VkIG9uIHN0YXRpYyB0cmFjZXBvaW50cyB3 aXRoCiAgICBtYXJrZXJzIChgLW0nKS4gICovCiAKQEAgLTE1ODUyLDYgKzE1 ODcyLDcgQEAgaW5pdGlhbGl6ZV9icmVha3BvaW50X29wcyAodm9pZCkKICAg b3BzLT5wcmludF9pdCA9IGJrcHRfcHJpbnRfaXQ7CiAgIG9wcy0+cHJpbnRf bWVudGlvbiA9IGJrcHRfcHJpbnRfbWVudGlvbjsKICAgb3BzLT5wcmludF9y ZWNyZWF0ZSA9IGRwcmludGZfcHJpbnRfcmVjcmVhdGU7CisgIG9wcy0+YWZ0 ZXJfY29uZCA9IGRwcmludGZfYWZ0ZXJfY29uZDsKIH0KIAogLyogQ2hhaW4g Y29udGFpbmluZyBhbGwgZGVmaW5lZCAiZW5hYmxlIGJyZWFrcG9pbnQiIHN1 YmNvbW1hbmRzLiAgKi8KLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAorKysgYi9n ZGIvYnJlYWtwb2ludC5oCkBAIC02MTQsNiArNjE0LDkgQEAgc3RydWN0IGJy ZWFrcG9pbnRfb3BzCiAgICAgICdjYXRjaCBzaWduYWwnIGludGVyYWN0IHBy b3Blcmx5IHdpdGggJ2hhbmRsZSc7IHNlZQogICAgICBicHN0YXRfZXhwbGFp bnNfc2lnbmFsLiAgKi8KICAgZW51bSBicHN0YXRfc2lnbmFsX3ZhbHVlICgq ZXhwbGFpbnNfc2lnbmFsKSAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisKKyAg LyogRG8gc29tZSBzZXR1cCBhZnRlciBjaGVjayBjb25kaXRpb24gaXMgdHJ1 ZS4gICovCisgIHZvaWQgKCphZnRlcl9jb25kKSAoc3RydWN0IGJwc3RhdHMg KmJzKTsKIH07CiAKIC8qIEhlbHBlciBmb3IgYnJlYWtwb2ludF9vcHMtPnBy aW50X3JlY3JlYXRlIGltcGxlbWVudGF0aW9ucy4gIFByaW50cwo= --f46d0447878def50e104dcd0d3cb Content-Type: text/plain; charset=US-ASCII; name="dprintf-continue-test.txt" Content-Disposition: attachment; filename="dprintf-continue-test.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hgrm9ted3 Content-length: 6519 LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLmMKKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLmMKQEAgLTM5LDYgKzM5 LDkgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgZm9vIChs b2MrKyk7CiAgIGZvbyAobG9jKyspOwogICBmb28gKGxvYysrKTsKKworICBz bGVlcCAoMyk7CisKICAgcmV0dXJuIGc7CiB9CiAKLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9kcHJpbnRmLmV4cAorKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2RwcmludGYuZXhwCkBAIC01MCwxMCArNTAsOCBAQCBnZGJf dGVzdF9zZXF1ZW5jZSAiaW5mbyBicmVha3BvaW50cyIgImRwCiAgICAgIlxb XHJcblxdMiAgICAgICBicmVha3BvaW50IgogICAgICJcW1xyXG5cXTMgICAg ICAgZHByaW50ZiIKICAgICAiXFtcclxuXF0gICAgICAgIHByaW50ZiBcIkF0 IGZvbyBlbnRyeVxcXFxuXCIiCi0gICAgIlxbXHJcblxdICAgICAgICBjb250 aW51ZSIKICAgICAiXFtcclxuXF00ICAgICAgIGRwcmludGYiCiAgICAgIlxb XHJcblxdICAgICAgICBwcmludGYgXCJhcmc9JWQsIGc9JWRcXFxcblwiLCBh cmcsIGciCi0gICAgIlxbXHJcblxdICAgICAgICBjb250aW51ZSIKIH0KIAog Z2RiX3Rlc3QgImJyZWFrICRicF9sb2NhdGlvbjEiIFwKQEAgLTEzNiwzICsx MzQsNDEgQEAgaWYgJHRhcmdldF9jYW5fZHByaW50ZiB7CiBnZGJfdGVzdCAi c2V0IGRwcmludGYtc3R5bGUgZm9vYmFyIiAiVW5kZWZpbmVkIGl0ZW06IFwi Zm9vYmFyXCIuIiBcCiAgICAgIlNldCBkcHJpbnRmIHN0eWxlIHRvIGFuIHVu cmVjb2duaXplZCB0eXBlIgogCisKKyMgVGVzdCBkcHJpbnRmIHdpdGggbm9u LXN0b3AgbW9kZS4KKyMgVGhlIHRlc3RmaWxlIHVzZXMgInJ1biIuICBUaGUg cmVhbCBidWcgaGFwcGVuZWQgb25seSBmb3IgIVtpc19yZW1vdGUgdGFyZ2V0 XS4KK2lmIFt0YXJnZXRfaW5mbyBleGlzdHMgdXNlX2dkYl9zdHViXSB7Cisg ICAgdW5zdXBwb3J0ZWQgImRwcmludGYgd2l0aCBub24tc3RvcCBtb2RlIgor ICAgIHJldHVybiAwCit9CitnZGJfdGVzdF9ub19vdXRwdXQgImRlbGV0ZSAy IDUiCitzZW5kX2dkYiAia2lsbFxuIgorZ2RiX2V4cGVjdCAxMjAgeworICAg IC1yZSAiS2lsbCB0aGUgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZC4gLnkgb3Ig bi4gJCIgeworCXNlbmRfZ2RiICJ5XG4iCisJdmVyYm9zZSAiXHRcdEtpbGxp bmcgcHJldmlvdXMgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZCIKKwlleHBfY29u dGludWUKKyAgICB9CisgICAgLXJlICIkZ2RiX3Byb21wdCAkIiB7CisJIyBP Sy4KKyAgICB9Cit9CitnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkcHJpbnRm LXN0eWxlIGdkYiIgIlNldCBkcHJpbnRmIHN0eWxlIHRvIGdkYiIKK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHRhcmdldC1hc3luYyBvbiIKK2dkYl90ZXN0 X25vX291dHB1dCAic2V0IG5vbi1zdG9wIG9uIgorc2V0IGdkYmluZGV4X3dh cm5pbmdfcmUgIndhcm5pbmc6IFNraXBwaW5nIFxbXlxyXG5cXSsgXFwuZ2Ri X2luZGV4IHNlY3Rpb24gXFteXHJcblxdKlxyXG5EbyBcInNldCB1c2UtZGVw cmVjYXRlZC1pbmRleC1zZWN0aW9ucyBvblwiIGJlZm9yZSB0aGUgZmlsZSBp cyByZWFkXHJcbnRvIHVzZSB0aGUgc2VjdGlvbiBhbnl3YXlcXC4iCisKK2dk Yl90ZXN0ICJydW4gJiIgIlN0YXJ0aW5nIHByb2dyYW06IFxbXlxyXG5cXSoo XHJcbiRnZGJpbmRleF93YXJuaW5nX3JlKT8iCitnZGJfdGVzdCAic2hlbGwg ZWNobyBmb28iICJmb28iCitzZXQgdGVzdCAiaW50ZXJydXB0IgorZ2RiX3Rl c3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgeworICAgIC1yZSAiaW50ZXJydXB0 XHJcbiRnZGJfcHJvbXB0ICIgeworCXBhc3MgJHRlc3QKKyAgICB9Cit9Citz ZXQgdGVzdCAicHJvY2VzcyBzdG9wcGVkIgorZ2RiX3Rlc3RfbXVsdGlwbGUg IiIgJHRlc3QgeworICAgIC1yZSAiXHJcblxcXFtwcm9jZXNzIFxbMC05XF0r XFxcXSAjMSBzdG9wcGVkXFxcLlxyXG4iIHsKKwlwYXNzICR0ZXN0CisgICAg fQorfQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvcHIxNTA3NS5jCkBAIC0wLDAgKzEsMjYgQEAKKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENv cHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworaW50CittYWlu KHZvaWQpCisgeworICAgaW50IHggPSA1OworCisgICArK3g7CisgICArK3g7 IC8qIHNldCBkcHJpbnRmIGhlcmUgKi8KKyAgIHJldHVybiB4IC0gNzsKKyB9 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9w cjE1MDc1LmV4cApAQCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAyMDEz IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworc3RhbmRhcmRfdGVzdGZpbGUKKworc2V0IGV4ZWN1dGFibGUgJHRl c3RmaWxlCitzZXQgZXhwZmlsZSAkdGVzdGZpbGUuZXhwCisKK3NldCBkcF9s b2NhdGlvbiBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGRwcmludGYgaGVy ZSJdCisKK2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICRleHBmaWxlICRleGVj dXRhYmxlICRzcmNmaWxlIHtkZWJ1Z31dIHsKKyAgICB1bnRlc3RlZCAiZmFp bGVkIHRvIHByZXBhcmUgZm9yIHRyYWNlIHRlc3RzIgorICAgIHJldHVybiAt MQorfQorCitpZiAhW3J1bnRvX21haW5dIHsKKyAgICBmYWlsICJDYW4ndCBy dW4gdG8gbWFpbiIKKyAgICByZXR1cm4gLTEKK30KKworZ2RiX3Rlc3QgImRw cmludGYgJGRwX2xvY2F0aW9uLCBcIiVkXFxuXCIsIHgiIFwKKyAgICAiRHBy aW50ZiAuKiIKKworZ2RiX3Rlc3QgIm5leHQiICIuKiIgIm5leHQgMSIKK2dk Yl90ZXN0ICJuZXh0IiAiLioiICJuZXh0IDIiCisjIFRlc3QgaW5mZXJpb3Ig ZG9lc24ndCBleGl0LgorZ2RiX3Rlc3QgInAgeCIgIi4qID0gNiIKLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktYnJlYWtwb2ludC1jaGFuZ2VkLmV4 cAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1icmVha3BvaW50LWNo YW5nZWQuZXhwCkBAIC05Niw3ICs5Niw3IEBAIHByb2MgdGVzdF9pbnNlcnRf ZGVsZXRlX21vZGlmeSB7IH0gewogCSR0ZXN0CiAgICAgc2V0IHRlc3QgImRw cmludGYgbWFya2VyLCBcImFyZ1wiIFwiIgogICAgIG1pX2dkYl90ZXN0ICR0 ZXN0IFwKLQl7Lio9YnJlYWtwb2ludC1jcmVhdGVkLGJrcHQ9XHtudW1iZXI9 IjYiLHR5cGU9ImRwcmludGYiLiosc2NyaXB0PVx7XCJwcmludGYgXFxcXFwi YXJnXFxcXFwiIFxcXFxcIlwiLFwiY29udGludWVcIlx9LipcfVxyXG5cXmRv bmV9IFwKKwl7Lio9YnJlYWtwb2ludC1jcmVhdGVkLGJrcHQ9XHtudW1iZXI9 IjYiLHR5cGU9ImRwcmludGYiLiosc2NyaXB0PVx7XCJwcmludGYgXFxcXFwi YXJnXFxcXFwiIFxcXFxcIlwiXH0uKlx9XHJcblxeZG9uZX0gXAogCSR0ZXN0 CiAKICAgICAjIDIuIHdoZW4gbW9kaWZ5aW5nIGNvbmRpdGlvbgo= --f46d0447878def50e104dcd0d3cb--