Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVWE4-0005cr-AJ for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Feb 2023 11:26:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pVWE2-0002NR-2l for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Feb 2023 11:26:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVWE1-0002NH-Az for pgsql-hackers@lists.postgresql.org; Fri, 24 Feb 2023 11:26:53 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pVWDv-0001Ma-3b for pgsql-hackers@postgresql.org; Fri, 24 Feb 2023 11:26:52 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailnew.nyi.internal (Postfix) with ESMTP id DF5FD581CF6; Fri, 24 Feb 2023 06:26:45 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 24 Feb 2023 06:26:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1677238005; x=1677245205; bh=ruuoJSh2/cpE2hw/hVFsI/8WWys/ 0cpgbuiiD1NMyvM=; b=DaEiUeo/6Bt8AAiuOeTGmQIS1sYXT8Um4oMPIXz43XIR 9yW9BueSbrOAtrAMX/m7sJwFojgsNquNdqyh5QbDoEu0YN2TBYgNyUMW4JDQnkCi McZZ7SDdlxT6xnNFnmmX+rjSzf4WlLU8aXXi3Y2cl46vP8NdeJV2OVZTBFY9um1U q8SD0Eid9SVlHkkAl72FLkhrt0xngbzA39ZK5GdFQudFV6LbVXyXahujjfPqc1Oi aLmGBms1XYpcGoTPoxLTV4HX+i8nV6/66CTf/6l0ayAalNy7FJI+GFhFSCK9JeSO 9zDt7wk9vOc0KvwHVChJBIeSXGrAZzlPuqkJhsZzxA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekfedgvdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuhffvvehfjgesmhdtreertdefjeenucfhrhhomheprfgvthgv rhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvg hrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvghrnhepjefggfeuuddvuefgueeu ieeggfffgfejfefgvdekteevhfdugefhhfevtddvffevnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhht segvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 24 Feb 2023 06:26:44 -0500 (EST) Content-Type: multipart/mixed; boundary="------------FN4IYusCL5FoCuqoDepWpgNj" Message-ID: <5fa08e2f-9720-42e1-7550-9b8e663bf71d@enterprisedb.com> Date: Fri, 24 Feb 2023 12:26:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: dynamic result sets support in extended query protocol Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers Cc: Alvaro Herrera References: <20230130130609.mjswqhzqidc3cojl@alvherre.pgsql> <896e6e09-2304-4cff-d6ff-62176344b2f6@enterprisedb.com> In-Reply-To: <896e6e09-2304-4cff-d6ff-62176344b2f6@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------FN4IYusCL5FoCuqoDepWpgNj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 20.02.23 13:58, Peter Eisentraut wrote: > The attached patches are the same as before, rebased over master and > split up as described.  I haven't done any significant work on the > contents, but I will try to get the 0001 patch into a more polished > state soon. I've done a bit of work on this patch, mainly cleaned up and expanded the tests, and also added DO support, which is something that had been requested (meaning you can return result sets from DO with this facility). Here is a new version. --------------FN4IYusCL5FoCuqoDepWpgNj Content-Type: text/plain; charset=UTF-8; name="v8-0001-Dynamic-result-sets-from-procedures.patch" Content-Disposition: attachment; filename="v8-0001-Dynamic-result-sets-from-procedures.patch" Content-Transfer-Encoding: base64 RnJvbSBhZGEzMTU5MjVkMDI4ODM4MzNjYzVmNGJjOTU0NzdiMDIxN2Q5ZDY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAyNCBGZWIgMjAyMyAxMjoyMTo0MCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjggMS8yXSBEeW5hbWljIHJlc3VsdCBzZXRzIGZyb20gcHJvY2VkdXJlcwoK RGVjbGFyaW5nIGEgY3Vyc29yIFdJVEggUkVUVVJOIGluIGEgcHJvY2VkdXJlIG1ha2VzIHRo ZSBjdXJzb3IncyBkYXRhCmJlIHJldHVybmVkIGFzIGEgcmVzdWx0IG9mIHRoZSBDQUxMIChv ciBETykgaW52b2NhdGlvbi4gIFRoZSBwcm9jZWR1cmUKbmVlZHMgdG8gYmUgZGVjbGFyZWQg d2l0aCB0aGUgRFlOQU1JQyBSRVNVTFQgU0VUUyBhdHRyaWJ1dGUuCgpEaXNjdXNzaW9uOiBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvNmU3NDdmOTgtODM1 Zi0yZTA1LWNkZTUtODZlZTQ0NGE3MTQwQDJuZHF1YWRyYW50LmNvbQotLS0KIGRvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMCArKwogZG9jL3Ny Yy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sICAgICAgICAgIHwgICAzICstCiBkb2Mv c3JjL3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKysrLQog ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9jZWR1cmUuc2dtbCAgICAgICAgIHwgIDEyICsr CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9jZWR1cmUuc2dtbCAgICAgICAgfCAgMTQg KysKIGRvYy9zcmMvc2dtbC9yZWYvZGVjbGFyZS5zZ21sICAgICAgICAgICAgICAgICB8ICAz NSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsICAg IHwgICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5jICAgICAgICAg ICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHJvYy5jICAgICAgICAgICAg ICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0ICAg ICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYyAg ICAgICAgICAgfCAgOTQgKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9y dGFsY21kcy5jICAgICAgICAgICAgIHwgIDIzICsrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrLQogc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgIDM3ICsrKystCiBzcmMvYmFja2Vu ZC91dGlscy9lcnJjb2Rlcy50eHQgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9wb3J0YWxtZW0uYyAgICAgICAgICAgIHwgIDQ4ICsrKysrKysKIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKy0K IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oICAgICAgICAgICAgICAgICB8ICAgNiAr LQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvcG9ydGFsLmggICAgICAgICAgICAgICAgICAgIHwg IDEyICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIC4uLi9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF93aXRoX3JldHVybi5vdXQgICAg ICB8IDEwNSArKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMg ICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55 ICAgICAgICAgICAgICAgICAgfCAgNTggKysrKysrKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF91bnJlc2VydmVkX2t3bGlzdC5oICAgICB8ICAgMiArCiAuLi4vcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfd2l0aF9yZXR1cm4uc3FsICAgfCAgNjQgKysrKysrKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9keW5hbWljX3Jlc3VsdF9zZXRzLm91dCAgfCAxMjkgKysrKysrKysrKysr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2R5bmFtaWNfcmVzdWx0X3NldHMuc3Fs ICB8ICA5MCArKysrKysrKysrKysKIDMzIGZpbGVzIGNoYW5nZWQsIDgwMyBpbnNlcnRpb25z KCspLCAzOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF93aXRoX3JldHVybi5vdXQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfd2l0aF9yZXR1cm4uc3FsCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9keW5hbWljX3Jl c3VsdF9zZXRzLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2R5bmFtaWNfcmVzdWx0X3NldHMuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBjMWU0MDQ4 MDU0Li41YmFlYzRkYzNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjA0MSw2ICs2MDQxLDE2 IEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9jPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvZHlucmVzPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIEZvciBwcm9jZWR1cmVzLCB0aGlzIHJlY29yZHMgdGhlIG1heGltdW0g bnVtYmVyIG9mIGR5bmFtaWMgcmVzdWx0IHNldHMKKyAgICAgICB0aGUgcHJvY2VkdXJlIG1h eSBjcmVhdGUuICBPdGhlcndpc2UgemVyby4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3Ry dWN0ZmllbGQ+cHJvbmFyZ3M8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyPC90eXBlPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCmluZGV4IDM1MGM3NWJjMzEuLjVmYzlk YzIyYWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKQEAgLTU4ODUs NyArNTg4NSw4IEBAIDx0aXRsZT48c3RydWN0bmFtZT5yb3V0aW5lczwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CiAgICAgICAgPHN0cnVjdGZpZWxkPm1heF9keW5hbWljX3Jlc3Vs dF9zZXRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgogICAg ICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUg bm90IGF2YWlsYWJsZSBpbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ CisgICAgICAgRm9yIGEgcHJvY2VkdXJlLCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZHluYW1p YyByZXN1bHQgc2V0cy4gIE90aGVyd2lzZQorICAgICAgIHplcm8uCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBn c3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDg4OTdhNTQ1MGEu LjBjMGQ3N2IwZTYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtMzEyOCw3ICszMTI4LDcgQEAgPHRp dGxlPkRlY2xhcmluZyBDdXJzb3IgVmFyaWFibGVzPC90aXRsZT4KICAgICAgQW5vdGhlciB3 YXkgaXMgdG8gdXNlIHRoZSBjdXJzb3IgZGVjbGFyYXRpb24gc3ludGF4LAogICAgICB3aGlj aCBpbiBnZW5lcmFsIGlzOgogPHN5bm9wc2lzPgotPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gTk8gPC9vcHRpb25hbD4gU0NST0xMIDwv b3B0aW9uYWw+IENVUlNPUiA8b3B0aW9uYWw+ICggPHJlcGxhY2VhYmxlPmFyZ3VtZW50czwv cmVwbGFjZWFibGU+ICkgPC9vcHRpb25hbD4gRk9SIDxyZXBsYWNlYWJsZT5xdWVyeTwvcmVw bGFjZWFibGU+OworPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiA8b3B0aW9uYWw+ IDxvcHRpb25hbD4gTk8gPC9vcHRpb25hbD4gU0NST0xMIDwvb3B0aW9uYWw+IENVUlNPUiA8 b3B0aW9uYWw+IDxvcHRpb25hbD4gV0lUSCBSRVRVUk4gPC9vcHRpb25hbD4gKCA8cmVwbGFj ZWFibGU+YXJndW1lbnRzPC9yZXBsYWNlYWJsZT4gKSA8L29wdGlvbmFsPiBGT1IgPHJlcGxh Y2VhYmxlPnF1ZXJ5PC9yZXBsYWNlYWJsZT47CiA8L3N5bm9wc2lzPgogICAgICAoPGxpdGVy YWw+Rk9SPC9saXRlcmFsPiBjYW4gYmUgcmVwbGFjZWQgYnkgPGxpdGVyYWw+SVM8L2xpdGVy YWw+IGZvcgogICAgICA8cHJvZHVjdG5hbWU+T3JhY2xlPC9wcm9kdWN0bmFtZT4gY29tcGF0 aWJpbGl0eS4pCkBAIC0zMTM2LDYgKzMxMzYsMTAgQEAgPHRpdGxlPkRlY2xhcmluZyBDdXJz b3IgVmFyaWFibGVzPC90aXRsZT4KICAgICAgc2Nyb2xsaW5nIGJhY2t3YXJkOyBpZiA8bGl0 ZXJhbD5OTyBTQ1JPTEw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgYmFja3dhcmQKICAgICAg ZmV0Y2hlcyB3aWxsIGJlIHJlamVjdGVkOyBpZiBuZWl0aGVyIHNwZWNpZmljYXRpb24gYXBw ZWFycywgaXQgaXMKICAgICAgcXVlcnktZGVwZW5kZW50IHdoZXRoZXIgYmFja3dhcmQgZmV0 Y2hlcyB3aWxsIGJlIGFsbG93ZWQuCisgICAgIElmIDxsaXRlcmFsPldJVEggUkVUVVJOPC9s aXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSByZXN1bHRzIG9mIHRoZQorICAgICBjdXJzb3Is IGFmdGVyIGl0IGlzIG9wZW5lZCwgd2lsbCBiZSByZXR1cm5lZCBhcyBhIGR5bmFtaWMgcmVz dWx0IHNldDsgc2VlCisgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1kZWNsYXJlIi8+IGZvciBk ZXRhaWxzLiAgKDxsaXRlcmFsPldJVEhPVVQKKyAgICAgUkVUVVJOPC9saXRlcmFsPiBjYW4g YWxzbyBiZSBzcGVjaWZpZWQgYnV0IGhhcyBubyBlZmZlY3QuKQogICAgICA8cmVwbGFjZWFi bGU+YXJndW1lbnRzPC9yZXBsYWNlYWJsZT4sIGlmIHNwZWNpZmllZCwgaXMgYQogICAgICBj b21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwYWlycyA8bGl0ZXJhbD48cmVwbGFjZWFibGU+bmFt ZTwvcmVwbGFjZWFibGU+CiAgICAgIDxyZXBsYWNlYWJsZT5kYXRhdHlwZTwvcmVwbGFjZWFi bGU+PC9saXRlcmFsPiB0aGF0IGRlZmluZSBuYW1lcyB0byBiZQpAQCAtMzIxNSw3ICszMjE5 LDcgQEAgPHRpdGxlPk9wZW5pbmcgQ3Vyc29yczwvdGl0bGU+CiAgICAgIDx0aXRsZT48Y29t bWFuZD5PUEVOIEZPUjwvY29tbWFuZD4gPHJlcGxhY2VhYmxlPnF1ZXJ5PC9yZXBsYWNlYWJs ZT48L3RpdGxlPgogCiA8c3lub3BzaXM+Ci1PUEVOIDxyZXBsYWNlYWJsZT51bmJvdW5kX2N1 cnNvcnZhcjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4gPG9wdGlvbmFsPiBOTyA8L29wdGlv bmFsPiBTQ1JPTEwgPC9vcHRpb25hbD4gRk9SIDxyZXBsYWNlYWJsZT5xdWVyeTwvcmVwbGFj ZWFibGU+OworT1BFTiA8cmVwbGFjZWFibGU+dW5ib3VuZF9jdXJzb3J2YXI8L3JlcGxhY2Vh YmxlPiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gTk8gPC9vcHRpb25hbD4gU0NST0xMIDwvb3B0 aW9uYWw+IDxvcHRpb25hbD4gV0lUSCBSRVRVUk4gPC9vcHRpb25hbD4gRk9SIDxyZXBsYWNl YWJsZT5xdWVyeTwvcmVwbGFjZWFibGU+OwogPC9zeW5vcHNpcz4KIAogICAgICAgIDxwYXJh PgpAQCAtMzIzMyw4ICszMjM3LDkgQEAgPHRpdGxlPjxjb21tYW5kPk9QRU4gRk9SPC9jb21t YW5kPiA8cmVwbGFjZWFibGU+cXVlcnk8L3JlcGxhY2VhYmxlPjwvdGl0bGU+CiAgICAgICAg IHN1YnN0aXR1dGVkIGlzIHRoZSBvbmUgaXQgaGFzIGF0IHRoZSB0aW1lIG9mIHRoZSA8Y29t bWFuZD5PUEVOPC9jb21tYW5kPjsKICAgICAgICAgc3Vic2VxdWVudCBjaGFuZ2VzIHRvIHRo ZSB2YXJpYWJsZSB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnNvcidzCiAgICAgICAgIGJlaGF2 aW9yLgotICAgICAgICBUaGUgPGxpdGVyYWw+U0NST0xMPC9saXRlcmFsPiBhbmQgPGxpdGVy YWw+Tk8gU0NST0xMPC9saXRlcmFsPgotICAgICAgICBvcHRpb25zIGhhdmUgdGhlIHNhbWUg bWVhbmluZ3MgYXMgZm9yIGEgYm91bmQgY3Vyc29yLgorICAgICAgICBUaGUgb3B0aW9ucyA8 bGl0ZXJhbD5TQ1JPTEw8L2xpdGVyYWw+LCA8bGl0ZXJhbD5OTyBTQ1JPTEw8L2xpdGVyYWw+ LAorICAgICAgICBhbmQgPGxpdGVyYWw+V0lUSCBSRVRVUk48L2xpdGVyYWw+IGhhdmUgdGhl IHNhbWUgbWVhbmluZ3MgYXMgZm9yIGEKKyAgICAgICAgYm91bmQgY3Vyc29yLgogICAgICAg IDwvcGFyYT4KIAogICAgICAgIDxwYXJhPgpAQCAtMzYxMiw2ICszNjE3LDIwIEBAIDx0aXRs ZT5SZXR1cm5pbmcgQ3Vyc29yczwvdGl0bGU+CiBDT01NSVQ7CiA8L3Byb2dyYW1saXN0aW5n PgogICAgICAgIDwvcGFyYT4KKworICAgICAgIDxub3RlPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIFJldHVybmluZyBhIGN1cnNvciBmcm9tIGEgZnVuY3Rpb24gYXMgZGVzY3JpYmVk IGhlcmUgaXMgYSBzZXBhcmF0ZQorICAgICAgICAgbWVjaGFuaXNtIGZyb20gZGVjbGFyaW5n IGEgY3Vyc29yIDxsaXRlcmFsPldJVEggUkVUVVJOPC9saXRlcmFsPiwKKyAgICAgICAgIHdo aWNoIGF1dG9tYXRpY2FsbHkgcHJvZHVjZXMgYSByZXN1bHQgc2V0IGZvciB0aGUgY2xpZW50 IGlmIHRoZQorICAgICAgICAgY3Vyc29yIGlzIGxlZnQgb3BlbiB3aGVuIHJldHVybmluZyBm cm9tIHRoZSBwcm9jZWR1cmUuICBCb3RoCisgICAgICAgICBtZWNoYW5pc21zIGNhbiBiZSB1 c2VkIHRvIGFjaGlldmUgc2ltaWxhciBlZmZlY3RzLiAgVGhlIGRpZmZlcmVuY2VzCisgICAg ICAgICBhcmUgbWFpbmx5IGhvdyB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIHByZWZlcnMgdG8g bWFuYWdlIHRoZSBjdXJzb3JzLgorICAgICAgICAgRnVydGhlcm1vcmUsIG90aGVyIFNRTCBp bXBsZW1lbnRhdGlvbnMgaGF2ZSBvdGhlciBwcm9ncmFtbWluZyBtb2RlbHMKKyAgICAgICAg IHRoYXQgbWlnaHQgbWFwIG1vcmUgZWFzaWx5IHRvIG9uZSBvciB0aGUgb3RoZXIgbWVjaGFu aXNtIHdoZW4gZG9pbmcgYQorICAgICAgICAgbWlncmF0aW9uLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9ub3RlPgogICAgICA8L3NlY3QzPgogICAgPC9zZWN0Mj4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9jZWR1cmUuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHJvY2VkdXJlLnNnbWwKaW5kZXggYTQ3MzdhMzQzOS4uMmNkZGE3 NzMwZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9jZWR1cmUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb2NlZHVyZS5zZ21sCkBAIC0zNCw2 ICszNCw3IEBACiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmFjdGlvbjwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAorICAgIERZ TkFNSUMgUkVTVUxUIFNFVFMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmR5bmFt aWNfcmVzdWx0X3NldHM8L3JlcGxhY2VhYmxlPgogICAgIFsgRVhURVJOQUwgXSBTRUNVUklU WSBJTlZPS0VSIHwgWyBFWFRFUk5BTCBdIFNFQ1VSSVRZIERFRklORVIKICAgICBTRVQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmZpZ3VyYXRpb25fcGFyYW1ldGVyPC9y ZXBsYWNlYWJsZT4geyBUTyB8ID0gfSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij52YWx1ZTwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9CiAgICAgU0VUIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb25maWd1cmF0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFi bGU+IEZST00gQ1VSUkVOVApAQCAtMTU4LDYgKzE1OSwxNyBAQCA8dGl0bGU+UGFyYW1ldGVy czwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkRZTkFNSUMgUkVTVUxUIFNFVFMg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmR5bmFtaWNfcmVzdWx0X3NldHM8L3Jl cGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgQ2hhbmdlcyB0aGUgZHluYW1pYyByZXN1bHQgc2V0cyBzZXR0aW5nIG9m IHRoZSBwcm9jZWR1cmUuICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGVw cm9jZWR1cmUiLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAg ICAgPHRlcm0+PGxpdGVyYWw+PG9wdGlvbmFsPiBFWFRFUk5BTCA8L29wdGlvbmFsPiBTRUNV UklUWSBJTlZPS0VSPC9saXRlcmFsPjwvdGVybT4KICAgICA8dGVybT48bGl0ZXJhbD48b3B0 aW9uYWw+IEVYVEVSTkFMIDwvb3B0aW9uYWw+IFNFQ1VSSVRZIERFRklORVI8L2xpdGVyYWw+ PC90ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvY2VkdXJl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9jZWR1cmUuc2dtbAppbmRleCAw M2ExNGM4Njg0Li4xYzk5YjAwZWVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9wcm9jZWR1cmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9j ZWR1cmUuc2dtbApAQCAtMjQsNiArMjQsNyBAQAogQ1JFQVRFIFsgT1IgUkVQTEFDRSBdIFBS T0NFRFVSRQogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gKCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8 L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25h bWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmd0 eXBlPC9yZXBsYWNlYWJsZT4gWyB7IERFRkFVTFQgfCA9IH0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWywgLi4uXSBdICkK ICAgeyBMQU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bGFuZ19uYW1l PC9yZXBsYWNlYWJsZT4KKyAgICB8IERZTkFNSUMgUkVTVUxUIFNFVFMgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmR5bmFtaWNfcmVzdWx0X3NldHM8L3JlcGxhY2VhYmxlPgog ICAgIHwgVFJBTlNGT1JNIHsgRk9SIFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IH0gWywgLi4uIF0KICAgICB8IFsgRVhURVJO QUwgXSBTRUNVUklUWSBJTlZPS0VSIHwgWyBFWFRFUk5BTCBdIFNFQ1VSSVRZIERFRklORVIK ICAgICB8IFNFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uZmlndXJhdGlv bl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiB7IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IHwgPSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiB8IEZST00gQ1VSUkVOVCB9CkBAIC0xNzYs NiArMTc3LDE5IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgPC9saXN0aXRl bT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0 ZXJtPjxsaXRlcmFsPkRZTkFNSUMgUkVTVUxUIFNFVFMgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmR5bmFtaWNfcmVzdWx0X3NldHM8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48 L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU3BlY2lm aWVzIGhvdyBtYW55IGR5bmFtaWMgcmVzdWx0IHNldHMgdGhlIHByb2NlZHVyZSByZXR1cm5z IChzZWUKKyAgICAgICA8bGl0ZXJhbD48bGluayBsaW5rZW5kPSJzcWwtZGVjbGFyZSI+REVD TEFSRTwvbGluaz4gV0lUSAorICAgICAgIFJFVFVSTjwvbGl0ZXJhbD4pLiAgVGhlIGRlZmF1 bHQgaXMgMC4gIElmIGEgcHJvY2VkdXJlIHJldHVybnMgbW9yZQorICAgICAgIHJlc3VsdCBz ZXRzIHRoYW4gZGVjbGFyZWQsIGEgd2FybmluZyBpcyByYWlzZWQuCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlz dGVudHJ5PgogICAgICA8dGVybT48bGl0ZXJhbD5UUkFOU0ZPUk0geyBGT1IgVFlQRSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gfSBb LCAuLi4gXSB9PC9saXRlcmFsPjwvdGVybT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9kZWNsYXJlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlY2xhcmUuc2dtbAppbmRl eCA1NzEyODI1MzE0Li5hMTkxOThlNmNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2RlY2xhcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlY2xhcmUuc2dtbApAQCAt MzIsNyArMzIsOCBAQAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIERFQ0xBUkUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEJJ TkFSWSBdIFsgQVNFTlNJVElWRSB8IElOU0VOU0lUSVZFIF0gWyBbIE5PIF0gU0NST0xMIF0K LSAgICBDVVJTT1IgWyB7IFdJVEggfCBXSVRIT1VUIH0gSE9MRCBdIEZPUiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cXVlcnk8L3JlcGxhY2VhYmxlPgorICAgIENVUlNPUiBb IHsgV0lUSCB8IFdJVEhPVVQgfSBIT0xEIF0gWyB7IFdJVEggfCBXSVRIT1VUIH0gUkVUVVJO IF0KKyAgICBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnF1ZXJ5PC9yZXBs YWNlYWJsZT4KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTM4LDYg KzEzOSwyMyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxs aXRlcmFsPldJVEggUkVUVVJOPC9saXRlcmFsPjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJh bD5XSVRIT1VUIFJFVFVSTjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIGN1cnNvcnMg ZGVmaW5lZCBpbnNpZGUgYSBwcm9jZWR1cmUgb3IKKyAgICAgIDxjb21tYW5kPkRPPC9jb21t YW5kPiBibG9jay4gIDxsaXRlcmFsPldJVEggUkVUVVJOPC9saXRlcmFsPiBzcGVjaWZpZXMK KyAgICAgIHRoYXQgdGhlIGN1cnNvcidzIHJlc3VsdCByb3dzIHdpbGwgYmUgcHJvdmlkZWQg YXMgYSByZXN1bHQgc2V0IG9mIHRoZQorICAgICAgcHJvY2VkdXJlIG9yIGNvZGUgYmxvY2sg aW52b2NhdGlvbi4gIFRvIGFjY29tcGxpc2ggdGhhdCwgdGhlIGN1cnNvciBtdXN0CisgICAg ICBiZSBsZWZ0IG9wZW4gYXQgdGhlIGVuZCBvZiB0aGUgcHJvY2VkdXJlIG9yIGNvZGUgYmxv Y2suICBJZiBtdWx0aXBsZQorICAgICAgPGxpdGVyYWw+V0lUSCBSRVRVUk48L2xpdGVyYWw+ IGN1cnNvcnMgYXJlIGRlY2xhcmVkLCB0aGVuIHRoZWlyIHJlc3VsdHMKKyAgICAgIHdpbGwg YmUgcmV0dXJuZWQgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBjcmVhdGVkLiAgPGxpdGVyYWw+ V0lUSE9VVAorICAgICAgUkVUVVJOPC9saXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZh cmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cXVlcnk8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0zMzksNiAr MzU3LDIxIEBAIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CiAgICBTZWUgPHhyZWYgbGlua2Vu ZD0ic3FsLWZldGNoIi8+IGZvciBtb3JlCiAgICBleGFtcGxlcyBvZiBjdXJzb3IgdXNhZ2Uu CiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoaXMgZXhhbXBsZSBzaG93cyBob3cgdG8g cmV0dXJuIG11bHRpcGxlIHJlc3VsdCBzZXRzIGZyb20gYSBwcm9jZWR1cmU6Cis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgUFJPQ0VEVVJFIHRlc3QoKQorTEFOR1VBR0UgU1FMCitBUyAk JAorREVDTEFSRSBhIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSB0Ymwx OworREVDTEFSRSBiIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSB0Ymwy OworJCQ7CisKK0NBTEwgdGVzdCgpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIFRoZSByZXN1 bHRzIG9mIHRoZSB0d28gY3Vyc29ycyB3aWxsIGJlIHJldHVybmVkIGluIG9yZGVyIGZyb20g dGhpcyBjYWxsLgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAppbmRleCAwNTU1 ZTliYzAzLi44NzFhMjdiODRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2lu Zm9ybWF0aW9uX3NjaGVtYS5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1h dGlvbl9zY2hlbWEuc3FsCkBAIC0xNTkzLDcgKzE1OTMsNyBAQCBDUkVBVEUgVklFVyByb3V0 aW5lcyBBUwogICAgICAgICAgICAgIENBU0UgV0hFTiBwLnByb2lzc3RyaWN0IFRIRU4gJ1lF UycgRUxTRSAnTk8nIEVORCBFTkQgQVMgeWVzX29yX25vKSBBUyBpc19udWxsX2NhbGwsCiAg ICAgICAgICAgIENBU1QobnVsbCBBUyBjaGFyYWN0ZXJfZGF0YSkgQVMgc3FsX3BhdGgsCiAg ICAgICAgICAgIENBU1QoJ1lFUycgQVMgeWVzX29yX25vKSBBUyBzY2hlbWFfbGV2ZWxfcm91 dGluZSwKLSAgICAgICAgICAgQ0FTVCgwIEFTIGNhcmRpbmFsX251bWJlcikgQVMgbWF4X2R5 bmFtaWNfcmVzdWx0X3NldHMsCisgICAgICAgICAgIENBU1QocC5wcm9keW5yZXMgQVMgY2Fy ZGluYWxfbnVtYmVyKSBBUyBtYXhfZHluYW1pY19yZXN1bHRfc2V0cywKICAgICAgICAgICAg Q0FTVChudWxsIEFTIHllc19vcl9ubykgQVMgaXNfdXNlcl9kZWZpbmVkX2Nhc3QsCiAgICAg ICAgICAgIENBU1QobnVsbCBBUyB5ZXNfb3Jfbm8pIEFTIGlzX2ltcGxpY2l0bHlfaW52b2Nh YmxlLAogICAgICAgICAgICBDQVNUKENBU0UgV0hFTiBwLnByb3NlY2RlZiBUSEVOICdERUZJ TkVSJyBFTFNFICdJTlZPS0VSJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIHNlY3VyaXR5 X3R5cGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19hZ2dyZWdhdGUuYwppbmRleCBlYmM0NDU0NzQz Li5hNjMzYmI3NTAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2FnZ3Jl Z2F0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfYWdncmVnYXRlLmMKQEAgLTY0 MCw3ICs2NDAsOCBAQCBBZ2dyZWdhdGVDcmVhdGUoY29uc3QgY2hhciAqYWdnTmFtZSwKIAkJ CQkJCQkgUG9pbnRlckdldERhdHVtKE5VTEwpLCAvKiBwcm9jb25maWcgKi8KIAkJCQkJCQkg SW52YWxpZE9pZCwJLyogbm8gcHJvc3VwcG9ydCAqLwogCQkJCQkJCSAxLCAvKiBwcm9jb3N0 ICovCi0JCQkJCQkJIDApOwkvKiBwcm9yb3dzICovCisJCQkJCQkJIDAsCS8qIHByb3Jvd3Mg Ki8KKwkJCQkJCQkgMCk7CS8qIHByb2R5bnJlcyAqLwogCXByb2NPaWQgPSBteXNlbGYub2Jq ZWN0SWQ7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wcm9j LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Byb2MuYwppbmRleCAxNGQ1NTJmZTJkLi42 MjBmYjgwYTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Byb2MuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Byb2MuYwpAQCAtOTUsNyArOTUsOCBAQCBQ cm9jZWR1cmVDcmVhdGUoY29uc3QgY2hhciAqcHJvY2VkdXJlTmFtZSwKIAkJCQlEYXR1bSBw cm9jb25maWcsCiAJCQkJT2lkIHByb3N1cHBvcnQsCiAJCQkJZmxvYXQ0IHByb2Nvc3QsCi0J CQkJZmxvYXQ0IHByb3Jvd3MpCisJCQkJZmxvYXQ0IHByb3Jvd3MsCisJCQkJaW50IGR5bnJl cykKIHsKIAlPaWQJCQlyZXR2YWw7CiAJaW50CQkJcGFyYW1ldGVyQ291bnQ7CkBAIC0zMTQs NiArMzE1LDcgQEAgUHJvY2VkdXJlQ3JlYXRlKGNvbnN0IGNoYXIgKnByb2NlZHVyZU5hbWUs CiAJdmFsdWVzW0FudW1fcGdfcHJvY19wcm9yZXRzZXQgLSAxXSA9IEJvb2xHZXREYXR1bShy ZXR1cm5zU2V0KTsKIAl2YWx1ZXNbQW51bV9wZ19wcm9jX3Byb3ZvbGF0aWxlIC0gMV0gPSBD aGFyR2V0RGF0dW0odm9sYXRpbGl0eSk7CiAJdmFsdWVzW0FudW1fcGdfcHJvY19wcm9wYXJh bGxlbCAtIDFdID0gQ2hhckdldERhdHVtKHBhcmFsbGVsKTsKKwl2YWx1ZXNbQW51bV9wZ19w cm9jX3Byb2R5bnJlcyAtIDFdID0gSW50MzJHZXREYXR1bShkeW5yZXMpOwogCXZhbHVlc1tB bnVtX3BnX3Byb2NfcHJvbmFyZ3MgLSAxXSA9IFVJbnQxNkdldERhdHVtKHBhcmFtZXRlckNv dW50KTsKIAl2YWx1ZXNbQW51bV9wZ19wcm9jX3Byb25hcmdkZWZhdWx0cyAtIDFdID0gVUlu dDE2R2V0RGF0dW0obGlzdF9sZW5ndGgocGFyYW1ldGVyRGVmYXVsdHMpKTsKIAl2YWx1ZXNb QW51bV9wZ19wcm9jX3Byb3JldHR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocmV0dXJu VHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50 eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggNzVhMDlm MTRlMC4uMDMyYmVmODYyZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxf ZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4 dApAQCAtNDg2LDcgKzQ4Niw3IEBAIFQ0MzMJTXVsdGlhcmd1bWVudCBHUk9VUElORyBmdW5j dGlvbgkJCVlFUwogVDQzNAlHUk9VUCBCWSBESVNUSU5DVAkJCVlFUwkKIFQ0NDEJQUJTIGFu ZCBNT0QgZnVuY3Rpb25zCQkJWUVTCQogVDQ2MQlTeW1tZXRyaWMgQkVUV0VFTiBwcmVkaWNh dGUJCQlZRVMJCi1UNDcxCVJlc3VsdCBzZXRzIHJldHVybiB2YWx1ZQkJCU5PCQorVDQ3MQlS ZXN1bHQgc2V0cyByZXR1cm4gdmFsdWUJCQlOTwlwYXJ0aWFsbHkgc3VwcG9ydGVkCiBUNDcy CURFU0NSSUJFIENVUlNPUgkJCU5PCQogVDQ5MQlMQVRFUkFMIGRlcml2ZWQgdGFibGUJCQlZ RVMJCiBUNDk1CUNvbWJpbmVkIGRhdGEgY2hhbmdlIGFuZCByZXRyaWV2YWwJCQlOTwlkaWZm ZXJlbnQgc3ludGF4CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlv bmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCmluZGV4IDY5 ZjY2ZGZlN2QuLmZlMGE3NGM0ZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21k cy5jCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVk ZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNp bmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNs dWRlICJ1dGlscy9zbmFwbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAg LTUxMyw3ICs1MTQsOCBAQCBjb21wdXRlX2NvbW1vbl9hdHRyaWJ1dGUoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJIERlZkVsZW0gKipjb3N0X2l0ZW0sCiAJCQkJCQkgRGVmRWxlbSAq KnJvd3NfaXRlbSwKIAkJCQkJCSBEZWZFbGVtICoqc3VwcG9ydF9pdGVtLAotCQkJCQkJIERl ZkVsZW0gKipwYXJhbGxlbF9pdGVtKQorCQkJCQkJIERlZkVsZW0gKipwYXJhbGxlbF9pdGVt LAorCQkJCQkJIERlZkVsZW0gKipkeW5yZXNfaXRlbSkKIHsKIAlpZiAoc3RyY21wKGRlZmVs LT5kZWZuYW1lLCAidm9sYXRpbGl0eSIpID09IDApCiAJewpAQCAtNTg5LDEyICs1OTEsMjgg QEAgY29tcHV0ZV9jb21tb25fYXR0cmlidXRlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCQkq cGFyYWxsZWxfaXRlbSA9IGRlZmVsOwogCX0KKwllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRl Zm5hbWUsICJkeW5hbWljX3Jlc3VsdF9zZXRzIikgPT0gMCkKKwl7CisJCWlmICghaXNfcHJv Y2VkdXJlKQorCQkJZ290byBmdW5jdGlvbl9lcnJvcjsKKwkJaWYgKCpkeW5yZXNfaXRlbSkK KwkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCSpkeW5y ZXNfaXRlbSA9IGRlZmVsOworCX0KIAllbHNlCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIFJl Y29nbml6ZWQgYW4gb3B0aW9uICovCiAJcmV0dXJuIHRydWU7CiAKK2Z1bmN0aW9uX2Vycm9y OgorCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRlVOQ1RJ T05fREVGSU5JVElPTiksCisJCQkgZXJybXNnKCJpbnZhbGlkIGF0dHJpYnV0ZSBpbiBmdW5j dGlvbiBkZWZpbml0aW9uIiksCisJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVm ZWwtPmxvY2F0aW9uKSkpOworCXJldHVybiBmYWxzZTsKKwogcHJvY2VkdXJlX2Vycm9yOgog CWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRlVOQ1RJT05f REVGSU5JVElPTiksCkBAIC03MzEsNyArNzQ5LDggQEAgY29tcHV0ZV9mdW5jdGlvbl9hdHRy aWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQlmbG9hdDQgKnByb2Nvc3QsCiAJ CQkJCQkJZmxvYXQ0ICpwcm9yb3dzLAogCQkJCQkJCU9pZCAqcHJvc3VwcG9ydCwKLQkJCQkJ CQljaGFyICpwYXJhbGxlbF9wKQorCQkJCQkJCWNoYXIgKnBhcmFsbGVsX3AsCisJCQkJCQkJ aW50ICpkeW5yZXNfcCkKIHsKIAlMaXN0Q2VsbCAgICpvcHRpb247CiAJRGVmRWxlbSAgICAq YXNfaXRlbSA9IE5VTEw7CkBAIC03NDcsNiArNzY2LDcgQEAgY29tcHV0ZV9mdW5jdGlvbl9h dHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlEZWZFbGVtICAgICpyb3dzX2l0ZW0g PSBOVUxMOwogCURlZkVsZW0gICAgKnN1cHBvcnRfaXRlbSA9IE5VTEw7CiAJRGVmRWxlbSAg ICAqcGFyYWxsZWxfaXRlbSA9IE5VTEw7CisJRGVmRWxlbSAgICAqZHlucmVzX2l0ZW0gPSBO VUxMOwogCiAJZm9yZWFjaChvcHRpb24sIG9wdGlvbnMpCiAJewpAQCAtNzkyLDcgKzgxMiw4 IEBAIGNvbXB1dGVfZnVuY3Rpb25fYXR0cmlidXRlcyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkJICAmY29zdF9pdGVtLAogCQkJCQkJCQkJCSAgJnJvd3NfaXRlbSwKIAkJCQkJ CQkJCQkgICZzdXBwb3J0X2l0ZW0sCi0JCQkJCQkJCQkJICAmcGFyYWxsZWxfaXRlbSkpCisJ CQkJCQkJCQkJICAmcGFyYWxsZWxfaXRlbSwKKwkJCQkJCQkJCQkgICZkeW5yZXNfaXRlbSkp CiAJCXsKIAkJCS8qIHJlY29nbml6ZWQgY29tbW9uIG9wdGlvbiAqLwogCQkJY29udGludWU7 CkBAIC04NDAsNiArODYxLDExIEBAIGNvbXB1dGVfZnVuY3Rpb25fYXR0cmlidXRlcyhQYXJz ZVN0YXRlICpwc3RhdGUsCiAJCSpwcm9zdXBwb3J0ID0gaW50ZXJwcmV0X2Z1bmNfc3VwcG9y dChzdXBwb3J0X2l0ZW0pOwogCWlmIChwYXJhbGxlbF9pdGVtKQogCQkqcGFyYWxsZWxfcCA9 IGludGVycHJldF9mdW5jX3BhcmFsbGVsKHBhcmFsbGVsX2l0ZW0pOworCWlmIChkeW5yZXNf aXRlbSkKKwl7CisJCSpkeW5yZXNfcCA9IGludFZhbChkeW5yZXNfaXRlbS0+YXJnKTsKKwkJ QXNzZXJ0KCpkeW5yZXNfcCA+PSAwKTsJLyogZW5mb3JjZWQgYnkgcGFyc2VyICovCisJfQog fQogCiAKQEAgLTEwNTEsNiArMTA3Nyw3IEBAIENyZWF0ZUZ1bmN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlRnVuY3Rpb25TdG10ICpzdG10KQogCUZvcm1fcGdfbGFuZ3VhZ2Ug bGFuZ3VhZ2VTdHJ1Y3Q7CiAJTGlzdAkgICAqYXNfY2xhdXNlOwogCWNoYXIJCXBhcmFsbGVs OworCWludAkJCWR5bnJlczsKIAogCS8qIENvbnZlcnQgbGlzdCBvZiBuYW1lcyB0byBhIG5h bWUgYW5kIG5hbWVzcGFjZSAqLwogCW5hbWVzcGFjZUlkID0gUXVhbGlmaWVkTmFtZUdldENy ZWF0aW9uTmFtZXNwYWNlKHN0bXQtPmZ1bmNuYW1lLApAQCAtMTA3NSw2ICsxMTAyLDcgQEAg Q3JlYXRlRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVGdW5jdGlvblN0bXQg KnN0bXQpCiAJcHJvcm93cyA9IC0xOwkJCQkvKiBpbmRpY2F0ZXMgbm90IHNldCAqLwogCXBy b3N1cHBvcnQgPSBJbnZhbGlkT2lkOwogCXBhcmFsbGVsID0gUFJPUEFSQUxMRUxfVU5TQUZF OworCWR5bnJlcyA9IDA7CiAKIAkvKiBFeHRyYWN0IG5vbi1kZWZhdWx0IGF0dHJpYnV0ZXMg ZnJvbSBzdG10LT5vcHRpb25zIGxpc3QgKi8KIAljb21wdXRlX2Z1bmN0aW9uX2F0dHJpYnV0 ZXMocHN0YXRlLApAQCAtMTA4NCw3ICsxMTEyLDcgQEAgQ3JlYXRlRnVuY3Rpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVGdW5jdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCSZpc1dp bmRvd0Z1bmMsICZ2b2xhdGlsaXR5LAogCQkJCQkJCQkmaXNTdHJpY3QsICZzZWN1cml0eSwg JmlzTGVha1Byb29mLAogCQkJCQkJCQkmcHJvY29uZmlnLCAmcHJvY29zdCwgJnByb3Jvd3Ms Ci0JCQkJCQkJCSZwcm9zdXBwb3J0LCAmcGFyYWxsZWwpOworCQkJCQkJCQkmcHJvc3VwcG9y dCwgJnBhcmFsbGVsLCAmZHlucmVzKTsKIAogCWlmICghbGFuZ3VhZ2UpCiAJewpAQCAtMTI4 NSw3ICsxMzEzLDggQEAgQ3JlYXRlRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVGdW5jdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0ocHJvY29u ZmlnKSwKIAkJCQkJCSAgIHByb3N1cHBvcnQsCiAJCQkJCQkgICBwcm9jb3N0LAotCQkJCQkJ ICAgcHJvcm93cyk7CisJCQkJCQkgICBwcm9yb3dzLAorCQkJCQkJICAgZHlucmVzKTsKIH0K IAogLyoKQEAgLTEzNjIsNiArMTM5MSw3IEBAIEFsdGVyRnVuY3Rpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBBbHRlckZ1bmN0aW9uU3RtdCAqc3RtdCkKIAlEZWZFbGVtICAgICpyb3dzX2l0 ZW0gPSBOVUxMOwogCURlZkVsZW0gICAgKnN1cHBvcnRfaXRlbSA9IE5VTEw7CiAJRGVmRWxl bSAgICAqcGFyYWxsZWxfaXRlbSA9IE5VTEw7CisJRGVmRWxlbSAgICAqZHlucmVzX2l0ZW0g PSBOVUxMOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAogCXJlbCA9IHRhYmxlX29wZW4o UHJvY2VkdXJlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CkBAIC0xNDA1LDcgKzE0 MzUsOCBAQCBBbHRlckZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJGdW5jdGlv blN0bXQgKnN0bXQpCiAJCQkJCQkJCQkgJmNvc3RfaXRlbSwKIAkJCQkJCQkJCSAmcm93c19p dGVtLAogCQkJCQkJCQkJICZzdXBwb3J0X2l0ZW0sCi0JCQkJCQkJCQkgJnBhcmFsbGVsX2l0 ZW0pID09IGZhbHNlKQorCQkJCQkJCQkJICZwYXJhbGxlbF9pdGVtLAorCQkJCQkJCQkJICZk eW5yZXNfaXRlbSkgPT0gZmFsc2UpCiAJCQllbG9nKEVSUk9SLCAib3B0aW9uIFwiJXNcIiBu b3QgcmVjb2duaXplZCIsIGRlZmVsLT5kZWZuYW1lKTsKIAl9CiAKQEAgLTE0NjcsNiArMTQ5 OCw4IEBAIEFsdGVyRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckZ1bmN0aW9u U3RtdCAqc3RtdCkKIAl9CiAJaWYgKHBhcmFsbGVsX2l0ZW0pCiAJCXByb2NGb3JtLT5wcm9w YXJhbGxlbCA9IGludGVycHJldF9mdW5jX3BhcmFsbGVsKHBhcmFsbGVsX2l0ZW0pOworCWlm IChkeW5yZXNfaXRlbSkKKwkJcHJvY0Zvcm0tPnByb2R5bnJlcyA9IGludFZhbChkeW5yZXNf aXRlbS0+YXJnKTsKIAlpZiAoc2V0X2l0ZW1zKQogCXsKIAkJRGF0dW0JCWRhdHVtOwpAQCAt MjA0NCw2ICsyMDc3LDE3IEBAIElzVGhlcmVGdW5jdGlvbkluTmFtZXNwYWNlKGNvbnN0IGNo YXIgKnByb25hbWUsIGludCBwcm9uYXJncywKIAkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShu c3BPaWQpKSkpOwogfQogCitzdGF0aWMgTGlzdCAqcHJvY2VkdXJlX3N0YWNrOworCitPaWQK K0N1cnJlbnRQcm9jZWR1cmUodm9pZCkKK3sKKwlpZiAoIXByb2NlZHVyZV9zdGFjaykKKwkJ cmV0dXJuIEludmFsaWRPaWQ7CisJZWxzZQorCQlyZXR1cm4gbGxhc3Rfb2lkKHByb2NlZHVy ZV9zdGFjayk7Cit9CisKIC8qCiAgKiBFeGVjdXRlRG9TdG10CiAgKgkJRXhlY3V0ZSBpbmxp bmUgcHJvY2VkdXJhbC1sYW5ndWFnZSBjb2RlCkBAIC0yMTQwLDggKzIxODQsMTkgQEAgRXhl Y3V0ZURvU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERvU3RtdCAqc3RtdCwgYm9vbCBhdG9t aWMpCiAKIAlSZWxlYXNlU3lzQ2FjaGUobGFuZ3VhZ2VUdXBsZSk7CiAKLQkvKiBleGVjdXRl IHRoZSBpbmxpbmUgaGFuZGxlciAqLwotCU9pZEZ1bmN0aW9uQ2FsbDEobGFuaW5saW5lLCBQ b2ludGVyR2V0RGF0dW0oY29kZWJsb2NrKSk7CisJcHJvY2VkdXJlX3N0YWNrID0gbGFwcGVu ZF9vaWQocHJvY2VkdXJlX3N0YWNrLCBJbnZhbGlkT2lkKTsKKwlQR19UUlkoKTsKKwl7CisJ CS8qIGV4ZWN1dGUgdGhlIGlubGluZSBoYW5kbGVyICovCisJCU9pZEZ1bmN0aW9uQ2FsbDEo bGFuaW5saW5lLCBQb2ludGVyR2V0RGF0dW0oY29kZWJsb2NrKSk7CisJfQorCVBHX0ZJTkFM TFkoKTsKKwl7CisJCXByb2NlZHVyZV9zdGFjayA9IGxpc3RfZGVsZXRlX2xhc3QocHJvY2Vk dXJlX3N0YWNrKTsKKwl9CisJUEdfRU5EX1RSWSgpOworCisJQ2xvc2VPdGhlclJldHVybmFi bGVDdXJzb3JzKEludmFsaWRPaWQpOwogfQogCiAvKgpAQCAtMjE4Myw2ICsyMjM4LDcgQEAg RXhlY3V0ZUNhbGxTdG10KENhbGxTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywg Ym9vbCBhdG9taWMsIERlc3RSZWNlaXZlcgogCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAJRm1n ckluZm8JZmxpbmZvOwogCUNhbGxDb250ZXh0ICpjYWxsY29udGV4dDsKKwlpbnQJCQlwcm9k eW5yZXM7CiAJRVN0YXRlCSAgICplc3RhdGU7CiAJRXhwckNvbnRleHQgKmVjb250ZXh0Owog CUhlYXBUdXBsZQl0cDsKQEAgLTIyMjMsNiArMjI3OSw4IEBAIEV4ZWN1dGVDYWxsU3RtdChD YWxsU3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsIGJvb2wgYXRvbWljLCBEZXN0 UmVjZWl2ZXIKIAlpZiAoKChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCkpLT5wcm9zZWNk ZWYpCiAJCWNhbGxjb250ZXh0LT5hdG9taWMgPSB0cnVlOwogCisJcHJvZHlucmVzID0gKChG b3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCkpLT5wcm9keW5yZXM7CisKIAlSZWxlYXNlU3lz Q2FjaGUodHApOwogCiAJLyogc2FmZXR5IGNoZWNrOyBzZWUgRXhlY0luaXRGdW5jKCkgKi8K QEAgLTIyODMsNyArMjM0MSwxOCBAQCBFeGVjdXRlQ2FsbFN0bXQoQ2FsbFN0bXQgKnN0bXQs IFBhcmFtTGlzdEluZm8gcGFyYW1zLCBib29sIGF0b21pYywgRGVzdFJlY2VpdmVyCiAKIAkv KiBIZXJlIHdlIGFjdHVhbGx5IGNhbGwgdGhlIHByb2NlZHVyZSAqLwogCXBnc3RhdF9pbml0 X2Z1bmN0aW9uX3VzYWdlKGZjaW5mbywgJmZjdXNhZ2UpOwotCXJldHZhbCA9IEZ1bmN0aW9u Q2FsbEludm9rZShmY2luZm8pOworCisJcHJvY2VkdXJlX3N0YWNrID0gbGFwcGVuZF9vaWQo cHJvY2VkdXJlX3N0YWNrLCBmZXhwci0+ZnVuY2lkKTsKKwlQR19UUlkoKTsKKwl7CisJCXJl dHZhbCA9IEZ1bmN0aW9uQ2FsbEludm9rZShmY2luZm8pOworCX0KKwlQR19GSU5BTExZKCk7 CisJeworCQlwcm9jZWR1cmVfc3RhY2sgPSBsaXN0X2RlbGV0ZV9sYXN0KHByb2NlZHVyZV9z dGFjayk7CisJfQorCVBHX0VORF9UUlkoKTsKKwogCXBnc3RhdF9lbmRfZnVuY3Rpb25fdXNh Z2UoJmZjdXNhZ2UsIHRydWUpOwogCiAJLyogSGFuZGxlIHRoZSBwcm9jZWR1cmUncyBvdXRw dXRzICovCkBAIC0yMzQ0LDYgKzI0MTMsMTMgQEAgRXhlY3V0ZUNhbGxTdG10KENhbGxTdG10 ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywgYm9vbCBhdG9taWMsIERlc3RSZWNlaXZl cgogCQkJIGZleHByLT5mdW5jcmVzdWx0dHlwZSk7CiAKIAlGcmVlRXhlY3V0b3JTdGF0ZShl c3RhdGUpOworCisJQ2xvc2VPdGhlclJldHVybmFibGVDdXJzb3JzKGZleHByLT5mdW5jaWQp OworCisJaWYgKGxpc3RfbGVuZ3RoKEdldFJldHVybmFibGVDdXJzb3JzKCkpID4gcHJvZHlu cmVzKQorCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJZXJyY29kZShFUlJDT0RFX1dBUk5JTkdf QVRURU1QVF9UT19SRVRVUk5fVE9PX01BTllfUkVTVUxUX1NFVFMpLAorCQkJCWVycm1zZygi YXR0ZW1wdCB0byByZXR1cm4gdG9vIG1hbnkgcmVzdWx0IHNldHMiKSk7CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wb3J0YWxjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9wb3J0YWxjbWRzLmMKaW5kZXggOGEzY2Y5OGNjZS4uZTczZjdiZmIy MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9ydGFsY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvcnRhbGNtZHMuYwpAQCAtMjQsNiArMjQsNyBAQAog I2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb3J0YWxjbWRz LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRv ci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMTQwLDYgKzE0MSwyOCBAQCBQZXJmb3JtQ3Vyc29y T3BlbihQYXJzZVN0YXRlICpwc3RhdGUsIERlY2xhcmVDdXJzb3JTdG10ICpjc3RtdCwgUGFy YW1MaXN0SW5mbyBwYQogCQkJcG9ydGFsLT5jdXJzb3JPcHRpb25zIHw9IENVUlNPUl9PUFRf Tk9fU0NST0xMOwogCX0KIAorCS8qCisJICogRm9yIHJldHVybmFibGUgY3Vyc29ycywgcmVt ZW1iZXIgdGhlIGN1cnJlbnRseSBhY3RpdmUgcHJvY2VkdXJlLCBhcworCSAqIHdlbGwgYXMg dGhlIGNvbW1hbmQgSUQsIHNvIHdlIGNhbiBzb3J0IGJ5IGNyZWF0aW9uIG9yZGVyIGxhdGVy LiAgSWYKKwkgKiB0aGVyZSBpcyBubyBwcm9jZWR1cmUgYWN0aXZlLCB0aGUgY3Vyc29yIGlz IG1hcmtlZCBhcyBXSVRIT1VUIFJFVFVSTi4KKwkgKiAoVGhpcyBpcyBub3QgYW4gZXJyb3Is IHBlciBTUUwgc3RhbmRhcmQsIHN1YmNsYXVzZSAiRWZmZWN0IG9mIG9wZW5pbmcgYQorCSAq IGN1cnNvciIuKQorCSAqLworCWlmIChwb3J0YWwtPmN1cnNvck9wdGlvbnMgJiBDVVJTT1Jf T1BUX1JFVFVSTikKKwl7CisJCU9pZAkJCXByb2NJZCA9IEN1cnJlbnRQcm9jZWR1cmUoKTsK KworCQlpZiAocHJvY0lkKQorCQl7CisJCQlwb3J0YWwtPnByb2NJZCA9IHByb2NJZDsKKwkJ CXBvcnRhbC0+Y3JlYXRlQ2lkID0gR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCXBvcnRhbC0+Y3Vyc29yT3B0aW9ucyAmPSB+Q1VSU09SX09QVF9S RVRVUk47CisJCX0KKwl9CisKIAkvKgogCSAqIFN0YXJ0IGV4ZWN1dGlvbiwgaW5zZXJ0aW5n IHBhcmFtZXRlcnMgaWYgYW55LgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5k ZXggMDRiZGRhZWY4MS4uMWU0MGZjZWRkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5j CkBAIC0xNzc3LDcgKzE3NzcsOCBAQCBtYWtlUmFuZ2VDb25zdHJ1Y3RvcnMoY29uc3QgY2hh ciAqbmFtZSwgT2lkIG5hbWVzcGFjZSwKIAkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShOVUxM KSwgLyogcHJvY29uZmlnICovCiAJCQkJCQkJCSBJbnZhbGlkT2lkLAkvKiBwcm9zdXBwb3J0 ICovCiAJCQkJCQkJCSAxLjAsCS8qIHByb2Nvc3QgKi8KLQkJCQkJCQkJIDAuMCk7CS8qIHBy b3Jvd3MgKi8KKwkJCQkJCQkJIDAuMCwJLyogcHJvcm93cyAqLworCQkJCQkJCQkgMCk7CS8q IHByb2R5bnJlcyAqLwogCiAJCS8qCiAJCSAqIE1ha2UgdGhlIGNvbnN0cnVjdG9ycyBpbnRl cm5hbGx5LWRlcGVuZGVudCBvbiB0aGUgcmFuZ2UgdHlwZSBzbwpAQCAtMTg0Miw3ICsxODQz LDggQEAgbWFrZU11bHRpcmFuZ2VDb25zdHJ1Y3RvcnMoY29uc3QgY2hhciAqbmFtZSwgT2lk IG5hbWVzcGFjZSwKIAkJCQkJCQkgUG9pbnRlckdldERhdHVtKE5VTEwpLCAvKiBwcm9jb25m aWcgKi8KIAkJCQkJCQkgSW52YWxpZE9pZCwJLyogcHJvc3VwcG9ydCAqLwogCQkJCQkJCSAx LjAsCS8qIHByb2Nvc3QgKi8KLQkJCQkJCQkgMC4wKTsJLyogcHJvcm93cyAqLworCQkJCQkJ CSAwLjAsCS8qIHByb3Jvd3MgKi8KKwkJCQkJCQkgMCk7CS8qIHByb2R5bnJlcyAqLwogCiAJ LyoKIAkgKiBNYWtlIHRoZSBjb25zdHJ1Y3RvciBpbnRlcm5hbGx5LWRlcGVuZGVudCBvbiB0 aGUgbXVsdGlyYW5nZSB0eXBlIHNvCkBAIC0xODg2LDcgKzE4ODgsOCBAQCBtYWtlTXVsdGly YW5nZUNvbnN0cnVjdG9ycyhjb25zdCBjaGFyICpuYW1lLCBPaWQgbmFtZXNwYWNlLAogCQkJ CQkJCSBQb2ludGVyR2V0RGF0dW0oTlVMTCksIC8qIHByb2NvbmZpZyAqLwogCQkJCQkJCSBJ bnZhbGlkT2lkLAkvKiBwcm9zdXBwb3J0ICovCiAJCQkJCQkJIDEuMCwJLyogcHJvY29zdCAq LwotCQkJCQkJCSAwLjApOwkvKiBwcm9yb3dzICovCisJCQkJCQkJIDAuMCwJLyogcHJvcm93 cyAqLworCQkJCQkJCSAwKTsJLyogcHJvZHlucmVzICovCiAJLyogZGl0dG8gKi8KIAlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfSU5URVJO QUwpOwogCXBmcmVlKGFyZ3R5cGVzKTsKQEAgLTE5MjQsNyArMTkyNyw4IEBAIG1ha2VNdWx0 aXJhbmdlQ29uc3RydWN0b3JzKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuYW1lc3BhY2UsCiAJ CQkJCQkJIFBvaW50ZXJHZXREYXR1bShOVUxMKSwgLyogcHJvY29uZmlnICovCiAJCQkJCQkJ IEludmFsaWRPaWQsCS8qIHByb3N1cHBvcnQgKi8KIAkJCQkJCQkgMS4wLAkvKiBwcm9jb3N0 ICovCi0JCQkJCQkJIDAuMCk7CS8qIHByb3Jvd3MgKi8KKwkJCQkJCQkgMC4wLAkvKiBwcm9y b3dzICovCisJCQkJCQkJIDApOwkvKiBwcm9keW5yZXMgKi8KIAkvKiBkaXR0byAqLwogCXJl Y29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9JTlRF Uk5BTCk7CiAJcGZyZWUoYXJndHlwZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTAxMzgzODJh MS4uODMxMmZiZjJjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02ODgsNyArNjg4LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlEQVRBX1AgREFUQUJBU0UgREFZX1AgREVBTExP Q0FURSBERUMgREVDSU1BTF9QIERFQ0xBUkUgREVGQVVMVCBERUZBVUxUUwogCURFRkVSUkFC TEUgREVGRVJSRUQgREVGSU5FUiBERUxFVEVfUCBERUxJTUlURVIgREVMSU1JVEVSUyBERVBF TkRTIERFUFRIIERFU0MKIAlERVRBQ0ggRElDVElPTkFSWSBESVNBQkxFX1AgRElTQ0FSRCBE SVNUSU5DVCBETyBET0NVTUVOVF9QIERPTUFJTl9QCi0JRE9VQkxFX1AgRFJPUAorCURPVUJM RV9QIERST1AgRFlOQU1JQwogCiAJRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZ UFRFRCBFTkRfUCBFTlVNX1AgRVNDQVBFIEVWRU5UIEVYQ0VQVAogCUVYQ0xVREUgRVhDTFVE SU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KQEAgLTcz NSw3ICs3MzUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCiAJUkFOR0UgUkVB RCBSRUFMIFJFQVNTSUdOIFJFQ0hFQ0sgUkVDVVJTSVZFIFJFRl9QIFJFRkVSRU5DRVMgUkVG RVJFTkNJTkcKIAlSRUZSRVNIIFJFSU5ERVggUkVMQVRJVkVfUCBSRUxFQVNFIFJFTkFNRSBS RVBFQVRBQkxFIFJFUExBQ0UgUkVQTElDQQotCVJFU0VUIFJFU1RBUlQgUkVTVFJJQ1QgUkVU VVJOIFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJPTExV UAorCVJFU0VUIFJFU1RBUlQgUkVTVFJJQ1QgUkVTVUxUIFJFVFVSTiBSRVRVUk5JTkcgUkVU VVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5FIFJPVVRJ TkVTIFJPVyBST1dTIFJVTEUKIAogCVNBVkVQT0lOVCBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwg U0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVCBTRVFVRU5DRSBTRVFVRU5DRVMKQEAg LTg1MzIsNiArODUzMiwxMCBAQCBjb21tb25fZnVuY19vcHRfaXRlbToKIAkJCQl7CiAJCQkJ CSQkID0gbWFrZURlZkVsZW0oInBhcmFsbGVsIiwgKE5vZGUgKikgbWFrZVN0cmluZygkMiks IEAxKTsKIAkJCQl9CisJCQl8IERZTkFNSUMgUkVTVUxUIFNFVFMgSWNvbnN0CisJCQkJewor CQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJkeW5hbWljX3Jlc3VsdF9zZXRzIiwgKE5vZGUgKilt YWtlSW50ZWdlcigkNCksIEAxKTsKKwkJCQl9CiAJCTsKIAogY3JlYXRlZnVuY19vcHRfaXRl bToKQEAgLTEyNDIxLDYgKzEyNDI1LDEyIEBAIGN1cnNvcl9vcHRpb25zOiAvKkVNUFRZKi8J CQkJCXsgJCQgPSAwOyB9CiBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJCQl7ICQkID0gMDsg fQogCQkJfCBXSVRIIEhPTEQJCQkJCQl7ICQkID0gQ1VSU09SX09QVF9IT0xEOyB9CiAJCQl8 IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KKwkJCXwgV0lUSCBIT0xEIFdJVEggUkVU VVJOCQkJeyAkJCA9IENVUlNPUl9PUFRfSE9MRCB8IENVUlNPUl9PUFRfUkVUVVJOOyB9CisJ CQl8IFdJVEhPVVQgSE9MRCBXSVRIIFJFVFVSTgkJeyAkJCA9IENVUlNPUl9PUFRfUkVUVVJO OyB9CisJCQl8IFdJVEggSE9MRCBXSVRIT1VUIFJFVFVSTgkJeyAkJCA9IENVUlNPUl9PUFRf SE9MRDsgfQorCQkJfCBXSVRIT1VUIEhPTEQgV0lUSE9VVCBSRVRVUk4JeyAkJCA9IDA7IH0K KwkJCXwgV0lUSCBSRVRVUk4JCQkJCXsgJCQgPSBDVVJTT1JfT1BUX1JFVFVSTjsgfQorCQkJ fCBXSVRIT1VUIFJFVFVSTgkJCQl7ICQkID0gMDsgfQogCQk7CiAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgpAQCAtMTY3ODcsNiArMTY3OTcsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6 CiAJCQl8IERPTUFJTl9QCiAJCQl8IERPVUJMRV9QCiAJCQl8IERST1AKKwkJCXwgRFlOQU1J QwogCQkJfCBFQUNICiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCkBAIC0xNjkzMiw2 ICsxNjk0Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUkVTRVQKIAkJCXwgUkVT VEFSVAogCQkJfCBSRVNUUklDVAorCQkJfCBSRVNVTFQKIAkJCXwgUkVUVVJOCiAJCQl8IFJF VFVSTlMKIAkJCXwgUkVWT0tFCkBAIC0xNzMzMiw2ICsxNzM0NCw3IEBAIGJhcmVfbGFiZWxf a2V5d29yZDoKIAkJCXwgRE9NQUlOX1AKIAkJCXwgRE9VQkxFX1AKIAkJCXwgRFJPUAorCQkJ fCBEWU5BTUlDCiAJCQl8IEVBQ0gKIAkJCXwgRUxTRQogCQkJfCBFTkFCTEVfUApAQCAtMTc1 MTksNiArMTc1MzIsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFJFU0VUCiAJCQl8 IFJFU1RBUlQKIAkJCXwgUkVTVFJJQ1QKKwkJCXwgUkVTVUxUCiAJCQl8IFJFVFVSTgogCQkJ fCBSRVRVUk5TCiAJCQl8IFJFVk9LRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IGNhYjcwOWIw N2IuLjk4YWM5YWEwMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMu YworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTMyLDYgKzMyLDcgQEAK ICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgogI2luY2x1ZGUgImNvbW1v bi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5oIgpAQCAtMTA3Myw2ICsxMDc0LDcg QEAgZXhlY19zaW1wbGVfcXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nKQogCQlpbnQx NgkJZm9ybWF0OwogCQljb25zdCBjaGFyICpjbWR0YWduYW1lOwogCQlzaXplX3QJCWNtZHRh Z2xlbjsKKwkJTGlzdENlbGwgICAqbGM7CiAKIAkJcGdzdGF0X3JlcG9ydF9xdWVyeV9pZCgw LCB0cnVlKTsKIApAQCAtMTIzNSw3ICsxMjM3LDcgQEAgZXhlY19zaW1wbGVfcXVlcnkoY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nKQogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29u dGV4dCk7CiAKIAkJLyoKLQkJICogUnVuIHRoZSBwb3J0YWwgdG8gY29tcGxldGlvbiwgYW5k IHRoZW4gZHJvcCBpdCAoYW5kIHRoZSByZWNlaXZlcikuCisJCSAqIFJ1biB0aGUgcG9ydGFs IHRvIGNvbXBsZXRpb24sIGFuZCB0aGVuIGRyb3AgaXQuCiAJCSAqLwogCQkodm9pZCkgUG9y dGFsUnVuKHBvcnRhbCwKIAkJCQkJCSBGRVRDSF9BTEwsCkBAIC0xMjQ1LDEwICsxMjQ3LDM0 IEBAIGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZykKIAkJCQkJ CSByZWNlaXZlciwKIAkJCQkJCSAmcWMpOwogCi0JCXJlY2VpdmVyLT5yRGVzdHJveShyZWNl aXZlcik7Ci0KIAkJUG9ydGFsRHJvcChwb3J0YWwsIGZhbHNlKTsKIAorCQkvKgorCQkgKiBS dW4gcG9ydGFscyBmb3IgZHluYW1pYyByZXN1bHQgc2V0cy4KKwkJICovCisJCWZvcmVhY2gg KGxjLCBHZXRSZXR1cm5hYmxlQ3Vyc29ycygpKQorCQl7CisJCQlQb3J0YWwJCWR5bnBvcnRh bCA9IGxmaXJzdChsYyk7CisKKwkJCWlmIChkZXN0ID09IERlc3RSZW1vdGUpCisJCQkJU2V0 UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKHJlY2VpdmVyLCBkeW5wb3J0YWwpOworCisJCQlQ b3J0YWxSdW4oZHlucG9ydGFsLAorCQkJCQkgIEZFVENIX0FMTCwKKwkJCQkJICB0cnVlLAor CQkJCQkgIHRydWUsCisJCQkJCSAgcmVjZWl2ZXIsCisJCQkJCSAgcmVjZWl2ZXIsCisJCQkJ CSAgTlVMTCk7CisKKwkJCVBvcnRhbERyb3AoZHlucG9ydGFsLCBmYWxzZSk7CisJCX0KKwor CQkvKgorCQkgKiBEcm9wIHRoZSByZWNlaXZlci4KKwkJICovCisJCXJlY2VpdmVyLT5yRGVz dHJveShyZWNlaXZlcik7CisKIAkJaWYgKGxuZXh0KHBhcnNldHJlZV9saXN0LCBwYXJzZXRy ZWVfaXRlbSkgPT0gTlVMTCkKIAkJewogCQkJLyoKQEAgLTIyMDAsNiArMjIyNiwxMSBAQCBl eGVjX2V4ZWN1dGVfbWVzc2FnZShjb25zdCBjaGFyICpwb3J0YWxfbmFtZSwgbG9uZyBtYXhf cm93cykKIAkJCQkJCSAgcmVjZWl2ZXIsCiAJCQkJCQkgICZxYyk7CiAKKwlpZiAoR2V0UmV0 dXJuYWJsZUN1cnNvcnMoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2coImR5bmFtaWMgcmVzdWx0 IHNldHMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGluIGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29s IikpOworCiAJcmVjZWl2ZXItPnJEZXN0cm95KHJlY2VpdmVyKTsKIAogCS8qIERvbmUgZXhl Y3V0aW5nOyByZW1vdmUgdGhlIHBhcmFtcyBlcnJvciBjYWxsYmFjayAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMv ZXJyY29kZXMudHh0CmluZGV4IDNkMjQ0YWYxMzAuLjliOTRhNWZhOTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dAorKysgYi9zcmMvYmFja2VuZC91dGls cy9lcnJjb2Rlcy50eHQKQEAgLTgzLDYgKzgzLDcgQEAgU2VjdGlvbjogQ2xhc3MgMDEgLSBX YXJuaW5nCiAjIGRvIG5vdCB1c2UgdGhpcyBjbGFzcyBmb3IgZmFpbHVyZSBjb25kaXRpb25z CiAwMTAwMCAgICBXICAgIEVSUkNPREVfV0FSTklORyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcKIDAxMDBDICAgIFcgICAgRVJSQ09E RV9XQVJOSU5HX0RZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgICAgICAgICAgICAgICAg ICAgZHluYW1pY19yZXN1bHRfc2V0c19yZXR1cm5lZAorMDEwMEUgICAgVyAgICBFUlJDT0RF X1dBUk5JTkdfQVRURU1QVF9UT19SRVRVUk5fVE9PX01BTllfUkVTVUxUX1NFVFMgICAgICAg ICBhdHRlbXB0X3RvX3JldHVybl90b29fbWFueV9yZXN1bHRfc2V0cwogMDEwMDggICAgVyAg ICBFUlJDT0RFX1dBUk5JTkdfSU1QTElDSVRfWkVST19CSVRfUEFERElORyAgICAgICAgICAg ICAgICAgICAgICBpbXBsaWNpdF96ZXJvX2JpdF9wYWRkaW5nCiAwMTAwMyAgICBXICAgIEVS UkNPREVfV0FSTklOR19OVUxMX1ZBTFVFX0VMSU1JTkFURURfSU5fU0VUX0ZVTkNUSU9OICAg ICAgICAgIG51bGxfdmFsdWVfZWxpbWluYXRlZF9pbl9zZXRfZnVuY3Rpb24KIDAxMDA3ICAg IFcgICAgRVJSQ09ERV9XQVJOSU5HX1BSSVZJTEVHRV9OT1RfR1JBTlRFRCAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJpdmlsZWdlX25vdF9ncmFudGVkCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9tbWdyL3BvcnRhbG1lbS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9wb3J0YWxtZW0uYwppbmRleCAwNmRmYTg1ZjA0Li5mMjlhNmVhYmY4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9tbWdyL3BvcnRhbG1lbS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL21tZ3IvcG9ydGFsbWVtLmMKQEAgLTEyODksMyArMTI4OSw1MSBAQCBGb3JnZXRQ b3J0YWxTbmFwc2hvdHModm9pZCkKIAkJZWxvZyhFUlJPUiwgInBvcnRhbCBzbmFwc2hvdHMg KCVkKSBkaWQgbm90IGFjY291bnQgZm9yIGFsbCBhY3RpdmUgc25hcHNob3RzICglZCkiLAog CQkJIG51bVBvcnRhbFNuYXBzLCBudW1BY3RpdmVTbmFwcyk7CiB9CisKK3N0YXRpYyBpbnQK K2NtcF9wb3J0YWxzX2J5X2NyZWF0aW9uKGNvbnN0IExpc3RDZWxsICphLCBjb25zdCBMaXN0 Q2VsbCAqYikKK3sKKwlQb3J0YWwJCXBhID0gbGZpcnN0KGEpOworCVBvcnRhbAkJcGIgPSBs Zmlyc3QoYik7CisKKwlyZXR1cm4gcGEtPmNyZWF0ZUNpZCAtIHBiLT5jcmVhdGVDaWQ7Cit9 CisKK0xpc3QgKgorR2V0UmV0dXJuYWJsZUN1cnNvcnModm9pZCkKK3sKKwlMaXN0CSAgICpy ZXQgPSBOSUw7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlQb3J0YWxIYXNoRW50ICpo ZW50cnk7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIFBvcnRhbEhhc2hUYWJsZSk7CisK Kwl3aGlsZSAoKGhlbnRyeSA9IChQb3J0YWxIYXNoRW50ICopIGhhc2hfc2VxX3NlYXJjaCgm c3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCVBvcnRhbAkJcG9ydGFsID0gaGVudHJ5LT5wb3J0 YWw7CisKKwkJaWYgKHBvcnRhbC0+Y3Vyc29yT3B0aW9ucyAmIENVUlNPUl9PUFRfUkVUVVJO KQorCQkJcmV0ID0gbGFwcGVuZChyZXQsIHBvcnRhbCk7CisJfQorCisJbGlzdF9zb3J0KHJl dCwgY21wX3BvcnRhbHNfYnlfY3JlYXRpb24pOworCisJcmV0dXJuIHJldDsKK30KKwordm9p ZAorQ2xvc2VPdGhlclJldHVybmFibGVDdXJzb3JzKE9pZCBwcm9jaWQpCit7CisJSEFTSF9T RVFfU1RBVFVTIHN0YXR1czsKKwlQb3J0YWxIYXNoRW50ICpoZW50cnk7CisKKwloYXNoX3Nl cV9pbml0KCZzdGF0dXMsIFBvcnRhbEhhc2hUYWJsZSk7CisKKwl3aGlsZSAoKGhlbnRyeSA9 IChQb3J0YWxIYXNoRW50ICopIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkK Kwl7CisJCVBvcnRhbAkJcG9ydGFsID0gaGVudHJ5LT5wb3J0YWw7CisKKwkJaWYgKHBvcnRh bC0+Y3Vyc29yT3B0aW9ucyAmIENVUlNPUl9PUFRfUkVUVVJOICYmIHBvcnRhbC0+cHJvY0lk ICE9IHByb2NpZCkKKwkJCVBvcnRhbERyb3AocG9ydGFsLCBmYWxzZSk7CisJfQorfQpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKaW5kZXggY2M0MjRmZDNiMi4uMWJjNGFhY2VkYiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CkBAIC0xMTY0MSw2ICsxMTY0MSw3IEBAIGR1bXBGdW5jKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IEZ1bmNJbmZvICpmaW5mbykKIAljaGFyCSAgICpwcm9yb3dzOwogCWNoYXIJICAgKnByb3N1 cHBvcnQ7CiAJY2hhcgkgICAqcHJvcGFyYWxsZWw7CisJaW50CQkJcHJvZHlucmVzOwogCWNo YXIJICAgKmxhbm5hbWU7CiAJY2hhcgkgICoqY29uZmlnaXRlbXMgPSBOVUxMOwogCWludAkJ CW5jb25maWdpdGVtcyA9IDA7CkBAIC0xMTcwOCwxMCArMTE3MDksMTcgQEAgZHVtcEZ1bmMo QXJjaGl2ZSAqZm91dCwgY29uc3QgRnVuY0luZm8gKmZpbmZvKQogCiAJCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uID49IDE0MDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LAotCQkJCQkJCQkgInBnX2dldF9mdW5jdGlvbl9zcWxib2R5KHAub2lkKSBBUyBwcm9zcWxi b2R5XG4iKTsKKwkJCQkJCQkJICJwZ19nZXRfZnVuY3Rpb25fc3FsYm9keShwLm9pZCkgQVMg cHJvc3FsYm9keSxcbiIpOwogCQllbHNlCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwKLQkJCQkJCQkJICJOVUxMIEFTIHByb3NxbGJvZHlcbiIpOworCQkJCQkJCQkgIk5VTEwg QVMgcHJvc3FsYm9keSxcbiIpOworCisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE2 MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCQkgInByb2R5 bnJlc1xuIik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJ CQkJCQkgIjAgQVMgcHJvZHlucmVzXG4iKTsKIAogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wcm9jIHAsIHBnX2NhdGFsb2cu cGdfbGFuZ3VhZ2UgbFxuIgpAQCAtMTE3NTYsNiArMTE3NjQsNyBAQCBkdW1wRnVuYyhBcmNo aXZlICpmb3V0LCBjb25zdCBGdW5jSW5mbyAqZmluZm8pCiAJcHJvcm93cyA9IFBRZ2V0dmFs dWUocmVzLCAwLCBQUWZudW1iZXIocmVzLCAicHJvcm93cyIpKTsKIAlwcm9zdXBwb3J0ID0g UFFnZXR2YWx1ZShyZXMsIDAsIFBRZm51bWJlcihyZXMsICJwcm9zdXBwb3J0IikpOwogCXBy b3BhcmFsbGVsID0gUFFnZXR2YWx1ZShyZXMsIDAsIFBRZm51bWJlcihyZXMsICJwcm9wYXJh bGxlbCIpKTsKKwlwcm9keW5yZXMgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCAwLCBQUWZudW1i ZXIocmVzLCAicHJvZHlucmVzIikpKTsKIAlsYW5uYW1lID0gUFFnZXR2YWx1ZShyZXMsIDAs IFBRZm51bWJlcihyZXMsICJsYW5uYW1lIikpOwogCiAJLyoKQEAgLTExODc0LDYgKzExODgz LDkgQEAgZHVtcEZ1bmMoQXJjaGl2ZSAqZm91dCwgY29uc3QgRnVuY0luZm8gKmZpbmZvKQog CWlmIChwcm9pc3N0cmljdFswXSA9PSAndCcpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEs ICIgU1RSSUNUIik7CiAKKwlpZiAocHJvZHlucmVzID4gMCkKKwkJYXBwZW5kUFFFeHBCdWZm ZXIocSwgIiBEWU5BTUlDIFJFU1VMVCBTRVRTICVkIiwgcHJvZHlucmVzKTsKKwogCWlmIChw cm9zZWNkZWZbMF0gPT0gJ3QnKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiIFNFQ1VS SVRZIERFRklORVIiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuaAppbmRleCBlN2FiZTBiNDk3 Li5mNGVmOGYwZWNlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuaApAQCAtNzYsNiArNzYsOSBA QCBDQVRBTE9HKHBnX3Byb2MsMTI1NSxQcm9jZWR1cmVSZWxhdGlvbklkKSBCS0lfQk9PVFNU UkFQIEJLSV9ST1dUWVBFX09JRCg4MSxQcm9jZQogCS8qIHNlZSBQUk9QQVJBTExFTF8gY2F0 ZWdvcmllcyBiZWxvdyAqLwogCWNoYXIJCXByb3BhcmFsbGVsIEJLSV9ERUZBVUxUKHMpOwog CisJLyogbWF4aW11bSBudW1iZXIgb2YgZHluYW1pYyByZXN1bHQgc2V0cyAqLworCWludDMy CQlwcm9keW5yZXMgQktJX0RFRkFVTFQoMCk7CisKIAkvKiBudW1iZXIgb2YgYXJndW1lbnRz ICovCiAJLyogTm90ZTogbmVlZCBub3QgYmUgZ2l2ZW4gaW4gcGdfcHJvYy5kYXQ7IGdlbmJr aS5wbCB3aWxsIGNvbXB1dGUgaXQgKi8KIAlpbnQxNgkJcHJvbmFyZ3M7CkBAIC0yMTEsNyAr MjE0LDggQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgUHJvY2VkdXJlQ3JlYXRlKGNvbnN0IGNo YXIgKnByb2NlZHVyZU5hbWUsCiAJCQkJCQkJCQkgRGF0dW0gcHJvY29uZmlnLAogCQkJCQkJ CQkJIE9pZCBwcm9zdXBwb3J0LAogCQkJCQkJCQkJIGZsb2F0NCBwcm9jb3N0LAotCQkJCQkJ CQkJIGZsb2F0NCBwcm9yb3dzKTsKKwkJCQkJCQkJCSBmbG9hdDQgcHJvcm93cywKKwkJCQkJ CQkJCSBpbnQgZHlucmVzKTsKIAogZXh0ZXJuIGJvb2wgZnVuY3Rpb25fcGFyc2VfZXJyb3Jf dHJhbnNwb3NlKGNvbnN0IGNoYXIgKnByb3NyYyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL2RlZnJlbS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgK aW5kZXggNGY3Zjg3ZmM2Mi4uZmNmZThkZjc4ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvZGVmcmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgK QEAgLTU3LDYgKzU3LDcgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVHJhbnNmb3Jt KENyZWF0ZVRyYW5zZm9ybVN0bXQgKnN0bXQpOwogZXh0ZXJuIHZvaWQgSXNUaGVyZUZ1bmN0 aW9uSW5OYW1lc3BhY2UoY29uc3QgY2hhciAqcHJvbmFtZSwgaW50IHByb25hcmdzLAogCQkJ CQkJCQkJICAgb2lkdmVjdG9yICpwcm9hcmd0eXBlcywgT2lkIG5zcE9pZCk7CiBleHRlcm4g dm9pZCBFeGVjdXRlRG9TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRG9TdG10ICpzdG10LCBi b29sIGF0b21pYyk7CitleHRlcm4gT2lkCUN1cnJlbnRQcm9jZWR1cmUodm9pZCk7CiBleHRl cm4gdm9pZCBFeGVjdXRlQ2FsbFN0bXQoQ2FsbFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8g cGFyYW1zLCBib29sIGF0b21pYywgRGVzdFJlY2VpdmVyICpkZXN0KTsKIGV4dGVybiBUdXBs ZURlc2MgQ2FsbFN0bXRSZXN1bHREZXNjKENhbGxTdG10ICpzdG10KTsKIGV4dGVybiBPaWQJ Z2V0X3RyYW5zZm9ybV9vaWQoT2lkIHR5cGVfaWQsIE9pZCBsYW5nX2lkLCBib29sIG1pc3Np bmdfb2spOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGY3ZDdmMTBmN2QuLmFjYWU3 ZGE3MDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTMwMTAsNiArMzAxMCw3IEBA IHR5cGVkZWYgc3RydWN0IFNlY0xhYmVsU3RtdAogI2RlZmluZSBDVVJTT1JfT1BUX0lOU0VO U0lUSVZFCTB4MDAwOAkvKiBJTlNFTlNJVElWRSAqLwogI2RlZmluZSBDVVJTT1JfT1BUX0FT RU5TSVRJVkUJMHgwMDEwCS8qIEFTRU5TSVRJVkUgKi8KICNkZWZpbmUgQ1VSU09SX09QVF9I T0xECQkJMHgwMDIwCS8qIFdJVEggSE9MRCAqLworI2RlZmluZSBDVVJTT1JfT1BUX1JFVFVS TgkJMHgwMDQwCS8qIFdJVEggUkVUVVJOICovCiAvKiB0aGVzZSBwbGFubmVyLWNvbnRyb2wg ZmxhZ3MgZG8gbm90IGNvcnJlc3BvbmQgdG8gYW55IFNRTCBncmFtbWFyOiAqLwogI2RlZmlu ZSBDVVJTT1JfT1BUX0ZBU1RfUExBTgkweDAxMDAJLyogcHJlZmVyIGZhc3Qtc3RhcnQgcGxh biAqLwogI2RlZmluZSBDVVJTT1JfT1BUX0dFTkVSSUNfUExBTiAweDAyMDAJLyogZm9yY2Ug dXNlIG9mIGdlbmVyaWMgcGxhbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGJiMzYyMTNl NmYuLjYwNDU3ZDIxZjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTE0NCw2ICsxNDQsNyBA QCBQR19LRVlXT1JEKCJkb2N1bWVudCIsIERPQ1VNRU5UX1AsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRvbWFpbiIsIERPTUFJTl9QLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkb3VibGUiLCBET1VCTEVf UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZHJvcCIs IERST1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImR5 bmFtaWMiLCBEWU5BTUlDLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJlYWNoIiwgRUFDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgiZWxzZSIsIEVMU0UsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJlbmFibGUiLCBFTkFCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQpAQCAtMzUzLDYgKzM1NCw3IEBAIFBHX0tFWVdPUkQoInJlcGxpY2EiLCBS RVBMSUNBLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJy ZXNldCIsIFJFU0VULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJyZXN0YXJ0IiwgUkVTVEFSVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgicmVzdHJpY3QiLCBSRVNUUklDVCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicmVzdWx0IiwgUkVTVUxULCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZXR1cm4iLCBSRVRVUk4sIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJldHVybmluZyIs IFJFVFVSTklORywgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJy ZXR1cm5zIiwgUkVUVVJOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcG9ydGFsLmggYi9zcmMvaW5jbHVkZS91dGls cy9wb3J0YWwuaAppbmRleCBhYTA4YjFlMGZjLi42ZjA0MzYyZGZlIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9wb3J0YWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wb3J0 YWwuaApAQCAtMTMyLDYgKzEzMiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQb3J0YWxEYXRhCiAJ U3ViVHJhbnNhY3Rpb25JZCBhY3RpdmVTdWJpZDsJLyogdGhlIGxhc3Qgc3VieGFjdCB3aXRo IGFjdGl2aXR5ICovCiAJaW50CQkJY3JlYXRlTGV2ZWw7CS8qIGNyZWF0aW5nIHN1YnhhY3Qn cyBuZXN0aW5nIGxldmVsICovCiAKKwkvKgorCSAqIFByb2NlZHVyZSB0aGF0IGNyZWF0ZWQg dGhpcyBwb3J0YWwuICBVc2VkIGZvciByZXR1cm5hYmxlIGN1cnNvcnMuCisJICovCisJT2lk CQkJCXByb2NJZDsKKwkvKgorCSAqIENvbW1hbmQgSUQgd2hlcmUgdGhlIHBvcnRhbCB3YXMg Y3JlYXRlZC4gIFVzZWQgZm9yIHNvcnRpbmcgcmV0dXJuYWJsZQorCSAqIGN1cnNvcnMgaW50 byBjcmVhdGlvbiBvcmRlci4KKwkgKi8KKwlDb21tYW5kSWQJCWNyZWF0ZUNpZDsKKwogCS8q IFRoZSBxdWVyeSBvciBxdWVyaWVzIHRoZSBwb3J0YWwgd2lsbCBleGVjdXRlICovCiAJY29u c3QgY2hhciAqc291cmNlVGV4dDsJCS8qIHRleHQgb2YgcXVlcnkgKGFzIG9mIDguNCwgbmV2 ZXIgTlVMTCkgKi8KIAlDb21tYW5kVGFnCWNvbW1hbmRUYWc7CQkvKiBjb21tYW5kIHRhZyBm b3Igb3JpZ2luYWwgcXVlcnkgKi8KQEAgLTI0OCw1ICsyNTgsNyBAQCBleHRlcm4gdm9pZCBQ b3J0YWxIYXNoVGFibGVEZWxldGVBbGwodm9pZCk7CiBleHRlcm4gYm9vbCBUaGVyZUFyZU5v UmVhZHlQb3J0YWxzKHZvaWQpOwogZXh0ZXJuIHZvaWQgSG9sZFBpbm5lZFBvcnRhbHModm9p ZCk7CiBleHRlcm4gdm9pZCBGb3JnZXRQb3J0YWxTbmFwc2hvdHModm9pZCk7CitleHRlcm4g TGlzdCAqR2V0UmV0dXJuYWJsZUN1cnNvcnModm9pZCk7CitleHRlcm4gdm9pZCBDbG9zZU90 aGVyUmV0dXJuYWJsZUN1cnNvcnMoT2lkIHByb2NpZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQ T1JUQUxfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlIGIv c3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCmluZGV4IGY3ZWI0MmQ1NGYuLjBiOTY4NmZi ZmYgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM0LDcgKzM0LDcgQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiAKIFJFR1JFU1MgPSBwbHBnc3FsX2FycmF5IHBs cGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgcGxwZ3NxbF9jb3B5IHBscGdzcWxfZG9tYWlu IFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX2NhY2hlIHBscGdzcWxfc2ltcGxlIHBscGdz cWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3Nx bF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBwbHBnc3FsX3dpdGhfcmV0dXJuCiAKICMgd2hlcmUgdG8gZmluZCBnZW5fa2V5d29y ZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3JjZGly KS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3dpdGhfcmV0dXJuLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3dpdGhfcmV0dXJuLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi4yZjZiMDM0ZTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL2V4cGVjdGVkL3BscGdzcWxfd2l0aF9yZXR1cm4ub3V0CkBAIC0wLDAgKzEsMTA1IEBA CitDUkVBVEUgVEFCTEUgZHJzX3Rlc3QxIChhIGludCk7CitJTlNFUlQgSU5UTyBkcnNfdGVz dDEgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgZHJzX3Rlc3QyICh4IHRl eHQsIHkgdGV4dCk7CitJTlNFUlQgSU5UTyBkcnNfdGVzdDIgVkFMVUVTICgnYWJjJywgJ2Rl ZicpLCAoJ2ZvbycsICdiYXInKTsKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3QxKHggaW50 KQorTEFOR1VBR0UgcGxwZ3NxbAorRFlOQU1JQyBSRVNVTFQgU0VUUyAyCitBUyAkJAorREVD TEFSRQorICBjMSBDVVJTT1IgV0lUSCBSRVRVUk4gKHkgaW50KSBGT1IgU0VMRUNUIGEgKiB5 IEFTIGF5IEZST00gZHJzX3Rlc3QxOworICBjMiBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNF TEVDVCAqIEZST00gZHJzX3Rlc3QyOworQkVHSU4KKyAgT1BFTiBjMSh4KTsKKyAgSUYgeCA+ IDEgVEhFTgorICAgIE9QRU4gYzI7CisgIEVORCBJRjsKK0VORDsKKyQkOworQ0FMTCBwZHJz dGVzdDEoMSk7CisgYXkgCistLS0tCisgIDEKKyAgMgorICAzCisoMyByb3dzKQorCitDQUxM IHBkcnN0ZXN0MSgyKTsKKyBheSAKKy0tLS0KKyAgMgorICA0CisgIDYKKygzIHJvd3MpCisK KyAgeCAgfCAgeSAgCistLS0tLSstLS0tLQorIGFiYyB8IGRlZgorIGZvbyB8IGJhcgorKDIg cm93cykKKworRE8gJCQKK0RFQ0xBUkUKKyAgYzEgQ1VSU09SIFdJVEggUkVUVVJOICh5IGlu dCkgRk9SIFNFTEVDVCBhICogeSBBUyBheSBGUk9NIGRyc190ZXN0MTsKKyAgYzIgQ1VSU09S IFdJVEggUkVUVVJOIEZPUiBTRUxFQ1QgKiBGUk9NIGRyc190ZXN0MjsKK0JFR0lOCisgIE9Q RU4gYzEoMSk7CisgIE9QRU4gYzI7CitFTkQ7CiskJDsKKyBheSAKKy0tLS0KKyAgMQorICAy CisgIDMKKygzIHJvd3MpCisKKyAgeCAgfCAgeSAgCistLS0tLSstLS0tLQorIGFiYyB8IGRl ZgorIGZvbyB8IGJhcgorKDIgcm93cykKKworLS0gKFRoZSByZXN1bHQgc2V0cyBvZiB0aGUg Y2FsbGVkIHByb2NlZHVyZSBhcmUgbm90IHJldHVybmVkLikKK0RPICQkCitCRUdJTgorICBD QUxMIHBkcnN0ZXN0MSgxKTsKK0VORDsKKyQkOworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVz dDIoeCBpbnQpCitMQU5HVUFHRSBwbHBnc3FsCitEWU5BTUlDIFJFU1VMVCBTRVRTIDIKK0FT ICQkCitERUNMQVJFCisgIGMxIHJlZmN1cnNvcjsKKyAgYzIgcmVmY3Vyc29yOworQkVHSU4K KyAgT1BFTiBjMSBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUIGEgKiB4IEFTIGF4IEZST00gZHJz X3Rlc3QxOworICBJRiB4ID4gMSBUSEVOCisgICAgT1BFTiBjMiBTQ1JPTEwgV0lUSCBSRVRV Uk4gRk9SIFNFTEVDVCAqIEZST00gZHJzX3Rlc3QyOworICBFTkQgSUY7CitFTkQ7CiskJDsK K0NBTEwgcGRyc3Rlc3QyKDEpOworIGF4IAorLS0tLQorICAxCisgIDIKKyAgMworKDMgcm93 cykKKworQ0FMTCBwZHJzdGVzdDIoMik7CisgYXggCistLS0tCisgIDIKKyAgNAorICA2Ciso MyByb3dzKQorCisgIHggIHwgIHkgIAorLS0tLS0rLS0tLS0KKyBhYmMgfCBkZWYKKyBmb28g fCBiYXIKKygyIHJvd3MpCisKK0RST1AgVEFCTEUgZHJzX3Rlc3QxLCBkcnNfdGVzdDI7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggZTE4NWE4NzAyNC4uYjZmYzM1ZTIzZiAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCisrKyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9tZXNvbi5idWlsZApAQCAtODYsNiArODYsNyBAQCB0ZXN0cyArPSB7CiAg ICAgICAncGxwZ3NxbF90cmFwJywKICAgICAgICdwbHBnc3FsX3RyaWdnZXInLAogICAgICAg J3BscGdzcWxfdmFycHJvcHMnLAorICAgICAgJ3BscGdzcWxfd2l0aF9yZXR1cm4nLAogICAg IF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5j IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBmZmQ2ZDJlM2JjLi5lYTEx MTQ0ZjZkIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBi L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTQ3NzYsNiArNDc3NiwxMiBAQCBl eGVjX3N0bXRfb3BlbihQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRf b3BlbiAqc3RtdCkKIAkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBvcGVuIGN1cnNvcjogJXMi LAogCQkJIFNQSV9yZXN1bHRfY29kZV9zdHJpbmcoU1BJX3Jlc3VsdCkpOwogCisJaWYgKHBv cnRhbC0+Y3Vyc29yT3B0aW9ucyAmIENVUlNPUl9PUFRfUkVUVVJOKQorCXsKKwkJcG9ydGFs LT5wcm9jSWQgPSBlc3RhdGUtPmZ1bmMtPmZuX29pZDsKKwkJcG9ydGFsLT5jcmVhdGVDaWQg PSBHZXRDdXJyZW50Q29tbWFuZElkKHRydWUpOworCX0KKwogCS8qCiAJICogSWYgY3Vyc29y IHZhcmlhYmxlIHdhcyBOVUxMLCBzdG9yZSB0aGUgZ2VuZXJhdGVkIHBvcnRhbCBuYW1lIGlu IGl0LAogCSAqIGFmdGVyIHZlcmlmeWluZyBpdCdzIG9rYXkgdG8gYXNzaWduIHRvLgpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueSBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9ncmFtLnkKaW5kZXggZWRlYjcyYzM4MC4uYmZmMTU1NzAwNSAxMDA2NDQKLS0t IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55CkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19y YWlzZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8ZGF0 dW0+CWdldGRpYWdfdGFyZ2V0CiAldHlwZSA8aXZhbD4JZ2V0ZGlhZ19pdGVtCiAKLSV0eXBl IDxpdmFsPglvcHRfc2Nyb2xsYWJsZQorJXR5cGUgPGl2YWw+CW9wdF9zY3JvbGxhYmxlIG9w dF93aXRoX3JldHVybgogJXR5cGUgPGZldGNoPglvcHRfZmV0Y2hfZGlyZWN0aW9uCiAKICV0 eXBlIDxpdmFsPglvcHRfdHJhbnNhY3Rpb25fY2hhaW4KQEAgLTM1Miw2ICszNTIsOCBAQCBz dGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNl ICpzdG10KTsKICV0b2tlbiA8a2V5d29yZD4JS19XQVJOSU5HCiAldG9rZW4gPGtleXdvcmQ+ CUtfV0hFTgogJXRva2VuIDxrZXl3b3JkPglLX1dISUxFCisldG9rZW4gPGtleXdvcmQ+CUtf V0lUSAorJXRva2VuIDxrZXl3b3JkPglLX1dJVEhPVVQKIAogJSUKIApAQCAtNTI5LDcgKzUz MSw3IEBAIGRlY2xfc3RhdGVtZW50CTogZGVjbF92YXJuYW1lIGRlY2xfY29uc3QgZGVjbF9k YXRhdHlwZSBkZWNsX2NvbGxhdGUgZGVjbF9ub3RudWxsCiAJCQkJCQlwbHBnc3FsX25zX2Fk ZGl0ZW0oJDQtPml0ZW10eXBlLAogCQkJCQkJCQkJCSAgICQ0LT5pdGVtbm8sICQxLm5hbWUp OwogCQkJCQl9Ci0JCQkJfCBkZWNsX3Zhcm5hbWUgb3B0X3Njcm9sbGFibGUgS19DVVJTT1IK KwkJCQl8IGRlY2xfdmFybmFtZSBvcHRfc2Nyb2xsYWJsZSBLX0NVUlNPUiBvcHRfd2l0aF9y ZXR1cm4KIAkJCQkJeyBwbHBnc3FsX25zX3B1c2goJDEubmFtZSwgUExQR1NRTF9MQUJFTF9P VEhFUik7IH0KIAkJCQkgIGRlY2xfY3Vyc29yX2FyZ3MgZGVjbF9pc19mb3IgZGVjbF9jdXJz b3JfcXVlcnkKIAkJCQkJewpAQCAtNTQ2LDEyICs1NDgsMTIgQEAgZGVjbF9zdGF0ZW1lbnQJ OiBkZWNsX3Zhcm5hbWUgZGVjbF9jb25zdCBkZWNsX2RhdGF0eXBlIGRlY2xfY29sbGF0ZSBk ZWNsX25vdG51bGwKIAkJCQkJCQkJCQkJCQkJCQkJCSAgTlVMTCksCiAJCQkJCQkJCQkJCQkg ICB0cnVlKTsKIAotCQkJCQkJbmV3LT5jdXJzb3JfZXhwbGljaXRfZXhwciA9ICQ3OwotCQkJ CQkJaWYgKCQ1ID09IE5VTEwpCisJCQkJCQluZXctPmN1cnNvcl9leHBsaWNpdF9leHByID0g JDg7CisJCQkJCQlpZiAoJDYgPT0gTlVMTCkKIAkJCQkJCQluZXctPmN1cnNvcl9leHBsaWNp dF9hcmdyb3cgPSAtMTsKIAkJCQkJCWVsc2UKLQkJCQkJCQluZXctPmN1cnNvcl9leHBsaWNp dF9hcmdyb3cgPSAkNS0+ZG5vOwotCQkJCQkJbmV3LT5jdXJzb3Jfb3B0aW9ucyA9IENVUlNP Ul9PUFRfRkFTVF9QTEFOIHwgJDI7CisJCQkJCQkJbmV3LT5jdXJzb3JfZXhwbGljaXRfYXJn cm93ID0gJDYtPmRubzsKKwkJCQkJCW5ldy0+Y3Vyc29yX29wdGlvbnMgPSBDVVJTT1JfT1BU X0ZBU1RfUExBTiB8ICQyIHwgJDQ7CiAJCQkJCX0KIAkJCQk7CiAKQEAgLTU2OSw2ICs1NzEs MjAgQEAgb3B0X3Njcm9sbGFibGUgOgogCQkJCQl9CiAJCQkJOwogCitvcHRfd2l0aF9yZXR1 cm4gOgorCQkJCQl7CisJCQkJCQkkJCA9IDA7CisJCQkJCX0KKwkJCQl8IEtfV0lUSCBLX1JF VFVSTgorCQkJCQl7CisJCQkJCQkkJCA9IENVUlNPUl9PUFRfUkVUVVJOOworCQkJCQl9CisJ CQkJfCBLX1dJVEhPVVQgS19SRVRVUk4KKwkJCQkJeworCQkJCQkJJCQgPSAwOworCQkJCQl9 CisJCQkJOworCiBkZWNsX2N1cnNvcl9xdWVyeSA6CiAJCQkJCXsKIAkJCQkJCSQkID0gcmVh ZF9zcWxfc3RtdCgpOwpAQCAtMTk3Niw2ICsxOTkyLDEwIEBAIHN0bXRfZXhlY3NxbAk6IEtf SU1QT1JUCiAJCQkJCXsKIAkJCQkJCSQkID0gbWFrZV9leGVjc3FsX3N0bXQoS19NRVJHRSwg QDEpOwogCQkJCQl9CisJCQkJfCBLX1dJVEgKKwkJCQkJeworCQkJCQkJJCQgPSBtYWtlX2V4 ZWNzcWxfc3RtdChLX1dJVEgsIEAxKTsKKwkJCQkJfQogCQkJCXwgVF9XT1JECiAJCQkJCXsK IAkJCQkJCWludAkJCXRvazsKQEAgLTIwOTgsNiArMjExOCwzMCBAQCBzdG10X29wZW4JCTog S19PUEVOIGN1cnNvcl92YXJpYWJsZQogCQkJCQkJCQl0b2sgPSB5eWxleCgpOwogCQkJCQkJ CX0KIAorCQkJCQkJCS8qIHNhbWUgZm9yIG9wdF93aXRoX3JldHVybiAqLworCQkJCQkJCWlm ICh0b2tfaXNfa2V5d29yZCh0b2ssICZ5eWx2YWwsCisJCQkJCQkJCQkJCSAgIEtfV0lUSCwg IndpdGgiKSkKKwkJCQkJCQl7CisJCQkJCQkJCXRvayA9IHl5bGV4KCk7CisJCQkJCQkJCWlm ICh0b2tfaXNfa2V5d29yZCh0b2ssICZ5eWx2YWwsCisJCQkJCQkJCQkJCQkgICBLX1JFVFVS TiwgInJldHVybiIpKQorCQkJCQkJCQl7CisJCQkJCQkJCQluZXctPmN1cnNvcl9vcHRpb25z IHw9IENVUlNPUl9PUFRfUkVUVVJOOworCQkJCQkJCQkJdG9rID0geXlsZXgoKTsKKwkJCQkJ CQkJfQorCQkJCQkJCX0KKwkJCQkJCQllbHNlIGlmICh0b2tfaXNfa2V5d29yZCh0b2ssICZ5 eWx2YWwsCisJCQkJCQkJCQkJCSAgIEtfV0lUSE9VVCwgIndpdGhvdXQiKSkKKwkJCQkJCQl7 CisJCQkJCQkJCXRvayA9IHl5bGV4KCk7CisJCQkJCQkJCWlmICh0b2tfaXNfa2V5d29yZCh0 b2ssICZ5eWx2YWwsCisJCQkJCQkJCQkJCQkgICBLX1JFVFVSTiwgInJldHVybiIpKQorCQkJ CQkJCQl7CisJCQkJCQkJCQluZXctPmN1cnNvcl9vcHRpb25zIHw9IDA7CisJCQkJCQkJCQl0 b2sgPSB5eWxleCgpOworCQkJCQkJCQl9CisJCQkJCQkJfQorCiAJCQkJCQkJaWYgKHRvayAh PSBLX0ZPUikKIAkJCQkJCQkJeXllcnJvcigic3ludGF4IGVycm9yLCBleHBlY3RlZCBcIkZP UlwiIik7CiAKQEAgLTI1NTIsNiArMjU5Niw4IEBAIHVucmVzZXJ2ZWRfa2V5d29yZAk6CiAJ CQkJfCBLX1VTRV9WQVJJQUJMRQogCQkJCXwgS19WQVJJQUJMRV9DT05GTElDVAogCQkJCXwg S19XQVJOSU5HCisJCQkJfCBLX1dJVEgKKwkJCQl8IEtfV0lUSE9VVAogCQkJCTsKIAogJSUK ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5o IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKaW5kZXggNDY2 YmRjN2EyMC4uOGE4ZjhlYTQ3YSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X3VucmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVz ZXJ2ZWRfa3dsaXN0LmgKQEAgLTEwOSwzICsxMDksNSBAQCBQR19LRVlXT1JEKCJ1c2VfY29s dW1uIiwgS19VU0VfQ09MVU1OKQogUEdfS0VZV09SRCgidXNlX3ZhcmlhYmxlIiwgS19VU0Vf VkFSSUFCTEUpCiBQR19LRVlXT1JEKCJ2YXJpYWJsZV9jb25mbGljdCIsIEtfVkFSSUFCTEVf Q09ORkxJQ1QpCiBQR19LRVlXT1JEKCJ3YXJuaW5nIiwgS19XQVJOSU5HKQorUEdfS0VZV09S RCgid2l0aCIsIEtfV0lUSCkKK1BHX0tFWVdPUkQoIndpdGhvdXQiLCBLX1dJVEhPVVQpCmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfd2l0aF9yZXR1cm4u c3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3dpdGhfcmV0dXJuLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wOGRhMzYyYmNlCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3dpdGhfcmV0 dXJuLnNxbApAQCAtMCwwICsxLDY0IEBACitDUkVBVEUgVEFCTEUgZHJzX3Rlc3QxIChhIGlu dCk7CitJTlNFUlQgSU5UTyBkcnNfdGVzdDEgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVB VEUgVEFCTEUgZHJzX3Rlc3QyICh4IHRleHQsIHkgdGV4dCk7CitJTlNFUlQgSU5UTyBkcnNf dGVzdDIgVkFMVUVTICgnYWJjJywgJ2RlZicpLCAoJ2ZvbycsICdiYXInKTsKKworCitDUkVB VEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MSh4IGludCkKK0xBTkdVQUdFIHBscGdzcWwKK0RZTkFN SUMgUkVTVUxUIFNFVFMgMgorQVMgJCQKK0RFQ0xBUkUKKyAgYzEgQ1VSU09SIFdJVEggUkVU VVJOICh5IGludCkgRk9SIFNFTEVDVCBhICogeSBBUyBheSBGUk9NIGRyc190ZXN0MTsKKyAg YzIgQ1VSU09SIFdJVEggUkVUVVJOIEZPUiBTRUxFQ1QgKiBGUk9NIGRyc190ZXN0MjsKK0JF R0lOCisgIE9QRU4gYzEoeCk7CisgIElGIHggPiAxIFRIRU4KKyAgICBPUEVOIGMyOworICBF TkQgSUY7CitFTkQ7CiskJDsKKworQ0FMTCBwZHJzdGVzdDEoMSk7CitDQUxMIHBkcnN0ZXN0 MSgyKTsKKworCitETyAkJAorREVDTEFSRQorICBjMSBDVVJTT1IgV0lUSCBSRVRVUk4gKHkg aW50KSBGT1IgU0VMRUNUIGEgKiB5IEFTIGF5IEZST00gZHJzX3Rlc3QxOworICBjMiBDVVJT T1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gZHJzX3Rlc3QyOworQkVHSU4KKyAg T1BFTiBjMSgxKTsKKyAgT1BFTiBjMjsKK0VORDsKKyQkOworCisKKy0tIChUaGUgcmVzdWx0 IHNldHMgb2YgdGhlIGNhbGxlZCBwcm9jZWR1cmUgYXJlIG5vdCByZXR1cm5lZC4pCitETyAk JAorQkVHSU4KKyAgQ0FMTCBwZHJzdGVzdDEoMSk7CitFTkQ7CiskJDsKKworCitDUkVBVEUg UFJPQ0VEVVJFIHBkcnN0ZXN0Mih4IGludCkKK0xBTkdVQUdFIHBscGdzcWwKK0RZTkFNSUMg UkVTVUxUIFNFVFMgMgorQVMgJCQKK0RFQ0xBUkUKKyAgYzEgcmVmY3Vyc29yOworICBjMiBy ZWZjdXJzb3I7CitCRUdJTgorICBPUEVOIGMxIFdJVEggUkVUVVJOIEZPUiBTRUxFQ1QgYSAq IHggQVMgYXggRlJPTSBkcnNfdGVzdDE7CisgIElGIHggPiAxIFRIRU4KKyAgICBPUEVOIGMy IFNDUk9MTCBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVzdDI7CisgIEVO RCBJRjsKK0VORDsKKyQkOworCitDQUxMIHBkcnN0ZXN0MigxKTsKK0NBTEwgcGRyc3Rlc3Qy KDIpOworCisKK0RST1AgVEFCTEUgZHJzX3Rlc3QxLCBkcnNfdGVzdDI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2R5bmFtaWNfcmVzdWx0X3NldHMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9keW5hbWljX3Jlc3VsdF9zZXRzLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43YjI1MjljOTllCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9keW5hbWljX3Jlc3VsdF9z ZXRzLm91dApAQCAtMCwwICsxLDEyOSBAQAorQ1JFQVRFIFRBQkxFIGRyc190ZXN0MSAoYSBp bnQpOworSU5TRVJUIElOVE8gZHJzX3Rlc3QxIFZBTFVFUyAoMSksICgyKSwgKDMpOworQ1JF QVRFIFRBQkxFIGRyc190ZXN0MiAoeCB0ZXh0LCB5IHRleHQpOworSU5TRVJUIElOVE8gZHJz X3Rlc3QyIFZBTFVFUyAoJ2FiYycsICdkZWYnKSwgKCdmb28nLCAnYmFyJyk7CistLSByZXR1 cm4gYSBjb3VwbGUgb2YgcmVzdWx0IHNldHMgZnJvbSBhIHByb2NlZHVyZQorQ1JFQVRFIFBS T0NFRFVSRSBwZHJzdGVzdDEoKQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRT IDIKK0FTICQkCitERUNMQVJFIGMxIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICog RlJPTSBkcnNfdGVzdDE7CitERUNMQVJFIGMyIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VM RUNUICogRlJPTSBkcnNfdGVzdDI7CiskJDsKK0NBTEwgcGRyc3Rlc3QxKCk7CisgYSAKKy0t LQorIDEKKyAyCisgMworKDMgcm93cykKKworICB4ICB8ICB5ICAKKy0tLS0tKy0tLS0tCisg YWJjIHwgZGVmCisgZm9vIHwgYmFyCisoMiByb3dzKQorCitDQUxMIHBkcnN0ZXN0MSgpIFxi aW5kIFxnCitFUlJPUjogIGR5bmFtaWMgcmVzdWx0IHNldHMgYXJlIG5vdCB5ZXQgc3VwcG9y dGVkIGluIGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29sCistLSByZXR1cm4gdG9vIG1hbnkgcmVz dWx0IHNldHMgZnJvbSBhIHByb2NlZHVyZQorQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDIo KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitERUNMQVJF IGMxIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVzdDE7CitE RUNMQVJFIGMyIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVz dDI7CiskJDsKK0NBTEwgcGRyc3Rlc3QyKCk7CitXQVJOSU5HOiAgYXR0ZW1wdCB0byByZXR1 cm4gdG9vIG1hbnkgcmVzdWx0IHNldHMKKyBhIAorLS0tCisgMQorIDIKKyAzCisoMyByb3dz KQorCisgIHggIHwgIHkgIAorLS0tLS0rLS0tLS0KKyBhYmMgfCBkZWYKKyBmb28gfCBiYXIK KygyIHJvd3MpCisKK0NBTEwgcGRyc3Rlc3QyKCkgXGJpbmQgXGcKK1dBUk5JTkc6ICBhdHRl bXB0IHRvIHJldHVybiB0b28gbWFueSByZXN1bHQgc2V0cworRVJST1I6ICBkeW5hbWljIHJl c3VsdCBzZXRzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBleHRlbmRlZCBxdWVyeSBwcm90 b2NvbAorLS0gbmVzdGVkIGNhbGxzCitDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MygpCitM QU5HVUFHRSBTUUwKK0RZTkFNSUMgUkVTVUxUIFNFVFMgMQorQVMgJCQKK0NBTEwgcGRyc3Rl c3QxKCk7CitERUNMQVJFIGMzIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJP TSBkcnNfdGVzdDEgV0hFUkUgYSA8IDI7CiskJDsKKy0tIChUaGUgcmVzdWx0IHNldHMgb2Yg dGhlIGNhbGxlZCBwcm9jZWR1cmUgYXJlIG5vdCByZXR1cm5lZC4pCitDQUxMIHBkcnN0ZXN0 MygpOworIGEgCistLS0KKyAxCisoMSByb3cpCisKK0NBTEwgcGRyc3Rlc3QzKCkgXGJpbmQg XGcKK0VSUk9SOiAgZHluYW1pYyByZXN1bHQgc2V0cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQg aW4gZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKy0tIGJvdGggb3V0IHBhcmFtZXRlciBhbmQg cmVzdWx0IHNldHMKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3Q0KElOT1VUIGEgdGV4dCkK K0xBTkdVQUdFIFNRTAorRFlOQU1JQyBSRVNVTFQgU0VUUyAxCitBUyAkJAorREVDTEFSRSBj NCBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gZHJzX3Rlc3QxOworU0VM RUNUIGEgfHwgYTsKKyQkOworQ0FMTCBwZHJzdGVzdDQoJ3gnKTsKKyBhICAKKy0tLS0KKyB4 eAorKDEgcm93KQorCisgYSAKKy0tLQorIDEKKyAyCisgMworKDMgcm93cykKKworQ0FMTCBw ZHJzdGVzdDQoJDEpIFxiaW5kICd5JyBcZworRVJST1I6ICBkeW5hbWljIHJlc3VsdCBzZXRz IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorLS0g dGVzdCB0aGUgbmVzdGVkIGVycm9yIGhhbmRsaW5nCitDUkVBVEUgVEFCTEUgZHJzX3Rlc3Rf ZHVtbXkgKGEgaW50KTsKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3Q1YSgpCitMQU5HVUFH RSBTUUwKK0RZTkFNSUMgUkVTVUxUIFNFVFMgMQorQVMgJCQKK0RFQ0xBUkUgYzVhIENVUlNP UiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVzdF9kdW1teTsKKyQkOwor Q1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDViKCkKK0xBTkdVQUdFIFNRTAorRFlOQU1JQyBS RVNVTFQgU0VUUyAxCitBUyAkJAorQ0FMTCBwZHJzdGVzdDVhKCk7CiskJDsKK0RST1AgVEFC TEUgZHJzX3Rlc3RfZHVtbXk7CitDQUxMIHBkcnN0ZXN0NWIoKTsKK0VSUk9SOiAgcmVsYXRp b24gImRyc190ZXN0X2R1bW15IiBkb2VzIG5vdCBleGlzdAorTElORSAyOiBERUNMQVJFIGM1 YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gZHJzX3Rlc3RfZHUuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KK1FVRVJZOiAgCitERUNMQVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNF TEVDVCAqIEZST00gZHJzX3Rlc3RfZHVtbXk7CisKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24g InBkcnN0ZXN0NWEiIGR1cmluZyBzdGFydHVwCitTUUwgZnVuY3Rpb24gInBkcnN0ZXN0NWIi IHN0YXRlbWVudCAxCitDQUxMIHBkcnN0ZXN0NWIoKSBcYmluZCBcZworRVJST1I6ICByZWxh dGlvbiAiZHJzX3Rlc3RfZHVtbXkiIGRvZXMgbm90IGV4aXN0CitMSU5FIDI6IERFQ0xBUkUg YzVhIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVzdF9kdS4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorUVVFUlk6ICAKK0RFQ0xBUkUgYzVhIENVUlNPUiBXSVRIIFJFVFVSTiBGT1Ig U0VMRUNUICogRlJPTSBkcnNfdGVzdF9kdW1teTsKKworQ09OVEVYVDogIFNRTCBmdW5jdGlv biAicGRyc3Rlc3Q1YSIgZHVyaW5nIHN0YXJ0dXAKK1NRTCBmdW5jdGlvbiAicGRyc3Rlc3Q1 YiIgc3RhdGVtZW50IDEKKy0tIGNsZWFudXAKK0RST1AgVEFCTEUgZHJzX3Rlc3QxLCBkcnNf dGVzdDI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl IGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxNWUwMTViM2Q2 Li41N2YzYzliNmNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQz LDcgKzQzLDcgQEAgdGVzdDogY29weSBjb3B5c2VsZWN0IGNvcHlkbWwgaW5zZXJ0IGluc2Vy dF9jb25mbGljdAogIyBOb3RlOiBtYW55IG9mIHRoZSB0ZXN0cyBpbiBsYXRlciBncm91cHMg ZGVwZW5kIG9uIGNyZWF0ZV9pbmRleAogIyAtLS0tLS0tLS0tCiB0ZXN0OiBjcmVhdGVfZnVu Y3Rpb25fYyBjcmVhdGVfbWlzYyBjcmVhdGVfb3BlcmF0b3IgY3JlYXRlX3Byb2NlZHVyZSBj cmVhdGVfdGFibGUgY3JlYXRlX3R5cGUKLXRlc3Q6IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5k ZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRleF9pbmNsdWRpbmdf Z2lzdAordGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3Zp ZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19naXN0IGR5bmFtaWNfcmVzdWx0 X3NldHMKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVz dHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2R5bmFtaWNfcmVzdWx0X3Nl dHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZHluYW1pY19yZXN1bHRfc2V0cy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWQ0YTkxNzQwZQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2R5bmFtaWNfcmVzdWx0X3Nl dHMuc3FsCkBAIC0wLDAgKzEsOTAgQEAKK0NSRUFURSBUQUJMRSBkcnNfdGVzdDEgKGEgaW50 KTsKK0lOU0VSVCBJTlRPIGRyc190ZXN0MSBWQUxVRVMgKDEpLCAoMiksICgzKTsKK0NSRUFU RSBUQUJMRSBkcnNfdGVzdDIgKHggdGV4dCwgeSB0ZXh0KTsKK0lOU0VSVCBJTlRPIGRyc190 ZXN0MiBWQUxVRVMgKCdhYmMnLCAnZGVmJyksICgnZm9vJywgJ2JhcicpOworCisKKy0tIHJl dHVybiBhIGNvdXBsZSBvZiByZXN1bHQgc2V0cyBmcm9tIGEgcHJvY2VkdXJlCisKK0NSRUFU RSBQUk9DRURVUkUgcGRyc3Rlc3QxKCkKK0xBTkdVQUdFIFNRTAorRFlOQU1JQyBSRVNVTFQg U0VUUyAyCitBUyAkJAorREVDTEFSRSBjMSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVD VCAqIEZST00gZHJzX3Rlc3QxOworREVDTEFSRSBjMiBDVVJTT1IgV0lUSCBSRVRVUk4gRk9S IFNFTEVDVCAqIEZST00gZHJzX3Rlc3QyOworJCQ7CisKK0NBTEwgcGRyc3Rlc3QxKCk7CitD QUxMIHBkcnN0ZXN0MSgpIFxiaW5kIFxnCisKKworLS0gcmV0dXJuIHRvbyBtYW55IHJlc3Vs dCBzZXRzIGZyb20gYSBwcm9jZWR1cmUKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDIo KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitERUNMQVJF IGMxIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVzdDE7CitE RUNMQVJFIGMyIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBkcnNfdGVz dDI7CiskJDsKKworQ0FMTCBwZHJzdGVzdDIoKTsKK0NBTEwgcGRyc3Rlc3QyKCkgXGJpbmQg XGcKKworCistLSBuZXN0ZWQgY2FsbHMKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDMo KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitDQUxMIHBk cnN0ZXN0MSgpOworREVDTEFSRSBjMyBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAq IEZST00gZHJzX3Rlc3QxIFdIRVJFIGEgPCAyOworJCQ7CisKKy0tIChUaGUgcmVzdWx0IHNl dHMgb2YgdGhlIGNhbGxlZCBwcm9jZWR1cmUgYXJlIG5vdCByZXR1cm5lZC4pCitDQUxMIHBk cnN0ZXN0MygpOworQ0FMTCBwZHJzdGVzdDMoKSBcYmluZCBcZworCisKKy0tIGJvdGggb3V0 IHBhcmFtZXRlciBhbmQgcmVzdWx0IHNldHMKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVz dDQoSU5PVVQgYSB0ZXh0KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEK K0FTICQkCitERUNMQVJFIGM0IENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJP TSBkcnNfdGVzdDE7CitTRUxFQ1QgYSB8fCBhOworJCQ7CisKK0NBTEwgcGRyc3Rlc3Q0KCd4 Jyk7CitDQUxMIHBkcnN0ZXN0NCgkMSkgXGJpbmQgJ3knIFxnCisKKworLS0gdGVzdCB0aGUg bmVzdGVkIGVycm9yIGhhbmRsaW5nCisKK0NSRUFURSBUQUJMRSBkcnNfdGVzdF9kdW1teSAo YSBpbnQpOworCitDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0NWEoKQorTEFOR1VBR0UgU1FM CitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitERUNMQVJFIGM1YSBDVVJTT1IgV0lU SCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gZHJzX3Rlc3RfZHVtbXk7CiskJDsKKworQ1JF QVRFIFBST0NFRFVSRSBwZHJzdGVzdDViKCkKK0xBTkdVQUdFIFNRTAorRFlOQU1JQyBSRVNV TFQgU0VUUyAxCitBUyAkJAorQ0FMTCBwZHJzdGVzdDVhKCk7CiskJDsKKworRFJPUCBUQUJM RSBkcnNfdGVzdF9kdW1teTsKKworQ0FMTCBwZHJzdGVzdDViKCk7CitDQUxMIHBkcnN0ZXN0 NWIoKSBcYmluZCBcZworCisKKy0tIGNsZWFudXAKKworRFJPUCBUQUJMRSBkcnNfdGVzdDEs IGRyc190ZXN0MjsKCmJhc2UtY29tbWl0OiA0ZmM1MzgxOWE0NWZlNmU3MjMzYTY5YmIyNzk1 NTdiMjA3MGRjYzQwCi0tIAoyLjM5LjIKCg== --------------FN4IYusCL5FoCuqoDepWpgNj Content-Type: text/plain; charset=UTF-8; name="v8-0002-WIP-Dynamic-result-sets-in-extended-query-protoco.patch" Content-Disposition: attachment; filename*0="v8-0002-WIP-Dynamic-result-sets-in-extended-query-protoco.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1NTJhN2ZhOWU3OTU3OGIzN2YzNzU1NzlmN2NiNDZjZDg5N2QxMDBmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAyNCBGZWIgMjAyMyAxMjoyMTo0MCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjggMi8yXSBXSVA6IER5bmFtaWMgcmVzdWx0IHNldHMgaW4gZXh0ZW5kZWQg cXVlcnkgcHJvdG9jb2wKClRoaXMgaXMgY3VycmVudGx5IGJyb2tlbiBkdWUgdG8vc2luY2Ug YWNiN2U0ZWI2Yi4KClRPRE86IGNvbnNpZGVyIG1pbm9yIHByb3RvY29sIHZlcnNpb24gYnVt cCAoMy4xKQotLS0KIGRvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAg ICAgICB8IDE5ICsrKysrKysrKysrCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAg ICAgICAgICAgICAgICAgfCAzMiArKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC90 Y29wL3BxdWVyeS5jICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrCiBzcmMvaW5jbHVk ZS91dGlscy9wb3J0YWwuaCAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgICAgICAgICAgIHwgIDYgKystLQogLi4uL3Jl Z3Jlc3MvZXhwZWN0ZWQvZHluYW1pY19yZXN1bHRfc2V0cy5vdXQgIHwgMzEgKysrKysrKysr KysrKysrLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9j L3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKaW5kZXggOTNmYzcxNjdkNC4uZWM2MDViMTJiNSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3Byb3RvY29sLnNnbWwKQEAgLTk1OSw2ICs5NTksMjUgQEAgPHRpdGxlPkV4dGVuZGVk IFF1ZXJ5PC90aXRsZT4KICAgICBhbiBlbXB0eSBxdWVyeSBzdHJpbmcpLCBFcnJvclJlc3Bv bnNlLCBvciBQb3J0YWxTdXNwZW5kZWQuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAg IEV4ZWN1dGluZyBhIHBvcnRhbCBtYXkgZ2l2ZSByaXNlIHRvIGEgPGZpcnN0dGVybT5keW5h bWljIHJlc3VsdCBzZXQKKyAgICBzZXF1ZW5jZTwvZmlyc3R0ZXJtPi4gIFRoYXQgbWVhbnMg dGhlIGNvbW1hbmQgY29udGFpbmVkIGluIHRoZSBwb3J0YWwKKyAgICBjcmVhdGVkIGFkZGl0 aW9uYWwgcmVzdWx0IHNldHMgYmV5b25kIHdoYXQgaXQgbm9ybWFsbHkgcmV0dXJucy4gIChU aGUKKyAgICB0eXBpY2FsIGV4YW1wbGUgaXMgY2FsbGluZyBhIHN0b3JlZCBwcm9jZWR1cmUg dGhhdCBjcmVhdGVzIGR5bmFtaWMgcmVzdWx0CisgICAgc2V0cy4pICBEeW5hbWljIHJlc3Vs dCBzZXRzIGFyZSBpc3N1ZWQgYWZ0ZXIgd2hhdGV2ZXIgcmVzcG9uc2UgdGhlIG1haW4KKyAg ICBjb21tYW5kIGlzc3VlZC4gIEVhY2ggZHluYW1pYyByZXN1bHQgc2V0IGJlZ2lucyB3aXRo IGEgUm93RGVzY3JpcHRpb24KKyAgICBtZXNzYWdlIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9y ZSBEYXRhUm93IG1lc3NhZ2VzLiAgKFNpbmNlLCBhcyBleHBsYWluZWQKKyAgICBhYm92ZSwg YW4gRXhlY3V0ZSBtZXNzYWdlIG5vcm1hbGx5IGRvZXMgbm90IHJlc3BvbmQgd2l0aCBhIFJv d0Rlc2NyaXB0aW9uLAorICAgIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBmaXJzdCBSb3dEZXNj cmlwdGlvbiBtYXJrcyB0aGUgZW5kIG9mIHRoZSBwcmltYXJ5CisgICAgcmVzdWx0IHNldCBv ZiB0aGUgcG9ydGFsIGFuZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdCBkeW5hbWljIHJl c3VsdAorICAgIHNldC4pICBUaGUgQ29tbWFuZENvbXBsZXRlIG1lc3NhZ2UgdGhhdCBjb25j bHVkZXMgdGhlIEV4ZWN1dGUgbWVzc2FnZQorICAgIHJlc3BvbnNlIGZvbGxvd3MgPGVtcGhh c2lzPmFmdGVyPC9lbXBoYXNpcz4gYWxsIGR5bmFtaWMgcmVzdWx0IHNldHMuICBOb3RlCisg ICAgdGhhdCBkeW5hbWljIHJlc3VsdCBzZXRzIGNhbm5vdCwgYnkgdGhlaXIgbmF0dXJlLCBi ZSBkZWNyaWJlZCBwcmlvciB0byB0aGUKKyAgICBleGVjdXRpb24gb2YgdGhlIHBvcnRhbC4g IE11bHRpcGxlIGV4ZWN1dGlvbnMgb2YgdGhlIHNhbWUgcHJlcGFyZWQKKyAgICBzdGF0ZW1l bnQgY291bGQgcmVzdWx0IGluIGR5bmFtaWMgcmVzdWx0IHNldHMgd2l0aCBkaWZmZXJlbnQg cm93CisgICAgZGVzY3JpcHRpb25zIGJlaW5nIHJldHVybmVkLgorICAgPC9wYXJhPgorCiAg ICA8cGFyYT4KICAgICBBdCBjb21wbGV0aW9uIG9mIGVhY2ggc2VyaWVzIG9mIGV4dGVuZGVk LXF1ZXJ5IG1lc3NhZ2VzLCB0aGUgZnJvbnRlbmQKICAgICBzaG91bGQgaXNzdWUgYSBTeW5j IG1lc3NhZ2UuICBUaGlzIHBhcmFtZXRlcmxlc3MgbWVzc2FnZSBjYXVzZXMgdGhlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKaW5kZXggOThhYzlhYTAxMi4uODlkYTVjNzUxMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtMjA4Niw2ICsyMDg2LDcgQEAgZXhlY19leGVjdXRlX21lc3NhZ2UoY29u c3QgY2hhciAqcG9ydGFsX25hbWUsIGxvbmcgbWF4X3Jvd3MpCiAJY29uc3QgY2hhciAqc291 cmNlVGV4dDsKIAljb25zdCBjaGFyICpwcmVwU3RtdE5hbWU7CiAJUGFyYW1MaXN0SW5mbyBw b3J0YWxQYXJhbXM7CisJTGlzdENlbGwgICAqbGM7CiAJYm9vbAkJc2F2ZV9sb2dfc3RhdGVt ZW50X3N0YXRzID0gbG9nX3N0YXRlbWVudF9zdGF0czsKIAlib29sCQlpc194YWN0X2NvbW1h bmQ7CiAJYm9vbAkJZXhlY3V0ZV9pc19mZXRjaDsKQEAgLTIyMjYsMTAgKzIyMjcsMzMgQEAg ZXhlY19leGVjdXRlX21lc3NhZ2UoY29uc3QgY2hhciAqcG9ydGFsX25hbWUsIGxvbmcgbWF4 X3Jvd3MpCiAJCQkJCQkgIHJlY2VpdmVyLAogCQkJCQkJICAmcWMpOwogCi0JaWYgKEdldFJl dHVybmFibGVDdXJzb3JzKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJZXJybXNnKCJkeW5hbWljIHJlc3Vs dCBzZXRzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBleHRlbmRlZCBxdWVyeSBwcm90b2Nv bCIpKTsKKwkvKgorCSAqIFJ1biBwb3J0YWxzIGZvciBkeW5hbWljIHJlc3VsdCBzZXRzLgor CSAqLworCWZvcmVhY2ggKGxjLCBHZXRSZXR1cm5hYmxlQ3Vyc29ycygpKQorCXsKKwkJUG9y dGFsIGR5bl9wb3J0YWwgPSBsZmlyc3QobGMpOworCisJCWlmIChkZXN0ID09IERlc3RSZW1v dGVFeGVjdXRlKQorCQkJU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKHJlY2VpdmVyLCBk eW5fcG9ydGFsKTsKKworCQlQb3J0YWxTZXRSZXN1bHRGb3JtYXQoZHluX3BvcnRhbCwgMSwg JnBvcnRhbC0+ZHluYW1pY19mb3JtYXQpOworCisJCVNlbmRSb3dEZXNjcmlwdGlvbk1lc3Nh Z2UoJnJvd19kZXNjcmlwdGlvbl9idWYsCisJCQkJCQkJCSAgZHluX3BvcnRhbC0+dHVwRGVz YywKKwkJCQkJCQkJICBGZXRjaFBvcnRhbFRhcmdldExpc3QoZHluX3BvcnRhbCksCisJCQkJ CQkJCSAgZHluX3BvcnRhbC0+Zm9ybWF0cyk7CisKKwkJUG9ydGFsUnVuKGR5bl9wb3J0YWws CisJCQkJICBGRVRDSF9BTEwsCisJCQkJICB0cnVlLAorCQkJCSAgdHJ1ZSwKKwkJCQkgIHJl Y2VpdmVyLAorCQkJCSAgcmVjZWl2ZXIsCisJCQkJICBOVUxMKTsKKworCQlQb3J0YWxEcm9w KGR5bl9wb3J0YWwsIGZhbHNlKTsKKwl9CiAKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2 ZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYwppbmRleCA1ZjAyNDhhY2M1Li42NDY5OTQwOTM1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rj b3AvcHF1ZXJ5LmMKQEAgLTY0MSw2ICs2NDEsOCBAQCBQb3J0YWxTZXRSZXN1bHRGb3JtYXQo UG9ydGFsIHBvcnRhbCwgaW50IG5Gb3JtYXRzLCBpbnQxNiAqZm9ybWF0cykKIAkJCQkJIGVy cm1zZygiYmluZCBtZXNzYWdlIGhhcyAlZCByZXN1bHQgZm9ybWF0cyBidXQgcXVlcnkgaGFz ICVkIGNvbHVtbnMiLAogCQkJCQkJCW5Gb3JtYXRzLCBuYXR0cykpKTsKIAkJbWVtY3B5KHBv cnRhbC0+Zm9ybWF0cywgZm9ybWF0cywgbmF0dHMgKiBzaXplb2YoaW50MTYpKTsKKworCQlw b3J0YWwtPmR5bmFtaWNfZm9ybWF0ID0gMDsKIAl9CiAJZWxzZSBpZiAobkZvcm1hdHMgPiAw KQogCXsKQEAgLTY0OSwxMiArNjUxLDE2IEBAIFBvcnRhbFNldFJlc3VsdEZvcm1hdChQb3J0 YWwgcG9ydGFsLCBpbnQgbkZvcm1hdHMsIGludDE2ICpmb3JtYXRzKQogCiAJCWZvciAoaSA9 IDA7IGkgPCBuYXR0czsgaSsrKQogCQkJcG9ydGFsLT5mb3JtYXRzW2ldID0gZm9ybWF0MTsK KworCQlwb3J0YWwtPmR5bmFtaWNfZm9ybWF0ID0gZm9ybWF0MTsKIAl9CiAJZWxzZQogCXsK IAkJLyogdXNlIGRlZmF1bHQgZm9ybWF0IGZvciBhbGwgY29sdW1ucyAqLwogCQlmb3IgKGkg PSAwOyBpIDwgbmF0dHM7IGkrKykKIAkJCXBvcnRhbC0+Zm9ybWF0c1tpXSA9IDA7CisKKwkJ cG9ydGFsLT5keW5hbWljX2Zvcm1hdCA9IDA7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9wb3J0YWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3BvcnRhbC5oCmlu ZGV4IDZmMDQzNjJkZmUuLjU1NDA2Yjg2NTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL3BvcnRhbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3BvcnRhbC5oCkBAIC0xNzAs NiArMTcwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUG9ydGFsRGF0YQogCVR1cGxlRGVzYwl0dXBE ZXNjOwkJLyogZGVzY3JpcHRvciBmb3IgcmVzdWx0IHR1cGxlcyAqLwogCS8qIGFuZCB0aGVz ZSBhcmUgdGhlIGZvcm1hdCBjb2RlcyB0byB1c2UgZm9yIHRoZSBjb2x1bW5zOiAqLwogCWlu dDE2CSAgICpmb3JtYXRzOwkJLyogYSBmb3JtYXQgY29kZSBmb3IgZWFjaCBjb2x1bW4gKi8K KwkvKiBGb3JtYXQgY29kZSBmb3IgZHluYW1pYyByZXN1bHQgc2V0cyAqLworCWludDE2CQlk eW5hbWljX2Zvcm1hdDsKIAogCS8qCiAJICogT3V0ZXJtb3N0IEFjdGl2ZVNuYXBzaG90IGZv ciBleGVjdXRpb24gb2YgdGhlIHBvcnRhbCdzIHF1ZXJpZXMuICBGb3IKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMKaW5kZXggOGFiNmE4ODQxNi4uODYzYTA5Y2Y3NCAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKKysrIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKQEAgLTMyMCwxMCArMzIwLDggQEAg cHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCXsKIAkJCQkJCS8qCiAJCQkJCQkg KiBBIG5ldyAnVCcgbWVzc2FnZSBpcyB0cmVhdGVkIGFzIHRoZSBzdGFydCBvZgotCQkJCQkJ ICogYW5vdGhlciBQR3Jlc3VsdC4gIChJdCBpcyBub3QgY2xlYXIgdGhhdCB0aGlzIGlzCi0J CQkJCQkgKiByZWFsbHkgcG9zc2libGUgd2l0aCB0aGUgY3VycmVudCBiYWNrZW5kLikgV2Ug c3RvcAotCQkJCQkJICogcGFyc2luZyB1bnRpbCB0aGUgYXBwbGljYXRpb24gYWNjZXB0cyB0 aGUgY3VycmVudAotCQkJCQkJICogcmVzdWx0LgorCQkJCQkJICogYW5vdGhlciBQR3Jlc3Vs dC4gIFdlIHN0b3AgcGFyc2luZyB1bnRpbCB0aGUKKwkJCQkJCSAqIGFwcGxpY2F0aW9uIGFj Y2VwdHMgdGhlIGN1cnJlbnQgcmVzdWx0LgogCQkJCQkJICovCiAJCQkJCQljb25uLT5hc3lu Y1N0YXR1cyA9IFBHQVNZTkNfUkVBRFk7CiAJCQkJCQlyZXR1cm47CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2R5bmFtaWNfcmVzdWx0X3NldHMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9keW5hbWljX3Jlc3VsdF9zZXRzLm91dAppbmRleCA3 YjI1MjljOTllLi4zNTg0ZjFlYzhjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2R5bmFtaWNfcmVzdWx0X3NldHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZHluYW1pY19yZXN1bHRfc2V0cy5vdXQKQEAgLTI1LDcgKzI1LDE0IEBAIENB TEwgcGRyc3Rlc3QxKCk7CiAoMiByb3dzKQogCiBDQUxMIHBkcnN0ZXN0MSgpIFxiaW5kIFxn Ci1FUlJPUjogIGR5bmFtaWMgcmVzdWx0IHNldHMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGlu IGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29sCisgYSAKKy0tLQorIDEKKyAyCisgMworKDMgcm93 cykKKworc2VydmVyIHNlbnQgZGF0YSAoIkQiIG1lc3NhZ2UpIHdpdGhvdXQgcHJpb3Igcm93 IGRlc2NyaXB0aW9uICgiVCIgbWVzc2FnZSkKIC0tIHJldHVybiB0b28gbWFueSByZXN1bHQg c2V0cyBmcm9tIGEgcHJvY2VkdXJlCiBDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MigpCiBM QU5HVUFHRSBTUUwKQEAgLTUxLDcgKzU4LDE0IEBAIFdBUk5JTkc6ICBhdHRlbXB0IHRvIHJl dHVybiB0b28gbWFueSByZXN1bHQgc2V0cwogCiBDQUxMIHBkcnN0ZXN0MigpIFxiaW5kIFxn CiBXQVJOSU5HOiAgYXR0ZW1wdCB0byByZXR1cm4gdG9vIG1hbnkgcmVzdWx0IHNldHMKLUVS Uk9SOiAgZHluYW1pYyByZXN1bHQgc2V0cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgaW4gZXh0 ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyBhIAorLS0tCisgMQorIDIKKyAzCisoMyByb3dzKQor CitzZXJ2ZXIgc2VudCBkYXRhICgiRCIgbWVzc2FnZSkgd2l0aG91dCBwcmlvciByb3cgZGVz Y3JpcHRpb24gKCJUIiBtZXNzYWdlKQogLS0gbmVzdGVkIGNhbGxzCiBDUkVBVEUgUFJPQ0VE VVJFIHBkcnN0ZXN0MygpCiBMQU5HVUFHRSBTUUwKQEAgLTY4LDcgKzgyLDExIEBAIENBTEwg cGRyc3Rlc3QzKCk7CiAoMSByb3cpCiAKIENBTEwgcGRyc3Rlc3QzKCkgXGJpbmQgXGcKLUVS Uk9SOiAgZHluYW1pYyByZXN1bHQgc2V0cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgaW4gZXh0 ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyBhIAorLS0tCisgMQorKDEgcm93KQorCiAtLSBib3Ro IG91dCBwYXJhbWV0ZXIgYW5kIHJlc3VsdCBzZXRzCiBDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0 ZXN0NChJTk9VVCBhIHRleHQpCiBMQU5HVUFHRSBTUUwKQEAgLTkxLDcgKzEwOSwxMiBAQCBD QUxMIHBkcnN0ZXN0NCgneCcpOwogKDMgcm93cykKIAogQ0FMTCBwZHJzdGVzdDQoJDEpIFxi aW5kICd5JyBcZwotRVJST1I6ICBkeW5hbWljIHJlc3VsdCBzZXRzIGFyZSBub3QgeWV0IHN1 cHBvcnRlZCBpbiBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorIGEgIAorLS0tLQorIHl5Ciso MSByb3cpCisKK3NlcnZlciBzZW50IGRhdGEgKCJEIiBtZXNzYWdlKSB3aXRob3V0IHByaW9y IHJvdyBkZXNjcmlwdGlvbiAoIlQiIG1lc3NhZ2UpCiAtLSB0ZXN0IHRoZSBuZXN0ZWQgZXJy b3IgaGFuZGxpbmcKIENSRUFURSBUQUJMRSBkcnNfdGVzdF9kdW1teSAoYSBpbnQpOwogQ1JF QVRFIFBST0NFRFVSRSBwZHJzdGVzdDVhKCkKLS0gCjIuMzkuMgoK --------------FN4IYusCL5FoCuqoDepWpgNj--