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 1oQsGE-0006Dv-Ow for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Aug 2022 15:25:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oQsGD-0008GP-FZ for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Aug 2022 15:25:41 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQsGC-0008GC-SJ for pgsql-hackers@lists.postgresql.org; Wed, 24 Aug 2022 15:25:41 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQsG8-0001ZG-Mw for pgsql-hackers@lists.postgresql.org; Wed, 24 Aug 2022 15:25:39 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 577F732009CE; Wed, 24 Aug 2022 11:25:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 24 Aug 2022 11:25:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1661354734; x=1661441134; bh=FGABedOYXEGbxbTvwGVDQQkhws0M JpRU2+UYZxD/t/4=; b=2dMLRNuMu/74+IcGL5pQ066C6VQKfWlsnn+kuZ2VccAh R+ag9qJmRQSff+0soanwMYlzOHClokbYDcnBXRxyZ2pOyIbompyTALHTgt7Jenq5 cCt0tUZBxM3hmRyl7QSgDjdsYDfX+4/c8mDlYfTOAQVKUwPxKwkA3JpPkOOvFxSp fGM5uBDzGddyVjOztxE1tpsdhsPUio2PIMwnE/76Xs+WCiX2jj5pzf96z8n1boPM iKEG79gVtedDNkomSb5zMEAVN0zkt6DQjYMkvk//PiuHkqlw68+dbNbQiDodUrR2 o4/rBotjzOFjjbHp5z6tQn/nZKtt+ZVwp72Z0MLPUQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdejuddgledtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffvvehfhfgjsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrg htthgvrhhnpeeutdekheeuhedtvdfgffehleetfefhieefudeitdffiedtledujefhjedu feffffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 24 Aug 2022 11:25:32 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------BrnaYH6YPqX0LbgBieK8wL10" Message-ID: <2e7adbce-2ff5-866e-8753-9969b0ce332b@enterprisedb.com> Date: Wed, 24 Aug 2022 17:25:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: Re: Extending outfuncs support to utility statements Content-Language: en-US To: Tom Lane Cc: pgsql-hackers@lists.postgresql.org References: <4159834.1657405226@sss.pgh.pa.us> <9b197806-17ee-acba-0e70-01263aa46e79@enterprisedb.com> <1972439.1657665506@sss.pgh.pa.us> From: Peter Eisentraut In-Reply-To: <1972439.1657665506@sss.pgh.pa.us> 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. --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 13.07.22 00:38, Tom Lane wrote: > Peter Eisentraut writes: >> This is also needed to be able to store utility statements in (unquoted) >> SQL function bodies. I have some in-progress code for that that I need >> to dust off. IIRC, there are still some nontrivial issues to work >> through on the reading side. I don't have a problem with enabling the >> outfuncs side in the meantime. > > BTW, I experimented with trying to enable WRITE_READ_PARSE_PLAN_TREES > for utility statements, and found that the immediate problem is that > Constraint and a couple of other node types lack read functions > (they're the ones marked "custom_read_write, no_read" in parsenodes.h). > They have out functions, so writing the inverses seems like it's just > something nobody ever got around to. Perhaps there are deeper problems > lurking behind that one, though. Here are patches for that. v1-0001-Fix-reading-of-most-negative-integer-value-nodes.patch v1-0002-Fix-reading-of-BitString-nodes.patch These are some of those lurking problems. v1-0003-Add-read-support-for-some-missing-raw-parse-nodes.patch This adds the read support for the missing nodes. The above patches are candidates for committing. At this point we have one structural problem left: char * node fields output with WRITE_STRING_FIELD() (ultimately outToken()) don't distinguish between empty strings and NULL values. A write/read roundtrip ends up as NULL for an empty string. This shows up in the regression tests for commands such as CREATE TABLESPACE regress_tblspace LOCATION ''; CREATE SUBSCRIPTION regress_addr_sub CONNECTION '' ... This will need some expansion of the output format to handle this. v1-0004-XXX-Turn-on-WRITE_READ_PARSE_PLAN_TREES-for-testi.patch v1-0005-Implement-WRITE_READ_PARSE_PLAN_TREES-for-raw-par.patch v1-0006-Enable-WRITE_READ_PARSE_PLAN_TREES-of-rewritten-u.patch This is for testing the above. Note that in 0005 we need some special handling for float values to preserve the full precision across write/read. I suppose this could be unified with the code the preserves the location fields when doing write/read checking. v1-0007-Enable-utility-statements-in-unquoted-SQL-functio.patch This demonstrates what the ultimate goal is. A few more tests should be added eventually. --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0001-Fix-reading-of-most-negative-integer-value-nodes.patch" Content-Disposition: attachment; filename*0="v1-0001-Fix-reading-of-most-negative-integer-value-nodes.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSA4OWRlZjU3M2NlZDU3ZmMzMjBhZDE5MTYxM2RhYzYyYzg5OTJjMjdhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxMiBBdWcgMjAyMiAyMToxNTo0MCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMS83XSBGaXggcmVhZGluZyBvZiBtb3N0LW5lZ2F0aXZlIGludGVnZXIg dmFsdWUgbm9kZXMKClRoZSBtYWluIHBhcnNlciBjaGVja3Mgd2hldGhlciBhIGxpdGVyYWwg Zml0cyBpbnRvIGFuIGludCB3aGVuCmRlY2lkaW5nIHdoZXRoZXIgaXQgc2hvdWxkIGJlIHB1 dCBpbnRvIGFuIEludGVnZXIgb3IgRmxvYXQgbm9kZS4gIFRoZQpwYXJzZXIgcHJvY2Vzc2Vz IGludGVnZXIgbGl0ZXJhbHMgd2l0aG91dCBzaWducy4gIFNvIGEgbW9zdC1uZWdhdGl2ZQpp bnRlZ2VyIGxpdGVyYWwgd2lsbCBub3QgZml0IGludG8gSW50ZWdlciBhbmQgd2lsbCBlbmQg dXAgYXMgYSBGbG9hdApub2RlLgoKVGhlIG5vZGUgdG9rZW5pemVyIGRpZCB0aGlzIGRpZmZl cmVudGx5LiAgSXQgaW5jbHVkZWQgdGhlIHNpZ24gd2hlbgpjaGVja2luZyB3aGV0aGVyIHRo ZSBsaXRlcmFsIGZpdCBpbnRvIGludC4gIFNvIGEgbW9zdC1uZWdhdGl2ZSBpbnRlZ2VyCndv dWxkIGluZGVlZCBmaXQgdGhhdCB3YXkgYW5kIGVuZCB1cCBhcyBhbiBJbnRlZ2VyIG5vZGUu CgpJbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgbm9kZSBzdHJ1Y3R1cmUgY29ycmVjdGx5LCB3 ZSBuZWVkIHRoZSBub2RlCnRva2VuaXplciB0byBhbHNvIGFuYWx5emUgaW50ZWdlciBsaXRl cmFscyB3aXRob3V0IHNpZ24uCgpUaGVyZSBhcmUgYSBudW1iZXIgb2YgdGVzdCBjYXNlcyBp biB0aGUgcmVncmVzc2lvbiB0ZXN0cyB0aGF0IGhhdmUgYQptb3N0LW5lZ2F0aXZlIGludGVn ZXIgYXJndW1lbnQgb2Ygc29tZSB1dGlsaXR5IHN0YXRlbWVudCwgc28gdGhpcwppc3N1ZSBp cyBlYXNpbHkgcmVwcm9kdWNlZCB1bmRlciBXUklURV9SRUFEX1BBUlNFX1BMQU5fVFJFRVMu Ci0tLQogc3JjL2JhY2tlbmQvbm9kZXMvcmVhZC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvcmVhZC5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZC5jCmluZGV4IDRhNTQ5 OTZiNjMuLmE5Y2I4MWIxMjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWQu YworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkLmMKQEAgLTI2Nyw3ICsyNjcsNyBAQCBu b2RlVG9rZW5UeXBlKGNvbnN0IGNoYXIgKnRva2VuLCBpbnQgbGVuZ3RoKQogCQljaGFyCSAg ICplbmRwdHI7CiAKIAkJZXJybm8gPSAwOwotCQkodm9pZCkgc3RydG9pbnQodG9rZW4sICZl bmRwdHIsIDEwKTsKKwkJKHZvaWQpIHN0cnRvaW50KG51bXB0ciwgJmVuZHB0ciwgMTApOwog CQlpZiAoZW5kcHRyICE9IHRva2VuICsgbGVuZ3RoIHx8IGVycm5vID09IEVSQU5HRSkKIAkJ CXJldHVybiBUX0Zsb2F0OwogCQlyZXR1cm4gVF9JbnRlZ2VyOwotLSAKMi4zNy4xCgo= --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0002-Fix-reading-of-BitString-nodes.patch" Content-Disposition: attachment; filename="v1-0002-Fix-reading-of-BitString-nodes.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTQ2OWQwYTcxOTViZTRlY2M2NTE1NWI4MmM1ODM2ZGZiMTNiOTIwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxMiBBdWcgMjAyMiAyMToxNjoyNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMi83XSBGaXggcmVhZGluZyBvZiBCaXRTdHJpbmcgbm9kZXMKClRoZSBu b2RlIHRva2VuaXplciB3ZW50IG91dCBvZiBpdHMgd2F5IHRvIHN0b3JlIEJpdFN0cmluZyBu b2RlIHZhbHVlcwp3aXRob3V0IHRoZSBsZWFkaW5nICdiJy4gIEJ1dCBldmVyeXRoaW5nIGVs c2UgaW4gdGhlIHN5c3RlbSBzdG9yZXMgdGhlCmxlYWRpbmcgJ2InLiAgVGhpcyB3b3VsZCBi cmVhayBpZiBhIEJpdFN0cmluZyBub2RlIGlzCnJlYWQtcHJpbnRlZC1yZWFkLgoKQWxzbywg dGhlIG5vZGUgdG9rZW5pemVyIGRpZG4ndCBrbm93IHRoYXQgQml0U3RyaW5nIG5vZGUgdG9r ZW5zIGNvdWxkCmFsc28gc3RhcnQgd2l0aCAneCcuCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMv cmVhZC5jIHwgOSArKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZC5j IGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZC5jCmluZGV4IGE5Y2I4MWIxMjkuLmZlODRmMTQw ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWQuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9yZWFkLmMKQEAgLTI4OCw3ICsyODgsNyBAQCBub2RlVG9rZW5UeXBlKGNv bnN0IGNoYXIgKnRva2VuLCBpbnQgbGVuZ3RoKQogCQlyZXR2YWwgPSBUX0Jvb2xlYW47CiAJ ZWxzZSBpZiAoKnRva2VuID09ICciJyAmJiBsZW5ndGggPiAxICYmIHRva2VuW2xlbmd0aCAt IDFdID09ICciJykKIAkJcmV0dmFsID0gVF9TdHJpbmc7Ci0JZWxzZSBpZiAoKnRva2VuID09 ICdiJykKKwllbHNlIGlmICgqdG9rZW4gPT0gJ2InIHx8ICp0b2tlbiA9PSAneCcpCiAJCXJl dHZhbCA9IFRfQml0U3RyaW5nOwogCWVsc2UKIAkJcmV0dmFsID0gT1RIRVJfVE9LRU47CkBA IC00NzEsMTEgKzQ3MSwxMCBAQCBub2RlUmVhZChjb25zdCBjaGFyICp0b2tlbiwgaW50IHRv a19sZW4pCiAJCQlicmVhazsKIAkJY2FzZSBUX0JpdFN0cmluZzoKIAkJCXsKLQkJCQljaGFy CSAgICp2YWwgPSBwYWxsb2ModG9rX2xlbik7CisJCQkJY2hhcgkgICAqdmFsID0gcGFsbG9j KHRva19sZW4gKyAxKTsKIAotCQkJCS8qIHNraXAgbGVhZGluZyAnYicgKi8KLQkJCQltZW1j cHkodmFsLCB0b2tlbiArIDEsIHRva19sZW4gLSAxKTsKLQkJCQl2YWxbdG9rX2xlbiAtIDFd ID0gJ1wwJzsKKwkJCQltZW1jcHkodmFsLCB0b2tlbiwgdG9rX2xlbik7CisJCQkJdmFsW3Rv a19sZW5dID0gJ1wwJzsKIAkJCQlyZXN1bHQgPSAoTm9kZSAqKSBtYWtlQml0U3RyaW5nKHZh bCk7CiAJCQkJYnJlYWs7CiAJCQl9Ci0tIAoyLjM3LjEKCg== --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0003-Add-read-support-for-some-missing-raw-parse-nodes.patch" Content-Disposition: attachment; filename*0="v1-0003-Add-read-support-for-some-missing-raw-parse-nodes.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhYTczMGE5ZDk4MjMyNTE3ZmRhNTAwZDk0MzExZTcxYmVjN2JlYWVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxMiBBdWcgMjAyMiAyMDoxMDozMCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMy83XSBBZGQgcmVhZCBzdXBwb3J0IGZvciBzb21lIG1pc3NpbmcgcmF3 IHBhcnNlIG5vZGVzCgpUaGUgbm9kZSB0eXBlcyBBX0NvbnN0LCBDb25zdHJhaW50LCBhbmQg QV9FeHByIGhhZCBjdXN0b20gb3V0cHV0CmZ1bmN0aW9ucywgYnV0IG5vIHJlYWQgZnVuY3Rp b25zIHdlcmUgaW1wbGVtZW50ZWQgc28gZmFyLgoKVGhlIEFfRXhwciBvdXRwdXQgZm9ybWF0 IGhhZCB0byBiZSB0d2Vha2VkIGEgYml0IHRvIG1ha2UgaXQgZWFzaWVyIHRvCnBhcnNlLgoK QWxzbyBlcnJvciBvdXQgaWYgYW4gdW5yZWNvZ25pemVkIGVudW0gdmFsdWUgaXMgZm91bmQg aW4gZWFjaCBjYXNlLAppbnN0ZWFkIG9mIGp1c3QgcHJpbnRpbmcgYSBwbGFjZWhvbGRlciB2 YWx1ZS4gIFRoYXQgd2FzIG1heWJlIG9rIGZvcgpkZWJ1Z2dpbmcgYnV0IHdvbid0IHdvcmsg aWYgd2Ugd2FudCB0byBoYXZlIHJvYnVzdCByb3VuZC10cmlwcGluZy4KLS0tCiBzcmMvYmFj a2VuZC9ub2Rlcy9vdXRmdW5jcy5jICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jICB8IDI0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCB8ICAgNiArLQogMyBmaWxlcyBjaGFuZ2Vk LCAyNTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3Mu YwppbmRleCA2MDYxMGUzYTRiLi4yNGVhMDQ4N2U3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9ub2Rlcy9vdXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMK QEAgLTU0OCwxMiArNTQ4LDEyIEBAIF9vdXRBX0V4cHIoU3RyaW5nSW5mbyBzdHIsIGNvbnN0 IEFfRXhwciAqbm9kZSkKIAkJCVdSSVRFX05PREVfRklFTEQobmFtZSk7CiAJCQlicmVhazsK IAkJY2FzZSBBRVhQUl9PUF9BTlk6Ci0JCQlXUklURV9OT0RFX0ZJRUxEKG5hbWUpOwogCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgQU5ZIik7CisJCQlXUklURV9OT0RFX0ZJ RUxEKG5hbWUpOwogCQkJYnJlYWs7CiAJCWNhc2UgQUVYUFJfT1BfQUxMOgotCQkJV1JJVEVf Tk9ERV9GSUVMRChuYW1lKTsKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoc3RyLCAiIEFM TCIpOworCQkJV1JJVEVfTk9ERV9GSUVMRChuYW1lKTsKIAkJCWJyZWFrOwogCQljYXNlIEFF WFBSX0RJU1RJTkNUOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgRElTVElO Q1QiKTsKQEAgLTYwMCw3ICs2MDAsNyBAQCBfb3V0QV9FeHByKFN0cmluZ0luZm8gc3RyLCBj b25zdCBBX0V4cHIgKm5vZGUpCiAJCQlXUklURV9OT0RFX0ZJRUxEKG5hbWUpOwogCQkJYnJl YWs7CiAJCWRlZmF1bHQ6Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA/PyIp OworCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBBX0V4cHJfS2luZDogJWQiLCAoaW50 KSBub2RlLT5raW5kKTsKIAkJCWJyZWFrOwogCX0KIApAQCAtNzgyLDggKzc4Miw3IEBAIF9v dXRDb25zdHJhaW50KFN0cmluZ0luZm8gc3RyLCBjb25zdCBDb25zdHJhaW50ICpub2RlKQog CQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKLQkJCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiPHVu cmVjb2duaXplZF9jb25zdHJhaW50ICVkPiIsCi0JCQkJCQkJIChpbnQpIG5vZGUtPmNvbnR5 cGUpOworCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBDb25zdHJUeXBlOiAlZCIsIChp bnQpIG5vZGUtPmNvbnR5cGUpOwogCQkJYnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVu Y3MuYwppbmRleCBiZWU2MmZjMTVjLi45MzA0OWNlYmI4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9yZWFkZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVu Y3MuYwpAQCAtMjg1LDYgKzI4NSwxNjIgQEAgX3JlYWRCb29sRXhwcih2b2lkKQogCVJFQURf RE9ORSgpOwogfQogCitzdGF0aWMgQV9Db25zdCAqCitfcmVhZEFfQ29uc3Qodm9pZCkKK3sK KwlSRUFEX0xPQ0FMUyhBX0NvbnN0KTsKKworCXRva2VuID0gcGdfc3RydG9rKCZsZW5ndGgp OworCWlmIChzdHJuY21wKHRva2VuLCAiTlVMTCIsIDQpID09IDApCisJCWxvY2FsX25vZGUt PmlzbnVsbCA9IHRydWU7CisJZWxzZQorCXsKKwkJdW5pb24gVmFsVW5pb24gKnRtcCA9IG5v ZGVSZWFkKE5VTEwsIDApOworCisJCW1lbWNweSgmbG9jYWxfbm9kZS0+dmFsLCB0bXAsIHNp emVvZigqdG1wKSk7CisJfQorCisJUkVBRF9MT0NBVElPTl9GSUVMRChsb2NhdGlvbik7CisK KwlSRUFEX0RPTkUoKTsKK30KKworLyoKKyAqIF9yZWFkQ29uc3RyYWludAorICovCitzdGF0 aWMgQ29uc3RyYWludCAqCitfcmVhZENvbnN0cmFpbnQodm9pZCkKK3sKKwlSRUFEX0xPQ0FM UyhDb25zdHJhaW50KTsKKworCVJFQURfU1RSSU5HX0ZJRUxEKGNvbm5hbWUpOworCVJFQURf Qk9PTF9GSUVMRChkZWZlcnJhYmxlKTsKKwlSRUFEX0JPT0xfRklFTEQoaW5pdGRlZmVycmVk KTsKKwlSRUFEX0xPQ0FUSU9OX0ZJRUxEKGxvY2F0aW9uKTsKKworCXRva2VuID0gcGdfc3Ry dG9rKCZsZW5ndGgpOwkJLyogc2tpcCA6Y29udHlwZSAqLworCXRva2VuID0gcGdfc3RydG9r KCZsZW5ndGgpOwkJLyogZ2V0IGZpZWxkIHZhbHVlICovCisJaWYgKHN0cm5jbXAodG9rZW4s ICJOVUxMIiwgNCkgPT0gMCkKKwkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9OVUxM OworCWVsc2UgaWYgKHN0cm5jbXAodG9rZW4sICJOT1RfTlVMTCIsIDgpID09IDApCisJCWxv Y2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfTk9UTlVMTDsKKwllbHNlIGlmIChzdHJuY21w KHRva2VuLCAiREVGQVVMVCIsIDcpID09IDApCisJCWxvY2FsX25vZGUtPmNvbnR5cGUgPSBD T05TVFJfREVGQVVMVDsKKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiSURFTlRJVFkiLCA4 KSA9PSAwKQorCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0lERU5USVRZOworCWVs c2UgaWYgKHN0cm5jbXAodG9rZW4sICJHRU5FUkFURUQiLCA5KSA9PSAwKQorCQlsb2NhbF9u b2RlLT5jb250eXBlID0gQ09OU1RSX0dFTkVSQVRFRDsKKwllbHNlIGlmIChzdHJuY21wKHRv a2VuLCAiQ0hFQ0siLCA1KSA9PSAwKQorCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RS X0NIRUNLOworCWVsc2UgaWYgKHN0cm5jbXAodG9rZW4sICJQUklNQVJZX0tFWSIsIDExKSA9 PSAwKQorCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX1BSSU1BUlk7CisJZWxzZSBp ZiAoc3RybmNtcCh0b2tlbiwgIlVOSVFVRSIsIDYpID09IDApCisJCWxvY2FsX25vZGUtPmNv bnR5cGUgPSBDT05TVFJfVU5JUVVFOworCWVsc2UgaWYgKHN0cm5jbXAodG9rZW4sICJFWENM VVNJT04iLCA5KSA9PSAwKQorCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0VYQ0xV U0lPTjsKKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiRk9SRUlHTl9LRVkiLCAxMSkgPT0g MCkKKwkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9GT1JFSUdOOworCWVsc2UgaWYg KHN0cm5jbXAodG9rZW4sICJBVFRSX0RFRkVSUkFCTEUiLCAxNSkgPT0gMCkKKwkJbG9jYWxf bm9kZS0+Y29udHlwZSA9IENPTlNUUl9BVFRSX0RFRkVSUkFCTEU7CisJZWxzZSBpZiAoc3Ry bmNtcCh0b2tlbiwgIkFUVFJfTk9UX0RFRkVSUkFCTEUiLCAxOSkgPT0gMCkKKwkJbG9jYWxf bm9kZS0+Y29udHlwZSA9IENPTlNUUl9BVFRSX05PVF9ERUZFUlJBQkxFOworCWVsc2UgaWYg KHN0cm5jbXAodG9rZW4sICJBVFRSX0RFRkVSUkVEIiwgMTMpID09IDApCisJCWxvY2FsX25v ZGUtPmNvbnR5cGUgPSBDT05TVFJfQVRUUl9ERUZFUlJFRDsKKwllbHNlIGlmIChzdHJuY21w KHRva2VuLCAiQVRUUl9JTU1FRElBVEUiLCAxNCkgPT0gMCkKKwkJbG9jYWxfbm9kZS0+Y29u dHlwZSA9IENPTlNUUl9BVFRSX0lNTUVESUFURTsKKworCXN3aXRjaCAobG9jYWxfbm9kZS0+ Y29udHlwZSkKKwl7CisJCWNhc2UgQ09OU1RSX05VTEw6CisJCWNhc2UgQ09OU1RSX05PVE5V TEw6CisJCQkvKiBubyBleHRyYSBmaWVsZHMgKi8KKwkJCWJyZWFrOworCisJCWNhc2UgQ09O U1RSX0RFRkFVTFQ6CisJCQlSRUFEX05PREVfRklFTEQocmF3X2V4cHIpOworCQkJUkVBRF9T VFJJTkdfRklFTEQoY29va2VkX2V4cHIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBDT05TVFJf SURFTlRJVFk6CisJCQlSRUFEX05PREVfRklFTEQob3B0aW9ucyk7CisJCQlSRUFEX0NIQVJf RklFTEQoZ2VuZXJhdGVkX3doZW4pOworCQkJYnJlYWs7CisKKwkJY2FzZSBDT05TVFJfR0VO RVJBVEVEOgorCQkJUkVBRF9OT0RFX0ZJRUxEKHJhd19leHByKTsKKwkJCVJFQURfU1RSSU5H X0ZJRUxEKGNvb2tlZF9leHByKTsKKwkJCVJFQURfQ0hBUl9GSUVMRChnZW5lcmF0ZWRfd2hl bik7CisJCQlicmVhazsKKworCQljYXNlIENPTlNUUl9DSEVDSzoKKwkJCVJFQURfQk9PTF9G SUVMRChpc19ub19pbmhlcml0KTsKKwkJCVJFQURfTk9ERV9GSUVMRChyYXdfZXhwcik7CisJ CQlSRUFEX1NUUklOR19GSUVMRChjb29rZWRfZXhwcik7CisJCQlSRUFEX0JPT0xfRklFTEQo c2tpcF92YWxpZGF0aW9uKTsKKwkJCVJFQURfQk9PTF9GSUVMRChpbml0aWFsbHlfdmFsaWQp OworCQkJYnJlYWs7CisKKwkJY2FzZSBDT05TVFJfUFJJTUFSWToKKwkJCVJFQURfTk9ERV9G SUVMRChrZXlzKTsKKwkJCVJFQURfTk9ERV9GSUVMRChpbmNsdWRpbmcpOworCQkJUkVBRF9O T0RFX0ZJRUxEKG9wdGlvbnMpOworCQkJUkVBRF9TVFJJTkdfRklFTEQoaW5kZXhuYW1lKTsK KwkJCVJFQURfU1RSSU5HX0ZJRUxEKGluZGV4c3BhY2UpOworCQkJUkVBRF9CT09MX0ZJRUxE KHJlc2V0X2RlZmF1bHRfdGJsc3BjKTsKKwkJCS8qIGFjY2Vzc19tZXRob2QgYW5kIHdoZXJl X2NsYXVzZSBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkJCWJyZWFrOworCisJCWNhc2UgQ09O U1RSX1VOSVFVRToKKwkJCVJFQURfQk9PTF9GSUVMRChudWxsc19ub3RfZGlzdGluY3QpOwor CQkJUkVBRF9OT0RFX0ZJRUxEKGtleXMpOworCQkJUkVBRF9OT0RFX0ZJRUxEKGluY2x1ZGlu Zyk7CisJCQlSRUFEX05PREVfRklFTEQob3B0aW9ucyk7CisJCQlSRUFEX1NUUklOR19GSUVM RChpbmRleG5hbWUpOworCQkJUkVBRF9TVFJJTkdfRklFTEQoaW5kZXhzcGFjZSk7CisJCQlS RUFEX0JPT0xfRklFTEQocmVzZXRfZGVmYXVsdF90YmxzcGMpOworCQkJLyogYWNjZXNzX21l dGhvZCBhbmQgd2hlcmVfY2xhdXNlIG5vdCBjdXJyZW50bHkgdXNlZCAqLworCQkJYnJlYWs7 CisKKwkJY2FzZSBDT05TVFJfRVhDTFVTSU9OOgorCQkJUkVBRF9OT0RFX0ZJRUxEKGV4Y2x1 c2lvbnMpOworCQkJUkVBRF9OT0RFX0ZJRUxEKGluY2x1ZGluZyk7CisJCQlSRUFEX05PREVf RklFTEQob3B0aW9ucyk7CisJCQlSRUFEX1NUUklOR19GSUVMRChpbmRleG5hbWUpOworCQkJ UkVBRF9TVFJJTkdfRklFTEQoaW5kZXhzcGFjZSk7CisJCQlSRUFEX0JPT0xfRklFTEQocmVz ZXRfZGVmYXVsdF90YmxzcGMpOworCQkJUkVBRF9TVFJJTkdfRklFTEQoYWNjZXNzX21ldGhv ZCk7CisJCQlSRUFEX05PREVfRklFTEQod2hlcmVfY2xhdXNlKTsKKwkJCWJyZWFrOworCisJ CWNhc2UgQ09OU1RSX0ZPUkVJR046CisJCQlSRUFEX05PREVfRklFTEQocGt0YWJsZSk7CisJ CQlSRUFEX05PREVfRklFTEQoZmtfYXR0cnMpOworCQkJUkVBRF9OT0RFX0ZJRUxEKHBrX2F0 dHJzKTsKKwkJCVJFQURfQ0hBUl9GSUVMRChma19tYXRjaHR5cGUpOworCQkJUkVBRF9DSEFS X0ZJRUxEKGZrX3VwZF9hY3Rpb24pOworCQkJUkVBRF9DSEFSX0ZJRUxEKGZrX2RlbF9hY3Rp b24pOworCQkJUkVBRF9OT0RFX0ZJRUxEKGZrX2RlbF9zZXRfY29scyk7CisJCQlSRUFEX05P REVfRklFTEQob2xkX2NvbnBmZXFvcCk7CisJCQlSRUFEX09JRF9GSUVMRChvbGRfcGt0YWJs ZV9vaWQpOworCQkJUkVBRF9CT09MX0ZJRUxEKHNraXBfdmFsaWRhdGlvbik7CisJCQlSRUFE X0JPT0xfRklFTEQoaW5pdGlhbGx5X3ZhbGlkKTsKKwkJCWJyZWFrOworCisJCWNhc2UgQ09O U1RSX0FUVFJfREVGRVJSQUJMRToKKwkJY2FzZSBDT05TVFJfQVRUUl9OT1RfREVGRVJSQUJM RToKKwkJY2FzZSBDT05TVFJfQVRUUl9ERUZFUlJFRDoKKwkJY2FzZSBDT05TVFJfQVRUUl9J TU1FRElBVEU6CisJCQkvKiBubyBleHRyYSBmaWVsZHMgKi8KKwkJCWJyZWFrOworCisJCWRl ZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIENvbnN0clR5cGU6ICVkIiwg KGludCkgbG9jYWxfbm9kZS0+Y29udHlwZSk7CisJCQlicmVhazsKKwl9CisKKwlSRUFEX0RP TkUoKTsKK30KKwogc3RhdGljIFJhbmdlVGJsRW50cnkgKgogX3JlYWRSYW5nZVRibEVudHJ5 KHZvaWQpCiB7CkBAIC0zNzYsNiArNTMyLDk3IEBAIF9yZWFkUmFuZ2VUYmxFbnRyeSh2b2lk KQogCVJFQURfRE9ORSgpOwogfQogCitzdGF0aWMgQV9FeHByICoKK19yZWFkQV9FeHByKHZv aWQpCit7CisJUkVBRF9MT0NBTFMoQV9FeHByKTsKKworCXRva2VuID0gcGdfc3RydG9rKCZs ZW5ndGgpOworCisJaWYgKHN0cm5jbXAodG9rZW4sICJBTlkiLCAzKSA9PSAwKQorCXsKKwkJ bG9jYWxfbm9kZS0+a2luZCA9IEFFWFBSX09QX0FOWTsKKwkJUkVBRF9OT0RFX0ZJRUxEKG5h bWUpOworCX0KKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiQUxMIiwgMykgPT0gMCkKKwl7 CisJCWxvY2FsX25vZGUtPmtpbmQgPSBBRVhQUl9PUF9BTEw7CisJCVJFQURfTk9ERV9GSUVM RChuYW1lKTsKKwl9CisJZWxzZSBpZiAoc3RybmNtcCh0b2tlbiwgIkRJU1RJTkNUIiwgOCkg PT0gMCkKKwl7CisJCWxvY2FsX25vZGUtPmtpbmQgPSBBRVhQUl9ESVNUSU5DVDsKKwkJUkVB RF9OT0RFX0ZJRUxEKG5hbWUpOworCX0KKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiTk9U X0RJU1RJTkNUIiwgMTIpID09IDApCisJeworCQlsb2NhbF9ub2RlLT5raW5kID0gQUVYUFJf Tk9UX0RJU1RJTkNUOworCQlSRUFEX05PREVfRklFTEQobmFtZSk7CisJfQorCWVsc2UgaWYg KHN0cm5jbXAodG9rZW4sICJOVUxMSUYiLCA2KSA9PSAwKQorCXsKKwkJbG9jYWxfbm9kZS0+ a2luZCA9IEFFWFBSX05VTExJRjsKKwkJUkVBRF9OT0RFX0ZJRUxEKG5hbWUpOworCX0KKwll bHNlIGlmIChzdHJuY21wKHRva2VuLCAiSU4iLCAyKSA9PSAwKQorCXsKKwkJbG9jYWxfbm9k ZS0+a2luZCA9IEFFWFBSX0lOOworCQlSRUFEX05PREVfRklFTEQobmFtZSk7CisJfQorCWVs c2UgaWYgKHN0cm5jbXAodG9rZW4sICJMSUtFIiwgNCkgPT0gMCkKKwl7CisJCWxvY2FsX25v ZGUtPmtpbmQgPSBBRVhQUl9MSUtFOworCQlSRUFEX05PREVfRklFTEQobmFtZSk7CisJfQor CWVsc2UgaWYgKHN0cm5jbXAodG9rZW4sICJJTElLRSIsIDUpID09IDApCisJeworCQlsb2Nh bF9ub2RlLT5raW5kID0gQUVYUFJfSUxJS0U7CisJCVJFQURfTk9ERV9GSUVMRChuYW1lKTsK Kwl9CisJZWxzZSBpZiAoc3RybmNtcCh0b2tlbiwgIlNJTUlMQVIiLCA3KSA9PSAwKQorCXsK KwkJbG9jYWxfbm9kZS0+a2luZCA9IEFFWFBSX1NJTUlMQVI7CisJCVJFQURfTk9ERV9GSUVM RChuYW1lKTsKKwl9CisJLyoKKwkgKiBOb3RlOiBPcmRlciBtYXR0ZXJzLCBzdHJpbmdzIHRo YXQgYXJlIHByZWZpeGVzIG9mIG90aGVyIHN0cmluZ3MgbXVzdAorCSAqIGNvbWUgbGF0ZXIu CisJICovCisJZWxzZSBpZiAoc3RybmNtcCh0b2tlbiwgIkJFVFdFRU5fU1lNIiwgMTEpID09 IDApCisJeworCQlsb2NhbF9ub2RlLT5raW5kID0gQUVYUFJfQkVUV0VFTl9TWU07CisJCVJF QURfTk9ERV9GSUVMRChuYW1lKTsKKwl9CisJZWxzZSBpZiAoc3RybmNtcCh0b2tlbiwgIk5P VF9CRVRXRUVOX1NZTSIsIDE1KSA9PSAwKQorCXsKKwkJbG9jYWxfbm9kZS0+a2luZCA9IEFF WFBSX05PVF9CRVRXRUVOX1NZTTsKKwkJUkVBRF9OT0RFX0ZJRUxEKG5hbWUpOworCX0KKwll bHNlIGlmIChzdHJuY21wKHRva2VuLCAiQkVUV0VFTiIsIDcpID09IDApCisJeworCQlsb2Nh bF9ub2RlLT5raW5kID0gQUVYUFJfQkVUV0VFTjsKKwkJUkVBRF9OT0RFX0ZJRUxEKG5hbWUp OworCX0KKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiTk9UX0JFVFdFRU4iLCAxMSkgPT0g MCkKKwl7CisJCWxvY2FsX25vZGUtPmtpbmQgPSBBRVhQUl9OT1RfQkVUV0VFTjsKKwkJUkVB RF9OT0RFX0ZJRUxEKG5hbWUpOworCX0KKwllbHNlIGlmIChzdHJuY21wKHRva2VuLCAiOm5h bWUiLCA1KSA9PSAwKQorCXsKKwkJbG9jYWxfbm9kZS0+a2luZCA9IEFFWFBSX09QOworCQls b2NhbF9ub2RlLT5uYW1lID0gbm9kZVJlYWQoTlVMTCwgMCk7CisJfQorCWVsc2UKKwkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBBX0V4cHIga2luZDogJXMiLCB0b2tlbik7CisKKwlS RUFEX05PREVfRklFTEQobGV4cHIpOworCVJFQURfTk9ERV9GSUVMRChyZXhwcik7CisJUkVB RF9MT0NBVElPTl9GSUVMRChsb2NhdGlvbik7CisKKwlSRUFEX0RPTkUoKTsKK30KKwogc3Rh dGljIEV4dGVuc2libGVOb2RlICoKIF9yZWFkRXh0ZW5zaWJsZU5vZGUodm9pZCkKIHsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBiMzc2MDMxODU2Li5mZDMwOGFmNGU1IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yOTEsNyArMjkxLDcgQEAgdHlwZWRlZiBlbnVt IEFfRXhwcl9LaW5kCiAKIHR5cGVkZWYgc3RydWN0IEFfRXhwcgogewotCXBnX25vZGVfYXR0 cihjdXN0b21fcmVhZF93cml0ZSwgbm9fcmVhZCkKKwlwZ19ub2RlX2F0dHIoY3VzdG9tX3Jl YWRfd3JpdGUpCiAKIAlOb2RlVGFnCQl0eXBlOwogCUFfRXhwcl9LaW5kIGtpbmQ7CQkJLyog c2VlIGFib3ZlICovCkBAIC0zMTksNyArMzE5LDcgQEAgdW5pb24gVmFsVW5pb24KIAogdHlw ZWRlZiBzdHJ1Y3QgQV9Db25zdAogewotCXBnX25vZGVfYXR0cihjdXN0b21fY29weV9lcXVh bCwgY3VzdG9tX3JlYWRfd3JpdGUsIG5vX3JlYWQpCisJcGdfbm9kZV9hdHRyKGN1c3RvbV9j b3B5X2VxdWFsLCBjdXN0b21fcmVhZF93cml0ZSkKIAogCU5vZGVUYWcJCXR5cGU7CiAJdW5p b24gVmFsVW5pb24gdmFsOwpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgdHlwZWRlZiBlbnVtIENv bnN0clR5cGUJCQkvKiB0eXBlcyBvZiBjb25zdHJhaW50cyAqLwogCiB0eXBlZGVmIHN0cnVj dCBDb25zdHJhaW50CiB7Ci0JcGdfbm9kZV9hdHRyKGN1c3RvbV9yZWFkX3dyaXRlLCBub19y ZWFkKQorCXBnX25vZGVfYXR0cihjdXN0b21fcmVhZF93cml0ZSkKIAogCU5vZGVUYWcJCXR5 cGU7CiAJQ29uc3RyVHlwZQljb250eXBlOwkJLyogc2VlIGFib3ZlICovCi0tIAoyLjM3LjEK Cg== --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0004-XXX-Turn-on-WRITE_READ_PARSE_PLAN_TREES-for-testi.patch" Content-Disposition: attachment; filename*0="v1-0004-XXX-Turn-on-WRITE_READ_PARSE_PLAN_TREES-for-testi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2NDc5ZTMxNWY3MDBiYzY1YWE4Y2JlNjZkZTA3YzhmZGZmZDBkOGViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAyMzozNzozMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNC83XSBYWFg6IFR1cm4gb24gV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RS RUVTIGZvciB0ZXN0aW5nCgotLS0KIHNyYy9pbmNsdWRlL3BnX2NvbmZpZ19tYW51YWwuaCB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZ19tYW51YWwuaCBiL3NyYy9pbmNs dWRlL3BnX2NvbmZpZ19tYW51YWwuaAppbmRleCBmMmExMDZmOTgzLi5mODVhN2E3MzEyIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ19jb25maWdfbWFudWFsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGdfY29uZmlnX21hbnVhbC5oCkBAIC0zMzQsNyArMzM0LDcgQEAKICAqIG91dGZ1 bmNzLmMvcmVhZGZ1bmNzLmMsIHRvIGZhY2lsaXRhdGUgY2F0Y2hpbmcgZXJyb3JzIGFuZCBv bWlzc2lvbnMgaW4KICAqIHRob3NlIG1vZHVsZXMuCiAgKi8KLS8qICNkZWZpbmUgV1JJVEVf UkVBRF9QQVJTRV9QTEFOX1RSRUVTICovCisjZGVmaW5lIFdSSVRFX1JFQURfUEFSU0VfUExB Tl9UUkVFUwogCiAvKgogICogRGVmaW5lIHRoaXMgdG8gZm9yY2UgYWxsIHJhdyBwYXJzZSB0 cmVlcyBmb3IgRE1MIHN0YXRlbWVudHMgdG8gYmUgc2Nhbm5lZAotLSAKMi4zNy4xCgo= --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0005-Implement-WRITE_READ_PARSE_PLAN_TREES-for-raw-par.patch" Content-Disposition: attachment; filename*0="v1-0005-Implement-WRITE_READ_PARSE_PLAN_TREES-for-raw-par.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNmVkYWRkZTk5OTZmNmZlMjY2YjdlYWY3N2FkMjAyMTYyYWVhMjZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAyMzo0MDo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNS83XSBJbXBsZW1lbnQgV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RSRUVT IGZvciByYXcgcGFyc2UKIHRyZWVzCgpUaGlzIHJlcXVpcmVzIGEgc3BlY2lhbCBub2RlIHRv IHByaW50IGFuZCByZXN0b3JlIHRoZSBmdWxsIHByZWNpc2lvbgpvZiBmbG9hdCB2YWx1ZXMu Ci0tLQogc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyB8IDE0ICsrKysrKysrKysrKysr CiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgIHwgMjYgKysrKysrKysrKysrKysrKysr KysrLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL25vZGVzLmggICAgfCAgNCArKysrCiAzIGZp bGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L291dGZ1bmNzLmMKaW5kZXggMjRlYTA0ODdlNy4uYWNjNDczODU4MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9v dXRmdW5jcy5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAog I2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8ZmxvYXQuaD4KIAogI2luY2x1ZGUgImFj Y2Vzcy9hdHRudW0uaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgpAQCAtMjYsNiAr MjcsOSBAQAogCiBzdGF0aWMgdm9pZCBvdXRDaGFyKFN0cmluZ0luZm8gc3RyLCBjaGFyIGMp OwogCisjaWZkZWYgV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RSRUVTCitib29sIG91dHB1dF9h bGxfZmxvYXRfZGlnaXRzID0gZmFsc2U7CisjZW5kaWYKIAogLyoKICAqIE1hY3JvcyB0byBz aW1wbGlmeSBvdXRwdXQgb2YgZGlmZmVyZW50IGtpbmRzIG9mIGZpZWxkcy4gIFVzZSB0aGVz ZQpAQCAtNzAsOCArNzQsMTggQEAgc3RhdGljIHZvaWQgb3V0Q2hhcihTdHJpbmdJbmZvIHN0 ciwgY2hhciBjKTsKIAkJCQkJIChpbnQpIG5vZGUtPmZsZG5hbWUpCiAKIC8qIFdyaXRlIGEg ZmxvYXQgZmllbGQgLS0tIGNhbGxlciBtdXN0IGdpdmUgZm9ybWF0IHRvIGRlZmluZSBwcmVj aXNpb24gKi8KKyNpZmRlZiBXUklURV9SRUFEX1BBUlNFX1BMQU5fVFJFRVMKKyNkZWZpbmUg V1JJVEVfRkxPQVRfRklFTEQoZmxkbmFtZSxmb3JtYXQpIFwKKwlkbyB7IFwKKwkJaWYgKG91 dHB1dF9hbGxfZmxvYXRfZGlnaXRzKSBcCisJCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiA6 IiBDcHBBc1N0cmluZyhmbGRuYW1lKSAiICUuKmYiLCBEQkxfRElHICsgMywgbm9kZS0+Zmxk bmFtZSk7IFwKKwkJZWxzZSBcCisJCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiA6IiBDcHBB c1N0cmluZyhmbGRuYW1lKSAiICIgZm9ybWF0LCBub2RlLT5mbGRuYW1lKTsgXAorCX0gd2hp bGUoMCkKKyNlbHNlCiAjZGVmaW5lIFdSSVRFX0ZMT0FUX0ZJRUxEKGZsZG5hbWUsZm9ybWF0 KSBcCiAJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgOiIgQ3BwQXNTdHJpbmcoZmxkbmFtZSkg IiAiIGZvcm1hdCwgbm9kZS0+ZmxkbmFtZSkKKyNlbmRpZgogCiAvKiBXcml0ZSBhIGJvb2xl YW4gZmllbGQgKi8KICNkZWZpbmUgV1JJVEVfQk9PTF9GSUVMRChmbGRuYW1lKSBcCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKaW5kZXggN2JlYzRlNGZmNS4uMTU0ZTZkYmVjYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtNjAxLDExICs2MDEsMjcgQEAgcGdfcGFyc2VfcXVlcnkoY29uc3QgY2hh ciAqcXVlcnlfc3RyaW5nKQogCX0KICNlbmRpZgogCi0JLyoKLQkgKiBDdXJyZW50bHksIG91 dGZ1bmNzL3JlYWRmdW5jcyBzdXBwb3J0IGlzIG1pc3NpbmcgZm9yIG1hbnkgcmF3IHBhcnNl Ci0JICogdHJlZSBub2Rlcywgc28gd2UgZG9uJ3QgdHJ5IHRvIGltcGxlbWVudCBXUklURV9S RUFEX1BBUlNFX1BMQU5fVFJFRVMKLQkgKiBoZXJlLgotCSAqLworI2lmZGVmIFdSSVRFX1JF QURfUEFSU0VfUExBTl9UUkVFUworCS8qIE9wdGlvbmFsIGRlYnVnZ2luZyBjaGVjazogcGFz cyByYXcgcGFyc2V0cmVlcyB0aHJvdWdoIG91dGZ1bmNzL3JlYWRmdW5jcyAqLworCXsKKwkJ Y2hhcgkgICAqc3RyOworCQlMaXN0CSAgICpuZXdfbGlzdDsKKworCQlvdXRwdXRfYWxsX2Zs b2F0X2RpZ2l0cyA9IHRydWU7CisKKwkJc3RyID0gbm9kZVRvU3RyaW5nKHJhd19wYXJzZXRy ZWVfbGlzdCk7CisJCW5ld19saXN0ID0gc3RyaW5nVG9Ob2RlV2l0aExvY2F0aW9ucyhzdHIp OworCQlwZnJlZShzdHIpOworCisJCW91dHB1dF9hbGxfZmxvYXRfZGlnaXRzID0gZmFsc2U7 CisKKwkJLyogVGhpcyBjaGVja3MgYm90aCBvdXRmdW5jcy9yZWFkZnVuY3MgYW5kIHRoZSBl cXVhbCgpIHJvdXRpbmVzLi4uICovCisJCWlmICghZXF1YWwobmV3X2xpc3QsIHJhd19wYXJz ZXRyZWVfbGlzdCkpCisJCQllbG9nKFdBUk5JTkcsICJvdXRmdW5jcy9yZWFkZnVuY3MgZmFp bGVkIHRvIHByb2R1Y2UgYW4gZXF1YWwgcmF3IHBhcnNlIHRyZWUiKTsKKwkJZWxzZQorCQkJ cmF3X3BhcnNldHJlZV9saXN0ID0gbmV3X2xpc3Q7CisJfQorI2VuZGlmCiAKIAlUUkFDRV9Q T1NUR1JFU1FMX1FVRVJZX1BBUlNFX0RPTkUocXVlcnlfc3RyaW5nKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVz LmgKaW5kZXggY2RkNmRlYmZhMC4uNmQ2NDc4YmNiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC0x OTIsNiArMTkyLDEwIEBAIGNhc3ROb2RlSW1wbChOb2RlVGFnIHR5cGUsIHZvaWQgKnB0cikK IHN0cnVjdCBCaXRtYXBzZXQ7CQkJCS8qIG5vdCB0byBpbmNsdWRlIGJpdG1hcHNldC5oIGhl cmUgKi8KIHN0cnVjdCBTdHJpbmdJbmZvRGF0YTsJCQkvKiBub3QgdG8gaW5jbHVkZSBzdHJp bmdpbmZvLmggaGVyZSAqLwogCisjaWZkZWYgV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RSRUVT CitleHRlcm4gYm9vbCBvdXRwdXRfYWxsX2Zsb2F0X2RpZ2l0czsKKyNlbmRpZgorCiBleHRl cm4gdm9pZCBvdXROb2RlKHN0cnVjdCBTdHJpbmdJbmZvRGF0YSAqc3RyLCBjb25zdCB2b2lk ICpvYmopOwogZXh0ZXJuIHZvaWQgb3V0VG9rZW4oc3RydWN0IFN0cmluZ0luZm9EYXRhICpz dHIsIGNvbnN0IGNoYXIgKnMpOwogZXh0ZXJuIHZvaWQgb3V0Qml0bWFwc2V0KHN0cnVjdCBT dHJpbmdJbmZvRGF0YSAqc3RyLAotLSAKMi4zNy4xCgo= --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0006-Enable-WRITE_READ_PARSE_PLAN_TREES-of-rewritten-u.patch" Content-Disposition: attachment; filename*0="v1-0006-Enable-WRITE_READ_PARSE_PLAN_TREES-of-rewritten-u.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNTRlY2U3NmI3MzQ1NTNkZTU0NGNiYWE5M2M1YTRlZGUwZTU4N2Y1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAyMzo0MTozNSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNi83XSBFbmFibGUgV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RSRUVTIG9m IHJld3JpdHRlbgogdXRpbGl0eSBzdGF0ZW1lbnRzCgpUaGlzIHdhcyBwcmV2aW91c2x5IGRp c2FibGVkIGJlY2F1c2Ugd2UgbGFja2VkIG91dGZ1bmNzL3JlYWRmdW5jcwpzdXBwb3J0IGZv ciBtb3N0IHV0aWxpdHkgc3RhdGVtZW50IHR5cGVzLgotLS0KIHNyYy9iYWNrZW5kL3Rjb3Av cG9zdGdyZXMuYyB8IDMyICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCmluZGV4IDE1NGU2ZGJlY2EuLjU4ZDIxMzlkYzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3Rn cmVzLmMKQEAgLTgwNCw3ICs4MDQsNyBAQCBwZ19yZXdyaXRlX3F1ZXJ5KFF1ZXJ5ICpxdWVy eSkKIAkJbmV3X2xpc3QgPSBjb3B5T2JqZWN0KHF1ZXJ5dHJlZV9saXN0KTsKIAkJLyogVGhp cyBjaGVja3MgYm90aCBjb3B5T2JqZWN0KCkgYW5kIHRoZSBlcXVhbCgpIHJvdXRpbmVzLi4u ICovCiAJCWlmICghZXF1YWwobmV3X2xpc3QsIHF1ZXJ5dHJlZV9saXN0KSkKLQkJCWVsb2co V0FSTklORywgImNvcHlPYmplY3QoKSBmYWlsZWQgdG8gcHJvZHVjZSBlcXVhbCBwYXJzZSB0 cmVlIik7CisJCQllbG9nKFdBUk5JTkcsICJjb3B5T2JqZWN0KCkgZmFpbGVkIHRvIHByb2R1 Y2UgYW4gZXF1YWwgcmV3cml0dGVuIHBhcnNlIHRyZWUiKTsKIAkJZWxzZQogCQkJcXVlcnl0 cmVlX2xpc3QgPSBuZXdfbGlzdDsKIAl9CkBAIC04MTYsMzUgKzgxNiwyNSBAQCBwZ19yZXdy aXRlX3F1ZXJ5KFF1ZXJ5ICpxdWVyeSkKIAkJTGlzdAkgICAqbmV3X2xpc3QgPSBOSUw7CiAJ CUxpc3RDZWxsICAgKmxjOwogCi0JCS8qCi0JCSAqIFdlIGN1cnJlbnRseSBsYWNrIG91dGZ1 bmNzL3JlYWRmdW5jcyBzdXBwb3J0IGZvciBtb3N0IHV0aWxpdHkKLQkJICogc3RhdGVtZW50 IHR5cGVzLCBzbyBvbmx5IGF0dGVtcHQgdG8gd3JpdGUvcmVhZCBub24tdXRpbGl0eSBxdWVy aWVzLgotCQkgKi8KIAkJZm9yZWFjaChsYywgcXVlcnl0cmVlX2xpc3QpCiAJCXsKIAkJCVF1 ZXJ5CSAgICpxdWVyeSA9IGxmaXJzdF9ub2RlKFF1ZXJ5LCBsYyk7CisJCQljaGFyCSAgICpz dHIgPSBub2RlVG9TdHJpbmcocXVlcnkpOworCQkJUXVlcnkJICAgKm5ld19xdWVyeSA9IHN0 cmluZ1RvTm9kZVdpdGhMb2NhdGlvbnMoc3RyKTsKIAotCQkJaWYgKHF1ZXJ5LT5jb21tYW5k VHlwZSAhPSBDTURfVVRJTElUWSkKLQkJCXsKLQkJCQljaGFyCSAgICpzdHIgPSBub2RlVG9T dHJpbmcocXVlcnkpOwotCQkJCVF1ZXJ5CSAgICpuZXdfcXVlcnkgPSBzdHJpbmdUb05vZGVX aXRoTG9jYXRpb25zKHN0cik7Ci0KLQkJCQkvKgotCQkJCSAqIHF1ZXJ5SWQgaXMgbm90IHNh dmVkIGluIHN0b3JlZCBydWxlcywgYnV0IHdlIG11c3QgcHJlc2VydmUKLQkJCQkgKiBpdCBo ZXJlIHRvIGF2b2lkIGJyZWFraW5nIHBnX3N0YXRfc3RhdGVtZW50cy4KLQkJCQkgKi8KLQkJ CQluZXdfcXVlcnktPnF1ZXJ5SWQgPSBxdWVyeS0+cXVlcnlJZDsKKwkJCS8qCisJCQkgKiBx dWVyeUlkIGlzIG5vdCBzYXZlZCBpbiBzdG9yZWQgcnVsZXMsIGJ1dCB3ZSBtdXN0IHByZXNl cnZlCisJCQkgKiBpdCBoZXJlIHRvIGF2b2lkIGJyZWFraW5nIHBnX3N0YXRfc3RhdGVtZW50 cy4KKwkJCSAqLworCQkJbmV3X3F1ZXJ5LT5xdWVyeUlkID0gcXVlcnktPnF1ZXJ5SWQ7CiAK LQkJCQluZXdfbGlzdCA9IGxhcHBlbmQobmV3X2xpc3QsIG5ld19xdWVyeSk7Ci0JCQkJcGZy ZWUoc3RyKTsKLQkJCX0KLQkJCWVsc2UKLQkJCQluZXdfbGlzdCA9IGxhcHBlbmQobmV3X2xp c3QsIHF1ZXJ5KTsKKwkJCW5ld19saXN0ID0gbGFwcGVuZChuZXdfbGlzdCwgbmV3X3F1ZXJ5 KTsKKwkJCXBmcmVlKHN0cik7CiAJCX0KIAogCQkvKiBUaGlzIGNoZWNrcyBib3RoIG91dGZ1 bmNzL3JlYWRmdW5jcyBhbmQgdGhlIGVxdWFsKCkgcm91dGluZXMuLi4gKi8KIAkJaWYgKCFl cXVhbChuZXdfbGlzdCwgcXVlcnl0cmVlX2xpc3QpKQotCQkJZWxvZyhXQVJOSU5HLCAib3V0 ZnVuY3MvcmVhZGZ1bmNzIGZhaWxlZCB0byBwcm9kdWNlIGVxdWFsIHBhcnNlIHRyZWUiKTsK KwkJCWVsb2coV0FSTklORywgIm91dGZ1bmNzL3JlYWRmdW5jcyBmYWlsZWQgdG8gcHJvZHVj ZSBhbiBlcXVhbCByZXdyaXR0ZW4gcGFyc2UgdHJlZSIpOwogCQllbHNlCiAJCQlxdWVyeXRy ZWVfbGlzdCA9IG5ld19saXN0OwogCX0KLS0gCjIuMzcuMQoK --------------BrnaYH6YPqX0LbgBieK8wL10 Content-Type: text/plain; charset=UTF-8; name="v1-0007-Enable-utility-statements-in-unquoted-SQL-functio.patch" Content-Disposition: attachment; filename*0="v1-0007-Enable-utility-statements-in-unquoted-SQL-functio.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4OTFjMzRmZDhhMWQ1NGUwNjU3OGVjMjJiMTg2ZWFmYTUyZWUwZjk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxMiBBdWcgMjAyMiAyMDoxODoxNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNy83XSBFbmFibGUgdXRpbGl0eSBzdGF0ZW1lbnRzIGluIHVucXVvdGVk IFNRTCBmdW5jdGlvbgogYm9keQoKVGhpcyBzaG91bGQgbm93IHdvcmssIHNpbmNlIHdlIGhh dmUgZnVsbCBzZXJpYWxpemF0aW9uIHN1cHBvcnQgZm9yCnV0aWxpdHkgc3RhdGVtZW50cy4K ClhYWCBhY3R1YWxseSBub3QgeWV0Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rp b25jbWRzLmMgICAgICAgICAgICB8IDEwIC0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX3Byb2NlZHVyZS5vdXQgfCAxMSArKysrKysrKy0tLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb2NlZHVyZS5zcWwgICAgICB8ICA4ICsrKysrKy0t CiAzIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMKaW5kZXggZTdlMzcxNDZmNi4uODE5 ODkzNjc0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMKQEAgLTkzOSwx MSArOTM5LDYgQEAgaW50ZXJwcmV0X0FTX2NsYXVzZShPaWQgbGFuZ3VhZ2VPaWQsIGNvbnN0 IGNoYXIgKmxhbmd1YWdlTmFtZSwKIAkJCQlwc3RhdGUtPnBfc291cmNldGV4dCA9IHF1ZXJ5 U3RyaW5nOwogCQkJCXNxbF9mbl9wYXJzZXJfc2V0dXAocHN0YXRlLCBwaW5mbyk7CiAJCQkJ cSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10KTsKLQkJCQlpZiAocS0+Y29tbWFuZFR5 cGUgPT0gQ01EX1VUSUxJVFkpCi0JCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCQkJZXJybXNnKCIlcyBp cyBub3QgeWV0IHN1cHBvcnRlZCBpbiB1bnF1b3RlZCBTUUwgZnVuY3Rpb24gYm9keSIsCi0J CQkJCQkJCSAgIEdldENvbW1hbmRUYWdOYW1lKENyZWF0ZUNvbW1hbmRUYWcocS0+dXRpbGl0 eVN0bXQpKSkpOwogCQkJCXRyYW5zZm9ybWVkX3N0bXRzID0gbGFwcGVuZCh0cmFuc2Zvcm1l ZF9zdG10cywgcSk7CiAJCQkJZnJlZV9wYXJzZXN0YXRlKHBzdGF0ZSk7CiAJCQl9CkBAIC05 NTgsMTEgKzk1Myw2IEBAIGludGVycHJldF9BU19jbGF1c2UoT2lkIGxhbmd1YWdlT2lkLCBj b25zdCBjaGFyICpsYW5ndWFnZU5hbWUsCiAJCQlwc3RhdGUtPnBfc291cmNldGV4dCA9IHF1 ZXJ5U3RyaW5nOwogCQkJc3FsX2ZuX3BhcnNlcl9zZXR1cChwc3RhdGUsIHBpbmZvKTsKIAkJ CXEgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3FsX2JvZHlfaW4pOwotCQkJaWYgKHEtPmNv bW1hbmRUeXBlID09IENNRF9VVElMSVRZKQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQll cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJCWVycm1zZygi JXMgaXMgbm90IHlldCBzdXBwb3J0ZWQgaW4gdW5xdW90ZWQgU1FMIGZ1bmN0aW9uIGJvZHki LAotCQkJCQkJCSAgIEdldENvbW1hbmRUYWdOYW1lKENyZWF0ZUNvbW1hbmRUYWcocS0+dXRp bGl0eVN0bXQpKSkpOwogCQkJZnJlZV9wYXJzZXN0YXRlKHBzdGF0ZSk7CiAKIAkJCSpzcWxf Ym9keV9vdXQgPSAoTm9kZSAqKSBxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfcHJvY2VkdXJlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3Byb2NlZHVyZS5vdXQKaW5kZXggNDZjODI3Zjk3OS4uOTViZjNlNTI1NiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvY2VkdXJl Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9jZWR1cmUu b3V0CkBAIC0xMDAsMTMgKzEwMCwxOCBAQCBTRUxFQ1QgKiBGUk9NIGNwX3Rlc3QgT1JERVIg QlkgYiBDT0xMQVRFICJDIjsKICAxIHwgeHl6enkKICg0IHJvd3MpCiAKLS0tIHV0aXRsaXR5 IGZ1bmN0aW9ucyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBoZXJlCi1DUkVBVEUgUFJPQ0VE VVJFIHB0ZXN0eCgpCitDUkVBVEUgUFJPQ0VEVVJFIHB0ZXN0X3V0aWwoKQogTEFOR1VBR0Ug U1FMCiBCRUdJTiBBVE9NSUMKICAgQ1JFQVRFIFRBQkxFIHggKGEgaW50KTsKIEVORDsKLUVS Uk9SOiAgQ1JFQVRFIFRBQkxFIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGluIHVucXVvdGVkIFNR TCBmdW5jdGlvbiBib2R5CitDQUxMIHB0ZXN0X3V0aWwoKTsKK1NFTEVDVCAqIEZST00geDsK KyBhIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIHg7CiBDUkVBVEUgUFJPQ0VEVVJF IHB0ZXN0MigpCiBMQU5HVUFHRSBTUUwKIEFTICQkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jcmVhdGVfcHJvY2VkdXJlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NyZWF0ZV9wcm9jZWR1cmUuc3FsCmluZGV4IDc1Y2MwZmNmMmEuLjlkMzNlNTNhMWQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9jZWR1cmUuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9jZWR1cmUuc3FsCkBAIC00Miwx MyArNDIsMTcgQEAgQ1JFQVRFIFBST0NFRFVSRSBwdGVzdDFzKHggdGV4dCkKIAogU0VMRUNU ICogRlJPTSBjcF90ZXN0IE9SREVSIEJZIGIgQ09MTEFURSAiQyI7CiAKLS0tIHV0aXRsaXR5 IGZ1bmN0aW9ucyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBoZXJlCi1DUkVBVEUgUFJPQ0VE VVJFIHB0ZXN0eCgpCisKK0NSRUFURSBQUk9DRURVUkUgcHRlc3RfdXRpbCgpCiBMQU5HVUFH RSBTUUwKIEJFR0lOIEFUT01JQwogICBDUkVBVEUgVEFCTEUgeCAoYSBpbnQpOwogRU5EOwog CitDQUxMIHB0ZXN0X3V0aWwoKTsKK1NFTEVDVCAqIEZST00geDsKK0RST1AgVEFCTEUgeDsK KwogCiBDUkVBVEUgUFJPQ0VEVVJFIHB0ZXN0MigpCiBMQU5HVUFHRSBTUUwKLS0gCjIuMzcu MQoK --------------BrnaYH6YPqX0LbgBieK8wL10--