From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f347.i.mail.ru (f347.i.mail.ru [217.69.130.232]) (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 5B7724696C3 for ; Thu, 9 Apr 2020 07:31:47 +0300 (MSK) From: =?UTF-8?B?QWxleGFuZGVyIFRpa2hvbm92?= MIME-Version: 1.0 Date: Thu, 09 Apr 2020 07:31:46 +0300 Reply-To: =?UTF-8?B?QWxleGFuZGVyIFRpa2hvbm92?= Message-ID: <1586406706.611331004@f347.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--b15E2c85eF5be68B27D8B98485dD1f581586406706" In-Reply-To: <2211143d95d0385682f79fb632bd7fd84c442c23.1586341316.git.sergeyb@tarantool.org> References: <2211143d95d0385682f79fb632bd7fd84c442c23.1586341316.git.sergeyb@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_1/6=5D_Fix_luacheck_war?= =?utf-8?q?nings_in_src/lua/?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?U2VyZ2V5IEJyb25uaWtvdg==?= Cc: o.piskunov@tarantool.org, tarantool-patches@dev.tarantool.org ----ALT--b15E2c85eF5be68B27D8B98485dD1f581586406706 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIFNlcmdleSwgdGhhbmsgeW91IGZvciB0aGUgcGF0Y2gsIExHVE0uCgrCoCAKPtCh0YDQtdC0 0LAsIDgg0LDQv9GA0LXQu9GPIDIwMjAsIDE4OjQzICswMzowMCDQvtGCIFNlcmdleSBCcm9ubmlr b3YgPGVzdGV0dXNAZ21haWwuY29tPjoKPsKgCj5Gcm9tOiBTZXJnZXkgQnJvbm5pa292IDwgc2Vy Z2V5YkB0YXJhbnRvb2wub3JnID4KPgo+TWFueSB3YXJuaW5ncyBmaXhlZCB3aXRoIGhlbHAgZnJv bSBWbGFkaXNsYXYgU2hwaWxldm95Lgo+Cj5DbG9zZXMgIzQ2ODEKPi0tLQo+wqBzcmMvbHVhL2Fy Z3BhcnNlLmx1YSB8IDYgKystLQo+wqBzcmMvbHVhL2J1ZmZlci5sdWEgfCA0ICstLQo+wqBzcmMv bHVhL2Nsb2NrLmx1YSB8IDIgKy0KPsKgc3JjL2x1YS9jcnlwdG8ubHVhIHwgNCArLS0KPsKgc3Jj L2x1YS9jc3YubHVhIHwgNSArKy0KPsKgc3JjL2x1YS9kaWdlc3QubHVhIHwgMiArLQo+wqBzcmMv bHVhL2Vudi5sdWEgfCAyICstCj7CoHNyYy9sdWEvZmlvLmx1YSB8IDI1ICsrKysrKystLS0tLS0t Cj7CoHNyYy9sdWEvaHR0cGMubHVhIHwgMyAtLQo+wqBzcmMvbHVhL2luaXQubHVhIHwgNyArKy0t Cj7CoHNyYy9sdWEvbXNncGFja2ZmaS5sdWEgfCAxNiArKystLS0tLS0KPsKgc3JjL2x1YS9zb2Nr ZXQubHVhIHwgNjUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj7CoHNyYy9s dWEvc3RyaW5nLmx1YSB8IDEgLQo+wqBzcmMvbHVhL3N3aW0ubHVhIHwgMTYgKysrKy0tLS0tCj7C oHNyYy9sdWEvdGFwLmx1YSB8IDc1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQo+wqBzcmMvbHVhL3RyaWdnZXIubHVhIHwgMyAtLQo+wqAxNiBmaWxlcyBjaGFuZ2Vk LCAxMDkgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0aW9ucygtKQo+Cj5kaWZmIC0tZ2l0IGEvc3Jj L2x1YS9hcmdwYXJzZS5sdWEgYi9zcmMvbHVhL2FyZ3BhcnNlLmx1YQo+aW5kZXggZmFhMGFlMTMw Li5mNTg5ODU0MjUgMTAwNjQ0Cj4tLS0gYS9zcmMvbHVhL2FyZ3BhcnNlLmx1YQo+KysrIGIvc3Jj L2x1YS9hcmdwYXJzZS5sdWEKPkBAIC05MCw4ICs5MCw4IEBAIGxvY2FsIGZ1bmN0aW9uIGNvbnZl cnRfcGFyYW1ldGVyKG5hbWUsIGNvbnZlcnRfZnJvbSwgY29udmVydF90bykKPsKgwqDCoMKgwqBy ZXR1cm4gY29udmVydF9mcm9tCj7CoGVuZAo+wqAKPi1sb2NhbCBmdW5jdGlvbiBwYXJhbWV0ZXJz X3BhcnNlKHRfaW4sIG9wdGlvbnMpCj4tIGxvY2FsIHRfb3V0LCB0X2luID0ge30sIHRfaW4gb3Ig e30KPitsb2NhbCBmdW5jdGlvbiBwYXJhbWV0ZXJzX3BhcnNlKHRfX2luLCBvcHRpb25zKQo+KyBs b2NhbCB0X291dCwgdF9pbiA9IHt9LCB0X19pbiBvciB7fQo+wqAKPsKgwqDCoMKgwqAtLSBQcmVw YXJlIGEgbG9va3VwIHRhYmxlIGZvciBvcHRpb25zLiBBbiBvcHRpb24gbmFtZSAtPiBhCj7CoMKg wqDCoMKgLS0gdHlwZSBuYW1lIHRvIGNvbnZlcnQgYSBwYXJhbWV0ZXIgaW50byBvciB0cnVlICh3 aGljaCBtZWFucwo+QEAgLTE0NSw3ICsxNDUsNyBAQCBsb2NhbCBmdW5jdGlvbiBwYXJhbWV0ZXJz X3BhcnNlKHRfaW4sIG9wdGlvbnMpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgcGFyYW1ldGVyX2hhc192YWx1ZShsb29rdXBbY29tbWFuZF0pIHRoZW4KPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC0tIGluIGNhc2UgbmV4dCBhcmd1bWVudCBp cyB2YWx1ZSBvZiB0aGlzIGtleSAobm90IC0tYXJnKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgbG9jYWwgbmV4dF9hcmcgPSB0X2luW2kgKyAxXQo+LSBsb2NhbCBp c19sb25nLCBpc19zaG9ydCwgaXNfZGFzaCA9IHBhcnNlX3BhcmFtX3ByZWZpeChuZXh0X2FyZykK PisgaXNfbG9uZywgaXNfc2hvcnQsIGlzX2Rhc2ggPSBwYXJzZV9wYXJhbV9wcmVmaXgobmV4dF9h cmcpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiBpc19kYXNo IHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg c2tpcF9wYXJhbSA9IHRydWUKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGVsc2VpZiBpc19sb25nID09IGZhbHNlIGFuZCBub3QgaXNfc2hvcnQgYW5kIG5vdCBpc19k YXNoIHRoZW4KPmRpZmYgLS1naXQgYS9zcmMvbHVhL2J1ZmZlci5sdWEgYi9zcmMvbHVhL2J1ZmZl ci5sdWEKPmluZGV4IDlhYWM4MmIzOS4uNDNjN2UxMTcwIDEwMDY0NAo+LS0tIGEvc3JjL2x1YS9i dWZmZXIubHVhCj4rKysgYi9zcmMvbHVhL2J1ZmZlci5sdWEKPkBAIC0xODIsNyArMTgyLDcgQEAg bG9jYWwgaWJ1Zl9tZXRob2RzID0gewo+wqDCoMKgwqDCoHVudXNlZCA9IGlidWZfdW51c2VkOwo+ wqB9Cj7CoAo+LWxvY2FsIGZ1bmN0aW9uIGlidWZfdG9zdHJpbmcoaWJ1ZikKPitsb2NhbCBmdW5j dGlvbiBpYnVmX3Rvc3RyaW5nKCkKPsKgwqDCoMKgwqByZXR1cm4gJzxpYnVmPicKPsKgZW5kCj7C oGxvY2FsIGlidWZfbXQgPSB7Cj5AQCAtMTkzLDcgKzE5Myw3IEBAIGxvY2FsIGlidWZfbXQgPSB7 Cj7CoAo+wqBmZmkubWV0YXR5cGUoaWJ1Zl90LCBpYnVmX210KTsKPsKgCj4tbG9jYWwgZnVuY3Rp b24gaWJ1Zl9uZXcoYXJnLCBhcmcyKQo+K2xvY2FsIGZ1bmN0aW9uIGlidWZfbmV3KGFyZykKPsKg wqDCoMKgwqBsb2NhbCBidWYgPSBmZmkubmV3KGlidWZfdCkKPsKgwqDCoMKgwqBsb2NhbCBzbGFi YyA9IGJ1aWx0aW4udGFyYW50b29sX2x1YV9zbGFiX2NhY2hlKCkKPsKgwqDCoMKgwqBidWlsdGlu LmlidWZfY3JlYXRlKGJ1Ziwgc2xhYmMsIFJFQURBSEVBRCkKPmRpZmYgLS1naXQgYS9zcmMvbHVh L2Nsb2NrLmx1YSBiL3NyYy9sdWEvY2xvY2subHVhCj5pbmRleCA2MGM3ODY2M2MuLmZlZTQzY2Nk ZSAxMDA2NDQKPi0tLSBhL3NyYy9sdWEvY2xvY2subHVhCj4rKysgYi9zcmMvbHVhL2Nsb2NrLmx1 YQo+QEAgLTMzLDcgKzMzLDcgQEAgY2xvY2suYmVuY2ggPSBmdW5jdGlvbihmdW4sIC4uLikKPsKg wqDCoMKgwqBvdmVyaGVhZCA9IGNsb2NrLnByb2MoKSAtIG92ZXJoZWFkCj7CoMKgwqDCoMKgbG9j YWwgc3RhcnRfdGltZSA9IGNsb2NrLnByb2MoKQo+wqDCoMKgwqDCoGxvY2FsIHJlcyA9IHswLCBm dW4oLi4uKX0KPi0gcmVzWzFdID0gY2xvY2sucHJvYygpIC0gc3RhcnRfdGltZSAtIG92ZXJoZWFk LCByZXMKPisgcmVzWzFdID0gY2xvY2sucHJvYygpIC0gc3RhcnRfdGltZSAtIG92ZXJoZWFkCj7C oMKgwqDCoMKgcmV0dXJuIHJlcwo+wqBlbmQKPsKgCj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9jcnlw dG8ubHVhIGIvc3JjL2x1YS9jcnlwdG8ubHVhCj5pbmRleCBiZjMwNjRjNzAuLmMwZWIwZDMwMyAx MDA2NDQKPi0tLSBhL3NyYy9sdWEvY3J5cHRvLmx1YQo+KysrIGIvc3JjL2x1YS9jcnlwdG8ubHVh Cj5AQCAtNzUsNyArNzUsNyBAQCBsb2NhbCBmdW5jdGlvbiBvcGVuc3NsX2Vycl9zdHIoKQo+wqBl bmQKPsKgCj7CoGxvY2FsIGRpZ2VzdHMgPSB7fQo+LWZvciBjbGFzcywgbmFtZSBpbiBwYWlycyh7 Cj4rZm9yIGNsYXNzLCBfIGluIHBhaXJzKHsKPsKgwqDCoMKgwqBtZDIgPSAnTUQyJywgbWQ0ID0g J01ENCcsIG1kNSA9ICdNRDUnLAo+wqDCoMKgwqDCoHNoYTEgPSAnU0hBMScsIHNoYTIyNCA9ICdT SEEyMjQnLAo+wqDCoMKgwqDCoHNoYTI1NiA9ICdTSEEyNTYnLCBzaGEzODQgPSAnU0hBMzg0Jywg c2hhNTEyID0gJ1NIQTUxMicsCj5AQCAtNDI4LDcgKzQyOCw3IEBAIGxvY2FsIHB1YmxpY19tZXRo b2RzID0gewo+wqB9Cj7CoAo+wqBsb2NhbCBtb2R1bGVfbXQgPSB7Cj4tIF9fc2VyaWFsaXplID0g ZnVuY3Rpb24ocykKPisgX19zZXJpYWxpemUgPSBmdW5jdGlvbigpCj7CoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gcHVibGljX21ldGhvZHMKPsKgwqDCoMKgwqBlbmQsCj7CoMKgwqDCoMKgX19pbmRl eCA9IHB1YmxpY19tZXRob2RzCj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9jc3YubHVhIGIvc3JjL2x1 YS9jc3YubHVhCj5pbmRleCA3ZGZmMmYyMTMuLmRlNjcyNmJiNyAxMDA2NDQKPi0tLSBhL3NyYy9s dWEvY3N2Lmx1YQo+KysrIGIvc3JjL2x1YS9jc3YubHVhCj5AQCAtMTg4LDEwICsxODgsMTAgQEAg bW9kdWxlLmR1bXAgPSBmdW5jdGlvbih0LCBvcHRzLCB3cml0YWJsZSkKPsKgwqDCoMKgwqBpZiB0 eXBlKHdyaXRhYmxlKSA9PSAnbmlsJyB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqByZXN1bHRfdGFi bGUgPSB7fQo+wqDCoMKgwqDCoGVuZAo+LSBmb3IgaywgbGluZSBpbiBwYWlycyh0KSBkbwo+KyBm b3IgXywgbGluZSBpbiBwYWlycyh0KSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgbG9jYWwgZmlyc3Qg PSB0cnVlCj7CoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCBvdXRwdXRfdHVwbGUgPSB7fQo+LSBmb3Ig azIsIGZpZWxkIGluIHBhaXJzKGxpbmUpIGRvCj4rIGZvciBfLCBmaWVsZCBpbiBwYWlycyhsaW5l KSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCBzdHJmID0gdG9zdHJpbmcoZmll bGQpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIGJ1Zl9uZXdfc2l6ZSA9IChzdHJm OmxlbigpICsgMSkgKiAyCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIGJ1Zl9uZXdfc2l6 ZSA+IGJ1ZnN6IHRoZW4KPkBAIC0yMTQsNyArMjE0LDYgQEAgbW9kdWxlLmR1bXAgPSBmdW5jdGlv bih0LCBvcHRzLCB3cml0YWJsZSkKPsKgwqDCoMKgwqDCoMKgwqDCoGVsc2UKPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgd3JpdGFibGU6d3JpdGUodGFibGUuY29uY2F0KG91dHB1dF90dXBsZSkp Cj7CoMKgwqDCoMKgwqDCoMKgwqBlbmQKPi0gb3V0cHV0X3R1cGxlID0ge30KPsKgwqDCoMKgwqBl bmQKPsKgwqDCoMKgwqBmZmkuQy5jc3ZfZGVzdHJveShjc3YpCj7CoMKgwqDCoMKgY3N2LnJlYWxs b2MoYnVmLCAwKQo+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvZGlnZXN0Lmx1YSBiL3NyYy9sdWEvZGln ZXN0Lmx1YQo+aW5kZXggNmVkOTFjZmEyLi43ZjFhZWE4ZDAgMTAwNjQ0Cj4tLS0gYS9zcmMvbHVh L2RpZ2VzdC5sdWEKPisrKyBiL3NyYy9sdWEvZGlnZXN0Lmx1YQo+QEAgLTI0Niw3ICsyNDYsNyBA QCBsb2NhbCBtID0gewo+wqDCoMKgwqDCoGVuZAo+wqB9Cj7CoAo+LWZvciBkaWdlc3QsIG5hbWUg aW4gcGFpcnMoZGlnZXN0X3Nob3J0Y3V0cykgZG8KPitmb3IgZGlnZXN0LCBfIGluIHBhaXJzKGRp Z2VzdF9zaG9ydGN1dHMpIGRvCj7CoMKgwqDCoMKgbVtkaWdlc3RdID0gZnVuY3Rpb24gKHN0cikK PsKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBjcnlwdG8uZGlnZXN0W2RpZ2VzdF0oc3RyKQo+wqDC oMKgwqDCoGVuZAo+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvZW52Lmx1YSBiL3NyYy9sdWEvZW52Lmx1 YQo+aW5kZXggZGQxNjE2YTg0Li5hMzFiNzA5OGYgMTAwNjQ0Cj4tLS0gYS9zcmMvbHVhL2Vudi5s dWEKPisrKyBiL3NyYy9sdWEvZW52Lmx1YQo+QEAgLTI4LDcgKzI4LDcgQEAgb3MuZW52aXJvbiA9 IGZ1bmN0aW9uKCkKPsKgZW5kCj7CoAo+wqBvcy5zZXRlbnYgPSBmdW5jdGlvbihrZXksIHZhbHVl KQo+LSBsb2NhbCBydiA9IG5pbAo+KyBsb2NhbCBydgo+wqDCoMKgwqDCoGlmIHZhbHVlIH49IG5p bCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqBydiA9IGZmaS5DLnNldGVudihrZXksIHZhbHVlLCAx KQo+wqDCoMKgwqDCoGVsc2UKPmRpZmYgLS1naXQgYS9zcmMvbHVhL2Zpby5sdWEgYi9zcmMvbHVh L2Zpby5sdWEKPmluZGV4IDgzZmRkYWEwYS4uYjJiNGI0Yzc3IDEwMDY0NAo+LS0tIGEvc3JjL2x1 YS9maW8ubHVhCj4rKysgYi9zcmMvbHVhL2Zpby5sdWEKPkBAIC0zMjksNyArMzI5LDcgQEAgZmlv LmFic3BhdGggPSBmdW5jdGlvbihwYXRoKQo+wqDCoMKgwqDCoMKgwqDCoMKgZXJyb3IoIlVzYWdl OiBmaW8uYWJzcGF0aChwYXRoKSIpCj7CoMKgwqDCoMKgZW5kCj7CoMKgwqDCoMKgcGF0aCA9IHBh dGgKPi0gbG9jYWwgam9pbmVkX3BhdGggPSAnJwo+KyBsb2NhbCBqb2luZWRfcGF0aAo+wqDCoMKg wqDCoGxvY2FsIHBhdGhfdGFiID0ge30KPsKgwqDCoMKgwqBpZiBzdHJpbmcuc3ViKHBhdGgsIDEs IDEpID09ICcvJyB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqBqb2luZWRfcGF0aCA9IHBhdGgKPkBA IC0zNjYsNyArMzY2LDcgQEAgZmlvLmxpc3RkaXIgPSBmdW5jdGlvbihwYXRoKQo+wqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIHQKPsKgwqDCoMKgwqBlbmQKPsKgwqDCoMKgwqBsb2NhbCBuYW1lcyA9 IHN0cmluZy5zcGxpdChzdHIsICJcbiIpCj4tIGZvciBpLCBuYW1lIGluIGlwYWlycyhuYW1lcykg ZG8KPisgZm9yIF8sIG5hbWUgaW4gaXBhaXJzKG5hbWVzKSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKg dGFibGUuaW5zZXJ0KHQsIG5hbWUpCj7CoMKgwqDCoMKgZW5kCj7CoMKgwqDCoMKgcmV0dXJuIHQK PkBAIC0zNzgsMTUgKzM3OCwxNSBAQCBmaW8ubWt0cmVlID0gZnVuY3Rpb24ocGF0aCwgbW9kZSkK PsKgwqDCoMKgwqBlbmQKPsKgwqDCoMKgwqBwYXRoID0gZmlvLmFic3BhdGgocGF0aCkKPsKgCj4t IGxvY2FsIHBhdGggPSBzdHJpbmcuZ3N1YihwYXRoLCAnXi8nLCAnJykKPisgcGF0aCA9IHN0cmlu Zy5nc3ViKHBhdGgsICdeLycsICcnKQo+wqDCoMKgwqDCoGxvY2FsIGRpcnMgPSBzdHJpbmcuc3Bs aXQocGF0aCwgIi8iKQo+wqAKPsKgwqDCoMKgwqBsb2NhbCBjdXJyZW50X2RpciA9ICIvIgo+LSBm b3IgaSwgZGlyIGluIGlwYWlycyhkaXJzKSBkbwo+KyBmb3IgXywgZGlyIGluIGlwYWlycyhkaXJz KSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgY3VycmVudF9kaXIgPSBmaW8ucGF0aGpvaW4oY3VycmVu dF9kaXIsIGRpcikKPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHN0YXQgPSBmaW8uc3RhdChjdXJy ZW50X2RpcikKPsKgwqDCoMKgwqDCoMKgwqDCoGlmIHN0YXQgPT0gbmlsIHRoZW4KPi0gbG9jYWwg c3QsIGVyciA9IGZpby5ta2RpcihjdXJyZW50X2RpciwgbW9kZSkKPisgbG9jYWwgXywgZXJyID0g ZmlvLm1rZGlyKGN1cnJlbnRfZGlyLCBtb2RlKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAt LSBmaW8uc3RhdCgpIGFuZCBmaW8ubWtkaXIoKSBhYm92ZSBhcmUgc2VwYXJhdGUgY2FsbHMKPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLS0gYW5kIGEgZmlsZSBzeXN0ZW0gbWF5IGJlIGNoYW5n ZWQgYmV0d2VlbiB0aGVtLiBTbwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAtLSBpZiB0aGUg ZXJyb3IgaGVyZSBpcyBkdWUgdG8gYW4gZXhpc3RpbmcgZGlyZWN0b3J5LAo+QEAgLTQwNywyMCAr NDA3LDIwIEBAIGZpby5ybXRyZWUgPSBmdW5jdGlvbihwYXRoKQo+wqDCoMKgwqDCoGlmIHR5cGUo cGF0aCkgfj0gJ3N0cmluZycgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgZXJyb3IoIlVzYWdlOiBm aW8ucm10cmVlKHBhdGgpIikKPsKgwqDCoMKgwqBlbmQKPi0gbG9jYWwgc3RhdHVzLCBlcnIKPisg bG9jYWwgc3RhdHVzCj7CoMKgwqDCoMKgcGF0aCA9IGZpby5hYnNwYXRoKHBhdGgpCj7CoMKgwqDC oMKgbG9jYWwgbHMsIGVyciA9IGZpby5saXN0ZGlyKHBhdGgpCj7CoMKgwqDCoMKgaWYgZXJyIH49 IG5pbCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gbmlsLCBlcnIKPsKgwqDCoMKgwqBl bmQKPi0gZm9yIGksIGYgaW4gaXBhaXJzKGxzKSBkbwo+KyBmb3IgXywgZiBpbiBpcGFpcnMobHMp IGRvCj7CoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCB0bXBwYXRoID0gZmlvLnBhdGhqb2luKHBhdGgs IGYpCj7CoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCBzdCA9IGZpby5sc3RhdCh0bXBwYXRoKQo+wqDC oMKgwqDCoMKgwqDCoMKgaWYgc3QgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiBz dDppc19kaXIoKSB0aGVuCj4tIHN0LCBlcnIgPSBmaW8ucm10cmVlKHRtcHBhdGgpCj4rIF8sIGVy ciA9IGZpby5ybXRyZWUodG1wcGF0aCkKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+ LSBzdCwgZXJyID0gZmlvLnVubGluayh0bXBwYXRoKQo+KyBfLCBlcnIgPSBmaW8udW5saW5rKHRt cHBhdGgpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiBlcnIgfj0gbmlsIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gbmlsLCBlcnIKPkBAIC00NzEsMTAgKzQ3MSwxMCBAQCBmaW8uY29weXRyZWUg PSBmdW5jdGlvbihmcm9tLCB0bykKPsKgwqDCoMKgwqBpZiByZWFzb24gfj0gbmlsIHRoZW4KPsKg wqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZSwgcmVhc29uCj7CoMKgwqDCoMKgZW5kCj4tIGZv ciBpLCBmIGluIGlwYWlycyhscykgZG8KPisgZm9yIF8sIGYgaW4gaXBhaXJzKGxzKSBkbwo+wqDC oMKgwqDCoMKgwqDCoMKgbG9jYWwgZmZyb20gPSBmaW8ucGF0aGpvaW4oZnJvbSwgZikKPsKgwqDC oMKgwqDCoMKgwqDCoGxvY2FsIGZ0byA9IGZpby5wYXRoam9pbih0bywgZikKPi0gbG9jYWwgc3Qg PSBmaW8ubHN0YXQoZmZyb20pCj4rIHN0ID0gZmlvLmxzdGF0KGZmcm9tKQo+wqDCoMKgwqDCoMKg wqDCoMKgaWYgc3QgYW5kIHN0OmlzX2RpcigpIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgc3RhdHVzLCByZWFzb24gPSBmaW8uY29weXRyZWUoZmZyb20sIGZ0bykKPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWYgcmVhc29uIH49IG5pbCB0aGVuCj5AQCAtNDg4LDcgKzQ4OCw4IEBA IGZpby5jb3B5dHJlZSA9IGZ1bmN0aW9uKGZyb20sIHRvKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBlbmQKPsKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDCoMKgwqDCoMKgaWYgc3Q6 aXNfbGluaygpIHRoZW4KPi0gbG9jYWwgbGlua190bywgcmVhc29uID0gZmlvLnJlYWRsaW5rKGZm cm9tKQo+KyBsb2NhbCBsaW5rX3RvCj4rIGxpbmtfdG8sIHJlYXNvbiA9IGZpby5yZWFkbGluayhm ZnJvbSkKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgcmVhc29uIH49IG5pbCB0aGVuCj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlLCByZWFzb24KPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW5kCj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9odHRwYy5s dWEgYi9zcmMvbHVhL2h0dHBjLmx1YQo+aW5kZXggNjM4MWM2YTFhLi45MzM2ZGNlZTAgMTAwNjQ0 Cj4tLS0gYS9zcmMvbHVhL2h0dHBjLmx1YQo+KysrIGIvc3JjL2x1YS9odHRwYy5sdWEKPkBAIC0y OSw4ICsyOSw2IEBACj7CoC0tIFNVQ0ggREFNQUdFLgo+wqAtLQo+wqAKPi1sb2NhbCBmaWJlciA9 IHJlcXVpcmUoJ2ZpYmVyJykKPi0KPsKgbG9jYWwgZHJpdmVyID0gcGFja2FnZS5sb2FkZWQuaHR0 cC5jbGllbnQKPsKgcGFja2FnZS5sb2FkZWQuaHR0cCA9IG5pbAo+wqAKPkBAIC0xMTIsNyArMTEw LDYgQEAgbG9jYWwgc3BlY2lhbF9jaGFyYWN0ZXJzID0gewo+wqDCoMKgwqDCoFsnXSddID0gdHJ1 ZSwKPsKgwqDCoMKgwqBbJzwnXSA9IHRydWUsCj7CoMKgwqDCoMKgWyc+J10gPSB0cnVlLAo+LSBb Jz4nXSA9IHRydWUsCj7CoMKgwqDCoMKgWydAJ10gPSB0cnVlLAo+wqDCoMKgwqDCoFsnLCddID0g dHJ1ZSwKPsKgwqDCoMKgwqBbJzsnXSA9IHRydWUsCj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9pbml0 Lmx1YSBiL3NyYy9sdWEvaW5pdC5sdWEKPmluZGV4IGZmM2U3NGMzYy4uYTgzMTU0OWQxIDEwMDY0 NAo+LS0tIGEvc3JjL2x1YS9pbml0Lmx1YQo+KysrIGIvc3JjL2x1YS9pbml0Lmx1YQo+QEAgLTE0 NCw5ICsxNDQsOSBAQCBsb2NhbCBmdW5jdGlvbiBnZW5fc2VhcmNoX2Z1bmMocGF0aF9mbiwgdGVt cGxhdGVzLCBuZWVkX3RyYXZlcnNlKQo+wqAKPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHNlYXJj aHBhdGhzID0ge30KPsKgCj4tIGZvciBfLCBwYXRoIGluIGlwYWlycyhwYXRocykgZG8KPisgZm9y IF8sIHAgaW4gaXBhaXJzKHBhdGhzKSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3Ig XywgdGVtcGxhdGUgaW4gcGFpcnModGVtcGxhdGVzKSBkbwo+LSB0YWJsZS5pbnNlcnQoc2VhcmNo cGF0aHMsIGZpby5wYXRoam9pbihwYXRoLCB0ZW1wbGF0ZSkpCj4rIHRhYmxlLmluc2VydChzZWFy Y2hwYXRocywgZmlvLnBhdGhqb2luKHAsIHRlbXBsYXRlKSkKPsKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZW5kCj7CoMKgwqDCoMKgwqDCoMKgwqBlbmQKPsKgCj5AQCAtMTc2LDcgKzE3Niw4IEBA IGxvY2FsIGZ1bmN0aW9uIGdlbl9sb2FkZXJfZnVuYyhzZWFyY2hfZm4sIGxvYWRfZm4pCj7CoMKg wqDCoMKgwqDCoMKgwqBpZiBub3QgZmlsZSB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiBlcnIKPsKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+LSBsb2NhbCBsb2FkZWQsIGVyciA9 IGxvYWRfZm4oZmlsZSwgbmFtZSkKPisgbG9jYWwgbG9hZGVkCj4rIGxvYWRlZCwgZXJyID0gbG9h ZF9mbihmaWxlLCBuYW1lKQo+wqDCoMKgwqDCoMKgwqDCoMKgaWYgZXJyID09IG5pbCB0aGVuCj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBsb2FkZWQKPsKgwqDCoMKgwqDCoMKgwqDC oGVsc2UKPmRpZmYgLS1naXQgYS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9tc2dw YWNrZmZpLmx1YQo+aW5kZXggZjc3NWYyZDQxLi5lYWNmMmQxZDUgMTAwNjQ0Cj4tLS0gYS9zcmMv bHVhL21zZ3BhY2tmZmkubHVhCj4rKysgYi9zcmMvbHVhL21zZ3BhY2tmZmkubHVhCj5AQCAtMjkx LDEwICsyOTEsNiBAQCBsb2NhbCBmdW5jdGlvbiBlbmNvZGUob2JqKQo+wqDCoMKgwqDCoHJldHVy biByCj7CoGVuZAo+wqAKPi1sb2NhbCBmdW5jdGlvbiBlbmNvZGVfaWJ1ZihvYmosIGlidWYpCj4t IGVuY29kZV9yKGlidWYsIG9iaiwgMCkKPi1lbmQKPi0KPsKgb25fZW5jb2RlKGZmaS50eXBlb2Yo J3VpbnQ4X3QnKSwgZW5jb2RlX2ludCkKPsKgb25fZW5jb2RlKGZmaS50eXBlb2YoJ3VpbnQxNl90 JyksIGVuY29kZV9pbnQpCj7CoG9uX2VuY29kZShmZmkudHlwZW9mKCd1aW50MzJfdCcpLCBlbmNv ZGVfaW50KQo+QEAgLTMyMCw3ICszMTYsNiBAQCBsb2NhbCBkZWNvZGVfcgo+wqAKPsKgLS0gU2Vl IHNpbWlsYXIgY29uc3RhbnRzIGluIHV0aWxzLmNjCj7CoGxvY2FsIERCTF9JTlRfTUFYID0gMWUx NCAtIDEKPi1sb2NhbCBEQkxfSU5UX01JTiA9IC0xZTE0ICsgMQo+wqAKPsKgbG9jYWwgZnVuY3Rp b24gZGVjb2RlX3U4KGRhdGEpCj7CoMKgwqDCoMKgbG9jYWwgbnVtID0gZmZpLmNhc3QodWludDhf cHRyX3QsIGRhdGFbMF0pWzBdCj5AQCAtNDY1LDggKzQ2MCw3IEBAIGVuZAo+wqBsb2NhbCBmdW5j dGlvbiBkZWNvZGVfYXJyYXkoZGF0YSwgc2l6ZSkKPsKgwqDCoMKgwqBhc3NlcnQgKHR5cGUoc2l6 ZSkgPT0gIm51bWJlciIpCj7CoMKgwqDCoMKgbG9jYWwgYXJyID0ge30KPi0gbG9jYWwgaQo+LSBm b3IgaT0xLHNpemUsMSBkbwo+KyBmb3IgXyA9IDEsIHNpemUgZG8KPsKgwqDCoMKgwqDCoMKgwqDC oHRhYmxlLmluc2VydChhcnIsIGRlY29kZV9yKGRhdGEpKQo+wqDCoMKgwqDCoGVuZAo+wqDCoMKg wqDCoGlmIG5vdCBtc2dwYWNrLmNmZy5kZWNvZGVfc2F2ZV9tZXRhdGFibGVzIHRoZW4KPkBAIC00 NzgsOCArNDcyLDcgQEAgZW5kCj7CoGxvY2FsIGZ1bmN0aW9uIGRlY29kZV9tYXAoZGF0YSwgc2l6 ZSkKPsKgwqDCoMKgwqBhc3NlcnQgKHR5cGUoc2l6ZSkgPT0gIm51bWJlciIpCj7CoMKgwqDCoMKg bG9jYWwgbWFwID0ge30KPi0gbG9jYWwgaQo+LSBmb3IgaT0xLHNpemUsMSBkbwo+KyBmb3IgXyA9 IDEsIHNpemUgZG8KPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIGtleSA9IGRlY29kZV9yKGRhdGEp Owo+wqDCoMKgwqDCoMKgwqDCoMKgbG9jYWwgdmFsID0gZGVjb2RlX3IoZGF0YSk7Cj7CoMKgwqDC oMKgwqDCoMKgwqBtYXBba2V5XSA9IHZhbAo+QEAgLTQ5Miw3ICs0ODUsNyBAQCBlbmQKPsKgCj7C oGxvY2FsIGV4dF9kZWNvZGVyID0gewo+wqDCoMKgwqDCoC0tIE1QX1VOS05PV05fRVhURU5TSU9O Cj4tIFswXSA9IGZ1bmN0aW9uKGRhdGEsIGxlbikgZXJyb3IoInVuc3VwcG9ydGVkIGV4dGVuc2lv biB0eXBlIikgZW5kLAo+KyBbMF0gPSBmdW5jdGlvbigpIGVycm9yKCJ1bnN1cHBvcnRlZCBleHRl bnNpb24gdHlwZSIpIGVuZCwKPsKgwqDCoMKgwqAtLSBNUF9ERUNJTUFMCj7CoMKgwqDCoMKgWzFd ID0gZnVuY3Rpb24oZGF0YSwgbGVuKSBsb2NhbCBudW0gPSBmZmkubmV3KCJkZWNpbWFsX3QiKSBi dWlsdGluLmRlY2ltYWxfdW5wYWNrKGRhdGEsIGxlbiwgbnVtKSByZXR1cm4gbnVtIGVuZCwKPsKg fQo+QEAgLTUwMiw3ICs0OTUsNiBAQCBsb2NhbCBmdW5jdGlvbiBkZWNvZGVfZXh0KGRhdGEpCj7C oMKgwqDCoMKgLS0gbXBfZGVjb2RlX2V4dGwgYW5kIG1wX2RlY29kZV9kZWNpbWFsCj7CoMKgwqDC oMKgLS0gbmVlZCB0eXBlIGNvZGUKPsKgwqDCoMKgwqBkYXRhWzBdID0gZGF0YVswXSAtIDEKPi0g bG9jYWwgb2xkX2RhdGEgPSBkYXRhWzBdCj7CoMKgwqDCoMKgbG9jYWwgbGVuID0gYnVpbHRpbi5t cF9kZWNvZGVfZXh0bChkYXRhLCB0KQo+wqDCoMKgwqDCoGxvY2FsIGZ1biA9IGV4dF9kZWNvZGVy W3RbMF1dCj7CoMKgwqDCoMKgaWYgdHlwZShmdW4pID09ICdmdW5jdGlvbicgdGhlbgo+QEAgLTU4 OSw3ICs1ODEsNyBAQCBsb2NhbCBmdW5jdGlvbiBjaGVja19vZmZzZXQob2Zmc2V0LCBsZW4pCj7C oMKgwqDCoMKgaWYgb2Zmc2V0ID09IG5pbCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g MQo+wqDCoMKgwqDCoGVuZAo+LSBsb2NhbCBvZmZzZXQgPSBmZmkuY2FzdCgncHRyZGlmZl90Jywg b2Zmc2V0KQo+KyBvZmZzZXQgPSBmZmkuY2FzdCgncHRyZGlmZl90Jywgb2Zmc2V0KQo+wqDCoMKg wqDCoGlmIG9mZnNldCA8IDEgb3Igb2Zmc2V0ID4gbGVuIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDC oGVycm9yKHN0cmluZy5mb3JtYXQoIm9mZnNldCA9ICVkIGlzIG91dCBvZiBib3VuZHMgWzEuLiVk XSIsCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRvbnVtYmVyKG9mZnNldCksIGxlbikpCj5k aWZmIC0tZ2l0IGEvc3JjL2x1YS9zb2NrZXQubHVhIGIvc3JjL2x1YS9zb2NrZXQubHVhCj5pbmRl eCBhMzM0YWQ0NWIuLjMxN2FjZmU4ZSAxMDA2NDQKPi0tLSBhL3NyYy9sdWEvc29ja2V0Lmx1YQo+ KysrIGIvc3JjL2x1YS9zb2NrZXQubHVhCj5AQCAtMTcyLDcgKzE3Miw3IEBAIGxvY2FsIGZ1bmN0 aW9uIGdldF9pZmxhZ3ModGFibGUsIGZsYWdzKQo+wqDCoMKgwqDCoGlmIHR5cGUoZmxhZ3MpIH49 ICd0YWJsZScgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgZmxhZ3MgPSB7IGZsYWdzIH0KPsKgwqDC oMKgwqBlbmQKPi0gZm9yIGksIGYgaW4gcGFpcnMoZmxhZ3MpIGRvCj4rIGZvciBfLCBmIGluIHBh aXJzKGZsYWdzKSBkbwo+wqDCoMKgwqDCoMKgwqDCoMKgaWYgdGFibGVbZl0gPT0gbmlsIHRoZW4K PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIG5pbAo+wqDCoMKgwqDCoMKgwqDCoMKg ZW5kCj5AQCAtNjYwLDcgKzY2MCw3IEBAIGxvY2FsIGZ1bmN0aW9uIGNoZWNrX2RlbGltaXRlcihz ZWxmLCBsaW1pdCwgZW9scykKPsKgwqDCoMKgwqBlbmQKPsKgCj7CoMKgwqDCoMKgbG9jYWwgc2hv cnRlc3QKPi0gZm9yIGksIGVvbCBpbiBpcGFpcnMoZW9scykgZG8KPisgZm9yIF8sIGVvbCBpbiBp cGFpcnMoZW9scykgZG8KPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIGRhdGEgPSBmZmkuQy5tZW1t ZW0ocmJ1Zi5ycG9zLCByYnVmOnNpemUoKSwgZW9sLCAjZW9sKQo+wqDCoMKgwqDCoMKgwqDCoMKg aWYgZGF0YSB+PSBuaWwgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NhbCBsZW4g PSBmZmkuY2FzdCgnY2hhciAqJywgZGF0YSkgLSByYnVmLnJwb3MgKyAjZW9sCj5AQCAtNzA2LDE2 ICs3MDYsMTYgQEAgbG9jYWwgZnVuY3Rpb24gcmVhZChzZWxmLCBsaW1pdCwgdGltZW91dCwgY2hl Y2ssIC4uLikKPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHJlcyA9IHN5c3JlYWQoc2VsZiwgZGF0 YSwgcmJ1Zjp1bnVzZWQoKSkKPsKgwqDCoMKgwqDCoMKgwqDCoGlmIHJlcyA9PSAwIHRoZW4gLS0g ZW9mCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNlbGYuX2Vycm5vID0gbmlsCj4tIGxvY2Fs IGxlbiA9IHJidWY6c2l6ZSgpCj4tIGxvY2FsIGRhdGEgPSBmZmkuc3RyaW5nKHJidWYucnBvcywg bGVuKQo+KyBsZW4gPSByYnVmOnNpemUoKQo+KyBkYXRhID0gZmZpLnN0cmluZyhyYnVmLnJwb3Ms IGxlbikKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmJ1Zi5ycG9zID0gcmJ1Zi5ycG9zICsg bGVuCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBkYXRhCj7CoMKgwqDCoMKgwqDC oMKgwqBlbHNlaWYgcmVzIH49IG5pbCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJi dWYud3BvcyA9IHJidWYud3BvcyArIHJlcwo+LSBsb2NhbCBsZW4gPSBjaGVjayhzZWxmLCBsaW1p dCwgLi4uKQo+KyBsZW4gPSBjaGVjayhzZWxmLCBsaW1pdCwgLi4uKQo+wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZiBsZW4gfj0gbmlsIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBzZWxmLl9lcnJubyA9IG5pbAo+LSBsb2NhbCBkYXRhID0gZmZpLnN0cmluZyhyYnVm LnJwb3MsIGxlbikKPisgZGF0YSA9IGZmaS5zdHJpbmcocmJ1Zi5ycG9zLCBsZW4pCj7CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmJ1Zi5ycG9zID0gcmJ1Zi5ycG9zICsgbGVuCj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGRhdGEKPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZW5kCj5AQCAtMTAzOSw3ICsxMDM5LDcgQEAgbG9jYWwgZnVuY3Rpb24g dGNwX2Nvbm5lY3QoaG9zdCwgcG9ydCwgdGltZW91dCkKPsKgwqDCoMKgwqDCoMKgwqDCoGJveGVy cm5vKDApCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcwo+wqDCoMKgwqDCoGVuZAo+LSBsb2Nh bCB0aW1lb3V0ID0gdGltZW91dCBvciBUSU1FT1VUX0lORklOSVRZCj4rIHRpbWVvdXQgPSB0aW1l b3V0IG9yIFRJTUVPVVRfSU5GSU5JVFkKPsKgwqDCoMKgwqBsb2NhbCBzdG9wID0gZmliZXIuY2xv Y2soKSArIHRpbWVvdXQKPsKgwqDCoMKgwqBsb2NhbCBkbnMgPSBnZXRhZGRyaW5mbyhob3N0LCBw b3J0LCB0aW1lb3V0LCB7IHR5cGUgPSAnU09DS19TVFJFQU0nLAo+wqDCoMKgwqDCoMKgwqDCoMKg cHJvdG9jb2wgPSAndGNwJyB9KQo+QEAgLTEwNDcsNyArMTA0Nyw3IEBAIGxvY2FsIGZ1bmN0aW9u IHRjcF9jb25uZWN0KGhvc3QsIHBvcnQsIHRpbWVvdXQpCj7CoMKgwqDCoMKgwqDCoMKgwqBib3hl cnJubyhib3hlcnJuby5FSU5WQUwpCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gbmlsCj7CoMKg wqDCoMKgZW5kCj4tIGZvciBpLCByZW1vdGUgaW4gcGFpcnMoZG5zKSBkbwo+KyBmb3IgXywgcmVt b3RlIGluIHBhaXJzKGRucykgZG8KPsKgwqDCoMKgwqDCoMKgwqDCoHRpbWVvdXQgPSBzdG9wIC0g ZmliZXIuY2xvY2soKQo+wqDCoMKgwqDCoMKgwqDCoMKgaWYgdGltZW91dCA8PSAwIHRoZW4KPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYm94ZXJybm8oYm94ZXJybm8uRVRJTUVET1VUKQo+QEAg LTEwNzgsOCArMTA3OCw4IEBAIGxvY2FsIGZ1bmN0aW9uIHRjcF9zZXJ2ZXJfaGFuZGxlcihzZXJ2 ZXIsIHNjLCBmcm9tKQo+wqDCoMKgwqDCoGVuZAo+wqBlbmQKPsKgCj4tbG9jYWwgZnVuY3Rpb24g dGNwX3NlcnZlcl9sb29wKHNlcnZlciwgcywgYWRkcikKPi0gZmliZXIubmFtZShmb3JtYXQoIiVz LyVzOiVzIiwgc2VydmVyLm5hbWUsIGFkZHIuaG9zdCwgYWRkci5wb3J0KSwge3RydW5jYXRlID0g dHJ1ZX0pCj4rbG9jYWwgZnVuY3Rpb24gdGNwX3NlcnZlcl9sb29wKHNlcnZlciwgcywgYWRkcmVz cykKPisgZmliZXIubmFtZShmb3JtYXQoIiVzLyVzOiVzIiwgc2VydmVyLm5hbWUsIGFkZHJlc3Mu aG9zdCwgYWRkcmVzcy5wb3J0KSwge3RydW5jYXRlID0gdHJ1ZX0pCj7CoMKgwqDCoMKgbG9nLmlu Zm8oInN0YXJ0ZWQiKQo+wqDCoMKgwqDCoHdoaWxlIHNvY2tldF9yZWFkYWJsZShzKSBkbwo+wqDC oMKgwqDCoMKgwqDCoMKgbG9jYWwgc2MsIGZyb20gPSBzb2NrZXRfYWNjZXB0KHMpCj5AQCAtMTEw NCwxNSArMTEwNCwxNSBAQCBsb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVyX3VzYWdlKCkKPsKgwqDC oMKgwqBlcnJvcignVXNhZ2U6IHNvY2tldC50Y3Bfc2VydmVyKGhvc3QsIHBvcnQsIGhhbmRsZXIg fCBvcHRzKScpCj7CoGVuZAo+wqAKPi1sb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVyX2RvX2JpbmQo cywgYWRkcikKPi0gaWYgc29ja2V0X2JpbmQocywgYWRkci5ob3N0LCBhZGRyLnBvcnQpIHRoZW4K Pi0gaWYgYWRkci5mYW1pbHkgPT0gJ0FGX1VOSVgnIHRoZW4KPitsb2NhbCBmdW5jdGlvbiB0Y3Bf c2VydmVyX2RvX2JpbmQocywgYWRkcmVzcykKPisgaWYgc29ja2V0X2JpbmQocywgYWRkcmVzcy5o b3N0LCBhZGRyZXNzLnBvcnQpIHRoZW4KPisgaWYgYWRkcmVzcy5mYW1pbHkgPT0gJ0FGX1VOSVgn IHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLS0gTWFrZSBjbG9zZSgpIHJlbW92ZSB0 aGUgdW5peCBzb2NrZXQgZmlsZSBjcmVhdGVkCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC0t IGJ5IGJpbmQoKS4gTm90ZSwgdGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIGNsb3NpbmcKPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgLS0gdGhlIHNvY2tldCBmZCBzbyB0aGF0IG5vIG90aGVyIHRj cCBzZXJ2ZXIgY2FuCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC0tIHJldXNlIHRoZSBzYW1l IHBhdGggYmVmb3JlIHdlIHJlbW92ZSB0aGUgZmlsZS4KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcy5jbG9zZSA9IGZ1bmN0aW9uKHNlbGYpCj4tIGZpby51bmxpbmsoYWRkci5wb3J0KQo+KyBm aW8udW5saW5rKGFkZHJlc3MucG9ydCkKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gc29ja2V0X2Nsb3NlKHNlbGYpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVu ZAo+wqDCoMKgwqDCoMKgwqDCoMKgZW5kCj5AQCAtMTEyMSwxMiArMTEyMSwxMiBAQCBsb2NhbCBm dW5jdGlvbiB0Y3Bfc2VydmVyX2RvX2JpbmQocywgYWRkcikKPsKgwqDCoMKgwqByZXR1cm4gZmFs c2UKPsKgZW5kCj7CoAo+LWxvY2FsIGZ1bmN0aW9uIHRjcF9zZXJ2ZXJfYmluZF9hZGRyKHMsIGFk ZHIpCj4tIGlmIHRjcF9zZXJ2ZXJfZG9fYmluZChzLCBhZGRyKSB0aGVuCj4rbG9jYWwgZnVuY3Rp b24gdGNwX3NlcnZlcl9iaW5kX2FkZHIocywgYWRkcmVzcykKPisgaWYgdGNwX3NlcnZlcl9kb19i aW5kKHMsIGFkZHJlc3MpIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiB0cnVlCj7CoMKg wqDCoMKgZW5kCj7CoAo+LSBpZiBhZGRyLmZhbWlseSB+PSAnQUZfVU5JWCcgdGhlbgo+KyBpZiBh ZGRyZXNzLmZhbWlseSB+PSAnQUZfVU5JWCcgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IGZhbHNlCj7CoMKgwqDCoMKgZW5kCj7CoAo+QEAgLTExMzYsNyArMTEzNiw3IEBAIGxvY2FsIGZ1 bmN0aW9uIHRjcF9zZXJ2ZXJfYmluZF9hZGRyKHMsIGFkZHIpCj7CoAo+wqDCoMKgwqDCoGxvY2Fs IHNhdmVfZXJybm8gPSBib3hlcnJubygpCj7CoAo+LSBsb2NhbCBzYyA9IHRjcF9jb25uZWN0KGFk ZHIuaG9zdCwgYWRkci5wb3J0KQo+KyBsb2NhbCBzYyA9IHRjcF9jb25uZWN0KGFkZHJlc3MuaG9z dCwgYWRkcmVzcy5wb3J0KQo+wqDCoMKgwqDCoGlmIHNjIH49IG5pbCB0aGVuCj7CoMKgwqDCoMKg wqDCoMKgwqBzYzpjbG9zZSgpCj7CoMKgwqDCoMKgwqDCoMKgwqBib3hlcnJubyhzYXZlX2Vycm5v KQo+QEAgLTExNDgsMTMgKzExNDgsMTMgQEAgbG9jYWwgZnVuY3Rpb24gdGNwX3NlcnZlcl9iaW5k X2FkZHIocywgYWRkcikKPsKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZQo+wqDCoMKgwqDC oGVuZAo+wqAKPi0gbG9nLmluZm8oInRjcF9zZXJ2ZXI6IHJlbW92ZSBkZWFkIFVOSVggc29ja2V0 OiAlcyIsIGFkZHIucG9ydCkKPi0gaWYgbm90IGZpby51bmxpbmsoYWRkci5wb3J0KSB0aGVuCj4r IGxvZy5pbmZvKCJ0Y3Bfc2VydmVyOiByZW1vdmUgZGVhZCBVTklYIHNvY2tldDogJXMiLCBhZGRy ZXNzLnBvcnQpCj4rIGlmIG5vdCBmaW8udW5saW5rKGFkZHJlc3MucG9ydCkgdGhlbgo+wqDCoMKg wqDCoMKgwqDCoMKgbG9nLndhcm4oInRjcF9zZXJ2ZXI6ICVzIiwgYm94ZXJybm8uc3RyZXJyb3Io KSkKPsKgwqDCoMKgwqDCoMKgwqDCoGJveGVycm5vKHNhdmVfZXJybm8pCj7CoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gZmFsc2UKPsKgwqDCoMKgwqBlbmQKPi0gcmV0dXJuIHRjcF9zZXJ2ZXJfZG9f YmluZChzLCBhZGRyKQo+KyByZXR1cm4gdGNwX3NlcnZlcl9kb19iaW5kKHMsIGFkZHJlc3MpCj7C oGVuZAo+wqAKPsKgCj5AQCAtMTE3Miw4ICsxMTcyLDggQEAgbG9jYWwgZnVuY3Rpb24gdGNwX3Nl cnZlcl9iaW5kKGhvc3QsIHBvcnQsIHByZXBhcmUsIHRpbWVvdXQpCj7CoMKgwqDCoMKgwqDCoMKg wqBlbmQKPsKgwqDCoMKgwqBlbmQKPsKgCj4tIGZvciBfLCBhZGRyIGluIGlwYWlycyhkbnMpIGRv Cj4tIGxvY2FsIHMgPSBzb2NrZXRfbmV3KGFkZHIuZmFtaWx5LCBhZGRyLnR5cGUsIGFkZHIucHJv dG9jb2wpCj4rIGZvciBfLCBhZGRyZXNzIGluIGlwYWlycyhkbnMpIGRvCj4rIGxvY2FsIHMgPSBz b2NrZXRfbmV3KGFkZHJlc3MuZmFtaWx5LCBhZGRyZXNzLnR5cGUsIGFkZHJlc3MucHJvdG9jb2wp Cj7CoMKgwqDCoMKgwqDCoMKgwqBpZiBzIH49IG5pbCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGxvY2FsIGJhY2tsb2cKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgcHJlcGFy ZSB0aGVuCj5AQCAtMTE4MSwxMyArMTE4MSwxMyBAQCBsb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVy X2JpbmQoaG9zdCwgcG9ydCwgcHJlcGFyZSwgdGltZW91dCkKPsKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZWxzZQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNvY2tldF9zZXRz b2Nrb3B0KHMsICdTT0xfU09DS0VUJywgJ1NPX1JFVVNFQUREUicsIDEpIC0tIGlnbm9yZSBlcnJv cgo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbmQKPi0gaWYgbm90IHRjcF9zZXJ2ZXJfYmlu ZF9hZGRyKHMsIGFkZHIpIG9yIG5vdCBzOmxpc3RlbihiYWNrbG9nKSB0aGVuCj4rIGlmIG5vdCB0 Y3Bfc2VydmVyX2JpbmRfYWRkcihzLCBhZGRyZXNzKSBvciBub3QgczpsaXN0ZW4oYmFja2xvZykg dGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIHNhdmVfZXJybm8g PSBib3hlcnJubygpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc29ja2V0X2Ns b3NlKHMpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYm94ZXJybm8oc2F2ZV9l cnJubykKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gbmlsCj7CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+LSByZXR1cm4gcywgYWRkcgo+KyByZXR1cm4gcywg YWRkcmVzcwo+wqDCoMKgwqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDCoC0t IEROUyByZXNvbHZlZCBzdWNjZXNzZnVsbHksIGJ1dCBhZGRyZXNzcyBmYW1pbHkgaXMgbm90IHN1 cHBvcnRlZAo+QEAgLTEyMTEsMTIgKzEyMTEsMTIgQEAgbG9jYWwgZnVuY3Rpb24gdGNwX3NlcnZl cihob3N0LCBwb3J0LCBvcHRzLCB0aW1lb3V0KQo+wqDCoMKgwqDCoMKgwqDCoMKgdGNwX3NlcnZl cl91c2FnZSgpCj7CoMKgwqDCoMKgZW5kCj7CoMKgwqDCoMKgc2VydmVyLm5hbWUgPSBzZXJ2ZXIu bmFtZSBvciAnc2VydmVyJwo+LSBsb2NhbCBzLCBhZGRyID0gdGNwX3NlcnZlcl9iaW5kKGhvc3Qs IHBvcnQsIHNlcnZlci5wcmVwYXJlLCB0aW1lb3V0KQo+KyBsb2NhbCBzLCBhZGRyZXNzID0gdGNw X3NlcnZlcl9iaW5kKGhvc3QsIHBvcnQsIHNlcnZlci5wcmVwYXJlLCB0aW1lb3V0KQo+wqDCoMKg wqDCoGlmIG5vdCBzIHRoZW4KPsKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBuaWwKPsKgwqDCoMKg wqBlbmQKPi0gZmliZXIuY3JlYXRlKHRjcF9zZXJ2ZXJfbG9vcCwgc2VydmVyLCBzLCBhZGRyKQo+ LSByZXR1cm4gcywgYWRkcgo+KyBmaWJlci5jcmVhdGUodGNwX3NlcnZlcl9sb29wLCBzZXJ2ZXIs IHMsIGFkZHJlc3MpCj4rIHJldHVybiBzLCBhZGRyZXNzCj7CoGVuZAo+wqAKPsKgc29ja2V0X210 ID0gewo+QEAgLTEzMTEsMTAgKzEzMTEsOSBAQCBsb2NhbCBmdW5jdGlvbiBsc29ja2V0X3RjcF9n ZXRwZWVybmFtZShzZWxmKQo+wqDCoMKgwqDCoHJldHVybiBwZWVyLmhvc3QsIHRvc3RyaW5nKHBl ZXIucG9ydCksIHBlZXIuZmFtaWx5Om1hdGNoKCJBRl8oLiopIik6bG93ZXIoKQo+wqBlbmQKPsKg Cj4tbG9jYWwgZnVuY3Rpb24gbHNvY2tldF90Y3Bfc2V0dGltZW91dChzZWxmLCB2YWx1ZSwgbW9k ZSkKPitsb2NhbCBmdW5jdGlvbiBsc29ja2V0X3RjcF9zZXR0aW1lb3V0KHNlbGYsIHZhbHVlKQo+ wqDCoMKgwqDCoGNoZWNrX3NvY2tldChzZWxmKQo+wqDCoMKgwqDCoHNlbGYudGltZW91dCA9IHZh bHVlCj4tIC0tIG1vZGUgaXMgZWZmZWN0aXZlbHkgaWdub3JlZAo+wqDCoMKgwqDCoHJldHVybiAx Cj7CoGVuZAo+wqAKPkBAIC0xNDY3LDcgKzE0NjYsNyBAQCBsb2NhbCBmdW5jdGlvbiBsc29ja2V0 X3RjcF9yZWNlaXZlKHNlbGYsIHBhdHRlcm4sIHByZWZpeCkKPsKgwqDCoMKgwqDCoMKgwqDCoGxv Y2FsIHJlc3VsdCA9IHsgcHJlZml4IH0KPsKgwqDCoMKgwqDCoMKgwqDCoGxvY2FsIGRlYWRsaW5l ID0gZmliZXIuY2xvY2soKSArIChzZWxmLnRpbWVvdXQgb3IgVElNRU9VVF9JTkZJTklUWSkKPsKg wqDCoMKgwqDCoMKgwqDCoHJlcGVhdAo+LSBsb2NhbCBkYXRhID0gcmVhZChzZWxmLCBMSU1JVF9J TkZJTklUWSwgdGltZW91dCwgY2hlY2tfaW5maW5pdHkpCj4rIGRhdGEgPSByZWFkKHNlbGYsIExJ TUlUX0lORklOSVRZLCB0aW1lb3V0LCBjaGVja19pbmZpbml0eSkKPsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaWYgZGF0YSA9PSBuaWwgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlmIG5vdCBlcnJub19pc190cmFuc2llbnRbc2VsZi5fZXJybm9dIHRoZW4KPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBuaWwsIHNvY2tldF9l cnJvcihzZWxmKQo+QEAgLTE1MzUsNyArMTUzNCw3IEBAIGxzb2NrZXRfdGNwX210Ll9faW5kZXgu c2VuZCA9IGxzb2NrZXRfdGNwX3NlbmQ7Cj7CoC0tIFRDUCBDb25zdHJ1Y3RvciBhbmQgU2hvcnRj dXRzCj7CoC0tCj7CoAo+LWxvY2FsIGZ1bmN0aW9uIGxzb2NrZXRfdGNwKCkKPitsb2NhbCBmdW5j dGlvbiBsc29ja2V0X3RjcChzZWxmKQo+wqDCoMKgwqDCoGxvY2FsIHMgPSBzb2NrZXRfbmV3KCdB Rl9JTkVUJywgJ1NPQ0tfU1RSRUFNJywgJ3RjcCcpCj7CoMKgwqDCoMKgaWYgbm90IHMgdGhlbgo+ wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIG5pbCwgc29ja2V0X2Vycm9yKHNlbGYpCj5AQCAtMTU1 OSw3ICsxNTU4LDcgQEAgbG9jYWwgZnVuY3Rpb24gbHNvY2tldF9iaW5kKGhvc3QsIHBvcnQsIGJh Y2tsb2cpCj7CoMKgwqDCoMKgaWYgaG9zdCA9PSBuaWwgb3IgcG9ydCA9PSBuaWwgdGhlbgo+wqDC oMKgwqDCoMKgwqDCoMKgZXJyb3IoIlVzYWdlOiBsdWFzb2NrZXQuYmluZChob3N0LCBwb3J0IFss IGJhY2tsb2ddKSIpCj7CoMKgwqDCoMKgZW5kCj4tIGxvY2FsIGZ1bmN0aW9uIHByZXBhcmUocykg cmV0dXJuIGJhY2tsb2cgZW5kCj4rIGxvY2FsIGZ1bmN0aW9uIHByZXBhcmUoKSByZXR1cm4gYmFj a2xvZyBlbmQKPsKgwqDCoMKgwqBsb2NhbCBzID0gdGNwX3NlcnZlcl9iaW5kKGhvc3QsIHBvcnQs IHByZXBhcmUpCj7CoMKgwqDCoMKgaWYgbm90IHMgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIG5pbCwgYm94ZXJybm8uc3RyZXJyb3IoKQo+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvc3RyaW5n Lmx1YSBiL3NyYy9sdWEvc3RyaW5nLmx1YQo+aW5kZXggNmUxMmM1OWFlLi5kM2E4NDY2NDUgMTAw NjQ0Cj4tLS0gYS9zcmMvbHVhL3N0cmluZy5sdWEKPisrKyBiL3NyYy9sdWEvc3RyaW5nLmx1YQo+ QEAgLTIzMyw3ICsyMzMsNiBAQCBsb2NhbCBmdW5jdGlvbiBzdHJpbmdfc3RhcnRzd2l0aChpbnAs IGhlYWQsIF9zdGFydCwgX2VuZCkKPsKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZQo+wqDC oMKgwqDCoGVuZAo+wqDCoMKgwqDCoF9zdGFydCA9IF9zdGFydCAtIDEKPi0gX2VuZCA9IF9zdGFy dCArIGhlYWRfbGVuIC0gMQo+wqDCoMKgwqDCoHJldHVybiBtZW1jbXAoY19jaGFyX3B0cihpbnAp ICsgX3N0YXJ0LCBjX2NoYXJfcHRyKGhlYWQpLCBoZWFkX2xlbikgPT0gMAo+wqBlbmQKPsKgCj5k aWZmIC0tZ2l0IGEvc3JjL2x1YS9zd2ltLmx1YSBiL3NyYy9sdWEvc3dpbS5sdWEKPmluZGV4IDA4 NTk5MTVjOS4uNDY2ZTc3Y2U0IDEwMDY0NAo+LS0tIGEvc3JjL2x1YS9zd2ltLmx1YQo+KysrIGIv c3JjL2x1YS9zd2ltLmx1YQo+QEAgLTM3MSw3ICszNzEsNyBAQCBlbmQKPsKgLS0KPsKgbG9jYWwg ZnVuY3Rpb24gc3dpbV9tZW1iZXJfcGF5bG9hZF9zdHIobSkKPsKgwqDCoMKgwqBsb2NhbCBwdHIg PSBzd2ltX2NoZWNrX21lbWJlcihtLCAnbWVtYmVyOnBheWxvYWRfc3RyKCknKQo+LSBsb2NhbCBj ZGF0YSwgc2l6ZSA9IHN3aW1fbWVtYmVyX3BheWxvYWRfcmF3KHB0cikKPisgbG9jYWwgXywgc2l6 ZSA9IHN3aW1fbWVtYmVyX3BheWxvYWRfcmF3KHB0cikKPsKgwqDCoMKgwqBpZiBzaXplID4gMCB0 aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmZpLnN0cmluZyhzd2ltX21lbWJlcl9wYXls b2FkX3JhdyhwdHIpKQo+wqDCoMKgwqDCoGVuZAo+QEAgLTQ2Miw3ICs0NjIsNyBAQCBsb2NhbCBz d2ltX21lbWJlcl9tdCA9IHsKPsKgwqDCoMKgwqDCoMKgwqDCoGlzX2Ryb3BwZWQgPSBzd2ltX21l bWJlcl9pc19kcm9wcGVkLAo+wqDCoMKgwqDCoH0sCj7CoMKgwqDCoMKgX19zZXJpYWxpemUgPSBz d2ltX21lbWJlcl9zZXJpYWxpemUsCj4tIF9fbmV3aW5kZXggPSBmdW5jdGlvbihtKQo+KyBfX25l d2luZGV4ID0gZnVuY3Rpb24oKQo+wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGVycm9yKCdzd2lt X21lbWJlciBpcyBhIHJlYWQtb25seSBvYmplY3QnKQo+wqDCoMKgwqDCoGVuZAo+wqB9Cj5AQCAt NzgyLDIwICs3ODIsMjAgQEAgbG9jYWwgc3dpbV9tZW1iZXJfZXZlbnRfbXQgPSB7Cj7CoC0tCj7C oC0tIENyZWF0ZSBhIGNsb3N1cmUgZnVuY3Rpb24gZm9yIHByZXByb2Nlc3NpbmcgcmF3IFNXSU0g bWVtYmVyCj7CoC0tIGV2ZW50IHRyaWdnZXIgcGFyYW1ldGVycy4KPi0tLSBAcGFyYW0gcyBTV0lN IGluc3RhbmNlLgo+Ky0tIEBwYXJhbSBpbnN0YW5jZSBTV0lNIGluc3RhbmNlLgo+wqAtLSBAcGFy YW0gY2FsbGJhY2sgVXNlciBmdW5jdGlvbnMgdG8gY2FsbC4KPsKgLS0gQHBhcmFtIGN0eCBBbiBv cHRpb25hbCBwYXJhbWV0ZXIgZm9yIEBhIGNhbGxiYWNrIHBhc3NlZCBhcyBpcy4KPsKgLS0gQHJl dHVybiBBIGZ1bmN0aW9uIHRvIHNldCBhcyBhIHRyaWdnZXIuCj7CoC0tCj4tbG9jYWwgZnVuY3Rp b24gc3dpbV9vbl9tZW1iZXJfZXZlbnRfbmV3KHMsIGNhbGxiYWNrLCBjdHgpCj4rbG9jYWwgZnVu Y3Rpb24gc3dpbV9vbl9tZW1iZXJfZXZlbnRfbmV3KGluc3RhbmNlLCBjYWxsYmFjaywgY3R4KQo+ wqDCoMKgwqDCoC0tIERvIG5vdCBrZWVwIGEgaGFyZCByZWZlcmVuY2UgdG8gYSBTV0lNIGluc3Rh bmNlLiBPdGhlcndpc2UKPsKgwqDCoMKgwqAtLSBpdCBpcyBhIGN5Y2xpYyByZWZlcmVuY2UsIGFu ZCBib3RoIHRoZSBpbnN0YW5jZSBhbmQgdGhlCj7CoMKgwqDCoMKgLS0gdHJpZ2dlciB3aWxsIG5l dmVyIGJlIEdDLWVkLgo+LSBzID0gc2V0bWV0YXRhYmxlKHtzfSwge19fbW9kZSA9ICd2J30pCj4r IGluc3RhbmNlID0gc2V0bWV0YXRhYmxlKHtpbnN0YW5jZX0sIHtfX21vZGUgPSAndid9KQo+wqDC oMKgwqDCoHJldHVybiBmdW5jdGlvbihtZW1iZXJfcHRyLCBldmVudF9tYXNrKQo+LSBsb2NhbCBz ID0gc1sxXQo+LSBpZiBzIHRoZW4KPi0gbG9jYWwgbSA9IHN3aW1fd3JhcF9tZW1iZXIocywgbWVt YmVyX3B0cikKPisgbG9jYWwgaSA9IGluc3RhbmNlWzFdCj4rIGlmIGkgdGhlbgo+KyBsb2NhbCBt ID0gc3dpbV93cmFwX21lbWJlcihpLCBtZW1iZXJfcHRyKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBsb2NhbCBldmVudCA9IHNldG1ldGF0YWJsZSh7ZXZlbnRfbWFza30sIHN3aW1fbWVtYmVy X2V2ZW50X210KQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gY2FsbGJhY2sobSwg ZXZlbnQsIGN0eCkKPsKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+ZGlmZiAtLWdpdCBhL3NyYy9sdWEv dGFwLmx1YSBiL3NyYy9sdWEvdGFwLmx1YQo+aW5kZXggOTRiMDgwZDVhLi4wNDQ5NzM4NmUgMTAw NjQ0Cj4tLS0gYS9zcmMvbHVhL3RhcC5sdWEKPisrKyBiL3NyYy9sdWEvdGFwLmx1YQo+QEAgLTUz LDcgKzUzLDcgQEAgbG9jYWwgZnVuY3Rpb24gb2sodGVzdCwgY29uZCwgbWVzc2FnZSwgZXh0cmEp Cj7CoMKgwqDCoMKgaW8ud3JpdGUoc3RyaW5nLmZvcm1hdCgibm90IG9rIC0gJXNcbiIsIG1lc3Nh Z2UpKQo+wqDCoMKgwqDCoGV4dHJhID0gZXh0cmEgb3Ige30KPsKgwqDCoMKgwqBpZiB0ZXN0LnRy YWNlIHRoZW4KPi0gbG9jYWwgZnJhbWUgPSBkZWJ1Zy5nZXRpbmZvKDMsICJTbCIpCj4rIGRlYnVn LmdldGluZm8oMywgIlNsIikKPsKgwqDCoMKgwqDCoMKgwqDCoGV4dHJhLnRyYWNlID0gdHJhY2Vi YWNrKCkKPsKgwqDCoMKgwqDCoMKgwqDCoGV4dHJhLmZpbGVuYW1lID0gZXh0cmEudHJhY2VbI2V4 dHJhLnRyYWNlXS5maWxlbmFtZQo+wqDCoMKgwqDCoMKgwqDCoMKgZXh0cmEubGluZSA9IGV4dHJh LnRyYWNlWyNleHRyYS50cmFjZV0ubGluZQo+QEAgLTc2LDkgKzc2LDYgQEAgbG9jYWwgZnVuY3Rp b24gc2tpcCh0ZXN0LCBtZXNzYWdlLCBleHRyYSkKPsKgwqDCoMKgwqBvayh0ZXN0LCB0cnVlLCBt ZXNzYWdlLi4iICMgc2tpcCIsIGV4dHJhKQo+wqBlbmQKPsKgCj4tCj4tbG9jYWwgbmFuID0gMC8w Cj4tCj7CoGxvY2FsIGZ1bmN0aW9uIGNtcGRlZXBseShnb3QsIGV4cGVjdGVkLCBleHRyYSkKPsKg wqDCoMKgwqBpZiB0eXBlKGV4cGVjdGVkKSA9PSAibnVtYmVyIiBvciB0eXBlKGdvdCkgPT0gIm51 bWJlciIgdGhlbgo+wqDCoMKgwqDCoMKgwqDCoMKgZXh0cmEuZ290ID0gZ290Cj5AQCAtMTkwLDM4 ICsxODcsMzggQEAgbG9jYWwgZnVuY3Rpb24gaXNib29sZWFuKHRlc3QsIHYsIG1lc3NhZ2UsIGV4 dHJhKQo+wqDCoMKgwqDCoHJldHVybiBpcyh0ZXN0LCB0eXBlKHYpLCAnYm9vbGVhbicsIG1lc3Nh Z2UsIGV4dHJhKQo+wqBlbmQKPsKgCj4tbG9jYWwgZnVuY3Rpb24gaXNmdW5jdGlvbih0ZXN0LCB2 LCBtZXNzYWdlLCBleHRyYSkKPi0gcmV0dXJuIGlzKHRlc3QsIHR5cGUodiksICdmdW5jdGlvbics IG1lc3NhZ2UsIGV4dHJhKQo+K2xvY2FsIGZ1bmN0aW9uIGlzZnVuY3Rpb24odGVzdGNhc2UsIHYs IG1lc3NhZ2UsIGV4dHJhKQo+KyByZXR1cm4gaXModGVzdGNhc2UsIHR5cGUodiksICdmdW5jdGlv bicsIG1lc3NhZ2UsIGV4dHJhKQo+wqBlbmQKPsKgCj4tbG9jYWwgZnVuY3Rpb24gaXN1ZGF0YSh0 ZXN0LCB2LCB1dHlwZSwgbWVzc2FnZSwgZXh0cmEpCj4rbG9jYWwgZnVuY3Rpb24gaXN1ZGF0YSh0 ZXN0Y2FzZSwgdiwgdXR5cGUsIG1lc3NhZ2UsIGV4dHJhKQo+wqDCoMKgwqDCoGV4dHJhID0gZXh0 cmEgb3Ige30KPsKgwqDCoMKgwqBleHRyYS5leHBlY3RlZCA9ICd1c2VyZGF0YTwnLi51dHlwZS4u Jz4nCj7CoMKgwqDCoMKgaWYgdHlwZSh2KSA9PSAndXNlcmRhdGEnIHRoZW4KPsKgwqDCoMKgwqDC oMKgwqDCoGV4dHJhLmdvdCA9ICd1c2VyZGF0YTwnLi5nZXRtZXRhdGFibGUodikuLic+Jwo+LSBy ZXR1cm4gb2sodGVzdCwgZ2V0bWV0YXRhYmxlKHYpID09IHV0eXBlLCBtZXNzYWdlLCBleHRyYSkK PisgcmV0dXJuIG9rKHRlc3RjYXNlLCBnZXRtZXRhdGFibGUodikgPT0gdXR5cGUsIG1lc3NhZ2Us IGV4dHJhKQo+wqDCoMKgwqDCoGVsc2UKPsKgwqDCoMKgwqDCoMKgwqDCoGV4dHJhLmdvdCA9IHR5 cGUodikKPi0gcmV0dXJuIGZhaWwodGVzdCwgbWVzc2FnZSwgZXh0cmEpCj4rIHJldHVybiBmYWls KHRlc3RjYXNlLCBtZXNzYWdlLCBleHRyYSkKPsKgwqDCoMKgwqBlbmQKPsKgZW5kCj7CoAo+LWxv Y2FsIGZ1bmN0aW9uIGlzY2RhdGEodGVzdCwgdiwgY3R5cGUsIG1lc3NhZ2UsIGV4dHJhKQo+K2xv Y2FsIGZ1bmN0aW9uIGlzY2RhdGEodGVzdGNhc2UsIHYsIGN0eXBlLCBtZXNzYWdlLCBleHRyYSkK PsKgwqDCoMKgwqBleHRyYSA9IGV4dHJhIG9yIHt9Cj7CoMKgwqDCoMKgZXh0cmEuZXhwZWN0ZWQg PSBmZmkudHlwZW9mKGN0eXBlKQo+wqDCoMKgwqDCoGlmIHR5cGUodikgPT0gJ2NkYXRhJyB0aGVu Cj7CoMKgwqDCoMKgwqDCoMKgwqBleHRyYS5nb3QgPSBmZmkudHlwZW9mKHYpCj4tIHJldHVybiBv ayh0ZXN0LCBmZmkuaXN0eXBlKGN0eXBlLCB2KSwgbWVzc2FnZSwgZXh0cmEpCj4rIHJldHVybiBv ayh0ZXN0Y2FzZSwgZmZpLmlzdHlwZShjdHlwZSwgdiksIG1lc3NhZ2UsIGV4dHJhKQo+wqDCoMKg wqDCoGVsc2UKPsKgwqDCoMKgwqDCoMKgwqDCoGV4dHJhLmdvdCA9IHR5cGUodikKPi0gcmV0dXJu IGZhaWwodGVzdCwgbWVzc2FnZSwgZXh0cmEpCj4rIHJldHVybiBmYWlsKHRlc3RjYXNlLCBtZXNz YWdlLCBleHRyYSkKPsKgwqDCoMKgwqBlbmQKPsKgZW5kCj7CoAo+wqBsb2NhbCB0ZXN0X210Cj7C oGxvY2FsIGZ1bmN0aW9uIHRlc3QocGFyZW50LCBuYW1lLCBmdW4sIC4uLikKPsKgwqDCoMKgwqBs b2NhbCBsZXZlbCA9IHBhcmVudCB+PSBuaWwgYW5kIHBhcmVudC5sZXZlbCArIDEgb3IgMAo+LSBs b2NhbCB0ZXN0ID0gc2V0bWV0YXRhYmxlKHsKPisgbG9jYWwgdGVzdGNhc2UgPSBzZXRtZXRhdGFi bGUoewo+wqDCoMKgwqDCoMKgwqDCoMKgcGFyZW50ID0gcGFyZW50Owo+wqDCoMKgwqDCoMKgwqDC oMKgbmFtZSA9IG5hbWU7Cj7CoMKgwqDCoMKgwqDCoMKgwqBsZXZlbCA9IGxldmVsOwo+QEAgLTIz Miw0OCArMjI5LDQ4IEBAIGxvY2FsIGZ1bmN0aW9uIHRlc3QocGFyZW50LCBuYW1lLCBmdW4sIC4u LikKPsKgwqDCoMKgwqDCoMKgwqDCoHN0cmljdCA9IGZhbHNlOwo+wqDCoMKgwqDCoH0sIHRlc3Rf bXQpCj7CoMKgwqDCoMKgaWYgZnVuIH49IG5pbCB0aGVuCj4tIHRlc3Q6ZGlhZygnJXMnLCB0ZXN0 Lm5hbWUpCj4tIGZ1bih0ZXN0LCAuLi4pCj4tIHRlc3Q6ZGlhZygnJXM6IGVuZCcsIHRlc3QubmFt ZSkKPi0gcmV0dXJuIHRlc3Q6Y2hlY2soKQo+KyB0ZXN0Y2FzZTpkaWFnKCclcycsIHRlc3RjYXNl Lm5hbWUpCj4rIGZ1bih0ZXN0Y2FzZSwgLi4uKQo+KyB0ZXN0Y2FzZTpkaWFnKCclczogZW5kJywg dGVzdGNhc2UubmFtZSkKPisgcmV0dXJuIHRlc3RjYXNlOmNoZWNrKCkKPsKgwqDCoMKgwqBlbHNl Cj4tIHJldHVybiB0ZXN0Cj4rIHJldHVybiB0ZXN0Y2FzZQo+wqDCoMKgwqDCoGVuZAo+wqBlbmQK PsKgCj4tbG9jYWwgZnVuY3Rpb24gcGxhbih0ZXN0LCBwbGFubmVkKQo+LSB0ZXN0LnBsYW5uZWQg PSBwbGFubmVkCj4tIGlvLndyaXRlKHN0cmluZy5yZXAoJyAnLCA0ICogdGVzdC5sZXZlbCksIHN0 cmluZy5mb3JtYXQoIjEuLiVkXG4iLCBwbGFubmVkKSkKPitsb2NhbCBmdW5jdGlvbiBwbGFuKHRl c3RjYXNlLCBwbGFubmVkKQo+KyB0ZXN0Y2FzZS5wbGFubmVkID0gcGxhbm5lZAo+KyBpby53cml0 ZShzdHJpbmcucmVwKCcgJywgNCAqIHRlc3RjYXNlLmxldmVsKSwgc3RyaW5nLmZvcm1hdCgiMS4u JWRcbiIsIHBsYW5uZWQpKQo+wqBlbmQKPsKgCj4tbG9jYWwgZnVuY3Rpb24gY2hlY2sodGVzdCkK Pi0gaWYgdGVzdC5jaGVja2VkIHRoZW4KPitsb2NhbCBmdW5jdGlvbiBjaGVjayh0ZXN0Y2FzZSkK PisgaWYgdGVzdGNhc2UuY2hlY2tlZCB0aGVuCj7CoMKgwqDCoMKgwqDCoMKgwqBlcnJvcignY2hl Y2sgY2FsbGVkIHR3aWNlJykKPsKgwqDCoMKgwqBlbmQKPi0gdGVzdC5jaGVja2VkID0gdHJ1ZQo+ LSBpZiB0ZXN0LnBsYW5uZWQgfj0gdGVzdC50b3RhbCB0aGVuCj4tIGlmIHRlc3QucGFyZW50IH49 IG5pbCB0aGVuCj4tIG9rKHRlc3QucGFyZW50LCBmYWxzZSwgImJhZCBwbGFuIiwgeyBwbGFubmVk ID0gdGVzdC5wbGFubmVkOwo+LSBydW4gPSB0ZXN0LnRvdGFsfSkKPisgdGVzdGNhc2UuY2hlY2tl ZCA9IHRydWUKPisgaWYgdGVzdGNhc2UucGxhbm5lZCB+PSB0ZXN0Y2FzZS50b3RhbCB0aGVuCj4r IGlmIHRlc3RjYXNlLnBhcmVudCB+PSBuaWwgdGhlbgo+KyBvayh0ZXN0Y2FzZS5wYXJlbnQsIGZh bHNlLCAiYmFkIHBsYW4iLCB7IHBsYW5uZWQgPSB0ZXN0Y2FzZS5wbGFubmVkOwo+KyBydW4gPSB0 ZXN0Y2FzZS50b3RhbH0pCj7CoMKgwqDCoMKgwqDCoMKgwqBlbHNlCj4tIGRpYWcodGVzdCwgc3Ry aW5nLmZvcm1hdCgiYmFkIHBsYW46IHBsYW5uZWQgJWQgcnVuICVkIiwKPi0gdGVzdC5wbGFubmVk LCB0ZXN0LnRvdGFsKSkKPisgZGlhZyh0ZXN0Y2FzZSwgc3RyaW5nLmZvcm1hdCgiYmFkIHBsYW46 IHBsYW5uZWQgJWQgcnVuICVkIiwKPisgdGVzdGNhc2UucGxhbm5lZCwgdGVzdGNhc2UudG90YWwp KQo+wqDCoMKgwqDCoMKgwqDCoMKgZW5kCj4tIGVsc2VpZiB0ZXN0LmZhaWxlZCA+IDAgdGhlbgo+ LSBpZiB0ZXN0LnBhcmVudCB+PSBuaWwgdGhlbgo+LSBvayh0ZXN0LnBhcmVudCwgZmFsc2UsICJm YWlsZWQgc3VidGVzdHMiLCB7Cj4tIGZhaWxlZCA9IHRlc3QuZmFpbGVkOwo+LSBwbGFubmVkID0g dGVzdC5wbGFubmVkOwo+KyBlbHNlaWYgdGVzdGNhc2UuZmFpbGVkID4gMCB0aGVuCj4rIGlmIHRl c3RjYXNlLnBhcmVudCB+PSBuaWwgdGhlbgo+KyBvayh0ZXN0Y2FzZS5wYXJlbnQsIGZhbHNlLCAi ZmFpbGVkIHN1YnRlc3RzIiwgewo+KyBmYWlsZWQgPSB0ZXN0Y2FzZS5mYWlsZWQ7Cj4rIHBsYW5u ZWQgPSB0ZXN0Y2FzZS5wbGFubmVkOwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KQo+wqDC oMKgwqDCoMKgwqDCoMKgZWxzZQo+LSBkaWFnKHRlc3QsICJmYWlsZWQgc3VidGVzdDogJWQiLCB0 ZXN0LmZhaWxlZCkKPisgZGlhZyh0ZXN0Y2FzZSwgImZhaWxlZCBzdWJ0ZXN0OiAlZCIsIHRlc3Rj YXNlLmZhaWxlZCkKPsKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDCoGVsc2UKPi0gaWYg dGVzdC5wYXJlbnQgfj0gbmlsIHRoZW4KPi0gb2sodGVzdC5wYXJlbnQsIHRydWUsIHRlc3QubmFt ZSkKPisgaWYgdGVzdGNhc2UucGFyZW50IH49IG5pbCB0aGVuCj4rIG9rKHRlc3RjYXNlLnBhcmVu dCwgdHJ1ZSwgdGVzdGNhc2UubmFtZSkKPsKgwqDCoMKgwqDCoMKgwqDCoGVuZAo+wqDCoMKgwqDC oGVuZAo+LSByZXR1cm4gdGVzdC5wbGFubmVkID09IHRlc3QudG90YWwgYW5kIHRlc3QuZmFpbGVk ID09IDAKPisgcmV0dXJuIHRlc3RjYXNlLnBsYW5uZWQgPT0gdGVzdGNhc2UudG90YWwgYW5kIHRl c3RjYXNlLmZhaWxlZCA9PSAwCj7CoGVuZAo+wqAKPsKgdGVzdF9tdCA9IHsKPmRpZmYgLS1naXQg YS9zcmMvbHVhL3RyaWdnZXIubHVhIGIvc3JjL2x1YS90cmlnZ2VyLmx1YQo+aW5kZXggNzZhNTgy YzQ3Li4xMzMwZWNkZDQgMTAwNjQ0Cj4tLS0gYS9zcmMvbHVhL3RyaWdnZXIubHVhCj4rKysgYi9z cmMvbHVhL3RyaWdnZXIubHVhCj5AQCAtMSw3ICsxLDQgQEAKPsKgbG9jYWwgZnVuID0gcmVxdWly ZSgnZnVuJykKPi1sb2NhbCBsb2cgPSByZXF1aXJlKCdsb2cnKQo+LQo+LWxvY2FsIHRhYmxlX2Ns ZWFyID0gcmVxdWlyZSgndGFibGUuY2xlYXInKQo+wqAKPsKgLS0KPsKgLS0gQ2hlY2tzIHRoYXQg YXJndW1lbnQgaXMgYSBjYWxsYWJsZSwgaS5lLiBhIGZ1bmN0aW9uIG9yIGEgdGFibGUKPi0tCj4y LjIzLjAKPsKgIArCoArCoAotLQpBbGV4YW5kZXIgVGlraG9ub3YKwqA= ----ALT--b15E2c85eF5be68B27D8B98485dD1f581586406706 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkgU2VyZ2V5LCB0aGFuayB5b3UgZm9yIHRoZSBwYXRjaCwgTEdU TS48YnI+PGJyPiZuYnNwOzxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQg IzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPtCh0YDQtdC00LAsIDgg 0LDQv9GA0LXQu9GPIDIwMjAsIDE4OjQzICswMzowMCDQvtGCIFNlcmdleSBCcm9ubmlrb3YgJmx0 O2VzdGV0dXNAZ21haWwuY29tJmd0Ozo8YnI+Jm5ic3A7PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJq cy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48 ZGl2PjxkaXYgaWQ9InN0eWxlXzE1ODYzNjA2MDYwNTM3OTczNjU1X0JPRFkiPkZyb206IFNlcmdl eSBCcm9ubmlrb3YgJmx0OzxhIGhyZWY9Ii9jb21wb3NlP1RvPXNlcmdleWJAdGFyYW50b29sLm9y ZyI+c2VyZ2V5YkB0YXJhbnRvb2wub3JnPC9hPiZndDs8YnI+PGJyPk1hbnkgd2FybmluZ3MgZml4 ZWQgd2l0aCBoZWxwIGZyb20gVmxhZGlzbGF2IFNocGlsZXZveS48YnI+PGJyPkNsb3NlcyAjNDY4 MTxicj4tLS08YnI+Jm5ic3A7c3JjL2x1YS9hcmdwYXJzZS5sdWEgfCA2ICsrLS08YnI+Jm5ic3A7 c3JjL2x1YS9idWZmZXIubHVhIHwgNCArLS08YnI+Jm5ic3A7c3JjL2x1YS9jbG9jay5sdWEgfCAy ICstPGJyPiZuYnNwO3NyYy9sdWEvY3J5cHRvLmx1YSB8IDQgKy0tPGJyPiZuYnNwO3NyYy9sdWEv Y3N2Lmx1YSB8IDUgKystPGJyPiZuYnNwO3NyYy9sdWEvZGlnZXN0Lmx1YSB8IDIgKy08YnI+Jm5i c3A7c3JjL2x1YS9lbnYubHVhIHwgMiArLTxicj4mbmJzcDtzcmMvbHVhL2Zpby5sdWEgfCAyNSAr KysrKysrLS0tLS0tLTxicj4mbmJzcDtzcmMvbHVhL2h0dHBjLmx1YSB8IDMgLS08YnI+Jm5ic3A7 c3JjL2x1YS9pbml0Lmx1YSB8IDcgKystLTxicj4mbmJzcDtzcmMvbHVhL21zZ3BhY2tmZmkubHVh IHwgMTYgKysrLS0tLS0tPGJyPiZuYnNwO3NyYy9sdWEvc29ja2V0Lmx1YSB8IDY1ICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLTxicj4mbmJzcDtzcmMvbHVhL3N0cmluZy5sdWEg fCAxIC08YnI+Jm5ic3A7c3JjL2x1YS9zd2ltLmx1YSB8IDE2ICsrKystLS0tLTxicj4mbmJzcDtz cmMvbHVhL3RhcC5sdWEgfCA3NSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS08YnI+Jm5ic3A7c3JjL2x1YS90cmlnZ2VyLmx1YSB8IDMgLS08YnI+Jm5ic3A7MTYgZmls ZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDEyNyBkZWxldGlvbnMoLSk8YnI+PGJyPmRp ZmYgLS1naXQgYS9zcmMvbHVhL2FyZ3BhcnNlLmx1YSBiL3NyYy9sdWEvYXJncGFyc2UubHVhPGJy PmluZGV4IGZhYTBhZTEzMC4uZjU4OTg1NDI1IDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL2FyZ3Bh cnNlLmx1YTxicj4rKysgYi9zcmMvbHVhL2FyZ3BhcnNlLmx1YTxicj5AQCAtOTAsOCArOTAsOCBA QCBsb2NhbCBmdW5jdGlvbiBjb252ZXJ0X3BhcmFtZXRlcihuYW1lLCBjb252ZXJ0X2Zyb20sIGNv bnZlcnRfdG8pPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBjb252ZXJ0 X2Zyb208YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4tbG9jYWwgZnVuY3Rpb24gcGFyYW1ldGVy c19wYXJzZSh0X2luLCBvcHRpb25zKTxicj4tIGxvY2FsIHRfb3V0LCB0X2luID0ge30sIHRfaW4g b3Ige308YnI+K2xvY2FsIGZ1bmN0aW9uIHBhcmFtZXRlcnNfcGFyc2UodF9faW4sIG9wdGlvbnMp PGJyPisgbG9jYWwgdF9vdXQsIHRfaW4gPSB7fSwgdF9faW4gb3Ige308YnI+Jm5ic3A7PGJyPiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIFByZXBhcmUgYSBsb29rdXAgdGFibGUgZm9y IG9wdGlvbnMuIEFuIG9wdGlvbiBuYW1lIC0mZ3Q7IGE8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7LS0gdHlwZSBuYW1lIHRvIGNvbnZlcnQgYSBwYXJhbWV0ZXIgaW50byBvciB0cnVl ICh3aGljaCBtZWFuczxicj5AQCAtMTQ1LDcgKzE0NSw3IEBAIGxvY2FsIGZ1bmN0aW9uIHBhcmFt ZXRlcnNfcGFyc2UodF9pbiwgb3B0aW9ucyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgcGFyYW1ldGVyX2hhc192YWx1ZShsb29rdXBbY29tbWFuZF0p IHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gaW4gY2FzZSBuZXh0IGFyZ3VtZW50IGlzIHZhbHVlIG9m IHRoaXMga2V5IChub3QgLS1hcmcpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIG5leHRfYXJnID0gdF9p bltpICsgMV08YnI+LSBsb2NhbCBpc19sb25nLCBpc19zaG9ydCwgaXNfZGFzaCA9IHBhcnNlX3Bh cmFtX3ByZWZpeChuZXh0X2FyZyk8YnI+KyBpc19sb25nLCBpc19zaG9ydCwgaXNfZGFzaCA9IHBh cnNlX3BhcmFtX3ByZWZpeChuZXh0X2FyZyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgaXNfZGFzaCB0aGVu PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NraXBfcGFyYW0gPSB0cnVl PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2Vsc2VpZiBpc19sb25nID09IGZhbHNlIGFuZCBub3QgaXNfc2hvcnQg YW5kIG5vdCBpc19kYXNoIHRoZW48YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvYnVmZmVyLmx1YSBi L3NyYy9sdWEvYnVmZmVyLmx1YTxicj5pbmRleCA5YWFjODJiMzkuLjQzYzdlMTE3MCAxMDA2NDQ8 YnI+LS0tIGEvc3JjL2x1YS9idWZmZXIubHVhPGJyPisrKyBiL3NyYy9sdWEvYnVmZmVyLmx1YTxi cj5AQCAtMTgyLDcgKzE4Miw3IEBAIGxvY2FsIGlidWZfbWV0aG9kcyA9IHs8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dW51c2VkID0gaWJ1Zl91bnVzZWQ7PGJyPiZuYnNwO308YnI+ Jm5ic3A7PGJyPi1sb2NhbCBmdW5jdGlvbiBpYnVmX3Rvc3RyaW5nKGlidWYpPGJyPitsb2NhbCBm dW5jdGlvbiBpYnVmX3Rvc3RyaW5nKCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 cmV0dXJuICcmbHQ7aWJ1ZiZndDsnPGJyPiZuYnNwO2VuZDxicj4mbmJzcDtsb2NhbCBpYnVmX210 ID0gezxicj5AQCAtMTkzLDcgKzE5Myw3IEBAIGxvY2FsIGlidWZfbXQgPSB7PGJyPiZuYnNwOzxi cj4mbmJzcDtmZmkubWV0YXR5cGUoaWJ1Zl90LCBpYnVmX210KTs8YnI+Jm5ic3A7PGJyPi1sb2Nh bCBmdW5jdGlvbiBpYnVmX25ldyhhcmcsIGFyZzIpPGJyPitsb2NhbCBmdW5jdGlvbiBpYnVmX25l dyhhcmcpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGJ1ZiA9IGZmaS5u ZXcoaWJ1Zl90KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzbGFiYyA9 IGJ1aWx0aW4udGFyYW50b29sX2x1YV9zbGFiX2NhY2hlKCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7YnVpbHRpbi5pYnVmX2NyZWF0ZShidWYsIHNsYWJjLCBSRUFEQUhFQUQpPGJy PmRpZmYgLS1naXQgYS9zcmMvbHVhL2Nsb2NrLmx1YSBiL3NyYy9sdWEvY2xvY2subHVhPGJyPmlu ZGV4IDYwYzc4NjYzYy4uZmVlNDNjY2RlIDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL2Nsb2NrLmx1 YTxicj4rKysgYi9zcmMvbHVhL2Nsb2NrLmx1YTxicj5AQCAtMzMsNyArMzMsNyBAQCBjbG9jay5i ZW5jaCA9IGZ1bmN0aW9uKGZ1biwgLi4uKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtvdmVyaGVhZCA9IGNsb2NrLnByb2MoKSAtIG92ZXJoZWFkPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2xvY2FsIHN0YXJ0X3RpbWUgPSBjbG9jay5wcm9jKCk8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgcmVzID0gezAsIGZ1biguLi4pfTxicj4tIHJlc1sx XSA9IGNsb2NrLnByb2MoKSAtIHN0YXJ0X3RpbWUgLSBvdmVyaGVhZCwgcmVzPGJyPisgcmVzWzFd ID0gY2xvY2sucHJvYygpIC0gc3RhcnRfdGltZSAtIG92ZXJoZWFkPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO3JldHVybiByZXM8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj5kaWZm IC0tZ2l0IGEvc3JjL2x1YS9jcnlwdG8ubHVhIGIvc3JjL2x1YS9jcnlwdG8ubHVhPGJyPmluZGV4 IGJmMzA2NGM3MC4uYzBlYjBkMzAzIDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL2NyeXB0by5sdWE8 YnI+KysrIGIvc3JjL2x1YS9jcnlwdG8ubHVhPGJyPkBAIC03NSw3ICs3NSw3IEBAIGxvY2FsIGZ1 bmN0aW9uIG9wZW5zc2xfZXJyX3N0cigpPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+Jm5ic3A7 bG9jYWwgZGlnZXN0cyA9IHt9PGJyPi1mb3IgY2xhc3MsIG5hbWUgaW4gcGFpcnMoezxicj4rZm9y IGNsYXNzLCBfIGluIHBhaXJzKHs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bWQy ID0gJ01EMicsIG1kNCA9ICdNRDQnLCBtZDUgPSAnTUQ1Jyw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7c2hhMSA9ICdTSEExJywgc2hhMjI0ID0gJ1NIQTIyNCcsPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NoYTI1NiA9ICdTSEEyNTYnLCBzaGEzODQgPSAnU0hBMzg0 Jywgc2hhNTEyID0gJ1NIQTUxMicsPGJyPkBAIC00MjgsNyArNDI4LDcgQEAgbG9jYWwgcHVibGlj X21ldGhvZHMgPSB7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO2xvY2FsIG1vZHVsZV9t dCA9IHs8YnI+LSBfX3NlcmlhbGl6ZSA9IGZ1bmN0aW9uKHMpPGJyPisgX19zZXJpYWxpemUgPSBm dW5jdGlvbigpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO3JldHVybiBwdWJsaWNfbWV0aG9kczxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtlbmQsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO19faW5kZXggPSBw dWJsaWNfbWV0aG9kczxicj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS9jc3YubHVhIGIvc3JjL2x1YS9j c3YubHVhPGJyPmluZGV4IDdkZmYyZjIxMy4uZGU2NzI2YmI3IDEwMDY0NDxicj4tLS0gYS9zcmMv bHVhL2Nzdi5sdWE8YnI+KysrIGIvc3JjL2x1YS9jc3YubHVhPGJyPkBAIC0xODgsMTAgKzE4OCwx MCBAQCBtb2R1bGUuZHVtcCA9IGZ1bmN0aW9uKHQsIG9wdHMsIHdyaXRhYmxlKTxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiB0eXBlKHdyaXRhYmxlKSA9PSAnbmlsJyB0aGVuPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Jl c3VsdF90YWJsZSA9IHt9PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4t IGZvciBrLCBsaW5lIGluIHBhaXJzKHQpIGRvPGJyPisgZm9yIF8sIGxpbmUgaW4gcGFpcnModCkg ZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7bG9jYWwgZmlyc3QgPSB0cnVlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIG91dHB1dF90dXBsZSA9IHt9PGJyPi0gZm9yIGsy LCBmaWVsZCBpbiBwYWlycyhsaW5lKSBkbzxicj4rIGZvciBfLCBmaWVsZCBpbiBwYWlycyhsaW5l KSBkbzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzdHJmID0gdG9zdHJpbmcoZmllbGQp PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGJ1Zl9uZXdfc2l6ZSA9IChzdHJmOmxlbigp ICsgMSkgKiAyPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIGJ1Zl9uZXdfc2l6ZSAmZ3Q7IGJ1 ZnN6IHRoZW48YnI+QEAgLTIxNCw3ICsyMTQsNiBAQCBtb2R1bGUuZHVtcCA9IGZ1bmN0aW9uKHQs IG9wdHMsIHdyaXRhYmxlKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtlbHNlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3dyaXRhYmxlOndy aXRlKHRhYmxlLmNvbmNhdChvdXRwdXRfdHVwbGUpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+LSBvdXRwdXRfdHVwbGUgPSB7 fTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZmZpLkMuY3N2X2Rlc3Ryb3koY3N2KTxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtjc3YucmVhbGxvYyhidWYsIDApPGJyPmRpZmYgLS1naXQgYS9zcmMvbHVh L2RpZ2VzdC5sdWEgYi9zcmMvbHVhL2RpZ2VzdC5sdWE8YnI+aW5kZXggNmVkOTFjZmEyLi43ZjFh ZWE4ZDAgMTAwNjQ0PGJyPi0tLSBhL3NyYy9sdWEvZGlnZXN0Lmx1YTxicj4rKysgYi9zcmMvbHVh L2RpZ2VzdC5sdWE8YnI+QEAgLTI0Niw3ICsyNDYsNyBAQCBsb2NhbCBtID0gezxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LWZvciBk aWdlc3QsIG5hbWUgaW4gcGFpcnMoZGlnZXN0X3Nob3J0Y3V0cykgZG88YnI+K2ZvciBkaWdlc3Qs IF8gaW4gcGFpcnMoZGlnZXN0X3Nob3J0Y3V0cykgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7bVtkaWdlc3RdID0gZnVuY3Rpb24gKHN0cik8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGNyeXB0by5kaWdlc3Rb ZGlnZXN0XShzdHIpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj5kaWZm IC0tZ2l0IGEvc3JjL2x1YS9lbnYubHVhIGIvc3JjL2x1YS9lbnYubHVhPGJyPmluZGV4IGRkMTYx NmE4NC4uYTMxYjcwOThmIDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL2Vudi5sdWE8YnI+KysrIGIv c3JjL2x1YS9lbnYubHVhPGJyPkBAIC0yOCw3ICsyOCw3IEBAIG9zLmVudmlyb24gPSBmdW5jdGlv bigpPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+Jm5ic3A7b3Muc2V0ZW52ID0gZnVuY3Rpb24o a2V5LCB2YWx1ZSk8YnI+LSBsb2NhbCBydiA9IG5pbDxicj4rIGxvY2FsIHJ2PGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHZhbHVlIH49IG5pbCB0aGVuPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3J2ID0gZmZpLkMuc2V0 ZW52KGtleSwgdmFsdWUsIDEpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vsc2U8 YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvZmlvLmx1YSBiL3NyYy9sdWEvZmlvLmx1YTxicj5pbmRl eCA4M2ZkZGFhMGEuLmIyYjRiNGM3NyAxMDA2NDQ8YnI+LS0tIGEvc3JjL2x1YS9maW8ubHVhPGJy PisrKyBiL3NyYy9sdWEvZmlvLmx1YTxicj5AQCAtMzI5LDcgKzMyOSw3IEBAIGZpby5hYnNwYXRo ID0gZnVuY3Rpb24ocGF0aCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ZXJyb3IoIlVzYWdlOiBmaW8uYWJzcGF0aChwYXRoKSIpPGJyPiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtwYXRoID0gcGF0aDxicj4tIGxvY2FsIGpvaW5lZF9wYXRoID0gJyc8YnI+KyBsb2Nh bCBqb2luZWRfcGF0aDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBwYXRo X3RhYiA9IHt9PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHN0cmluZy5zdWIo cGF0aCwgMSwgMSkgPT0gJy8nIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7am9pbmVkX3BhdGggPSBwYXRoPGJyPkBAIC0zNjYsNyAr MzY2LDcgQEAgZmlvLmxpc3RkaXIgPSBmdW5jdGlvbihwYXRoKTxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gdDxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7bG9jYWwgbmFtZXMgPSBzdHJpbmcuc3BsaXQoc3RyLCAiXG4iKTxicj4tIGZvciBpLCBuYW1l IGluIGlwYWlycyhuYW1lcykgZG88YnI+KyBmb3IgXywgbmFtZSBpbiBpcGFpcnMobmFtZXMpIGRv PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O3RhYmxlLmluc2VydCh0LCBuYW1lKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtl bmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIHQ8YnI+QEAgLTM3OCwx NSArMzc4LDE1IEBAIGZpby5ta3RyZWUgPSBmdW5jdGlvbihwYXRoLCBtb2RlKTxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7cGF0aCA9IGZpby5hYnNwYXRoKHBhdGgpPGJyPiZuYnNwOzxicj4tIGxvY2FsIHBhdGggPSBz dHJpbmcuZ3N1YihwYXRoLCAnXi8nLCAnJyk8YnI+KyBwYXRoID0gc3RyaW5nLmdzdWIocGF0aCwg J14vJywgJycpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGRpcnMgPSBz dHJpbmcuc3BsaXQocGF0aCwgIi8iKTxicj4mbmJzcDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7bG9jYWwgY3VycmVudF9kaXIgPSAiLyI8YnI+LSBmb3IgaSwgZGlyIGluIGlwYWly cyhkaXJzKSBkbzxicj4rIGZvciBfLCBkaXIgaW4gaXBhaXJzKGRpcnMpIGRvPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2N1cnJlbnRfZGly ID0gZmlvLnBhdGhqb2luKGN1cnJlbnRfZGlyLCBkaXIpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIHN0YXQgPSBmaW8uc3RhdChj dXJyZW50X2Rpcik8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7aWYgc3RhdCA9PSBuaWwgdGhlbjxicj4tIGxvY2FsIHN0LCBlcnIgPSBmaW8u bWtkaXIoY3VycmVudF9kaXIsIG1vZGUpPGJyPisgbG9jYWwgXywgZXJyID0gZmlvLm1rZGlyKGN1 cnJlbnRfZGlyLCBtb2RlKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBmaW8uc3RhdCgpIGFu ZCBmaW8ubWtkaXIoKSBhYm92ZSBhcmUgc2VwYXJhdGUgY2FsbHM8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7LS0gYW5kIGEgZmlsZSBzeXN0ZW0gbWF5IGJlIGNoYW5nZWQgYmV0d2VlbiB0aGVtLiBT bzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBpZiB0aGUgZXJyb3IgaGVyZSBpcyBkdWUgdG8g YW4gZXhpc3RpbmcgZGlyZWN0b3J5LDxicj5AQCAtNDA3LDIwICs0MDcsMjAgQEAgZmlvLnJtdHJl ZSA9IGZ1bmN0aW9uKHBhdGgpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHR5 cGUocGF0aCkgfj0gJ3N0cmluZycgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlcnJvcigiVXNhZ2U6IGZpby5ybXRyZWUocGF0aCki KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+LSBsb2NhbCBzdGF0dXMs IGVycjxicj4rIGxvY2FsIHN0YXR1czxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtw YXRoID0gZmlvLmFic3BhdGgocGF0aCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 bG9jYWwgbHMsIGVyciA9IGZpby5saXN0ZGlyKHBhdGgpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO2lmIGVyciB+PSBuaWwgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gbmlsLCBlcnI8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPi0gZm9yIGksIGYgaW4gaXBhaXJzKGxzKSBkbzxi cj4rIGZvciBfLCBmIGluIGlwYWlycyhscykgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgdG1wcGF0aCA9IGZpby5wYXRoam9p bihwYXRoLCBmKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtsb2NhbCBzdCA9IGZpby5sc3RhdCh0bXBwYXRoKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBzdCB0aGVuPGJyPiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2lmIHN0OmlzX2RpcigpIHRoZW48YnI+LSBzdCwgZXJyID0gZmlv LnJtdHJlZSh0bXBwYXRoKTxicj4rIF8sIGVyciA9IGZpby5ybXRyZWUodG1wcGF0aCk8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZTxicj4tIHN0LCBlcnIgPSBmaW8udW5saW5rKHRtcHBhdGgp PGJyPisgXywgZXJyID0gZmlvLnVubGluayh0bXBwYXRoKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgZXJyIH49IG5pbCB0aGVuPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBuaWwsIGVycjxi cj5AQCAtNDcxLDEwICs0NzEsMTAgQEAgZmlvLmNvcHl0cmVlID0gZnVuY3Rpb24oZnJvbSwgdG8p PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHJlYXNvbiB+PSBuaWwgdGhlbjxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDty ZXR1cm4gZmFsc2UsIHJlYXNvbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8 YnI+LSBmb3IgaSwgZiBpbiBpcGFpcnMobHMpIGRvPGJyPisgZm9yIF8sIGYgaW4gaXBhaXJzKGxz KSBkbzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtsb2NhbCBmZnJvbSA9IGZpby5wYXRoam9pbihmcm9tLCBmKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBmdG8gPSBmaW8u cGF0aGpvaW4odG8sIGYpPGJyPi0gbG9jYWwgc3QgPSBmaW8ubHN0YXQoZmZyb20pPGJyPisgc3Qg PSBmaW8ubHN0YXQoZmZyb20pPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2lmIHN0IGFuZCBzdDppc19kaXIoKSB0aGVuPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO3N0YXR1cywgcmVhc29uID0gZmlvLmNvcHl0cmVlKGZmcm9tLCBmdG8pPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHJlYXNvbiB+PSBuaWwgdGhlbjxicj5AQCAtNDg4LDcg KzQ4OCw4IEBAIGZpby5jb3B5dHJlZSA9IGZ1bmN0aW9uKGZyb20sIHRvKTxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2lmIHN0OmlzX2xpbmsoKSB0aGVuPGJyPi0gbG9jYWwgbGlua190 bywgcmVhc29uID0gZmlvLnJlYWRsaW5rKGZmcm9tKTxicj4rIGxvY2FsIGxpbmtfdG88YnI+KyBs aW5rX3RvLCByZWFzb24gPSBmaW8ucmVhZGxpbmsoZmZyb20pPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO2lmIHJlYXNvbiB+PSBuaWwgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gZmFsc2UsIHJlYXNvbjxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtlbmQ8YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvaHR0cGMubHVhIGIvc3JjL2x1YS9odHRw Yy5sdWE8YnI+aW5kZXggNjM4MWM2YTFhLi45MzM2ZGNlZTAgMTAwNjQ0PGJyPi0tLSBhL3NyYy9s dWEvaHR0cGMubHVhPGJyPisrKyBiL3NyYy9sdWEvaHR0cGMubHVhPGJyPkBAIC0yOSw4ICsyOSw2 IEBAPGJyPiZuYnNwOy0tIFNVQ0ggREFNQUdFLjxicj4mbmJzcDstLTxicj4mbmJzcDs8YnI+LWxv Y2FsIGZpYmVyID0gcmVxdWlyZSgnZmliZXInKTxicj4tPGJyPiZuYnNwO2xvY2FsIGRyaXZlciA9 IHBhY2thZ2UubG9hZGVkLmh0dHAuY2xpZW50PGJyPiZuYnNwO3BhY2thZ2UubG9hZGVkLmh0dHAg PSBuaWw8YnI+Jm5ic3A7PGJyPkBAIC0xMTIsNyArMTEwLDYgQEAgbG9jYWwgc3BlY2lhbF9jaGFy YWN0ZXJzID0gezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtbJ10nXSA9IHRydWUs PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1snJmx0OyddID0gdHJ1ZSw8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7WycmZ3Q7J10gPSB0cnVlLDxicj4tIFsnJmd0Oydd ID0gdHJ1ZSw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7WydAJ10gPSB0cnVlLDxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtbJywnXSA9IHRydWUsPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO1snOyddID0gdHJ1ZSw8YnI+ZGlmZiAtLWdpdCBhL3NyYy9s dWEvaW5pdC5sdWEgYi9zcmMvbHVhL2luaXQubHVhPGJyPmluZGV4IGZmM2U3NGMzYy4uYTgzMTU0 OWQxIDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL2luaXQubHVhPGJyPisrKyBiL3NyYy9sdWEvaW5p dC5sdWE8YnI+QEAgLTE0NCw5ICsxNDQsOSBAQCBsb2NhbCBmdW5jdGlvbiBnZW5fc2VhcmNoX2Z1 bmMocGF0aF9mbiwgdGVtcGxhdGVzLCBuZWVkX3RyYXZlcnNlKTxicj4mbmJzcDs8YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc2Vh cmNocGF0aHMgPSB7fTxicj4mbmJzcDs8YnI+LSBmb3IgXywgcGF0aCBpbiBpcGFpcnMocGF0aHMp IGRvPGJyPisgZm9yIF8sIHAgaW4gaXBhaXJzKHBhdGhzKSBkbzxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtmb3IgXywgdGVtcGxhdGUgaW4gcGFpcnModGVtcGxhdGVzKSBkbzxicj4tIHRhYmxlLmlu c2VydChzZWFyY2hwYXRocywgZmlvLnBhdGhqb2luKHBhdGgsIHRlbXBsYXRlKSk8YnI+KyB0YWJs ZS5pbnNlcnQoc2VhcmNocGF0aHMsIGZpby5wYXRoam9pbihwLCB0ZW1wbGF0ZSkpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPkBAIC0xNzYsNyArMTc2LDggQEAg bG9jYWwgZnVuY3Rpb24gZ2VuX2xvYWRlcl9mdW5jKHNlYXJjaF9mbiwgbG9hZF9mbik8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgbm90 IGZpbGUgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gZXJyPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4tIGxv Y2FsIGxvYWRlZCwgZXJyID0gbG9hZF9mbihmaWxlLCBuYW1lKTxicj4rIGxvY2FsIGxvYWRlZDxi cj4rIGxvYWRlZCwgZXJyID0gbG9hZF9mbihmaWxlLCBuYW1lKTxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBlcnIgPT0gbmlsIHRoZW48 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGxvYWRlZDxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbHNlPGJyPmRpZmYgLS1naXQg YS9zcmMvbHVhL21zZ3BhY2tmZmkubHVhIGIvc3JjL2x1YS9tc2dwYWNrZmZpLmx1YTxicj5pbmRl eCBmNzc1ZjJkNDEuLmVhY2YyZDFkNSAxMDA2NDQ8YnI+LS0tIGEvc3JjL2x1YS9tc2dwYWNrZmZp Lmx1YTxicj4rKysgYi9zcmMvbHVhL21zZ3BhY2tmZmkubHVhPGJyPkBAIC0yOTEsMTAgKzI5MSw2 IEBAIGxvY2FsIGZ1bmN0aW9uIGVuY29kZShvYmopPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3JldHVybiByPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+LWxvY2FsIGZ1bmN0aW9u IGVuY29kZV9pYnVmKG9iaiwgaWJ1Zik8YnI+LSBlbmNvZGVfcihpYnVmLCBvYmosIDApPGJyPi1l bmQ8YnI+LTxicj4mbmJzcDtvbl9lbmNvZGUoZmZpLnR5cGVvZigndWludDhfdCcpLCBlbmNvZGVf aW50KTxicj4mbmJzcDtvbl9lbmNvZGUoZmZpLnR5cGVvZigndWludDE2X3QnKSwgZW5jb2RlX2lu dCk8YnI+Jm5ic3A7b25fZW5jb2RlKGZmaS50eXBlb2YoJ3VpbnQzMl90JyksIGVuY29kZV9pbnQp PGJyPkBAIC0zMjAsNyArMzE2LDYgQEAgbG9jYWwgZGVjb2RlX3I8YnI+Jm5ic3A7PGJyPiZuYnNw Oy0tIFNlZSBzaW1pbGFyIGNvbnN0YW50cyBpbiB1dGlscy5jYzxicj4mbmJzcDtsb2NhbCBEQkxf SU5UX01BWCA9IDFlMTQgLSAxPGJyPi1sb2NhbCBEQkxfSU5UX01JTiA9IC0xZTE0ICsgMTxicj4m bmJzcDs8YnI+Jm5ic3A7bG9jYWwgZnVuY3Rpb24gZGVjb2RlX3U4KGRhdGEpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIG51bSA9IGZmaS5jYXN0KHVpbnQ4X3B0cl90LCBk YXRhWzBdKVswXTxicj5AQCAtNDY1LDggKzQ2MCw3IEBAIGVuZDxicj4mbmJzcDtsb2NhbCBmdW5j dGlvbiBkZWNvZGVfYXJyYXkoZGF0YSwgc2l6ZSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7YXNzZXJ0ICh0eXBlKHNpemUpID09ICJudW1iZXIiKTxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtsb2NhbCBhcnIgPSB7fTxicj4tIGxvY2FsIGk8YnI+LSBmb3IgaT0xLHNp emUsMSBkbzxicj4rIGZvciBfID0gMSwgc2l6ZSBkbzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0YWJsZS5pbnNlcnQoYXJyLCBkZWNvZGVf cihkYXRhKSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIG5vdCBtc2dwYWNrLmNmZy5kZWNvZGVfc2F2ZV9tZXRh dGFibGVzIHRoZW48YnI+QEAgLTQ3OCw4ICs0NzIsNyBAQCBlbmQ8YnI+Jm5ic3A7bG9jYWwgZnVu Y3Rpb24gZGVjb2RlX21hcChkYXRhLCBzaXplKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDthc3NlcnQgKHR5cGUoc2l6ZSkgPT0gIm51bWJlciIpPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2xvY2FsIG1hcCA9IHt9PGJyPi0gbG9jYWwgaTxicj4tIGZvciBpPTEsc2l6 ZSwxIGRvPGJyPisgZm9yIF8gPSAxLCBzaXplIGRvPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGtleSA9IGRlY29kZV9yKGRhdGEp Ozxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtsb2NhbCB2YWwgPSBkZWNvZGVfcihkYXRhKTs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bWFwW2tleV0gPSB2YWw8YnI+QEAgLTQ5Miw3 ICs0ODUsNyBAQCBlbmQ8YnI+Jm5ic3A7PGJyPiZuYnNwO2xvY2FsIGV4dF9kZWNvZGVyID0gezxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBNUF9VTktOT1dOX0VYVEVOU0lPTjxi cj4tIFswXSA9IGZ1bmN0aW9uKGRhdGEsIGxlbikgZXJyb3IoInVuc3VwcG9ydGVkIGV4dGVuc2lv biB0eXBlIikgZW5kLDxicj4rIFswXSA9IGZ1bmN0aW9uKCkgZXJyb3IoInVuc3VwcG9ydGVkIGV4 dGVuc2lvbiB0eXBlIikgZW5kLDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBN UF9ERUNJTUFMPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1sxXSA9IGZ1bmN0aW9u KGRhdGEsIGxlbikgbG9jYWwgbnVtID0gZmZpLm5ldygiZGVjaW1hbF90IikgYnVpbHRpbi5kZWNp bWFsX3VucGFjayhkYXRhLCBsZW4sIG51bSkgcmV0dXJuIG51bSBlbmQsPGJyPiZuYnNwO308YnI+ QEAgLTUwMiw3ICs0OTUsNiBAQCBsb2NhbCBmdW5jdGlvbiBkZWNvZGVfZXh0KGRhdGEpPGJyPiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIG1wX2RlY29kZV9leHRsIGFuZCBtcF9kZWNv ZGVfZGVjaW1hbDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSBuZWVkIHR5cGUg Y29kZTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkYXRhWzBdID0gZGF0YVswXSAt IDE8YnI+LSBsb2NhbCBvbGRfZGF0YSA9IGRhdGFbMF08YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7bG9jYWwgbGVuID0gYnVpbHRpbi5tcF9kZWNvZGVfZXh0bChkYXRhLCB0KTxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBmdW4gPSBleHRfZGVjb2Rlclt0WzBd XTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiB0eXBlKGZ1bikgPT0gJ2Z1bmN0 aW9uJyB0aGVuPGJyPkBAIC01ODksNyArNTgxLDcgQEAgbG9jYWwgZnVuY3Rpb24gY2hlY2tfb2Zm c2V0KG9mZnNldCwgbGVuKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBvZmZz ZXQgPT0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDE8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ZW5kPGJyPi0gbG9jYWwgb2Zmc2V0ID0gZmZpLmNhc3QoJ3B0cmRpZmZfdCcsIG9mZnNldCk8YnI+ KyBvZmZzZXQgPSBmZmkuY2FzdCgncHRyZGlmZl90Jywgb2Zmc2V0KTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtpZiBvZmZzZXQgJmx0OyAxIG9yIG9mZnNldCAmZ3Q7IGxlbiB0aGVu PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2Vycm9yKHN0cmluZy5mb3JtYXQoIm9mZnNldCA9ICVkIGlzIG91dCBvZiBib3VuZHMgWzEuLiVk XSIsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RvbnVtYmVyKG9mZnNldCksIGxlbikpPGJyPmRp ZmYgLS1naXQgYS9zcmMvbHVhL3NvY2tldC5sdWEgYi9zcmMvbHVhL3NvY2tldC5sdWE8YnI+aW5k ZXggYTMzNGFkNDViLi4zMTdhY2ZlOGUgMTAwNjQ0PGJyPi0tLSBhL3NyYy9sdWEvc29ja2V0Lmx1 YTxicj4rKysgYi9zcmMvbHVhL3NvY2tldC5sdWE8YnI+QEAgLTE3Miw3ICsxNzIsNyBAQCBsb2Nh bCBmdW5jdGlvbiBnZXRfaWZsYWdzKHRhYmxlLCBmbGFncyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7aWYgdHlwZShmbGFncykgfj0gJ3RhYmxlJyB0aGVuPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZsYWdzID0geyBmbGFn cyB9PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4tIGZvciBpLCBmIGlu IHBhaXJzKGZsYWdzKSBkbzxicj4rIGZvciBfLCBmIGluIHBhaXJzKGZsYWdzKSBkbzxicj4mbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiB0YWJs ZVtmXSA9PSBuaWwgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gbmlsPGJyPiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxi cj5AQCAtNjYwLDcgKzY2MCw3IEBAIGxvY2FsIGZ1bmN0aW9uIGNoZWNrX2RlbGltaXRlcihzZWxm LCBsaW1pdCwgZW9scyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZu YnNwOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzaG9ydGVzdDxicj4t IGZvciBpLCBlb2wgaW4gaXBhaXJzKGVvbHMpIGRvPGJyPisgZm9yIF8sIGVvbCBpbiBpcGFpcnMo ZW9scykgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7bG9jYWwgZGF0YSA9IGZmaS5DLm1lbW1lbShyYnVmLnJwb3MsIHJidWY6c2l6ZSgp LCBlb2wsICNlb2wpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2lmIGRhdGEgfj0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 bG9jYWwgbGVuID0gZmZpLmNhc3QoJ2NoYXIgKicsIGRhdGEpIC0gcmJ1Zi5ycG9zICsgI2VvbDxi cj5AQCAtNzA2LDE2ICs3MDYsMTYgQEAgbG9jYWwgZnVuY3Rpb24gcmVhZChzZWxmLCBsaW1pdCwg dGltZW91dCwgY2hlY2ssIC4uLik8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgcmVzID0gc3lzcmVhZChzZWxmLCBkYXRhLCByYnVm OnVudXNlZCgpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtpZiByZXMgPT0gMCB0aGVuIC0tIGVvZjxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtzZWxmLl9lcnJubyA9IG5pbDxicj4tIGxvY2FsIGxlbiA9IHJidWY6c2l6ZSgpPGJyPi0gbG9j YWwgZGF0YSA9IGZmaS5zdHJpbmcocmJ1Zi5ycG9zLCBsZW4pPGJyPisgbGVuID0gcmJ1ZjpzaXpl KCk8YnI+KyBkYXRhID0gZmZpLnN0cmluZyhyYnVmLnJwb3MsIGxlbik8YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7cmJ1Zi5ycG9zID0gcmJ1Zi5ycG9zICsgbGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO3JldHVybiBkYXRhPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2Vsc2VpZiByZXMgfj0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7cmJ1Zi53cG9zID0gcmJ1Zi53cG9zICsgcmVzPGJyPi0gbG9jYWwgbGVuID0gY2hlY2so c2VsZiwgbGltaXQsIC4uLik8YnI+KyBsZW4gPSBjaGVjayhzZWxmLCBsaW1pdCwgLi4uKTxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBsZW4gfj0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2VsZi5fZXJybm8gPSBuaWw8YnI+LSBsb2Nh bCBkYXRhID0gZmZpLnN0cmluZyhyYnVmLnJwb3MsIGxlbik8YnI+KyBkYXRhID0gZmZpLnN0cmlu ZyhyYnVmLnJwb3MsIGxlbik8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7cmJ1Zi5ycG9zID0gcmJ1Zi5ycG9zICsgbGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBkYXRhPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO2VuZDxicj5AQCAtMTAzOSw3ICsxMDM5LDcgQEAgbG9jYWwgZnVuY3Rpb24gdGNwX2Nv bm5lY3QoaG9zdCwgcG9ydCwgdGltZW91dCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ym94ZXJybm8oMCk8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIHM8YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPi0gbG9jYWwgdGltZW91dCA9IHRpbWVvdXQg b3IgVElNRU9VVF9JTkZJTklUWTxicj4rIHRpbWVvdXQgPSB0aW1lb3V0IG9yIFRJTUVPVVRfSU5G SU5JVFk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc3RvcCA9IGZpYmVy LmNsb2NrKCkgKyB0aW1lb3V0PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2Fs IGRucyA9IGdldGFkZHJpbmZvKGhvc3QsIHBvcnQsIHRpbWVvdXQsIHsgdHlwZSA9ICdTT0NLX1NU UkVBTScsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3Byb3RvY29sID0gJ3RjcCcgfSk8YnI+QEAgLTEwNDcsNyArMTA0Nyw3IEBAIGxvY2Fs IGZ1bmN0aW9uIHRjcF9jb25uZWN0KGhvc3QsIHBvcnQsIHRpbWVvdXQpPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2JveGVycm5vKGJveGVy cm5vLkVJTlZBTCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7cmV0dXJuIG5pbDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtl bmQ8YnI+LSBmb3IgaSwgcmVtb3RlIGluIHBhaXJzKGRucykgZG88YnI+KyBmb3IgXywgcmVtb3Rl IGluIHBhaXJzKGRucykgZG88YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7dGltZW91dCA9IHN0b3AgLSBmaWJlci5jbG9jaygpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIHRpbWVv dXQgJmx0Oz0gMCB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2JveGVycm5vKGJveGVycm5v LkVUSU1FRE9VVCk8YnI+QEAgLTEwNzgsOCArMTA3OCw4IEBAIGxvY2FsIGZ1bmN0aW9uIHRjcF9z ZXJ2ZXJfaGFuZGxlcihzZXJ2ZXIsIHNjLCBmcm9tKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtlbmQ8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4tbG9jYWwgZnVuY3Rpb24gdGNw X3NlcnZlcl9sb29wKHNlcnZlciwgcywgYWRkcik8YnI+LSBmaWJlci5uYW1lKGZvcm1hdCgiJXMv JXM6JXMiLCBzZXJ2ZXIubmFtZSwgYWRkci5ob3N0LCBhZGRyLnBvcnQpLCB7dHJ1bmNhdGUgPSB0 cnVlfSk8YnI+K2xvY2FsIGZ1bmN0aW9uIHRjcF9zZXJ2ZXJfbG9vcChzZXJ2ZXIsIHMsIGFkZHJl c3MpPGJyPisgZmliZXIubmFtZShmb3JtYXQoIiVzLyVzOiVzIiwgc2VydmVyLm5hbWUsIGFkZHJl c3MuaG9zdCwgYWRkcmVzcy5wb3J0KSwge3RydW5jYXRlID0gdHJ1ZX0pPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2xvZy5pbmZvKCJzdGFydGVkIik8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7d2hpbGUgc29ja2V0X3JlYWRhYmxlKHMpIGRvPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIHNjLCBmcm9t ID0gc29ja2V0X2FjY2VwdChzKTxicj5AQCAtMTEwNCwxNSArMTEwNCwxNSBAQCBsb2NhbCBmdW5j dGlvbiB0Y3Bfc2VydmVyX3VzYWdlKCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ZXJyb3IoJ1VzYWdlOiBzb2NrZXQudGNwX3NlcnZlcihob3N0LCBwb3J0LCBoYW5kbGVyIHwgb3B0 cyknKTxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPi1sb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVy X2RvX2JpbmQocywgYWRkcik8YnI+LSBpZiBzb2NrZXRfYmluZChzLCBhZGRyLmhvc3QsIGFkZHIu cG9ydCkgdGhlbjxicj4tIGlmIGFkZHIuZmFtaWx5ID09ICdBRl9VTklYJyB0aGVuPGJyPitsb2Nh bCBmdW5jdGlvbiB0Y3Bfc2VydmVyX2RvX2JpbmQocywgYWRkcmVzcyk8YnI+KyBpZiBzb2NrZXRf YmluZChzLCBhZGRyZXNzLmhvc3QsIGFkZHJlc3MucG9ydCkgdGhlbjxicj4rIGlmIGFkZHJlc3Mu ZmFtaWx5ID09ICdBRl9VTklYJyB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIE1ha2Ug Y2xvc2UoKSByZW1vdmUgdGhlIHVuaXggc29ja2V0IGZpbGUgY3JlYXRlZDxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDstLSBieSBiaW5kKCkuIE5vdGUsIHRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSBj bG9zaW5nPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIHRoZSBzb2NrZXQgZmQgc28gdGhhdCBu byBvdGhlciB0Y3Agc2VydmVyIGNhbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLSByZXVzZSB0 aGUgc2FtZSBwYXRoIGJlZm9yZSB3ZSByZW1vdmUgdGhlIGZpbGUuPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3MuY2xvc2UgPSBmdW5jdGlvbihzZWxmKTxicj4tIGZpby51bmxpbmsoYWRkci5wb3J0 KTxicj4rIGZpby51bmxpbmsoYWRkcmVzcy5wb3J0KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gc29ja2V0X2Nsb3NlKHNlbGYpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+QEAgLTExMjEsMTIgKzExMjEsMTIgQEAgbG9jYWwg ZnVuY3Rpb24gdGNwX3NlcnZlcl9kb19iaW5kKHMsIGFkZHIpPGJyPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO3JldHVybiBmYWxzZTxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPi1sb2Nh bCBmdW5jdGlvbiB0Y3Bfc2VydmVyX2JpbmRfYWRkcihzLCBhZGRyKTxicj4tIGlmIHRjcF9zZXJ2 ZXJfZG9fYmluZChzLCBhZGRyKSB0aGVuPGJyPitsb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVyX2Jp bmRfYWRkcihzLCBhZGRyZXNzKTxicj4rIGlmIHRjcF9zZXJ2ZXJfZG9fYmluZChzLCBhZGRyZXNz KSB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3JldHVybiB0cnVlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxi cj4mbmJzcDs8YnI+LSBpZiBhZGRyLmZhbWlseSB+PSAnQUZfVU5JWCcgdGhlbjxicj4rIGlmIGFk ZHJlc3MuZmFtaWx5IH49ICdBRl9VTklYJyB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBmYWxzZTxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPkBAIC0xMTM2LDcgKzExMzYsNyBA QCBsb2NhbCBmdW5jdGlvbiB0Y3Bfc2VydmVyX2JpbmRfYWRkcihzLCBhZGRyKTxicj4mbmJzcDs8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgc2F2ZV9lcnJubyA9IGJveGVy cm5vKCk8YnI+Jm5ic3A7PGJyPi0gbG9jYWwgc2MgPSB0Y3BfY29ubmVjdChhZGRyLmhvc3QsIGFk ZHIucG9ydCk8YnI+KyBsb2NhbCBzYyA9IHRjcF9jb25uZWN0KGFkZHJlc3MuaG9zdCwgYWRkcmVz cy5wb3J0KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBzYyB+PSBuaWwgdGhl bjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtzYzpjbG9zZSgpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2JveGVycm5vKHNhdmVfZXJybm8pPGJyPkBAIC0xMTQ4LDEzICsxMTQ4LDEz IEBAIGxvY2FsIGZ1bmN0aW9uIHRjcF9zZXJ2ZXJfYmluZF9hZGRyKHMsIGFkZHIpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBm YWxzZTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPi0g bG9nLmluZm8oInRjcF9zZXJ2ZXI6IHJlbW92ZSBkZWFkIFVOSVggc29ja2V0OiAlcyIsIGFkZHIu cG9ydCk8YnI+LSBpZiBub3QgZmlvLnVubGluayhhZGRyLnBvcnQpIHRoZW48YnI+KyBsb2cuaW5m bygidGNwX3NlcnZlcjogcmVtb3ZlIGRlYWQgVU5JWCBzb2NrZXQ6ICVzIiwgYWRkcmVzcy5wb3J0 KTxicj4rIGlmIG5vdCBmaW8udW5saW5rKGFkZHJlc3MucG9ydCkgdGhlbjxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2cud2FybigidGNw X3NlcnZlcjogJXMiLCBib3hlcnJuby5zdHJlcnJvcigpKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtib3hlcnJubyhzYXZlX2Vycm5vKTxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDty ZXR1cm4gZmFsc2U8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPi0gcmV0 dXJuIHRjcF9zZXJ2ZXJfZG9fYmluZChzLCBhZGRyKTxicj4rIHJldHVybiB0Y3Bfc2VydmVyX2Rv X2JpbmQocywgYWRkcmVzcyk8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4mbmJzcDs8YnI+QEAg LTExNzIsOCArMTE3Miw4IEBAIGxvY2FsIGZ1bmN0aW9uIHRjcF9zZXJ2ZXJfYmluZChob3N0LCBw b3J0LCBwcmVwYXJlLCB0aW1lb3V0KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ZW5kPGJyPiZuYnNwOzxicj4tIGZvciBfLCBhZGRyIGluIGlwYWlycyhkbnMpIGRvPGJyPi0g bG9jYWwgcyA9IHNvY2tldF9uZXcoYWRkci5mYW1pbHksIGFkZHIudHlwZSwgYWRkci5wcm90b2Nv bCk8YnI+KyBmb3IgXywgYWRkcmVzcyBpbiBpcGFpcnMoZG5zKSBkbzxicj4rIGxvY2FsIHMgPSBz b2NrZXRfbmV3KGFkZHJlc3MuZmFtaWx5LCBhZGRyZXNzLnR5cGUsIGFkZHJlc3MucHJvdG9jb2wp PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2lmIHMgfj0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgYmFja2xvZzxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBwcmVwYXJlIHRoZW48YnI+QEAgLTExODEsMTMgKzEx ODEsMTMgQEAgbG9jYWwgZnVuY3Rpb24gdGNwX3NlcnZlcl9iaW5kKGhvc3QsIHBvcnQsIHByZXBh cmUsIHRpbWVvdXQpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vsc2U8YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c29ja2V0X3NldHNvY2tvcHQocywgJ1NP TF9TT0NLRVQnLCAnU09fUkVVU0VBRERSJywgMSkgLS0gaWdub3JlIGVycm9yPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2VuZDxicj4tIGlmIG5vdCB0Y3Bfc2VydmVyX2JpbmRfYWRkcihzLCBhZGRy KSBvciBub3QgczpsaXN0ZW4oYmFja2xvZykgdGhlbjxicj4rIGlmIG5vdCB0Y3Bfc2VydmVyX2Jp bmRfYWRkcihzLCBhZGRyZXNzKSBvciBub3QgczpsaXN0ZW4oYmFja2xvZykgdGhlbjxicj4mbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzYXZlX2Vycm5v ID0gYm94ZXJybm8oKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtzb2NrZXRfY2xvc2Uocyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Ym94ZXJybm8oc2F2ZV9lcnJubyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIG5pbDxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtlbmQ8YnI+LSByZXR1cm4gcywgYWRkcjxicj4rIHJldHVybiBzLCBhZGRyZXNzPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7LS0gRE5TIHJlc29sdmVkIHN1Y2Nlc3NmdWxseSwgYnV0IGFkZHJlc3NzIGZhbWlseSBpcyBu b3Qgc3VwcG9ydGVkPGJyPkBAIC0xMjExLDEyICsxMjExLDEyIEBAIGxvY2FsIGZ1bmN0aW9uIHRj cF9zZXJ2ZXIoaG9zdCwgcG9ydCwgb3B0cywgdGltZW91dCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGNwX3NlcnZlcl91c2FnZSgpPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtzZXJ2ZXIubmFtZSA9IHNlcnZlci5uYW1lIG9yICdzZXJ2ZXInPGJyPi0gbG9j YWwgcywgYWRkciA9IHRjcF9zZXJ2ZXJfYmluZChob3N0LCBwb3J0LCBzZXJ2ZXIucHJlcGFyZSwg dGltZW91dCk8YnI+KyBsb2NhbCBzLCBhZGRyZXNzID0gdGNwX3NlcnZlcl9iaW5kKGhvc3QsIHBv cnQsIHNlcnZlci5wcmVwYXJlLCB0aW1lb3V0KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtpZiBub3QgcyB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBuaWw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ZW5kPGJyPi0gZmliZXIuY3JlYXRlKHRjcF9zZXJ2ZXJfbG9vcCwgc2VydmVyLCBzLCBh ZGRyKTxicj4tIHJldHVybiBzLCBhZGRyPGJyPisgZmliZXIuY3JlYXRlKHRjcF9zZXJ2ZXJfbG9v cCwgc2VydmVyLCBzLCBhZGRyZXNzKTxicj4rIHJldHVybiBzLCBhZGRyZXNzPGJyPiZuYnNwO2Vu ZDxicj4mbmJzcDs8YnI+Jm5ic3A7c29ja2V0X210ID0gezxicj5AQCAtMTMxMSwxMCArMTMxMSw5 IEBAIGxvY2FsIGZ1bmN0aW9uIGxzb2NrZXRfdGNwX2dldHBlZXJuYW1lKHNlbGYpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBwZWVyLmhvc3QsIHRvc3RyaW5nKHBlZXIu cG9ydCksIHBlZXIuZmFtaWx5Om1hdGNoKCJBRl8oLiopIik6bG93ZXIoKTxicj4mbmJzcDtlbmQ8 YnI+Jm5ic3A7PGJyPi1sb2NhbCBmdW5jdGlvbiBsc29ja2V0X3RjcF9zZXR0aW1lb3V0KHNlbGYs IHZhbHVlLCBtb2RlKTxicj4rbG9jYWwgZnVuY3Rpb24gbHNvY2tldF90Y3Bfc2V0dGltZW91dChz ZWxmLCB2YWx1ZSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y2hlY2tfc29ja2V0 KHNlbGYpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NlbGYudGltZW91dCA9IHZh bHVlPGJyPi0gLS0gbW9kZSBpcyBlZmZlY3RpdmVseSBpZ25vcmVkPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO3JldHVybiAxPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+QEAgLTE0 NjcsNyArMTQ2Niw3IEBAIGxvY2FsIGZ1bmN0aW9uIGxzb2NrZXRfdGNwX3JlY2VpdmUoc2VsZiwg cGF0dGVybiwgcHJlZml4KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtsb2NhbCByZXN1bHQgPSB7IHByZWZpeCB9PGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvY2FsIGRlYWRsaW5l ID0gZmliZXIuY2xvY2soKSArIChzZWxmLnRpbWVvdXQgb3IgVElNRU9VVF9JTkZJTklUWSk8YnI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVw ZWF0PGJyPi0gbG9jYWwgZGF0YSA9IHJlYWQoc2VsZiwgTElNSVRfSU5GSU5JVFksIHRpbWVvdXQs IGNoZWNrX2luZmluaXR5KTxicj4rIGRhdGEgPSByZWFkKHNlbGYsIExJTUlUX0lORklOSVRZLCB0 aW1lb3V0LCBjaGVja19pbmZpbml0eSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgZGF0YSA9 PSBuaWwgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtpZiBub3QgZXJybm9faXNfdHJhbnNpZW50W3NlbGYuX2Vycm5vXSB0aGVuPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO3JldHVybiBuaWwsIHNvY2tldF9lcnJvcihzZWxmKTxicj5AQCAtMTUzNSw3ICsxNTM0LDcg QEAgbHNvY2tldF90Y3BfbXQuX19pbmRleC5zZW5kID0gbHNvY2tldF90Y3Bfc2VuZDs8YnI+Jm5i c3A7LS0gVENQIENvbnN0cnVjdG9yIGFuZCBTaG9ydGN1dHM8YnI+Jm5ic3A7LS08YnI+Jm5ic3A7 PGJyPi1sb2NhbCBmdW5jdGlvbiBsc29ja2V0X3RjcCgpPGJyPitsb2NhbCBmdW5jdGlvbiBsc29j a2V0X3RjcChzZWxmKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzID0g c29ja2V0X25ldygnQUZfSU5FVCcsICdTT0NLX1NUUkVBTScsICd0Y3AnKTxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBub3QgcyB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBuaWwsIHNvY2tldF9lcnJv cihzZWxmKTxicj5AQCAtMTU1OSw3ICsxNTU4LDcgQEAgbG9jYWwgZnVuY3Rpb24gbHNvY2tldF9i aW5kKGhvc3QsIHBvcnQsIGJhY2tsb2cpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2lmIGhvc3QgPT0gbmlsIG9yIHBvcnQgPT0gbmlsIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZXJyb3IoIlVzYWdlOiBsdWFzb2Nr ZXQuYmluZChob3N0LCBwb3J0IFssIGJhY2tsb2ddKSIpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO2VuZDxicj4tIGxvY2FsIGZ1bmN0aW9uIHByZXBhcmUocykgcmV0dXJuIGJhY2ts b2cgZW5kPGJyPisgbG9jYWwgZnVuY3Rpb24gcHJlcGFyZSgpIHJldHVybiBiYWNrbG9nIGVuZDxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtsb2NhbCBzID0gdGNwX3NlcnZlcl9iaW5k KGhvc3QsIHBvcnQsIHByZXBhcmUpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lm IG5vdCBzIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7cmV0dXJuIG5pbCwgYm94ZXJybm8uc3RyZXJyb3IoKTxicj5kaWZmIC0tZ2l0 IGEvc3JjL2x1YS9zdHJpbmcubHVhIGIvc3JjL2x1YS9zdHJpbmcubHVhPGJyPmluZGV4IDZlMTJj NTlhZS4uZDNhODQ2NjQ1IDEwMDY0NDxicj4tLS0gYS9zcmMvbHVhL3N0cmluZy5sdWE8YnI+Kysr IGIvc3JjL2x1YS9zdHJpbmcubHVhPGJyPkBAIC0yMzMsNyArMjMzLDYgQEAgbG9jYWwgZnVuY3Rp b24gc3RyaW5nX3N0YXJ0c3dpdGgoaW5wLCBoZWFkLCBfc3RhcnQsIF9lbmQpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBmYWxz ZTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7X3N0YXJ0ID0gX3N0YXJ0IC0gMTxicj4tIF9lbmQgPSBfc3RhcnQgKyBo ZWFkX2xlbiAtIDE8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIG1lbWNt cChjX2NoYXJfcHRyKGlucCkgKyBfc3RhcnQsIGNfY2hhcl9wdHIoaGVhZCksIGhlYWRfbGVuKSA9 PSAwPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+ZGlmZiAtLWdpdCBhL3NyYy9sdWEvc3dpbS5s dWEgYi9zcmMvbHVhL3N3aW0ubHVhPGJyPmluZGV4IDA4NTk5MTVjOS4uNDY2ZTc3Y2U0IDEwMDY0 NDxicj4tLS0gYS9zcmMvbHVhL3N3aW0ubHVhPGJyPisrKyBiL3NyYy9sdWEvc3dpbS5sdWE8YnI+ QEAgLTM3MSw3ICszNzEsNyBAQCBlbmQ8YnI+Jm5ic3A7LS08YnI+Jm5ic3A7bG9jYWwgZnVuY3Rp b24gc3dpbV9tZW1iZXJfcGF5bG9hZF9zdHIobSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7bG9jYWwgcHRyID0gc3dpbV9jaGVja19tZW1iZXIobSwgJ21lbWJlcjpwYXlsb2FkX3N0 cigpJyk8YnI+LSBsb2NhbCBjZGF0YSwgc2l6ZSA9IHN3aW1fbWVtYmVyX3BheWxvYWRfcmF3KHB0 cik8YnI+KyBsb2NhbCBfLCBzaXplID0gc3dpbV9tZW1iZXJfcGF5bG9hZF9yYXcocHRyKTxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBzaXplICZndDsgMCB0aGVuPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBm Zmkuc3RyaW5nKHN3aW1fbWVtYmVyX3BheWxvYWRfcmF3KHB0cikpPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2VuZDxicj5AQCAtNDYyLDcgKzQ2Miw3IEBAIGxvY2FsIHN3aW1fbWVt YmVyX210ID0gezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtpc19kcm9wcGVkID0gc3dpbV9tZW1iZXJfaXNfZHJvcHBlZCw8YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fSw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7X19zZXJpYWxpemUgPSBzd2ltX21lbWJlcl9zZXJpYWxpemUsPGJyPi0gX19uZXdpbmRleCA9 IGZ1bmN0aW9uKG0pPGJyPisgX19uZXdpbmRleCA9IGZ1bmN0aW9uKCk8YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGVycm9yKCdz d2ltX21lbWJlciBpcyBhIHJlYWQtb25seSBvYmplY3QnKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7fTxicj5AQCAtNzgyLDIwICs3ODIsMjAgQEAgbG9jYWwg c3dpbV9tZW1iZXJfZXZlbnRfbXQgPSB7PGJyPiZuYnNwOy0tPGJyPiZuYnNwOy0tIENyZWF0ZSBh IGNsb3N1cmUgZnVuY3Rpb24gZm9yIHByZXByb2Nlc3NpbmcgcmF3IFNXSU0gbWVtYmVyPGJyPiZu YnNwOy0tIGV2ZW50IHRyaWdnZXIgcGFyYW1ldGVycy48YnI+LS0tIEBwYXJhbSBzIFNXSU0gaW5z dGFuY2UuPGJyPistLSBAcGFyYW0gaW5zdGFuY2UgU1dJTSBpbnN0YW5jZS48YnI+Jm5ic3A7LS0g QHBhcmFtIGNhbGxiYWNrIFVzZXIgZnVuY3Rpb25zIHRvIGNhbGwuPGJyPiZuYnNwOy0tIEBwYXJh bSBjdHggQW4gb3B0aW9uYWwgcGFyYW1ldGVyIGZvciBAYSBjYWxsYmFjayBwYXNzZWQgYXMgaXMu PGJyPiZuYnNwOy0tIEByZXR1cm4gQSBmdW5jdGlvbiB0byBzZXQgYXMgYSB0cmlnZ2VyLjxicj4m bmJzcDstLTxicj4tbG9jYWwgZnVuY3Rpb24gc3dpbV9vbl9tZW1iZXJfZXZlbnRfbmV3KHMsIGNh bGxiYWNrLCBjdHgpPGJyPitsb2NhbCBmdW5jdGlvbiBzd2ltX29uX21lbWJlcl9ldmVudF9uZXco aW5zdGFuY2UsIGNhbGxiYWNrLCBjdHgpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw Oy0tIERvIG5vdCBrZWVwIGEgaGFyZCByZWZlcmVuY2UgdG8gYSBTV0lNIGluc3RhbmNlLiBPdGhl cndpc2U8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LS0gaXQgaXMgYSBjeWNsaWMg cmVmZXJlbmNlLCBhbmQgYm90aCB0aGUgaW5zdGFuY2UgYW5kIHRoZTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDstLSB0cmlnZ2VyIHdpbGwgbmV2ZXIgYmUgR0MtZWQuPGJyPi0gcyA9 IHNldG1ldGF0YWJsZSh7c30sIHtfX21vZGUgPSAndid9KTxicj4rIGluc3RhbmNlID0gc2V0bWV0 YXRhYmxlKHtpbnN0YW5jZX0sIHtfX21vZGUgPSAndid9KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtyZXR1cm4gZnVuY3Rpb24obWVtYmVyX3B0ciwgZXZlbnRfbWFzayk8YnI+LSBs b2NhbCBzID0gc1sxXTxicj4tIGlmIHMgdGhlbjxicj4tIGxvY2FsIG0gPSBzd2ltX3dyYXBfbWVt YmVyKHMsIG1lbWJlcl9wdHIpPGJyPisgbG9jYWwgaSA9IGluc3RhbmNlWzFdPGJyPisgaWYgaSB0 aGVuPGJyPisgbG9jYWwgbSA9IHN3aW1fd3JhcF9tZW1iZXIoaSwgbWVtYmVyX3B0cik8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9jYWwgZXZlbnQgPSBzZXRtZXRhdGFibGUoe2V2ZW50X21hc2t9 LCBzd2ltX21lbWJlcl9ldmVudF9tdCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGNh bGxiYWNrKG0sIGV2ZW50LCBjdHgpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2VuZDxicj5kaWZmIC0tZ2l0IGEvc3JjL2x1YS90YXAubHVh IGIvc3JjL2x1YS90YXAubHVhPGJyPmluZGV4IDk0YjA4MGQ1YS4uMDQ0OTczODZlIDEwMDY0NDxi cj4tLS0gYS9zcmMvbHVhL3RhcC5sdWE8YnI+KysrIGIvc3JjL2x1YS90YXAubHVhPGJyPkBAIC01 Myw3ICs1Myw3IEBAIGxvY2FsIGZ1bmN0aW9uIG9rKHRlc3QsIGNvbmQsIG1lc3NhZ2UsIGV4dHJh KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpby53cml0ZShzdHJpbmcuZm9ybWF0 KCJub3Qgb2sgLSAlc1xuIiwgbWVzc2FnZSkpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwO2V4dHJhID0gZXh0cmEgb3Ige308YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 aWYgdGVzdC50cmFjZSB0aGVuPGJyPi0gbG9jYWwgZnJhbWUgPSBkZWJ1Zy5nZXRpbmZvKDMsICJT bCIpPGJyPisgZGVidWcuZ2V0aW5mbygzLCAiU2wiKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtleHRyYS50cmFjZSA9IHRyYWNlYmFjaygp PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2V4dHJhLmZpbGVuYW1lID0gZXh0cmEudHJhY2VbI2V4dHJhLnRyYWNlXS5maWxlbmFtZTxicj4m bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtleHRy YS5saW5lID0gZXh0cmEudHJhY2VbI2V4dHJhLnRyYWNlXS5saW5lPGJyPkBAIC03Niw5ICs3Niw2 IEBAIGxvY2FsIGZ1bmN0aW9uIHNraXAodGVzdCwgbWVzc2FnZSwgZXh0cmEpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO29rKHRlc3QsIHRydWUsIG1lc3NhZ2UuLiIgIyBza2lwIiwg ZXh0cmEpPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+LTxicj4tbG9jYWwgbmFuID0gMC8wPGJy Pi08YnI+Jm5ic3A7bG9jYWwgZnVuY3Rpb24gY21wZGVlcGx5KGdvdCwgZXhwZWN0ZWQsIGV4dHJh KTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiB0eXBlKGV4cGVjdGVkKSA9PSAi bnVtYmVyIiBvciB0eXBlKGdvdCkgPT0gIm51bWJlciIgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtleHRyYS5nb3QgPSBnb3Q8YnI+ QEAgLTE5MCwzOCArMTg3LDM4IEBAIGxvY2FsIGZ1bmN0aW9uIGlzYm9vbGVhbih0ZXN0LCB2LCBt ZXNzYWdlLCBleHRyYSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGlz KHRlc3QsIHR5cGUodiksICdib29sZWFuJywgbWVzc2FnZSwgZXh0cmEpPGJyPiZuYnNwO2VuZDxi cj4mbmJzcDs8YnI+LWxvY2FsIGZ1bmN0aW9uIGlzZnVuY3Rpb24odGVzdCwgdiwgbWVzc2FnZSwg ZXh0cmEpPGJyPi0gcmV0dXJuIGlzKHRlc3QsIHR5cGUodiksICdmdW5jdGlvbicsIG1lc3NhZ2Us IGV4dHJhKTxicj4rbG9jYWwgZnVuY3Rpb24gaXNmdW5jdGlvbih0ZXN0Y2FzZSwgdiwgbWVzc2Fn ZSwgZXh0cmEpPGJyPisgcmV0dXJuIGlzKHRlc3RjYXNlLCB0eXBlKHYpLCAnZnVuY3Rpb24nLCBt ZXNzYWdlLCBleHRyYSk8YnI+Jm5ic3A7ZW5kPGJyPiZuYnNwOzxicj4tbG9jYWwgZnVuY3Rpb24g aXN1ZGF0YSh0ZXN0LCB2LCB1dHlwZSwgbWVzc2FnZSwgZXh0cmEpPGJyPitsb2NhbCBmdW5jdGlv biBpc3VkYXRhKHRlc3RjYXNlLCB2LCB1dHlwZSwgbWVzc2FnZSwgZXh0cmEpPGJyPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2V4dHJhID0gZXh0cmEgb3Ige308YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ZXh0cmEuZXhwZWN0ZWQgPSAndXNlcmRhdGEmbHQ7Jy4udXR5cGUu LicmZ3Q7Jzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiB0eXBlKHYpID09ICd1 c2VyZGF0YScgdGhlbjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtleHRyYS5nb3QgPSAndXNlcmRhdGEmbHQ7Jy4uZ2V0bWV0YXRhYmxlKHYp Li4nJmd0Oyc8YnI+LSByZXR1cm4gb2sodGVzdCwgZ2V0bWV0YXRhYmxlKHYpID09IHV0eXBlLCBt ZXNzYWdlLCBleHRyYSk8YnI+KyByZXR1cm4gb2sodGVzdGNhc2UsIGdldG1ldGF0YWJsZSh2KSA9 PSB1dHlwZSwgbWVzc2FnZSwgZXh0cmEpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2Vsc2U8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ZXh0cmEuZ290ID0gdHlwZSh2KTxicj4tIHJldHVybiBmYWlsKHRlc3QsIG1lc3NhZ2Us IGV4dHJhKTxicj4rIHJldHVybiBmYWlsKHRlc3RjYXNlLCBtZXNzYWdlLCBleHRyYSk8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+ LWxvY2FsIGZ1bmN0aW9uIGlzY2RhdGEodGVzdCwgdiwgY3R5cGUsIG1lc3NhZ2UsIGV4dHJhKTxi cj4rbG9jYWwgZnVuY3Rpb24gaXNjZGF0YSh0ZXN0Y2FzZSwgdiwgY3R5cGUsIG1lc3NhZ2UsIGV4 dHJhKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtleHRyYSA9IGV4dHJhIG9yIHt9 PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2V4dHJhLmV4cGVjdGVkID0gZmZpLnR5 cGVvZihjdHlwZSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgdHlwZSh2KSA9 PSAnY2RhdGEnIHRoZW48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZXh0cmEuZ290ID0gZmZpLnR5cGVvZih2KTxicj4tIHJldHVybiBvayh0 ZXN0LCBmZmkuaXN0eXBlKGN0eXBlLCB2KSwgbWVzc2FnZSwgZXh0cmEpPGJyPisgcmV0dXJuIG9r KHRlc3RjYXNlLCBmZmkuaXN0eXBlKGN0eXBlLCB2KSwgbWVzc2FnZSwgZXh0cmEpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vsc2U8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZXh0cmEuZ290ID0gdHlwZSh2KTxicj4tIHJl dHVybiBmYWlsKHRlc3QsIG1lc3NhZ2UsIGV4dHJhKTxicj4rIHJldHVybiBmYWlsKHRlc3RjYXNl LCBtZXNzYWdlLCBleHRyYSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJy PiZuYnNwO2VuZDxicj4mbmJzcDs8YnI+Jm5ic3A7bG9jYWwgdGVzdF9tdDxicj4mbmJzcDtsb2Nh bCBmdW5jdGlvbiB0ZXN0KHBhcmVudCwgbmFtZSwgZnVuLCAuLi4pPGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwO2xvY2FsIGxldmVsID0gcGFyZW50IH49IG5pbCBhbmQgcGFyZW50Lmxl dmVsICsgMSBvciAwPGJyPi0gbG9jYWwgdGVzdCA9IHNldG1ldGF0YWJsZSh7PGJyPisgbG9jYWwg dGVzdGNhc2UgPSBzZXRtZXRhdGFibGUoezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwYXJlbnQgPSBwYXJlbnQ7PGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO25hbWUgPSBuYW1lOzxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDts ZXZlbCA9IGxldmVsOzxicj5AQCAtMjMyLDQ4ICsyMjksNDggQEAgbG9jYWwgZnVuY3Rpb24gdGVz dChwYXJlbnQsIG5hbWUsIGZ1biwgLi4uKTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJpY3QgPSBmYWxzZTs8YnI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7fSwgdGVzdF9tdCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7aWYgZnVuIH49IG5pbCB0aGVuPGJyPi0gdGVzdDpkaWFnKCclcycsIHRlc3QubmFtZSk8 YnI+LSBmdW4odGVzdCwgLi4uKTxicj4tIHRlc3Q6ZGlhZygnJXM6IGVuZCcsIHRlc3QubmFtZSk8 YnI+LSByZXR1cm4gdGVzdDpjaGVjaygpPGJyPisgdGVzdGNhc2U6ZGlhZygnJXMnLCB0ZXN0Y2Fz ZS5uYW1lKTxicj4rIGZ1bih0ZXN0Y2FzZSwgLi4uKTxicj4rIHRlc3RjYXNlOmRpYWcoJyVzOiBl bmQnLCB0ZXN0Y2FzZS5uYW1lKTxicj4rIHJldHVybiB0ZXN0Y2FzZTpjaGVjaygpPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vsc2U8YnI+LSByZXR1cm4gdGVzdDxicj4rIHJldHVy biB0ZXN0Y2FzZTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+Jm5ic3A7 ZW5kPGJyPiZuYnNwOzxicj4tbG9jYWwgZnVuY3Rpb24gcGxhbih0ZXN0LCBwbGFubmVkKTxicj4t IHRlc3QucGxhbm5lZCA9IHBsYW5uZWQ8YnI+LSBpby53cml0ZShzdHJpbmcucmVwKCcgJywgNCAq IHRlc3QubGV2ZWwpLCBzdHJpbmcuZm9ybWF0KCIxLi4lZFxuIiwgcGxhbm5lZCkpPGJyPitsb2Nh bCBmdW5jdGlvbiBwbGFuKHRlc3RjYXNlLCBwbGFubmVkKTxicj4rIHRlc3RjYXNlLnBsYW5uZWQg PSBwbGFubmVkPGJyPisgaW8ud3JpdGUoc3RyaW5nLnJlcCgnICcsIDQgKiB0ZXN0Y2FzZS5sZXZl bCksIHN0cmluZy5mb3JtYXQoIjEuLiVkXG4iLCBwbGFubmVkKSk8YnI+Jm5ic3A7ZW5kPGJyPiZu YnNwOzxicj4tbG9jYWwgZnVuY3Rpb24gY2hlY2sodGVzdCk8YnI+LSBpZiB0ZXN0LmNoZWNrZWQg dGhlbjxicj4rbG9jYWwgZnVuY3Rpb24gY2hlY2sodGVzdGNhc2UpPGJyPisgaWYgdGVzdGNhc2Uu Y2hlY2tlZCB0aGVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2Vycm9yKCdjaGVjayBjYWxsZWQgdHdpY2UnKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtlbmQ8YnI+LSB0ZXN0LmNoZWNrZWQgPSB0cnVlPGJyPi0gaWYgdGVz dC5wbGFubmVkIH49IHRlc3QudG90YWwgdGhlbjxicj4tIGlmIHRlc3QucGFyZW50IH49IG5pbCB0 aGVuPGJyPi0gb2sodGVzdC5wYXJlbnQsIGZhbHNlLCAiYmFkIHBsYW4iLCB7IHBsYW5uZWQgPSB0 ZXN0LnBsYW5uZWQ7PGJyPi0gcnVuID0gdGVzdC50b3RhbH0pPGJyPisgdGVzdGNhc2UuY2hlY2tl ZCA9IHRydWU8YnI+KyBpZiB0ZXN0Y2FzZS5wbGFubmVkIH49IHRlc3RjYXNlLnRvdGFsIHRoZW48 YnI+KyBpZiB0ZXN0Y2FzZS5wYXJlbnQgfj0gbmlsIHRoZW48YnI+KyBvayh0ZXN0Y2FzZS5wYXJl bnQsIGZhbHNlLCAiYmFkIHBsYW4iLCB7IHBsYW5uZWQgPSB0ZXN0Y2FzZS5wbGFubmVkOzxicj4r IHJ1biA9IHRlc3RjYXNlLnRvdGFsfSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZTxicj4tIGRpYWcodGVzdCwgc3RyaW5nLmZvcm1h dCgiYmFkIHBsYW46IHBsYW5uZWQgJWQgcnVuICVkIiw8YnI+LSB0ZXN0LnBsYW5uZWQsIHRlc3Qu dG90YWwpKTxicj4rIGRpYWcodGVzdGNhc2UsIHN0cmluZy5mb3JtYXQoImJhZCBwbGFuOiBwbGFu bmVkICVkIHJ1biAlZCIsPGJyPisgdGVzdGNhc2UucGxhbm5lZCwgdGVzdGNhc2UudG90YWwpKTxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtl bmQ8YnI+LSBlbHNlaWYgdGVzdC5mYWlsZWQgJmd0OyAwIHRoZW48YnI+LSBpZiB0ZXN0LnBhcmVu dCB+PSBuaWwgdGhlbjxicj4tIG9rKHRlc3QucGFyZW50LCBmYWxzZSwgImZhaWxlZCBzdWJ0ZXN0 cyIsIHs8YnI+LSBmYWlsZWQgPSB0ZXN0LmZhaWxlZDs8YnI+LSBwbGFubmVkID0gdGVzdC5wbGFu bmVkOzxicj4rIGVsc2VpZiB0ZXN0Y2FzZS5mYWlsZWQgJmd0OyAwIHRoZW48YnI+KyBpZiB0ZXN0 Y2FzZS5wYXJlbnQgfj0gbmlsIHRoZW48YnI+KyBvayh0ZXN0Y2FzZS5wYXJlbnQsIGZhbHNlLCAi ZmFpbGVkIHN1YnRlc3RzIiwgezxicj4rIGZhaWxlZCA9IHRlc3RjYXNlLmZhaWxlZDs8YnI+KyBw bGFubmVkID0gdGVzdGNhc2UucGxhbm5lZDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fSk8YnI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxz ZTxicj4tIGRpYWcodGVzdCwgImZhaWxlZCBzdWJ0ZXN0OiAlZCIsIHRlc3QuZmFpbGVkKTxicj4r IGRpYWcodGVzdGNhc2UsICJmYWlsZWQgc3VidGVzdDogJWQiLCB0ZXN0Y2FzZS5mYWlsZWQpPGJy PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vu ZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbHNlPGJyPi0gaWYgdGVzdC5wYXJl bnQgfj0gbmlsIHRoZW48YnI+LSBvayh0ZXN0LnBhcmVudCwgdHJ1ZSwgdGVzdC5uYW1lKTxicj4r IGlmIHRlc3RjYXNlLnBhcmVudCB+PSBuaWwgdGhlbjxicj4rIG9rKHRlc3RjYXNlLnBhcmVudCwg dHJ1ZSwgdGVzdGNhc2UubmFtZSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2VuZDxicj4tIHJldHVybiB0ZXN0LnBsYW5uZWQgPT0gdGVzdC50b3RhbCBhbmQgdGVzdC5mYWls ZWQgPT0gMDxicj4rIHJldHVybiB0ZXN0Y2FzZS5wbGFubmVkID09IHRlc3RjYXNlLnRvdGFsIGFu ZCB0ZXN0Y2FzZS5mYWlsZWQgPT0gMDxicj4mbmJzcDtlbmQ8YnI+Jm5ic3A7PGJyPiZuYnNwO3Rl c3RfbXQgPSB7PGJyPmRpZmYgLS1naXQgYS9zcmMvbHVhL3RyaWdnZXIubHVhIGIvc3JjL2x1YS90 cmlnZ2VyLmx1YTxicj5pbmRleCA3NmE1ODJjNDcuLjEzMzBlY2RkNCAxMDA2NDQ8YnI+LS0tIGEv c3JjL2x1YS90cmlnZ2VyLmx1YTxicj4rKysgYi9zcmMvbHVhL3RyaWdnZXIubHVhPGJyPkBAIC0x LDcgKzEsNCBAQDxicj4mbmJzcDtsb2NhbCBmdW4gPSByZXF1aXJlKCdmdW4nKTxicj4tbG9jYWwg bG9nID0gcmVxdWlyZSgnbG9nJyk8YnI+LTxicj4tbG9jYWwgdGFibGVfY2xlYXIgPSByZXF1aXJl KCd0YWJsZS5jbGVhcicpPGJyPiZuYnNwOzxicj4mbmJzcDstLTxicj4mbmJzcDstLSBDaGVja3Mg dGhhdCBhcmd1bWVudCBpcyBhIGNhbGxhYmxlLCBpLmUuIGEgZnVuY3Rpb24gb3IgYSB0YWJsZTxi cj4tLTxicj4yLjIzLjA8YnI+Jm5ic3A7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1 b3RlPiZuYnNwOzxkaXY+Jm5ic3A7PC9kaXY+PGRpdiBkYXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNv bnRhaW5lciI+PGRpdiBkYXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRlbnQiPjxkaXY+LS08YnI+ QWxleGFuZGVyIFRpa2hvbm92PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48L2Rp dj48L0JPRFk+PC9IVE1MPgo= ----ALT--b15E2c85eF5be68B27D8B98485dD1f581586406706--