From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f177.i.mail.ru (f177.i.mail.ru [94.100.178.163]) (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 1425C452566 for ; Wed, 13 Nov 2019 14:21:09 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Wed, 13 Nov 2019 14:21:06 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1573644066.297818688@f177.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--4aCd9F821B079F632E5baD07498c30341573644066" In-Reply-To: <20191106004408.ajxf53urlqzy37ce@tkn_work_nb> References: <20190912174448.25680-1-maria.khaydich@tarantool.org> <20191106004408.ajxf53urlqzy37ce@tkn_work_nb> Subject: Re: [Tarantool-patches] =?utf-8?q?=5Btarantool-patches=5D_Re=3A_=5BPA?= =?utf-8?q?TCH=5D_msgpackffi=2Edecode_can_now_be_assigned_to_buf=2Erpos?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@freelists.org Cc: tarantool-patches@dev.tarantool.org, =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= ----ALT--4aCd9F821B079F632E5baD07498c30341573644066 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CgpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuIFByb3Bvc2VkIGNoYW5nZXMgbG9vayByZWFzb25h YmxlIHRvIG1lIHNvIEnigJl2ZSBzcXVhc2hlZCB5b3VyIEZJWFVQIGNvbW1pdHMgYW5kIGFsc28g YWRkZWQgZm9sbG93IHVwIHBhdGNoIGFzIGEgc2VwYXJhdGUgY29tbWl0LsKgCsKgIAo+0KHRgNC1 0LTQsCwgNiDQvdC+0Y/QsdGA0Y8gMjAxOSwgMzo0NCArMDM6MDAg0L7RgiBBbGV4YW5kZXIgVHVy ZW5rbyA8YWxleGFuZGVyLnR1cmVua29AdGFyYW50b29sLm9yZz46Cj7CoAo+Tm90ZTogVGhlIHBh dGNoIHdhcyBjaGFuZ2VkOiBub3cgbXNncGFja2ZmaS5kZWNvZGVfdW5jaGVja2VkKCkgcmV0dXJu cyBhCj5wb2ludGVyIG9mIHRoZSBzYW1lIGNkYXRhIHR5cGUgYXMgcGFzc2VkIGJ1ZmZlciAodGhl IHNhbWUgZm9yIGl0cwo+bXNncGFja2ZmaS5kZWNvZGUoKSBhbGlhcykuCj5lbGphc2htL2doLTM5 MjYtbXNncGFja2ZmaS5kZWNvZGUtYXNzaWdubWVudC10by1idWYucnBvcyBicmFuY2ggd2FzCj51 cGRhdGVkLCBidXQgdGhlIGVtYWlsIHRocmVhZCB3YXMgbm90LiBJIGFkZGVkIHRoZSBuZXcgcGF0 Y2ggYmVsb3cgdG8KPm1ha2UgdGhlIGRpc2N1c3Npb24gY29uc2lzdGVudC4KPgo+VGhlIHJldmll dyBjb250YWlucyB0d28gcGFydHM6IGEgcXVlc3Rpb24gYWJvdXQgdGhlIEFQSSBhbmQgcHJvcG9z ZWQKPmNoYW5nZXMgZm9yIGNvZGUgYW5kIHRlc3RzLgo+Cj5BUEkKPi0tLQo+Cj5JIGRpZ2dlZCBh IGJpdCBpbnRvIHRoZSBoaXN0b3J5IG9mIG1zZ3BhY2sgYW5kIG1zZ3BhY2tmZmkgQVBJIHRvCj51 bmRlcnN0YW5kIHVzZSBjYXNlcyBhbmQgZGVjaWRlIHdoZXRoZXIgd2Ugc2hvdWxkIGFsd2F5cyBy ZXR1cm4KPmNkYXRhPGNoYXIgKj4gcG9pbnRlciBkZXNwaXRlIG9mIGNkYXRhIHR5cGUgb2YgYSBw cm92aWRlZCBidWZmZXIgb3IKPnJldHVybiBjZGF0YTxbY29uc3RdIGNoYXIgKj4gZGVwZW5kaW5n IG9uIHRoZSBwYXNzZWQgYnVmZmVyLgo+Cj5tc2dwYWNrIG1vZHVsZSBpbml0aWFsbHkgYWNjZXB0 cyBvbmx5IGNkYXRhPGNoYXIgKj4sIHNvIG5vIG9uZSBib3RoZXIKPndpdGggdGhpcyBxdWVzdGlv bi4gVGhlbiBpdCBzdGFydCB0byBhY2NlcHQgY29uc3QgcG9pbnRlcnMgdG9vLCB3aGlsZQo+dGhl IHR5cGUgb2YgcmV0dXJuZWQgcG9pbnRlciByZW1haW5zIHRoZSBzYW1lOiBhbHdheXMgY2RhdGE8 Y2hhciAqPi4KPgo+bXNncGFja2ZmaSBhbHdheXMgYWNjZXB0cyBib3RoIHR5cGVzIG9mIHBvaW50 ZXJzLCBidXQgYWx3YXlzIHJldHVybnMKPid1bnNpZ25lZCBjaGFyIConLiBJIGd1ZXNzIHRoaXMg d2FzIG5vdCBpbnRlbnRpb25hbC4KPgo+SSBzZWUgbm8gcmVhc29uIHRvIGRvbid0IGNoYW5nZSB0 aGUgYmVoYXZpb3VyIGZvciBib3RoIG1vZHVsZXMgdG8gdGhlCj5wcm9wb3NlZCBvbmU6IHJldHVy biB0aGUgc2FtZSBwb2ludGVyIHR5cGUgYXMgcGFzc2VkIG9uZS4KPgo+Rm9yIG9uZXMgd2hvIGlu dGVyZXN0ZWQsIG15IHNvdXJjZXMgb2YgaW5mby4gSGVyZSB0aGUgbmV3IEFQSSB0aGF0Cj5hbGxv d3MgdG8gaW50ZXJhY3Qgd2l0aCBidWZmZXJzIHdhcyBpbnRyb2R1Y2VkOgo+Cj5odHRwczovL2dp dGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21taXQvNjhjMjEzOTc1YTMxZDBjMDViMWU1 ZDIzZTYxMTI0MTdlMzE1Zjk5NQo+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRv b2wvaXNzdWVzLzI3NTUKPgo+SXQgd2FzIG5lZWRlZCB0byBlYXNpZXIgdXNlIGlidWYgKCdidWZm ZXInIG1vZHVsZSkgaGVyZToKPgo+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC9kdW1wL2Nv bW1pdC81YjFlMTVlMDU3YWE0NjA2ZmVkYzkyOWFhZTUxNzI0NzA1NjAwNjM4Cj4KPkhlcmUgbXNn cGFjayBtb2R1bGUgc3RhcnRzIHRvIGFjY2VwdCBjZGF0YTxjb25zdCBjaGFyICo+IChkb24ndCBz dXJlCj53aGF0IHRoZSByZWFzb24gd2FzKToKPgo+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9v bC90YXJhbnRvb2wvY29tbWl0LzQ1M2ZmZjJiMjE1ZTBjMmUyZDRjNTk1MWZhZTcxMTMyOWVmZjdi NDgKPgo+Q29kZQo+LS0tLQo+Cj5JJ2xsIHBhc3RlIHRoZSBvcmlnaW5hbCAodXBkYXRlZCBhcyBJ IHdyb3RlIGFib3ZlKSBwYXRjaCBhbmQgY2hhbmdlcyBJCj5wcm9wb3NlZCBiZWxvdyB0aGUgZW1h aWwuIEkgYWxzbyBwdXNoZWQgdGhlbSBvbnRvCj5Ub3RrdG9uYWRhL2doLTM5MjYtbXNncGFjay1k ZWNvZGUtcmV0dmFsLWN0eXBlIGJyYW5jaCB0byBlYXNlCj5jaGVycnktcGlja2luZy4KPgo+TWFz aGEsIHBsZWFzZSwgbG9vayBpbnRvIHByb3Bvc2VkIGNoYW5nZXMgYW5kIHNxdWFzaCAnRklYVVAn IGNvbW1pdHMKPmludG8geW91ciBwYXRjaCAoaWYgeW91J3JlIGFncmVlIHdpdGggdGhlbSkuCj4K PkFzaWRlIG9mIHR3byBmaXh1cHMgSSBtYWRlIGEgZm9sbG93IHVwIHBhdGNoIHRoYXQgY2hhbmdl cyBtc2dwYWNrCj5iZWhhdmlvdXIgaXMgdGhlIHNhbWUgd2F5IGFzIHlvdSBjaGFuZ2VkIG1zZ3Bh Y2tmZmkuIFBsZWFzZSwgbG9vayBpbnRvCj5pdCB0b28gYW5kIGlmIHlvdSdyZSBhZ3JlZSBhZGQg aXQgb24gdG9wIG9mIHlvdXIgYnJhbmNoIHRvbyAoYnV0IGFzIGEKPnNlcGFyYXRlIGNvbW1pdCku Cj4KPlRoZW4sIEkgdGhpbmsgc29tZWJvZHkgZWxzZSBzaG91bGQgbG9vayBpbnRvIHRoZSBwYXRj aHNldC4gSSBwcm9wb3NlIHRvCj5zZW5kIGl0IHRvIFZsYWQgKGJlY2F1c2UgaGUgaXMgdGhlIGF1 dGhvciBvZiA0NTNmZmYyYikuIFBsZWFzZSwgbGVhdmUgbWUKPmluIENDIHdoZW4gd2lsbCBzZW5k IHRoZSBuZXcgdmVyc2lvbihzKSBvZiB0aGUgcGF0Y2hzZXQuCj4KPldCUiwgQWxleGFuZGVyIFR1 cmVua28uCj4KPi0tLS0KPgo+KFRoZSBvcmlnaW5hbCBwYXRjaCBmcm9tCj5lbGphc2htL2doLTM5 MjYtbXNncGFja2ZmaS5kZWNvZGUtYXNzaWdubWVudC10by1idWYucnBvcy4pCj4KPmNvbW1pdCA1 YThmNDUwNGM4ZjA5ZmY4NTMyZGQyOWRhODU4ODViZjcwYWJkNTNiCj5BdXRob3I6IE1hcmlhIDwg bWFyaWFubmVsaWFzaEBnbWFpbC5jb20gPgo+RGF0ZTogVGh1IFNlcCAxMiAxNjo1NTo1MyAyMDE5 ICswMzAwCj4KPsKgwqDCoMKgbXNncGFja2ZmaS5kZWNvZGUgY2FuIG5vdyBiZSBhc3NpZ25lZCB0 byBidWYucnBvcwo+wqDCoMKgwqAKPsKgwqDCoMKgRnVuY3Rpb24gZGVjb2RlIG9mIG1vZHVsZSBt c2dwYWNrZmZpIHdhcyBwYXNzaW5nCj7CoMKgwqDCoHZhbHVlIG9mIHR5cGUgY29uc3QgdW5zaWdu ZWQgY2hhciAqIHRvIGEgQyBmdW5jdGlvbgo+wqDCoMKgwqB0aGF0IGFjY2VwdHMgYXJndW1lbnRz IG9mIHR5cGUgY29uc3QgY2hhciAqLgo+wqDCoMKgwqAKPsKgwqDCoMKgQ2xvc2VzICMzOTI2Cj4K PmRpZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9tc2dwYWNrZmZp Lmx1YQo+aW5kZXggNTMzMWRjNzVmLi4zNGIyMmZiYjIgMTAwNjQ0Cj4tLS0gYS9zcmMvbHVhL21z Z3BhY2tmZmkubHVhCj4rKysgYi9zcmMvbHVhL21zZ3BhY2tmZmkubHVhCj5AQCAtMTAsNiArMTAs NyBAQCBsb2NhbCB1aW50MTZfcHRyX3QgPSBmZmkudHlwZW9mKCd1aW50MTZfdCAqJykKPsKgbG9j YWwgdWludDMyX3B0cl90ID0gZmZpLnR5cGVvZigndWludDMyX3QgKicpCj7CoGxvY2FsIHVpbnQ2 NF9wdHJfdCA9IGZmaS50eXBlb2YoJ3VpbnQ2NF90IConKQo+wqBsb2NhbCBjb25zdF9jaGFyX3B0 cl90ID0gZmZpLnR5cGVvZignY29uc3QgY2hhciAqJykKPitsb2NhbCBjaGFyX3B0cl90ID0gZmZp LnR5cGVvZignY2hhciAqJykKPsKgCj7CoGZmaS5jZGVmKFtbCj7CoGNoYXIgKgo+QEAgLTYwNiwx MyArNjA3LDE0IEBAIGxvY2FsIGZ1bmN0aW9uIGRlY29kZV91bmNoZWNrZWQoc3RyLCBvZmZzZXQp Cj7CoMKgwqDCoMKgwqDCoMKgwqBidWZwWzBdID0gYnVmICsgb2Zmc2V0IC0gMQo+wqDCoMKgwqDC oMKgwqDCoMKgbG9jYWwgciA9IGRlY29kZV9yKGJ1ZnApCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1 cm4gciwgYnVmcFswXSAtIGJ1ZiArIDEKPi0gZWxzZWlmIGZmaS5pc3R5cGUoY29uc3RfY2hhcl9w dHJfdCwgc3RyKSB0aGVuCj4rIGVsc2VpZiBmZmkuaXN0eXBlKGNvbnN0X2NoYXJfcHRyX3QsIHN0 cikgb3IKPisgZmZpLmlzdHlwZShjaGFyX3B0cl90LCBzdHIpIHRoZW4KPsKgwqDCoMKgwqDCoMKg wqDCoGJ1ZnBbMF0gPSBzdHIKPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHIgPSBkZWNvZGVfcihi dWZwKQo+LSByZXR1cm4gciwgYnVmcFswXQo+KyByZXR1cm4gciwgZmZpLmNhc3QoZmZpLnR5cGVv ZihzdHIpLCBidWZwWzBdKQo+wqDCoMKgwqDCoGVsc2UKPsKgwqDCoMKgwqDCoMKgwqDCoGVycm9y KCJtc2dwYWNrZmZpLmRlY29kZV91bmNoZWNrZWQoc3RyLCBvZmZzZXQpIC0+IHJlcywgbmV3X29m ZnNldCB8ICIuLgo+LSAibXNncGFja2ZmaS5kZWNvZGVfdW5jaGVja2VkKGNvbnN0IGNoYXIgKmJ1 ZikgLT4gcmVzLCBuZXdfYnVmIikKPisgIm1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZChbY29u c3RdIGNoYXIgKmJ1ZikgLT4gcmVzLCBuZXdfYnVmIikKPsKgwqDCoMKgwqBlbmQKPsKgZW5kCj7C oAo+ZGlmZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhIGIvdGVzdC9h cHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPmluZGV4IDM2YWMyNmI3ZS4uYzQyNzZlYzQzIDEw MDc1NQo+LS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPisrKyBiL3Rlc3Qv YXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhCj5AQCAtNCw2ICs0LDggQEAgcGFja2FnZS5wYXRo ID0gImx1YS8/Lmx1YTsiLi5wYWNrYWdlLnBhdGgKPsKgCj7CoGxvY2FsIHRhcCA9IHJlcXVpcmUo J3RhcCcpCj7CoGxvY2FsIGNvbW1vbiA9IHJlcXVpcmUoJ3NlcmlhbGl6ZXJfdGVzdCcpCj4rbG9j YWwgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykKPitsb2NhbCBmZmkgPSByZXF1aXJlKCdmZmkn KQo+wqAKPsKgbG9jYWwgZnVuY3Rpb24gaXNfbWFwKHMpCj7CoMKgwqDCoMKgbG9jYWwgYiA9IHN0 cmluZy5ieXRlKHN0cmluZy5zdWIocywgMSwgMSkpCj5AQCAtMzUsNiArMzcsMjMgQEAgbG9jYWwg ZnVuY3Rpb24gdGVzdF9vZmZzZXRzKHRlc3QsIHMpCj7CoMKgwqDCoMKgdGVzdDpvayhub3QgcGNh bGwocy5kZWNvZGUsIGR1bXAsIG9mZnNldCksICJpbnZhbGlkIG9mZnNldCIpCj7CoGVuZAo+wqAK Pitsb2NhbCBmdW5jdGlvbiB0ZXN0X3R5cGVzKHRlc3QsIHMpCj4rIHRlc3Q6cGxhbigyKQo+KyAt LSBnaC0zOTI2OiBkZWNvZGUgcmVzdWx0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBidWZmZXIucnBv cwo+KyBsb2NhbCBlbmNvZGVkX2RhdGEgPSBzLmVuY29kZSgwKQo+KyBsb2NhbCBsZW4gPSBlbmNv ZGVkX2RhdGE6bGVuKCkKPisgbG9jYWwgYnVmID0gYnVmZmVyLmlidWYoKQo+KyBidWY6cmVzZXJ2 ZShsZW4pCj4rIGxvY2FsIHAgPSBidWY6YWxsb2MobGVuKQo+KyBmZmkuY29weShwLCBlbmNvZGVk X2RhdGEsIGxlbikKPisgbG9jYWwgXywgbmV3X2J1ZiA9IHMuZGVjb2RlKGZmaS5jYXN0KHAsICdj b25zdCBjaGFyIConKSkKPisgdGVzdDppc2NkYXRhKG5ld19idWYsICdjb25zdCBjaGFyIConLCAn Y2RhdGEgY29uc3QgY2hhciAqIHR5cGUnKQo+KyBfLCBuZXdfYnVmID0gcy5kZWNvZGUocCkKPisg dGVzdDppc2NkYXRhKG5ld19idWYsICdjaGFyIConLCAnY2RhdGEgY2hhciAqIHR5cGUnKQo+KyBi dWYucnBvcyA9IG5ld19idWYKPisgYnVmOnJlY3ljbGUoKQo+K2VuZAo+Kwo+wqBsb2NhbCBmdW5j dGlvbiB0ZXN0X290aGVyKHRlc3QsIHMpCj7CoMKgwqDCoMKgdGVzdDpwbGFuKDI0KQo+wqDCoMKg wqDCoGxvY2FsIGJ1ZiA9IHN0cmluZy5jaGFyKDB4OTMsIDB4NmUsIDB4Y2IsIDB4NDIsIDB4MmIs IDB4ZWQsIDB4MzAsIDB4NDcsCj5AQCAtMTE3LDcgKzEzNiw3IEBAIGVuZAo+wqAKPsKgdGFwLnRl c3QoIm1zZ3BhY2tmZmkiLCBmdW5jdGlvbih0ZXN0KQo+wqDCoMKgwqDCoGxvY2FsIHNlcmlhbGl6 ZXIgPSByZXF1aXJlKCdtc2dwYWNrZmZpJykKPi0gdGVzdDpwbGFuKDEwKQo+KyB0ZXN0OnBsYW4o MTEpCj7CoMKgwqDCoMKgdGVzdDp0ZXN0KCJ1bnNpZ25lZCIsIGNvbW1vbi50ZXN0X3Vuc2lnbmVk LCBzZXJpYWxpemVyKQo+wqDCoMKgwqDCoHRlc3Q6dGVzdCgic2lnbmVkIiwgY29tbW9uLnRlc3Rf c2lnbmVkLCBzZXJpYWxpemVyKQo+wqDCoMKgwqDCoHRlc3Q6dGVzdCgiZG91YmxlIiwgY29tbW9u LnRlc3RfZG91YmxlLCBzZXJpYWxpemVyKQo+QEAgLTEzMCw0ICsxNDksNSBAQCB0YXAudGVzdCgi bXNncGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpCj7CoMKgwqDCoMKgLS10ZXN0OnRlc3QoInVjZGF0 YSIsIGNvbW1vbi50ZXN0X3VjZGF0YSwgc2VyaWFsaXplcikKPsKgwqDCoMKgwqB0ZXN0OnRlc3Qo Im9mZnNldHMiLCB0ZXN0X29mZnNldHMsIHNlcmlhbGl6ZXIpCj7CoMKgwqDCoMKgdGVzdDp0ZXN0 KCJvdGhlciIsIHRlc3Rfb3RoZXIsIHNlcmlhbGl6ZXIpCj4rIHRlc3Q6dGVzdCgidHlwZXMiLCB0 ZXN0X3R5cGVzLCBzZXJpYWxpemVyKQo+wqBlbmQpCj4KPi0tLS0KPgo+Y29tbWl0IDZjOTVkOGM0 YzA0ZTU2Mjg4ZGZlYWNlZGUwYmMyNDY4YWEyOTJhNmQKPkF1dGhvcjogQWxleGFuZGVyIFR1cmVu a28gPCBhbGV4YW5kZXIudHVyZW5rb0B0YXJhbnRvb2wub3JnID4KPkRhdGU6IFdlZCBOb3YgNiAw MTozNjoxNyAyMDE5ICswMzAwCj4KPsKgwqDCoMKgRklYVVA6IG1zZ3BhY2tmZmkuZGVjb2RlIGNh biBub3cgYmUgYXNzaWduZWQgdG8gYnVmLnJwb3MKPsKgwqDCoMKgCj7CoMKgwqDCoEFkZGVkIGEg bm90ZSB0aGF0IGZmaS5pc3R5cGUoKSBpZ25vcmVzIHRoZSBjb25zdCBxdWFsaWZpZXIgYW5kIGNo YW5nZWQKPsKgwqDCoMKgdGhlIGNvZGUgdG8gbWFrZSBpdCBtb3JlIGNsZWFyLgo+wqDCoMKgwqAK PsKgwqDCoMKgU2F2ZWQgYW4gYXJndW1lbnQgY2RhdGEgdHlwZSB0byBhIGxvY2FsIHZhcmlhYmxl IHRvIG1ha2UgdGhlIGxvZ2ljCj7CoMKgwqDCoCdyZXR1cm4gYSBwb2ludGVyIG9mIHRoZSBzYW1l IHR5cGUgYXMgcGFzc2VkIG9uZScgbW9yZSBjbGVhci4KPsKgwqDCoMKgCj7CoMKgwqDCoE5vIGJl aGF2aW91ciBjaGFuZ2VzLgo+Cj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9tc2dwYWNrZmZpLmx1YSBi L3NyYy9sdWEvbXNncGFja2ZmaS5sdWEKPmluZGV4IDM0YjIyZmJiMi4uYmIyNzQ3ZjgzIDEwMDY0 NAo+LS0tIGEvc3JjL2x1YS9tc2dwYWNrZmZpLmx1YQo+KysrIGIvc3JjL2x1YS9tc2dwYWNrZmZp Lmx1YQo+QEAgLTksNyArOSw2IEBAIGxvY2FsIHVpbnQ4X3B0cl90ID0gZmZpLnR5cGVvZigndWlu dDhfdCAqJykKPsKgbG9jYWwgdWludDE2X3B0cl90ID0gZmZpLnR5cGVvZigndWludDE2X3QgKicp Cj7CoGxvY2FsIHVpbnQzMl9wdHJfdCA9IGZmaS50eXBlb2YoJ3VpbnQzMl90IConKQo+wqBsb2Nh bCB1aW50NjRfcHRyX3QgPSBmZmkudHlwZW9mKCd1aW50NjRfdCAqJykKPi1sb2NhbCBjb25zdF9j aGFyX3B0cl90ID0gZmZpLnR5cGVvZignY29uc3QgY2hhciAqJykKPsKgbG9jYWwgY2hhcl9wdHJf dCA9IGZmaS50eXBlb2YoJ2NoYXIgKicpCj7CoAo+wqBmZmkuY2RlZihbWwo+QEAgLTYwMywxNSAr NjAyLDE3IEBAIGVuZAo+wqBsb2NhbCBmdW5jdGlvbiBkZWNvZGVfdW5jaGVja2VkKHN0ciwgb2Zm c2V0KQo+wqDCoMKgwqDCoGlmIHR5cGUoc3RyKSA9PSAic3RyaW5nIiB0aGVuCj7CoMKgwqDCoMKg wqDCoMKgwqBvZmZzZXQgPSBjaGVja19vZmZzZXQob2Zmc2V0LCAjc3RyKQo+LSBsb2NhbCBidWYg PSBmZmkuY2FzdChjb25zdF9jaGFyX3B0cl90LCBzdHIpCj4rIGxvY2FsIGJ1ZiA9IGZmaS5jYXN0 KGNoYXJfcHRyX3QsIHN0cikKPsKgwqDCoMKgwqDCoMKgwqDCoGJ1ZnBbMF0gPSBidWYgKyBvZmZz ZXQgLSAxCj7CoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCByID0gZGVjb2RlX3IoYnVmcCkKPsKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiByLCBidWZwWzBdIC0gYnVmICsgMQo+LSBlbHNlaWYgZmZpLmlz dHlwZShjb25zdF9jaGFyX3B0cl90LCBzdHIpIG9yCj4tIGZmaS5pc3R5cGUoY2hhcl9wdHJfdCwg c3RyKSB0aGVuCj4rIGVsc2VpZiBmZmkuaXN0eXBlKGNoYXJfcHRyX3QsIHN0cikgdGhlbgo+KyAt LSBOb3RlOiBmZmkuaXN0eXBlKCkgaWdub3JlcyB0aGUgY29uc3QgcXVhbGlmaWVyLCBzbyBib3Ro Cj4rIC0tIChjaGFyICopIGFuZCAoY29uc3QgY2hhciAqKSBidWZmZXJzIGFyZSB2YWxpZC4KPsKg wqDCoMKgwqDCoMKgwqDCoGJ1ZnBbMF0gPSBzdHIKPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHIg PSBkZWNvZGVfcihidWZwKQo+LSByZXR1cm4gciwgZmZpLmNhc3QoZmZpLnR5cGVvZihzdHIpLCBi dWZwWzBdKQo+KyBsb2NhbCBjdHlwZSA9IGZmaS50eXBlb2Yoc3RyKQo+KyByZXR1cm4gciwgZmZp LmNhc3QoY3R5cGUsIGJ1ZnBbMF0pCj7CoMKgwqDCoMKgZWxzZQo+wqDCoMKgwqDCoMKgwqDCoMKg ZXJyb3IoIm1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZChzdHIsIG9mZnNldCkgLT4gcmVzLCBu ZXdfb2Zmc2V0IHwgIi4uCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAibXNncGFja2Zm aS5kZWNvZGVfdW5jaGVja2VkKFtjb25zdF0gY2hhciAqYnVmKSAtPiByZXMsIG5ld19idWYiKQo+ Cj4tLS0tCj4KPmNvbW1pdCBmMWRlZTEzOTkxZDQzYzM3ZDYyNmU5MTYwMWFiNTBlMzRlYzIzMDNi Cj5BdXRob3I6IEFsZXhhbmRlciBUdXJlbmtvIDwgYWxleGFuZGVyLnR1cmVua29AdGFyYW50b29s Lm9yZyA+Cj5EYXRlOiBXZWQgTm92IDYgMDE6NDI6MjggMjAxOSArMDMwMAo+Cj7CoMKgwqDCoEZJ WFVQOiBtc2dwYWNrZmZpLmRlY29kZSBjYW4gbm93IGJlIGFzc2lnbmVkIHRvIGJ1Zi5ycG9zCj7C oMKgwqDCoAo+wqDCoMKgwqBSZXdyaXR0ZW4gdGhlIHRlc3QgY2FzZS4gVGhlcmUgYXJlIHNldmVy YWwgcmVhc29ucyB0byBkbyBzby4KPsKgwqDCoMKgCj7CoMKgwqDCoEZpcnN0LCB0aGUgcHJldmlv dXMgdGVzdCBjYXNlIGltcGxlbWVudGF0aW9uIHVzZXMgdGVzdDppc2NkYXRhKCkgd2hpY2gKPsKg wqDCoMKgaXMgbm90IHN1ZmZpY2llbnQgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGNvbnN0IHF1YWxp ZmllciBpcyBhcHBsaWVkIHRvIGEKPsKgwqDCoMKgY2RhdGEgdHlwZSwgYmVjYXVzZSBvZiB1c2lu ZyBmZmkuaXN0eXBlKCkgdW5kZXIgaG9vZCwgd2hpY2ggaWdub3Jlcwo+wqDCoMKgwqAnY29uc3Qn Lgo+wqDCoMKgwqAKPsKgwqDCoMKgU2Vjb25kLCB0aGUgcHJldmlvdXMgdGVzdCBjYXNlIHdhcyBp bnZhbGlkLCBiZWNhdXNlIG9mIHdyb25nIG9yZGVyIG9mCj7CoMKgwqDCoGZmaS5jYXN0KCkgYXJn dW1lbnRzLgo+wqDCoMKgwqAKPsKgwqDCoMKgVGhpcmQsIHdlIGRvbid0IG5lZWQgYSByZWFsIGli dWYgb2JqZWN0LCBmZmkuY2FzdChjdHlwZSwgJ2Egc3RyaW5nJykgaXMKPsKgwqDCoMKgZW5vdWdo LiBUaGlzIGFsbG93cyB0byBzaW1wbGlmeSB0ZXN0IGNhc2VzLgo+wqDCoMKgwqAKPsKgwqDCoMKg Rm91cnRoLCB0aGUgdGVzdCBjYXNlIGlzIHJld3JpdHRlbiBpbiBhIGRlY2xhcmF0aXZlIG1hbm5l ciB0byByZWR1Y2UKPsKgwqDCoMKgY29kZSBkdXBsaWNhdGlvbi4gVGhpcyBhbHNvIGFsbG93cyB0 byBleHBhbmQgaXQgdy9vIG1hbnkgY2hhbmdlcyBmb3IKPsKgwqDCoMKgbXNncGFjay5kZWNvZGUo KSBmdW5jdGlvbiBpbiB0aGUgZm9sbG93aW5nIGNvbW1pdC4KPsKgwqDCoMKgCj7CoMKgwqDCoEkg bGVmdCBvbmx5IG1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZCgpIGNhc2VzLiBBIGJpdCBjb250 ZXh0IGlzIG5lZWRlZAo+wqDCoMKgwqB0byBkZXNjcmliZSB3aHkuCj7CoMKgwqDCoAo+wqDCoMKg wqBtc2dwYWNrLmRlY29kZSgpIGFjY2VwdHMgdHdvIGFyZ3VtZW50czogYSBidWZmZXIgYW5kIGl0 cyBzaXplIChvciBhCj7CoMKgwqDCoHN0cmluZyBhbmQgYW4gb2Zmc2V0LCBidXQgaXQgaXMgb3V0 IG9mIHNjb3BlIGhlcmUpLgo+wqDCoMKgwqBtc2dwYWNrLmRlY29kZV91bmNoZWNrZWQoKSBhY2Nl cHRzIG9ubHkgYSBidWZmZXIgKG9yLCBhZ2FpbiwgYSBzdHJpbmcKPsKgwqDCoMKgYW5kIGFuIG9m ZnNldCkgYW5kIGRvZXMgbm90IHZlcmlmeSB3aGV0aGVyIHdlIHBlcmZvcm0gcmVhZHMgb3V0IG9m IHRoZQo+wqDCoMKgwqBidWZmZXIgYm91bmRzLiBTZWUgIzI3NTUgZm9yIHRoZSBmb3JtYWwgZGVz Y3JpcHRpb24gb2YgdGhlIEFQSS4KPsKgwqDCoMKgCj7CoMKgwqDCoG1zZ3BhY2tmZmkgbW9kdWxl IGNvbnRhaW5zIG9ubHkgbXNncGFja2ZmaS5kZWNvZGVfdW5jaGVja2VkKCkuCj7CoMKgwqDCoG1z Z3BhY2tmZmkuZGVjb2RlKCkgaXMganVzdCBhbGlhcyBmb3IgZGVjb2RlX3VuY2hlY2tlZDogaXQg ZG9lcyBub3QKPsKgwqDCoMKgdmVyaWZ5IGEgYnVmZmVyIGJvdW5kcy4gQUZBSVUgdGhlIGFsaWFz IHdhcyBhZGRlZCB0byB1bmlmeQo+wqDCoMKgwqB0ZXN0aW5nIGNvZGUgZm9yIG1zZ3BhY2sgYW5k IG1zZ3BhY2tmZmkgbW9kdWxlcy4KPsKgwqDCoMKgCj7CoMKgwqDCoE91ciB3ZWJzaXRlIGhhcyBu byBkb2N1bWVudGF0aW9uIGFib3V0IG1zZ3BhY2tmZmkuIEkgZG9uJ3Qgc3VyZSB3aGV0aGVyCj7C oMKgwqDCoGl0cyBBUEkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgcHVibGljIEFQSS4gSG93ZXZl ciBpZiB3ZSdsbCBtYWtlIHRoZQo+wqDCoMKgwqBtb2R1bGUgcHVibGljLCB3ZSdsbCBuZWVkIHRv IGltcGxlbWVudCBidWZmZXIgYm91bmQgY2hlY2suIEFuZCBvbmx5IHRoZW4KPsKgwqDCoMKgc3Rh dGUgdGhhdCB0aGUgQVBJIGlzIHN0YWJsZSBhbmQgY2FuIGJlIHVzZWQgYnkgdXNlcnMuCj7CoMKg wqDCoAo+wqDCoMKgwqBJZiB3ZSBkb24ndCBjb25zaWRlciBtc2dwYWNrZmZpLmRlY29kZSgpIGFz IHB1YmxpYyBmdW5jdGlvbiBmb3Igbm93LCBpdAo+wqDCoMKgwqBtYWtlIHNlbnNlIHRvIGxlZnQg aXQgdW50ZXN0ZWQgd2hlbiBhIHRlc3RpbmcgY29kZSBpcyBub3QgdW5pZmllZAo+wqDCoMKgwqBi ZXR3ZWVuIG1zZ3BhY2sgYW5kIG1zZ3BhY2tmZmkgbW9kdWxlcy4KPsKgwqDCoMKgCj7CoMKgwqDC oEhvd2V2ZXIgSSB1bmlmaWVkIHRoaXMgdGVzdGluZyBjb2RlIGZvciBib3RoIG1vZHVsZXMgaW4g dGhlIGZvbGxvd2luZwo+wqDCoMKgwqBjb21taXQsIHNvIGl0IHdpbGwgYmUgdGVzdGVkIGFueXdh eTogYnV0IGluIHRoZSBjb21taXQgd2hlcmUgaXQgbG9va3MKPsKgwqDCoMKgcmVhc29uYWJsZS4K Pgo+ZGlmZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhIGIvdGVzdC9h cHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPmluZGV4IGM0Mjc2ZWM0My4uZTY0MjI4ZTRkIDEw MDc1NQo+LS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPisrKyBiL3Rlc3Qv YXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhCj5AQCAtMzcsMjMgKzM3LDYgQEAgbG9jYWwgZnVu Y3Rpb24gdGVzdF9vZmZzZXRzKHRlc3QsIHMpCj7CoMKgwqDCoMKgdGVzdDpvayhub3QgcGNhbGwo cy5kZWNvZGUsIGR1bXAsIG9mZnNldCksICJpbnZhbGlkIG9mZnNldCIpCj7CoGVuZAo+wqAKPi1s b2NhbCBmdW5jdGlvbiB0ZXN0X3R5cGVzKHRlc3QsIHMpCj4tIHRlc3Q6cGxhbigyKQo+LSAtLSBn aC0zOTI2OiBkZWNvZGUgcmVzdWx0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBidWZmZXIucnBvcwo+ LSBsb2NhbCBlbmNvZGVkX2RhdGEgPSBzLmVuY29kZSgwKQo+LSBsb2NhbCBsZW4gPSBlbmNvZGVk X2RhdGE6bGVuKCkKPi0gbG9jYWwgYnVmID0gYnVmZmVyLmlidWYoKQo+LSBidWY6cmVzZXJ2ZShs ZW4pCj4tIGxvY2FsIHAgPSBidWY6YWxsb2MobGVuKQo+LSBmZmkuY29weShwLCBlbmNvZGVkX2Rh dGEsIGxlbikKPi0gbG9jYWwgXywgbmV3X2J1ZiA9IHMuZGVjb2RlKGZmaS5jYXN0KHAsICdjb25z dCBjaGFyIConKSkKPi0gdGVzdDppc2NkYXRhKG5ld19idWYsICdjb25zdCBjaGFyIConLCAnY2Rh dGEgY29uc3QgY2hhciAqIHR5cGUnKQo+LSBfLCBuZXdfYnVmID0gcy5kZWNvZGUocCkKPi0gdGVz dDppc2NkYXRhKG5ld19idWYsICdjaGFyIConLCAnY2RhdGEgY2hhciAqIHR5cGUnKQo+LSBidWYu cnBvcyA9IG5ld19idWYKPi0gYnVmOnJlY3ljbGUoKQo+LWVuZAo+LQo+wqBsb2NhbCBmdW5jdGlv biB0ZXN0X290aGVyKHRlc3QsIHMpCj7CoMKgwqDCoMKgdGVzdDpwbGFuKDI0KQo+wqDCoMKgwqDC oGxvY2FsIGJ1ZiA9IHN0cmluZy5jaGFyKDB4OTMsIDB4NmUsIDB4Y2IsIDB4NDIsIDB4MmIsIDB4 ZWQsIDB4MzAsIDB4NDcsCj5AQCAtMTM0LDYgKzExNyw0NSBAQCBsb2NhbCBmdW5jdGlvbiB0ZXN0 X290aGVyKHRlc3QsIHMpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbmNv ZGVfbWF4X2RlcHRoID0gbWF4X2RlcHRofSkKPsKgZW5kCj7CoAo+Ky0tIGdoLTM5MjY6IEVuc3Vy ZSB0aGF0IGEgcmV0dXJuZWQgcG9pbnRlciBoYXMgdGhlIHNhbWUgY2RhdGEgdHlwZQo+Ky0tIGFz IHBhc3NlZCBhcmd1bWVudC4KPitsb2NhbCBmdW5jdGlvbiB0ZXN0X2RlY29kZV9idWZmZXIodGVz dCwgcykKPisgbG9jYWwgY2FzZXMgPSB7Cj4rIHsKPisgJ2RlY29kZV91bmNoZWNrZWQoY2RhdGE8 Y29uc3QgY2hhciAqPiknLAo+KyBkYXRhID0gZmZpLmNhc3QoJ2NvbnN0IGNoYXIgKicsICdceDkz XHgwMVx4MDJceDAzJyksCj4rIGV4cF9yZXMgPSB7MSwgMiwgM30sCj4rIGV4cF9yZXdpbmQgPSA0 LAo+KyB9LAo+KyB7Cj4rICdkZWNvZGVfdW5jaGVja2VkKGNkYXRhPGNoYXIgKj4pJywKPisgZGF0 YSA9IGZmaS5jYXN0KCdjaGFyIConLCAnXHg5M1x4MDFceDAyXHgwMycpLAo+KyBleHBfcmVzID0g ezEsIDIsIDN9LAo+KyBleHBfcmV3aW5kID0gNCwKPisgfSwKPisgfQo+Kwo+KyB0ZXN0OnBsYW4o I2Nhc2VzKQo+Kwo+KyBmb3IgXywgY2FzZSBpbiBpcGFpcnMoY2FzZXMpIGRvCj4rIHRlc3Q6dGVz dChjYXNlWzFdLCBmdW5jdGlvbih0ZXN0KQo+KyB0ZXN0OnBsYW4oNCkKPisgbG9jYWwgcmVzLCBy ZXNfYnVmID0gcy5kZWNvZGVfdW5jaGVja2VkKGNhc2UuZGF0YSkKPisgdGVzdDppc19kZWVwbHko cmVzLCBjYXNlLmV4cF9yZXMsICd2ZXJpZnkgcmVzdWx0JykKPisgbG9jYWwgcmV3aW5kID0gcmVz X2J1ZiAtIGNhc2UuZGF0YQo+KyB0ZXN0OmlzKHJld2luZCwgY2FzZS5leHBfcmV3aW5kLCAndmVy aWZ5IHJlc3VsdGluZyBidWZmZXInKQo+KyAtLSB0ZXN0OmlzY2RhdGEoKSBpcyBub3Qgc3VmZmlj aWVudCBoZXJlLCBiZWNhdXNlIGl0Cj4rIC0tIGlnbm9yZXMgJ2NvbnN0JyBxdWFsaWZpZXIgKGJl Y2F1c2Ugb2YgdXNpbmcKPisgLS0gZmZpLmlzdHlwZSgpKS4KPisgdGVzdDppcyh0eXBlKHJlc19i dWYpLCAnY2RhdGEnLCAndmVyaWZ5IHJlc3VsdGluZyBidWZmZXIgdHlwZScpCj4rIGxvY2FsIGRh dGFfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKGNhc2UuZGF0YSkpCj4rIGxvY2FsIHJlc19i dWZfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKHJlc19idWYpKQo+KyB0ZXN0OmlzKHJlc19i dWZfY3R5cGUsIGRhdGFfY3R5cGUsICd2ZXJpZnkgcmVzdWx0aW5nIGJ1ZmZlciBjdHlwZScpCj4r IGVuZCkKPisgZW5kCj4rZW5kCj4rCj4rCj7CoHRhcC50ZXN0KCJtc2dwYWNrZmZpIiwgZnVuY3Rp b24odGVzdCkKPsKgwqDCoMKgwqBsb2NhbCBzZXJpYWxpemVyID0gcmVxdWlyZSgnbXNncGFja2Zm aScpCj7CoMKgwqDCoMKgdGVzdDpwbGFuKDExKQo+QEAgLTE0OSw1ICsxNzEsNSBAQCB0YXAudGVz dCgibXNncGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpCj7CoMKgwqDCoMKgLS10ZXN0OnRlc3QoInVj ZGF0YSIsIGNvbW1vbi50ZXN0X3VjZGF0YSwgc2VyaWFsaXplcikKPsKgwqDCoMKgwqB0ZXN0OnRl c3QoIm9mZnNldHMiLCB0ZXN0X29mZnNldHMsIHNlcmlhbGl6ZXIpCj7CoMKgwqDCoMKgdGVzdDp0 ZXN0KCJvdGhlciIsIHRlc3Rfb3RoZXIsIHNlcmlhbGl6ZXIpCj4tIHRlc3Q6dGVzdCgidHlwZXMi LCB0ZXN0X3R5cGVzLCBzZXJpYWxpemVyKQo+KyB0ZXN0OnRlc3QoImRlY29kZV9idWZmZXIiLCB0 ZXN0X2RlY29kZV9idWZmZXIsIHNlcmlhbGl6ZXIpCj7CoGVuZCkKPgo+LS0tLQo+Cj5jb21taXQg Y2M1MGI3MTcyMGE0NmVkOTQ3YmJkZjcxZDllM2Q2YzZhZGUxMzcyYQo+QXV0aG9yOiBBbGV4YW5k ZXIgVHVyZW5rbyA8IGFsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmcgPgo+RGF0ZTogV2Vk IE5vdiA2IDAyOjA1OjAzIDIwMTkgKzAzMDAKPgo+wqDCoMKgwqBsdWE6IGRvbid0IG1vZGlmeSBw b2ludGVyIHR5cGUgaW4gbXNncGFjay5kZWNvZGUqCj7CoMKgwqDCoAo+wqDCoMKgwqBtc2dwYWNr ZmZpLmRlY29kZV91bmNoZWNrZWQoW2NvbnN0XSBjaGFyICopIHJldHVybnMgdHdvIHZhbHVlczog YQo+wqDCoMKgwqBkZWNvZGVkIHJlc3VsdCBhbmQgYSBuZXcgcG9pbnRlciB3aXRoaW4gcGFzc2Vk IGJ1ZmZlci4gQWZ0ZXIgIzM5MjYgYQo+wqDCoMKgwqBjZGF0YSB0eXBlIG9mIHRoZSByZXR1cm5l ZCBwb2ludGVyIGZvbGxvd3MgYSB0eXBlIG9mIHBhc3NlZCBidWZmZXIuCj7CoMKgwqDCoAo+wqDC oMKgwqBUaGlzIGNvbW1pdCBtb2RpZmllcyBiZWhhdmlvdXIgb2YgbXNncGFjayBtb2R1bGUgaW4g dGhlIHNhbWUgd2F5LiBUaGUKPsKgwqDCoMKgZm9sbG93aW5nIGZ1bmN0aW9ucyBub3cgcmV0dXJu cyBjZGF0YTxjaGFyICo+IG9yIGNkYXRhPGNvbnN0IGNoYXIgKj4KPsKgwqDCoMKgZGVwZW5kaW5n IG9mIGl0cyBhcmd1bWVudDoKPsKgwqDCoMKgCj7CoMKgwqDCoCogbXNncGFjay5kZWNvZGUoY2Rh dGE8W2NvbnN0XSBjaGFyICo+LCBudW1iZXIpCj7CoMKgwqDCoCogbXNncGFjay5kZWNvZGVfdW5j aGVja2VkKGNkYXRhPFtjb25zdF0gY2hhciAqPikKPsKgwqDCoMKgKiBtc2dwYWNrLmRlY29kZV9h cnJheV9oZWFkZXIoY2RhdGE8W2NvbnN0XSBjaGFyICo+LCBudW1iZXIpCj7CoMKgwqDCoCogbXNn cGFjay5kZWNvZGVfbWFwX2hlYWRlcihjZGF0YTxbY29uc3RdIGNoYXIgKj4sIG51bWJlcikKPsKg wqDCoMKgCj7CoMKgwqDCoEZvbGxvd3MgdXAgIzM5MjYuCj4KPmRpZmYgLS1naXQgYS9zcmMvbHVh L21zZ3BhY2suYyBiL3NyYy9sdWEvbXNncGFjay5jCj5pbmRleCBlZjMxNWI2OTIuLmVkYmMxNWI3 MiAxMDA2NDQKPi0tLSBhL3NyYy9sdWEvbXNncGFjay5jCj4rKysgYi9zcmMvbHVhL21zZ3BhY2su Ywo+QEAgLTM3MCw3ICszNzAsOCBAQCBzdGF0aWMgaW50Cj7CoGx1YV9tc2dwYWNrX2RlY29kZV9j ZGF0YShsdWFfU3RhdGUgKkwsIGJvb2wgY2hlY2spCj7CoHsKPsKgIGNvbnN0IGNoYXIgKmRhdGE7 Cj4tIGlmIChsdWFMX2NoZWNrY29uc3RjaGFyKEwsIDEsICZkYXRhKSAhPSAwKSB7Cj4rIHVpbnQz Ml90IGNkYXRhX3R5cGU7Cj4rIGlmIChsdWFMX2NoZWNrY29uc3RjaGFyKEwsIDEsICZkYXRhLCAm Y2RhdGFfdHlwZSkgIT0gMCkgewo+wqAgcmV0dXJuIGx1YUxfZXJyb3IoTCwgIm1zZ3BhY2suZGVj b2RlOiAiCj7CoCAiYSBMdWEgc3RyaW5nIG9yICdjaGFyIConIGV4cGVjdGVkIik7Cj7CoCB9Cj5A QCAtMzg2LDcgKzM4Nyw3IEBAIGx1YV9tc2dwYWNrX2RlY29kZV9jZGF0YShsdWFfU3RhdGUgKkws IGJvb2wgY2hlY2spCj7CoCB9Cj7CoCBzdHJ1Y3QgbHVhTF9zZXJpYWxpemVyICpjZmcgPSBsdWFM X2NoZWNrc2VyaWFsaXplcihMKTsKPsKgIGx1YW1wX2RlY29kZShMLCBjZmcsICZkYXRhKTsKPi0g Kihjb25zdCBjaGFyICoqKWx1YUxfcHVzaGNkYXRhKEwsIENUSURfQ0hBUl9QVFIpID0gZGF0YTsK PisgKihjb25zdCBjaGFyICoqKWx1YUxfcHVzaGNkYXRhKEwsIGNkYXRhX3R5cGUpID0gZGF0YTsK PsKgIHJldHVybiAyOwo+wqB9Cj7CoAo+QEAgLTQ2OCw3ICs0NjksOCBAQCBsdWFfaWJ1Zl9tc2dw YWNrX2RlY29kZShsdWFfU3RhdGUgKkwpCj7CoMKgKi8KPsKgc3RhdGljIGludAo+wqB2ZXJpZnlf ZGVjb2RlX2hlYWRlcl9hcmdzKGx1YV9TdGF0ZSAqTCwgY29uc3QgY2hhciAqZnVuY19uYW1lLAo+ LSBjb25zdCBjaGFyICoqZGF0YV9wLCBwdHJkaWZmX3QgKnNpemVfcCkKPisgY29uc3QgY2hhciAq KmRhdGFfcCwgdWludDMyX3QgKmNkYXRhX3R5cGVfcCwKPisgcHRyZGlmZl90ICpzaXplX3ApCj7C oHsKPsKgIC8qIFZlcmlmeSBhcmd1bWVudHMgY291bnQuICovCj7CoCBpZiAobHVhX2dldHRvcChM KSAhPSAyKQo+QEAgLTQ3Niw3ICs0NzgsOCBAQCB2ZXJpZnlfZGVjb2RlX2hlYWRlcl9hcmdzKGx1 YV9TdGF0ZSAqTCwgY29uc3QgY2hhciAqZnVuY19uYW1lLAo+wqAKPsKgIC8qIFZlcmlmeSBwdHIg dHlwZS4gKi8KPsKgIGNvbnN0IGNoYXIgKmRhdGE7Cj4tIGlmIChsdWFMX2NoZWNrY29uc3RjaGFy KEwsIDEsICZkYXRhKSAhPSAwKQo+KyB1aW50MzJfdCBjZGF0YV90eXBlOwo+KyBpZiAobHVhTF9j aGVja2NvbnN0Y2hhcihMLCAxLCAmZGF0YSwgJmNkYXRhX3R5cGUpICE9IDApCj7CoCByZXR1cm4g bHVhTF9lcnJvcihMLCAiJXM6ICdjaGFyIConIGV4cGVjdGVkIiwgZnVuY19uYW1lKTsKPsKgCj7C oCAvKiBWZXJpZnkgc2l6ZSB0eXBlIGFuZCB2YWx1ZS4gKi8KPkBAIC00ODYsNiArNDg5LDcgQEAg dmVyaWZ5X2RlY29kZV9oZWFkZXJfYXJncyhsdWFfU3RhdGUgKkwsIGNvbnN0IGNoYXIgKmZ1bmNf bmFtZSwKPsKgCj7CoCAqZGF0YV9wID0gZGF0YTsKPsKgICpzaXplX3AgPSBzaXplOwo+KyAqY2Rh dGFfdHlwZV9wID0gY2RhdGFfdHlwZTsKPsKgCj7CoCByZXR1cm4gMDsKPsKgfQo+QEAgLTQ5OSw4 ICs1MDMsOSBAQCBsdWFfZGVjb2RlX2FycmF5X2hlYWRlcihsdWFfU3RhdGUgKkwpCj7CoHsKPsKg IGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSA9ICJtc2dwYWNrLmRlY29kZV9hcnJheV9oZWFkZXIiOwo+ wqAgY29uc3QgY2hhciAqZGF0YTsKPisgdWludDMyX3QgY2RhdGFfdHlwZTsKPsKgIHB0cmRpZmZf dCBzaXplOwo+LSB2ZXJpZnlfZGVjb2RlX2hlYWRlcl9hcmdzKEwsIGZ1bmNfbmFtZSwgJmRhdGEs ICZzaXplKTsKPisgdmVyaWZ5X2RlY29kZV9oZWFkZXJfYXJncyhMLCBmdW5jX25hbWUsICZkYXRh LCAmY2RhdGFfdHlwZSwgJnNpemUpOwo+wqAKPsKgIGlmIChtcF90eXBlb2YoKmRhdGEpICE9IE1Q X0FSUkFZKQo+wqAgcmV0dXJuIGx1YUxfZXJyb3IoTCwgIiVzOiB1bmV4cGVjdGVkIG1zZ3BhY2sg dHlwZSIsIGZ1bmNfbmFtZSk7Cj5AQCAtNTExLDcgKzUxNiw3IEBAIGx1YV9kZWNvZGVfYXJyYXlf aGVhZGVyKGx1YV9TdGF0ZSAqTCkKPsKgIHVpbnQzMl90IGxlbiA9IG1wX2RlY29kZV9hcnJheSgm ZGF0YSk7Cj7CoAo+wqAgbHVhX3B1c2hpbnRlZ2VyKEwsIGxlbik7Cj4tICooY29uc3QgY2hhciAq KikgbHVhTF9wdXNoY2RhdGEoTCwgQ1RJRF9DSEFSX1BUUikgPSBkYXRhOwo+KyAqKGNvbnN0IGNo YXIgKiopIGx1YUxfcHVzaGNkYXRhKEwsIGNkYXRhX3R5cGUpID0gZGF0YTsKPsKgIHJldHVybiAy Owo+wqB9Cj7CoAo+QEAgLTUyNCw4ICs1MjksOSBAQCBsdWFfZGVjb2RlX21hcF9oZWFkZXIobHVh X1N0YXRlICpMKQo+wqB7Cj7CoCBjb25zdCBjaGFyICpmdW5jX25hbWUgPSAibXNncGFjay5kZWNv ZGVfbWFwX2hlYWRlciI7Cj7CoCBjb25zdCBjaGFyICpkYXRhOwo+KyB1aW50MzJfdCBjZGF0YV90 eXBlOwo+wqAgcHRyZGlmZl90IHNpemU7Cj4tIHZlcmlmeV9kZWNvZGVfaGVhZGVyX2FyZ3MoTCwg ZnVuY19uYW1lLCAmZGF0YSwgJnNpemUpOwo+KyB2ZXJpZnlfZGVjb2RlX2hlYWRlcl9hcmdzKEws IGZ1bmNfbmFtZSwgJmRhdGEsICZjZGF0YV90eXBlLCAmc2l6ZSk7Cj7CoAo+wqAgaWYgKG1wX3R5 cGVvZigqZGF0YSkgIT0gTVBfTUFQKQo+wqAgcmV0dXJuIGx1YUxfZXJyb3IoTCwgIiVzOiB1bmV4 cGVjdGVkIG1zZ3BhY2sgdHlwZSIsIGZ1bmNfbmFtZSk7Cj5AQCAtNTM2LDcgKzU0Miw3IEBAIGx1 YV9kZWNvZGVfbWFwX2hlYWRlcihsdWFfU3RhdGUgKkwpCj7CoCB1aW50MzJfdCBsZW4gPSBtcF9k ZWNvZGVfbWFwKCZkYXRhKTsKPsKgCj7CoCBsdWFfcHVzaGludGVnZXIoTCwgbGVuKTsKPi0gKihj b25zdCBjaGFyICoqKSBsdWFMX3B1c2hjZGF0YShMLCBDVElEX0NIQVJfUFRSKSA9IGRhdGE7Cj4r ICooY29uc3QgY2hhciAqKikgbHVhTF9wdXNoY2RhdGEoTCwgY2RhdGFfdHlwZSkgPSBkYXRhOwo+ wqAgcmV0dXJuIDI7Cj7CoH0KPsKgCj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS91dGlscy5jIGIvc3Jj L2x1YS91dGlscy5jCj5pbmRleCA3ZjdiZjQ3NzYuLjhjYjk5MjBlMCAxMDA2NDQKPi0tLSBhL3Ny Yy9sdWEvdXRpbHMuYwo+KysrIGIvc3JjL2x1YS91dGlscy5jCj5AQCAtNDMsOCArNDMsOCBAQCBp bnQgbHVhTF9hcnJheV9tZXRhdGFibGVfcmVmID0gTFVBX1JFRk5JTDsKPsKgCj7CoHN0YXRpYyB1 aW50MzJfdCBDVElEX1NUUlVDVF9JQlVGOwo+wqBzdGF0aWMgdWludDMyX3QgQ1RJRF9TVFJVQ1Rf SUJVRl9QVFI7Cj4tdWludDMyX3QgQ1RJRF9DSEFSX1BUUjsKPi11aW50MzJfdCBDVElEX0NPTlNU X0NIQVJfUFRSOwo+K3N0YXRpYyB1aW50MzJfdCBDVElEX0NIQVJfUFRSOwo+K3N0YXRpYyB1aW50 MzJfdCBDVElEX0NPTlNUX0NIQVJfUFRSOwo+wqB1aW50MzJfdCBDVElEX0RFQ0lNQUw7Cj7CoAo+ wqAKPkBAIC0xMTM1LDcgKzExMzUsOCBAQCBsdWFMX2NoZWNraWJ1ZihzdHJ1Y3QgbHVhX1N0YXRl ICpMLCBpbnQgaWR4KQo+wqB9Cj7CoAo+wqBpbnQKPi1sdWFMX2NoZWNrY29uc3RjaGFyKHN0cnVj dCBsdWFfU3RhdGUgKkwsIGludCBpZHgsIGNvbnN0IGNoYXIgKipyZXMpCj4rbHVhTF9jaGVja2Nv bnN0Y2hhcihzdHJ1Y3QgbHVhX1N0YXRlICpMLCBpbnQgaWR4LCBjb25zdCBjaGFyICoqcmVzLAo+ KyB1aW50MzJfdCAqY2RhdGFfdHlwZV9wKQo+wqB7Cj7CoCBpZiAobHVhX3R5cGUoTCwgaWR4KSAh PSBMVUFfVENEQVRBKQo+wqAgcmV0dXJuIC0xOwo+QEAgLTExNDQsNiArMTE0NSw3IEBAIGx1YUxf Y2hlY2tjb25zdGNoYXIoc3RydWN0IGx1YV9TdGF0ZSAqTCwgaW50IGlkeCwgY29uc3QgY2hhciAq KnJlcykKPsKgIGlmIChjZGF0YV90eXBlICE9IENUSURfQ0hBUl9QVFIgJiYgY2RhdGFfdHlwZSAh PSBDVElEX0NPTlNUX0NIQVJfUFRSKQo+wqAgcmV0dXJuIC0xOwo+wqAgKnJlcyA9IGNkYXRhICE9 IE5VTEwgPyAqKGNvbnN0IGNoYXIgKiopIGNkYXRhIDogTlVMTDsKPisgKmNkYXRhX3R5cGVfcCA9 IGNkYXRhX3R5cGU7Cj7CoCByZXR1cm4gMDsKPsKgfQo+wqAKPmRpZmYgLS1naXQgYS9zcmMvbHVh L3V0aWxzLmggYi9zcmMvbHVhL3V0aWxzLmgKPmluZGV4IGQ5ZmIwNzA0Zi4uMGIzNjcyNzY5IDEw MDY0NAo+LS0tIGEvc3JjL2x1YS91dGlscy5oCj4rKysgYi9zcmMvbHVhL3V0aWxzLmgKPkBAIC03 MSw5ICs3MSw2IEBAIHN0cnVjdCBpYnVmOwo+wqBleHRlcm4gc3RydWN0IGx1YV9TdGF0ZSAqdGFy YW50b29sX0w7Cj7CoGV4dGVybiBzdHJ1Y3QgaWJ1ZiAqdGFyYW50b29sX2x1YV9pYnVmOwo+wqAK Pi1leHRlcm4gdWludDMyX3QgQ1RJRF9DT05TVF9DSEFSX1BUUjsKPi1leHRlcm4gdWludDMyX3Qg Q1RJRF9DSEFSX1BUUjsKPi0KPsKgLyoqIFxjb25kIHB1YmxpYyAqLwo+wqAKPsKgLyoqCj5AQCAt NjM1LDcgKzYzMiw4IEBAIGx1YUxfY2hlY2tpYnVmKHN0cnVjdCBsdWFfU3RhdGUgKkwsIGludCBp ZHgpOwo+wqDCoCogY2hhciBwb2ludGVyLgo+wqDCoCovCj7CoGludAo+LWx1YUxfY2hlY2tjb25z dGNoYXIoc3RydWN0IGx1YV9TdGF0ZSAqTCwgaW50IGlkeCwgY29uc3QgY2hhciAqKnJlcyk7Cj4r bHVhTF9jaGVja2NvbnN0Y2hhcihzdHJ1Y3QgbHVhX1N0YXRlICpMLCBpbnQgaWR4LCBjb25zdCBj aGFyICoqcmVzLAo+KyB1aW50MzJfdCAqY2RhdGFfdHlwZV9wKTsKPsKgCj7CoC8qIHt7eyBIZWxw ZXIgZnVuY3Rpb25zIHRvIGludGVyYWN0IHdpdGggYSBMdWEgaXRlcmF0b3IgZnJvbSBDICovCj7C oAo+ZGlmZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9sdWEvc2VyaWFsaXplcl90ZXN0Lmx1YSBiL3Rl c3QvYXBwLXRhcC9sdWEvc2VyaWFsaXplcl90ZXN0Lmx1YQo+aW5kZXggMTYwOWY3NjhmLi5iM2U5 ZmFjYzAgMTAwNjQ0Cj4tLS0gYS90ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWEK PisrKyBiL3Rlc3QvYXBwLXRhcC9sdWEvc2VyaWFsaXplcl90ZXN0Lmx1YQo+QEAgLTQzMyw2ICs0 MzMsNjQgQEAgbG9jYWwgZnVuY3Rpb24gdGVzdF9kZXB0aCh0ZXN0LCBzKQo+wqDCoMKgwqDCoHMu Y2ZnKHtlbmNvZGVfZGVlcF9hc19uaWwgPSBkZWVwX2FzX25pbCwgZW5jb2RlX21heF9kZXB0aCA9 IG1heF9kZXB0aH0pCj7CoGVuZAo+wqAKPistLSBnaC0zOTI2OiBFbnN1cmUgdGhhdCBhIHJldHVy bmVkIHBvaW50ZXIgaGFzIHRoZSBzYW1lIGNkYXRhIHR5cGUKPistLSBhcyBwYXNzZWQgYXJndW1l bnQuCj4rLS0KPistLSBUaGUgdGVzdCBjYXNlIGlzIGFwcGxpY2FibGUgZm9yIG1zZ3BhY2sgYW5k IG1zZ3BhY2tmZmkuCj4rbG9jYWwgZnVuY3Rpb24gdGVzdF9kZWNvZGVfYnVmZmVyKHRlc3QsIHMp Cj4rIGxvY2FsIGNhc2VzID0gewo+KyB7Cj4rICdkZWNvZGUoY2RhdGE8Y29uc3QgY2hhciAqPiwg bnVtYmVyKScsCj4rIGZ1bmMgPSBzLmRlY29kZSwKPisgYXJncyA9IHtmZmkuY2FzdCgnY29uc3Qg Y2hhciAqJywgJ1x4OTNceDAxXHgwMlx4MDMnKSwgNH0sCj4rIGV4cF9yZXMgPSB7MSwgMiwgM30s Cj4rIGV4cF9yZXdpbmQgPSA0LAo+KyB9LAo+KyB7Cj4rICdkZWNvZGUoY2RhdGE8Y2hhciAqPiwg bnVtYmVyKScsCj4rIGZ1bmMgPSBzLmRlY29kZSwKPisgYXJncyA9IHtmZmkuY2FzdCgnY2hhciAq JywgJ1x4OTNceDAxXHgwMlx4MDMnKSwgNH0sCj4rIGV4cF9yZXMgPSB7MSwgMiwgM30sCj4rIGV4 cF9yZXdpbmQgPSA0LAo+KyB9LAo+KyB7Cj4rICdkZWNvZGVfdW5jaGVja2VkKGNkYXRhPGNvbnN0 IGNoYXIgKj4pJywKPisgZnVuYyA9IHMuZGVjb2RlX3VuY2hlY2tlZCwKPisgYXJncyA9IHtmZmku Y2FzdCgnY29uc3QgY2hhciAqJywgJ1x4OTNceDAxXHgwMlx4MDMnKX0sCj4rIGV4cF9yZXMgPSB7 MSwgMiwgM30sCj4rIGV4cF9yZXdpbmQgPSA0LAo+KyB9LAo+KyB7Cj4rICdkZWNvZGVfdW5jaGVj a2VkKGNkYXRhPGNoYXIgKj4pJywKPisgZnVuYyA9IHMuZGVjb2RlX3VuY2hlY2tlZCwKPisgYXJn cyA9IHtmZmkuY2FzdCgnY2hhciAqJywgJ1x4OTNceDAxXHgwMlx4MDMnKX0sCj4rIGV4cF9yZXMg PSB7MSwgMiwgM30sCj4rIGV4cF9yZXdpbmQgPSA0LAo+KyB9LAo+KyB9Cj4rCj4rIHRlc3Q6cGxh bigjY2FzZXMpCj4rCj4rIGZvciBfLCBjYXNlIGluIGlwYWlycyhjYXNlcykgZG8KPisgdGVzdDp0 ZXN0KGNhc2VbMV0sIGZ1bmN0aW9uKHRlc3QpCj4rIHRlc3Q6cGxhbig0KQo+KyBsb2NhbCBhcmdz X2xlbiA9IHRhYmxlLm1heG4oY2FzZS5hcmdzKQo+KyBsb2NhbCByZXMsIHJlc19idWYgPSBjYXNl LmZ1bmModW5wYWNrKGNhc2UuYXJncywgMSwgYXJnc19sZW4pKQo+KyB0ZXN0OmlzX2RlZXBseShy ZXMsIGNhc2UuZXhwX3JlcywgJ3ZlcmlmeSByZXN1bHQnKQo+KyBsb2NhbCBidWYgPSBjYXNlLmFy Z3NbMV0KPisgbG9jYWwgcmV3aW5kID0gcmVzX2J1ZiAtIGJ1Zgo+KyB0ZXN0OmlzKHJld2luZCwg Y2FzZS5leHBfcmV3aW5kLCAndmVyaWZ5IHJlc3VsdGluZyBidWZmZXInKQo+KyAtLSB0ZXN0Omlz Y2RhdGEoKSBpcyBub3Qgc3VmZmljaWVudCBoZXJlLCBiZWNhdXNlIGl0Cj4rIC0tIGlnbm9yZXMg J2NvbnN0JyBxdWFsaWZpZXIgKGJlY2F1c2Ugb2YgdXNpbmcKPisgLS0gZmZpLmlzdHlwZSgpKS4K PisgdGVzdDppcyh0eXBlKHJlc19idWYpLCAnY2RhdGEnLCAndmVyaWZ5IHJlc3VsdGluZyBidWZm ZXIgdHlwZScpCj4rIGxvY2FsIGJ1Zl9jdHlwZSA9IHRvc3RyaW5nKGZmaS50eXBlb2YoYnVmKSkK PisgbG9jYWwgcmVzX2J1Zl9jdHlwZSA9IHRvc3RyaW5nKGZmaS50eXBlb2YocmVzX2J1ZikpCj4r IHRlc3Q6aXMocmVzX2J1Zl9jdHlwZSwgYnVmX2N0eXBlLCAndmVyaWZ5IHJlc3VsdGluZyBidWZm ZXIgY3R5cGUnKQo+KyBlbmQpCj4rIGVuZAo+K2VuZAo+Kwo+wqByZXR1cm4gewo+wqDCoMKgwqDC oHRlc3RfdW5zaWduZWQgPSB0ZXN0X3Vuc2lnbmVkOwo+wqDCoMKgwqDCoHRlc3Rfc2lnbmVkID0g dGVzdF9zaWduZWQ7Cj5AQCAtNDQ0LDQgKzUwMiw1IEBAIHJldHVybiB7Cj7CoMKgwqDCoMKgdGVz dF91Y2RhdGEgPSB0ZXN0X3VjZGF0YTsKPsKgwqDCoMKgwqB0ZXN0X2RlY2ltYWwgPSB0ZXN0X2Rl Y2ltYWw7Cj7CoMKgwqDCoMKgdGVzdF9kZXB0aCA9IHRlc3RfZGVwdGg7Cj4rIHRlc3RfZGVjb2Rl X2J1ZmZlciA9IHRlc3RfZGVjb2RlX2J1ZmZlcjsKPsKgfQo+ZGlmZiAtLWdpdCBhL3Rlc3QvYXBw LXRhcC9tc2dwYWNrLnRlc3QubHVhIGIvdGVzdC9hcHAtdGFwL21zZ3BhY2sudGVzdC5sdWEKPmlu ZGV4IDc1MmYxMDdhOC4uMWRmOWQyMzcyIDEwMDc1NQo+LS0tIGEvdGVzdC9hcHAtdGFwL21zZ3Bh Y2sudGVzdC5sdWEKPisrKyBiL3Rlc3QvYXBwLXRhcC9tc2dwYWNrLnRlc3QubHVhCj5AQCAtMTM2 LDYgKzEzNiwyNyBAQCBsb2NhbCBmdW5jdGlvbiB0ZXN0X2RlY29kZV9hcnJheV9tYXBfaGVhZGVy KHRlc3QsIHMpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNpemUgPSA0LAo+wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBleHBfZXJyID0gZW5kX29mX2J1ZmZlcl9lcnIsCj7CoMKgwqDCoMKg wqDCoMKgwqB9LAo+KyAtLSBnaC0zOTI2OiBFbnN1cmUgdGhhdCBhIHJldHVybmVkIHBvaW50ZXIg aGFzIHRoZSBzYW1lCj4rIC0tIGNkYXRhIHR5cGUgYXMgcGFzc2VkIGFyZ3VtZW50Lgo+KyAtLQo+ KyAtLSBjZGF0YTxjaGFyICo+IGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluIHRoZSBjYXNlcyBhYm92 ZSwKPisgLS0gc28gb25seSBjZGF0YTxjb25zdCBjaGFyICo+IGFyZ3VtZW50IGlzIGNoZWNrZWQg aGVyZS4KPisgewo+KyAnZml4YXJyYXkgKGNvbnN0IGNoYXIgKiknLAo+KyBmdW5jID0gcy5kZWNv ZGVfYXJyYXlfaGVhZGVyLAo+KyBkYXRhID0gZmZpLmNhc3QoJ2NvbnN0IGNoYXIgKicsICdceDk0 JyksCj4rIHNpemUgPSAxLAo+KyBleHBfbGVuID0gNCwKPisgZXhwX3Jld2luZCA9IDEsCj4rIH0s Cj4rIHsKPisgJ2ZpeG1hcCAoY29uc3QgY2hhciAqKScsCj4rIGZ1bmMgPSBzLmRlY29kZV9tYXBf aGVhZGVyLAo+KyBkYXRhID0gZmZpLmNhc3QoJ2NvbnN0IGNoYXIgKicsICdceDg0JyksCj4rIHNp emUgPSAxLAo+KyBleHBfbGVuID0gNCwKPisgZXhwX3Jld2luZCA9IDEsCj4rIH0sCj7CoMKgwqDC oMKgfQo+wqAKPsKgwqDCoMKgwqBsb2NhbCBiYWRfYXBpX2Nhc2VzID0gewo+QEAgLTIwNiw5ICsy MjcsMTQgQEAgbG9jYWwgZnVuY3Rpb24gdGVzdF9kZWNvZGVfYXJyYXlfbWFwX2hlYWRlcih0ZXN0 LCBzKQo+wqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBs b2NhbCBsZW4sIG5ld19idWYgPSBjYXNlLmZ1bmMoY2FzZS5kYXRhLCBjYXNlLnNpemUpCj7CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHJld2luZCA9IG5ld19idWYgLSBjYXNlLmRhdGEK PisKPisgLS0gZ2gtMzkyNjogVmVyaWZ5IGNkYXRhIHR5cGUgb2YgYSByZXR1cm5lZCBidWZmZXIu Cj4rIGxvY2FsIGRhdGFfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKGNhc2UuZGF0YSkpCj4r IGxvY2FsIG5ld19idWZfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKG5ld19idWYpKQo+Kwo+ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCBkZXNjcmlwdGlvbiA9ICgnZ29vZDsgJXMn KTpmb3JtYXQoY2FzZVsxXSkKPi0gdGVzdDppc19kZWVwbHkoe2xlbiwgcmV3aW5kfSwge2Nhc2Uu ZXhwX2xlbiwgY2FzZS5leHBfcmV3aW5kfSwKPi0gZGVzY3JpcHRpb24pCj4rIHRlc3Q6aXNfZGVl cGx5KHtsZW4sIHJld2luZCwgbmV3X2J1Zl9jdHlwZX0sIHtjYXNlLmV4cF9sZW4sCj4rIGNhc2Uu ZXhwX3Jld2luZCwgZGF0YV9jdHlwZX0sIGRlc2NyaXB0aW9uKQo+wqDCoMKgwqDCoMKgwqDCoMKg ZW5kCj7CoMKgwqDCoMKgZW5kCj7CoAo+QEAgLTIzMSw3ICsyNTcsNyBAQCBlbmQKPsKgCj7CoHRh cC50ZXN0KCJtc2dwYWNrIiwgZnVuY3Rpb24odGVzdCkKPsKgwqDCoMKgwqBsb2NhbCBzZXJpYWxp emVyID0gcmVxdWlyZSgnbXNncGFjaycpCj4tIHRlc3Q6cGxhbigxMikKPisgdGVzdDpwbGFuKDEz KQo+wqDCoMKgwqDCoHRlc3Q6dGVzdCgidW5zaWduZWQiLCBjb21tb24udGVzdF91bnNpZ25lZCwg c2VyaWFsaXplcikKPsKgwqDCoMKgwqB0ZXN0OnRlc3QoInNpZ25lZCIsIGNvbW1vbi50ZXN0X3Np Z25lZCwgc2VyaWFsaXplcikKPsKgwqDCoMKgwqB0ZXN0OnRlc3QoImRvdWJsZSIsIGNvbW1vbi50 ZXN0X2RvdWJsZSwgc2VyaWFsaXplcikKPkBAIC0yNDQsNCArMjcwLDUgQEAgdGFwLnRlc3QoIm1z Z3BhY2siLCBmdW5jdGlvbih0ZXN0KQo+wqDCoMKgwqDCoHRlc3Q6dGVzdCgib2Zmc2V0cyIsIHRl c3Rfb2Zmc2V0cywgc2VyaWFsaXplcikKPsKgwqDCoMKgwqB0ZXN0OnRlc3QoIm1pc2MiLCB0ZXN0 X21pc2MsIHNlcmlhbGl6ZXIpCj7CoMKgwqDCoMKgdGVzdDp0ZXN0KCJkZWNvZGVfYXJyYXlfbWFw IiwgdGVzdF9kZWNvZGVfYXJyYXlfbWFwX2hlYWRlciwgc2VyaWFsaXplcikKPisgdGVzdDp0ZXN0 KCJkZWNvZGVfYnVmZmVyIiwgY29tbW9uLnRlc3RfZGVjb2RlX2J1ZmZlciwgc2VyaWFsaXplcikK PsKgZW5kKQo+ZGlmZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhIGIv dGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPmluZGV4IGU2NDIyOGU0ZC4uYmU2OTA2 ZTY3IDEwMDc1NQo+LS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEKPisrKyBi L3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhCj5AQCAtMTE3LDQ1ICsxMTcsNiBAQCBs b2NhbCBmdW5jdGlvbiB0ZXN0X290aGVyKHRlc3QsIHMpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBlbmNvZGVfbWF4X2RlcHRoID0gbWF4X2RlcHRofSkKPsKgZW5kCj7CoAo+ LS0tIGdoLTM5MjY6IEVuc3VyZSB0aGF0IGEgcmV0dXJuZWQgcG9pbnRlciBoYXMgdGhlIHNhbWUg Y2RhdGEgdHlwZQo+LS0tIGFzIHBhc3NlZCBhcmd1bWVudC4KPi1sb2NhbCBmdW5jdGlvbiB0ZXN0 X2RlY29kZV9idWZmZXIodGVzdCwgcykKPi0gbG9jYWwgY2FzZXMgPSB7Cj4tIHsKPi0gJ2RlY29k ZV91bmNoZWNrZWQoY2RhdGE8Y29uc3QgY2hhciAqPiknLAo+LSBkYXRhID0gZmZpLmNhc3QoJ2Nv bnN0IGNoYXIgKicsICdceDkzXHgwMVx4MDJceDAzJyksCj4tIGV4cF9yZXMgPSB7MSwgMiwgM30s Cj4tIGV4cF9yZXdpbmQgPSA0LAo+LSB9LAo+LSB7Cj4tICdkZWNvZGVfdW5jaGVja2VkKGNkYXRh PGNoYXIgKj4pJywKPi0gZGF0YSA9IGZmaS5jYXN0KCdjaGFyIConLCAnXHg5M1x4MDFceDAyXHgw MycpLAo+LSBleHBfcmVzID0gezEsIDIsIDN9LAo+LSBleHBfcmV3aW5kID0gNCwKPi0gfSwKPi0g fQo+LQo+LSB0ZXN0OnBsYW4oI2Nhc2VzKQo+LQo+LSBmb3IgXywgY2FzZSBpbiBpcGFpcnMoY2Fz ZXMpIGRvCj4tIHRlc3Q6dGVzdChjYXNlWzFdLCBmdW5jdGlvbih0ZXN0KQo+LSB0ZXN0OnBsYW4o NCkKPi0gbG9jYWwgcmVzLCByZXNfYnVmID0gcy5kZWNvZGVfdW5jaGVja2VkKGNhc2UuZGF0YSkK Pi0gdGVzdDppc19kZWVwbHkocmVzLCBjYXNlLmV4cF9yZXMsICd2ZXJpZnkgcmVzdWx0JykKPi0g bG9jYWwgcmV3aW5kID0gcmVzX2J1ZiAtIGNhc2UuZGF0YQo+LSB0ZXN0OmlzKHJld2luZCwgY2Fz ZS5leHBfcmV3aW5kLCAndmVyaWZ5IHJlc3VsdGluZyBidWZmZXInKQo+LSAtLSB0ZXN0OmlzY2Rh dGEoKSBpcyBub3Qgc3VmZmljaWVudCBoZXJlLCBiZWNhdXNlIGl0Cj4tIC0tIGlnbm9yZXMgJ2Nv bnN0JyBxdWFsaWZpZXIgKGJlY2F1c2Ugb2YgdXNpbmcKPi0gLS0gZmZpLmlzdHlwZSgpKS4KPi0g dGVzdDppcyh0eXBlKHJlc19idWYpLCAnY2RhdGEnLCAndmVyaWZ5IHJlc3VsdGluZyBidWZmZXIg dHlwZScpCj4tIGxvY2FsIGRhdGFfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKGNhc2UuZGF0 YSkpCj4tIGxvY2FsIHJlc19idWZfY3R5cGUgPSB0b3N0cmluZyhmZmkudHlwZW9mKHJlc19idWYp KQo+LSB0ZXN0OmlzKHJlc19idWZfY3R5cGUsIGRhdGFfY3R5cGUsICd2ZXJpZnkgcmVzdWx0aW5n IGJ1ZmZlciBjdHlwZScpCj4tIGVuZCkKPi0gZW5kCj4tZW5kCj4tCj4tCj7CoHRhcC50ZXN0KCJt c2dwYWNrZmZpIiwgZnVuY3Rpb24odGVzdCkKPsKgwqDCoMKgwqBsb2NhbCBzZXJpYWxpemVyID0g cmVxdWlyZSgnbXNncGFja2ZmaScpCj7CoMKgwqDCoMKgdGVzdDpwbGFuKDExKQo+QEAgLTE3MSw1 ICsxMzIsNSBAQCB0YXAudGVzdCgibXNncGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpCj7CoMKgwqDC oMKgLS10ZXN0OnRlc3QoInVjZGF0YSIsIGNvbW1vbi50ZXN0X3VjZGF0YSwgc2VyaWFsaXplcikK PsKgwqDCoMKgwqB0ZXN0OnRlc3QoIm9mZnNldHMiLCB0ZXN0X29mZnNldHMsIHNlcmlhbGl6ZXIp Cj7CoMKgwqDCoMKgdGVzdDp0ZXN0KCJvdGhlciIsIHRlc3Rfb3RoZXIsIHNlcmlhbGl6ZXIpCj4t IHRlc3Q6dGVzdCgiZGVjb2RlX2J1ZmZlciIsIHRlc3RfZGVjb2RlX2J1ZmZlciwgc2VyaWFsaXpl cikKPisgdGVzdDp0ZXN0KCJkZWNvZGVfYnVmZmVyIiwgY29tbW9uLnRlc3RfZGVjb2RlX2J1ZmZl ciwgc2VyaWFsaXplcikKPsKgZW5kKQo+wqAgCsKgCsKgCi0tCk1hcmlhIEtoYXlkaWNoCsKg ----ALT--4aCd9F821B079F632E5baD07498c30341573644066 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+CjxkaXY+PGJyPgpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuIFBy b3Bvc2VkIGNoYW5nZXMgbG9vayByZWFzb25hYmxlIHRvIG1lIHNvIEnigJl2ZSBzcXVhc2hlZCB5 b3VyIEZJWFVQIGNvbW1pdHMgYW5kIGFsc28gYWRkZWQgZm9sbG93IHVwIHBhdGNoIGFzIGEgc2Vw YXJhdGUgY29tbWl0LiZuYnNwOzwvZGl2PgoKPGRpdj4mbmJzcDs8L2Rpdj4KCjxibG9ja3F1b3Rl IHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRp bmc6MCAwIDAgMTBweDsiPtCh0YDQtdC00LAsIDYg0L3QvtGP0LHRgNGPIDIwMTksIDM6NDQgKzAz OjAwINC+0YIgQWxleGFuZGVyIFR1cmVua28gJmx0O2FsZXhhbmRlci50dXJlbmtvQHRhcmFudG9v bC5vcmcmZ3Q7Ojxicj4KJm5ic3A7CjxkaXYgaWQ9IiI+CjxkaXYgY2xhc3M9ImpzLWhlbHBlciBq cy1yZWFkbXNnLW1zZyI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cjwvc3R5bGU+CjxkaXY+Cjxk aXYgaWQ9InN0eWxlXzE1NzMwMDEwNjUxNjUzMTQ2MjcxX0JPRFkiPk5vdGU6IFRoZSBwYXRjaCB3 YXMgY2hhbmdlZDogbm93IG1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZCgpIHJldHVybnMgYTxi cj4KcG9pbnRlciBvZiB0aGUgc2FtZSBjZGF0YSB0eXBlIGFzIHBhc3NlZCBidWZmZXIgKHRoZSBz YW1lIGZvciBpdHM8YnI+Cm1zZ3BhY2tmZmkuZGVjb2RlKCkgYWxpYXMpLjxicj4KZWxqYXNobS9n aC0zOTI2LW1zZ3BhY2tmZmkuZGVjb2RlLWFzc2lnbm1lbnQtdG8tYnVmLnJwb3MgYnJhbmNoIHdh czxicj4KdXBkYXRlZCwgYnV0IHRoZSBlbWFpbCB0aHJlYWQgd2FzIG5vdC4gSSBhZGRlZCB0aGUg bmV3IHBhdGNoIGJlbG93IHRvPGJyPgptYWtlIHRoZSBkaXNjdXNzaW9uIGNvbnNpc3RlbnQuPGJy Pgo8YnI+ClRoZSByZXZpZXcgY29udGFpbnMgdHdvIHBhcnRzOiBhIHF1ZXN0aW9uIGFib3V0IHRo ZSBBUEkgYW5kIHByb3Bvc2VkPGJyPgpjaGFuZ2VzIGZvciBjb2RlIGFuZCB0ZXN0cy48YnI+Cjxi cj4KQVBJPGJyPgotLS08YnI+Cjxicj4KSSBkaWdnZWQgYSBiaXQgaW50byB0aGUgaGlzdG9yeSBv ZiBtc2dwYWNrIGFuZCBtc2dwYWNrZmZpIEFQSSB0bzxicj4KdW5kZXJzdGFuZCB1c2UgY2FzZXMg YW5kIGRlY2lkZSB3aGV0aGVyIHdlIHNob3VsZCBhbHdheXMgcmV0dXJuPGJyPgpjZGF0YSZsdDtj aGFyIComZ3Q7IHBvaW50ZXIgZGVzcGl0ZSBvZiBjZGF0YSB0eXBlIG9mIGEgcHJvdmlkZWQgYnVm ZmVyIG9yPGJyPgpyZXR1cm4gY2RhdGEmbHQ7W2NvbnN0XSBjaGFyIComZ3Q7IGRlcGVuZGluZyBv biB0aGUgcGFzc2VkIGJ1ZmZlci48YnI+Cjxicj4KbXNncGFjayBtb2R1bGUgaW5pdGlhbGx5IGFj Y2VwdHMgb25seSBjZGF0YSZsdDtjaGFyIComZ3Q7LCBzbyBubyBvbmUgYm90aGVyPGJyPgp3aXRo IHRoaXMgcXVlc3Rpb24uIFRoZW4gaXQgc3RhcnQgdG8gYWNjZXB0IGNvbnN0IHBvaW50ZXJzIHRv bywgd2hpbGU8YnI+CnRoZSB0eXBlIG9mIHJldHVybmVkIHBvaW50ZXIgcmVtYWlucyB0aGUgc2Ft ZTogYWx3YXlzIGNkYXRhJmx0O2NoYXIgKiZndDsuPGJyPgo8YnI+Cm1zZ3BhY2tmZmkgYWx3YXlz IGFjY2VwdHMgYm90aCB0eXBlcyBvZiBwb2ludGVycywgYnV0IGFsd2F5cyByZXR1cm5zPGJyPgon dW5zaWduZWQgY2hhciAqJy4gSSBndWVzcyB0aGlzIHdhcyBub3QgaW50ZW50aW9uYWwuPGJyPgo8 YnI+Ckkgc2VlIG5vIHJlYXNvbiB0byBkb24ndCBjaGFuZ2UgdGhlIGJlaGF2aW91ciBmb3IgYm90 aCBtb2R1bGVzIHRvIHRoZTxicj4KcHJvcG9zZWQgb25lOiByZXR1cm4gdGhlIHNhbWUgcG9pbnRl ciB0eXBlIGFzIHBhc3NlZCBvbmUuPGJyPgo8YnI+CkZvciBvbmVzIHdobyBpbnRlcmVzdGVkLCBt eSBzb3VyY2VzIG9mIGluZm8uIEhlcmUgdGhlIG5ldyBBUEkgdGhhdDxicj4KYWxsb3dzIHRvIGlu dGVyYWN0IHdpdGggYnVmZmVycyB3YXMgaW50cm9kdWNlZDo8YnI+Cjxicj4KPGEgaHJlZj0iaHR0 cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tbWl0LzY4YzIxMzk3NWEzMWQw YzA1YjFlNWQyM2U2MTEyNDE3ZTMxNWY5OTUiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1 Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21taXQvNjhjMjEzOTc1YTMxZDBjMDViMWU1ZDIz ZTYxMTI0MTdlMzE1Zjk5NTwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJh bnRvb2wvdGFyYW50b29sL2lzc3Vlcy8yNzU1IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRo dWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzI3NTU8L2E+PGJyPgo8YnI+Ckl0IHdh cyBuZWVkZWQgdG8gZWFzaWVyIHVzZSBpYnVmICgnYnVmZmVyJyBtb2R1bGUpIGhlcmU6PGJyPgo8 YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvZHVtcC9jb21taXQvNWIx ZTE1ZTA1N2FhNDYwNmZlZGM5MjlhYWU1MTcyNDcwNTYwMDYzOCIgdGFyZ2V0PSJfYmxhbmsiPmh0 dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvZHVtcC9jb21taXQvNWIxZTE1ZTA1N2FhNDYwNmZl ZGM5MjlhYWU1MTcyNDcwNTYwMDYzODwvYT48YnI+Cjxicj4KSGVyZSBtc2dwYWNrIG1vZHVsZSBz dGFydHMgdG8gYWNjZXB0IGNkYXRhJmx0O2NvbnN0IGNoYXIgKiZndDsgKGRvbid0IHN1cmU8YnI+ CndoYXQgdGhlIHJlYXNvbiB3YXMpOjxicj4KPGJyPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5j b20vdGFyYW50b29sL3RhcmFudG9vbC9jb21taXQvNDUzZmZmMmIyMTVlMGMyZTJkNGM1OTUxZmFl NzExMzI5ZWZmN2I0OCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRv b2wvdGFyYW50b29sL2NvbW1pdC80NTNmZmYyYjIxNWUwYzJlMmQ0YzU5NTFmYWU3MTEzMjllZmY3 YjQ4PC9hPjxicj4KPGJyPgpDb2RlPGJyPgotLS0tPGJyPgo8YnI+CkknbGwgcGFzdGUgdGhlIG9y aWdpbmFsICh1cGRhdGVkIGFzIEkgd3JvdGUgYWJvdmUpIHBhdGNoIGFuZCBjaGFuZ2VzIEk8YnI+ CnByb3Bvc2VkIGJlbG93IHRoZSBlbWFpbC4gSSBhbHNvIHB1c2hlZCB0aGVtIG9udG88YnI+ClRv dGt0b25hZGEvZ2gtMzkyNi1tc2dwYWNrLWRlY29kZS1yZXR2YWwtY3R5cGUgYnJhbmNoIHRvIGVh c2U8YnI+CmNoZXJyeS1waWNraW5nLjxicj4KPGJyPgpNYXNoYSwgcGxlYXNlLCBsb29rIGludG8g cHJvcG9zZWQgY2hhbmdlcyBhbmQgc3F1YXNoICdGSVhVUCcgY29tbWl0czxicj4KaW50byB5b3Vy IHBhdGNoIChpZiB5b3UncmUgYWdyZWUgd2l0aCB0aGVtKS48YnI+Cjxicj4KQXNpZGUgb2YgdHdv IGZpeHVwcyBJIG1hZGUgYSBmb2xsb3cgdXAgcGF0Y2ggdGhhdCBjaGFuZ2VzIG1zZ3BhY2s8YnI+ CmJlaGF2aW91ciBpcyB0aGUgc2FtZSB3YXkgYXMgeW91IGNoYW5nZWQgbXNncGFja2ZmaS4gUGxl YXNlLCBsb29rIGludG88YnI+Cml0IHRvbyBhbmQgaWYgeW91J3JlIGFncmVlIGFkZCBpdCBvbiB0 b3Agb2YgeW91ciBicmFuY2ggdG9vIChidXQgYXMgYTxicj4Kc2VwYXJhdGUgY29tbWl0KS48YnI+ Cjxicj4KVGhlbiwgSSB0aGluayBzb21lYm9keSBlbHNlIHNob3VsZCBsb29rIGludG8gdGhlIHBh dGNoc2V0LiBJIHByb3Bvc2UgdG88YnI+CnNlbmQgaXQgdG8gVmxhZCAoYmVjYXVzZSBoZSBpcyB0 aGUgYXV0aG9yIG9mIDQ1M2ZmZjJiKS4gUGxlYXNlLCBsZWF2ZSBtZTxicj4KaW4gQ0Mgd2hlbiB3 aWxsIHNlbmQgdGhlIG5ldyB2ZXJzaW9uKHMpIG9mIHRoZSBwYXRjaHNldC48YnI+Cjxicj4KV0JS LCBBbGV4YW5kZXIgVHVyZW5rby48YnI+Cjxicj4KLS0tLTxicj4KPGJyPgooVGhlIG9yaWdpbmFs IHBhdGNoIGZyb208YnI+CmVsamFzaG0vZ2gtMzkyNi1tc2dwYWNrZmZpLmRlY29kZS1hc3NpZ25t ZW50LXRvLWJ1Zi5ycG9zLik8YnI+Cjxicj4KY29tbWl0IDVhOGY0NTA0YzhmMDlmZjg1MzJkZDI5 ZGE4NTg4NWJmNzBhYmQ1M2I8YnI+CkF1dGhvcjogTWFyaWEgJmx0OzxhIGhyZWY9Ii9jb21wb3Nl P1RvPW1hcmlhbm5lbGlhc2hAZ21haWwuY29tIj5tYXJpYW5uZWxpYXNoQGdtYWlsLmNvbTwvYT4m Z3Q7PGJyPgpEYXRlOiBUaHUgU2VwIDEyIDE2OjU1OjUzIDIwMTkgKzAzMDA8YnI+Cjxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bXNncGFja2ZmaS5kZWNvZGUgY2FuIG5vdyBiZSBhc3NpZ25l ZCB0byBidWYucnBvczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtGdW5jdGlvbiBkZWNvZGUgb2YgbW9kdWxlIG1zZ3BhY2tmZmkgd2FzIHBh c3Npbmc8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ZhbHVlIG9mIHR5cGUgY29uc3QgdW5z aWduZWQgY2hhciAqIHRvIGEgQyBmdW5jdGlvbjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 dGhhdCBhY2NlcHRzIGFyZ3VtZW50cyBvZiB0eXBlIGNvbnN0IGNoYXIgKi48YnI+CiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xvc2VzICMzOTI2 PGJyPgo8YnI+CmRpZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9t c2dwYWNrZmZpLmx1YTxicj4KaW5kZXggNTMzMWRjNzVmLi4zNGIyMmZiYjIgMTAwNjQ0PGJyPgot LS0gYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhPGJyPgorKysgYi9zcmMvbHVhL21zZ3BhY2tmZmku bHVhPGJyPgpAQCAtMTAsNiArMTAsNyBAQCBsb2NhbCB1aW50MTZfcHRyX3QgPSBmZmkudHlwZW9m KCd1aW50MTZfdCAqJyk8YnI+CiZuYnNwO2xvY2FsIHVpbnQzMl9wdHJfdCA9IGZmaS50eXBlb2Yo J3VpbnQzMl90IConKTxicj4KJm5ic3A7bG9jYWwgdWludDY0X3B0cl90ID0gZmZpLnR5cGVvZign dWludDY0X3QgKicpPGJyPgombmJzcDtsb2NhbCBjb25zdF9jaGFyX3B0cl90ID0gZmZpLnR5cGVv ZignY29uc3QgY2hhciAqJyk8YnI+Citsb2NhbCBjaGFyX3B0cl90ID0gZmZpLnR5cGVvZignY2hh ciAqJyk8YnI+CiZuYnNwOzxicj4KJm5ic3A7ZmZpLmNkZWYoW1s8YnI+CiZuYnNwO2NoYXIgKjxi cj4KQEAgLTYwNiwxMyArNjA3LDE0IEBAIGxvY2FsIGZ1bmN0aW9uIGRlY29kZV91bmNoZWNrZWQo c3RyLCBvZmZzZXQpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtidWZwWzBdID0gYnVmICsgb2Zmc2V0IC0gMTxicj4KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgciA9IGRlY29k ZV9yKGJ1ZnApPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtyZXR1cm4gciwgYnVmcFswXSAtIGJ1ZiArIDE8YnI+Ci0gZWxzZWlmIGZmaS5p c3R5cGUoY29uc3RfY2hhcl9wdHJfdCwgc3RyKSB0aGVuPGJyPgorIGVsc2VpZiBmZmkuaXN0eXBl KGNvbnN0X2NoYXJfcHRyX3QsIHN0cikgb3I8YnI+CisgZmZpLmlzdHlwZShjaGFyX3B0cl90LCBz dHIpIHRoZW48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO2J1ZnBbMF0gPSBzdHI8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIHIgPSBkZWNvZGVfcihidWZwKTxicj4KLSBy ZXR1cm4gciwgYnVmcFswXTxicj4KKyByZXR1cm4gciwgZmZpLmNhc3QoZmZpLnR5cGVvZihzdHIp LCBidWZwWzBdKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZTxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZXJyb3Io Im1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZChzdHIsIG9mZnNldCkgLSZndDsgcmVzLCBuZXdf b2Zmc2V0IHwgIi4uPGJyPgotICJtc2dwYWNrZmZpLmRlY29kZV91bmNoZWNrZWQoY29uc3QgY2hh ciAqYnVmKSAtJmd0OyByZXMsIG5ld19idWYiKTxicj4KKyAibXNncGFja2ZmaS5kZWNvZGVfdW5j aGVja2VkKFtjb25zdF0gY2hhciAqYnVmKSAtJmd0OyByZXMsIG5ld19idWYiKTxicj4KJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPgombmJzcDtlbmQ8YnI+CiZuYnNwOzxicj4K ZGlmZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhIGIvdGVzdC9hcHAt dGFwL21zZ3BhY2tmZmkudGVzdC5sdWE8YnI+CmluZGV4IDM2YWMyNmI3ZS4uYzQyNzZlYzQzIDEw MDc1NTxicj4KLS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWE8YnI+CisrKyBi L3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhPGJyPgpAQCAtNCw2ICs0LDggQEAgcGFj a2FnZS5wYXRoID0gImx1YS8/Lmx1YTsiLi5wYWNrYWdlLnBhdGg8YnI+CiZuYnNwOzxicj4KJm5i c3A7bG9jYWwgdGFwID0gcmVxdWlyZSgndGFwJyk8YnI+CiZuYnNwO2xvY2FsIGNvbW1vbiA9IHJl cXVpcmUoJ3NlcmlhbGl6ZXJfdGVzdCcpPGJyPgorbG9jYWwgYnVmZmVyID0gcmVxdWlyZSgnYnVm ZmVyJyk8YnI+Citsb2NhbCBmZmkgPSByZXF1aXJlKCdmZmknKTxicj4KJm5ic3A7PGJyPgombmJz cDtsb2NhbCBmdW5jdGlvbiBpc19tYXAocyk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO2xvY2FsIGIgPSBzdHJpbmcuYnl0ZShzdHJpbmcuc3ViKHMsIDEsIDEpKTxicj4KQEAgLTM1 LDYgKzM3LDIzIEBAIGxvY2FsIGZ1bmN0aW9uIHRlc3Rfb2Zmc2V0cyh0ZXN0LCBzKTxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdDpvayhub3QgcGNhbGwocy5kZWNvZGUsIGR1 bXAsIG9mZnNldCksICJpbnZhbGlkIG9mZnNldCIpPGJyPgombmJzcDtlbmQ8YnI+CiZuYnNwOzxi cj4KK2xvY2FsIGZ1bmN0aW9uIHRlc3RfdHlwZXModGVzdCwgcyk8YnI+CisgdGVzdDpwbGFuKDIp PGJyPgorIC0tIGdoLTM5MjY6IGRlY29kZSByZXN1bHQgY2Fubm90IGJlIGFzc2lnbmVkIHRvIGJ1 ZmZlci5ycG9zPGJyPgorIGxvY2FsIGVuY29kZWRfZGF0YSA9IHMuZW5jb2RlKDApPGJyPgorIGxv Y2FsIGxlbiA9IGVuY29kZWRfZGF0YTpsZW4oKTxicj4KKyBsb2NhbCBidWYgPSBidWZmZXIuaWJ1 ZigpPGJyPgorIGJ1ZjpyZXNlcnZlKGxlbik8YnI+CisgbG9jYWwgcCA9IGJ1ZjphbGxvYyhsZW4p PGJyPgorIGZmaS5jb3B5KHAsIGVuY29kZWRfZGF0YSwgbGVuKTxicj4KKyBsb2NhbCBfLCBuZXdf YnVmID0gcy5kZWNvZGUoZmZpLmNhc3QocCwgJ2NvbnN0IGNoYXIgKicpKTxicj4KKyB0ZXN0Omlz Y2RhdGEobmV3X2J1ZiwgJ2NvbnN0IGNoYXIgKicsICdjZGF0YSBjb25zdCBjaGFyICogdHlwZScp PGJyPgorIF8sIG5ld19idWYgPSBzLmRlY29kZShwKTxicj4KKyB0ZXN0OmlzY2RhdGEobmV3X2J1 ZiwgJ2NoYXIgKicsICdjZGF0YSBjaGFyICogdHlwZScpPGJyPgorIGJ1Zi5ycG9zID0gbmV3X2J1 Zjxicj4KKyBidWY6cmVjeWNsZSgpPGJyPgorZW5kPGJyPgorPGJyPgombmJzcDtsb2NhbCBmdW5j dGlvbiB0ZXN0X290aGVyKHRlc3QsIHMpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDt0ZXN0OnBsYW4oMjQpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBi dWYgPSBzdHJpbmcuY2hhcigweDkzLCAweDZlLCAweGNiLCAweDQyLCAweDJiLCAweGVkLCAweDMw LCAweDQ3LDxicj4KQEAgLTExNyw3ICsxMzYsNyBAQCBlbmQ8YnI+CiZuYnNwOzxicj4KJm5ic3A7 dGFwLnRlc3QoIm1zZ3BhY2tmZmkiLCBmdW5jdGlvbih0ZXN0KTxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc2VyaWFsaXplciA9IHJlcXVpcmUoJ21zZ3BhY2tmZmknKTxi cj4KLSB0ZXN0OnBsYW4oMTApPGJyPgorIHRlc3Q6cGxhbigxMSk8YnI+CiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVzdCgidW5zaWduZWQiLCBjb21tb24udGVzdF91bnNpZ25l ZCwgc2VyaWFsaXplcik8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVz dCgic2lnbmVkIiwgY29tbW9uLnRlc3Rfc2lnbmVkLCBzZXJpYWxpemVyKTxicj4KJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdDp0ZXN0KCJkb3VibGUiLCBjb21tb24udGVzdF9kb3Vi bGUsIHNlcmlhbGl6ZXIpPGJyPgpAQCAtMTMwLDQgKzE0OSw1IEBAIHRhcC50ZXN0KCJtc2dwYWNr ZmZpIiwgZnVuY3Rpb24odGVzdCk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0t dGVzdDp0ZXN0KCJ1Y2RhdGEiLCBjb21tb24udGVzdF91Y2RhdGEsIHNlcmlhbGl6ZXIpPGJyPgom bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0ZXN0OnRlc3QoIm9mZnNldHMiLCB0ZXN0X29m ZnNldHMsIHNlcmlhbGl6ZXIpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0ZXN0 OnRlc3QoIm90aGVyIiwgdGVzdF9vdGhlciwgc2VyaWFsaXplcik8YnI+CisgdGVzdDp0ZXN0KCJ0 eXBlcyIsIHRlc3RfdHlwZXMsIHNlcmlhbGl6ZXIpPGJyPgombmJzcDtlbmQpPGJyPgo8YnI+Ci0t LS08YnI+Cjxicj4KY29tbWl0IDZjOTVkOGM0YzA0ZTU2Mjg4ZGZlYWNlZGUwYmMyNDY4YWEyOTJh NmQ8YnI+CkF1dGhvcjogQWxleGFuZGVyIFR1cmVua28gJmx0OzxhIGhyZWY9Ii9jb21wb3NlP1Rv PWFsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmciPmFsZXhhbmRlci50dXJlbmtvQHRhcmFu dG9vbC5vcmc8L2E+Jmd0Ozxicj4KRGF0ZTogV2VkIE5vdiA2IDAxOjM2OjE3IDIwMTkgKzAzMDA8 YnI+Cjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RklYVVA6IG1zZ3BhY2tmZmkuZGVjb2Rl IGNhbiBub3cgYmUgYXNzaWduZWQgdG8gYnVmLnJwb3M8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkZWQgYSBub3RlIHRoYXQgZmZpLmlz dHlwZSgpIGlnbm9yZXMgdGhlIGNvbnN0IHF1YWxpZmllciBhbmQgY2hhbmdlZDxicj4KJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7dGhlIGNvZGUgdG8gbWFrZSBpdCBtb3JlIGNsZWFyLjxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlZCBh biBhcmd1bWVudCBjZGF0YSB0eXBlIHRvIGEgbG9jYWwgdmFyaWFibGUgdG8gbWFrZSB0aGUgbG9n aWM8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOydyZXR1cm4gYSBwb2ludGVyIG9mIHRoZSBz YW1lIHR5cGUgYXMgcGFzc2VkIG9uZScgbW9yZSBjbGVhci48YnI+CiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Tm8gYmVoYXZpb3VyIGNoYW5nZXMu PGJyPgo8YnI+CmRpZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9t c2dwYWNrZmZpLmx1YTxicj4KaW5kZXggMzRiMjJmYmIyLi5iYjI3NDdmODMgMTAwNjQ0PGJyPgot LS0gYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhPGJyPgorKysgYi9zcmMvbHVhL21zZ3BhY2tmZmku bHVhPGJyPgpAQCAtOSw3ICs5LDYgQEAgbG9jYWwgdWludDhfcHRyX3QgPSBmZmkudHlwZW9mKCd1 aW50OF90IConKTxicj4KJm5ic3A7bG9jYWwgdWludDE2X3B0cl90ID0gZmZpLnR5cGVvZigndWlu dDE2X3QgKicpPGJyPgombmJzcDtsb2NhbCB1aW50MzJfcHRyX3QgPSBmZmkudHlwZW9mKCd1aW50 MzJfdCAqJyk8YnI+CiZuYnNwO2xvY2FsIHVpbnQ2NF9wdHJfdCA9IGZmaS50eXBlb2YoJ3VpbnQ2 NF90IConKTxicj4KLWxvY2FsIGNvbnN0X2NoYXJfcHRyX3QgPSBmZmkudHlwZW9mKCdjb25zdCBj aGFyIConKTxicj4KJm5ic3A7bG9jYWwgY2hhcl9wdHJfdCA9IGZmaS50eXBlb2YoJ2NoYXIgKicp PGJyPgombmJzcDs8YnI+CiZuYnNwO2ZmaS5jZGVmKFtbPGJyPgpAQCAtNjAzLDE1ICs2MDIsMTcg QEAgZW5kPGJyPgombmJzcDtsb2NhbCBmdW5jdGlvbiBkZWNvZGVfdW5jaGVja2VkKHN0ciwgb2Zm c2V0KTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgdHlwZShzdHIpID09ICJz dHJpbmciIHRoZW48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO29mZnNldCA9IGNoZWNrX29mZnNldChvZmZzZXQsICNzdHIpPGJyPgotIGxv Y2FsIGJ1ZiA9IGZmaS5jYXN0KGNvbnN0X2NoYXJfcHRyX3QsIHN0cik8YnI+CisgbG9jYWwgYnVm ID0gZmZpLmNhc3QoY2hhcl9wdHJfdCwgc3RyKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7YnVmcFswXSA9IGJ1ZiArIG9mZnNldCAtIDE8 YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2xvY2FsIHIgPSBkZWNvZGVfcihidWZwKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIHIsIGJ1ZnBbMF0gLSBidWYgKyAxPGJy PgotIGVsc2VpZiBmZmkuaXN0eXBlKGNvbnN0X2NoYXJfcHRyX3QsIHN0cikgb3I8YnI+Ci0gZmZp LmlzdHlwZShjaGFyX3B0cl90LCBzdHIpIHRoZW48YnI+CisgZWxzZWlmIGZmaS5pc3R5cGUoY2hh cl9wdHJfdCwgc3RyKSB0aGVuPGJyPgorIC0tIE5vdGU6IGZmaS5pc3R5cGUoKSBpZ25vcmVzIHRo ZSBjb25zdCBxdWFsaWZpZXIsIHNvIGJvdGg8YnI+CisgLS0gKGNoYXIgKikgYW5kIChjb25zdCBj aGFyICopIGJ1ZmZlcnMgYXJlIHZhbGlkLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7YnVmcFswXSA9IHN0cjxicj4KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgciA9IGRlY29k ZV9yKGJ1ZnApPGJyPgotIHJldHVybiByLCBmZmkuY2FzdChmZmkudHlwZW9mKHN0ciksIGJ1ZnBb MF0pPGJyPgorIGxvY2FsIGN0eXBlID0gZmZpLnR5cGVvZihzdHIpPGJyPgorIHJldHVybiByLCBm ZmkuY2FzdChjdHlwZSwgYnVmcFswXSk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2Vsc2U8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO2Vycm9yKCJtc2dwYWNrZmZpLmRlY29kZV91bmNoZWNrZWQoc3RyLCBvZmZzZXQpIC0m Z3Q7IHJlcywgbmV3X29mZnNldCB8ICIuLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Im1zZ3BhY2tmZmkuZGVjb2RlX3VuY2hlY2tlZChbY29uc3RdIGNoYXIgKmJ1ZikgLSZn dDsgcmVzLCBuZXdfYnVmIik8YnI+Cjxicj4KLS0tLTxicj4KPGJyPgpjb21taXQgZjFkZWUxMzk5 MWQ0M2MzN2Q2MjZlOTE2MDFhYjUwZTM0ZWMyMzAzYjxicj4KQXV0aG9yOiBBbGV4YW5kZXIgVHVy ZW5rbyAmbHQ7PGEgaHJlZj0iL2NvbXBvc2U/VG89YWxleGFuZGVyLnR1cmVua29AdGFyYW50b29s Lm9yZyI+YWxleGFuZGVyLnR1cmVua29AdGFyYW50b29sLm9yZzwvYT4mZ3Q7PGJyPgpEYXRlOiBX ZWQgTm92IDYgMDE6NDI6MjggMjAxOSArMDMwMDxicj4KPGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtGSVhVUDogbXNncGFja2ZmaS5kZWNvZGUgY2FuIG5vdyBiZSBhc3NpZ25lZCB0byBidWYu cnBvczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtSZXdyaXR0ZW4gdGhlIHRlc3QgY2FzZS4gVGhlcmUgYXJlIHNldmVyYWwgcmVhc29ucyB0 byBkbyBzby48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Rmlyc3QsIHRoZSBwcmV2aW91cyB0ZXN0IGNhc2UgaW1wbGVtZW50YXRpb24gdXNl cyB0ZXN0OmlzY2RhdGEoKSB3aGljaDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aXMgbm90 IHN1ZmZpY2llbnQgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGNvbnN0IHF1YWxpZmllciBpcyBhcHBs aWVkIHRvIGE8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NkYXRhIHR5cGUsIGJlY2F1c2Ug b2YgdXNpbmcgZmZpLmlzdHlwZSgpIHVuZGVyIGhvb2QsIHdoaWNoIGlnbm9yZXM8YnI+CiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOydjb25zdCcuPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8 YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NlY29uZCwgdGhlIHByZXZpb3VzIHRlc3QgY2Fz ZSB3YXMgaW52YWxpZCwgYmVjYXVzZSBvZiB3cm9uZyBvcmRlciBvZjxicj4KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7ZmZpLmNhc3QoKSBhcmd1bWVudHMuPGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXJkLCB3ZSBkb24ndCBuZWVkIGEg cmVhbCBpYnVmIG9iamVjdCwgZmZpLmNhc3QoY3R5cGUsICdhIHN0cmluZycpIGlzPGJyPgombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtlbm91Z2guIFRoaXMgYWxsb3dzIHRvIHNpbXBsaWZ5IHRlc3Qg Y2FzZXMuPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO0ZvdXJ0aCwgdGhlIHRlc3QgY2FzZSBpcyByZXdyaXR0ZW4gaW4gYSBkZWNsYXJhdGl2 ZSBtYW5uZXIgdG8gcmVkdWNlPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjb2RlIGR1cGxp Y2F0aW9uLiBUaGlzIGFsc28gYWxsb3dzIHRvIGV4cGFuZCBpdCB3L28gbWFueSBjaGFuZ2VzIGZv cjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bXNncGFjay5kZWNvZGUoKSBmdW5jdGlvbiBp biB0aGUgZm9sbG93aW5nIGNvbW1pdC48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SSBsZWZ0IG9ubHkgbXNncGFja2ZmaS5kZWNvZGVfdW5j aGVja2VkKCkgY2FzZXMuIEEgYml0IGNvbnRleHQgaXMgbmVlZGVkPGJyPgombmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt0byBkZXNjcmliZSB3aHkuPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8 YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO21zZ3BhY2suZGVjb2RlKCkgYWNjZXB0cyB0d28g YXJndW1lbnRzOiBhIGJ1ZmZlciBhbmQgaXRzIHNpemUgKG9yIGE8YnI+CiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO3N0cmluZyBhbmQgYW4gb2Zmc2V0LCBidXQgaXQgaXMgb3V0IG9mIHNjb3BlIGhl cmUpLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bXNncGFjay5kZWNvZGVfdW5jaGVja2Vk KCkgYWNjZXB0cyBvbmx5IGEgYnVmZmVyIChvciwgYWdhaW4sIGEgc3RyaW5nPGJyPgombmJzcDsm bmJzcDsmbmJzcDsmbmJzcDthbmQgYW4gb2Zmc2V0KSBhbmQgZG9lcyBub3QgdmVyaWZ5IHdoZXRo ZXIgd2UgcGVyZm9ybSByZWFkcyBvdXQgb2YgdGhlPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtidWZmZXIgYm91bmRzLiBTZWUgIzI3NTUgZm9yIHRoZSBmb3JtYWwgZGVzY3JpcHRpb24gb2Yg dGhlIEFQSS48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7bXNncGFja2ZmaSBtb2R1bGUgY29udGFpbnMgb25seSBtc2dwYWNrZmZpLmRlY29k ZV91bmNoZWNrZWQoKS48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO21zZ3BhY2tmZmkuZGVj b2RlKCkgaXMganVzdCBhbGlhcyBmb3IgZGVjb2RlX3VuY2hlY2tlZDogaXQgZG9lcyBub3Q8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ZlcmlmeSBhIGJ1ZmZlciBib3VuZHMuIEFGQUlVIHRo ZSBhbGlhcyB3YXMgYWRkZWQgdG8gdW5pZnk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rl c3RpbmcgY29kZSBmb3IgbXNncGFjayBhbmQgbXNncGFja2ZmaSBtb2R1bGVzLjxicj4KJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdXIgd2Vic2l0 ZSBoYXMgbm8gZG9jdW1lbnRhdGlvbiBhYm91dCBtc2dwYWNrZmZpLiBJIGRvbid0IHN1cmUgd2hl dGhlcjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aXRzIEFQSSBzaG91bGQgYmUgY29uc2lk ZXJlZCBhcyBwdWJsaWMgQVBJLiBIb3dldmVyIGlmIHdlJ2xsIG1ha2UgdGhlPGJyPgombmJzcDsm bmJzcDsmbmJzcDsmbmJzcDttb2R1bGUgcHVibGljLCB3ZSdsbCBuZWVkIHRvIGltcGxlbWVudCBi dWZmZXIgYm91bmQgY2hlY2suIEFuZCBvbmx5IHRoZW48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO3N0YXRlIHRoYXQgdGhlIEFQSSBpcyBzdGFibGUgYW5kIGNhbiBiZSB1c2VkIGJ5IHVzZXJz Ljxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtJZiB3ZSBkb24ndCBjb25zaWRlciBtc2dwYWNrZmZpLmRlY29kZSgpIGFzIHB1YmxpYyBmdW5j dGlvbiBmb3Igbm93LCBpdDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bWFrZSBzZW5zZSB0 byBsZWZ0IGl0IHVudGVzdGVkIHdoZW4gYSB0ZXN0aW5nIGNvZGUgaXMgbm90IHVuaWZpZWQ8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2JldHdlZW4gbXNncGFjayBhbmQgbXNncGFja2ZmaSBt b2R1bGVzLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtIb3dldmVyIEkgdW5pZmllZCB0aGlzIHRlc3RpbmcgY29kZSBmb3IgYm90aCBtb2R1 bGVzIGluIHRoZSBmb2xsb3dpbmc8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NvbW1pdCwg c28gaXQgd2lsbCBiZSB0ZXN0ZWQgYW55d2F5OiBidXQgaW4gdGhlIGNvbW1pdCB3aGVyZSBpdCBs b29rczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVhc29uYWJsZS48YnI+Cjxicj4KZGlm ZiAtLWdpdCBhL3Rlc3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhIGIvdGVzdC9hcHAtdGFw L21zZ3BhY2tmZmkudGVzdC5sdWE8YnI+CmluZGV4IGM0Mjc2ZWM0My4uZTY0MjI4ZTRkIDEwMDc1 NTxicj4KLS0tIGEvdGVzdC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWE8YnI+CisrKyBiL3Rl c3QvYXBwLXRhcC9tc2dwYWNrZmZpLnRlc3QubHVhPGJyPgpAQCAtMzcsMjMgKzM3LDYgQEAgbG9j YWwgZnVuY3Rpb24gdGVzdF9vZmZzZXRzKHRlc3QsIHMpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt0ZXN0Om9rKG5vdCBwY2FsbChzLmRlY29kZSwgZHVtcCwgb2Zmc2V0KSwgImlu dmFsaWQgb2Zmc2V0Iik8YnI+CiZuYnNwO2VuZDxicj4KJm5ic3A7PGJyPgotbG9jYWwgZnVuY3Rp b24gdGVzdF90eXBlcyh0ZXN0LCBzKTxicj4KLSB0ZXN0OnBsYW4oMik8YnI+Ci0gLS0gZ2gtMzky NjogZGVjb2RlIHJlc3VsdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYnVmZmVyLnJwb3M8YnI+Ci0g bG9jYWwgZW5jb2RlZF9kYXRhID0gcy5lbmNvZGUoMCk8YnI+Ci0gbG9jYWwgbGVuID0gZW5jb2Rl ZF9kYXRhOmxlbigpPGJyPgotIGxvY2FsIGJ1ZiA9IGJ1ZmZlci5pYnVmKCk8YnI+Ci0gYnVmOnJl c2VydmUobGVuKTxicj4KLSBsb2NhbCBwID0gYnVmOmFsbG9jKGxlbik8YnI+Ci0gZmZpLmNvcHko cCwgZW5jb2RlZF9kYXRhLCBsZW4pPGJyPgotIGxvY2FsIF8sIG5ld19idWYgPSBzLmRlY29kZShm ZmkuY2FzdChwLCAnY29uc3QgY2hhciAqJykpPGJyPgotIHRlc3Q6aXNjZGF0YShuZXdfYnVmLCAn Y29uc3QgY2hhciAqJywgJ2NkYXRhIGNvbnN0IGNoYXIgKiB0eXBlJyk8YnI+Ci0gXywgbmV3X2J1 ZiA9IHMuZGVjb2RlKHApPGJyPgotIHRlc3Q6aXNjZGF0YShuZXdfYnVmLCAnY2hhciAqJywgJ2Nk YXRhIGNoYXIgKiB0eXBlJyk8YnI+Ci0gYnVmLnJwb3MgPSBuZXdfYnVmPGJyPgotIGJ1ZjpyZWN5 Y2xlKCk8YnI+Ci1lbmQ8YnI+Ci08YnI+CiZuYnNwO2xvY2FsIGZ1bmN0aW9uIHRlc3Rfb3RoZXIo dGVzdCwgcyk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6cGxhbigyNCk8 YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGJ1ZiA9IHN0cmluZy5jaGFy KDB4OTMsIDB4NmUsIDB4Y2IsIDB4NDIsIDB4MmIsIDB4ZWQsIDB4MzAsIDB4NDcsPGJyPgpAQCAt MTM0LDYgKzExNyw0NSBAQCBsb2NhbCBmdW5jdGlvbiB0ZXN0X290aGVyKHRlc3QsIHMpPGJyPgom bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmNvZGVf bWF4X2RlcHRoID0gbWF4X2RlcHRofSk8YnI+CiZuYnNwO2VuZDxicj4KJm5ic3A7PGJyPgorLS0g Z2gtMzkyNjogRW5zdXJlIHRoYXQgYSByZXR1cm5lZCBwb2ludGVyIGhhcyB0aGUgc2FtZSBjZGF0 YSB0eXBlPGJyPgorLS0gYXMgcGFzc2VkIGFyZ3VtZW50Ljxicj4KK2xvY2FsIGZ1bmN0aW9uIHRl c3RfZGVjb2RlX2J1ZmZlcih0ZXN0LCBzKTxicj4KKyBsb2NhbCBjYXNlcyA9IHs8YnI+Cisgezxi cj4KKyAnZGVjb2RlX3VuY2hlY2tlZChjZGF0YSZsdDtjb25zdCBjaGFyIComZ3Q7KScsPGJyPgor IGRhdGEgPSBmZmkuY2FzdCgnY29uc3QgY2hhciAqJywgJ1x4OTNceDAxXHgwMlx4MDMnKSw8YnI+ CisgZXhwX3JlcyA9IHsxLCAyLCAzfSw8YnI+CisgZXhwX3Jld2luZCA9IDQsPGJyPgorIH0sPGJy PgorIHs8YnI+CisgJ2RlY29kZV91bmNoZWNrZWQoY2RhdGEmbHQ7Y2hhciAqJmd0OyknLDxicj4K KyBkYXRhID0gZmZpLmNhc3QoJ2NoYXIgKicsICdceDkzXHgwMVx4MDJceDAzJyksPGJyPgorIGV4 cF9yZXMgPSB7MSwgMiwgM30sPGJyPgorIGV4cF9yZXdpbmQgPSA0LDxicj4KKyB9LDxicj4KKyB9 PGJyPgorPGJyPgorIHRlc3Q6cGxhbigjY2FzZXMpPGJyPgorPGJyPgorIGZvciBfLCBjYXNlIGlu IGlwYWlycyhjYXNlcykgZG88YnI+CisgdGVzdDp0ZXN0KGNhc2VbMV0sIGZ1bmN0aW9uKHRlc3Qp PGJyPgorIHRlc3Q6cGxhbig0KTxicj4KKyBsb2NhbCByZXMsIHJlc19idWYgPSBzLmRlY29kZV91 bmNoZWNrZWQoY2FzZS5kYXRhKTxicj4KKyB0ZXN0OmlzX2RlZXBseShyZXMsIGNhc2UuZXhwX3Jl cywgJ3ZlcmlmeSByZXN1bHQnKTxicj4KKyBsb2NhbCByZXdpbmQgPSByZXNfYnVmIC0gY2FzZS5k YXRhPGJyPgorIHRlc3Q6aXMocmV3aW5kLCBjYXNlLmV4cF9yZXdpbmQsICd2ZXJpZnkgcmVzdWx0 aW5nIGJ1ZmZlcicpPGJyPgorIC0tIHRlc3Q6aXNjZGF0YSgpIGlzIG5vdCBzdWZmaWNpZW50IGhl cmUsIGJlY2F1c2UgaXQ8YnI+CisgLS0gaWdub3JlcyAnY29uc3QnIHF1YWxpZmllciAoYmVjYXVz ZSBvZiB1c2luZzxicj4KKyAtLSBmZmkuaXN0eXBlKCkpLjxicj4KKyB0ZXN0OmlzKHR5cGUocmVz X2J1ZiksICdjZGF0YScsICd2ZXJpZnkgcmVzdWx0aW5nIGJ1ZmZlciB0eXBlJyk8YnI+CisgbG9j YWwgZGF0YV9jdHlwZSA9IHRvc3RyaW5nKGZmaS50eXBlb2YoY2FzZS5kYXRhKSk8YnI+CisgbG9j YWwgcmVzX2J1Zl9jdHlwZSA9IHRvc3RyaW5nKGZmaS50eXBlb2YocmVzX2J1ZikpPGJyPgorIHRl c3Q6aXMocmVzX2J1Zl9jdHlwZSwgZGF0YV9jdHlwZSwgJ3ZlcmlmeSByZXN1bHRpbmcgYnVmZmVy IGN0eXBlJyk8YnI+CisgZW5kKTxicj4KKyBlbmQ8YnI+CitlbmQ8YnI+Cis8YnI+Cis8YnI+CiZu YnNwO3RhcC50ZXN0KCJtc2dwYWNrZmZpIiwgZnVuY3Rpb24odGVzdCk8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIHNlcmlhbGl6ZXIgPSByZXF1aXJlKCdtc2dwYWNrZmZp Jyk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6cGxhbigxMSk8YnI+CkBA IC0xNDksNSArMTcxLDUgQEAgdGFwLnRlc3QoIm1zZ3BhY2tmZmkiLCBmdW5jdGlvbih0ZXN0KTxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS10ZXN0OnRlc3QoInVjZGF0YSIsIGNv bW1vbi50ZXN0X3VjZGF0YSwgc2VyaWFsaXplcik8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3Rlc3Q6dGVzdCgib2Zmc2V0cyIsIHRlc3Rfb2Zmc2V0cywgc2VyaWFsaXplcik8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVzdCgib3RoZXIiLCB0ZXN0X290 aGVyLCBzZXJpYWxpemVyKTxicj4KLSB0ZXN0OnRlc3QoInR5cGVzIiwgdGVzdF90eXBlcywgc2Vy aWFsaXplcik8YnI+CisgdGVzdDp0ZXN0KCJkZWNvZGVfYnVmZmVyIiwgdGVzdF9kZWNvZGVfYnVm ZmVyLCBzZXJpYWxpemVyKTxicj4KJm5ic3A7ZW5kKTxicj4KPGJyPgotLS0tPGJyPgo8YnI+CmNv bW1pdCBjYzUwYjcxNzIwYTQ2ZWQ5NDdiYmRmNzFkOWUzZDZjNmFkZTEzNzJhPGJyPgpBdXRob3I6 IEFsZXhhbmRlciBUdXJlbmtvICZsdDs8YSBocmVmPSIvY29tcG9zZT9Ubz1hbGV4YW5kZXIudHVy ZW5rb0B0YXJhbnRvb2wub3JnIj5hbGV4YW5kZXIudHVyZW5rb0B0YXJhbnRvb2wub3JnPC9hPiZn dDs8YnI+CkRhdGU6IFdlZCBOb3YgNiAwMjowNTowMyAyMDE5ICswMzAwPGJyPgo8YnI+CiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2x1YTogZG9uJ3QgbW9kaWZ5IHBvaW50ZXIgdHlwZSBpbiBtc2dw YWNrLmRlY29kZSo8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxicj4KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7bXNncGFja2ZmaS5kZWNvZGVfdW5jaGVja2VkKFtjb25zdF0gY2hhciAqKSBy ZXR1cm5zIHR3byB2YWx1ZXM6IGE8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RlY29kZWQg cmVzdWx0IGFuZCBhIG5ldyBwb2ludGVyIHdpdGhpbiBwYXNzZWQgYnVmZmVyLiBBZnRlciAjMzky NiBhPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjZGF0YSB0eXBlIG9mIHRoZSByZXR1cm5l ZCBwb2ludGVyIGZvbGxvd3MgYSB0eXBlIG9mIHBhc3NlZCBidWZmZXIuPGJyPgombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgY29tbWl0IG1v ZGlmaWVzIGJlaGF2aW91ciBvZiBtc2dwYWNrIG1vZHVsZSBpbiB0aGUgc2FtZSB3YXkuIFRoZTxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Zm9sbG93aW5nIGZ1bmN0aW9ucyBub3cgcmV0dXJu cyBjZGF0YSZsdDtjaGFyIComZ3Q7IG9yIGNkYXRhJmx0O2NvbnN0IGNoYXIgKiZndDs8YnI+CiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RlcGVuZGluZyBvZiBpdHMgYXJndW1lbnQ6PGJyPgombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyogbXNncGFj ay5kZWNvZGUoY2RhdGEmbHQ7W2NvbnN0XSBjaGFyIComZ3Q7LCBudW1iZXIpPGJyPgombmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsqIG1zZ3BhY2suZGVjb2RlX3VuY2hlY2tlZChjZGF0YSZsdDtbY29u c3RdIGNoYXIgKiZndDspPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsqIG1zZ3BhY2suZGVj b2RlX2FycmF5X2hlYWRlcihjZGF0YSZsdDtbY29uc3RdIGNoYXIgKiZndDssIG51bWJlcik8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyogbXNncGFjay5kZWNvZGVfbWFwX2hlYWRlcihjZGF0 YSZsdDtbY29uc3RdIGNoYXIgKiZndDssIG51bWJlcik8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9sbG93cyB1cCAjMzkyNi48YnI+Cjxi cj4KZGlmZiAtLWdpdCBhL3NyYy9sdWEvbXNncGFjay5jIGIvc3JjL2x1YS9tc2dwYWNrLmM8YnI+ CmluZGV4IGVmMzE1YjY5Mi4uZWRiYzE1YjcyIDEwMDY0NDxicj4KLS0tIGEvc3JjL2x1YS9tc2dw YWNrLmM8YnI+CisrKyBiL3NyYy9sdWEvbXNncGFjay5jPGJyPgpAQCAtMzcwLDcgKzM3MCw4IEBA IHN0YXRpYyBpbnQ8YnI+CiZuYnNwO2x1YV9tc2dwYWNrX2RlY29kZV9jZGF0YShsdWFfU3RhdGUg KkwsIGJvb2wgY2hlY2spPGJyPgombmJzcDt7PGJyPgombmJzcDsgY29uc3QgY2hhciAqZGF0YTs8 YnI+Ci0gaWYgKGx1YUxfY2hlY2tjb25zdGNoYXIoTCwgMSwgJmFtcDtkYXRhKSAhPSAwKSB7PGJy PgorIHVpbnQzMl90IGNkYXRhX3R5cGU7PGJyPgorIGlmIChsdWFMX2NoZWNrY29uc3RjaGFyKEws IDEsICZhbXA7ZGF0YSwgJmFtcDtjZGF0YV90eXBlKSAhPSAwKSB7PGJyPgombmJzcDsgcmV0dXJu IGx1YUxfZXJyb3IoTCwgIm1zZ3BhY2suZGVjb2RlOiAiPGJyPgombmJzcDsgImEgTHVhIHN0cmlu ZyBvciAnY2hhciAqJyBleHBlY3RlZCIpOzxicj4KJm5ic3A7IH08YnI+CkBAIC0zODYsNyArMzg3 LDcgQEAgbHVhX21zZ3BhY2tfZGVjb2RlX2NkYXRhKGx1YV9TdGF0ZSAqTCwgYm9vbCBjaGVjayk8 YnI+CiZuYnNwOyB9PGJyPgombmJzcDsgc3RydWN0IGx1YUxfc2VyaWFsaXplciAqY2ZnID0gbHVh TF9jaGVja3NlcmlhbGl6ZXIoTCk7PGJyPgombmJzcDsgbHVhbXBfZGVjb2RlKEwsIGNmZywgJmFt cDtkYXRhKTs8YnI+Ci0gKihjb25zdCBjaGFyICoqKWx1YUxfcHVzaGNkYXRhKEwsIENUSURfQ0hB Ul9QVFIpID0gZGF0YTs8YnI+CisgKihjb25zdCBjaGFyICoqKWx1YUxfcHVzaGNkYXRhKEwsIGNk YXRhX3R5cGUpID0gZGF0YTs8YnI+CiZuYnNwOyByZXR1cm4gMjs8YnI+CiZuYnNwO308YnI+CiZu YnNwOzxicj4KQEAgLTQ2OCw3ICs0NjksOCBAQCBsdWFfaWJ1Zl9tc2dwYWNrX2RlY29kZShsdWFf U3RhdGUgKkwpPGJyPgombmJzcDsmbmJzcDsqLzxicj4KJm5ic3A7c3RhdGljIGludDxicj4KJm5i c3A7dmVyaWZ5X2RlY29kZV9oZWFkZXJfYXJncyhsdWFfU3RhdGUgKkwsIGNvbnN0IGNoYXIgKmZ1 bmNfbmFtZSw8YnI+Ci0gY29uc3QgY2hhciAqKmRhdGFfcCwgcHRyZGlmZl90ICpzaXplX3ApPGJy PgorIGNvbnN0IGNoYXIgKipkYXRhX3AsIHVpbnQzMl90ICpjZGF0YV90eXBlX3AsPGJyPgorIHB0 cmRpZmZfdCAqc2l6ZV9wKTxicj4KJm5ic3A7ezxicj4KJm5ic3A7IC8qIFZlcmlmeSBhcmd1bWVu dHMgY291bnQuICovPGJyPgombmJzcDsgaWYgKGx1YV9nZXR0b3AoTCkgIT0gMik8YnI+CkBAIC00 NzYsNyArNDc4LDggQEAgdmVyaWZ5X2RlY29kZV9oZWFkZXJfYXJncyhsdWFfU3RhdGUgKkwsIGNv bnN0IGNoYXIgKmZ1bmNfbmFtZSw8YnI+CiZuYnNwOzxicj4KJm5ic3A7IC8qIFZlcmlmeSBwdHIg dHlwZS4gKi88YnI+CiZuYnNwOyBjb25zdCBjaGFyICpkYXRhOzxicj4KLSBpZiAobHVhTF9jaGVj a2NvbnN0Y2hhcihMLCAxLCAmYW1wO2RhdGEpICE9IDApPGJyPgorIHVpbnQzMl90IGNkYXRhX3R5 cGU7PGJyPgorIGlmIChsdWFMX2NoZWNrY29uc3RjaGFyKEwsIDEsICZhbXA7ZGF0YSwgJmFtcDtj ZGF0YV90eXBlKSAhPSAwKTxicj4KJm5ic3A7IHJldHVybiBsdWFMX2Vycm9yKEwsICIlczogJ2No YXIgKicgZXhwZWN0ZWQiLCBmdW5jX25hbWUpOzxicj4KJm5ic3A7PGJyPgombmJzcDsgLyogVmVy aWZ5IHNpemUgdHlwZSBhbmQgdmFsdWUuICovPGJyPgpAQCAtNDg2LDYgKzQ4OSw3IEBAIHZlcmlm eV9kZWNvZGVfaGVhZGVyX2FyZ3MobHVhX1N0YXRlICpMLCBjb25zdCBjaGFyICpmdW5jX25hbWUs PGJyPgombmJzcDs8YnI+CiZuYnNwOyAqZGF0YV9wID0gZGF0YTs8YnI+CiZuYnNwOyAqc2l6ZV9w ID0gc2l6ZTs8YnI+CisgKmNkYXRhX3R5cGVfcCA9IGNkYXRhX3R5cGU7PGJyPgombmJzcDs8YnI+ CiZuYnNwOyByZXR1cm4gMDs8YnI+CiZuYnNwO308YnI+CkBAIC00OTksOCArNTAzLDkgQEAgbHVh X2RlY29kZV9hcnJheV9oZWFkZXIobHVhX1N0YXRlICpMKTxicj4KJm5ic3A7ezxicj4KJm5ic3A7 IGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSA9ICJtc2dwYWNrLmRlY29kZV9hcnJheV9oZWFkZXIiOzxi cj4KJm5ic3A7IGNvbnN0IGNoYXIgKmRhdGE7PGJyPgorIHVpbnQzMl90IGNkYXRhX3R5cGU7PGJy PgombmJzcDsgcHRyZGlmZl90IHNpemU7PGJyPgotIHZlcmlmeV9kZWNvZGVfaGVhZGVyX2FyZ3Mo TCwgZnVuY19uYW1lLCAmYW1wO2RhdGEsICZhbXA7c2l6ZSk7PGJyPgorIHZlcmlmeV9kZWNvZGVf aGVhZGVyX2FyZ3MoTCwgZnVuY19uYW1lLCAmYW1wO2RhdGEsICZhbXA7Y2RhdGFfdHlwZSwgJmFt cDtzaXplKTs8YnI+CiZuYnNwOzxicj4KJm5ic3A7IGlmIChtcF90eXBlb2YoKmRhdGEpICE9IE1Q X0FSUkFZKTxicj4KJm5ic3A7IHJldHVybiBsdWFMX2Vycm9yKEwsICIlczogdW5leHBlY3RlZCBt c2dwYWNrIHR5cGUiLCBmdW5jX25hbWUpOzxicj4KQEAgLTUxMSw3ICs1MTYsNyBAQCBsdWFfZGVj b2RlX2FycmF5X2hlYWRlcihsdWFfU3RhdGUgKkwpPGJyPgombmJzcDsgdWludDMyX3QgbGVuID0g bXBfZGVjb2RlX2FycmF5KCZhbXA7ZGF0YSk7PGJyPgombmJzcDs8YnI+CiZuYnNwOyBsdWFfcHVz aGludGVnZXIoTCwgbGVuKTs8YnI+Ci0gKihjb25zdCBjaGFyICoqKSBsdWFMX3B1c2hjZGF0YShM LCBDVElEX0NIQVJfUFRSKSA9IGRhdGE7PGJyPgorICooY29uc3QgY2hhciAqKikgbHVhTF9wdXNo Y2RhdGEoTCwgY2RhdGFfdHlwZSkgPSBkYXRhOzxicj4KJm5ic3A7IHJldHVybiAyOzxicj4KJm5i c3A7fTxicj4KJm5ic3A7PGJyPgpAQCAtNTI0LDggKzUyOSw5IEBAIGx1YV9kZWNvZGVfbWFwX2hl YWRlcihsdWFfU3RhdGUgKkwpPGJyPgombmJzcDt7PGJyPgombmJzcDsgY29uc3QgY2hhciAqZnVu Y19uYW1lID0gIm1zZ3BhY2suZGVjb2RlX21hcF9oZWFkZXIiOzxicj4KJm5ic3A7IGNvbnN0IGNo YXIgKmRhdGE7PGJyPgorIHVpbnQzMl90IGNkYXRhX3R5cGU7PGJyPgombmJzcDsgcHRyZGlmZl90 IHNpemU7PGJyPgotIHZlcmlmeV9kZWNvZGVfaGVhZGVyX2FyZ3MoTCwgZnVuY19uYW1lLCAmYW1w O2RhdGEsICZhbXA7c2l6ZSk7PGJyPgorIHZlcmlmeV9kZWNvZGVfaGVhZGVyX2FyZ3MoTCwgZnVu Y19uYW1lLCAmYW1wO2RhdGEsICZhbXA7Y2RhdGFfdHlwZSwgJmFtcDtzaXplKTs8YnI+CiZuYnNw Ozxicj4KJm5ic3A7IGlmIChtcF90eXBlb2YoKmRhdGEpICE9IE1QX01BUCk8YnI+CiZuYnNwOyBy ZXR1cm4gbHVhTF9lcnJvcihMLCAiJXM6IHVuZXhwZWN0ZWQgbXNncGFjayB0eXBlIiwgZnVuY19u YW1lKTs8YnI+CkBAIC01MzYsNyArNTQyLDcgQEAgbHVhX2RlY29kZV9tYXBfaGVhZGVyKGx1YV9T dGF0ZSAqTCk8YnI+CiZuYnNwOyB1aW50MzJfdCBsZW4gPSBtcF9kZWNvZGVfbWFwKCZhbXA7ZGF0 YSk7PGJyPgombmJzcDs8YnI+CiZuYnNwOyBsdWFfcHVzaGludGVnZXIoTCwgbGVuKTs8YnI+Ci0g Kihjb25zdCBjaGFyICoqKSBsdWFMX3B1c2hjZGF0YShMLCBDVElEX0NIQVJfUFRSKSA9IGRhdGE7 PGJyPgorICooY29uc3QgY2hhciAqKikgbHVhTF9wdXNoY2RhdGEoTCwgY2RhdGFfdHlwZSkgPSBk YXRhOzxicj4KJm5ic3A7IHJldHVybiAyOzxicj4KJm5ic3A7fTxicj4KJm5ic3A7PGJyPgpkaWZm IC0tZ2l0IGEvc3JjL2x1YS91dGlscy5jIGIvc3JjL2x1YS91dGlscy5jPGJyPgppbmRleCA3Zjdi ZjQ3NzYuLjhjYjk5MjBlMCAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9sdWEvdXRpbHMuYzxicj4KKysr IGIvc3JjL2x1YS91dGlscy5jPGJyPgpAQCAtNDMsOCArNDMsOCBAQCBpbnQgbHVhTF9hcnJheV9t ZXRhdGFibGVfcmVmID0gTFVBX1JFRk5JTDs8YnI+CiZuYnNwOzxicj4KJm5ic3A7c3RhdGljIHVp bnQzMl90IENUSURfU1RSVUNUX0lCVUY7PGJyPgombmJzcDtzdGF0aWMgdWludDMyX3QgQ1RJRF9T VFJVQ1RfSUJVRl9QVFI7PGJyPgotdWludDMyX3QgQ1RJRF9DSEFSX1BUUjs8YnI+Ci11aW50MzJf dCBDVElEX0NPTlNUX0NIQVJfUFRSOzxicj4KK3N0YXRpYyB1aW50MzJfdCBDVElEX0NIQVJfUFRS Ozxicj4KK3N0YXRpYyB1aW50MzJfdCBDVElEX0NPTlNUX0NIQVJfUFRSOzxicj4KJm5ic3A7dWlu dDMyX3QgQ1RJRF9ERUNJTUFMOzxicj4KJm5ic3A7PGJyPgombmJzcDs8YnI+CkBAIC0xMTM1LDcg KzExMzUsOCBAQCBsdWFMX2NoZWNraWJ1ZihzdHJ1Y3QgbHVhX1N0YXRlICpMLCBpbnQgaWR4KTxi cj4KJm5ic3A7fTxicj4KJm5ic3A7PGJyPgombmJzcDtpbnQ8YnI+Ci1sdWFMX2NoZWNrY29uc3Rj aGFyKHN0cnVjdCBsdWFfU3RhdGUgKkwsIGludCBpZHgsIGNvbnN0IGNoYXIgKipyZXMpPGJyPgor bHVhTF9jaGVja2NvbnN0Y2hhcihzdHJ1Y3QgbHVhX1N0YXRlICpMLCBpbnQgaWR4LCBjb25zdCBj aGFyICoqcmVzLDxicj4KKyB1aW50MzJfdCAqY2RhdGFfdHlwZV9wKTxicj4KJm5ic3A7ezxicj4K Jm5ic3A7IGlmIChsdWFfdHlwZShMLCBpZHgpICE9IExVQV9UQ0RBVEEpPGJyPgombmJzcDsgcmV0 dXJuIC0xOzxicj4KQEAgLTExNDQsNiArMTE0NSw3IEBAIGx1YUxfY2hlY2tjb25zdGNoYXIoc3Ry dWN0IGx1YV9TdGF0ZSAqTCwgaW50IGlkeCwgY29uc3QgY2hhciAqKnJlcyk8YnI+CiZuYnNwOyBp ZiAoY2RhdGFfdHlwZSAhPSBDVElEX0NIQVJfUFRSICZhbXA7JmFtcDsgY2RhdGFfdHlwZSAhPSBD VElEX0NPTlNUX0NIQVJfUFRSKTxicj4KJm5ic3A7IHJldHVybiAtMTs8YnI+CiZuYnNwOyAqcmVz ID0gY2RhdGEgIT0gTlVMTCA/ICooY29uc3QgY2hhciAqKikgY2RhdGEgOiBOVUxMOzxicj4KKyAq Y2RhdGFfdHlwZV9wID0gY2RhdGFfdHlwZTs8YnI+CiZuYnNwOyByZXR1cm4gMDs8YnI+CiZuYnNw O308YnI+CiZuYnNwOzxicj4KZGlmZiAtLWdpdCBhL3NyYy9sdWEvdXRpbHMuaCBiL3NyYy9sdWEv dXRpbHMuaDxicj4KaW5kZXggZDlmYjA3MDRmLi4wYjM2NzI3NjkgMTAwNjQ0PGJyPgotLS0gYS9z cmMvbHVhL3V0aWxzLmg8YnI+CisrKyBiL3NyYy9sdWEvdXRpbHMuaDxicj4KQEAgLTcxLDkgKzcx LDYgQEAgc3RydWN0IGlidWY7PGJyPgombmJzcDtleHRlcm4gc3RydWN0IGx1YV9TdGF0ZSAqdGFy YW50b29sX0w7PGJyPgombmJzcDtleHRlcm4gc3RydWN0IGlidWYgKnRhcmFudG9vbF9sdWFfaWJ1 Zjs8YnI+CiZuYnNwOzxicj4KLWV4dGVybiB1aW50MzJfdCBDVElEX0NPTlNUX0NIQVJfUFRSOzxi cj4KLWV4dGVybiB1aW50MzJfdCBDVElEX0NIQVJfUFRSOzxicj4KLTxicj4KJm5ic3A7LyoqIFxj b25kIHB1YmxpYyAqLzxicj4KJm5ic3A7PGJyPgombmJzcDsvKio8YnI+CkBAIC02MzUsNyArNjMy LDggQEAgbHVhTF9jaGVja2lidWYoc3RydWN0IGx1YV9TdGF0ZSAqTCwgaW50IGlkeCk7PGJyPgom bmJzcDsmbmJzcDsqIGNoYXIgcG9pbnRlci48YnI+CiZuYnNwOyZuYnNwOyovPGJyPgombmJzcDtp bnQ8YnI+Ci1sdWFMX2NoZWNrY29uc3RjaGFyKHN0cnVjdCBsdWFfU3RhdGUgKkwsIGludCBpZHgs IGNvbnN0IGNoYXIgKipyZXMpOzxicj4KK2x1YUxfY2hlY2tjb25zdGNoYXIoc3RydWN0IGx1YV9T dGF0ZSAqTCwgaW50IGlkeCwgY29uc3QgY2hhciAqKnJlcyw8YnI+CisgdWludDMyX3QgKmNkYXRh X3R5cGVfcCk7PGJyPgombmJzcDs8YnI+CiZuYnNwOy8qIHt7eyBIZWxwZXIgZnVuY3Rpb25zIHRv IGludGVyYWN0IHdpdGggYSBMdWEgaXRlcmF0b3IgZnJvbSBDICovPGJyPgombmJzcDs8YnI+CmRp ZmYgLS1naXQgYS90ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWEgYi90ZXN0L2Fw cC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWE8YnI+CmluZGV4IDE2MDlmNzY4Zi4uYjNlOWZh Y2MwIDEwMDY0NDxicj4KLS0tIGEvdGVzdC9hcHAtdGFwL2x1YS9zZXJpYWxpemVyX3Rlc3QubHVh PGJyPgorKysgYi90ZXN0L2FwcC10YXAvbHVhL3NlcmlhbGl6ZXJfdGVzdC5sdWE8YnI+CkBAIC00 MzMsNiArNDMzLDY0IEBAIGxvY2FsIGZ1bmN0aW9uIHRlc3RfZGVwdGgodGVzdCwgcyk8YnI+CiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3MuY2ZnKHtlbmNvZGVfZGVlcF9hc19uaWwgPSBk ZWVwX2FzX25pbCwgZW5jb2RlX21heF9kZXB0aCA9IG1heF9kZXB0aH0pPGJyPgombmJzcDtlbmQ8 YnI+CiZuYnNwOzxicj4KKy0tIGdoLTM5MjY6IEVuc3VyZSB0aGF0IGEgcmV0dXJuZWQgcG9pbnRl ciBoYXMgdGhlIHNhbWUgY2RhdGEgdHlwZTxicj4KKy0tIGFzIHBhc3NlZCBhcmd1bWVudC48YnI+ CistLTxicj4KKy0tIFRoZSB0ZXN0IGNhc2UgaXMgYXBwbGljYWJsZSBmb3IgbXNncGFjayBhbmQg bXNncGFja2ZmaS48YnI+Citsb2NhbCBmdW5jdGlvbiB0ZXN0X2RlY29kZV9idWZmZXIodGVzdCwg cyk8YnI+CisgbG9jYWwgY2FzZXMgPSB7PGJyPgorIHs8YnI+CisgJ2RlY29kZShjZGF0YSZsdDtj b25zdCBjaGFyIComZ3Q7LCBudW1iZXIpJyw8YnI+CisgZnVuYyA9IHMuZGVjb2RlLDxicj4KKyBh cmdzID0ge2ZmaS5jYXN0KCdjb25zdCBjaGFyIConLCAnXHg5M1x4MDFceDAyXHgwMycpLCA0fSw8 YnI+CisgZXhwX3JlcyA9IHsxLCAyLCAzfSw8YnI+CisgZXhwX3Jld2luZCA9IDQsPGJyPgorIH0s PGJyPgorIHs8YnI+CisgJ2RlY29kZShjZGF0YSZsdDtjaGFyIComZ3Q7LCBudW1iZXIpJyw8YnI+ CisgZnVuYyA9IHMuZGVjb2RlLDxicj4KKyBhcmdzID0ge2ZmaS5jYXN0KCdjaGFyIConLCAnXHg5 M1x4MDFceDAyXHgwMycpLCA0fSw8YnI+CisgZXhwX3JlcyA9IHsxLCAyLCAzfSw8YnI+CisgZXhw X3Jld2luZCA9IDQsPGJyPgorIH0sPGJyPgorIHs8YnI+CisgJ2RlY29kZV91bmNoZWNrZWQoY2Rh dGEmbHQ7Y29uc3QgY2hhciAqJmd0OyknLDxicj4KKyBmdW5jID0gcy5kZWNvZGVfdW5jaGVja2Vk LDxicj4KKyBhcmdzID0ge2ZmaS5jYXN0KCdjb25zdCBjaGFyIConLCAnXHg5M1x4MDFceDAyXHgw MycpfSw8YnI+CisgZXhwX3JlcyA9IHsxLCAyLCAzfSw8YnI+CisgZXhwX3Jld2luZCA9IDQsPGJy PgorIH0sPGJyPgorIHs8YnI+CisgJ2RlY29kZV91bmNoZWNrZWQoY2RhdGEmbHQ7Y2hhciAqJmd0 OyknLDxicj4KKyBmdW5jID0gcy5kZWNvZGVfdW5jaGVja2VkLDxicj4KKyBhcmdzID0ge2ZmaS5j YXN0KCdjaGFyIConLCAnXHg5M1x4MDFceDAyXHgwMycpfSw8YnI+CisgZXhwX3JlcyA9IHsxLCAy LCAzfSw8YnI+CisgZXhwX3Jld2luZCA9IDQsPGJyPgorIH0sPGJyPgorIH08YnI+Cis8YnI+Cisg dGVzdDpwbGFuKCNjYXNlcyk8YnI+Cis8YnI+CisgZm9yIF8sIGNhc2UgaW4gaXBhaXJzKGNhc2Vz KSBkbzxicj4KKyB0ZXN0OnRlc3QoY2FzZVsxXSwgZnVuY3Rpb24odGVzdCk8YnI+CisgdGVzdDpw bGFuKDQpPGJyPgorIGxvY2FsIGFyZ3NfbGVuID0gdGFibGUubWF4bihjYXNlLmFyZ3MpPGJyPgor IGxvY2FsIHJlcywgcmVzX2J1ZiA9IGNhc2UuZnVuYyh1bnBhY2soY2FzZS5hcmdzLCAxLCBhcmdz X2xlbikpPGJyPgorIHRlc3Q6aXNfZGVlcGx5KHJlcywgY2FzZS5leHBfcmVzLCAndmVyaWZ5IHJl c3VsdCcpPGJyPgorIGxvY2FsIGJ1ZiA9IGNhc2UuYXJnc1sxXTxicj4KKyBsb2NhbCByZXdpbmQg PSByZXNfYnVmIC0gYnVmPGJyPgorIHRlc3Q6aXMocmV3aW5kLCBjYXNlLmV4cF9yZXdpbmQsICd2 ZXJpZnkgcmVzdWx0aW5nIGJ1ZmZlcicpPGJyPgorIC0tIHRlc3Q6aXNjZGF0YSgpIGlzIG5vdCBz dWZmaWNpZW50IGhlcmUsIGJlY2F1c2UgaXQ8YnI+CisgLS0gaWdub3JlcyAnY29uc3QnIHF1YWxp ZmllciAoYmVjYXVzZSBvZiB1c2luZzxicj4KKyAtLSBmZmkuaXN0eXBlKCkpLjxicj4KKyB0ZXN0 OmlzKHR5cGUocmVzX2J1ZiksICdjZGF0YScsICd2ZXJpZnkgcmVzdWx0aW5nIGJ1ZmZlciB0eXBl Jyk8YnI+CisgbG9jYWwgYnVmX2N0eXBlID0gdG9zdHJpbmcoZmZpLnR5cGVvZihidWYpKTxicj4K KyBsb2NhbCByZXNfYnVmX2N0eXBlID0gdG9zdHJpbmcoZmZpLnR5cGVvZihyZXNfYnVmKSk8YnI+ CisgdGVzdDppcyhyZXNfYnVmX2N0eXBlLCBidWZfY3R5cGUsICd2ZXJpZnkgcmVzdWx0aW5nIGJ1 ZmZlciBjdHlwZScpPGJyPgorIGVuZCk8YnI+CisgZW5kPGJyPgorZW5kPGJyPgorPGJyPgombmJz cDtyZXR1cm4gezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdF91bnNpZ25l ZCA9IHRlc3RfdW5zaWduZWQ7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0ZXN0 X3NpZ25lZCA9IHRlc3Rfc2lnbmVkOzxicj4KQEAgLTQ0NCw0ICs1MDIsNSBAQCByZXR1cm4gezxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdF91Y2RhdGEgPSB0ZXN0X3VjZGF0 YTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3RfZGVjaW1hbCA9IHRlc3Rf ZGVjaW1hbDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3RfZGVwdGggPSB0 ZXN0X2RlcHRoOzxicj4KKyB0ZXN0X2RlY29kZV9idWZmZXIgPSB0ZXN0X2RlY29kZV9idWZmZXI7 PGJyPgombmJzcDt9PGJyPgpkaWZmIC0tZ2l0IGEvdGVzdC9hcHAtdGFwL21zZ3BhY2sudGVzdC5s dWEgYi90ZXN0L2FwcC10YXAvbXNncGFjay50ZXN0Lmx1YTxicj4KaW5kZXggNzUyZjEwN2E4Li4x ZGY5ZDIzNzIgMTAwNzU1PGJyPgotLS0gYS90ZXN0L2FwcC10YXAvbXNncGFjay50ZXN0Lmx1YTxi cj4KKysrIGIvdGVzdC9hcHAtdGFwL21zZ3BhY2sudGVzdC5sdWE8YnI+CkBAIC0xMzYsNiArMTM2 LDI3IEBAIGxvY2FsIGZ1bmN0aW9uIHRlc3RfZGVjb2RlX2FycmF5X21hcF9oZWFkZXIodGVzdCwg cyk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NpemUgPSA0LDxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ZXhwX2VyciA9IGVuZF9vZl9idWZmZXJfZXJyLDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fSw8YnI+CisgLS0gZ2gtMzkyNjog RW5zdXJlIHRoYXQgYSByZXR1cm5lZCBwb2ludGVyIGhhcyB0aGUgc2FtZTxicj4KKyAtLSBjZGF0 YSB0eXBlIGFzIHBhc3NlZCBhcmd1bWVudC48YnI+CisgLS08YnI+CisgLS0gY2RhdGEmbHQ7Y2hh ciAqJmd0OyBhcmd1bWVudHMgYXJlIHBhc3NlZCBpbiB0aGUgY2FzZXMgYWJvdmUsPGJyPgorIC0t IHNvIG9ubHkgY2RhdGEmbHQ7Y29uc3QgY2hhciAqJmd0OyBhcmd1bWVudCBpcyBjaGVja2VkIGhl cmUuPGJyPgorIHs8YnI+CisgJ2ZpeGFycmF5IChjb25zdCBjaGFyICopJyw8YnI+CisgZnVuYyA9 IHMuZGVjb2RlX2FycmF5X2hlYWRlciw8YnI+CisgZGF0YSA9IGZmaS5jYXN0KCdjb25zdCBjaGFy IConLCAnXHg5NCcpLDxicj4KKyBzaXplID0gMSw8YnI+CisgZXhwX2xlbiA9IDQsPGJyPgorIGV4 cF9yZXdpbmQgPSAxLDxicj4KKyB9LDxicj4KKyB7PGJyPgorICdmaXhtYXAgKGNvbnN0IGNoYXIg KiknLDxicj4KKyBmdW5jID0gcy5kZWNvZGVfbWFwX2hlYWRlciw8YnI+CisgZGF0YSA9IGZmaS5j YXN0KCdjb25zdCBjaGFyIConLCAnXHg4NCcpLDxicj4KKyBzaXplID0gMSw8YnI+CisgZXhwX2xl biA9IDQsPGJyPgorIGV4cF9yZXdpbmQgPSAxLDxicj4KKyB9LDxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7fTxicj4KJm5ic3A7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtsb2NhbCBiYWRfYXBpX2Nhc2VzID0gezxicj4KQEAgLTIwNiw5ICsyMjcsMTQgQEAgbG9j YWwgZnVuY3Rpb24gdGVzdF9kZWNvZGVfYXJyYXlfbWFwX2hlYWRlcih0ZXN0LCBzKTxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZTxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgbGVuLCBuZXdfYnVmID0gY2FzZS5mdW5jKGNh c2UuZGF0YSwgY2FzZS5zaXplKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgcmV3aW5k ID0gbmV3X2J1ZiAtIGNhc2UuZGF0YTxicj4KKzxicj4KKyAtLSBnaC0zOTI2OiBWZXJpZnkgY2Rh dGEgdHlwZSBvZiBhIHJldHVybmVkIGJ1ZmZlci48YnI+CisgbG9jYWwgZGF0YV9jdHlwZSA9IHRv c3RyaW5nKGZmaS50eXBlb2YoY2FzZS5kYXRhKSk8YnI+CisgbG9jYWwgbmV3X2J1Zl9jdHlwZSA9 IHRvc3RyaW5nKGZmaS50eXBlb2YobmV3X2J1ZikpPGJyPgorPGJyPgombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtsb2NhbCBkZXNjcmlwdGlvbiA9ICgnZ29vZDsgJXMnKTpmb3JtYXQoY2FzZVsxXSk8YnI+ Ci0gdGVzdDppc19kZWVwbHkoe2xlbiwgcmV3aW5kfSwge2Nhc2UuZXhwX2xlbiwgY2FzZS5leHBf cmV3aW5kfSw8YnI+Ci0gZGVzY3JpcHRpb24pPGJyPgorIHRlc3Q6aXNfZGVlcGx5KHtsZW4sIHJl d2luZCwgbmV3X2J1Zl9jdHlwZX0sIHtjYXNlLmV4cF9sZW4sPGJyPgorIGNhc2UuZXhwX3Jld2lu ZCwgZGF0YV9jdHlwZX0sIGRlc2NyaXB0aW9uKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPgombmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtlbmQ8YnI+CiZuYnNwOzxicj4KQEAgLTIzMSw3ICsyNTcsNyBAQCBlbmQ8YnI+ CiZuYnNwOzxicj4KJm5ic3A7dGFwLnRlc3QoIm1zZ3BhY2siLCBmdW5jdGlvbih0ZXN0KTxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc2VyaWFsaXplciA9IHJlcXVpcmUo J21zZ3BhY2snKTxicj4KLSB0ZXN0OnBsYW4oMTIpPGJyPgorIHRlc3Q6cGxhbigxMyk8YnI+CiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVzdCgidW5zaWduZWQiLCBjb21tb24u dGVzdF91bnNpZ25lZCwgc2VyaWFsaXplcik8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO3Rlc3Q6dGVzdCgic2lnbmVkIiwgY29tbW9uLnRlc3Rfc2lnbmVkLCBzZXJpYWxpemVyKTxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdDp0ZXN0KCJkb3VibGUiLCBjb21t b24udGVzdF9kb3VibGUsIHNlcmlhbGl6ZXIpPGJyPgpAQCAtMjQ0LDQgKzI3MCw1IEBAIHRhcC50 ZXN0KCJtc2dwYWNrIiwgZnVuY3Rpb24odGVzdCk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3Rlc3Q6dGVzdCgib2Zmc2V0cyIsIHRlc3Rfb2Zmc2V0cywgc2VyaWFsaXplcik8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVzdCgibWlzYyIsIHRlc3RfbWlz Yywgc2VyaWFsaXplcik8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Rlc3Q6dGVz dCgiZGVjb2RlX2FycmF5X21hcCIsIHRlc3RfZGVjb2RlX2FycmF5X21hcF9oZWFkZXIsIHNlcmlh bGl6ZXIpPGJyPgorIHRlc3Q6dGVzdCgiZGVjb2RlX2J1ZmZlciIsIGNvbW1vbi50ZXN0X2RlY29k ZV9idWZmZXIsIHNlcmlhbGl6ZXIpPGJyPgombmJzcDtlbmQpPGJyPgpkaWZmIC0tZ2l0IGEvdGVz dC9hcHAtdGFwL21zZ3BhY2tmZmkudGVzdC5sdWEgYi90ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50 ZXN0Lmx1YTxicj4KaW5kZXggZTY0MjI4ZTRkLi5iZTY5MDZlNjcgMTAwNzU1PGJyPgotLS0gYS90 ZXN0L2FwcC10YXAvbXNncGFja2ZmaS50ZXN0Lmx1YTxicj4KKysrIGIvdGVzdC9hcHAtdGFwL21z Z3BhY2tmZmkudGVzdC5sdWE8YnI+CkBAIC0xMTcsNDUgKzExNyw2IEBAIGxvY2FsIGZ1bmN0aW9u IHRlc3Rfb3RoZXIodGVzdCwgcyk8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2VuY29kZV9tYXhfZGVwdGggPSBtYXhfZGVwdGh9KTxicj4KJm5i c3A7ZW5kPGJyPgombmJzcDs8YnI+Ci0tLSBnaC0zOTI2OiBFbnN1cmUgdGhhdCBhIHJldHVybmVk IHBvaW50ZXIgaGFzIHRoZSBzYW1lIGNkYXRhIHR5cGU8YnI+Ci0tLSBhcyBwYXNzZWQgYXJndW1l bnQuPGJyPgotbG9jYWwgZnVuY3Rpb24gdGVzdF9kZWNvZGVfYnVmZmVyKHRlc3QsIHMpPGJyPgot IGxvY2FsIGNhc2VzID0gezxicj4KLSB7PGJyPgotICdkZWNvZGVfdW5jaGVja2VkKGNkYXRhJmx0 O2NvbnN0IGNoYXIgKiZndDspJyw8YnI+Ci0gZGF0YSA9IGZmaS5jYXN0KCdjb25zdCBjaGFyICon LCAnXHg5M1x4MDFceDAyXHgwMycpLDxicj4KLSBleHBfcmVzID0gezEsIDIsIDN9LDxicj4KLSBl eHBfcmV3aW5kID0gNCw8YnI+Ci0gfSw8YnI+Ci0gezxicj4KLSAnZGVjb2RlX3VuY2hlY2tlZChj ZGF0YSZsdDtjaGFyIComZ3Q7KScsPGJyPgotIGRhdGEgPSBmZmkuY2FzdCgnY2hhciAqJywgJ1x4 OTNceDAxXHgwMlx4MDMnKSw8YnI+Ci0gZXhwX3JlcyA9IHsxLCAyLCAzfSw8YnI+Ci0gZXhwX3Jl d2luZCA9IDQsPGJyPgotIH0sPGJyPgotIH08YnI+Ci08YnI+Ci0gdGVzdDpwbGFuKCNjYXNlcyk8 YnI+Ci08YnI+Ci0gZm9yIF8sIGNhc2UgaW4gaXBhaXJzKGNhc2VzKSBkbzxicj4KLSB0ZXN0OnRl c3QoY2FzZVsxXSwgZnVuY3Rpb24odGVzdCk8YnI+Ci0gdGVzdDpwbGFuKDQpPGJyPgotIGxvY2Fs IHJlcywgcmVzX2J1ZiA9IHMuZGVjb2RlX3VuY2hlY2tlZChjYXNlLmRhdGEpPGJyPgotIHRlc3Q6 aXNfZGVlcGx5KHJlcywgY2FzZS5leHBfcmVzLCAndmVyaWZ5IHJlc3VsdCcpPGJyPgotIGxvY2Fs IHJld2luZCA9IHJlc19idWYgLSBjYXNlLmRhdGE8YnI+Ci0gdGVzdDppcyhyZXdpbmQsIGNhc2Uu ZXhwX3Jld2luZCwgJ3ZlcmlmeSByZXN1bHRpbmcgYnVmZmVyJyk8YnI+Ci0gLS0gdGVzdDppc2Nk YXRhKCkgaXMgbm90IHN1ZmZpY2llbnQgaGVyZSwgYmVjYXVzZSBpdDxicj4KLSAtLSBpZ25vcmVz ICdjb25zdCcgcXVhbGlmaWVyIChiZWNhdXNlIG9mIHVzaW5nPGJyPgotIC0tIGZmaS5pc3R5cGUo KSkuPGJyPgotIHRlc3Q6aXModHlwZShyZXNfYnVmKSwgJ2NkYXRhJywgJ3ZlcmlmeSByZXN1bHRp bmcgYnVmZmVyIHR5cGUnKTxicj4KLSBsb2NhbCBkYXRhX2N0eXBlID0gdG9zdHJpbmcoZmZpLnR5 cGVvZihjYXNlLmRhdGEpKTxicj4KLSBsb2NhbCByZXNfYnVmX2N0eXBlID0gdG9zdHJpbmcoZmZp LnR5cGVvZihyZXNfYnVmKSk8YnI+Ci0gdGVzdDppcyhyZXNfYnVmX2N0eXBlLCBkYXRhX2N0eXBl LCAndmVyaWZ5IHJlc3VsdGluZyBidWZmZXIgY3R5cGUnKTxicj4KLSBlbmQpPGJyPgotIGVuZDxi cj4KLWVuZDxicj4KLTxicj4KLTxicj4KJm5ic3A7dGFwLnRlc3QoIm1zZ3BhY2tmZmkiLCBmdW5j dGlvbih0ZXN0KTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc2VyaWFs aXplciA9IHJlcXVpcmUoJ21zZ3BhY2tmZmknKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7dGVzdDpwbGFuKDExKTxicj4KQEAgLTE3MSw1ICsxMzIsNSBAQCB0YXAudGVzdCgibXNn cGFja2ZmaSIsIGZ1bmN0aW9uKHRlc3QpPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDstLXRlc3Q6dGVzdCgidWNkYXRhIiwgY29tbW9uLnRlc3RfdWNkYXRhLCBzZXJpYWxpemVyKTxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGVzdDp0ZXN0KCJvZmZzZXRzIiwgdGVz dF9vZmZzZXRzLCBzZXJpYWxpemVyKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 dGVzdDp0ZXN0KCJvdGhlciIsIHRlc3Rfb3RoZXIsIHNlcmlhbGl6ZXIpPGJyPgotIHRlc3Q6dGVz dCgiZGVjb2RlX2J1ZmZlciIsIHRlc3RfZGVjb2RlX2J1ZmZlciwgc2VyaWFsaXplcik8YnI+Cisg dGVzdDp0ZXN0KCJkZWNvZGVfYnVmZmVyIiwgY29tbW9uLnRlc3RfZGVjb2RlX2J1ZmZlciwgc2Vy aWFsaXplcik8YnI+CiZuYnNwO2VuZCk8YnI+CiZuYnNwOzwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwv ZGl2Pgo8L2Jsb2NrcXVvdGU+CiZuYnNwOwoKPGRpdj4mbmJzcDs8L2Rpdj4KCjxkaXYgZGF0YS1z aWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPgo8ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0i Y29udGVudCI+CjxkaXY+LS08YnI+Ck1hcmlhIEtoYXlkaWNoPC9kaXY+CjwvZGl2Pgo8L2Rpdj4K CjxkaXY+Jm5ic3A7PC9kaXY+CjwvZGl2Pgo8L0JPRFk+PC9IVE1MPgo= ----ALT--4aCd9F821B079F632E5baD07498c30341573644066--