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 1rzXDn-004hm7-UI for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Apr 2024 07:39:16 +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 1rzXDm-00CnAo-4W for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Apr 2024 07:39:14 +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 1rzXDk-00CnAg-7I for pgsql-hackers@lists.postgresql.org; Wed, 24 Apr 2024 07:39:13 +0000 Received: from fout5-smtp.messagingengine.com ([103.168.172.148]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rzXDf-002fON-Gr for pgsql-hackers@postgresql.org; Wed, 24 Apr 2024 07:39:11 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id A25D913800DA for ; Wed, 24 Apr 2024 03:39:04 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 24 Apr 2024 03:39:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm2; t=1713944344; x=1714030744; bh=Fi6oLlOKIRUJmq/5mucLUBzZ5srtsB92 DOh6FUUbtHI=; b=5MsT6boCemEm2Voh3STy3JqSBMFbn7sKUbl30l8MWY7a+3LQ A2UYU2oyPT3MQR08owaYgDlVq/It26R0Y7/l1hhrS8EUInbwLu3IUo+vD891Uy97 KteORO89nqv6cY2rqann/yroV9X2LHR4shn8BICobQcXmSudl3TpdSGx0ye//cVE kTHTP2O4VX+2LcwdY7fYWAk7ZClLldtIqP7RSjZO3eZWhrBipg8a1lHY3XoR3ou/ cRLQRCEZdFRf2bpbsZmFC00UTi29TDzM2Mkc8ud6LSWeHr/JPYJO6yFNTg6X2f0y UjyY7hK1mPQ5GaRtdVQbY7XbwqKAhSu07Mlm5w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1713944344; x=1714030744; bh=Fi6oLlOKIRUJmq/5mucLUBzZ5srtsB92DOh 6FUUbtHI=; b=j9H8+aCYMGrXKZYlYp5yYN5COWbWQDkC2xO2lPOCADSzby8kKUh /eMSX/NBSFgmQaH9t+d3Y3TDzvsFJzpYQC78HGnM+n3eK+sIXXCHer/F2dV9zOk/ HWIKuX2PNiVUUZhKuxiSSMLOqkpZWEx9uTBLw33fR2wI1cvKr72FrC2+g0P2isQd PzV2niYIkgfKOUR2b5KFajky9sd+PCjH7scqcmzCJQfVRarcBeFnDw08ZmMZNgM6 TQyVCmK5vMX3uZz5CO4dRAURqJpFisZCvFd1jFBYOoce2oiAY5CAQ7b/lZ/6NQSx Ml/uIR0LoC77/jfdF6vVpV69/djc+5ENsyA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudelvddguddujecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfhuffvsehmtderre dtvdejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegv ihhsvghnthhrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepheetkedugedtheettd ethfdukeejgfduieehieetffeutdetffekkefgledvffelnecuvehluhhsthgvrhfuihii vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruh htrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 24 Apr 2024 03:39:03 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------1400DpxT0buufQG9wilWAdgD" Message-ID: <575e4f9d-acfe-45e3-b7f1-7e32c579090e@eisentraut.org> Date: Wed, 24 Apr 2024 09:39:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: Rename libpq trace internal functions To: pgsql-hackers 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. --------------1400DpxT0buufQG9wilWAdgD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit libpq's pqTraceOutputMessage() used to look like this: case 'Z': /* Ready For Query */ pqTraceOutputZ(conn->Pfdebug, message, &logCursor); break; Commit f4b54e1ed98 introduced macros for protocol characters, so now it looks like this: case PqMsg_ReadyForQuery: pqTraceOutputZ(conn->Pfdebug, message, &logCursor); break; But this introduced a disconnect between the symbol in the switch case and the function name to be called, so this made the manageability of this file a bit worse. This patch changes the function names to match, so now it looks like this: case PqMsg_ReadyForQuery: pqTraceOutput_ReadyForQuery(conn->Pfdebug, message, &logCursor); break; (This also improves the readability of the file in general, since some function names like "pqTraceOutputt" were a little hard to read accurately.) Some protocol characters have different meanings to and from the server. The old code structure had a common function for both, for example, pqTraceOutputD(). The new structure splits this up into separate ones to match the protocol message name, like pqTraceOutput_Describe() and pqTraceOutput_DataRow(). --------------1400DpxT0buufQG9wilWAdgD Content-Type: text/plain; charset=UTF-8; name="0001-Rename-libpq-trace-internal-functions.patch" Content-Disposition: attachment; filename="0001-Rename-libpq-trace-internal-functions.patch" Content-Transfer-Encoding: base64 RnJvbSAwMGE5YWJjZTA5ZWMyMmZmOWViNjE3MTIzYmQ0YmRhNTcwMTExOGEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyNCBBcHIgMjAyNCAwOToyNzo0NiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIFJlbmFtZSBsaWJwcSB0cmFjZSBpbnRlcm5hbCBmdW5jdGlvbnMKCmxpYnBx J3MgcHFUcmFjZU91dHB1dE1lc3NhZ2UoKSB1c2VkIHRvIGxvb2sgbGlrZSB0aGlzOgoKICAg IGNhc2UgJ1onOiAgICAgICAgICAgICAgIC8qIFJlYWR5IEZvciBRdWVyeSAqLwogICAgICAg IHBxVHJhY2VPdXRwdXRaKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwog ICAgICAgIGJyZWFrOwoKQ29tbWl0IGY0YjU0ZTFlZDk4IGludHJvZHVjZWQgbWFjcm9zIGZv ciBwcm90b2NvbCBjaGFyYWN0ZXJzLCBzbyBub3cKaXQgbG9va3MgbGlrZSB0aGlzOgoKICAg IGNhc2UgUHFNc2dfUmVhZHlGb3JRdWVyeToKICAgICAgICBwcVRyYWNlT3V0cHV0Wihjb25u LT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKICAgICAgICBicmVhazsKCkJ1dCB0 aGlzIGludHJvZHVjZWQgYSBkaXNjb25uZWN0IGJldHdlZW4gdGhlIHN5bWJvbCBpbiB0aGUg c3dpdGNoIGNhc2UKYW5kIHRoZSBmdW5jdGlvbiBuYW1lIHRvIGJlIGNhbGxlZCwgc28gdGhp cyBtYWRlIHRoZSBtYW5hZ2VhYmlsaXR5IG9mCnRoaXMgZmlsZSBhIGJpdCB3b3JzZS4KClRo aXMgcGF0Y2ggY2hhbmdlcyB0aGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2gsIHNvIG5vdyBp dCBsb29rcyBsaWtlCnRoaXM6CgogICAgY2FzZSBQcU1zZ19SZWFkeUZvclF1ZXJ5OgogICAg ICAgIHBxVHJhY2VPdXRwdXRfUmVhZHlGb3JRdWVyeShjb25uLT5QZmRlYnVnLCBtZXNzYWdl LCAmbG9nQ3Vyc29yKTsKICAgICAgICBicmVhazsKCihUaGlzIGFsc28gaW1wcm92ZXMgdGhl IHJlYWRhYmlsaXR5IG9mIHRoZSBmaWxlIGluIGdlbmVyYWwsIHNpbmNlIHNvbWUKZnVuY3Rp b24gbmFtZXMgbGlrZSAicHFUcmFjZU91dHB1dHQiIHdlcmUgYSBsaXR0bGUgaGFyZCB0byBy ZWFkCmFjY3VyYXRlbHkuKQoKU29tZSBwcm90b2NvbCBjaGFyYWN0ZXJzIGhhdmUgZGlmZmVy ZW50IG1lYW5pbmdzIHRvIGFuZCBmcm9tIHRoZQpzZXJ2ZXIuICBUaGUgb2xkIGNvZGUgc3Ry dWN0dXJlIGhhZCBhIGNvbW1vbiBmdW5jdGlvbiBmb3IgYm90aCwgZm9yCmV4YW1wbGUsIHBx VHJhY2VPdXRwdXREKCkuICBUaGUgbmV3IHN0cnVjdHVyZSBzcGxpdHMgdGhpcyB1cCBpbnRv CnNlcGFyYXRlIG9uZXMgdG8gbWF0Y2ggdGhlIHByb3RvY29sIG1lc3NhZ2UgbmFtZSwgbGlr ZQpwcVRyYWNlT3V0cHV0X0Rlc2NyaWJlKCkgYW5kIHBxVHJhY2VPdXRwdXRfRGF0YVJvdygp LgotLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMgfCAxOTUgKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5MSBpbnNlcnRpb25z KCspLCAxMDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtdHJhY2UuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMKaW5kZXgg Yzk5MzJmYzhhNmIuLjJmNWQ0OTBjNWVlIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNlLmMK QEAgLTIxNSw5ICsyMTUsOCBAQCBwcVRyYWNlT3V0cHV0TmNoYXIoRklMRSAqcGZkZWJ1Zywg aW50IGxlbiwgY29uc3QgY2hhciAqZGF0YSwgaW50ICpjdXJzb3IpCiAgKiBPdXRwdXQgZnVu Y3Rpb25zIGJ5IHByb3RvY29sIG1lc3NhZ2UgdHlwZQogICovCiAKLS8qIE5vdGlmaWNhdGlv blJlc3BvbnNlICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dEEoRklMRSAqZiwgY29u c3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VP dXRwdXRfTm90aWZpY2F0aW9uUmVzcG9uc2UoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2Fn ZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsKIAlmcHJpbnRmKGYsICJOb3RpZmlj YXRpb25SZXNwb25zZVx0Iik7CiAJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1 cnNvciwgcmVncmVzcyk7CkBAIC0yMjUsOSArMjI0LDggQEAgcHFUcmFjZU91dHB1dEEoRklM RSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykK IAlwcVRyYWNlT3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOwogfQog Ci0vKiBCaW5kICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dEIoRklMRSAqZiwgY29u c3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCitwcVRyYWNlT3V0cHV0X0JpbmQoRklM RSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCiB7CiAJaW50CQkJbnBh cmFtczsKIApAQCAtMjU2LDQ5ICsyNTQsNDUgQEAgcHFUcmFjZU91dHB1dEIoRklMRSAqZiwg Y29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCiAJCXBxVHJhY2VPdXRwdXRJbnQx NihmLCBtZXNzYWdlLCBjdXJzb3IpOwogfQogCi0vKiBDbG9zZShGKSBvciBDb21tYW5kQ29t cGxldGUoQikgKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0QyhGSUxFICpmLCBib29s IHRvU2VydmVyLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKK3BxVHJhY2VP dXRwdXRfQ2xvc2UoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3Ip CiB7Ci0JaWYgKHRvU2VydmVyKQotCXsKLQkJZnByaW50ZihmLCAiQ2xvc2VcdCIpOwotCQlw cVRyYWNlT3V0cHV0Qnl0ZTEoZiwgbWVzc2FnZSwgY3Vyc29yKTsKLQkJcHFUcmFjZU91dHB1 dFN0cmluZyhmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKLQl9Ci0JZWxzZQotCXsKLQkJ ZnByaW50ZihmLCAiQ29tbWFuZENvbXBsZXRlXHQiKTsKLQkJcHFUcmFjZU91dHB1dFN0cmlu ZyhmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKLQl9CisJZnByaW50ZihmLCAiQ2xvc2Vc dCIpOworCXBxVHJhY2VPdXRwdXRCeXRlMShmLCBtZXNzYWdlLCBjdXJzb3IpOworCXBxVHJh Y2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7Cit9CisKK3N0YXRp YyB2b2lkCitwcVRyYWNlT3V0cHV0X0NvbW1hbmRDb21wbGV0ZShGSUxFICpmLCBjb25zdCBj aGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKK3sKKwlmcHJpbnRmKGYsICJDb21tYW5kQ29t cGxldGVcdCIpOworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBm YWxzZSk7CiB9CiAKLS8qIERlc2NyaWJlKEYpIG9yIERhdGFSb3coQikgKi8KIHN0YXRpYyB2 b2lkCi1wcVRyYWNlT3V0cHV0RChGSUxFICpmLCBib29sIHRvU2VydmVyLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvcikKK3BxVHJhY2VPdXRwdXRfRGF0YVJvdyhGSUxFICpm LCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIHsKLQlpZiAodG9TZXJ2ZXIp CisJaW50CQkJbmZpZWxkczsKKwlpbnQJCQlsZW47CisJaW50CQkJaTsKKworCWZwcmludGYo ZiwgIkRhdGFSb3dcdCIpOworCW5maWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVz c2FnZSwgY3Vyc29yKTsKKwlmb3IgKGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQogCXsKLQkJ ZnByaW50ZihmLCAiRGVzY3JpYmVcdCIpOwotCQlwcVRyYWNlT3V0cHV0Qnl0ZTEoZiwgbWVz c2FnZSwgY3Vyc29yKTsKLQkJcHFUcmFjZU91dHB1dFN0cmluZyhmLCBtZXNzYWdlLCBjdXJz b3IsIGZhbHNlKTsKKwkJbGVuID0gcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1 cnNvciwgZmFsc2UpOworCQlpZiAobGVuID09IC0xKQorCQkJY29udGludWU7CisJCXBxVHJh Y2VPdXRwdXROY2hhcihmLCBsZW4sIG1lc3NhZ2UsIGN1cnNvcik7CiAJfQotCWVsc2UKLQl7 Ci0JCWludAkJCW5maWVsZHM7Ci0JCWludAkJCWxlbjsKLQkJaW50CQkJaTsKK30KIAotCQlm cHJpbnRmKGYsICJEYXRhUm93XHQiKTsKLQkJbmZpZWxkcyA9IHBxVHJhY2VPdXRwdXRJbnQx NihmLCBtZXNzYWdlLCBjdXJzb3IpOwotCQlmb3IgKGkgPSAwOyBpIDwgbmZpZWxkczsgaSsr KQotCQl7Ci0JCQlsZW4gPSBwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29y LCBmYWxzZSk7Ci0JCQlpZiAobGVuID09IC0xKQotCQkJCWNvbnRpbnVlOwotCQkJcHFUcmFj ZU91dHB1dE5jaGFyKGYsIGxlbiwgbWVzc2FnZSwgY3Vyc29yKTsKLQkJfQotCX0KK3N0YXRp YyB2b2lkCitwcVRyYWNlT3V0cHV0X0Rlc2NyaWJlKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1l c3NhZ2UsIGludCAqY3Vyc29yKQoreworCWZwcmludGYoZiwgIkRlc2NyaWJlXHQiKTsKKwlw cVRyYWNlT3V0cHV0Qnl0ZTEoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwlwcVRyYWNlT3V0cHV0 U3RyaW5nKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOwogfQogCiAvKiBOb3RpY2VSZXNw b25zZSAvIEVycm9yUmVzcG9uc2UgKi8KQEAgLTMyMiwzMSArMzE2LDI5IEBAIHBxVHJhY2VP dXRwdXROUihGSUxFICpmLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICptZXNzYWdl LCBpbnQgKmN1cnNvciwKIAl9CiB9CiAKLS8qIEV4ZWN1dGUoRikgb3IgRXJyb3JSZXNwb25z ZShCKSAqLwogc3RhdGljIHZvaWQKLXBxVHJhY2VPdXRwdXRFKEZJTEUgKmYsIGJvb2wgdG9T ZXJ2ZXIsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3Mp CitwcVRyYWNlT3V0cHV0X0Vycm9yUmVzcG9uc2UoRklMRSAqZiwgY29uc3QgY2hhciAqbWVz c2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsKLQlpZiAodG9TZXJ2ZXIpCi0J ewotCQlmcHJpbnRmKGYsICJFeGVjdXRlXHQiKTsKLQkJcHFUcmFjZU91dHB1dFN0cmluZyhm LCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKLQkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1l c3NhZ2UsIGN1cnNvciwgZmFsc2UpOwotCX0KLQllbHNlCi0JCXBxVHJhY2VPdXRwdXROUihm LCAiRXJyb3JSZXNwb25zZSIsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFj ZU91dHB1dE5SKGYsICJFcnJvclJlc3BvbnNlIiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNz KTsKIH0KIAotLyogQ29weUZhaWwgKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0ZihG SUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKK3BxVHJhY2VPdXRw dXRfRXhlY3V0ZShGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzKQoreworCWZwcmludGYoZiwgIkV4ZWN1dGVcdCIpOworCXBxVHJhY2VP dXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1 dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZAor cHFUcmFjZU91dHB1dF9Db3B5RmFpbChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBp bnQgKmN1cnNvcikKIHsKIAlmcHJpbnRmKGYsICJDb3B5RmFpbFx0Iik7CiAJcHFUcmFjZU91 dHB1dFN0cmluZyhmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIH0KIAotLyogRnVuY3Rp b25DYWxsICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dEYoRklMRSAqZiwgY29uc3Qg Y2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VPdXRw dXRfRnVuY3Rpb25DYWxsKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vy c29yLCBib29sIHJlZ3Jlc3MpCiB7CiAJaW50CQkJbmZpZWxkczsKIAlpbnQJCQluYnl0ZXM7 CkBAIC0zNzEsOSArMzYzLDggQEAgcHFUcmFjZU91dHB1dEYoRklMRSAqZiwgY29uc3QgY2hh ciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAlwcVRyYWNlT3V0cHV0 SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIH0KIAotLyogQ29weUluUmVzcG9uc2UgKi8K IHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0RyhGSUxFICpmLCBjb25zdCBjaGFyICptZXNz YWdlLCBpbnQgKmN1cnNvcikKK3BxVHJhY2VPdXRwdXRfQ29weUluUmVzcG9uc2UoRklMRSAq ZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCiB7CiAJaW50CQkJbmZpZWxk czsKIApAQCAtMzg1LDkgKzM3Niw4IEBAIHBxVHJhY2VPdXRwdXRHKEZJTEUgKmYsIGNvbnN0 IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwg bWVzc2FnZSwgY3Vyc29yKTsKIH0KIAotLyogQ29weU91dFJlc3BvbnNlICovCiBzdGF0aWMg dm9pZAotcHFUcmFjZU91dHB1dEgoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50 ICpjdXJzb3IpCitwcVRyYWNlT3V0cHV0X0NvcHlPdXRSZXNwb25zZShGSUxFICpmLCBjb25z dCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIHsKIAlpbnQJCQluZmllbGRzOwogCkBA IC0zOTksMTggKzM4OSwxNiBAQCBwcVRyYWNlT3V0cHV0SChGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3Nh Z2UsIGN1cnNvcik7CiB9CiAKLS8qIEJhY2tlbmRLZXlEYXRhICovCiBzdGF0aWMgdm9pZAot cHFUcmFjZU91dHB1dEsoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJz b3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VPdXRwdXRfQmFja2VuZEtleURhdGEoRklMRSAq ZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsK IAlmcHJpbnRmKGYsICJCYWNrZW5kS2V5RGF0YVx0Iik7CiAJcHFUcmFjZU91dHB1dEludDMy KGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CiAJcHFUcmFjZU91dHB1dEludDMyKGYs IG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CiB9CiAKLS8qIFBhcnNlICovCiBzdGF0aWMg dm9pZAotcHFUcmFjZU91dHB1dFAoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50 ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VPdXRwdXRfUGFyc2UoRklMRSAqZiwg Y29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsKIAlp bnQJCQlucGFyYW1zOwogCkBAIC00MjMsMzQgKzQxMSwzMCBAQCBwcVRyYWNlT3V0cHV0UChG SUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNz KQogCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsK IH0KIAotLyogUXVlcnkgKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0UShGSUxFICpm LCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKK3BxVHJhY2VPdXRwdXRfUXVl cnkoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCiB7CiAJZnBy aW50ZihmLCAiUXVlcnlcdCIpOwogCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwg Y3Vyc29yLCBmYWxzZSk7CiB9CiAKLS8qIEF1dGhlbnRpY2F0aW9uICovCiBzdGF0aWMgdm9p ZAotcHFUcmFjZU91dHB1dFIoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IpCitwcVRyYWNlT3V0cHV0X0F1dGhlbnRpY2F0aW9uKEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQogewogCWZwcmludGYoZiwgIkF1dGhlbnRpY2F0 aW9uXHQiKTsKIAlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxz ZSk7CiB9CiAKLS8qIFBhcmFtZXRlclN0YXR1cyAqLwogc3RhdGljIHZvaWQKLXBxVHJhY2VP dXRwdXRTKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQorcHFU cmFjZU91dHB1dF9QYXJhbWV0ZXJTdGF0dXMoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2Fn ZSwgaW50ICpjdXJzb3IpCiB7CiAJZnByaW50ZihmLCAiUGFyYW1ldGVyU3RhdHVzXHQiKTsK IAlwcVRyYWNlT3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOwogCXBx VHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CiB9CiAKLS8q IFBhcmFtZXRlckRlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dHQo RklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVz cykKK3BxVHJhY2VPdXRwdXRfUGFyYW1ldGVyRGVzY3JpcHRpb24oRklMRSAqZiwgY29uc3Qg Y2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsKIAlpbnQJCQlu ZmllbGRzOwogCkBAIC00NjEsOSArNDQ1LDggQEAgcHFUcmFjZU91dHB1dHQoRklMRSAqZiwg Y29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAkJcHFU cmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CiB9CiAKLS8q IFJvd0Rlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dFQoRklMRSAq ZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3Bx VHJhY2VPdXRwdXRfUm93RGVzY3JpcHRpb24oRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2Fn ZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIHsKIAlpbnQJCQluZmllbGRzOwogCkBA IC00ODIsMTggKzQ2NSwxNiBAQCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCX0KIH0KIAotLyogTmVn b3RpYXRlUHJvdG9jb2xWZXJzaW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dHYo RklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCitwcVRyYWNlT3V0 cHV0X05lZ290aWF0ZVByb3RvY29sVmVyc2lvbihGSUxFICpmLCBjb25zdCBjaGFyICptZXNz YWdlLCBpbnQgKmN1cnNvcikKIHsKIAlmcHJpbnRmKGYsICJOZWdvdGlhdGVQcm90b2NvbFZl cnNpb25cdCIpOwogCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZh bHNlKTsKIAlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7 CiB9CiAKLS8qIEZ1bmN0aW9uQ2FsbFJlc3BvbnNlICovCiBzdGF0aWMgdm9pZAotcHFUcmFj ZU91dHB1dFYoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCitw cVRyYWNlT3V0cHV0X0Z1bmN0aW9uQ2FsbFJlc3BvbnNlKEZJTEUgKmYsIGNvbnN0IGNoYXIg Km1lc3NhZ2UsIGludCAqY3Vyc29yKQogewogCWludAkJCWxlbjsKIApAQCAtNTAzLDkgKzQ4 NCw4IEBAIHBxVHJhY2VPdXRwdXRWKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGlu dCAqY3Vyc29yKQogCQlwcVRyYWNlT3V0cHV0TmNoYXIoZiwgbGVuLCBtZXNzYWdlLCBjdXJz b3IpOwogfQogCi0vKiBDb3B5Qm90aFJlc3BvbnNlICovCiBzdGF0aWMgdm9pZAotcHFUcmFj ZU91dHB1dFcoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGlu dCBsZW5ndGgpCitwcVRyYWNlT3V0cHV0X0NvcHlCb3RoUmVzcG9uc2UoRklMRSAqZiwgY29u c3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGludCBsZW5ndGgpCiB7CiAJZnByaW50 ZihmLCAiQ29weUJvdGhSZXNwb25zZVx0Iik7CiAJcHFUcmFjZU91dHB1dEJ5dGUxKGYsIG1l c3NhZ2UsIGN1cnNvcik7CkBAIC01MTQsOSArNDk0LDggQEAgcHFUcmFjZU91dHB1dFcoRklM RSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGludCBsZW5ndGgpCiAJ CXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOwogfQogCi0vKiBSZWFk eUZvclF1ZXJ5ICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91dHB1dFooRklMRSAqZiwgY29u c3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCitwcVRyYWNlT3V0cHV0X1JlYWR5Rm9y UXVlcnkoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCiB7CiAJ ZnByaW50ZihmLCAiUmVhZHlGb3JRdWVyeVx0Iik7CiAJcHFUcmFjZU91dHB1dEJ5dGUxKGYs IG1lc3NhZ2UsIGN1cnNvcik7CkBAIC01NzUsMTAgKzU1NCwxMCBAQCBwcVRyYWNlT3V0cHV0 TWVzc2FnZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGJvb2wgdG9TZXJ2 ZXIpCiAJCQkvKiBObyBtZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOwogCQljYXNlIFBx TXNnX05vdGlmaWNhdGlvblJlc3BvbnNlOgotCQkJcHFUcmFjZU91dHB1dEEoY29ubi0+UGZk ZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0 X05vdGlmaWNhdGlvblJlc3BvbnNlKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJz b3IsIHJlZ3Jlc3MpOwogCQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfQmluZDoKLQkJCXBxVHJh Y2VPdXRwdXRCKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOworCQkJcHFU cmFjZU91dHB1dF9CaW5kKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwog CQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfQ29weURvbmU6CiAJCQlmcHJpbnRmKGNvbm4tPlBm ZGVidWcsICJDb3B5RG9uZSIpOwpAQCAtNTg3LDcgKzU2NiwxMCBAQCBwcVRyYWNlT3V0cHV0 TWVzc2FnZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGJvb2wgdG9TZXJ2 ZXIpCiAJCWNhc2UgUHFNc2dfQ29tbWFuZENvbXBsZXRlOgogCQkJLyogQ2xvc2UoRikgYW5k IENvbW1hbmRDb21wbGV0ZShCKSB1c2UgdGhlIHNhbWUgaWRlbnRpZmllci4gKi8KIAkJCUFz c2VydChQcU1zZ19DbG9zZSA9PSBQcU1zZ19Db21tYW5kQ29tcGxldGUpOwotCQkJcHFUcmFj ZU91dHB1dEMoY29ubi0+UGZkZWJ1ZywgdG9TZXJ2ZXIsIG1lc3NhZ2UsICZsb2dDdXJzb3Ip OworCQkJaWYgKHRvU2VydmVyKQorCQkJCXBxVHJhY2VPdXRwdXRfQ2xvc2UoY29ubi0+UGZk ZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CisJCQllbHNlCisJCQkJcHFUcmFjZU91dHB1 dF9Db21tYW5kQ29tcGxldGUoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7 CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19Db3B5RGF0YToKIAkJCS8qIERyb3AgQ09QWSBk YXRhIHRvIHJlZHVjZSB0aGUgb3ZlcmhlYWQgb2YgbG9nZ2luZy4gKi8KQEAgLTU5NSwzNyAr NTc3LDQyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJY2FzZSBQcU1zZ19EZXNjcmliZToKIAkJ CS8qIERlc2NyaWJlKEYpIGFuZCBEYXRhUm93KEIpIHVzZSB0aGUgc2FtZSBpZGVudGlmaWVy LiAqLwogCQkJQXNzZXJ0KFBxTXNnX0Rlc2NyaWJlID09IFBxTXNnX0RhdGFSb3cpOwotCQkJ cHFUcmFjZU91dHB1dEQoY29ubi0+UGZkZWJ1ZywgdG9TZXJ2ZXIsIG1lc3NhZ2UsICZsb2dD dXJzb3IpOworCQkJaWYgKHRvU2VydmVyKQorCQkJCXBxVHJhY2VPdXRwdXRfRGVzY3JpYmUo Y29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CisJCQllbHNlCisJCQkJcHFU cmFjZU91dHB1dF9EYXRhUm93KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3Ip OwogCQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfRXhlY3V0ZToKIAkJCS8qIEV4ZWN1dGUoRikg YW5kIEVycm9yUmVzcG9uc2UoQikgdXNlIHRoZSBzYW1lIGlkZW50aWZpZXIuICovCiAJCQlB c3NlcnQoUHFNc2dfRXhlY3V0ZSA9PSBQcU1zZ19FcnJvclJlc3BvbnNlKTsKLQkJCXBxVHJh Y2VPdXRwdXRFKGNvbm4tPlBmZGVidWcsIHRvU2VydmVyLCBtZXNzYWdlLCAmbG9nQ3Vyc29y LAotCQkJCQkJICAgcmVncmVzcyk7CisJCQlpZiAodG9TZXJ2ZXIpCisJCQkJcHFUcmFjZU91 dHB1dF9FeGVjdXRlKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jl c3MpOworCQkJZWxzZQorCQkJCXBxVHJhY2VPdXRwdXRfRXJyb3JSZXNwb25zZShjb25uLT5Q ZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKIAkJCWJyZWFrOwogCQlj YXNlIFBxTXNnX0NvcHlGYWlsOgotCQkJcHFUcmFjZU91dHB1dGYoY29ubi0+UGZkZWJ1Zywg bWVzc2FnZSwgJmxvZ0N1cnNvcik7CisJCQlwcVRyYWNlT3V0cHV0X0NvcHlGYWlsKGNvbm4t PlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwogCQkJYnJlYWs7CiAJCWNhc2UgUHFN c2dfRnVuY3Rpb25DYWxsOgotCQkJcHFUcmFjZU91dHB1dEYoY29ubi0+UGZkZWJ1ZywgbWVz c2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0X0Z1bmN0aW9u Q2FsbChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKIAkJ CWJyZWFrOwogCQljYXNlIFBxTXNnX0NvcHlJblJlc3BvbnNlOgotCQkJcHFUcmFjZU91dHB1 dEcoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CisJCQlwcVRyYWNlT3V0 cHV0X0NvcHlJblJlc3BvbnNlKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3Ip OwogCQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfRmx1c2g6CiAJCQkvKiBGbHVzaChGKSBhbmQg Q29weU91dFJlc3BvbnNlKEIpIHVzZSB0aGUgc2FtZSBpZGVudGlmaWVyICovCiAJCQlBc3Nl cnQoUHFNc2dfQ29weU91dFJlc3BvbnNlID09IFBxTXNnX0ZsdXNoKTsKLQkJCWlmICghdG9T ZXJ2ZXIpCi0JCQkJcHFUcmFjZU91dHB1dEgoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxv Z0N1cnNvcik7Ci0JCQllbHNlCisJCQlpZiAodG9TZXJ2ZXIpCiAJCQkJZnByaW50Zihjb25u LT5QZmRlYnVnLCAiRmx1c2giKTsJLyogbm8gbWVzc2FnZSBjb250ZW50ICovCisJCQllbHNl CisJCQkJcHFUcmFjZU91dHB1dF9Db3B5T3V0UmVzcG9uc2UoY29ubi0+UGZkZWJ1ZywgbWVz c2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19FbXB0eVF1ZXJ5 UmVzcG9uc2U6CiAJCQlmcHJpbnRmKGNvbm4tPlBmZGVidWcsICJFbXB0eVF1ZXJ5UmVzcG9u c2UiKTsKIAkJCS8qIE5vIG1lc3NhZ2UgY29udGVudCAqLwogCQkJYnJlYWs7CiAJCWNhc2Ug UHFNc2dfQmFja2VuZEtleURhdGE6Ci0JCQlwcVRyYWNlT3V0cHV0Syhjb25uLT5QZmRlYnVn LCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRfQmFj a2VuZEtleURhdGEoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVz cyk7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19Ob0RhdGE6CiAJCQlmcHJpbnRmKGNvbm4t PlBmZGVidWcsICJOb0RhdGEiKTsKQEAgLTYzNiw0NyArNjIzLDQ3IEBAIHBxVHJhY2VPdXRw dXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1Nl cnZlcikKIAkJCQkJCQkmbG9nQ3Vyc29yLCByZWdyZXNzKTsKIAkJCWJyZWFrOwogCQljYXNl IFBxTXNnX1BhcnNlOgotCQkJcHFUcmFjZU91dHB1dFAoY29ubi0+UGZkZWJ1ZywgbWVzc2Fn ZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0X1BhcnNlKGNvbm4t PlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOwogCQkJYnJlYWs7CiAJ CWNhc2UgUHFNc2dfUXVlcnk6Ci0JCQlwcVRyYWNlT3V0cHV0UShjb25uLT5QZmRlYnVnLCBt ZXNzYWdlLCAmbG9nQ3Vyc29yKTsKKwkJCXBxVHJhY2VPdXRwdXRfUXVlcnkoY29ubi0+UGZk ZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19B dXRoZW50aWNhdGlvblJlcXVlc3Q6Ci0JCQlwcVRyYWNlT3V0cHV0Uihjb25uLT5QZmRlYnVn LCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKKwkJCXBxVHJhY2VPdXRwdXRfQXV0aGVudGljYXRp b24oY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKIAkJ Y2FzZSBQcU1zZ19Qb3J0YWxTdXNwZW5kZWQ6CiAJCQlmcHJpbnRmKGNvbm4tPlBmZGVidWcs ICJQb3J0YWxTdXNwZW5kZWQiKTsKIAkJCS8qIE5vIG1lc3NhZ2UgY29udGVudCAqLwogCQkJ YnJlYWs7CiAJCWNhc2UgUHFNc2dfU3luYzoKLQkJCS8qIFBhcmFtZXRlciBTdGF0dXMoQikg YW5kIFN5bmMoRikgdXNlIHRoZSBzYW1lIGlkZW50aWZpZXIgKi8KKwkJCS8qIFBhcmFtZXRl clN0YXR1cyhCKSBhbmQgU3luYyhGKSB1c2UgdGhlIHNhbWUgaWRlbnRpZmllciAqLwogCQkJ QXNzZXJ0KFBxTXNnX1BhcmFtZXRlclN0YXR1cyA9PSBQcU1zZ19TeW5jKTsKLQkJCWlmICgh dG9TZXJ2ZXIpCi0JCQkJcHFUcmFjZU91dHB1dFMoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwg JmxvZ0N1cnNvcik7Ci0JCQllbHNlCisJCQlpZiAodG9TZXJ2ZXIpCiAJCQkJZnByaW50Zihj b25uLT5QZmRlYnVnLCAiU3luYyIpOyAvKiBubyBtZXNzYWdlIGNvbnRlbnQgKi8KKwkJCWVs c2UKKwkJCQlwcVRyYWNlT3V0cHV0X1BhcmFtZXRlclN0YXR1cyhjb25uLT5QZmRlYnVnLCBt ZXNzYWdlLCAmbG9nQ3Vyc29yKTsKIAkJCWJyZWFrOwogCQljYXNlIFBxTXNnX1BhcmFtZXRl ckRlc2NyaXB0aW9uOgotCQkJcHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2Fn ZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0X1BhcmFtZXRlckRl c2NyaXB0aW9uKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3Mp OwogCQkJYnJlYWs7CiAJCWNhc2UgUHFNc2dfUm93RGVzY3JpcHRpb246Ci0JCQlwcVRyYWNl T3V0cHV0VChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsK KwkJCXBxVHJhY2VPdXRwdXRfUm93RGVzY3JpcHRpb24oY29ubi0+UGZkZWJ1ZywgbWVzc2Fn ZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19OZWdv dGlhdGVQcm90b2NvbFZlcnNpb246Ci0JCQlwcVRyYWNlT3V0cHV0dihjb25uLT5QZmRlYnVn LCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKKwkJCXBxVHJhY2VPdXRwdXRfTmVnb3RpYXRlUHJv dG9jb2xWZXJzaW9uKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwogCQkJ YnJlYWs7CiAJCWNhc2UgUHFNc2dfRnVuY3Rpb25DYWxsUmVzcG9uc2U6Ci0JCQlwcVRyYWNl T3V0cHV0Vihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKKwkJCXBxVHJh Y2VPdXRwdXRfRnVuY3Rpb25DYWxsUmVzcG9uc2UoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwg JmxvZ0N1cnNvcik7CiAJCQlicmVhazsKIAkJY2FzZSBQcU1zZ19Db3B5Qm90aFJlc3BvbnNl OgotCQkJcHFUcmFjZU91dHB1dFcoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNv ciwgbGVuZ3RoKTsKKwkJCXBxVHJhY2VPdXRwdXRfQ29weUJvdGhSZXNwb25zZShjb25uLT5Q ZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCBsZW5ndGgpOwogCQkJYnJlYWs7CiAJCWNh c2UgUHFNc2dfVGVybWluYXRlOgogCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiVGVybWlu YXRlIik7CiAJCQkvKiBObyBtZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOwogCQljYXNl IFBxTXNnX1JlYWR5Rm9yUXVlcnk6Ci0JCQlwcVRyYWNlT3V0cHV0Wihjb25uLT5QZmRlYnVn LCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKKwkJCXBxVHJhY2VPdXRwdXRfUmVhZHlGb3JRdWVy eShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKIAkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiVW5rbm93biBtZXNzYWdlOiAl MDJ4IiwgaWQpOwoKYmFzZS1jb21taXQ6IDI4NmVlYTVkM2FlMzNhOGMyMmQ0NmEwNTFmOGFj NjA2OWM4Yjc3OWQKLS0gCjIuNDQuMAoK --------------1400DpxT0buufQG9wilWAdgD--