Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mubcZ-0000VZ-KA for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Dec 2021 14:39:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mubcY-0002yy-GK for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Dec 2021 14:39:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mubcX-0002yp-AP for pgsql-hackers@lists.postgresql.org; Tue, 07 Dec 2021 14:39:06 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mubcR-0000hq-Cz for pgsql-hackers@lists.postgresql.org; Tue, 07 Dec 2021 14:39:04 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id E9C1A3201C39; Tue, 7 Dec 2021 09:38:54 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 07 Dec 2021 09:38:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=MuRbJu DEgiearVIhpvwiWDfzHcWBKlsWe5vpVkAW31E=; b=HhlSaTNR/Zpcypme2PZ6Vs FNDscmzF7keiuQfBb+cP/HfSPXp9t63GOcnJCbq82C4RN6ombsM20nu/VodMmB7L yI0QTdx9AgXYiEj7arMB0ZIZC0mmWc1Y2FmFNnPQQf8gP81KKu2EL2XHop3tpfU9 vGgsw8CyJZJ3q9LFMNHbB8Vz5QdwKGDjEVauZjOAZkM7ho8mZNbDSW3jqXP4wg9s zD+crGmJvijv7gR2uNu1WQz5zx79mcAqj0U9jw+rm0dTL3uQ2ENZN1MesWPukMTV SoFrxo3K1XGtZSECnKZddIMjm7ufiJI+BUy2mE/JqtMtwyrkKBAcPsf4M2l1Ap0A == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrjeehgdeikecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffvfhfhjgesmhdtreertdefjeenucfhrhhomheprfgvthgvrhcu gfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrph hrihhsvggusgdrtghomheqnecuggftrfgrthhtvghrnhepuddtveeltdevvdetuddvfedv hfeiteekledvhffhjeefjedvueejgeegfedugedtnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhhtsegv nhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 7 Dec 2021 09:38:52 -0500 (EST) Content-Type: multipart/mixed; boundary="------------bEM8Q7uWxTbgthLEuwrdTarA" Message-ID: Date: Tue, 7 Dec 2021 15:38:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: Re: logical decoding and replication of sequences Content-Language: en-US To: Tomas Vondra Cc: PostgreSQL Hackers , Petr Jelinek References: <377c6fda-c3eb-7a69-e981-c77ae459c5db@enterprisedb.com> <5105c3ad-d726-fc22-1d09-514b6852a15e@enterprisedb.com> <3005299b-267d-8e4a-68a3-abdad3e96aba@enterprisedb.com> <3d6df331-5532-6848-eb45-344b265e0238@enterprisedb.com> <482c10c1-b110-819f-b0e7-17549fa2f0dc@enterprisedb.com> <12a9ecd6-4edb-a367-33da-4e2d03b0aace@enterprisedb.com> <2cd38bab-c874-8e0b-98e7-d9abaaf9806a@enterprisedb.com> From: Peter Eisentraut In-Reply-To: <2cd38bab-c874-8e0b-98e7-d9abaaf9806a@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------bEM8Q7uWxTbgthLEuwrdTarA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I have checked the 0001 and 0003 patches. (I think we have dismissed the approach in 0002 for now. And let's talk about 0004 later.) I have attached a few fixup patches, described further below. # 0001 The argument "create" for fill_seq_with_data() is always true (and patch 0002 removes it). So I'm not sure if it's needed. If it is, it should be documented somewhere. About the comment you added in nextval_internal(): It's a good explanation, so I would leave it in. I also agree with the conclusion of the comment that the current solution is reasonable. We probably don't need the same comment again in fill_seq_with_data() and again in do_setval(). Note that both of the latter functions already point to nextval_interval() for other comments, so the same can be relied upon here as well. The order of the new fields sequence_cb and stream_sequence_cb is a bit inconsistent compared to truncate_cb and stream_truncate_cb. Maybe take another look to make the order more uniform. Some documentation needs to be added to the Logical Decoding chapter. I have attached a patch that I think catches all the places that need to be updated, with some details left for you to fill in. ;-) The ordering of the some of the documentation chunks reflects the order in which the callbacks appear in the header files, which might not be optimal; see above. In reorderbuffer.c, you left a comment about how to access a sequence tuple. There is an easier way, using Form_pg_sequence_data, which is how sequence.c also does it. See attached patch. # 0003 The tests added in 0003 don't pass for me. It appears that you might have forgotten to update the expected files after you added some tests or something. The cfbot shows the same. See attached patch for a correction, but do check what your intent was. As mentioned before, we probably don't need the skip-sequences option in test_decoding. --------------bEM8Q7uWxTbgthLEuwrdTarA Content-Type: text/plain; charset=UTF-8; name="0001-Whitespace-fixes.patch" Content-Disposition: attachment; filename="0001-Whitespace-fixes.patch" Content-Transfer-Encoding: base64 RnJvbSAyZGQ5YTBlNzZiOTQ5NjAxNmU3YWJlYmViZDAwMDZkZGVlNzJkM2MxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IERlYyAyMDIxIDE0OjE5OjQyICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxLzRdIFdoaXRlc3BhY2UgZml4ZXMKCi0tLQogY29udHJpYi90ZXN0X2RlY29k aW5nL2V4cGVjdGVkL3NlcXVlbmNlLm91dCB8IDYgKysrLS0tCiBjb250cmliL3Rlc3RfZGVj b2Rpbmcvc3FsL3NlcXVlbmNlLnNxbCAgICAgIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zZXF1ZW5jZS5vdXQgYi9jb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2VxdWVuY2Uub3V0CmluZGV4IDE3Yzg4OTkwYjEuLmNhNTVi Y2ViYzMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zZXF1 ZW5jZS5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3NlcXVlbmNl Lm91dApAQCAtMTc3LDcgKzE3Nyw3IEBAIFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9z bG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jCiAt LS0tLS0KICgwIHJvd3MpCiAKLS0tIHJvbGxiYWNrIG9uIHRhYmxlIGNyZWF0aW9uIHdpdGgg c2VyaWFsIGNvbHVtbiAKKy0tIHJvbGxiYWNrIG9uIHRhYmxlIGNyZWF0aW9uIHdpdGggc2Vy aWFsIGNvbHVtbgogQkVHSU47CiBDUkVBVEUgVEFCTEUgdGVzdF90YWJsZSAoYSBTRVJJQUws IGIgSU5UKTsKIElOU0VSVCBJTlRPIHRlc3RfdGFibGUgKGIpIFZBTFVFUyAoMTAwKTsKQEAg LTIwMiw3ICsyMDIsNyBAQCBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRf Y2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luYwogLS0tLS0tCiAo MCByb3dzKQogCi0tLSByb2xsYmFjayBvbiB0YWJsZSB3aXRoIHNlcmlhbCBjb2x1bW4gCist LSByb2xsYmFjayBvbiB0YWJsZSB3aXRoIHNlcmlhbCBjb2x1bW4KIENSRUFURSBUQUJMRSB0 ZXN0X3RhYmxlIChhIFNFUklBTCwgYiBJTlQpOwogQkVHSU47CiBJTlNFUlQgSU5UTyB0ZXN0 X3RhYmxlIChiKSBWQUxVRVMgKDEwMCk7CkBAIC0yMjIsNyArMjIyLDcgQEAgSU5TRVJUIElO VE8gdGVzdF90YWJsZSAoYikgVkFMVUVTICg3MDApOwogSU5TRVJUIElOVE8gdGVzdF90YWJs ZSAoYikgVkFMVUVTICg4MDApOwogSU5TRVJUIElOVE8gdGVzdF90YWJsZSAoYikgVkFMVUVT ICg5MDApOwogUk9MTEJBQ0s7Ci0tLSBjaGVjayB0YWJsZSBhbmQgc2VxdWVuY2UgdmFsdWVz IGFmdGVyIHJvbGxiYWNrIAorLS0gY2hlY2sgdGFibGUgYW5kIHNlcXVlbmNlIHZhbHVlcyBh ZnRlciByb2xsYmFjawogU0VMRUNUICogZnJvbSB0ZXN0X3RhYmxlX2Ffc2VxOwogIGxhc3Rf dmFsdWUgfCBsb2dfY250IHwgaXNfY2FsbGVkIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zZXF1 ZW5jZS5zcWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3NlcXVlbmNlLnNxbAppbmRl eCBkOGEzNDczOGYzLi4yMWM0Yjc5MjIyIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVj b2Rpbmcvc3FsL3NlcXVlbmNlLnNxbAorKysgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Fs L3NlcXVlbmNlLnNxbApAQCAtNDgsNyArNDgsNyBAQCBDUkVBVEUgVEFCTEUgdGVzdF90YWJs ZSAoYSBJTlQpOwogUk9MTEJBQ0s7CiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xv dF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUt eGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdza2lwLXNlcXVlbmNlcycs ICcwJyk7CiAKLS0tIHJvbGxiYWNrIG9uIHRhYmxlIGNyZWF0aW9uIHdpdGggc2VyaWFsIGNv bHVtbiAKKy0tIHJvbGxiYWNrIG9uIHRhYmxlIGNyZWF0aW9uIHdpdGggc2VyaWFsIGNvbHVt bgogQkVHSU47CiBDUkVBVEUgVEFCTEUgdGVzdF90YWJsZSAoYSBTRVJJQUwsIGIgSU5UKTsK IElOU0VSVCBJTlRPIHRlc3RfdGFibGUgKGIpIFZBTFVFUyAoMTAwKTsKQEAgLTY1LDcgKzY1 LDcgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfdGFibGUgKGEgU0VSSUFMLCBiIElOVCk7CiBST0xM QkFDSzsKIFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdy ZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tp cC1lbXB0eS14YWN0cycsICcxJywgJ3NraXAtc2VxdWVuY2VzJywgJzAnKTsKIAotLS0gcm9s bGJhY2sgb24gdGFibGUgd2l0aCBzZXJpYWwgY29sdW1uIAorLS0gcm9sbGJhY2sgb24gdGFi bGUgd2l0aCBzZXJpYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgdGVzdF90YWJsZSAoYSBTRVJJ QUwsIGIgSU5UKTsKIAogQkVHSU47CkBAIC04Miw3ICs4Miw3IEBAIENSRUFURSBUQUJMRSB0 ZXN0X3RhYmxlIChhIFNFUklBTCwgYiBJTlQpOwogSU5TRVJUIElOVE8gdGVzdF90YWJsZSAo YikgVkFMVUVTICg5MDApOwogUk9MTEJBQ0s7CiAKLS0tIGNoZWNrIHRhYmxlIGFuZCBzZXF1 ZW5jZSB2YWx1ZXMgYWZ0ZXIgcm9sbGJhY2sgCistLSBjaGVjayB0YWJsZSBhbmQgc2VxdWVu Y2UgdmFsdWVzIGFmdGVyIHJvbGxiYWNrCiBTRUxFQ1QgKiBmcm9tIHRlc3RfdGFibGVfYV9z ZXE7CiBTRUxFQ1QgbmV4dHZhbCgndGVzdF90YWJsZV9hX3NlcScpOwogCi0tIAoyLjM0LjEK Cg== --------------bEM8Q7uWxTbgthLEuwrdTarA Content-Type: text/plain; charset=UTF-8; name="0002-Make-tests-pass.patch" Content-Disposition: attachment; filename="0002-Make-tests-pass.patch" Content-Transfer-Encoding: base64 RnJvbSBjNWU5ZWIyNzkyYmQyNzZlNDkzYWVkNTgyNjI3ZTkzYjRjNjgxMzc0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IERlYyAyMDIxIDE1OjI5OjM0ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyLzRdIE1ha2UgdGVzdHMgcGFzcwoKLS0tCiBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvc2VxdWVuY2Uub3V0IHwgMTggKysrKysrKysrKysrLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2VxdWVuY2Uub3V0IGIvY29u dHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3NlcXVlbmNlLm91dAppbmRleCBjYTU1YmNl YmMzLi5kOTRlMTg1ZmI5IDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhw ZWN0ZWQvc2VxdWVuY2Uub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3Rl ZC9zZXF1ZW5jZS5vdXQKQEAgLTI2MCwxMyArMjYwLDE1IEBAIFJPTExCQUNLIFRPIFNBVkVQ T0lOVCBhOwogRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOwogQ09NTUlUOwogU0VMRUNUIGRhdGEg RlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzAn LCAnc2tpcC1zZXF1ZW5jZXMnLCAnMCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQkVHSU4KKyBzZXF1ZW5jZSBwdWJsaWMu dGVzdF90YWJsZV9hX3NlcTogdHJhbnNhY3Rpb25hbDoxIGNyZWF0ZWQ6MSBsYXN0X3ZhbHVl OjEgbG9nX2NudDowIGlzX2NhbGxlZDowCisgc2VxdWVuY2UgcHVibGljLnRlc3RfdGFibGVf YV9zZXE6IHRyYW5zYWN0aW9uYWw6MSBjcmVhdGVkOjAgbGFzdF92YWx1ZTozMyBsb2dfY250 OjAgaXNfY2FsbGVkOjEKICB0YWJsZSBwdWJsaWMudGVzdF90YWJsZTogSU5TRVJUOiBhW2lu dGVnZXJdOjEgYltpbnRlZ2VyXToxMDAKICB0YWJsZSBwdWJsaWMudGVzdF90YWJsZTogSU5T RVJUOiBhW2ludGVnZXJdOjIgYltpbnRlZ2VyXToyMDAKICBDT01NSVQKLSg0IHJvd3MpCiso NiByb3dzKQogCiAtLSBzYXZlcG9pbnQgdGVzdCBvbiB0YWJsZSB3aXRoIHNlcmlhbCBjb2x1 bW4KIEJFR0lOOwpAQCAtMzA3LDExICszMDksMTUgQEAgU0VMRUNUICogRlJPTSB0ZXN0X3Nl cXVlbmNlOwogRFJPUCBTRVFVRU5DRSB0ZXN0X3NlcXVlbmNlOwogQ09NTUlUOwogU0VMRUNU IGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xv dCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3Rz JywgJzAnLCAnc2tpcC1zZXF1ZW5jZXMnLCAnMCcpOwotICBkYXRhICAKLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEJFR0lOCisgc2VxdWVuY2UgcHVi bGljLnRlc3Rfc2VxdWVuY2U6IHRyYW5zYWN0aW9uYWw6MSBjcmVhdGVkOjEgbGFzdF92YWx1 ZToxIGxvZ19jbnQ6MCBpc19jYWxsZWQ6MAorIHNlcXVlbmNlIHB1YmxpYy50ZXN0X3NlcXVl bmNlOiB0cmFuc2FjdGlvbmFsOjEgY3JlYXRlZDowIGxhc3RfdmFsdWU6MzMgbG9nX2NudDow IGlzX2NhbGxlZDoxCisgc2VxdWVuY2UgcHVibGljLnRlc3Rfc2VxdWVuY2U6IHRyYW5zYWN0 aW9uYWw6MSBjcmVhdGVkOjAgbGFzdF92YWx1ZTozMDAwIGxvZ19jbnQ6MCBpc19jYWxsZWQ6 MQorIHNlcXVlbmNlIHB1YmxpYy50ZXN0X3NlcXVlbmNlOiB0cmFuc2FjdGlvbmFsOjEgY3Jl YXRlZDowIGxhc3RfdmFsdWU6MzAzMyBsb2dfY250OjAgaXNfY2FsbGVkOjEKICBDT01NSVQK LSgyIHJvd3MpCisoNiByb3dzKQogCiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdyZWdyZXNzaW9uX3Nsb3QnKTsKICBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCi0tIAoy LjM0LjEKCg== --------------bEM8Q7uWxTbgthLEuwrdTarA Content-Type: text/plain; charset=UTF-8; name="0003-Some-documentation-updates.patch" Content-Disposition: attachment; filename="0003-Some-documentation-updates.patch" Content-Transfer-Encoding: base64 RnJvbSAwMzM4ZGU2MmNkOTU1Yjk4MjQ0YjViNjI0YTJiY2I3YWY3NjQ2NWIwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IERlYyAyMDIxIDE1OjI5OjUxICswMTAwClN1YmplY3Q6 IFtQQVRDSCAzLzRdIFNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzCgotLS0KIGRvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBi L2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAppbmRleCBiNjM1M2M3YTEyLi5l ZWE0ZjNjZDUwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCkBAIC00NTgsNiAr NDU4LDcgQEAgPHRpdGxlPkluaXRpYWxpemF0aW9uIEZ1bmN0aW9uPC90aXRsZT4KICAgICBM b2dpY2FsRGVjb2RlVHJ1bmNhdGVDQiB0cnVuY2F0ZV9jYjsKICAgICBMb2dpY2FsRGVjb2Rl Q29tbWl0Q0IgY29tbWl0X2NiOwogICAgIExvZ2ljYWxEZWNvZGVNZXNzYWdlQ0IgbWVzc2Fn ZV9jYjsKKyAgICBMb2dpY2FsRGVjb2RlU2VxdWVuY2VDQiBzZXF1ZW5jZV9jYjsKICAgICBM b2dpY2FsRGVjb2RlRmlsdGVyQnlPcmlnaW5DQiBmaWx0ZXJfYnlfb3JpZ2luX2NiOwogICAg IExvZ2ljYWxEZWNvZGVTaHV0ZG93bkNCIHNodXRkb3duX2NiOwogICAgIExvZ2ljYWxEZWNv ZGVGaWx0ZXJQcmVwYXJlQ0IgZmlsdGVyX3ByZXBhcmVfY2I7CkBAIC00NzIsNiArNDczLDcg QEAgPHRpdGxlPkluaXRpYWxpemF0aW9uIEZ1bmN0aW9uPC90aXRsZT4KICAgICBMb2dpY2Fs RGVjb2RlU3RyZWFtQ29tbWl0Q0Igc3RyZWFtX2NvbW1pdF9jYjsKICAgICBMb2dpY2FsRGVj b2RlU3RyZWFtQ2hhbmdlQ0Igc3RyZWFtX2NoYW5nZV9jYjsKICAgICBMb2dpY2FsRGVjb2Rl U3RyZWFtTWVzc2FnZUNCIHN0cmVhbV9tZXNzYWdlX2NiOworICAgIExvZ2ljYWxEZWNvZGVT dHJlYW1TZXF1ZW5jZUNCIHN0cmVhbV9zZXF1ZW5jZV9jYjsKICAgICBMb2dpY2FsRGVjb2Rl U3RyZWFtVHJ1bmNhdGVDQiBzdHJlYW1fdHJ1bmNhdGVfY2I7CiB9IE91dHB1dFBsdWdpbkNh bGxiYWNrczsKIApAQCAtNDgxLDkgKzQ4MywxMiBAQCA8dGl0bGU+SW5pdGlhbGl6YXRpb24g RnVuY3Rpb248L3RpdGxlPgogICAgICBhbmQgPGZ1bmN0aW9uPmNvbW1pdF9jYjwvZnVuY3Rp b24+IGNhbGxiYWNrcyBhcmUgcmVxdWlyZWQsCiAgICAgIHdoaWxlIDxmdW5jdGlvbj5zdGFy dHVwX2NiPC9mdW5jdGlvbj4sCiAgICAgIDxmdW5jdGlvbj5maWx0ZXJfYnlfb3JpZ2luX2Ni PC9mdW5jdGlvbj4sIDxmdW5jdGlvbj50cnVuY2F0ZV9jYjwvZnVuY3Rpb24+LAorICAgICA8 ZnVuY3Rpb24+c2VxdWVuY2VfY2I8L2Z1bmN0aW9uPiwKICAgICAgYW5kIDxmdW5jdGlvbj5z aHV0ZG93bl9jYjwvZnVuY3Rpb24+IGFyZSBvcHRpb25hbC4KICAgICAgSWYgPGZ1bmN0aW9u PnRydW5jYXRlX2NiPC9mdW5jdGlvbj4gaXMgbm90IHNldCBidXQgYQogICAgICA8Y29tbWFu ZD5UUlVOQ0FURTwvY29tbWFuZD4gaXMgdG8gYmUgZGVjb2RlZCwgdGhlIGFjdGlvbiB3aWxs IGJlIGlnbm9yZWQuCisgICAgIFNpbWlsYXJseSwgaWYgPGZ1bmN0aW9uPnNlcXVlbmNlX2Ni PC9mdW5jdGlvbj4gaXMgbm90IHNldCBhbmQgYSBzZXF1ZW5jZQorICAgICBjaGFuZ2UgaXMg dG8gYmUgZGVjb2RlZCwgdGhlIGFjdGlvbiB3aWxsIGJlIGlnbm9yZWQuCiAgICAgPC9wYXJh PgogCiAgICAgPHBhcmE+CkBAIC00OTIsNyArNDk3LDcgQEAgPHRpdGxlPkluaXRpYWxpemF0 aW9uIEZ1bmN0aW9uPC90aXRsZT4KICAgICAgPGZ1bmN0aW9uPnN0cmVhbV9zdG9wX2NiPC9m dW5jdGlvbj4sIDxmdW5jdGlvbj5zdHJlYW1fYWJvcnRfY2I8L2Z1bmN0aW9uPiwKICAgICAg PGZ1bmN0aW9uPnN0cmVhbV9jb21taXRfY2I8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPnN0cmVh bV9jaGFuZ2VfY2I8L2Z1bmN0aW9uPiwKICAgICAgYW5kIDxmdW5jdGlvbj5zdHJlYW1fcHJl cGFyZV9jYjwvZnVuY3Rpb24+Ci0gICAgIGFyZSByZXF1aXJlZCwgd2hpbGUgPGZ1bmN0aW9u PnN0cmVhbV9tZXNzYWdlX2NiPC9mdW5jdGlvbj4gYW5kCisgICAgIGFyZSByZXF1aXJlZCwg d2hpbGUgPGZ1bmN0aW9uPnN0cmVhbV9tZXNzYWdlX2NiPC9mdW5jdGlvbj4sIDxmdW5jdGlv bj5zdHJlYW1fc2VxdWVuY2VfY2I8L2Z1bmN0aW9uPiwgYW5kCiAgICAgIDxmdW5jdGlvbj5z dHJlYW1fdHJ1bmNhdGVfY2I8L2Z1bmN0aW9uPiBhcmUgb3B0aW9uYWwuCiAgICAgPC9wYXJh PgogCkBAIC04MDgsNiArODEzLDI3IEBAIDx0aXRsZT5HZW5lcmljIE1lc3NhZ2UgQ2FsbGJh Y2s8L3RpdGxlPgogICAgICA8L3BhcmE+CiAgICAgPC9zZWN0Mz4KIAorICAgIDxzZWN0MyBp ZD0ibG9naWNhbGRlY29kaW5nLW91dHB1dC1wbHVnaW4tc2VxdWVuY2UiPgorICAgICA8dGl0 bGU+U2VxdWVuY2UgQ2FsbGJhY2s8L3RpdGxlPgorCisgICAgIDxwYXJhPgorICAgICAgVGhl IDxmdW5jdGlvbj5zZXF1ZW5jZV9jYjwvZnVuY3Rpb24+IGNhbGxiYWNrIGlzIGNhbGxlZCBm b3IgYWN0aW9ucyB0aGF0CisgICAgICBjaGFuZ2UgYSBzZXF1ZW5jZS4KKzxwcm9ncmFtbGlz dGluZz4KK3R5cGVkZWYgdm9pZCAoKkxvZ2ljYWxEZWNvZGVTZXF1ZW5jZUNCKSAoc3RydWN0 IExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTG9nUmVjUHRyIHNlcXVlbmNlX2xzbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb24gcmVs LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHRyYW5z YWN0aW9uYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgY3JlYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50NjQgbGFzdF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50NjQgbG9nX2NudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBpc19jYWxsZWQpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIFRP RE8KKyAgICAgPC9wYXJhPgorICAgIDwvc2VjdDM+CisKICAgICA8c2VjdDMgaWQ9ImxvZ2lj YWxkZWNvZGluZy1vdXRwdXQtcGx1Z2luLWZpbHRlci1wcmVwYXJlIj4KICAgICAgPHRpdGxl PlByZXBhcmUgRmlsdGVyIENhbGxiYWNrPC90aXRsZT4KIApAQCAtMTAxNyw2ICsxMDQzLDI4 IEBAIDx0aXRsZT5TdHJlYW0gTWVzc2FnZSBDYWxsYmFjazwvdGl0bGU+CiAgICAgIDwvcGFy YT4KICAgICA8L3NlY3QzPgogCisgICAgPHNlY3QzIGlkPSJsb2dpY2FsZGVjb2Rpbmctb3V0 cHV0LXBsdWdpbi1zdHJlYW0tc2VxdWVuY2UiPgorICAgICA8dGl0bGU+U3RyZWFtIFNlcXVl bmNlIENhbGxiYWNrPC90aXRsZT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGZ1bmN0aW9u PnN0cmVhbV9zZXF1ZW5jZV9jYjwvZnVuY3Rpb24+IGNhbGxiYWNrIGlzIGNhbGxlZCBmb3IK KyAgICAgIGFjdGlvbnMgdGhhdCBjaGFuZ2UgYSBzZXF1ZW5jZSBpbiBhIGJsb2NrIG9mIHN0 cmVhbWVkIGNoYW5nZXMKKyAgICAgIChkZW1hcmNhdGVkIGJ5IDxmdW5jdGlvbj5zdHJlYW1f c3RhcnRfY2I8L2Z1bmN0aW9uPiBhbmQKKyAgICAgIDxmdW5jdGlvbj5zdHJlYW1fc3RvcF9j YjwvZnVuY3Rpb24+IGNhbGxzKS4KKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgdm9pZCAo KkxvZ2ljYWxEZWNvZGVTdHJlYW1TZXF1ZW5jZUNCKSAoc3RydWN0IExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBYTG9nUmVjUHRyIHNlcXVlbmNlX2xzbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb24g cmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIHRyYW5zYWN0aW9uYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgY3JlYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50NjQgbGFzdF92YWx1ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjQgbG9nX2NudCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19jYWxs ZWQpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIFRPRE8KKyAgICAgPC9wYXJhPgorICAg IDwvc2VjdDM+CisKICAgICA8c2VjdDMgaWQ9ImxvZ2ljYWxkZWNvZGluZy1vdXRwdXQtcGx1 Z2luLXN0cmVhbS10cnVuY2F0ZSI+CiAgICAgIDx0aXRsZT5TdHJlYW0gVHJ1bmNhdGUgQ2Fs bGJhY2s8L3RpdGxlPgogICAgICA8cGFyYT4KQEAgLTExOTcsOCArMTI0NSw4IEBAIDx0aXRs ZT5TdHJlYW1pbmcgb2YgTGFyZ2UgVHJhbnNhY3Rpb25zIGZvciBMb2dpY2FsIERlY29kaW5n PC90aXRsZT4KICAgICBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbnMuIFRoZXJlIGFyZSBtdWx0 aXBsZSByZXF1aXJlZCBzdHJlYW1pbmcgY2FsbGJhY2tzCiAgICAgKDxmdW5jdGlvbj5zdHJl YW1fc3RhcnRfY2I8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPnN0cmVhbV9zdG9wX2NiPC9mdW5j dGlvbj4sCiAgICAgPGZ1bmN0aW9uPnN0cmVhbV9hYm9ydF9jYjwvZnVuY3Rpb24+LCA8ZnVu Y3Rpb24+c3RyZWFtX2NvbW1pdF9jYjwvZnVuY3Rpb24+Ci0gICAgYW5kIDxmdW5jdGlvbj5z dHJlYW1fY2hhbmdlX2NiPC9mdW5jdGlvbj4pIGFuZCB0d28gb3B0aW9uYWwgY2FsbGJhY2tz Ci0gICAgKDxmdW5jdGlvbj5zdHJlYW1fbWVzc2FnZV9jYjwvZnVuY3Rpb24+IGFuZCA8ZnVu Y3Rpb24+c3RyZWFtX3RydW5jYXRlX2NiPC9mdW5jdGlvbj4pLgorICAgIGFuZCA8ZnVuY3Rp b24+c3RyZWFtX2NoYW5nZV9jYjwvZnVuY3Rpb24+KSBhbmQgbXVsdGlwbGUgb3B0aW9uYWwg Y2FsbGJhY2tzCisgICAgKDxmdW5jdGlvbj5zdHJlYW1fbWVzc2FnZV9jYjwvZnVuY3Rpb24+ LCA8ZnVuY3Rpb24+c3RyZWFtX3NlcXVlbmNlX2NiPC9mdW5jdGlvbj4sIGFuZCA8ZnVuY3Rp b24+c3RyZWFtX3RydW5jYXRlX2NiPC9mdW5jdGlvbj4pLgogICAgIEFsc28sIGlmIHN0cmVh bWluZyBvZiB0d28tcGhhc2UgY29tbWFuZHMgaXMgdG8gYmUgc3VwcG9ydGVkLCB0aGVuIGFk ZGl0aW9uYWwKICAgICBjYWxsYmFja3MgbXVzdCBiZSBwcm92aWRlZC4gKFNlZSA8eHJlZiBs aW5rZW5kPSJsb2dpY2FsZGVjb2RpbmctdHdvLXBoYXNlLWNvbW1pdHMiLz4KICAgICBmb3Ig ZGV0YWlscykuCi0tIAoyLjM0LjEKCg== --------------bEM8Q7uWxTbgthLEuwrdTarA Content-Type: text/plain; charset=UTF-8; name="0004-Simplify-accessing-sequence-tuple-data.patch" Content-Disposition: attachment; filename="0004-Simplify-accessing-sequence-tuple-data.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZjI5ZmFjN2U0NzljMjU1ZmIyNDdkMjAxZmU4NjkxNjU1YzExZmJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA3IERlYyAyMDIxIDE1OjMxOjM2ICswMTAwClN1YmplY3Q6 IFtQQVRDSCA0LzRdIFNpbXBsaWZ5IGFjY2Vzc2luZyBzZXF1ZW5jZSB0dXBsZSBkYXRhCgot LS0KIC4uLi9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYyAgICAgICB8IDM3 ICsrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9yZW9yZGVyYnVmZmVyLmMKaW5kZXggNDM0OTI2NDU5Zi4uYjRmYTE2YmViZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVy LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVy LmMKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5j bHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFs b2cuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1ZGUgImxpYi9i aW5hcnloZWFwLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0 LmgiCkBAIC0xMDg5LDkgKzEwOTAsNyBAQCBSZW9yZGVyQnVmZmVyUXVldWVTZXF1ZW5jZShS ZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNhY3Rpb25JZCB4aWQsCiAJCXsKIAkJCVJlbGF0aW9u CXJlbGF0aW9uOwogCQkJSGVhcFR1cGxlCXR1cGxlOwotCQkJYm9vbAkJaXNudWxsOwotCQkJ aW50NjQJCWxhc3RfdmFsdWUsIGxvZ19jbnQ7Ci0JCQlib29sCQlpc19jYWxsZWQ7CisJCQlG b3JtX3BnX3NlcXVlbmNlX2RhdGEgc2VxOwogCQkJT2lkCQkJcmVsb2lkOwogCiAJCQlpZiAo dXNpbmdfc3VidHhuKQpAQCAtMTEwOCwxOSArMTEwNywxMCBAQCBSZW9yZGVyQnVmZmVyUXVl dWVTZXF1ZW5jZShSZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNhY3Rpb25JZCB4aWQsCiAKIAkJ CXJlbGF0aW9uID0gUmVsYXRpb25JZEdldFJlbGF0aW9uKHJlbG9pZCk7CiAJCQl0dXBsZSA9 ICZ0dXBsZWJ1Zi0+dHVwbGU7Ci0KLQkJCS8qCi0JCQkgKiBFeHRyYWN0IHRoZSBpbnRlcm5h bCBzZXF1ZW5jZSB2YWx1ZXMsIGRlc2NyaWJpbmcgdGhlIHN0YXRlLgotCQkJICoKLQkJCSAq IFhYWCBTZWVtcyBhIGJpdCBzdHJhbmdlIHRvIGFjY2VzcyBpdCBkaXJlY3RseS4gTWF5YmUg dGhlcmUncwotCQkJICogYSBiZXR0ZXIgLyBtb3JlIGNvcnJlY3Qgd2F5PwotCQkJICovCi0J CQlsYXN0X3ZhbHVlID0gaGVhcF9nZXRhdHRyKHR1cGxlLCAxLCBSZWxhdGlvbkdldERlc2Ny KHJlbGF0aW9uKSwgJmlzbnVsbCk7Ci0JCQlsb2dfY250ID0gaGVhcF9nZXRhdHRyKHR1cGxl LCAyLCBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKSwgJmlzbnVsbCk7Ci0JCQlpc19jYWxs ZWQgPSBoZWFwX2dldGF0dHIodHVwbGUsIDMsIFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24p LCAmaXNudWxsKTsKKwkJCXNlcSA9IChGb3JtX3BnX3NlcXVlbmNlX2RhdGEpIEdFVFNUUlVD VCh0dXBsZSk7CiAKIAkJCXJiLT5zZXF1ZW5jZShyYiwgdHhuLCBsc24sIHJlbGF0aW9uLCB0 cmFuc2FjdGlvbmFsLCBjcmVhdGVkLAotCQkJCQkJIGxhc3RfdmFsdWUsIGxvZ19jbnQsIGlz X2NhbGxlZCk7CisJCQkJCQkgc2VxLT5sYXN0X3ZhbHVlLCBzZXEtPmxvZ19jbnQsIHNlcS0+ aXNfY2FsbGVkKTsKIAogCQkJUmVsYXRpb25DbG9zZShyZWxhdGlvbik7CiAKQEAgLTIyNDks MzEgKzIyMzksMjAgQEAgUmVvcmRlckJ1ZmZlckFwcGx5U2VxdWVuY2UoUmVvcmRlckJ1ZmZl ciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJCSAgIGJvb2wgc3RyZWFtaW5n KQogewogCUhlYXBUdXBsZQl0dXBsZTsKLQlib29sCQlpc251bGw7Ci0JaW50NjQJCWxhc3Rf dmFsdWUsIGxvZ19jbnQ7Ci0JYm9vbAkJaXNfY2FsbGVkOworCUZvcm1fcGdfc2VxdWVuY2Vf ZGF0YSBzZXE7CiAKIAl0dXBsZSA9ICZjaGFuZ2UtPmRhdGEuc2VxdWVuY2UudHVwbGUtPnR1 cGxlOwotCi0JLyoKLQkgKiBFeHRyYWN0IHRoZSBpbnRlcm5hbCBzZXF1ZW5jZSB2YWx1ZXMs IGRlc2NyaWJpbmcgdGhlIHN0YXRlLgotCSAqCi0JICogWFhYIFNlZW1zIGEgYml0IHN0cmFu Z2UgdG8gYWNjZXNzIGl0IGRpcmVjdGx5LiBNYXliZSB0aGVyZSdzCi0JICogYSBiZXR0ZXIg LyBtb3JlIGNvcnJlY3Qgd2F5PwotCSAqLwotCWxhc3RfdmFsdWUgPSBoZWFwX2dldGF0dHIo dHVwbGUsIDEsIFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pLCAmaXNudWxsKTsKLQlsb2df Y250ID0gaGVhcF9nZXRhdHRyKHR1cGxlLCAyLCBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9u KSwgJmlzbnVsbCk7Ci0JaXNfY2FsbGVkID0gaGVhcF9nZXRhdHRyKHR1cGxlLCAzLCBSZWxh dGlvbkdldERlc2NyKHJlbGF0aW9uKSwgJmlzbnVsbCk7CisJc2VxID0gKEZvcm1fcGdfc2Vx dWVuY2VfZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKIAogCS8qIE9ubHkgZXZlciBjYWxsZWQg ZnJvbSBSZW9yZGVyQnVmZmVyQXBwbHlTZXF1ZW5jZSwgc28gdHJhbnNhdGlvbmFsLiAqLwog CWlmIChzdHJlYW1pbmcpCiAJCXJiLT5zdHJlYW1fc2VxdWVuY2UocmIsIHR4biwgY2hhbmdl LT5sc24sIHJlbGF0aW9uLCB0cnVlLAogCQkJCQkJCWNoYW5nZS0+ZGF0YS5zZXF1ZW5jZS5j cmVhdGVkLAotCQkJCQkJCWxhc3RfdmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZCk7CisJCQkJ CQkJc2VxLT5sYXN0X3ZhbHVlLCBzZXEtPmxvZ19jbnQsIHNlcS0+aXNfY2FsbGVkKTsKIAll bHNlCiAJCXJiLT5zZXF1ZW5jZShyYiwgdHhuLCBjaGFuZ2UtPmxzbiwgcmVsYXRpb24sIHRy dWUsCiAJCQkJCSBjaGFuZ2UtPmRhdGEuc2VxdWVuY2UuY3JlYXRlZCwKLQkJCQkJIGxhc3Rf dmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZCk7CisJCQkJCSBzZXEtPmxhc3RfdmFsdWUsIHNl cS0+bG9nX2NudCwgc2VxLT5pc19jYWxsZWQpOwogfQogCiAvKgotLSAKMi4zNC4xCgo= --------------bEM8Q7uWxTbgthLEuwrdTarA--