Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gZMfO-0000gb-G3 for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Dec 2018 21:12:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gZMfM-0003ME-Va for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Dec 2018 21:12:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gZMfM-0003L2-GW for pgsql-hackers@lists.postgresql.org; Tue, 18 Dec 2018 21:12:36 +0000 Received: from [64.147.123.25] (helo=wout2-smtp.messagingengine.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gZMfF-0006Ya-OT for pgsql-hackers@postgresql.org; Tue, 18 Dec 2018 21:12:35 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 2DB511305 for ; Tue, 18 Dec 2018 16:12:08 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 18 Dec 2018 16:12:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=9qv0cUnGxiZQPAj0bcOaEophQAtyz wRFmryFWU88A3U=; b=iFfqKXEm57bVl9+C/UQBLu2BphahFnn/f+PV7DevEsGBt IqOeqahrnoibEQDMzyxgDFhbvMsMZjowsSVU5X6XsOF8w5nxkPELZF0ZG9sWd/DN ENMNL9jQb15UHIA0xthA5RJ8J+eNczJUCHw8Y6WEDdnQNtEyAKyz8hmohRFvl2Lu IV9QKRtba7loqlB41CyWiqzVIF7G79+kmVJZ8g6gr0sxo9Q2v5/j9PF2L4KB9y6y wjcUsIgh0AVEoGjNNzpXb0X6cUPltt3sqHFiTkBB5vWE4gP9LuURmz7XrdcaFfa3 o7QFmy+HwPWRu7bm4sgEc4rwsM6DnAlPhoTS+dyWA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtkedrudeikedgleeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecunecujfgurhepvffhufhokffffgggtgesmhdtreertdefjeenucfhrhhomheprf gvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsedv nhguqhhurggurhgrnhhtrdgtohhmqeenucffohhmrghinhepvdhnughquhgrughrrghnth drtghomhenucfkphepleefrddvgeefrdduudelrddvfeelnecurfgrrhgrmhepmhgrihhl fhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtg homhenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from april.pezone.net (p5df377ef.dip0.t-ipconnect.de [93.243.119.239]) by mail.messagingengine.com (Postfix) with ESMTPA id 75996E44D4 for ; Tue, 18 Dec 2018 16:12:06 -0500 (EST) To: pgsql-hackers From: Peter Eisentraut Subject: WRITE_*_ARRAY macros for outfuncs.c Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant Message-ID: <8f2ebc67-e75f-9478-f5a5-bbbf090b1f8d@2ndquadrant.com> Date: Tue, 18 Dec 2018 22:12:05 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4D41456D60A43E156DAE458C" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 64.147.123.25 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------4D41456D60A43E156DAE458C Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit In readfuncs.c, we have READ_ATTRNUMBER_ARRAY, READ_OID_ARRAY, READ_INT_ARRAY, READ_BOOL_ARRAY, but the writing side in outfuncs.c is coded by hand in each case. Any reason for this? Here is a patch that adds WRITE_ATTRNUMBER_ARRAY, WRITE_OID_ARRAY, WRITE_INT_ARRAY, WRITE_BOOL_ARRAY. That seems much nicer. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------4D41456D60A43E156DAE458C Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Add-WRITE_-_ARRAY-macros.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-WRITE_-_ARRAY-macros.patch" RnJvbSA2MjIzOWIwZDQ4OGEwMGJjY2ExMjI5MzMyY2FhZDk4OTYwMjQwNzYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFRodSwgMTMgRGVjIDIwMTggMjE6MTg6MTggKzAxMDAKU3ViamVjdDogW1BB VENIXSBBZGQgV1JJVEVfKl9BUlJBWSBtYWNyb3MKCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMv b3V0ZnVuY3MuYyB8IDI0OCArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDE4MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQv bm9kZXMvb3V0ZnVuY3MuYwppbmRleCA2ZWRjN2YyMzU5Li5iZTZiNGNhMmY0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25v ZGVzL291dGZ1bmNzLmMKQEAgLTExMCw2ICsxMTAsMzQgQEAgc3RhdGljIHZvaWQgb3V0Q2hh cihTdHJpbmdJbmZvIHN0ciwgY2hhciBjKTsKIAkoYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhz dHIsICIgOiIgQ3BwQXNTdHJpbmcoZmxkbmFtZSkgIiAiKSwgXAogCSBvdXRCaXRtYXBzZXQo c3RyLCBub2RlLT5mbGRuYW1lKSkKIAorI2RlZmluZSBXUklURV9BVFRSTlVNQkVSX0FSUkFZ KGZsZG5hbWUsIGxlbikgXAorCWRvIHsgXAorCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0 ciwgIiA6IiBDcHBBc1N0cmluZyhmbGRuYW1lKSAiICIpOyBcCisJCWZvciAoaW50IGkgPSAw OyBpIDwgbGVuOyBpKyspIFwKKwkJCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9k ZS0+ZmxkbmFtZVtpXSk7IFwKKwl9IHdoaWxlKDApCisKKyNkZWZpbmUgV1JJVEVfT0lEX0FS UkFZKGZsZG5hbWUsIGxlbikgXAorCWRvIHsgXAorCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KHN0ciwgIiA6IiBDcHBBc1N0cmluZyhmbGRuYW1lKSAiICIpOyBcCisJCWZvciAoaW50IGkg PSAwOyBpIDwgbGVuOyBpKyspIFwKKwkJCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICV1Iiwg bm9kZS0+ZmxkbmFtZVtpXSk7IFwKKwl9IHdoaWxlKDApCisKKyNkZWZpbmUgV1JJVEVfSU5U X0FSUkFZKGZsZG5hbWUsIGxlbikgXAorCWRvIHsgXAorCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKHN0ciwgIiA6IiBDcHBBc1N0cmluZyhmbGRuYW1lKSAiICIpOyBcCisJCWZvciAoaW50 IGkgPSAwOyBpIDwgbGVuOyBpKyspIFwKKwkJCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVk Iiwgbm9kZS0+ZmxkbmFtZVtpXSk7IFwKKwl9IHdoaWxlKDApCisKKyNkZWZpbmUgV1JJVEVf Qk9PTF9BUlJBWShmbGRuYW1lLCBsZW4pIFwKKwlkbyB7IFwKKwkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhzdHIsICIgOiIgQ3BwQXNTdHJpbmcoZmxkbmFtZSkgIiAiKTsgXAorCQlmb3Ig KGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSBcCisJCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwg IiAlcyIsIGJvb2x0b3N0cihub2RlLT5mbGRuYW1lW2ldKSk7IFwKKwl9IHdoaWxlKDApCisK IAogI2RlZmluZSBib29sdG9zdHIoeCkgICgoeCkgPyAidHJ1ZSIgOiAiZmFsc2UiKQogCkBA IC00MTEsNTUgKzQzOSwzMCBAQCBfb3V0QXBwZW5kKFN0cmluZ0luZm8gc3RyLCBjb25zdCBB cHBlbmQgKm5vZGUpCiBzdGF0aWMgdm9pZAogX291dE1lcmdlQXBwZW5kKFN0cmluZ0luZm8g c3RyLCBjb25zdCBNZXJnZUFwcGVuZCAqbm9kZSkKIHsKLQlpbnQJCQlpOwotCiAJV1JJVEVf Tk9ERV9UWVBFKCJNRVJHRUFQUEVORCIpOwogCiAJX291dFBsYW5JbmZvKHN0ciwgKGNvbnN0 IFBsYW4gKikgbm9kZSk7CiAKIAlXUklURV9OT0RFX0ZJRUxEKG1lcmdlcGxhbnMpOwotCiAJ V1JJVEVfSU5UX0ZJRUxEKG51bUNvbHMpOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhz dHIsICIgOnNvcnRDb2xJZHgiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsg aSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPnNvcnRDb2xJZHhb aV0pOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOnNvcnRPcGVyYXRvcnMi KTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRTdHJp bmdJbmZvKHN0ciwgIiAldSIsIG5vZGUtPnNvcnRPcGVyYXRvcnNbaV0pOwotCi0JYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOmNvbGxhdGlvbnMiKTsKLQlmb3IgKGkgPSAwOyBp IDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAldSIs IG5vZGUtPmNvbGxhdGlvbnNbaV0pOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIs ICIgOm51bGxzRmlyc3QiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsr KQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlcyIsIGJvb2x0b3N0cihub2RlLT5udWxs c0ZpcnN0W2ldKSk7Ci0KKwlXUklURV9BVFRSTlVNQkVSX0FSUkFZKHNvcnRDb2xJZHgsIG5v ZGUtPm51bUNvbHMpOworCVdSSVRFX09JRF9BUlJBWShzb3J0T3BlcmF0b3JzLCBub2RlLT5u dW1Db2xzKTsKKwlXUklURV9PSURfQVJSQVkoY29sbGF0aW9ucywgbm9kZS0+bnVtQ29scyk7 CisJV1JJVEVfQk9PTF9BUlJBWShudWxsc0ZpcnN0LCBub2RlLT5udW1Db2xzKTsKIAlXUklU RV9OT0RFX0ZJRUxEKHBhcnRfcHJ1bmVfaW5mbyk7CiB9CiAKIHN0YXRpYyB2b2lkCiBfb3V0 UmVjdXJzaXZlVW5pb24oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFJlY3Vyc2l2ZVVuaW9uICpu b2RlKQogewotCWludAkJCWk7Ci0KIAlXUklURV9OT0RFX1RZUEUoIlJFQ1VSU0lWRVVOSU9O Iik7CiAKIAlfb3V0UGxhbkluZm8oc3RyLCAoY29uc3QgUGxhbiAqKSBub2RlKTsKIAogCVdS SVRFX0lOVF9GSUVMRCh3dFBhcmFtKTsKIAlXUklURV9JTlRfRklFTEQobnVtQ29scyk7Ci0K LQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6ZHVwQ29sSWR4Iik7Ci0JZm9yIChp ID0gMDsgaSA8IG5vZGUtPm51bUNvbHM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIs ICIgJWQiLCBub2RlLT5kdXBDb2xJZHhbaV0pOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZyhzdHIsICIgOmR1cE9wZXJhdG9ycyIpOwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5udW1D b2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICV1Iiwgbm9kZS0+ZHVwT3Bl cmF0b3JzW2ldKTsKLQorCVdSSVRFX0FUVFJOVU1CRVJfQVJSQVkoZHVwQ29sSWR4LCBub2Rl LT5udW1Db2xzKTsKKwlXUklURV9PSURfQVJSQVkoZHVwT3BlcmF0b3JzLCBub2RlLT5udW1D b2xzKTsKIAlXUklURV9MT05HX0ZJRUxEKG51bUdyb3Vwcyk7CiB9CiAKQEAgLTUwMSw4ICs1 MDQsNiBAQCBfb3V0R2F0aGVyKFN0cmluZ0luZm8gc3RyLCBjb25zdCBHYXRoZXIgKm5vZGUp CiBzdGF0aWMgdm9pZAogX291dEdhdGhlck1lcmdlKFN0cmluZ0luZm8gc3RyLCBjb25zdCBH YXRoZXJNZXJnZSAqbm9kZSkKIHsKLQlpbnQJCQlpOwotCiAJV1JJVEVfTk9ERV9UWVBFKCJH QVRIRVJNRVJHRSIpOwogCiAJX291dFBsYW5JbmZvKHN0ciwgKGNvbnN0IFBsYW4gKikgbm9k ZSk7CkBAIC01MTAsMjMgKzUxMSwxMCBAQCBfb3V0R2F0aGVyTWVyZ2UoU3RyaW5nSW5mbyBz dHIsIGNvbnN0IEdhdGhlck1lcmdlICpub2RlKQogCVdSSVRFX0lOVF9GSUVMRChudW1fd29y a2Vycyk7CiAJV1JJVEVfSU5UX0ZJRUxEKHJlc2Nhbl9wYXJhbSk7CiAJV1JJVEVfSU5UX0ZJ RUxEKG51bUNvbHMpOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOnNvcnRD b2xJZHgiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBl bmRTdHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPnNvcnRDb2xJZHhbaV0pOwotCi0JYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOnNvcnRPcGVyYXRvcnMiKTsKLQlmb3IgKGkg PSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwg IiAldSIsIG5vZGUtPnNvcnRPcGVyYXRvcnNbaV0pOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhzdHIsICIgOmNvbGxhdGlvbnMiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVt Q29sczsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAldSIsIG5vZGUtPmNvbGxh dGlvbnNbaV0pOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOm51bGxzRmly c3QiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRT dHJpbmdJbmZvKHN0ciwgIiAlcyIsIGJvb2x0b3N0cihub2RlLT5udWxsc0ZpcnN0W2ldKSk7 Ci0KKwlXUklURV9BVFRSTlVNQkVSX0FSUkFZKHNvcnRDb2xJZHgsIG5vZGUtPm51bUNvbHMp OworCVdSSVRFX09JRF9BUlJBWShzb3J0T3BlcmF0b3JzLCBub2RlLT5udW1Db2xzKTsKKwlX UklURV9PSURfQVJSQVkoY29sbGF0aW9ucywgbm9kZS0+bnVtQ29scyk7CisJV1JJVEVfQk9P TF9BUlJBWShudWxsc0ZpcnN0LCBub2RlLT5udW1Db2xzKTsKIAlXUklURV9CSVRNQVBTRVRf RklFTEQoaW5pdFBhcmFtKTsKIH0KIApAQCAtNzQ4LDcgKzczNiw2IEBAIHN0YXRpYyB2b2lk CiBfb3V0TWVyZ2VKb2luKFN0cmluZ0luZm8gc3RyLCBjb25zdCBNZXJnZUpvaW4gKm5vZGUp CiB7CiAJaW50CQkJbnVtQ29sczsKLQlpbnQJCQlpOwogCiAJV1JJVEVfTk9ERV9UWVBFKCJN RVJHRUpPSU4iKTsKIApAQCAtNzU5LDIxICs3NDYsMTAgQEAgX291dE1lcmdlSm9pbihTdHJp bmdJbmZvIHN0ciwgY29uc3QgTWVyZ2VKb2luICpub2RlKQogCiAJbnVtQ29scyA9IGxpc3Rf bGVuZ3RoKG5vZGUtPm1lcmdlY2xhdXNlcyk7CiAKLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KHN0ciwgIiA6bWVyZ2VGYW1pbGllcyIpOwotCWZvciAoaSA9IDA7IGkgPCBudW1Db2xzOyBp KyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICV1Iiwgbm9kZS0+bWVyZ2VGYW1pbGll c1tpXSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6bWVyZ2VDb2xsYXRp b25zIik7Ci0JZm9yIChpID0gMDsgaSA8IG51bUNvbHM7IGkrKykKLQkJYXBwZW5kU3RyaW5n SW5mbyhzdHIsICIgJXUiLCBub2RlLT5tZXJnZUNvbGxhdGlvbnNbaV0pOwotCi0JYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOm1lcmdlU3RyYXRlZ2llcyIpOwotCWZvciAoaSA9 IDA7IGkgPCBudW1Db2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwg bm9kZS0+bWVyZ2VTdHJhdGVnaWVzW2ldKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco c3RyLCAiIDptZXJnZU51bGxzRmlyc3QiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbnVtQ29sczsg aSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlcyIsIGJvb2x0b3N0cihub2RlLT5t ZXJnZU51bGxzRmlyc3RbaV0pKTsKKwlXUklURV9PSURfQVJSQVkobWVyZ2VGYW1pbGllcywg bnVtQ29scyk7CisJV1JJVEVfT0lEX0FSUkFZKG1lcmdlQ29sbGF0aW9ucywgbnVtQ29scyk7 CisJV1JJVEVfSU5UX0FSUkFZKG1lcmdlU3RyYXRlZ2llcywgbnVtQ29scyk7CisJV1JJVEVf Qk9PTF9BUlJBWShtZXJnZU51bGxzRmlyc3QsIG51bUNvbHMpOwogfQogCiBzdGF0aWMgdm9p ZApAQCAtNzg5LDggKzc2NSw2IEBAIF9vdXRIYXNoSm9pbihTdHJpbmdJbmZvIHN0ciwgY29u c3QgSGFzaEpvaW4gKm5vZGUpCiBzdGF0aWMgdm9pZAogX291dEFnZyhTdHJpbmdJbmZvIHN0 ciwgY29uc3QgQWdnICpub2RlKQogewotCWludAkJCWk7Ci0KIAlXUklURV9OT0RFX1RZUEUo IkFHRyIpOwogCiAJX291dFBsYW5JbmZvKHN0ciwgKGNvbnN0IFBsYW4gKikgbm9kZSk7CkBA IC03OTgsMTUgKzc3Miw4IEBAIF9vdXRBZ2coU3RyaW5nSW5mbyBzdHIsIGNvbnN0IEFnZyAq bm9kZSkKIAlXUklURV9FTlVNX0ZJRUxEKGFnZ3N0cmF0ZWd5LCBBZ2dTdHJhdGVneSk7CiAJ V1JJVEVfRU5VTV9GSUVMRChhZ2dzcGxpdCwgQWdnU3BsaXQpOwogCVdSSVRFX0lOVF9GSUVM RChudW1Db2xzKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoc3RyLCAiIDpncnBDb2xJ ZHgiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRT dHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPmdycENvbElkeFtpXSk7Ci0KLQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6Z3JwT3BlcmF0b3JzIik7Ci0JZm9yIChpID0gMDsg aSA8IG5vZGUtPm51bUNvbHM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgJXUi LCBub2RlLT5ncnBPcGVyYXRvcnNbaV0pOwotCisJV1JJVEVfQVRUUk5VTUJFUl9BUlJBWShn cnBDb2xJZHgsIG5vZGUtPm51bUNvbHMpOworCVdSSVRFX09JRF9BUlJBWShncnBPcGVyYXRv cnMsIG5vZGUtPm51bUNvbHMpOwogCVdSSVRFX0xPTkdfRklFTEQobnVtR3JvdXBzKTsKIAlX UklURV9CSVRNQVBTRVRfRklFTEQoYWdnUGFyYW1zKTsKIAlXUklURV9OT0RFX0ZJRUxEKGdy b3VwaW5nU2V0cyk7CkBAIC04MTYsMzMgKzc4MywxNyBAQCBfb3V0QWdnKFN0cmluZ0luZm8g c3RyLCBjb25zdCBBZ2cgKm5vZGUpCiBzdGF0aWMgdm9pZAogX291dFdpbmRvd0FnZyhTdHJp bmdJbmZvIHN0ciwgY29uc3QgV2luZG93QWdnICpub2RlKQogewotCWludAkJCWk7Ci0KIAlX UklURV9OT0RFX1RZUEUoIldJTkRPV0FHRyIpOwogCiAJX291dFBsYW5JbmZvKHN0ciwgKGNv bnN0IFBsYW4gKikgbm9kZSk7CiAKIAlXUklURV9VSU5UX0ZJRUxEKHdpbnJlZik7CiAJV1JJ VEVfSU5UX0ZJRUxEKHBhcnROdW1Db2xzKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco c3RyLCAiIDpwYXJ0Q29sSWR4Iik7Ci0JZm9yIChpID0gMDsgaSA8IG5vZGUtPnBhcnROdW1D b2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9kZS0+cGFydENv bElkeFtpXSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6cGFydE9wZXJh dGlvbnMiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+cGFydE51bUNvbHM7IGkrKykKLQkJ YXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgJXUiLCBub2RlLT5wYXJ0T3BlcmF0b3JzW2ldKTsK LQorCVdSSVRFX0FUVFJOVU1CRVJfQVJSQVkocGFydENvbElkeCwgbm9kZS0+cGFydE51bUNv bHMpOworCVdSSVRFX09JRF9BUlJBWShwYXJ0T3BlcmF0b3JzLCBub2RlLT5wYXJ0TnVtQ29s cyk7CiAJV1JJVEVfSU5UX0ZJRUxEKG9yZE51bUNvbHMpOwotCi0JYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhzdHIsICIgOm9yZENvbElkeCIpOwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5v cmROdW1Db2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9kZS0+ b3JkQ29sSWR4W2ldKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoc3RyLCAiIDpvcmRP cGVyYXRpb25zIik7Ci0JZm9yIChpID0gMDsgaSA8IG5vZGUtPm9yZE51bUNvbHM7IGkrKykK LQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgJXUiLCBub2RlLT5vcmRPcGVyYXRvcnNbaV0p OwotCisJV1JJVEVfQVRUUk5VTUJFUl9BUlJBWShvcmRDb2xJZHgsIG5vZGUtPm9yZE51bUNv bHMpOworCVdSSVRFX09JRF9BUlJBWShvcmRPcGVyYXRvcnMsIG5vZGUtPm9yZE51bUNvbHMp OwogCVdSSVRFX0lOVF9GSUVMRChmcmFtZU9wdGlvbnMpOwogCVdSSVRFX05PREVfRklFTEQo c3RhcnRPZmZzZXQpOwogCVdSSVRFX05PREVfRklFTEQoZW5kT2Zmc2V0KTsKQEAgLTg1Niwy MSArODA3LDEzIEBAIF9vdXRXaW5kb3dBZ2coU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFdpbmRv d0FnZyAqbm9kZSkKIHN0YXRpYyB2b2lkCiBfb3V0R3JvdXAoU3RyaW5nSW5mbyBzdHIsIGNv bnN0IEdyb3VwICpub2RlKQogewotCWludAkJCWk7Ci0KIAlXUklURV9OT0RFX1RZUEUoIkdS T1VQIik7CiAKIAlfb3V0UGxhbkluZm8oc3RyLCAoY29uc3QgUGxhbiAqKSBub2RlKTsKIAog CVdSSVRFX0lOVF9GSUVMRChudW1Db2xzKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco c3RyLCAiIDpncnBDb2xJZHgiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsg aSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPmdycENvbElkeFtp XSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6Z3JwT3BlcmF0b3JzIik7 Ci0JZm9yIChpID0gMDsgaSA8IG5vZGUtPm51bUNvbHM7IGkrKykKLQkJYXBwZW5kU3RyaW5n SW5mbyhzdHIsICIgJXUiLCBub2RlLT5ncnBPcGVyYXRvcnNbaV0pOworCVdSSVRFX0FUVFJO VU1CRVJfQVJSQVkoZ3JwQ29sSWR4LCBub2RlLT5udW1Db2xzKTsKKwlXUklURV9PSURfQVJS QVkoZ3JwT3BlcmF0b3JzLCBub2RlLT5udW1Db2xzKTsKIH0KIAogc3RhdGljIHZvaWQKQEAg LTg4NCw0OSArODI3LDI3IEBAIF9vdXRNYXRlcmlhbChTdHJpbmdJbmZvIHN0ciwgY29uc3Qg TWF0ZXJpYWwgKm5vZGUpCiBzdGF0aWMgdm9pZAogX291dFNvcnQoU3RyaW5nSW5mbyBzdHIs IGNvbnN0IFNvcnQgKm5vZGUpCiB7Ci0JaW50CQkJaTsKLQogCVdSSVRFX05PREVfVFlQRSgi U09SVCIpOwogCiAJX291dFBsYW5JbmZvKHN0ciwgKGNvbnN0IFBsYW4gKikgbm9kZSk7CiAK IAlXUklURV9JTlRfRklFTEQobnVtQ29scyk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KHN0ciwgIiA6c29ydENvbElkeCIpOwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5udW1Db2xz OyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9kZS0+c29ydENvbElk eFtpXSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6c29ydE9wZXJhdG9y cyIpOwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5udW1Db2xzOyBpKyspCi0JCWFwcGVuZFN0 cmluZ0luZm8oc3RyLCAiICV1Iiwgbm9kZS0+c29ydE9wZXJhdG9yc1tpXSk7Ci0KLQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6Y29sbGF0aW9ucyIpOwotCWZvciAoaSA9IDA7 IGkgPCBub2RlLT5udW1Db2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICV1 Iiwgbm9kZS0+Y29sbGF0aW9uc1tpXSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0 ciwgIiA6bnVsbHNGaXJzdCIpOwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5udW1Db2xzOyBp KyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVzIiwgYm9vbHRvc3RyKG5vZGUtPm51 bGxzRmlyc3RbaV0pKTsKKwlXUklURV9BVFRSTlVNQkVSX0FSUkFZKHNvcnRDb2xJZHgsIG5v ZGUtPm51bUNvbHMpOworCVdSSVRFX09JRF9BUlJBWShzb3J0T3BlcmF0b3JzLCBub2RlLT5u dW1Db2xzKTsKKwlXUklURV9PSURfQVJSQVkoY29sbGF0aW9ucywgbm9kZS0+bnVtQ29scyk7 CisJV1JJVEVfQk9PTF9BUlJBWShudWxsc0ZpcnN0LCBub2RlLT5udW1Db2xzKTsKIH0KIAog c3RhdGljIHZvaWQKIF9vdXRVbmlxdWUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFVuaXF1ZSAq bm9kZSkKIHsKLQlpbnQJCQlpOwotCiAJV1JJVEVfTk9ERV9UWVBFKCJVTklRVUUiKTsKIAog CV9vdXRQbGFuSW5mbyhzdHIsIChjb25zdCBQbGFuICopIG5vZGUpOwogCiAJV1JJVEVfSU5U X0ZJRUxEKG51bUNvbHMpOwotCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOnVu aXFDb2xJZHgiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlh cHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPnVuaXFDb2xJZHhbaV0pOwotCi0J YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOnVuaXFPcGVyYXRvcnMiKTsKLQlmb3Ig KGkgPSAwOyBpIDwgbm9kZS0+bnVtQ29sczsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0 ciwgIiAldSIsIG5vZGUtPnVuaXFPcGVyYXRvcnNbaV0pOworCVdSSVRFX0FUVFJOVU1CRVJf QVJSQVkodW5pcUNvbElkeCwgbm9kZS0+bnVtQ29scyk7CisJV1JJVEVfT0lEX0FSUkFZKHVu aXFPcGVyYXRvcnMsIG5vZGUtPm51bUNvbHMpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtOTQ1 LDggKzg2Niw2IEBAIF9vdXRIYXNoKFN0cmluZ0luZm8gc3RyLCBjb25zdCBIYXNoICpub2Rl KQogc3RhdGljIHZvaWQKIF9vdXRTZXRPcChTdHJpbmdJbmZvIHN0ciwgY29uc3QgU2V0T3Ag Km5vZGUpCiB7Ci0JaW50CQkJaTsKLQogCVdSSVRFX05PREVfVFlQRSgiU0VUT1AiKTsKIAog CV9vdXRQbGFuSW5mbyhzdHIsIChjb25zdCBQbGFuICopIG5vZGUpOwpAQCAtOTU0LDE1ICs4 NzMsOCBAQCBfb3V0U2V0T3AoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFNldE9wICpub2RlKQog CVdSSVRFX0VOVU1fRklFTEQoY21kLCBTZXRPcENtZCk7CiAJV1JJVEVfRU5VTV9GSUVMRChz dHJhdGVneSwgU2V0T3BTdHJhdGVneSk7CiAJV1JJVEVfSU5UX0ZJRUxEKG51bUNvbHMpOwot Ci0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOmR1cENvbElkeCIpOwotCWZvciAo aSA9IDA7IGkgPCBub2RlLT5udW1Db2xzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3Ry LCAiICVkIiwgbm9kZS0+ZHVwQ29sSWR4W2ldKTsKLQotCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoc3RyLCAiIDpkdXBPcGVyYXRvcnMiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVt Q29sczsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAldSIsIG5vZGUtPmR1cE9w ZXJhdG9yc1tpXSk7Ci0KKwlXUklURV9BVFRSTlVNQkVSX0FSUkFZKGR1cENvbElkeCwgbm9k ZS0+bnVtQ29scyk7CisJV1JJVEVfT0lEX0FSUkFZKGR1cE9wZXJhdG9ycywgbm9kZS0+bnVt Q29scyk7CiAJV1JJVEVfSU5UX0ZJRUxEKGZsYWdDb2xJZHgpOwogCVdSSVRFX0lOVF9GSUVM RChmaXJzdEZsYWcpOwogCVdSSVRFX0xPTkdfRklFTEQobnVtR3JvdXBzKTsKQEAgLTEwMjYs OCArOTM4LDYgQEAgX291dFBhcnRpdGlvblBydW5lSW5mbyhTdHJpbmdJbmZvIHN0ciwgY29u c3QgUGFydGl0aW9uUHJ1bmVJbmZvICpub2RlKQogc3RhdGljIHZvaWQKIF9vdXRQYXJ0aXRp b25lZFJlbFBydW5lSW5mbyhTdHJpbmdJbmZvIHN0ciwgY29uc3QgUGFydGl0aW9uZWRSZWxQ cnVuZUluZm8gKm5vZGUpCiB7Ci0JaW50CQkJaTsKLQogCVdSSVRFX05PREVfVFlQRSgiUEFS VElUSU9ORURSRUxQUlVORUlORk8iKTsKIAogCVdSSVRFX1VJTlRfRklFTEQocnRpbmRleCk7 CkBAIC0xMDM1LDE5ICs5NDUsOSBAQCBfb3V0UGFydGl0aW9uZWRSZWxQcnVuZUluZm8oU3Ry aW5nSW5mbyBzdHIsIGNvbnN0IFBhcnRpdGlvbmVkUmVsUHJ1bmVJbmZvICpub2RlKQogCVdS SVRFX0JJVE1BUFNFVF9GSUVMRChwcmVzZW50X3BhcnRzKTsKIAlXUklURV9JTlRfRklFTEQo bnBhcnRzKTsKIAlXUklURV9JTlRfRklFTEQobmV4cHJzKTsKLQotCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoc3RyLCAiIDpzdWJwbGFuX21hcCIpOwotCWZvciAoaSA9IDA7IGkgPCBub2Rl LT5ucGFydHM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgJWQiLCBub2RlLT5z dWJwbGFuX21hcFtpXSk7Ci0KLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6c3Vi cGFydF9tYXAiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnBhcnRzOyBpKyspCi0JCWFw cGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9kZS0+c3VicGFydF9tYXBbaV0pOwotCi0J YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOmhhc2V4ZWNwYXJhbSIpOwotCWZvciAo aSA9IDA7IGkgPCBub2RlLT5uZXhwcnM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIs ICIgJXMiLCBib29sdG9zdHIobm9kZS0+aGFzZXhlY3BhcmFtW2ldKSk7Ci0KKwlXUklURV9J TlRfQVJSQVkoc3VicGxhbl9tYXAsIG5vZGUtPm5wYXJ0cyk7CisJV1JJVEVfSU5UX0FSUkFZ KHN1YnBhcnRfbWFwLCBub2RlLT5ucGFydHMpOworCVdSSVRFX0JPT0xfQVJSQVkoaGFzZXhl Y3BhcmFtLCBub2RlLT5uZXhwcnMpOwogCVdSSVRFX0JPT0xfRklFTEQoZG9faW5pdGlhbF9w cnVuZSk7CiAJV1JJVEVfQk9PTF9GSUVMRChkb19leGVjX3BydW5lKTsKIAlXUklURV9CSVRN QVBTRVRfRklFTEQoZXhlY3BhcmFtaWRzKTsKQEAgLTI0MDksMTUgKzIzMDksOSBAQCBfb3V0 Rm9yZWlnbktleU9wdEluZm8oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IEZvcmVpZ25LZXlPcHRJ bmZvICpub2RlKQogCVdSSVRFX1VJTlRfRklFTEQoY29uX3JlbGlkKTsKIAlXUklURV9VSU5U X0ZJRUxEKHJlZl9yZWxpZCk7CiAJV1JJVEVfSU5UX0ZJRUxEKG5rZXlzKTsKLQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6Y29ua2V5Iik7Ci0JZm9yIChpID0gMDsgaSA8IG5v ZGUtPm5rZXlzOyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICVkIiwgbm9kZS0+ Y29ua2V5W2ldKTsKLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiA6Y29uZmtleSIp OwotCWZvciAoaSA9IDA7IGkgPCBub2RlLT5ua2V5czsgaSsrKQotCQlhcHBlbmRTdHJpbmdJ bmZvKHN0ciwgIiAlZCIsIG5vZGUtPmNvbmZrZXlbaV0pOwotCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoc3RyLCAiIDpjb25wZmVxb3AiKTsKLQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bmtl eXM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIgJXUiLCBub2RlLT5jb25wZmVx b3BbaV0pOworCVdSSVRFX0FUVFJOVU1CRVJfQVJSQVkoY29ua2V5LCBub2RlLT5ua2V5cyk7 CisJV1JJVEVfQVRUUk5VTUJFUl9BUlJBWShjb25ma2V5LCBub2RlLT5ua2V5cyk7CisJV1JJ VEVfT0lEX0FSUkFZKGNvbnBmZXFvcCwgbm9kZS0+bmtleXMpOwogCVdSSVRFX0lOVF9GSUVM RChubWF0Y2hlZF9lYyk7CiAJV1JJVEVfSU5UX0ZJRUxEKG5tYXRjaGVkX3Jjb2xzKTsKIAlX UklURV9JTlRfRklFTEQobm1hdGNoZWRfcmkpOwpAQCAtMzYyOSwyMyArMzUyMywxNSBAQCBf b3V0Q29uc3RyYWludChTdHJpbmdJbmZvIHN0ciwgY29uc3QgQ29uc3RyYWludCAqbm9kZSkK IHN0YXRpYyB2b2lkCiBfb3V0Rm9yZWlnbktleUNhY2hlSW5mbyhTdHJpbmdJbmZvIHN0ciwg Y29uc3QgRm9yZWlnbktleUNhY2hlSW5mbyAqbm9kZSkKIHsKLQlpbnQJCQlpOwotCiAJV1JJ VEVfTk9ERV9UWVBFKCJGT1JFSUdOS0VZQ0FDSEVJTkZPIik7CiAKIAlXUklURV9PSURfRklF TEQoY29ub2lkKTsKIAlXUklURV9PSURfRklFTEQoY29ucmVsaWQpOwogCVdSSVRFX09JRF9G SUVMRChjb25mcmVsaWQpOwogCVdSSVRFX0lOVF9GSUVMRChua2V5cyk7Ci0JYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhzdHIsICIgOmNvbmtleSIpOwotCWZvciAoaSA9IDA7IGkgPCBub2Rl LT5ua2V5czsgaSsrKQotCQlhcHBlbmRTdHJpbmdJbmZvKHN0ciwgIiAlZCIsIG5vZGUtPmNv bmtleVtpXSk7Ci0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOmNvbmZrZXkiKTsK LQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bmtleXM7IGkrKykKLQkJYXBwZW5kU3RyaW5nSW5m byhzdHIsICIgJWQiLCBub2RlLT5jb25ma2V5W2ldKTsKLQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKHN0ciwgIiA6Y29ucGZlcW9wIik7Ci0JZm9yIChpID0gMDsgaSA8IG5vZGUtPm5rZXlz OyBpKyspCi0JCWFwcGVuZFN0cmluZ0luZm8oc3RyLCAiICV1Iiwgbm9kZS0+Y29ucGZlcW9w W2ldKTsKKwlXUklURV9BVFRSTlVNQkVSX0FSUkFZKGNvbmtleSwgbm9kZS0+bmtleXMpOwor CVdSSVRFX0FUVFJOVU1CRVJfQVJSQVkoY29uZmtleSwgbm9kZS0+bmtleXMpOworCVdSSVRF X09JRF9BUlJBWShjb25wZmVxb3AsIG5vZGUtPm5rZXlzKTsKIH0KIAogc3RhdGljIHZvaWQK LS0gCjIuMjAuMQoK --------------4D41456D60A43E156DAE458C--