From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: =?UTF-8?B?U2VyZ2V5IFBldHJlbmtv?= Subject: =?UTF-8?B?UmVbMl06IFtQQVRDSCB2Ml0gcmVwbGljYXRpb246IHJlbW92ZSBvbGQgc25h?= =?UTF-8?B?cHNob3QgZmlsZXMgbm90IG5lZWRlZCBieSByZXBsaWNhcw==?= MIME-Version: 1.0 Date: Thu, 28 Jun 2018 17:45:12 +0300 Reply-To: =?UTF-8?B?U2VyZ2V5IFBldHJlbmtv?= Message-ID: <1530197112.124405131@f490.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--T6hSXkNnqm4C3NtYjbZXNZXANHpH0ff51530197112" In-Reply-To: <20180628130026.e3t6k2phrziqnyz7@esperanza> References: <20180628120908.78984-1-sergepetrenko@tarantool.org> <20180628130026.e3t6k2phrziqnyz7@esperanza> To: =?UTF-8?B?VmxhZGltaXIgRGF2eWRvdg==?= Cc: tarantool-patches@freelists.org List-ID: ----ALT--T6hSXkNnqm4C3NtYjbZXNZXANHpH0ff51530197112 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Cj7Qp9C10YLQstC10YDQsywgMjgg0LjRjtC90Y8gMjAxOCwgMTY6MDAgKzAzOjAwINC+0YIgVmxh ZGltaXIgRGF2eWRvdiA8dmRhdnlkb3YuZGV2QGdtYWlsLmNvbT46Cj4KPk9uIFRodSwgSnVuIDI4 LCAyMDE4IGF0IDAzOjA5OjA4UE0gKzAzMDAsIFNlcmdlIFBldHJlbmtvIHdyb3RlOgo+PiBHYXJi YWdlIGNvbGxlY3Rpb24gZG9lc24ndCBkaXN0aW5ndWlzaCBjb25zdW1lcnMgd2hpY2ggbmVlZCBj aGVja3BvaW50Cj4+IGZpbGVzLCBzdWNoIGFzIGJhY2t1cCwgYW5kIHRoZSBvbmVzLCB3aG8gb25s eSBuZWVkIFdBTFMsIHN1Y2ggYXMKPj4gcmVwbGljYXMuIEEgZGlzY29ubmVjdGVkIHJlcGxpY2Eg d2lsbCAnaG9sZCcgYWxsIGNoZWNrcG9pbnQgZmlsZXMsIGNyZWF0ZWQKPj4gYWZ0ZXIgaXQgZ290 IHVuc3luY2hyb25pc2VkLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IG5lZWQgdGhlbSwgd2hpY2gg bWF5Cj4+IGxlYWQgdG8gZGlzayBzcGFjZSBzaG9ydGFnZS4gVG8gZml4IHRoaXMsIHdlIHN0b3Jl IGNvbnN1bWVyJ3MgdHlwZSwgYW5kCj4+IHRyZWF0IGNvbnN1bWVycyBkaWZmZXJlbnRseSBkdXJp bmcgZ2FyYmFnZSBjb2xsZWN0aW9uOiBub3cgb25seSB0aGUgb2xkCj4+IFdBTFMgYXJlIHN0b3Jl ZCBmb3IgcmVwbGljYXMsIGFuZCBvbGQgY2hlY2twb2ludHMgYXJlIHN0b3JlZCBmb3IgYmFja3Vw LAo+PiBpZiBhbnkuIEFsc28gY2hhbmdlZCB0aGUgdGVzdHMgdG8gY2hlY2sgdXBkYXRlZCBnYXJi YWdlIGNvbGxlY3Rpb24gY29ycmVjdGx5Lgo+PiAKPj4gQ2xvc2VzICMzNDQ0Cj4+IC0tLQo+PiAg aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvdHJlZS9zZXJnZXBldHJlbmtv L2doLTM0NDQtcmVtb3ZlLW9sZC1zaGFwc2hvdHMtZm9yLXJlcGxpY2FzCj4+ICBodHRwczovL2dp dGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvMzQ0NAo+Cj5BZnRlciBmaXhpbmcg eW91ciBjb2RlIGFjY29yZGluZyB0byByZXZpZXcgY29tbWVudHMsIHlvdSBzaG91bGQgYW1lbmQK PnlvdXIgb2xkIGNvbW1pdCwgbm90IG1ha2UgYSBuZXcgb25lICh0YWtlIGEgbG9vayBhdCBgZ2l0 IGNvbW1pdCAtLWFtZW5kYAo+YW5kIGBnaXQgcmV2ZXJ0IC1pYCksIHRoZW4gc2VuZCB0aGUgYW1l bmRlZCBwYXRjaCB0byB0aGUgbWFpbGluZyBsaXN0Lgo+U29tZXRpbWVzLCB3aGVuIHRoZSBjaGFu Z2Ugc2V0IGlzIGZhaXJseSBzbWFsbCAod2hpY2ggaXNuJ3QgdGhlIGNhc2UKPnRoaXMgdGltZSks IHlvdSBtaWdodCB3YW50IHRvIHNlbmQgYW4gaW5jcmVtZW50YWwgZGlmZiBpbiByZXBseSB0byB0 aGUKPmVtYWlsIHdpdGggcmV2aWV3IHJlbWFya3MsIGJ1dCB5b3Ugc2hvdWxkIGFtZW5kIHlvdXIg YnJhbmNoIGFueXdheS4KPlBsZWFzZSBkby4gQWxzbywgc2VlIGEgZmV3IG1pbm9yIGNvbW1lbnRz IGJlbG93LiAKU29ycnksIGFsbCBkb25lLgo+Cj4+IAo+PiBDaGFuZ2VzIGluIHYyOgo+PiAtIHBy ZWZpeGVkIHZhcmlhYmxlIG5hbWVzIHdpdGggcHJlZml4ICdjaGVja3BvaW50XycKPj4gICBpbnN0 ZWFkIG9mICdzbmFwXycsIHNvIHRoYXQgdGhlcmUgaXMgbm8KPj4gICBjb25mdXNpb24gd2l0aCBt ZW10eCBzbmFwc2hvdHMKPj4gLSBzYW1lIHdpdGggY2hhbmdpbmcgdmFyaWFibGUgbmFtZQo+PiAg IHhsb2dfb25seSB0byB3YWxfb25seQo+PiAtIHJld3JvdGUgZ2NfcnVuIHNvIHRoYXQgdGhlcmUg aXMgb25seSBhIHNpbmdsZQo+PiAgIGxvb3Agb3ZlciBjaGVja3BvaW50cywgYW5kIGFsc28gb25l IGV4Y2VzcyBvbGQKPj4gICBXQUwgaXMgcmVtb3ZlZCAoaXQgd2FzIHVubmVlZGVkLCBidXQga2Vw dCBkdWUKPj4gICB0byBhIG1pc3Rha2UpLiBOb3cgd2FsX2NvbGxlY3RfZ2FyYmFnZSBvcgo+PiAg IGVuZ2luZV9jb2xsZWN0X2dhcmJhZ2UgYXJlIGNhbGxlZCBvbmx5IGlmIHRoZXkKPj4gICBoYXZl IHdvcmsgdG8gZG8uCj4+IC0gZml4IHRlc3RzIHRvIGNvcnJlY3RseSBjaGVjayB0aGUgYW1vdW50 IG9mIHhsb2dzCj4+ICAga2VwdCBieSBnYXJiYWdlIGNvbGxlY3Rpb24KPj4gCj4+ICBzcmMvYm94 L2djLmMgICAgICAgICAgICAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPj4gIHNyYy9ib3gvZ2MuaCAgICAgICAgICAgICAgICAgfCAxMCArKy0t LQo+PiAgdGVzdC9yZXBsaWNhdGlvbi9nYy5yZXN1bHQgICB8IDI2ICsrKysrKysrKysrKy0KPj4g IHRlc3QvcmVwbGljYXRpb24vZ2MudGVzdC5sdWEgfCAxNCArKysrKystCj4+ICA0IGZpbGVzIGNo YW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdp dCBhL3NyYy9ib3gvZ2MuYyBiL3NyYy9ib3gvZ2MuYwo+PiBpbmRleCAyODhjYzcyMzYuLjA2ZDJm YmQzNSAxMDA2NDQKPj4gLS0tIGEvc3JjL2JveC9nYy5jCj4+ICsrKyBiL3NyYy9ib3gvZ2MuYwo+ PiBAQCAtMTYxLDEyICsxNjEsMTIgQEAgZ2NfZnJlZSh2b2lkKQo+PiAgCWxhdGNoX2Rlc3Ryb3ko JmdjLmxhdGNoKTsKPj4gIH0KPj4gCj4+IC0vKiogRmluZCB0aGUgY29uc3VtZXIgdGhhdCB1c2Vz IHRoZSBvbGRlc3Qgc25hcHNob3QgKi8KPj4gKy8qKiBGaW5kIHRoZSBjb25zdW1lciB0aGF0IHVz ZXMgdGhlIG9sZGVzdCBjaGVja3BvaW50ICovCj4KPkNvbW1lbnQtc3R5bGU6IGEgZG90IGF0IHRo ZSBlbmQgb2YgdGhlIHNlbnRlbmNlIGlzIG1pc3NpbmcuIApGaXhlZC4KPgo+PiAgc3RydWN0IGdj X2NvbnN1bWVyICoKPj4gLWdjX2ZpcnN0X3NuYXAoZ2NfdHJlZV90ICpjb25zdW1lcnMpCj4+ICtn Y190cmVlX2ZpcnN0X2NoZWNrcG9pbnQoZ2NfdHJlZV90ICpjb25zdW1lcnMpCj4+ICB7Cj4+ICAJ c3RydWN0IGdjX2NvbnN1bWVyICpjb25zdW1lciA9IGdjX3RyZWVfZmlyc3QoY29uc3VtZXJzKTsK Pj4gLQl3aGlsZSAoY29uc3VtZXIgIT0gTlVMTCAmJiBjb25zdW1lci0+eGxvZ19vbmx5KQo+PiAr CXdoaWxlIChjb25zdW1lciAhPSBOVUxMICYmIGNvbnN1bWVyLT53YWxfb25seSkKPj4gIAkJY29u c3VtZXIgPSBnY190cmVlX25leHQoY29uc3VtZXJzLCBjb25zdW1lcik7Cj4+ICAJcmV0dXJuIGNv bnN1bWVyOwo+PiAgfQo+PiBAQCAtMTc5LDE1ICsxNzksMTYgQEAgZ2NfcnVuKHZvaWQpCj4+IAo+ PiAgCS8qIExvb2sgdXAgdGhlIGNvbnN1bWVyIHRoYXQgdXNlcyB0aGUgb2xkZXN0IFdBTCAqLwo+ PiAgCXN0cnVjdCBnY19jb25zdW1lciAqbGVmdG1vc3QgPSBnY190cmVlX2ZpcnN0KCZnYy5jb25z dW1lcnMpOwo+PiAtCS8qIExvb2sgdXAgdGhlIGNvbnN1bWVyIHRoYXQgdXNlcyB0aGUgb2xkZXN0 IHNuYXBzaG90LiAqLwo+PiAtCXN0cnVjdCBnY19jb25zdW1lciAqbGVmdG1vc3Rfc25hcCA9IGdj X2ZpcnN0X3NuYXAoJmdjLmNvbnN1bWVycyk7Cj4+ICsJLyogTG9vayB1cCB0aGUgY29uc3VtZXIg dGhhdCB1c2VzIHRoZSBvbGRlc3QgY2hlY2twb2ludC4gKi8KPj4gKwlzdHJ1Y3QgZ2NfY29uc3Vt ZXIgKmxlZnRtb3N0X2NoZWNrcG9pbnQgPQo+PiArCSAgZ2NfdHJlZV9maXJzdF9jaGVja3BvaW50 KCZnYy5jb25zdW1lcnMpOwo+Cj5Db2Rpbmctc3R5bGU6IHdoZW4gY29udGludWluZyBhbiBleHBy ZXNzaW9uIHRvIHRoZSBuZXh0IGxpbmUsIGluZGVudCBpdAo+d2l0aCB0YWJzLCBwbGVhc2U6Cj4K PnN0cnVjdCBnY19jb25zdW1lciAqbGVmdG1vc3RfY2hlY2twb2ludCA9Cj5nY190cmVlX2ZpcnN0 X2NoZWNrcG9pbnQoJmdjLmNvbnN1bWVycykuIApGaXhlZC4KPgo+PiAKPj4gIAkvKgo+PiAgCSAq IEZpbmQgdGhlIG9sZGVzdCBjaGVja3BvaW50IHRoYXQgbXVzdCBiZSBwcmVzZXJ2ZWQuCj4+IC0J ICogV2UgaGF2ZSB0byBtYWludGFpbiBAY2hlY2twb2ludF9jb3VudCBvbGRlc3Qgc25hcHNob3Rz LAo+PiAtCSAqIHBsdXMgd2UgY2FuJ3QgcmVtb3ZlIHNuYXBzaG90cyB0aGF0IGFyZSBzdGlsbCBp biB1c2UuCj4+ICsJICogV2UgaGF2ZSB0byBtYWludGFpbiBAY2hlY2twb2ludF9jb3VudCBvbGRl c3QgY2hlY2twb2ludHMsCj4+ICsJICogcGx1cyB3ZSBjYW4ndCByZW1vdmUgY2hlY2twb2ludHMg dGhhdCBhcmUgc3RpbGwgaW4gdXNlLgo+PiAgCSAqLwo+PiAtCWludDY0X3QgZ2NfeGxvZ19zaWdu YXR1cmUgPSAtMTsKPj4gKwlpbnQ2NF90IGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlID0gLTE7Cj4+ IAo+PiAgCXN0cnVjdCBjaGVja3BvaW50X2l0ZXJhdG9yIGNoZWNrcG9pbnRzOwo+PiAgCWNoZWNr cG9pbnRfaXRlcmF0b3JfaW5pdCgmY2hlY2twb2ludHMpOwo+PiBAQCAtMTk2LDM3ICsxOTcsMjAg QEAgZ2NfcnVuKHZvaWQpCj4+ICAJd2hpbGUgKCh2Y2xvY2sgPSBjaGVja3BvaW50X2l0ZXJhdG9y X3ByZXYoJmNoZWNrcG9pbnRzKSkgIT0gTlVMTCkgewo+PiAgCQlpZiAoLS1jaGVja3BvaW50X2Nv dW50ID4gMCkKPj4gIAkJCWNvbnRpbnVlOwo+PiAtCQlpZiAobGVmdG1vc3QgIT0gTlVMTCAmJgo+ PiAtCQkgICAgbGVmdG1vc3QtPnNpZ25hdHVyZSA8IHZjbG9ja19zdW0odmNsb2NrKSkKPj4gKwkJ aWYgKGxlZnRtb3N0X2NoZWNrcG9pbnQgIT0gTlVMTCAmJgo+PiArCQkgICAgbGVmdG1vc3RfY2hl Y2twb2ludC0+c2lnbmF0dXJlIDwgdmNsb2NrX3N1bSh2Y2xvY2spKQo+PiAgCQkJY29udGludWU7 Cj4+IC0JCWdjX3hsb2dfc2lnbmF0dXJlID0gdmNsb2NrX3N1bSh2Y2xvY2spOwo+PiArCQlnY19j aGVja3BvaW50X3NpZ25hdHVyZSA9IHZjbG9ja19zdW0odmNsb2NrKTsKPj4gIAkJYnJlYWs7Cj4+ ICAJfQo+PiAKPj4gLQlpbnQ2NF90IGdjX3NuYXBfc2lnbmF0dXJlID0gLTE7Cj4+IC0JY2hlY2tw b2ludF9jb3VudCA9IGdjLmNoZWNrcG9pbnRfY291bnQ7Cj4+ICsJaW50NjRfdCBnY193YWxfc2ln bmF0dXJlID0gTUlOKGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlLCBsZWZ0bW9zdCAhPSBOVUxMID8K Pj4gKwkgIGxlZnRtb3N0LT5zaWduYXR1cmUgOiBJTlQ2NF9NQVgpOwo+Cj5EaXR0by4gCkZpeGVk Lgo+Cj4+IAo+PiAtCWNoZWNrcG9pbnRfaXRlcmF0b3JfaW5pdCgmY2hlY2twb2ludHMpOwo+PiAt Cj4+IC0Jd2hpbGUgKCh2Y2xvY2sgPSBjaGVja3BvaW50X2l0ZXJhdG9yX3ByZXYoJmNoZWNrcG9p bnRzKSkgIT0gTlVMTCkgewo+PiAtCQlpZiAoLS1jaGVja3BvaW50X2NvdW50ID4gMCkKPj4gLQkJ CWNvbnRpbnVlOwo+PiAtCQlpZiAobGVmdG1vc3Rfc25hcCAhPSBOVUxMICYmCj4+IC0JCSAgICBs ZWZ0bW9zdF9zbmFwLT5zaWduYXR1cmUgPCB2Y2xvY2tfc3VtKHZjbG9jaykpCj4+IC0JCQljb250 aW51ZTsKPj4gLQkJZ2Nfc25hcF9zaWduYXR1cmUgPSB2Y2xvY2tfc3VtKHZjbG9jayk7Cj4+IC0J CWJyZWFrOwo+PiAtCX0KPj4gLQo+PiAtCWlmIChnY19zbmFwX3NpZ25hdHVyZSA8PSBnYy5zbmFw X3NpZ25hdHVyZSAmJgo+PiAtCSAgICBnY194bG9nX3NpZ25hdHVyZSA8PSBnYy54bG9nX3NpZ25h dHVyZSkKPj4gKwlpZiAoZ2NfY2hlY2twb2ludF9zaWduYXR1cmUgPD0gZ2MuY2hlY2twb2ludF9z aWduYXR1cmUgJiYKPj4gKwkgICAgZ2Nfd2FsX3NpZ25hdHVyZSA8PSBnYy53YWxfc2lnbmF0dXJl KQo+PiAgCQlyZXR1cm47IC8qIG5vdGhpbmcgdG8gZG8gKi8KPj4gCj4+IC0JaWYgKGdjX3NuYXBf c2lnbmF0dXJlID4gZ2Muc25hcF9zaWduYXR1cmUpCj4+IC0JCWdjLnNuYXBfc2lnbmF0dXJlID0g Z2Nfc25hcF9zaWduYXR1cmU7Cj4+IC0JaWYgKGdjX3hsb2dfc2lnbmF0dXJlID4gZ2MueGxvZ19z aWduYXR1cmUpCj4+IC0JCWdjLnhsb2dfc2lnbmF0dXJlID0gZ2NfeGxvZ19zaWduYXR1cmU7Cj4+ IC0KPj4gIAkvKgo+PiAgCSAqIEVuZ2luZSBjYWxsYmFja3MgbWF5IHNsZWVwLCBiZWNhdXNlIHRo ZXkgdXNlIGNvaW8gZm9yCj4+ICAJICogcmVtb3ZpbmcgZmlsZXMuIE1ha2Ugc3VyZSB3ZSB3b24n dCB0cnkgdG8gcmVtb3ZlIHRoZQo+PiBAQCAtMjM0LDYgKzIxOCw3IEBAIGdjX3J1bih2b2lkKQo+ PiAgCSAqIGV4ZWN1dGlvbnMuCj4+ICAJICovCj4+ICAJbGF0Y2hfbG9jaygmZ2MubGF0Y2gpOwo+ PiArCj4+ICAJLyoKPj4gIAkgKiBSdW4gZ2FyYmFnZSBjb2xsZWN0aW9uLgo+PiAgCSAqCj4KPlBs ZWFzZSB0cnkgdG8gYXZvaWQgc3RyYXkgaHVua3MsIGxpa2UgdGhpcyBvbmUsIHdoZW4gcHJlcGFy aW5nIGEgcGF0Y2guCj5UaGV5IGNvbXBsaWNhdGUgcmV2aWV3LiAKV3ltPwo+Cj4+IEBAIC0yNDEs OCArMjI2LDE3IEBAIGdjX3J1bih2b2lkKQo+PiAgCSAqIGNvbGxlY3Rpb24gZm9yIG1lbXR4IHNu YXBzaG90cyBmaXJzdCBhbmQgYWJvcnQgaWYgaXQKPj4gIAkgKiBmYWlscyAtIHNlZSBjb21tZW50 IHRvIG1lbXR4X2VuZ2luZV9jb2xsZWN0X2dhcmJhZ2UoKS4KPj4gIAkgKi8KPj4gLQlpZiAoZW5n aW5lX2NvbGxlY3RfZ2FyYmFnZShnY19zbmFwX3NpZ25hdHVyZSkgPT0gMCkKPj4gLQkJd2FsX2Nv bGxlY3RfZ2FyYmFnZShnY194bG9nX3NpZ25hdHVyZSk7Cj4+ICsJaW50IHJjID0gMDsKPj4gKwo+ PiArCWlmIChnY19jaGVja3BvaW50X3NpZ25hdHVyZSA+IGdjLmNoZWNrcG9pbnRfc2lnbmF0dXJl KSB7Cj4+ICsJCWdjLmNoZWNrcG9pbnRfc2lnbmF0dXJlID0gZ2NfY2hlY2twb2ludF9zaWduYXR1 cmU7Cj4+ICsJCXJjID0gZW5naW5lX2NvbGxlY3RfZ2FyYmFnZShnY19jaGVja3BvaW50X3NpZ25h dHVyZSk7Cj4+ICsJfQo+PiArCWlmIChnY193YWxfc2lnbmF0dXJlID4gZ2Mud2FsX3NpZ25hdHVy ZSkgewo+PiArCQlnYy53YWxfc2lnbmF0dXJlID0gZ2Nfd2FsX3NpZ25hdHVyZTsKPj4gKwkJaWYg KHJjID09IDApCj4+ICsJCQl3YWxfY29sbGVjdF9nYXJiYWdlKGdjX3dhbF9zaWduYXR1cmUpOwo+ PiArCX0KPgo+SSBndWVzcywgaW4gY2FzZSBlbmdpbmVfY29sbGVjdF9nYXJiYWdlKCkgZmFpbHMg YW5kIHdlIGRvbid0IGNhbGwKPndhbF9jb2xsZWN0X2dhcmJhZ2UoKSwgd2Ugc2hvdWxkbid0IGFk dmFuY2UgZ2Mud2FsX3NpZ25hdHVyZToKPgo+aWYgKHJjID09IDAgJiYgZ2Nfd2FsX3NpZ25hdHVy ZSA+IGdjLndhbF9zaWduYXR1cmUpIHsKPmdjLndhbF9zaWduYXR1cmUgPSBnY193YWxfc2lnbmF0 dXJlOwo+d2FsX2NvbGxlY3RfZ2FyYmFnZShnY193YWxfc2lnbmF0dXJlKTsKPn0KVGhhdCdzIGhv dyBpdCB3YXMgZG9uZSBwcmV2aW91c2x5LiBGaXJzdCB1cGRhdGUgZ2Muc2lnbmF0dXJlLCBhbmQg b25seSB0aGVuCnRyeSB0byBydW4gZW5jZ2luZV9jb2xsZWN0X2dhcmJhZ2UoKSBhbmQgd2FsX2Nv bGxlY3RfZ2FyYmFnZSgpLCBzbyBJIGRlY2lkZWQKdG8gbGVhdmUgaXQgYXMgaXMuCgotLS0Kc3Jj L2JveC9nYy5jIHwgMTAgKysrKystLS0tLQoxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQpkaWZmIC0tZ2l0IGEvc3JjL2JveC9nYy5jIGIvc3JjL2JveC9nYy5j CmluZGV4IDA2ZDJmYmQzNS4uNGQ4ZjMyMWZmIDEwMDY0NAotLS0gYS9zcmMvYm94L2djLmMKKysr IGIvc3JjL2JveC9nYy5jCkBAIC0xNjEsNyArMTYxLDcgQEAgZ2NfZnJlZSh2b2lkKQpsYXRjaF9k ZXN0cm95KCZnYy5sYXRjaCk7Cn0KCi0vKiogRmluZCB0aGUgY29uc3VtZXIgdGhhdCB1c2VzIHRo ZSBvbGRlc3QgY2hlY2twb2ludCAqLworLyoqIEZpbmQgdGhlIGNvbnN1bWVyIHRoYXQgdXNlcyB0 aGUgb2xkZXN0IGNoZWNrcG9pbnQuICovCnN0cnVjdCBnY19jb25zdW1lciAqCmdjX3RyZWVfZmly c3RfY2hlY2twb2ludChnY190cmVlX3QgKmNvbnN1bWVycykKewpAQCAtMTgxLDcgKzE4MSw3IEBA IGdjX3J1bih2b2lkKQpzdHJ1Y3QgZ2NfY29uc3VtZXIgKmxlZnRtb3N0ID0gZ2NfdHJlZV9maXJz dCgmZ2MuY29uc3VtZXJzKTsKLyogTG9vayB1cCB0aGUgY29uc3VtZXIgdGhhdCB1c2VzIHRoZSBv bGRlc3QgY2hlY2twb2ludC4gKi8Kc3RydWN0IGdjX2NvbnN1bWVyICpsZWZ0bW9zdF9jaGVja3Bv aW50ID0KLSBnY190cmVlX2ZpcnN0X2NoZWNrcG9pbnQoJmdjLmNvbnN1bWVycyk7CisgZ2NfdHJl ZV9maXJzdF9jaGVja3BvaW50KCZnYy5jb25zdW1lcnMpOwoKLyoKKiBGaW5kIHRoZSBvbGRlc3Qg Y2hlY2twb2ludCB0aGF0IG11c3QgYmUgcHJlc2VydmVkLgpAQCAtMTk4LDE3ICsxOTgsMTcgQEAg Z2NfcnVuKHZvaWQpCmlmICgtLWNoZWNrcG9pbnRfY291bnQgPiAwKQpjb250aW51ZTsKaWYgKGxl ZnRtb3N0X2NoZWNrcG9pbnQgIT0gTlVMTCAmJgotIGxlZnRtb3N0X2NoZWNrcG9pbnQtPnNpZ25h dHVyZSA8IHZjbG9ja19zdW0odmNsb2NrKSkKKyBsZWZ0bW9zdF9jaGVja3BvaW50LT5zaWduYXR1 cmUgPCB2Y2xvY2tfc3VtKHZjbG9jaykpCmNvbnRpbnVlOwpnY19jaGVja3BvaW50X3NpZ25hdHVy ZSA9IHZjbG9ja19zdW0odmNsb2NrKTsKYnJlYWs7Cn0KCmludDY0X3QgZ2Nfd2FsX3NpZ25hdHVy ZSA9IE1JTihnY19jaGVja3BvaW50X3NpZ25hdHVyZSwgbGVmdG1vc3QgIT0gTlVMTCA/Ci0gbGVm dG1vc3QtPnNpZ25hdHVyZSA6IElOVDY0X01BWCk7CisgbGVmdG1vc3QtPnNpZ25hdHVyZSA6IElO VDY0X01BWCk7CgppZiAoZ2NfY2hlY2twb2ludF9zaWduYXR1cmUgPD0gZ2MuY2hlY2twb2ludF9z aWduYXR1cmUgJiYKLSBnY193YWxfc2lnbmF0dXJlIDw9IGdjLndhbF9zaWduYXR1cmUpCisgZ2Nf d2FsX3NpZ25hdHVyZSA8PSBnYy53YWxfc2lnbmF0dXJlKQpyZXR1cm47IC8qIG5vdGhpbmcgdG8g ZG8gKi8KCi8qCi0tIAoyLjE1LjIgKEFwcGxlIEdpdC0xMDEuMSkKCi0tIApCZXN0IHJlZ2FyZHMs ClNlcmdleSBQZXRyZW5rbwo= ----ALT--T6hSXkNnqm4C3NtYjbZXNZXANHpH0ff51530197112 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlk ICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCn0LXRgtCy0LXR gNCzLCAyOCDQuNGO0L3RjyAyMDE4LCAxNjowMCArMDM6MDAg0L7RgiBWbGFkaW1pciBEYXZ5ZG92 ICZsdDt2ZGF2eWRvdi5kZXZAZ21haWwuY29tJmd0Ozo8YnI+PGJyPjxkaXYgaWQ9IiI+PGRpdiBj bGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1MzAx OTA4MjkwMDAwMDAwNDc3X0JPRFkiPk9uIFRodSwgSnVuIDI4LCAyMDE4IGF0IDAzOjA5OjA4UE0g KzAzMDAsIFNlcmdlIFBldHJlbmtvIHdyb3RlOjxicj4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmd0OyBHYXJiYWdlIGNvbGxlY3Rpb24gZG9lc24ndCBkaXN0aW5ndWlzaCBjb25z dW1lcnMgd2hpY2ggbmVlZCBjaGVja3BvaW50PGJyPgomZ3Q7IGZpbGVzLCBzdWNoIGFzIGJhY2t1 cCwgYW5kIHRoZSBvbmVzLCB3aG8gb25seSBuZWVkIFdBTFMsIHN1Y2ggYXM8YnI+CiZndDsgcmVw bGljYXMuIEEgZGlzY29ubmVjdGVkIHJlcGxpY2Egd2lsbCAnaG9sZCcgYWxsIGNoZWNrcG9pbnQg ZmlsZXMsIGNyZWF0ZWQ8YnI+CiZndDsgYWZ0ZXIgaXQgZ290IHVuc3luY2hyb25pc2VkLCBldmVu IHRob3VnaCBpdCBkb2Vzbid0IG5lZWQgdGhlbSwgd2hpY2ggbWF5PGJyPgomZ3Q7IGxlYWQgdG8g ZGlzayBzcGFjZSBzaG9ydGFnZS4gVG8gZml4IHRoaXMsIHdlIHN0b3JlIGNvbnN1bWVyJ3MgdHlw ZSwgYW5kPGJyPgomZ3Q7IHRyZWF0IGNvbnN1bWVycyBkaWZmZXJlbnRseSBkdXJpbmcgZ2FyYmFn ZSBjb2xsZWN0aW9uOiBub3cgb25seSB0aGUgb2xkPGJyPgomZ3Q7IFdBTFMgYXJlIHN0b3JlZCBm b3IgcmVwbGljYXMsIGFuZCBvbGQgY2hlY2twb2ludHMgYXJlIHN0b3JlZCBmb3IgYmFja3VwLDxi cj4KJmd0OyBpZiBhbnkuIEFsc28gY2hhbmdlZCB0aGUgdGVzdHMgdG8gY2hlY2sgdXBkYXRlZCBn YXJiYWdlIGNvbGxlY3Rpb24gY29ycmVjdGx5Ljxicj4KJmd0OyA8YnI+CiZndDsgQ2xvc2VzICMz NDQ0PGJyPgomZ3Q7IC0tLTxicj4KJmd0OyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC90cmVlL3NlcmdlcGV0cmVua28vZ2gtMzQ0NC1yZW1vdmUtb2xkLXNo YXBzaG90cy1mb3ItcmVwbGljYXMiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20v dGFyYW50b29sL3RhcmFudG9vbC90cmVlL3NlcmdlcGV0cmVua28vZ2gtMzQ0NC1yZW1vdmUtb2xk LXNoYXBzaG90cy1mb3ItcmVwbGljYXM8L2E+PGJyPgomZ3Q7IDxhIGhyZWY9Imh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8zNDQ0IiB0YXJnZXQ9Il9ibGFuayI+ aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzM0NDQ8L2E+PGJy Pjxicj4KQWZ0ZXIgZml4aW5nIHlvdXIgY29kZSBhY2NvcmRpbmcgdG8gcmV2aWV3IGNvbW1lbnRz LCB5b3Ugc2hvdWxkIGFtZW5kPGJyPgp5b3VyIG9sZCBjb21taXQsIG5vdCBtYWtlIGEgbmV3IG9u ZSAodGFrZSBhIGxvb2sgYXQgYGdpdCBjb21taXQgLS1hbWVuZGA8YnI+CmFuZCBgZ2l0IHJldmVy dCAtaWApLCB0aGVuIHNlbmQgdGhlIGFtZW5kZWQgcGF0Y2ggdG8gdGhlIG1haWxpbmcgbGlzdC48 YnI+ClNvbWV0aW1lcywgd2hlbiB0aGUgY2hhbmdlIHNldCBpcyBmYWlybHkgc21hbGwgKHdoaWNo IGlzbid0IHRoZSBjYXNlPGJyPgp0aGlzIHRpbWUpLCB5b3UgbWlnaHQgd2FudCB0byBzZW5kIGFu IGluY3JlbWVudGFsIGRpZmYgaW4gcmVwbHkgdG8gdGhlPGJyPgplbWFpbCB3aXRoIHJldmlldyBy ZW1hcmtzLCBidXQgeW91IHNob3VsZCBhbWVuZCB5b3VyIGJyYW5jaCBhbnl3YXkuPGJyPgpQbGVh c2UgZG8uIEFsc28sIHNlZSBhIGZldyBtaW5vciBjb21tZW50cyBiZWxvdy48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+U29ycnksIGFsbCBkb25lLjxicj48YmxvY2txdW90ZSBz dHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5n OjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNn LW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTMwMTkwODI5MDAwMDAwMDQ3N19CT0RZIj48YnI+ CiZndDsgPGJyPgomZ3Q7IENoYW5nZXMgaW4gdjI6PGJyPgomZ3Q7IC0gcHJlZml4ZWQgdmFyaWFi bGUgbmFtZXMgd2l0aCBwcmVmaXggJ2NoZWNrcG9pbnRfJzxicj4KJmd0OyAgIGluc3RlYWQgb2Yg J3NuYXBfJywgc28gdGhhdCB0aGVyZSBpcyBubzxicj4KJmd0OyAgIGNvbmZ1c2lvbiB3aXRoIG1l bXR4IHNuYXBzaG90czxicj4KJmd0OyAtIHNhbWUgd2l0aCBjaGFuZ2luZyB2YXJpYWJsZSBuYW1l PGJyPgomZ3Q7ICAgeGxvZ19vbmx5IHRvIHdhbF9vbmx5PGJyPgomZ3Q7IC0gcmV3cm90ZSBnY19y dW4gc28gdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlPGJyPgomZ3Q7ICAgbG9vcCBvdmVyIGNo ZWNrcG9pbnRzLCBhbmQgYWxzbyBvbmUgZXhjZXNzIG9sZDxicj4KJmd0OyAgIFdBTCBpcyByZW1v dmVkIChpdCB3YXMgdW5uZWVkZWQsIGJ1dCBrZXB0IGR1ZTxicj4KJmd0OyAgIHRvIGEgbWlzdGFr ZSkuIE5vdyB3YWxfY29sbGVjdF9nYXJiYWdlIG9yPGJyPgomZ3Q7ICAgZW5naW5lX2NvbGxlY3Rf Z2FyYmFnZSBhcmUgY2FsbGVkIG9ubHkgaWYgdGhleTxicj4KJmd0OyAgIGhhdmUgd29yayB0byBk by48YnI+CiZndDsgLSBmaXggdGVzdHMgdG8gY29ycmVjdGx5IGNoZWNrIHRoZSBhbW91bnQgb2Yg eGxvZ3M8YnI+CiZndDsgICBrZXB0IGJ5IGdhcmJhZ2UgY29sbGVjdGlvbjxicj4KJmd0OyA8YnI+ CiZndDsgIHNyYy9ib3gvZ2MuYyAgICAgICAgICAgICAgICAgfCA5MCArKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KJmd0OyAgc3JjL2JveC9nYy5oICAgICAg ICAgICAgICAgICB8IDEwICsrLS0tPGJyPgomZ3Q7ICB0ZXN0L3JlcGxpY2F0aW9uL2djLnJlc3Vs dCAgIHwgMjYgKysrKysrKysrKysrLTxicj4KJmd0OyAgdGVzdC9yZXBsaWNhdGlvbi9nYy50ZXN0 Lmx1YSB8IDE0ICsrKysrKy08YnI+CiZndDsgIDQgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9u cygrKSwgNjAgZGVsZXRpb25zKC0pPGJyPgomZ3Q7IDxicj4KJmd0OyBkaWZmIC0tZ2l0IGEvc3Jj L2JveC9nYy5jIGIvc3JjL2JveC9nYy5jPGJyPgomZ3Q7IGluZGV4IDI4OGNjNzIzNi4uMDZkMmZi ZDM1IDEwMDY0NDxicj4KJmd0OyAtLS0gYS9zcmMvYm94L2djLmM8YnI+CiZndDsgKysrIGIvc3Jj L2JveC9nYy5jPGJyPgomZ3Q7IEBAIC0xNjEsMTIgKzE2MSwxMiBAQCBnY19mcmVlKHZvaWQpPGJy PgomZ3Q7ICAJbGF0Y2hfZGVzdHJveSgmYW1wO2djLmxhdGNoKTs8YnI+CiZndDsgIH08YnI+CiZn dDsgIDxicj4KJmd0OyAtLyoqIEZpbmQgdGhlIGNvbnN1bWVyIHRoYXQgdXNlcyB0aGUgb2xkZXN0 IHNuYXBzaG90ICovPGJyPgomZ3Q7ICsvKiogRmluZCB0aGUgY29uc3VtZXIgdGhhdCB1c2VzIHRo ZSBvbGRlc3QgY2hlY2twb2ludCAqLzxicj48YnI+CkNvbW1lbnQtc3R5bGU6IGEgZG90IGF0IHRo ZSBlbmQgb2YgdGhlIHNlbnRlbmNlIGlzIG1pc3NpbmcuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ PC9ibG9ja3F1b3RlPkZpeGVkLjxicj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4 IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlk PSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJz dHlsZV8xNTMwMTkwODI5MDAwMDAwMDQ3N19CT0RZIj48YnI+CiZndDsgIHN0cnVjdCBnY19jb25z dW1lciAqPGJyPgomZ3Q7IC1nY19maXJzdF9zbmFwKGdjX3RyZWVfdCAqY29uc3VtZXJzKTxicj4K Jmd0OyArZ2NfdHJlZV9maXJzdF9jaGVja3BvaW50KGdjX3RyZWVfdCAqY29uc3VtZXJzKTxicj4K Jmd0OyAgezxicj4KJmd0OyAgCXN0cnVjdCBnY19jb25zdW1lciAqY29uc3VtZXIgPSBnY190cmVl X2ZpcnN0KGNvbnN1bWVycyk7PGJyPgomZ3Q7IC0Jd2hpbGUgKGNvbnN1bWVyICE9IE5VTEwgJmFt cDsmYW1wOyBjb25zdW1lci0mZ3Q7eGxvZ19vbmx5KTxicj4KJmd0OyArCXdoaWxlIChjb25zdW1l ciAhPSBOVUxMICZhbXA7JmFtcDsgY29uc3VtZXItJmd0O3dhbF9vbmx5KTxicj4KJmd0OyAgCQlj b25zdW1lciA9IGdjX3RyZWVfbmV4dChjb25zdW1lcnMsIGNvbnN1bWVyKTs8YnI+CiZndDsgIAly ZXR1cm4gY29uc3VtZXI7PGJyPgomZ3Q7ICB9PGJyPgomZ3Q7IEBAIC0xNzksMTUgKzE3OSwxNiBA QCBnY19ydW4odm9pZCk8YnI+CiZndDsgIDxicj4KJmd0OyAgCS8qIExvb2sgdXAgdGhlIGNvbnN1 bWVyIHRoYXQgdXNlcyB0aGUgb2xkZXN0IFdBTCAqLzxicj4KJmd0OyAgCXN0cnVjdCBnY19jb25z dW1lciAqbGVmdG1vc3QgPSBnY190cmVlX2ZpcnN0KCZhbXA7Z2MuY29uc3VtZXJzKTs8YnI+CiZn dDsgLQkvKiBMb29rIHVwIHRoZSBjb25zdW1lciB0aGF0IHVzZXMgdGhlIG9sZGVzdCBzbmFwc2hv dC4gKi88YnI+CiZndDsgLQlzdHJ1Y3QgZ2NfY29uc3VtZXIgKmxlZnRtb3N0X3NuYXAgPSBnY19m aXJzdF9zbmFwKCZhbXA7Z2MuY29uc3VtZXJzKTs8YnI+CiZndDsgKwkvKiBMb29rIHVwIHRoZSBj b25zdW1lciB0aGF0IHVzZXMgdGhlIG9sZGVzdCBjaGVja3BvaW50LiAqLzxicj4KJmd0OyArCXN0 cnVjdCBnY19jb25zdW1lciAqbGVmdG1vc3RfY2hlY2twb2ludCA9PGJyPgomZ3Q7ICsJICBnY190 cmVlX2ZpcnN0X2NoZWNrcG9pbnQoJmFtcDtnYy5jb25zdW1lcnMpOzxicj48YnI+CkNvZGluZy1z dHlsZTogd2hlbiBjb250aW51aW5nIGFuIGV4cHJlc3Npb24gdG8gdGhlIG5leHQgbGluZSwgaW5k ZW50IGl0PGJyPgp3aXRoIHRhYnMsIHBsZWFzZTo8YnI+PGJyPgoJc3RydWN0IGdjX2NvbnN1bWVy ICpsZWZ0bW9zdF9jaGVja3BvaW50ID08YnI+CgkJZ2NfdHJlZV9maXJzdF9jaGVja3BvaW50KCZh bXA7Z2MuY29uc3VtZXJzKS48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Rml4 ZWQuPGJyPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsg bWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0i anMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1MzAxOTA4Mjkw MDAwMDAwNDc3X0JPRFkiPjxicj4KJmd0OyAgPGJyPgomZ3Q7ICAJLyo8YnI+CiZndDsgIAkgKiBG aW5kIHRoZSBvbGRlc3QgY2hlY2twb2ludCB0aGF0IG11c3QgYmUgcHJlc2VydmVkLjxicj4KJmd0 OyAtCSAqIFdlIGhhdmUgdG8gbWFpbnRhaW4gQGNoZWNrcG9pbnRfY291bnQgb2xkZXN0IHNuYXBz aG90cyw8YnI+CiZndDsgLQkgKiBwbHVzIHdlIGNhbid0IHJlbW92ZSBzbmFwc2hvdHMgdGhhdCBh cmUgc3RpbGwgaW4gdXNlLjxicj4KJmd0OyArCSAqIFdlIGhhdmUgdG8gbWFpbnRhaW4gQGNoZWNr cG9pbnRfY291bnQgb2xkZXN0IGNoZWNrcG9pbnRzLDxicj4KJmd0OyArCSAqIHBsdXMgd2UgY2Fu J3QgcmVtb3ZlIGNoZWNrcG9pbnRzIHRoYXQgYXJlIHN0aWxsIGluIHVzZS48YnI+CiZndDsgIAkg Ki88YnI+CiZndDsgLQlpbnQ2NF90IGdjX3hsb2dfc2lnbmF0dXJlID0gLTE7PGJyPgomZ3Q7ICsJ aW50NjRfdCBnY19jaGVja3BvaW50X3NpZ25hdHVyZSA9IC0xOzxicj4KJmd0OyAgPGJyPgomZ3Q7 ICAJc3RydWN0IGNoZWNrcG9pbnRfaXRlcmF0b3IgY2hlY2twb2ludHM7PGJyPgomZ3Q7ICAJY2hl Y2twb2ludF9pdGVyYXRvcl9pbml0KCZhbXA7Y2hlY2twb2ludHMpOzxicj4KJmd0OyBAQCAtMTk2 LDM3ICsxOTcsMjAgQEAgZ2NfcnVuKHZvaWQpPGJyPgomZ3Q7ICAJd2hpbGUgKCh2Y2xvY2sgPSBj aGVja3BvaW50X2l0ZXJhdG9yX3ByZXYoJmFtcDtjaGVja3BvaW50cykpICE9IE5VTEwpIHs8YnI+ CiZndDsgIAkJaWYgKC0tY2hlY2twb2ludF9jb3VudCAmZ3Q7IDApPGJyPgomZ3Q7ICAJCQljb250 aW51ZTs8YnI+CiZndDsgLQkJaWYgKGxlZnRtb3N0ICE9IE5VTEwgJmFtcDsmYW1wOzxicj4KJmd0 OyAtCQkgICAgbGVmdG1vc3QtJmd0O3NpZ25hdHVyZSAmbHQ7IHZjbG9ja19zdW0odmNsb2NrKSk8 YnI+CiZndDsgKwkJaWYgKGxlZnRtb3N0X2NoZWNrcG9pbnQgIT0gTlVMTCAmYW1wOyZhbXA7PGJy PgomZ3Q7ICsJCSAgICBsZWZ0bW9zdF9jaGVja3BvaW50LSZndDtzaWduYXR1cmUgJmx0OyB2Y2xv Y2tfc3VtKHZjbG9jaykpPGJyPgomZ3Q7ICAJCQljb250aW51ZTs8YnI+CiZndDsgLQkJZ2NfeGxv Z19zaWduYXR1cmUgPSB2Y2xvY2tfc3VtKHZjbG9jayk7PGJyPgomZ3Q7ICsJCWdjX2NoZWNrcG9p bnRfc2lnbmF0dXJlID0gdmNsb2NrX3N1bSh2Y2xvY2spOzxicj4KJmd0OyAgCQlicmVhazs8YnI+ CiZndDsgIAl9PGJyPgomZ3Q7ICA8YnI+CiZndDsgLQlpbnQ2NF90IGdjX3NuYXBfc2lnbmF0dXJl ID0gLTE7PGJyPgomZ3Q7IC0JY2hlY2twb2ludF9jb3VudCA9IGdjLmNoZWNrcG9pbnRfY291bnQ7 PGJyPgomZ3Q7ICsJaW50NjRfdCBnY193YWxfc2lnbmF0dXJlID0gTUlOKGdjX2NoZWNrcG9pbnRf c2lnbmF0dXJlLCBsZWZ0bW9zdCAhPSBOVUxMID88YnI+CiZndDsgKwkgIGxlZnRtb3N0LSZndDtz aWduYXR1cmUgOiBJTlQ2NF9NQVgpOzxicj48YnI+CkRpdHRvLjwvZGl2PjwvZGl2PjwvZGl2Pjwv ZGl2PjwvYmxvY2txdW90ZT5GaXhlZC48YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0 OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRp diBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBp ZD0ic3R5bGVfMTUzMDE5MDgyOTAwMDAwMDA0NzdfQk9EWSI+PGJyPgomZ3Q7ICA8YnI+CiZndDsg LQljaGVja3BvaW50X2l0ZXJhdG9yX2luaXQoJmFtcDtjaGVja3BvaW50cyk7PGJyPgomZ3Q7IC08 YnI+CiZndDsgLQl3aGlsZSAoKHZjbG9jayA9IGNoZWNrcG9pbnRfaXRlcmF0b3JfcHJldigmYW1w O2NoZWNrcG9pbnRzKSkgIT0gTlVMTCkgezxicj4KJmd0OyAtCQlpZiAoLS1jaGVja3BvaW50X2Nv dW50ICZndDsgMCk8YnI+CiZndDsgLQkJCWNvbnRpbnVlOzxicj4KJmd0OyAtCQlpZiAobGVmdG1v c3Rfc25hcCAhPSBOVUxMICZhbXA7JmFtcDs8YnI+CiZndDsgLQkJICAgIGxlZnRtb3N0X3NuYXAt Jmd0O3NpZ25hdHVyZSAmbHQ7IHZjbG9ja19zdW0odmNsb2NrKSk8YnI+CiZndDsgLQkJCWNvbnRp bnVlOzxicj4KJmd0OyAtCQlnY19zbmFwX3NpZ25hdHVyZSA9IHZjbG9ja19zdW0odmNsb2NrKTs8 YnI+CiZndDsgLQkJYnJlYWs7PGJyPgomZ3Q7IC0JfTxicj4KJmd0OyAtPGJyPgomZ3Q7IC0JaWYg KGdjX3NuYXBfc2lnbmF0dXJlICZsdDs9IGdjLnNuYXBfc2lnbmF0dXJlICZhbXA7JmFtcDs8YnI+ CiZndDsgLQkgICAgZ2NfeGxvZ19zaWduYXR1cmUgJmx0Oz0gZ2MueGxvZ19zaWduYXR1cmUpPGJy PgomZ3Q7ICsJaWYgKGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlICZsdDs9IGdjLmNoZWNrcG9pbnRf c2lnbmF0dXJlICZhbXA7JmFtcDs8YnI+CiZndDsgKwkgICAgZ2Nfd2FsX3NpZ25hdHVyZSAmbHQ7 PSBnYy53YWxfc2lnbmF0dXJlKTxicj4KJmd0OyAgCQlyZXR1cm47IC8qIG5vdGhpbmcgdG8gZG8g Ki88YnI+CiZndDsgIDxicj4KJmd0OyAtCWlmIChnY19zbmFwX3NpZ25hdHVyZSAmZ3Q7IGdjLnNu YXBfc2lnbmF0dXJlKTxicj4KJmd0OyAtCQlnYy5zbmFwX3NpZ25hdHVyZSA9IGdjX3NuYXBfc2ln bmF0dXJlOzxicj4KJmd0OyAtCWlmIChnY194bG9nX3NpZ25hdHVyZSAmZ3Q7IGdjLnhsb2dfc2ln bmF0dXJlKTxicj4KJmd0OyAtCQlnYy54bG9nX3NpZ25hdHVyZSA9IGdjX3hsb2dfc2lnbmF0dXJl Ozxicj4KJmd0OyAtPGJyPgomZ3Q7ICAJLyo8YnI+CiZndDsgIAkgKiBFbmdpbmUgY2FsbGJhY2tz IG1heSBzbGVlcCwgYmVjYXVzZSB0aGV5IHVzZSBjb2lvIGZvcjxicj4KJmd0OyAgCSAqIHJlbW92 aW5nIGZpbGVzLiBNYWtlIHN1cmUgd2Ugd29uJ3QgdHJ5IHRvIHJlbW92ZSB0aGU8YnI+CiZndDsg QEAgLTIzNCw2ICsyMTgsNyBAQCBnY19ydW4odm9pZCk8YnI+CiZndDsgIAkgKiBleGVjdXRpb25z Ljxicj4KJmd0OyAgCSAqLzxicj4KJmd0OyAgCWxhdGNoX2xvY2soJmFtcDtnYy5sYXRjaCk7PGJy PgomZ3Q7ICs8YnI+CiZndDsgIAkvKjxicj4KJmd0OyAgCSAqIFJ1biBnYXJiYWdlIGNvbGxlY3Rp b24uPGJyPgomZ3Q7ICAJICo8YnI+PGJyPgpQbGVhc2UgdHJ5IHRvIGF2b2lkIHN0cmF5IGh1bmtz LCBsaWtlIHRoaXMgb25lLCB3aGVuIHByZXBhcmluZyBhIHBhdGNoLjxicj4KVGhleSBjb21wbGlj YXRlIHJldmlldy48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+V3ltPzxicj48 YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjox MHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBl ciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTMwMTkwODI5MDAwMDAwMDQ3 N19CT0RZIj48YnI+CiZndDsgQEAgLTI0MSw4ICsyMjYsMTcgQEAgZ2NfcnVuKHZvaWQpPGJyPgom Z3Q7ICAJICogY29sbGVjdGlvbiBmb3IgbWVtdHggc25hcHNob3RzIGZpcnN0IGFuZCBhYm9ydCBp ZiBpdDxicj4KJmd0OyAgCSAqIGZhaWxzIC0gc2VlIGNvbW1lbnQgdG8gbWVtdHhfZW5naW5lX2Nv bGxlY3RfZ2FyYmFnZSgpLjxicj4KJmd0OyAgCSAqLzxicj4KJmd0OyAtCWlmIChlbmdpbmVfY29s bGVjdF9nYXJiYWdlKGdjX3NuYXBfc2lnbmF0dXJlKSA9PSAwKTxicj4KJmd0OyAtCQl3YWxfY29s bGVjdF9nYXJiYWdlKGdjX3hsb2dfc2lnbmF0dXJlKTs8YnI+CiZndDsgKwlpbnQgcmMgPSAwOzxi cj4KJmd0OyArPGJyPgomZ3Q7ICsJaWYgKGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlICZndDsgZ2Mu Y2hlY2twb2ludF9zaWduYXR1cmUpIHs8YnI+CiZndDsgKwkJZ2MuY2hlY2twb2ludF9zaWduYXR1 cmUgPSBnY19jaGVja3BvaW50X3NpZ25hdHVyZTs8YnI+CiZndDsgKwkJcmMgPSBlbmdpbmVfY29s bGVjdF9nYXJiYWdlKGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlKTs8YnI+CiZndDsgKwl9PGJyPgom Z3Q7ICsJaWYgKGdjX3dhbF9zaWduYXR1cmUgJmd0OyBnYy53YWxfc2lnbmF0dXJlKSB7PGJyPgom Z3Q7ICsJCWdjLndhbF9zaWduYXR1cmUgPSBnY193YWxfc2lnbmF0dXJlOzxicj4KJmd0OyArCQlp ZiAocmMgPT0gMCk8YnI+CiZndDsgKwkJCXdhbF9jb2xsZWN0X2dhcmJhZ2UoZ2Nfd2FsX3NpZ25h dHVyZSk7PGJyPgomZ3Q7ICsJfTxicj48YnI+CkkgZ3Vlc3MsIGluIGNhc2UgZW5naW5lX2NvbGxl Y3RfZ2FyYmFnZSgpIGZhaWxzIGFuZCB3ZSBkb24ndCBjYWxsPGJyPgp3YWxfY29sbGVjdF9nYXJi YWdlKCksIHdlIHNob3VsZG4ndCBhZHZhbmNlIGdjLndhbF9zaWduYXR1cmU6PGJyPjxicj4KCWlm IChyYyA9PSAwICZhbXA7JmFtcDsgZ2Nfd2FsX3NpZ25hdHVyZSAmZ3Q7IGdjLndhbF9zaWduYXR1 cmUpIHs8YnI+CgkJZ2Mud2FsX3NpZ25hdHVyZSA9IGdjX3dhbF9zaWduYXR1cmU7PGJyPgoJCXdh bF9jb2xsZWN0X2dhcmJhZ2UoZ2Nfd2FsX3NpZ25hdHVyZSk7PGJyPgoJfTxicj48L2Rpdj48L2Rp dj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+ClRoYXQncyBob3cgaXQgd2FzIGRvbmUgcHJldmlv dXNseS4gRmlyc3QgdXBkYXRlIGdjLnNpZ25hdHVyZSwgYW5kIG9ubHkgdGhlbjxicj50cnkgdG8g cnVuIGVuY2dpbmVfY29sbGVjdF9nYXJiYWdlKCkgYW5kIHdhbF9jb2xsZWN0X2dhcmJhZ2UoKSwg c28gSSBkZWNpZGVkPGJyPnRvIGxlYXZlIGl0IGFzIGlzLjxicj48YnI+PHA+LS0tPGJyPiBzcmMv Ym94L2djLmMgfCAxMCArKysrKy0tLS0tPGJyPiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKTwvcD48cD5kaWZmIC0tZ2l0IGEvc3JjL2JveC9nYy5jIGIvc3Jj L2JveC9nYy5jPGJyPmluZGV4IDA2ZDJmYmQzNS4uNGQ4ZjMyMWZmIDEwMDY0NDxicj4tLS0gYS9z cmMvYm94L2djLmM8YnI+KysrIGIvc3JjL2JveC9nYy5jPGJyPkBAIC0xNjEsNyArMTYxLDcgQEAg Z2NfZnJlZSh2b2lkKTxicj4gbGF0Y2hfZGVzdHJveSgmYW1wO2djLmxhdGNoKTs8YnI+IH08YnI+ IDxicj4tLyoqIEZpbmQgdGhlIGNvbnN1bWVyIHRoYXQgdXNlcyB0aGUgb2xkZXN0IGNoZWNrcG9p bnQgKi88YnI+Ky8qKiBGaW5kIHRoZSBjb25zdW1lciB0aGF0IHVzZXMgdGhlIG9sZGVzdCBjaGVj a3BvaW50LiAqLzxicj4gc3RydWN0IGdjX2NvbnN1bWVyICo8YnI+IGdjX3RyZWVfZmlyc3RfY2hl Y2twb2ludChnY190cmVlX3QgKmNvbnN1bWVycyk8YnI+IHs8YnI+QEAgLTE4MSw3ICsxODEsNyBA QCBnY19ydW4odm9pZCk8YnI+IHN0cnVjdCBnY19jb25zdW1lciAqbGVmdG1vc3QgPSBnY190cmVl X2ZpcnN0KCZhbXA7Z2MuY29uc3VtZXJzKTs8YnI+IC8qIExvb2sgdXAgdGhlIGNvbnN1bWVyIHRo YXQgdXNlcyB0aGUgb2xkZXN0IGNoZWNrcG9pbnQuICovPGJyPiBzdHJ1Y3QgZ2NfY29uc3VtZXIg KmxlZnRtb3N0X2NoZWNrcG9pbnQgPTxicj4tIGdjX3RyZWVfZmlyc3RfY2hlY2twb2ludCgmYW1w O2djLmNvbnN1bWVycyk7PGJyPisgZ2NfdHJlZV9maXJzdF9jaGVja3BvaW50KCZhbXA7Z2MuY29u c3VtZXJzKTs8YnI+IDxicj4gLyo8YnI+ICogRmluZCB0aGUgb2xkZXN0IGNoZWNrcG9pbnQgdGhh dCBtdXN0IGJlIHByZXNlcnZlZC48YnI+QEAgLTE5OCwxNyArMTk4LDE3IEBAIGdjX3J1bih2b2lk KTxicj4gaWYgKC0tY2hlY2twb2ludF9jb3VudCAmZ3Q7IDApPGJyPiBjb250aW51ZTs8YnI+IGlm IChsZWZ0bW9zdF9jaGVja3BvaW50ICE9IE5VTEwgJmFtcDsmYW1wOzxicj4tIGxlZnRtb3N0X2No ZWNrcG9pbnQtJmd0O3NpZ25hdHVyZSAmbHQ7IHZjbG9ja19zdW0odmNsb2NrKSk8YnI+KyBsZWZ0 bW9zdF9jaGVja3BvaW50LSZndDtzaWduYXR1cmUgJmx0OyB2Y2xvY2tfc3VtKHZjbG9jaykpPGJy PiBjb250aW51ZTs8YnI+IGdjX2NoZWNrcG9pbnRfc2lnbmF0dXJlID0gdmNsb2NrX3N1bSh2Y2xv Y2spOzxicj4gYnJlYWs7PGJyPiB9PGJyPiA8YnI+IGludDY0X3QgZ2Nfd2FsX3NpZ25hdHVyZSA9 IE1JTihnY19jaGVja3BvaW50X3NpZ25hdHVyZSwgbGVmdG1vc3QgIT0gTlVMTCA/PGJyPi0gbGVm dG1vc3QtJmd0O3NpZ25hdHVyZSA6IElOVDY0X01BWCk7PGJyPisgbGVmdG1vc3QtJmd0O3NpZ25h dHVyZSA6IElOVDY0X01BWCk7PGJyPiA8YnI+IGlmIChnY19jaGVja3BvaW50X3NpZ25hdHVyZSAm bHQ7PSBnYy5jaGVja3BvaW50X3NpZ25hdHVyZSAmYW1wOyZhbXA7PGJyPi0gZ2Nfd2FsX3NpZ25h dHVyZSAmbHQ7PSBnYy53YWxfc2lnbmF0dXJlKTxicj4rIGdjX3dhbF9zaWduYXR1cmUgJmx0Oz0g Z2Mud2FsX3NpZ25hdHVyZSk8YnI+IHJldHVybjsgLyogbm90aGluZyB0byBkbyAqLzxicj4gPGJy PiAvKjxicj4tLSA8YnI+Mi4xNS4yIChBcHBsZSBHaXQtMTAxLjEpPC9wPjxicj4KPGJyPi0tIDxi cj5CZXN0IHJlZ2FyZHMsPGJyPlNlcmdleSBQZXRyZW5rbzxicj48L0JPRFk+PC9IVE1MPgo= ----ALT--T6hSXkNnqm4C3NtYjbZXNZXANHpH0ff51530197112--