From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f185.i.mail.ru (f185.i.mail.ru [128.140.171.95]) (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 64251446439 for ; Sun, 27 Sep 2020 00:53:15 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Sun, 27 Sep 2020 00:53:14 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1601157194.729560301@f185.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--f571883cC62Ce3E220ED92d815E78aA91601157194" In-Reply-To: <20200925183450.atsuxr4ine7c2dv7@tkn_work_nb> References: <20200921121100.10052-1-i.kosarev@tarantool.org> <20200925183450.atsuxr4ine7c2dv7@tkn_work_nb> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_key=5Fdef=3A_support_co?= =?utf-8?q?mposite_types_extraction?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxleGFuZGVyIFR1cmVua28=?= Cc: tarantool-patches@dev.tarantool.org ----ALT--f571883cC62Ce3E220ED92d815E78aA91601157194 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLAoKVGhhbmtzIGZvciB5b3VyIHJldmlldyEKwqAKU2VudCB2MiBvZiB0aGUgcGF0Y2ggY29u c2lkZXJpbmcgeW91ciBjb21tZW50cy4gCj7Qn9GP0YLQvdC40YbQsCwgMjUg0YHQtdC90YLRj9Cx 0YDRjyAyMDIwLCAyMTozNCArMDM6MDAg0L7RgiBBbGV4YW5kZXIgVHVyZW5rbyA8YWxleGFuZGVy LnR1cmVua29AdGFyYW50b29sLm9yZz46Cj7CoAo+SSBoYXZlIG5vIG9iamVjdGlvbnMgaW4gZ2Vu ZXJhbCwgYnV0IHRoZXJlIGFyZSBkb3VidHMgYXJvdW5kIHNldmVyYWwKPnBsYWNlcy4gUGxlYXNl LCBsb29rIGJlbG93Lgo+Cj5XQlIsIEFsZXhhbmRlciBUdXJlbmtvLgo+Cj4+ICtzdGF0aWMgYm9v bAo+PiAra2V5X2RlZl9jb21wYXJhYmxlKHN0cnVjdCBrZXlfZGVmICprZXlfZGVmKQo+Cj5XaGF0 IG1ha2UgbWUgZG91YnQ6IGtleV9kZWYgaXMgbm90IGNvbXBhcmFibGUgcGVyIHNlLCBpdCBtYXkg b3IgbWF5IG5vdAo+YmUgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiB0dXBsZXMgYW5kIGEgdHVwbGUg d2l0aCBhIGtleS4KPidrZXlfZGVmX2hhc19jb21wYXJhdG9yJyBvciAna2V5X2RlZl9jYW5fY29t cGFyZScgKGhvd2V2ZXIgbm90IGtleV9kZWYKPml0c2VsZiBwZXJmb3JtIGNvbXBhcmlzb25zLCBo bW0pLCBtYXliZSwgZG9uJ3Qga25vdy4KV2VsbCwgeWVzLiBJIG1lYW50IGtleV9kZWYgYXMgYSBt b2R1bGUgYWZmaWxpYXRpb24gaGVyZSwgbm90IGxpa2UgYW4gb2JqZWN0LgpHb29kIHRoaW5nIGlz IHRoYXQgd2UgZG9u4oCZdCByZWFsbHkgbmVlZCBzZXBhcmF0ZSBmdW5jdGlvbiB3aXRoIHRoZSBu ZXfCoGFwcHJvYWNoIQo+Cj4+ICt7Cj4+ICsgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGtleV9k ZWYtPnBhcnRfY291bnQ7ICsraSkgewo+PiArIGlmIChrZXlfZGVmLT5wYXJ0c1tpXS50eXBlID09 IEZJRUxEX1RZUEVfQU5ZIHx8Cj4+ICsga2V5X2RlZi0+cGFydHNbaV0udHlwZSA9PSBGSUVMRF9U WVBFX0FSUkFZIHx8Cj4+ICsga2V5X2RlZi0+cGFydHNbaV0udHlwZSA9PSBGSUVMRF9UWVBFX01B UCkgewo+PiArIC8qIFR1cGxlIGNvbXBhcmF0b3JzIGRvbid0IHN1cHBvcnQgdGhlc2UgdHlwZXMu ICovCj4+ICsgZGlhZ19zZXQoSWxsZWdhbFBhcmFtcywgIlVuc3VwcG9ydGVkIGZpZWxkIHR5cGU6 ICVzIiwKPj4gKyBmaWVsZF90eXBlX3N0cnNba2V5X2RlZi0+cGFydHNbaV0udHlwZV0pOwo+PiAr IHJldHVybiBmYWxzZTsKPj4gKyB9Cj4+ICsgfQo+PiArIHJldHVybiB0cnVlOwo+PiArfQo+PiAr Cj4KPklseWEgZ2l2ZXMgdGhlIGlkZWE6IHBlcmZvcm0gdGhpcyBjaGVjayBvbiBrZXlfZGVmIGNy ZWF0aW9uIGFuZCBzdG9yZSBhCj5mbGFnIGluc2lkZSBrZXlfZGVmLiBDaGVjayBhZ2FpbnN0IHRo ZSBmbGFnIGluIGxib3hfa2V5X2RlZl9jb21wYXJlKCkKPmFuZCBsYm94X2tleV9kZWZfY29tcGFy ZV93aXRoX2tleSgpLgo+Cj5UaGlzIGxvb2tzIGFzIHRoZSByaWdodCB3YXkgdG8gc29sdmUgdGhp cyBraW5kIG9mIHByb2JsZW1zOiBjb21wYXJpc29ucwo+YXJlIG1vcmUgaG90IGZ1bmN0aW9ucyB0 aGFuIGtleV9kZWYgY3JlYXRpb24uCj4KPldlIGNhbiBzaW5rIGl0IGRvd24gdG8ga2V5X2RlZl9z ZXRfY29tcGFyZV9mdW5jKCkgYW5kIHNldCBOVUxMIHRvCj5rZXlfZGVmLT57dHVwbGVfY29tcGFy ZSx0dXBsZV9jb21wYXJlX3dpdGhfa2V5fS4gVGhhbiBjaGVjayBpdCBpbgo+bGJveF9rZXlfZGVm X2NvbXBhcmUqKCkgYW5kIGFkZCBhc3NlcnRzIHRvIHR1cGxlX2NvbXBhcmUqKCkuIE5vIG5ldwo+ ZmllbGRzIHdpbGwgYmUgcmVxdWlyZWQgc28uClllcyEgVGhpcyBzZWVtcyBsaWtlIHRoZcKgcmln aHQgY2hvaWNlLiBUaG91Z2ggd2Ugc3RpbGwgbmVlZCBhIGZpZWxkIGhlcmU6CnNvbWV3aGVyZSB0 byBzdG9yZSB0aGUgdW5zdXBwb3J0ZWQgdHlwZSB0byBzaG93IGl0IHRvIHRoZSB1c2VyIGFueSB0 aW1lCmhlIHRyaWVzIHRvIGNvbXBhcmUuIEltcGxlbWVudGVkIGluIHYyIG9mIHRoZSBwYXRjaC4K Pgo+VGhpcyBwYXJ0IHN1cmVseSBzaG91bGQgbG9vayBzb21lb25lLCB3aG8gaXMgbW9yZSBuZWFy IHRvIGNvbXBhcmF0b3JzCj50aGFuIG1lLgo+Cj4+IC8qKgo+PiAqIEZyZWUgYSBrZXlfZGVmIGZy b20gYSBMdWEgY29kZS4KPj4gKi8KPj4gQEAgLTMxNiw2ICszMjAsOSBAQCBsYm94X2tleV9kZWZf Y29tcGFyZShzdHJ1Y3QgbHVhX1N0YXRlICpMKQo+PiAiY29tcGFyZSh0dXBsZV9hLCB0dXBsZV9i KSIpOwo+PiB9Cj4+Cj4+ICsgaWYgKCFrZXlfZGVmX2NvbXBhcmFibGUoa2V5X2RlZikpCj4+ICsg cmV0dXJuIGx1YVRfZXJyb3IoTCk7Cj4+ICsKPj4gc3RydWN0IHR1cGxlICp0dXBsZV9hLCAqdHVw bGVfYjsKPj4gaWYgKCh0dXBsZV9hID0gbHVhVF9rZXlfZGVmX2NoZWNrX3R1cGxlKEwsIGtleV9k ZWYsIDIpKSA9PSBOVUxMKQo+PiByZXR1cm4gbHVhVF9lcnJvcihMKTsKPj4gQEAgLTM0OSw2ICsz NTYsOSBAQCBsYm94X2tleV9kZWZfY29tcGFyZV93aXRoX2tleShzdHJ1Y3QgbHVhX1N0YXRlICpM KQo+PiAiY29tcGFyZV93aXRoX2tleSh0dXBsZSwga2V5KSIpOwo+PiB9Cj4+Cj4+ICsgaWYgKCFr ZXlfZGVmX2NvbXBhcmFibGUoa2V5X2RlZikpCj4+ICsgcmV0dXJuIGx1YVRfZXJyb3IoTCk7Cj4+ ICsKPj4gc3RydWN0IHR1cGxlICp0dXBsZSA9IGx1YVRfa2V5X2RlZl9jaGVja190dXBsZShMLCBr ZXlfZGVmLCAyKTsKPj4gaWYgKHR1cGxlID09IE5VTEwpCj4+IHJldHVybiBsdWFUX2Vycm9yKEwp Owo+PiBkaWZmIC0tZ2l0IGEvdGVzdC9ib3gtdGFwL2tleV9kZWYudGVzdC5sdWEgYi90ZXN0L2Jv eC10YXAva2V5X2RlZi50ZXN0Lmx1YQo+PiBpbmRleCAzYTRhYWQ2ODcyMS4uOGZjZGY3MDcwYmYg MTAwNzU1Cj4KPkhvdyBhYm91dCBsYm94X2tleV9kZWZfbWVyZ2UoKSBhbmQgdW5kZXJseWluZyBm dW5jdGlvbnM/IEknbSBub3Qgc3VyZQo+dGhleSB3aWxsIHdvcmsgY29ycmVjdC4gQXQgbGVhc3Qg SSB0cmllZCB0aGlzIG9uIHRoZSBicmFuY2g6Cj4KPsKgfCB0YXJhbnRvb2w+IGtleV9kZWYgPSBy ZXF1aXJlKCdrZXlfZGVmJykKPsKgfCB0YXJhbnRvb2w+IGtkMSA9IGtleV9kZWYubmV3KHt7Zmll bGRubyA9IDEsIHR5cGUgPSAnYXJyYXknfX0pCj7CoHwgdGFyYW50b29sPiBrZDIgPSBrZXlfZGVm Lm5ldyh7e2ZpZWxkbm8gPSAxLCB0eXBlID0gJ21hcCd9fSkKPsKgfCB0YXJhbnRvb2w+IGtkMTpt ZXJnZShrZDIpCj7CoHwgLS0tCj7CoHwgLSAtIHR5cGU6IGFycmF5Cj7CoHwgaXNfbnVsbGFibGU6 IGZhbHNlCj7CoHwgZmllbGRubzogMQo+wqB8IC4uLgo+Cj5JdCBkb2VzIG5vdCBsb29rIGNvcnJl Y3QuClRoaXMgdHVybnMgb3V0IHRvIGJlIHRoZSBjb3JyZWN0IGJlaGF2aW9yOgrCoAp0YXJhbnRv b2w+IGtkMSA9IGtleV9kZWYubmV3KHt7ZmllbGRubyA9IDEsIHR5cGUgPSAndW5zaWduZWQnfX0p Ci0tLQouLi4KdGFyYW50b29sPiBrZDIgPSBrZXlfZGVmLm5ldyh7e2ZpZWxkbm8gPSAxLCB0eXBl ID0gJ3N0cmluZyd9fSkKLS0tCi4uLgp0YXJhbnRvb2w+IGtkMTptZXJnZShrZDIpCi0tLQotIC0g dHlwZTogdW5zaWduZWQKwqAgwqAgaXNfbnVsbGFibGU6IGZhbHNlCsKgIMKgIGZpZWxkbm86IDEK 4oCmCsKgCkkgZGVjaWRlZMKgdGhlc2UgZnVuY3Rpb25zIGRvbuKAmXQgcmVhbGx5IGludGVyZmVy ZSBhbmQgZGlkbuKAmXQgbWFuYWdlIHRvIHRlc3QuCkFsdGhvdWdoIHRoaXMgaXMga2luZGEgdHJ1 ZSBmb3Igbm93LCB0aGF0IHdhc27igJl0IGEgY29ycmVjdCBkZWNpc2lvbiwgYXMgZmFyIGFzCmJl aGF2aW9ywqBtaWdodCBiZSBjaGFuZ2VkLsKgQWRkaW5nIHRoZSB0ZXN0cyBpbiB0aGUgdjIgb2Yg dGhlIHBhdGNoLgo+Cj5FdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBsYm94X2tleV9kZWZfdG9f dGFibGUoKSwgYnV0IEkgd291bGQgYWRkIGEKPnRlc3QgYW55d2F5LiAKwqAKwqAKLS0KSWx5YSBL b3NhcmV2CsKg ----ALT--f571883cC62Ce3E220ED92d815E78aA91601157194 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5IaSw8YnI+PGJyPlRoYW5rcyBmb3IgeW91ciByZXZpZXch PC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PlNlbnQgdjIgb2YgdGhlIHBhdGNoIGNvbnNpZGVy aW5nIHlvdXIgY29tbWVudHMuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFw eCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+0J/Rj9GC 0L3QuNGG0LAsIDI1INGB0LXQvdGC0Y/QsdGA0Y8gMjAyMCwgMjE6MzQgKzAzOjAwINC+0YIgQWxl eGFuZGVyIFR1cmVua28gJmx0O2FsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmcmZ3Q7Ojxi cj4mbmJzcDs8ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+ PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTYwMTA1 ODg4MDA5MzIwNzMxODdfQk9EWSI+SSBoYXZlIG5vIG9iamVjdGlvbnMgaW4gZ2VuZXJhbCwgYnV0 IHRoZXJlIGFyZSBkb3VidHMgYXJvdW5kIHNldmVyYWw8YnI+cGxhY2VzLiBQbGVhc2UsIGxvb2sg YmVsb3cuPGJyPjxicj5XQlIsIEFsZXhhbmRlciBUdXJlbmtvLjxicj48YnI+Jmd0OyArc3RhdGlj IGJvb2w8YnI+Jmd0OyAra2V5X2RlZl9jb21wYXJhYmxlKHN0cnVjdCBrZXlfZGVmICprZXlfZGVm KTxicj48YnI+V2hhdCBtYWtlIG1lIGRvdWJ0OiBrZXlfZGVmIGlzIG5vdCBjb21wYXJhYmxlIHBl ciBzZSwgaXQgbWF5IG9yIG1heSBub3Q8YnI+YmUgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiB0dXBs ZXMgYW5kIGEgdHVwbGUgd2l0aCBhIGtleS48YnI+J2tleV9kZWZfaGFzX2NvbXBhcmF0b3InIG9y ICdrZXlfZGVmX2Nhbl9jb21wYXJlJyAoaG93ZXZlciBub3Qga2V5X2RlZjxicj5pdHNlbGYgcGVy Zm9ybSBjb21wYXJpc29ucywgaG1tKSwgbWF5YmUsIGRvbid0IGtub3cuPC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXY+V2VsbCwgeWVzLiBJIG1lYW50IGtleV9k ZWYgYXMgYSBtb2R1bGUgYWZmaWxpYXRpb24gaGVyZSwgbm90IGxpa2UgYW4gb2JqZWN0LjwvZGl2 PjxkaXY+R29vZCB0aGluZyBpcyB0aGF0IHdlIGRvbuKAmXQgcmVhbGx5IG5lZWQgc2VwYXJhdGUg ZnVuY3Rpb24gd2l0aCB0aGUgbmV3Jm5ic3A7YXBwcm9hY2ghPC9kaXY+PGRpdj48YmxvY2txdW90 ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRk aW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1z ZyI+PGRpdj48ZGl2Pjxicj4mZ3Q7ICt7PGJyPiZndDsgKyBmb3IgKHVpbnQzMl90IGkgPSAwOyBp ICZsdDsga2V5X2RlZi0mZ3Q7cGFydF9jb3VudDsgKytpKSB7PGJyPiZndDsgKyBpZiAoa2V5X2Rl Zi0mZ3Q7cGFydHNbaV0udHlwZSA9PSBGSUVMRF9UWVBFX0FOWSB8fDxicj4mZ3Q7ICsga2V5X2Rl Zi0mZ3Q7cGFydHNbaV0udHlwZSA9PSBGSUVMRF9UWVBFX0FSUkFZIHx8PGJyPiZndDsgKyBrZXlf ZGVmLSZndDtwYXJ0c1tpXS50eXBlID09IEZJRUxEX1RZUEVfTUFQKSB7PGJyPiZndDsgKyAvKiBU dXBsZSBjb21wYXJhdG9ycyBkb24ndCBzdXBwb3J0IHRoZXNlIHR5cGVzLiAqLzxicj4mZ3Q7ICsg ZGlhZ19zZXQoSWxsZWdhbFBhcmFtcywgIlVuc3VwcG9ydGVkIGZpZWxkIHR5cGU6ICVzIiw8YnI+ Jmd0OyArIGZpZWxkX3R5cGVfc3Ryc1trZXlfZGVmLSZndDtwYXJ0c1tpXS50eXBlXSk7PGJyPiZn dDsgKyByZXR1cm4gZmFsc2U7PGJyPiZndDsgKyB9PGJyPiZndDsgKyB9PGJyPiZndDsgKyByZXR1 cm4gdHJ1ZTs8YnI+Jmd0OyArfTxicj4mZ3Q7ICs8YnI+PGJyPklseWEgZ2l2ZXMgdGhlIGlkZWE6 IHBlcmZvcm0gdGhpcyBjaGVjayBvbiBrZXlfZGVmIGNyZWF0aW9uIGFuZCBzdG9yZSBhPGJyPmZs YWcgaW5zaWRlIGtleV9kZWYuIENoZWNrIGFnYWluc3QgdGhlIGZsYWcgaW4gbGJveF9rZXlfZGVm X2NvbXBhcmUoKTxicj5hbmQgbGJveF9rZXlfZGVmX2NvbXBhcmVfd2l0aF9rZXkoKS48YnI+PGJy PlRoaXMgbG9va3MgYXMgdGhlIHJpZ2h0IHdheSB0byBzb2x2ZSB0aGlzIGtpbmQgb2YgcHJvYmxl bXM6IGNvbXBhcmlzb25zPGJyPmFyZSBtb3JlIGhvdCBmdW5jdGlvbnMgdGhhbiBrZXlfZGVmIGNy ZWF0aW9uLjxicj48YnI+V2UgY2FuIHNpbmsgaXQgZG93biB0byBrZXlfZGVmX3NldF9jb21wYXJl X2Z1bmMoKSBhbmQgc2V0IE5VTEwgdG88YnI+a2V5X2RlZi0mZ3Q7e3R1cGxlX2NvbXBhcmUsdHVw bGVfY29tcGFyZV93aXRoX2tleX0uIFRoYW4gY2hlY2sgaXQgaW48YnI+bGJveF9rZXlfZGVmX2Nv bXBhcmUqKCkgYW5kIGFkZCBhc3NlcnRzIHRvIHR1cGxlX2NvbXBhcmUqKCkuIE5vIG5ldzxicj5m aWVsZHMgd2lsbCBiZSByZXF1aXJlZCBzby48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PC9kaXY+PGRpdj5ZZXMhIFRoaXMgc2VlbXMgbGlrZSB0aGUmbmJzcDtyaWdodCBjaG9p Y2UuIFRob3VnaCB3ZSBzdGlsbCBuZWVkIGEgZmllbGQgaGVyZTo8L2Rpdj48ZGl2PnNvbWV3aGVy ZSB0byBzdG9yZSB0aGUgdW5zdXBwb3J0ZWQgdHlwZSB0byBzaG93IGl0IHRvIHRoZSB1c2VyIGFu eSB0aW1lPC9kaXY+PGRpdj5oZSB0cmllcyB0byBjb21wYXJlLiBJbXBsZW1lbnRlZCBpbiB2MiBv ZiB0aGUgcGF0Y2guPC9kaXY+PGRpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4 IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2Pjxk aXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2Pjxicj5UaGlzIHBh cnQgc3VyZWx5IHNob3VsZCBsb29rIHNvbWVvbmUsIHdobyBpcyBtb3JlIG5lYXIgdG8gY29tcGFy YXRvcnM8YnI+dGhhbiBtZS48YnI+PGJyPiZndDsgLyoqPGJyPiZndDsgKiBGcmVlIGEga2V5X2Rl ZiBmcm9tIGEgTHVhIGNvZGUuPGJyPiZndDsgKi88YnI+Jmd0OyBAQCAtMzE2LDYgKzMyMCw5IEBA IGxib3hfa2V5X2RlZl9jb21wYXJlKHN0cnVjdCBsdWFfU3RhdGUgKkwpPGJyPiZndDsgImNvbXBh cmUodHVwbGVfYSwgdHVwbGVfYikiKTs8YnI+Jmd0OyB9PGJyPiZndDs8YnI+Jmd0OyArIGlmICgh a2V5X2RlZl9jb21wYXJhYmxlKGtleV9kZWYpKTxicj4mZ3Q7ICsgcmV0dXJuIGx1YVRfZXJyb3Io TCk7PGJyPiZndDsgKzxicj4mZ3Q7IHN0cnVjdCB0dXBsZSAqdHVwbGVfYSwgKnR1cGxlX2I7PGJy PiZndDsgaWYgKCh0dXBsZV9hID0gbHVhVF9rZXlfZGVmX2NoZWNrX3R1cGxlKEwsIGtleV9kZWYs IDIpKSA9PSBOVUxMKTxicj4mZ3Q7IHJldHVybiBsdWFUX2Vycm9yKEwpOzxicj4mZ3Q7IEBAIC0z NDksNiArMzU2LDkgQEAgbGJveF9rZXlfZGVmX2NvbXBhcmVfd2l0aF9rZXkoc3RydWN0IGx1YV9T dGF0ZSAqTCk8YnI+Jmd0OyAiY29tcGFyZV93aXRoX2tleSh0dXBsZSwga2V5KSIpOzxicj4mZ3Q7 IH08YnI+Jmd0Ozxicj4mZ3Q7ICsgaWYgKCFrZXlfZGVmX2NvbXBhcmFibGUoa2V5X2RlZikpPGJy PiZndDsgKyByZXR1cm4gbHVhVF9lcnJvcihMKTs8YnI+Jmd0OyArPGJyPiZndDsgc3RydWN0IHR1 cGxlICp0dXBsZSA9IGx1YVRfa2V5X2RlZl9jaGVja190dXBsZShMLCBrZXlfZGVmLCAyKTs8YnI+ Jmd0OyBpZiAodHVwbGUgPT0gTlVMTCk8YnI+Jmd0OyByZXR1cm4gbHVhVF9lcnJvcihMKTs8YnI+ Jmd0OyBkaWZmIC0tZ2l0IGEvdGVzdC9ib3gtdGFwL2tleV9kZWYudGVzdC5sdWEgYi90ZXN0L2Jv eC10YXAva2V5X2RlZi50ZXN0Lmx1YTxicj4mZ3Q7IGluZGV4IDNhNGFhZDY4NzIxLi44ZmNkZjcw NzBiZiAxMDA3NTU8YnI+PGJyPkhvdyBhYm91dCBsYm94X2tleV9kZWZfbWVyZ2UoKSBhbmQgdW5k ZXJseWluZyBmdW5jdGlvbnM/IEknbSBub3Qgc3VyZTxicj50aGV5IHdpbGwgd29yayBjb3JyZWN0 LiBBdCBsZWFzdCBJIHRyaWVkIHRoaXMgb24gdGhlIGJyYW5jaDo8YnI+PGJyPiZuYnNwO3wgdGFy YW50b29sJmd0OyBrZXlfZGVmID0gcmVxdWlyZSgna2V5X2RlZicpPGJyPiZuYnNwO3wgdGFyYW50 b29sJmd0OyBrZDEgPSBrZXlfZGVmLm5ldyh7e2ZpZWxkbm8gPSAxLCB0eXBlID0gJ2FycmF5J319 KTxicj4mbmJzcDt8IHRhcmFudG9vbCZndDsga2QyID0ga2V5X2RlZi5uZXcoe3tmaWVsZG5vID0g MSwgdHlwZSA9ICdtYXAnfX0pPGJyPiZuYnNwO3wgdGFyYW50b29sJmd0OyBrZDE6bWVyZ2Uoa2Qy KTxicj4mbmJzcDt8IC0tLTxicj4mbmJzcDt8IC0gLSB0eXBlOiBhcnJheTxicj4mbmJzcDt8IGlz X251bGxhYmxlOiBmYWxzZTxicj4mbmJzcDt8IGZpZWxkbm86IDE8YnI+Jm5ic3A7fCAuLi48YnI+ PGJyPkl0IGRvZXMgbm90IGxvb2sgY29ycmVjdC48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Js b2NrcXVvdGU+PC9kaXY+PGRpdj5UaGlzIHR1cm5zIG91dCB0byBiZSB0aGUgY29ycmVjdCBiZWhh dmlvcjo8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6 NDBweCI+dGFyYW50b29sJmd0OyBrZDEgPSBrZXlfZGVmLm5ldyh7e2ZpZWxkbm8gPSAxLCB0eXBl ID0gJ3Vuc2lnbmVkJ319KTxicj4tLS08YnI+Li4uPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWxl ZnQ6NDBweCI+dGFyYW50b29sJmd0OyBrZDIgPSBrZXlfZGVmLm5ldyh7e2ZpZWxkbm8gPSAxLCB0 eXBlID0gJ3N0cmluZyd9fSk8YnI+LS0tPGJyPi4uLjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1s ZWZ0OjQwcHgiPnRhcmFudG9vbCZndDsga2QxOm1lcmdlKGtkMik8YnI+LS0tPGJyPi0gLSB0eXBl OiB1bnNpZ25lZDxicj4mbmJzcDsgJm5ic3A7IGlzX251bGxhYmxlOiBmYWxzZTxicj4mbmJzcDsg Jm5ic3A7IGZpZWxkbm86IDE8YnI+4oCmPC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PkkgZGVj aWRlZCZuYnNwO3RoZXNlIGZ1bmN0aW9ucyBkb27igJl0IHJlYWxseSBpbnRlcmZlcmUgYW5kIGRp ZG7igJl0IG1hbmFnZSB0byB0ZXN0LjwvZGl2PjxkaXY+QWx0aG91Z2ggdGhpcyBpcyBraW5kYSB0 cnVlIGZvciBub3csIHRoYXQgd2FzbuKAmXQgYSBjb3JyZWN0IGRlY2lzaW9uLCBhcyBmYXIgYXM8 L2Rpdj48ZGl2PmJlaGF2aW9yJm5ic3A7bWlnaHQgYmUgY2hhbmdlZC4mbmJzcDtBZGRpbmcgdGhl IHRlc3RzIGluIHRoZSB2MiBvZiB0aGUgcGF0Y2guPC9kaXY+PC9kaXY+PGRpdj48YmxvY2txdW90 ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRk aW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1z ZyI+PGRpdj48ZGl2Pjxicj5FdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBsYm94X2tleV9kZWZf dG9fdGFibGUoKSwgYnV0IEkgd291bGQgYWRkIGE8YnI+dGVzdCBhbnl3YXkuPC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPiZuYnNwOzxkaXY+Jm5ic3A7PC9kaXY+PGRpdiBkYXRh LXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRhaW5lciI+PGRpdiBkYXRhLXNpZ25hdHVyZS13aWRnZXQ9 ImNvbnRlbnQiPjxkaXY+LS08YnI+SWx5YSBLb3NhcmV2PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj4m bmJzcDs8L2Rpdj48L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--f571883cC62Ce3E220ED92d815E78aA91601157194--