Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r5Kt4-00D2Uq-5S for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Nov 2023 07:09:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r5Kt1-00EMok-KR for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Nov 2023 07:09:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r5Kt0-00EMob-Ch for pgsql-hackers@lists.postgresql.org; Tue, 21 Nov 2023 07:09:31 +0000 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r5Ksv-007Yuu-HS for pgsql-hackers@postgresql.org; Tue, 21 Nov 2023 07:09:29 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailout.west.internal (Postfix) with ESMTP id E6B093201038; Tue, 21 Nov 2023 02:09:21 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 21 Nov 2023 02:09:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm3; t=1700550561; x= 1700636961; bh=rSxqz+cJSH7hb56j5XaUh79H1u/dXCIO8VYIVcvXsIQ=; b=Q d7m9pQTI/8bbyQSFGWZm2IOEoIvcCIVewyyQd6KyhgRyIh/18RJvfhc7CSP/rDIV 7SWQkTZatUGtzhZ7ko1ryIbDA1BG8zfm0QCVVCm2YBfKg3S4/HI1R/3LIjMfTLSK +QJR9NRZ7og+wl60DKG/y2DKKWN4e6xFcig0qjJbzglRrSdbTDTv+UvNMzgCgt7l JTe29PIyMY3H67WIQuQ/oE+J6wsEcznDO+8CjoBBD2DFp7Pebz3vQFhsJZy9hyj6 I1rP42VXQvlMtklYcsM7Twfz95jmr1NLiEWxXX4QNe5cKMSbqqh6Qe1rXRmcnSRG 2xakLailiKyE2T+2NMNPA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type: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=1700550561; x=1700636961; bh=rSxqz+cJSH7hb 56j5XaUh79H1u/dXCIO8VYIVcvXsIQ=; b=TCsPk9GrfumZmkhk8Zc8N/RJeRBnT CnqOhNo2W8ChgJzlePxl9p0WhtHWBt+hAicgr9fGKFmUfr/Ui/Rn/5QK6IDwBNgS uYG3MDul9Zhzi2J25GnH/COp+gIXlSl5dRSnxs3sJdWTS5aKZfkP0GreLLsi040g IRW59+tyYEdf+oSjsB1PZve7iqaFUbOkd/YhNofzcpV0uBbKxocxHYvm/Zqy7sfF U66tkUlRmQP5ismqEVZE9HvDYzIxbpzjAmwfFJCOGZfnvO6lXEI23kzr2PisOG7e 0zuro5uQuPTwOBqZ2psbpf3CU9JwFyiXKKO+ASjWDRaIv1qSkbQm+ToWA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudegkedguddtgecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgh eqnecuggftrfgrthhtvghrnhepkedtuedthfdvhfeviefgffetgedvjedvhffhveefvefg tdfgleegheeivefhgfeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 21 Nov 2023 02:09:19 -0500 (EST) Content-Type: multipart/mixed; boundary="------------0V9yQ5EkS3NP4PpYstpVOn7d" Message-ID: <1d211324-4a9c-4129-b2bf-d4b754167aef@eisentraut.org> Date: Tue, 21 Nov 2023 08:09:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: remaining sql/json patches Content-Language: en-US To: Amit Langote Cc: Alvaro Herrera , Andres Freund , Andrew Dunstan , PostgreSQL-development , jian he , Erik Rijkers References: <202309281104.kmkr4v34ny2t@alvherre.pgsql> <20231006214856.yie5dedhzrcb3qxx@alap3.anarazel.de> <5ed17735-099b-45f9-11cb-0f8e472352af@xs4all.nl> From: Peter Eisentraut In-Reply-To: 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. --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I looked a bit at the parser additions, because there were some concerns expressed that they are quite big. It looks like the parser rules were mostly literally copied from the BNF in the SQL standard. That's probably a reasonable place to start, but now at the end, there is some room for simplification. Attached are a few patches that apply on top of the 0003 patch. (I haven't gotten to 0004 in detail yet.) Some explanations: 0001-Put-keywords-in-right-order.patch This is just an unrelated cleanup. 0002-Remove-js_quotes-union-entry.patch We usually don't want to put every single node type into the gram.y %union. This one can be trivially removed. 0003-Move-some-code-from-gram.y-to-parse-analysis.patch Code like this can be postponed to parse analysis, keeping gram.y smaller. The error pointer loses a bit of precision, but I think that's ok. (There is similar code in your 0004 patch, which could be similarly moved.) 0004-Remove-JsonBehavior-stuff-from-union.patch Similar to my 0002. This adds a few casts as a result, but that is the typical style in gram.y. 0005-Get-rid-of-JsonBehaviorClause.patch I think this two-level wrapping of the behavior clauses is both confusing and overkill. I was trying to just list the on-empty and on-error clauses separately in the top-level productions (JSON_VALUE etc.), but that led to shift/reduce errors. So the existing rule structure is probably ok. But we don't need a separate node type just to combine two values and then unpack them again shortly thereafter. So I just replaced all this with a list. 0006-Get-rid-of-JsonCommon.patch This is an example where the SQL standard BNF is not sensible to apply literally. I moved those clauses up directly into their callers, thus removing one intermediate levels of rules and also nodes. Also, the path name (AS name) stuff is only for JSON_TABLE, so it's not needed in this patch. I removed it here, but it would have to be readded in your 0004 patch. Another thing: In your patch, JSON_EXISTS has a RETURNING clause (json_returning_clause_opt), but I don't see that in the standard, and also not in the Oracle or Db2 docs. Where did this come from? With these changes, I think the grammar complexity in your 0003 patch is at an acceptable level. Similar simplification opportunities exist in the 0004 patch, but I haven't worked on that yet. I suggest that you focus on getting 0001..0003 committed around this commit fest and then deal with 0004 in the next one. (Also split up the 0005 patch into the pieces that apply to 0003 and 0004, respectively.) --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0001-Put-keywords-in-right-order.patch.nocfbot" Content-Disposition: attachment; filename="0001-Put-keywords-in-right-order.patch.nocfbot" Content-Transfer-Encoding: base64 RnJvbSA5MGNkNDZjOTEyMzFhMjlhNDExMTg4NjFkNWE2MTIyZDc4ZjkzMzc5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNToxOTowMyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMS82XSBQdXQga2V5d29yZHMgaW4gcmlnaHQgb3JkZXIKCi0tLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDFkYzMzMDBmZGUuLjlh NzA1OGI3NjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNzM1LDcgKzczNSw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAJSk9JTiBKU09OIEpTT05fQVJSQVkgSlNPTl9BUlJBWUFH RyBKU09OX0VYSVNUUyBKU09OX09CSkVDVCBKU09OX09CSkVDVEFHRwogCUpTT05fUVVFUlkg SlNPTl9TQ0FMQVIgSlNPTl9TRVJJQUxJWkUgSlNPTl9WQUxVRQogCi0JS0VZIEtFWVMgS0VF UAorCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9QIExB VEVSQUxfUAogCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1J VCBMSVNURU4gTE9BRCBMT0NBTAotLSAKMi40Mi4xCgo= --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0002-Remove-js_quotes-union-entry.patch.nocfbot" Content-Disposition: attachment; filename="0002-Remove-js_quotes-union-entry.patch.nocfbot" Content-Transfer-Encoding: base64 RnJvbSBiNjY5YTQ1Yzk2MDNhMjNkYjI0MGNmMTU2NmIzZjJlNzI2MjU0YWM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNToyODoxNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMi82XSBSZW1vdmUganNfcXVvdGVzICV1bmlvbiBlbnRyeQoKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA5YTcwNThiNzY3 Li5hOGNjZTViMDBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI4MCw3ICsyODAsNiBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCXN0cnVjdCBLZXlBY3Rpb24gKmtleWFjdGlvbjsK IAlKc29uQmVoYXZpb3IgKmpzYmVoYXZpb3I7CiAJSnNvbkJlaGF2aW9yQ2xhdXNlICpqc2Jl aGF2aW9yY2xhdXNlOwotCUpzb25RdW90ZXMJanNfcXVvdGVzOwogfQogCiAldHlwZSA8bm9k ZT4Jc3RtdCB0b3BsZXZlbF9zdG10IHNjaGVtYV9zdG10IHJvdXRpbmVfYm9keV9zdG10CkBA IC02NjIsMTIgKzY2MSwxMiBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PGl2YWw+CWpzb25fZW5jb2RpbmdfY2xhdXNlX29wdAogCQkJCWpzb25fcHJlZGljYXRlX3R5 cGVfY29uc3RyYWludAogCQkJCWpzb25fd3JhcHBlcl9iZWhhdmlvcgorCQkJCWpzb25fcXVv dGVzX2NsYXVzZV9vcHQKICV0eXBlIDxib29sZWFuPglqc29uX2tleV91bmlxdWVuZXNzX2Nv bnN0cmFpbnRfb3B0CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vf b3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKICV0eXBl IDxqc2JlaGF2aW9yPglqc29uX2JlaGF2aW9yCiAldHlwZSA8anNiZWhhdmlvcmNsYXVzZT4g anNvbl9iZWhhdmlvcl9jbGF1c2Vfb3B0Ci0ldHlwZSA8anNfcXVvdGVzPglqc29uX3F1b3Rl c19jbGF1c2Vfb3B0CiAKIAogLyoKLS0gCjIuNDIuMQoK --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0003-Move-some-code-from-gram.y-to-parse-analysis.patch.nocfbot" Content-Disposition: attachment; filename*0="0003-Move-some-code-from-gram.y-to-parse-analysis.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSA3ZmIxOTA2YmFiOTBlNTM5Njk3ZTZkNjZkM2YyNzU0ZWIzMDMxNjAzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNTo0MzoxMCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMy82XSBNb3ZlIHNvbWUgY29kZSBmcm9tIGdyYW0ueSB0byBwYXJzZSBhbmFs eXNpcwoKLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAg IHwgIDUgLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAg ICAgfCAgNiArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmJfc3FsanNv bi5vdXQgfCAxMiArKysrKystLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYThjY2U1YjAwZS4u YTJkNDgyYWI3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTc3OCwxMSArMTU3NzgsNiBAQCBm dW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJCQkJCW4tPmNvbW1vbiA9IChKc29uQ29tbW9u ICopICQzOwogCQkJCQluLT5vdXRwdXQgPSAoSnNvbk91dHB1dCAqKSAkNDsKIAkJCQkJbi0+ d3JhcHBlciA9ICQ1OwotCQkJCQlpZiAobi0+d3JhcHBlciAhPSBKU1dfTk9ORSAmJiAkNiAh PSBKU19RVU9URVNfVU5TUEVDKQotCQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCQkgZXJybXNnKCJTUUwvSlNP TiBRVU9URVMgYmVoYXZpb3IgbXVzdCBub3QgYmUgc3BlY2lmaWVkIHdoZW4gV0lUSCBXUkFQ UEVSIGlzIHVzZWQiKSwKLQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihANikpKTsKIAkJ CQkJbi0+cXVvdGVzID0gJDY7CiAJCQkJCW4tPmJlaGF2aW9yID0gJDc7CiAJCQkJCW4tPmxv Y2F0aW9uID0gQDE7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA2NDU3MTU2MmM1 Li4xYzFmMzhhODA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQzMDIsNiAr NDMwMiwxMiBAQCB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBK c29uRnVuY0V4cHIgKmZ1bmMpCiAJCWNhc2UgSlNPTl9RVUVSWV9PUDoKIAkJCWZ1bmNfbmFt ZSA9ICJKU09OX1FVRVJZIjsKIAorCQkJaWYgKGZ1bmMtPndyYXBwZXIgIT0gSlNXX05PTkUg JiYgZnVuYy0+cXVvdGVzICE9IEpTX1FVT1RFU19VTlNQRUMpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJt c2coIlNRTC9KU09OIFFVT1RFUyBiZWhhdmlvciBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgd2hl biBXSVRIIFdSQVBQRVIgaXMgdXNlZCIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGZ1bmMtPmxvY2F0aW9uKSkpOworCiAJCQlqc2V4cHIgPSB0cmFuc2Zvcm1Kc29u RXhwckNvbW1vbihwc3RhdGUsIGZ1bmMsIGZ1bmNfbmFtZSk7CiAJCQlqc2V4cHItPndyYXBw ZXIgPSBmdW5jLT53cmFwcGVyOwogCQkJanNleHByLT5vbWl0X3F1b3RlcyA9IChmdW5jLT5x dW90ZXMgPT0gSlNfUVVPVEVTX09NSVQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9qc29uYl9zcWxqc29uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvanNvbmJfc3FsanNvbi5vdXQKaW5kZXggYjQ2Nzk3MWVkOS4uOWJmM2ZiMjFkYiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYl9zcWxqc29uLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iX3NxbGpzb24ub3V0CkBAIC02 NTgsMTkgKzY1OCwxOSBAQCBTRUxFQ1QgSlNPTl9RVUVSWShqc29uYiAnImFhYSInLCAnJCcg UkVUVVJOSU5HIGJ5dGVhIEZPUk1BVCBKU09OIE9NSVQgUVVPVEVTIEVSUgogU0VMRUNUIEpT T05fUVVFUlkoanNvbmIgJ1sxXScsICckJyBXSVRIIFdSQVBQRVIgT01JVCBRVU9URVMpOwog RVJST1I6ICBTUUwvSlNPTiBRVU9URVMgYmVoYXZpb3IgbXVzdCBub3QgYmUgc3BlY2lmaWVk IHdoZW4gV0lUSCBXUkFQUEVSIGlzIHVzZWQKIExJTkUgMTogU0VMRUNUIEpTT05fUVVFUlko anNvbmIgJ1sxXScsICckJyBXSVRIIFdSQVBQRVIgT01JVCBRVU9URVMpLi4uCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICAgIF4KIFNFTEVDVCBKU09OX1FVRVJZKGpzb25iICdbMV0nLCAnJCcgV0lU SCBXUkFQUEVSIEtFRVAgUVVPVEVTKTsKIEVSUk9SOiAgU1FML0pTT04gUVVPVEVTIGJlaGF2 aW9yIG11c3Qgbm90IGJlIHNwZWNpZmllZCB3aGVuIFdJVEggV1JBUFBFUiBpcyB1c2VkCiBM SU5FIDE6IFNFTEVDVCBKU09OX1FVRVJZKGpzb25iICdbMV0nLCAnJCcgV0lUSCBXUkFQUEVS IEtFRVAgUVVPVEVTKS4uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAgICBeCiBTRUxFQ1QgSlNPTl9R VUVSWShqc29uYiAnWzFdJywgJyQnIFdJVEggQ09ORElUSU9OQUwgV1JBUFBFUiBLRUVQIFFV T1RFUyk7CiBFUlJPUjogIFNRTC9KU09OIFFVT1RFUyBiZWhhdmlvciBtdXN0IG5vdCBiZSBz cGVjaWZpZWQgd2hlbiBXSVRIIFdSQVBQRVIgaXMgdXNlZAotTElORSAxOiAuLi5OX1FVRVJZ KGpzb25iICdbMV0nLCAnJCcgV0lUSCBDT05ESVRJT05BTCBXUkFQUEVSIEtFRVAgUVVPVEUu Li4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitMSU5FIDE6IFNFTEVDVCBKU09OX1FVRVJZKGpzb25iICdbMV0nLCAn JCcgV0lUSCBDT05ESVRJT05BTCBXUkFQUEVSIC4uLgorICAgICAgICAgICAgICAgXgogU0VM RUNUIEpTT05fUVVFUlkoanNvbmIgJ1sxXScsICckJyBXSVRIIENPTkRJVElPTkFMIFdSQVBQ RVIgT01JVCBRVU9URVMpOwogRVJST1I6ICBTUUwvSlNPTiBRVU9URVMgYmVoYXZpb3IgbXVz dCBub3QgYmUgc3BlY2lmaWVkIHdoZW4gV0lUSCBXUkFQUEVSIGlzIHVzZWQKLUxJTkUgMTog Li4uTl9RVUVSWShqc29uYiAnWzFdJywgJyQnIFdJVEggQ09ORElUSU9OQUwgV1JBUFBFUiBP TUlUIFFVT1RFLi4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorTElORSAxOiBTRUxFQ1QgSlNPTl9RVUVSWShqc29u YiAnWzFdJywgJyQnIFdJVEggQ09ORElUSU9OQUwgV1JBUFBFUiAuLi4KKyAgICAgICAgICAg ICAgIF4KIC0tIFNob3VsZCBzdWNjZWVkCiBTRUxFQ1QgSlNPTl9RVUVSWShqc29uYiAnWzFd JywgJyQnIFdJVEhPVVQgV1JBUFBFUiBPTUlUIFFVT1RFUyk7CiAganNvbl9xdWVyeSAKLS0g CjIuNDIuMQoK --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0004-Remove-JsonBehavior-stuff-from-union.patch.nocfbot" Content-Disposition: attachment; filename="0004-Remove-JsonBehavior-stuff-from-union.patch.nocfbot" Content-Transfer-Encoding: base64 RnJvbSBhN2U3OGI1ZTljNWNmYTE5MWE5NTgwYTdiOThmNmVhNjYzZWRhYTM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNTo1Mzo1NSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggNC82XSBSZW1vdmUgSnNvbkJlaGF2aW9yIHN0dWZmIGZyb20gJXVuaW9uCgot LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgfCAzNiArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAx OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMmQ0ODJhYjcwLi4yODY2ZDEz NDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI3OCw4ICsyNzgsNiBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogCU1lcmdlV2hlbkNsYXVzZSAqbWVyZ2V3aGVuOwogCXN0cnVjdCBL ZXlBY3Rpb25zICprZXlhY3Rpb25zOwogCXN0cnVjdCBLZXlBY3Rpb24gKmtleWFjdGlvbjsK LQlKc29uQmVoYXZpb3IgKmpzYmVoYXZpb3I7Ci0JSnNvbkJlaGF2aW9yQ2xhdXNlICpqc2Jl aGF2aW9yY2xhdXNlOwogfQogCiAldHlwZSA8bm9kZT4Jc3RtdCB0b3BsZXZlbF9zdG10IHNj aGVtYV9zdG10IHJvdXRpbmVfYm9keV9zdG10CkBAIC02NTQsNiArNjUyLDggQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX2FnZ3JlZ2F0ZV9mdW5jCiAJCQkJanNv bl9hcGlfY29tbW9uX3N5bnRheAogCQkJCWpzb25fYXJndW1lbnQKKwkJCQlqc29uX2JlaGF2 aW9yCisJCQkJanNvbl9iZWhhdmlvcl9jbGF1c2Vfb3B0CiAldHlwZSA8bGlzdD4JanNvbl9u YW1lX2FuZF92YWx1ZV9saXN0CiAJCQkJanNvbl92YWx1ZV9leHByX2xpc3QKIAkJCQlqc29u X2FycmF5X2FnZ3JlZ2F0ZV9vcmRlcl9ieV9jbGF1c2Vfb3B0CkBAIC02NjUsOCArNjY1LDYg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxib29sZWFuPglqc29uX2tl eV91bmlxdWVuZXNzX2NvbnN0cmFpbnRfb3B0CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0 b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2Ns YXVzZV9vcHQKLSV0eXBlIDxqc2JlaGF2aW9yPglqc29uX2JlaGF2aW9yCi0ldHlwZSA8anNi ZWhhdmlvcmNsYXVzZT4ganNvbl9iZWhhdmlvcl9jbGF1c2Vfb3B0CiAKIAogLyoKQEAgLTE1 Nzc5LDcgKzE1Nzc3LDcgQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCQluLT5v dXRwdXQgPSAoSnNvbk91dHB1dCAqKSAkNDsKIAkJCQkJbi0+d3JhcHBlciA9ICQ1OwogCQkJ CQluLT5xdW90ZXMgPSAkNjsKLQkJCQkJbi0+YmVoYXZpb3IgPSAkNzsKKwkJCQkJbi0+YmVo YXZpb3IgPSAoSnNvbkJlaGF2aW9yQ2xhdXNlICopICQ3OwogCQkJCQluLT5sb2NhdGlvbiA9 IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtMTU3OTQsNyArMTU3OTIs NyBAQCBmdW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJCQkJCXAtPm9wID0gSlNPTl9FWElT VFNfT1A7CiAJCQkJCXAtPmNvbW1vbiA9IChKc29uQ29tbW9uICopICQzOwogCQkJCQlwLT5v dXRwdXQgPSAoSnNvbk91dHB1dCAqKSAkNDsKLQkJCQkJcC0+YmVoYXZpb3IgPSAkNTsKKwkJ CQkJcC0+YmVoYXZpb3IgPSAoSnNvbkJlaGF2aW9yQ2xhdXNlICopICQ1OwogCQkJCQlwLT5s b2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIHA7CiAJCQkJfQpAQCAtMTU4MDks NyArMTU4MDcsNyBAQCBmdW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJCQkJCW4tPm9wID0g SlNPTl9WQUxVRV9PUDsKIAkJCQkJbi0+Y29tbW9uID0gKEpzb25Db21tb24gKikgJDM7CiAJ CQkJCW4tPm91dHB1dCA9IChKc29uT3V0cHV0ICopICQ0OwotCQkJCQluLT5iZWhhdmlvciA9 ICQ1OworCQkJCQluLT5iZWhhdmlvciA9IChKc29uQmVoYXZpb3JDbGF1c2UgKikgJDU7CiAJ CQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBA IC0xNjY2NSwyNSArMTY2NjMsMjUgQEAganNvbl9yZXR1cm5pbmdfY2xhdXNlX29wdDoKIAkJ OwogCiBqc29uX2JlaGF2aW9yOgotCQkJREVGQVVMVCBhX2V4cHIJeyAkJCA9IG1ha2VKc29u QmVoYXZpb3IoSlNPTl9CRUhBVklPUl9ERUZBVUxULCAkMiwgQDEpOyB9Ci0JCQl8IEVSUk9S X1AJCXsgJCQgPSBtYWtlSnNvbkJlaGF2aW9yKEpTT05fQkVIQVZJT1JfRVJST1IsIE5VTEws IEAxKTsgfQotCQkJfCBOVUxMX1AJCXsgJCQgPSBtYWtlSnNvbkJlaGF2aW9yKEpTT05fQkVI QVZJT1JfTlVMTCwgTlVMTCwgQDEpOyB9Ci0JCQl8IFRSVUVfUAkJeyAkJCA9IG1ha2VKc29u QmVoYXZpb3IoSlNPTl9CRUhBVklPUl9UUlVFLCBOVUxMLCBAMSk7IH0KLQkJCXwgRkFMU0Vf UAkJeyAkJCA9IG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9GQUxTRSwgTlVMTCwg QDEpOyB9Ci0JCQl8IFVOS05PV04JCXsgJCQgPSBtYWtlSnNvbkJlaGF2aW9yKEpTT05fQkVI QVZJT1JfVU5LTk9XTiwgTlVMTCwgQDEpOyB9Ci0JCQl8IEVNUFRZX1AgQVJSQVkJeyAkJCA9 IG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9FTVBUWV9BUlJBWSwgTlVMTCwgQDEp OyB9Ci0JCQl8IEVNUFRZX1AgT0JKRUNUX1AJeyAkJCA9IG1ha2VKc29uQmVoYXZpb3IoSlNP Tl9CRUhBVklPUl9FTVBUWV9PQkpFQ1QsIE5VTEwsIEAxKTsgfQorCQkJREVGQVVMVCBhX2V4 cHIJeyAkJCA9IChOb2RlICopIG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9ERUZB VUxULCAkMiwgQDEpOyB9CisJCQl8IEVSUk9SX1AJCXsgJCQgPSAoTm9kZSAqKSBtYWtlSnNv bkJlaGF2aW9yKEpTT05fQkVIQVZJT1JfRVJST1IsIE5VTEwsIEAxKTsgfQorCQkJfCBOVUxM X1AJCXsgJCQgPSAoTm9kZSAqKSBtYWtlSnNvbkJlaGF2aW9yKEpTT05fQkVIQVZJT1JfTlVM TCwgTlVMTCwgQDEpOyB9CisJCQl8IFRSVUVfUAkJeyAkJCA9IChOb2RlICopIG1ha2VKc29u QmVoYXZpb3IoSlNPTl9CRUhBVklPUl9UUlVFLCBOVUxMLCBAMSk7IH0KKwkJCXwgRkFMU0Vf UAkJeyAkJCA9IChOb2RlICopIG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9GQUxT RSwgTlVMTCwgQDEpOyB9CisJCQl8IFVOS05PV04JCXsgJCQgPSAoTm9kZSAqKSBtYWtlSnNv bkJlaGF2aW9yKEpTT05fQkVIQVZJT1JfVU5LTk9XTiwgTlVMTCwgQDEpOyB9CisJCQl8IEVN UFRZX1AgQVJSQVkJeyAkJCA9IChOb2RlICopIG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhB VklPUl9FTVBUWV9BUlJBWSwgTlVMTCwgQDEpOyB9CisJCQl8IEVNUFRZX1AgT0JKRUNUX1AJ eyAkJCA9IChOb2RlICopIG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9FTVBUWV9P QkpFQ1QsIE5VTEwsIEAxKTsgfQogCQkJLyogbm9uLXN0YW5kYXJkLCBmb3IgT3JhY2xlIGNv bXBhdGliaWxpdHkgb25seSAqLwotCQkJfCBFTVBUWV9QCQl7ICQkID0gbWFrZUpzb25CZWhh dmlvcihKU09OX0JFSEFWSU9SX0VNUFRZX0FSUkFZLCBOVUxMLCBAMSk7IH0KKwkJCXwgRU1Q VFlfUAkJeyAkJCA9IChOb2RlICopIG1ha2VKc29uQmVoYXZpb3IoSlNPTl9CRUhBVklPUl9F TVBUWV9BUlJBWSwgTlVMTCwgQDEpOyB9CiAJCTsKIAoganNvbl9iZWhhdmlvcl9jbGF1c2Vf b3B0OgogCQkJanNvbl9iZWhhdmlvciBPTiBFTVBUWV9QCi0JCQkJeyAkJCA9IG1ha2VKc29u QmVoYXZpb3JDbGF1c2UoJDEsIE5VTEwsIEAxKTsgfQorCQkJCXsgJCQgPSAoTm9kZSAqKSBt YWtlSnNvbkJlaGF2aW9yQ2xhdXNlKChKc29uQmVoYXZpb3IgKikgJDEsIE5VTEwsIEAxKTsg fQogCQkJfCBqc29uX2JlaGF2aW9yIE9OIEVSUk9SX1AKLQkJCQl7ICQkID0gbWFrZUpzb25C ZWhhdmlvckNsYXVzZShOVUxMLCAkMSwgQDEpOyB9CisJCQkJeyAkJCA9IChOb2RlICopIG1h a2VKc29uQmVoYXZpb3JDbGF1c2UoTlVMTCwgKEpzb25CZWhhdmlvciAqKSAkMSwgQDEpOyB9 CiAJCQl8IGpzb25fYmVoYXZpb3IgT04gRU1QVFlfUCBqc29uX2JlaGF2aW9yIE9OIEVSUk9S X1AKLQkJCQl7ICQkID0gbWFrZUpzb25CZWhhdmlvckNsYXVzZSgkMSwgJDQsIEAxKTsgfQor CQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlSnNvbkJlaGF2aW9yQ2xhdXNlKChKc29uQmVoYXZp b3IgKikgJDEsIChKc29uQmVoYXZpb3IgKikgJDQsIEAxKTsgfQogCQkJfCAvKiBFTVBUWSAq LwogCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKLS0gCjIuNDIuMQoK --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0005-Get-rid-of-JsonBehaviorClause.patch.nocfbot" Content-Disposition: attachment; filename="0005-Get-rid-of-JsonBehaviorClause.patch.nocfbot" Content-Transfer-Encoding: base64 RnJvbSAzNDc5NWRiMzE4YjE2ODkyOTI2ZGFlOWViYzg0ODgyNzc3MTEzNmZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNzoyMTowMyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggNS82XSBHZXQgcmlkIG9mIEpzb25CZWhhdmlvckNsYXVzZQoKLS0tCiBzcmMv YmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICB8IDE3IC0tLS0tLS0tLS0tLS0tLS0tCiBz cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICB8IDEwIC0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgfCAgNCArKy0tCiBzcmMvaW5jbHVkZS9u b2Rlcy9tYWtlZnVuY3MuaCAgICB8ICAzIC0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICAgfCAxNCArLS0tLS0tLS0tLS0tLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgfCAgMSAtCiA3IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDU0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKaW5kZXggNzQ2ZWQzZDFkYS4u YTM3NTdhZjZjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTg1NywyMyArODU3LDYg QEAgbWFrZUpzb25WYWx1ZUV4cHIoRXhwciAqcmF3X2V4cHIsIEV4cHIgKmZvcm1hdHRlZF9l eHByLAogCXJldHVybiBqdmU7CiB9CiAKLS8qCi0gKiBtYWtlSnNvbkJlaGF2aW9yQ2xhdXNl IC0KLSAqCSAgY3JlYXRlcyBhIEpzb25CZWhhdmlvckNsYXVzZSBub2RlCi0gKi8KLUpzb25C ZWhhdmlvckNsYXVzZSAqCi1tYWtlSnNvbkJlaGF2aW9yQ2xhdXNlKEpzb25CZWhhdmlvciAq b25fZW1wdHksIEpzb25CZWhhdmlvciAqb25fZXJyb3IsCi0JCQkJCSAgIGludCBsb2NhdGlv bikKLXsKLQlKc29uQmVoYXZpb3JDbGF1c2UgKmJlaGF2aW9yID0gbWFrZU5vZGUoSnNvbkJl aGF2aW9yQ2xhdXNlKTsKLQotCWJlaGF2aW9yLT5vbl9lbXB0eSA9IG9uX2VtcHR5OwotCWJl aGF2aW9yLT5vbl9lcnJvciA9IG9uX2Vycm9yOwotCWJlaGF2aW9yLT5sb2NhdGlvbiA9IGxv Y2F0aW9uOwotCi0JcmV0dXJuIGJlaGF2aW9yOwotfQotCiAvKgogICogbWFrZUpzb25CZWhh dmlvciAtCiAgKgkgIGNyZWF0ZXMgYSBKc29uQmVoYXZpb3Igbm9kZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwppbmRleCA4ZTQ5ZWY2Yjk1Li43Y2FkNjYyZTI4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwpAQCAtNDA5MywxNiArNDA5Myw2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fs a2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVh azsKLQkJY2FzZSBUX0pzb25CZWhhdmlvckNsYXVzZToKLQkJCXsKLQkJCQlKc29uQmVoYXZp b3JDbGF1c2UgKmpiYyA9IChKc29uQmVoYXZpb3JDbGF1c2UgKikgbm9kZTsKLQotCQkJCWlm IChXQUxLKGpiYy0+b25fZW1wdHkpKQotCQkJCQlyZXR1cm4gdHJ1ZTsKLQkJCQlpZiAoV0FM SyhqYmMtPm9uX2Vycm9yKSkKLQkJCQkJcmV0dXJuIHRydWU7Ci0JCQl9Ci0JCQlicmVhazsK IAkJY2FzZSBUX0pzb25CZWhhdmlvcjoKIAkJCXsKIAkJCQlKc29uQmVoYXZpb3IgKmpiID0g KEpzb25CZWhhdmlvciAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjg2NmQxMzQ1Yy4u OTk1ODUzMDhjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02NTMsMTEgKzY1MywxMSBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fYXBpX2NvbW1vbl9zeW50YXgKIAkJ CQlqc29uX2FyZ3VtZW50CiAJCQkJanNvbl9iZWhhdmlvcgotCQkJCWpzb25fYmVoYXZpb3Jf Y2xhdXNlX29wdAogJXR5cGUgPGxpc3Q+CWpzb25fbmFtZV9hbmRfdmFsdWVfbGlzdAogCQkJ CWpzb25fdmFsdWVfZXhwcl9saXN0CiAJCQkJanNvbl9hcnJheV9hZ2dyZWdhdGVfb3JkZXJf YnlfY2xhdXNlX29wdAogCQkJCWpzb25fYXJndW1lbnRzCisJCQkJanNvbl9iZWhhdmlvcl9j bGF1c2Vfb3B0CiAldHlwZSA8aXZhbD4JanNvbl9lbmNvZGluZ19jbGF1c2Vfb3B0CiAJCQkJ anNvbl9wcmVkaWNhdGVfdHlwZV9jb25zdHJhaW50CiAJCQkJanNvbl93cmFwcGVyX2JlaGF2 aW9yCkBAIC0xNTc3Nyw3ICsxNTc3Nyw3IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoK IAkJCQkJbi0+b3V0cHV0ID0gKEpzb25PdXRwdXQgKikgJDQ7CiAJCQkJCW4tPndyYXBwZXIg PSAkNTsKIAkJCQkJbi0+cXVvdGVzID0gJDY7Ci0JCQkJCW4tPmJlaGF2aW9yID0gKEpzb25C ZWhhdmlvckNsYXVzZSAqKSAkNzsKKwkJCQkJbi0+YmVoYXZpb3IgPSAkNzsKIAkJCQkJbi0+ bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTE1Nzky LDcgKzE1NzkyLDcgQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCQlwLT5vcCA9 IEpTT05fRVhJU1RTX09QOwogCQkJCQlwLT5jb21tb24gPSAoSnNvbkNvbW1vbiAqKSAkMzsK IAkJCQkJcC0+b3V0cHV0ID0gKEpzb25PdXRwdXQgKikgJDQ7Ci0JCQkJCXAtPmJlaGF2aW9y ID0gKEpzb25CZWhhdmlvckNsYXVzZSAqKSAkNTsKKwkJCQkJcC0+YmVoYXZpb3IgPSAkNTsK IAkJCQkJcC0+bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBwOwogCQkJCX0K QEAgLTE1ODA3LDcgKzE1ODA3LDcgQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJ CQluLT5vcCA9IEpTT05fVkFMVUVfT1A7CiAJCQkJCW4tPmNvbW1vbiA9IChKc29uQ29tbW9u ICopICQzOwogCQkJCQluLT5vdXRwdXQgPSAoSnNvbk91dHB1dCAqKSAkNDsKLQkJCQkJbi0+ YmVoYXZpb3IgPSAoSnNvbkJlaGF2aW9yQ2xhdXNlICopICQ1OworCQkJCQluLT5iZWhhdmlv ciA9ICQ1OwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQpAQCAtMTY2NzcsMTMgKzE2Njc3LDEzIEBAIGpzb25fYmVoYXZpb3I6CiAKIGpz b25fYmVoYXZpb3JfY2xhdXNlX29wdDoKIAkJCWpzb25fYmVoYXZpb3IgT04gRU1QVFlfUAot CQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlSnNvbkJlaGF2aW9yQ2xhdXNlKChKc29uQmVoYXZp b3IgKikgJDEsIE5VTEwsIEAxKTsgfQorCQkJCXsgJCQgPSBsaXN0X21ha2UyKCQxLCBOVUxM KTsgfQogCQkJfCBqc29uX2JlaGF2aW9yIE9OIEVSUk9SX1AKLQkJCQl7ICQkID0gKE5vZGUg KikgbWFrZUpzb25CZWhhdmlvckNsYXVzZShOVUxMLCAoSnNvbkJlaGF2aW9yICopICQxLCBA MSk7IH0KKwkJCQl7ICQkID0gbGlzdF9tYWtlMihOVUxMLCAkMSk7IH0KIAkJCXwganNvbl9i ZWhhdmlvciBPTiBFTVBUWV9QIGpzb25fYmVoYXZpb3IgT04gRVJST1JfUAotCQkJCXsgJCQg PSAoTm9kZSAqKSBtYWtlSnNvbkJlaGF2aW9yQ2xhdXNlKChKc29uQmVoYXZpb3IgKikgJDEs IChKc29uQmVoYXZpb3IgKikgJDQsIEAxKTsgfQorCQkJCXsgJCQgPSBsaXN0X21ha2UyKCQx LCAkNCk7IH0KIAkJCXwgLyogRU1QVFkgKi8KLQkJCQl7ICQkID0gTlVMTDsgfQorCQkJCXsg JCQgPSBsaXN0X21ha2UyKE5VTEwsIE5VTEwpOyB9CiAJCTsKIAoganNvbl9wcmVkaWNhdGVf dHlwZV9jb25zdHJhaW50OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggMWMxZjM4 YTgwOC4uMmY0ZDNjYjExOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00MjQw LDggKzQyNDAsOCBAQCB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBKc29uRnVuY0V4cHIgKmZ1bmMpCiAKIAlpZiAoZnVuYy0+YmVoYXZpb3IpCiAJewotCQlv bl9lcnJvciA9IGZ1bmMtPmJlaGF2aW9yLT5vbl9lcnJvcjsKLQkJb25fZW1wdHkgPSBmdW5j LT5iZWhhdmlvci0+b25fZW1wdHk7CisJCW9uX2VtcHR5ID0gbGluaXRpYWwoZnVuYy0+YmVo YXZpb3IpOworCQlvbl9lcnJvciA9IGxzZWNvbmQoZnVuYy0+YmVoYXZpb3IpOwogCX0KIAog CXN3aXRjaCAoZnVuYy0+b3ApCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9tYWtl ZnVuY3MuaCBiL3NyYy9pbmNsdWRlL25vZGVzL21ha2VmdW5jcy5oCmluZGV4IDc4M2U4MmFj OTIuLmE4NTBhMTkyOGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL21ha2VmdW5j cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL21ha2VmdW5jcy5oCkBAIC0xMTMsOSArMTEz LDYgQEAgZXh0ZXJuIEpzb25Gb3JtYXQgKm1ha2VKc29uRm9ybWF0KEpzb25Gb3JtYXRUeXBl IHR5cGUsIEpzb25FbmNvZGluZyBlbmNvZGluZywKIGV4dGVybiBKc29uVmFsdWVFeHByICpt YWtlSnNvblZhbHVlRXhwcihFeHByICpyYXdfZXhwciwgRXhwciAqZm9ybWF0dGVkX2V4cHIs CiAJCQkJCQkJCQkJSnNvbkZvcm1hdCAqZm9ybWF0KTsKIGV4dGVybiBKc29uQmVoYXZpb3Ig Km1ha2VKc29uQmVoYXZpb3IoSnNvbkJlaGF2aW9yVHlwZSB0eXBlLCBOb2RlICpleHByLCBp bnQgbG9jYXRpb24pOwotZXh0ZXJuIEpzb25CZWhhdmlvckNsYXVzZSAqbWFrZUpzb25CZWhh dmlvckNsYXVzZShKc29uQmVoYXZpb3IgKm9uX2VtcHR5LAotCQkJCQkJCQkJCQkJICBKc29u QmVoYXZpb3IgKm9uX2Vycm9yLAotCQkJCQkJCQkJCQkJICBpbnQgbG9jYXRpb24pOwogZXh0 ZXJuIE5vZGUgKm1ha2VKc29uS2V5VmFsdWUoTm9kZSAqa2V5LCBOb2RlICp2YWx1ZSk7CiBl eHRlcm4gTm9kZSAqbWFrZUpzb25Jc1ByZWRpY2F0ZShOb2RlICpleHByLCBKc29uRm9ybWF0 ICpmb3JtYXQsCiAJCQkJCQkJCSBKc29uVmFsdWVUeXBlIGl0ZW1fdHlwZSwgYm9vbCB1bmlx dWVfa2V5cywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBjZTY4OTNmYjkxLi4wZjk3 N2Y5MzVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNzAzLDE4ICsxNzAzLDYg QEAgdHlwZWRlZiBlbnVtIEpzb25RdW90ZXMKIAlKU19RVU9URVNfT01JVAkJCQkvKiBPTUlU IFFVT1RFUyAqLwogfSBKc29uUXVvdGVzOwogCi0vKgotICogSnNvbkJlaGF2aW9yQ2xhdXNl IC0KLSAqCQlyZXByZXNlbnRhdGlvbiBvZiBKU09OIE9OIEVSUk9SIC8gT04gRU1QVFkgY2xh dXNlCi0gKi8KLXR5cGVkZWYgc3RydWN0IEpzb25CZWhhdmlvckNsYXVzZQotewotCU5vZGVU YWcJCXR5cGU7Ci0JSnNvbkJlaGF2aW9yICpvbl9lbXB0eTsJCS8qIGJlaGF2aW9yIE9OIEVN UFRZICovCi0JSnNvbkJlaGF2aW9yICpvbl9lcnJvcjsJCS8qIGJlaGF2aW9yIE9OIEVSUk9S ICovCi0JaW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5r bm93biAqLwotfSBKc29uQmVoYXZpb3JDbGF1c2U7Ci0KIC8qCiAgKiBKc29uUGF0aFNwZWMg LQogICoJCXJlcHJlc2VudGF0aW9uIG9mIEpTT04gcGF0aCBjb25zdGFudApAQCAtMTc2Nyw3 ICsxNzU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbkZ1bmNFeHByCiAJSnNvbkV4cHJPcAlv cDsJCQkJLyogZXhwcmVzc2lvbiB0eXBlICovCiAJSnNvbkNvbW1vbiAqY29tbW9uOwkJCS8q IGNvbW1vbiBzeW50YXggKi8KIAlKc29uT3V0cHV0ICpvdXRwdXQ7CQkJLyogb3V0cHV0IGNs YXVzZSwgaWYgc3BlY2lmaWVkICovCi0JSnNvbkJlaGF2aW9yQ2xhdXNlICpiZWhhdmlvcjsJ LyogT04gRVJST1IgLyBFTVBUWSBiZWhhdmlvciwgaWYgc3BlY2lmaWVkICovCisJTGlzdAkg ICAqYmVoYXZpb3I7CQkvKiBPTiBFTVBUWSAvIEVSUk9SIGJlaGF2aW9yLCBsaXN0IG9mIHR3 byBKc29uQmVoYXZpb3Igbm9kZXMgKi8KIAlKc29uV3JhcHBlciB3cmFwcGVyOwkJLyogYXJy YXkgd3JhcHBlciBiZWhhdmlvciAoSlNPTl9RVUVSWSBvbmx5KSAqLwogCUpzb25RdW90ZXMJ cXVvdGVzOwkJCS8qIG9taXQgb3Iga2VlcCBxdW90ZXM/IChKU09OX1FVRVJZIG9ubHkpICov CiAJaW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93 biAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAzY2ZhOWQ3NTZlLi45MjU4 NTc2YjRjIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTI2MCw3ICsxMjYw LDYgQEAgSnNvbkFycmF5Q29uc3RydWN0b3IKIEpzb25BcnJheVF1ZXJ5Q29uc3RydWN0b3IK IEpzb25CYXNlT2JqZWN0SW5mbwogSnNvbkJlaGF2aW9yCi1Kc29uQmVoYXZpb3JDbGF1c2UK IEpzb25CZWhhdmlvclR5cGUKIEpzb25Db2VyY2lvbgogSnNvbkNvZXJjaW9uU3RhdGUKLS0g CjIuNDIuMQoK --------------0V9yQ5EkS3NP4PpYstpVOn7d Content-Type: text/plain; charset=UTF-8; name="0006-Get-rid-of-JsonCommon.patch.nocfbot" Content-Disposition: attachment; filename="0006-Get-rid-of-JsonCommon.patch.nocfbot" Content-Transfer-Encoding: base64 RnJvbSA4N2Y2YjRhZDJkODVhMjQzYjEwNmM5MzNjM2Y4ODMwZTVmNjQ0NTFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMSBOb3YgMjAyMyAwNzoyNTo0MSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggNi82XSBHZXQgcmlkIG9mIEpzb25Db21tb24KCi0tLQogc3JjL2JhY2tlbmQv bm9kZXMvbm9kZUZ1bmNzLmMgICAgfCAxOCArKy0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgICAgICAgIHwgOTUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgIHwgIDggKy0tCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICB8IDE4ICstLS0tLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgfCAgMSAtCiA1IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyks IDEwMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdjYWQ2NjJl MjguLmI2Y2Q4YzM4ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00MDgxLDE4ICs0 MDgxLDYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQkJcmV0dXJuIFdBTEsoKChKc29uSXNQcmVkaWNhdGUgKikgbm9kZSktPmV4cHIpOwogCQlj YXNlIFRfSnNvbkFyZ3VtZW50OgogCQkJcmV0dXJuIFdBTEsoKChKc29uQXJndW1lbnQgKikg bm9kZSktPnZhbCk7Ci0JCWNhc2UgVF9Kc29uQ29tbW9uOgotCQkJewotCQkJCUpzb25Db21t b24gKmpjID0gKEpzb25Db21tb24gKikgbm9kZTsKLQotCQkJCWlmIChXQUxLKGpjLT5leHBy KSkKLQkJCQkJcmV0dXJuIHRydWU7Ci0JCQkJaWYgKFdBTEsoamMtPnBhdGhzcGVjKSkKLQkJ CQkJcmV0dXJuIHRydWU7Ci0JCQkJaWYgKFdBTEsoamMtPnBhc3NpbmcpKQotCQkJCQlyZXR1 cm4gdHJ1ZTsKLQkJCX0KLQkJCWJyZWFrOwogCQljYXNlIFRfSnNvbkJlaGF2aW9yOgogCQkJ ewogCQkJCUpzb25CZWhhdmlvciAqamIgPSAoSnNvbkJlaGF2aW9yICopIG5vZGU7CkBAIC00 MTA2LDcgKzQwOTQsMTEgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2Rl ICpub2RlLAogCQkJewogCQkJCUpzb25GdW5jRXhwciAqamZlID0gKEpzb25GdW5jRXhwciAq KSBub2RlOwogCi0JCQkJaWYgKFdBTEsoamZlLT5jb21tb24pKQorCQkJCWlmIChXQUxLKGpm ZS0+Y29udGV4dF9pdGVtKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoamZl LT5wYXRoc3BlYykpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKGpmZS0+cGFz c2luZykpCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChqZmUtPm91dHB1dCAmJiBXQUxL KGpmZS0+b3V0cHV0KSkKIAkJCQkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA5 OTU4NTMwOGM4Li40Y2RmMDg2YTQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY1MCw3ICs2NTAs NiBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fcmV0dXJuaW5nX2Ns YXVzZV9vcHQKIAkJCQlqc29uX25hbWVfYW5kX3ZhbHVlCiAJCQkJanNvbl9hZ2dyZWdhdGVf ZnVuYwotCQkJCWpzb25fYXBpX2NvbW1vbl9zeW50YXgKIAkJCQlqc29uX2FyZ3VtZW50CiAJ CQkJanNvbl9iZWhhdmlvcgogJXR5cGUgPGxpc3Q+CWpzb25fbmFtZV9hbmRfdmFsdWVfbGlz dApAQCAtNjU4LDYgKzY1Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJ anNvbl9hcnJheV9hZ2dyZWdhdGVfb3JkZXJfYnlfY2xhdXNlX29wdAogCQkJCWpzb25fYXJn dW1lbnRzCiAJCQkJanNvbl9iZWhhdmlvcl9jbGF1c2Vfb3B0CisJCQkJanNvbl9wYXNzaW5n X2NsYXVzZV9vcHQKICV0eXBlIDxpdmFsPglqc29uX2VuY29kaW5nX2NsYXVzZV9vcHQKIAkJ CQlqc29uX3ByZWRpY2F0ZV90eXBlX2NvbnN0cmFpbnQKIAkJCQlqc29uX3dyYXBwZXJfYmVo YXZpb3IKQEAgLTE1NzYzLDcgKzE1NzYzLDcgQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHBy OgogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQkJfCBKU09OX1FVRVJZICcoJwot CQkJCWpzb25fYXBpX2NvbW1vbl9zeW50YXgKKwkJCQlqc29uX3ZhbHVlX2V4cHIgJywnIGFf ZXhwciBqc29uX3Bhc3NpbmdfY2xhdXNlX29wdAogCQkJCWpzb25fcmV0dXJuaW5nX2NsYXVz ZV9vcHQKIAkJCQlqc29uX3dyYXBwZXJfYmVoYXZpb3IKIAkJCQlqc29uX3F1b3Rlc19jbGF1 c2Vfb3B0CkBAIC0xNTc3MywzMSArMTU3NzMsMzUgQEAgZnVuY19leHByX2NvbW1vbl9zdWJl eHByOgogCQkJCQlKc29uRnVuY0V4cHIgKm4gPSBtYWtlTm9kZShKc29uRnVuY0V4cHIpOwog CiAJCQkJCW4tPm9wID0gSlNPTl9RVUVSWV9PUDsKLQkJCQkJbi0+Y29tbW9uID0gKEpzb25D b21tb24gKikgJDM7Ci0JCQkJCW4tPm91dHB1dCA9IChKc29uT3V0cHV0ICopICQ0OwotCQkJ CQluLT53cmFwcGVyID0gJDU7Ci0JCQkJCW4tPnF1b3RlcyA9ICQ2OwotCQkJCQluLT5iZWhh dmlvciA9ICQ3OworCQkJCQluLT5jb250ZXh0X2l0ZW0gPSAoSnNvblZhbHVlRXhwciAqKSAk MzsKKwkJCQkJbi0+cGF0aHNwZWMgPSAkNTsKKwkJCQkJbi0+cGFzc2luZyA9ICQ2OworCQkJ CQluLT5vdXRwdXQgPSAoSnNvbk91dHB1dCAqKSAkNzsKKwkJCQkJbi0+d3JhcHBlciA9ICQ4 OworCQkJCQluLT5xdW90ZXMgPSAkOTsKKwkJCQkJbi0+YmVoYXZpb3IgPSAkMTA7CiAJCQkJ CW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCQl8 IEpTT05fRVhJU1RTICcoJwotCQkJCWpzb25fYXBpX2NvbW1vbl9zeW50YXgKKwkJCQlqc29u X3ZhbHVlX2V4cHIgJywnIGFfZXhwciBqc29uX3Bhc3NpbmdfY2xhdXNlX29wdAogCQkJCWpz b25fcmV0dXJuaW5nX2NsYXVzZV9vcHQKIAkJCQlqc29uX2JlaGF2aW9yX2NsYXVzZV9vcHQK IAkJCScpJwogCQkJCXsKLQkJCQkJSnNvbkZ1bmNFeHByICpwID0gbWFrZU5vZGUoSnNvbkZ1 bmNFeHByKTsKKwkJCQkJSnNvbkZ1bmNFeHByICpuID0gbWFrZU5vZGUoSnNvbkZ1bmNFeHBy KTsKIAotCQkJCQlwLT5vcCA9IEpTT05fRVhJU1RTX09QOwotCQkJCQlwLT5jb21tb24gPSAo SnNvbkNvbW1vbiAqKSAkMzsKLQkJCQkJcC0+b3V0cHV0ID0gKEpzb25PdXRwdXQgKikgJDQ7 Ci0JCQkJCXAtPmJlaGF2aW9yID0gJDU7Ci0JCQkJCXAtPmxvY2F0aW9uID0gQDE7Ci0JCQkJ CSQkID0gKE5vZGUgKikgcDsKKwkJCQkJbi0+b3AgPSBKU09OX0VYSVNUU19PUDsKKwkJCQkJ bi0+Y29udGV4dF9pdGVtID0gKEpzb25WYWx1ZUV4cHIgKikgJDM7CisJCQkJCW4tPnBhdGhz cGVjID0gJDU7CisJCQkJCW4tPnBhc3NpbmcgPSAkNjsKKwkJCQkJbi0+b3V0cHV0ID0gKEpz b25PdXRwdXQgKikgJDc7CisJCQkJCW4tPmJlaGF2aW9yID0gJDg7CisJCQkJCW4tPmxvY2F0 aW9uID0gQDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCQl8IEpTT05fVkFM VUUgJygnCi0JCQkJanNvbl9hcGlfY29tbW9uX3N5bnRheAorCQkJCWpzb25fdmFsdWVfZXhw ciAnLCcgYV9leHByIGpzb25fcGFzc2luZ19jbGF1c2Vfb3B0CiAJCQkJanNvbl9yZXR1cm5p bmdfY2xhdXNlX29wdAogCQkJCWpzb25fYmVoYXZpb3JfY2xhdXNlX29wdAogCQkJJyknCkBA IC0xNTgwNSw5ICsxNTgwOSwxMSBAQCBmdW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJCQkJ CUpzb25GdW5jRXhwciAqbiA9IG1ha2VOb2RlKEpzb25GdW5jRXhwcik7CiAKIAkJCQkJbi0+ b3AgPSBKU09OX1ZBTFVFX09QOwotCQkJCQluLT5jb21tb24gPSAoSnNvbkNvbW1vbiAqKSAk MzsKLQkJCQkJbi0+b3V0cHV0ID0gKEpzb25PdXRwdXQgKikgJDQ7Ci0JCQkJCW4tPmJlaGF2 aW9yID0gJDU7CisJCQkJCW4tPmNvbnRleHRfaXRlbSA9IChKc29uVmFsdWVFeHByICopICQz OworCQkJCQluLT5wYXRoc3BlYyA9ICQ1OworCQkJCQluLT5wYXNzaW5nID0gJDY7CisJCQkJ CW4tPm91dHB1dCA9IChKc29uT3V0cHV0ICopICQ3OworCQkJCQluLT5iZWhhdmlvciA9ICQ4 OwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQpAQCAtMTY1MzcsNTQgKzE2NTQzLDkgQEAgb3B0X2FzeW1tZXRyaWM6IEFTWU1NRVRSSUMK IAkJOwogCiAvKiBTUUwvSlNPTiBzdXBwb3J0ICovCi1qc29uX2FwaV9jb21tb25fc3ludGF4 OgotCQkJanNvbl92YWx1ZV9leHByICcsJyBhX2V4cHIgLyogaS5lLiBhIGpzb25fcGF0aCAq LwotCQkJCXsKLQkJCQkJSnNvbkNvbW1vbiAqbiA9IG1ha2VOb2RlKEpzb25Db21tb24pOwot Ci0JCQkJCW4tPmV4cHIgPSAoSnNvblZhbHVlRXhwciAqKSAkMTsKLQkJCQkJbi0+cGF0aHNw ZWMgPSAkMzsKLQkJCQkJbi0+cGF0aG5hbWUgPSBOVUxMOwotCQkJCQluLT5wYXNzaW5nID0g TlVMTDsKLQkJCQkJbi0+bG9jYXRpb24gPSBAMTsKLQkJCQkJJCQgPSAoTm9kZSAqKSBuOwot CQkJCX0KLQkJCXwganNvbl92YWx1ZV9leHByICcsJyBhX2V4cHIgQVMgbmFtZQotCQkJCXsK LQkJCQkJSnNvbkNvbW1vbiAqbiA9IG1ha2VOb2RlKEpzb25Db21tb24pOwotCi0JCQkJCW4t PmV4cHIgPSAoSnNvblZhbHVlRXhwciAqKSAkMTsKLQkJCQkJbi0+cGF0aHNwZWMgPSAkMzsK LQkJCQkJbi0+cGF0aG5hbWUgPSAkNTsKLQkJCQkJbi0+cGFzc2luZyA9IE5VTEw7Ci0JCQkJ CW4tPmxvY2F0aW9uID0gQDE7Ci0JCQkJCSQkID0gKE5vZGUgKikgbjsKLQkJCQl9Ci0KLQkJ CXwganNvbl92YWx1ZV9leHByICcsJyBhX2V4cHIgLyogaS5lLiBhIGpzb25fcGF0aCAqLwot CQkJCVBBU1NJTkcganNvbl9hcmd1bWVudHMKLQkJCQl7Ci0JCQkJCUpzb25Db21tb24gKm4g PSBtYWtlTm9kZShKc29uQ29tbW9uKTsKLQotCQkJCQluLT5leHByID0gKEpzb25WYWx1ZUV4 cHIgKikgJDE7Ci0JCQkJCW4tPnBhdGhzcGVjID0gJDM7Ci0JCQkJCW4tPnBhdGhuYW1lID0g TlVMTDsKLQkJCQkJbi0+cGFzc2luZyA9ICQ1OwotCQkJCQluLT5sb2NhdGlvbiA9IEAxOwot CQkJCQkkJCA9IChOb2RlICopIG47Ci0JCQkJfQotCQkJfCBqc29uX3ZhbHVlX2V4cHIgJywn IGFfZXhwciBBUyBuYW1lCi0JCQkJUEFTU0lORyBqc29uX2FyZ3VtZW50cwotCQkJCXsKLQkJ CQkJSnNvbkNvbW1vbiAqbiA9IG1ha2VOb2RlKEpzb25Db21tb24pOwotCi0JCQkJCW4tPmV4 cHIgPSAoSnNvblZhbHVlRXhwciAqKSAkMTsKLQkJCQkJbi0+cGF0aHNwZWMgPSAkMzsKLQkJ CQkJbi0+cGF0aG5hbWUgPSAkNTsKLQkJCQkJbi0+cGFzc2luZyA9ICQ3OwotCQkJCQluLT5s b2NhdGlvbiA9IEAxOwotCQkJCQkkJCA9IChOb2RlICopIG47Ci0JCQkJfQoranNvbl9wYXNz aW5nX2NsYXVzZV9vcHQ6CisJCQlQQVNTSU5HIGpzb25fYXJndW1lbnRzCQkJCQl7ICQkID0g JDI7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTklMOyB9CiAJCTsKIAoganNv bl9hcmd1bWVudHM6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAyZjRkM2NiMTE4 Li5hZjA4NDNhYTNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQzODQsMTcg KzQzODQsMTcgQEAgdHJhbnNmb3JtSnNvbkV4cHJDb21tb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBKc29uRnVuY0V4cHIgKmZ1bmMsCiAJanNleHByLT5sb2NhdGlvbiA9IGZ1bmMtPmxvY2F0 aW9uOwogCWpzZXhwci0+b3AgPSBmdW5jLT5vcDsKIAlqc2V4cHItPmZvcm1hdHRlZF9leHBy ID0gdHJhbnNmb3JtSnNvblZhbHVlRXhwcihwc3RhdGUsIGNvbnN0cnVjdE5hbWUsCi0JCQkJ CQkJCQkJCQkJZnVuYy0+Y29tbW9uLT5leHByLAorCQkJCQkJCQkJCQkJCWZ1bmMtPmNvbnRl eHRfaXRlbSwKIAkJCQkJCQkJCQkJCQlKU19GT1JNQVRfSlNPTiwKIAkJCQkJCQkJCQkJCQlJ bnZhbGlkT2lkLCBmYWxzZSk7CiAKLQlqc2V4cHItPmZvcm1hdCA9IGZ1bmMtPmNvbW1vbi0+ ZXhwci0+Zm9ybWF0OworCWpzZXhwci0+Zm9ybWF0ID0gZnVuYy0+Y29udGV4dF9pdGVtLT5m b3JtYXQ7CiAKIAkvKiBCb3RoIHNldCBpbiB0aGUgY2FsbGVyLiAqLwogCWpzZXhwci0+cmVz dWx0X2NvZXJjaW9uID0gTlVMTDsKIAlqc2V4cHItPm9taXRfcXVvdGVzID0gZmFsc2U7CiAK LQlwYXRoc3BlYyA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgZnVuYy0+Y29tbW9u LT5wYXRoc3BlYyk7CisJcGF0aHNwZWMgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUs IGZ1bmMtPnBhdGhzcGVjKTsKIAogCWpzZXhwci0+cGF0aF9zcGVjID0KIAkJY29lcmNlX3Rv X3RhcmdldF90eXBlKHBzdGF0ZSwgcGF0aHNwZWMsIGV4cHJUeXBlKHBhdGhzcGVjKSwKQEAg LTQ0MTUsNyArNDQxNSw3IEBAIHRyYW5zZm9ybUpzb25FeHByQ29tbW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgSnNvbkZ1bmNFeHByICpmdW5jLAogCXRyYW5zZm9ybUpzb25QYXNzaW5nQXJn cyhwc3RhdGUsIGNvbnN0cnVjdE5hbWUsCiAJCQkJCQkJIGV4cHJUeXBlKGpzZXhwci0+Zm9y bWF0dGVkX2V4cHIpID09IEpTT05CT0lEID8KIAkJCQkJCQkgSlNfRk9STUFUX0pTT05CIDog SlNfRk9STUFUX0pTT04sCi0JCQkJCQkJIGZ1bmMtPmNvbW1vbi0+cGFzc2luZywKKwkJCQkJ CQkgZnVuYy0+cGFzc2luZywKIAkJCQkJCQkgJmpzZXhwci0+cGFzc2luZ192YWx1ZXMsCiAJ CQkJCQkJICZqc2V4cHItPnBhc3NpbmdfbmFtZXMpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggMGY5NzdmOTM1ZS4uODNhY2QxN2FkNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMTczMSwyMCArMTczMSw2IEBAIHR5cGVkZWYgc3RydWN0IEpzb25Bcmd1bWVu dAogCWNoYXIJICAgKm5hbWU7CQkJLyogYXJndW1lbnQgbmFtZSAqLwogfSBKc29uQXJndW1l bnQ7CiAKLS8qCi0gKiBKc29uQ29tbW9uIC0KLSAqCQlyZXByZXNlbnRhdGlvbiBvZiBjb21t b24gc3ludGF4IG9mIGZ1bmN0aW9ucyB1c2luZyBKU09OIHBhdGgKLSAqLwotdHlwZWRlZiBz dHJ1Y3QgSnNvbkNvbW1vbgotewotCU5vZGVUYWcJCXR5cGU7Ci0JSnNvblZhbHVlRXhwciAq ZXhwcjsJCS8qIGNvbnRleHQgaXRlbSBleHByZXNzaW9uICovCi0JTm9kZQkgICAqcGF0aHNw ZWM7CQkvKiBKU09OIHBhdGggc3BlY2lmaWNhdGlvbiBleHByZXNzaW9uICovCi0JY2hhcgkg ICAqcGF0aG5hbWU7CQkvKiBwYXRoIG5hbWUsIGlmIGFueSAqLwotCUxpc3QJICAgKnBhc3Np bmc7CQkvKiBsaXN0IG9mIFBBU1NJTkcgY2xhdXNlIGFyZ3VtZW50cywgaWYgYW55ICovCi0J aW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAq LwotfSBKc29uQ29tbW9uOwotCiAvKgogICogSnNvbkZ1bmNFeHByIC0KICAqCQl1bnRyYW5z Zm9ybWVkIHJlcHJlc2VudGF0aW9uIG9mIEpTT04gZnVuY3Rpb24gZXhwcmVzc2lvbnMKQEAg LTE3NTMsNyArMTczOSw5IEBAIHR5cGVkZWYgc3RydWN0IEpzb25GdW5jRXhwcgogewogCU5v ZGVUYWcJCXR5cGU7CiAJSnNvbkV4cHJPcAlvcDsJCQkJLyogZXhwcmVzc2lvbiB0eXBlICov Ci0JSnNvbkNvbW1vbiAqY29tbW9uOwkJCS8qIGNvbW1vbiBzeW50YXggKi8KKwlKc29uVmFs dWVFeHByICpjb250ZXh0X2l0ZW07CS8qIGNvbnRleHQgaXRlbSBleHByZXNzaW9uICovCisJ Tm9kZQkgICAqcGF0aHNwZWM7CQkvKiBKU09OIHBhdGggc3BlY2lmaWNhdGlvbiBleHByZXNz aW9uICovCisJTGlzdAkgICAqcGFzc2luZzsJCS8qIGxpc3Qgb2YgUEFTU0lORyBjbGF1c2Ug YXJndW1lbnRzLCBpZiBhbnkgKi8KIAlKc29uT3V0cHV0ICpvdXRwdXQ7CQkJLyogb3V0cHV0 IGNsYXVzZSwgaWYgc3BlY2lmaWVkICovCiAJTGlzdAkgICAqYmVoYXZpb3I7CQkvKiBPTiBF TVBUWSAvIEVSUk9SIGJlaGF2aW9yLCBsaXN0IG9mIHR3byBKc29uQmVoYXZpb3Igbm9kZXMg Ki8KIAlKc29uV3JhcHBlciB3cmFwcGVyOwkJLyogYXJyYXkgd3JhcHBlciBiZWhhdmlvciAo SlNPTl9RVUVSWSBvbmx5KSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA5 MjU4NTc2YjRjLi44MTg2YTQyNjU5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtMTI2Myw3ICsxMjYzLDYgQEAgSnNvbkJlaGF2aW9yCiBKc29uQmVoYXZpb3JUeXBlCiBK c29uQ29lcmNpb24KIEpzb25Db2VyY2lvblN0YXRlCi1Kc29uQ29tbW9uCiBKc29uQ29uc3Ry dWN0b3JFeHByCiBKc29uQ29uc3RydWN0b3JFeHByU3RhdGUKIEpzb25Db25zdHJ1Y3RvclR5 cGUKLS0gCjIuNDIuMQoK --------------0V9yQ5EkS3NP4PpYstpVOn7d--