From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id E6CEF202B5 for ; Tue, 31 Jul 2018 07:40:40 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5uY1w_BpTJds for ; Tue, 31 Jul 2018 07:40:40 -0400 (EDT) Received: from f42.i.mail.ru (f42.i.mail.ru [217.69.128.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 386BA25022 for ; Tue, 31 Jul 2018 07:40:40 -0400 (EDT) From: =?UTF-8?B?S29uc3RhbnRpbiBCZWx5YXZza2l5?= Subject: [tarantool-patches] =?UTF-8?B?UmU6IFt0YXJhbnRvb2wtcGF0Y2hlc10gW2JveC5jdGwgMi8zXSBib3guY3Rs?= =?UTF-8?B?OiBBZGQgb25fY3RsX2V2ZW50IHRyaWdnZXIgY2FsbHM=?= MIME-Version: 1.0 Date: Tue, 31 Jul 2018 14:40:38 +0300 Message-ID: <1533037238.501261578@f42.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--5DKGXo0pUiSIFTotfLwSnMWQ6XK0GpZA1533037238" In-Reply-To: References: Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: =?UTF-8?B?Z2Vvcmd5?= , =?UTF-8?B?0JjQu9GM0Y8g0JzQsNGA0LrQvtCy?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= ----ALT--5DKGXo0pUiSIFTotfLwSnMWQ6XK0GpZA1533037238 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksCm92ZXJhbGwgcGF0Y2ggbG9va3MgZ29vZCB3aXRoIG1pbm9yIGNvbnBsYWlucyAoc3VtbWFy eSkKLSB1bnVzZWQgaGVhZGVycwotIGlzIGl0IHdvcnRoIGl0wqB0byBjcmVhdGUgYSBzZXBhcmF0 ZcKgZmliZXIgdG8gY2hlY2sgaWYgcmVhZC1vbmx5IGNvbmRpdGlvbiB3YXMgY2hhbmdlZD8KLSB0 ZXN0IFNIVVRET1dOIHNob3VsZCBiZSBpbXBsZW1lbnRlZAoKCgo+0KfQtdGC0LLQtdGA0LMsIDE0 INC40Y7QvdGPIDIwMTgsIDE4OjA0ICswMzowMCDQvtGCIElseWEgTWFya292IDxpbWFya292QHRh cmFudG9vbC5vcmc+Ogo+Cj5BZGQgZm9sbG93aW5nIGNhc2VzIG9mIHRyaWdnZXJzOgo+KiBTeXN0 ZW0gc3BhY2UgcmVjb3ZlcnkuIENhbGxlZCBvbiBmaW5pc2ggb2YgYm9vdHN0cmFwIG9yIGZpbmlz aCBvZiBqb2luIG9yCj5zbmFwc2hvdCByZWNvdmVyeS4KPiogTG9jYWwgcmVjb3ZlcnkuIENhbGxl ZCBvbiBmaW5pc2ggb2YgYm9vdHN0cmFwIG9yIGZpbmlzaCBvZiByZWNvdmVyeS4KPiogUmVhZF9v bmx5L3JlYWRfd3JpdGUuIENhbGxlZCBvbiBjaGFuZ2VzIG9mIHJlYWRfb25seSBzdGF0ZSBvZgo+ aW5zdGFuY2UuCj4qIFNodXRkb3duLiBDYWxsZWQgb24gY29udHJvbGxlZCBzaHV0ZG93bi4KPiog UmVwbGljYXNldF9hZGQvcmVwbGljYXNldF9yZW1vdmUuIENhbGxlZCBvbiBjaGFuZ2VzIGluIHNw YWNlIF9jbHVzdGVyLgo+Cj5FcnJvcnMgaW5zaWRlIHRyaWdnZXJzIGFyZSBsb2dnZWQgYW5kIGRv bid0IGluZmx1ZW5jZSBvbiBpbnN0YW5jZQo+YmVoYXZpb3VyLgo+Cj5Db250aW51ZSAjMzE1OQo+ LS0tCj7CoHNyYy9ib3gvYWx0ZXIuY2MgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+wqBzcmMv Ym94L2JveC5jYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ0ICsrKysrKy0KPsKgc3JjL2JveC9l bmdpbmUuYyAgICAgICAgICAgICAgICAgICB8ICAxNCArKysKPsKgc3JjL2JveC9sdWEvY3RsLmMg ICAgICAgICAgICAgICAgICB8ICAgNCArLQo+wqBzcmMvYm94L21lbXR4X2VuZ2luZS5jICAgICAg ICAgICAgIHwgICAyICstCj7CoHNyYy9ib3gvcmVwbGljYXRpb24uY2MgICAgICAgICAgICAgfCAg MTQgKysrCj7CoHRlc3QvcmVwbGljYXRpb24vbWFzdGVyX29uY3RsLmx1YSAgfCAgMzQgKysrKysK PsKgdGVzdC9yZXBsaWNhdGlvbi9vbmN0bC5yZXN1bHQgICAgICB8IDI1MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj7CoHRlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5s dWEgICAgfCAxMDUgKysrKysrKysrKysrKysrKwo+wqB0ZXN0L3JlcGxpY2F0aW9uL3JlcGxpY2Ff b25jdGwubHVhIHwgIDM0ICsrKysrCj7CoHRlc3QvcmVwbGljYXRpb24vc3VpdGUuY2ZnICAgICAg ICAgfCAgIDEgKwo+wqAxMSBmaWxlcyBjaGFuZ2VkLCA0OTggaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKPsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vbWFzdGVyX29u Y3RsLmx1YQo+wqBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9yZXBsaWNhdGlvbi9vbmN0bC5yZXN1 bHQKPsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5sdWEK PsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVwbGljYXRpb24vcmVwbGljYV9vbmN0bC5sdWEK Pgo+ZGlmZiAtLWdpdCBhL3NyYy9ib3gvYWx0ZXIuY2MgYi9zcmMvYm94L2FsdGVyLmNjCj5pbmRl eCA2ZjZmY2IwLi43ZWM1NDhiIDEwMDY0NAo+LS0tIGEvc3JjL2JveC9hbHRlci5jYwo+KysrIGIv c3JjL2JveC9hbHRlci5jYwo+QEAgLTUyLDYgKzUyLDcgQEAKPsKgI2luY2x1ZGUgImlkZW50aWZp ZXIuaCIKPsKgI2luY2x1ZGUgInZlcnNpb24uaCIKPsKgI2luY2x1ZGUgInNlcXVlbmNlLmgiCj4K PisjaW5jbHVkZSAiY3RsLmgiIApOb3QgdXNlZC4KPgo+Cj7CoC8qKgo+wqDCoCogY2hhcC1zaGEx IG9mIGVtcHR5IHN0cmluZywgaS5lLgo+ZGlmZiAtLWdpdCBhL3NyYy9ib3gvYm94LmNjIGIvc3Jj L2JveC9ib3guY2MKPmluZGV4IDI2Mjc3ZTcuLjFkZTM3ZDIgMTAwNjQ0Cj4tLS0gYS9zcmMvYm94 L2JveC5jYwo+KysrIGIvc3JjL2JveC9ib3guY2MKPkBAIC0xMTMsNiArMTEzLDExIEBAIHN0YXRp YyBmaWJlcl9jb25kIHJvX2NvbmQ7Cj7CoMKgKi8KPsKgc3RhdGljIGJvb2wgaXNfb3JwaGFuID0g dHJ1ZTsKPgo+Ky8qKgo+KyAqIEZpYmVyIHVzZWQgZm9yIG9uX2N0bF9ldmVudCB0cmlnZ2VyLgo+ KyAqLwo+K3N0YXRpYyBmaWJlciAqcm9fY2hlY2tlcjsKPisKPsKgLyogVXNlIHRoZSBzaGFyZWQg aW5zdGFuY2Ugb2YgeHN0cmVhbSBmb3IgYWxsIGFwcGxpZXJzICovCj7CoHN0YXRpYyBzdHJ1Y3Qg eHN0cmVhbSBqb2luX3N0cmVhbTsKPsKgc3RhdGljIHN0cnVjdCB4c3RyZWFtIHN1YnNjcmliZV9z dHJlYW07Cj5AQCAtMTU3Myw2ICsxNTc4LDkgQEAgYm94X3NldF9yZXBsaWNhc2V0X3V1aWQoY29u c3Qgc3RydWN0IHR0X3V1aWQgKnJlcGxpY2FzZXRfdXVpZCkKPsKgdm9pZAo+wqBib3hfZnJlZSh2 b2lkKQo+wqB7Cj4rCWlmIChydW5fb25fY3RsX2V2ZW50X3RyaWdnZXJfdHlwZShDVExfRVZFTlRf U0hVVERPV04pIDwgMCkKPisJCXNheV9lcnJvcigiY3RsX3RyaWdnZXIgZXJyb3IgaW4gc2h1dGRv d246ICVzIiwKPisJCQkgIGRpYWdfbGFzdF9lcnJvcihkaWFnX2dldCgpKS0+ZXJybXNnKTsKPsKg CS8qCj7CoAkgKiBTZWUgZ2gtNTg0ICJib3hfZnJlZSgpIGlzIGNhbGxlZCBldmVuIGlmIGJveCBp cyBub3QKPsKgCSAqIGluaXRpYWxpemVkCj5AQCAtMTU5Miw3ICsxNjAwLDggQEAgYm94X2ZyZWUo dm9pZCkKPsKgCQllbmdpbmVfc2h1dGRvd24oKTsKPsKgCQl3YWxfdGhyZWFkX3N0b3AoKTsKPsKg CX0KPi0KPisJaWYgKCFmaWJlcl9pc19kZWFkKHJvX2NoZWNrZXIpKQo+KwkJZmliZXJfY2FuY2Vs KHJvX2NoZWNrZXIpOwo+wqAJZmliZXJfY29uZF9kZXN0cm95KCZyb19jb25kKTsKPsKgfQo+Cj5A QCAtMTY5Myw2ICsxNzAyLDEwIEBAIGJvb3RzdHJhcF9mcm9tX21hc3RlcihzdHJ1Y3QgcmVwbGlj YSAqbWFzdGVyKQo+wqAJZW5naW5lX2JlZ2luX2luaXRpYWxfcmVjb3ZlcnlfeGMoTlVMTCk7Cj7C oAlhcHBsaWVyX3Jlc3VtZV90b19zdGF0ZShhcHBsaWVyLCBBUFBMSUVSX0ZJTkFMX0pPSU4sIFRJ TUVPVVRfSU5GSU5JVFkpOwo+Cj4rCWlmIChydW5fb25fY3RsX2V2ZW50X3RyaWdnZXJfdHlwZShD VExfRVZFTlRfU1lTVEVNX1NQQUNFX1JFQ09WRVJZKSA8IDApCj4rCQlzYXlfZXJyb3IoImN0bF90 cmlnZ2VyIGVycm9yIGluIHN5c3RlbSBzcGFjZSByZWNvdmVyeTogJXMiLAo+KwkJCSAgZGlhZ19s YXN0X2Vycm9yKGRpYWdfZ2V0KCkpLT5lcnJtc2cpOwo+Kwo+wqAJLyoKPsKgCSAqIFByb2Nlc3Mg ZmluYWwgZGF0YSAoV0FMcykuCj7CoAkgKi8KPkBAIC0xNzU1LDExICsxNzY4LDM1IEBAIHR4X3By aW9fY2Ioc3RydWN0IGV2X2xvb3AgKmxvb3AsIGV2X3dhdGNoZXIgKndhdGNoZXIsIGludCBldmVu dHMpCj7CoAljYnVzX3Byb2Nlc3MoZW5kcG9pbnQpOwo+wqB9Cj4KPitzdGF0aWMgaW50Cj4rY2hl Y2tfcm9fZihNQVlCRV9VTlVTRUQgdmFfbGlzdCBhcCkKPit7Cj4rCWRvdWJsZSB0aW1lb3V0ID0g VElNRU9VVF9JTkZJTklUWTsKPisJc3RydWN0IG9uX2N0bF9ldmVudF9jdHggY3R4Owo+KwltZW1z ZXQoJmN0eCwgMCwgc2l6ZW9mKGN0eCkpOwo+Kwl3aGlsZSAodHJ1ZSkgewo+KwkJaWYgKGJveF93 YWl0X3JvKCFib3hfaXNfcm8oKSwgdGltZW91dCkgIT0gMCkgewo+KwkJCWlmIChmaWJlcl9pc19j YW5jZWxsZWQoKSkKPisJCQkJYnJlYWs7Cj4rCQkJZWxzZQo+KwkJCQlyZXR1cm4gLTE7Cj4rCQl9 Cj4rCQlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5cGUoCj4rCQkJYm94X2lzX3JvKCkg PyBDVExfRVZFTlRfUkVBRF9PTkxZOgo+KwkJCQkJICAgICAgQ1RMX0VWRU5UX1JFQURfV1JJVEUp IDwgMCkKPisJCQlzYXlfZXJyb3IoImN0bF90cmlnZ2VyIGVycm9yIGluICVzOiAlcyIsCj4rCQkJ CSAgYm94X2lzX3JvKCkgPyAicmVhZF9vbmx5IiA6InJlYWRfd3JpdGUiLAo+KwkJCQkgIGRpYWdf bGFzdF9lcnJvcihkaWFnX2dldCgpKS0+ZXJybXNnKTsKPisJfQo+KwlyZXR1cm4gMDsKPit9Cj4r IApJcyBpdCB3b3J0aCBpdCB0byBjcmVhdGUgYSBzZXBhcmF0ZSBmaWJlcj8gTWF5IGJlIGNoZWNr IGl0IG5lYXIgb3IgaW5zaWRlIGZpYmVyX2NvbmRfYnJvYWRjYXN0KCZyb19jb25kKT8KCj4KPsKg dm9pZAo+wqBib3hfaW5pdCh2b2lkKQo+wqB7Cj7CoAlmaWJlcl9jb25kX2NyZWF0ZSgmcm9fY29u ZCk7Cj4tCj4rCXJvX2NoZWNrZXIgPSBmaWJlcl9uZXdfeGMoImNoZWNrX3JvIiwgY2hlY2tfcm9f Zik7Cj4rCWZpYmVyX3N0YXJ0KHJvX2NoZWNrZXIsIE5VTEwpOwo+wqAJdXNlcl9jYWNoZV9pbml0 KCk7Cj7CoAkvKgo+wqAJICogVGhlIG9yZGVyIGlzIGltcG9ydGFudDogdG8gaW5pdGlhbGl6ZSBz ZXNzaW9ucywKPkBAIC0xODg1LDYgKzE5MjIsOSBAQCBib3hfY2ZnX3hjKHZvaWQpCj7CoAkJICov Cj7CoAkJbWVtdHhfZW5naW5lX3JlY292ZXJfc25hcHNob3RfeGMobWVtdHgsCj7CoAkJCQkmbGFz dF9jaGVja3BvaW50X3ZjbG9jayk7Cj4rCQlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5 cGUoQ1RMX0VWRU5UX1NZU1RFTV9TUEFDRV9SRUNPVkVSWSkgPCAwKQo+KwkJCXNheV9lcnJvcigi Y3RsX3RyaWdnZXIgZXJyb3IgaW4gc3lzdGVtIHNwYWNlIHJlY292ZXJ5OiAlcyIsCj4rCQkJCSAg ZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLT5lcnJtc2cpOwo+Cj7CoAkJZW5naW5lX2JlZ2lu X2ZpbmFsX3JlY292ZXJ5X3hjKCk7Cj7CoAkJcmVjb3ZlcnlfZm9sbG93X2xvY2FsKHJlY292ZXJ5 LCAmd2FsX3N0cmVhbS5iYXNlLCAiaG90X3N0YW5kYnkiLAo+ZGlmZiAtLWdpdCBhL3NyYy9ib3gv ZW5naW5lLmMgYi9zcmMvYm94L2VuZ2luZS5jCj5pbmRleCA4MjI5M2ZkLi5mYTc4NzUzIDEwMDY0 NAo+LS0tIGEvc3JjL2JveC9lbmdpbmUuYwo+KysrIGIvc3JjL2JveC9lbmdpbmUuYwo+QEAgLTI5 LDEwICsyOSwxMiBAQAo+wqDCoCogU1VDSCBEQU1BR0UuCj7CoMKgKi8KPsKgI2luY2x1ZGUgImVu Z2luZS5oIgo+KyNpbmNsdWRlICJjdGwuaCIKPgo+wqAjaW5jbHVkZSA8c3RkaW50Lmg+Cj7CoCNp bmNsdWRlIDxzdHJpbmcuaD4KPsKgI2luY2x1ZGUgPHNtYWxsL3JsaXN0Lmg+Cj4KPisjaW5jbHVk ZSA8ZmliZXIuaD4KTm90IHVzZWQuCj4KPsKgUkxJU1RfSEVBRChlbmdpbmVzKTsKPgo+QEAgLTcz LDYgKzc1LDE0IEBAIGVuZ2luZV9ib290c3RyYXAodm9pZCkKPsKgCQlpZiAoZW5naW5lLT52dGFi LT5ib290c3RyYXAoZW5naW5lKSAhPSAwKQo+wqAJCQlyZXR1cm4gLTE7Cj7CoAl9Cj4rCWlmIChy dW5fb25fY3RsX2V2ZW50X3RyaWdnZXJfdHlwZShDVExfRVZFTlRfU1lTVEVNX1NQQUNFX1JFQ09W RVJZKSA8IDApCj4rCQlzYXlfZXJyb3IoImN0bF90cmlnZ2VyIGVycm9yIGluIHN5c3RlbSBzcGFj ZSByZWNvdmVyeTogJXMiLAo+KwkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLT5lcnJt c2cpOwo+Kwo+KwlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5cGUoQ1RMX0VWRU5UX0xP Q0FMX1JFQ09WRVJZKSA8IDApCj4rCQlzYXlfZXJyb3IoImN0bF90cmlnZ2VyIGVycm9yIGluIGxv Y2FsIHJlY292ZXJ5OiAlcyIsCj4rCQkJICBkaWFnX2xhc3RfZXJyb3IoZGlhZ19nZXQoKSktPmVy cm1zZyk7Cj4rCj7CoAlyZXR1cm4gMDsKPsKgfQo+Cj5AQCAtMTExLDYgKzEyMSwxMCBAQCBlbmdp bmVfZW5kX3JlY292ZXJ5KHZvaWQpCj7CoAkJaWYgKGVuZ2luZS0+dnRhYi0+ZW5kX3JlY292ZXJ5 KGVuZ2luZSkgIT0gMCkKPsKgCQkJcmV0dXJuIC0xOwo+wqAJfQo+KwlpZiAocnVuX29uX2N0bF9l dmVudF90cmlnZ2VyX3R5cGUoQ1RMX0VWRU5UX0xPQ0FMX1JFQ09WRVJZKSA8IDApCj4rCQlzYXlf ZXJyb3IoImN0bF90cmlnZ2VyIGVycm9yIGluIGxvY2FsIHJlY292ZXJ5OiAlcyIsCj4rCQkJICBk aWFnX2xhc3RfZXJyb3IoZGlhZ19nZXQoKSktPmVycm1zZyk7Cj4rCj7CoAlyZXR1cm4gMDsKPsKg fQo+Cj5kaWZmIC0tZ2l0IGEvc3JjL2JveC9sdWEvY3RsLmMgYi9zcmMvYm94L2x1YS9jdGwuYwo+ aW5kZXggNTJmMzIwYS4uNWJkOWJlMyAxMDA2NDQKPi0tLSBhL3NyYy9ib3gvbHVhL2N0bC5jCj4r KysgYi9zcmMvYm94L2x1YS9jdGwuYwo+QEAgLTEyMiw4ICsxMjIsOCBAQCBib3hfbHVhX2N0bF9p bml0KHN0cnVjdCBsdWFfU3RhdGUgKkwpCj7CoAlsdWFfcHVzaG51bWJlcihMLCBDVExfRVZFTlRf U0hVVERPV04pOwo+wqAJbHVhX3NldGZpZWxkKEwsIC0yLCAiU0hVVERPV04iKTsKPsKgCWx1YV9w dXNobnVtYmVyKEwsIENUTF9FVkVOVF9SRVBMSUNBU0VUX0FERCk7Cj4tCWx1YV9zZXRmaWVsZChM LCAtMiwgIkNUTF9FVkVOVF9SRVBMSUNBU0VUX0FERCIpOwo+KwlsdWFfc2V0ZmllbGQoTCwgLTIs ICJSRVBMSUNBU0VUX0FERCIpOwo+wqAJbHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1JFUExJ Q0FTRVRfUkVNT1ZFKTsKPi0JbHVhX3NldGZpZWxkKEwsIC0yLCAiQ1RMX0VWRU5UX1JFUExJQ0FT RVRfUkVNT1ZFIik7Cj4rCWx1YV9zZXRmaWVsZChMLCAtMiwgIlJFUExJQ0FTRVRfUkVNT1ZFIik7 Cj7CoAlsdWFfcG9wKEwsIDIpOyAvKiBib3gsIGN0bCAqLwo+wqB9Cj5kaWZmIC0tZ2l0IGEvc3Jj L2JveC9tZW10eF9lbmdpbmUuYyBiL3NyYy9ib3gvbWVtdHhfZW5naW5lLmMKPmluZGV4IGZhYzg0 Y2UuLmU3MzdlYTMgMTAwNjQ0Cj4tLS0gYS9zcmMvYm94L21lbXR4X2VuZ2luZS5jCj4rKysgYi9z cmMvYm94L21lbXR4X2VuZ2luZS5jCj5AQCAtNDgsNiArNDgsNyBAQAo+wqAjaW5jbHVkZSAicmVw bGljYXRpb24uaCIKPsKgI2luY2x1ZGUgInNjaGVtYS5oIgo+wqAjaW5jbHVkZSAiZ2MuaCIKPgo+ KyNpbmNsdWRlICJjdGwuaCIKQWxzbyBub3QgdXNlZC4KPgo+wqBzdGF0aWMgdm9pZAo+wqB0eG5f b25feWllbGRfb3Jfc3RvcChzdHJ1Y3QgdHJpZ2dlciAqdHJpZ2dlciwgdm9pZCAqZXZlbnQpCj5A QCAtMTk3LDcgKzE5OCw2IEBAIG1lbXR4X2VuZ2luZV9yZWNvdmVyX3NuYXBzaG90KHN0cnVjdCBt ZW10eF9lbmdpbmUgKm1lbXR4LAo+wqAJICovCj7CoAlpZiAoIXhsb2dfY3Vyc29yX2lzX2VvZigm Y3Vyc29yKSkKPsKgCQlwYW5pYygic25hcHNob3QgYCVzJyBoYXMgbm8gRU9GIG1hcmtlciIsIGZp bGVuYW1lKTsKPi0KPsKgCXJldHVybiAwOwo+wqB9Cj4KPmRpZmYgLS1naXQgYS9zcmMvYm94L3Jl cGxpY2F0aW9uLmNjIGIvc3JjL2JveC9yZXBsaWNhdGlvbi5jYwo+aW5kZXggYzFlMTc2OS4uNzVh ZWNkMCAxMDA2NDQKPi0tLSBhL3NyYy9ib3gvcmVwbGljYXRpb24uY2MKPisrKyBiL3NyYy9ib3gv cmVwbGljYXRpb24uY2MKPkBAIC00MSw2ICs0MSw3IEBACj7CoCNpbmNsdWRlICJlcnJvci5oIgo+ wqAjaW5jbHVkZSAicmVsYXkuaCIKPsKgI2luY2x1ZGUgInZjbG9jay5oIiAvKiBWQ0xPQ0tfTUFY ICovCj4rI2luY2x1ZGUgImN0bC5oIgo+Cj7CoHVpbnQzMl90IGluc3RhbmNlX2lkID0gUkVQTElD QV9JRF9OSUw7Cj7CoHN0cnVjdCB0dF91dWlkIElOU1RBTkNFX1VVSUQ7Cj5AQCAtMTcyLDYgKzE3 MywxMiBAQCByZXBsaWNhc2V0X2FkZCh1aW50MzJfdCByZXBsaWNhX2lkLCBjb25zdCBzdHJ1Y3Qg dHRfdXVpZCAqcmVwbGljYV91dWlkKQo+wqAJcmVwbGljYS0+dXVpZCA9ICpyZXBsaWNhX3V1aWQ7 Cj7CoAlyZXBsaWNhX2hhc2hfaW5zZXJ0KCZyZXBsaWNhc2V0Lmhhc2gsIHJlcGxpY2EpOwo+wqAJ cmVwbGljYV9zZXRfaWQocmVwbGljYSwgcmVwbGljYV9pZCk7Cj4rCXN0cnVjdCBvbl9jdGxfZXZl bnRfY3R4IG9uX2N0bF9jdHg7Cj4rCW9uX2N0bF9jdHgudHlwZSA9IENUTF9FVkVOVF9SRVBMSUNB U0VUX0FERDsKPisJb25fY3RsX2N0eC5yZXBsaWNhX2lkID0gcmVwbGljYV9pZDsKPisJaWYgKHJ1 bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcnMoJm9uX2N0bF9jdHgpIDwgMCkKPisJCXNheV9lcnJvcigi Y3RsX3RyaWdnZXIgZXJyb3IgaW4gcmVwbGljYSBhZGQ6ICVzIiwKPisJCQkgIGRpYWdfbGFzdF9l cnJvcihkaWFnX2dldCgpKS0+ZXJybXNnKTsKPsKgCXJldHVybiByZXBsaWNhOwo+wqB9Cj4KPkBA IC0yMDMsMTIgKzIxMCwxOSBAQCByZXBsaWNhX2NsZWFyX2lkKHN0cnVjdCByZXBsaWNhICpyZXBs aWNhKQo+wqAJICogU29tZSByZWNvcmRzIG1heSBhcnJpdmUgbGF0ZXIgb24gZHVlIHRvIGFzeW5j aHJvbm91cyBuYXR1cmUgb2YKPsKgCSAqIHJlcGxpY2F0aW9uLgo+wqAJICovCj4rCXN0cnVjdCBv bl9jdGxfZXZlbnRfY3R4IG9uX2N0bF9jdHg7Cj4rCW9uX2N0bF9jdHgudHlwZSA9IENUTF9FVkVO VF9SRVBMSUNBU0VUX1JFTU9WRTsKPisJb25fY3RsX2N0eC5yZXBsaWNhX2lkID0gcmVwbGljYS0+ aWQ7Cj4rCj7CoAlyZXBsaWNhc2V0LnJlcGxpY2FfYnlfaWRbcmVwbGljYS0+aWRdID0gTlVMTDsK PsKgCXJlcGxpY2EtPmlkID0gUkVQTElDQV9JRF9OSUw7Cj7CoAlpZiAocmVwbGljYV9pc19vcnBo YW4ocmVwbGljYSkpIHsKPsKgCQlyZXBsaWNhX2hhc2hfcmVtb3ZlKCZyZXBsaWNhc2V0Lmhhc2gs IHJlcGxpY2EpOwo+wqAJCXJlcGxpY2FfZGVsZXRlKHJlcGxpY2EpOwo+wqAJfQo+KwlpZiAocnVu X29uX2N0bF9ldmVudF90cmlnZ2Vycygmb25fY3RsX2N0eCkgPCAwKQo+KwkJc2F5X2Vycm9yKCJj dGxfdHJpZ2dlciBlcnJvciBpbiByZXBsaWNhIHJlbW92ZTogJXMiLAo+KwkJCSAgZGlhZ19sYXN0 X2Vycm9yKGRpYWdfZ2V0KCkpLT5lcnJtc2cpOwo+wqB9Cj4KPsKgc3RhdGljIHZvaWQKPmRpZmYg LS1naXQgYS90ZXN0L3JlcGxpY2F0aW9uL21hc3Rlcl9vbmN0bC5sdWEgYi90ZXN0L3JlcGxpY2F0 aW9uL21hc3Rlcl9vbmN0bC5sdWEKPm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj5pbmRleCAwMDAwMDAw Li5lMGViMzlhCj4tLS0gL2Rldi9udWxsCj4rKysgYi90ZXN0L3JlcGxpY2F0aW9uL21hc3Rlcl9v bmN0bC5sdWEKPkBAIC0wLDAgKzEsMzQgQEAKPisjIS91c3IvYmluL2VudiB0YXJhbnRvb2wKPitv cyA9IHJlcXVpcmUoJ29zJykKPisKPitTWVNURU1fU1BBQ0VfUkVDT1ZFUlkgPSAwCj4rTE9DQUxf UkVDT1ZFUlkgPSAwCj4rUkVBRF9PTkxZID0gMAo+K1JFQURfV1JJVEUgPSAwCj4rUkVQTElDQVNF VF9BREQgPSB7fQo+K1JFUExJQ0FTRVRfUkVNT1ZFID0ge30KPisKPitsb2NhbCBmdW5jdGlvbiBv bmN0bChjdHgpCj4rICAgIGlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQuU1lTVEVNX1NQQUNF X1JFQ09WRVJZIHRoZW4KPisgICAgICAgIFNZU1RFTV9TUEFDRV9SRUNPVkVSWSA9IFNZU1RFTV9T UEFDRV9SRUNPVkVSWSArIDEKPisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQu TE9DQUxfUkVDT1ZFUlkgdGhlbgo+KyAgICAgICAgTE9DQUxfUkVDT1ZFUlkgPSBMT0NBTF9SRUNP VkVSWSArIDEKPisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVBRF9PTkxZ IHRoZW4KPisgICAgICAgIFJFQURfT05MWSA9IFJFQURfT05MWSArIDEKPisgICAgZWxzZWlmIGN0 eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVBRF9XUklURSB0aGVuCj4rICAgICAgICBSRUFEX1dS SVRFID0gUkVBRF9XUklURSArIDEKPisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZl bnQuUkVQTElDQVNFVF9BREQgdGhlbgo+KyAgICAgICAgdGFibGUuaW5zZXJ0KFJFUExJQ0FTRVRf QURELCBjdHgucmVwbGljYV9pZCkKPisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZl bnQuUkVQTElDQVNFVF9SRU1PVkUgdGhlbgo+KyAgICAgICAgdGFibGUuaW5zZXJ0KFJFUExJQ0FT RVRfUkVNT1ZFLCBjdHgucmVwbGljYV9pZCkKPisgICAgZW5kCj4rZW5kCj4rCj4rYm94LmNmZyh7 Cj4rICAgIGxpc3RlbiAgICAgICAgICAgICAgPSBvcy5nZXRlbnYoIkxJU1RFTiIpLAo+KyAgICBt ZW10eF9tZW1vcnkgICAgICAgID0gMTA3Mzc0MTgyLAo+KyAgICByZXBsaWNhdGlvbl9jb25uZWN0 X3RpbWVvdXQgPSAwLjUsCj4rICAgIG9uX2N0bF9ldmVudCAgICAgICAgPSBvbmN0bCwKPit9KQo+ Kwo+K3JlcXVpcmUoJ2NvbnNvbGUnKS5saXN0ZW4ob3MuZ2V0ZW52KCdBRE1JTicpKQo+ZGlmZiAt LWdpdCBhL3Rlc3QvcmVwbGljYXRpb24vb25jdGwucmVzdWx0IGIvdGVzdC9yZXBsaWNhdGlvbi9v bmN0bC5yZXN1bHQKPm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj5pbmRleCAwMDAwMDAwLi4xOWIzZTY3 Cj4tLS0gL2Rldi9udWxsCj4rKysgYi90ZXN0L3JlcGxpY2F0aW9uL29uY3RsLnJlc3VsdAo+QEAg LTAsMCArMSwyNTAgQEAKPitlbnYgPSByZXF1aXJlKCd0ZXN0X3J1bicpCj4rLS0tCj4rLi4uCj4r dGVzdF9ydW4gPSBlbnYubmV3KCkKPistLS0KPisuLi4KPit0ZXN0X3J1bjpjbWQoImNyZWF0ZSBz ZXJ2ZXIgbWFzdGVyIHdpdGggc2NyaXB0PSdyZXBsaWNhdGlvbi9tYXN0ZXJfb25jdGwubHVhJyIp Cj4rLS0tCj4rLSB0cnVlCj4rLi4uCj4rdGVzdF9ydW46Y21kKCJjcmVhdGUgc2VydmVyIHJlcGxp Y2Egd2l0aCBycGxfbWFzdGVyPW1hc3Rlciwgc2NyaXB0PSdyZXBsaWNhdGlvbi9yZXBsaWNhX29u Y3RsLmx1YSciKQo+Ky0tLQo+Ky0gdHJ1ZQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgic3RhcnQgc2Vy dmVyIG1hc3RlciIpCj4rLS0tCj4rLSB0cnVlCj4rLi4uCj4rdGVzdF9ydW46Y21kKCJzd2l0Y2gg bWFzdGVyIikKPistLS0KPistIHRydWUKPisuLi4KPitib3guc2NoZW1hLnVzZXIuZ3JhbnQoJ2d1 ZXN0JywgJ3JlcGxpY2F0aW9uJykKPistLS0KPisuLi4KPitTWVNURU1fU1BBQ0VfUkVDT1ZFUlkK PistLS0KPistIDEKPisuLi4KPitMT0NBTF9SRUNPVkVSWQo+Ky0tLQo+Ky0gMQo+Ky4uLgo+K1JF QURfT05MWQo+Ky0tLQo+Ky0gMAo+Ky4uLgo+K1JFQURfV1JJVEUKPistLS0KPistIDEKPisuLi4K PistLSBtdXN0IGJlIHR3byBlbnRyaWVzLiBGaXJzdCBmcm9tIGJvb3RzdHJhcC5zbmFwLCBzZWNv bmQgZm9yIGN1cnJlbnQgaW5zdGFuY2UuCj4rUkVQTElDQVNFVF9BREQKPistLS0KPistIC0gMQo+ KyAgLSAxCj4rLi4uCj4rLS0gbXVzdCBiZSBvbmUgZW50cnkuIERlbGV0aW9uIG9mIGluaXRpYWwg dHVwbGUgaW4gX2NsdXN0ZXIgc3BhY2UuCj4rUkVQTElDQVNFVF9SRU1PVkUKPistLS0KPistIC0g MQo+Ky4uLgo+K1JFUExJQ0FTRVRfQUREID0ge30KPistLS0KPisuLi4KPitSRVBMSUNBU0VUX1JF TU9WRSA9IHt9Cj4rLS0tCj4rLi4uCj4rbmV3X3JlcGxpY2FfaWQgPSAwCj4rLS0tCj4rLi4uCj4r ZGVsZXRlZF9yZXBsaWNhX2lkID0gMAo+Ky0tLQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgic2V0b3B0 IGRlbGltaXRlciAnOyciKQo+Ky0tLQo+Ky0gdHJ1ZQo+Ky4uLgo+K2Z1bmN0aW9uIG9uX2N0bF9u ZXcoY3R4KQo+KyAgICBpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfQURE IHRoZW4KPisgICAgICAgIG5ld19yZXBsaWNhX2lkID0gY3R4LnJlcGxpY2FfaWQKPisgICAgZWxz ZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVQTElDQVNFVF9SRU1PVkUgdGhlbgo+KyAg ICAgICAgZGVsZXRlZF9yZXBsaWNhX2lkID0gY3R4LnJlcGxpY2FfaWQKPisgICAgZW5kCj4rZW5k Owo+Ky0tLQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnJyIpOwo+Ky0t LQo+Ky0gdHJ1ZQo+Ky4uLgo+K18gPSBib3guY3RsLm9uX2N0bF9ldmVudChvbl9jdGxfbmV3KQo+ Ky0tLQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgic3RhcnQgc2VydmVyIHJlcGxpY2EiKQo+Ky0tLQo+ Ky0gdHJ1ZQo+Ky4uLgo+K1JFUExJQ0FTRVRfQURECj4rLS0tCj4rLSAtIDIKPisuLi4KPitSRVBM SUNBU0VUX1JFTU9WRQo+Ky0tLQo+Ky0gW10KPisuLi4KPituZXdfcmVwbGljYV9pZAo+Ky0tLQo+ Ky0gMgo+Ky4uLgo+K2RlbGV0ZWRfcmVwbGljYV9pZAo+Ky0tLQo+Ky0gMAo+Ky4uLgo+K3Rlc3Rf cnVuOmNtZCgic3dpdGNoIHJlcGxpY2EiKQo+Ky0tLQo+Ky0gdHJ1ZQo+Ky4uLgo+K3Rlc3RfcnVu OmNtZCgic2V0b3B0IGRlbGltaXRlciAnOyciKQo+Ky0tLQo+Ky0gdHJ1ZQo+Ky4uLgo+K2Z1bmN0 aW9uIG9uX2N0bF9zaHV0ZG93bihjdHgpCj4rICAgIGlmIGN0eC50eXBlID09IGJveC5jdGwuZXZl bnQuU0hVVERPV04gdGhlbgo+KyAgICAgICAgcmVxdWlyZSgibG9nIikuaW5mbygidGVzdCByZXBs aWNhIHNodXRkb3duIikKPisgICAgZW5kCj4rZW5kOwo+Ky0tLQo+Ky4uLgo+K2Z1bmN0aW9uIG9u X2N0bF9lcnJvcihjdHgpCj4rICAgIGVycm9yKCJ0cmlnZ2VyIGVycm9yIikKPitlbmQ7Cj4rLS0t Cj4rLi4uCj4rdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1pdGVyICcnIik7Cj4rLS0tCj4rLSB0 cnVlCj4rLi4uCj4rU1lTVEVNX1NQQUNFX1JFQ09WRVJZCj4rLS0tCj4rLSAxCj4rLi4uCj4rTE9D QUxfUkVDT1ZFUlkKPistLS0KPistIDEKPisuLi4KPitSRUFEX09OTFkKPistLS0KPistIDAKPisu Li4KPitSRUFEX1dSSVRFCj4rLS0tCj4rLSAxCj4rLi4uCj4rUkVQTElDQVNFVF9BREQKPistLS0K PistIC0gMgo+Ky4uLgo+K1JFUExJQ0FTRVRfUkVNT1ZFCj4rLS0tCj4rLSBbXQo+Ky4uLgo+K2Jv eC5jZmd7cmVhZF9vbmx5ID0gdHJ1ZX0KPistLS0KPisuLi4KPitmaWJlciA9IHJlcXVpcmUoImZp YmVyIikKPistLS0KPisuLi4KPit3aGlsZSBSRUFEX09OTFkgPT0gMCBkbyBmaWJlci5zbGVlcCgw LjAwMSkgZW5kCj4rLS0tCj4rLi4uCj4rUkVBRF9PTkxZCj4rLS0tCj4rLSAxCj4rLi4uCj4rYm94 LmNmZ3tvbl9jdGxfZXZlbnQgPSBvbl9jdGxfZXJyb3J9Cj4rLS0tCj4rLi4uCj4rYm94LmNmZ3ty ZWFkX29ubHkgPSBmYWxzZX0KPistLS0KPisuLi4KPit0ZXN0X3J1bjpncmVwX2xvZygncmVwbGlj YScsICdjdGxfdHJpZ2dlciBlcnJvcicpCj4rLS0tCj4rLSBjdGxfdHJpZ2dlciBlcnJvcgo+Ky4u Lgo+K2JveC5jZmd7b25fY3RsX2V2ZW50ID0ge2JveC5OVUxMLCBvbl9jdGxfZXJyb3J9fQo+Ky0t LQo+Ky4uLgo+K2JveC5jZmd7b25fY3RsX2V2ZW50ID0gb25fY3RsX3NodXRkb3dufQo+Ky0tLQo+ Ky4uLgo+K3Rlc3RfcnVuOmNtZCgicmVzdGFydCBzZXJ2ZXIgcmVwbGljYSIpCj4rLS0gVE9ETzog dGVzdCBTSFVURE9XTiwgd2hlbiBpdCBpcyBwb3NzaWJsZSB0byBncmVwIGxvZ3Mgb2Yga2lsbGVk IHJlcGxpY2EuCj4rLS10ZXN0X3J1bjpncmVwX2xvZygncmVwbGljYScsICd0ZXN0IHJlcGxpY2Eg c2h1dGRvd24nKQo+K3Rlc3RfcnVuOmNtZCgic3dpdGNoIG1hc3RlciIpCj4rLS0tCj4rLSB0cnVl Cj4rLi4uCj4rYm94LnNjaGVtYS51c2VyLnJldm9rZSgnZ3Vlc3QnLCAncmVwbGljYXRpb24nKQo+ Ky0tLQo+Ky4uLgo+K18gPSBib3guc3BhY2UuX2NsdXN0ZXI6ZGVsZXRlezJ9Cj4rLS0tCj4rLi4u Cj4rU1lTVEVNX1NQQUNFX1JFQ09WRVJZCj4rLS0tCj4rLSAxCj4rLi4uCj4rTE9DQUxfUkVDT1ZF UlkKPistLS0KPistIDEKPisuLi4KPitSRUFEX09OTFkKPistLS0KPistIDAKPisuLi4KPitSRUFE X1dSSVRFCj4rLS0tCj4rLSAxCj4rLi4uCj4rUkVQTElDQVNFVF9BREQKPistLS0KPistIC0gMgo+ Ky4uLgo+K1JFUExJQ0FTRVRfUkVNT1ZFCj4rLS0tCj4rLSAtIDIKPisuLi4KPituZXdfcmVwbGlj YV9pZAo+Ky0tLQo+Ky0gMgo+Ky4uLgo+K2RlbGV0ZWRfcmVwbGljYV9pZAo+Ky0tLQo+Ky0gMgo+ Ky4uLgo+K2JveC5jdGwub25fY3RsX2V2ZW50KG5pbCwgb25fY3RsX25ldykKPistLS0KPisuLi4K PistLSBjbGVhbnVwCj4rdGVzdF9ydW46Y21kKCJzd2l0Y2ggZGVmYXVsdCIpCj4rLS0tCj4rLSB0 cnVlCj4rLi4uCj4rdGVzdF9ydW46Y21kKCJzdG9wIHNlcnZlciBtYXN0ZXIiKQo+Ky0tLQo+Ky0g dHJ1ZQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgiY2xlYW51cCBzZXJ2ZXIgbWFzdGVyIikKPistLS0K PistIHRydWUKPisuLi4KPit0ZXN0X3J1bjpjbWQoInN0b3Agc2VydmVyIHJlcGxpY2EiKQo+Ky0t LQo+Ky0gdHJ1ZQo+Ky4uLgo+K3Rlc3RfcnVuOmNtZCgiY2xlYW51cCBzZXJ2ZXIgcmVwbGljYSIp Cj4rLS0tCj4rLSB0cnVlCj4rLi4uCj5kaWZmIC0tZ2l0IGEvdGVzdC9yZXBsaWNhdGlvbi9vbmN0 bC50ZXN0Lmx1YSBiL3Rlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5sdWEKPm5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj5pbmRleCAwMDAwMDAwLi5mZjZhODk4Cj4tLS0gL2Rldi9udWxsCj4rKysgYi90 ZXN0L3JlcGxpY2F0aW9uL29uY3RsLnRlc3QubHVhCj5AQCAtMCwwICsxLDEwNSBAQAo+K2VudiA9 IHJlcXVpcmUoJ3Rlc3RfcnVuJykKPit0ZXN0X3J1biA9IGVudi5uZXcoKQo+Kwo+K3Rlc3RfcnVu OmNtZCgiY3JlYXRlIHNlcnZlciBtYXN0ZXIgd2l0aCBzY3JpcHQ9J3JlcGxpY2F0aW9uL21hc3Rl cl9vbmN0bC5sdWEnIikKPit0ZXN0X3J1bjpjbWQoImNyZWF0ZSBzZXJ2ZXIgcmVwbGljYSB3aXRo IHJwbF9tYXN0ZXI9bWFzdGVyLCBzY3JpcHQ9J3JlcGxpY2F0aW9uL3JlcGxpY2Ffb25jdGwubHVh JyIpCj4rCj4rdGVzdF9ydW46Y21kKCJzdGFydCBzZXJ2ZXIgbWFzdGVyIikKPit0ZXN0X3J1bjpj bWQoInN3aXRjaCBtYXN0ZXIiKQo+K2JveC5zY2hlbWEudXNlci5ncmFudCgnZ3Vlc3QnLCAncmVw bGljYXRpb24nKQo+Kwo+K1NZU1RFTV9TUEFDRV9SRUNPVkVSWQo+K0xPQ0FMX1JFQ09WRVJZCj4r UkVBRF9PTkxZCj4rUkVBRF9XUklURQo+Ky0tIG11c3QgYmUgdHdvIGVudHJpZXMuIEZpcnN0IGZy b20gYm9vdHN0cmFwLnNuYXAsIHNlY29uZCBmb3IgY3VycmVudCBpbnN0YW5jZS4KPitSRVBMSUNB U0VUX0FERAo+Ky0tIG11c3QgYmUgb25lIGVudHJ5LiBEZWxldGlvbiBvZiBpbml0aWFsIHR1cGxl IGluIF9jbHVzdGVyIHNwYWNlLgo+K1JFUExJQ0FTRVRfUkVNT1ZFCj4rCj4rUkVQTElDQVNFVF9B REQgPSB7fQo+K1JFUExJQ0FTRVRfUkVNT1ZFID0ge30KPisKPituZXdfcmVwbGljYV9pZCA9IDAK PitkZWxldGVkX3JlcGxpY2FfaWQgPSAwCj4rCj4rdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1p dGVyICc7JyIpCj4rZnVuY3Rpb24gb25fY3RsX25ldyhjdHgpCj4rICAgIGlmIGN0eC50eXBlID09 IGJveC5jdGwuZXZlbnQuUkVQTElDQVNFVF9BREQgdGhlbgo+KyAgICAgICAgbmV3X3JlcGxpY2Ff aWQgPSBjdHgucmVwbGljYV9pZAo+KyAgICBlbHNlaWYgY3R4LnR5cGUgPT0gYm94LmN0bC5ldmVu dC5SRVBMSUNBU0VUX1JFTU9WRSB0aGVuCj4rICAgICAgICBkZWxldGVkX3JlcGxpY2FfaWQgPSBj dHgucmVwbGljYV9pZAo+KyAgICBlbmQKPitlbmQ7Cj4rdGVzdF9ydW46Y21kKCJzZXRvcHQgZGVs aW1pdGVyICcnIik7Cj4rCj4rXyA9IGJveC5jdGwub25fY3RsX2V2ZW50KG9uX2N0bF9uZXcpCj4r Cj4rdGVzdF9ydW46Y21kKCJzdGFydCBzZXJ2ZXIgcmVwbGljYSIpCj4rCj4rUkVQTElDQVNFVF9B REQKPitSRVBMSUNBU0VUX1JFTU9WRQo+Kwo+K25ld19yZXBsaWNhX2lkCj4rZGVsZXRlZF9yZXBs aWNhX2lkCj4rCj4rdGVzdF9ydW46Y21kKCJzd2l0Y2ggcmVwbGljYSIpCj4rCj4rdGVzdF9ydW46 Y21kKCJzZXRvcHQgZGVsaW1pdGVyICc7JyIpCj4rZnVuY3Rpb24gb25fY3RsX3NodXRkb3duKGN0 eCkKPisgICAgaWYgY3R4LnR5cGUgPT0gYm94LmN0bC5ldmVudC5TSFVURE9XTiB0aGVuCj4rICAg ICAgICByZXF1aXJlKCJsb2ciKS5pbmZvKCJ0ZXN0IHJlcGxpY2Egc2h1dGRvd24iKQo+KyAgICBl bmQKPitlbmQ7Cj4rCj4rZnVuY3Rpb24gb25fY3RsX2Vycm9yKGN0eCkKPisgICAgZXJyb3IoInRy aWdnZXIgZXJyb3IiKQo+K2VuZDsKPisKPit0ZXN0X3J1bjpjbWQoInNldG9wdCBkZWxpbWl0ZXIg JyciKTsKPisKPitTWVNURU1fU1BBQ0VfUkVDT1ZFUlkKPitMT0NBTF9SRUNPVkVSWQo+K1JFQURf T05MWQo+K1JFQURfV1JJVEUKPitSRVBMSUNBU0VUX0FERAo+K1JFUExJQ0FTRVRfUkVNT1ZFCj4r Cj4rYm94LmNmZ3tyZWFkX29ubHkgPSB0cnVlfQo+K2ZpYmVyID0gcmVxdWlyZSgiZmliZXIiKQo+ K3doaWxlIFJFQURfT05MWSA9PSAwIGRvIGZpYmVyLnNsZWVwKDAuMDAxKSBlbmQKPitSRUFEX09O TFkKPisKPitib3guY2Zne29uX2N0bF9ldmVudCA9IG9uX2N0bF9lcnJvcn0KPitib3guY2Zne3Jl YWRfb25seSA9IGZhbHNlfQo+K3Rlc3RfcnVuOmdyZXBfbG9nKCdyZXBsaWNhJywgJ2N0bF90cmln Z2VyIGVycm9yJykKPitib3guY2Zne29uX2N0bF9ldmVudCA9IHtib3guTlVMTCwgb25fY3RsX2Vy cm9yfX0KPitib3guY2Zne29uX2N0bF9ldmVudCA9IG9uX2N0bF9zaHV0ZG93bn0KPisKPit0ZXN0 X3J1bjpjbWQoInJlc3RhcnQgc2VydmVyIHJlcGxpY2EiKQo+Ky0tIFRPRE86IHRlc3QgU0hVVERP V04sIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gZ3JlcCBsb2dzIG9mIGtpbGxlZCByZXBsaWNhLgo+ Ky0tdGVzdF9ydW46Z3JlcF9sb2coJ3JlcGxpY2EnLCAndGVzdCByZXBsaWNhIHNodXRkb3duJykg Ckl0IHNob3VsZCBiZSBkb25lCj4KPisKPisKPit0ZXN0X3J1bjpjbWQoInN3aXRjaCBtYXN0ZXIi KQo+K2JveC5zY2hlbWEudXNlci5yZXZva2UoJ2d1ZXN0JywgJ3JlcGxpY2F0aW9uJykKPitfID0g Ym94LnNwYWNlLl9jbHVzdGVyOmRlbGV0ZXsyfQo+Kwo+K1NZU1RFTV9TUEFDRV9SRUNPVkVSWQo+ K0xPQ0FMX1JFQ09WRVJZCj4rUkVBRF9PTkxZCj4rUkVBRF9XUklURQo+K1JFUExJQ0FTRVRfQURE Cj4rUkVQTElDQVNFVF9SRU1PVkUKPisKPituZXdfcmVwbGljYV9pZAo+K2RlbGV0ZWRfcmVwbGlj YV9pZAo+Kwo+K2JveC5jdGwub25fY3RsX2V2ZW50KG5pbCwgb25fY3RsX25ldykKPisKPistLSBj bGVhbnVwCj4rdGVzdF9ydW46Y21kKCJzd2l0Y2ggZGVmYXVsdCIpCj4rdGVzdF9ydW46Y21kKCJz dG9wIHNlcnZlciBtYXN0ZXIiKQo+K3Rlc3RfcnVuOmNtZCgiY2xlYW51cCBzZXJ2ZXIgbWFzdGVy IikKPit0ZXN0X3J1bjpjbWQoInN0b3Agc2VydmVyIHJlcGxpY2EiKQo+K3Rlc3RfcnVuOmNtZCgi Y2xlYW51cCBzZXJ2ZXIgcmVwbGljYSIpCj5kaWZmIC0tZ2l0IGEvdGVzdC9yZXBsaWNhdGlvbi9y ZXBsaWNhX29uY3RsLmx1YSBiL3Rlc3QvcmVwbGljYXRpb24vcmVwbGljYV9vbmN0bC5sdWEKPm5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj5pbmRleCAwMDAwMDAwLi5kNmNlNzNjCj4tLS0gL2Rldi9udWxs Cj4rKysgYi90ZXN0L3JlcGxpY2F0aW9uL3JlcGxpY2Ffb25jdGwubHVhCj5AQCAtMCwwICsxLDM0 IEBACj4rIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCj4rCj4rU1lTVEVNX1NQQUNFX1JFQ09WRVJZ ID0gMAo+K0xPQ0FMX1JFQ09WRVJZID0gMAo+K1JFQURfT05MWSA9IDAKPitSRUFEX1dSSVRFID0g MAo+K1JFUExJQ0FTRVRfQUREID0ge30KPitSRVBMSUNBU0VUX1JFTU9WRSA9IHt9Cj4rCj4rbG9j YWwgZnVuY3Rpb24gb25jdGwoY3R4KQo+KyAgICBpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50 LlNZU1RFTV9TUEFDRV9SRUNPVkVSWSB0aGVuCj4rICAgICAgICBTWVNURU1fU1BBQ0VfUkVDT1ZF UlkgPSBTWVNURU1fU1BBQ0VfUkVDT1ZFUlkgKyAxCj4rICAgIGVsc2VpZiBjdHgudHlwZSA9PSBi b3guY3RsLmV2ZW50LkxPQ0FMX1JFQ09WRVJZIHRoZW4KPisgICAgICAgIExPQ0FMX1JFQ09WRVJZ ID0gTE9DQUxfUkVDT1ZFUlkgKyAxCj4rICAgIGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2 ZW50LlJFQURfT05MWSB0aGVuCj4rICAgICAgICBSRUFEX09OTFkgPSBSRUFEX09OTFkgKyAxCj4r ICAgIGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFQURfV1JJVEUgdGhlbgo+KyAg ICAgICAgUkVBRF9XUklURSA9IFJFQURfV1JJVEUgKyAxCj4rICAgIGVsc2VpZiBjdHgudHlwZSA9 PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfQUREIHRoZW4KPisgICAgICAgIHRhYmxlLmluc2Vy dChSRVBMSUNBU0VUX0FERCwgY3R4LnJlcGxpY2FfaWQpCj4rICAgIGVsc2VpZiBjdHgudHlwZSA9 PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfUkVNT1ZFIHRoZW4KPisgICAgICAgIHRhYmxlLmlu c2VydChSRVBMSUNBU0VUX1JFTU9WRSwgY3R4LnJlcGxpY2FfaWQpCj4rICAgIGVuZAo+K2VuZAo+ Kwo+K2JveC5jZmcoewo+KyAgICBsaXN0ZW4gICAgICAgICAgICAgID0gb3MuZ2V0ZW52KCJMSVNU RU4iKSwKPisgICAgcmVwbGljYXRpb24gICAgICAgICA9IG9zLmdldGVudigiTUFTVEVSIiksCj4r ICAgIG1lbXR4X21lbW9yeSAgICAgICAgPSAxMDczNzQxODIsCj4rICAgIHJlcGxpY2F0aW9uX2Nv bm5lY3RfdGltZW91dCA9IDAuNSwKPisgICAgb25fY3RsX2V2ZW50ICAgICAgICA9IG9uY3RsLAo+ K30pCj4rCj4rcmVxdWlyZSgnY29uc29sZScpLmxpc3Rlbihvcy5nZXRlbnYoJ0FETUlOJykpCj5k aWZmIC0tZ2l0IGEvdGVzdC9yZXBsaWNhdGlvbi9zdWl0ZS5jZmcgYi90ZXN0L3JlcGxpY2F0aW9u L3N1aXRlLmNmZwo+aW5kZXggOTVlOTRlNS4uMzY1YTgyNSAxMDA2NDQKPi0tLSBhL3Rlc3QvcmVw bGljYXRpb24vc3VpdGUuY2ZnCj4rKysgYi90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmNmZwo+QEAg LTYsNiArNiw3IEBACj7CoMKgwqDCoMKgIndhbF9vZmYudGVzdC5sdWEiOiB7fSwKPsKgwqDCoMKg wqAiaG90X3N0YW5kYnkudGVzdC5sdWEiOiB7fSwKPsKgwqDCoMKgwqAicmVib290c3RyYXAudGVz dC5sdWEiOiB7fSwKPisgICAgIm9uY3RsLnRlc3QubHVhIjoge30sCj7CoMKgwqDCoMKgIioiOiB7 Cj7CoMKgwqDCoMKgwqDCoMKgwqAibWVtdHgiOiB7ImVuZ2luZSI6ICJtZW10eCJ9LAo+wqDCoMKg wqDCoMKgwqDCoMKgInZpbnlsIjogeyJlbmdpbmUiOiAidmlueWwifQo+LS0gCj4yLjcuNAo+Cj4K CgpCZXN0IHJlZ2FyZHMsCktvbnN0YW50aW4gQmVseWF2c2tpeQprLmJlbHlhdnNraXlAdGFyYW50 b29sLm9yZwo= ----ALT--5DKGXo0pUiSIFTotfLwSnMWQ6XK0GpZA1533037238 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPkhpLDxicj5vdmVyYWxsIHBhdGNoIGxvb2tzIGdvb2Qgd2l0aCBtaW5vciBj b25wbGFpbnMgKHN1bW1hcnkpPGJyPi0gdW51c2VkIGhlYWRlcnM8YnI+LSBpcyBpdCB3b3J0aCBp dCZuYnNwO3RvIGNyZWF0ZSBhIHNlcGFyYXRlJm5ic3A7ZmliZXIgdG8gY2hlY2sgaWYgcmVhZC1v bmx5IGNvbmRpdGlvbiB3YXMgY2hhbmdlZD88YnI+LSB0ZXN0IFNIVVRET1dOIHNob3VsZCBiZSBp bXBsZW1lbnRlZDxicj48YnI+PGJyPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6 MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCn 0LXRgtCy0LXRgNCzLCAxNCDQuNGO0L3RjyAyMDE4LCAxODowNCArMDM6MDAg0L7RgiBJbHlhIE1h cmtvdiAmbHQ7aW1hcmtvdkB0YXJhbnRvb2wub3JnJmd0Ozo8YnI+PGJyPjxkaXYgaWQ9IiI+PGRp diBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1 Mjg5ODg2OTAwMDAwMDAwODYzX0JPRFkiPkFkZCBmb2xsb3dpbmcgY2FzZXMgb2YgdHJpZ2dlcnM6 PGJyPgoqIFN5c3RlbSBzcGFjZSByZWNvdmVyeS4gQ2FsbGVkIG9uIGZpbmlzaCBvZiBib290c3Ry YXAgb3IgZmluaXNoIG9mIGpvaW4gb3I8YnI+CnNuYXBzaG90IHJlY292ZXJ5Ljxicj4KKiBMb2Nh bCByZWNvdmVyeS4gQ2FsbGVkIG9uIGZpbmlzaCBvZiBib290c3RyYXAgb3IgZmluaXNoIG9mIHJl Y292ZXJ5Ljxicj4KKiBSZWFkX29ubHkvcmVhZF93cml0ZS4gQ2FsbGVkIG9uIGNoYW5nZXMgb2Yg cmVhZF9vbmx5IHN0YXRlIG9mPGJyPgppbnN0YW5jZS48YnI+CiogU2h1dGRvd24uIENhbGxlZCBv biBjb250cm9sbGVkIHNodXRkb3duLjxicj4KKiBSZXBsaWNhc2V0X2FkZC9yZXBsaWNhc2V0X3Jl bW92ZS4gQ2FsbGVkIG9uIGNoYW5nZXMgaW4gc3BhY2UgX2NsdXN0ZXIuPGJyPjxicj4KRXJyb3Jz IGluc2lkZSB0cmlnZ2VycyBhcmUgbG9nZ2VkIGFuZCBkb24ndCBpbmZsdWVuY2Ugb24gaW5zdGFu Y2U8YnI+CmJlaGF2aW91ci48YnI+PGJyPgpDb250aW51ZSAjMzE1OTxicj4KLS0tPGJyPgombmJz cDtzcmMvYm94L2FsdGVyLmNjICAgICAgICAgICAgICAgICAgIHwgICAxICs8YnI+CiZuYnNwO3Ny Yy9ib3gvYm94LmNjICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKysrKysrLTxicj4KJm5ic3A7 c3JjL2JveC9lbmdpbmUuYyAgICAgICAgICAgICAgICAgICB8ICAxNCArKys8YnI+CiZuYnNwO3Ny Yy9ib3gvbHVhL2N0bC5jICAgICAgICAgICAgICAgICAgfCAgIDQgKy08YnI+CiZuYnNwO3NyYy9i b3gvbWVtdHhfZW5naW5lLmMgICAgICAgICAgICAgfCAgIDIgKy08YnI+CiZuYnNwO3NyYy9ib3gv cmVwbGljYXRpb24uY2MgICAgICAgICAgICAgfCAgMTQgKysrPGJyPgombmJzcDt0ZXN0L3JlcGxp Y2F0aW9uL21hc3Rlcl9vbmN0bC5sdWEgIHwgIDM0ICsrKysrPGJyPgombmJzcDt0ZXN0L3JlcGxp Y2F0aW9uL29uY3RsLnJlc3VsdCAgICAgIHwgMjUwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKys8YnI+CiZuYnNwO3Rlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5sdWEgICAg fCAxMDUgKysrKysrKysrKysrKysrKzxicj4KJm5ic3A7dGVzdC9yZXBsaWNhdGlvbi9yZXBsaWNh X29uY3RsLmx1YSB8ICAzNCArKysrKzxicj4KJm5ic3A7dGVzdC9yZXBsaWNhdGlvbi9zdWl0ZS5j ZmcgICAgICAgICB8ICAgMSArPGJyPgombmJzcDsxMSBmaWxlcyBjaGFuZ2VkLCA0OTggaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSk8YnI+CiZuYnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 L3JlcGxpY2F0aW9uL21hc3Rlcl9vbmN0bC5sdWE8YnI+CiZuYnNwO2NyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0L3JlcGxpY2F0aW9uL29uY3RsLnJlc3VsdDxicj4KJm5ic3A7Y3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5sdWE8YnI+CiZuYnNwO2NyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0L3JlcGxpY2F0aW9uL3JlcGxpY2Ffb25jdGwubHVhPGJyPjxicj4KZGlmZiAt LWdpdCBhL3NyYy9ib3gvYWx0ZXIuY2MgYi9zcmMvYm94L2FsdGVyLmNjPGJyPgppbmRleCA2ZjZm Y2IwLi43ZWM1NDhiIDEwMDY0NDxicj4KLS0tIGEvc3JjL2JveC9hbHRlci5jYzxicj4KKysrIGIv c3JjL2JveC9hbHRlci5jYzxicj4KQEAgLTUyLDYgKzUyLDcgQEA8YnI+CiZuYnNwOyNpbmNsdWRl ICJpZGVudGlmaWVyLmgiPGJyPgombmJzcDsjaW5jbHVkZSAidmVyc2lvbi5oIjxicj4KJm5ic3A7 I2luY2x1ZGUgInNlcXVlbmNlLmgiPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3Rl Pjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1h cmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9Impz LWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTI4OTg4NjkwMDAw MDAwMDg2M19CT0RZIj48YnI+CisjaW5jbHVkZSAiY3RsLmgiPC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9ibG9ja3F1b3RlPk5vdCB1c2VkLjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxl ZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48 ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2 IGlkPSJzdHlsZV8xNTI4OTg4NjkwMDAwMDAwMDg2M19CT0RZIj48YnI+PGJyPgombmJzcDsvKio8 YnI+CiZuYnNwOyZuYnNwOyogY2hhcC1zaGExIG9mIGVtcHR5IHN0cmluZywgaS5lLjxicj4KZGlm ZiAtLWdpdCBhL3NyYy9ib3gvYm94LmNjIGIvc3JjL2JveC9ib3guY2M8YnI+CmluZGV4IDI2Mjc3 ZTcuLjFkZTM3ZDIgMTAwNjQ0PGJyPgotLS0gYS9zcmMvYm94L2JveC5jYzxicj4KKysrIGIvc3Jj L2JveC9ib3guY2M8YnI+CkBAIC0xMTMsNiArMTEzLDExIEBAIHN0YXRpYyBmaWJlcl9jb25kIHJv X2NvbmQ7PGJyPgombmJzcDsmbmJzcDsqLzxicj4KJm5ic3A7c3RhdGljIGJvb2wgaXNfb3JwaGFu ID0gdHJ1ZTs8YnI+PGJyPgorLyoqPGJyPgorICogRmliZXIgdXNlZCBmb3Igb25fY3RsX2V2ZW50 IHRyaWdnZXIuPGJyPgorICovPGJyPgorc3RhdGljIGZpYmVyICpyb19jaGVja2VyOzxicj4KKzxi cj4KJm5ic3A7LyogVXNlIHRoZSBzaGFyZWQgaW5zdGFuY2Ugb2YgeHN0cmVhbSBmb3IgYWxsIGFw cGxpZXJzICovPGJyPgombmJzcDtzdGF0aWMgc3RydWN0IHhzdHJlYW0gam9pbl9zdHJlYW07PGJy PgombmJzcDtzdGF0aWMgc3RydWN0IHhzdHJlYW0gc3Vic2NyaWJlX3N0cmVhbTs8YnI+CkBAIC0x NTczLDYgKzE1NzgsOSBAQCBib3hfc2V0X3JlcGxpY2FzZXRfdXVpZChjb25zdCBzdHJ1Y3QgdHRf dXVpZCAqcmVwbGljYXNldF91dWlkKTxicj4KJm5ic3A7dm9pZDxicj4KJm5ic3A7Ym94X2ZyZWUo dm9pZCk8YnI+CiZuYnNwO3s8YnI+CisJaWYgKHJ1bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90eXBl KENUTF9FVkVOVF9TSFVURE9XTikgJmx0OyAwKTxicj4KKwkJc2F5X2Vycm9yKCJjdGxfdHJpZ2dl ciBlcnJvciBpbiBzaHV0ZG93bjogJXMiLDxicj4KKwkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdf Z2V0KCkpLSZndDtlcnJtc2cpOzxicj4KJm5ic3A7CS8qPGJyPgombmJzcDsJICogU2VlIGdoLTU4 NCAiYm94X2ZyZWUoKSBpcyBjYWxsZWQgZXZlbiBpZiBib3ggaXMgbm90PGJyPgombmJzcDsJICog aW5pdGlhbGl6ZWQ8YnI+CkBAIC0xNTkyLDcgKzE2MDAsOCBAQCBib3hfZnJlZSh2b2lkKTxicj4K Jm5ic3A7CQllbmdpbmVfc2h1dGRvd24oKTs8YnI+CiZuYnNwOwkJd2FsX3RocmVhZF9zdG9wKCk7 PGJyPgombmJzcDsJfTxicj4KLTxicj4KKwlpZiAoIWZpYmVyX2lzX2RlYWQocm9fY2hlY2tlcikp PGJyPgorCQlmaWJlcl9jYW5jZWwocm9fY2hlY2tlcik7PGJyPgombmJzcDsJZmliZXJfY29uZF9k ZXN0cm95KCZhbXA7cm9fY29uZCk7PGJyPgombmJzcDt9PGJyPjxicj4KQEAgLTE2OTMsNiArMTcw MiwxMCBAQCBib290c3RyYXBfZnJvbV9tYXN0ZXIoc3RydWN0IHJlcGxpY2EgKm1hc3Rlcik8YnI+ CiZuYnNwOwllbmdpbmVfYmVnaW5faW5pdGlhbF9yZWNvdmVyeV94YyhOVUxMKTs8YnI+CiZuYnNw OwlhcHBsaWVyX3Jlc3VtZV90b19zdGF0ZShhcHBsaWVyLCBBUFBMSUVSX0ZJTkFMX0pPSU4sIFRJ TUVPVVRfSU5GSU5JVFkpOzxicj48YnI+CisJaWYgKHJ1bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90 eXBlKENUTF9FVkVOVF9TWVNURU1fU1BBQ0VfUkVDT1ZFUlkpICZsdDsgMCk8YnI+CisJCXNheV9l cnJvcigiY3RsX3RyaWdnZXIgZXJyb3IgaW4gc3lzdGVtIHNwYWNlIHJlY292ZXJ5OiAlcyIsPGJy PgorCQkJICBkaWFnX2xhc3RfZXJyb3IoZGlhZ19nZXQoKSktJmd0O2Vycm1zZyk7PGJyPgorPGJy PgombmJzcDsJLyo8YnI+CiZuYnNwOwkgKiBQcm9jZXNzIGZpbmFsIGRhdGEgKFdBTHMpLjxicj4K Jm5ic3A7CSAqLzxicj4KQEAgLTE3NTUsMTEgKzE3NjgsMzUgQEAgdHhfcHJpb19jYihzdHJ1Y3Qg ZXZfbG9vcCAqbG9vcCwgZXZfd2F0Y2hlciAqd2F0Y2hlciwgaW50IGV2ZW50cyk8YnI+CiZuYnNw OwljYnVzX3Byb2Nlc3MoZW5kcG9pbnQpOzxicj4KJm5ic3A7fTxicj48YnI+CitzdGF0aWMgaW50 PGJyPgorY2hlY2tfcm9fZihNQVlCRV9VTlVTRUQgdmFfbGlzdCBhcCk8YnI+Cit7PGJyPgorCWRv dWJsZSB0aW1lb3V0ID0gVElNRU9VVF9JTkZJTklUWTs8YnI+CisJc3RydWN0IG9uX2N0bF9ldmVu dF9jdHggY3R4Ozxicj4KKwltZW1zZXQoJmFtcDtjdHgsIDAsIHNpemVvZihjdHgpKTs8YnI+CisJ d2hpbGUgKHRydWUpIHs8YnI+CisJCWlmIChib3hfd2FpdF9ybyghYm94X2lzX3JvKCksIHRpbWVv dXQpICE9IDApIHs8YnI+CisJCQlpZiAoZmliZXJfaXNfY2FuY2VsbGVkKCkpPGJyPgorCQkJCWJy ZWFrOzxicj4KKwkJCWVsc2U8YnI+CisJCQkJcmV0dXJuIC0xOzxicj4KKwkJfTxicj4KKwkJaWYg KHJ1bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90eXBlKDxicj4KKwkJCWJveF9pc19ybygpID8gQ1RM X0VWRU5UX1JFQURfT05MWTo8YnI+CisJCQkJCSAgICAgIENUTF9FVkVOVF9SRUFEX1dSSVRFKSAm bHQ7IDApPGJyPgorCQkJc2F5X2Vycm9yKCJjdGxfdHJpZ2dlciBlcnJvciBpbiAlczogJXMiLDxi cj4KKwkJCQkgIGJveF9pc19ybygpID8gInJlYWRfb25seSIgOiJyZWFkX3dyaXRlIiw8YnI+CisJ CQkJICBkaWFnX2xhc3RfZXJyb3IoZGlhZ19nZXQoKSktJmd0O2Vycm1zZyk7PGJyPgorCX08YnI+ CisJcmV0dXJuIDA7PGJyPgorfTxicj4KKzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT5JcyBpdCB3b3J0aCBpdCB0byBjcmVhdGUgYSBzZXBhcmF0ZSBmaWJlcj8gTWF5IGJlIGNo ZWNrIGl0IG5lYXIgb3IgaW5zaWRlIGZpYmVyX2NvbmRfYnJvYWRjYXN0KCZhbXA7cm9fY29uZCk/ PGJyPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7 IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9 ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTI4OTg4Njkw MDAwMDAwMDg2M19CT0RZIj48YnI+CiZuYnNwO3ZvaWQ8YnI+CiZuYnNwO2JveF9pbml0KHZvaWQp PGJyPgombmJzcDt7PGJyPgombmJzcDsJZmliZXJfY29uZF9jcmVhdGUoJmFtcDtyb19jb25kKTs8 YnI+Ci08YnI+CisJcm9fY2hlY2tlciA9IGZpYmVyX25ld194YygiY2hlY2tfcm8iLCBjaGVja19y b19mKTs8YnI+CisJZmliZXJfc3RhcnQocm9fY2hlY2tlciwgTlVMTCk7PGJyPgombmJzcDsJdXNl cl9jYWNoZV9pbml0KCk7PGJyPgombmJzcDsJLyo8YnI+CiZuYnNwOwkgKiBUaGUgb3JkZXIgaXMg aW1wb3J0YW50OiB0byBpbml0aWFsaXplIHNlc3Npb25zLDxicj4KQEAgLTE4ODUsNiArMTkyMiw5 IEBAIGJveF9jZmdfeGModm9pZCk8YnI+CiZuYnNwOwkJICovPGJyPgombmJzcDsJCW1lbXR4X2Vu Z2luZV9yZWNvdmVyX3NuYXBzaG90X3hjKG1lbXR4LDxicj4KJm5ic3A7CQkJCSZhbXA7bGFzdF9j aGVja3BvaW50X3ZjbG9jayk7PGJyPgorCQlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5 cGUoQ1RMX0VWRU5UX1NZU1RFTV9TUEFDRV9SRUNPVkVSWSkgJmx0OyAwKTxicj4KKwkJCXNheV9l cnJvcigiY3RsX3RyaWdnZXIgZXJyb3IgaW4gc3lzdGVtIHNwYWNlIHJlY292ZXJ5OiAlcyIsPGJy PgorCQkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLSZndDtlcnJtc2cpOzxicj48YnI+ CiZuYnNwOwkJZW5naW5lX2JlZ2luX2ZpbmFsX3JlY292ZXJ5X3hjKCk7PGJyPgombmJzcDsJCXJl Y292ZXJ5X2ZvbGxvd19sb2NhbChyZWNvdmVyeSwgJmFtcDt3YWxfc3RyZWFtLmJhc2UsICJob3Rf c3RhbmRieSIsPGJyPgpkaWZmIC0tZ2l0IGEvc3JjL2JveC9lbmdpbmUuYyBiL3NyYy9ib3gvZW5n aW5lLmM8YnI+CmluZGV4IDgyMjkzZmQuLmZhNzg3NTMgMTAwNjQ0PGJyPgotLS0gYS9zcmMvYm94 L2VuZ2luZS5jPGJyPgorKysgYi9zcmMvYm94L2VuZ2luZS5jPGJyPgpAQCAtMjksMTAgKzI5LDEy IEBAPGJyPgombmJzcDsmbmJzcDsqIFNVQ0ggREFNQUdFLjxicj4KJm5ic3A7Jm5ic3A7Ki88YnI+ CiZuYnNwOyNpbmNsdWRlICJlbmdpbmUuaCI8YnI+CisjaW5jbHVkZSAiY3RsLmgiPGJyPjxicj4K Jm5ic3A7I2luY2x1ZGUgJmx0O3N0ZGludC5oJmd0Ozxicj4KJm5ic3A7I2luY2x1ZGUgJmx0O3N0 cmluZy5oJmd0Ozxicj4KJm5ic3A7I2luY2x1ZGUgJmx0O3NtYWxsL3JsaXN0LmgmZ3Q7PC9kaXY+ PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9y ZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEw cHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRp dj48ZGl2IGlkPSJzdHlsZV8xNTI4OTg4NjkwMDAwMDAwMDg2M19CT0RZIj48YnI+CisjaW5jbHVk ZSAmbHQ7ZmliZXIuaCZndDs8YnI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3Rl Pk5vdCB1c2VkLjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMw ODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYg Y2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTI4 OTg4NjkwMDAwMDAwMDg2M19CT0RZIj48YnI+CiZuYnNwO1JMSVNUX0hFQUQoZW5naW5lcyk7PGJy Pjxicj4KQEAgLTczLDYgKzc1LDE0IEBAIGVuZ2luZV9ib290c3RyYXAodm9pZCk8YnI+CiZuYnNw OwkJaWYgKGVuZ2luZS0mZ3Q7dnRhYi0mZ3Q7Ym9vdHN0cmFwKGVuZ2luZSkgIT0gMCk8YnI+CiZu YnNwOwkJCXJldHVybiAtMTs8YnI+CiZuYnNwOwl9PGJyPgorCWlmIChydW5fb25fY3RsX2V2ZW50 X3RyaWdnZXJfdHlwZShDVExfRVZFTlRfU1lTVEVNX1NQQUNFX1JFQ09WRVJZKSAmbHQ7IDApPGJy PgorCQlzYXlfZXJyb3IoImN0bF90cmlnZ2VyIGVycm9yIGluIHN5c3RlbSBzcGFjZSByZWNvdmVy eTogJXMiLDxicj4KKwkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLSZndDtlcnJtc2cp Ozxicj4KKzxicj4KKwlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VyX3R5cGUoQ1RMX0VWRU5U X0xPQ0FMX1JFQ09WRVJZKSAmbHQ7IDApPGJyPgorCQlzYXlfZXJyb3IoImN0bF90cmlnZ2VyIGVy cm9yIGluIGxvY2FsIHJlY292ZXJ5OiAlcyIsPGJyPgorCQkJICBkaWFnX2xhc3RfZXJyb3IoZGlh Z19nZXQoKSktJmd0O2Vycm1zZyk7PGJyPgorPGJyPgombmJzcDsJcmV0dXJuIDA7PGJyPgombmJz cDt9PGJyPjxicj4KQEAgLTExMSw2ICsxMjEsMTAgQEAgZW5naW5lX2VuZF9yZWNvdmVyeSh2b2lk KTxicj4KJm5ic3A7CQlpZiAoZW5naW5lLSZndDt2dGFiLSZndDtlbmRfcmVjb3ZlcnkoZW5naW5l KSAhPSAwKTxicj4KJm5ic3A7CQkJcmV0dXJuIC0xOzxicj4KJm5ic3A7CX08YnI+CisJaWYgKHJ1 bl9vbl9jdGxfZXZlbnRfdHJpZ2dlcl90eXBlKENUTF9FVkVOVF9MT0NBTF9SRUNPVkVSWSkgJmx0 OyAwKTxicj4KKwkJc2F5X2Vycm9yKCJjdGxfdHJpZ2dlciBlcnJvciBpbiBsb2NhbCByZWNvdmVy eTogJXMiLDxicj4KKwkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLSZndDtlcnJtc2cp Ozxicj4KKzxicj4KJm5ic3A7CXJldHVybiAwOzxicj4KJm5ic3A7fTxicj48YnI+CmRpZmYgLS1n aXQgYS9zcmMvYm94L2x1YS9jdGwuYyBiL3NyYy9ib3gvbHVhL2N0bC5jPGJyPgppbmRleCA1MmYz MjBhLi41YmQ5YmUzIDEwMDY0NDxicj4KLS0tIGEvc3JjL2JveC9sdWEvY3RsLmM8YnI+CisrKyBi L3NyYy9ib3gvbHVhL2N0bC5jPGJyPgpAQCAtMTIyLDggKzEyMiw4IEBAIGJveF9sdWFfY3RsX2lu aXQoc3RydWN0IGx1YV9TdGF0ZSAqTCk8YnI+CiZuYnNwOwlsdWFfcHVzaG51bWJlcihMLCBDVExf RVZFTlRfU0hVVERPV04pOzxicj4KJm5ic3A7CWx1YV9zZXRmaWVsZChMLCAtMiwgIlNIVVRET1dO Iik7PGJyPgombmJzcDsJbHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQURE KTs8YnI+Ci0JbHVhX3NldGZpZWxkKEwsIC0yLCAiQ1RMX0VWRU5UX1JFUExJQ0FTRVRfQUREIik7 PGJyPgorCWx1YV9zZXRmaWVsZChMLCAtMiwgIlJFUExJQ0FTRVRfQUREIik7PGJyPgombmJzcDsJ bHVhX3B1c2hudW1iZXIoTCwgQ1RMX0VWRU5UX1JFUExJQ0FTRVRfUkVNT1ZFKTs8YnI+Ci0JbHVh X3NldGZpZWxkKEwsIC0yLCAiQ1RMX0VWRU5UX1JFUExJQ0FTRVRfUkVNT1ZFIik7PGJyPgorCWx1 YV9zZXRmaWVsZChMLCAtMiwgIlJFUExJQ0FTRVRfUkVNT1ZFIik7PGJyPgombmJzcDsJbHVhX3Bv cChMLCAyKTsgLyogYm94LCBjdGwgKi88YnI+CiZuYnNwO308YnI+CmRpZmYgLS1naXQgYS9zcmMv Ym94L21lbXR4X2VuZ2luZS5jIGIvc3JjL2JveC9tZW10eF9lbmdpbmUuYzxicj4KaW5kZXggZmFj ODRjZS4uZTczN2VhMyAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9ib3gvbWVtdHhfZW5naW5lLmM8YnI+ CisrKyBiL3NyYy9ib3gvbWVtdHhfZW5naW5lLmM8YnI+CkBAIC00OCw2ICs0OCw3IEBAPGJyPgom bmJzcDsjaW5jbHVkZSAicmVwbGljYXRpb24uaCI8YnI+CiZuYnNwOyNpbmNsdWRlICJzY2hlbWEu aCI8YnI+CiZuYnNwOyNpbmNsdWRlICJnYy5oIjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxv Y2txdW90ZT48YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1 N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNs YXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyODk4 ODY5MDAwMDAwMDA4NjNfQk9EWSI+PGJyPgorI2luY2x1ZGUgImN0bC5oIjxicj48L2Rpdj48L2Rp dj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+QWxzbyBub3QgdXNlZC48YnI+PGJsb2NrcXVvdGUg c3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGlu ZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUyODk4ODY5MDAwMDAwMDA4NjNfQk9EWSI+PGJy PgombmJzcDtzdGF0aWMgdm9pZDxicj4KJm5ic3A7dHhuX29uX3lpZWxkX29yX3N0b3Aoc3RydWN0 IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKmV2ZW50KTxicj4KQEAgLTE5Nyw3ICsxOTgsNiBAQCBt ZW10eF9lbmdpbmVfcmVjb3Zlcl9zbmFwc2hvdChzdHJ1Y3QgbWVtdHhfZW5naW5lICptZW10eCw8 YnI+CiZuYnNwOwkgKi88YnI+CiZuYnNwOwlpZiAoIXhsb2dfY3Vyc29yX2lzX2VvZigmYW1wO2N1 cnNvcikpPGJyPgombmJzcDsJCXBhbmljKCJzbmFwc2hvdCBgJXMnIGhhcyBubyBFT0YgbWFya2Vy IiwgZmlsZW5hbWUpOzxicj4KLTxicj4KJm5ic3A7CXJldHVybiAwOzxicj4KJm5ic3A7fTxicj48 YnI+CmRpZmYgLS1naXQgYS9zcmMvYm94L3JlcGxpY2F0aW9uLmNjIGIvc3JjL2JveC9yZXBsaWNh dGlvbi5jYzxicj4KaW5kZXggYzFlMTc2OS4uNzVhZWNkMCAxMDA2NDQ8YnI+Ci0tLSBhL3NyYy9i b3gvcmVwbGljYXRpb24uY2M8YnI+CisrKyBiL3NyYy9ib3gvcmVwbGljYXRpb24uY2M8YnI+CkBA IC00MSw2ICs0MSw3IEBAPGJyPgombmJzcDsjaW5jbHVkZSAiZXJyb3IuaCI8YnI+CiZuYnNwOyNp bmNsdWRlICJyZWxheS5oIjxicj4KJm5ic3A7I2luY2x1ZGUgInZjbG9jay5oIiAvKiBWQ0xPQ0tf TUFYICovPGJyPgorI2luY2x1ZGUgImN0bC5oIjxicj48YnI+CiZuYnNwO3VpbnQzMl90IGluc3Rh bmNlX2lkID0gUkVQTElDQV9JRF9OSUw7PGJyPgombmJzcDtzdHJ1Y3QgdHRfdXVpZCBJTlNUQU5D RV9VVUlEOzxicj4KQEAgLTE3Miw2ICsxNzMsMTIgQEAgcmVwbGljYXNldF9hZGQodWludDMyX3Qg cmVwbGljYV9pZCwgY29uc3Qgc3RydWN0IHR0X3V1aWQgKnJlcGxpY2FfdXVpZCk8YnI+CiZuYnNw OwlyZXBsaWNhLSZndDt1dWlkID0gKnJlcGxpY2FfdXVpZDs8YnI+CiZuYnNwOwlyZXBsaWNhX2hh c2hfaW5zZXJ0KCZhbXA7cmVwbGljYXNldC5oYXNoLCByZXBsaWNhKTs8YnI+CiZuYnNwOwlyZXBs aWNhX3NldF9pZChyZXBsaWNhLCByZXBsaWNhX2lkKTs8YnI+CisJc3RydWN0IG9uX2N0bF9ldmVu dF9jdHggb25fY3RsX2N0eDs8YnI+CisJb25fY3RsX2N0eC50eXBlID0gQ1RMX0VWRU5UX1JFUExJ Q0FTRVRfQUREOzxicj4KKwlvbl9jdGxfY3R4LnJlcGxpY2FfaWQgPSByZXBsaWNhX2lkOzxicj4K KwlpZiAocnVuX29uX2N0bF9ldmVudF90cmlnZ2VycygmYW1wO29uX2N0bF9jdHgpICZsdDsgMCk8 YnI+CisJCXNheV9lcnJvcigiY3RsX3RyaWdnZXIgZXJyb3IgaW4gcmVwbGljYSBhZGQ6ICVzIiw8 YnI+CisJCQkgIGRpYWdfbGFzdF9lcnJvcihkaWFnX2dldCgpKS0mZ3Q7ZXJybXNnKTs8YnI+CiZu YnNwOwlyZXR1cm4gcmVwbGljYTs8YnI+CiZuYnNwO308YnI+PGJyPgpAQCAtMjAzLDEyICsyMTAs MTkgQEAgcmVwbGljYV9jbGVhcl9pZChzdHJ1Y3QgcmVwbGljYSAqcmVwbGljYSk8YnI+CiZuYnNw OwkgKiBTb21lIHJlY29yZHMgbWF5IGFycml2ZSBsYXRlciBvbiBkdWUgdG8gYXN5bmNocm9ub3Vz IG5hdHVyZSBvZjxicj4KJm5ic3A7CSAqIHJlcGxpY2F0aW9uLjxicj4KJm5ic3A7CSAqLzxicj4K KwlzdHJ1Y3Qgb25fY3RsX2V2ZW50X2N0eCBvbl9jdGxfY3R4Ozxicj4KKwlvbl9jdGxfY3R4LnR5 cGUgPSBDVExfRVZFTlRfUkVQTElDQVNFVF9SRU1PVkU7PGJyPgorCW9uX2N0bF9jdHgucmVwbGlj YV9pZCA9IHJlcGxpY2EtJmd0O2lkOzxicj4KKzxicj4KJm5ic3A7CXJlcGxpY2FzZXQucmVwbGlj YV9ieV9pZFtyZXBsaWNhLSZndDtpZF0gPSBOVUxMOzxicj4KJm5ic3A7CXJlcGxpY2EtJmd0O2lk ID0gUkVQTElDQV9JRF9OSUw7PGJyPgombmJzcDsJaWYgKHJlcGxpY2FfaXNfb3JwaGFuKHJlcGxp Y2EpKSB7PGJyPgombmJzcDsJCXJlcGxpY2FfaGFzaF9yZW1vdmUoJmFtcDtyZXBsaWNhc2V0Lmhh c2gsIHJlcGxpY2EpOzxicj4KJm5ic3A7CQlyZXBsaWNhX2RlbGV0ZShyZXBsaWNhKTs8YnI+CiZu YnNwOwl9PGJyPgorCWlmIChydW5fb25fY3RsX2V2ZW50X3RyaWdnZXJzKCZhbXA7b25fY3RsX2N0 eCkgJmx0OyAwKTxicj4KKwkJc2F5X2Vycm9yKCJjdGxfdHJpZ2dlciBlcnJvciBpbiByZXBsaWNh IHJlbW92ZTogJXMiLDxicj4KKwkJCSAgZGlhZ19sYXN0X2Vycm9yKGRpYWdfZ2V0KCkpLSZndDtl cnJtc2cpOzxicj4KJm5ic3A7fTxicj48YnI+CiZuYnNwO3N0YXRpYyB2b2lkPGJyPgpkaWZmIC0t Z2l0IGEvdGVzdC9yZXBsaWNhdGlvbi9tYXN0ZXJfb25jdGwubHVhIGIvdGVzdC9yZXBsaWNhdGlv bi9tYXN0ZXJfb25jdGwubHVhPGJyPgpuZXcgZmlsZSBtb2RlIDEwMDY0NDxicj4KaW5kZXggMDAw MDAwMC4uZTBlYjM5YTxicj4KLS0tIC9kZXYvbnVsbDxicj4KKysrIGIvdGVzdC9yZXBsaWNhdGlv bi9tYXN0ZXJfb25jdGwubHVhPGJyPgpAQCAtMCwwICsxLDM0IEBAPGJyPgorIyEvdXNyL2Jpbi9l bnYgdGFyYW50b29sPGJyPgorb3MgPSByZXF1aXJlKCdvcycpPGJyPgorPGJyPgorU1lTVEVNX1NQ QUNFX1JFQ09WRVJZID0gMDxicj4KK0xPQ0FMX1JFQ09WRVJZID0gMDxicj4KK1JFQURfT05MWSA9 IDA8YnI+CitSRUFEX1dSSVRFID0gMDxicj4KK1JFUExJQ0FTRVRfQUREID0ge308YnI+CitSRVBM SUNBU0VUX1JFTU9WRSA9IHt9PGJyPgorPGJyPgorbG9jYWwgZnVuY3Rpb24gb25jdGwoY3R4KTxi cj4KKyAgICBpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlNZU1RFTV9TUEFDRV9SRUNPVkVS WSB0aGVuPGJyPgorICAgICAgICBTWVNURU1fU1BBQ0VfUkVDT1ZFUlkgPSBTWVNURU1fU1BBQ0Vf UkVDT1ZFUlkgKyAxPGJyPgorICAgIGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LkxP Q0FMX1JFQ09WRVJZIHRoZW48YnI+CisgICAgICAgIExPQ0FMX1JFQ09WRVJZID0gTE9DQUxfUkVD T1ZFUlkgKyAxPGJyPgorICAgIGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFQURf T05MWSB0aGVuPGJyPgorICAgICAgICBSRUFEX09OTFkgPSBSRUFEX09OTFkgKyAxPGJyPgorICAg IGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFQURfV1JJVEUgdGhlbjxicj4KKyAg ICAgICAgUkVBRF9XUklURSA9IFJFQURfV1JJVEUgKyAxPGJyPgorICAgIGVsc2VpZiBjdHgudHlw ZSA9PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfQUREIHRoZW48YnI+CisgICAgICAgIHRhYmxl Lmluc2VydChSRVBMSUNBU0VUX0FERCwgY3R4LnJlcGxpY2FfaWQpPGJyPgorICAgIGVsc2VpZiBj dHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfUkVNT1ZFIHRoZW48YnI+CisgICAg ICAgIHRhYmxlLmluc2VydChSRVBMSUNBU0VUX1JFTU9WRSwgY3R4LnJlcGxpY2FfaWQpPGJyPgor ICAgIGVuZDxicj4KK2VuZDxicj4KKzxicj4KK2JveC5jZmcoezxicj4KKyAgICBsaXN0ZW4gICAg ICAgICAgICAgID0gb3MuZ2V0ZW52KCJMSVNURU4iKSw8YnI+CisgICAgbWVtdHhfbWVtb3J5ICAg ICAgICA9IDEwNzM3NDE4Miw8YnI+CisgICAgcmVwbGljYXRpb25fY29ubmVjdF90aW1lb3V0ID0g MC41LDxicj4KKyAgICBvbl9jdGxfZXZlbnQgICAgICAgID0gb25jdGwsPGJyPgorfSk8YnI+Cis8 YnI+CityZXF1aXJlKCdjb25zb2xlJykubGlzdGVuKG9zLmdldGVudignQURNSU4nKSk8YnI+CmRp ZmYgLS1naXQgYS90ZXN0L3JlcGxpY2F0aW9uL29uY3RsLnJlc3VsdCBiL3Rlc3QvcmVwbGljYXRp b24vb25jdGwucmVzdWx0PGJyPgpuZXcgZmlsZSBtb2RlIDEwMDY0NDxicj4KaW5kZXggMDAwMDAw MC4uMTliM2U2Nzxicj4KLS0tIC9kZXYvbnVsbDxicj4KKysrIGIvdGVzdC9yZXBsaWNhdGlvbi9v bmN0bC5yZXN1bHQ8YnI+CkBAIC0wLDAgKzEsMjUwIEBAPGJyPgorZW52ID0gcmVxdWlyZSgndGVz dF9ydW4nKTxicj4KKy0tLTxicj4KKy4uLjxicj4KK3Rlc3RfcnVuID0gZW52Lm5ldygpPGJyPgor LS0tPGJyPgorLi4uPGJyPgordGVzdF9ydW46Y21kKCJjcmVhdGUgc2VydmVyIG1hc3RlciB3aXRo IHNjcmlwdD0ncmVwbGljYXRpb24vbWFzdGVyX29uY3RsLmx1YSciKTxicj4KKy0tLTxicj4KKy0g dHJ1ZTxicj4KKy4uLjxicj4KK3Rlc3RfcnVuOmNtZCgiY3JlYXRlIHNlcnZlciByZXBsaWNhIHdp dGggcnBsX21hc3Rlcj1tYXN0ZXIsIHNjcmlwdD0ncmVwbGljYXRpb24vcmVwbGljYV9vbmN0bC5s dWEnIik8YnI+CistLS08YnI+CistIHRydWU8YnI+CisuLi48YnI+Cit0ZXN0X3J1bjpjbWQoInN0 YXJ0IHNlcnZlciBtYXN0ZXIiKTxicj4KKy0tLTxicj4KKy0gdHJ1ZTxicj4KKy4uLjxicj4KK3Rl c3RfcnVuOmNtZCgic3dpdGNoIG1hc3RlciIpPGJyPgorLS0tPGJyPgorLSB0cnVlPGJyPgorLi4u PGJyPgorYm94LnNjaGVtYS51c2VyLmdyYW50KCdndWVzdCcsICdyZXBsaWNhdGlvbicpPGJyPgor LS0tPGJyPgorLi4uPGJyPgorU1lTVEVNX1NQQUNFX1JFQ09WRVJZPGJyPgorLS0tPGJyPgorLSAx PGJyPgorLi4uPGJyPgorTE9DQUxfUkVDT1ZFUlk8YnI+CistLS08YnI+CistIDE8YnI+CisuLi48 YnI+CitSRUFEX09OTFk8YnI+CistLS08YnI+CistIDA8YnI+CisuLi48YnI+CitSRUFEX1dSSVRF PGJyPgorLS0tPGJyPgorLSAxPGJyPgorLi4uPGJyPgorLS0gbXVzdCBiZSB0d28gZW50cmllcy4g Rmlyc3QgZnJvbSBib290c3RyYXAuc25hcCwgc2Vjb25kIGZvciBjdXJyZW50IGluc3RhbmNlLjxi cj4KK1JFUExJQ0FTRVRfQUREPGJyPgorLS0tPGJyPgorLSAtIDE8YnI+CisgIC0gMTxicj4KKy4u Ljxicj4KKy0tIG11c3QgYmUgb25lIGVudHJ5LiBEZWxldGlvbiBvZiBpbml0aWFsIHR1cGxlIGlu IF9jbHVzdGVyIHNwYWNlLjxicj4KK1JFUExJQ0FTRVRfUkVNT1ZFPGJyPgorLS0tPGJyPgorLSAt IDE8YnI+CisuLi48YnI+CitSRVBMSUNBU0VUX0FERCA9IHt9PGJyPgorLS0tPGJyPgorLi4uPGJy PgorUkVQTElDQVNFVF9SRU1PVkUgPSB7fTxicj4KKy0tLTxicj4KKy4uLjxicj4KK25ld19yZXBs aWNhX2lkID0gMDxicj4KKy0tLTxicj4KKy4uLjxicj4KK2RlbGV0ZWRfcmVwbGljYV9pZCA9IDA8 YnI+CistLS08YnI+CisuLi48YnI+Cit0ZXN0X3J1bjpjbWQoInNldG9wdCBkZWxpbWl0ZXIgJzsn Iik8YnI+CistLS08YnI+CistIHRydWU8YnI+CisuLi48YnI+CitmdW5jdGlvbiBvbl9jdGxfbmV3 KGN0eCk8YnI+CisgICAgaWYgY3R4LnR5cGUgPT0gYm94LmN0bC5ldmVudC5SRVBMSUNBU0VUX0FE RCB0aGVuPGJyPgorICAgICAgICBuZXdfcmVwbGljYV9pZCA9IGN0eC5yZXBsaWNhX2lkPGJyPgor ICAgIGVsc2VpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfUkVNT1ZFIHRo ZW48YnI+CisgICAgICAgIGRlbGV0ZWRfcmVwbGljYV9pZCA9IGN0eC5yZXBsaWNhX2lkPGJyPgor ICAgIGVuZDxicj4KK2VuZDs8YnI+CistLS08YnI+CisuLi48YnI+Cit0ZXN0X3J1bjpjbWQoInNl dG9wdCBkZWxpbWl0ZXIgJyciKTs8YnI+CistLS08YnI+CistIHRydWU8YnI+CisuLi48YnI+Citf ID0gYm94LmN0bC5vbl9jdGxfZXZlbnQob25fY3RsX25ldyk8YnI+CistLS08YnI+CisuLi48YnI+ Cit0ZXN0X3J1bjpjbWQoInN0YXJ0IHNlcnZlciByZXBsaWNhIik8YnI+CistLS08YnI+CistIHRy dWU8YnI+CisuLi48YnI+CitSRVBMSUNBU0VUX0FERDxicj4KKy0tLTxicj4KKy0gLSAyPGJyPgor Li4uPGJyPgorUkVQTElDQVNFVF9SRU1PVkU8YnI+CistLS08YnI+CistIFtdPGJyPgorLi4uPGJy PgorbmV3X3JlcGxpY2FfaWQ8YnI+CistLS08YnI+CistIDI8YnI+CisuLi48YnI+CitkZWxldGVk X3JlcGxpY2FfaWQ8YnI+CistLS08YnI+CistIDA8YnI+CisuLi48YnI+Cit0ZXN0X3J1bjpjbWQo InN3aXRjaCByZXBsaWNhIik8YnI+CistLS08YnI+CistIHRydWU8YnI+CisuLi48YnI+Cit0ZXN0 X3J1bjpjbWQoInNldG9wdCBkZWxpbWl0ZXIgJzsnIik8YnI+CistLS08YnI+CistIHRydWU8YnI+ CisuLi48YnI+CitmdW5jdGlvbiBvbl9jdGxfc2h1dGRvd24oY3R4KTxicj4KKyAgICBpZiBjdHgu dHlwZSA9PSBib3guY3RsLmV2ZW50LlNIVVRET1dOIHRoZW48YnI+CisgICAgICAgIHJlcXVpcmUo ImxvZyIpLmluZm8oInRlc3QgcmVwbGljYSBzaHV0ZG93biIpPGJyPgorICAgIGVuZDxicj4KK2Vu ZDs8YnI+CistLS08YnI+CisuLi48YnI+CitmdW5jdGlvbiBvbl9jdGxfZXJyb3IoY3R4KTxicj4K KyAgICBlcnJvcigidHJpZ2dlciBlcnJvciIpPGJyPgorZW5kOzxicj4KKy0tLTxicj4KKy4uLjxi cj4KK3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnJyIpOzxicj4KKy0tLTxicj4KKy0g dHJ1ZTxicj4KKy4uLjxicj4KK1NZU1RFTV9TUEFDRV9SRUNPVkVSWTxicj4KKy0tLTxicj4KKy0g MTxicj4KKy4uLjxicj4KK0xPQ0FMX1JFQ09WRVJZPGJyPgorLS0tPGJyPgorLSAxPGJyPgorLi4u PGJyPgorUkVBRF9PTkxZPGJyPgorLS0tPGJyPgorLSAwPGJyPgorLi4uPGJyPgorUkVBRF9XUklU RTxicj4KKy0tLTxicj4KKy0gMTxicj4KKy4uLjxicj4KK1JFUExJQ0FTRVRfQUREPGJyPgorLS0t PGJyPgorLSAtIDI8YnI+CisuLi48YnI+CitSRVBMSUNBU0VUX1JFTU9WRTxicj4KKy0tLTxicj4K Ky0gW108YnI+CisuLi48YnI+Citib3guY2Zne3JlYWRfb25seSA9IHRydWV9PGJyPgorLS0tPGJy PgorLi4uPGJyPgorZmliZXIgPSByZXF1aXJlKCJmaWJlciIpPGJyPgorLS0tPGJyPgorLi4uPGJy Pgord2hpbGUgUkVBRF9PTkxZID09IDAgZG8gZmliZXIuc2xlZXAoMC4wMDEpIGVuZDxicj4KKy0t LTxicj4KKy4uLjxicj4KK1JFQURfT05MWTxicj4KKy0tLTxicj4KKy0gMTxicj4KKy4uLjxicj4K K2JveC5jZmd7b25fY3RsX2V2ZW50ID0gb25fY3RsX2Vycm9yfTxicj4KKy0tLTxicj4KKy4uLjxi cj4KK2JveC5jZmd7cmVhZF9vbmx5ID0gZmFsc2V9PGJyPgorLS0tPGJyPgorLi4uPGJyPgordGVz dF9ydW46Z3JlcF9sb2coJ3JlcGxpY2EnLCAnY3RsX3RyaWdnZXIgZXJyb3InKTxicj4KKy0tLTxi cj4KKy0gY3RsX3RyaWdnZXIgZXJyb3I8YnI+CisuLi48YnI+Citib3guY2Zne29uX2N0bF9ldmVu dCA9IHtib3guTlVMTCwgb25fY3RsX2Vycm9yfX08YnI+CistLS08YnI+CisuLi48YnI+Citib3gu Y2Zne29uX2N0bF9ldmVudCA9IG9uX2N0bF9zaHV0ZG93bn08YnI+CistLS08YnI+CisuLi48YnI+ Cit0ZXN0X3J1bjpjbWQoInJlc3RhcnQgc2VydmVyIHJlcGxpY2EiKTxicj4KKy0tIFRPRE86IHRl c3QgU0hVVERPV04sIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gZ3JlcCBsb2dzIG9mIGtpbGxlZCBy ZXBsaWNhLjxicj4KKy0tdGVzdF9ydW46Z3JlcF9sb2coJ3JlcGxpY2EnLCAndGVzdCByZXBsaWNh IHNodXRkb3duJyk8YnI+Cit0ZXN0X3J1bjpjbWQoInN3aXRjaCBtYXN0ZXIiKTxicj4KKy0tLTxi cj4KKy0gdHJ1ZTxicj4KKy4uLjxicj4KK2JveC5zY2hlbWEudXNlci5yZXZva2UoJ2d1ZXN0Jywg J3JlcGxpY2F0aW9uJyk8YnI+CistLS08YnI+CisuLi48YnI+CitfID0gYm94LnNwYWNlLl9jbHVz dGVyOmRlbGV0ZXsyfTxicj4KKy0tLTxicj4KKy4uLjxicj4KK1NZU1RFTV9TUEFDRV9SRUNPVkVS WTxicj4KKy0tLTxicj4KKy0gMTxicj4KKy4uLjxicj4KK0xPQ0FMX1JFQ09WRVJZPGJyPgorLS0t PGJyPgorLSAxPGJyPgorLi4uPGJyPgorUkVBRF9PTkxZPGJyPgorLS0tPGJyPgorLSAwPGJyPgor Li4uPGJyPgorUkVBRF9XUklURTxicj4KKy0tLTxicj4KKy0gMTxicj4KKy4uLjxicj4KK1JFUExJ Q0FTRVRfQUREPGJyPgorLS0tPGJyPgorLSAtIDI8YnI+CisuLi48YnI+CitSRVBMSUNBU0VUX1JF TU9WRTxicj4KKy0tLTxicj4KKy0gLSAyPGJyPgorLi4uPGJyPgorbmV3X3JlcGxpY2FfaWQ8YnI+ CistLS08YnI+CistIDI8YnI+CisuLi48YnI+CitkZWxldGVkX3JlcGxpY2FfaWQ8YnI+CistLS08 YnI+CistIDI8YnI+CisuLi48YnI+Citib3guY3RsLm9uX2N0bF9ldmVudChuaWwsIG9uX2N0bF9u ZXcpPGJyPgorLS0tPGJyPgorLi4uPGJyPgorLS0gY2xlYW51cDxicj4KK3Rlc3RfcnVuOmNtZCgi c3dpdGNoIGRlZmF1bHQiKTxicj4KKy0tLTxicj4KKy0gdHJ1ZTxicj4KKy4uLjxicj4KK3Rlc3Rf cnVuOmNtZCgic3RvcCBzZXJ2ZXIgbWFzdGVyIik8YnI+CistLS08YnI+CistIHRydWU8YnI+Cisu Li48YnI+Cit0ZXN0X3J1bjpjbWQoImNsZWFudXAgc2VydmVyIG1hc3RlciIpPGJyPgorLS0tPGJy PgorLSB0cnVlPGJyPgorLi4uPGJyPgordGVzdF9ydW46Y21kKCJzdG9wIHNlcnZlciByZXBsaWNh Iik8YnI+CistLS08YnI+CistIHRydWU8YnI+CisuLi48YnI+Cit0ZXN0X3J1bjpjbWQoImNsZWFu dXAgc2VydmVyIHJlcGxpY2EiKTxicj4KKy0tLTxicj4KKy0gdHJ1ZTxicj4KKy4uLjxicj4KZGlm ZiAtLWdpdCBhL3Rlc3QvcmVwbGljYXRpb24vb25jdGwudGVzdC5sdWEgYi90ZXN0L3JlcGxpY2F0 aW9uL29uY3RsLnRlc3QubHVhPGJyPgpuZXcgZmlsZSBtb2RlIDEwMDY0NDxicj4KaW5kZXggMDAw MDAwMC4uZmY2YTg5ODxicj4KLS0tIC9kZXYvbnVsbDxicj4KKysrIGIvdGVzdC9yZXBsaWNhdGlv bi9vbmN0bC50ZXN0Lmx1YTxicj4KQEAgLTAsMCArMSwxMDUgQEA8YnI+CitlbnYgPSByZXF1aXJl KCd0ZXN0X3J1bicpPGJyPgordGVzdF9ydW4gPSBlbnYubmV3KCk8YnI+Cis8YnI+Cit0ZXN0X3J1 bjpjbWQoImNyZWF0ZSBzZXJ2ZXIgbWFzdGVyIHdpdGggc2NyaXB0PSdyZXBsaWNhdGlvbi9tYXN0 ZXJfb25jdGwubHVhJyIpPGJyPgordGVzdF9ydW46Y21kKCJjcmVhdGUgc2VydmVyIHJlcGxpY2Eg d2l0aCBycGxfbWFzdGVyPW1hc3Rlciwgc2NyaXB0PSdyZXBsaWNhdGlvbi9yZXBsaWNhX29uY3Rs Lmx1YSciKTxicj4KKzxicj4KK3Rlc3RfcnVuOmNtZCgic3RhcnQgc2VydmVyIG1hc3RlciIpPGJy PgordGVzdF9ydW46Y21kKCJzd2l0Y2ggbWFzdGVyIik8YnI+Citib3guc2NoZW1hLnVzZXIuZ3Jh bnQoJ2d1ZXN0JywgJ3JlcGxpY2F0aW9uJyk8YnI+Cis8YnI+CitTWVNURU1fU1BBQ0VfUkVDT1ZF Ulk8YnI+CitMT0NBTF9SRUNPVkVSWTxicj4KK1JFQURfT05MWTxicj4KK1JFQURfV1JJVEU8YnI+ CistLSBtdXN0IGJlIHR3byBlbnRyaWVzLiBGaXJzdCBmcm9tIGJvb3RzdHJhcC5zbmFwLCBzZWNv bmQgZm9yIGN1cnJlbnQgaW5zdGFuY2UuPGJyPgorUkVQTElDQVNFVF9BREQ8YnI+CistLSBtdXN0 IGJlIG9uZSBlbnRyeS4gRGVsZXRpb24gb2YgaW5pdGlhbCB0dXBsZSBpbiBfY2x1c3RlciBzcGFj ZS48YnI+CitSRVBMSUNBU0VUX1JFTU9WRTxicj4KKzxicj4KK1JFUExJQ0FTRVRfQUREID0ge308 YnI+CitSRVBMSUNBU0VUX1JFTU9WRSA9IHt9PGJyPgorPGJyPgorbmV3X3JlcGxpY2FfaWQgPSAw PGJyPgorZGVsZXRlZF9yZXBsaWNhX2lkID0gMDxicj4KKzxicj4KK3Rlc3RfcnVuOmNtZCgic2V0 b3B0IGRlbGltaXRlciAnOyciKTxicj4KK2Z1bmN0aW9uIG9uX2N0bF9uZXcoY3R4KTxicj4KKyAg ICBpZiBjdHgudHlwZSA9PSBib3guY3RsLmV2ZW50LlJFUExJQ0FTRVRfQUREIHRoZW48YnI+Cisg ICAgICAgIG5ld19yZXBsaWNhX2lkID0gY3R4LnJlcGxpY2FfaWQ8YnI+CisgICAgZWxzZWlmIGN0 eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVQTElDQVNFVF9SRU1PVkUgdGhlbjxicj4KKyAgICAg ICAgZGVsZXRlZF9yZXBsaWNhX2lkID0gY3R4LnJlcGxpY2FfaWQ8YnI+CisgICAgZW5kPGJyPgor ZW5kOzxicj4KK3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnJyIpOzxicj4KKzxicj4K K18gPSBib3guY3RsLm9uX2N0bF9ldmVudChvbl9jdGxfbmV3KTxicj4KKzxicj4KK3Rlc3RfcnVu OmNtZCgic3RhcnQgc2VydmVyIHJlcGxpY2EiKTxicj4KKzxicj4KK1JFUExJQ0FTRVRfQUREPGJy PgorUkVQTElDQVNFVF9SRU1PVkU8YnI+Cis8YnI+CituZXdfcmVwbGljYV9pZDxicj4KK2RlbGV0 ZWRfcmVwbGljYV9pZDxicj4KKzxicj4KK3Rlc3RfcnVuOmNtZCgic3dpdGNoIHJlcGxpY2EiKTxi cj4KKzxicj4KK3Rlc3RfcnVuOmNtZCgic2V0b3B0IGRlbGltaXRlciAnOyciKTxicj4KK2Z1bmN0 aW9uIG9uX2N0bF9zaHV0ZG93bihjdHgpPGJyPgorICAgIGlmIGN0eC50eXBlID09IGJveC5jdGwu ZXZlbnQuU0hVVERPV04gdGhlbjxicj4KKyAgICAgICAgcmVxdWlyZSgibG9nIikuaW5mbygidGVz dCByZXBsaWNhIHNodXRkb3duIik8YnI+CisgICAgZW5kPGJyPgorZW5kOzxicj4KKzxicj4KK2Z1 bmN0aW9uIG9uX2N0bF9lcnJvcihjdHgpPGJyPgorICAgIGVycm9yKCJ0cmlnZ2VyIGVycm9yIik8 YnI+CitlbmQ7PGJyPgorPGJyPgordGVzdF9ydW46Y21kKCJzZXRvcHQgZGVsaW1pdGVyICcnIik7 PGJyPgorPGJyPgorU1lTVEVNX1NQQUNFX1JFQ09WRVJZPGJyPgorTE9DQUxfUkVDT1ZFUlk8YnI+ CitSRUFEX09OTFk8YnI+CitSRUFEX1dSSVRFPGJyPgorUkVQTElDQVNFVF9BREQ8YnI+CitSRVBM SUNBU0VUX1JFTU9WRTxicj4KKzxicj4KK2JveC5jZmd7cmVhZF9vbmx5ID0gdHJ1ZX08YnI+Citm aWJlciA9IHJlcXVpcmUoImZpYmVyIik8YnI+Cit3aGlsZSBSRUFEX09OTFkgPT0gMCBkbyBmaWJl ci5zbGVlcCgwLjAwMSkgZW5kPGJyPgorUkVBRF9PTkxZPGJyPgorPGJyPgorYm94LmNmZ3tvbl9j dGxfZXZlbnQgPSBvbl9jdGxfZXJyb3J9PGJyPgorYm94LmNmZ3tyZWFkX29ubHkgPSBmYWxzZX08 YnI+Cit0ZXN0X3J1bjpncmVwX2xvZygncmVwbGljYScsICdjdGxfdHJpZ2dlciBlcnJvcicpPGJy PgorYm94LmNmZ3tvbl9jdGxfZXZlbnQgPSB7Ym94Lk5VTEwsIG9uX2N0bF9lcnJvcn19PGJyPgor Ym94LmNmZ3tvbl9jdGxfZXZlbnQgPSBvbl9jdGxfc2h1dGRvd259PGJyPgorPGJyPgordGVzdF9y dW46Y21kKCJyZXN0YXJ0IHNlcnZlciByZXBsaWNhIik8YnI+CistLSBUT0RPOiB0ZXN0IFNIVVRE T1dOLCB3aGVuIGl0IGlzIHBvc3NpYmxlIHRvIGdyZXAgbG9ncyBvZiBraWxsZWQgcmVwbGljYS48 YnI+CistLXRlc3RfcnVuOmdyZXBfbG9nKCdyZXBsaWNhJywgJ3Rlc3QgcmVwbGljYSBzaHV0ZG93 bicpPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPkl0IHNob3VsZCBiZSBkb25l PGJyPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFy Z2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMt aGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1Mjg5ODg2OTAwMDAw MDAwODYzX0JPRFkiPjxicj4KKzxicj4KKzxicj4KK3Rlc3RfcnVuOmNtZCgic3dpdGNoIG1hc3Rl ciIpPGJyPgorYm94LnNjaGVtYS51c2VyLnJldm9rZSgnZ3Vlc3QnLCAncmVwbGljYXRpb24nKTxi cj4KK18gPSBib3guc3BhY2UuX2NsdXN0ZXI6ZGVsZXRlezJ9PGJyPgorPGJyPgorU1lTVEVNX1NQ QUNFX1JFQ09WRVJZPGJyPgorTE9DQUxfUkVDT1ZFUlk8YnI+CitSRUFEX09OTFk8YnI+CitSRUFE X1dSSVRFPGJyPgorUkVQTElDQVNFVF9BREQ8YnI+CitSRVBMSUNBU0VUX1JFTU9WRTxicj4KKzxi cj4KK25ld19yZXBsaWNhX2lkPGJyPgorZGVsZXRlZF9yZXBsaWNhX2lkPGJyPgorPGJyPgorYm94 LmN0bC5vbl9jdGxfZXZlbnQobmlsLCBvbl9jdGxfbmV3KTxicj4KKzxicj4KKy0tIGNsZWFudXA8 YnI+Cit0ZXN0X3J1bjpjbWQoInN3aXRjaCBkZWZhdWx0Iik8YnI+Cit0ZXN0X3J1bjpjbWQoInN0 b3Agc2VydmVyIG1hc3RlciIpPGJyPgordGVzdF9ydW46Y21kKCJjbGVhbnVwIHNlcnZlciBtYXN0 ZXIiKTxicj4KK3Rlc3RfcnVuOmNtZCgic3RvcCBzZXJ2ZXIgcmVwbGljYSIpPGJyPgordGVzdF9y dW46Y21kKCJjbGVhbnVwIHNlcnZlciByZXBsaWNhIik8YnI+CmRpZmYgLS1naXQgYS90ZXN0L3Jl cGxpY2F0aW9uL3JlcGxpY2Ffb25jdGwubHVhIGIvdGVzdC9yZXBsaWNhdGlvbi9yZXBsaWNhX29u Y3RsLmx1YTxicj4KbmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+CmluZGV4IDAwMDAwMDAuLmQ2Y2U3 M2M8YnI+Ci0tLSAvZGV2L251bGw8YnI+CisrKyBiL3Rlc3QvcmVwbGljYXRpb24vcmVwbGljYV9v bmN0bC5sdWE8YnI+CkBAIC0wLDAgKzEsMzQgQEA8YnI+CisjIS91c3IvYmluL2VudiB0YXJhbnRv b2w8YnI+Cis8YnI+CitTWVNURU1fU1BBQ0VfUkVDT1ZFUlkgPSAwPGJyPgorTE9DQUxfUkVDT1ZF UlkgPSAwPGJyPgorUkVBRF9PTkxZID0gMDxicj4KK1JFQURfV1JJVEUgPSAwPGJyPgorUkVQTElD QVNFVF9BREQgPSB7fTxicj4KK1JFUExJQ0FTRVRfUkVNT1ZFID0ge308YnI+Cis8YnI+Citsb2Nh bCBmdW5jdGlvbiBvbmN0bChjdHgpPGJyPgorICAgIGlmIGN0eC50eXBlID09IGJveC5jdGwuZXZl bnQuU1lTVEVNX1NQQUNFX1JFQ09WRVJZIHRoZW48YnI+CisgICAgICAgIFNZU1RFTV9TUEFDRV9S RUNPVkVSWSA9IFNZU1RFTV9TUEFDRV9SRUNPVkVSWSArIDE8YnI+CisgICAgZWxzZWlmIGN0eC50 eXBlID09IGJveC5jdGwuZXZlbnQuTE9DQUxfUkVDT1ZFUlkgdGhlbjxicj4KKyAgICAgICAgTE9D QUxfUkVDT1ZFUlkgPSBMT0NBTF9SRUNPVkVSWSArIDE8YnI+CisgICAgZWxzZWlmIGN0eC50eXBl ID09IGJveC5jdGwuZXZlbnQuUkVBRF9PTkxZIHRoZW48YnI+CisgICAgICAgIFJFQURfT05MWSA9 IFJFQURfT05MWSArIDE8YnI+CisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQu UkVBRF9XUklURSB0aGVuPGJyPgorICAgICAgICBSRUFEX1dSSVRFID0gUkVBRF9XUklURSArIDE8 YnI+CisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVQTElDQVNFVF9BREQg dGhlbjxicj4KKyAgICAgICAgdGFibGUuaW5zZXJ0KFJFUExJQ0FTRVRfQURELCBjdHgucmVwbGlj YV9pZCk8YnI+CisgICAgZWxzZWlmIGN0eC50eXBlID09IGJveC5jdGwuZXZlbnQuUkVQTElDQVNF VF9SRU1PVkUgdGhlbjxicj4KKyAgICAgICAgdGFibGUuaW5zZXJ0KFJFUExJQ0FTRVRfUkVNT1ZF LCBjdHgucmVwbGljYV9pZCk8YnI+CisgICAgZW5kPGJyPgorZW5kPGJyPgorPGJyPgorYm94LmNm Zyh7PGJyPgorICAgIGxpc3RlbiAgICAgICAgICAgICAgPSBvcy5nZXRlbnYoIkxJU1RFTiIpLDxi cj4KKyAgICByZXBsaWNhdGlvbiAgICAgICAgID0gb3MuZ2V0ZW52KCJNQVNURVIiKSw8YnI+Cisg ICAgbWVtdHhfbWVtb3J5ICAgICAgICA9IDEwNzM3NDE4Miw8YnI+CisgICAgcmVwbGljYXRpb25f Y29ubmVjdF90aW1lb3V0ID0gMC41LDxicj4KKyAgICBvbl9jdGxfZXZlbnQgICAgICAgID0gb25j dGwsPGJyPgorfSk8YnI+Cis8YnI+CityZXF1aXJlKCdjb25zb2xlJykubGlzdGVuKG9zLmdldGVu dignQURNSU4nKSk8YnI+CmRpZmYgLS1naXQgYS90ZXN0L3JlcGxpY2F0aW9uL3N1aXRlLmNmZyBi L3Rlc3QvcmVwbGljYXRpb24vc3VpdGUuY2ZnPGJyPgppbmRleCA5NWU5NGU1Li4zNjVhODI1IDEw MDY0NDxicj4KLS0tIGEvdGVzdC9yZXBsaWNhdGlvbi9zdWl0ZS5jZmc8YnI+CisrKyBiL3Rlc3Qv cmVwbGljYXRpb24vc3VpdGUuY2ZnPGJyPgpAQCAtNiw2ICs2LDcgQEA8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyJ3YWxfb2ZmLnRlc3QubHVhIjoge30sPGJyPgombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsiaG90X3N0YW5kYnkudGVzdC5sdWEiOiB7fSw8YnI+CiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyJyZWJvb3RzdHJhcC50ZXN0Lmx1YSI6IHt9LDxicj4K KyAgICAib25jdGwudGVzdC5sdWEiOiB7fSw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyIqIjogezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Im1lbXR4IjogeyJlbmdpbmUiOiAibWVtdHgifSw8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyJ2aW55bCI6IHsiZW5n aW5lIjogInZpbnlsIn08YnI+Ci0tIDxicj4KMi43LjQ8YnI+PGJyPjxicj48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Cjxicj4KPGJyPkJlc3QgcmVnYXJkcyw8YnI+S29uc3Rh bnRpbiBCZWx5YXZza2l5PGJyPmsuYmVseWF2c2tpeUB0YXJhbnRvb2wub3JnPGJyPjwvQk9EWT48 L0hUTUw+Cg== ----ALT--5DKGXo0pUiSIFTotfLwSnMWQ6XK0GpZA1533037238--