Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v2VWZ-004en1-5F for pgsql-hackers@arkaria.postgresql.org; Sat, 27 Sep 2025 14:03:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v2VWW-00AM0s-HZ for pgsql-hackers@arkaria.postgresql.org; Sat, 27 Sep 2025 14:03:41 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v2VWV-00AM0k-JW for pgsql-hackers@lists.postgresql.org; Sat, 27 Sep 2025 14:03:40 +0000 Received: from fhigh-a2-smtp.messagingengine.com ([103.168.172.153]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1v2VWS-000CPR-1o for pgsql-hackers@lists.postgresql.org; Sat, 27 Sep 2025 14:03:39 +0000 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.phl.internal (Postfix) with ESMTP id 17D711400082; Sat, 27 Sep 2025 10:03:36 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Sat, 27 Sep 2025 10:03:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=burd.me; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1758981816; x=1759068216; bh=k2hKkiBJ3J kIjE2eLLlXXjbdoRlaWGNoMHuXbj0a1y0=; b=liCcD1cHJtZaTE6Bcuriy8F0aw hmCV+gsIj675VntAUvjn6zWCEBIZXDwxxJRN0D5Bkm9gCj1N3ykrngMfzbC6ESce 7ojGwOnzc7XPg6+W2EVkg4jjafFDZ+Tyuev2W75YKhI0iyiIl19iXEe7EEGC7rGx 4Z7G5AWNGg7ba7ami7LDB6cal3k/tORzSCrzhmydTop/mqOvN42ZKPkNe/yGyqBZ DrW9ErnbfwXDkOggt1NNflmNaXIdxfNsOXu/fiNWdoLUSagVGqIaOZ5eH3kw/Hzh LN/t6STZJOmcWp/YjiWCEn/mSB2tQqvVPChyCzPBpN2uxamf947sQdH1iaNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1758981816; x=1759068216; bh=k2hKkiBJ3JkIjE2eLLlXXjbdoRlaWGNoMHu Xbj0a1y0=; b=doiSk/me5zjlcz/DMW8BGeOUWDXxfNpi7MdyfduJHLfrT0CJzwK kaL3MMb+jZJa5HKwF/CL9A9VYuv8vTp2m/2zSFfj+0zaFl57K1eMFB5AxN85hESZ 7/7NsctvjzRxZiJofWYHrQv+90FCx5mC/tvQ9criaw2eYgD/nIM3mWB3sevpArYe kmXc1gQhbk7AGz8jsioAbLxXm4V9dORrV/7Lti4QVIaZnTuc5an7lECga7lC9CN1 VvsZNQGKAi5/7XEnNDiD/DJaTqBbocu3nh+JUFPFw/mHIWxlV4K+PT1U30r0j95N +oGJjP50LYZHGUIoV0Aq2qxUTW/WKe/FQCQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggdejvdeggecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpeffhffvvefkjghfuffogggtsehmtdhmreertdejnecuhfhrohhmpefirhgvghcuuehu rhguuceoghhrvghgsegsuhhrugdrmhgvqeenucggtffrrghtthgvrhhnpeduvdefheejue ehvdetheduuefhtdfhjeeujedugeeivefghfelgfelffehhfegveenucffohhmrghinhep phhoshhtghhrvghsqhhlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepghhrvghgsegsuhhrugdrmhgvpdhnsggprhgtphhtthhopedv pdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmihgthhgrvghlsehprghquhhivg hrrdighiiipdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphho shhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: i675e48f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 27 Sep 2025 10:03:35 -0400 (EDT) Date: Sat, 27 Sep 2025 10:03:14 -0400 From: Greg Burd To: Michael Paquier Cc: PostgreSQL Hackers Message-ID: <837A4747-B56C-49FD-B6D0-1C40D79A5C47@greg.burd.me> In-Reply-To: References: Subject: Re: [PATCH] Add tests for Bitmapset X-Mailer: Mailspring MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="68d7eea2_59cdeef1_147c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --68d7eea2_59cdeef1_147c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sep 24 2025, at 7:28 pm, Michael Paquier wrote: > On Wed, Sep 24, 2025 at 07:39:59AM -0400, Greg Burd wrote: >> Thanks Michael, Tom, for the help getting this into shape and in the tree. > > By the way, Greg, do you think that we should aim for a state where we > are closer to completion? Hi Michael, We've come this far, why not go all the way? :) > We have the module up to the point where we > are in pretty good shape, with most things and the infrastructure done > but it can be improved a bit more, as well. Agreed. > Based on the information provided by the coverage report at > https://coverage.postgresql.org/src/backend/nodes/bitmapset.c.gcov.html, > we still have the following things: > - bms_equal for different word counts > - bms_union, bms_nonempty_difference, bms_is_subset and bms_intersect > with shorter word counts. > - bms_different with different word counts > - A couple more cases with bms_subset_compare > - bms_member_index and word counts > - bms_overlap_list with negative number in input list. > - bms_singleton_member ERROR with empty input. > - bms_get_singleton_member with NULL input > - bms_del_member with word counts > - bms_replace_members and repalloc case > - bms_add_range, bms_join and bms_del_members, more word count cases > - bms_prev_member and the prevbit business Thanks for the detailed analysis, I tried to address each of these in the patch. > There is not much we can do with the random function, still we could > do something about the NULL paths in the internal functions: > https://coverage.postgresql.org/src/test/modules/test_bitmapset/test_bitmapset.c.gcov.html Agreed. > The coverage of the latter matters less than the coverage of the > former, of course. Agreed. > -- > Michael test_bitmapset.c lines......: 98.9% functions..: 100% branches...: 82.6% Here I removed a bit of code I thought was unnecessary and added a few test cases. The coverage is better overall, not much to say about it. bitmapset.c lines......: 99.8% functions..: 100% branches...: 89.4% A few branches were really tricky, my (least) favorite was the bms_subset_compare(). To get to the first BMS_DIFFERENT return you have to have a test case where the shorter bitmap is long enough to force two or more iterations of the loop and in the first iteration the first word in a needs to be a subset of b and then for the second word the opposite where the second word of b is a subset of a and yet there can be no overlapping bits in the two sets and the same number of words in both sets. test_bms_subset_compare('(b 1 64 65)', '(b 1 2 64)') -> BMS_DIFFERENT Technically the '(b 64 200)', '(b 1 201)' test case is also BMS_DIFFERENT and so redundant, but I was so happy to find the test case for this branch I kept them both. best. -greg --68d7eea2_59cdeef1_147c Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0001-Further-improve-the-test-coverage-of-Bitmapset.patch" RnJvbSBhM2NlMWVlYjM1ZDM0MzBjZTU1ZThlNzE4OWMzYWE4ZTc0NjQ1ZGI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJ1cmQgPGdyZWdAYnVyZC5tZT4KRGF0ZTogVGh1LCAy NSBTZXAgMjAyNSAxMjoxNDo0OSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIEZ1cnRoZXIgaW1w cm92ZSB0aGUgdGVzdCBjb3ZlcmFnZSBvZiBCaXRtYXBzZXQKCkltcHJvdmUgdGVzdCBjb3ZlcmFn ZSBvbiBib3RoIGJpdG1hcHNldC5jIGFuZCB0aGUgY29kZSB0aGF0IHRlc3RzCml0LCB0ZXN0X2Jp dG1hcHNldC5jIHdpdGggYSBmZXcgbW9yZSB0ZXN0cyB0aGF0IHRyaWdnZXIgYnJhbmNoCmNvbmRp dGlvbnMgYW5kIHNwZWNpYWwgY2FzZXMuCgpUaGlzIGV4dGVuZHMgY29tbWl0IDAwYzNkODcgYW5k IGY4M2ZlNjUuCgpBdXRob3I6IEdyZWcgQnVyZCA8Z3JlZ0BidXJkLm1lPgpSZXZpZXdlZC1ieTog TWljaGFlbCBQYXF1aWVyIDxtaWNoYWVsQHBhcXVpZXIueHl6PgpEaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tLzMwMjcwNjkuMTc1ODYwNjIyN0Bzc3MucGdoLnBhLnVzCi0tLQogLi4uL2V4 cGVjdGVkL3Rlc3RfYml0bWFwc2V0Lm91dCAgICAgICAgICAgICAgIHwgODUyICsrKysrKysrKysr KysrKysrLQogLi4uL3Rlc3RfYml0bWFwc2V0L3NxbC90ZXN0X2JpdG1hcHNldC5zcWwgICAgIHwg MTczICsrKy0KIC4uLi90ZXN0X2JpdG1hcHNldC90ZXN0X2JpdG1hcHNldC0tMS4wLnNxbCAgICB8 ICAgNCArCiAuLi4vbW9kdWxlcy90ZXN0X2JpdG1hcHNldC90ZXN0X2JpdG1hcHNldC5jICAgfCAg NjIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTAxMyBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0bWFwc2V0L2V4cGVjdGVk L3Rlc3RfYml0bWFwc2V0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRtYXBzZXQvZXhw ZWN0ZWQvdGVzdF9iaXRtYXBzZXQub3V0CmluZGV4IGFiYmZlZjFmN2E2Li5jYjZkNzFmYjdiMSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC9leHBlY3RlZC90ZXN0 X2JpdG1hcHNldC5vdXQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC9leHBl Y3RlZC90ZXN0X2JpdG1hcHNldC5vdXQKQEAgLTgzLDYgKzgzLDEzIEBAIFNFTEVDVCB0ZXN0X2Jt c19yZXBsYWNlX21lbWJlcnMoJyhiIDEgMiknLCAnKGIgMyA1IDcpJykgQVMgcmVzdWx0OwogIChi IDMgNSA3KQogKDEgcm93KQogCistLSBGb3JjZSByZXBhbGxvYygpIHdpdGggbGFyZ2VyIHNldAor U0VMRUNUIHRlc3RfYm1zX3JlcGxhY2VfbWVtYmVycygnKGIgMSAyIDMgNCA1KScsICcoYiA1MDAg NjAwKScpIEFTIHJlc3VsdDsKKyAgIHJlc3VsdCAgICAKKy0tLS0tLS0tLS0tLS0KKyAoYiA1MDAg NjAwKQorKDEgcm93KQorCiAtLSBibXNfZGVsX21lbWJlcigpCiBTRUxFQ1QgdGVzdF9ibXNfZGVs X21lbWJlcignKGIpJywgLTIwKTsgLS0gZXJyb3IKIEVSUk9SOiAgbmVnYXRpdmUgYml0bWFwc2V0 IG1lbWJlciBub3QgYWxsb3dlZApAQCAtMTI0LDYgKzEzMSw3NCBAQCBTRUxFQ1QgdGVzdF9ibXNf ZGVsX21lbWJlcih0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiKScsIDMwLCAzNCksIDMyKSBBUyByZXN1 bHQ7CiAgKGIgMzAgMzEgMzMgMzQpCiAoMSByb3cpCiAKKy0tIEZvcmNlIHdvcmQgY291bnQgY2hh bmdlcworU0VMRUNUIHRlc3RfYm1zX2RlbF9tZW1iZXIoJyhiIDEgMjAwKScsIDIwMCkgQVMgcmVz dWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgKGIgMSkKKygxIHJvdykKKworU0VMRUNUIHRlc3Rf Ym1zX2RlbF9tZW1iZXIoJyhiIDEgNTAgMTAwIDIwMCknLCAyMDApIEFTIHJlc3VsdDsKKyAgICBy ZXN1bHQgICAgCistLS0tLS0tLS0tLS0tLQorIChiIDEgNTAgMTAwKQorKDEgcm93KQorCitTRUxF Q1QgdGVzdF9ibXNfZGVsX21lbWJlcignKGIgMSA1MCAxMDAgMjAwKScsIDEwMCkgQVMgcmVzdWx0 OworICAgIHJlc3VsdCAgICAKKy0tLS0tLS0tLS0tLS0tCisgKGIgMSA1MCAyMDApCisoMSByb3cp CisKKy0tIGJtc19kZWxfbWVtYmVycygpCitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhi KScsICcoYiAxMCknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIHRlc3RfYm1zX2RlbF9tZW1iZXJzKCcoYiAxMCknLCAnKGIgMTApJykgQVMgcmVz dWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19k ZWxfbWVtYmVycygnKGIgMTApJywgJyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0t LS0tCisgKGIgMTApCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19kZWxfbWVtYmVycygnKGIg MSAyIDMpJywgJyhiIDIpJykgQVMgcmVzdWx0OworIHJlc3VsdCAgCistLS0tLS0tLS0KKyAoYiAx IDMpCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19kZWxfbWVtYmVycygnKGIgNSAxMDApJywg JyhiIDEwMCknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAoYiA1KQorKDEgcm93 KQorCitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiIDUgMTAwIDIwMCknLCAnKGIgMjAw KScpIEFTIHJlc3VsdDsKKyAgcmVzdWx0ICAgCistLS0tLS0tLS0tLQorIChiIDUgMTAwKQorKDEg cm93KQorCitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiIDEgMiAxMDAgMjAwIDMwMCkn LCAnKGIgMSAyKScpIEFTIHJlc3VsdDsKKyAgICAgcmVzdWx0ICAgICAgCistLS0tLS0tLS0tLS0t LS0tLQorIChiIDEwMCAyMDAgMzAwKQorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfZGVsX21l bWJlcnMoJyhiIDEgMiAxMDAgMjAwIDMwMCknLCAnKGIgMjAwIDMwMCknKSBBUyByZXN1bHQ7Cisg ICByZXN1bHQgICAgCistLS0tLS0tLS0tLS0tCisgKGIgMSAyIDEwMCkKKygxIHJvdykKKwogLS0g Ym1zX2pvaW4oKQogU0VMRUNUIHRlc3RfYm1zX2pvaW4oJyhiIDEgMyA1KScsIE5VTEwpIEFTIHJl c3VsdDsKICAgcmVzdWx0ICAgCkBAIC0xNDksOCArMjI0LDIxIEBAIFNFTEVDVCB0ZXN0X2Jtc19q b2luKCcoYiAxIDMgNSknLCAnKGIgMSA0IDUpJykgQVMgcmVzdWx0OwogIChiIDEgMyA0IDUpCiAo MSByb3cpCiAKKy0tIEZvcmNlIHdvcmQgY291bnQgY2hhbmdlcworU0VMRUNUIHRlc3RfYm1zX2pv aW4oJyhiIDUpJywgJyhiIDEwMCknKSBBUyByZXN1bHQ7CisgIHJlc3VsdCAgIAorLS0tLS0tLS0t LS0KKyAoYiA1IDEwMCkKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2pvaW4oJyhiIDEgMikn LCAnKGIgMTAwIDIwMCAzMDApJykgQVMgcmVzdWx0OworICAgICAgIHJlc3VsdCAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoYiAxIDIgMTAwIDIwMCAzMDApCisoMSByb3cpCisKIC0t IGJtc191bmlvbigpCi0tLSBPdmVybGFwcGluZyBzZXRzLgorLS0gT3ZlcmxhcHBpbmcgc2V0cwog U0VMRUNUIHRlc3RfYm1zX3VuaW9uKCcoYiAxIDMgNSknLCAnKGIgMyA1IDcpJykgQVMgcmVzdWx0 OwogICAgcmVzdWx0ICAgIAogLS0tLS0tLS0tLS0tLQpAQCAtMTgxLDYgKzI2OSwxOSBAQCBTRUxF Q1QgdGVzdF9ibXNfdW5pb24oCiAgKGIgMCAxIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMiAxMyAx NCAxNSAxNiAxNyAxOCAxOSAyMCkKICgxIHJvdykKIAorLS0gVW5pb24gd2l0aCB2YXJyeWluZyB3 b3JkIGNvdW50cworU0VMRUNUIHRlc3RfYm1zX3VuaW9uKCcoYiAxIDIpJywgJyhiIDEwMCAzMDAp JykgQVMgcmVzdWx0OworICAgICByZXN1bHQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tCisgKGIg MSAyIDEwMCAzMDApCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc191bmlvbignKGIgMTAwIDMw MCknLCAnKGIgMSAyKScpIEFTIHJlc3VsdDsKKyAgICAgcmVzdWx0ICAgICAgCistLS0tLS0tLS0t LS0tLS0tLQorIChiIDEgMiAxMDAgMzAwKQorKDEgcm93KQorCiAtLSBibXNfaW50ZXJzZWN0KCkK IC0tIE92ZXJsYXBwaW5nIHNldHMKIFNFTEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoJyhiIDEgMyA1 KScsICcoYiAzIDUgNyknKSBBUyByZXN1bHQ7CkBAIC0xOTYsMTMgKzI5NywyNiBAQCBTRUxFQ1Qg dGVzdF9ibXNfaW50ZXJzZWN0KCcoYiAxIDMgNSknLCAnKGIgMiA0IDYpJykgQVMgcmVzdWx0Owog IAogKDEgcm93KQogCi0tLSBJbnRlcnNlY3Qgd2l0aCBlbXB0eS4KKy0tIEludGVyc2VjdCB3aXRo IGVtcHR5CiBTRUxFQ1QgdGVzdF9ibXNfaW50ZXJzZWN0KCcoYiAxIDMgNSknLCAnKGIpJykgQVMg cmVzdWx0OwogIHJlc3VsdCAKIC0tLS0tLS0tCiAgCiAoMSByb3cpCiAKKy0tIEludGVyc2VjdCB3 aXRoIHZhcnJ5aW5nIHdvcmQgY291bnRzCitTRUxFQ1QgdGVzdF9ibXNfaW50ZXJzZWN0KCcoYiAx IDMwMCknLCAnKGIgMSAyIDMgNCA1KScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQor IChiIDEpCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoJyhiIDEgMiAzIDQg NSknLCAnKGIgMSAzMDApJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgKGIgMSkK KygxIHJvdykKKwogLS0gYm1zX2ludF9tZW1iZXJzKCkKIC0tIE92ZXJsYXBwaW5nIHNldHMKIFNF TEVDVCB0ZXN0X2Jtc19pbnRfbWVtYmVycygnKGIgMSAzIDUpJywgJyhiIDMgNSA3KScpIEFTIHJl c3VsdDsKQEAgLTIxOCw3ICszMzIsNyBAQCBTRUxFQ1QgdGVzdF9ibXNfaW50X21lbWJlcnMoJyhi IDEgMyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7CiAgCiAoMSByb3cpCiAKLS0tIEludGVy c2VjdCB3aXRoIGVtcHR5LgorLS0gSW50ZXJzZWN0IHdpdGggZW1wdHkKIFNFTEVDVCB0ZXN0X2Jt c19pbnRfbWVtYmVycygnKGIgMSAzIDUpJywgJyhiKScpIEFTIHJlc3VsdDsKICByZXN1bHQgCiAt LS0tLS0tLQpAQCAtMjYyLDEzICszNzYsMjYgQEAgU0VMRUNUIHRlc3RfYm1zX2RpZmZlcmVuY2Uo JyhiIDQyKScsICcoYiA0MiknKSBBUyByZXN1bHQ7CiAoMSByb3cpCiAKIC0tIFN1YnRyYWN0aW9u IGVkZ2UgY2FzZQotU0VMRUNUIHRlc3RfYm1zX2RpZmZlcmVuY2UoCitTRUxFQ1QgbGVuZ3RoKHRl c3RfYm1zX2RpZmZlcmVuY2UoCiAgICAgICAgICB0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiKScsIDAs IDEwMCksCiAgICAgICAgICB0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiKScsIDUwLCAxNTApCi0gICAg ICAgKSBBUyByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKGIgMCAxIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAx MiAxMyAxNCAxNSAxNiAxNyAxOCAxOSAyMCAyMSAyMiAyMyAyNCAyNSAyNiAyNyAyOCAyOSAzMCAz MSAzMiAzMyAzNCAzNSAzNiAzNyAzOCAzOSA0MCA0MSA0MiA0MyA0NCA0NSA0NiA0NyA0OCA0OSkK KyAgICAgICApKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAxNDMKKygxIHJv dykKKworLS0gRGlmZmVyZW5jZSB3aXRoIGRpZmZlcmVudCB3b3JkIGNvdW50cworU0VMRUNUIHRl c3RfYm1zX2RpZmZlcmVuY2UoJyhiIDUgMTAwKScsICcoYiA1KScpIEFTIHJlc3VsdDsKKyByZXN1 bHQgIAorLS0tLS0tLS0tCisgKGIgMTAwKQorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfZGlm ZmVyZW5jZSgnKGIgMSAyIDEwMCAyMDApJywgJyhiIDEgMiknKSBBUyByZXN1bHQ7CisgICByZXN1 bHQgICAgCistLS0tLS0tLS0tLS0tCisgKGIgMTAwIDIwMCkKICgxIHJvdykKIAogLS0gYm1zX2lz X21lbWJlcigpCkBAIC0zMjMsNiArNDUwLDI1IEBAIFNFTEVDVCB0ZXN0X2Jtc19tZW1iZXJfaW5k ZXgoJyhiIDEgMyA1KScsIDMpIEFTIHJlc3VsdDsKICAgICAgIDEKICgxIHJvdykKIAorLS0gTWVt YmVyIGluZGV4IHdpdGggdmFyaW91cyB3b3JkIHBvc2l0aW9ucworU0VMRUNUIHRlc3RfYm1zX21l bWJlcl9pbmRleCgnKGIgMTAwIDIwMCknLCAxMDApIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0t LS0tLQorICAgICAgMAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfbWVtYmVyX2luZGV4KCco YiAxMDAgMjAwKScsIDIwMCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAx CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19tZW1iZXJfaW5kZXgoJyhiIDEgNTAgMTAwIDIw MCknLCAyMDApIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMworKDEgcm93 KQorCiAtLSBibXNfbnVtX21lbWJlcnMoKQogU0VMRUNUIHRlc3RfYm1zX251bV9tZW1iZXJzKCco YiknKSBBUyByZXN1bHQ7CiAgcmVzdWx0IApAQCAtMzczLDYgKzUxOSwxOSBAQCBTRUxFQ1QgdGVz dF9ibXNfZXF1YWwoJyhiIDEgMyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7CiAgZgogKDEg cm93KQogCistLSBFcXVhbCB3aXRoIGRpZmZlcmVudCB3b3JkIGNvdW50cworU0VMRUNUIHRlc3Rf Ym1zX2VxdWFsKCcoYiA1KScsICcoYiAxMDApJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0t LS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoJyhiIDUgMTApJywgJyhi IDEwMCAyMDAgMzAwKScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIGYKKygxIHJv dykKKwogLS0gYm1zX2NvbXBhcmUoKQogU0VMRUNUIHRlc3RfYm1zX2NvbXBhcmUoJyhiKScsICco YiknKSBBUyByZXN1bHQ7CiAgcmVzdWx0IApAQCAtNDc0LDYgKzYzMywxOSBAQCBTRUxFQ1QgbGVu Z3RoKHRlc3RfYm1zX2FkZF9yYW5nZSgnKGIpJywgMTAwMCwgMTEwMCkpIEFTIHJlc3VsdDsKICAg ICA1MDgKICgxIHJvdykKIAorLS0gRm9yY2Ugd29yZCBjb3VudCBleHBhbnNpb24KK1NFTEVDVCB0 ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiIDUpJywgMTAwLCAxMDUpIEFTIHJlc3VsdDsKKyAgICAgICAg ICAgIHJlc3VsdCAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAoYiA1IDEwMCAxMDEgMTAyIDEwMyAxMDQgMTA1KQorKDEgcm93KQorCitTRUxFQ1QgbGVuZ3Ro KHRlc3RfYm1zX2FkZF9yYW5nZSgnKGIgMSAyKScsIDIwMCwgMjUwKSkgQVMgcmVzdWx0OworIHJl c3VsdCAKKy0tLS0tLS0tCisgICAgMjExCisoMSByb3cpCisKIC0tIGJtc19tZW1iZXJzaGlwKCkK IFNFTEVDVCB0ZXN0X2Jtc19tZW1iZXJzaGlwKCcoYiknKSBBUyByZXN1bHQ7CiAgcmVzdWx0IApA QCAtNTEzLDYgKzY4NSw4IEBAIFNFTEVDVCB0ZXN0X2Jtc19pc19lbXB0eSgnKGIgMSknKSBBUyBy ZXN1bHQ7CiAoMSByb3cpCiAKIC0tIGJtc19zaW5nbGV0b25fbWVtYmVyKCkKK1NFTEVDVCB0ZXN0 X2Jtc19zaW5nbGV0b25fbWVtYmVyKCcoYiknKTsgLS0gZXJyb3IKK0VSUk9SOiAgYml0bWFwc2V0 IGlzIGVtcHR5CiBTRUxFQ1QgdGVzdF9ibXNfc2luZ2xldG9uX21lbWJlcignKGIgMSAyKScpOyAt LSBlcnJvcgogRVJST1I6ICBiaXRtYXBzZXQgaGFzIG11bHRpcGxlIG1lbWJlcnMKIFNFTEVDVCB0 ZXN0X2Jtc19zaW5nbGV0b25fbWVtYmVyKCcoYiA0MiknKSBBUyByZXN1bHQ7CkBAIC01MjIsMTEg KzY5NiwxNyBAQCBTRUxFQ1QgdGVzdF9ibXNfc2luZ2xldG9uX21lbWJlcignKGIgNDIpJykgQVMg cmVzdWx0OwogKDEgcm93KQogCiAtLSBibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoKQorU0VMRUNU IHRlc3RfYm1zX2dldF9zaW5nbGV0b25fbWVtYmVyKCcoYiknLCAxMDAwKTsgLS0gZXJyb3IKKyB0 ZXN0X2Jtc19nZXRfc2luZ2xldG9uX21lbWJlciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQorKDEgcm93KQorCiAtLSBOb3Qg YSBzaW5nbGV0b24sIHJldHVybnMgaW5wdXQgZGVmYXVsdAogU0VMRUNUIHRlc3RfYm1zX2dldF9z aW5nbGV0b25fbWVtYmVyKCcoYiAzIDYpJywgMTAwMCkgQVMgcmVzdWx0OwogIHJlc3VsdCAKIC0t LS0tLS0tCi0gICAxMDAwCisgICAgIC0xCiAoMSByb3cpCiAKIC0tIFNpbmdsZXRvbmUsIHJldHVy bnMgc29sZSBtZW1iZXIKQEAgLTU5Myw2ICs3NzMsMTMgQEAgU0VMRUNUIHRlc3RfYm1zX3ByZXZf bWVtYmVyKCcoYiknLCAxMDApIEFTIHJlc3VsdDsKICAgICAgLTIKICgxIHJvdykKIAorLS0gTmVn YXRpdmUgcHJldmJpdCBzaG91bGQgcmVzdWx0IGluIGhpZ2hlc3QgcG9zc2libGUgYml0IGluIHNl dAorU0VMRUNUIHRlc3RfYm1zX3ByZXZfbWVtYmVyKCcoYiAwIDYzIDY0IDEyNyknLCAtMSkgQVMg cmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgMTI3CisoMSByb3cpCisKIC0tIGJtc19o YXNoX3ZhbHVlKCkKIFNFTEVDVCB0ZXN0X2Jtc19oYXNoX3ZhbHVlKCcoYiknKSA9IDAgQVMgcmVz dWx0OwogIHJlc3VsdCAKQEAgLTY2Myw0NyArODUwLDE1NiBAQCBTRUxFQ1QgdGVzdF9ibXNfaXNf c3Vic2V0KHRlc3RfYm1zX2FkZF9yYW5nZShOVUxMLCAwLCAzMSksCiAgdAogKDEgcm93KQogCi0t LSBibXNfc3Vic2V0X2NvbXBhcmUoKQotU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5V TEwsIE5VTEwpIEFTIHJlc3VsdDsKKy0tIElzIHN1YnNldCB3aXRoIHNob3J0ZXIgd29yZCBjb3Vu dHMKK1NFTEVDVCB0ZXN0X2Jtc19pc19zdWJzZXQoJyhiIDUgMTAwKScsICcoYiA1KScpIEFTIHJl c3VsdDsKICByZXN1bHQgCiAtLS0tLS0tLQotICAgICAgMAorIGYKICgxIHJvdykKIAotU0VMRUNU IHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMpJywgTlVMTCkgQVMgcmVzdWx0OworU0VM RUNUIHRlc3RfYm1zX2lzX3N1YnNldCgnKGIgMSAyIDUwIDEwMCknLCAnKGIgMSAyKScpIEFTIHJl c3VsdDsKICByZXN1bHQgCiAtLS0tLS0tLQotICAgICAgMgorIGYKICgxIHJvdykKIAotU0VMRUNU IHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5VTEwsICcoYiAxIDMpJykgQVMgcmVzdWx0OwotIHJl c3VsdCAKLS0tLS0tLS0tCi0gICAgICAxCistLSBibXNfc3Vic2V0X2NvbXBhcmUoKQorU0VMRUNU IHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5VTEwsIE5VTEwpOworIHRlc3RfYm1zX3N1YnNldF9j b21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAwCiAoMSByb3cpCiAKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAzIDUp JywgJyhiIDEgMyknKSBBUyByZXN1bHQ7Ci0gcmVzdWx0IAotLS0tLS0tLS0KLSAgICAgIDIKK1NF TEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZShOVUxMLCAnKGIgMSAzKScpOworIHRlc3RfYm1z X3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAxCiAoMSByb3cpCiAKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgn KGIgMSAzKScsICcoYiAxIDMgNSknKSBBUyByZXN1bHQ7Ci0gcmVzdWx0IAotLS0tLS0tLS0KLSAg ICAgIDEKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIpJywgJyhiKScpOworIHRl c3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAwCiAoMSByb3cpCiAKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29t cGFyZSgnKGIgMSAzIDUpJywgJyhiIDEgMyA1KScpIEFTIHJlc3VsdDsKLSByZXN1bHQgCi0tLS0t LS0tLQotICAgICAgMAorU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiknLCAnKGIg MSknKTsKKyB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgMQogKDEgcm93KQogCi1TRUxFQ1QgdGVzdF9ibXNf c3Vic2V0X2NvbXBhcmUoJyhiIDEgMyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7Ci0gcmVz dWx0IAotLS0tLS0tLS0KLSAgICAgIDMKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgn KGIgMSknLCAnKGIpJyk7CisgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIDIKKygxIHJvdykKKworU0VMRUNU IHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMpJywgTlVMTCk7CisgdGVzdF9ibXNfc3Vi c2V0X2NvbXBhcmUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIDIKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAx IDMgNSknLCAnKGIgMSAzIDUpJyk7CisgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKwor U0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMpJywgJyhiIDEgMyA1KScpOwor IHRlc3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRf Y29tcGFyZSgnKGIgMSAzIDUpJywgJyhiIDEgMyknKTsKKyB0ZXN0X2Jtc19zdWJzZXRfY29tcGFy ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgMgor KDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMiknLCAnKGIg MSAzKScpOworIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jt c19zdWJzZXRfY29tcGFyZSgnKGIgMSAyKScsICcoYiAxIDQpJyk7CisgdGVzdF9ibXNfc3Vic2V0 X2NvbXBhcmUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIDMKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMp JywgJyhiIDEgMyA2NCknKTsKKyB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxF Q1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMyA2NCknLCAnKGIgMSAzKScpOworIHRl c3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAyCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29t cGFyZSgnKGIgMSAzIDY0KScsICcoYiAxIDMgNjUpJyk7CisgdGVzdF9ibXNfc3Vic2V0X2NvbXBh cmUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIDMK KygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMpJywgJyhi IDIgNCknKTsKKyB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgdGVzdF9i bXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEpJywgJyhiIDY0KScpOworIHRlc3RfYm1zX3N1YnNldF9j b21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAzCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMCknLCAn KGIgMzIpJyk7CisgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIHRlc3Rf Ym1zX3N1YnNldF9jb21wYXJlKCcoYiAwKScsICcoYiA2NCknKTsKKyB0ZXN0X2Jtc19zdWJzZXRf Y29tcGFyZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgMworKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDY0KScs ICcoYiAxKScpOworIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0 X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAyKScsICcoYiAxIDIgNjQpJyk7CisgdGVzdF9ibXNf c3Vic2V0X2NvbXBhcmUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCco YiA2NCAyMDApJywgJyhiIDEgMjAxKScpOworIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAzCisoMSByb3cp CisKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSA2NCA2NSknLCAnKGIgMSAy IDY0KScpOworIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jt c19zdWJzZXRfY29tcGFyZSgnKGIgMiA2NCAxMjgpJywgJyhiIDEgNjUpJyk7CisgdGVzdF9ibXNf c3Vic2V0X2NvbXBhcmUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIDMKICgxIHJvdykKIAogLS0gYm1zX2NvcHkoKQpAQCAtNzIwLDEyICsxMDE2LDYg QEAgU0VMRUNUIHRlc3RfYm1zX2NvcHkoJyhiIDEgMyA1IDcpJykgQVMgcmVzdWx0OwogKDEgcm93 KQogCiAtLSBibXNfYWRkX21lbWJlcnMoKQotU0VMRUNUIHRlc3RfYm1zX2FkZF9tZW1iZXIoJyhi KScsIDEwMDApOyAtLSBlcnJvcgotIHRlc3RfYm1zX2FkZF9tZW1iZXIgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAoYiAxMDAwKQotKDEgcm93KQotCiBTRUxFQ1QgdGVzdF9ibXNfYWRkX21lbWJl cnMoJyhiIDEgMyknLCAnKGIgNSA3KScpIEFTIHJlc3VsdDsKICAgIHJlc3VsdCAgICAKIC0tLS0t LS0tLS0tLS0KQEAgLTg2Niw2ICsxMTU2LDExIEBAIFNFTEVDVCB0ZXN0X2Jtc19vdmVybGFwX2xp c3QoJyhiIDEpJywgQVJSQVlbXTo6aW50ZWdlcltdKSBBUyByZXN1bHQ7CiAgZgogKDEgcm93KQog CistLSBPdmVybGFwIGxpc3Qgd2l0aCBuZWdhdGl2ZSBudW1iZXJzCitTRUxFQ1QgdGVzdF9ibXNf b3ZlcmxhcF9saXN0KCcoYiA1IDEwKScsIEFSUkFZWy0xLDVdKSBBUyByZXN1bHQ7IC0tIGVycm9y CitFUlJPUjogIG5lZ2F0aXZlIGJpdG1hcHNldCBtZW1iZXIgbm90IGFsbG93ZWQKK1NFTEVDVCB0 ZXN0X2Jtc19vdmVybGFwX2xpc3QoJyhiIDEgMiAzKScsIEFSUkFZWy01LC0xLDBdKSBBUyByZXN1 bHQ7IC0tIGVycm9yCitFUlJPUjogIG5lZ2F0aXZlIGJpdG1hcHNldCBtZW1iZXIgbm90IGFsbG93 ZWQKIC0tIGJtc19ub25lbXB0eV9kaWZmZXJlbmNlKCkKIFNFTEVDVCB0ZXN0X2Jtc19ub25lbXB0 eV9kaWZmZXJlbmNlKE5VTEwsICcoYiAxIDMgNSknKSBBUyByZXN1bHQ7CiAgcmVzdWx0IApAQCAt ODk3LDYgKzExOTIsMjUgQEAgU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZlcmVuY2UoJyhi IDEgMyA1KScsICcoYiAxIDMgNSknKSBBUyByZXN1bHQ7CiAgZgogKDEgcm93KQogCistLSBEaWZm ZXJlbmNlIHdpdGggZGlmZmVyZW50IHdvcmQgY291bnRzCitTRUxFQ1QgdGVzdF9ibXNfbm9uZW1w dHlfZGlmZmVyZW5jZSgnKGIgNSknLCAnKGIgMTAwKScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCist LS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZlcmVu Y2UoJyhiIDEwMCknLCAnKGIgNSknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19ub25lbXB0eV9kaWZmZXJlbmNlKCcoYiAxIDIp JywgJyhiIDUwIDEwMCknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKIC0tIHJhbmRvbSBvcGVyYXRpb25zCiBTRUxFQ1QgdGVzdF9yYW5kb21fb3BlcmF0aW9u cygtMSwgMTAwMDAsIDgxOTIwLCAwKSA+IDAgQVMgcmVzdWx0OwogIHJlc3VsdCAKQEAgLTkwNCw0 ICsxMjE4LDQ2MiBAQCBTRUxFQ1QgdGVzdF9yYW5kb21fb3BlcmF0aW9ucygtMSwgMTAwMDAsIDgx OTIwLCAwKSA+IDAgQVMgcmVzdWx0OwogIHQKICgxIHJvdykKIAorLS0gQ292ZXIgdGhlIHRlc3Qg QVBJJ3MgY29ybmVyIGNhc2VzIHN1Y2ggYXMgd2hlbiBBUkdJU05VTEwsCistLSBvciBWQVJTSVpF X0FOWV9FWEhEUiA9PSAwLCBldGMuCitTRUxFQ1QgdGVzdF9iaXRtYXBfaGFzaChOVUxMKSBBUyBy ZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKygxIHJvdykKKworU0VMRUNUIHRl c3RfYml0bWFwX21hdGNoKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0t LS0tLQorICAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9iaXRtYXBfbWF0Y2goTlVMTCwg JyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAxCisoMSByb3cp CisKK1NFTEVDVCB0ZXN0X2JpdG1hcF9tYXRjaChOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2FkZF9t ZW1iZXIoJyhiKScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgdGVzdF9ibXNfYWRkX3JhbmdlKCcoYiA1KScsIDUsIE5VTEwpIEFTIHJl c3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNf YWRkX3JhbmdlKCcoYiA1KScsIE5VTEwsIDEwKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2FkZF9yYW5nZSgnKGIgNSknLCBOVUxM LCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIHRlc3RfYm1zX2FkZF9yYW5nZShOVUxMLCA1LCAxMCkgQVMgcmVzdWx0OworICAgICAgcmVz dWx0ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAoYiA1IDYgNyA4IDkgMTApCisoMSByb3cp CisKK1NFTEVDVCB0ZXN0X2Jtc19hZGRfcmFuZ2UoTlVMTCwgMTAsIDUpIEFTIHJlc3VsdDsKKyBy ZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfYWRkX3Jhbmdl KE5VTEwsIE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgdGVzdF9ibXNfY29tcGFyZSgnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7 CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1z X2NvbXBhcmUoTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisg ICAgIC0xCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19jb21wYXJlKE5VTEwsIE5VTEwpIEFT IHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorKDEgcm93KQorCitTRUxFQ1Qg dGVzdF9ibXNfY29weShOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAKKygx IHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2RlbF9tZW1iZXIoJyhiIDQyKScsIDQyKSBBUyByZXN1 bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2Rl bF9tZW1iZXIoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19kZWxfbWVtYmVycygnKGIgNSknLCBOVUxMKSBB UyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAoYiA1KQorKDEgcm93KQorCitTRUxFQ1Qg dGVzdF9ibXNfZGVsX21lbWJlcnMoTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAK Ky0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19kaWZmZXJlbmNlKCcoYiA1 KScsICcoYiA1IDEwKScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgdGVzdF9ibXNfZGlmZmVyZW5jZSgnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7 CisgcmVzdWx0IAorLS0tLS0tLS0KKyAoYiA1KQorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNf ZGlmZmVyZW5jZShOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0K KyAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2RpZmZlcmVuY2UoTlVMTCwgTlVMTCkgQVMg cmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jt c19lcXVhbCgnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyBm CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19lcXVhbChOVUxMLCAnKGIgNSknKSBBUyByZXN1 bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19l cXVhbChOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19nZXRfc2luZ2xldG9uX21lbWJlcignJywgMTAwMCkgQVMg cmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIC0xCisoMSByb3cpCisKK1NFTEVDVCB0 ZXN0X2Jtc19nZXRfc2luZ2xldG9uX21lbWJlcihOVUxMLCAtMSkgQVMgcmVzdWx0OworIHJlc3Vs dCAKKy0tLS0tLS0tCisgICAgIC0xCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19oYXNoX3Zh bHVlKE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorKDEgcm93 KQorCitTRUxFQ1QgdGVzdF9ibXNfaW50X21lbWJlcnMoJyhiIDEpJywgJyhiIDIpJykgQVMgcmVz dWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19p bnRfbWVtYmVycygnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0K KyAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX2ludF9tZW1iZXJzKE5VTEwsICcoYiA1KScp IEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVz dF9ibXNfaW50X21lbWJlcnMoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0t LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoJyhiIDEpJywgJyhi IDIpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCB0ZXN0X2Jtc19pbnRlcnNlY3QoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAK Ky0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoTlVMTCwg JyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NF TEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAK Ky0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19pc19lbXB0eShOVUxMKSBB UyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0 X2Jtc19pc19tZW1iZXIoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0t LS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfaXNfc3Vic2V0KCcoYiA1KScsIE5V TEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IHRlc3RfYm1zX2lzX3N1YnNldChOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAor LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19pc19zdWJzZXQoTlVMTCwg TlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxF Q1QgdGVzdF9ibXNfam9pbignKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0t LS0tLS0KKyAoYiA1KQorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfam9pbihOVUxMLCAnKGIg NSknKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAoYiA1KQorKDEgcm93KQorCitT RUxFQ1QgdGVzdF9ibXNfam9pbihOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0t LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX21ha2Vfc2luZ2xldG9uKE5VTEwp IEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVz dF9ibXNfbWVtYmVyX2luZGV4KCcnLCA1KSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0K KyAgICAgLTEKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX21lbWJlcl9pbmRleChOVUxMLCA1 KSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgLTEKKygxIHJvdykKKworU0VM RUNUIHRlc3RfYm1zX21lbWJlcnNoaXAoTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0t LS0tCisgICAgICAwCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19uZXh0X21lbWJlcignJywg NSkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIC0yCisoMSByb3cpCisKK1NF TEVDVCB0ZXN0X2Jtc19uZXh0X21lbWJlcignKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgICAgLTIKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX25leHRf bWVtYmVyKE5VTEwsIDUpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAtMgor KDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfbmV4dF9tZW1iZXIoTlVMTCwgTlVMTCkgQVMgcmVz dWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIC0yCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0 X2Jtc19ub25lbXB0eV9kaWZmZXJlbmNlKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1 bHQgCistLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2Rp ZmZlcmVuY2UoTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisg ZgorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfbm9uZW1wdHlfZGlmZmVyZW5jZShOVUxMLCBO VUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVD VCB0ZXN0X2Jtc19vdmVybGFwKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCist LS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXAoTlVMTCwgJyhi IDUpJykgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxF Q1QgdGVzdF9ibXNfb3ZlcmxhcChOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CisgcmVzdWx0IAorLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19vdmVybGFwX2xpc3QoJyhiIDUp JywgTlVMTCkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgZgorKDEgcm93KQorCitT RUxFQ1QgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KE5VTEwsIEFSUkFZWzEsMiwzXSkgQVMgcmVzdWx0 OworIHJlc3VsdCAKKy0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfb3Zl cmxhcF9saXN0KE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIGYK KygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3ByZXZfbWVtYmVyKCcnLCA1KSBBUyByZXN1bHQ7 CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgLTIKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1z X3ByZXZfbWVtYmVyKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0t LQorICAgICAtMgorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfcHJldl9tZW1iZXIoTlVMTCwg NSkgQVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIC0yCisoMSByb3cpCisKK1NF TEVDVCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoJyhiIDEgMiAzKScsIE5VTEwpIEFTIHJlc3Vs dDsKKyByZXN1bHQgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfcmVw bGFjZV9tZW1iZXJzKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0t LQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfcmVwbGFjZV9tZW1iZXJzKE5VTEwsICco YiA1KScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorIChiIDUpCisoMSByb3cpCisK K1NFTEVDVCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoTlVMTCwgTlVMTCkgQVMgcmVzdWx0Owor IHJlc3VsdCAKKy0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc19zaW5nbGV0 b25fbWVtYmVyKE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgIAor KDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDUpJywgTlVMTCkg QVMgcmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAyCisoMSByb3cpCisKK1NFTEVD VCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZShOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHRlc3RfYm1zX3N1YnNl dF9jb21wYXJlKE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0tLQorICAg ICAgMAorKDEgcm93KQorCitTRUxFQ1QgdGVzdF9ibXNfdW5pb24oJyhiIDUpJywgTlVMTCkgQVMg cmVzdWx0OworIHJlc3VsdCAKKy0tLS0tLS0tCisgKGIgNSkKKygxIHJvdykKKworU0VMRUNUIHRl c3RfYm1zX3VuaW9uKE5VTEwsICcoYiA1KScpIEFTIHJlc3VsdDsKKyByZXN1bHQgCistLS0tLS0t LQorIChiIDUpCisoMSByb3cpCisKK1NFTEVDVCB0ZXN0X2Jtc191bmlvbihOVUxMLCBOVUxMKSBB UyByZXN1bHQ7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAKKygxIHJvdykKKwogRFJPUCBFWFRFTlNJ T04gdGVzdF9iaXRtYXBzZXQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0 bWFwc2V0L3NxbC90ZXN0X2JpdG1hcHNldC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0 bWFwc2V0L3NxbC90ZXN0X2JpdG1hcHNldC5zcWwKaW5kZXggMmIyYzcyYzg3NmIuLjY3ZTBmMDFj Y2I2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0bWFwc2V0L3NxbC90ZXN0 X2JpdG1hcHNldC5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC9zcWwv dGVzdF9iaXRtYXBzZXQuc3FsCkBAIC0yMyw2ICsyMyw4IEBAIFNFTEVDVCB0ZXN0X2Jtc19yZXBs YWNlX21lbWJlcnMoJyhiIDEgMiAzKScsIE5VTEwpIEFTIHJlc3VsdDsKIFNFTEVDVCB0ZXN0X2Jt c19yZXBsYWNlX21lbWJlcnMoJyhiIDEgMiAzKScsICcoYiAzIDUgNiknKSBBUyByZXN1bHQ7CiBT RUxFQ1QgdGVzdF9ibXNfcmVwbGFjZV9tZW1iZXJzKCcoYiAxIDIgMyknLCAnKGIgMyA1KScpIEFT IHJlc3VsdDsKIFNFTEVDVCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoJyhiIDEgMiknLCAnKGIg MyA1IDcpJykgQVMgcmVzdWx0OworLS0gRm9yY2UgcmVwYWxsb2MoKSB3aXRoIGxhcmdlciBzZXQK K1NFTEVDVCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoJyhiIDEgMiAzIDQgNSknLCAnKGIgNTAw IDYwMCknKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19kZWxfbWVtYmVyKCkKIFNFTEVDVCB0ZXN0X2Jt c19kZWxfbWVtYmVyKCcoYiknLCAtMjApOyAtLSBlcnJvcgpAQCAtMzQsMTUgKzM2LDMyIEBAIFNF TEVDVCB0ZXN0X2Jtc19kZWxfbWVtYmVyKCcoYiAxIDIgMyknLCAyKSBBUyByZXN1bHQ7CiBTRUxF Q1QgdGVzdF9ibXNfZGVsX21lbWJlcih0ZXN0X2Jtc19kZWxfbWVtYmVyKCcoYiAwIDMxIDMyIDYz IDY0KScsIDMyKSwgNjMpIEFTIHJlc3VsdDsKIC0tIFdvcmQgYm91bmRhcnkKIFNFTEVDVCB0ZXN0 X2Jtc19kZWxfbWVtYmVyKHRlc3RfYm1zX2FkZF9yYW5nZSgnKGIpJywgMzAsIDM0KSwgMzIpIEFT IHJlc3VsdDsKKy0tIEZvcmNlIHdvcmQgY291bnQgY2hhbmdlcworU0VMRUNUIHRlc3RfYm1zX2Rl bF9tZW1iZXIoJyhiIDEgMjAwKScsIDIwMCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2Rl bF9tZW1iZXIoJyhiIDEgNTAgMTAwIDIwMCknLCAyMDApIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0 X2Jtc19kZWxfbWVtYmVyKCcoYiAxIDUwIDEwMCAyMDApJywgMTAwKSBBUyByZXN1bHQ7CisKKy0t IGJtc19kZWxfbWVtYmVycygpCitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiKScsICco YiAxMCknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiIDEwKScs ICcoYiAxMCknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiIDEw KScsICcoYiA1KScpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19kZWxfbWVtYmVycygnKGIg MSAyIDMpJywgJyhiIDIpJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2RlbF9tZW1iZXJz KCcoYiA1IDEwMCknLCAnKGIgMTAwKScpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19kZWxf bWVtYmVycygnKGIgNSAxMDAgMjAwKScsICcoYiAyMDApJykgQVMgcmVzdWx0OworU0VMRUNUIHRl c3RfYm1zX2RlbF9tZW1iZXJzKCcoYiAxIDIgMTAwIDIwMCAzMDApJywgJyhiIDEgMiknKSBBUyBy ZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZGVsX21lbWJlcnMoJyhiIDEgMiAxMDAgMjAwIDMwMCkn LCAnKGIgMjAwIDMwMCknKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19qb2luKCkKIFNFTEVDVCB0ZXN0 X2Jtc19qb2luKCcoYiAxIDMgNSknLCBOVUxMKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNf am9pbihOVUxMLCAnKGIgMiA0IDYpJykgQVMgcmVzdWx0OwogU0VMRUNUIHRlc3RfYm1zX2pvaW4o JyhiIDEgMyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfam9p bignKGIgMSAzIDUpJywgJyhiIDEgNCA1KScpIEFTIHJlc3VsdDsKKy0tIEZvcmNlIHdvcmQgY291 bnQgY2hhbmdlcworU0VMRUNUIHRlc3RfYm1zX2pvaW4oJyhiIDUpJywgJyhiIDEwMCknKSBBUyBy ZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfam9pbignKGIgMSAyKScsICcoYiAxMDAgMjAwIDMwMCkn KSBBUyByZXN1bHQ7CiAKIC0tIGJtc191bmlvbigpCi0tLSBPdmVybGFwcGluZyBzZXRzLgorLS0g T3ZlcmxhcHBpbmcgc2V0cwogU0VMRUNUIHRlc3RfYm1zX3VuaW9uKCcoYiAxIDMgNSknLCAnKGIg MyA1IDcpJykgQVMgcmVzdWx0OwogLS0gVW5pb24gd2l0aCBOVUxMCiBTRUxFQ1QgdGVzdF9ibXNf dW5pb24oJyhiIDEgMyA1KScsICcoYiknKSBBUyByZXN1bHQ7CkBAIC01MywyMSArNzIsMjcgQEAg U0VMRUNUIHRlc3RfYm1zX3VuaW9uKAogICAgICAgICAgdGVzdF9ibXNfYWRkX3JhbmdlKCcoYikn LCAwLCAxNSksCiAgICAgICAgICB0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiKScsIDEwLCAyMCkKICAg ICAgICApIEFTIHJlc3VsdDsKKy0tIFVuaW9uIHdpdGggdmFycnlpbmcgd29yZCBjb3VudHMKK1NF TEVDVCB0ZXN0X2Jtc191bmlvbignKGIgMSAyKScsICcoYiAxMDAgMzAwKScpIEFTIHJlc3VsdDsK K1NFTEVDVCB0ZXN0X2Jtc191bmlvbignKGIgMTAwIDMwMCknLCAnKGIgMSAyKScpIEFTIHJlc3Vs dDsKIAogLS0gYm1zX2ludGVyc2VjdCgpCiAtLSBPdmVybGFwcGluZyBzZXRzCiBTRUxFQ1QgdGVz dF9ibXNfaW50ZXJzZWN0KCcoYiAxIDMgNSknLCAnKGIgMyA1IDcpJykgQVMgcmVzdWx0OwogLS0g RGlzam9pbnQgc2V0cwogU0VMRUNUIHRlc3RfYm1zX2ludGVyc2VjdCgnKGIgMSAzIDUpJywgJyhi IDIgNCA2KScpIEFTIHJlc3VsdDsKLS0tIEludGVyc2VjdCB3aXRoIGVtcHR5LgorLS0gSW50ZXJz ZWN0IHdpdGggZW1wdHkKIFNFTEVDVCB0ZXN0X2Jtc19pbnRlcnNlY3QoJyhiIDEgMyA1KScsICco YiknKSBBUyByZXN1bHQ7CistLSBJbnRlcnNlY3Qgd2l0aCB2YXJyeWluZyB3b3JkIGNvdW50cwor U0VMRUNUIHRlc3RfYm1zX2ludGVyc2VjdCgnKGIgMSAzMDApJywgJyhiIDEgMiAzIDQgNSknKSBB UyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfaW50ZXJzZWN0KCcoYiAxIDIgMyA0IDUpJywgJyhi IDEgMzAwKScpIEFTIHJlc3VsdDsKIAogLS0gYm1zX2ludF9tZW1iZXJzKCkKIC0tIE92ZXJsYXBw aW5nIHNldHMKIFNFTEVDVCB0ZXN0X2Jtc19pbnRfbWVtYmVycygnKGIgMSAzIDUpJywgJyhiIDMg NSA3KScpIEFTIHJlc3VsdDsKIC0tIERpc2pvaW50IHNldHMKIFNFTEVDVCB0ZXN0X2Jtc19pbnRf bWVtYmVycygnKGIgMSAzIDUpJywgJyhiIDIgNCA2KScpIEFTIHJlc3VsdDsKLS0tIEludGVyc2Vj dCB3aXRoIGVtcHR5LgorLS0gSW50ZXJzZWN0IHdpdGggZW1wdHkKIFNFTEVDVCB0ZXN0X2Jtc19p bnRfbWVtYmVycygnKGIgMSAzIDUpJywgJyhiKScpIEFTIHJlc3VsdDsKIC0tIE11bHRpcGxlIG1l bWJlcnMKIFNFTEVDVCB0ZXN0X2Jtc19pbnRfbWVtYmVycygnKGIgMCAzMSAzMiA2MyA2NCknLCAn KGIgMzEgMzIgNjQgNjUpJykgQVMgcmVzdWx0OwpAQCAtODIsMTAgKzEwNywxMyBAQCBTRUxFQ1Qg dGVzdF9ibXNfZGlmZmVyZW5jZSgnKGIgMSAzIDUpJywgJyhiIDEgMyA1KScpIEFTIHJlc3VsdDsK IC0tIFN1YnN0cmFjdGlvbiB0byBlbXB0eQogU0VMRUNUIHRlc3RfYm1zX2RpZmZlcmVuY2UoJyhi IDQyKScsICcoYiA0MiknKSBBUyByZXN1bHQ7CiAtLSBTdWJ0cmFjdGlvbiBlZGdlIGNhc2UKLVNF TEVDVCB0ZXN0X2Jtc19kaWZmZXJlbmNlKAorU0VMRUNUIGxlbmd0aCh0ZXN0X2Jtc19kaWZmZXJl bmNlKAogICAgICAgICAgdGVzdF9ibXNfYWRkX3JhbmdlKCcoYiknLCAwLCAxMDApLAogICAgICAg ICAgdGVzdF9ibXNfYWRkX3JhbmdlKCcoYiknLCA1MCwgMTUwKQotICAgICAgICkgQVMgcmVzdWx0 OworICAgICAgICkpIEFTIHJlc3VsdDsKKy0tIERpZmZlcmVuY2Ugd2l0aCBkaWZmZXJlbnQgd29y ZCBjb3VudHMKK1NFTEVDVCB0ZXN0X2Jtc19kaWZmZXJlbmNlKCcoYiA1IDEwMCknLCAnKGIgNSkn KSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZGlmZmVyZW5jZSgnKGIgMSAyIDEwMCAyMDAp JywgJyhiIDEgMiknKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19pc19tZW1iZXIoKQogU0VMRUNUIHRl c3RfYm1zX2lzX21lbWJlcignKGIpJywgLTUpOyAtLSBlcnJvcgpAQCAtOTksNiArMTI3LDEwIEBA IFNFTEVDVCB0ZXN0X2Jtc19tZW1iZXJfaW5kZXgoTlVMTCwgMSkgQVMgcmVzdWx0OwogU0VMRUNU IHRlc3RfYm1zX21lbWJlcl9pbmRleCgnKGIgMSAzIDUpJywgMikgQVMgcmVzdWx0OwogU0VMRUNU IHRlc3RfYm1zX21lbWJlcl9pbmRleCgnKGIgMSAzIDUpJywgMSkgQVMgcmVzdWx0OwogU0VMRUNU IHRlc3RfYm1zX21lbWJlcl9pbmRleCgnKGIgMSAzIDUpJywgMykgQVMgcmVzdWx0OworLS0gTWVt YmVyIGluZGV4IHdpdGggdmFyaW91cyB3b3JkIHBvc2l0aW9ucworU0VMRUNUIHRlc3RfYm1zX21l bWJlcl9pbmRleCgnKGIgMTAwIDIwMCknLCAxMDApIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jt c19tZW1iZXJfaW5kZXgoJyhiIDEwMCAyMDApJywgMjAwKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVz dF9ibXNfbWVtYmVyX2luZGV4KCcoYiAxIDUwIDEwMCAyMDApJywgMjAwKSBBUyByZXN1bHQ7CiAK IC0tIGJtc19udW1fbWVtYmVycygpCiBTRUxFQ1QgdGVzdF9ibXNfbnVtX21lbWJlcnMoJyhiKScp IEFTIHJlc3VsdDsKQEAgLTExMSw2ICsxNDMsOSBAQCBTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoJyhi KScsICcoYiAxIDMgNSknKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoJyhiIDEg MyA1KScsICcoYiknKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoJyhiIDEgMyA1 KScsICcoYiAxIDMgNSknKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoJyhiIDEg MyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7CistLSBFcXVhbCB3aXRoIGRpZmZlcmVudCB3 b3JkIGNvdW50cworU0VMRUNUIHRlc3RfYm1zX2VxdWFsKCcoYiA1KScsICcoYiAxMDApJykgQVMg cmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2VxdWFsKCcoYiA1IDEwKScsICcoYiAxMDAgMjAwIDMw MCknKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19jb21wYXJlKCkKIFNFTEVDVCB0ZXN0X2Jtc19jb21w YXJlKCcoYiknLCAnKGIpJykgQVMgcmVzdWx0OwpAQCAtMTM4LDYgKzE3Myw5IEBAIFNFTEVDVCBs ZW5ndGgodGVzdF9ibXNfYWRkX3JhbmdlKCcoYiknLCAwLCAxMDAwKSkgQVMgcmVzdWx0OwogLS0g Rm9yY2UgcmVhbGxvY2F0aW9ucwogU0VMRUNUIGxlbmd0aCh0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhi KScsIDAsIDIwMCkpIEFTIHJlc3VsdDsKIFNFTEVDVCBsZW5ndGgodGVzdF9ibXNfYWRkX3Jhbmdl KCcoYiknLCAxMDAwLCAxMTAwKSkgQVMgcmVzdWx0OworLS0gRm9yY2Ugd29yZCBjb3VudCBleHBh bnNpb24KK1NFTEVDVCB0ZXN0X2Jtc19hZGRfcmFuZ2UoJyhiIDUpJywgMTAwLCAxMDUpIEFTIHJl c3VsdDsKK1NFTEVDVCBsZW5ndGgodGVzdF9ibXNfYWRkX3JhbmdlKCcoYiAxIDIpJywgMjAwLCAy NTApKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19tZW1iZXJzaGlwKCkKIFNFTEVDVCB0ZXN0X2Jtc19t ZW1iZXJzaGlwKCcoYiknKSBBUyByZXN1bHQ7CkBAIC0xNTAsMTAgKzE4OCwxMiBAQCBTRUxFQ1Qg dGVzdF9ibXNfaXNfZW1wdHkoJyhiKScpIEFTIHJlc3VsdDsKIFNFTEVDVCB0ZXN0X2Jtc19pc19l bXB0eSgnKGIgMSknKSBBUyByZXN1bHQ7CiAKIC0tIGJtc19zaW5nbGV0b25fbWVtYmVyKCkKK1NF TEVDVCB0ZXN0X2Jtc19zaW5nbGV0b25fbWVtYmVyKCcoYiknKTsgLS0gZXJyb3IKIFNFTEVDVCB0 ZXN0X2Jtc19zaW5nbGV0b25fbWVtYmVyKCcoYiAxIDIpJyk7IC0tIGVycm9yCiBTRUxFQ1QgdGVz dF9ibXNfc2luZ2xldG9uX21lbWJlcignKGIgNDIpJykgQVMgcmVzdWx0OwogCiAtLSBibXNfZ2V0 X3NpbmdsZXRvbl9tZW1iZXIoKQorU0VMRUNUIHRlc3RfYm1zX2dldF9zaW5nbGV0b25fbWVtYmVy KCcoYiknLCAxMDAwKTsgLS0gZXJyb3IKIC0tIE5vdCBhIHNpbmdsZXRvbiwgcmV0dXJucyBpbnB1 dCBkZWZhdWx0CiBTRUxFQ1QgdGVzdF9ibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoJyhiIDMgNikn LCAxMDAwKSBBUyByZXN1bHQ7CiAtLSBTaW5nbGV0b25lLCByZXR1cm5zIHNvbGUgbWVtYmVyCkBA IC0xNzYsNiArMjE2LDggQEAgU0VMRUNUIHRlc3RfYm1zX3ByZXZfbWVtYmVyKCcoYiA1IDEwIDE1 IDIwKScsIDIwKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfcHJldl9tZW1iZXIoJyhiIDUg MTAgMTUgMjApJywgNSkgQVMgcmVzdWx0OwogLS0gRW1wdHkgc2V0CiBTRUxFQ1QgdGVzdF9ibXNf cHJldl9tZW1iZXIoJyhiKScsIDEwMCkgQVMgcmVzdWx0OworLS0gTmVnYXRpdmUgcHJldmJpdCBz aG91bGQgcmVzdWx0IGluIGhpZ2hlc3QgcG9zc2libGUgYml0IGluIHNldAorU0VMRUNUIHRlc3Rf Ym1zX3ByZXZfbWVtYmVyKCcoYiAwIDYzIDY0IDEyNyknLCAtMSkgQVMgcmVzdWx0OwogCiAtLSBi bXNfaGFzaF92YWx1ZSgpCiBTRUxFQ1QgdGVzdF9ibXNfaGFzaF92YWx1ZSgnKGIpJykgPSAwIEFT IHJlc3VsdDsKQEAgLTE5NCwyMiArMjM2LDQwIEBAIFNFTEVDVCB0ZXN0X2Jtc19pc19zdWJzZXQo JyhiIDEgMyA1KScsICcoYiAxIDMpJykgQVMgcmVzdWx0OwogU0VMRUNUIHRlc3RfYm1zX2lzX3N1 YnNldCgnKGIgMSAzKScsICcoYiAyIDQpJykgQVMgcmVzdWx0OwogU0VMRUNUIHRlc3RfYm1zX2lz X3N1YnNldCh0ZXN0X2Jtc19hZGRfcmFuZ2UoTlVMTCwgMCwgMzEpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2Jtc19hZGRfcmFuZ2UoTlVMTCwgMCwgNjMpKSBBUyByZXN1bHQ7Cist LSBJcyBzdWJzZXQgd2l0aCBzaG9ydGVyIHdvcmQgY291bnRzCitTRUxFQ1QgdGVzdF9ibXNfaXNf c3Vic2V0KCcoYiA1IDEwMCknLCAnKGIgNSknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNf aXNfc3Vic2V0KCcoYiAxIDIgNTAgMTAwKScsICcoYiAxIDIpJykgQVMgcmVzdWx0OwogCiAtLSBi bXNfc3Vic2V0X2NvbXBhcmUoKQotU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5VTEws IE5VTEwpIEFTIHJlc3VsdDsKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAz KScsIE5VTEwpIEFTIHJlc3VsdDsKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZShOVUxM LCAnKGIgMSAzKScpIEFTIHJlc3VsdDsKLVNFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgn KGIgMSAzIDUpJywgJyhiIDEgMyknKSBBUyByZXN1bHQ7Ci1TRUxFQ1QgdGVzdF9ibXNfc3Vic2V0 X2NvbXBhcmUoJyhiIDEgMyknLCAnKGIgMSAzIDUpJykgQVMgcmVzdWx0OwotU0VMRUNUIHRlc3Rf Ym1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMgNSknLCAnKGIgMSAzIDUpJykgQVMgcmVzdWx0Owot U0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMgNSknLCAnKGIgMiA0IDYpJykg QVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5VTEwsIE5VTEwpOwor U0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKE5VTEwsICcoYiAxIDMpJyk7CitTRUxFQ1Qg dGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiKScsICcoYiknKTsKK1NFTEVDVCB0ZXN0X2Jtc19z dWJzZXRfY29tcGFyZSgnKGIpJywgJyhiIDEpJyk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2Nv bXBhcmUoJyhiIDEpJywgJyhiKScpOworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCco YiAxIDMpJywgTlVMTCk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMyA1 KScsICcoYiAxIDMgNSknKTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAz KScsICcoYiAxIDMgNSknKTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAz IDUpJywgJyhiIDEgMyknKTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAy KScsICcoYiAxIDMpJyk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMikn LCAnKGIgMSA0KScpOworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDMpJywg JyhiIDEgMyA2NCknKTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSAzIDY0 KScsICcoYiAxIDMpJyk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMyA2 NCknLCAnKGIgMSAzIDY1KScpOworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAx IDMpJywgJyhiIDIgNCknKTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgMSkn LCAnKGIgNjQpJyk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDApJywgJyhi IDMyKScpOworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAwKScsICcoYiA2NCkn KTsKK1NFTEVDVCB0ZXN0X2Jtc19zdWJzZXRfY29tcGFyZSgnKGIgNjQpJywgJyhiIDEpJyk7CitT RUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDEgMiknLCAnKGIgMSAyIDY0KScpOwor U0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiA2NCAyMDApJywgJyhiIDEgMjAxKScp OworU0VMRUNUIHRlc3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiAxIDY0IDY1KScsICcoYiAxIDIg NjQpJyk7CitTRUxFQ1QgdGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoJyhiIDIgNjQgMTI4KScsICco YiAxIDY1KScpOwogCiAtLSBibXNfY29weSgpCiBTRUxFQ1QgdGVzdF9ibXNfY29weShOVUxMKSBB UyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfY29weSgnKGIgMSAzIDUgNyknKSBBUyByZXN1bHQ7 CiAKIC0tIGJtc19hZGRfbWVtYmVycygpCi1TRUxFQ1QgdGVzdF9ibXNfYWRkX21lbWJlcignKGIp JywgMTAwMCk7IC0tIGVycm9yCiBTRUxFQ1QgdGVzdF9ibXNfYWRkX21lbWJlcnMoJyhiIDEgMykn LCAnKGIgNSA3KScpIEFTIHJlc3VsdDsKIFNFTEVDVCB0ZXN0X2Jtc19hZGRfbWVtYmVycygnKGIg MSAzIDUpJywgJyhiIDIgNSA3KScpIEFTIHJlc3VsdDsKIFNFTEVDVCB0ZXN0X2Jtc19hZGRfbWVt YmVycygnKGIgMSAzIDUpJywgJyhiIDEwMCAyMDAgMzAwKScpIEFTIHJlc3VsdDsKQEAgLTI0Myw2 ICszMDMsOSBAQCBTRUxFQ1QgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KCcoYiA3IDEwKScsIEFSUkFZ WzYsNyw4LDldKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KCcoYiAx IDUpJywgQVJSQVlbNiw3LDgsOV0pIEFTIHJlc3VsdDsKIC0tIEVtcHR5IGxpc3QKIFNFTEVDVCB0 ZXN0X2Jtc19vdmVybGFwX2xpc3QoJyhiIDEpJywgQVJSQVlbXTo6aW50ZWdlcltdKSBBUyByZXN1 bHQ7CistLSBPdmVybGFwIGxpc3Qgd2l0aCBuZWdhdGl2ZSBudW1iZXJzCitTRUxFQ1QgdGVzdF9i bXNfb3ZlcmxhcF9saXN0KCcoYiA1IDEwKScsIEFSUkFZWy0xLDVdKSBBUyByZXN1bHQ7IC0tIGVy cm9yCitTRUxFQ1QgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KCcoYiAxIDIgMyknLCBBUlJBWVstNSwt MSwwXSkgQVMgcmVzdWx0OyAtLSBlcnJvcgogCiAtLSBibXNfbm9uZW1wdHlfZGlmZmVyZW5jZSgp CiBTRUxFQ1QgdGVzdF9ibXNfbm9uZW1wdHlfZGlmZmVyZW5jZShOVUxMLCAnKGIgMSAzIDUpJykg QVMgcmVzdWx0OwpAQCAtMjUwLDggKzMxMyw5MiBAQCBTRUxFQ1QgdGVzdF9ibXNfbm9uZW1wdHlf ZGlmZmVyZW5jZSgnKGIgMSAzIDUpJywgTlVMTCkgQVMgcmVzdWx0OwogU0VMRUNUIHRlc3RfYm1z X25vbmVtcHR5X2RpZmZlcmVuY2UoJyhiIDEgMyA1KScsICcoYiAyIDQgNiknKSBBUyByZXN1bHQ7 CiBTRUxFQ1QgdGVzdF9ibXNfbm9uZW1wdHlfZGlmZmVyZW5jZSgnKGIgMSAzIDUpJywgJyhiIDEg NSknKSBBUyByZXN1bHQ7CiBTRUxFQ1QgdGVzdF9ibXNfbm9uZW1wdHlfZGlmZmVyZW5jZSgnKGIg MSAzIDUpJywgJyhiIDEgMyA1KScpIEFTIHJlc3VsdDsKKy0tIERpZmZlcmVuY2Ugd2l0aCBkaWZm ZXJlbnQgd29yZCBjb3VudHMKK1NFTEVDVCB0ZXN0X2Jtc19ub25lbXB0eV9kaWZmZXJlbmNlKCco YiA1KScsICcoYiAxMDApJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2Rp ZmZlcmVuY2UoJyhiIDEwMCknLCAnKGIgNSknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNf bm9uZW1wdHlfZGlmZmVyZW5jZSgnKGIgMSAyKScsICcoYiA1MCAxMDApJykgQVMgcmVzdWx0Owog CiAtLSByYW5kb20gb3BlcmF0aW9ucwogU0VMRUNUIHRlc3RfcmFuZG9tX29wZXJhdGlvbnMoLTEs IDEwMDAwLCA4MTkyMCwgMCkgPiAwIEFTIHJlc3VsdDsKIAorLS0gQ292ZXIgdGhlIHRlc3QgQVBJ J3MgY29ybmVyIGNhc2VzIHN1Y2ggYXMgd2hlbiBBUkdJU05VTEwsCistLSBvciBWQVJTSVpFX0FO WV9FWEhEUiA9PSAwLCBldGMuCisKK1NFTEVDVCB0ZXN0X2JpdG1hcF9oYXNoKE5VTEwpIEFTIHJl c3VsdDsKK1NFTEVDVCB0ZXN0X2JpdG1hcF9tYXRjaCgnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7 CitTRUxFQ1QgdGVzdF9iaXRtYXBfbWF0Y2goTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworU0VM RUNUIHRlc3RfYml0bWFwX21hdGNoKE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0 X2Jtc19hZGRfbWVtYmVyKCcoYiknLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNf YWRkX3JhbmdlKCcoYiA1KScsIDUsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19h ZGRfcmFuZ2UoJyhiIDUpJywgTlVMTCwgMTApIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19h ZGRfcmFuZ2UoJyhiIDUpJywgTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1z X2FkZF9yYW5nZShOVUxMLCA1LCAxMCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2FkZF9y YW5nZShOVUxMLCAxMCwgNSkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2FkZF9yYW5nZShO VUxMLCBOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfY29tcGFyZSgnKGIg NSknLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfY29tcGFyZShOVUxMLCAnKGIg NSknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfY29tcGFyZShOVUxMLCBOVUxMKSBBUyBy ZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfY29weShOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVz dF9ibXNfZGVsX21lbWJlcignKGIgNDIpJywgNDIpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jt c19kZWxfbWVtYmVyKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19k ZWxfbWVtYmVycygnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZGVs X21lbWJlcnMoTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2RpZmZl cmVuY2UoJyhiIDUpJywgJyhiIDUgMTApJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2Rp ZmZlcmVuY2UoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2RpZmZl cmVuY2UoTlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2RpZmZlcmVu Y2UoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2VxdWFsKCcoYiA1KScs IE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19lcXVhbChOVUxMLCAnKGIgNSknKSBB UyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfZXF1YWwoTlVMTCwgTlVMTCkgQVMgcmVzdWx0Owor U0VMRUNUIHRlc3RfYm1zX2dldF9zaW5nbGV0b25fbWVtYmVyKCcnLCAxMDAwKSBBUyByZXN1bHQ7 CitTRUxFQ1QgdGVzdF9ibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoTlVMTCwgLTEpIEFTIHJlc3Vs dDsKK1NFTEVDVCB0ZXN0X2Jtc19oYXNoX3ZhbHVlKE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0 ZXN0X2Jtc19pbnRfbWVtYmVycygnKGIgMSknLCAnKGIgMiknKSBBUyByZXN1bHQ7CitTRUxFQ1Qg dGVzdF9ibXNfaW50X21lbWJlcnMoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRl c3RfYm1zX2ludF9tZW1iZXJzKE5VTEwsICcoYiA1KScpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0 X2Jtc19pbnRfbWVtYmVycyhOVUxMLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNf aW50ZXJzZWN0KCcoYiAxKScsICcoYiAyKScpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19p bnRlcnNlY3QoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX2ludGVy c2VjdChOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfaW50ZXJzZWN0 KE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19pc19lbXB0eShOVUxMKSBB UyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfaXNfbWVtYmVyKCcoYiA1KScsIE5VTEwpIEFTIHJl c3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19pc19zdWJzZXQoJyhiIDUpJywgTlVMTCkgQVMgcmVzdWx0 OworU0VMRUNUIHRlc3RfYm1zX2lzX3N1YnNldChOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CitT RUxFQ1QgdGVzdF9ibXNfaXNfc3Vic2V0KE5VTEwsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0 ZXN0X2Jtc19qb2luKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19q b2luKE5VTEwsICcoYiA1KScpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19qb2luKE5VTEws IE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19tYWtlX3NpbmdsZXRvbihOVUxMKSBB UyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfbWVtYmVyX2luZGV4KCcnLCA1KSBBUyByZXN1bHQ7 CitTRUxFQ1QgdGVzdF9ibXNfbWVtYmVyX2luZGV4KE5VTEwsIDUpIEFTIHJlc3VsdDsKK1NFTEVD VCB0ZXN0X2Jtc19tZW1iZXJzaGlwKE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19u ZXh0X21lbWJlcignJywgNSkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX25leHRfbWVtYmVy KCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc19uZXh0X21lbWJlcihO VUxMLCA1KSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfbmV4dF9tZW1iZXIoTlVMTCwgTlVM TCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZlcmVuY2UoJyhiIDUp JywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZlcmVuY2Uo TlVMTCwgJyhiIDUpJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZl cmVuY2UoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXAoJyhi IDUpJywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXAoTlVMTCwgJyhi IDUpJykgQVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXAoTlVMTCwgTlVMTCkgQVMg cmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXBfbGlzdCgnKGIgNSknLCBOVUxMKSBBUyBy ZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KE5VTEwsIEFSUkFZWzEsMiwzXSkg QVMgcmVzdWx0OworU0VMRUNUIHRlc3RfYm1zX292ZXJsYXBfbGlzdChOVUxMLCBOVUxMKSBBUyBy ZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfcHJldl9tZW1iZXIoJycsIDUpIEFTIHJlc3VsdDsKK1NF TEVDVCB0ZXN0X2Jtc19wcmV2X21lbWJlcignKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxF Q1QgdGVzdF9ibXNfcHJldl9tZW1iZXIoTlVMTCwgNSkgQVMgcmVzdWx0OworU0VMRUNUIHRlc3Rf Ym1zX3JlcGxhY2VfbWVtYmVycygnKGIgMSAyIDMpJywgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNU IHRlc3RfYm1zX3JlcGxhY2VfbWVtYmVycygnKGIgNSknLCBOVUxMKSBBUyByZXN1bHQ7CitTRUxF Q1QgdGVzdF9ibXNfcmVwbGFjZV9tZW1iZXJzKE5VTEwsICcoYiA1KScpIEFTIHJlc3VsdDsKK1NF TEVDVCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworU0VM RUNUIHRlc3RfYm1zX3NpbmdsZXRvbl9tZW1iZXIoTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRl c3RfYm1zX3N1YnNldF9jb21wYXJlKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0 ZXN0X2Jtc19zdWJzZXRfY29tcGFyZShOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CitTRUxFQ1Qg dGVzdF9ibXNfc3Vic2V0X2NvbXBhcmUoTlVMTCwgTlVMTCkgQVMgcmVzdWx0OworU0VMRUNUIHRl c3RfYm1zX3VuaW9uKCcoYiA1KScsIE5VTEwpIEFTIHJlc3VsdDsKK1NFTEVDVCB0ZXN0X2Jtc191 bmlvbihOVUxMLCAnKGIgNSknKSBBUyByZXN1bHQ7CitTRUxFQ1QgdGVzdF9ibXNfdW5pb24oTlVM TCwgTlVMTCkgQVMgcmVzdWx0OworCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2JpdG1hcHNldDsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRtYXBzZXQvdGVzdF9iaXRtYXBzZXQt LTEuMC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0bWFwc2V0L3Rlc3RfYml0bWFwc2V0 LS0xLjAuc3FsCmluZGV4IDk1ZjVlZTAyZTNmLi5iOTVjNGQwZGRhNSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC90ZXN0X2JpdG1hcHNldC0tMS4wLnNxbAorKysg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0bWFwc2V0L3Rlc3RfYml0bWFwc2V0LS0xLjAuc3Fs CkBAIC0xMTIsNiArMTEyLDEwIEBAIENSRUFURSBGVU5DVElPTiB0ZXN0X2Jtc19pbnRfbWVtYmVy cyh0ZXh0LCB0ZXh0KQogUkVUVVJOUyB0ZXh0CiBBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5HVUFH RSBDOwogCitDUkVBVEUgRlVOQ1RJT04gdGVzdF9ibXNfZGVsX21lbWJlcnModGV4dCwgdGV4dCkK K1JFVFVSTlMgdGV4dAorQVMgJ01PRFVMRV9QQVRITkFNRScgTEFOR1VBR0UgQzsKKwogQ1JFQVRF IEZVTkNUSU9OIHRlc3RfYm1zX3JlcGxhY2VfbWVtYmVycyh0ZXh0LCB0ZXh0KQogUkVUVVJOUyB0 ZXh0CiBBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5HVUFHRSBDOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC90ZXN0X2JpdG1hcHNldC5jIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2JpdG1hcHNldC90ZXN0X2JpdG1hcHNldC5jCmluZGV4IDViYzRkYWEyM2YxLi43 N2I2YzcwYWY2NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2JpdG1hcHNldC90 ZXN0X2JpdG1hcHNldC5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRtYXBzZXQvdGVz dF9iaXRtYXBzZXQuYwpAQCAtNTgsNiArNTgsNyBAQCBQR19GVU5DVElPTl9JTkZPX1YxKHRlc3Rf Ym1zX21lbWJlcl9pbmRleCk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHRlc3RfYm1zX2FkZF9yYW5n ZSk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHRlc3RfYm1zX2FkZF9tZW1iZXJzKTsKIFBHX0ZVTkNU SU9OX0lORk9fVjEodGVzdF9ibXNfaW50X21lbWJlcnMpOworUEdfRlVOQ1RJT05fSU5GT19WMSh0 ZXN0X2Jtc19kZWxfbWVtYmVycyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHRlc3RfYm1zX3JlcGxh Y2VfbWVtYmVycyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHRlc3RfYm1zX2pvaW4pOwogUEdfRlVO Q1RJT05fSU5GT19WMSh0ZXN0X2JpdG1hcF9oYXNoKTsKQEAgLTExMSw5ICsxMTIsNiBAQCB0ZXN0 X2Jtc19hZGRfbWVtYmVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKGJtcykKIAkJYm1zX2ZyZWUo Ym1zKTsKIAotCWlmIChyZXN1bHQgPT0gTlVMTCkKLQkJUEdfUkVUVVJOX05VTEwoKTsKLQogCVBH X1JFVFVSTl9URVhUX1AocmVzdWx0KTsKIH0KIApAQCAtMTM2LDkgKzEzNCw2IEBAIHRlc3RfYm1z X2FkZF9tZW1iZXJzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKGJtczIpCiAJCWJtc19mcmVlKGJt czIpOwogCi0JaWYgKGJtczEgPT0gTlVMTCkKLQkJUEdfUkVUVVJOX05VTEwoKTsKLQogCXJlc3Vs dCA9IEJJVE1BUFNFVF9UT19URVhUKGJtczEpOwogCWJtc19mcmVlKGJtczEpOwogCkBAIC0xNjEs MTIgKzE1Niw4IEBAIHRlc3RfYm1zX2RlbF9tZW1iZXIoUEdfRlVOQ1RJT05fQVJHUykKIAltZW1i ZXIgPSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJYm1zID0gYm1zX2RlbF9tZW1iZXIoYm1zLCBtZW1i ZXIpOwogCi0JaWYgKGJtcyA9PSBOVUxMIHx8IGJtc19pc19lbXB0eShibXMpKQotCXsKLQkJaWYg KGJtcykKLQkJCWJtc19mcmVlKGJtcyk7CisJaWYgKGJtc19pc19lbXB0eShibXMpKQogCQlQR19S RVRVUk5fTlVMTCgpOwotCX0KIAogCXJlc3VsdCA9IEJJVE1BUFNFVF9UT19URVhUKGJtcyk7CiAJ Ym1zX2ZyZWUoYm1zKTsKQEAgLTUxNCwxMiArNTA1LDEwIEBAIERhdHVtCiB0ZXN0X2Jtc19nZXRf c2luZ2xldG9uX21lbWJlcihQR19GVU5DVElPTl9BUkdTKQogewogCUJpdG1hcHNldCAgKmJtcyA9 IE5VTEw7Ci0JaW50MzIJCWRlZmF1bHRfbWVtYmVyID0gUEdfR0VUQVJHX0lOVDMyKDEpOwotCWlu dAkJCW1lbWJlcjsKLQlib29sCQlzdWNjZXNzOworCWludAkJCW1lbWJlciA9IC0gMTsKIAogCWlm IChQR19BUkdJU05VTEwoMCkpCi0JCVBHX1JFVFVSTl9JTlQzMihkZWZhdWx0X21lbWJlcik7CisJ CVBHX1JFVFVSTl9JTlQzMihtZW1iZXIpOwogCiAJYm1zID0gVEVYVF9UT19CSVRNQVBTRVQoUEdf R0VUQVJHX1RFWFRfUFAoMCkpOwogCkBAIC01MjcsMTMgKzUxNiwxMCBAQCB0ZXN0X2Jtc19nZXRf c2luZ2xldG9uX21lbWJlcihQR19GVU5DVElPTl9BUkdTKQogCSAqIGJtc19nZXRfc2luZ2xldG9u X21lbWJlciByZXR1cm5zIGJvb2wgYW5kIHN0b3JlcyByZXN1bHQgaW4gbWVtYmVyCiAJICogcG9p bnRlcgogCSAqLwotCXN1Y2Nlc3MgPSBibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoYm1zLCAmbWVt YmVyKTsKKwlibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoYm1zLCAmbWVtYmVyKTsKIAlibXNfZnJl ZShibXMpOwogCi0JaWYgKHN1Y2Nlc3MpCi0JCVBHX1JFVFVSTl9JTlQzMihtZW1iZXIpOwotCWVs c2UKLQkJUEdfUkVUVVJOX0lOVDMyKGRlZmF1bHRfbWVtYmVyKTsKKwlQR19SRVRVUk5fSU5UMzIo bWVtYmVyKTsKIH0KIAogRGF0dW0KQEAgLTYwOSwxMSArNTk1LDYgQEAgdGVzdF9ibXNfb3Zlcmxh cF9saXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlhcnJheSA9IFBHX0dFVEFSR19BUlJBWVRZUEVf UCgxKTsKIAotCWlmIChBUlJfRUxFTVRZUEUoYXJyYXkpICE9IElOVDRPSUQpCi0JCWVyZXBvcnQo RVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJIGVy cm1zZygiaW50ZWdlciBhcnJheSBleHBlY3RlZCIpKSk7Ci0KIAlkZWNvbnN0cnVjdF9hcnJheShh cnJheSwKIAkJCQkJICBJTlQ0T0lELCBzaXplb2YoaW50MzIpLCB0cnVlLCAnaScsCiAJCQkJCSAg JmVsZW1fZGF0dW1zLCAmZWxlbV9udWxscywgJmVsZW1fY291bnQpOwpAQCAtNzUyLDYgKzczMywz NyBAQCB0ZXN0X2Jtc19pbnRfbWVtYmVycyhQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9U RVhUX1AocmVzdWx0KTsKIH0KIAorRGF0dW0KK3Rlc3RfYm1zX2RlbF9tZW1iZXJzKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJQml0bWFwc2V0ICAqYm1zMSA9IE5VTEwsCisJCQkgICAqYm1zMiA9IE5V TEw7CisJQml0bWFwc2V0ICAqcmVzdWx0X2JtczsKKwl0ZXh0CSAgICpyZXN1bHQ7CisKKwlpZiAo IVBHX0FSR0lTTlVMTCgwKSkKKwkJYm1zMSA9IFRFWFRfVE9fQklUTUFQU0VUKFBHX0dFVEFSR19U RVhUX1BQKDApKTsKKworCWlmICghUEdfQVJHSVNOVUxMKDEpKQorCQlibXMyID0gVEVYVF9UT19C SVRNQVBTRVQoUEdfR0VUQVJHX1RFWFRfUFAoMSkpOworCisJLyogSU1QT1JUQU5UOiBibXNfZGVs X21lbWJlcnMgbW9kaWZpZXMvZnJlZXMgdGhlIGZpcnN0IGFyZ3VtZW50ICovCisJcmVzdWx0X2Jt cyA9IGJtc19kZWxfbWVtYmVycyhibXMxLCBibXMyKTsKKworCS8qIGJtczEgaXMgbm93IGludmFs aWQsIGRvIG5vdCBmcmVlIGl0ICovCisKKwlpZiAoYm1zMikKKwkJYm1zX2ZyZWUoYm1zMik7CisK KwlpZiAocmVzdWx0X2JtcyA9PSBOVUxMKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJcmVzdWx0 ID0gQklUTUFQU0VUX1RPX1RFWFQocmVzdWx0X2Jtcyk7CisJYm1zX2ZyZWUocmVzdWx0X2Jtcyk7 CisKKwlQR19SRVRVUk5fVEVYVF9QKHJlc3VsdCk7Cit9CisKIERhdHVtCiB0ZXN0X2Jtc19yZXBs YWNlX21lbWJlcnMoUEdfRlVOQ1RJT05fQVJHUykKIHsKLS0gCjIuNDkuMAoK --68d7eea2_59cdeef1_147c--