From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8473 invoked by alias); 3 May 2013 05:43:39 -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 8463 invoked by uid 89); 3 May 2013 05:43:38 -0000 X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS,TW_CP,TW_EG,TW_RG autolearn=ham version=3.3.1 Received: from mail-ob0-f177.google.com (HELO mail-ob0-f177.google.com) (209.85.214.177) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 03 May 2013 05:43:35 +0000 Received: by mail-ob0-f177.google.com with SMTP id un3so1165112obb.36 for ; Thu, 02 May 2013 22:43:33 -0700 (PDT) X-Received: by 10.60.99.2 with SMTP id em2mr2570941oeb.119.1367559813884; Thu, 02 May 2013 22:43:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Thu, 2 May 2013 22:42:53 -0700 (PDT) In-Reply-To: <87wqrrll9m.fsf@fleche.redhat.com> References: <515451EA.1000200@mentor.com> <83y5d7wpvq.fsf@gnu.org> <516454DA.9040109@redhat.com> <87ppxzhfqy.fsf@fleche.redhat.com> <516C2549.3060808@redhat.com> <87vc7ithtj.fsf@fleche.redhat.com> <87wqrrll9m.fsf@fleche.redhat.com> From: Hui Zhu Date: Fri, 03 May 2013 05:43:00 -0000 Message-ID: Subject: Re: [PATCH] add -s option to make -break-insert support dprintf To: Tom Tromey Cc: Pedro Alves , Eli Zaretskii , Hui Zhu , gdb-patches ml , Marc Khouzam Content-Type: multipart/mixed; boundary=047d7b33d904ea71b204dbc9d42d X-Virus-Found: No X-SW-Source: 2013-05/txt/msg00046.txt.bz2 --047d7b33d904ea71b204dbc9d42d Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1908 On Thu, Apr 25, 2013 at 4:35 AM, Tom Tromey wrote: >>>>>> "Hui" == Hui Zhu writes: > > Hui> Does GDB have some function can convert string to "" inside string? > > I wouldn't rule it out but I couldn't think of one offhand. > > Hui> Could you give me some comments about the new format for -s. > Hui> My thought is: > Hui> -s format argv1 argv2, other options > Hui> "-break-insert -s FORMAT LOCATION ARG ARG ARG ..." is too different > Hui> with current options of -break-insert and very hard to support. > > What is hard about it? > > In mi_cmd_break_insert, if '-s' was given, use argv[oind+1] through > argv[argc-1] as the arguments. Maybe the hard part is getting this > through create_breakpoint? That is just further proof that it is a bad > API. > > TBH I don't see why this needs to be in -break-insert. A new command > seems cleaner to me. But I don't want to press too hard either. > > Tom Hi Tom, According to your comments. I did some update with these patches to added special command -dprintf-insert to insert dprintf. Its format is close to simple dprintf command: -dprintf-insert LOCATION FORMAT ARG ARG ... Thanks, Hui 2013-05-03 Hui Zhu * breakpoint.c (dprintf_breakpoint_ops): Remove its static. * breakpoint.h (dprintf_breakpoint_ops): Add extern. * mi/mi-cmd-break.c (ctype.h): New include. (mi_argv_to_format, mi_cmd_break_insert_1): New. (mi_cmd_break_insert): Call mi_cmd_break_insert_1. (mi_cmd_dprintf_insert): New. * mi/mi-cmds.c (mi_cmds): Add "dprintf-insert". * mi/mi-cmds.h (mi_cmd_dprintf_insert): New extern. 2013-05-03 Hui Zhu * gdb.texinfo (GDB/MI Breakpoint Commands): Describe the "-dprintf-insert" command. 2013-05-03 Hui Zhu * gdb.mi/Makefile.in (PROGS): Add "mi-dprintf". * gdb.mi/mi-dprintf.exp, gdb.mi/mi-dprintf.c: New. --047d7b33d904ea71b204dbc9d42d Content-Type: text/plain; charset=US-ASCII; name="mi-dprintf.txt" Content-Disposition: attachment; filename="mi-dprintf.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hg8xreoe0 Content-length: 10537 LS0tIGEvYnJlYWtwb2ludC5jCisrKyBiL2JyZWFrcG9pbnQuYwpAQCAtMzAx LDcgKzMwMSw3IEBAIHN0cnVjdCBicmVha3BvaW50X29wcyBia3B0X2JyZWFr cG9pbnRfb3AKIHN0YXRpYyBzdHJ1Y3QgYnJlYWtwb2ludF9vcHMgYmtwdF9w cm9iZV9icmVha3BvaW50X29wczsKIAogLyogRHluYW1pYyBwcmludGYgY2xh c3MgdHlwZS4gICovCi1zdGF0aWMgc3RydWN0IGJyZWFrcG9pbnRfb3BzIGRw cmludGZfYnJlYWtwb2ludF9vcHM7CitzdHJ1Y3QgYnJlYWtwb2ludF9vcHMg ZHByaW50Zl9icmVha3BvaW50X29wczsKIAogLyogVGhlIHN0eWxlIGluIHdo aWNoIHRvIHBlcmZvcm0gYSBkeW5hbWljIHByaW50Zi4gIFRoaXMgaXMgYSB1 c2VyCiAgICBvcHRpb24gYmVjYXVzZSBkaWZmZXJlbnQgb3V0cHV0IG9wdGlv bnMgaGF2ZSBkaWZmZXJlbnQgdHJhZGVvZmZzOwotLS0gYS9icmVha3BvaW50 LmgKKysrIGIvYnJlYWtwb2ludC5oCkBAIC0xMjEyLDYgKzEyMTIsNyBAQCBl eHRlcm4gdm9pZCB0YnJlYWtfY29tbWFuZCAoY2hhciAqLCBpbnQpCiBleHRl cm4gc3RydWN0IGJyZWFrcG9pbnRfb3BzIGJhc2VfYnJlYWtwb2ludF9vcHM7 CiBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnRfb3BzIGJrcHRfYnJlYWtwb2lu dF9vcHM7CiBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnRfb3BzIHRyYWNlcG9p bnRfYnJlYWtwb2ludF9vcHM7CitleHRlcm4gc3RydWN0IGJyZWFrcG9pbnRf b3BzIGRwcmludGZfYnJlYWtwb2ludF9vcHM7CiAKIGV4dGVybiB2b2lkIGlu aXRpYWxpemVfYnJlYWtwb2ludF9vcHMgKHZvaWQpOwogCi0tLSBhL21pL21p LWNtZC1icmVhay5jCisrKyBiL21pL21pLWNtZC1icmVhay5jCkBAIC0zMCw2 ICszMCw3IEBACiAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJt aS1tYWluLmgiCiAjaW5jbHVkZSAibWktY21kLWJyZWFrLmgiCisjaW5jbHVk ZSA8Y3R5cGUuaD4KIAogZW51bQogICB7CkBAIC04NCwxMSArODUsODcgQEAg c2V0dXBfYnJlYWtwb2ludF9yZXBvcnRpbmcgKHZvaWQpCiB9CiAKIAotLyog SW1wbGVtZW50cyB0aGUgLWJyZWFrLWluc2VydCBjb21tYW5kLgotICAgU2Vl IHRoZSBNSSBtYW51YWwgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIG9wdGlv bnMuICAqLworc3RhdGljIGNoYXIgKgorbWlfYXJndl90b19mb3JtYXQgKGlu dCBmb3JtYXRfbnVtLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCit7CisgIGNo YXIgKmZvcm1hdDsKKyAgaW50IGZvcm1hdF9zaXplLCBpLCBmb3JtYXRfY3Vy cmVudF9zaXplID0gMDsKIAotdm9pZAotbWlfY21kX2JyZWFrX2luc2VydCAo Y2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorICBpZiAo Zm9ybWF0X251bSA+PSBhcmdjKQorICAgIGVycm9yIChfKCItZHByaW50Zi1p bnNlcnQ6IE1pc3NpbmcgPGZvcm1hdD4iKSk7CisKKyAgLyogSWYgYWxsIHRo ZSBzdHJpbmcgbmVlZCBjb252ZXJ0IHRvIFxkZGQgbW9kZSwgc28gKiAyLgor ICAgICArIDIgZm9yIHR3byAiLgorICAgICArIDEgZm9yIFwwLiAgKi8KKyAg Zm9ybWF0X3NpemUgPSBzdHJsZW4gKGFyZ3ZbZm9ybWF0X251bV0pICogNCAr IDM7CisgIGZvcm1hdCA9IHhtYWxsb2MgKGZvcm1hdF9zaXplKTsKKworICAv KiBDb252ZXJ0IEFSR1ZbT0lORCArIDFdIHRvIGZvcm1hdCBzdHJpbmcgYW5k IHNhdmUgdG8gRk9STUFULiAgKi8KKyAgKihmb3JtYXQgKyBmb3JtYXRfY3Vy cmVudF9zaXplKSA9ICdcIic7CisgICsrZm9ybWF0X2N1cnJlbnRfc2l6ZTsK KyAgZm9yIChpID0gMDsgaSA8IHN0cmxlbiAoYXJndltmb3JtYXRfbnVtXSk7 IGkrKykKKyAgICB7CisgICAgICBzd2l0Y2ggKGFyZ3ZbZm9ybWF0X251bV1b aV0pCisJeworCWNhc2UgJ1xcJzoKKwkgIHN0cmNweSAoZm9ybWF0ICsgZm9y bWF0X2N1cnJlbnRfc2l6ZSwgIlxcXFwiKTsKKwkgIGJyZWFrOworCWNhc2Ug J1xhJzoKKwkgIHN0cmNweSAoZm9ybWF0ICsgZm9ybWF0X2N1cnJlbnRfc2l6 ZSwgIlxcYSIpOworCSAgYnJlYWs7CisJY2FzZSAnXGInOgorCSAgc3RyY3B5 IChmb3JtYXQgKyBmb3JtYXRfY3VycmVudF9zaXplLCAiXFxiIik7CisJICBi cmVhazsKKwljYXNlICdcZic6CisJICBzdHJjcHkgKGZvcm1hdCArIGZvcm1h dF9jdXJyZW50X3NpemUsICJcXGYiKTsKKwkgIGJyZWFrOworCWNhc2UgJ1xu JzoKKwkgIHN0cmNweSAoZm9ybWF0ICsgZm9ybWF0X2N1cnJlbnRfc2l6ZSwg IlxcbiIpOworCSAgYnJlYWs7CisJY2FzZSAnXHInOgorCSAgc3RyY3B5IChm b3JtYXQgKyBmb3JtYXRfY3VycmVudF9zaXplLCAiXFxyIik7CisJICBicmVh azsKKwljYXNlICdcdCc6CisJICBzdHJjcHkgKGZvcm1hdCArIGZvcm1hdF9j dXJyZW50X3NpemUsICJcXHQiKTsKKwkgIGJyZWFrOworCWNhc2UgJ1x2JzoK KwkgIHN0cmNweSAoZm9ybWF0ICsgZm9ybWF0X2N1cnJlbnRfc2l6ZSwgIlxc diIpOworCSAgYnJlYWs7CisJZGVmYXVsdDoKKwkgIGlmIChpc3ByaW50KGFy Z3ZbZm9ybWF0X251bV1baV0pKQorCSAgICB7CisJICAgICAgKihmb3JtYXQg KyBmb3JtYXRfY3VycmVudF9zaXplKSA9IGFyZ3ZbZm9ybWF0X251bV1baV07 CisJICAgICAgKihmb3JtYXQgKyBmb3JtYXRfY3VycmVudF9zaXplICsgMSkg PSAnXDAnOworCSAgICB9CisJICBlbHNlCisJICAgIHNwcmludGYgKGZvcm1h dCArIGZvcm1hdF9jdXJyZW50X3NpemUsICJcXCVvIiwKKwkJICAgICBhcmd2 W2Zvcm1hdF9udW1dW2ldKTsKKwkgIGJyZWFrOworCX0KKyAgICAgIGZvcm1h dF9jdXJyZW50X3NpemUgKz0gc3RybGVuIChmb3JtYXQgKyBmb3JtYXRfY3Vy cmVudF9zaXplKTsKKyAgICB9CisgICooZm9ybWF0ICsgZm9ybWF0X2N1cnJl bnRfc2l6ZSkgPSAnXCInOworICArK2Zvcm1hdF9jdXJyZW50X3NpemU7Cisg ICooZm9ybWF0ICsgZm9ybWF0X2N1cnJlbnRfc2l6ZSkgPSAnXDAnOworCisg IC8qIEFwcGx5IG90aGVyIGFyZ3YgdG8gRk9STUFULiAgKi8KKyAgZm9yIChp ID0gZm9ybWF0X251bSArIDE7IGkgPCBhcmdjOyBpKyspCisgICAgeworICAg ICAgaWYgKDIgKyBzdHJsZW4gKGFyZ3ZbaV0pID4gZm9ybWF0X3NpemUgLSBm b3JtYXRfY3VycmVudF9zaXplKQorICAgICAgICB7CisJICBmb3JtYXRfc2l6 ZSA9IGZvcm1hdF9jdXJyZW50X3NpemUgKyBzdHJsZW4gKGFyZ3ZbaV0pICsg MjsKKyAgICAgICAgICBmb3JtYXQgPSB4cmVhbGxvYyAoZm9ybWF0LCBmb3Jt YXRfc2l6ZSk7CisJfQorICAgICAgKihmb3JtYXQgKyBmb3JtYXRfY3VycmVu dF9zaXplKSA9ICcsJzsKKyAgICAgIHN0cmNweSAoZm9ybWF0ICsgZm9ybWF0 X2N1cnJlbnRfc2l6ZSArIDEsIGFyZ3ZbaV0pOworICAgICAgZm9ybWF0X2N1 cnJlbnRfc2l6ZSArPSBzdHJsZW4gKGZvcm1hdCArIGZvcm1hdF9jdXJyZW50 X3NpemUpOworICAgIH0KKworICByZXR1cm4gZm9ybWF0OworfQorCitzdGF0 aWMgdm9pZAorbWlfY21kX2JyZWFrX2luc2VydF8xIChpbnQgZHByaW50Ziwg Y2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQogewogICBj aGFyICphZGRyZXNzID0gTlVMTDsKICAgaW50IGhhcmR3YXJlID0gMDsKQEAg LTEwMiw2ICsxNzksNyBAQCBtaV9jbWRfYnJlYWtfaW5zZXJ0IChjaGFyICpj b21tYW5kLCBjaGFyCiAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICBl bnVtIGJwdHlwZSB0eXBlX3dhbnRlZDsKICAgc3RydWN0IGJyZWFrcG9pbnRf b3BzICpvcHM7CisgIGNoYXIgKmV4dHJhX3N0cmluZyA9IE5VTEw7CiAKICAg ZW51bSBvcHQKICAgICB7CkBAIC0xNjMsMzUgKzI0MSw3NSBAQCBtaV9jbWRf YnJlYWtfaW5zZXJ0IChjaGFyICpjb21tYW5kLCBjaGFyCiAgICAgfQogCiAg IGlmIChvaW5kID49IGFyZ2MpCi0gICAgZXJyb3IgKF8oIi1icmVhay1pbnNl cnQ6IE1pc3NpbmcgPGxvY2F0aW9uPiIpKTsKLSAgaWYgKG9pbmQgPCBhcmdj IC0gMSkKLSAgICBlcnJvciAoXygiLWJyZWFrLWluc2VydDogR2FyYmFnZSBm b2xsb3dpbmcgPGxvY2F0aW9uPiIpKTsKKyAgICBlcnJvciAoXygiLSVzLWlu c2VydDogTWlzc2luZyA8bG9jYXRpb24+IiksCisJICAgZHByaW50ZiA/ICJk cHJpbnRmIiA6ICJicmVhayIpOwogICBhZGRyZXNzID0gYXJndltvaW5kXTsK KyAgaWYgKGRwcmludGYpCisgICAgeworICAgICAgaWYgKGhhcmR3YXJlKQor CWVycm9yIChfKCItZHByaW50Zi1pbnNlcnQ6IGRvZXMgbm90IHN1cHBvcnQg LWgiKSk7CisKKyAgICAgIGV4dHJhX3N0cmluZyA9IG1pX2FyZ3ZfdG9fZm9y bWF0IChvaW5kICsgMSwgYXJndiwgYXJnYyk7CisgICAgICBtYWtlX2NsZWFu dXAgKHhmcmVlLCBleHRyYV9zdHJpbmcpOworICAgIH0KKyAgZWxzZQorICAg IHsKKyAgICAgIGlmIChvaW5kIDwgYXJnYyAtIDEpCisJZXJyb3IgKF8oIi1i cmVhay1pbnNlcnQ6IEdhcmJhZ2UgZm9sbG93aW5nIDxsb2NhdGlvbj4iKSk7 CisgICAgfQogCiAgIC8qIE5vdyB3ZSBoYXZlIHdoYXQgd2UgbmVlZCwgbGV0 J3MgaW5zZXJ0IHRoZSBicmVha3BvaW50ISAgKi8KICAgYmFja190byA9IHNl dHVwX2JyZWFrcG9pbnRfcmVwb3J0aW5nICgpOwogCi0gIC8qIE5vdGUgdGhh dCB0byByZXF1ZXN0IGEgZmFzdCB0cmFjZXBvaW50LCB0aGUgY2xpZW50IHVz ZXMgdGhlCi0gICAgICJoYXJkd2FyZSIgZmxhZywgYWx0aG91Z2ggdGhlcmUn cyBub3RoaW5nIG9mIGhhcmR3YXJlIHJlbGF0ZWQgdG8KLSAgICAgZmFzdCB0 cmFjZXBvaW50cyAtLSBvbmUgY2FuIGltcGxlbWVudCBzbG93IHRyYWNlcG9p bnRzIHdpdGgKLSAgICAgaGFyZHdhcmUgYnJlYWtwb2ludHMsIGJ1dCBmYXN0 IHRyYWNlcG9pbnRzIGFyZSBhbHdheXMgc29mdHdhcmUuCi0gICAgICJmYXN0 IiBpcyBhIG1pc25vbWVyLCBhY3R1YWxseSwgImp1bXAiIHdvdWxkIGJlIG1v cmUgYXBwcm9wcmlhdGUuCi0gICAgIEEgc2ltdWxhdG9yIG9yIGFuIGVtdWxh dG9yIGNvdWxkIGNvbmNlaXZhYmx5IGltcGxlbWVudCBmYXN0Ci0gICAgIHJl Z3VsYXIgbm9uLWp1bXAgYmFzZWQgdHJhY2Vwb2ludHMuICAqLwotICB0eXBl X3dhbnRlZCA9ICh0cmFjZXBvaW50Ci0JCSA/IChoYXJkd2FyZSA/IGJwX2Zh c3RfdHJhY2Vwb2ludCA6IGJwX3RyYWNlcG9pbnQpCi0JCSA6IChoYXJkd2Fy ZSA/IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQgOiBicF9icmVha3BvaW50KSk7 Ci0gIG9wcyA9IHRyYWNlcG9pbnQgPyAmdHJhY2Vwb2ludF9icmVha3BvaW50 X29wcyA6ICZia3B0X2JyZWFrcG9pbnRfb3BzOworICBpZiAodHJhY2Vwb2lu dCkKKyAgICB7CisgICAgICAvKiBOb3RlIHRoYXQgdG8gcmVxdWVzdCBhIGZh c3QgdHJhY2Vwb2ludCwgdGhlIGNsaWVudCB1c2VzIHRoZQorCSAiaGFyZHdh cmUiIGZsYWcsIGFsdGhvdWdoIHRoZXJlJ3Mgbm90aGluZyBvZiBoYXJkd2Fy ZSByZWxhdGVkIHRvCisJIGZhc3QgdHJhY2Vwb2ludHMgLS0gb25lIGNhbiBp bXBsZW1lbnQgc2xvdyB0cmFjZXBvaW50cyB3aXRoCisJIGhhcmR3YXJlIGJy ZWFrcG9pbnRzLCBidXQgZmFzdCB0cmFjZXBvaW50cyBhcmUgYWx3YXlzIHNv ZnR3YXJlLgorCSAiZmFzdCIgaXMgYSBtaXNub21lciwgYWN0dWFsbHksICJq dW1wIiB3b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlLgorCSBBIHNpbXVsYXRv ciBvciBhbiBlbXVsYXRvciBjb3VsZCBjb25jZWl2YWJseSBpbXBsZW1lbnQg ZmFzdAorCSByZWd1bGFyIG5vbi1qdW1wIGJhc2VkIHRyYWNlcG9pbnRzLiAg Ki8KKyAgICAgIHR5cGVfd2FudGVkID0gaGFyZHdhcmUgPyBicF9mYXN0X3Ry YWNlcG9pbnQgOiBicF90cmFjZXBvaW50OworICAgICAgb3BzID0gJnRyYWNl cG9pbnRfYnJlYWtwb2ludF9vcHM7CisgICAgfQorICBlbHNlIGlmIChkcHJp bnRmKQorICAgIHsKKyAgICAgIHR5cGVfd2FudGVkID0gYnBfZHByaW50ZjsK KyAgICAgIG9wcyA9ICZkcHJpbnRmX2JyZWFrcG9pbnRfb3BzOworICAgIH0K KyAgZWxzZQorICAgIHsKKyAgICAgIHR5cGVfd2FudGVkID0gaGFyZHdhcmUg PyBicF9oYXJkd2FyZV9icmVha3BvaW50IDogYnBfYnJlYWtwb2ludDsKKyAg ICAgIG9wcyA9ICZia3B0X2JyZWFrcG9pbnRfb3BzOworICAgIH0KIAogICBj cmVhdGVfYnJlYWtwb2ludCAoZ2V0X2N1cnJlbnRfYXJjaCAoKSwgYWRkcmVz cywgY29uZGl0aW9uLCB0aHJlYWQsCi0JCSAgICAgTlVMTCwKKwkJICAgICBl eHRyYV9zdHJpbmcsCiAJCSAgICAgMCAvKiBjb25kaXRpb24gYW5kIHRocmVh ZCBhcmUgdmFsaWQuICAqLywKIAkJICAgICB0ZW1wX3AsIHR5cGVfd2FudGVk LAogCQkgICAgIGlnbm9yZV9jb3VudCwKIAkJICAgICBwZW5kaW5nID8gQVVU T19CT09MRUFOX1RSVUUgOiBBVVRPX0JPT0xFQU5fRkFMU0UsCiAJCSAgICAg b3BzLCAwLCBlbmFibGVkLCAwLCAwKTsKICAgZG9fY2xlYW51cHMgKGJhY2tf dG8pOworfQorCisvKiBJbXBsZW1lbnRzIHRoZSAtYnJlYWstaW5zZXJ0IGNv bW1hbmQuCisgICBTZWUgdGhlIE1JIG1hbnVhbCBmb3IgdGhlIGxpc3Qgb2Yg cG9zc2libGUgb3B0aW9ucy4gICovCiAKK3ZvaWQKK21pX2NtZF9icmVha19p bnNlcnQgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykK K3sKKyAgbWlfY21kX2JyZWFrX2luc2VydF8xICgwLCBjb21tYW5kLCBhcmd2 LCBhcmdjKTsKK30KKworLyogSW1wbGVtZW50cyB0aGUgLWRwcmludGYtaW5z ZXJ0IGNvbW1hbmQuCisgICBTZWUgdGhlIE1JIG1hbnVhbCBmb3IgdGhlIGxp c3Qgb2YgcG9zc2libGUgb3B0aW9ucy4gICovCisKK3ZvaWQKK21pX2NtZF9k cHJpbnRmX2luc2VydCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGlu dCBhcmdjKQoreworICBtaV9jbWRfYnJlYWtfaW5zZXJ0XzEgKDEsIGNvbW1h bmQsIGFyZ3YsIGFyZ2MpOwogfQogCiBlbnVtIHdwX3R5cGUKLS0tIGEvbWkv bWktY21kcy5jCisrKyBiL21pL21pLWNtZHMuYwpAQCAtNjEsNiArNjEsOCBA QCBzdGF0aWMgc3RydWN0IG1pX2NtZCBtaV9jbWRzW10gPQogICBERUZfTUlf Q01EX0NMSSAoImJyZWFrLWluZm8iLCAiaW5mbyBicmVhayIsIDEpLAogICBE RUZfTUlfQ01EX01JXzEgKCJicmVhay1pbnNlcnQiLCBtaV9jbWRfYnJlYWtf aW5zZXJ0LAogCQkgICAmbWlfc3VwcHJlc3Nfbm90aWZpY2F0aW9uLmJyZWFr cG9pbnQpLAorICBERUZfTUlfQ01EX01JXzEgKCJkcHJpbnRmLWluc2VydCIs IG1pX2NtZF9kcHJpbnRmX2luc2VydCwKKwkJICAgJm1pX3N1cHByZXNzX25v dGlmaWNhdGlvbi5icmVha3BvaW50KSwKICAgREVGX01JX0NNRF9DTEkgKCJi cmVhay1saXN0IiwgImluZm8gYnJlYWsiLCAwKSwKICAgREVGX01JX0NNRF9N SV8xICgiYnJlYWstcGFzc2NvdW50IiwgbWlfY21kX2JyZWFrX3Bhc3Njb3Vu dCwKIAkJICAgJm1pX3N1cHByZXNzX25vdGlmaWNhdGlvbi5icmVha3BvaW50 KSwKLS0tIGEvbWkvbWktY21kcy5oCisrKyBiL21pL21pLWNtZHMuaApAQCAt MzksNiArMzksNyBAQCB0eXBlZGVmIHZvaWQgKG1pX2NtZF9hcmd2X2Z0eXBl KSAoY2hhciAqCiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX2Fk YV90YXNrX2luZm87CiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21k X2FkZF9pbmZlcmlvcjsKIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9j bWRfYnJlYWtfaW5zZXJ0OworZXh0ZXJuIG1pX2NtZF9hcmd2X2Z0eXBlIG1p X2NtZF9kcHJpbnRmX2luc2VydDsKIGV4dGVybiBtaV9jbWRfYXJndl9mdHlw ZSBtaV9jbWRfYnJlYWtfY29tbWFuZHM7CiBleHRlcm4gbWlfY21kX2FyZ3Zf ZnR5cGUgbWlfY21kX2JyZWFrX3Bhc3Njb3VudDsKIGV4dGVybiBtaV9jbWRf YXJndl9mdHlwZSBtaV9jbWRfYnJlYWtfd2F0Y2g7Cg== --047d7b33d904ea71b204dbc9d42d Content-Type: text/plain; charset=US-ASCII; name="mi-dprintf-doc.txt" Content-Disposition: attachment; filename="mi-dprintf-doc.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hg8xrep31 Content-length: 3746 LS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC01MSw2ICs1MSw4IEBAIHNob3cg cmVtb3RlIHRyYWNlLXN0YXR1cy1wYWNrZXQKICAgKiogVGhlIC10cmFjZS1z YXZlIE1JIGNvbW1hbmQgY2FuIG9wdGlvbmFsbHkgc2F2ZSB0cmFjZSBidWZm ZXIgaW4gQ29tbW9uCiAgICAgIFRyYWNlIEZvcm1hdCBub3cuCiAKKyAgKiog VGhlIG5ldyBjb21tYW5kIC1kcHJpbnRmLWluc2VydCBzZXRzIGEgZHluYW1p YyBwcmludGYgYnJlYWtwb2ludC4KKwogKioqIENoYW5nZXMgaW4gR0RCIDcu NgogCiAqIFRhcmdldCByZWNvcmQgaGFzIGJlZW4gcmVuYW1lZCB0byByZWNv cmQtZnVsbC4KLS0tIGEvZG9jL2dkYi50ZXhpbmZvCisrKyBiL2RvYy9nZGIu dGV4aW5mbwpAQCAtMjg5NDYsNiArMjg5NDYsODQgQEAgdGltZXM9IjAiQH1d QH0KIEBjIChnZGIpCiBAZW5kIHNtYWxsZXhhbXBsZQogCitAc3ViaGVhZGlu ZyBUaGUgQGNvZGV7LWRwcmludGYtaW5zZXJ0fSBDb21tYW5kCitAZmluZGV4 IC1kcHJpbnRmLWluc2VydAorCitAc3Vic3ViaGVhZGluZyBTeW5vcHNpcwor CitAc21hbGxleGFtcGxlCisgLWRwcmludGYtaW5zZXJ0IFsgLXQgXSBbIC1m IF0gWyAtZCBdCisgICAgWyAtYyBAdmFye2NvbmRpdGlvbn0gXSBbIC1pIEB2 YXJ7aWdub3JlLWNvdW50fSBdCisgICAgWyAtcCBAdmFye3RocmVhZC1pZH0g XSBbIEB2YXJ7bG9jYXRpb259IF0gWyBAdmFye2Zvcm1hdH0gXQorICAgIFsg QHZhcnthcmd1bWVudH0gXQorQGVuZCBzbWFsbGV4YW1wbGUKKworQG5vaW5k ZW50CitJZiBzcGVjaWZpZWQsIEB2YXJ7bG9jYXRpb259LCBjYW4gYmUgb25l IG9mOgorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbSBmdW5jdGlvbgorQGMg QGl0ZW0gK29mZnNldAorQGMgQGl0ZW0gLW9mZnNldAorQGMgQGl0ZW0gbGlu ZW51bQorQGl0ZW0gZmlsZW5hbWU6bGluZW51bQorQGl0ZW0gZmlsZW5hbWU6 ZnVuY3Rpb24KK0BpdGVtICphZGRyZXNzCitAZW5kIGl0ZW1pemUKKworVGhl IHBvc3NpYmxlIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdGhpcyBjb21tYW5k IGFyZToKKworQHRhYmxlIEBzYW1wCitAaXRlbSAtdAorSW5zZXJ0IGEgdGVt cG9yYXJ5IGJyZWFrcG9pbnQuCitAaXRlbSAtZgorSWYgQHZhcntsb2NhdGlv bn0gY2Fubm90IGJlIHBhcnNlZCAoZm9yIGV4YW1wbGUgaWYgaXQKK3JlZmVy cyB0byB1bmtub3duIGZpbGVzIG9yIGZ1bmN0aW9ucyksIGNyZWF0ZSBhIHBl bmRpbmcKK2JyZWFrcG9pbnQuIFdpdGhvdXQgdGhpcyBmbGFnLCBAdmFsdWV7 R0RCTn0gd2lsbCByZXBvcnQKK2FuIGVycm9yLCBhbmQgd29uJ3QgY3JlYXRl IGEgYnJlYWtwb2ludCwgaWYgQHZhcntsb2NhdGlvbn0KK2Nhbm5vdCBiZSBw YXJzZWQuCitAaXRlbSAtZAorQ3JlYXRlIGEgZGlzYWJsZWQgYnJlYWtwb2lu dC4KK0BpdGVtIC1jIEB2YXJ7Y29uZGl0aW9ufQorTWFrZSB0aGUgYnJlYWtw b2ludCBjb25kaXRpb25hbCBvbiBAdmFye2NvbmRpdGlvbn0uCitAaXRlbSAt aSBAdmFye2lnbm9yZS1jb3VudH0KK0luaXRpYWxpemUgdGhlIEB2YXJ7aWdu b3JlLWNvdW50fS4KK0BpdGVtIC1wIEB2YXJ7dGhyZWFkLWlkfQorUmVzdHJp Y3QgdGhlIGJyZWFrcG9pbnQgdG8gdGhlIHNwZWNpZmllZCBAdmFye3RocmVh ZC1pZH0uCitAZW5kIHRhYmxlCisKK0BzdWJzdWJoZWFkaW5nIFJlc3VsdAor CitAeHJlZntHREIvTUkgQnJlYWtwb2ludCBJbmZvcm1hdGlvbn0sIGZvciBk ZXRhaWxzIG9uIHRoZSBmb3JtYXQgb2YgdGhlCityZXN1bHRpbmcgYnJlYWtw b2ludC4KKworTm90ZTogdGhpcyBmb3JtYXQgaXMgb3BlbiB0byBjaGFuZ2Uu CitAYyBBbiBvdXQtb2YtYmFuZCBicmVha3BvaW50IGluc3RlYWQgb2YgcGFy dCBvZiB0aGUgcmVzdWx0PworCitAc3Vic3ViaGVhZGluZyBAdmFsdWV7R0RC Tn0gQ29tbWFuZAorCitUaGUgY29ycmVzcG9uZGluZyBAdmFsdWV7R0RCTn0g Y29tbWFuZHMgYXJlIEBzYW1we2RwcmludGZ9LgorCitAc3Vic3ViaGVhZGlu ZyBFeGFtcGxlCisKK0BzbWFsbGV4YW1wbGUKKyhnZGIpCis0LWRwcmludGYt aW5zZXJ0IGZvbyAiQXQgZm9vIGVudHJ5XG4iCis0XmRvbmUsYmtwdD1Ae251 bWJlcj0iMSIsdHlwZT0iZHByaW50ZiIsZGlzcD0ia2VlcCIsZW5hYmxlZD0i eSIsCithZGRyPSIweDAwMDAwMDAwMDA0MDA2MWIiLGZ1bmM9ImZvbyIsZmls ZT0ibWktZHByaW50Zi5jIiwKK2Z1bGxuYW1lPSJtaS1kcHJpbnRmLmMiLGxp bmU9IjI1Iix0aHJlYWQtZ3JvdXBzPVsiaTEiXSwKK3RpbWVzPSIwIixzY3Jp cHQ9QHsicHJpbnRmIFwiQXQgZm9vIGVudHJ5XFxuXCIiLCJjb250aW51ZSJA fSwKK29yaWdpbmFsLWxvY2F0aW9uPSJmb28iQH0KKyhnZGIpCis1LWRwcmlu dGYtaW5zZXJ0IDI2ICJhcmc9JWQsIGc9JWRcbiIgYXJnIGcKKzVeZG9uZSxi a3B0PUB7bnVtYmVyPSIyIix0eXBlPSJkcHJpbnRmIixkaXNwPSJrZWVwIixl bmFibGVkPSJ5IiwKK2FkZHI9IjB4MDAwMDAwMDAwMDQwMDYyYSIsZnVuYz0i Zm9vIixmaWxlPSJtaS1kcHJpbnRmLmMiLAorZnVsbG5hbWU9Im1pLWRwcmlu dGYuYyIsbGluZT0iMjYiLHRocmVhZC1ncm91cHM9WyJpMSJdLAordGltZXM9 IjAiLHNjcmlwdD1AeyJwcmludGYgXCJhcmc9JWQsIGc9JWRcXG5cIiwgYXJn LCBnIiwiY29udGludWUiQH0sCitvcmlnaW5hbC1sb2NhdGlvbj0ibWktZHBy aW50Zi5jOjI2IkB9CisoZ2RiKQorQGVuZCBzbWFsbGV4YW1wbGUKKwogQHN1 YmhlYWRpbmcgVGhlIEBjb2Rley1icmVhay1saXN0fSBDb21tYW5kCiBAZmlu ZGV4IC1icmVhay1saXN0CiAK --047d7b33d904ea71b204dbc9d42d Content-Type: text/plain; charset=US-ASCII; name="mi-dprintf-test.txt" Content-Disposition: attachment; filename="mi-dprintf-test.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hg8xrep52 Content-length: 10094 LS0tIGEvdGVzdHN1aXRlL2dkYi5taS9NYWtlZmlsZS5pbgorKysgYi90ZXN0 c3VpdGUvZ2RiLm1pL01ha2VmaWxlLmluCkBAIC0zLDcgKzMsNyBAQCBzcmNk aXIgPSBAc3JjZGlyQAogCiBQUk9HUyA9IGJhc2ljcyBjX3ZhcmlhYmxlIGNw cF92YXJpYWJsZSB2YXItY21kIGR3Mi1yZWYtbWlzc2luZy1mcmFtZQlcCiAJ Z2RiNjY5LXB0aHJlYWRzIGdkYjcwMSBnZGI3OTIgbWktYXN5bmMgbWktYmFz aWNzIG1pLWJyZWFrCVwKLQltaS1jbGkgbWktY29uc29sZSBtaS1kaXNhc3Nl bWJsZSBtaS1ldmFsIG1pLWZpbGUJCVwKKwltaS1jbGkgbWktY29uc29sZSBt aS1kaXNhc3NlbWJsZSBtaS1kcHJpbnRmIG1pLWV2YWwgbWktZmlsZQlcCiAJ bWktZmlsZS10cmFuc2ZlciBtaS1ub24tc3RvcCBtaS1ub24tc3RvcC1leGl0 CQkJXAogCW1pLW5zLXN0YWxlLXJlZ2NhY2hlIG1pLW5zaW50cmFsbCBtaS1u c21vcmlidW5kIG1pLW5zdGhyZXhlYwlcCiAJbWktcGVuZGluZyBtaS1wdGhy ZWFkcyBtaS1yZWFkLW1lbW9yeSBtaS1yZWdzIG1pLXJldHVybgkJXAotLS0g L2Rldi9udWxsCisrKyBiL3Rlc3RzdWl0ZS9nZGIubWkvbWktZHByaW50Zi5j CkBAIC0wLDAgKzEsNTkgQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAoQykg MjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIENvbnRy aWJ1dGVkIGJ5IEh1aSBaaHUgIDxodWlAY29kZXNvdXJjZXJ5LmNvbT4KKwor ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN0ZGlv Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKK3N0YXRpYyBpbnQgZzsKKwor dm9pZAorZm9vIChpbnQgYXJnKQoreworICBnICs9IGFyZzsKKyAgZyAqPSAy OyAvKiBzZXQgZHByaW50ZiAxIGhlcmUgKi8KKyAgZyAvPSAyLjU7IC8qIHNl dCBicmVha3BvaW50IDEgaGVyZSAqLworfQorCitpbnQKK21haW4gKGludCBh cmdjLCBjaGFyICphcmd2W10pCit7CisgIGludCBsb2MgPSAxMjM0OworCisg IC8qIEVuc3VyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZS4gICov CisgIHByaW50ZiAoImtpY2tvZmYgJWRcbiIsIGxvYyk7CisgIGZwcmludGYg KHN0ZGVyciwgImFsc28gdG8gc3RkZXJyICVkXG4iLCBsb2MpOworCisgIGZv byAobG9jKyspOworICBmb28gKGxvYysrKTsKKyAgZm9vIChsb2MrKyk7Cisg IHJldHVybiBnOworfQorCisvKiBNYWtlIHN1cmUgZnVuY3Rpb24gJ21hbGxv YycgaXMgbGlua2VkIGludG8gcHJvZ3JhbS4gIE9uIHNvbWUgYmFyZS1tZXRh bAorICAgcG9ydCwgaWYgd2UgZG9uJ3QgdXNlICdtYWxsb2MnLCBpdCB3aWxs IG5vdCBiZSBsaW5rZWQgaW4gcHJvZ3JhbS4gICdtYWxsb2MnCisgICBpcyBu ZWVkZWQsIG90aGVyd2lzZSB3ZSdsbCBzZWUgc3VjaCBlcnJvciBtZXNzYWdl CisgICBldmFsdWF0aW9uIG9mIHRoaXMgZXhwcmVzc2lvbiByZXF1aXJlcyB0 aGUgcHJvZ3JhbSB0byBoYXZlIGEgZnVuY3Rpb24KKyAgICJtYWxsb2MiLiAg Ki8KKwordm9pZAorYmFyICh2b2lkKQoreworICB2b2lkICpwID0gbWFsbG9j ICgxNik7CisKKyAgZnJlZSAocCk7Cit9Ci0tLSAvZGV2L251bGwKKysrIGIv dGVzdHN1aXRlL2dkYi5taS9taS1kcHJpbnRmLmV4cApAQCAtMCwwICsxLDE0 NSBAQAorIyAgIENvcHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyMgICBDb250cmlidXRlZCBieSBIdWkgWmh1ICA8 aHVpQGNvZGVzb3VyY2VyeS5jb20+CisKKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK2xv YWRfbGliIG1pLXN1cHBvcnQuZXhwCitzZXQgTUlGTEFHUyAiLWk9bWkiCisK K2dkYl9leGl0CitpZiBbbWlfZ2RiX3N0YXJ0XSB7CisgICAgY29udGludWUK K30KKworc3RhbmRhcmRfdGVzdGZpbGUKKworaWYge1tidWlsZF9leGVjdXRh YmxlICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1Z31d ID09IC0xfSB7CisgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBjb21waWxlICR0 ZXN0ZmlsZSIKKyAgICByZXR1cm4gLTEKK30KKworbWlfZGVsZXRlX2JyZWFr cG9pbnRzCisKK3NldCBicF9sb2NhdGlvbjEgW2dkYl9nZXRfbGluZV9udW1i ZXIgInNldCBicmVha3BvaW50IDEgaGVyZSJdCitzZXQgZHBfbG9jYXRpb24x IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgZHByaW50ZiAxIGhlcmUiXQor CittaV9ydW5fdG9fbWFpbgorCittaV9nZGJfdGVzdCAiMS1kcHJpbnRmLWlu c2VydCIgXAorICAgICIxXFxeZXJyb3IsbXNnPVwiLWRwcmludGYtaW5zZXJ0 OiBNaXNzaW5nIDxsb2NhdGlvbj5cIiIgIm1pIGluc2VydCB3aXRob3V0IGxv Y2F0aW9uIgorCittaV9nZGJfdGVzdCAiMi1kcHJpbnRmLWluc2VydCBmb28i IFwKKyAgICAiMlxcXmVycm9yLG1zZz1cIi1kcHJpbnRmLWluc2VydDogTWlz c2luZyA8Zm9ybWF0PlwiIiAibWkgaW5zZXJ0IGJyZWFrcG9pbnQgd2l0aG91 dCBmb3JtYXQgc3RyaW5nIgorCittaV9nZGJfdGVzdCAiMy1kcHJpbnRmLWlu c2VydCAyOSIgXAorICAgICIzXFxeZXJyb3IsbXNnPVwiLWRwcmludGYtaW5z ZXJ0OiBNaXNzaW5nIDxmb3JtYXQ+XCIiICJtaSBpbnNlcnQgc2Vjb25kIGJy ZWFrcG9pbnQgd2l0aG91dCBmb3JtYXQgc3RyaW5nIgorCittaV9nZGJfdGVz dCAiLWJyZWFrLWluc2VydCBtYWluIiAiLioiICJtaSBpbnNlcnQgYnJlYWtw b2ludCBtYWluIgorbWlfZGVsZXRlX2JyZWFrcG9pbnRzCisKK21pX2dkYl90 ZXN0ICI0LWRwcmludGYtaW5zZXJ0IGZvbyBcIkF0IGZvbyBlbnRyeVxcblwi IiBcCisgICAgIjRcXF5kb25lLGJrcHQ9XHtudW1iZXI9XCIuKlwiLHR5cGU9 XCJkcHJpbnRmXCIuKmZ1bmM9XCJmb29cIixmaWxlPVwiLiptaS1kcHJpbnRm LmNcIixmdWxsbmFtZT1cIi4qbWktZHByaW50Zi5jXCIsbGluZT1cIi4qXCIu KiIgIm1pIGluc2VydCBkcHJpbnRmIGZvbyIKKworbWlfZ2RiX3Rlc3QgIjUt ZHByaW50Zi1pbnNlcnQgJGRwX2xvY2F0aW9uMSBcImFyZz0lZCwgZz0lZFxc blwiIGFyZyBnIiBcCisgICAgIjVcXF5kb25lLGJrcHQ9XHtudW1iZXI9XCIu KlwiLHR5cGU9XCJkcHJpbnRmXCIuKmZ1bmM9XCJmb29cIixmaWxlPVwiLipt aS1kcHJpbnRmLmNcIixmdWxsbmFtZT1cIi4qbWktZHByaW50Zi5jXCIsbGlu ZT1cIiRkcF9sb2NhdGlvbjFcIi4qIiBcCisgICAgIm1pIGluc2VydCBkcHJp bnRmIGRwX2xvY2F0aW9uMSIKKworbWlfZ2RiX3Rlc3QgIjYtYnJlYWstaW5m byIgXAorICAgICI2XFxeZG9uZSxCcmVha3BvaW50VGFibGU9XHtucl9yb3dz PVwiLlwiLG5yX2NvbHM9XCIuXCIsaGRyPVxcXFtce3dpZHRoPVwiLipcIixh bGlnbm1lbnQ9XCIuKlwiLGNvbF9uYW1lPVwibnVtYmVyXCIsY29saGRyPVwi TnVtXCJcfSxce3dpZHRoPVwiLipcIixhbGlnbm1lbnQ9XCIuKlwiLGNvbF9u YW1lPVwidHlwZVwiLGNvbGhkcj1cIlR5cGVcIlx9LFx7d2lkdGg9XCIuKlwi LGFsaWdubWVudD1cIi4qXCIsY29sX25hbWU9XCJkaXNwXCIsY29saGRyPVwi RGlzcFwiXH0sXHt3aWR0aD1cIi4qXCIsYWxpZ25tZW50PVwiLipcIixjb2xf bmFtZT1cImVuYWJsZWRcIixjb2xoZHI9XCJFbmJcIlx9LFx7d2lkdGg9XCIu KlwiLGFsaWdubWVudD1cIi4qXCIsY29sX25hbWU9XCJhZGRyXCIsY29saGRy PVwiQWRkcmVzc1wiXH0sXHt3aWR0aD1cIi4qXCIsYWxpZ25tZW50PVwiLipc Iixjb2xfbmFtZT1cIndoYXRcIixjb2xoZHI9XCJXaGF0XCJcfVxcXF0sYm9k eT1cXFxbYmtwdD1ce251bWJlcj1cIjNcIix0eXBlPVwiZHByaW50ZlwiLipm dW5jPVwiZm9vXCIsZmlsZT1cIi4qbWktZHByaW50Zi5jXCIsZnVsbG5hbWU9 XCIuKm1pLWRwcmludGYuY1wiLGxpbmU9XCIuKlwiLiosYmtwdD1ce251bWJl cj1cIi4qXCIsdHlwZT1cImRwcmludGZcIi4qZnVuYz1cImZvb1wiLGZpbGU9 XCIuKm1pLWRwcmludGYuY1wiLGZ1bGxuYW1lPVwiLiptaS1kcHJpbnRmLmNc IixsaW5lPVwiJGRwX2xvY2F0aW9uMVwiLioiIFwKKyAgICAibWkgaW5mbyBk cHJpbnRmIgorCittaV9nZGJfdGVzdCAiLWJyZWFrLWluc2VydCAkYnBfbG9j YXRpb24xIiAiLioiICJtaSBpbnNlcnQgYnJlYWtwb2ludCBicF9sb2NhdGlv bjEiCisKK3Byb2MgbWlfY29udGludWVfZHByaW50ZiB7YXJnc30geworICAg IHdpdGhfdGVzdF9wcmVmaXggJGFyZ3MgeworCWdsb2JhbCBtaV9nZGJfcHJv bXB0CisKKwltaV9ydW5fY21kCisJc2V0IG1zZyAibWkgMXN0IGRwcmludGYi CisJZ2RiX2V4cGVjdCB7CisgICAgICAgICAgICAtcmUgIi4qQXQgZm9vIGVu dHJ5Liphcmc9MTIzNCwgZz0xMjM0LioiIHsKKwkJcGFzcyAkbXNnCisJICAg IH0KKwkgICAgLXJlICIuKiRtaV9nZGJfcHJvbXB0JCIgeworCQlmYWlsICRt c2cKKwkgICAgfQorICAgICAgICAgICAgdGltZW91dCB7CisJCWZhaWwgJG1z ZworICAgICAgICAgICAgfQorCX0KKwltaV9leHBlY3Rfc3RvcCAiLioiICIu KiIgIi4qIiAiLioiICIuKiIgIiIgIiRtc2cgc3RvcCIKKworCXNldCBtc2cg Im1pIDJuZCBkcHJpbnRmIgorCW1pX3NlbmRfcmVzdW1pbmdfY29tbWFuZCAi ZXhlYy1jb250aW51ZSIgIiRtc2cgY29udGludWUiCisJZ2RiX2V4cGVjdCB7 CisgICAgICAgICAgICAtcmUgIi4qQXQgZm9vIGVudHJ5Liphcmc9MTIzNSwg Zz0yMjIyLioiIHsKKwkJcGFzcyAkbXNnCisJICAgIH0KKwkgICAgLXJlICIu KiRtaV9nZGJfcHJvbXB0JCIgeworCQlmYWlsICRtc2cKKwkgICAgfQorICAg ICAgICAgICAgdGltZW91dCB7CisJCWZhaWwgJG1zZworICAgICAgICAgICAg fQorCX0KKyAgICB9Cit9CisKK21pX2NvbnRpbnVlX2RwcmludGYgImdkYiIK KworIyBUaGUgImNhbGwiIHN0eWxlIGRlcGVuZHMgb24gaGF2aW5nIEkvTyBm dW5jdGlvbnMgYXZhaWxhYmxlLCBzbyB0ZXN0LgorCitpZiAhW3RhcmdldF9p bmZvIGV4aXN0cyBnZGIsbm9pbmZlcmlvcmlvXSB7CisKKyAgICAjIE5vdyBz d2l0Y2ggc3R5bGVzIGFuZCByZXJ1bjsgaW4gdGhlIGFic2VuY2Ugb2YgcmVk aXJlY3Rpb24gdGhlCisgICAgIyBvdXRwdXQgc2hvdWxkIGJlIHRoZSBzYW1l LgorCisgICAgbWlfZ2RiX3Rlc3QgInNldCBkcHJpbnRmLXN0eWxlIGNhbGwi ICIuKiIgIm1pIHNldCBkcHJpbnRmIHN0eWxlIHRvIGNhbGwiCisgICAgbWlf Y29udGludWVfZHByaW50ZiAiY2FsbCIKKworICAgIG1pX2dkYl90ZXN0ICJz ZXQgZHByaW50Zi1mdW5jdGlvbiBmcHJpbnRmIiAiLioiICJtaSBzZXQgZHBy aW50Zi1jaGFubmVsIHN0ZGVyciIKKyAgICBtaV9nZGJfdGVzdCAic2V0IGRw cmludGYtY2hhbm5lbCBzdGRlcnIiICIuKiIgIm1pIHNldCBkcHJpbnRmIGNo YW5uZWwiCisgICAgbWlfY29udGludWVfZHByaW50ZiAiZnByaW50ZiIKK30K Kworc2V0IHRhcmdldF9jYW5fZHByaW50ZiAwCitzZXQgbXNnICJzZXQgZHBy aW50ZiBzdHlsZSB0byBhZ2VudCIKK3NlbmRfZ2RiICJzZXQgZHByaW50Zi1z dHlsZSBhZ2VudFxuIgorZ2RiX2V4cGVjdCB7CisgICAgLXJlICJ3YXJuaW5n OiBUYXJnZXQgY2Fubm90IHJ1biBkcHJpbnRmIGNvbW1hbmRzLCBmYWxsaW5n IGJhY2sgdG8gR0RCIHByaW50Zi4qJG1pX2dkYl9wcm9tcHQkIiB7CisJdW5z dXBwb3J0ZWQgIiRtc2ciCisgICAgfQorICAgIC1yZSAiLipkb25lLiokbWlf Z2RiX3Byb21wdCQiIHsKKwlzZXQgdGFyZ2V0X2Nhbl9kcHJpbnRmIDEKKwlw YXNzICIkbXNnIgorICAgIH0KKyAgICAtcmUgIi4qJG1pX2dkYl9wcm9tcHQk IiB7CisJZmFpbCAiJG1zZyIKKyAgICB9CisgICAgdGltZW91dCB7CisJZmFp bCAiJG1zZyIKKyAgICB9Cit9CisKK2lmICR0YXJnZXRfY2FuX2RwcmludGYg eworICAgIG1pX3J1bl9jbWQKKworICAgIG1pX2dkYl90ZXN0ICJjb250aW51 ZSIgIi4qYnJlYWtwb2ludC1oaXQuKmZ1bmM9XCJmb29cIi4qIiAibWkgMXN0 IGRwcmludGYsIGFnZW50IgorCisgICAgbWlfZ2RiX3Rlc3QgImNvbnRpbnVl IiAiLipicmVha3BvaW50LWhpdC4qZnVuYz1cImZvb1wiLioiICJtaSAybmQg ZHByaW50ZiwgYWdlbnQiCisKKyAgICBtaV9nZGJfdGVzdCAiNi1icmVhay1p bmZvIiAiLiptb2RpZmllZC4qIiAibWkgaW5mbyBkcHJpbnRmIHNlY29uZCB0 aW1lIgorfQorCittaV9nZGJfdGVzdCAic2V0IGRwcmludGYtc3R5bGUgZm9v YmFyIiAiLiplcnJvci4qIiAibWkgc2V0IGRwcmludGYgc3R5bGUgdG8gYW4g dW5yZWNvZ25pemVkIHR5cGUiCg== --047d7b33d904ea71b204dbc9d42d--