From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f404.i.mail.ru (f404.i.mail.ru [185.5.136.75]) (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 690CC452566 for ; Fri, 8 Nov 2019 18:16:57 +0300 (MSK) From: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= MIME-Version: 1.0 Date: Fri, 08 Nov 2019 18:16:56 +0300 Reply-To: =?UTF-8?B?U2VyZ2V5IE9zdGFuZXZpY2g=?= Message-ID: <1573226216.426563351@f404.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--QjMOlBN6mZVHT9dcjm7yhuWoeqo0k22a1573226216" In-Reply-To: References: Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_3/3=5D_tuple=3A_rework_?= =?utf-8?q?updates_to_improve_code_extendibility?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--QjMOlBN6mZVHT9dcjm7yhuWoeqo0k22a1573226216 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB0aGUgcGF0Y2ghCgpUaGUgY2hhbmdlcyBsb29rcyBnb29kIHRvIG1lLiBGcmFu a2x5LCBJIGRpZG4ndCBwZXJmb3JtIGEgYnl0ZS1leGFjdCAKY29tcGFyaXNvbiBvZiBmYWN0b3Jp emF0aW9uIGJldHdlZW4gZmlsZXMgLSB0ZXN0aW5nIGlzIGdyZWVuIGZvciB0aGUgYnJhbmNoLgoK UmVnYXJkcywKU2VyZ29zCgoKPlRodXJzZGF5LCBOb3ZlbWJlciAgNywgMjAxOSAxOjUzIFBNICsw MzowMCBmcm9tIFZsYWRpc2xhdiBTaHBpbGV2b3kgPHYuc2hwaWxldm95QHRhcmFudG9vbC5vcmc+ Ogo+Cj5JIGdhdmUgdXAgdHJ5aW5nIHRvIHNwbGl0IHRoZXNlIGNoYW5nZXMsIGJlY2F1c2UgdGhl eQo+YXJlIGVpdGhlciB0b28gbWlub3IsIG9yIGFyZSBub3Qgc2VwYXJhYmxlIGF0IGFsbC4gS29z dGphCj5wcm9wb3NlZCB0byBkZXNjcmliZSB0aGVtIGluIGEgY2hhbmdlbGlzdCwgYW5kIGhlcmUg aXMgYQo+bmV3IGNvbW1pdCBtZXNzYWdlOgo+Cj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Cj50dXBsZTogcmV3b3Jr IHVwZGF0ZXMgdG8gaW1wcm92ZSBjb2RlIGV4dGVuZGliaWxpdHkKPgo+QmVmb3JlIHRoZSBwYXRj aCB1cGRhdGUgd2FzIGltcGxlbWVudGVkIGFzIGEgc2V0IG9mIG9wZXJhdGlvbnMKPmFwcGxpY2Fi bGUgZm9yIGFycmF5cyBvbmx5LiBJdCB3YXMgb2sgdW50aWwgZmllbGQgbmFtZXMgYW5kIEpTT04K PnBhdGhzIGFwcGVhcmFuY2UsIGJlY2F1c2UgdHVwbGUgaXMgYW4gYXJyYXkgb24gdGhlIHRvcCBs ZXZlbC4KPgo+QnV0IG5vdyB0aGVyZSBhcmUgZm91ciByZWFzb25zIHRvIGFsbG93IG1vcmUgY29t cGxleCB1cGRhdGVzIG9mCj50dXBsZSBmaWVsZCBpbnRlcm5hbHMgYnkgSlNPTiBwYXRoczoKPgo+ wqDCoC0gdHVwbGUgZmllbGQgYWNjZXNzIGJ5IEpTT04gcGF0aCBpcyBhbGxvd2VkIHNvIGZvciBj b25zaXN0ZW5jeQo+wqDCoMKgwqBKU09OIHBhdGhzIHNob3VsZCBiZSBhbGxvd2VkIGluIHVwZGF0 ZXMgYXMgd2VsbDsKPgo+wqDCoC0gSlNPTiBpbmRleGVzIGFyZSBzdXBwb3J0ZWQuIEpTT04gdXBk YXRlIHNob3VsZCBiZSBhYmxlIHRvCj7CoMKgwqDCoGNoYW5nZSBhbiBpbmRleGVkIGZpZWxkIHdp dGhvdXQgcmV3cml0aW5nIGhhbGYgb2YgYSB0dXBsZSwgYW5kCj7CoMKgwqDCoGl0cyBmdWxsIHJl cGxhY2VtZW50Owo+Cj7CoMKgLSBUYXJhbnRvb2wgaXMgZ29pbmcgdG8gc3VwcG9ydCBkb2N1bWVu dHMgaW4gc3RvcmFnZSBzbyBKU09OCj7CoMKgwqDCoHBhdGggdXBkYXRlcyBpcyBvbmUgbW9yZSBz dGVwIGZvcndhcmQ7Cj4KPsKgwqAtIEpTT04gdXBkYXRlcyBhcmUgZ29pbmcgdG8gYmUgZmFzdGVy IGFuZCBtb3JlIGNvbXBhY3QgaW4gV0FMCj7CoMKgwqDCoHRoYW4gZ2V0ICsgaW4tbWVtb3J5IEx1 YS9jb25uZWN0b3IgdXBkYXRlICsgcmVwbGFjZSAob3IgdXBkYXRlCj7CoMKgwqDCoG9mIGEgd2hv bGUgdHVwbGUgZmllbGQpLgo+Cj5UaGUgcGF0Y2ggcmV3b3JrcyB0aGUgY3VycmVudCB1cGRhdGUg Y29kZSBpbiBzdWNoIGEgd2F5LCB0aGF0IG5vdwo+dXBkYXRlIGlzIG5vdCBqdXN0IGFuIGFycmF5 IG9mIG9wZXJhdGlvbnMsIGFwcGxpZWQgdG8gdHVwbGUncyB0b3AKPmxldmVsIGZpZWxkcy4gTm93 IGl0IGlzIGEgdHJlZSwganVzdCBsaWtlIHR1cGxlcyBhcmUuCj4KPlRoZSBjb25jZXB0IGlzIHRv IGJ1aWxkIGEgdHJlZSBvZiB4cm93X3VwZGF0ZV9maWVsZCBvYmplY3RzLiBFYWNoCj51cGRhdGVz IGEgcGFydCBvZiBhIHR1cGxlLiBMZWFmcyBpbiB0aGUgdHJlZSBjb250YWluIHVwZGF0ZQo+b3Bl cmF0aW9ucywgc3BlY2lmaWVkIGJ5IGEgdXNlciwgYXMgeHJvd191cGRhdGVfb3Agb2JqZWN0cy4K Pgo+VG8gbWFrZSB0aGUgY29kZSBzdXBwb3J0IGFuZCB1bmRlcnN0YW5kaW5nIHNpbXBsZXIsIHRo ZSBwYXRjaAo+c3BsaXRzIHVwZGF0ZSBpbXBsZW1lbnRhdGlvbiBpbnRvIHNldmVyYWwgaW5kZXBl bmRlbnQKPmZpbGVzLW1vZHVsZXMgZm9yIGVhY2ggdHlwZSBvZiBhbiB1cGRhdGVkIGZpZWxkLiBP bmUgZmlsZQo+ZGVzY3JpYmVzIGhvdyB0byB1cGRhdGUgYW4gYXJyYXkgZmllbGQsIGFub3RoZXIg ZmlsZSAtIGhvdyB0bwo+dXBkYXRlIGEgbWFwIGZpZWxkLCBldGMuIFRoaXMgY29tbWl0IGludHJv ZHVjZXMgb25seSBhcnJheS4gSnVzdAo+YmVjYXVzZSBpdCB3YXMgYWxyZWFkeSBzdXBwb3J0ZWQg YmVmb3JlIHRoZSBwYXRjaC4gTmV4dCBjb21taXRzCj53aWxsIGludHJvZHVjZSBtb3JlIHR5cGVz IG9uZSBieSBvbmUuCj4KPkJlc2lkZXMsIHRoZSBwYXRjaCBtYWtlcyBzb21lIG1pbm9yIGNoYW5n ZXMsIG5vdCBzZXBhcmFibGUgZnJvbQo+dGhpcyBjb21taXQ6Cj4KPsKgwqAtIFRoZSBiaWcgY29t bWVudCBhYm91dCB4cm93IHVwZGF0ZXMgaW4geHJvd191cGRhdGUuYyBpcwo+wqDCoMKgwqB1cGRh dGVkLiBOb3cgaXQgZGVzY3JpYmVzIHRoZSB0cmVlLWlkZWEgcHJlc2VudGVkIGFib3ZlOwo+Cj7C oMKgLSBDb21tZW50cyB3ZXJlIHByb3Blcmx5IGFsaWduZWQgYnkgNjYgc3ltYm9scyBpbiBhbGwg dGhlIG1vdmVkCj7CoMKgwqDCoG9yIGNoYW5nZWQgY29kZS4gTm90IGFmZmVjdGVkIGNvZGUgaXMg a2VwdCBhcyBpcyBzbyBhcyBub3QgdG8KPsKgwqDCoMKgaW5jcmVhc2UgdGhlIGRpZmYgZXZlbiBt b3JlOwo+Cj7CoMKgLSBBZGRlZCBtaXNzaW5nIGNvbW1lbnRzIHRvIG1vdmVkIG9yIGNoYW5nZWQg c3RydWN0dXJlcyBhbmQKPsKgwqDCoMKgdGhlaXIgYXR0cmlidXRlcyBzdWNoIGFzIHN0cnVjdCB4 cm93X3VwZGF0ZSwKPsKgwqDCoMKgc3RydWN0IHhyb3dfdXBkYXRlX29wX21ldGEsIHN0cnVjdCB4 cm93X3VwZGF0ZV9vcC4KPgo+wqDCoC0gU3RydWN0IHhyb3dfdXBkYXRlX2ZpZWxkIHdhcyBzaWdu aWZpY2FudGx5IHJld29ya2VkLiBOb3cgaXQgaXMKPsKgwqDCoMKgbm90IGp1c3QgYSBjb3VwbGUg b2YgcG9pbnRlcnMgYXQgdHVwbGUncyB0b3AgbGV2ZWwgYXJyYXkuIEZyb20KPsKgwqDCoMKgbm93 IGl0IHN0b3JlcyB0eXBlIG9mIHRoZSB1cGRhdGVkIGZpZWxkLCByYW5nZSBvZiBpdHMgc291cmNl Cj7CoMKgwqDCoGRhdGEgaW4gdGhlIG9yaWdpbmFsIHR1cGxlLCBhbmQgYSBzdWJ0cmVlIG9mIG90 aGVyIHVwZGF0ZQo+wqDCoMKgwqBmaWVsZHMgYXBwbGllZCB0byB0aGUgb3JpZ2luYWwgZGF0YS4K Pgo+wqDCoC0gQWRkZWQgbWlzc2luZyBjb21tZW50cyB0byBzb21lIGZ1bmN0aW9ucyB3aGljaCBJ IG1vdmVkIGFuZAo+wqDCoMKgwqBkZWNpZGVkIHdvcnRoIGNvbW1lbnRpbmcgYWxvbmdzaWRlLCBz dWNoIGFzCj7CoMKgwqDCoHhyb3dfdXBkYXRlX29wX2FkanVzdF9maWVsZF9ubygpLCB4cm93X3Vw ZGF0ZV9hbGxvYygpLgo+Cj7CoMKgLSBGdW5jdGlvbnMgeHJvd191cGRhdGVfb3BfZG9fZiwgeHJv d191cGRhdGVfb3BfcmVhZF9hcmdfZiwKPsKgwqDCoMKgeHJvd191cGRhdGVfb3Bfc3RvcmVfZiBh cmUgc2VwYXJhdGVkIGZyb20gc3RydWN0IHhyb3dfdXBkYXRlLAo+wqDCoMKgwqBzbyBhcyB0aGV5 IGNvdWxkIGJlIGNhbGxlZCBvbiBhbnkgdXBkYXRlZCBmaWVsZCBpbiB0aGUgdHJlZS4KPsKgwqDC oMKgRnJvbSB0aGlzIG1vbWVudCB0aGV5IGFyZSBtZXRob2RzIG9mIHN0cnVjdCB4cm93X3VwZGF0 ZV9vcC4KPsKgwqDCoMKgVGhleSB0YWtlIGFuIG9wIGFzIGEgZmlyc3QgYXJndW1lbnQgKGxpa2Ug J3RoaXMnIGluIEMrKyksIGFuZAo+wqDCoMKgwqBhcmUgYXBwbGllZCB0byBhIGdpdmVuIHN0cnVj dCB4cm93X3VwZGF0ZV9maWVsZC4KPgo+QW5vdGhlciBub3RhYmxlLCBidXQgbm90IHNlcGFyYWJs ZSwgY2hhbmdlIGlzIGEgbmV3IG5hbWluZyBzY2hlbWEKPmZvciB0aGUgbWV0aG9kcyBvZiBzdHJ1 Y3QgeHJvd191cGRhdGVfZmllbGQgYW5kIHN0cnVjdAo+eHJvd191cGRhdGVfb3AuIFRoaXMgaXMg bW90aXZhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgc3RydWN0Cj54cm93X3VwZGF0ZV9maWVsZCBub3cg aGFzIGEgdHlwZSwgYW5kIG1pZ2h0IGJlIG5vdCBhIHRlcm1pbmFsLgo+Cj5UaGVyZSBhcmUgbm93 IHR3byBncm91cHMgb2YgZnVuY3Rpb25zLiBHZW5lcmljIGZ1bmN0aW9ucyB3b3JraW5nCj53aXRo IHN0cnVjdCB4cm93X3VwZGF0ZV9maWVsZCBvZiBhbnkgdHlwZToKPgo+wqDCoMKgwqB4cm93X3Vw ZGF0ZV9maWVsZF9zaXplb2YKPsKgwqDCoMKgeHJvd191cGRhdGVfZmllbGRfc3RvcmUKPsKgwqDC oMKgeHJvd191cGRhdGVfb3BfZG9fZmllbGRfPG9wZXJhdGlvbj4KPgo+QW5kIHR5cGVkIGZ1bmN0 aW9uczoKPgo+wqDCoMKgwqB4cm93X3VwZGF0ZV88dHlwZT5fc2l6ZW9mCj7CoMKgwqDCoHhyb3df dXBkYXRlXzx0eXBlPl9zdG9yZQo+wqDCoMKgwqB4cm93X3VwZGF0ZV9vcF9kb188dHlwZT5fPG9w ZXJhdGlvbj4KPgo+V2hlcmUKPsKgwqDCoMKgb3BlcmF0aW9uID0gaW5zZXJ0L2RlbGV0ZS9zZXQv YXJpdGggLi4uCj7CoMKgwqDCoMKgwqDCoMKgwqB0eXBlID0gYXJyYXkvbWFwL2Jhci9zY2FsYXIg Li4uCj4KPkNvbW1vbiBmdW5jdGlvbnMgYXJlIHVzZWQgd2hlbiB0eXBlIG9mIGEgZmllbGQgdG8g dXBkYXRlIGlzIG5vdAo+a25vd24gaW4gYWR2YW5jZS4gRm9yIGV4YW1wbGUsIHdoZW4gYW4gb3Bl cmF0aW9uIGlzIGFwcGxpZWQgdG8gb25lCj5vZiBmaWVsZHMgb2YgYW4gYXJyYXksIGl0IGlzIG5v dCBrbm93biB3aGF0IGEgdHlwZSB0aGlzIGZpZWxkIGhhczoKPmFub3RoZXIgYXJyYXksIHNjYWxh ciwgbm90IGNoYW5nZWQgZmllbGQsIG1hcCwgZXRjLiBDb21tb24KPmZ1bmN0aW9ucyBkbyBub3Ro aW5nIG1vcmUgdGhhbiBqdXN0IGEgc3dpdGNoIGJ5IGZpZWxkIHR5cGUgdG8KPmNob29zZSBhIG1v cmUgc3BlY2lmaWMgZnVuY3Rpb24uCj4KPlR5cGVkIGZ1bmN0aW9ucyB3b3JrIHdpdGggYSBzcGVj aWZpYyB0eXBlLiBUaGV5IG1heSBjaGFuZ2UgdGhlCj5naXZlbiBmaWVsZCAoYWRkIGEgbmV3IGFy cmF5IGVsZW1lbnQsIHJlcGxhY2UgaXQgd2l0aCBhIG5ldyB2YWx1ZSwKPi4uLiksIG9yIG1heSBm b3J3YXJkIGFuIG9wZXJhdGlvbiBkZWVwZXIgaW4gY2FzZSB0aGV5IHNlZSB0aGF0IGl0cwo+SlNP TiBwYXRoIGlzIG5vdCBmdWxseSBwYXNzZWQgeWV0Lgo+Cj5QYXJ0IG9mICMxMjYxCgo= ----ALT--QjMOlBN6mZVHT9dcjm7yhuWoeqo0k22a1573226216 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPlRoYW5rcyBmb3IgdGhlIHBhdGNoITxicj48YnI+VGhlIGNoYW5nZXMgbG9v a3MgZ29vZCB0byBtZS4gRnJhbmtseSwgSSBkaWRuJ3QgcGVyZm9ybSBhIGJ5dGUtZXhhY3QgPGJy PmNvbXBhcmlzb24gb2YgZmFjdG9yaXphdGlvbiBiZXR3ZWVuIGZpbGVzIC0gdGVzdGluZyBpcyBn cmVlbiBmb3IgdGhlIGJyYW5jaC48YnI+PGJyPlJlZ2FyZHMsPGJyPlNlcmdvczxicj48YnI+PGJy PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2lu OjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPgoJVGh1cnNkYXksIE5vdmVtYmVyICA3LCAyMDE5 IDE6NTMgUE0gKzAzOjAwIGZyb20gVmxhZGlzbGF2IFNocGlsZXZveSAmbHQ7di5zaHBpbGV2b3lA dGFyYW50b29sLm9yZyZndDs6PGJyPgoJPGJyPgoJPGRpdiBpZD0iIj4KCgoKCgoKPGRpdiBjbGFz cz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9z dHlsZT4KIAk8ZGl2PgoJCQoJCQogICAgICAgICAgICA8ZGl2IGlkPSJzdHlsZV8xNTczMTIzOTgw MDUwMzgwMDE3NF9CT0RZIj5JIGdhdmUgdXAgdHJ5aW5nIHRvIHNwbGl0IHRoZXNlIGNoYW5nZXMs IGJlY2F1c2UgdGhleTxicj4KYXJlIGVpdGhlciB0b28gbWlub3IsIG9yIGFyZSBub3Qgc2VwYXJh YmxlIGF0IGFsbC4gS29zdGphPGJyPgpwcm9wb3NlZCB0byBkZXNjcmliZSB0aGVtIGluIGEgY2hh bmdlbGlzdCwgYW5kIGhlcmUgaXMgYTxicj4KbmV3IGNvbW1pdCBtZXNzYWdlOjxicj4KPGJyPgo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PTxicj4KPGJyPgp0dXBsZTogcmV3b3JrIHVwZGF0ZXMgdG8gaW1wcm92ZSBjb2Rl IGV4dGVuZGliaWxpdHk8YnI+Cjxicj4KQmVmb3JlIHRoZSBwYXRjaCB1cGRhdGUgd2FzIGltcGxl bWVudGVkIGFzIGEgc2V0IG9mIG9wZXJhdGlvbnM8YnI+CmFwcGxpY2FibGUgZm9yIGFycmF5cyBv bmx5LiBJdCB3YXMgb2sgdW50aWwgZmllbGQgbmFtZXMgYW5kIEpTT048YnI+CnBhdGhzIGFwcGVh cmFuY2UsIGJlY2F1c2UgdHVwbGUgaXMgYW4gYXJyYXkgb24gdGhlIHRvcCBsZXZlbC48YnI+Cjxi cj4KQnV0IG5vdyB0aGVyZSBhcmUgZm91ciByZWFzb25zIHRvIGFsbG93IG1vcmUgY29tcGxleCB1 cGRhdGVzIG9mPGJyPgp0dXBsZSBmaWVsZCBpbnRlcm5hbHMgYnkgSlNPTiBwYXRoczo8YnI+Cjxi cj4KJm5ic3A7Jm5ic3A7LSB0dXBsZSBmaWVsZCBhY2Nlc3MgYnkgSlNPTiBwYXRoIGlzIGFsbG93 ZWQgc28gZm9yIGNvbnNpc3RlbmN5PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtKU09OIHBh dGhzIHNob3VsZCBiZSBhbGxvd2VkIGluIHVwZGF0ZXMgYXMgd2VsbDs8YnI+Cjxicj4KJm5ic3A7 Jm5ic3A7LSBKU09OIGluZGV4ZXMgYXJlIHN1cHBvcnRlZC4gSlNPTiB1cGRhdGUgc2hvdWxkIGJl IGFibGUgdG88YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NoYW5nZSBhbiBpbmRleGVkIGZp ZWxkIHdpdGhvdXQgcmV3cml0aW5nIGhhbGYgb2YgYSB0dXBsZSwgYW5kPGJyPgombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtpdHMgZnVsbCByZXBsYWNlbWVudDs8YnI+Cjxicj4KJm5ic3A7Jm5ic3A7 LSBUYXJhbnRvb2wgaXMgZ29pbmcgdG8gc3VwcG9ydCBkb2N1bWVudHMgaW4gc3RvcmFnZSBzbyBK U09OPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwYXRoIHVwZGF0ZXMgaXMgb25lIG1vcmUg c3RlcCBmb3J3YXJkOzxicj4KPGJyPgombmJzcDsmbmJzcDstIEpTT04gdXBkYXRlcyBhcmUgZ29p bmcgdG8gYmUgZmFzdGVyIGFuZCBtb3JlIGNvbXBhY3QgaW4gV0FMPGJyPgombmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt0aGFuIGdldCArIGluLW1lbW9yeSBMdWEvY29ubmVjdG9yIHVwZGF0ZSArIHJl cGxhY2UgKG9yIHVwZGF0ZTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7b2YgYSB3aG9sZSB0 dXBsZSBmaWVsZCkuPGJyPgo8YnI+ClRoZSBwYXRjaCByZXdvcmtzIHRoZSBjdXJyZW50IHVwZGF0 ZSBjb2RlIGluIHN1Y2ggYSB3YXksIHRoYXQgbm93PGJyPgp1cGRhdGUgaXMgbm90IGp1c3QgYW4g YXJyYXkgb2Ygb3BlcmF0aW9ucywgYXBwbGllZCB0byB0dXBsZSdzIHRvcDxicj4KbGV2ZWwgZmll bGRzLiBOb3cgaXQgaXMgYSB0cmVlLCBqdXN0IGxpa2UgdHVwbGVzIGFyZS48YnI+Cjxicj4KVGhl IGNvbmNlcHQgaXMgdG8gYnVpbGQgYSB0cmVlIG9mIHhyb3dfdXBkYXRlX2ZpZWxkIG9iamVjdHMu IEVhY2g8YnI+CnVwZGF0ZXMgYSBwYXJ0IG9mIGEgdHVwbGUuIExlYWZzIGluIHRoZSB0cmVlIGNv bnRhaW4gdXBkYXRlPGJyPgpvcGVyYXRpb25zLCBzcGVjaWZpZWQgYnkgYSB1c2VyLCBhcyB4cm93 X3VwZGF0ZV9vcCBvYmplY3RzLjxicj4KPGJyPgpUbyBtYWtlIHRoZSBjb2RlIHN1cHBvcnQgYW5k IHVuZGVyc3RhbmRpbmcgc2ltcGxlciwgdGhlIHBhdGNoPGJyPgpzcGxpdHMgdXBkYXRlIGltcGxl bWVudGF0aW9uIGludG8gc2V2ZXJhbCBpbmRlcGVuZGVudDxicj4KZmlsZXMtbW9kdWxlcyBmb3Ig ZWFjaCB0eXBlIG9mIGFuIHVwZGF0ZWQgZmllbGQuIE9uZSBmaWxlPGJyPgpkZXNjcmliZXMgaG93 IHRvIHVwZGF0ZSBhbiBhcnJheSBmaWVsZCwgYW5vdGhlciBmaWxlIC0gaG93IHRvPGJyPgp1cGRh dGUgYSBtYXAgZmllbGQsIGV0Yy4gVGhpcyBjb21taXQgaW50cm9kdWNlcyBvbmx5IGFycmF5LiBK dXN0PGJyPgpiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IHN1cHBvcnRlZCBiZWZvcmUgdGhlIHBhdGNo LiBOZXh0IGNvbW1pdHM8YnI+CndpbGwgaW50cm9kdWNlIG1vcmUgdHlwZXMgb25lIGJ5IG9uZS48 YnI+Cjxicj4KQmVzaWRlcywgdGhlIHBhdGNoIG1ha2VzIHNvbWUgbWlub3IgY2hhbmdlcywgbm90 IHNlcGFyYWJsZSBmcm9tPGJyPgp0aGlzIGNvbW1pdDo8YnI+Cjxicj4KJm5ic3A7Jm5ic3A7LSBU aGUgYmlnIGNvbW1lbnQgYWJvdXQgeHJvdyB1cGRhdGVzIGluIHhyb3dfdXBkYXRlLmMgaXM8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3VwZGF0ZWQuIE5vdyBpdCBkZXNjcmliZXMgdGhlIHRy ZWUtaWRlYSBwcmVzZW50ZWQgYWJvdmU7PGJyPgo8YnI+CiZuYnNwOyZuYnNwOy0gQ29tbWVudHMg d2VyZSBwcm9wZXJseSBhbGlnbmVkIGJ5IDY2IHN5bWJvbHMgaW4gYWxsIHRoZSBtb3ZlZDxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7b3IgY2hhbmdlZCBjb2RlLiBOb3QgYWZmZWN0ZWQgY29k ZSBpcyBrZXB0IGFzIGlzIHNvIGFzIG5vdCB0bzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 aW5jcmVhc2UgdGhlIGRpZmYgZXZlbiBtb3JlOzxicj4KPGJyPgombmJzcDsmbmJzcDstIEFkZGVk IG1pc3NpbmcgY29tbWVudHMgdG8gbW92ZWQgb3IgY2hhbmdlZCBzdHJ1Y3R1cmVzIGFuZDxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGhlaXIgYXR0cmlidXRlcyBzdWNoIGFzIHN0cnVjdCB4 cm93X3VwZGF0ZSw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3N0cnVjdCB4cm93X3VwZGF0 ZV9vcF9tZXRhLCBzdHJ1Y3QgeHJvd191cGRhdGVfb3AuPGJyPgo8YnI+CiZuYnNwOyZuYnNwOy0g U3RydWN0IHhyb3dfdXBkYXRlX2ZpZWxkIHdhcyBzaWduaWZpY2FudGx5IHJld29ya2VkLiBOb3cg aXQgaXM8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO25vdCBqdXN0IGEgY291cGxlIG9mIHBv aW50ZXJzIGF0IHR1cGxlJ3MgdG9wIGxldmVsIGFycmF5LiBGcm9tPGJyPgombmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtub3cgaXQgc3RvcmVzIHR5cGUgb2YgdGhlIHVwZGF0ZWQgZmllbGQsIHJhbmdl IG9mIGl0cyBzb3VyY2U8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RhdGEgaW4gdGhlIG9y aWdpbmFsIHR1cGxlLCBhbmQgYSBzdWJ0cmVlIG9mIG90aGVyIHVwZGF0ZTxicj4KJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ZmllbGRzIGFwcGxpZWQgdG8gdGhlIG9yaWdpbmFsIGRhdGEuPGJyPgo8 YnI+CiZuYnNwOyZuYnNwOy0gQWRkZWQgbWlzc2luZyBjb21tZW50cyB0byBzb21lIGZ1bmN0aW9u cyB3aGljaCBJIG1vdmVkIGFuZDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZGVjaWRlZCB3 b3J0aCBjb21tZW50aW5nIGFsb25nc2lkZSwgc3VjaCBhczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7eHJvd191cGRhdGVfb3BfYWRqdXN0X2ZpZWxkX25vKCksIHhyb3dfdXBkYXRlX2FsbG9j KCkuPGJyPgo8YnI+CiZuYnNwOyZuYnNwOy0gRnVuY3Rpb25zIHhyb3dfdXBkYXRlX29wX2RvX2Ys IHhyb3dfdXBkYXRlX29wX3JlYWRfYXJnX2YsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt4 cm93X3VwZGF0ZV9vcF9zdG9yZV9mIGFyZSBzZXBhcmF0ZWQgZnJvbSBzdHJ1Y3QgeHJvd191cGRh dGUsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzbyBhcyB0aGV5IGNvdWxkIGJlIGNhbGxl ZCBvbiBhbnkgdXBkYXRlZCBmaWVsZCBpbiB0aGUgdHJlZS48YnI+CiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO0Zyb20gdGhpcyBtb21lbnQgdGhleSBhcmUgbWV0aG9kcyBvZiBzdHJ1Y3QgeHJvd191 cGRhdGVfb3AuPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGV5IHRha2UgYW4gb3AgYXMg YSBmaXJzdCBhcmd1bWVudCAobGlrZSAndGhpcycgaW4gQysrKSwgYW5kPGJyPgombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDthcmUgYXBwbGllZCB0byBhIGdpdmVuIHN0cnVjdCB4cm93X3VwZGF0ZV9m aWVsZC48YnI+Cjxicj4KQW5vdGhlciBub3RhYmxlLCBidXQgbm90IHNlcGFyYWJsZSwgY2hhbmdl IGlzIGEgbmV3IG5hbWluZyBzY2hlbWE8YnI+CmZvciB0aGUgbWV0aG9kcyBvZiBzdHJ1Y3QgeHJv d191cGRhdGVfZmllbGQgYW5kIHN0cnVjdDxicj4KeHJvd191cGRhdGVfb3AuIFRoaXMgaXMgbW90 aXZhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgc3RydWN0PGJyPgp4cm93X3VwZGF0ZV9maWVsZCBub3cg aGFzIGEgdHlwZSwgYW5kIG1pZ2h0IGJlIG5vdCBhIHRlcm1pbmFsLjxicj4KPGJyPgpUaGVyZSBh cmUgbm93IHR3byBncm91cHMgb2YgZnVuY3Rpb25zLiBHZW5lcmljIGZ1bmN0aW9ucyB3b3JraW5n PGJyPgp3aXRoIHN0cnVjdCB4cm93X3VwZGF0ZV9maWVsZCBvZiBhbnkgdHlwZTo8YnI+Cjxicj4K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7eHJvd191cGRhdGVfZmllbGRfc2l6ZW9mPGJyPgombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDt4cm93X3VwZGF0ZV9maWVsZF9zdG9yZTxicj4KJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7eHJvd191cGRhdGVfb3BfZG9fZmllbGRfJmx0O29wZXJhdGlvbiZndDs8 YnI+Cjxicj4KQW5kIHR5cGVkIGZ1bmN0aW9uczo8YnI+Cjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7eHJvd191cGRhdGVfJmx0O3R5cGUmZ3Q7X3NpemVvZjxicj4KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7eHJvd191cGRhdGVfJmx0O3R5cGUmZ3Q7X3N0b3JlPGJyPgombmJzcDsmbmJzcDsm bmJzcDsmbmJzcDt4cm93X3VwZGF0ZV9vcF9kb18mbHQ7dHlwZSZndDtfJmx0O29wZXJhdGlvbiZn dDs8YnI+Cjxicj4KV2hlcmU8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO29wZXJhdGlvbiA9 IGluc2VydC9kZWxldGUvc2V0L2FyaXRoIC4uLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dHlwZSA9IGFycmF5L21hcC9iYXIvc2NhbGFy IC4uLjxicj4KPGJyPgpDb21tb24gZnVuY3Rpb25zIGFyZSB1c2VkIHdoZW4gdHlwZSBvZiBhIGZp ZWxkIHRvIHVwZGF0ZSBpcyBub3Q8YnI+Cmtub3duIGluIGFkdmFuY2UuIEZvciBleGFtcGxlLCB3 aGVuIGFuIG9wZXJhdGlvbiBpcyBhcHBsaWVkIHRvIG9uZTxicj4Kb2YgZmllbGRzIG9mIGFuIGFy cmF5LCBpdCBpcyBub3Qga25vd24gd2hhdCBhIHR5cGUgdGhpcyBmaWVsZCBoYXM6PGJyPgphbm90 aGVyIGFycmF5LCBzY2FsYXIsIG5vdCBjaGFuZ2VkIGZpZWxkLCBtYXAsIGV0Yy4gQ29tbW9uPGJy PgpmdW5jdGlvbnMgZG8gbm90aGluZyBtb3JlIHRoYW4ganVzdCBhIHN3aXRjaCBieSBmaWVsZCB0 eXBlIHRvPGJyPgpjaG9vc2UgYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uLjxicj4KPGJyPgpUeXBl ZCBmdW5jdGlvbnMgd29yayB3aXRoIGEgc3BlY2lmaWMgdHlwZS4gVGhleSBtYXkgY2hhbmdlIHRo ZTxicj4KZ2l2ZW4gZmllbGQgKGFkZCBhIG5ldyBhcnJheSBlbGVtZW50LCByZXBsYWNlIGl0IHdp dGggYSBuZXcgdmFsdWUsPGJyPgouLi4pLCBvciBtYXkgZm9yd2FyZCBhbiBvcGVyYXRpb24gZGVl cGVyIGluIGNhc2UgdGhleSBzZWUgdGhhdCBpdHM8YnI+CkpTT04gcGF0aCBpcyBub3QgZnVsbHkg cGFzc2VkIHlldC48YnI+Cjxicj4KUGFydCBvZiAjMTI2MTxicj4KPC9kaXY+CiAgICAgICAgICAg IAogICAgICAgIAoJCQoJPC9kaXY+CgoJCjwvZGl2PgoKCjwvZGl2Pgo8L2Jsb2NrcXVvdGU+Cjxi cj48L0JPRFk+PC9IVE1MPgo= ----ALT--QjMOlBN6mZVHT9dcjm7yhuWoeqo0k22a1573226216--