From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id p+4XDS79pGUu7gAAqHPOHw:P1 (envelope-from ) for ; Mon, 15 Jan 2024 10:38:54 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id p+4XDS79pGUu7gAAqHPOHw (envelope-from ) for ; Mon, 15 Jan 2024 10:38:54 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b="U/Z3x3HD"; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1705311534; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=Fyypn1jVDbyo8NszsDZuX2+oo2s4c8nNCGIIm0bRoks=; b=RwvPxYkJDMnoR5li9WRCcxae8xZcJA+tPjbGd7/TUtzX7rDWWXRkPKvixM1gY94TM2NAH1 B63bxBzbsipJm1hQhHtLbq7z96EqaT53uQ6tIlO+Ax1hujl3X+Gbgk8DvxkvkwTDIuW3Ut 8N5wcOh+yYpgG8J6bXqY8zsT8vr0UnJHYe+tgnfV4w22B4Uc46CdtFEQayoP4Rlgi3tGLB +ZKM6WzZPcaE2Snk2C+2CY0X8YNaUiOkSy1W+H1xTjgPHTadQxGlpKOA9aUNREyR9sixhR KlYNsveSjpLRZDbn/hsrXG5+y0xGG3oeuksC4hifGS577Yn9gu6Wd7+HWQ4Ubw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1705311534; a=rsa-sha256; cv=none; b=jnkOJtANd2PIKLW9PzMqTutUCAPDW1Fq6B/JY3MgDaBS40iUq9KWvj6Ulemn4TqlcEz88u q4jnGfV2B7bG1HsLu7tXrm9Lofu1Lo8jtbKIeWNFb8IvNzsGbKDIS+YFTc5PrsvAeAzyqx PnYccpBp5cACFXL5SsyW/h7fnuknzJzm9AU36yUpgn7UNEomyyB8DgihpcK1/EXcM6Likx I4jhp/seIiHLSTtWVa7Z+tWYSc0DBl31NlOH8GNwp0vEMzBCuzVSnr6eMVTBcm1lx6PlKx HFepl1vzUPnYQp86vttetpVwRlOX5qWBiCZGBa+c/rVuWwHZBDpiqBLe+SPZVw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b="U/Z3x3HD"; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9D65A2725B for ; Mon, 15 Jan 2024 10:38:53 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rPJQ0-00082U-2E; Mon, 15 Jan 2024 04:38:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rPJPm-0007gC-Sf for emacs-orgmode@gnu.org; Mon, 15 Jan 2024 04:37:57 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rPJPk-0008C7-2C for emacs-orgmode@gnu.org; Mon, 15 Jan 2024 04:37:54 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 3268D240029 for ; Mon, 15 Jan 2024 10:37:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1705311469; bh=OQp02RP8sFe5NL66We/OPVqDrdJaAAWRecliSHvqyE4=; h=MIME-Version:Date:From:To:Cc:Subject:Message-ID:From; b=U/Z3x3HDkiYqKuZgZ38lvQC9zb1n8BbiLlWgDGNJlM/zFQVGNs208QXyIu5vHqrP4 Q/1P850TcxgoJapdW8FuUvZLLxH5ifkNJXjVPx0Sz2v52pP1B3oJ5rpSbM7hmYCeZr wuk1fK4YSK8AX9AzOcNwas7jxZUn9xxBMU7HQbsdmoWoB0GWErXoqqpbWn8H4NbjHr cF0VFNNL1IuqBjJ3rCwDYwaZjgU/abIUw+u/b6B4R70m5XrWmy1EUDvvvt5KkwHlin 5Yo2jR7Rx9hy20bpFj92qtwC0mZYkrd1RphZev3cWcaMyOIqySmd+Ma5A+3sobZj8r SEh11Y00oTGxw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TD6WJ2knlz9rxM; Mon, 15 Jan 2024 10:37:48 +0100 (CET) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_f59255118ec20db885c650f4c9c89ef5" Date: Mon, 15 Jan 2024 09:37:48 +0000 From: gerard.vermeulen@posteo.net To: Ihor Radchenko Cc: Emacs orgmode , emacs-orgmode-bounces+gerard.vermeulen=posteo.net@gnu.org Subject: Re: [PATCH] org-babel-demarcate-block: split using element API In-Reply-To: <2c82fa1399ddaa52ebe5bb21e241fb5f@posteo.net> References: <7e41f9b6e9026a404e256f33371e974c@posteo.net> <87zfxq78ff.fsf@localhost> <87zfxo3taa.fsf@localhost> <87v88a78qd.fsf@localhost> <7f23ea966f0f0aad3fad29b0b96864f3@posteo.net> <87y1d55fc6.fsf@localhost> <37fdcc4bfcf734c2e5ec439d40b4f7d8@posteo.net> <878r50yqmo.fsf@localhost> <442006329cfba666710c989aece5191a@posteo.net> <261356c53e857e0bc4b04f884366edfa@posteo.net> <87bk9uy31w.fsf@localhost> <680e4a4fccf4f3c5c8f51d8215257eff@posteo.net> <87a5p9uute.fsf@localhost> <87wmscrty4.fsf@localhost> <2c82fa1399ddaa52ebe5bb21e241fb5f@posteo.net> Message-ID: Received-SPF: pass client-ip=185.67.36.65; envelope-from=gerard.vermeulen@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx10.migadu.com X-Migadu-Spam-Score: -8.39 X-Spam-Score: -8.39 X-Migadu-Queue-Id: 9D65A2725B X-TUID: LIVq8g42UfBD --=_f59255118ec20db885c650f4c9c89ef5 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 14.01.2024 20:18, gerard.vermeulen@posteo.net wrote: > On 14.01.2024 13:16, Ihor Radchenko wrote: >> gerard.vermeulen@posteo.net writes: > [...] >> I tried make test and the tests are still failing with this new patch: >> >> 1 unexpected results: >> FAILED test-ob/demarcate-block ((should (string= region-text >> (org-trim (nth 1 info)))) :form (string= "mark this line as region" >> "") :value nil :explanation (arrays-of-different-length 24 0 "mark >> this line as region" "" first-mismatch-at 0)) > > This is a tough lesson: the tests pass always on my system. > > I think the failure you see is related to a problem marking a region > in my test code (wish: support in `org-test-with-temp-text' for > "" besides "", but maybe that depends on ERT), else > the problem would have shown up while testing the patch interactively. > > I think that I have improved my region marking code by using "" > in the temp-text as a start. Then, I only have to find where to set > mark, > and eventually exchange point and mark. > > The test code now checks (mark) in the 3 places where a region is > marked. > This looks superfluous if the code is really robust, but at least it > checks > whether the region marking is (or was) the problem. > To converge faster, I have split the test into 6 tests: test-ob/demarcate-block-split-duplication test-ob/demarcate-block-split-prefix-point test-ob/demarcate-block-split-prefix-region test-ob/demarcate-block-split-user-errors test-ob/demarcate-block-wrap-point test-ob/demarcate-block-wrap-region The test failure on your system was due to the sub-test that is now test-ob/demarcate-block-wrap-region Regards -- Gerard --=_f59255118ec20db885c650f4c9c89ef5 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name=0001-org-babel-demarcate-block-split-using-element-API.patch Content-Disposition: attachment; filename=0001-org-babel-demarcate-block-split-using-element-API.patch; size=19672 RnJvbSBmYTE2MWIzNzkzYTIxMDk2MWFjZWI1ZjdjN2QwZGRjOGVmYjBhYTUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJhcmQgVmVybWV1bGVuIDxnZXJhcmQudmVybWV1bGVuQHBv c3Rlby5uZXQ+CkRhdGU6IFRodSwgMTEgSmFuIDIwMjQgMjA6MjA6MDEgKzAxMDAKU3ViamVjdDog W1BBVENIXSBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrOiBzcGxpdCB1c2luZyBlbGVtZW50IEFQ SQoKKiBsaXNwL29iLWJhYmVsLmVsIChvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrKTogTW9kaWZ5 IGEgY29weQpvZiAob3JnLWVsZW1lbnQtYXQtcG9pbnQpIHRvIHJlcGxhY2UgdGhlIG9sZCBzb3Vy Y2UgYmxvY2sgd2l0aCAyIG9yIDMKbmV3IG1vZGlmaWVkIGNvcGllcyBieSBtZWFucyBvZiBgb3Jn LWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEnLiAgVGhlIDFzdApzb3VyY2UgYmxvY2sgY29udGFpbnMg dGhlIHRleHQgZnJvbSB0aGUgYm9keSBvZiB0aGUgb2xkIGJsb2NrIGJlZm9yZQpwb2ludCBvciBy ZWdpb24sIHRoZSAybmQgYmxvY2sgY29udGFpbnMgdGhlIGJvZHkgdGV4dCBhZnRlciBwb2ludCBv cgpib2R5IHRleHQgd2l0aGluIHJlZ2lvbiwgYW5kIGluIGNhc2Ugb2YgcmVnaW9uLCB0aGUgM3Jk IGJsb2NrIGNvbnRhaW5zCnRoZSB0ZXh0IGFmdGVyIHJlZ2lvbi4gIFRoZSBjYXB0aW9uIGFuZCB0 aGUgbmFtZSBhcmUgZGVsZXRlZCBmcm9tIHRoZQoxIG9yIDIgYmxvY2tzIGJlbG93IHRoZSB1cHBl ciBzb3VyY2UgYmxvY2suICBJbmRlbnQgYWxsIGJsb2NrcwppbW1lZGlhdGVseSBhZnRlciBpbnNl cnRpb24gKHBpdGZhbGwsIHNlZSBsaW5rKS4gIFVzZSA6cG9zdC1ibGFuayB0bwpjb250cm9sIHdo aXRlIGxpbmVzIGJldHdlZW4gaW5zZXJ0ZWQgYmxvY2tzLiAgTGVhdmUgcG9pbnQgYXQgdGhlIGxh c3QKaW5zZXJ0ZWQgYmxvY2suICBUYWtlIGNhcmUgdG8gcHJlc2VydmUgKGN1cnJlbnQtY29sdW1u KSBvZiB0ZXh0CmFmdGVyIHBvaW50IChhbmQgbWFyaykgaW4gdGhlIDJuZCAoYW5kIDNyZCkgYmxv Y2suICBUcnlpbmcgdG8gc3BsaXQKd2hlbiBwb2ludCBvciByZWdpb24gaXMgbm90IHdpdGhpbiB0 aGUgYm9keSBvZiB0aGUgb2xkIHNvdXJjZSBibG9jawpyYWlzZXMgYW4gdXNlci1lcnJvci4KKiBs aXNwL29iLWJhYmVsIChvcmctZ2V0LXNyYy1ibG9jay1pbmZvKTogYWRkIHRoZSAid2l0aGluIGJs YW5rIGxpbmVzCmFmdGVyIGEgc291cmNlIGJsb2NrIiBjb25kaXRpb24gdG8gdGhlIGRvYy1zdHJp bmcgdG8gbWF0Y2ggaXQgd2l0aCB0aGUKZG9jLXN0cmluZyBvZiBhbmQgYSBjb21tZW50IGluIGBv cmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrJy4KKiB0ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbCAodGVz dC1vYi9kZW1hcmNhdGUtYmxvY2stc3BsaXQtZHVwbGljYXRpb24pCih0ZXN0LW9iL2RlbWFyY2F0 ZS1ibG9jay1zcGxpdC1wcmVmaXgtcG9pbnQpCih0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay1zcGxp dC1wcmVmaXgtcmVnaW9uKQoodGVzdC1vYi9kZW1hcmNhdGUtYmxvY2stc3BsaXQtdXNlci1lcnJv cnMpCih0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay13cmFwLXBvaW50KQoodGVzdC1vYi9kZW1hcmNh dGUtYmxvY2std3JhcC1yZWdpb24pOiBOZXcgdGVzdHMgdG8gY2hlY2sgdGVzdCBjYXNlcwp0aGF0 IGJyb2tlIGVhcmxpZXIgdmVyc2lvbnMgb2YgdGhpcyBwYXRjaC4KCkxpbms6IGh0dHBzOi8vbGlz dC5vcmdtb2RlLm9yZy84N3BseTZueXVlLmZzZkBsb2NhbGhvc3QvCi0tLQogbGlzcC9vYi1jb3Jl LmVsICAgICAgICAgfCAgOTQgKysrKysrKysrKystLS0tLQogdGVzdGluZy9saXNwL3Rlc3Qtb2Iu ZWwgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxl cyBjaGFuZ2VkLCAzMDQgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9vYi1jb3JlLmVsIGIvbGlzcC9vYi1jb3JlLmVsCmluZGV4IDFkZTNhZjZhZC4uZTIw MGY4MmMwIDEwMDY0NAotLS0gYS9saXNwL29iLWNvcmUuZWwKKysrIGIvbGlzcC9vYi1jb3JlLmVs CkBAIC03MywxMCArNzMsMTIgQEAKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbGVtZW50LXBhcmVu dCAib3JnLWVsZW1lbnQtYXN0IiAobm9kZSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZWxlbWVu dC10eXBlICJvcmctZWxlbWVudC1hc3QiIChub2RlICZvcHRpb25hbCBhbm9ueW1vdXMpKQogKGRl Y2xhcmUtZnVuY3Rpb24gb3JnLWVsZW1lbnQtdHlwZS1wICJvcmctZWxlbWVudC1hc3QiIChub2Rl ICZvcHRpb25hbCB0eXBlcykpCisoZGVjbGFyZS1mdW5jdGlvbiBvcmctZWxlbWVudC1pbnRlcnBy ZXQtZGF0YSAib3JnLWVsZW1lbnQiIChkYXRhKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbnRy eS1nZXQgIm9yZyIgKHBvbSBwcm9wZXJ0eSAmb3B0aW9uYWwgaW5oZXJpdCBsaXRlcmFsLW5pbCkp CiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZXNjYXBlLWNvZGUtaW4tcmVnaW9uICJvcmctc3JjIiAo YmVnIGVuZCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZm9yd2FyZC1oZWFkaW5nLXNhbWUtbGV2 ZWwgIm9yZyIgKGFyZyAmb3B0aW9uYWwgaW52aXNpYmxlLW9rKSkKIChkZWNsYXJlLWZ1bmN0aW9u IG9yZy1pbi1jb21tZW50ZWQtaGVhZGluZy1wICJvcmciICgmb3B0aW9uYWwgbm8taW5oZXJpdGFu Y2UpKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWluZGVudC1ibG9jayAib3JnIiAoKSkKIChkZWNs YXJlLWZ1bmN0aW9uIG9yZy1pbmRlbnQtbGluZSAib3JnIiAoKSkKIChkZWNsYXJlLWZ1bmN0aW9u IG9yZy1saXN0LWdldC1saXN0LWVuZCAib3JnLWxpc3QiIChpdGVtIHN0cnVjdCBwcmV2cykpCiAo ZGVjbGFyZS1mdW5jdGlvbiBvcmctbGlzdC1wcmV2cy1hbGlzdCAib3JnLWxpc3QiIChzdHJ1Y3Qp KQpAQCAtNzAwLDggKzcwMiw5IEBAIEJ5IGRlZmF1bHQsIGNvbnNpZGVyIHRoZSBibG9jayBhdCBw b2ludC4gIEhvd2V2ZXIsIHdoZW4gb3B0aW9uYWwKIGFyZ3VtZW50IERBVFVNIGlzIHByb3ZpZGVk LCBleHRyYWN0IGluZm9ybWF0aW9uIGZyb20gdGhhdCBwYXJzZWQKIG9iamVjdCBpbnN0ZWFkLgog Ci1SZXR1cm4gbmlsIGlmIHBvaW50IGlzIG5vdCBvbiBhIHNvdXJjZSBibG9jay4gIE90aGVyd2lz ZSwgcmV0dXJuCi1hIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhdHRlcm46CitSZXR1cm4gbmls IGlmIHBvaW50IGlzIG5vdCBvbiBhIHNvdXJjZSBibG9jayAoYmxhbmsgbGluZXMgYWZ0ZXIgYQor c291cmNlIGJsb2NrIGFyZSBjb25zaWRlcmVkIGEgcGFydCBvZiB0aGF0IHNvdXJjZSBibG9jayku CitPdGhlcndpc2UsIHJldHVybiBhIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAK ICAgKGxhbmd1YWdlIGJvZHkgYXJndW1lbnRzIHN3aXRjaGVzIG5hbWUgc3RhcnQgY29kZXJlZiki CiAgIChsZXQqICgoZGF0dW0gKG9yIGRhdHVtIChvcmctZWxlbWVudC1jb250ZXh0KSkpCkBAIC0y MDUxLDcgKzIwNTQsNyBAQCBXaXRoIG9wdGlvbmFsIHByZWZpeCBhcmd1bWVudCBBUkcsIGp1bXAg YmFja3dhcmQgQVJHIG1hbnkgc291cmNlIGJsb2Nrcy4iCiAgICAgICAoZ290by1jaGFyIChtYXRj aC1iZWdpbm5pbmcgNSkpKSkpCiAKIChkZWZ1biBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrICgm b3B0aW9uYWwgYXJnKQotICAiV3JhcCBvciBzcGxpdCB0aGUgY29kZSBpbiB0aGUgcmVnaW9uIG9y IG9uIHRoZSBwb2ludC4KKyAgIldyYXAgb3Igc3BsaXQgdGhlIGNvZGUgaW4gYW4gYWN0aXZlIHJl Z2lvbiBvciBhdCBwb2ludC4KIAogV2l0aCBwcmVmaXggYXJndW1lbnQgQVJHLCBhbHNvIGNyZWF0 ZSBhIG5ldyBoZWFkaW5nIGF0IHBvaW50LgogCkBAIC0yMDYxLDQxICsyMDY0LDc2IEBAIGlzIGNy ZWF0ZWQuICBJbiBib3RoIGNhc2VzIGlmIHRoZSByZWdpb24gaXMgZGVtYXJjYXRlZCBhbmQgaWYg dGhlCiByZWdpb24gaXMgbm90IGFjdGl2ZSB0aGVuIHRoZSBwb2ludCBpcyBkZW1hcmNhdGVkLgog CiBXaGVuIGNhbGxlZCB3aXRoaW4gYmxhbmsgbGluZXMgYWZ0ZXIgYSBjb2RlIGJsb2NrLCBjcmVh dGUgYSBuZXcgY29kZQotYmxvY2sgb2YgdGhlIHNhbWUgbGFuZ3VhZ2Ugd2l0aCB0aGUgcHJldmlv dXMuIgorYmxvY2sgb2YgdGhlIHNhbWUgbGFuZ3VhZ2UgYXMgdGhlIHByZXZpb3VzLiIKICAgKGlu dGVyYWN0aXZlICJQIikKICAgKGxldCogKChpbmZvIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1p bmZvICduby1ldmFsKSkKIAkgKHN0YXJ0IChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJsb2NrLWhl YWQpKQogICAgICAgICAgOzsgYHN0YXJ0JyB3aWxsIGJlIG5pbCB3aGVuIHdpdGhpbiBzcGFjZSBs aW5lcyBhZnRlciBzcmMgYmxvY2suCiAJIChibG9jayAoYW5kIHN0YXJ0IChtYXRjaC1zdHJpbmcg MCkpKQotCSAoaGVhZGVycyAoYW5kIHN0YXJ0IChtYXRjaC1zdHJpbmcgNCkpKQorICAgICAgICAg KGJvZHktYmVnIChhbmQgc3RhcnQgKG1hdGNoLWJlZ2lubmluZyA1KSkpCisgICAgICAgICAoYm9k eS1lbmQgKGFuZCBzdGFydCAobWF0Y2gtZW5kIDUpKSkKIAkgKHN0YXJzIChjb25jYXQgKG1ha2Ut c3RyaW5nIChvciAob3JnLWN1cnJlbnQtbGV2ZWwpIDEpID8qKSAiICIpKQogCSAodXBwZXItY2Fz ZS1wIChhbmQgYmxvY2sKIAkJCSAgICAobGV0IChjYXNlLWZvbGQtc2VhcmNoKQogCQkJICAgICAg KHN0cmluZy1tYXRjaC1wICIjXFwrQkVHSU5fU1JDIiBibG9jaykpKSkpCiAgICAgKGlmIChhbmQg aW5mbyBzdGFydCkgOzsgQXQgc3JjIGJsb2NrLCBidXQgbm90IHdpdGhpbiBibGFuayBsaW5lcyBh ZnRlciBpdC4KLSAgICAgICAgKG1hcGMKLSAgICAgICAgIChsYW1iZGEgKHBsYWNlKQotICAgICAg ICAgICAoc2F2ZS1leGN1cnNpb24KLSAgICAgICAgICAgICAoZ290by1jaGFyIHBsYWNlKQotICAg ICAgICAgICAgIChsZXQgKChsYW5nIChudGggMCBpbmZvKSkKLSAgICAgICAgICAgICAgICAgICAo aW5kZW50IChtYWtlLXN0cmluZyAob3JnLWN1cnJlbnQtdGV4dC1pbmRlbnRhdGlvbikgP1xzKSkp Ci0JICAgICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIl5bWzpzcGFjZTpdXSokIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5p bmctcG9zaXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQotICAgICAgICAgICAgICAgICAoZGVsZXRl LXJlZ2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKQot ICAgICAgICAgICAgICAgKGluc2VydCAoY29uY2F0Ci0JCSAgICAgICAgKGlmIChsb29raW5nLWF0 ICJeIikgIiIgIlxuIikKLQkJICAgICAgICBpbmRlbnQgKGlmIHVwcGVyLWNhc2UtcCAiIytFTkRf U1JDXG4iICIjK2VuZF9zcmNcbiIpCi0JCSAgICAgICAgKGlmIGFyZyBzdGFycyBpbmRlbnQpICJc biIKLQkJICAgICAgICBpbmRlbnQgKGlmIHVwcGVyLWNhc2UtcCAiIytCRUdJTl9TUkMgIiAiIyti ZWdpbl9zcmMgIikKLQkJICAgICAgICBsYW5nCi0JCSAgICAgICAgKGlmICg+IChsZW5ndGggaGVh ZGVycykgMSkKLQkJCSAgICAoY29uY2F0ICIgIiBoZWFkZXJzKSBoZWFkZXJzKQotCQkgICAgICAg IChpZiAobG9va2luZy1hdCAiW1xuXHJdIikKLQkJCSAgICAiIgotCQkJICAoY29uY2F0ICJcbiIg KG1ha2Utc3RyaW5nIChjdXJyZW50LWNvbHVtbikgPyApKSkpKSkpCi0JICAgKG1vdmUtZW5kLW9m LWxpbmUgMikpCi0gICAgICAgICAoc29ydCAoaWYgKG9yZy1yZWdpb24tYWN0aXZlLXApIChsaXN0 IChtYXJrKSAocG9pbnQpKSAobGlzdCAocG9pbnQpKSkgIyc+KSkKKyAgICAgICAgKGxldCogKChj b3B5IChvcmctZWxlbWVudC1jb3B5IChvcmctZWxlbWVudC1hdC1wb2ludCkpKQorICAgICAgICAg ICAgICAgKGJlZm9yZSAob3JnLWVsZW1lbnQtYmVnaW4gY29weSkpCisgICAgICAgICAgICAgICAo YmV5b25kIChvcmctZWxlbWVudC1lbmQgY29weSkpCisgICAgICAgICAgICAgICAocGFydHMKKyAg ICAgICAgICAgICAgICAoaWYgKG9yZy1yZWdpb24tYWN0aXZlLXApCisgICAgICAgICAgICAgICAg ICAgIChsaXN0IGJvZHktYmVnIChyZWdpb24tYmVnaW5uaW5nKSAocmVnaW9uLWVuZCkgYm9keS1l bmQpCisgICAgICAgICAgICAgICAgICAobGlzdCBib2R5LWJlZyAocG9pbnQpIGJvZHktZW5kKSkp CisgICAgICAgICAgICAgICAocGFkcyA7OyBUbyBjYWxjdWxhdGUgbGVmdC1zaWRlIHdoaXRlLXNw YWNlIHBhZGRpbmcuCisgICAgICAgICAgICAgICAgKGlmIChvcmctcmVnaW9uLWFjdGl2ZS1wKQor ICAgICAgICAgICAgICAgICAgICAobGlzdCAocmVnaW9uLWJlZ2lubmluZykgKHJlZ2lvbi1lbmQp KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKHBvaW50KSkpKQorICAgICAgICAgICAgICAgKG4g KC0gKGxlbmd0aCBwYXJ0cykgMikpIDs7IDEgb3IgMiBwYXJ0cyBpbiBgZG9saXN0JyBiZWxvdy4K KyAgICAgICAgICAgICAgIDs7IGBwb3N0LWJsYW5rJyBjYWNoZXMgdGhlIHByb3BlcnR5IGJlZm9y ZSBzZXR0aW5nIGl0IHRvIDAuCisgICAgICAgICAgICAgICAocG9zdC1ibGFuayAob3JnLWVsZW1l bnQtcHJvcGVydHkgOnBvc3QtYmxhbmsgY29weSkpKQorICAgICAgICAgIDs7IFBvaW50IG9yIHJl Z2lvbiBhcmUgd2l0aGluIGJvZHkgd2hlbiBwYXJ0cyBpcyBpbiBpbmNyZWFzaW5nIG9yZGVyLgor ICAgICAgICAgICh1bmxlc3MgKGFwcGx5ICMnPD0gcGFydHMpCisgICAgICAgICAgICAodXNlci1l cnJvciAiU2VsZWN0IHdpdGhpbiB0aGUgc291cmNlIGJsb2NrIGJvZHkgdG8gc3BsaXQgaXQiKSkK KyAgICAgICAgICAoc2V0cSBwYXJ0cyAobWFwY2FyIChsYW1iZGEgKHApIChidWZmZXItc3Vic3Ry aW5nIChjYXIgcCkgKGNkciBwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vx LW1hcG4gIydjb25zIHBhcnRzIChjZHIgcGFydHMpKSkpCisgICAgICAgICAgOzsgTWFwIHBvc2l0 aW9ucyB0byBjb2x1bW5zIGZvciB3aGl0ZS1zcGFjZSBwYWRkaW5nLgorICAgICAgICAgIChzZXRx IHBhZHMgKG1hcGNhciAobGFtYmRhIChwKSAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhZHMpKQorICAgICAgICAgIChwdXNoIDAgcGFkcykgOzsg VGhlIDFzdCBwYXJ0IG5ldmVyIHJlcXVpcmVzIHdoaXRlLXNwYWNlIHBhZGRpbmcuCisgICAgICAg ICAgKHNldHEgcGFydHMgKG1hcGNhciAobGFtYmRhIChwKSAoc3RyaW5nLWpvaW4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAobWFrZS1zdHJpbmcgKGNh ciBwKSA/XHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNkciBwKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS1tYXBuICMn Y29ucyBwYWRzIHBhcnRzKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVmb3JlIGJleW9u ZCkKKyAgICAgICAgICA7OyBTZXQgYDpwb3N0LWJsYW5rJyB0byAwLiAgV2UgdGFrZSBjYXJlIG9m IHNwYWNpbmcgYmV0d2VlbiBibG9ja3MuCisgICAgICAgICAgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBjb3B5IDpwb3N0LWJsYW5rIDApCisgICAgICAgICAgKG9yZy1lbGVtZW50LXB1dC1wcm9w ZXJ0eSBjb3B5IDp2YWx1ZSAoY2FyIHBhcnRzKSkKKyAgICAgICAgICAoaW5zZXJ0IChvcmctZWxl bWVudC1pbnRlcnByZXQtZGF0YSBjb3B5KSkKKyAgICAgICAgICA7OyBgb3JnLWluZGVudC1ibG9j aycgbWF5IHNlZSBhbm90aGVyIGBvcmctZWxlbWVudCcgKGUuZy4gcGFyYWdyYXBoKQorICAgICAg ICAgIDs7IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBibG9jay4gIEVuc3VyZSB0byBpbmRlbnQgdGhl IGluc2VydGVkIGJsb2NrCisgICAgICAgICAgOzsgYW5kIG1vdmUgcG9pbnQgdG8gaXRzIGVuZC4K KyAgICAgICAgICAob3JnLWJhYmVsLXByZXZpb3VzLXNyYy1ibG9jayAxKQorICAgICAgICAgIChv cmctaW5kZW50LWJsb2NrKQorICAgICAgICAgIChnb3RvLWNoYXIgKG9yZy1lbGVtZW50LWVuZCAo b3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkKKyAgICAgICAgICAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGNvcHkgOmNhcHRpb24gbmlsKQorICAgICAgICAgIChvcmctZWxlbWVudC1wdXQtcHJvcGVy dHkgY29weSA6bmFtZSBuaWwpCisgICAgICAgICAgOzsgSW5zZXJ0IHRoZSAybmQgYmxvY2ssIGFu ZCB0aGUgM3JkIGJsb2NrIHdoZW4gcmVnaW9uIGlzIGFjdGl2ZS4KKyAgICAgICAgICAoZG9saXN0 IChwYXJ0IChjZHIgcGFydHMpKQorICAgICAgICAgICAgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0 eSBjb3B5IDp2YWx1ZSBwYXJ0KQorICAgICAgICAgICAgKGluc2VydCAoaWYgYXJnIChjb25jYXQg c3RhcnMgIlxuIikgIlxuIikpCisgICAgICAgICAgICAoY2wtZGVjZiBuKQorICAgICAgICAgICAg KHdoZW4gKD0gbiAwKQorICAgICAgICAgICAgICA7OyBVc2UgYHBvc3QtYmxhbmsnIHRvIHJlc2V0 IHRoZSBwcm9wZXJ0eSBvZiB0aGUgbGFzdCBibG9jay4KKyAgICAgICAgICAgICAgKG9yZy1lbGVt ZW50LXB1dC1wcm9wZXJ0eSBjb3B5IDpwb3N0LWJsYW5rIHBvc3QtYmxhbmspKQorICAgICAgICAg ICAgKGluc2VydCAob3JnLWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEgY29weSkpCisgICAgICAgICAg ICA7OyBFbnN1cmUgdG8gaW5kZW50IHRoZSBpbnNlcnRlZCBibG9jayBhbmQgbW92ZSBwb2ludCB0 byBpdHMgZW5kLgorICAgICAgICAgICAgKG9yZy1iYWJlbC1wcmV2aW91cy1zcmMtYmxvY2sgMSkK KyAgICAgICAgICAgIChvcmctaW5kZW50LWJsb2NrKQorICAgICAgICAgICAgKGdvdG8tY2hhciAo b3JnLWVsZW1lbnQtZW5kIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSkKKyAgICAgICAgICA7OyBM ZWF2ZSBwb2ludCBhdCB0aGUgbGFzdCBpbnNlcnRlZCBibG9jay4KKyAgICAgICAgICAoZ290by1j aGFyIChvcmctYmFiZWwtcHJldmlvdXMtc3JjLWJsb2NrIDEpKSkKICAgICAgIChsZXQgKChzdGFy dCAocG9pbnQpKQogCSAgICAobGFuZyAob3IgKGNhciBpbmZvKSA7IFJldXNlIGxhbmd1YWdlIGZy b20gcHJldmlvdXMgYmxvY2suCiAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVh ZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwgYi90ZXN0aW5nL2xpc3AvdGVz dC1vYi5lbAppbmRleCA0MmM3N2NhNTYuLjA3NjZmZDJlMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9s aXNwL3Rlc3Qtb2IuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwKQEAgLTI1NDUsNiAr MjU0NSwyNDQgQEAgYWJjCiAJCShsYW1iZGEgKCZyZXN0IF8pIChlcnJvciAiTm8gd2FybmluZ3Mg c2hvdWxkIG9jY3VyIikpKSkKICAgICAgICAob3JnLWJhYmVsLWltcG9ydC1lbGlzcC1mcm9tLWZp bGUgKGJ1ZmZlci1maWxlLW5hbWUpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IHRlc3Qtb2IvZGVtYXJj YXRlLWJsb2NrLXNwbGl0LWR1cGxpY2F0aWdvbiAoKQorICAiVGVzdCBkdXBsaWNhdGlvbiBvZiBs YW5ndWFnZSwgYm9keSwgc3dpdGNoZXMsIGFuZCBoZWFkZXJzIGluIHNwbGl0dGluZy4iCisgIChs ZXQgKChjYXB0aW9uICIjK2NhcHRpb246IGNhcHRpb24uIikKKyAgICAgICAgKHJlZ2V4cCAocngg IiMrY2FwdGlvbjogY2FwdGlvbi4iKSkKKyAgICAgICAgKG9yZy1hZGFwdC1pbmRlbnRhdGlvbiBu aWwpKQorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAoZm9ybWF0ICIKKyVzCisjK2hlYWRl cjogOnZhciBlZGdlPVwiYWxzbyBkdXBsaWNhdGVkXCIKKyMraGVhZGVyOiA6d3JhcCBcInNyYyBh bnktc3BhbmlzaCAtblwiCisjK25hbWU6IE5vYm9keQorIytiZWdpbl9zcmMgYW55LWVuZ2xpc2gg LWkgLW4gOnZhciBoZXJlPVwiZHVwbGljYXRlZFwiIDp3cmFwIFwic3JjIGFueS1lbmdsaXNoIC1u XCIKKworYWJvdmUgc3BsaXQKKzxwb2ludD4KK2JlbG93IHNwbGl0CisKKyMrZW5kX3NyYworZG8g bm90IG9yZy1pbmRlbnQtYmxvY2sgdGV4dCBoZXJlCisiIGNhcHRpb24pCisgICAgICAobGV0ICgo d3JhcC12YWwgInNyYyBhbnktc3BhbmlzaCAtbiIpIGFib3ZlIGJlbG93IGF2YXJzIGJ2YXJzKQor ICAgICAgICAob3JnLWJhYmVsLWRlbWFyY2F0ZS1ibG9jaykKKyAgICAgICAgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKKyAgICAgICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jaykgOzsgdXBwZXIg c291cmNlIGJsb2NrCisgICAgICAgIChzZXRxIGFib3ZlIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9j ay1pbmZvKSkKKyAgICAgICAgKHNldHEgYXZhcnMgKG9yZy1iYWJlbC0tZ2V0LXZhcnMgKG50aCAy IGFib3ZlKSkpCisgICAgICAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spIDs7IGxvd2VyIHNv dXJjZSBibG9jaworICAgICAgICAoc2V0cSBiZWxvdyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2st aW5mbykpCisgICAgICAgIChzZXRxIGJ2YXJzIChvcmctYmFiZWwtLWdldC12YXJzIChudGggMiBi ZWxvdykpKQorICAgICAgICA7OyBkdXBsaWNhdGVkIG11bHRpLWxpbmUgaGVhZGVyIGFyZ3VtZW50 czoKKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYWxzbyBkdXBsaWNhdGVkIiAoY2RyIChhc3Nx ICdlZGdlIGF2YXJzKSkpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNvIGR1cGxpY2F0 ZWQiIChjZHIgKGFzc3EgJ2VkZ2UgYnZhcnMpKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0g d3JhcC12YWwgKGNkciAoYXNzcSA6d3JhcCAobnRoIDIgYWJvdmUpKSkpKQorICAgICAgICAoc2hv dWxkIChzdHJpbmc9IHdyYXAtdmFsIChjZHIgKGFzc3EgOndyYXAgKG50aCAyIGJlbG93KSkpKSkK KyAgICAgICAgOzsgZHVwbGljYXRlZCBsYW5ndWFnZSwgb3RoZXIgaGVhZGVyIGFyZ3VtZW50cywg YW5kIHN3aXRjaGVzOgorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktZW5nbGlzaCIgKG50 aCAwIGFib3ZlKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gImFueS1lbmdsaXNoIiAobnRo IDAgYmVsb3cpKSkKKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYWJvdmUgc3BsaXQiIChvcmct dHJpbSAobnRoIDEgYWJvdmUpKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gImJlbG93IHNw bGl0IiAob3JnLXRyaW0gKG50aCAxIGJlbG93KSkpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9 ICJkdXBsaWNhdGVkIiAoY2RyIChhc3NxICdoZXJlIGF2YXJzKSkpKQorICAgICAgICAoc2hvdWxk IChzdHJpbmc9ICJkdXBsaWNhdGVkIiAoY2RyIChhc3NxICdoZXJlIGJ2YXJzKSkpKQorICAgICAg ICAoc2hvdWxkIChzdHJpbmc9ICItaSAtbiIgKG50aCAzIGFib3ZlKSkpCisgICAgICAgIChzaG91 bGQgKHN0cmluZz0gIi1pIC1uIiAobnRoIDMgYmVsb3cpKSkKKyAgICAgICAgOzsgbm9uLWR1cGxp Y2F0aW9uIG9mIG5hbWUgYW5kIGNhcHRpb24sIHdoaWNoIGlzIG5vdCBpbiBhYm92ZS9iZWxvdy4K KyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAiTm9ib2R5IiAobnRoIDQgYWJvdmUpKSkKKyAgICAg ICAgKHNob3VsZC1ub3QgKHN0cmluZz0gIiIgKG50aCA0IGJlbG93KSkpCisgICAgICAgIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgIChzaG91bGQgKHJlLXNlYXJjaC1mb3J3YXJkIHJl Z2V4cCkpCisgICAgICAgIChzaG91bGQtbm90IChyZS1zZWFyY2gtZm9yd2FyZCByZWdleHAgbmls ICdub2Vycm9yKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay1z cGxpdC1wcmVmaXgtcG9pbnQgKCkKKyAgIlRlc3QgcHJlZml4IGFyZ3VtZW50IHBvaW50IHNwbGl0 dGluZy4iCisgIChsZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24gdCkKKyAgICAgICAgKG9yZy1l ZGl0LXNyYy1jb250ZW50LWluZGVudGF0aW9uIDIpCisgICAgICAgIChvcmctc3JjLXByZXNlcnZl LWluZGVudGF0aW9uIG5pbCkKKyAgICAgICAgKG9rLWNvbCAxMSkKKyAgICAgICAgKHN0YXJzICJe XFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqIikpCisgICAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0ICIKKyoqKioqKioqKiogMTAgc3RhcnMgd2l0aCBwb2ludCBiZXR3ZWVuIHR3byBsaW5l cworICAgICAgICAgICAjK2JlZ2luX3NyYyBlbWFjcy1saXNwCisgICAgICAgICAgICAgOzsgdG8g dXBwZXIgYmxvY2sKKyAgICAgICAgICAgICA8cG9pbnQ+CisgICAgICAgICAgICAgOzsgdG8gbG93 ZXIgYmxvY2sKKyAgICAgICAgICAgIytlbmRfc3JjCisiCisgICAgICAob3JnLWJhYmVsLWRlbWFy Y2F0ZS1ibG9jayAnYS1wcmVmaXgtYXJnKQorICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkK KyAgICAgIChkb2xpc3QgKHJlZ2V4cCBgKCxzdGFycworICAgICAgICAgICAgICAgICAgICAgICAg IiNcXCtiZWciICI7OyB0byB1cHBlciBibG9jayIgIiNcXCtlbmQiCisgICAgICAgICAgICAgICAg ICAgICAgICAsc3RhcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICIjXFwrYmVnIiAiOzsgdG8g bG93ZXIgYmxvY2siICIjXFwrZW5kIikpCisgICAgICAgIChzaG91bGQgKHJlLXNlYXJjaC1mb3J3 YXJkIHJlZ2V4cCkpCisgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAg ICAgICAgKGNvbmQgKChzdHJpbmc9IHJlZ2V4cCBzdGFycykKKyAgICAgICAgICAgICAgIChzaG91 bGQgKD0gMCAoY3VycmVudC1jb2x1bW4pKSkpCisgICAgICAgICAgICAgICgoc3RyaW5nLXByZWZp eC1wICI7OyIgcmVnZXhwKQorICAgICAgICAgICAgICAgKHNob3VsZCAoPSAoKyBvay1jb2wgb3Jn LWVkaXQtc3JjLWNvbnRlbnQtaW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg IChjdXJyZW50LWNvbHVtbikpKSkKKyAgICAgICAgICAgICAgKHQgKHNob3VsZCAoPSBvay1jb2wg KGN1cnJlbnQtY29sdW1uKSkpKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iL2RlbWFyY2F0 ZS1ibG9jay1zcGxpdC1wcmVmaXgtcmVnaW9uICgpCisgICJUZXN0IHByZWZpeCBhcmd1bWVudCBy ZWdpb24gc3BsaXR0aW5nLiIKKyAgKGxldCAoKG9yZy1hZGFwdC1pbmRlbnRhdGlvbiB0KQorICAg ICAgICAob3JnLWVkaXQtc3JjLWNvbnRlbnQtaW5kZW50YXRpb24gMikKKyAgICAgICAgKG9yZy1z cmMtcHJlc2VydmUtaW5kZW50YXRpb24gbmlsKQorICAgICAgICAob2stY29sIDExKQorICAgICAg ICAoc3RhcnMgIl5cXCpcXCpcXCpcXCpcXCpcXCpcXCpcXCpcXCpcXCoiKQorICAgICAgICAocGFy dHMgJygidG8gdXBwZXIgYmxvY2siICJtYXJrIHRob3NlIHdvcmRzIGFzIHJlZ2lvbiIgInRvIGxv d2VyIGJsb2NrIikpKQorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAoZm9ybWF0ICIKKyoq KioqKioqKiogMTAgc3RhcnMgd2l0aCByZWdpb24gYmV0d2VlbiB0d28gbGluZXMKKyAgICAgICAg ICAgIytoZWFkZXI6IDp2YXIgYj1cImFsc28gc2VlblwiCisgICAgICAgICAgICMrYmVnaW5fc3Jj IGFueS1sYW5ndWFnZSAtaSAtbiA6dmFyIGE9XCJzZWVuXCIKKyAgICAgICAgICAgICAlcworICAg ICAgICAgICAgIDxwb2ludD4lcworICAgICAgICAgICAgICVzCisgICAgICAgICAgICMrZW5kX3Ny YworIiAobnRoIDAgcGFydHMpIChudGggMSBwYXJ0cykgKG50aCAyIHBhcnRzKSkKKyAgICAgIChs ZXQgKChuIDApIGluZm8gdmFycykKKyAgICAgICAgKHNldC1tYXJrLWNvbW1hbmQgbmlsKQorICAg ICAgICAoc2VhcmNoLWZvcndhcmQgKG50aCAxIHBhcnRzKSkKKyAgICAgICAgKGV4Y2hhbmdlLXBv aW50LWFuZC1tYXJrKQorICAgICAgICA7OyBDaGVjayAobWFyaykuCisgICAgICAgIChzaG91bGQg KHN0cmluZz0gKG50aCAxIHBhcnRzKQorICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXIt c3Vic3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChtYXJrKSAobGVuZ3RoIChu dGggMSBwYXJ0cykpKSAobWFyaykpKSkKKyAgICAgICAgKG9yZy1iYWJlbC1kZW1hcmNhdGUtYmxv Y2sgJ2EtcHJlZml4LWFyZ3VtZW50KQorICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgICAgICAod2hpbGUgKDwgbiAobGVuZ3RoIHBhcnRzKSkKKyAgICAgICAgICAob3JnLWJhYmVs LW5leHQtc3JjLWJsb2NrKQorICAgICAgICAgIChzZXRxIGluZm8gKG9yZy1iYWJlbC1nZXQtc3Jj LWJsb2NrLWluZm8pKQorICAgICAgICAgIChzZXRxIHZhcnMgKG9yZy1iYWJlbC0tZ2V0LXZhcnMg KG50aCAyIGluZm8pKSkKKyAgICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFuZ3VhZ2Ui IChudGggMCBpbmZvKSkpCisgICAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAobnRoIG4gcGFydHMp IChvcmctdHJpbSAobnRoIDEgaW5mbykpKSkKKyAgICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJz ZWVuIiAoY2RyIChhc3NxICdhIHZhcnMpKSkpCisgICAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAi YWxzbyBzZWVuIiAoY2RyIChhc3NxICdiIHZhcnMpKSkpCisgICAgICAgICAgKHNob3VsZCAoc3Ry aW5nPSAiLWkgLW4iIChudGggMyBpbmZvKSkpCisgICAgICAgICAgKGNsLWluY2YgbikpKQorICAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgIChkb2xpc3QgKHJlZ2V4cCBgKCxzdGFy cworICAgICAgICAgICAgICAgICAgICAgICAgIiNcXCtiZWciICwobnRoIDAgcGFydHMpICIjXFwr ZW5kIgorICAgICAgICAgICAgICAgICAgICAgICAgLHN0YXJzCisgICAgICAgICAgICAgICAgICAg ICAgICAiI1xcK2JlZyIgLChudGggMSBwYXJ0cykgIiNcXCtlbmQiCisgICAgICAgICAgICAgICAg ICAgICAgICAsc3RhcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICIjXFwrYmVnIiAsKG50aCAy IHBhcnRzKSAiI1xcK2VuZCIpKQorICAgICAgICAoc2hvdWxkIChyZS1zZWFyY2gtZm9yd2FyZCBy ZWdleHApKQorICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAg IChjb25kICgoc3RyaW5nPSByZWdleHAgc3RhcnMpCisgICAgICAgICAgICAgICAoc2hvdWxkICg9 IDAgKGN1cnJlbnQtY29sdW1uKSkpKQorICAgICAgICAgICAgICAoKG1lbXEgcmVnZXhwIHBhcnRz KQorICAgICAgICAgICAgICAgKHNob3VsZCAoPSAoKyBvay1jb2wgb3JnLWVkaXQtc3JjLWNvbnRl bnQtaW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNvbHVt bikpKSkKKyAgICAgICAgICAgICAgKHQgKHNob3VsZCAoPSBvay1jb2wgKGN1cnJlbnQtY29sdW1u KSkpKSkpKQorICAgICkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay1z cGxpdC11c2VyLWVycm9ycyAoKQorICAiVGVzdCBmb3IgYHVzZXItZXJyb3IncyBpbiBzcGxpdHRp bmciCisgIChsZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24gdCkKKyAgICAgICAgKG9yZy1lZGl0 LXNyYy1jb250ZW50LWluZGVudGF0aW9uIDIpCisgICAgICAgIChvcmctc3JjLXByZXNlcnZlLWlu ZGVudGF0aW9uKSkKKyAgICAobGV0KiAoKGNhcHRpb24gIiMrY2FwdGlvbjogY2FwdGlvbi4iKQor ICAgICAgICAgICAod2l0aGluLWJvZHkgIjs7IHdpdGhpbi1ib2R5IikKKyAgICAgICAgICAgKGJl bG93LWJsb2NrICIjIGJlbG93IGJsb2NrIikKKyAgICAgICAgICAgKHRlbXBsYXRlICAiCislcyVz CisjK2JlZ2luX3NyYyBlbWFjcy1saXNwCisKKyAgJXMKKworIytlbmRfc3JjCisKKyVzJXMKKyIp KQorICAgICAgOzsgVGVzdCBwb2ludCBhdCBjYXB0aW9uLgorICAgICAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0CisgICAgICAgICAgKGZvcm1hdCB0ZW1wbGF0ZSAiPHBvaW50PiIgY2FwdGlvbiB3 aXRoaW4tYm9keSBiZWxvdy1ibG9jayAiIikKKyAgICAgICAgOzsgQ2hlY2sgKHBvaW50KS4KKyAg ICAgICAgKHNob3VsZCAoc3RyaW5nPSBjYXB0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg KGJ1ZmZlci1zdWJzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSAoKyAo cG9pbnQpIChsZW5ndGggY2FwdGlvbikpKSkpCisgICAgICAgIChzaG91bGQtZXJyb3IgKG9yZy1i YWJlbC1kZW1hcmNhdGUtYmxvY2spIDp0eXBlICd1c2VyLWVycm9yKSkKKyAgICAgIDs7IFRlc3Qg cmVnaW9uIGZyb20gYmVsb3cgdGhlIGJsb2NrIChtYXJrKSB0byB3aXRoaW4gdGhlIGJvZHkgKHBv aW50KS4KKyAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorICAgICAgICAgIChmb3JtYXQg dGVtcGxhdGUgIiIgY2FwdGlvbiB3aXRoaW4tYm9keSBiZWxvdy1ibG9jayAiPHBvaW50PiIpCisg ICAgICAgIDs7IFNldCBtYXJrLgorICAgICAgICAoc2V0LW1hcmstY29tbWFuZCBuaWwpCisgICAg ICAgIDs7IENoZWNrIChtYXJrKS4KKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSBiZWxvdy1ibG9j aworICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nCisgICAgICAgICAg ICAgICAgICAgICAgICAgICgtIChtYXJrKSAobGVuZ3RoIGJlbG93LWJsb2NrKSkgKG1hcmspKSkp CisgICAgICAgIDs7IFNldCBwb2ludC4KKyAgICAgICAgKHNob3VsZCAoc2VhcmNoLWJhY2t3YXJk IHdpdGhpbi1ib2R5IG5pbCAnbm9lcnJvcikpCisgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJl Z2lubmluZyAwKSkKKyAgICAgICAgOzsgQ2hlY2sgKHBvaW50KS4KKyAgICAgICAgKHNob3VsZCAo c3RyaW5nPSB3aXRoaW4tYm9keQorICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vi c3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkgKCsgKHBvaW50KSAobGVu Z3RoIHdpdGhpbi1ib2R5KSkpKSkKKyAgICAgICAgKHNob3VsZC1lcnJvciAob3JnLWJhYmVsLWRl bWFyY2F0ZS1ibG9jaykgOnR5cGUgJ3VzZXItZXJyb3IpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVz dC1vYi9kZW1hcmNhdGUtYmxvY2std3JhcC1wb2ludCAoKQorICAiVGVzdCB3cmFwcGluZyBwb2lu dCBpbiBibGFuayBsaW5lcyBiZWxvdyBhIHNvdXJjZSBibG9jay4iCisgIChvcmctdGVzdC13aXRo LXRlbXAtdGV4dCAiCisjK2JlZ2luX3NyYyBhbnktbGFuZ3VhZ2UgLWkgLW4gOnZhciBoZXJlPVwi bm90IGR1cGxpY2F0ZWRcIgordG8gdXBwZXIgYmxvY2sKKyMrZW5kX3NyYworPHBvaW50PgorIgor ICAgIChsZXQgKGluZm8gdmFycykKKyAgICAgIChvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrKQor ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgIChvcmctYmFiZWwtbmV4dC1zcmMt YmxvY2spCisgICAgICAoc2V0cSBpbmZvIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkg IDs7IHVwcGVyIHNvdXJjZSBibG9jayBpbmZvCisgICAgICAoc2V0cSB2YXJzIChvcmctYmFiZWwt LWdldC12YXJzIChudGggMiBpbmZvKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFu Z3VhZ2UiIChudGggMCBpbmZvKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJ0byB1cHBlciBi bG9jayIgKG9yZy10cmltIChudGggMSBpbmZvKSkpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAi bm90IGR1cGxpY2F0ZWQiIChjZHIgKGFzc3EgJ2hlcmUgdmFycykpKSkKKyAgICAgIChzaG91bGQg KHN0cmluZz0gIi1pIC1uIiAobnRoIDMgaW5mbykpKQorICAgICAgKG9yZy1iYWJlbC1uZXh0LXNy Yy1ibG9jaykKKyAgICAgIChzZXRxIGluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8p KSA7OyBsb3dlciBzb3VyY2UgYmxvY2sgaW5mbworICAgICAgKHNldHEgdmFycyAob3JnLWJhYmVs LS1nZXQtdmFycyAobnRoIDIgaW5mbykpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYW55LWxh bmd1YWdlIiAobnRoIDAgaW5mbykpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiIiAob3JnLXRy aW0gKG50aCAxIGluZm8pKSkpCisgICAgICAoc2hvdWxkLW5vdCB2YXJzKQorICAgICAgKHNob3Vs ZCAoc3RyaW5nPSAiIiAobnRoIDMgaW5mbykpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi9k ZW1hcmNhdGUtYmxvY2std3JhcC1yZWdpb24gKCkKKyAgIlRlc3Qgd3JhcHBpbmcgcmVnaW9uIGlu IGJsYW5rIGxpbmVzIGJlbG93IGEgc291cmNlIGJsb2NrLiIKKyAgKGxldCAoKHJlZ2lvbi10ZXh0 ICJtYXJrIHRoaXMgbGluZSBhcyByZWdpb24gbGVhdmluZyBwb2ludCBpbiBibGFuayBsaW5lcyIp KQorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAoZm9ybWF0ICIKKyMrYmVnaW5fc3JjIGFu eS1sYW5ndWFnZSAtaSAtbiA6dmFyIGhlcmU9XCJub3QgZHVwbGljYXRlZFwiCit0byB1cHBlciBi bG9jaworIytlbmRfc3JjCis8cG9pbnQ+CislcworIiByZWdpb24tdGV4dCkKKyAgICAgIChsZXQg KGluZm8gdmFycykKKyAgICAgICAgKHNldC1tYXJrLWNvbW1hbmQgbmlsKQorICAgICAgICAoc2Vh cmNoLWZvcndhcmQgcmVnaW9uLXRleHQpCisgICAgICAgIChleGNoYW5nZS1wb2ludC1hbmQtbWFy aykKKyAgICAgICAgOzsgQ2hlY2sgKG1hcmspLgorICAgICAgICAoc2hvdWxkIChzdHJpbmc9IHJl Z2lvbi10ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKC0gKG1hcmspIChsZW5ndGggcmVnaW9uLXRleHQpKSAo bWFyaykpKSkKKyAgICAgICAgKG9yZy1iYWJlbC1kZW1hcmNhdGUtYmxvY2spCisgICAgICAgIChn b3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2sp CisgICAgICAgIChzZXRxIGluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8pKSAgOzsg dXBwZXIgc291cmNlIGJsb2NrIGluZm8KKyAgICAgICAgKHNldHEgdmFycyAob3JnLWJhYmVsLS1n ZXQtdmFycyAobnRoIDIgaW5mbykpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFu Z3VhZ2UiIChudGggMCBpbmZvKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gInRvIHVwcGVy IGJsb2NrIiAob3JnLXRyaW0gKG50aCAxIGluZm8pKSkpCisgICAgICAgIChzaG91bGQgKHN0cmlu Zz0gIm5vdCBkdXBsaWNhdGVkIiAoY2RyIChhc3NxICdoZXJlIHZhcnMpKSkpCisgICAgICAgIChz aG91bGQgKHN0cmluZz0gIi1pIC1uIiAobnRoIDMgaW5mbykpKQorICAgICAgICAob3JnLWJhYmVs LW5leHQtc3JjLWJsb2NrKQorICAgICAgICAoc2V0cSBpbmZvIChvcmctYmFiZWwtZ2V0LXNyYy1i bG9jay1pbmZvKSkgOzsgbG93ZXIgc291cmNlIGJsb2NrIGluZm8KKyAgICAgICAgKHNldHEgdmFy cyAob3JnLWJhYmVsLS1nZXQtdmFycyAobnRoIDIgaW5mbykpKQorICAgICAgICAoc2hvdWxkIChz dHJpbmc9ICJhbnktbGFuZ3VhZ2UiIChudGggMCBpbmZvKSkpCisgICAgICAgIChzaG91bGQgKHN0 cmluZz0gcmVnaW9uLXRleHQgKG9yZy10cmltIChudGggMSBpbmZvKSkpKQorICAgICAgICAoc2hv dWxkLW5vdCB2YXJzKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICIiIChudGggMyBpbmZvKSkp KSkpKQorCiAocHJvdmlkZSAndGVzdC1vYikKIAogOzs7IHRlc3Qtb2IgZW5kcyBoZXJlCi0tIAoy LjQyLjAKCg== --=_f59255118ec20db885c650f4c9c89ef5--