From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 8FFBD6EFF4; Mon, 29 Jun 2026 16:56:11 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 8FFBD6EFF4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1782741371; bh=GKdMLJAXVTzt47IM1ZSjB64vgJp4gjPGLhx8yEXz3UU=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=cuve9fCk9xgj4fcgkvT4R6g1C9mpxbtaZS2RwPTc6tHOFt93RMWmdYozJAbGRQaFi 3SZ4Zcwm2pA2GJ94ddLhTljBMpYt9/XVQLlWQbhQev8h7bPCAwVQGfJcOdjojdp+Gx PjnZwPyFDFq+IvIrNYsOz9I7FVEQluRBy3uS4OL8= Received: from send41.i.mail.ru (send41.i.mail.ru [89.221.237.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 09CDA6EFF4 for ; Mon, 29 Jun 2026 16:56:10 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 09CDA6EFF4 Received: by exim-f-585b5cb64-wqvdc with local (envelope-from ) id 1weCSj-00000000DMv-0HVE; Mon, 29 Jun 2026 16:56:09 +0300 Received: by e.mail.ru with HTTP; Mon, 29 Jun 2026 16:55:49 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Priority: 3 (Normal) X-Mailer: Mail.Ru Mailer 1.0 X-Senderfield-Remsg: 17824193840563102512 X-Senderfield-Remind: 0 Date: Mon, 29 Jun 2026 16:55:49 +0300 Message-Id: <1782741349.288346286@f466.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--43245963B67f895761C5D00f2D98389a1782741349" In-Reply-To: <20260625202903.3157425-3-skaplun@tarantool.org> References: <20260625202903.3157425-1-skaplun@tarantool.org> <20260625202903.3157425-3-skaplun@tarantool.org> X-Mailru-Src: fe X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 119C1F4DF6A9251C6EDDC236F443E19743A9FD228A5AC5556811C2E201FAC249AA58F7AA52DA7B4B72DDDEBF30B728507ECA33F3733F908B11C24BBB26003BF42DE97723818C120B24DAF05A372A3159 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7F12ABE79F2AB44EAEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637FE9EFE935CD7C6AE8638F802B75D45FF914D58D5BE9E6BC1A93B80C6DEB9DEE97C6FB206A91F05B2DECEC58C070E64EA2E070BE324C7D3C4570CB0C67190C0B9F6B57BC7E64490618DEB871D839B73339E8FC8737B5C224901F8F2FECC0250C8CC7F00164DA146DAFE8445B8C89999729449624AB7ADAF37F6B57BC7E64490611E7FA7ABCAF51C92176DF2183F8FC7C06030C3405640F6718941B15DA834481F9449624AB7ADAF372E808ACE2090B5E14AD6D5ED66289B5259CC434672EE63711DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C37727919777A35F2B35872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A5654E9C52110458A55002B1117B3ED696A96EA4B1F2C68103E772F934B9BCD185823CB91A9FED034534781492E4B8EEADBD588BA4AEEECD70 X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191543584D22441D852AB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659BF8DE2A523B1A615CBDA65840C2BCC12F7BEF62DBD58815FB7405420F108870E95C3B4C8FF9EEB77B8341EE9D5BE9A0AAC1181D86A6C759ECF0EAA21898A3811742EF07BCE2A107A6536EB022892E5344C41F94D744909CEEF9E35A692215F79327F81E6EEE0AEB67A0F9F91F029B6AF33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+Od3uM/CLT152eL7j4ZacoUSF0MSa0v5VBmEtSutdC50BIKdL3VIRlkt/X9Gr7QWYXucPUinHATAeHXorM+S1NQOd7Dfgh+EySTC5xnzOBkgLWM4IpPKdZMc= X-Mailru-MI: 20000000010000000000400800 X-Mailru-Sender: 3B9A0136629DC912EB477A2E8859F9F7DC9BD66162BC21B90841F56765D88C40402B74B96F047BCA68A5C9AD5368B5F3B838212C44EFF7BCFF8827D84BA35E87E0C81887C6B2EBA88CC9D01740B45CCA8541B43355FF3DF2139C1CE02BAFBE04EAB4BC95F72C04283CDA0F3B3F5B9367 X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_2/3=5D_dbg=3A_intr?= =?utf-8?q?oduce_lj-ctype_command=2C_extend_cdata_dump?= X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Evgeniy Temirgaleev via Tarantool-patches Reply-To: =?UTF-8?B?RXZnZW5peSBUZW1pcmdhbGVldg==?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--43245963B67f895761C5D00f2D98389a1782741349 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksIFNlcmdleSEKClRoYW5rcyBmb3IgdGhlIHBhdGNoIQpQbGVhc2UsIHNlZSB0aGUgY29tbWVu ZHMgYmVsb3cuCgotLQpCZXN0IHJlZ2FyZHMsCkV2Z2VuaXkgVGVtaXJnYWxlZXYKCj4gCj4gRnJv bTogU2VyZ2V5IEthcGx1biA8c2thcGx1bkB0YXJhbnRvb2wub3JnPgo+IFRvOiBTZXJnZXkgQnJv bm5pa292IDxzZXJnZXliQHRhcmFudG9vbC5vcmc+LCBFdmdlbml5IFRlbWlyZ2FsZWV2IDxlLnRl bWlyZ2FsZWV2QHRhcmFudG9vbC5vcmcKPiA+Cj4gQ2M6IHRhcmFudG9vbC1wYXRjaGVzQGRldi50 YXJhbnRvb2wub3JnLCBTZXJnZXkgS2FwbHVuIDxza2FwbHVuQHRhcmFudG9vbC5vcmcKPiA+Cj4g RGF0ZTogVGh1cnNkYXksIEp1bmUgMjUsIDIwMjYgMTE6MjkgUE0gKzAzOjAwCj4gVGhpcyBwYXRj aCBleHRlbmRzIGR1bXBlZCBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIGNkYXRhIG9iamVjdC4g Tm93Cj4gaXQgcmVzb2x2ZXMgdGhlIGdpdmVuIGBDVHlwZWAgYW5kIHByaW50cyBpdCBpbiB0aGUg Zm9ybWF0IHNpbWlsYXIgdG8gdGhlCj4gYF9fdG9zdHJpbmdgIG1ldGFtZXRob2QuIFRoZSBgbGot Y3R5cGVgIGNvbW1hbmQgaXMgaW50cm9kdWNlZCB0byBkdW1wCj4gdGhpcyBpbmZvcm1hdGlvbiB3 aGVyZSB0aGVyZSBpcyBvbmx5IHRoZSBgQ1R5cGVgIHBvaW50ZXIgYnV0IG5vIGNkYXRhCj4gYXNz b2NpYXRlZCB3aXRoIGl0Lgo+IAo+IGBfX29yX19gIGFuZCBgX19yb3JfX2AgbWV0YW1ldGhvZHMg YXJlIG1vbmtleS1wYXRjaGVkIGZvciB0aGUgTExEQiB2YWx1ZQo+IG9iamVjdC4gSW4gYF9fc3Vi X19gIG1ldGFtZXRob2QgZm9yIExMREIgcG9pbnRlcnMgYEdldFBvaW50ZWVUeXBlKClgIGlzCj4g dXNlZCB0byBnZXQgdGhlIHBvaW50ZWUgdHlwZSBpbnN0ZWFkIG9mIHRoZSBpbmNvcnJlY3RseSB1 c2VkCj4gYEdldERlcmVmZXJlbmNlZFR5cGUoKWAgd2hpY2ggYWx3YXlzIHJldHVybnMgdGhlIHNh bWUgdHlwZSB3aXRoIHNpemUgOC4KPiBDYXN0aW5nIGZyb20gbmVnYXRpdmUgdmFsdWVzIHRvIHRo ZSB1bnNpZ25lZCB2YWx1ZXMgaXMgc3VwcG9ydGVkIHRvCj4gY2hlY2sgYENURl9VQ0hBUmAuCj4g Cj4gUGFydCBvZiB0YXJhbnRvb2wvdGFyYW50b29sIzQ4MDgKPiAtLS0KPiBzcmMvbHVhaml0X2Ri Zy5weSB8IDMzMyArKysrKysrKysrKysrKysrKy0KPiAuLi4vZGVidWctZXh0ZW5zaW9uLXRlc3Rz LnB5IHwgMjA4ICsrKysrKysrKystCj4gMiBmaWxlcyBjaGFuZ2VkLCA1MzUgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvc3JjL2x1YWppdF9kYmcucHkgYi9z cmMvbHVhaml0X2RiZy5weQo+IGluZGV4IGZkNmNhOGE1Li42MmNkNjVkNSAxMDA2NDQKPiAtLS0g YS9zcmMvbHVhaml0X2RiZy5weQo+ICsrKyBiL3NyYy9sdWFqaXRfZGJnLnB5Cj4gQEAgLTM4Niw2 ICszODYsOCBAQCBjbGFzcyBfTExEQkRlYnVnZ2VyKERlYnVnZ2VyKToKPiBwYWNrX2ZsYWcgPSAn PHEnCj4gZWxzZToKPiBwYWNrX2ZsYWcgPSAnPFEnCj4gKyAjIENhc3QgdG8gdW5zaWduZWQuCj4g CgpJc8KgL3Vuc2lnbmVkL3VpbnQ2NF90LyBjbGVhcmx5PwoKPiAKPiArIHJhd192YWx1ZSAmPSAw eEZGRkZGRkZGRkZGRkZGRkYKPiByYXdfZGF0YSA9IHN0cnVjdC5wYWNrKHBhY2tfZmxhZywgcmF3 X3ZhbHVlKQo+IHNiZGF0YSA9IGxsZGIuU0JEYXRhKCkKPiBzYmRhdGEuU2V0RGF0YSgKPiBAQCAt NDgyLDYgKzQ4NCw5IEBAIGNsYXNzIF9MTERCRGVidWdnZXIoRGVidWdnZXIpOgo+IGRlZiBsbGRi X19sdF9fKGxsZGJ2YWwsIG90aGVyKToKPiByZXR1cm4gaW50KGxsZGJ2YWwpIDwgaW50KG90aGVy KQo+IAo+ICsgZGVmIGxsZGJfX29yX18obGxkYnZhbCwgb3RoZXIpOgo+ICsgcmV0dXJuIGludChs bGRidmFsKSB8IGludChvdGhlcikKPiArCj4gZGVmIGxsZGJfX3N0cl9fKGxsZGJ2YWwpOgo+ICMg SW5zdGVhZCBvZiBkZWZhdWx0IEdldFN1bW1hcnkuCj4gaWYgbm90IGxsZGJ2YWwuc2J2YWx1ZS5U eXBlSXNQb2ludGVyVHlwZSgpOgo+IEBAIC01MTIsOCArNTE3LDggQEAgY2xhc3MgX0xMREJEZWJ1 Z2dlcihEZWJ1Z2dlcik6Cj4gbGxkYnZhbF90cCA9IHNidmFsLkdldFR5cGUoKQo+IG90aGVyX3Rw ID0gb3NidmFsLkdldFR5cGUoKQo+ICMgU3VidHJhY3QgcG9pbnRlcnMgb2YgdGhlIHNhbWUgc2l6 ZSBvbmx5Lgo+IC0gZWxzeiA9IGxsZGJ2YWxfdHAuR2V0RGVyZWZlcmVuY2VkVHlwZSgpLnNpemUK PiAtIGlmIG90aGVyX3RwLkdldERlcmVmZXJlbmNlZFR5cGUoKS5zaXplICE9IGVsc3o6Cj4gKyBl bHN6ID0gbGxkYnZhbF90cC5HZXRQb2ludGVlVHlwZSgpLnNpemUKPiArIGlmIG90aGVyX3RwLkdl dFBvaW50ZWVUeXBlKCkuc2l6ZSAhPSBlbHN6Ogo+IHJhaXNlIEV4Y2VwdGlvbigKPiAnQXR0ZW1w dCB0byBzdWJzdHJ1Y3Qge290cH0gZnJvbSB7c3RwfScuZm9ybWF0KAo+IHN0cD1sbGRidmFsX3Rw Lm5hbWUsCj4gQEAgLTUzNiw2ICs1NDEsOCBAQCBjbGFzcyBfTExEQkRlYnVnZ2VyKERlYnVnZ2Vy KToKPiBsbGRiLnZhbHVlLl9faW5kZXhfXyA9IGxsZGJfX2luZGV4X18KPiBsbGRiLnZhbHVlLl9f bGVfXyA9IGxsZGJfX2xlX18KPiBsbGRiLnZhbHVlLl9fbHRfXyA9IGxsZGJfX2x0X18KPiArIGxs ZGIudmFsdWUuX19vcl9fID0gbGxkYl9fb3JfXwo+ICsgbGxkYi52YWx1ZS5fX3Jvcl9fID0gbGxk Yl9fb3JfXyAjIFNhbWUgc2VtYW50aWNzLgo+IGxsZGIudmFsdWUuX19zdHJfXyA9IGxsZGJfX3N0 cl9fCj4gbGxkYi52YWx1ZS5fX3N1Yl9fID0gbGxkYl9fc3ViX18KPiAKPiBAQCAtMTM1Miw2ICsx MzU5LDExOSBAQCBkZWYgbGlnaHR1ZFYodHYpOgo+IHJldHVybiBnY3ZhbCh0dlsnZ2NyJ10pCj4g Cj4gCj4gKyMgRkZJLgo+ICsKPiArCj4gK2RlZiBjdHlwZV9jdHNHKGcpOgo+ICsgcmV0dXJuIG1y ZWYoJ0NUU3RhdGUgKicsIGdbJ2N0eXBlX3N0YXRlJ10pCj4gKwo+ICsKPiArZGVmIGN0eXBlX2dl dChjdHMsIGlkKToKPiArIHJldHVybiBkYmcuYWRkcmVzcyhjdHNbJ3RhYiddW2lkXSkKPiArCj4g Kwo+ICsjIEV4dGVybmFsbHkgdmlzaWJsZSB0eXBlcy4KPiArQ1RfTlVNID0gMCAjIEludGVnZXIg b3IgZmxvYXRpbmctcG9pbnQgbnVtYmVycy4KPiArQ1RfU1RSVUNUID0gMSAjIFN0cnVjdCBvciB1 bmlvbi4KPiArQ1RfUFRSID0gMiAjIFBvaW50ZXIgb3IgcmVmZXJlbmNlLgo+ICtDVF9BUlJBWSA9 IDMgIyBBcnJheSBvciBjb21wbGV4IHR5cGUuCj4gK0NUX01BWUNPTlZFUlQgPSBDVF9BUlJBWQo+ ICtDVF9WT0lEID0gNCAjIFZvaWQgdHlwZS4KPiArQ1RfRU5VTSA9IDUgIyBFbnVtZXJhdGlvbi4K PiArQ1RfSEFTU0laRSA9IENUX0VOVU0gIyBMYXN0IHR5cGUgd2hlcmUgY3QtPnNpemUgaG9sZHMg dGhlIGFjdHVhbCBzaXplLgo+ICtDVF9GVU5DID0gNiAjIEZ1bmN0aW9uLgo+ICtDVF9UWVBFREVG ID0gNyAjIFR5cGVkZWYuCj4gK0NUX0FUVFJJQiA9IDggIyBNaXNjZWxsYW5lb3VzIGF0dHJpYnV0 ZXMuCj4gKwo+ICsjIENvbW1vbiB0eXBlcy4KPiArQ1RJRF9DVFlQRUlEID0gMjEKPiArCj4gKyMg QyB0eXBlIGluZm8gZmxhZ3MuCj4gK0NURl9CT09MID0gMHgwODAwMDAwMCAjIEJvb2xlYW46IE5V TSwgQklURklFTEQuCj4gK0NURl9GUCA9IDB4MDQwMDAwMDAgIyBGbG9hdGluZy1wb2ludDogTlVN Lgo+ICtDVEZfQ09OU1QgPSAweDAyMDAwMDAwICMgQ29uc3QgcXVhbGlmaWVyLgo+ICtDVEZfVk9M QVRJTEUgPSAweDAxMDAwMDAwICMgVm9sYXRpbGUgcXVhbGlmaWVyLgo+ICtDVEZfVU5TSUdORUQg PSAweDAwODAwMDAwICMgVW5zaWduZWQ6IE5VTSwgQklURklFTEQuCj4gK0NURl9MT05HID0gMHgw MDQwMDAwMCAjIExvbmc6IE5VTS4KPiArQ1RGX1ZMQSA9IDB4MDAxMDAwMDAgIyBWYXJpYWJsZS1s ZW5ndGg6IEFSUkFZLCBTVFJVQ1QuCj4gK0NURl9SRUYgPSAweDAwODAwMDAwICMgUmVmZXJlbmNl OiBQVFIuCj4gK0NURl9WRUNUT1IgPSAweDA4MDAwMDAwICMgVmVjdG9yOiBBUlJBWS4KPiArQ1RG X0NPTVBMRVggPSAweDA0MDAwMDAwICMgQ29tcGxleDogQVJSQVkuCj4gK0NURl9VTklPTiA9IDB4 MDA4MDAwMDAgIyBVbmlvbjogU1RSVUNULgo+ICtDVEZfVkFSQVJHID0gMHgwMDgwMDAwMCAjIFZh cmFyZzogRlVOQy4KPiArQ1RGX1NTRVJFR1BBUk0gPSAweDAwNDAwMDAwICMgU1NFIHJlZ2lzdGVy IHBhcmFtZXRlcnM6IEZVTkMuCj4gKwo+ICtDVEZfVUNIQVIgPSBDVEZfVU5TSUdORUQgaWYgaW50 KGRiZy5jYXN0KCdjaGFyJywgLTEpKSA+IDAgZWxzZSAwCj4gKwo+ICtDVE1BU0tfQVRUUklCID0g MjU1ICMgTWF4LiAyNTYgYXR0cmlidXRlcy4KPiArQ1RTSElGVF9BVFRSSUIgPSAxNgo+ICsKPiAr IyBBdHRyaWJ1dGUgbnVtYmVycy4KPiArQ1RBX1FVQUwgPSAxICMgVW5tZXJnZWQgcXVhbGlmaWVy cy4KPiArCj4gK0NUU0hJRlRfTlVNID0gMjgKPiArQ1RNQVNLX0NJRCA9IDB4MDAwMGZmZmYKPiAr Q1RNQVNLX05VTSA9IDB4ZjAwMDAwMDAgIyBNYXguIDE2IHR5cGUgbnVtYmVycy4KPiArCj4gKyMg U3BlY2lhbCBzaXplcy4KPiArQ1RTSVpFX0lOVkFMSUQgPSAweGZmZmZmZmZmCj4gK0RXT1JEU1og PSA0Cj4gK1FXT1JEU1ogPSA4Cj4gKwo+ICsKPiArZGVmIGN0eXBlX3R5cGUoaW5mbyk6Cj4gKyBy ZXR1cm4gaW5mbyA+PiBDVFNISUZUX05VTQo+ICsKPiArCj4gK2RlZiBjdHlwZV9hdHRyaWIoaW5m byk6Cj4gKyByZXR1cm4gKGluZm8gPj4gQ1RTSElGVF9BVFRSSUIpICYgQ1RNQVNLX0FUVFJJQgo+ ICsKPiArCj4gK2RlZiBjdGluZm8oY3QsIGZsYWdzKToKPiAKCk1heSB3ZSBuYW1lIHRoaXMgZnVu Y3Rpb24g4oCYQ1RJTkZP4oCZwqBhcyBpbiDigJhsal9jdHlwZS5o4oCZP8KgT3IgbGVhdmUgYSBj b21tZW50IHdpdGggYW4gb3JpZ2luYWwgbmFtZSBmb3IgcXVpY2sgZ3JlcC4KCj4gCj4gKyByZXR1 cm4gKHRvdTMyKGN0KSA8PCBDVFNISUZUX05VTSkgKyBmbGFncwo+ICsKPiArCj4gK2RlZiBjdHlw ZV9pc3B0cihpbmZvKToKPiArIHJldHVybiBjdHlwZV90eXBlKGluZm8pID09IENUX1BUUgo+ICsK PiArCj4gK2RlZiBjdHlwZV9pc2NvbXBsZXgoaW5mbyk6Cj4gKyByZXR1cm4gKGluZm8gJiAoQ1RN QVNLX05VTSB8IENURl9DT01QTEVYKSkgPT0gY3RpbmZvKENUX0FSUkFZLAo+IENURl9DT01QTEVY KQo+ICsKPiArCj4gK2RlZiBjdHlwZV9pc2ludGVnZXIoaW5mbyk6Cj4gKyByZXR1cm4gKGluZm8g JiAoQ1RNQVNLX05VTSB8IENURl9CT09MIHwgQ1RGX0ZQKSkgPT0gY3RpbmZvKENUX05VTSwgMCkK PiArCj4gKwo+ICtkZWYgY3R5cGVfaXNyZWZhcnJheShpbmZvKToKPiArIHJldHVybiAoaW5mbyAm IChDVE1BU0tfTlVNIHwgQ1RGX1ZFQ1RPUiB8IENURl9DT01QTEVYKSkgPT0gXAo+ICsgY3RpbmZv KENUX0FSUkFZLCAwKQo+ICsKPiArCj4gK2RlZiBjdHlwZV9jaWQoaW5mbyk6Cj4gCgpMZXTigJlz IHB1dCB0aGVzZSBmdW5jdGlvbsKgZGVmaW5pdGlvbnMgaW7CoHRoZSDigJhsal9jdHlwZS5o4oCZ IG9yZGVyPwpNYXkgd2UgZ3JvdXAgdGhlIGRlZmluaXRpb25zIGJ5IGNvcnJlc3BvbmRpbmfCoEMg ZmlsZXMgYWxzbz8gIyBsal9jdHlwZS5oIOKApsKgIyBsal9jZGF0YS5oIOKApiAjIGxqX3h4eC5j IOKApgoKPiAKPiArIHJldHVybiBpbmZvICYgQ1RNQVNLX0NJRAo+ICsKPiArCj4gK2RlZiBjdHlw ZV9jaGlsZChjdHMsIGN0eXBlKToKPiArIHJldHVybiBjdHlwZV9nZXQoY3RzLCBjdHlwZV9jaWQo Y3R5cGVbJ2luZm8nXSkpCj4gKwo+ICsKPiArZGVmIGNkYXRhcHRyKGNkKToKPiArIHJldHVybiBk YmcuY2FzdCgndm9pZCAqJywgKGNkICsgMSkpCj4gKwo+ICsKPiArZGVmIGNkYXRhX2dldHB0cihw LCBzaXplKToKPiArIGlmIExKXzY0IGFuZCBzaXplID09IDQ6Cj4gKyByZXR1cm4gZGJnLmNhc3Qo J3ZvaWQgKicsIGRiZy5jYXN0KCd1aW50MzJfdCAqJywgcClbMF0pCj4gKyBlbHNlOgo+IAoKYXNz ZXJ0IGZvciBzaXplID09IDggPwoKPiAKPiArIHJldHVybiBkYmcuY2FzdCgndm9pZCAqJywgZGJn LmNhc3QoJ3VpbnQ2NF90IConLCBwKVswXSkKPiArCj4gKwo+ICsjIEdldCBDIHR5cGUgSUQgZm9y IGEgQyB0eXBlLgo+ICtkZWYgY3R5cGVfdHlwZWlkKGN0cywgY3QpOgo+ICsgcmV0dXJuIGN0IC0g Y3RzWyd0YWInXQo+ICsKPiArCj4gIyBKSVQgZW5naW5lLgo+IAo+IAo+IEBAIC0xOTUxLDcgKzIw NzEsMjYgQEAgZGVmIGR1bXBfbGpfZ2NvX3RyYWNlKGdjb2JqKToKPiAKPiAKPiBkZWYgZHVtcF9s al9nY29fY2RhdGEoZ2NvYmopOgo+IC0gcmV0dXJuICdjZGF0YSBAIHt9Jy5mb3JtYXQoc3RyeDY0 KGdjb2JqKSkKPiArIGNkYXRhID0gZGJnLmNhc3QoJ3N0cnVjdCBHQ2NkYXRhIConLCBnY29iaikK PiArIGN0cyA9IGN0eXBlX2N0c0coRyhMKCkpKQo+ICsgY2lkID0gY2RhdGFbJ2N0eXBlaWQnXQo+ ICsgY3R5cGUgPSBjdHlwZV9nZXQoY3RzLCBjaWQpCj4gKyBpbmZvID0gY3R5cGVbJ2luZm8nXQo+ ICsgc2l6ZSA9IGN0eXBlWydzaXplJ10KPiArIHZhbHVlID0gJycKPiArIGlmIGN0eXBlX2lzY29t cGxleChpbmZvKToKPiArIHZhbHVlID0gY2RhdGFfdmFsX2NvbXBsZXgoY2RhdGEsIGN0eXBlKQo+ ICsgZWxpZiBzaXplID09IDggYW5kIGN0eXBlX2lzaW50ZWdlcihpbmZvKToKPiArIHZhbHVlID0g Y2RhdGFfdmFsX2ludDY0KGNkYXRhLCBjdHlwZSkKPiArIGVsc2U6Cj4gKyB2YWx1ZSA9IGNkYXRh cHRyKGNkYXRhKQo+ICsgaWYgY3R5cGVfaXNwdHIoaW5mbyk6Cj4gKyB2YWx1ZSA9IGNkYXRhX2dl dHB0cih2YWx1ZSwgc2l6ZSkKPiArIHJldHVybiAnY2RhdGEgQCB7YWRkcn0ge2N0eXBlfSB7dmFs dWV9Jy5mb3JtYXQoCj4gKyBhZGRyPXN0cng2NChnY29iaiksCj4gKyBjdHlwZT1kdW1wX2N0eXBl KGN0eXBlKSwKPiArIHZhbHVlPXZhbHVlLAo+ICsgKQo+IAo+IAo+IGRlZiBkdW1wX2xqX2djb190 YWIoZ2NvYmopOgo+IEBAIC0yMjgxLDYgKzI0MjAsMTc2IEBAIGRlZiBkdW1wX2Z1bmMoZnVuYyk6 Cj4gcmV0dXJuICdmYXN0IGZ1bmN0aW9uICN7fVxuJy5mb3JtYXQoaW50KGZmaWQpKQo+IAo+IAo+ ICsjIEZGSSBkdW1wZXJzLgo+ICsKPiArCj4gK2RlZiBjZGF0YV92YWxfaW50NjQoY2RhdGEsIGN0 eXBlKToKPiArIGluZm8gPSBjdHlwZVsnaW5mbyddCj4gKyBpc3Vuc2lnbmVkID0gaW5mbyAmIENU Rl9VTlNJR05FRAo+ICsgY2RhdGF2YWwgPSBjZGF0YXB0cihjZGF0YSkKPiArIHZhbHVlcHRyID0g Tm9uZQo+ICsgdXN1ZmZpeCA9ICcnCj4gKyBpZiBpc3Vuc2lnbmVkOgo+ICsgdXN1ZmZpeCA9ICdV Jwo+ICsgdmFsdWVwdHIgPSBkYmcuY2FzdCgndWludDY0X3QgKicsIGNkYXRhdmFsKQo+ICsgZWxz ZToKPiArIHZhbHVlcHRyID0gZGJnLmNhc3QoJ2ludDY0X3QgKicsIGNkYXRhdmFsKQo+ICsgcmV0 dXJuIHN0cih2YWx1ZXB0clswXSkgKyB1c3VmZml4ICsgJ0xMJwo+ICsKPiArCj4gK2RlZiBjZGF0 YV92YWxfY29tcGxleChjZGF0YSwgY3R5cGUpOgo+ICsgc2l6ZSA9IGN0eXBlWydzaXplJ10KPiAr IGNkYXRhdmFsID0gY2RhdGFwdHIoY2RhdGEpCj4gKyBjYXN0dHlwZSA9IE5vbmUKPiArIGlmIHNp emUgPT0gUVdPUkRTWiAqIDI6Cj4gKyBjYXN0dHlwZSA9ICdkb3VibGUgKicKPiArIGVsc2U6Cj4g KyBhc3NlcnQgc2l6ZSA9PSBEV09SRFNaICogMiwgJ2JhZCAoY29tcGxleCBmbG9hdCkgc2l6ZScK PiArIGNhc3R0eXBlID0gJ2Zsb2F0IConCj4gKyByZSA9IGRiZy5jYXN0KGNhc3R0eXBlLCBjZGF0 YXZhbClbMF0KPiArIGltID0gZGJnLmNhc3QoY2FzdHR5cGUsIGNkYXRhdmFsKVsxXQo+ICsgc2ln biA9ICcrJyBpZiBpbSA+IDAgZWxzZSAnJwo+ICsgcmV0dXJuICd7cmV9e3NpZ259e2ltfWknLmZv cm1hdChyZT1yZSwgaW09aW0sIHNpZ249c2lnbikKPiArCj4gKwo+ICtkZWYgY3R5cGVfcHJlcGxp dChjdHlwZXN0ciwgbGl0KToKPiArICMgUHJldmVudCBleHRyYSBzcGFjZSBpbiB0aGUgZW5kIG9m IHRoZSBzdHJpbmcuCj4gKyBzcGFjZSA9ICcgJyBpZiBjdHlwZXN0ciAhPSAnJyBlbHNlICcnCj4g KyByZXR1cm4gbGl0ICsgc3BhY2UgKyBjdHlwZXN0cgo+ICsKPiArCj4gK2RlZiBjdHlwZV9wcmVw cXVhbChjdHlwZXN0ciwgaW5mbyk6Cj4gKyBpZiAoaW5mbyAmIENURl9WT0xBVElMRSk6Cj4gKyBj dHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICd2b2xhdGlsZScpCj4gKyBpZiAoaW5m byAmIENURl9DT05TVCk6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdj b25zdCcpCj4gKyByZXR1cm4gY3R5cGVzdHIKPiArCj4gKwo+ICtkZWYgY3R5cGVfcHJlcHR5cGUo Y3RzLCBjdHlwZXN0ciwgY3R5cGUsIHF1YWwsIHRwKToKPiArIG5hbWVyZWYgPSBnY3JlZihjdHlw ZVsnbmFtZSddKQo+ICsgaWYgbmFtZXJlZjoKPiArIGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChj dHlwZXN0ciwgcmUuc3ViKCciJywgJycsIHN0cmRhdGEobmFtZXJlZikpKQo+ICsgZWxzZToKPiAr IGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgc3RyKGN0eXBlX3R5cGVpZChjdHMs IGN0eXBlKSkpCj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsIHRwKQo+ICsg Y3R5cGVzdHIgPSBjdHlwZV9wcmVwcXVhbChjdHlwZXN0ciwgcXVhbCkKPiArIHJldHVybiBjdHlw ZXN0cgo+ICsKPiArCj4gK2RlZiBjdHlwZV9wcmVwbnVtKGN0eXBlc3RyLCBpbmZvLCBzaXplKToK PiAKCkZ1bmMgcHJvdG8gZGlmZmVycyB3aXRoIGxqX2N0eXBlLmMgKHN0YXRpYyB2b2lkIGN0eXBl X3ByZXBudW0oQ1RSZXByICpjdHIsIHVpbnQzMl90IG4pKS4KSXQgc2VlbXMsIHlvdSBtb3ZlIHNv bWUgb2bCoGN0eXBlX3JlcHIoKSBjb2RlIGhlcmUuwqBMZXTigJlzIGNvbW1lbnQgaXQ/Cgo+IAo+ ICsgaWYgaW5mbyAmIENURl9CT09MOgo+ICsgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBl c3RyLCAnYm9vbCcpCj4gKyBlbGlmIGluZm8gJiBDVEZfRlA6Cj4gKyBpZiBzaXplID09IFFXT1JE U1o6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdkb3VibGUnKQo+ICsg ZWxpZiBzaXplID09IERXT1JEU1o6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVz dHIsICdmbG9hdCcpCj4gKyBlbHNlOgo+ICsgYXNzZXJ0IHNpemUgPT0gUVdPUkRTWiAqIDIsICdi YWQgKGxvbmcgZG91YmxlKSBzaXplJwo+ICsgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBl c3RyLCAnbG9uZyBkb3VibGUnKQo+ICsgZWxpZiBzaXplID09IDE6Cj4gKyBpZiBub3QgKChpbmZv IF4gQ1RGX1VDSEFSKSAmIENURl9VTlNJR05FRCk6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBs aXQoY3R5cGVzdHIsICdjaGFyJykKPiArIGVsaWYgQ1RGX1VDSEFSOgo+ICsgY3R5cGVzdHIgPSBj dHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAnc2lnbmVkIGNoYXInKQo+IAoKPiAKPiArIGVsc2U6Cj4g KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICd1bnNpZ25lZCBjaGFyJykKPiAr IGVsaWYgc2l6ZSA8IDg6Cj4gKyBpZiBzaXplID09IDQ6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3By ZXBsaXQoY3R5cGVzdHIsICdpbnQnKQo+ICsgZWxzZToKPiArIGFzc2VydCBzaXplID09IERXT1JE U1ogLy8gMiwgJ2JhZCAoc2hvcnQpIHNpemUnCj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQo Y3R5cGVzdHIsICdzaG9ydCcpCj4gKyBpZiBpbmZvICYgQ1RGX1VOU0lHTkVEOgo+ICsgY3R5cGVz dHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAndW5zaWduZWQnKQo+ICsgZWxzZToKPiArIHNp emVfdCA9ICd7dX1pbnR7c3p9X3QnLmZvcm1hdCgKPiArIHU9J3UnIGlmIGluZm8gJiBDVEZfVU5T SUdORUQgZWxzZSAnJywKPiArIHN6PXNpemUgKiA4LAo+ICsgKQo+ICsgY3R5cGVzdHIgPSBjdHlw ZV9wcmVwbGl0KGN0eXBlc3RyLCBzaXplX3QpCj4gKyByZXR1cm4gY3R5cGVzdHIKPiArCj4gKwo+ ICtkZWYgY3R5cGVfcmVwcihjdHMsIGlkKToKPiArIGN0eXBlID0gY3R5cGVfZ2V0KGN0cywgaWQp Cj4gKyBjdHlwZXN0ciA9ICcnCj4gKyBxdWFsID0gMAo+ICsgcHRydG8gPSAwCj4gKyB3aGlsZSBU cnVlOgo+ICsgaW5mbyA9IGN0eXBlWydpbmZvJ10KPiArIHNpemUgPSBjdHlwZVsnc2l6ZSddCj4g KyBjdHAgPSBjdHlwZV90eXBlKGluZm8pCj4gKyBpZiBjdHAgPT0gQ1RfTlVNOgo+ICsgY3R5cGVz dHIgPSBjdHlwZV9wcmVwbnVtKGN0eXBlc3RyLCBpbmZvLCBzaXplKQo+ICsgcmV0dXJuIGN0eXBl X3ByZXBxdWFsKGN0eXBlc3RyLCBxdWFsIHwgaW5mbykKPiArIGVsaWYgY3RwID09IENUX1ZPSUQ6 Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICd2b2lkJykKPiArIHJldHVy biBjdHlwZV9wcmVwcXVhbChjdHlwZXN0ciwgcXVhbCB8IGluZm8pCj4gKyBlbGlmIGN0cCA9PSBD VF9TVFJVQ1Q6Cj4gKyB0cCA9ICd1bmlvbicgaWYgKGluZm8gJiBDVEZfVU5JT04pIGVsc2UgJ3N0 cnVjdCcKPiArIHJldHVybiBjdHlwZV9wcmVwdHlwZShjdHMsIGN0eXBlc3RyLCBjdHlwZSwgcXVh bCwgdHApCj4gKyBlbGlmIGN0cCA9PSBDVF9FTlVNOgo+ICsgaWYgaWQgPT0gQ1RJRF9DVFlQRUlE Ogo+ICsgcmV0dXJuIGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdjdHlwZScpCj4gKyByZXR1cm4g Y3R5cGVfcHJlcHR5cGUoY3RzLCBjdHlwZXN0ciwgY3R5cGUsIHF1YWwsICdlbnVtJykKPiArIGVs aWYgY3RwID09IENUX0FUVFJJQjoKPiArIGlmIGN0eXBlX2F0dHJpYihpbmZvKSA9PSBDVEFfUVVB TDoKPiArIHF1YWwgfD0gc2l6ZQo+ICsgZWxpZiBjdHAgPT0gQ1RfUFRSOgo+ICsgaWYgaW5mbyAm IENURl9SRUY6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICcmJykKPiAr IGVsc2U6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBxdWFsKGN0eXBlc3RyLCBxdWFsIHwgaW5m bykKPiArIGlmIExKXzY0IGFuZCBzaXplID09IDQ6Cj4gKyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBs aXQoY3R5cGVzdHIsICdfX3B0cjMyJykKPiArIGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlw ZXN0ciwgJyonKQo+ICsgcXVhbCA9IDAKPiArIHB0cnRvID0gMQo+ICsgZWxpZiBjdHAgPT0gQ1Rf QVJSQVk6Cj4gKyBpZiBjdHlwZV9pc3JlZmFycmF5KGluZm8pOgo+ICsgaWYgcHRydG86Cj4gKyBw dHJ0byA9IDAKPiArIGN0eXBlc3RyID0gJygnICsgY3R5cGVzdHIgKyAnKScKPiArIGFycnNpemUg PSAnJwo+ICsgaWYgc2l6ZSAhPSBDVFNJWkVfSU5WQUxJRDoKPiArIGNoaWxkX3NpemUgPSBjdHlw ZV9jaGlsZChjdHMsIGN0eXBlKVsnc2l6ZSddCj4gKyBhcnJzaXplID0gc3RyKGludChzaXplIC8g Y2hpbGRfc2l6ZSkgaWYgY2hpbGRfc2l6ZSA+IDAKPiArIGVsc2UgMCkKPiArIGVsaWYgaW5mbyAm IENURl9WTEE6Cj4gKyBhcnJzaXplID0gJz8nCj4gKyBjdHlwZXN0ciA9IGN0eXBlc3RyICsgJ1t7 fV0nLmZvcm1hdChhcnJzaXplKQo+ICsgZWxpZiBjdHlwZV9pc2NvbXBsZXgoaW5mbyk6Cj4gKyBp ZiBzaXplID09IERXT1JEU1ogKiAyOgo+ICsgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBl c3RyLCAnZmxvYXQnKQo+ICsgZWxzZToKPiArIGFzc2VydCBzaXplID09IFFXT1JEU1ogKiAyLCAn YmFkIChjb21wbGV4IGRvdWJsZSkgc2l6ZScKPiArIHJldHVybiBjdHlwZV9wcmVwbGl0KGN0eXBl c3RyLCAnY29tcGxleCcpCj4gKyBlbHNlOgo+ICsgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KAo+ ICsgY3R5cGVzdHIsCj4gKyAnX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoe30pKSknLmZvcm1h dChzaXplKQo+ICsgKQo+ICsgZWxpZiBjdHAgPT0gQ1RfRlVOQzoKPiArIGlmIHB0cnRvOgo+ICsg cHRydG8gPSAwCj4gKyBjdHlwZXN0ciA9ICcoJyArIGN0eXBlc3RyICsgJyknCj4gKyBjdHlwZXN0 ciArPSAnKCknCj4gKyBjdHlwZSA9IGN0eXBlX2NoaWxkKGN0cywgY3R5cGUpCj4gKyByZXR1cm4g J05ZSScKPiArCj4gKwo+ICtkZWYgZHVtcF9jdHlwZShjdCk6Cj4gCgpBbHNvLCBpdCBzZWVtcyzC oGl0IHdpbGwgYmUgZWFzeSB0byByZWFkIHRvIGNvZGUsIGlmIGl0IHdpbGwgYmUgcG9zc2libGXC oHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gcG9ydGVkIGZ1bmN0aW9ucyBhbmQgZXh0ZW5zaW9uIGl0 c2VsZsKgb25lcy4gTWF5IGJlIGJ5IHVzZSB0aGXCoOKAmGRiZ1/igJkgcHJlZml4wqBmb3IgZXh0 ZW5zaW9uIGZ1bmN0aW9uIG5hbWVzLgoKPiAKPiArIGN0cyA9IGN0eXBlX2N0c0coRyhMKCkpKQo+ ICsgY2lkID0gY3R5cGVfdHlwZWlkKGN0cywgY3QpCj4gKyBuYW1lID0gY3R5cGVfcmVwcihjdHMs IGNpZCkKPiArIHJldHVybiAnW3tpZH1dIDx7bmFtZX0+Jy5mb3JtYXQoCj4gKyBpZD1jaWQsCj4g KyBuYW1lPW5hbWUsCj4gKyApCj4gKwo+ICsKPiAjIEpJVCBkdW1wZXJzLgo+IAo+IAo+IEBAIC0y Mjk0LDcgKzI2MDMsOCBAQCBkZWYgZHVtcF9jYWxsX2Z1bmModHJhY2UsIGNhbGxvcCk6Cj4gYXNz ZXJ0IElSU1tjZHRfaWR4X2lya1snbyddXSA9PSAnS0lOVCcsIFwKPiAndW5leHBlY3RlZCBJUiBm b3IgY3R5cGUgc3RvcmFnZScKPiBjdHlwZV9pZHggPSBjZHRfaWR4X2lya1snaSddCj4gLSBjdHlw ZSA9ICdjdHlwZToge30nLmZvcm1hdChjdHlwZV9pZHgpCj4gKyBjdHMgPSBjdHlwZV9jdHNHKEco TCgpKSkKPiArIGN0eXBlID0gJ2N0eXBlOiB7fScuZm9ybWF0KGR1bXBfY3R5cGUoY3R5cGVfZ2V0 KGN0cywgY3R5cGVfaWR4KSkpCj4gCj4gZnVuY19zdHIgPSAnJwo+IGlmIGNhbGxvcCA8IDA6Cj4g QEAgLTI2NTIsNiArMjk2MiwyMCBAQCBodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFu dG9vbC93aWtpL0x1YUpJVC1CeXRlY29kZXMKPiAuCj4gKSkKPiAKPiAKPiArY2xhc3MgTEpEdW1w Q1R5cGUoZGJnLkxKQmFzZSk6Cj4gKyAnJycKPiArbGotY3R5cGUgPENUeXBlICo+Cj4gKwo+ICtU aGUgY29tbWFuZCByZWNlaXZlcyBhIHBvaW50ZXIgPGN0eXBlPiBvZiB0aGUgY29ycmVzcG9uZGlu ZyBDVHlwZQo+ICthbmQgZHVtcHMgdGhlIElEIGFuZCB0aGUgbmFtZSBmb3IgdGhpcyBDIGRhdGEg dHlwZS4KPiArICcnJwo+ICsKPiArIGRlZiBleGVjdXRlKHNlbGYsIGFyZyk6Cj4gKyBkYmcud3Jp dGUoJ3t9XG4nLmZvcm1hdCgKPiArIGR1bXBfY3R5cGUoZGJnLmNhc3QoJ0NUeXBlIConLCBkYmcu ZXZhbChhcmcpKSkKPiArICkpCj4gKwo+ICsKPiBjbGFzcyBMSkR1bXBGdW5jKGRiZy5MSkJhc2Up Ogo+ICcnJwo+IGxqLWZ1bmMgPEdDZnVuYyAqPgo+IEBAIC0yOTc5LDYgKzMzMDMsNyBAQCBkZWYg bG9hZChldmVudD1Ob25lKToKPiBkYmcuaW5pdGlhbGl6ZV9leHRlbnNpb24oewo+ICdsai1hcmNo JzogTEpEdW1wQXJjaCwKPiAnbGotYmMnOiBMSkR1bXBCQywKPiArICdsai1jdHlwZSc6IExKRHVt cENUeXBlLAo+ICdsai1mdW5jJzogTEpEdW1wRnVuYywKPiAnbGotZ2MnOiBMSkdDLAo+ICdsai1n Y28nOiBMSkR1bXBHQ29iaiwKPiBkaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtZGVidWdnZXIt dGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5Cj4gYi90ZXN0L3RhcmFudG9vbC1kZWJ1Z2dl ci10ZXN0cy9kZWJ1Zy1leHRlbnNpb24tdGVzdHMucHkKPiBpbmRleCA3NjU0M2RhYS4uZmM1ZDJj N2IgMTAwNjQ0Cj4gLS0tIGEvdGVzdC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVidWctZXh0 ZW5zaW9uLXRlc3RzLnB5Cj4gKysrIGIvdGVzdC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVi dWctZXh0ZW5zaW9uLXRlc3RzLnB5Cj4gQEAgLTIyNyw2ICsyMjcsNyBAQCBjbGFzcyBUZXN0TG9h ZChUZXN0Q2FzZUJhc2UpOgo+IHBhdHRlcm4gPSAoCj4gcidsai1hcmNoIGNvbW1hbmQgaW5pdGlh bGl6ZWRcbicKPiByJ2xqLWJjIGNvbW1hbmQgaW5pdGlhbGl6ZWRcbicKPiArIHInbGotY3R5cGUg Y29tbWFuZCBpbml0aWFsaXplZFxuJwo+IHInbGotZnVuYyBjb21tYW5kIGluaXRpYWxpemVkXG4n Cj4gcidsai1nYyBjb21tYW5kIGluaXRpYWxpemVkXG4nCj4gcidsai1nY28gY29tbWFuZCBpbml0 aWFsaXplZFxuJwo+IEBAIC0zMzEsNyArMzMyLDcgQEAgR0NPX1JYID0gKAo+IHInTHVhIGZ1bmN0 aW9uIEAgJyArIFJYX0FERFIgKyByJywgWzAtOV0rIHVwdmFsdWVzLCAuKzpbMC05XStcbicKPiBy J0MgZnVuY3Rpb24gQCAnICsgUlhfQUREUiArIHInXG4nCj4gcidmYXN0IGZ1bmN0aW9uICNbMC05 XStcbicKPiAtIHInY2RhdGEgQCAnICsgUlhfQUREUiArIHInXG4nCj4gKyByJ2NkYXRhIEAgJyAr IFJYX0FERFIgKyByJyBcW1xkK1xdIDxpbnQgXCo+IDB4MFxuJwo+IHIndGFibGUgQCAnICsgUlhf QUREUiArIHInIFwoYXNpemU6IFxkKywgaG1hc2s6ICcgKyBSWF9IQVNIICsgcidcKVxuJwo+IHIn dXNlcmRhdGEgQCAnICsgUlhfQUREUiArIHInXG4nCj4gKQo+IEBAIC04MTcsNyArODE4LDkgQEAg Y2xhc3MgVGVzdExKSVJDYWxsWFNDVHlwZShUZXN0Q2FzZUJhc2UpOgo+ICd0cmFjZSgpXG4nCj4g J3ByaW50KClcbicKPiApCj4gLSBwYXR0ZXJuID0gcidpbnQgQ0FMTFhTIC4qIFsnICsgUlhfQURE UiArIHInXF1cKC4qXCkgY3R5cGU6IFxkKycKPiArIHBhdHRlcm4gPSAoCj4gKyByJ2ludCBDQUxM WFMgLiogWycgKyBSWF9BRERSICsgcidcXVwoLipcKSBjdHlwZTogXFtcZCtcXSA8aW50IFwoXCk+ Jwo+ICsgKQo+IAo+IAo+IGNsYXNzIFRlc3RMSkpTbG90c0Jhc2UoVGVzdENhc2VCYXNlKToKPiBA QCAtODM4LDYgKzg0MSwyMDcgQEAgY2xhc3MgVGVzdExKSlNsb3RzQmFzZShUZXN0Q2FzZUJhc2Up Ogo+ICkKPiAKPiAKPiArZGVmIGNkYXRhX3J4KHRwc3RyLCBzdWZmaXg9Tm9uZSk6Cj4gKyByZXR1 cm4gcidjZGF0YSBAICcgKyBSWF9BRERSICsgcicgXFtcZCtcXSA8JyArIHRwc3RyICsgJz4gJyAr ICgKPiArIFJYX0FERFIgaWYgbm90IHN1ZmZpeCBlbHNlIHN1ZmZpeAo+ICsgKQo+ICsKPiArCj4g K0NIQVJfU0lHTkVEID0gbWFjaGluZSBpbiBbJ2FybTY0JywgJ2FhcmNoNjQnXSBhbmQgc3lzLnBs YXRmb3JtICE9Cj4gJ2RhcndpbicKPiArSEFTX0xPTkdfRE9VQkxFID0gbm90IChtYWNoaW5lIGlu IFsnYXJtNjQnLCAnYWFyY2g2NCddIGFuZAo+ICsgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nKQo+ ICsKPiArCj4gK2NsYXNzIFRlc3RMSkNUeXBlUHJpbShUZXN0Q2FzZUJhc2UpOgo+ICsgbG9jYXRp b24gPSAnbGpfY2ZfcHJpbnQnCj4gKyBleHRlbnNpb25fY21kcyA9ICgKPiArICduXG4nICMgTG9h ZCBMLgo+ICsgJ2xqLXR2IEwtPmJhc2VcbicKPiArICdsai10diBMLT5iYXNlICsgMVxuJwo+ICsg J2xqLXR2IEwtPmJhc2UgKyAyXG4nCj4gKyAnbGotdHYgTC0+YmFzZSArIDNcbicKPiArICdsai10 diBMLT5iYXNlICsgNFxuJwo+ICsgJ2xqLXR2IEwtPmJhc2UgKyA1XG4nCj4gKyAnbGotdHYgTC0+ YmFzZSArIDZcbicKPiArICdsai10diBMLT5iYXNlICsgN1xuJwo+ICsgJ2xqLXR2IEwtPmJhc2Ug KyA4XG4nCj4gKyAnbGotdHYgTC0+YmFzZSArIDlcbicKPiArICdsai10diBMLT5iYXNlICsgMTBc bicKPiArICdsai10diBMLT5iYXNlICsgMTFcbicKPiArICdsai10diBMLT5iYXNlICsgMTJcbicK PiArICdsai10diBMLT5iYXNlICsgMTNcbicKPiArICdsai10diBMLT5iYXNlICsgMTRcbicKPiAr ICdsai10diBMLT5iYXNlICsgMTVcbicKPiArICdsai10diBMLT5iYXNlICsgMTZcbicKPiArICds ai10diBMLT5iYXNlICsgMTdcbicKPiArICdsai10diBMLT5iYXNlICsgMThcbicKPiArICdsai10 diBMLT5iYXNlICsgMTlcbicKPiArICdsai10diBMLT5iYXNlICsgMjBcbicKPiArICdsai10diBM LT5iYXNlICsgMjFcbicKPiArICdsai10diBMLT5iYXNlICsgMjJcbicKPiArICkKPiArIGx1YV9z Y3JpcHQgPSAoCj4gKyAnbG9jYWwgZmZpID0gcmVxdWlyZSgiZmZpIilcbicKPiArICdwcmludChc bicKPiArICcgZmZpLm5ldygiYm9vbCIpLFxuJwo+ICsgJyBmZmkubmV3KCJjaGFyIiksXG4nCj4g KyAnIGZmaS5uZXcoInNpZ25lZCBjaGFyIiksXG4nCj4gKyAnIGZmaS5uZXcoInVuc2lnbmVkIGNo YXIiKSxcbicKPiArICcgZmZpLm5ldygiaW50IiksXG4nCj4gKyAnIGZmaS5uZXcoInNob3J0Iiks XG4nCj4gKyAnIGZmaS5uZXcoInVuc2lnbmVkIiksXG4nCj4gKyAnIGZmaS5uZXcoImludDhfdCIp LFxuJwo+ICsgJyBmZmkubmV3KCJpbnQxNl90IiksXG4nCj4gKyAnIGZmaS5uZXcoImludDMyX3Qi KSxcbicKPiArICcgZmZpLm5ldygiaW50NjRfdCIpLFxuJwo+ICsgJyBmZmkubmV3KCJ1aW50OF90 IiksXG4nCj4gKyAnIGZmaS5uZXcoInVpbnQ2NF90IiksXG4nCj4gKyAnIGZmaS5uZXcoImZsb2F0 IiksXG4nCj4gKyAnIGZmaS5uZXcoImRvdWJsZSIpLFxuJwo+ICsgJyBmZmkubmV3KCJsb25nIGRv dWJsZSIpLFxuJwo+ICsgJyAxaSxcbicKPiArICcgZmZpLm5ldygiY29tcGxleCBmbG9hdCIsIDEs IC0yKSxcbicKPiArICcgZmZpLm5ldygiY29uc3Qgdm9sYXRpbGUgaW50IiksXG4nCj4gKyAnIGZm aS5uZXcoInZvaWQgKiIpLFxuJwo+ICsgJyBmZmkubmV3KCJ2b2lkICogX19wdHIzMiIpLFxuJwo+ ICsgJyBmZmkubmV3KCJpbnQgJiIpLFxuJwo+ICsgJyBmZmkudHlwZW9mKDFMTClcbicKPiArICcp XG4nCj4gKyApCj4gKyBwYXR0ZXJuID0gKAo+ICsgY2RhdGFfcngoJ2Jvb2wnKSArIHInXG4nICsK PiArIGNkYXRhX3J4KCdjaGFyJykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeCgoJ3NpZ25lZCAnIGlm IENIQVJfU0lHTkVEIGVsc2UgJycpICsgJ2NoYXInKSArIHInXG4nICsKPiArIGNkYXRhX3J4KCgn dW5zaWduZWQgJyBpZiBub3QgQ0hBUl9TSUdORUQgZWxzZSAnJykgKyAnY2hhcicpICsgcidcbicg Kwo+ICsgY2RhdGFfcngoJ2ludCcpICsgcidcbicgKwo+ICsgY2RhdGFfcngoJ3Nob3J0JykgKyBy J1xuJyArCj4gKyBjZGF0YV9yeCgndW5zaWduZWQgaW50JykgKyByJ1xuJyArCj4gKyBjZGF0YV9y eCgoJ3NpZ25lZCAnIGlmIENIQVJfU0lHTkVEIGVsc2UgJycpICsgJ2NoYXInKSArIHInXG4nICsK PiArIGNkYXRhX3J4KCdzaG9ydCcpICsgcidcbicgKwo+ICsgY2RhdGFfcngoJ2ludCcpICsgcidc bicgKwo+ICsgY2RhdGFfcngoJ2ludDY0X3QnLCAnMExMJykgKyByJ1xuJyArCj4gKyBjZGF0YV9y eCgoJ3Vuc2lnbmVkICcgaWYgbm90IENIQVJfU0lHTkVEIGVsc2UgJycpICsgJ2NoYXInKSArIHIn XG4nICsKPiArIGNkYXRhX3J4KCd1aW50NjRfdCcsICcwVUxMJykgKyByJ1xuJyArCj4gKyBjZGF0 YV9yeCgnZmxvYXQnKSArIHInXG4nICsKPiArIGNkYXRhX3J4KCdkb3VibGUnKSArIHInXG4nICsK PiArIGNkYXRhX3J4KCgnbG9uZyAnIGlmIEhBU19MT05HX0RPVUJMRSBlbHNlICcnKSArICdkb3Vi bGUnKSArIHInXG4nICsKPiArIGNkYXRhX3J4KCdjb21wbGV4JywgcicwXCsxaScpICsgcidcbicg Kwo+ICsgY2RhdGFfcngoJ2NvbXBsZXggZmxvYXQnLCAnMS0yaScpICsgcidcbicgKwo+ICsgY2Rh dGFfcngoJ2NvbnN0IHZvbGF0aWxlIGludCcpICsgcidcbicgKwo+ICsgY2RhdGFfcngocid2b2lk IFwqJykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeChyJ3ZvaWQgXCogX19wdHIzMicpICsgcidcbicg Kwo+ICsgY2RhdGFfcngoJ2ludCAmJykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeCgnY3R5cGUnKSAr IHInXG4nCj4gKyApCj4gKwo+ICsKPiArY2xhc3MgVGVzdExKQ1R5cGVTdHJ1Y3RVbmlvbkVudW0o VGVzdENhc2VCYXNlKToKPiArIGxvY2F0aW9uID0gJ2xqX2NmX3ByaW50Jwo+ICsgZXh0ZW5zaW9u X2NtZHMgPSAoCj4gKyAnblxuJyAjIExvYWQgTC4KPiArICdsai10diBMLT5iYXNlXG4nCj4gKyAn bGotdHYgTC0+YmFzZSArIDFcbicKPiArICdsai10diBMLT5iYXNlICsgMlxuJwo+ICsgJ2xqLXR2 IEwtPmJhc2UgKyAzXG4nCj4gKyApCj4gKyBsdWFfc2NyaXB0ID0gKAo+ICsgJ2xvY2FsIGZmaSA9 IHJlcXVpcmUoImZmaSIpXG4nCj4gKyAnZmZpLmNkZWZbW1xuJwo+ICsgJyBzdHJ1Y3QgdGVzdCB7 aW50IGE7fTtcbicKPiArICddXVxuJwo+ICsgJ3ByaW50KFxuJwo+ICsgJyBmZmkubmV3KCJzdHJ1 Y3QgdGVzdCIpLFxuJwo+ICsgJyBmZmkubmV3KCJzdHJ1Y3Qge2ludCBhO30iKSxcbicKPiArICcg ZmZpLm5ldygidW5pb24ge2ludCBhO30iKSxcbicKPiArICcgZmZpLm5ldygiZW51bSB7RU5VTTF9 IilcbicKPiArICcpXG4nCj4gKyApCj4gKyBwYXR0ZXJuID0gKAo+ICsgY2RhdGFfcngoJ3N0cnVj dCB0ZXN0JykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeChyJ3N0cnVjdCBcZCsnKSArIHInXG4nICsK PiArIGNkYXRhX3J4KHIndW5pb24gXGQrJykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeChyJ2VudW0g XGQrJykgKyByJ1xuJwo+ICsgKQo+ICsKPiArCj4gK2NsYXNzIFRlc3RMSkNUeXBlQXJyYXkoVGVz dENhc2VCYXNlKToKPiArIGxvY2F0aW9uID0gJ2xqX2NmX3ByaW50Jwo+ICsgZXh0ZW5zaW9uX2Nt ZHMgPSAoCj4gKyAnblxuJyAjIExvYWQgTC4KPiArICdsai10diBMLT5iYXNlXG4nCj4gKyAnbGot dHYgTC0+YmFzZSArIDFcbicKPiArICdsai10diBMLT5iYXNlICsgMlxuJwo+ICsgJ2xqLXR2IEwt PmJhc2UgKyAzXG4nCj4gKyAnbGotdHYgTC0+YmFzZSArIDRcbicKPiArICdsai10diBMLT5iYXNl ICsgNVxuJwo+ICsgJ2xqLXR2IEwtPmJhc2UgKyA2XG4nCj4gKyApCj4gKyBsdWFfc2NyaXB0ID0g KAo+ICsgJ2xvY2FsIGZmaSA9IHJlcXVpcmUoImZmaSIpXG4nCj4gKyAncHJpbnQoXG4nCj4gKyAn IGZmaS5uZXcoImNoYXIgWzBdIiksXG4nCj4gKyAnIGZmaS5uZXcoImludCBbMV0iKSxcbicKPiAr ICcgZmZpLm5ldygiY29tcGxleCBbMl0iKSxcbicKPiArICcgZmZpLm5ldygiY29tcGxleCBmbG9h dCBbM10iKSxcbicKPiArICcgZmZpLm5ldygiZmxvYXQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3Np emUoNCkpKSIpLFxuJwo+ICsgJyBmZmkubmV3KCJpbnQgKCYpWzVdIiksXG4nCj4gKyAnIGZmaS5u ZXcoImludFs/XSIsIDYpXG4nCj4gKyAnKVxuJwo+ICsgKQo+ICsgcGF0dGVybiA9ICgKPiArIGNk YXRhX3J4KHInY2hhciBcWzBcXScpICsgcidcbicgKwo+ICsgY2RhdGFfcngocidpbnQgXFsxXF0n KSArIHInXG4nICsKPiArIGNkYXRhX3J4KHInY29tcGxleCBcWzJcXScpICsgcidcbicgKwo+ICsg Y2RhdGFfcngocidjb21wbGV4IGZsb2F0IFxbM1xdJykgKyByJ1xuJyArCj4gKyBjZGF0YV9yeChy J2Zsb2F0IF9fYXR0cmlidXRlX19cKFwodmVjdG9yX3NpemVcKDRcKVwpXCknKSArIHInXG4nICsK PiArIGNkYXRhX3J4KHInaW50IFwoJlwpXFs1XF0nKSArIHInXG4nICsKPiArIGNkYXRhX3J4KHIn aW50IFxbXD9cXScpICsgcidcbicKPiArICkKPiArCj4gKwo+ICtjbGFzcyBUZXN0TEpDVHlwZUZ1 bmMoVGVzdENhc2VCYXNlKToKPiArIGxvY2F0aW9uID0gJ2xqX2NmX3ByaW50Jwo+ICsgZXh0ZW5z aW9uX2NtZHMgPSAoCj4gKyAnblxuJyAjIExvYWQgTC4KPiArICdsai10diBMLT5iYXNlXG4nCj4g KyAnbGotdHYgTC0+YmFzZSArIDFcbicKPiArICdsai10diBMLT5iYXNlICsgMlxuJwo+ICsgKQo+ ICsgbHVhX3NjcmlwdCA9ICgKPiArICdsb2NhbCBmZmkgPSByZXF1aXJlKCJmZmkiKVxuJwo+ICsg J2ZmaS5jZGVmW1t2b2lkIGdldHBpZCh2b2lkKTtdXVxuJwo+ICsgJ3ByaW50KFxuJwo+ICsgJyBm ZmkuQy5nZXRwaWQsXG4nCj4gKyAnIGZmaS5uZXcoImludCAoKikoKSIpLFxuJwo+ICsgJyBmZmku bmV3KCJpbnQgKCooKikodm9pZCkpWzJdIilcbicKPiArICcpXG4nCj4gKyApCj4gKyBwYXR0ZXJu ID0gKAo+ICsgY2RhdGFfcngocid2b2lkIFwoXCknKSArIHInXG4nICsKPiArIGNkYXRhX3J4KHIn aW50IFwoXCpcKVwoXCknKSArIHInXG4nICsKPiArIGNkYXRhX3J4KHInaW50IFwoXCogXChcKlwp XChcKVwpXFsyXF0nKSArIHInXG4nCj4gKyApCj4gKwo+ICsKPiArY2xhc3MgVGVzdExKQ1R5cGVC YXNlKFRlc3RDYXNlQmFzZSk6Cj4gKyBsb2NhdGlvbiA9ICdsal9jZl9mZmlfbmV3Jwo+ICsgZXh0 ZW5zaW9uX2NtZHMgPSAoCj4gKyAjIExvYWQgYGN0YC4gU2tpcCBpbmxpbmVkIGZ1bmN0aW9ucyBm b3IgTExEQi4KPiAKClRoZSBleHRlbnNpb24gY29tbWFuZCBzZXQgaXMgY29tbW9uIGZvciBHREIg YW5kIExMREIuwqBEb2VzIHdlIHNraXAgZm9yIEdEQiBhbHNvPwoKPiAKPiArICduXG4nCj4gKyAn blxuJwo+ICsgJ25cbicKPiArICduXG4nCj4gKyAnblxuJwo+ICsgJ25cbicKPiArICdsai1jdHlw ZSBjdFxuJwo+ICsgKQo+ICsgbHVhX3NjcmlwdCA9ICgKPiArICdsb2NhbCBmZmkgPSByZXF1aXJl KCJmZmkiKVxuJwo+ICsgJ2ZmaS5uZXcoImludCIpXG4nCj4gKyApCj4gKyBwYXR0ZXJuID0gcidc W1xkK1xdIDxpbnQ+Jwo+ICsKPiArCj4gZm9yIHRlc3RfY2xzIGluIFRlc3RDYXNlQmFzZS5fX3N1 YmNsYXNzZXNfXygpOgo+IHRlc3RfY2xzLnRlc3QgPSBsYW1iZGEgc2VsZjogc2VsZi5jaGVjaygp Cj4gCj4gLS0KPiAyLjU0LjAKPg== ----ALT--43245963B67f895761C5D00f2D98389a1782741349 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgY2xhc3M9ImNsLTh2anhiN3RuODUiPjxkaXY+SGksIFNlcmdleSE8 L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+VGhhbmtzIGZvciB0aGUgcGF0Y2ghPC9kaXY+PGRp dj5QbGVhc2UsIHNlZSB0aGUgY29tbWVuZHMgYmVsb3cuPGJyPiZuYnNwOzwvZGl2PjxkaXYgZGF0 YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0 PSJjb250ZW50Ij48ZGl2Pi0tPGJyPkJlc3QgcmVnYXJkcyw8L2Rpdj48ZGl2PkV2Z2VuaXkgVGVt aXJnYWxlZXY8L2Rpdj48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0ibWFpbC1xdW90ZS1jb2xs YXBzZSI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21h cmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweCI+PHNwYW4+RnJvbTogU2VyZ2V5IEthcGx1biAm bHQ7PGEgaHJlZj0ibWFpbHRvOnNrYXBsdW5AdGFyYW50b29sLm9yZyI+c2thcGx1bkB0YXJhbnRv b2wub3JnPC9hPiZndDs8YnI+VG86IFNlcmdleSBCcm9ubmlrb3YgJmx0OzxhIGhyZWY9Im1haWx0 bzpzZXJnZXliQHRhcmFudG9vbC5vcmciPnNlcmdleWJAdGFyYW50b29sLm9yZzwvYT4mZ3Q7LCBF dmdlbml5IFRlbWlyZ2FsZWV2ICZsdDs8YSBocmVmPSJtYWlsdG86ZS50ZW1pcmdhbGVldkB0YXJh bnRvb2wub3JnIj5lLnRlbWlyZ2FsZWV2QHRhcmFudG9vbC5vcmc8L2E+Jmd0Ozxicj5DYzogdGFy YW50b29sLXBhdGNoZXNAZGV2LnRhcmFudG9vbC5vcmcsIFNlcmdleSBLYXBsdW4gJmx0OzxhIGhy ZWY9Im1haWx0bzpza2FwbHVuQHRhcmFudG9vbC5vcmciPnNrYXBsdW5AdGFyYW50b29sLm9yZzwv YT4mZ3Q7PGJyPkRhdGU6IFRodXJzZGF5LCBKdW5lIDI1LCAyMDI2IDExOjI5IFBNICswMzowMDwv c3Bhbj48YnI+Jm5ic3A7PGRpdj48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImNsLWlqbmF3bmpwcjQi PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3Nf YXR0ciI+PGRpdiBpZD0ic3R5bGVfMTc4MjQxOTM4NDA1NjMxMDI1MTJfbXJfY3NzX2F0dHIiPjxk aXYgaWQ9InN0eWxlXzE3ODI0MTkzODQwNTYzMTAyNTEyX0JPRFlfbXJfY3NzX2F0dHIiPlRoaXMg cGF0Y2ggZXh0ZW5kcyBkdW1wZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBjZGF0YSBvYmpl Y3QuIE5vdzxicj5pdCByZXNvbHZlcyB0aGUgZ2l2ZW4gYENUeXBlYCBhbmQgcHJpbnRzIGl0IGlu IHRoZSBmb3JtYXQgc2ltaWxhciB0byB0aGU8YnI+YF9fdG9zdHJpbmdgIG1ldGFtZXRob2QuIFRo ZSBgbGotY3R5cGVgIGNvbW1hbmQgaXMgaW50cm9kdWNlZCB0byBkdW1wPGJyPnRoaXMgaW5mb3Jt YXRpb24gd2hlcmUgdGhlcmUgaXMgb25seSB0aGUgYENUeXBlYCBwb2ludGVyIGJ1dCBubyBjZGF0 YTxicj5hc3NvY2lhdGVkIHdpdGggaXQuPGJyPjxicj5gX19vcl9fYCBhbmQgYF9fcm9yX19gIG1l dGFtZXRob2RzIGFyZSBtb25rZXktcGF0Y2hlZCBmb3IgdGhlIExMREIgdmFsdWU8YnI+b2JqZWN0 LiBJbiBgX19zdWJfX2AgbWV0YW1ldGhvZCBmb3IgTExEQiBwb2ludGVycyBgR2V0UG9pbnRlZVR5 cGUoKWAgaXM8YnI+dXNlZCB0byBnZXQgdGhlIHBvaW50ZWUgdHlwZSBpbnN0ZWFkIG9mIHRoZSBp bmNvcnJlY3RseSB1c2VkPGJyPmBHZXREZXJlZmVyZW5jZWRUeXBlKClgIHdoaWNoIGFsd2F5cyBy ZXR1cm5zIHRoZSBzYW1lIHR5cGUgd2l0aCBzaXplIDguPGJyPkNhc3RpbmcgZnJvbSBuZWdhdGl2 ZSB2YWx1ZXMgdG8gdGhlIHVuc2lnbmVkIHZhbHVlcyBpcyBzdXBwb3J0ZWQgdG88YnI+Y2hlY2sg YENURl9VQ0hBUmAuPGJyPjxicj5QYXJ0IG9mIHRhcmFudG9vbC90YXJhbnRvb2wjNDgwODxicj4t LS08YnI+c3JjL2x1YWppdF9kYmcucHkgfCAzMzMgKysrKysrKysrKysrKysrKystPGJyPi4uLi9k ZWJ1Zy1leHRlbnNpb24tdGVzdHMucHkgfCAyMDggKysrKysrKysrKy08YnI+MiBmaWxlcyBjaGFu Z2VkLCA1MzUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSk8YnI+PGJyPmRpZmYgLS1naXQg YS9zcmMvbHVhaml0X2RiZy5weSBiL3NyYy9sdWFqaXRfZGJnLnB5PGJyPmluZGV4IGZkNmNhOGE1 Li42MmNkNjVkNSAxMDA2NDQ8YnI+LS0tIGEvc3JjL2x1YWppdF9kYmcucHk8YnI+KysrIGIvc3Jj L2x1YWppdF9kYmcucHk8YnI+QEAgLTM4Niw2ICszODYsOCBAQCBjbGFzcyBfTExEQkRlYnVnZ2Vy KERlYnVnZ2VyKTo8YnI+cGFja19mbGFnID0gJyZsdDtxJzxicj5lbHNlOjxicj5wYWNrX2ZsYWcg PSAnJmx0O1EnPGJyPisgIyBDYXN0IHRvIHVuc2lnbmVkLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2 PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48ZGl2PklzJm5ic3A7L3Vuc2ln bmVkL3VpbnQ2NF90LyBjbGVhcmx5PzwvZGl2PjxkaXYgY2xhc3M9ImNsLTh2anhiN3RuODUiPjxk aXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHgiPjxk aXY+PGRpdj48ZGl2IGNsYXNzPSJjbC1pam5hd25qcHI0Ij48ZGl2IGNsYXNzPSJqcy1oZWxwZXJf bXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj4rIHJhd192 YWx1ZSAmYW1wOz0gMHhGRkZGRkZGRkZGRkZGRkZGPGJyPnJhd19kYXRhID0gc3RydWN0LnBhY2so cGFja19mbGFnLCByYXdfdmFsdWUpPGJyPnNiZGF0YSA9IGxsZGIuU0JEYXRhKCk8YnI+c2JkYXRh LlNldERhdGEoPGJyPkBAIC00ODIsNiArNDg0LDkgQEAgY2xhc3MgX0xMREJEZWJ1Z2dlcihEZWJ1 Z2dlcik6PGJyPmRlZiBsbGRiX19sdF9fKGxsZGJ2YWwsIG90aGVyKTo8YnI+cmV0dXJuIGludChs bGRidmFsKSAmbHQ7IGludChvdGhlcik8YnI+PGJyPisgZGVmIGxsZGJfX29yX18obGxkYnZhbCwg b3RoZXIpOjxicj4rIHJldHVybiBpbnQobGxkYnZhbCkgfCBpbnQob3RoZXIpPGJyPis8YnI+ZGVm IGxsZGJfX3N0cl9fKGxsZGJ2YWwpOjxicj4jIEluc3RlYWQgb2YgZGVmYXVsdCBHZXRTdW1tYXJ5 Ljxicj5pZiBub3QgbGxkYnZhbC5zYnZhbHVlLlR5cGVJc1BvaW50ZXJUeXBlKCk6PGJyPkBAIC01 MTIsOCArNTE3LDggQEAgY2xhc3MgX0xMREJEZWJ1Z2dlcihEZWJ1Z2dlcik6PGJyPmxsZGJ2YWxf dHAgPSBzYnZhbC5HZXRUeXBlKCk8YnI+b3RoZXJfdHAgPSBvc2J2YWwuR2V0VHlwZSgpPGJyPiMg U3VidHJhY3QgcG9pbnRlcnMgb2YgdGhlIHNhbWUgc2l6ZSBvbmx5Ljxicj4tIGVsc3ogPSBsbGRi dmFsX3RwLkdldERlcmVmZXJlbmNlZFR5cGUoKS5zaXplPGJyPi0gaWYgb3RoZXJfdHAuR2V0RGVy ZWZlcmVuY2VkVHlwZSgpLnNpemUgIT0gZWxzejo8YnI+KyBlbHN6ID0gbGxkYnZhbF90cC5HZXRQ b2ludGVlVHlwZSgpLnNpemU8YnI+KyBpZiBvdGhlcl90cC5HZXRQb2ludGVlVHlwZSgpLnNpemUg IT0gZWxzejo8YnI+cmFpc2UgRXhjZXB0aW9uKDxicj4nQXR0ZW1wdCB0byBzdWJzdHJ1Y3Qge290 cH0gZnJvbSB7c3RwfScuZm9ybWF0KDxicj5zdHA9bGxkYnZhbF90cC5uYW1lLDxicj5AQCAtNTM2 LDYgKzU0MSw4IEBAIGNsYXNzIF9MTERCRGVidWdnZXIoRGVidWdnZXIpOjxicj5sbGRiLnZhbHVl Ll9faW5kZXhfXyA9IGxsZGJfX2luZGV4X188YnI+bGxkYi52YWx1ZS5fX2xlX18gPSBsbGRiX19s ZV9fPGJyPmxsZGIudmFsdWUuX19sdF9fID0gbGxkYl9fbHRfXzxicj4rIGxsZGIudmFsdWUuX19v cl9fID0gbGxkYl9fb3JfXzxicj4rIGxsZGIudmFsdWUuX19yb3JfXyA9IGxsZGJfX29yX18gIyBT YW1lIHNlbWFudGljcy48YnI+bGxkYi52YWx1ZS5fX3N0cl9fID0gbGxkYl9fc3RyX188YnI+bGxk Yi52YWx1ZS5fX3N1Yl9fID0gbGxkYl9fc3ViX188YnI+PGJyPkBAIC0xMzUyLDYgKzEzNTksMTE5 IEBAIGRlZiBsaWdodHVkVih0dik6PGJyPnJldHVybiBnY3ZhbCh0dlsnZ2NyJ10pPGJyPjxicj48 YnI+KyMgRkZJLjxicj4rPGJyPis8YnI+K2RlZiBjdHlwZV9jdHNHKGcpOjxicj4rIHJldHVybiBt cmVmKCdDVFN0YXRlIConLCBnWydjdHlwZV9zdGF0ZSddKTxicj4rPGJyPis8YnI+K2RlZiBjdHlw ZV9nZXQoY3RzLCBpZCk6PGJyPisgcmV0dXJuIGRiZy5hZGRyZXNzKGN0c1sndGFiJ11baWRdKTxi cj4rPGJyPis8YnI+KyMgRXh0ZXJuYWxseSB2aXNpYmxlIHR5cGVzLjxicj4rQ1RfTlVNID0gMCAj IEludGVnZXIgb3IgZmxvYXRpbmctcG9pbnQgbnVtYmVycy48YnI+K0NUX1NUUlVDVCA9IDEgIyBT dHJ1Y3Qgb3IgdW5pb24uPGJyPitDVF9QVFIgPSAyICMgUG9pbnRlciBvciByZWZlcmVuY2UuPGJy PitDVF9BUlJBWSA9IDMgIyBBcnJheSBvciBjb21wbGV4IHR5cGUuPGJyPitDVF9NQVlDT05WRVJU ID0gQ1RfQVJSQVk8YnI+K0NUX1ZPSUQgPSA0ICMgVm9pZCB0eXBlLjxicj4rQ1RfRU5VTSA9IDUg IyBFbnVtZXJhdGlvbi48YnI+K0NUX0hBU1NJWkUgPSBDVF9FTlVNICMgTGFzdCB0eXBlIHdoZXJl IGN0LSZndDtzaXplIGhvbGRzIHRoZSBhY3R1YWwgc2l6ZS48YnI+K0NUX0ZVTkMgPSA2ICMgRnVu Y3Rpb24uPGJyPitDVF9UWVBFREVGID0gNyAjIFR5cGVkZWYuPGJyPitDVF9BVFRSSUIgPSA4ICMg TWlzY2VsbGFuZW91cyBhdHRyaWJ1dGVzLjxicj4rPGJyPisjIENvbW1vbiB0eXBlcy48YnI+K0NU SURfQ1RZUEVJRCA9IDIxPGJyPis8YnI+KyMgQyB0eXBlIGluZm8gZmxhZ3MuPGJyPitDVEZfQk9P TCA9IDB4MDgwMDAwMDAgIyBCb29sZWFuOiBOVU0sIEJJVEZJRUxELjxicj4rQ1RGX0ZQID0gMHgw NDAwMDAwMCAjIEZsb2F0aW5nLXBvaW50OiBOVU0uPGJyPitDVEZfQ09OU1QgPSAweDAyMDAwMDAw ICMgQ29uc3QgcXVhbGlmaWVyLjxicj4rQ1RGX1ZPTEFUSUxFID0gMHgwMTAwMDAwMCAjIFZvbGF0 aWxlIHF1YWxpZmllci48YnI+K0NURl9VTlNJR05FRCA9IDB4MDA4MDAwMDAgIyBVbnNpZ25lZDog TlVNLCBCSVRGSUVMRC48YnI+K0NURl9MT05HID0gMHgwMDQwMDAwMCAjIExvbmc6IE5VTS48YnI+ K0NURl9WTEEgPSAweDAwMTAwMDAwICMgVmFyaWFibGUtbGVuZ3RoOiBBUlJBWSwgU1RSVUNULjxi cj4rQ1RGX1JFRiA9IDB4MDA4MDAwMDAgIyBSZWZlcmVuY2U6IFBUUi48YnI+K0NURl9WRUNUT1Ig PSAweDA4MDAwMDAwICMgVmVjdG9yOiBBUlJBWS48YnI+K0NURl9DT01QTEVYID0gMHgwNDAwMDAw MCAjIENvbXBsZXg6IEFSUkFZLjxicj4rQ1RGX1VOSU9OID0gMHgwMDgwMDAwMCAjIFVuaW9uOiBT VFJVQ1QuPGJyPitDVEZfVkFSQVJHID0gMHgwMDgwMDAwMCAjIFZhcmFyZzogRlVOQy48YnI+K0NU Rl9TU0VSRUdQQVJNID0gMHgwMDQwMDAwMCAjIFNTRSByZWdpc3RlciBwYXJhbWV0ZXJzOiBGVU5D Ljxicj4rPGJyPitDVEZfVUNIQVIgPSBDVEZfVU5TSUdORUQgaWYgaW50KGRiZy5jYXN0KCdjaGFy JywgLTEpKSAmZ3Q7IDAgZWxzZSAwPGJyPis8YnI+K0NUTUFTS19BVFRSSUIgPSAyNTUgIyBNYXgu IDI1NiBhdHRyaWJ1dGVzLjxicj4rQ1RTSElGVF9BVFRSSUIgPSAxNjxicj4rPGJyPisjIEF0dHJp YnV0ZSBudW1iZXJzLjxicj4rQ1RBX1FVQUwgPSAxICMgVW5tZXJnZWQgcXVhbGlmaWVycy48YnI+ Kzxicj4rQ1RTSElGVF9OVU0gPSAyODxicj4rQ1RNQVNLX0NJRCA9IDB4MDAwMGZmZmY8YnI+K0NU TUFTS19OVU0gPSAweGYwMDAwMDAwICMgTWF4LiAxNiB0eXBlIG51bWJlcnMuPGJyPis8YnI+KyMg U3BlY2lhbCBzaXplcy48YnI+K0NUU0laRV9JTlZBTElEID0gMHhmZmZmZmZmZjxicj4rRFdPUkRT WiA9IDQ8YnI+K1FXT1JEU1ogPSA4PGJyPis8YnI+Kzxicj4rZGVmIGN0eXBlX3R5cGUoaW5mbyk6 PGJyPisgcmV0dXJuIGluZm8gJmd0OyZndDsgQ1RTSElGVF9OVU08YnI+Kzxicj4rPGJyPitkZWYg Y3R5cGVfYXR0cmliKGluZm8pOjxicj4rIHJldHVybiAoaW5mbyAmZ3Q7Jmd0OyBDVFNISUZUX0FU VFJJQikgJmFtcDsgQ1RNQVNLX0FUVFJJQjxicj4rPGJyPis8YnI+K2RlZiBjdGluZm8oY3QsIGZs YWdzKTo8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9k aXY+PC9kaXY+PGRpdj5NYXkgd2UgbmFtZSB0aGlzIGZ1bmN0aW9uIOKAmENUSU5GT+KAmSZuYnNw O2FzIGluIOKAmGxqX2N0eXBlLmjigJk/Jm5ic3A7T3IgbGVhdmUgYSBjb21tZW50IHdpdGggYW4g b3JpZ2luYWwgbmFtZSBmb3IgcXVpY2sgZ3JlcC48L2Rpdj48ZGl2IGNsYXNzPSJjbC04dmp4Yjd0 bjg1Ij48ZGl2IGNsYXNzPSJtYWlsLXF1b3RlLWNvbGxhcHNlIj48YmxvY2txdW90ZSBzdHlsZT0i Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAx MHB4Ij48ZGl2PjxkaXY+PGRpdiBjbGFzcz0iY2wtaWpuYXduanByNCI+PGRpdiBjbGFzcz0ianMt aGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+ KyByZXR1cm4gKHRvdTMyKGN0KSAmbHQ7Jmx0OyBDVFNISUZUX05VTSkgKyBmbGFnczxicj4rPGJy Pis8YnI+K2RlZiBjdHlwZV9pc3B0cihpbmZvKTo8YnI+KyByZXR1cm4gY3R5cGVfdHlwZShpbmZv KSA9PSBDVF9QVFI8YnI+Kzxicj4rPGJyPitkZWYgY3R5cGVfaXNjb21wbGV4KGluZm8pOjxicj4r IHJldHVybiAoaW5mbyAmYW1wOyAoQ1RNQVNLX05VTSB8IENURl9DT01QTEVYKSkgPT0gY3RpbmZv KENUX0FSUkFZLCBDVEZfQ09NUExFWCk8YnI+Kzxicj4rPGJyPitkZWYgY3R5cGVfaXNpbnRlZ2Vy KGluZm8pOjxicj4rIHJldHVybiAoaW5mbyAmYW1wOyAoQ1RNQVNLX05VTSB8IENURl9CT09MIHwg Q1RGX0ZQKSkgPT0gY3RpbmZvKENUX05VTSwgMCk8YnI+Kzxicj4rPGJyPitkZWYgY3R5cGVfaXNy ZWZhcnJheShpbmZvKTo8YnI+KyByZXR1cm4gKGluZm8gJmFtcDsgKENUTUFTS19OVU0gfCBDVEZf VkVDVE9SIHwgQ1RGX0NPTVBMRVgpKSA9PSBcPGJyPisgY3RpbmZvKENUX0FSUkFZLCAwKTxicj4r PGJyPis8YnI+K2RlZiBjdHlwZV9jaWQoaW5mbyk6PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjxkaXY+TGV04oCZcyBwdXQgdGhlc2Ug ZnVuY3Rpb24mbmJzcDtkZWZpbml0aW9ucyBpbiZuYnNwO3RoZSDigJhsal9jdHlwZS5o4oCZIG9y ZGVyPzwvZGl2PjxkaXY+TWF5IHdlIGdyb3VwIHRoZSBkZWZpbml0aW9ucyBieSBjb3JyZXNwb25k aW5nJm5ic3A7QyBmaWxlcyBhbHNvPyAjIGxqX2N0eXBlLmgg4oCmJm5ic3A7IyBsal9jZGF0YS5o IOKApiAjIGxqX3h4eC5jIOKApjwvZGl2PjxkaXYgY2xhc3M9ImNsLTh2anhiN3RuODUiPjxkaXYg Y2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVm dDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHgiPjxkaXY+ PGRpdj48ZGl2IGNsYXNzPSJjbC1pam5hd25qcHI0Ij48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJf Y3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj4rIHJldHVybiBp bmZvICZhbXA7IENUTUFTS19DSUQ8YnI+Kzxicj4rPGJyPitkZWYgY3R5cGVfY2hpbGQoY3RzLCBj dHlwZSk6PGJyPisgcmV0dXJuIGN0eXBlX2dldChjdHMsIGN0eXBlX2NpZChjdHlwZVsnaW5mbydd KSk8YnI+Kzxicj4rPGJyPitkZWYgY2RhdGFwdHIoY2QpOjxicj4rIHJldHVybiBkYmcuY2FzdCgn dm9pZCAqJywgKGNkICsgMSkpPGJyPis8YnI+Kzxicj4rZGVmIGNkYXRhX2dldHB0cihwLCBzaXpl KTo8YnI+KyBpZiBMSl82NCBhbmQgc2l6ZSA9PSA0Ojxicj4rIHJldHVybiBkYmcuY2FzdCgndm9p ZCAqJywgZGJnLmNhc3QoJ3VpbnQzMl90IConLCBwKVswXSk8YnI+KyBlbHNlOjwvZGl2PjwvZGl2 PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48ZGl2PmFz c2VydCBmb3Igc2l6ZSA9PSA4ID88L2Rpdj48ZGl2IGNsYXNzPSJjbC04dmp4Yjd0bjg1Ij48ZGl2 IGNsYXNzPSJtYWlsLXF1b3RlLWNvbGxhcHNlIj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxl ZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4Ij48ZGl2 PjxkaXY+PGRpdiBjbGFzcz0iY2wtaWpuYXduanByNCI+PGRpdiBjbGFzcz0ianMtaGVscGVyX21y X2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+KyByZXR1cm4g ZGJnLmNhc3QoJ3ZvaWQgKicsIGRiZy5jYXN0KCd1aW50NjRfdCAqJywgcClbMF0pPGJyPis8YnI+ Kzxicj4rIyBHZXQgQyB0eXBlIElEIGZvciBhIEMgdHlwZS48YnI+K2RlZiBjdHlwZV90eXBlaWQo Y3RzLCBjdCk6PGJyPisgcmV0dXJuIGN0IC0gY3RzWyd0YWInXTxicj4rPGJyPis8YnI+IyBKSVQg ZW5naW5lLjxicj48YnI+PGJyPkBAIC0xOTUxLDcgKzIwNzEsMjYgQEAgZGVmIGR1bXBfbGpfZ2Nv X3RyYWNlKGdjb2JqKTo8YnI+PGJyPjxicj5kZWYgZHVtcF9sal9nY29fY2RhdGEoZ2NvYmopOjxi cj4tIHJldHVybiAnY2RhdGEgQCB7fScuZm9ybWF0KHN0cng2NChnY29iaikpPGJyPisgY2RhdGEg PSBkYmcuY2FzdCgnc3RydWN0IEdDY2RhdGEgKicsIGdjb2JqKTxicj4rIGN0cyA9IGN0eXBlX2N0 c0coRyhMKCkpKTxicj4rIGNpZCA9IGNkYXRhWydjdHlwZWlkJ108YnI+KyBjdHlwZSA9IGN0eXBl X2dldChjdHMsIGNpZCk8YnI+KyBpbmZvID0gY3R5cGVbJ2luZm8nXTxicj4rIHNpemUgPSBjdHlw ZVsnc2l6ZSddPGJyPisgdmFsdWUgPSAnJzxicj4rIGlmIGN0eXBlX2lzY29tcGxleChpbmZvKTo8 YnI+KyB2YWx1ZSA9IGNkYXRhX3ZhbF9jb21wbGV4KGNkYXRhLCBjdHlwZSk8YnI+KyBlbGlmIHNp emUgPT0gOCBhbmQgY3R5cGVfaXNpbnRlZ2VyKGluZm8pOjxicj4rIHZhbHVlID0gY2RhdGFfdmFs X2ludDY0KGNkYXRhLCBjdHlwZSk8YnI+KyBlbHNlOjxicj4rIHZhbHVlID0gY2RhdGFwdHIoY2Rh dGEpPGJyPisgaWYgY3R5cGVfaXNwdHIoaW5mbyk6PGJyPisgdmFsdWUgPSBjZGF0YV9nZXRwdHIo dmFsdWUsIHNpemUpPGJyPisgcmV0dXJuICdjZGF0YSBAIHthZGRyfSB7Y3R5cGV9IHt2YWx1ZX0n LmZvcm1hdCg8YnI+KyBhZGRyPXN0cng2NChnY29iaiksPGJyPisgY3R5cGU9ZHVtcF9jdHlwZShj dHlwZSksPGJyPisgdmFsdWU9dmFsdWUsPGJyPisgKTxicj48YnI+PGJyPmRlZiBkdW1wX2xqX2dj b190YWIoZ2NvYmopOjxicj5AQCAtMjI4MSw2ICsyNDIwLDE3NiBAQCBkZWYgZHVtcF9mdW5jKGZ1 bmMpOjxicj5yZXR1cm4gJ2Zhc3QgZnVuY3Rpb24gI3t9XG4nLmZvcm1hdChpbnQoZmZpZCkpPGJy Pjxicj48YnI+KyMgRkZJIGR1bXBlcnMuPGJyPis8YnI+Kzxicj4rZGVmIGNkYXRhX3ZhbF9pbnQ2 NChjZGF0YSwgY3R5cGUpOjxicj4rIGluZm8gPSBjdHlwZVsnaW5mbyddPGJyPisgaXN1bnNpZ25l ZCA9IGluZm8gJmFtcDsgQ1RGX1VOU0lHTkVEPGJyPisgY2RhdGF2YWwgPSBjZGF0YXB0cihjZGF0 YSk8YnI+KyB2YWx1ZXB0ciA9IE5vbmU8YnI+KyB1c3VmZml4ID0gJyc8YnI+KyBpZiBpc3Vuc2ln bmVkOjxicj4rIHVzdWZmaXggPSAnVSc8YnI+KyB2YWx1ZXB0ciA9IGRiZy5jYXN0KCd1aW50NjRf dCAqJywgY2RhdGF2YWwpPGJyPisgZWxzZTo8YnI+KyB2YWx1ZXB0ciA9IGRiZy5jYXN0KCdpbnQ2 NF90IConLCBjZGF0YXZhbCk8YnI+KyByZXR1cm4gc3RyKHZhbHVlcHRyWzBdKSArIHVzdWZmaXgg KyAnTEwnPGJyPis8YnI+Kzxicj4rZGVmIGNkYXRhX3ZhbF9jb21wbGV4KGNkYXRhLCBjdHlwZSk6 PGJyPisgc2l6ZSA9IGN0eXBlWydzaXplJ108YnI+KyBjZGF0YXZhbCA9IGNkYXRhcHRyKGNkYXRh KTxicj4rIGNhc3R0eXBlID0gTm9uZTxicj4rIGlmIHNpemUgPT0gUVdPUkRTWiAqIDI6PGJyPisg Y2FzdHR5cGUgPSAnZG91YmxlIConPGJyPisgZWxzZTo8YnI+KyBhc3NlcnQgc2l6ZSA9PSBEV09S RFNaICogMiwgJ2JhZCAoY29tcGxleCBmbG9hdCkgc2l6ZSc8YnI+KyBjYXN0dHlwZSA9ICdmbG9h dCAqJzxicj4rIHJlID0gZGJnLmNhc3QoY2FzdHR5cGUsIGNkYXRhdmFsKVswXTxicj4rIGltID0g ZGJnLmNhc3QoY2FzdHR5cGUsIGNkYXRhdmFsKVsxXTxicj4rIHNpZ24gPSAnKycgaWYgaW0gJmd0 OyAwIGVsc2UgJyc8YnI+KyByZXR1cm4gJ3tyZX17c2lnbn17aW19aScuZm9ybWF0KHJlPXJlLCBp bT1pbSwgc2lnbj1zaWduKTxicj4rPGJyPis8YnI+K2RlZiBjdHlwZV9wcmVwbGl0KGN0eXBlc3Ry LCBsaXQpOjxicj4rICMgUHJldmVudCBleHRyYSBzcGFjZSBpbiB0aGUgZW5kIG9mIHRoZSBzdHJp bmcuPGJyPisgc3BhY2UgPSAnICcgaWYgY3R5cGVzdHIgIT0gJycgZWxzZSAnJzxicj4rIHJldHVy biBsaXQgKyBzcGFjZSArIGN0eXBlc3RyPGJyPis8YnI+Kzxicj4rZGVmIGN0eXBlX3ByZXBxdWFs KGN0eXBlc3RyLCBpbmZvKTo8YnI+KyBpZiAoaW5mbyAmYW1wOyBDVEZfVk9MQVRJTEUpOjxicj4r IGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgJ3ZvbGF0aWxlJyk8YnI+KyBpZiAo aW5mbyAmYW1wOyBDVEZfQ09OU1QpOjxicj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlw ZXN0ciwgJ2NvbnN0Jyk8YnI+KyByZXR1cm4gY3R5cGVzdHI8YnI+Kzxicj4rPGJyPitkZWYgY3R5 cGVfcHJlcHR5cGUoY3RzLCBjdHlwZXN0ciwgY3R5cGUsIHF1YWwsIHRwKTo8YnI+KyBuYW1lcmVm ID0gZ2NyZWYoY3R5cGVbJ25hbWUnXSk8YnI+KyBpZiBuYW1lcmVmOjxicj4rIGN0eXBlc3RyID0g Y3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgcmUuc3ViKCciJywgJycsIHN0cmRhdGEobmFtZXJlZikp KTxicj4rIGVsc2U6PGJyPisgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBlc3RyLCBzdHIo Y3R5cGVfdHlwZWlkKGN0cywgY3R5cGUpKSk8YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQo Y3R5cGVzdHIsIHRwKTxicj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcHF1YWwoY3R5cGVzdHIsIHF1 YWwpPGJyPisgcmV0dXJuIGN0eXBlc3RyPGJyPis8YnI+Kzxicj4rZGVmIGN0eXBlX3ByZXBudW0o Y3R5cGVzdHIsIGluZm8sIHNpemUpOjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2 PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48ZGl2PkZ1bmMgcHJvdG8gZGlmZmVycyB3aXRoIGxq X2N0eXBlLmMgKHN0YXRpYyB2b2lkIGN0eXBlX3ByZXBudW0oQ1RSZXByICpjdHIsIHVpbnQzMl90 IG4pKS48L2Rpdj48ZGl2Pkl0IHNlZW1zLCB5b3UgbW92ZSBzb21lIG9mJm5ic3A7Y3R5cGVfcmVw cigpIGNvZGUgaGVyZS4mbmJzcDtMZXTigJlzIGNvbW1lbnQgaXQ/PC9kaXY+PGRpdiBjbGFzcz0i Y2wtOHZqeGI3dG44NSI+PGRpdiBjbGFzcz0ibWFpbC1xdW90ZS1jb2xsYXBzZSI+PGJsb2NrcXVv dGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21hcmdpbjoxMHB4O3BhZGRp bmc6MCAwIDAgMTBweCI+PGRpdj48ZGl2PjxkaXYgY2xhc3M9ImNsLWlqbmF3bmpwcjQiPjxkaXYg Y2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+ PGRpdj48ZGl2PisgaWYgaW5mbyAmYW1wOyBDVEZfQk9PTDo8YnI+KyBjdHlwZXN0ciA9IGN0eXBl X3ByZXBsaXQoY3R5cGVzdHIsICdib29sJyk8YnI+KyBlbGlmIGluZm8gJmFtcDsgQ1RGX0ZQOjxi cj4rIGlmIHNpemUgPT0gUVdPUkRTWjo8YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5 cGVzdHIsICdkb3VibGUnKTxicj4rIGVsaWYgc2l6ZSA9PSBEV09SRFNaOjxicj4rIGN0eXBlc3Ry ID0gY3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgJ2Zsb2F0Jyk8YnI+KyBlbHNlOjxicj4rIGFzc2Vy dCBzaXplID09IFFXT1JEU1ogKiAyLCAnYmFkIChsb25nIGRvdWJsZSkgc2l6ZSc8YnI+KyBjdHlw ZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdsb25nIGRvdWJsZScpPGJyPisgZWxpZiBz aXplID09IDE6PGJyPisgaWYgbm90ICgoaW5mbyBeIENURl9VQ0hBUikgJmFtcDsgQ1RGX1VOU0lH TkVEKTo8YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdjaGFyJyk8YnI+ KyBlbGlmIENURl9VQ0hBUjo8YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIs ICdzaWduZWQgY2hhcicpPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9j a3F1b3RlPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNsLTh2anhiN3RuODUiPjxkaXYgY2xhc3M9 Im1haWwtcXVvdGUtY29sbGFwc2UiPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHgg c29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHgiPjxkaXY+PGRpdj48 ZGl2IGNsYXNzPSJjbC1pam5hd25qcHI0Ij48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0 dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj4rIGVsc2U6PGJyPisgY3R5 cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAndW5zaWduZWQgY2hhcicpPGJyPisgZWxp ZiBzaXplICZsdDsgODo8YnI+KyBpZiBzaXplID09IDQ6PGJyPisgY3R5cGVzdHIgPSBjdHlwZV9w cmVwbGl0KGN0eXBlc3RyLCAnaW50Jyk8YnI+KyBlbHNlOjxicj4rIGFzc2VydCBzaXplID09IERX T1JEU1ogLy8gMiwgJ2JhZCAoc2hvcnQpIHNpemUnPGJyPisgY3R5cGVzdHIgPSBjdHlwZV9wcmVw bGl0KGN0eXBlc3RyLCAnc2hvcnQnKTxicj4rIGlmIGluZm8gJmFtcDsgQ1RGX1VOU0lHTkVEOjxi cj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgJ3Vuc2lnbmVkJyk8YnI+KyBl bHNlOjxicj4rIHNpemVfdCA9ICd7dX1pbnR7c3p9X3QnLmZvcm1hdCg8YnI+KyB1PSd1JyBpZiBp bmZvICZhbXA7IENURl9VTlNJR05FRCBlbHNlICcnLDxicj4rIHN6PXNpemUgKiA4LDxicj4rICk8 YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsIHNpemVfdCk8YnI+KyByZXR1 cm4gY3R5cGVzdHI8YnI+Kzxicj4rPGJyPitkZWYgY3R5cGVfcmVwcihjdHMsIGlkKTo8YnI+KyBj dHlwZSA9IGN0eXBlX2dldChjdHMsIGlkKTxicj4rIGN0eXBlc3RyID0gJyc8YnI+KyBxdWFsID0g MDxicj4rIHB0cnRvID0gMDxicj4rIHdoaWxlIFRydWU6PGJyPisgaW5mbyA9IGN0eXBlWydpbmZv J108YnI+KyBzaXplID0gY3R5cGVbJ3NpemUnXTxicj4rIGN0cCA9IGN0eXBlX3R5cGUoaW5mbyk8 YnI+KyBpZiBjdHAgPT0gQ1RfTlVNOjxicj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcG51bShjdHlw ZXN0ciwgaW5mbywgc2l6ZSk8YnI+KyByZXR1cm4gY3R5cGVfcHJlcHF1YWwoY3R5cGVzdHIsIHF1 YWwgfCBpbmZvKTxicj4rIGVsaWYgY3RwID09IENUX1ZPSUQ6PGJyPisgY3R5cGVzdHIgPSBjdHlw ZV9wcmVwbGl0KGN0eXBlc3RyLCAndm9pZCcpPGJyPisgcmV0dXJuIGN0eXBlX3ByZXBxdWFsKGN0 eXBlc3RyLCBxdWFsIHwgaW5mbyk8YnI+KyBlbGlmIGN0cCA9PSBDVF9TVFJVQ1Q6PGJyPisgdHAg PSAndW5pb24nIGlmIChpbmZvICZhbXA7IENURl9VTklPTikgZWxzZSAnc3RydWN0Jzxicj4rIHJl dHVybiBjdHlwZV9wcmVwdHlwZShjdHMsIGN0eXBlc3RyLCBjdHlwZSwgcXVhbCwgdHApPGJyPisg ZWxpZiBjdHAgPT0gQ1RfRU5VTTo8YnI+KyBpZiBpZCA9PSBDVElEX0NUWVBFSUQ6PGJyPisgcmV0 dXJuIGN0eXBlX3ByZXBsaXQoY3R5cGVzdHIsICdjdHlwZScpPGJyPisgcmV0dXJuIGN0eXBlX3By ZXB0eXBlKGN0cywgY3R5cGVzdHIsIGN0eXBlLCBxdWFsLCAnZW51bScpPGJyPisgZWxpZiBjdHAg PT0gQ1RfQVRUUklCOjxicj4rIGlmIGN0eXBlX2F0dHJpYihpbmZvKSA9PSBDVEFfUVVBTDo8YnI+ KyBxdWFsIHw9IHNpemU8YnI+KyBlbGlmIGN0cCA9PSBDVF9QVFI6PGJyPisgaWYgaW5mbyAmYW1w OyBDVEZfUkVGOjxicj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcGxpdChjdHlwZXN0ciwgJyZhbXA7 Jyk8YnI+KyBlbHNlOjxicj4rIGN0eXBlc3RyID0gY3R5cGVfcHJlcHF1YWwoY3R5cGVzdHIsIHF1 YWwgfCBpbmZvKTxicj4rIGlmIExKXzY0IGFuZCBzaXplID09IDQ6PGJyPisgY3R5cGVzdHIgPSBj dHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAnX19wdHIzMicpPGJyPisgY3R5cGVzdHIgPSBjdHlwZV9w cmVwbGl0KGN0eXBlc3RyLCAnKicpPGJyPisgcXVhbCA9IDA8YnI+KyBwdHJ0byA9IDE8YnI+KyBl bGlmIGN0cCA9PSBDVF9BUlJBWTo8YnI+KyBpZiBjdHlwZV9pc3JlZmFycmF5KGluZm8pOjxicj4r IGlmIHB0cnRvOjxicj4rIHB0cnRvID0gMDxicj4rIGN0eXBlc3RyID0gJygnICsgY3R5cGVzdHIg KyAnKSc8YnI+KyBhcnJzaXplID0gJyc8YnI+KyBpZiBzaXplICE9IENUU0laRV9JTlZBTElEOjxi cj4rIGNoaWxkX3NpemUgPSBjdHlwZV9jaGlsZChjdHMsIGN0eXBlKVsnc2l6ZSddPGJyPisgYXJy c2l6ZSA9IHN0cihpbnQoc2l6ZSAvIGNoaWxkX3NpemUpIGlmIGNoaWxkX3NpemUgJmd0OyAwPGJy PisgZWxzZSAwKTxicj4rIGVsaWYgaW5mbyAmYW1wOyBDVEZfVkxBOjxicj4rIGFycnNpemUgPSAn Pyc8YnI+KyBjdHlwZXN0ciA9IGN0eXBlc3RyICsgJ1t7fV0nLmZvcm1hdChhcnJzaXplKTxicj4r IGVsaWYgY3R5cGVfaXNjb21wbGV4KGluZm8pOjxicj4rIGlmIHNpemUgPT0gRFdPUkRTWiAqIDI6 PGJyPisgY3R5cGVzdHIgPSBjdHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAnZmxvYXQnKTxicj4rIGVs c2U6PGJyPisgYXNzZXJ0IHNpemUgPT0gUVdPUkRTWiAqIDIsICdiYWQgKGNvbXBsZXggZG91Ymxl KSBzaXplJzxicj4rIHJldHVybiBjdHlwZV9wcmVwbGl0KGN0eXBlc3RyLCAnY29tcGxleCcpPGJy PisgZWxzZTo8YnI+KyBjdHlwZXN0ciA9IGN0eXBlX3ByZXBsaXQoPGJyPisgY3R5cGVzdHIsPGJy PisgJ19fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKHt9KSkpJy5mb3JtYXQoc2l6ZSk8YnI+KyAp PGJyPisgZWxpZiBjdHAgPT0gQ1RfRlVOQzo8YnI+KyBpZiBwdHJ0bzo8YnI+KyBwdHJ0byA9IDA8 YnI+KyBjdHlwZXN0ciA9ICcoJyArIGN0eXBlc3RyICsgJyknPGJyPisgY3R5cGVzdHIgKz0gJygp Jzxicj4rIGN0eXBlID0gY3R5cGVfY2hpbGQoY3RzLCBjdHlwZSk8YnI+KyByZXR1cm4gJ05ZSSc8 YnI+Kzxicj4rPGJyPitkZWYgZHVtcF9jdHlwZShjdCk6PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjxkaXY+QWxzbywgaXQgc2VlbXMs Jm5ic3A7aXQgd2lsbCBiZSBlYXN5IHRvIHJlYWQgdG8gY29kZSwgaWYgaXQgd2lsbCBiZSBwb3Nz aWJsZSZuYnNwO3RvIGRpc3Rpbmd1aXNoIGJldHdlZW4gcG9ydGVkIGZ1bmN0aW9ucyBhbmQgZXh0 ZW5zaW9uIGl0c2VsZiZuYnNwO29uZXMuIE1heSBiZSBieSB1c2UgdGhlJm5ic3A74oCYZGJnX+KA mSBwcmVmaXgmbmJzcDtmb3IgZXh0ZW5zaW9uIGZ1bmN0aW9uIG5hbWVzLjwvZGl2PjxkaXYgY2xh c3M9ImNsLTh2anhiN3RuODUiPjxkaXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtw YWRkaW5nOjAgMCAwIDEwcHgiPjxkaXY+PGRpdj48ZGl2IGNsYXNzPSJjbC1pam5hd25qcHI0Ij48 ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0 dHIiPjxkaXY+PGRpdj4rIGN0cyA9IGN0eXBlX2N0c0coRyhMKCkpKTxicj4rIGNpZCA9IGN0eXBl X3R5cGVpZChjdHMsIGN0KTxicj4rIG5hbWUgPSBjdHlwZV9yZXByKGN0cywgY2lkKTxicj4rIHJl dHVybiAnW3tpZH1dICZsdDt7bmFtZX0mZ3Q7Jy5mb3JtYXQoPGJyPisgaWQ9Y2lkLDxicj4rIG5h bWU9bmFtZSw8YnI+KyApPGJyPis8YnI+Kzxicj4jIEpJVCBkdW1wZXJzLjxicj48YnI+PGJyPkBA IC0yMjk0LDcgKzI2MDMsOCBAQCBkZWYgZHVtcF9jYWxsX2Z1bmModHJhY2UsIGNhbGxvcCk6PGJy PmFzc2VydCBJUlNbY2R0X2lkeF9pcmtbJ28nXV0gPT0gJ0tJTlQnLCBcPGJyPid1bmV4cGVjdGVk IElSIGZvciBjdHlwZSBzdG9yYWdlJzxicj5jdHlwZV9pZHggPSBjZHRfaWR4X2lya1snaSddPGJy Pi0gY3R5cGUgPSAnY3R5cGU6IHt9Jy5mb3JtYXQoY3R5cGVfaWR4KTxicj4rIGN0cyA9IGN0eXBl X2N0c0coRyhMKCkpKTxicj4rIGN0eXBlID0gJ2N0eXBlOiB7fScuZm9ybWF0KGR1bXBfY3R5cGUo Y3R5cGVfZ2V0KGN0cywgY3R5cGVfaWR4KSkpPGJyPjxicj5mdW5jX3N0ciA9ICcnPGJyPmlmIGNh bGxvcCAmbHQ7IDA6PGJyPkBAIC0yNjUyLDYgKzI5NjIsMjAgQEAgPGEgaHJlZj0iaHR0cHM6Ly9n aXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvd2lraS9MdWFKSVQtQnl0ZWNvZGVzIj5odHRw czovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC93aWtpL0x1YUpJVC1CeXRlY29kZXM8 L2E+Ljxicj4pKTxicj48YnI+PGJyPitjbGFzcyBMSkR1bXBDVHlwZShkYmcuTEpCYXNlKTo8YnI+ KyAnJyc8YnI+K2xqLWN0eXBlICZsdDtDVHlwZSAqJmd0Ozxicj4rPGJyPitUaGUgY29tbWFuZCBy ZWNlaXZlcyBhIHBvaW50ZXIgJmx0O2N0eXBlJmd0OyBvZiB0aGUgY29ycmVzcG9uZGluZyBDVHlw ZTxicj4rYW5kIGR1bXBzIHRoZSBJRCBhbmQgdGhlIG5hbWUgZm9yIHRoaXMgQyBkYXRhIHR5cGUu PGJyPisgJycnPGJyPis8YnI+KyBkZWYgZXhlY3V0ZShzZWxmLCBhcmcpOjxicj4rIGRiZy53cml0 ZSgne31cbicuZm9ybWF0KDxicj4rIGR1bXBfY3R5cGUoZGJnLmNhc3QoJ0NUeXBlIConLCBkYmcu ZXZhbChhcmcpKSk8YnI+KyApKTxicj4rPGJyPis8YnI+Y2xhc3MgTEpEdW1wRnVuYyhkYmcuTEpC YXNlKTo8YnI+JycnPGJyPmxqLWZ1bmMgJmx0O0dDZnVuYyAqJmd0Ozxicj5AQCAtMjk3OSw2ICsz MzAzLDcgQEAgZGVmIGxvYWQoZXZlbnQ9Tm9uZSk6PGJyPmRiZy5pbml0aWFsaXplX2V4dGVuc2lv bih7PGJyPidsai1hcmNoJzogTEpEdW1wQXJjaCw8YnI+J2xqLWJjJzogTEpEdW1wQkMsPGJyPisg J2xqLWN0eXBlJzogTEpEdW1wQ1R5cGUsPGJyPidsai1mdW5jJzogTEpEdW1wRnVuYyw8YnI+J2xq LWdjJzogTEpHQyw8YnI+J2xqLWdjbyc6IExKRHVtcEdDb2JqLDxicj5kaWZmIC0tZ2l0IGEvdGVz dC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5IGIvdGVz dC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5PGJyPmlu ZGV4IDc2NTQzZGFhLi5mYzVkMmM3YiAxMDA2NDQ8YnI+LS0tIGEvdGVzdC90YXJhbnRvb2wtZGVi dWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5PGJyPisrKyBiL3Rlc3QvdGFyYW50 b29sLWRlYnVnZ2VyLXRlc3RzL2RlYnVnLWV4dGVuc2lvbi10ZXN0cy5weTxicj5AQCAtMjI3LDYg KzIyNyw3IEBAIGNsYXNzIFRlc3RMb2FkKFRlc3RDYXNlQmFzZSk6PGJyPnBhdHRlcm4gPSAoPGJy PnInbGotYXJjaCBjb21tYW5kIGluaXRpYWxpemVkXG4nPGJyPnInbGotYmMgY29tbWFuZCBpbml0 aWFsaXplZFxuJzxicj4rIHInbGotY3R5cGUgY29tbWFuZCBpbml0aWFsaXplZFxuJzxicj5yJ2xq LWZ1bmMgY29tbWFuZCBpbml0aWFsaXplZFxuJzxicj5yJ2xqLWdjIGNvbW1hbmQgaW5pdGlhbGl6 ZWRcbic8YnI+cidsai1nY28gY29tbWFuZCBpbml0aWFsaXplZFxuJzxicj5AQCAtMzMxLDcgKzMz Miw3IEBAIEdDT19SWCA9ICg8YnI+cidMdWEgZnVuY3Rpb24gQCAnICsgUlhfQUREUiArIHInLCBb MC05XSsgdXB2YWx1ZXMsIC4rOlswLTldK1xuJzxicj5yJ0MgZnVuY3Rpb24gQCAnICsgUlhfQURE UiArIHInXG4nPGJyPnInZmFzdCBmdW5jdGlvbiAjWzAtOV0rXG4nPGJyPi0gcidjZGF0YSBAICcg KyBSWF9BRERSICsgcidcbic8YnI+KyByJ2NkYXRhIEAgJyArIFJYX0FERFIgKyByJyBcW1xkK1xd ICZsdDtpbnQgXComZ3Q7IDB4MFxuJzxicj5yJ3RhYmxlIEAgJyArIFJYX0FERFIgKyByJyBcKGFz aXplOiBcZCssIGhtYXNrOiAnICsgUlhfSEFTSCArIHInXClcbic8YnI+cid1c2VyZGF0YSBAICcg KyBSWF9BRERSICsgcidcbic8YnI+KTxicj5AQCAtODE3LDcgKzgxOCw5IEBAIGNsYXNzIFRlc3RM SklSQ2FsbFhTQ1R5cGUoVGVzdENhc2VCYXNlKTo8YnI+J3RyYWNlKClcbic8YnI+J3ByaW50KClc bic8YnI+KTxicj4tIHBhdHRlcm4gPSByJ2ludCBDQUxMWFMgLiogWycgKyBSWF9BRERSICsgcidc XVwoLipcKSBjdHlwZTogXGQrJzxicj4rIHBhdHRlcm4gPSAoPGJyPisgcidpbnQgQ0FMTFhTIC4q IFsnICsgUlhfQUREUiArIHInXF1cKC4qXCkgY3R5cGU6IFxbXGQrXF0gJmx0O2ludCBcKFwpJmd0 Oyc8YnI+KyApPGJyPjxicj48YnI+Y2xhc3MgVGVzdExKSlNsb3RzQmFzZShUZXN0Q2FzZUJhc2Up Ojxicj5AQCAtODM4LDYgKzg0MSwyMDcgQEAgY2xhc3MgVGVzdExKSlNsb3RzQmFzZShUZXN0Q2Fz ZUJhc2UpOjxicj4pPGJyPjxicj48YnI+K2RlZiBjZGF0YV9yeCh0cHN0ciwgc3VmZml4PU5vbmUp Ojxicj4rIHJldHVybiByJ2NkYXRhIEAgJyArIFJYX0FERFIgKyByJyBcW1xkK1xdICZsdDsnICsg dHBzdHIgKyAnJmd0OyAnICsgKDxicj4rIFJYX0FERFIgaWYgbm90IHN1ZmZpeCBlbHNlIHN1ZmZp eDxicj4rICk8YnI+Kzxicj4rPGJyPitDSEFSX1NJR05FRCA9IG1hY2hpbmUgaW4gWydhcm02NCcs ICdhYXJjaDY0J10gYW5kIHN5cy5wbGF0Zm9ybSAhPSAnZGFyd2luJzxicj4rSEFTX0xPTkdfRE9V QkxFID0gbm90IChtYWNoaW5lIGluIFsnYXJtNjQnLCAnYWFyY2g2NCddIGFuZDxicj4rIHN5cy5w bGF0Zm9ybSA9PSAnZGFyd2luJyk8YnI+Kzxicj4rPGJyPitjbGFzcyBUZXN0TEpDVHlwZVByaW0o VGVzdENhc2VCYXNlKTo8YnI+KyBsb2NhdGlvbiA9ICdsal9jZl9wcmludCc8YnI+KyBleHRlbnNp b25fY21kcyA9ICg8YnI+KyAnblxuJyAjIExvYWQgTC48YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZVxu Jzxicj4rICdsai10diBMLSZndDtiYXNlICsgMVxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsg MlxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgM1xuJzxicj4rICdsai10diBMLSZndDtiYXNl ICsgNFxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgNVxuJzxicj4rICdsai10diBMLSZndDti YXNlICsgNlxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgN1xuJzxicj4rICdsai10diBMLSZn dDtiYXNlICsgOFxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgOVxuJzxicj4rICdsai10diBM LSZndDtiYXNlICsgMTBcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDExXG4nPGJyPisgJ2xq LXR2IEwtJmd0O2Jhc2UgKyAxMlxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgMTNcbic8YnI+ KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDE0XG4nPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2UgKyAxNVxu Jzxicj4rICdsai10diBMLSZndDtiYXNlICsgMTZcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSAr IDE3XG4nPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2UgKyAxOFxuJzxicj4rICdsai10diBMLSZndDti YXNlICsgMTlcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDIwXG4nPGJyPisgJ2xqLXR2IEwt Jmd0O2Jhc2UgKyAyMVxuJzxicj4rICdsai10diBMLSZndDtiYXNlICsgMjJcbic8YnI+KyApPGJy PisgbHVhX3NjcmlwdCA9ICg8YnI+KyAnbG9jYWwgZmZpID0gcmVxdWlyZSgiZmZpIilcbic8YnI+ KyAncHJpbnQoXG4nPGJyPisgJyBmZmkubmV3KCJib29sIiksXG4nPGJyPisgJyBmZmkubmV3KCJj aGFyIiksXG4nPGJyPisgJyBmZmkubmV3KCJzaWduZWQgY2hhciIpLFxuJzxicj4rICcgZmZpLm5l dygidW5zaWduZWQgY2hhciIpLFxuJzxicj4rICcgZmZpLm5ldygiaW50IiksXG4nPGJyPisgJyBm ZmkubmV3KCJzaG9ydCIpLFxuJzxicj4rICcgZmZpLm5ldygidW5zaWduZWQiKSxcbic8YnI+KyAn IGZmaS5uZXcoImludDhfdCIpLFxuJzxicj4rICcgZmZpLm5ldygiaW50MTZfdCIpLFxuJzxicj4r ICcgZmZpLm5ldygiaW50MzJfdCIpLFxuJzxicj4rICcgZmZpLm5ldygiaW50NjRfdCIpLFxuJzxi cj4rICcgZmZpLm5ldygidWludDhfdCIpLFxuJzxicj4rICcgZmZpLm5ldygidWludDY0X3QiKSxc bic8YnI+KyAnIGZmaS5uZXcoImZsb2F0IiksXG4nPGJyPisgJyBmZmkubmV3KCJkb3VibGUiKSxc bic8YnI+KyAnIGZmaS5uZXcoImxvbmcgZG91YmxlIiksXG4nPGJyPisgJyAxaSxcbic8YnI+KyAn IGZmaS5uZXcoImNvbXBsZXggZmxvYXQiLCAxLCAtMiksXG4nPGJyPisgJyBmZmkubmV3KCJjb25z dCB2b2xhdGlsZSBpbnQiKSxcbic8YnI+KyAnIGZmaS5uZXcoInZvaWQgKiIpLFxuJzxicj4rICcg ZmZpLm5ldygidm9pZCAqIF9fcHRyMzIiKSxcbic8YnI+KyAnIGZmaS5uZXcoImludCAmYW1wOyIp LFxuJzxicj4rICcgZmZpLnR5cGVvZigxTEwpXG4nPGJyPisgJylcbic8YnI+KyApPGJyPisgcGF0 dGVybiA9ICg8YnI+KyBjZGF0YV9yeCgnYm9vbCcpICsgcidcbicgKzxicj4rIGNkYXRhX3J4KCdj aGFyJykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngoKCdzaWduZWQgJyBpZiBDSEFSX1NJR05FRCBl bHNlICcnKSArICdjaGFyJykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngoKCd1bnNpZ25lZCAnIGlm IG5vdCBDSEFSX1NJR05FRCBlbHNlICcnKSArICdjaGFyJykgKyByJ1xuJyArPGJyPisgY2RhdGFf cngoJ2ludCcpICsgcidcbicgKzxicj4rIGNkYXRhX3J4KCdzaG9ydCcpICsgcidcbicgKzxicj4r IGNkYXRhX3J4KCd1bnNpZ25lZCBpbnQnKSArIHInXG4nICs8YnI+KyBjZGF0YV9yeCgoJ3NpZ25l ZCAnIGlmIENIQVJfU0lHTkVEIGVsc2UgJycpICsgJ2NoYXInKSArIHInXG4nICs8YnI+KyBjZGF0 YV9yeCgnc2hvcnQnKSArIHInXG4nICs8YnI+KyBjZGF0YV9yeCgnaW50JykgKyByJ1xuJyArPGJy PisgY2RhdGFfcngoJ2ludDY0X3QnLCAnMExMJykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngoKCd1 bnNpZ25lZCAnIGlmIG5vdCBDSEFSX1NJR05FRCBlbHNlICcnKSArICdjaGFyJykgKyByJ1xuJyAr PGJyPisgY2RhdGFfcngoJ3VpbnQ2NF90JywgJzBVTEwnKSArIHInXG4nICs8YnI+KyBjZGF0YV9y eCgnZmxvYXQnKSArIHInXG4nICs8YnI+KyBjZGF0YV9yeCgnZG91YmxlJykgKyByJ1xuJyArPGJy PisgY2RhdGFfcngoKCdsb25nICcgaWYgSEFTX0xPTkdfRE9VQkxFIGVsc2UgJycpICsgJ2RvdWJs ZScpICsgcidcbicgKzxicj4rIGNkYXRhX3J4KCdjb21wbGV4JywgcicwXCsxaScpICsgcidcbicg Kzxicj4rIGNkYXRhX3J4KCdjb21wbGV4IGZsb2F0JywgJzEtMmknKSArIHInXG4nICs8YnI+KyBj ZGF0YV9yeCgnY29uc3Qgdm9sYXRpbGUgaW50JykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngocid2 b2lkIFwqJykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngocid2b2lkIFwqIF9fcHRyMzInKSArIHIn XG4nICs8YnI+KyBjZGF0YV9yeCgnaW50ICZhbXA7JykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngo J2N0eXBlJykgKyByJ1xuJzxicj4rICk8YnI+Kzxicj4rPGJyPitjbGFzcyBUZXN0TEpDVHlwZVN0 cnVjdFVuaW9uRW51bShUZXN0Q2FzZUJhc2UpOjxicj4rIGxvY2F0aW9uID0gJ2xqX2NmX3ByaW50 Jzxicj4rIGV4dGVuc2lvbl9jbWRzID0gKDxicj4rICduXG4nICMgTG9hZCBMLjxicj4rICdsai10 diBMLSZndDtiYXNlXG4nPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2UgKyAxXG4nPGJyPisgJ2xqLXR2 IEwtJmd0O2Jhc2UgKyAyXG4nPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2UgKyAzXG4nPGJyPisgKTxi cj4rIGx1YV9zY3JpcHQgPSAoPGJyPisgJ2xvY2FsIGZmaSA9IHJlcXVpcmUoImZmaSIpXG4nPGJy PisgJ2ZmaS5jZGVmW1tcbic8YnI+KyAnIHN0cnVjdCB0ZXN0IHtpbnQgYTt9O1xuJzxicj4rICdd XVxuJzxicj4rICdwcmludChcbic8YnI+KyAnIGZmaS5uZXcoInN0cnVjdCB0ZXN0IiksXG4nPGJy PisgJyBmZmkubmV3KCJzdHJ1Y3Qge2ludCBhO30iKSxcbic8YnI+KyAnIGZmaS5uZXcoInVuaW9u IHtpbnQgYTt9IiksXG4nPGJyPisgJyBmZmkubmV3KCJlbnVtIHtFTlVNMX0iKVxuJzxicj4rICcp XG4nPGJyPisgKTxicj4rIHBhdHRlcm4gPSAoPGJyPisgY2RhdGFfcngoJ3N0cnVjdCB0ZXN0Jykg KyByJ1xuJyArPGJyPisgY2RhdGFfcngocidzdHJ1Y3QgXGQrJykgKyByJ1xuJyArPGJyPisgY2Rh dGFfcngocid1bmlvbiBcZCsnKSArIHInXG4nICs8YnI+KyBjZGF0YV9yeChyJ2VudW0gXGQrJykg KyByJ1xuJzxicj4rICk8YnI+Kzxicj4rPGJyPitjbGFzcyBUZXN0TEpDVHlwZUFycmF5KFRlc3RD YXNlQmFzZSk6PGJyPisgbG9jYXRpb24gPSAnbGpfY2ZfcHJpbnQnPGJyPisgZXh0ZW5zaW9uX2Nt ZHMgPSAoPGJyPisgJ25cbicgIyBMb2FkIEwuPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2Vcbic8YnI+ KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDFcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDJcbic8 YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDNcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDRc bic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSArIDVcbic8YnI+KyAnbGotdHYgTC0mZ3Q7YmFzZSAr IDZcbic8YnI+KyApPGJyPisgbHVhX3NjcmlwdCA9ICg8YnI+KyAnbG9jYWwgZmZpID0gcmVxdWly ZSgiZmZpIilcbic8YnI+KyAncHJpbnQoXG4nPGJyPisgJyBmZmkubmV3KCJjaGFyIFswXSIpLFxu Jzxicj4rICcgZmZpLm5ldygiaW50IFsxXSIpLFxuJzxicj4rICcgZmZpLm5ldygiY29tcGxleCBb Ml0iKSxcbic8YnI+KyAnIGZmaS5uZXcoImNvbXBsZXggZmxvYXQgWzNdIiksXG4nPGJyPisgJyBm ZmkubmV3KCJmbG9hdCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSg0KSkpIiksXG4nPGJyPisg JyBmZmkubmV3KCJpbnQgKCZhbXA7KVs1XSIpLFxuJzxicj4rICcgZmZpLm5ldygiaW50Wz9dIiwg Nilcbic8YnI+KyAnKVxuJzxicj4rICk8YnI+KyBwYXR0ZXJuID0gKDxicj4rIGNkYXRhX3J4KHIn Y2hhciBcWzBcXScpICsgcidcbicgKzxicj4rIGNkYXRhX3J4KHInaW50IFxbMVxdJykgKyByJ1xu JyArPGJyPisgY2RhdGFfcngocidjb21wbGV4IFxbMlxdJykgKyByJ1xuJyArPGJyPisgY2RhdGFf cngocidjb21wbGV4IGZsb2F0IFxbM1xdJykgKyByJ1xuJyArPGJyPisgY2RhdGFfcngocidmbG9h dCBfX2F0dHJpYnV0ZV9fXChcKHZlY3Rvcl9zaXplXCg0XClcKVwpJykgKyByJ1xuJyArPGJyPisg Y2RhdGFfcngocidpbnQgXCgmYW1wO1wpXFs1XF0nKSArIHInXG4nICs8YnI+KyBjZGF0YV9yeChy J2ludCBcW1w/XF0nKSArIHInXG4nPGJyPisgKTxicj4rPGJyPis8YnI+K2NsYXNzIFRlc3RMSkNU eXBlRnVuYyhUZXN0Q2FzZUJhc2UpOjxicj4rIGxvY2F0aW9uID0gJ2xqX2NmX3ByaW50Jzxicj4r IGV4dGVuc2lvbl9jbWRzID0gKDxicj4rICduXG4nICMgTG9hZCBMLjxicj4rICdsai10diBMLSZn dDtiYXNlXG4nPGJyPisgJ2xqLXR2IEwtJmd0O2Jhc2UgKyAxXG4nPGJyPisgJ2xqLXR2IEwtJmd0 O2Jhc2UgKyAyXG4nPGJyPisgKTxicj4rIGx1YV9zY3JpcHQgPSAoPGJyPisgJ2xvY2FsIGZmaSA9 IHJlcXVpcmUoImZmaSIpXG4nPGJyPisgJ2ZmaS5jZGVmW1t2b2lkIGdldHBpZCh2b2lkKTtdXVxu Jzxicj4rICdwcmludChcbic8YnI+KyAnIGZmaS5DLmdldHBpZCxcbic8YnI+KyAnIGZmaS5uZXco ImludCAoKikoKSIpLFxuJzxicj4rICcgZmZpLm5ldygiaW50ICgqKCopKHZvaWQpKVsyXSIpXG4n PGJyPisgJylcbic8YnI+KyApPGJyPisgcGF0dGVybiA9ICg8YnI+KyBjZGF0YV9yeChyJ3ZvaWQg XChcKScpICsgcidcbicgKzxicj4rIGNkYXRhX3J4KHInaW50IFwoXCpcKVwoXCknKSArIHInXG4n ICs8YnI+KyBjZGF0YV9yeChyJ2ludCBcKFwqIFwoXCpcKVwoXClcKVxbMlxdJykgKyByJ1xuJzxi cj4rICk8YnI+Kzxicj4rPGJyPitjbGFzcyBUZXN0TEpDVHlwZUJhc2UoVGVzdENhc2VCYXNlKTo8 YnI+KyBsb2NhdGlvbiA9ICdsal9jZl9mZmlfbmV3Jzxicj4rIGV4dGVuc2lvbl9jbWRzID0gKDxi cj4rICMgTG9hZCBgY3RgLiBTa2lwIGlubGluZWQgZnVuY3Rpb25zIGZvciBMTERCLjwvZGl2Pjwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48ZGl2 PlRoZSBleHRlbnNpb24gY29tbWFuZCBzZXQgaXMgY29tbW9uIGZvciBHREIgYW5kIExMREIuJm5i c3A7RG9lcyB3ZSBza2lwIGZvciBHREIgYWxzbz88L2Rpdj48ZGl2IGNsYXNzPSJjbC04dmp4Yjd0 bjg1Ij48ZGl2IGNsYXNzPSJtYWlsLXF1b3RlLWNvbGxhcHNlIj48YmxvY2txdW90ZSBzdHlsZT0i Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAx MHB4Ij48ZGl2PjxkaXY+PGRpdiBjbGFzcz0iY2wtaWpuYXduanByNCI+PGRpdiBjbGFzcz0ianMt aGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+ KyAnblxuJzxicj4rICduXG4nPGJyPisgJ25cbic8YnI+KyAnblxuJzxicj4rICduXG4nPGJyPisg J25cbic8YnI+KyAnbGotY3R5cGUgY3Rcbic8YnI+KyApPGJyPisgbHVhX3NjcmlwdCA9ICg8YnI+ KyAnbG9jYWwgZmZpID0gcmVxdWlyZSgiZmZpIilcbic8YnI+KyAnZmZpLm5ldygiaW50Iilcbic8 YnI+KyApPGJyPisgcGF0dGVybiA9IHInXFtcZCtcXSAmbHQ7aW50Jmd0Oyc8YnI+Kzxicj4rPGJy PmZvciB0ZXN0X2NscyBpbiBUZXN0Q2FzZUJhc2UuX19zdWJjbGFzc2VzX18oKTo8YnI+dGVzdF9j bHMudGVzdCA9IGxhbWJkYSBzZWxmOiBzZWxmLmNoZWNrKCk8YnI+PGJyPi0tPGJyPjIuNTQuMDwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rp dj48L0JPRFk+PC9IVE1MPgo= ----ALT--43245963B67f895761C5D00f2D98389a1782741349--