From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f556.i.mail.ru (f556.i.mail.ru [94.100.184.135]) (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 B9CCA469719 for ; Wed, 26 Feb 2020 18:50:37 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Wed, 26 Feb 2020 18:50:35 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1582732235.10826512@f556.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--860b9Fe730dA22883102EeCe7E1952251582732235" In-Reply-To: <1a3127f4-df43-2e45-7045-64b7bfd395b1@tarantool.org> References: <1581359737.397395198@f221.i.mail.ru> <20200225130257.GA12687@tarantool.org> <1a3127f4-df43-2e45-7045-64b7bfd395b1@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_box=3A_sql_prepare_and_?= =?utf-8?q?execute_statistics_should_be_reflected_in_box=2Estat=28=29?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= ----ALT--860b9Fe730dA22883102EeCe7E1952251582732235 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhleSwgSeKAmXZlIGJlZW4gZG9pbmcgdGhlIDIuMiB2ZXJzaW9uIGZvciB0aGUgc2FtZSBpc3N1 ZSBhbmQgcmVhbGl6ZWQgdGhlcmXigJlzIGEgYnVnIGluIHRoZSBjb21taXQgdGhhdCB3YXMgYWxy ZWFkeSBtZXJnZWQgdG8gbWFzdGVyLgrCoAo+wqAxLiBOaWtpdGEgaXMgcmlnaHQsIHRoaXMgaXMg Y2FsbGVkIHdoZW4gSVBST1RPX0VYRUNVVEUgYXJyaXZlcy4gWW91IGNhbgpzZWUgdGhhdCBpbiBp cHJvdG8uY2MuIFRoaXMgaXMgYSBzZXBhcmF0ZSBxdWVzdGlvbiwgd2h5IGRvIHdlIGNvbGxlY3QK SVBST1RPXyogc3RhdGlzdGljcyBvdXQgb2YgaXByb3RvLiBGb3Igbm93IGxldHMganVzdCB1c2Ug SVBST1RPX0VYRUNVVEUKaGVyZS7CoArCoApUaGUgcmVhc29uIEkgd2FzIGNvbGxlY3Rpbmcgc3Rh dHMgZm9yIGJveC5wcmVwYXJlIGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlIGlzIGJlY2F1c2UgaXQg bG9va2VkIHRvIG1lIGxpa2UgdGhlIGV4ZWN1dGlvbiBvZiBtZXRob2TCoHNxbF9wcmVwYXJlX2Fu ZF9leGVjdXRlIGltcGxpZWQgdGhlIHVzZXIgaXMgcHJlcGFyaW5nIF9hbmRfIGV4ZWN1dGluZyBz b21ldGhpbmcgYXQgdGhlIHNhbWUgdGltZSwgYW5kIHdoZXJlYXMgYWxsIG90aGVyIG1ldGhvZHMg Ym9pbGVkIGRvd24gdG8gZWl0aGVyIHNxbF9wcmVwYXJlIG9yIHNxbF9leGVjdXRlIGluIHRoZSBl bmQsIHRoaXMgb25lIGNvbGxlY3RlZCBzdGF0aXN0aWNzIG9ubHkgZm9ywqBJUFJPVE9fRVhFQ1VU RSwgc28gSSB0aG91Z2h0IGl0IHdhcyBuZWNlc3NhcnkgdG8gY292ZXLCoElQUk9UT19QUkVQQVJF IGFzIHdlbGwuIEJ1dCB5b3VyIGFyZ3VtZW50IHdhcyBhaW1lZCBhdCBzb21ldGhpbmcgYSBiaXQg ZGlmZmVyZW50LCBzbyBJIG1pc3NlZCB0aGUgZ2xvYmFsIHBpY3R1cmUgaGVyZS7CoApUaGUgcG9p bnQgaXMsIHRoZXJl4oCZcyBubyBuZWVkIHRvIGRvIGFub3RoZXLCoHJtZWFuX2NvbGxlY3QoKSwg YXMgaXQgaGFwcGVucyBsYXRlciB3aGVuIHNxbF9leGVjdXRlIGlzIGJlaW5nwqBjYWxsZWQuIE90 aGVyd2lzZSB0aGUgc3RhdHMgd291bGQgaGF2ZSBiZWVuIGNvbGxlY3RlZCB0d2ljZSBmb3IgZWFj aCBleGVjdXRlZCBzdGF0ZW1lbnQgYXMgaXQgd2FzIG9idmlvdXMgaW4gZGlmZmVyZW50IHRlc3Rz ICh0aGF0IEkgYWxzbyBhZGRlZCBpbiB0aGUgZm9sbG93IHVwwqBwYXRjaCkuCsKgCkFsc28sIEni gJltIHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIGNvbGxlY3QgdGhlIHN0YXRzIGZvcsKgSVBST1RP X1BSRVBBUkUgaW7CoHNxbF9yZXByZXBhcmUgYXMgd2VsbD8gSXQgc2VlbXMgcmVsZXZhbnQgZHVl IHRoZSBuYXR1cmUgb2YgdGhpcyBtZXRob2Q6IMKrUmUtY29tcGlsZSBzdGF0ZW1lbnQgYW5kIHJl ZnJlc2ggZ2xvYmFsIHByZXBhcmVkIHN0YXRlbWVudMKgY2FjaGUgd2l0aCB0aGUgbmV3ZXN0IHZh bHVlwrsuIE1lYW5pbmcsIGl04oCZcyBhbm90aGVyIGluc3RhbmNlIG9mIHByZXBhcmUsIHJpZ2h0 P8KgCsKgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KQ2FsbGluZyBwcmVwYXJlIGFuZCBleGVjdXRlIGRpZCBub3Qg dXBkYXRlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBzdGF0aXN0aWNzCmluIHRoZSBib3guc3RhdCB0 YWJsZS4gVGhpcyBoYXBwZW5lZCBiZWNhdXNlIG1ldGhvZHMgdGhhdCBjb2xsZWN0IHN0YXRzIHdl cmUKbmV2ZXIgY2FsbGVkIHdoZXJlIHRoZXkgc2hvdWxkIGhhdmUgYmVlbi4KVGhlcmUgd2FzIGEg YnVnIGluIHByZXZpb3VzIGNvbW1pdCByZXN1bHRpbmcgaW4gY29sbGVjdGluZyBzdGF0aXN0aWNz IG9uCmJveC5leGVjdXRlIHR3aWNlIGluIHNvbWUgY2FzZXMuCsKgCkNsb3NlcyAjNDc1NgotLS0K SXNzdWU6Cmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80NzU2 IMKgCkJyYW5jaDoKaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFy ZS9lbGphc2htL2doLTQ3NTYtYm94LXN0YXQtZXhlY3V0ZS1hbmQtcHJlcGFyZS1ub3QtdXBkYXRl ZCDCoArCoApAQ2hhbmdlTG9nCi0gQ29sbGVjdGluZyBzdGF0aXN0aWNzIGZvciBib3ggcHJlcGFy ZSBhbmQgZXhlY3V0ZSBtZXRob2RzCsKgIMKgIGdoLTQ3NTYKwqAKwqBzcmMvYm94L2V4ZWN1dGUu YyDCoCDCoCDCoCDCoHwgwqAzICsrKwrCoHRlc3Qvc3FsL2lwcm90by5yZXN1bHQgwqAgfCAzMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCsKgdGVzdC9zcWwvaXByb3RvLnRlc3QubHVh IHwgMTQgKysrKysrKysrKysrKysKwqAzIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKykK wqAKZGlmZiAtLWdpdCBhL3NyYy9ib3gvZXhlY3V0ZS5jIGIvc3JjL2JveC9leGVjdXRlLmMKaW5k ZXggZGM4ZGNlODFjLi4yNGY4NTI5ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvZXhlY3V0ZS5jCisr KyBiL3NyYy9ib3gvZXhlY3V0ZS5jCkBAIC00OCw2ICs0OCw3IEBACsKgI2luY2x1ZGUgImJveC9s dWEvZXhlY3V0ZS5oIgrCoCNpbmNsdWRlICJib3gvc3FsX3N0bXRfY2FjaGUuaCIKwqAjaW5jbHVk ZSAic2Vzc2lvbi5oIgorI2luY2x1ZGUgInJtZWFuLmgiCsKgCsKgY29uc3QgY2hhciAqc3FsX2lu Zm9fa2V5X3N0cnNbXSA9IHsKwqDCoMKgIMKgInJvd19jb3VudCIsCkBAIC02MDgsNiArNjA5LDcg QEAgc3FsX3ByZXBhcmUoY29uc3QgY2hhciAqc3FsLCBpbnQgbGVuLCBzdHJ1Y3QgcG9ydCAqcG9y dCkKwqB7CsKgwqDCoCDCoHVpbnQzMl90IHN0bXRfaWQgPSBzcWxfc3RtdF9jYWxjdWxhdGVfaWQo c3FsLCBsZW4pOwrCoMKgwqAgwqBzdHJ1Y3Qgc3FsX3N0bXQgKnN0bXQgPSBzcWxfc3RtdF9jYWNo ZV9maW5kKHN0bXRfaWQpOworwqDCoCDCoHJtZWFuX2NvbGxlY3Qocm1lYW5fYm94LCBJUFJPVE9f UFJFUEFSRSwgMSk7CsKgwqDCoCDCoGlmIChzdG10ID09IE5VTEwpIHsKwqDCoMKgIMKgwqDCoCDC oGlmIChzcWxfc3RtdF9jb21waWxlKHNxbCwgbGVuLCBOVUxMLCAmc3RtdCwgTlVMTCkgIT0gMCkK wqDCoMKgIMKgwqDCoCDCoMKgwqAgwqByZXR1cm4gLTE7CkBAIC02NjksNiArNjcxLDcgQEAgc3Rh dGljIGlubGluZSBpbnQKwqBzcWxfZXhlY3V0ZShzdHJ1Y3Qgc3FsX3N0bXQgKnN0bXQsIHN0cnVj dCBwb3J0ICpwb3J0LCBzdHJ1Y3QgcmVnaW9uICpyZWdpb24pCsKgewrCoMKgwqAgwqBpbnQgcmMs IGNvbHVtbl9jb3VudCA9IHNxbF9jb2x1bW5fY291bnQoc3RtdCk7CivCoMKgIMKgcm1lYW5fY29s bGVjdChybWVhbl9ib3gsIElQUk9UT19FWEVDVVRFLCAxKTsKwqDCoMKgIMKgaWYgKGNvbHVtbl9j b3VudCA+IDApIHsKwqDCoMKgIMKgwqDCoCDCoC8qIEVpdGhlciBST1cgb3IgRE9ORSBvciBFUlJP Ui4gKi8KwqDCoMKgIMKgwqDCoCDCoHdoaWxlICgocmMgPSBzcWxfc3RlcChzdG10KSkgPT0gU1FM X1JPVykgewoKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsL2lwcm90by5yZXN1bHQgYi90ZXN0L3NxbC9p cHJvdG8ucmVzdWx0CmluZGV4IDdkZjExYjBiZi4uMGUwNDY1NzdkIDEwMDY0NAotLS0gYS90ZXN0 L3NxbC9pcHJvdG8ucmVzdWx0CisrKyBiL3Rlc3Qvc3FsL2lwcm90by5yZXN1bHQKQEAgLTc4OCw2 ICs3ODgsMzcgQEAgYm94LnNjaGVtYS51c2VyLnJldm9rZSgnZ3Vlc3QnLCAnY3JlYXRlJywgJ3Nw YWNlJykKwqBzcGFjZSA9IG5pbArCoC0tLQrCoC4uLgorLS0KKy0tIGdoLTQ3NTY6IFBSRVBBUkUg YW5kIEVYRUNVVEUgc3RhdGlzdGljcyBzaG91bGQgYmUgcHJlc2VudCBpbiBib3guc3RhdCgpCist LQorcCA9IGJveC5zdGF0KCkuUFJFUEFSRS50b3RhbAorLS0tCisuLi4KK2UgPSBib3guc3RhdCgp LkVYRUNVVEUudG90YWwKKy0tLQorLi4uCitzID0gYm94LnByZXBhcmUoW1sgU0VMRUNUID87IF1d KQorLS0tCisuLi4KK3JlcywgZXJyID0gYm94LnVucHJlcGFyZShzKQorLS0tCisuLi4KK2JveC5l eGVjdXRlKCdjcmVhdGUgdGFibGUgdGVzdCAoaWQgaW50ZWdlciBwcmltYXJ5IGtleSwgYSBpbnRl Z2VyKScpCistLS0KKy0gcm93X2NvdW50OiAxCisuLi4KK2JveC5leGVjdXRlKCdEUk9QIFRBQkxF IHRlc3QnKQorLS0tCistIHJvd19jb3VudDogMQorLi4uCithc3NlcnQoYm94LnN0YXQoKS5QUkVQ QVJFLnRvdGFsID09IHAgKyAxKQorLS0tCistIHRydWUKKy4uLgorYXNzZXJ0KGJveC5zdGF0KCku RVhFQ1VURS50b3RhbCA9PSBlICsgMikKKy0tLQorLSB0cnVlCisuLi4KwqAtLSBDbGVhbnVwIHhs b2cKwqBib3guc25hcHNob3QoKQrCoC0tLQoKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsL2lwcm90by50 ZXN0Lmx1YSBiL3Rlc3Qvc3FsL2lwcm90by50ZXN0Lmx1YQppbmRleCA0MDE5ZmI3YTQuLmVjMWYz NzAzNSAxMDA2NDQKLS0tIGEvdGVzdC9zcWwvaXByb3RvLnRlc3QubHVhCisrKyBiL3Rlc3Qvc3Fs L2lwcm90by50ZXN0Lmx1YQpAQCAtMjQyLDUgKzI0MiwxOSBAQCBib3guc2NoZW1hLnVzZXIucmV2 b2tlKCdndWVzdCcsICdyZWFkLHdyaXRlLGV4ZWN1dGUnLCAndW5pdmVyc2UnKQrCoGJveC5zY2hl bWEudXNlci5yZXZva2UoJ2d1ZXN0JywgJ2NyZWF0ZScsICdzcGFjZScpCsKgc3BhY2UgPSBuaWwK wqAKKy0tCistLSBnaC00NzU2OiBQUkVQQVJFIGFuZCBFWEVDVVRFIHN0YXRpc3RpY3Mgc2hvdWxk IGJlIHByZXNlbnQgaW4gYm94LnN0YXQoKQorLS0KK3AgPSBib3guc3RhdCgpLlBSRVBBUkUudG90 YWwKK2UgPSBib3guc3RhdCgpLkVYRUNVVEUudG90YWwKKworcyA9IGJveC5wcmVwYXJlKFtbIFNF TEVDVCA/OyBdXSkKK3JlcywgZXJyID0gYm94LnVucHJlcGFyZShzKQorYm94LmV4ZWN1dGUoJ2Ny ZWF0ZSB0YWJsZSB0ZXN0IChpZCBpbnRlZ2VyIHByaW1hcnkga2V5LCBhIGludGVnZXIpJykKK2Jv eC5leGVjdXRlKCdEUk9QIFRBQkxFIHRlc3QnKQorCithc3NlcnQoYm94LnN0YXQoKS5QUkVQQVJF LnRvdGFsID09IHAgKyAxKQorYXNzZXJ0KGJveC5zdGF0KCkuRVhFQ1VURS50b3RhbCA9PSBlICsg MikKKwrCoC0tIENsZWFudXAgeGxvZwrCoGJveC5zbmFwc2hvdCgpCi0twqAKMi4yNC4wCsKgIAo+ 0JLRgtC+0YDQvdC40LosIDI1INGE0LXQstGA0LDQu9GPIDIwMjAsIDIzOjI5ICswMzowMCDQvtGC IFZsYWRpc2xhdiBTaHBpbGV2b3kgPHYuc2hwaWxldm95QHRhcmFudG9vbC5vcmc+Ogo+wqAKPkxH VE0gYXMgd2VsbC4KPgo+T24gMjUvMDIvMjAyMCAxNDowMiwgTmlraXRhIFBldHRpayB3cm90ZToK Pj4gT24gMjUgRmViIDE0OjA4LCBNYXJpYSBLaGF5ZGljaCB3cm90ZToKPj4+Cj4+PiBUaGFua3Mg Zm9yIHRoZSByZXZpZXcsIGFsbCBkb25lOgo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gQ2FsbGluZyBw cmVwYXJlIGFuZCBleGVjdXRlIGRpZCBub3QgdXBkYXRlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBz dGF0aXN0aWNzCj4+PiBpbiB0aGUgYm94LnN0YXQgdGFibGUuIFRoaXMgaGFwcGVuZWQgYmVjYXVz ZSBtZXRob2RzIHRoYXQgY29sbGVjdCBzdGF0cyB3ZXJlCj4+PiBuZXZlciBjYWxsZWQgd2hlcmUg dGhleSBzaG91bGQgaGF2ZSBiZWVuLgo+Pj4gwqAKPj4+IENsb3NlcyAjNDc1Ngo+Pj4gLS0tCj4+ PiBJc3N1ZToKPj4+ICBodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1 ZXMvNDc1NiDCoAo+Pj4gQnJhbmNoOgo+Pj4gIGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wv dGFyYW50b29sL2NvbXBhcmUvZWxqYXNobS9naC00NzU2LWJveC1zdGF0LWV4ZWN1dGUtYW5kLXBy ZXBhcmUtbm90LXVwZGF0ZWQgwqAKPj4+IMKgCj4+PiBAQ2hhbmdlTG9nCj4+PiAtIEZpeGVkIGJv eC5zdGF0IGJlaGF2aW9yIC0gbm93IGl0IGNvbGxlY3RzIHN0YXRpc3RpY3Mgb24KPj4+IMKgwqAg wqBwcmVwYXJlIGFuZCBleGVjdXRlIG1ldGhvZHMgYXMgaXQgc2hvdWxkLgo+Pj4gwqDCoCDCoGdo LTQ3NTYKPj4KPj4gTEdUTS4gVmxhZCwgaXMgcGF0Y2ggT0sgd2l0aCB5b3U/IElmIHNvLCBJIHdp bGwgcHVzaCBpdCB0byBtYXN0ZXIsIDIuMyBhbmQKPj4gcGFydGlhbGx5IChvbmx5IHBhcnQgcmVs YXRlZCB0byBFWEVDVVRFIHN0YXRpc3RpY3MpIHRvIDIuMi4KPj4KwqAKwqAKLS0KTWFyaWEgS2hh eWRpY2gKwqA= ----ALT--860b9Fe730dA22883102EeCe7E1952251582732235 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGV5LCBJ4oCZdmUgYmVlbiBkb2luZyB0aGUgMi4yIHZlcnNpb24g Zm9yIHRoZSBzYW1lIGlzc3VlIGFuZCByZWFsaXplZCB0aGVyZeKAmXMgYSBidWcgaW4gdGhlIGNv bW1pdCB0aGF0IHdhcyBhbHJlYWR5IG1lcmdlZCB0byBtYXN0ZXIuPC9kaXY+PGRpdj4mbmJzcDs8 L2Rpdj48ZGl2PiZndDsmbmJzcDsxLiBOaWtpdGEgaXMgcmlnaHQsIHRoaXMgaXMgY2FsbGVkIHdo ZW4gSVBST1RPX0VYRUNVVEUgYXJyaXZlcy4gWW91IGNhbjxicj5zZWUgdGhhdCBpbiBpcHJvdG8u Y2MuIFRoaXMgaXMgYSBzZXBhcmF0ZSBxdWVzdGlvbiwgd2h5IGRvIHdlIGNvbGxlY3Q8YnI+SVBS T1RPXyogc3RhdGlzdGljcyBvdXQgb2YgaXByb3RvLiBGb3Igbm93IGxldHMganVzdCB1c2UgSVBS T1RPX0VYRUNVVEU8YnI+aGVyZS4mbmJzcDs8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+VGhl IHJlYXNvbiBJIHdhcyBjb2xsZWN0aW5nIHN0YXRzIGZvciBib3gucHJlcGFyZSBoZXJlIGluIHRo ZSBmaXJzdCBwbGFjZSBpcyBiZWNhdXNlIGl0IGxvb2tlZCB0byBtZSBsaWtlIHRoZSBleGVjdXRp b24gb2YgbWV0aG9kJm5ic3A7c3FsX3ByZXBhcmVfYW5kX2V4ZWN1dGUgaW1wbGllZCB0aGUgdXNl ciBpcyBwcmVwYXJpbmcgX2FuZF8gZXhlY3V0aW5nIHNvbWV0aGluZyBhdCB0aGUgc2FtZSB0aW1l LCBhbmQgd2hlcmVhcyBhbGwgb3RoZXIgbWV0aG9kcyBib2lsZWQgZG93biB0byBlaXRoZXIgc3Fs X3ByZXBhcmUgb3Igc3FsX2V4ZWN1dGUgaW4gdGhlIGVuZCwgdGhpcyBvbmUgY29sbGVjdGVkIHN0 YXRpc3RpY3Mgb25seSBmb3ImbmJzcDtJUFJPVE9fRVhFQ1VURSwgc28gSSB0aG91Z2h0IGl0IHdh cyBuZWNlc3NhcnkgdG8gY292ZXImbmJzcDtJUFJPVE9fUFJFUEFSRSBhcyB3ZWxsLiBCdXQgeW91 ciBhcmd1bWVudCB3YXMgYWltZWQgYXQgc29tZXRoaW5nIGEgYml0IGRpZmZlcmVudCwgc28gSSBt aXNzZWQgdGhlIGdsb2JhbCBwaWN0dXJlIGhlcmUuJm5ic3A7PC9kaXY+PGRpdj5UaGUgcG9pbnQg aXMsIHRoZXJl4oCZcyBubyBuZWVkIHRvIGRvIGFub3RoZXImbmJzcDtybWVhbl9jb2xsZWN0KCks IGFzIGl0IGhhcHBlbnMgbGF0ZXIgd2hlbiBzcWxfZXhlY3V0ZSBpcyBiZWluZyZuYnNwO2NhbGxl ZC4gT3RoZXJ3aXNlIHRoZSBzdGF0cyB3b3VsZCBoYXZlIGJlZW4gY29sbGVjdGVkIHR3aWNlIGZv ciBlYWNoIGV4ZWN1dGVkIHN0YXRlbWVudCBhcyBpdCB3YXMgb2J2aW91cyBpbiBkaWZmZXJlbnQg dGVzdHMgKHRoYXQgSSBhbHNvIGFkZGVkIGluIHRoZSBmb2xsb3cgdXAmbmJzcDtwYXRjaCkuPC9k aXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PkFsc28sIEnigJltIHdvbmRlcmluZyBpZiB3ZSBuZWVk IHRvIGNvbGxlY3QgdGhlIHN0YXRzIGZvciZuYnNwO0lQUk9UT19QUkVQQVJFIGluJm5ic3A7c3Fs X3JlcHJlcGFyZSBhcyB3ZWxsPyBJdCBzZWVtcyByZWxldmFudCBkdWUgdGhlIG5hdHVyZSBvZiB0 aGlzIG1ldGhvZDogwqtSZS1jb21waWxlIHN0YXRlbWVudCBhbmQgcmVmcmVzaCBnbG9iYWwgcHJl cGFyZWQgc3RhdGVtZW50Jm5ic3A7Y2FjaGUgd2l0aCB0aGUgbmV3ZXN0IHZhbHVlwrsuIE1lYW5p bmcsIGl04oCZcyBhbm90aGVyIGluc3RhbmNlIG9mIHByZXBhcmUsIHJpZ2h0PyZuYnNwOzwvZGl2 PjxkaXY+Jm5ic3A7PC9kaXY+PGhyPjxkaXY+PGRpdj5DYWxsaW5nIHByZXBhcmUgYW5kIGV4ZWN1 dGUgZGlkIG5vdCB1cGRhdGUgY29ycmVzcG9uZGluZyByZXF1ZXN0IHN0YXRpc3RpY3M8YnI+aW4g dGhlIGJveC5zdGF0IHRhYmxlLiBUaGlzIGhhcHBlbmVkIGJlY2F1c2UgbWV0aG9kcyB0aGF0IGNv bGxlY3Qgc3RhdHMgd2VyZTxicj5uZXZlciBjYWxsZWQgd2hlcmUgdGhleSBzaG91bGQgaGF2ZSBi ZWVuLjwvZGl2PjxkaXY+VGhlcmUgd2FzIGEgYnVnIGluIHByZXZpb3VzIGNvbW1pdCByZXN1bHRp bmcgaW4gY29sbGVjdGluZyBzdGF0aXN0aWNzIG9uPGJyPmJveC5leGVjdXRlIHR3aWNlIGluIHNv bWUgY2FzZXMuPC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PkNsb3NlcyAjNDc1Njxicj4tLS08 YnI+SXNzdWU6PGJyPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50 b29sL2lzc3Vlcy80NzU2Ij5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9p c3N1ZXMvNDc1NjwvYT4mbmJzcDs8YnI+QnJhbmNoOjxicj48YSBocmVmPSJodHRwczovL2dpdGh1 Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2VsamFzaG0vZ2gtNDc1Ni1ib3gtc3Rh dC1leGVjdXRlLWFuZC1wcmVwYXJlLW5vdC11cGRhdGVkIj5odHRwczovL2dpdGh1Yi5jb20vdGFy YW50b29sL3RhcmFudG9vbC9jb21wYXJlL2VsamFzaG0vZ2gtNDc1Ni1ib3gtc3RhdC1leGVjdXRl LWFuZC1wcmVwYXJlLW5vdC11cGRhdGVkPC9hPiZuYnNwOzwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+ PGRpdj5AQ2hhbmdlTG9nPGJyPi0gQ29sbGVjdGluZyBzdGF0aXN0aWNzIGZvciBib3ggcHJlcGFy ZSBhbmQgZXhlY3V0ZSBtZXRob2RzPGJyPiZuYnNwOyAmbmJzcDsgZ2gtNDc1NjwvZGl2PjxkaXY+ Jm5ic3A7PC9kaXY+PGRpdj4mbmJzcDtzcmMvYm94L2V4ZWN1dGUuYyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDt8ICZuYnNwOzMgKysrPGJyPiZuYnNwO3Rlc3Qvc3FsL2lwcm90by5yZXN1bHQg Jm5ic3A7IHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKzxicj4mbmJzcDt0ZXN0 L3NxbC9pcHJvdG8udGVzdC5sdWEgfCAxNCArKysrKysrKysrKysrKzxicj4mbmJzcDszIGZpbGVz IGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyk8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+ZGlm ZiAtLWdpdCBhL3NyYy9ib3gvZXhlY3V0ZS5jIGIvc3JjL2JveC9leGVjdXRlLmM8YnI+aW5kZXgg ZGM4ZGNlODFjLi4yNGY4NTI5ZWMgMTAwNjQ0PGJyPi0tLSBhL3NyYy9ib3gvZXhlY3V0ZS5jPGJy PisrKyBiL3NyYy9ib3gvZXhlY3V0ZS5jPGJyPkBAIC00OCw2ICs0OCw3IEBAPGJyPiZuYnNwOyNp bmNsdWRlICJib3gvbHVhL2V4ZWN1dGUuaCI8YnI+Jm5ic3A7I2luY2x1ZGUgImJveC9zcWxfc3Rt dF9jYWNoZS5oIjxicj4mbmJzcDsjaW5jbHVkZSAic2Vzc2lvbi5oIjxicj4rI2luY2x1ZGUgInJt ZWFuLmgiPGJyPiZuYnNwOzxicj4mbmJzcDtjb25zdCBjaGFyICpzcWxfaW5mb19rZXlfc3Ryc1td ID0gezxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7InJvd19jb3VudCIsPGJyPkBAIC02MDgs NiArNjA5LDcgQEAgc3FsX3ByZXBhcmUoY29uc3QgY2hhciAqc3FsLCBpbnQgbGVuLCBzdHJ1Y3Qg cG9ydCAqcG9ydCk8YnI+Jm5ic3A7ezxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7dWludDMy X3Qgc3RtdF9pZCA9IHNxbF9zdG10X2NhbGN1bGF0ZV9pZChzcWwsIGxlbik7PGJyPiZuYnNwOyZu YnNwOyZuYnNwOyAmbmJzcDtzdHJ1Y3Qgc3FsX3N0bXQgKnN0bXQgPSBzcWxfc3RtdF9jYWNoZV9m aW5kKHN0bXRfaWQpOzxicj4rJm5ic3A7Jm5ic3A7ICZuYnNwO3JtZWFuX2NvbGxlY3Qocm1lYW5f Ym94LCBJUFJPVE9fUFJFUEFSRSwgMSk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDtpZiAo c3RtdCA9PSBOVUxMKSB7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsg Jm5ic3A7aWYgKHNxbF9zdG10X2NvbXBpbGUoc3FsLCBsZW4sIE5VTEwsICZhbXA7c3RtdCwgTlVM TCkgIT0gMCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsm bmJzcDsmbmJzcDsgJm5ic3A7cmV0dXJuIC0xOzxicj5AQCAtNjY5LDYgKzY3MSw3IEBAIHN0YXRp YyBpbmxpbmUgaW50PGJyPiZuYnNwO3NxbF9leGVjdXRlKHN0cnVjdCBzcWxfc3RtdCAqc3RtdCwg c3RydWN0IHBvcnQgKnBvcnQsIHN0cnVjdCByZWdpb24gKnJlZ2lvbik8YnI+Jm5ic3A7ezxicj4m bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7aW50IHJjLCBjb2x1bW5fY291bnQgPSBzcWxfY29sdW1u X2NvdW50KHN0bXQpOzxicj4rJm5ic3A7Jm5ic3A7ICZuYnNwO3JtZWFuX2NvbGxlY3Qocm1lYW5f Ym94LCBJUFJPVE9fRVhFQ1VURSwgMSk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDtpZiAo Y29sdW1uX2NvdW50ICZndDsgMCkgezxicj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7 Jm5ic3A7ICZuYnNwOy8qIEVpdGhlciBST1cgb3IgRE9ORSBvciBFUlJPUi4gKi88YnI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDt3aGlsZSAoKHJjID0gc3FsX3N0 ZXAoc3RtdCkpID09IFNRTF9ST1cpIHs8L2Rpdj48ZGl2Pjxicj5kaWZmIC0tZ2l0IGEvdGVzdC9z cWwvaXByb3RvLnJlc3VsdCBiL3Rlc3Qvc3FsL2lwcm90by5yZXN1bHQ8YnI+aW5kZXggN2RmMTFi MGJmLi4wZTA0NjU3N2QgMTAwNjQ0PGJyPi0tLSBhL3Rlc3Qvc3FsL2lwcm90by5yZXN1bHQ8YnI+ KysrIGIvdGVzdC9zcWwvaXByb3RvLnJlc3VsdDxicj5AQCAtNzg4LDYgKzc4OCwzNyBAQCBib3gu c2NoZW1hLnVzZXIucmV2b2tlKCdndWVzdCcsICdjcmVhdGUnLCAnc3BhY2UnKTxicj4mbmJzcDtz cGFjZSA9IG5pbDxicj4mbmJzcDstLS08YnI+Jm5ic3A7Li4uPGJyPistLTxicj4rLS0gZ2gtNDc1 NjogUFJFUEFSRSBhbmQgRVhFQ1VURSBzdGF0aXN0aWNzIHNob3VsZCBiZSBwcmVzZW50IGluIGJv eC5zdGF0KCk8YnI+Ky0tPGJyPitwID0gYm94LnN0YXQoKS5QUkVQQVJFLnRvdGFsPGJyPistLS08 YnI+Ky4uLjxicj4rZSA9IGJveC5zdGF0KCkuRVhFQ1VURS50b3RhbDxicj4rLS0tPGJyPisuLi48 YnI+K3MgPSBib3gucHJlcGFyZShbWyBTRUxFQ1QgPzsgXV0pPGJyPistLS08YnI+Ky4uLjxicj4r cmVzLCBlcnIgPSBib3gudW5wcmVwYXJlKHMpPGJyPistLS08YnI+Ky4uLjxicj4rYm94LmV4ZWN1 dGUoJ2NyZWF0ZSB0YWJsZSB0ZXN0IChpZCBpbnRlZ2VyIHByaW1hcnkga2V5LCBhIGludGVnZXIp Jyk8YnI+Ky0tLTxicj4rLSByb3dfY291bnQ6IDE8YnI+Ky4uLjxicj4rYm94LmV4ZWN1dGUoJ0RS T1AgVEFCTEUgdGVzdCcpPGJyPistLS08YnI+Ky0gcm93X2NvdW50OiAxPGJyPisuLi48YnI+K2Fz c2VydChib3guc3RhdCgpLlBSRVBBUkUudG90YWwgPT0gcCArIDEpPGJyPistLS08YnI+Ky0gdHJ1 ZTxicj4rLi4uPGJyPithc3NlcnQoYm94LnN0YXQoKS5FWEVDVVRFLnRvdGFsID09IGUgKyAyKTxi cj4rLS0tPGJyPistIHRydWU8YnI+Ky4uLjxicj4mbmJzcDstLSBDbGVhbnVwIHhsb2c8YnI+Jm5i c3A7Ym94LnNuYXBzaG90KCk8YnI+Jm5ic3A7LS0tPC9kaXY+PGRpdj48YnI+ZGlmZiAtLWdpdCBh L3Rlc3Qvc3FsL2lwcm90by50ZXN0Lmx1YSBiL3Rlc3Qvc3FsL2lwcm90by50ZXN0Lmx1YTxicj5p bmRleCA0MDE5ZmI3YTQuLmVjMWYzNzAzNSAxMDA2NDQ8YnI+LS0tIGEvdGVzdC9zcWwvaXByb3Rv LnRlc3QubHVhPGJyPisrKyBiL3Rlc3Qvc3FsL2lwcm90by50ZXN0Lmx1YTxicj5AQCAtMjQyLDUg KzI0MiwxOSBAQCBib3guc2NoZW1hLnVzZXIucmV2b2tlKCdndWVzdCcsICdyZWFkLHdyaXRlLGV4 ZWN1dGUnLCAndW5pdmVyc2UnKTxicj4mbmJzcDtib3guc2NoZW1hLnVzZXIucmV2b2tlKCdndWVz dCcsICdjcmVhdGUnLCAnc3BhY2UnKTxicj4mbmJzcDtzcGFjZSA9IG5pbDxicj4mbmJzcDs8YnI+ Ky0tPGJyPistLSBnaC00NzU2OiBQUkVQQVJFIGFuZCBFWEVDVVRFIHN0YXRpc3RpY3Mgc2hvdWxk IGJlIHByZXNlbnQgaW4gYm94LnN0YXQoKTxicj4rLS08YnI+K3AgPSBib3guc3RhdCgpLlBSRVBB UkUudG90YWw8YnI+K2UgPSBib3guc3RhdCgpLkVYRUNVVEUudG90YWw8YnI+Kzxicj4rcyA9IGJv eC5wcmVwYXJlKFtbIFNFTEVDVCA/OyBdXSk8YnI+K3JlcywgZXJyID0gYm94LnVucHJlcGFyZShz KTxicj4rYm94LmV4ZWN1dGUoJ2NyZWF0ZSB0YWJsZSB0ZXN0IChpZCBpbnRlZ2VyIHByaW1hcnkg a2V5LCBhIGludGVnZXIpJyk8YnI+K2JveC5leGVjdXRlKCdEUk9QIFRBQkxFIHRlc3QnKTxicj4r PGJyPithc3NlcnQoYm94LnN0YXQoKS5QUkVQQVJFLnRvdGFsID09IHAgKyAxKTxicj4rYXNzZXJ0 KGJveC5zdGF0KCkuRVhFQ1VURS50b3RhbCA9PSBlICsgMik8YnI+Kzxicj4mbmJzcDstLSBDbGVh bnVwIHhsb2c8YnI+Jm5ic3A7Ym94LnNuYXBzaG90KCk8YnI+LS0mbmJzcDs8YnI+Mi4yNC4wPC9k aXY+PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6 MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij7QktGC 0L7RgNC90LjQuiwgMjUg0YTQtdCy0YDQsNC70Y8gMjAyMCwgMjM6MjkgKzAzOjAwINC+0YIgVmxh ZGlzbGF2IFNocGlsZXZveSAmbHQ7di5zaHBpbGV2b3lAdGFyYW50b29sLm9yZyZndDs6PGJyPiZu YnNwOzxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48c3R5 bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTgyNjYyNTYz MDM1ODY0OTczN19CT0RZIj5MR1RNIGFzIHdlbGwuPGJyPjxicj5PbiAyNS8wMi8yMDIwIDE0OjAy LCBOaWtpdGEgUGV0dGlrIHdyb3RlOjxkaXYgY2xhc3M9Im1haWwtcXVvdGUtY29sbGFwc2UiPiZn dDsgT24gMjUgRmViIDE0OjA4LCBNYXJpYSBLaGF5ZGljaCB3cm90ZTo8YnI+Jmd0OyZndDs8YnI+ Jmd0OyZndDsgVGhhbmtzIGZvciB0aGUgcmV2aWV3LCBhbGwgZG9uZTo8YnI+Jmd0OyZndDsgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLTxicj4mZ3Q7Jmd0OyBDYWxsaW5nIHByZXBhcmUgYW5kIGV4ZWN1dGUgZGlkIG5v dCB1cGRhdGUgY29ycmVzcG9uZGluZyByZXF1ZXN0IHN0YXRpc3RpY3M8YnI+Jmd0OyZndDsgaW4g dGhlIGJveC5zdGF0IHRhYmxlLiBUaGlzIGhhcHBlbmVkIGJlY2F1c2UgbWV0aG9kcyB0aGF0IGNv bGxlY3Qgc3RhdHMgd2VyZTxicj4mZ3Q7Jmd0OyBuZXZlciBjYWxsZWQgd2hlcmUgdGhleSBzaG91 bGQgaGF2ZSBiZWVuLjxicj4mZ3Q7Jmd0OyAmbmJzcDs8YnI+Jmd0OyZndDsgQ2xvc2VzICM0NzU2 PGJyPiZndDsmZ3Q7IC0tLTxicj4mZ3Q7Jmd0OyBJc3N1ZTo8YnI+Jmd0OyZndDsgPGEgaHJlZj0i aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzQ3NTYiIHRhcmdl dD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMv NDc1NjwvYT4gJm5ic3A7PGJyPiZndDsmZ3Q7IEJyYW5jaDo8YnI+Jmd0OyZndDsgPGEgaHJlZj0i aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9lbGphc2htL2do LTQ3NTYtYm94LXN0YXQtZXhlY3V0ZS1hbmQtcHJlcGFyZS1ub3QtdXBkYXRlZCIgdGFyZ2V0PSJf YmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2NvbXBhcmUvZWxq YXNobS9naC00NzU2LWJveC1zdGF0LWV4ZWN1dGUtYW5kLXByZXBhcmUtbm90LXVwZGF0ZWQ8L2E+ ICZuYnNwOzxicj4mZ3Q7Jmd0OyAmbmJzcDs8YnI+Jmd0OyZndDsgQENoYW5nZUxvZzxicj4mZ3Q7 Jmd0OyAtIEZpeGVkIGJveC5zdGF0IGJlaGF2aW9yIC0gbm93IGl0IGNvbGxlY3RzIHN0YXRpc3Rp Y3Mgb248YnI+Jmd0OyZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwO3ByZXBhcmUgYW5kIGV4ZWN1dGUg bWV0aG9kcyBhcyBpdCBzaG91bGQuPGJyPiZndDsmZ3Q7ICZuYnNwOyZuYnNwOyAmbmJzcDtnaC00 NzU2PGJyPiZndDs8YnI+Jmd0OyBMR1RNLiBWbGFkLCBpcyBwYXRjaCBPSyB3aXRoIHlvdT8gSWYg c28sIEkgd2lsbCBwdXNoIGl0IHRvIG1hc3RlciwgMi4zIGFuZDxicj4mZ3Q7IHBhcnRpYWxseSAo b25seSBwYXJ0IHJlbGF0ZWQgdG8gRVhFQ1VURSBzdGF0aXN0aWNzKSB0byAyLjIuPGJyPiZndDs8 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj4mbmJzcDs8ZGl2 PiZuYnNwOzwvZGl2PjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxkaXYg ZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPk1hcmlhIEtoYXlkaWNo PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--860b9Fe730dA22883102EeCe7E1952251582732235--