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 B0C4D5B1635; Wed, 16 Aug 2023 16:06:47 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org B0C4D5B1635 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1692191207; bh=dUkwnvk7Fv6bh5T+L4nvyScEKsR3yhvA3VDJduGSSZ0=; 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=apmmDQTiQkN//mnSLMNaNcxeo0HgDAc0erfZpagjZlWN94ViRac4XWFkcj2xm1AzG E0S5+e/vNMUfuKSF+ho01qlbC/39E3oJIensV/jiC4kEdRqiUeOR5svm3dSLoeiViz grKcUAovQyxiaPoyrYHJwbZPLxVkZgES38S9HBTs= Received: from f531.i.mail.ru (f531.i.mail.ru [45.84.129.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 821045B1635 for ; Wed, 16 Aug 2023 16:06:46 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 821045B1635 Received: by f531.i.mail.ru with local (envelope-from ) id 1qWGEW-0002wA-LU; Wed, 16 Aug 2023 16:06:45 +0300 Received: by e.mail.ru with HTTP; Wed, 16 Aug 2023 16:06:44 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16921908091975992011 X-SenderField-Remind: 0 Date: Wed, 16 Aug 2023 16:06:44 +0300 X-Priority: 3 (Normal) Message-ID: <1692191204.476119903@f136.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--332162a1bCfAC9aF99B9B438b6De22F71692191204" In-Reply-To: References: <5djx5fttrkbvnik22jgf37dhxku5ibqtqwrq4tdvbgljq7kctf@pchufp4vvegt> X-7564579A: 78E4E2B564C1792B X-77F55803: 119C1F4DF6A9251C6201AD55A1C8F7DB80199461999E30CE54D76CD3DF06E6668FD872164937FA4C67B028C815C24E08C657E7411547E727ABC6AA91318443E3F3F1D7BA938659B3 X-C1DE0DAB: 0D63561A33F958A59AB93A44164AF3BE55C704BF67D368C66548D99C37BB8599F87CCE6106E1FC07E67D4AC08A07B9B067F1C1C3ABB44F3ACB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF77DD89D51EBB7742DC8270968E61249B1004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D34D1AE09A115117C96DFB6660A2A0AA5C8ED29E2649DDDB08A2BDA847330B9E13DB3D6B3B5E49033D51D7E09C32AA3244C80D5E0225716DFC299317C891376DE12408A6A02710B7304BAD658CF5C8AB4025DA084F8E80FEBD396F07DFE06A4A8314E894E437E78228B66933FA05BD8EF0CAD958392AE682691 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDh0cULAraP3Gk2pzelc/PXVw== X-Mailru-MI: 80000000000000000800 X-Mailru-Sender: 11C2EC085EDE56FA38FD4C59F7EFE407A9A1B1777D2A836862E266F54399C849312BFE7463EECC3906CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED55FEEDEB644C299C0ED14614B50AE0675 X-Mras: OK Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_02/19=5D_test=3A_i?= =?utf-8?q?ntroduce_mcode_generator_for_tests?= 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: Maxim Kokryashkin via Tarantool-patches Reply-To: =?UTF-8?B?TWF4aW0gS29rcnlhc2hraW4=?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--332162a1bCfAC9aF99B9B438b6De22F71692191204 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLCBTZXJnZXkhClRoYW5rcyBmb3IgdGhlIGZpeGVzIQpMR1RNCi0tCkJlc3QgcmVnYXJkcywK TWF4aW0gS29rcnlhc2hraW4KwqAKwqAgCj7QodGA0LXQtNCwLCAxNiDQsNCy0LPRg9GB0YLQsCAy MDIzLCAxNjowMCArMDM6MDAg0L7RgiBTZXJnZXkgS2FwbHVuIDxza2FwbHVuQHRhcmFudG9vbC5v cmc+Ogo+wqAKPkhpLCBNYXhpbSEKPlRoYW5rcyBmb3IgdGhlIHJldmlldyEKPlBsZWFzZSwgc2Vl IG15IHJlcGxpZXMgYmVsb3cuCj4KPk9uIDE1LjA4LjIzLCBNYXhpbSBLb2tyeWFzaGtpbiB3cm90 ZToKPj4gSGksIFNlcmdleSEKPj4gVGhhbmtzIGZvciB0aGUgcGF0Y2ghCj4+IFBsZWFzZSBjb25z aWRlciBteSBjb21tZW50cyBiZWxvdy4KPj4KPj4gT24gV2VkLCBBdWcgMDksIDIwMjMgYXQgMDY6 MzU6NTFQTSArMDMwMCwgU2VyZ2V5IEthcGx1biB2aWEgVGFyYW50b29sLXBhdGNoZXMgd3JvdGU6 Cj4+ID4gVGhlIHRlc3QgPHRlc3QvdGFyYW50b29sLXRlc3RzL2doLTYwOTgtZml4LXNpZGUtZXhp dC1wYXRjaGluZy1vbi1hcm02ND4KPj4gPiBkZXBlbmRzIG9uIHBhcnRpY3VsYXIgb2Zmc2V0IG9m IG1jb2RlIGZvciBzaWRlIHRyYWNlIHJlZ2FyZGluZyB0aGUKPj4gPiBwYXJlbnQgdHJhY2UuIEJl Zm9yZSB0aGlzIGNvbW1pdCBqdXN0IHJ1biBzb21lIGFtb3VudCBvZiBmdW5jdGlvbnMgdG8KPj4g PiBnZW5lcmF0ZSB0cmFjZXMgdG8gZmlsbCB0aGUgcmVxdWlyZWQgbWNvZGUgcmFuZ2UuIFVuZm9y dHVuYXRlbHksIHRoaXMKPj4gPiBhcHByb2FjaCBpcyBub3Qgcm9idXN0LCBzaW5jZSBzb21ldGlt ZXMgdHJhY2UgaXMgbm90IHJlY29yZGVkIGR1ZSB0bwo+PiA+IGVycm9ycyAibGVhdmluZyBsb29w IGluIHJvb3QgdHJhY2UiIG9ic2VydmVkIGJlY2F1c2Ugb2YgaG90Y291bnQKPj4gPiBjb2xsaXNp b25zLgo+PiA+Cj4+ID4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBmb2xsb3dpbmcgaGVscGVy czoKPj4gPiAqIGBmcm9udGVuZC5nZXR0cmFjZW5vKGZ1bmMpYCAtLSByZXR1cm5zIHRoZSB0cmFj ZW5vIGZvciB0aGUgZ2l2ZW4KPj4gPiBmdW5jdGlvbiwgYXNzdW1taW5nIHRoYXQgdGhlcmUgaXMg Y29tcGlsZWQgdHJhY2UgZm9yIGl0cyBwcm90b3R5cGUKPj4gPiAoaS5lLiB0aGUgMHRoIGJ5dGVj b2RlIGlzIEpGVU5DKS4KPj4gPiAqIGBqaXQuZ2VuZXJhdG9ycy5maWxsbWNvZGUodHJhY2Vubywg c2l6ZSlgIGZpbGxzIG1jb2RlIGFyZWEgb2YgdGhlCj4+ID4gZ2l2ZW4gc2l6ZSBmcm9tIHRoZSBn aXZlbiB0cmFjZS4gSXQgaXMgdXNlZnVsIHRvIGdlbmVyYXRlIHNvbWUgbWNvZGUKPj4gPiB0byB0 ZXN0IGp1bXBzIHRvIHNpZGUgdHJhY2VzIHJlbW90ZSBlbm91Z2ggZnJvbSB0aGUgcGFyZW50Lgo+ PiA+IC0tLQo+PiA+IC4uLjgtZml4LXNpZGUtZXhpdC1wYXRjaGluZy1vbi1hcm02NC50ZXN0Lmx1 YSB8IDc4ICsrLS0tLS0tLS0tLQo+PiA+IHRlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2Zyb250 ZW5kLmx1YSB8IDI0ICsrKysKPj4gPiB0ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9qaXQvZ2Vu ZXJhdG9ycy5sdWEgfCAxMTUgKysrKysrKysrKysrKysrKysrCj4+ID4gMyBmaWxlcyBjaGFuZ2Vk LCAxNTAgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCj4+ID4gY3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YQo+PiA+Cj4+ ID4gZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL2doLTYwOTgtZml4LXNpZGUtZXhp dC1wYXRjaGluZy1vbi1hcm02NC50ZXN0Lmx1YSBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL2doLTYw OTgtZml4LXNpZGUtZXhpdC1wYXRjaGluZy1vbi1hcm02NC50ZXN0Lmx1YQo+PiA+IGluZGV4IDkz ZGIzMDQxLi42NzhhYzkxNCAxMDA2NDQKPj4gPiAtLS0gYS90ZXN0L3RhcmFudG9vbC10ZXN0cy9n aC02MDk4LWZpeC1zaWRlLWV4aXQtcGF0Y2hpbmctb24tYXJtNjQudGVzdC5sdWEKPj4gPiArKysg Yi90ZXN0L3RhcmFudG9vbC10ZXN0cy9naC02MDk4LWZpeC1zaWRlLWV4aXQtcGF0Y2hpbmctb24t YXJtNjQudGVzdC5sdWEKPgo+PHNuaXBwZWQ+Cj4KPj4gPiBkaWZmIC0tZ2l0IGEvdGVzdC90YXJh bnRvb2wtdGVzdHMvdXRpbHMvZnJvbnRlbmQubHVhIGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvdXRp bHMvZnJvbnRlbmQubHVhCj4+ID4gaW5kZXggMmFmZWJiYjIuLjQxNDI1N2ZkIDEwMDY0NAo+PiA+ IC0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2Zyb250ZW5kLmx1YQo+PiA+ICsrKyBi L3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2Zyb250ZW5kLmx1YQo+Cj48c25pcHBlZD4KPgo+ PiA+IGRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9qaXQvZ2VuZXJhdG9y cy5sdWEgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9qaXQvZ2VuZXJhdG9ycy5sdWEKPj4g PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiA+IGluZGV4IDAwMDAwMDAwLi42MmI2ZTBlZgo+PiA+ IC0tLSAvZGV2L251bGwKPj4gPiArKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9qaXQv Z2VuZXJhdG9ycy5sdWEKPj4gPiBAQCAtMCwwICsxLDExNSBAQAo+PiA+ICtsb2NhbCBNID0ge30K Pj4gPiArCj4+ID4gK2xvY2FsIGp1dGlsID0gcmVxdWlyZSgnaml0LnV0aWwnKQo+PiA+ICsKPj4g PiArbG9jYWwgZnVuY3Rpb24gZ2V0bGFzdF90cmFjZW5vKCkKPj4gPiArIHJldHVybiBtaXNjLmdl dG1ldHJpY3MoKS5qaXRfdHJhY2VfbnVtCj4+ID4gK2VuZAo+PiA+ICsKPj4gPiArLS0gQ29udmVy dCBhZGRyIHRvIHBvc2l0aXZlIHZhbHVlIGlmIG5lZWRlZC4KPj4gPiArbG9jYWwgZnVuY3Rpb24g Y2Fub25pemVfYWRkcmVzcyhhZGRyKQo+PiBOaXQ6IG1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBgY2Fu b25pemVgIHZhcmlhbnQgaXMgdXNlZCBpbiB0aGVvbG9naWNhbCBtYXRlcmlhbHMsCj4+IHdoaWxl IHRoZSBgY2Fub25pY2FsaXplYCBpcyBtb3JlIGNvbW1vbiBpbiB0aGUgc3BoZXJlIG9mIHNvZnR3 YXJlIGRldmVsb3BtZW50Lgo+PiBGZWVsIGZyZWUgdG8gaWdub3JlLgo+Cj5GaXhlZCwgdGhhbmtz Lgo+Cj4+ID4gKyBpZiBhZGRyIDwgMCB0aGVuIGFkZHIgPSBhZGRyICsgMiBeIDMyIGVuZAo+PiA+ ICsgcmV0dXJuIGFkZHIKPj4gPiArZW5kCj4+ID4gKwo+PiA+ICstLSBOZWVkIHNvbWUgc3RvcmFn ZSB0byBhdm9pZCBmdW5jdGlvbnMgYW5kIHRyYWNlcyB0byBiZQo+PiA+ICstLSBjb2xsZWN0ZWQu Cj4+IFR5cG86IHMvTmVlZC9XZSBuZWVkLyBvciBzL05lZWQgc29tZSBzdG9yYWdlL1NvbWUgc3Rv cmFnZSBpcyBuZWVkZWQvCj4+IFR5cG86IHMvdG8gYmUgY29sbGVjdGVkL2JlaW5nIGNvbGxlY3Rl ZC8KPgo+Rml4ZWQuCj4KPj4gPiArbG9jYWwgcmVjZnVuY3MgPSB7fQo+PiA+ICtsb2NhbCBsYXN0 X2kgPSAwCj4+ID4gKy0tIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgdGFibGUgb2YgZnVuY3Rp b25zIHdpdGggaGVhdnkgbWNvZGUKPj4gPiArLS0gcGF5bG9hZCB3aXRoIHRhYiBhcml0aG1ldGlj cyB0byBmaWxsIHRoZSBtY29kZSBhcmVhIGZyb20gdGhlCj4+ID4gKy0tIG9uZSB0cmFjZSBtY29k ZSBieSB0aGUgc29tZSBnaXZlbiBzaXplLiBUaGlzIHNpemUgaXMgdXN1YWxseQo+PiBUeXBvOiBz L2J5IHRoZSBzb21lL2J5IHNvbWUvCj4KPkZpeGVkLCB0aGFua3MhCj4KPj4gPiArLS0gYmlnIGVu b3VnaCwgYmVjYXVzZSB3ZSB3YW50IHRvIGNoZWNrIGxvbmcganVtcCBzaWRlIGV4aXRzIGZyb20K Pj4gPiArLS0gc29tZSB0cmFjZXMuCj4+ID4gKy0tIEFzc3VtZXMsIHRoYXQgbWF4bWNvZGUgYW5k IG1heHRyYWNlIG9wdGlvbnMgYXJlIHNldCB0byBiZSBzdXJlLAo+PiBUeXBvOiBzL3RoYXQvdGhh dCB0aGUvCj4KPkZpeGVkLgo+Cj4+ID4gKy0tIHRoYXQgd2UgY2FuIHByb2R1Y2Ugc3VjaCBhbW91 bnQgb2YgbWNvZGUuCj4+ID4gK2Z1bmN0aW9uIE0uZmlsbG1jb2RlKHRyYWNlX2Zyb20sIHNpemUp Cj4+ID4gKyBsb2NhbCBtY29kZSwgYWRkcl9mcm9tID0ganV0aWwudHJhY2VtYyh0cmFjZV9mcm9t KQo+PiA+ICsgYXNzZXJ0KG1jb2RlLCAndGhlICMxIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBleGlz dGVkIHRyYWNlIG51bWJlcicpCj4+IFR5cG86IHMvZXhpc3RlZC9leGlzdGluZy8KPgo+Rml4ZWQs IHRoYW5rcyEKPgo+PiA+ICsgYWRkcl9mcm9tID0gY2Fub25pemVfYWRkcmVzcyhhZGRyX2Zyb20p Cj4+ID4gKyBsb2NhbCByZXF1aXJlZF9kaWZmID0gc2l6ZSArICNtY29kZQo+PiA+ICsKPj4gPiAr IC0tIE1hcmtlciB0byBjaGVjayB0aGF0IHRyYWNlcyBhcmUgbm90IGZsdXNoZWQuCj4+ID4gKyBs b2NhbCBtYXh0cmFjZW5vID0gZ2V0bGFzdF90cmFjZW5vKCkKPj4gPiArIGxvY2FsIEZMVVNIX0VS UiA9ICdUcmFjZXMgYXJlIGZsdXNoZWQsIGNoZWNrIHlvdXIgbWF4dHJhY2UsIG1heG1jb2RlIG9w dGlvbnMnCj4+ID4gKwo+PiA+ICsgbG9jYWwgXywgbGFzdF9hZGRyID0ganV0aWwudHJhY2VtYyht YXh0cmFjZW5vKQo+PiA+ICsgbGFzdF9hZGRyID0gY2Fub25pemVfYWRkcmVzcyhsYXN0X2FkZHIp Cj4+ID4gKwo+PiA+ICsgLS0gQWRkcmVzc2VzIG9mIHRyYWNlcyBtYXkgaW5jcmVhc2Ugb3IgZGVj cmVhc2UgZGVwZW5kaW5nIG9uIE9TLAo+PiA+ICsgLS0gc28gdXNlIGFic29sdXRlIGRpZmYuCj4+ ID4gKyB3aGlsZSBtYXRoLmFicyhsYXN0X2FkZHIgLSBhZGRyX2Zyb20pID4gcmVxdWlyZWRfZGlm ZiBkbwo+PiA+ICsgbGFzdF9pID0gbGFzdF9pICsgMQo+PiA+ICsgLS0gVGhpcyBpcyBhIHF1aXRl IGhlYXZ5IHdvcmtsb2FkICh0aG91Z2ggaXQgZG9lc24ndCBsb29rIGxpa2UKPj4gVHlwbzogcy9U aGlzIGlzIGEgcXVpdGUvVGhpcyBpcyBxdWl0ZSBhLwo+Cj5GaXhlZC4KPgo+PiA+ICsgLS0gb25l IGF0IGZpcnN0KS4gRWFjaCBsb2FkIGZyb20gYSB0YWJsZSBpcyB0eXBlIGd1YXJkZWQuIEVhY2gK Pj4gPiArIC0tIHRhYmxlIGxvb2t1cCAoZm9yIGJvdGggc3RvcmVzIGFuZCBsb2FkcykgaXMgZ3Vh cmRlZCBmb3IKPj4gPiArIC0tIHRhYmxlIDxobWFzaz4gdmFsdWUgYW5kIHByZXNlbmNlIG9mIHRo ZSBtZXRhdGFibGUuIFRoZSBjb2RlCj4+IFR5cG86IHMvYW5kIHByZXNlbmNlL2FuZCB0aGUgcHJl c2VuY2UvCj4KPkZpeGVkLgo+Cj4+ID4gKyAtLSBiZWxvdyByZXN1bHRzIHRvIH44S2Igb2YgbWNv ZGUgZm9yIEFSTTY0IGFuZCBNSVBTNjQgaW4KPj4gVHlwbzogcy9yZXN1bHRzIHRvL3Jlc3VsdHMg aW4vCj4KPkZpeGVkLgo+Cj4+ID4gKyAtLSBwcmFjdGljZS4KPj4gPiArIGxvY2FsIGZuYW1lID0g KCdmaWxsbWNvZGVbJWRdJyk6Zm9ybWF0KGxhc3RfaSkKPj4gPiArIHJlY2Z1bmNzW2xhc3RfaV0g PSBhc3NlcnQobG9hZHN0cmluZygoW1sKPj4gPiArIHJldHVybiBmdW5jdGlvbihzcmMpCj4+ID4g KyBsb2NhbCBwID0gJWQKPj4gTml0OiBQb29yIG5hbWluZywgYSBtb3JlIGRlc2NyaXB0aXZlIG5h bWUgaXMgcHJlZmVycmVkLgo+Cj5JdCBoYXMgbm8gbXVjaCBzZW5zZSwgYmVjYXVzZSB3ZSByZWFs bHkgZG9uJ3QgY2FyZSBhYm91dCBvZiB0aGUKPmZ1bmN0aW9uJ3MgY29udGVudC4gU2luY2UgaXQn cyBqdXN0IG1vdmVkIHBhcnQgb2YgdGhlIGNvZGUsIEkgcHJlZmVyIHRvCj5sZWF2ZSBpdCBhcyBp cy4KPgo+SWdub3JpbmcgZm9yIG5vdy4KPgo+PiA+ICsgbG9jYWwgdG1wID0geyB9Cj4+ID4gKyBs b2NhbCBkc3QgPSB7IH0KPj4gPiArIC0tIFhYWDogdXNlIDUgYXMgc3RvcCBpbmRleCB0byByZWR1 Y2UgTExFQVZFIChsZWF2aW5nIGxvb3AKPj4gVHlwbzogcy9hcyBzdG9wL2FzIGEgc3RvcC8KPgo+ Rml4ZWQsIHRoYW5rcyEKPgo+PiA+ICsgLS0gaW4gcm9vdCB0cmFjZSkgZXJyb3JzIGR1ZSB0byBo b3Rjb3VudCBjb2xsaXNpb25zLgo+PiA+ICsgZm9yIGkgPSAxLCA1IGRvCj4KPjxzbmlwcGVkPgo+ Cj4+ID4gKyBsb2NhbCBmdW5jdGlvbiB0bmV3KHApCj4+IE5pdDogc2FtZSBpc3N1ZSB3aXRoIG5h bWluZy4KPgo+RGl0dG8uCj4KPj4gPiArIHJldHVybiB7Cj4KPjxzbmlwcGVkPgo+Cj5TZWUgdGhl IGl0ZXJhdGl2ZSBwYXRjaCBiZWxvdzoKPgo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ZGlmZiAtLWdpdCBhL3Rlc3Qv dGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YSBiL3Rlc3QvdGFyYW50b29s LXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YQo+aW5kZXggNjJiNmUwZWYuLjY1YWJmZGFh IDEwMDY0NAo+LS0tIGEvdGVzdC90YXJhbnRvb2wtdGVzdHMvdXRpbHMvaml0L2dlbmVyYXRvcnMu bHVhCj4rKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9qaXQvZ2VuZXJhdG9ycy5sdWEK PkBAIC03LDI2ICs3LDI2IEBAIGxvY2FsIGZ1bmN0aW9uIGdldGxhc3RfdHJhY2VubygpCj7CoGVu ZAo+wqAKPsKgLS0gQ29udmVydCBhZGRyIHRvIHBvc2l0aXZlIHZhbHVlIGlmIG5lZWRlZC4KPi1s b2NhbCBmdW5jdGlvbiBjYW5vbml6ZV9hZGRyZXNzKGFkZHIpCj4rbG9jYWwgZnVuY3Rpb24gY2Fu b25pY2FsaXplX2FkZHJlc3MoYWRkcikKPsKgwqDCoGlmIGFkZHIgPCAwIHRoZW4gYWRkciA9IGFk ZHIgKyAyIF4gMzIgZW5kCj7CoMKgwqByZXR1cm4gYWRkcgo+wqBlbmQKPsKgCj4tLS0gTmVlZCBz b21lIHN0b3JhZ2UgdG8gYXZvaWQgZnVuY3Rpb25zIGFuZCB0cmFjZXMgdG8gYmUKPistLSBTb21l IHN0b3JhZ2UgaXMgbmVlZGVkIHRvIGF2b2lkIGZ1bmN0aW9ucyBhbmQgdHJhY2VzIGJlaW5nCj7C oC0tIGNvbGxlY3RlZC4KPsKgbG9jYWwgcmVjZnVuY3MgPSB7fQo+wqBsb2NhbCBsYXN0X2kgPSAw Cj7CoC0tIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgdGFibGUgb2YgZnVuY3Rpb25zIHdpdGgg aGVhdnkgbWNvZGUKPsKgLS0gcGF5bG9hZCB3aXRoIHRhYiBhcml0aG1ldGljcyB0byBmaWxsIHRo ZSBtY29kZSBhcmVhIGZyb20gdGhlCj4tLS0gb25lIHRyYWNlIG1jb2RlIGJ5IHRoZSBzb21lIGdp dmVuIHNpemUuIFRoaXMgc2l6ZSBpcyB1c3VhbGx5Cj4tLS0gYmlnIGVub3VnaCwgYmVjYXVzZSB3 ZSB3YW50IHRvIGNoZWNrIGxvbmcganVtcCBzaWRlIGV4aXRzIGZyb20KPi0tLSBzb21lIHRyYWNl cy4KPi0tLSBBc3N1bWVzLCB0aGF0IG1heG1jb2RlIGFuZCBtYXh0cmFjZSBvcHRpb25zIGFyZSBz ZXQgdG8gYmUgc3VyZSwKPi0tLSB0aGF0IHdlIGNhbiBwcm9kdWNlIHN1Y2ggYW1vdW50IG9mIG1j b2RlLgo+Ky0tIG9uZSB0cmFjZSBtY29kZSBieSBzb21lIGdpdmVuIHNpemUuIFRoaXMgc2l6ZSBp cyB1c3VhbGx5IGJpZwo+Ky0tIGVub3VnaCwgYmVjYXVzZSB3ZSB3YW50IHRvIGNoZWNrIGxvbmcg anVtcCBzaWRlIGV4aXRzIGZyb20gc29tZQo+Ky0tIHRyYWNlcy4KPistLSBBc3N1bWVzLCB0aGF0 IHRoZSBtYXhtY29kZSBhbmQgbWF4dHJhY2Ugb3B0aW9ucyBhcmUgc2V0IHRvIGJlCj4rLS0gc3Vy ZSwgdGhhdCB3ZSBjYW4gcHJvZHVjZSBzdWNoIGFtb3VudCBvZiBtY29kZS4KPsKgZnVuY3Rpb24g TS5maWxsbWNvZGUodHJhY2VfZnJvbSwgc2l6ZSkKPsKgwqDCoGxvY2FsIG1jb2RlLCBhZGRyX2Zy b20gPSBqdXRpbC50cmFjZW1jKHRyYWNlX2Zyb20pCj4tIGFzc2VydChtY29kZSwgJ3RoZSAjMSBh cmd1bWVudCBzaG91bGQgYmUgYW4gZXhpc3RlZCB0cmFjZSBudW1iZXInKQo+LSBhZGRyX2Zyb20g PSBjYW5vbml6ZV9hZGRyZXNzKGFkZHJfZnJvbSkKPisgYXNzZXJ0KG1jb2RlLCAndGhlICMxIGFy Z3VtZW50IHNob3VsZCBiZSBhbiBleGlzdGluZyB0cmFjZSBudW1iZXInKQo+KyBhZGRyX2Zyb20g PSBjYW5vbmljYWxpemVfYWRkcmVzcyhhZGRyX2Zyb20pCj7CoMKgwqBsb2NhbCByZXF1aXJlZF9k aWZmID0gc2l6ZSArICNtY29kZQo+wqAKPsKgwqDCoC0tIE1hcmtlciB0byBjaGVjayB0aGF0IHRy YWNlcyBhcmUgbm90IGZsdXNoZWQuCj5AQCAtMzQsMTcgKzM0LDE3IEBAIGZ1bmN0aW9uIE0uZmls bG1jb2RlKHRyYWNlX2Zyb20sIHNpemUpCj7CoMKgwqBsb2NhbCBGTFVTSF9FUlIgPSAnVHJhY2Vz IGFyZSBmbHVzaGVkLCBjaGVjayB5b3VyIG1heHRyYWNlLCBtYXhtY29kZSBvcHRpb25zJwo+wqAK PsKgwqDCoGxvY2FsIF8sIGxhc3RfYWRkciA9IGp1dGlsLnRyYWNlbWMobWF4dHJhY2VubykKPi0g bGFzdF9hZGRyID0gY2Fub25pemVfYWRkcmVzcyhsYXN0X2FkZHIpCj4rIGxhc3RfYWRkciA9IGNh bm9uaWNhbGl6ZV9hZGRyZXNzKGxhc3RfYWRkcikKPsKgCj7CoMKgwqAtLSBBZGRyZXNzZXMgb2Yg dHJhY2VzIG1heSBpbmNyZWFzZSBvciBkZWNyZWFzZSBkZXBlbmRpbmcgb24gT1MsCj7CoMKgwqAt LSBzbyB1c2UgYWJzb2x1dGUgZGlmZi4KPsKgwqDCoHdoaWxlIG1hdGguYWJzKGxhc3RfYWRkciAt IGFkZHJfZnJvbSkgPiByZXF1aXJlZF9kaWZmIGRvCj7CoMKgwqDCoMKgbGFzdF9pID0gbGFzdF9p ICsgMQo+LSAtLSBUaGlzIGlzIGEgcXVpdGUgaGVhdnkgd29ya2xvYWQgKHRob3VnaCBpdCBkb2Vz bid0IGxvb2sgbGlrZQo+KyAtLSBUaGlzIGlzIHF1aXRlIGEgaGVhdnkgd29ya2xvYWQgKHRob3Vn aCBpdCBkb2Vzbid0IGxvb2sgbGlrZQo+wqDCoMKgwqDCoC0tIG9uZSBhdCBmaXJzdCkuIEVhY2gg bG9hZCBmcm9tIGEgdGFibGUgaXMgdHlwZSBndWFyZGVkLiBFYWNoCj7CoMKgwqDCoMKgLS0gdGFi bGUgbG9va3VwIChmb3IgYm90aCBzdG9yZXMgYW5kIGxvYWRzKSBpcyBndWFyZGVkIGZvcgo+LSAt LSB0YWJsZSA8aG1hc2s+IHZhbHVlIGFuZCBwcmVzZW5jZSBvZiB0aGUgbWV0YXRhYmxlLiBUaGUg Y29kZQo+LSAtLSBiZWxvdyByZXN1bHRzIHRvIH44S2Igb2YgbWNvZGUgZm9yIEFSTTY0IGFuZCBN SVBTNjQgaW4KPisgLS0gdGFibGUgPGhtYXNrPiB2YWx1ZSBhbmQgdGhlIHByZXNlbmNlIG9mIHRo ZSBtZXRhdGFibGUuIFRoZQo+KyAtLSBjb2RlIGJlbG93IHJlc3VsdHMgaW4gfjhLYiBvZiBtY29k ZSBmb3IgQVJNNjQgYW5kIE1JUFM2NCBpbgo+wqDCoMKgwqDCoC0tIHByYWN0aWNlLgo+wqDCoMKg wqDCoGxvY2FsIGZuYW1lID0gKCdmaWxsbWNvZGVbJWRdJyk6Zm9ybWF0KGxhc3RfaSkKPsKgwqDC oMKgwqByZWNmdW5jc1tsYXN0X2ldID0gYXNzZXJ0KGxvYWRzdHJpbmcoKFtbCj5AQCAtNTIsOCAr NTIsOCBAQCBmdW5jdGlvbiBNLmZpbGxtY29kZSh0cmFjZV9mcm9tLCBzaXplKQo+wqDCoMKgwqDC oMKgwqDCoMKgbG9jYWwgcCA9ICVkCj7CoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCB0bXAgPSB7IH0K PsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIGRzdCA9IHsgfQo+LSAtLSBYWFg6IHVzZSA1IGFzIHN0 b3AgaW5kZXggdG8gcmVkdWNlIExMRUFWRSAobGVhdmluZyBsb29wCj4tIC0tIGluIHJvb3QgdHJh Y2UpIGVycm9ycyBkdWUgdG8gaG90Y291bnQgY29sbGlzaW9ucy4KPisgLS0gWFhYOiB1c2UgNSBh cyBhIHN0b3AgaW5kZXggdG8gcmVkdWNlIExMRUFWRSAobGVhdmluZwo+KyAtLSBsb29wIGluIHJv b3QgdHJhY2UpIGVycm9ycyBkdWUgdG8gaG90Y291bnQgY29sbGlzaW9ucy4KPsKgwqDCoMKgwqDC oMKgwqDCoGZvciBpID0gMSwgNSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRtcC5hID0gc3Jj LmEgKiBwIHRtcC5qID0gc3JjLmogKiBwIHRtcC5zID0gc3JjLnMgKiBwCj7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgdG1wLmIgPSBzcmMuYiAqIHAgdG1wLmsgPSBzcmMuayAqIHAgdG1wLnQgPSBzcmMu dCAqIHAKPkBAIC0xMDgsNyArMTA4LDcgQEAgZnVuY3Rpb24gTS5maWxsbWNvZGUodHJhY2VfZnJv bSwgc2l6ZSkKPsKgwqDCoMKgwqBpZiBub3QgbGFzdF9hZGRyIHRoZW4KPsKgwqDCoMKgwqDCoMKg ZXJyb3IoRkxVU0hfRVJSKQo+wqDCoMKgwqDCoGVuZAo+LSBsYXN0X2FkZHIgPSBjYW5vbml6ZV9h ZGRyZXNzKGxhc3RfYWRkcikKPisgbGFzdF9hZGRyID0gY2Fub25pY2FsaXplX2FkZHJlc3MobGFz dF9hZGRyKQo+wqDCoMKgZW5kCj7CoGVuZAo+wqAKPj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPgo+PiA+ICtlbmQKPj4g PiArCj4+ID4gK3JldHVybiBNCj4+ID4gLS0KPj4gPiAyLjQxLjAKPj4gQmVzdCByZWdhcmRzLAo+ PiBNYXhpbSBLb2tyeWFzaGtpbgo+PiA+Cj4KPi0tCj5CZXN0IHJlZ2FyZHMsCj5TZXJnZXkgS2Fw bHVuCsKg ----ALT--332162a1bCfAC9aF99B9B438b6De22F71692191204 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGksIFNlcmdleSE8L2Rpdj48ZGl2PlRoYW5rcyBmb3IgdGhlIGZp eGVzITwvZGl2PjxkaXY+TEdUTTwvZGl2PjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250 YWluZXIiPjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPkJl c3QgcmVnYXJkcyw8L2Rpdj48ZGl2Pk1heGltIEtva3J5YXNoa2luPC9kaXY+PC9kaXY+PC9kaXY+ PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBw eDsiPtCh0YDQtdC00LAsIDE2INCw0LLQs9GD0YHRgtCwIDIwMjMsIDE2OjAwICswMzowMCDQvtGC IFNlcmdleSBLYXBsdW4gJmx0O3NrYXBsdW5AdGFyYW50b29sLm9yZyZndDs6PGJyPiZuYnNwOzxk aXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYg aWQ9InN0eWxlXzE2OTIxOTA4MDkxOTc1OTkyMDExX0JPRFkiPkhpLCBNYXhpbSE8YnI+VGhhbmtz IGZvciB0aGUgcmV2aWV3ITxicj5QbGVhc2UsIHNlZSBteSByZXBsaWVzIGJlbG93Ljxicj48YnI+ T24gMTUuMDguMjMsIE1heGltIEtva3J5YXNoa2luIHdyb3RlOjxicj4mZ3Q7IEhpLCBTZXJnZXkh PGJyPiZndDsgVGhhbmtzIGZvciB0aGUgcGF0Y2ghPGJyPiZndDsgUGxlYXNlIGNvbnNpZGVyIG15 IGNvbW1lbnRzIGJlbG93Ljxicj4mZ3Q7PGJyPiZndDsgT24gV2VkLCBBdWcgMDksIDIwMjMgYXQg MDY6MzU6NTFQTSArMDMwMCwgU2VyZ2V5IEthcGx1biB2aWEgVGFyYW50b29sLXBhdGNoZXMgd3Jv dGU6PGJyPiZndDsgJmd0OyBUaGUgdGVzdCAmbHQ7dGVzdC90YXJhbnRvb2wtdGVzdHMvZ2gtNjA5 OC1maXgtc2lkZS1leGl0LXBhdGNoaW5nLW9uLWFybTY0Jmd0Ozxicj4mZ3Q7ICZndDsgZGVwZW5k cyBvbiBwYXJ0aWN1bGFyIG9mZnNldCBvZiBtY29kZSBmb3Igc2lkZSB0cmFjZSByZWdhcmRpbmcg dGhlPGJyPiZndDsgJmd0OyBwYXJlbnQgdHJhY2UuIEJlZm9yZSB0aGlzIGNvbW1pdCBqdXN0IHJ1 biBzb21lIGFtb3VudCBvZiBmdW5jdGlvbnMgdG88YnI+Jmd0OyAmZ3Q7IGdlbmVyYXRlIHRyYWNl cyB0byBmaWxsIHRoZSByZXF1aXJlZCBtY29kZSByYW5nZS4gVW5mb3J0dW5hdGVseSwgdGhpczxi cj4mZ3Q7ICZndDsgYXBwcm9hY2ggaXMgbm90IHJvYnVzdCwgc2luY2Ugc29tZXRpbWVzIHRyYWNl IGlzIG5vdCByZWNvcmRlZCBkdWUgdG88YnI+Jmd0OyAmZ3Q7IGVycm9ycyAibGVhdmluZyBsb29w IGluIHJvb3QgdHJhY2UiIG9ic2VydmVkIGJlY2F1c2Ugb2YgaG90Y291bnQ8YnI+Jmd0OyAmZ3Q7 IGNvbGxpc2lvbnMuPGJyPiZndDsgJmd0Ozxicj4mZ3Q7ICZndDsgVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIHRoZSBmb2xsb3dpbmcgaGVscGVyczo8YnI+Jmd0OyAmZ3Q7ICogYGZyb250ZW5kLmdldHRy YWNlbm8oZnVuYylgIC0tIHJldHVybnMgdGhlIHRyYWNlbm8gZm9yIHRoZSBnaXZlbjxicj4mZ3Q7 ICZndDsgZnVuY3Rpb24sIGFzc3VtbWluZyB0aGF0IHRoZXJlIGlzIGNvbXBpbGVkIHRyYWNlIGZv ciBpdHMgcHJvdG90eXBlPGJyPiZndDsgJmd0OyAoaS5lLiB0aGUgMHRoIGJ5dGVjb2RlIGlzIEpG VU5DKS48YnI+Jmd0OyAmZ3Q7ICogYGppdC5nZW5lcmF0b3JzLmZpbGxtY29kZSh0cmFjZW5vLCBz aXplKWAgZmlsbHMgbWNvZGUgYXJlYSBvZiB0aGU8YnI+Jmd0OyAmZ3Q7IGdpdmVuIHNpemUgZnJv bSB0aGUgZ2l2ZW4gdHJhY2UuIEl0IGlzIHVzZWZ1bCB0byBnZW5lcmF0ZSBzb21lIG1jb2RlPGJy PiZndDsgJmd0OyB0byB0ZXN0IGp1bXBzIHRvIHNpZGUgdHJhY2VzIHJlbW90ZSBlbm91Z2ggZnJv bSB0aGUgcGFyZW50Ljxicj4mZ3Q7ICZndDsgLS0tPGJyPiZndDsgJmd0OyAuLi44LWZpeC1zaWRl LWV4aXQtcGF0Y2hpbmctb24tYXJtNjQudGVzdC5sdWEgfCA3OCArKy0tLS0tLS0tLS08YnI+Jmd0 OyAmZ3Q7IHRlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2Zyb250ZW5kLmx1YSB8IDI0ICsrKys8 YnI+Jmd0OyAmZ3Q7IHRlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1 YSB8IDExNSArKysrKysrKysrKysrKysrKys8YnI+Jmd0OyAmZ3Q7IDMgZmlsZXMgY2hhbmdlZCwg MTUwIGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKTxicj4mZ3Q7ICZndDsgY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YTxi cj4mZ3Q7ICZndDs8YnI+Jmd0OyAmZ3Q7IGRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC10ZXN0 cy9naC02MDk4LWZpeC1zaWRlLWV4aXQtcGF0Y2hpbmctb24tYXJtNjQudGVzdC5sdWEgYi90ZXN0 L3RhcmFudG9vbC10ZXN0cy9naC02MDk4LWZpeC1zaWRlLWV4aXQtcGF0Y2hpbmctb24tYXJtNjQu dGVzdC5sdWE8YnI+Jmd0OyAmZ3Q7IGluZGV4IDkzZGIzMDQxLi42NzhhYzkxNCAxMDA2NDQ8YnI+ Jmd0OyAmZ3Q7IC0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL2doLTYwOTgtZml4LXNpZGUtZXhp dC1wYXRjaGluZy1vbi1hcm02NC50ZXN0Lmx1YTxicj4mZ3Q7ICZndDsgKysrIGIvdGVzdC90YXJh bnRvb2wtdGVzdHMvZ2gtNjA5OC1maXgtc2lkZS1leGl0LXBhdGNoaW5nLW9uLWFybTY0LnRlc3Qu bHVhPGJyPjxicj4mbHQ7c25pcHBlZCZndDs8YnI+PGJyPiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEv dGVzdC90YXJhbnRvb2wtdGVzdHMvdXRpbHMvZnJvbnRlbmQubHVhIGIvdGVzdC90YXJhbnRvb2wt dGVzdHMvdXRpbHMvZnJvbnRlbmQubHVhPGJyPiZndDsgJmd0OyBpbmRleCAyYWZlYmJiMi4uNDE0 MjU3ZmQgMTAwNjQ0PGJyPiZndDsgJmd0OyAtLS0gYS90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGls cy9mcm9udGVuZC5sdWE8YnI+Jmd0OyAmZ3Q7ICsrKyBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0 aWxzL2Zyb250ZW5kLmx1YTxicj48YnI+Jmx0O3NuaXBwZWQmZ3Q7PGJyPjxicj4mZ3Q7ICZndDsg ZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1 YSBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YTxicj4mZ3Q7 ICZndDsgbmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+Jmd0OyAmZ3Q7IGluZGV4IDAwMDAwMDAwLi42 MmI2ZTBlZjxicj4mZ3Q7ICZndDsgLS0tIC9kZXYvbnVsbDxicj4mZ3Q7ICZndDsgKysrIGIvdGVz dC90YXJhbnRvb2wtdGVzdHMvdXRpbHMvaml0L2dlbmVyYXRvcnMubHVhPGJyPiZndDsgJmd0OyBA QCAtMCwwICsxLDExNSBAQDxicj4mZ3Q7ICZndDsgK2xvY2FsIE0gPSB7fTxicj4mZ3Q7ICZndDsg Kzxicj4mZ3Q7ICZndDsgK2xvY2FsIGp1dGlsID0gcmVxdWlyZSgnaml0LnV0aWwnKTxicj4mZ3Q7 ICZndDsgKzxicj4mZ3Q7ICZndDsgK2xvY2FsIGZ1bmN0aW9uIGdldGxhc3RfdHJhY2VubygpPGJy PiZndDsgJmd0OyArIHJldHVybiBtaXNjLmdldG1ldHJpY3MoKS5qaXRfdHJhY2VfbnVtPGJyPiZn dDsgJmd0OyArZW5kPGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArLS0gQ29udmVydCBhZGRy IHRvIHBvc2l0aXZlIHZhbHVlIGlmIG5lZWRlZC48YnI+Jmd0OyAmZ3Q7ICtsb2NhbCBmdW5jdGlv biBjYW5vbml6ZV9hZGRyZXNzKGFkZHIpPGJyPiZndDsgTml0OiBtb3N0IG9mIHRoZSB0aW1lLCB0 aGUgYGNhbm9uaXplYCB2YXJpYW50IGlzIHVzZWQgaW4gdGhlb2xvZ2ljYWwgbWF0ZXJpYWxzLDxi cj4mZ3Q7IHdoaWxlIHRoZSBgY2Fub25pY2FsaXplYCBpcyBtb3JlIGNvbW1vbiBpbiB0aGUgc3Bo ZXJlIG9mIHNvZnR3YXJlIGRldmVsb3BtZW50Ljxicj4mZ3Q7IEZlZWwgZnJlZSB0byBpZ25vcmUu PGJyPjxicj5GaXhlZCwgdGhhbmtzLjxicj48YnI+Jmd0OyAmZ3Q7ICsgaWYgYWRkciAmbHQ7IDAg dGhlbiBhZGRyID0gYWRkciArIDIgXiAzMiBlbmQ8YnI+Jmd0OyAmZ3Q7ICsgcmV0dXJuIGFkZHI8 YnI+Jmd0OyAmZ3Q7ICtlbmQ8YnI+Jmd0OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICstLSBOZWVkIHNv bWUgc3RvcmFnZSB0byBhdm9pZCBmdW5jdGlvbnMgYW5kIHRyYWNlcyB0byBiZTxicj4mZ3Q7ICZn dDsgKy0tIGNvbGxlY3RlZC48YnI+Jmd0OyBUeXBvOiBzL05lZWQvV2UgbmVlZC8gb3Igcy9OZWVk IHNvbWUgc3RvcmFnZS9Tb21lIHN0b3JhZ2UgaXMgbmVlZGVkLzxicj4mZ3Q7IFR5cG86IHMvdG8g YmUgY29sbGVjdGVkL2JlaW5nIGNvbGxlY3RlZC88YnI+PGJyPkZpeGVkLjxicj48YnI+Jmd0OyAm Z3Q7ICtsb2NhbCByZWNmdW5jcyA9IHt9PGJyPiZndDsgJmd0OyArbG9jYWwgbGFzdF9pID0gMDxi cj4mZ3Q7ICZndDsgKy0tIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgdGFibGUgb2YgZnVuY3Rp b25zIHdpdGggaGVhdnkgbWNvZGU8YnI+Jmd0OyAmZ3Q7ICstLSBwYXlsb2FkIHdpdGggdGFiIGFy aXRobWV0aWNzIHRvIGZpbGwgdGhlIG1jb2RlIGFyZWEgZnJvbSB0aGU8YnI+Jmd0OyAmZ3Q7ICst LSBvbmUgdHJhY2UgbWNvZGUgYnkgdGhlIHNvbWUgZ2l2ZW4gc2l6ZS4gVGhpcyBzaXplIGlzIHVz dWFsbHk8YnI+Jmd0OyBUeXBvOiBzL2J5IHRoZSBzb21lL2J5IHNvbWUvPGJyPjxicj5GaXhlZCwg dGhhbmtzITxicj48YnI+Jmd0OyAmZ3Q7ICstLSBiaWcgZW5vdWdoLCBiZWNhdXNlIHdlIHdhbnQg dG8gY2hlY2sgbG9uZyBqdW1wIHNpZGUgZXhpdHMgZnJvbTxicj4mZ3Q7ICZndDsgKy0tIHNvbWUg dHJhY2VzLjxicj4mZ3Q7ICZndDsgKy0tIEFzc3VtZXMsIHRoYXQgbWF4bWNvZGUgYW5kIG1heHRy YWNlIG9wdGlvbnMgYXJlIHNldCB0byBiZSBzdXJlLDxicj4mZ3Q7IFR5cG86IHMvdGhhdC90aGF0 IHRoZS88YnI+PGJyPkZpeGVkLjxicj48YnI+Jmd0OyAmZ3Q7ICstLSB0aGF0IHdlIGNhbiBwcm9k dWNlIHN1Y2ggYW1vdW50IG9mIG1jb2RlLjxicj4mZ3Q7ICZndDsgK2Z1bmN0aW9uIE0uZmlsbG1j b2RlKHRyYWNlX2Zyb20sIHNpemUpPGJyPiZndDsgJmd0OyArIGxvY2FsIG1jb2RlLCBhZGRyX2Zy b20gPSBqdXRpbC50cmFjZW1jKHRyYWNlX2Zyb20pPGJyPiZndDsgJmd0OyArIGFzc2VydChtY29k ZSwgJ3RoZSAjMSBhcmd1bWVudCBzaG91bGQgYmUgYW4gZXhpc3RlZCB0cmFjZSBudW1iZXInKTxi cj4mZ3Q7IFR5cG86IHMvZXhpc3RlZC9leGlzdGluZy88YnI+PGJyPkZpeGVkLCB0aGFua3MhPGJy Pjxicj4mZ3Q7ICZndDsgKyBhZGRyX2Zyb20gPSBjYW5vbml6ZV9hZGRyZXNzKGFkZHJfZnJvbSk8 YnI+Jmd0OyAmZ3Q7ICsgbG9jYWwgcmVxdWlyZWRfZGlmZiA9IHNpemUgKyAjbWNvZGU8YnI+Jmd0 OyAmZ3Q7ICs8YnI+Jmd0OyAmZ3Q7ICsgLS0gTWFya2VyIHRvIGNoZWNrIHRoYXQgdHJhY2VzIGFy ZSBub3QgZmx1c2hlZC48YnI+Jmd0OyAmZ3Q7ICsgbG9jYWwgbWF4dHJhY2VubyA9IGdldGxhc3Rf dHJhY2VubygpPGJyPiZndDsgJmd0OyArIGxvY2FsIEZMVVNIX0VSUiA9ICdUcmFjZXMgYXJlIGZs dXNoZWQsIGNoZWNrIHlvdXIgbWF4dHJhY2UsIG1heG1jb2RlIG9wdGlvbnMnPGJyPiZndDsgJmd0 OyArPGJyPiZndDsgJmd0OyArIGxvY2FsIF8sIGxhc3RfYWRkciA9IGp1dGlsLnRyYWNlbWMobWF4 dHJhY2Vubyk8YnI+Jmd0OyAmZ3Q7ICsgbGFzdF9hZGRyID0gY2Fub25pemVfYWRkcmVzcyhsYXN0 X2FkZHIpPGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArIC0tIEFkZHJlc3NlcyBvZiB0cmFj ZXMgbWF5IGluY3JlYXNlIG9yIGRlY3JlYXNlIGRlcGVuZGluZyBvbiBPUyw8YnI+Jmd0OyAmZ3Q7 ICsgLS0gc28gdXNlIGFic29sdXRlIGRpZmYuPGJyPiZndDsgJmd0OyArIHdoaWxlIG1hdGguYWJz KGxhc3RfYWRkciAtIGFkZHJfZnJvbSkgJmd0OyByZXF1aXJlZF9kaWZmIGRvPGJyPiZndDsgJmd0 OyArIGxhc3RfaSA9IGxhc3RfaSArIDE8YnI+Jmd0OyAmZ3Q7ICsgLS0gVGhpcyBpcyBhIHF1aXRl IGhlYXZ5IHdvcmtsb2FkICh0aG91Z2ggaXQgZG9lc24ndCBsb29rIGxpa2U8YnI+Jmd0OyBUeXBv OiBzL1RoaXMgaXMgYSBxdWl0ZS9UaGlzIGlzIHF1aXRlIGEvPGJyPjxicj5GaXhlZC48YnI+PGJy PiZndDsgJmd0OyArIC0tIG9uZSBhdCBmaXJzdCkuIEVhY2ggbG9hZCBmcm9tIGEgdGFibGUgaXMg dHlwZSBndWFyZGVkLiBFYWNoPGJyPiZndDsgJmd0OyArIC0tIHRhYmxlIGxvb2t1cCAoZm9yIGJv dGggc3RvcmVzIGFuZCBsb2FkcykgaXMgZ3VhcmRlZCBmb3I8YnI+Jmd0OyAmZ3Q7ICsgLS0gdGFi bGUgJmx0O2htYXNrJmd0OyB2YWx1ZSBhbmQgcHJlc2VuY2Ugb2YgdGhlIG1ldGF0YWJsZS4gVGhl IGNvZGU8YnI+Jmd0OyBUeXBvOiBzL2FuZCBwcmVzZW5jZS9hbmQgdGhlIHByZXNlbmNlLzxicj48 YnI+Rml4ZWQuPGJyPjxicj4mZ3Q7ICZndDsgKyAtLSBiZWxvdyByZXN1bHRzIHRvIH44S2Igb2Yg bWNvZGUgZm9yIEFSTTY0IGFuZCBNSVBTNjQgaW48YnI+Jmd0OyBUeXBvOiBzL3Jlc3VsdHMgdG8v cmVzdWx0cyBpbi88YnI+PGJyPkZpeGVkLjxicj48YnI+Jmd0OyAmZ3Q7ICsgLS0gcHJhY3RpY2Uu PGJyPiZndDsgJmd0OyArIGxvY2FsIGZuYW1lID0gKCdmaWxsbWNvZGVbJWRdJyk6Zm9ybWF0KGxh c3RfaSk8YnI+Jmd0OyAmZ3Q7ICsgcmVjZnVuY3NbbGFzdF9pXSA9IGFzc2VydChsb2Fkc3RyaW5n KChbWzxicj4mZ3Q7ICZndDsgKyByZXR1cm4gZnVuY3Rpb24oc3JjKTxicj4mZ3Q7ICZndDsgKyBs b2NhbCBwID0gJWQ8YnI+Jmd0OyBOaXQ6IFBvb3IgbmFtaW5nLCBhIG1vcmUgZGVzY3JpcHRpdmUg bmFtZSBpcyBwcmVmZXJyZWQuPGJyPjxicj5JdCBoYXMgbm8gbXVjaCBzZW5zZSwgYmVjYXVzZSB3 ZSByZWFsbHkgZG9uJ3QgY2FyZSBhYm91dCBvZiB0aGU8YnI+ZnVuY3Rpb24ncyBjb250ZW50LiBT aW5jZSBpdCdzIGp1c3QgbW92ZWQgcGFydCBvZiB0aGUgY29kZSwgSSBwcmVmZXIgdG88YnI+bGVh dmUgaXQgYXMgaXMuPGJyPjxicj5JZ25vcmluZyBmb3Igbm93Ljxicj48YnI+Jmd0OyAmZ3Q7ICsg bG9jYWwgdG1wID0geyB9PGJyPiZndDsgJmd0OyArIGxvY2FsIGRzdCA9IHsgfTxicj4mZ3Q7ICZn dDsgKyAtLSBYWFg6IHVzZSA1IGFzIHN0b3AgaW5kZXggdG8gcmVkdWNlIExMRUFWRSAobGVhdmlu ZyBsb29wPGJyPiZndDsgVHlwbzogcy9hcyBzdG9wL2FzIGEgc3RvcC88YnI+PGJyPkZpeGVkLCB0 aGFua3MhPGJyPjxicj4mZ3Q7ICZndDsgKyAtLSBpbiByb290IHRyYWNlKSBlcnJvcnMgZHVlIHRv IGhvdGNvdW50IGNvbGxpc2lvbnMuPGJyPiZndDsgJmd0OyArIGZvciBpID0gMSwgNSBkbzxicj48 YnI+Jmx0O3NuaXBwZWQmZ3Q7PGJyPjxicj4mZ3Q7ICZndDsgKyBsb2NhbCBmdW5jdGlvbiB0bmV3 KHApPGJyPiZndDsgTml0OiBzYW1lIGlzc3VlIHdpdGggbmFtaW5nLjxicj48YnI+RGl0dG8uPGJy Pjxicj4mZ3Q7ICZndDsgKyByZXR1cm4gezxicj48YnI+Jmx0O3NuaXBwZWQmZ3Q7PGJyPjxicj5T ZWUgdGhlIGl0ZXJhdGl2ZSBwYXRjaCBiZWxvdzo8YnI+PGJyPj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+ZGlmZiAt LWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YSBiL3Rl c3QvdGFyYW50b29sLXRlc3RzL3V0aWxzL2ppdC9nZW5lcmF0b3JzLmx1YTxicj5pbmRleCA2MmI2 ZTBlZi4uNjVhYmZkYWEgMTAwNjQ0PGJyPi0tLSBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL3V0aWxz L2ppdC9nZW5lcmF0b3JzLmx1YTxicj4rKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy91dGlscy9q aXQvZ2VuZXJhdG9ycy5sdWE8YnI+QEAgLTcsMjYgKzcsMjYgQEAgbG9jYWwgZnVuY3Rpb24gZ2V0 bGFzdF90cmFjZW5vKCk8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4mbmJzcDstLSBDb252ZXJ0 IGFkZHIgdG8gcG9zaXRpdmUgdmFsdWUgaWYgbmVlZGVkLjxicj4tbG9jYWwgZnVuY3Rpb24gY2Fu b25pemVfYWRkcmVzcyhhZGRyKTxicj4rbG9jYWwgZnVuY3Rpb24gY2Fub25pY2FsaXplX2FkZHJl c3MoYWRkcik8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgYWRkciAmbHQ7IDAgdGhlbiBhZGRyID0g YWRkciArIDIgXiAzMiBlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGFkZHI8YnI+Jm5i c3A7ZW5kPGJyPiZuYnNwOzxicj4tLS0gTmVlZCBzb21lIHN0b3JhZ2UgdG8gYXZvaWQgZnVuY3Rp b25zIGFuZCB0cmFjZXMgdG8gYmU8YnI+Ky0tIFNvbWUgc3RvcmFnZSBpcyBuZWVkZWQgdG8gYXZv aWQgZnVuY3Rpb25zIGFuZCB0cmFjZXMgYmVpbmc8YnI+Jm5ic3A7LS0gY29sbGVjdGVkLjxicj4m bmJzcDtsb2NhbCByZWNmdW5jcyA9IHt9PGJyPiZuYnNwO2xvY2FsIGxhc3RfaSA9IDA8YnI+Jm5i c3A7LS0gVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSB0YWJsZSBvZiBmdW5jdGlvbnMgd2l0aCBo ZWF2eSBtY29kZTxicj4mbmJzcDstLSBwYXlsb2FkIHdpdGggdGFiIGFyaXRobWV0aWNzIHRvIGZp bGwgdGhlIG1jb2RlIGFyZWEgZnJvbSB0aGU8YnI+LS0tIG9uZSB0cmFjZSBtY29kZSBieSB0aGUg c29tZSBnaXZlbiBzaXplLiBUaGlzIHNpemUgaXMgdXN1YWxseTxicj4tLS0gYmlnIGVub3VnaCwg YmVjYXVzZSB3ZSB3YW50IHRvIGNoZWNrIGxvbmcganVtcCBzaWRlIGV4aXRzIGZyb208YnI+LS0t IHNvbWUgdHJhY2VzLjxicj4tLS0gQXNzdW1lcywgdGhhdCBtYXhtY29kZSBhbmQgbWF4dHJhY2Ug b3B0aW9ucyBhcmUgc2V0IHRvIGJlIHN1cmUsPGJyPi0tLSB0aGF0IHdlIGNhbiBwcm9kdWNlIHN1 Y2ggYW1vdW50IG9mIG1jb2RlLjxicj4rLS0gb25lIHRyYWNlIG1jb2RlIGJ5IHNvbWUgZ2l2ZW4g c2l6ZS4gVGhpcyBzaXplIGlzIHVzdWFsbHkgYmlnPGJyPistLSBlbm91Z2gsIGJlY2F1c2Ugd2Ug d2FudCB0byBjaGVjayBsb25nIGp1bXAgc2lkZSBleGl0cyBmcm9tIHNvbWU8YnI+Ky0tIHRyYWNl cy48YnI+Ky0tIEFzc3VtZXMsIHRoYXQgdGhlIG1heG1jb2RlIGFuZCBtYXh0cmFjZSBvcHRpb25z IGFyZSBzZXQgdG8gYmU8YnI+Ky0tIHN1cmUsIHRoYXQgd2UgY2FuIHByb2R1Y2Ugc3VjaCBhbW91 bnQgb2YgbWNvZGUuPGJyPiZuYnNwO2Z1bmN0aW9uIE0uZmlsbG1jb2RlKHRyYWNlX2Zyb20sIHNp emUpPGJyPiZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIG1jb2RlLCBhZGRyX2Zyb20gPSBqdXRpbC50 cmFjZW1jKHRyYWNlX2Zyb20pPGJyPi0gYXNzZXJ0KG1jb2RlLCAndGhlICMxIGFyZ3VtZW50IHNo b3VsZCBiZSBhbiBleGlzdGVkIHRyYWNlIG51bWJlcicpPGJyPi0gYWRkcl9mcm9tID0gY2Fub25p emVfYWRkcmVzcyhhZGRyX2Zyb20pPGJyPisgYXNzZXJ0KG1jb2RlLCAndGhlICMxIGFyZ3VtZW50 IHNob3VsZCBiZSBhbiBleGlzdGluZyB0cmFjZSBudW1iZXInKTxicj4rIGFkZHJfZnJvbSA9IGNh bm9uaWNhbGl6ZV9hZGRyZXNzKGFkZHJfZnJvbSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwg cmVxdWlyZWRfZGlmZiA9IHNpemUgKyAjbWNvZGU8YnI+Jm5ic3A7PGJyPiZuYnNwOyZuYnNwOyZu YnNwOy0tIE1hcmtlciB0byBjaGVjayB0aGF0IHRyYWNlcyBhcmUgbm90IGZsdXNoZWQuPGJyPkBA IC0zNCwxNyArMzQsMTcgQEAgZnVuY3Rpb24gTS5maWxsbWNvZGUodHJhY2VfZnJvbSwgc2l6ZSk8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgRkxVU0hfRVJSID0gJ1RyYWNlcyBhcmUgZmx1c2hl ZCwgY2hlY2sgeW91ciBtYXh0cmFjZSwgbWF4bWNvZGUgb3B0aW9ucyc8YnI+Jm5ic3A7PGJyPiZu YnNwOyZuYnNwOyZuYnNwO2xvY2FsIF8sIGxhc3RfYWRkciA9IGp1dGlsLnRyYWNlbWMobWF4dHJh Y2Vubyk8YnI+LSBsYXN0X2FkZHIgPSBjYW5vbml6ZV9hZGRyZXNzKGxhc3RfYWRkcik8YnI+KyBs YXN0X2FkZHIgPSBjYW5vbmljYWxpemVfYWRkcmVzcyhsYXN0X2FkZHIpPGJyPiZuYnNwOzxicj4m bmJzcDsmbmJzcDsmbmJzcDstLSBBZGRyZXNzZXMgb2YgdHJhY2VzIG1heSBpbmNyZWFzZSBvciBk ZWNyZWFzZSBkZXBlbmRpbmcgb24gT1MsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOy0tIHNvIHVzZSBh YnNvbHV0ZSBkaWZmLjxicj4mbmJzcDsmbmJzcDsmbmJzcDt3aGlsZSBtYXRoLmFicyhsYXN0X2Fk ZHIgLSBhZGRyX2Zyb20pICZndDsgcmVxdWlyZWRfZGlmZiBkbzxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtsYXN0X2kgPSBsYXN0X2kgKyAxPGJyPi0gLS0gVGhpcyBpcyBhIHF1aXRl IGhlYXZ5IHdvcmtsb2FkICh0aG91Z2ggaXQgZG9lc24ndCBsb29rIGxpa2U8YnI+KyAtLSBUaGlz IGlzIHF1aXRlIGEgaGVhdnkgd29ya2xvYWQgKHRob3VnaCBpdCBkb2Vzbid0IGxvb2sgbGlrZTxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBvbmUgYXQgZmlyc3QpLiBFYWNoIGxv YWQgZnJvbSBhIHRhYmxlIGlzIHR5cGUgZ3VhcmRlZC4gRWFjaDxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDstLSB0YWJsZSBsb29rdXAgKGZvciBib3RoIHN0b3JlcyBhbmQgbG9hZHMp IGlzIGd1YXJkZWQgZm9yPGJyPi0gLS0gdGFibGUgJmx0O2htYXNrJmd0OyB2YWx1ZSBhbmQgcHJl c2VuY2Ugb2YgdGhlIG1ldGF0YWJsZS4gVGhlIGNvZGU8YnI+LSAtLSBiZWxvdyByZXN1bHRzIHRv IH44S2Igb2YgbWNvZGUgZm9yIEFSTTY0IGFuZCBNSVBTNjQgaW48YnI+KyAtLSB0YWJsZSAmbHQ7 aG1hc2smZ3Q7IHZhbHVlIGFuZCB0aGUgcHJlc2VuY2Ugb2YgdGhlIG1ldGF0YWJsZS4gVGhlPGJy PisgLS0gY29kZSBiZWxvdyByZXN1bHRzIGluIH44S2Igb2YgbWNvZGUgZm9yIEFSTTY0IGFuZCBN SVBTNjQgaW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gcHJhY3RpY2UuPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGZuYW1lID0gKCdmaWxsbWNvZGVb JWRdJyk6Zm9ybWF0KGxhc3RfaSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVj ZnVuY3NbbGFzdF9pXSA9IGFzc2VydChsb2Fkc3RyaW5nKChbWzxicj5AQCAtNTIsOCArNTIsOCBA QCBmdW5jdGlvbiBNLmZpbGxtY29kZSh0cmFjZV9mcm9tLCBzaXplKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBwID0gJWQ8YnI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9j YWwgdG1wID0geyB9PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2xvY2FsIGRzdCA9IHsgfTxicj4tIC0tIFhYWDogdXNlIDUgYXMgc3RvcCBp bmRleCB0byByZWR1Y2UgTExFQVZFIChsZWF2aW5nIGxvb3A8YnI+LSAtLSBpbiByb290IHRyYWNl KSBlcnJvcnMgZHVlIHRvIGhvdGNvdW50IGNvbGxpc2lvbnMuPGJyPisgLS0gWFhYOiB1c2UgNSBh cyBhIHN0b3AgaW5kZXggdG8gcmVkdWNlIExMRUFWRSAobGVhdmluZzxicj4rIC0tIGxvb3AgaW4g cm9vdCB0cmFjZSkgZXJyb3JzIGR1ZSB0byBob3Rjb3VudCBjb2xsaXNpb25zLjxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgaSA9IDEs IDUgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7dG1wLmEgPSBzcmMuYSAqIHAgdG1wLmogPSBzcmMuaiAqIHAgdG1w LnMgPSBzcmMucyAqIHA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dG1wLmIgPSBzcmMuYiAqIHAgdG1wLmsgPSBzcmMu ayAqIHAgdG1wLnQgPSBzcmMudCAqIHA8YnI+QEAgLTEwOCw3ICsxMDgsNyBAQCBmdW5jdGlvbiBN LmZpbGxtY29kZSh0cmFjZV9mcm9tLCBzaXplKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtpZiBub3QgbGFzdF9hZGRyIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZXJyb3IoRkxVU0hfRVJSKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtlbmQ8YnI+LSBsYXN0X2FkZHIgPSBjYW5vbml6ZV9hZGRyZXNzKGxhc3RfYWRkcik8 YnI+KyBsYXN0X2FkZHIgPSBjYW5vbmljYWxpemVfYWRkcmVzcyhsYXN0X2FkZHIpPGJyPiZuYnNw OyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+ PGJyPiZndDsgJmd0OyArZW5kPGJyPiZndDsgJmd0OyArPGJyPiZndDsgJmd0OyArcmV0dXJuIE08 YnI+Jmd0OyAmZ3Q7IC0tPGJyPiZndDsgJmd0OyAyLjQxLjA8YnI+Jmd0OyBCZXN0IHJlZ2FyZHMs PGJyPiZndDsgTWF4aW0gS29rcnlhc2hraW48YnI+Jmd0OyAmZ3Q7PGJyPjxicj4tLTxicj5CZXN0 IHJlZ2FyZHMsPGJyPlNlcmdleSBLYXBsdW48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PGRpdj4mbmJzcDs8L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--332162a1bCfAC9aF99B9B438b6De22F71692191204--