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 1oQBz7-0004ep-LK for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Aug 2022 18:17:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oQBz4-00064s-TV for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Aug 2022 18:17:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQBz3-00063Y-N8 for pgsql-hackers@lists.postgresql.org; Mon, 22 Aug 2022 18:17:10 +0000 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oQByw-0006Si-73 for pgsql-hackers@postgresql.org; Mon, 22 Aug 2022 18:17:09 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 18A6532009E7 for ; Mon, 22 Aug 2022 14:16:59 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 22 Aug 2022 14:16:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :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=1661192218; x= 1661278618; bh=c1u8KWMgfn8/QR9h//rQjKAxrFSSEyT5CIn21CjE1aE=; b=I KWTuNHk+gYaaBuCf2WQG5FQ8tXmQNIeepSbg9u5MKdvFFq7HWn4dErSYuUeHDTma utuyNXpiGquVgHYYpI2Xu6wnI5Piej2QTTzxCV+Pzu45XxQnYcIzvLTvODzrk1Mi dlF4clSBP+vM8yU9ih02H9D83SkFs9GFgrnZZlvooR7hWkNFP30q5/QyKC6YriGa US0cgyiFHnMtiia5/xO3/zsfWwPbZKqiKl8joudfDIHg0tQ7loQ1L+wlkdT7yZPK OFBCgPLrv/YGpOz+EPzNOSn6wOiVRVzySLiNEBHR8LE9huKIPdlmOr1gE4eYYjBE Jo+21ynzdR4YTMuBnoHGw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdeijedguddvgecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfhuffvsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeeijeevieduueehudehuddtffeijeejteeijeehhfevueeftdffjeeilefhleek ffenucffohhmrghinhepphhoshhtghhrvghsqhhlrdhorhhgnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgr uhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 22 Aug 2022 14:16:57 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------wNqj2HgBTRycqm1nmCJSSnVe" Message-ID: Date: Mon, 22 Aug 2022 20:16:56 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US From: Peter Eisentraut Subject: Change pfree to accept NULL argument 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. --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Per discussion in [0], here is a patch set that allows pfree() to accept a NULL argument, like free() does. Also, a patch that removes the now-unnecessary null pointer checks before calling pfree(). And a few patches that do the same for some other functions that I found around. (The one with FreeDir() is perhaps a bit arguable, since FreeDir() wraps closedir() which does *not* accept NULL arguments. Also, neither FreeFile() nor the underlying fclose() accept NULL.) [0]: https://www.postgresql.org/message-id/1074830.1655442689@sss.pgh.pa.us --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; name="0001-Remove-unnecessary-casts-in-free-and-pfree.patch" Content-Disposition: attachment; filename="0001-Remove-unnecessary-casts-in-free-and-pfree.patch" Content-Transfer-Encoding: base64 RnJvbSBlODA0ODRhOWQzYTY4OTc5ODRhMmJjMWY4MGRmNTVkNTkwZTJlODViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNjo1MTo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMS81XSBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMgaW4gZnJlZSgpIGFuZCBw ZnJlZSgpCgotLS0KIGNvbnRyaWIvc2VwZ3NxbC9sYWJlbC5jICAgICAgICB8IDggKysrKy0t LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYyB8IDYgKysrLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb250cmliL3NlcGdzcWwvbGFiZWwuYyBiL2NvbnRyaWIvc2VwZ3NxbC9sYWJlbC5jCmlu ZGV4IGU0Yzk4YjdlYWUuLjZlN2MwZDdjZmYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc2VwZ3Nx bC9sYWJlbC5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9sYWJlbC5jCkBAIC02NjIsMjggKzY2 MiwyOCBAQCBxdW90ZV9vYmplY3RfbmFtZShjb25zdCBjaGFyICpzcmMxLCBjb25zdCBjaGFy ICpzcmMyLAogCQl0ZW1wID0gcXVvdGVfaWRlbnRpZmllcihzcmMxKTsKIAkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZygmcmVzdWx0LCB0ZW1wKTsKIAkJaWYgKHNyYzEgIT0gdGVtcCkKLQkJ CXBmcmVlKCh2b2lkICopIHRlbXApOworCQkJcGZyZWUodGVtcCk7CiAJfQogCWlmIChzcmMy KQogCXsKIAkJdGVtcCA9IHF1b3RlX2lkZW50aWZpZXIoc3JjMik7CiAJCWFwcGVuZFN0cmlu Z0luZm8oJnJlc3VsdCwgIi4lcyIsIHRlbXApOwogCQlpZiAoc3JjMiAhPSB0ZW1wKQotCQkJ cGZyZWUoKHZvaWQgKikgdGVtcCk7CisJCQlwZnJlZSh0ZW1wKTsKIAl9CiAJaWYgKHNyYzMp CiAJewogCQl0ZW1wID0gcXVvdGVfaWRlbnRpZmllcihzcmMzKTsKIAkJYXBwZW5kU3RyaW5n SW5mbygmcmVzdWx0LCAiLiVzIiwgdGVtcCk7CiAJCWlmIChzcmMzICE9IHRlbXApCi0JCQlw ZnJlZSgodm9pZCAqKSB0ZW1wKTsKKwkJCXBmcmVlKHRlbXApOwogCX0KIAlpZiAoc3JjNCkK IAl7CiAJCXRlbXAgPSBxdW90ZV9pZGVudGlmaWVyKHNyYzQpOwogCQlhcHBlbmRTdHJpbmdJ bmZvKCZyZXN1bHQsICIuJXMiLCB0ZW1wKTsKIAkJaWYgKHNyYzQgIT0gdGVtcCkKLQkJCXBm cmVlKCh2b2lkICopIHRlbXApOworCQkJcGZyZWUodGVtcCk7CiAJfQogCXJldHVybiByZXN1 bHQuZGF0YTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3Iu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYwppbmRleCAwOGZkN2UxMjY0Li42 YWU2ZmMxNTU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jCkBAIC0yNDAsNyArMjQwLDcg QEAgaW50ZXJuYWxfbG9hZF9saWJyYXJ5KGNvbnN0IGNoYXIgKmxpYm5hbWUpCiAJCWlmIChm aWxlX3NjYW5uZXItPmhhbmRsZSA9PSBOVUxMKQogCQl7CiAJCQlsb2FkX2Vycm9yID0gZGxl cnJvcigpOwotCQkJZnJlZSgoY2hhciAqKSBmaWxlX3NjYW5uZXIpOworCQkJZnJlZShmaWxl X3NjYW5uZXIpOwogCQkJLyogZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MgbWlnaHQgbm90IGJl IGFwcHJvcHJpYXRlIGhlcmU/ICovCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29k ZV9mb3JfZmlsZV9hY2Nlc3MoKSwKQEAgLTI2Myw3ICsyNjMsNyBAQCBpbnRlcm5hbF9sb2Fk X2xpYnJhcnkoY29uc3QgY2hhciAqbGlibmFtZSkKIAogCQkJCS8qIHRyeSB0byBjbG9zZSBs aWJyYXJ5ICovCiAJCQkJZGxjbG9zZShmaWxlX3NjYW5uZXItPmhhbmRsZSk7Ci0JCQkJZnJl ZSgoY2hhciAqKSBmaWxlX3NjYW5uZXIpOworCQkJCWZyZWUoZmlsZV9zY2FubmVyKTsKIAog CQkJCS8qIGlzc3VlIHN1aXRhYmxlIGNvbXBsYWludCAqLwogCQkJCWluY29tcGF0aWJsZV9t b2R1bGVfZXJyb3IobGlibmFtZSwgJm1vZHVsZV9tYWdpY19kYXRhKTsKQEAgLTI3Myw3ICsy NzMsNyBAQCBpbnRlcm5hbF9sb2FkX2xpYnJhcnkoY29uc3QgY2hhciAqbGlibmFtZSkKIAkJ ewogCQkJLyogdHJ5IHRvIGNsb3NlIGxpYnJhcnkgKi8KIAkJCWRsY2xvc2UoZmlsZV9zY2Fu bmVyLT5oYW5kbGUpOwotCQkJZnJlZSgoY2hhciAqKSBmaWxlX3NjYW5uZXIpOworCQkJZnJl ZShmaWxlX3NjYW5uZXIpOwogCQkJLyogY29tcGxhaW4gKi8KIAkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCShlcnJtc2coImluY29tcGF0aWJsZSBsaWJyYXJ5IFwiJXNcIjogbWlzc2luZyBt YWdpYyBibG9jayIsCi0tIAoyLjM3LjEKCg== --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; name="0002-Change-pfree-to-accept-NULL-argument.patch" Content-Disposition: attachment; filename="0002-Change-pfree-to-accept-NULL-argument.patch" Content-Transfer-Encoding: base64 RnJvbSBmNWVlYTZkMmYxZThhOGVkODFjZjE3N2NlZjMyMGUwNDFiYmZmOTBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNjo1MTo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMi81XSBDaGFuZ2UgcGZyZWUgdG8gYWNjZXB0IE5VTEwgYXJndW1lbnQKCi0t LQogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9SRUFETUUgfCA2ICsrKysrLQogc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9tY3h0LmMgfCA3ICsrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9tbWdyL1JFQURNRSBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvUkVBRE1FCmlu ZGV4IDIyMWI0YmQzNDMuLmU1NTJjNmFkYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL21tZ3IvUkVBRE1FCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvUkVBRE1FCkBA IC02Niw3ICs2NiwxMSBAQCBwb2ludGVyLCBidXQgYSB2YWxpZCBjaHVuayBvZiB3aGljaCBu byBieXRlcyBtYXkgYmUgdXNlZC4gIEhvd2V2ZXIsIHRoZQogY2h1bmsgbWlnaHQgbGF0ZXIg YmUgcmVwYWxsb2MnZCBsYXJnZXI7IGl0IGNhbiBhbHNvIGJlIHBmcmVlJ2Qgd2l0aG91dAog ZXJyb3IuICBTaW1pbGFybHksIHJlcGFsbG9jIGFsbG93cyByZWFsbG9jJ2luZyB0byB6ZXJv IHNpemUuCiAKLSogcGZyZWUgYW5kIHJlcGFsbG9jIGRvIG5vdCBhY2NlcHQgYSBOVUxMIHBv aW50ZXIuICBUaGlzIGlzIGludGVudGlvbmFsLgorKiByZXBhbGxvYyBkb2VzIG5vdCBhY2Nl cHQgYSBOVUxMIHBvaW50ZXIuICBUaGlzIGlzIGludGVudGlvbmFsLiAgKEFzCittZW50aW9u ZWQgYWJvdmUsIHJlcGFsbG9jIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY3VycmVudCBtZW1v cnkKK2NvbnRleHQuICBCdXQgdGhlbiBpdCBuZWVkcyB0byBrbm93IHdoaWNoIG1lbW9yeSBj b250ZXh0IHRvIGRvIHRoZQorYWxsb2NhdGlvbiBpbi4gIFNvIHRoZSBmaXJzdCBhbGxvY2F0 aW9uIGhhcyB0byBiZSBkb25lIG91dHNpZGUKK3JlcGFsbG9jLikKIAogCiBUaGUgQ3VycmVu dCBNZW1vcnkgQ29udGV4dApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9t Y3h0LmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQuYwppbmRleCBlMTJiZTFiOWJk Li5kODVlOTYxYzFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQuYwpAQCAtMTE3NCw3ICsxMTc0 LDEyIEBAIHBhbGxvY19leHRlbmRlZChTaXplIHNpemUsIGludCBmbGFncykKIHZvaWQKIHBm cmVlKHZvaWQgKnBvaW50ZXIpCiB7Ci0JTWVtb3J5Q29udGV4dCBjb250ZXh0ID0gR2V0TWVt b3J5Q2h1bmtDb250ZXh0KHBvaW50ZXIpOworCU1lbW9yeUNvbnRleHQgY29udGV4dDsKKwor CWlmICghcG9pbnRlcikKKwkJcmV0dXJuOworCisJY29udGV4dCA9IEdldE1lbW9yeUNodW5r Q29udGV4dChwb2ludGVyKTsKIAogCWNvbnRleHQtPm1ldGhvZHMtPmZyZWVfcChjb250ZXh0 LCBwb2ludGVyKTsKIAlWQUxHUklORF9NRU1QT09MX0ZSRUUoY29udGV4dCwgcG9pbnRlcik7 Ci0tIAoyLjM3LjEKCg== --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; name="0003-Remove-no-longer-needed-null-pointer-checks-before-p.patch" Content-Disposition: attachment; filename*0="0003-Remove-no-longer-needed-null-pointer-checks-before-p.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyMjlmY2MxYWRhODJjNDZmZmU4MGFiNjA3NzkzMTZkZTRlMjczODMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNjo1MTo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMy81XSBSZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBudWxsIHBvaW50ZXIgY2hl Y2tzIGJlZm9yZQogcGZyZWUoKQoKLS0tCiBjb250cmliL2Jsb29tL2Jsc2Nhbi5jICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNiArLQogY29udHJpYi9kYmxpbmsvZGJsaW5rLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgIDkgKy0KIGNvbnRyaWIvbG8vbG8uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBjb250cmliL3BhZ2VpbnNwZWN0L2hlYXBm dW5jcy5jICAgICAgICAgICAgICAgfCAgNiArLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9w Z19zdGF0X3N0YXRlbWVudHMuYyAgIHwgIDYgKy0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX2dp c3QuYyAgICAgICAgICAgICAgICAgICB8ICA5ICstCiBjb250cmliL3BnY3J5cHRvL3B4LmMg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogY29udHJpYi9wb3N0Z3Jlc19mZHcv Y29ubmVjdGlvbi5jICAgICAgICAgICAgIHwgIDMgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3 L3Bvc3RncmVzX2Zkdy5jICAgICAgICAgICB8ICAzICstCiBjb250cmliL3NlcGdzcWwvbGFi ZWwuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogY29udHJpYi9zZXBnc3FsL3Vh dmMuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIGNvbnRyaWIvdGFibGVmdW5j L3RhYmxlZnVuYy5jICAgICAgICAgICAgICAgICB8IDEwICstLQogY29udHJpYi94bWwyL3hw YXRoLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAgICB8ICA5ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQv YWNjZXNzL2dpbi9naW5kYXRhcGFnZS5jICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9naW4vZ2luZ2V0LmMgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYyAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2dpbi9naW52YWN1dW0uYyAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICAgICAgICB8ICAzICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICAgICAgIHwgMTIgKy0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMyArLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgICAgICAgICAgICAgIHwgIDYgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICAgICAgICB8IDE1ICsrLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMgICAgICAgICAgICB8ICA5ICst CiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3NjYW4uYyAgICAgICAgICAgfCAzMyAr Ky0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyAgICAgICAg fCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyAgICAgICAg IHwgIDMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAg ICB8IDE1ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAg ICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMg ICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAg ICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyAgICAg ICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5j ICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAg ICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAg ICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jICAg ICAgICAgICAgICAgIHwgMTIgKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjVHVwbGVz LmMgICAgICAgICAgICAgfCAxOCArKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlR2F0 aGVyLmMgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUdh dGhlck1lcmdlLmMgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVU aWRzY2FuLmMgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9zcGku YyAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvdHN0 b3JlUmVjZWl2ZXIuYyAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXQuYyAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9saWJwcS9hdXRo LXNjcmFtLmMgICAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvbGlicHEvYXV0 aC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2xpYnBxL2Jl LXNlY3VyZS1vcGVuc3NsLmMgICAgICAgICB8IDE0ICstLQogc3JjL2JhY2tlbmQvbm9kZXMv Yml0bWFwc2V0LmMgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL25vZGVz L3RpZGJpdG1hcC5jICAgICAgICAgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL3NjYW4ubCAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAgICAgICB8IDE4ICsrLS0KIHNyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMgICAgICAgICB8ICAzICstCiBzcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jICAgICAgICAgICAgfCAgOSArLQogLi4uL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jICAgICAgIHwgMzMgKysrLS0tLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYyAgIHwgMTIgKy0tCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICAgICAgIHwgIDcgKy0K IHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2ZyZWVsaXN0LmMgICAgICAgICB8ICA0ICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1fbXEuYyAgICAgICAgICAgICAgfCAgMyAr LQogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyAgICAgICAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8ICAz ICstCiBzcmMvYmFja2VuZC90c2VhcmNoL2RpY3RfdGhlc2F1cnVzLmMgICAgICAgICAgfCAg OSArLQogc3JjL2JhY2tlbmQvdHNlYXJjaC9zcGVsbC5jICAgICAgICAgICAgICAgICAgIHwg IDYgKy0KIHNyYy9iYWNrZW5kL3RzZWFyY2gvdG9fdHNhbnkuYyAgICAgICAgICAgICAgICB8 ICAzICstCiBzcmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJfZGVmLmMgICAgICAgICAgICAg fCAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3NobWVtLmMgICAg IHwgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYl91dGlsLmMgICAgICAgICAg ICB8ICA2ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfc2Nhbi5sICAgICAg ICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xpa2Vfc3VwcG9ydC5jICAgICAg ICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgICAgICAgICAg ICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgICAgICAg ICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMgICAg ICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9wYXJzZXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAg ICAgICAgICAgfCAgOSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2F0dG9wdGNhY2hl LmMgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YyAgICAgICAgICAgfCAgOSArLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUu YyAgICAgICAgICAgIHwgNDUgKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv c3BjY2FjaGUuYyAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3RzX2NhY2hlLmMgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNo ZS90eXBjYWNoZS5jICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvZXJy b3IvZWxvZy5jICAgICAgICAgICAgICAgIHwgODUgKysrKysrLS0tLS0tLS0tLS0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL21iL3N0cmluZ2luZm9fbWIuYyAgICAgICAgICB8ICAzICstCiBz cmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy1maWxlLmwgICAgICAgICAgICAgfCAyMSArKy0t LQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL3Jlc293bmVyL3Jlc293bmVyLmMgICAgICAgICB8ICAz ICstCiBzcmMvYmFja2VuZC91dGlscy9zb3J0L2xvZ3RhcGUuYyAgICAgICAgICAgICAgfCAg OSArLQogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC9zaGFyZWR0dXBsZXN0b3JlLmMgICAgIHwg IDMgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BhcnNlX21hbmlmZXN0LmMgICAgICB8 IDQyICsrKy0tLS0tLQogc3JjL2NvbW1vbi9jb21wcmVzc2lvbi5jICAgICAgICAgICAgICAg ICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgg ICAgICAgICB8ICAzICstCiBzcmMvcGwvcGxwZXJsL3BscGVybC5jICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5jICAgICAgICAg ICAgICAgICAgIHwgIDYgKy0KIHNyYy9wbC9wbHB5dGhvbi9wbHB5X2V4ZWMuYyAgICAgICAg ICAgICAgICAgICB8ICA5ICstCiBzcmMvcGwvcGxweXRob24vcGxweV9wbHB5bW9kdWxlLmMg ICAgICAgICAgICAgfCAgMyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMgICAg ICAgICAgICAgICAgIHwgIDYgKy0KIC4uLi9tb2R1bGVzL3Rlc3Rfb2F0X2hvb2tzL3Rlc3Rf b2F0X2hvb2tzLmMgICB8ICA2ICstCiAxMDEgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlv bnMoKyksIDUyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2Jsb29tL2Js c2Nhbi5jIGIvY29udHJpYi9ibG9vbS9ibHNjYW4uYwppbmRleCA0YzkyMzQ4OGJkLi45NDVk MzdkMzE2IDEwMDY0NAotLS0gYS9jb250cmliL2Jsb29tL2Jsc2Nhbi5jCisrKyBiL2NvbnRy aWIvYmxvb20vYmxzY2FuLmMKQEAgLTUwLDggKzUwLDcgQEAgYmxyZXNjYW4oSW5kZXhTY2Fu RGVzYyBzY2FuLCBTY2FuS2V5IHNjYW5rZXksIGludCBuc2NhbmtleXMsCiB7CiAJQmxvb21T Y2FuT3BhcXVlIHNvID0gKEJsb29tU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOwogCi0JaWYg KHNvLT5zaWduKQotCQlwZnJlZShzby0+c2lnbik7CisJcGZyZWUoc28tPnNpZ24pOwogCXNv LT5zaWduID0gTlVMTDsKIAogCWlmIChzY2Fua2V5ICYmIHNjYW4tPm51bWJlck9mS2V5cyA+ IDApCkBAIC02OSw4ICs2OCw3IEBAIGJsZW5kc2NhbihJbmRleFNjYW5EZXNjIHNjYW4pCiB7 CiAJQmxvb21TY2FuT3BhcXVlIHNvID0gKEJsb29tU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVl OwogCi0JaWYgKHNvLT5zaWduKQotCQlwZnJlZShzby0+c2lnbik7CisJcGZyZWUoc28tPnNp Z24pOwogCXNvLT5zaWduID0gTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxp bmsvZGJsaW5rLmMgYi9jb250cmliL2RibGluay9kYmxpbmsuYwppbmRleCBlMzIzZmRkMGU2 Li42OWZjZTJhM2U5IDEwMDY0NAotLS0gYS9jb250cmliL2RibGluay9kYmxpbmsuYworKysg Yi9jb250cmliL2RibGluay9kYmxpbmsuYwpAQCAtMzQyLDggKzM0Miw3IEBAIGRibGlua19j b25uZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCW1zZyA9IHBjaG9tcChQUWVycm9yTWVzc2Fn ZShjb25uKSk7CiAJCVBRZmluaXNoKGNvbm4pOwogCQlSZWxlYXNlRXh0ZXJuYWxGRCgpOwot CQlpZiAocmNvbm4pCi0JCQlwZnJlZShyY29ubik7CisJCXBmcmVlKHJjb25uKTsKIAogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1FMQ0xJRU5UX1VOQUJMRV9U T19FU1RBQkxJU0hfU1FMQ09OTkVDVElPTiksCkBAIC0xMjc0LDggKzEyNzMsNyBAQCBzdG9y ZVJvdyh2b2xhdGlsZSBzdG9yZUluZm8gKnNpbmZvLCBQR3Jlc3VsdCAqcmVzLCBib29sIGZp cnN0KQogCQkgKiBTZXQgdXAgc3VmZmljaWVudGx5LXdpZGUgc3RyaW5nIHBvaW50ZXJzIGFy cmF5OyB0aGlzIHdvbid0IGNoYW5nZQogCQkgKiBpbiBzaXplIHNvIGl0J3MgZWFzeSB0byBw cmVhbGxvY2F0ZS4KIAkJICovCi0JCWlmIChzaW5mby0+Y3N0cnMpCi0JCQlwZnJlZShzaW5m by0+Y3N0cnMpOworCQlwZnJlZShzaW5mby0+Y3N0cnMpOwogCQlzaW5mby0+Y3N0cnMgPSAo Y2hhciAqKikgcGFsbG9jKG5maWVsZHMgKiBzaXplb2YoY2hhciAqKSk7CiAJfQogCkBAIC0y NjQ0LDggKzI2NDIsNyBAQCBkYmxpbmtfc2VjdXJpdHlfY2hlY2soUEdjb25uICpjb25uLCBy ZW1vdGVDb25uICpyY29ubikKIAkJewogCQkJUFFmaW5pc2goY29ubik7CiAJCQlSZWxlYXNl RXh0ZXJuYWxGRCgpOwotCQkJaWYgKHJjb25uKQotCQkJCXBmcmVlKHJjb25uKTsKKwkJCXBm cmVlKHJjb25uKTsKIAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9TX1JfRV9QUk9ISUJJVEVEX1NRTF9TVEFURU1FTlRfQVRURU1QVEVEKSwKZGlmZiAtLWdp dCBhL2NvbnRyaWIvbG8vbG8uYyBiL2NvbnRyaWIvbG8vbG8uYwppbmRleCA0NTdiZTI2YzRl Li40NjkwOWVhZDA3IDEwMDY0NAotLS0gYS9jb250cmliL2xvL2xvLmMKKysrIGIvY29udHJp Yi9sby9sby5jCkBAIC04MywxMCArODMsOCBAQCBsb19tYW5hZ2UoUEdfRlVOQ1RJT05fQVJH UykKIAkJCURpcmVjdEZ1bmN0aW9uQ2FsbDEoYmVfbG9fdW5saW5rLAogCQkJCQkJCQlPYmpl Y3RJZEdldERhdHVtKGF0b29pZChvcmlnKSkpOwogCi0JCWlmIChuZXd2KQotCQkJcGZyZWUo bmV3dik7Ci0JCWlmIChvcmlnKQotCQkJcGZyZWUob3JpZyk7CisJCXBmcmVlKG5ld3YpOwor CQlwZnJlZShvcmlnKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5z cGVjdC9oZWFwZnVuY3MuYyBiL2NvbnRyaWIvcGFnZWluc3BlY3QvaGVhcGZ1bmNzLmMKaW5k ZXggMmZmNzA0MDVjZi4uZmIzNTZmZmQ3YyAxMDA2NDQKLS0tIGEvY29udHJpYi9wYWdlaW5z cGVjdC9oZWFwZnVuY3MuYworKysgYi9jb250cmliL3BhZ2VpbnNwZWN0L2hlYXBmdW5jcy5j CkBAIC0zOTcsOCArMzk3LDcgQEAgdHVwbGVfZGF0YV9zcGxpdF9pbnRlcm5hbChPaWQgcmVs aWQsIGNoYXIgKnR1cGRhdGEsCiAKIAkJcmF3X2F0dHJzID0gYWNjdW1BcnJheVJlc3VsdChy YXdfYXR0cnMsIFBvaW50ZXJHZXREYXR1bShhdHRyX2RhdGEpLAogCQkJCQkJCQkJIGlzX251 bGwsIEJZVEVBT0lELCBDdXJyZW50TWVtb3J5Q29udGV4dCk7Ci0JCWlmIChhdHRyX2RhdGEp Ci0JCQlwZnJlZShhdHRyX2RhdGEpOworCQlwZnJlZShhdHRyX2RhdGEpOwogCX0KIAogCWlm ICh0dXBkYXRhX2xlbiAhPSBvZmYpCkBAIC00ODksOCArNDg4LDcgQEAgdHVwbGVfZGF0YV9z cGxpdChQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJCQkJdF9pbmZvbWFzaywgdF9pbmZvbWFz azIsIHRfYml0cywKIAkJCQkJCQkJCWRvX2RldG9hc3QpOwogCi0JaWYgKHRfYml0cykKLQkJ cGZyZWUodF9iaXRzKTsKKwlwZnJlZSh0X2JpdHMpOwogCiAJUEdfUkVUVVJOX0FSUkFZVFlQ RV9QKHJlcyk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9w Z19zdGF0X3N0YXRlbWVudHMuYyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0 YXRfc3RhdGVtZW50cy5jCmluZGV4IGJhODY4ZjBkZTkuLjZjMDhhZTFiZGUgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCisr KyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCkBA IC02OTcsOCArNjk3LDcgQEAgcGdzc19zaG1lbV9zdGFydHVwKHZvaWQpCiAJCQkgZXJybXNn KCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6ICVtIiwKIAkJCQkJUEdTU19URVhUX0ZJ TEUpKSk7CiBmYWlsOgotCWlmIChidWZmZXIpCi0JCXBmcmVlKGJ1ZmZlcik7CisJcGZyZWUo YnVmZmVyKTsKIAlpZiAoZmlsZSkKIAkJRnJlZUZpbGUoZmlsZSk7CiAJaWYgKHFmaWxlKQpA QCAtMTQwNyw4ICsxNDA2LDcgQEAgcGdzc19zdG9yZShjb25zdCBjaGFyICpxdWVyeSwgdWlu dDY0IHF1ZXJ5SWQsCiAJTFdMb2NrUmVsZWFzZShwZ3NzLT5sb2NrKTsKIAogCS8qIFdlIHBv c3Rwb25lIHRoaXMgY2xlYW4tdXAgdW50aWwgd2UncmUgb3V0IG9mIHRoZSBsb2NrICovCi0J aWYgKG5vcm1fcXVlcnkpCi0JCXBmcmVlKG5vcm1fcXVlcnkpOworCXBmcmVlKG5vcm1fcXVl cnkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ21fZ2lzdC5j IGIvY29udHJpYi9wZ190cmdtL3RyZ21fZ2lzdC5jCmluZGV4IDdhN2JlODA3YWYuLjQ1N2Yx MzIyNmIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpc3QuYworKysgYi9j b250cmliL3BnX3RyZ20vdHJnbV9naXN0LmMKQEAgLTI5MCw4ICsyOTAsNyBAQCBndHJnbV9j b25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQluZXdjYWNoZS0+dHJpZ3JhbXMgPSBO VUxMOwogCQluZXdjYWNoZS0+Z3JhcGggPSBncmFwaDsKIAotCQlpZiAoY2FjaGUpCi0JCQlw ZnJlZShjYWNoZSk7CisJCXBmcmVlKGNhY2hlKTsKIAkJZmNpbmZvLT5mbGluZm8tPmZuX2V4 dHJhID0gKHZvaWQgKikgbmV3Y2FjaGU7CiAJCWNhY2hlID0gbmV3Y2FjaGU7CiAJfQpAQCAt NDc1LDggKzQ3NCw3IEBAIGd0cmdtX2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCW1l bWNweShuZXdjYWNoZSwgcXVlcnksIHF1ZXJ5c2l6ZSk7CiAJCW1lbWNweShuZXdjYWNoZSAr IE1BWEFMSUdOKHF1ZXJ5c2l6ZSksIHF0cmcsIFZBUlNJWkUocXRyZykpOwogCi0JCWlmIChj YWNoZSkKLQkJCXBmcmVlKGNhY2hlKTsKKwkJcGZyZWUoY2FjaGUpOwogCQlmY2luZm8tPmZs aW5mby0+Zm5fZXh0cmEgPSBuZXdjYWNoZTsKIAkJY2FjaGUgPSBuZXdjYWNoZTsKIAl9CkBA IC03MTQsOCArNzEyLDcgQEAgZ3RyZ21fcGVuYWx0eShQR19GVU5DVElPTl9BUkdTKQogCQkJ Y2FjaGVkVmFsID0gKFRSR00gKikgKG5ld2NhY2hlICsgTUFYQUxJR04oc2lnbGVuKSk7CiAJ CQltZW1jcHkoY2FjaGVkVmFsLCBuZXd2YWwsIG5ld3ZhbHNpemUpOwogCi0JCQlpZiAoY2Fj aGUpCi0JCQkJcGZyZWUoY2FjaGUpOworCQkJcGZyZWUoY2FjaGUpOwogCQkJZmNpbmZvLT5m bGluZm8tPmZuX2V4dHJhID0gbmV3Y2FjaGU7CiAJCQljYWNoZSA9IG5ld2NhY2hlOwogCQl9 CmRpZmYgLS1naXQgYS9jb250cmliL3BnY3J5cHRvL3B4LmMgYi9jb250cmliL3BnY3J5cHRv L3B4LmMKaW5kZXggM2IwOThjNjE1MS4uNTNkMWFjZWRhNiAxMDA2NDQKLS0tIGEvY29udHJp Yi9wZ2NyeXB0by9weC5jCisrKyBiL2NvbnRyaWIvcGdjcnlwdG8vcHguYwpAQCAtMjA4LDgg KzIwOCw3IEBAIGNvbWJvX2luaXQoUFhfQ29tYm8gKmN4LCBjb25zdCB1aW50OCAqa2V5LCB1 bnNpZ25lZCBrbGVuLAogCiAJZXJyID0gcHhfY2lwaGVyX2luaXQoYywga2V5YnVmLCBrbGVu LCBpdmJ1Zik7CiAKLQlpZiAoaXZidWYpCi0JCXBmcmVlKGl2YnVmKTsKKwlwZnJlZShpdmJ1 Zik7CiAJcGZyZWUoa2V5YnVmKTsKIAogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9j b25uZWN0aW9uLmMKaW5kZXggOTM5ZDExNGYwMi4uY2YxMzA0OWE3YiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L2Nvbm5lY3Rpb24uYwpAQCAtNTAwLDggKzUwMCw3IEBAIGNvbm5lY3RfcGdfc2Vy dmVyKEZvcmVpZ25TZXJ2ZXIgKnNlcnZlciwgVXNlck1hcHBpbmcgKnVzZXIpCiAJCS8qIFBy ZXBhcmUgbmV3IHNlc3Npb24gZm9yIHVzZSAqLwogCQljb25maWd1cmVfcmVtb3RlX3Nlc3Np b24oY29ubik7CiAKLQkJaWYgKGFwcG5hbWUgIT0gTlVMTCkKLQkJCXBmcmVlKGFwcG5hbWUp OworCQlwZnJlZShhcHBuYW1lKTsKIAkJcGZyZWUoa2V5d29yZHMpOwogCQlwZnJlZSh2YWx1 ZXMpOwogCX0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zk dy5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMKaW5kZXggMTYzMjAx NzBjZS4uMWM5Yzc3MWEyOCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9z dGdyZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMK QEAgLTYwMzIsOCArNjAzMiw3IEBAIHBvc3RncmVzR2V0Rm9yZWlnbkpvaW5QYXRocyhQbGFu bmVySW5mbyAqcm9vdCwKIAlpZiAoIWZvcmVpZ25fam9pbl9vayhyb290LCBqb2lucmVsLCBq b2ludHlwZSwgb3V0ZXJyZWwsIGlubmVycmVsLCBleHRyYSkpCiAJewogCQkvKiBGcmVlIHBh dGggcmVxdWlyZWQgZm9yIEVQUSBpZiB3ZSBjb3BpZWQgb25lOyB3ZSBkb24ndCBuZWVkIGl0 IG5vdyAqLwotCQlpZiAoZXBxX3BhdGgpCi0JCQlwZnJlZShlcHFfcGF0aCk7CisJCXBmcmVl KGVwcV9wYXRoKTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9zZXBn c3FsL2xhYmVsLmMgYi9jb250cmliL3NlcGdzcWwvbGFiZWwuYwppbmRleCA2ZTdjMGQ3Y2Zm Li5lOTQ3NmM5MzIyIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdzcWwvbGFiZWwuYworKysg Yi9jb250cmliL3NlcGdzcWwvbGFiZWwuYwpAQCAtMTc3LDkgKzE3Nyw3IEBAIHNlcGdzcWxf eGFjdF9jYWxsYmFjayhYYWN0RXZlbnQgZXZlbnQsIHZvaWQgKmFyZykKIAkJCWVsc2UKIAkJ CQluZXdfbGFiZWwgPSBOVUxMOwogCi0JCQlpZiAoY2xpZW50X2xhYmVsX2NvbW1pdHRlZCkK LQkJCQlwZnJlZShjbGllbnRfbGFiZWxfY29tbWl0dGVkKTsKLQorCQkJcGZyZWUoY2xpZW50 X2xhYmVsX2NvbW1pdHRlZCk7CiAJCQljbGllbnRfbGFiZWxfY29tbWl0dGVkID0gbmV3X2xh YmVsOwogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvY29udHJpYi9zZXBnc3FsL3VhdmMuYyBiL2Nv bnRyaWIvc2VwZ3NxbC91YXZjLmMKaW5kZXggNzY1OTc5ODNmNC4uMDQyYTUxZGJmZCAxMDA2 NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL3VhdmMuYworKysgYi9jb250cmliL3NlcGdzcWwv dWF2Yy5jCkBAIC0xMDksOCArMTA5LDcgQEAgc2VwZ3NxbF9hdmNfcmVjbGFpbSh2b2lkKQog CiAJCQkJcGZyZWUoY2FjaGUtPnNjb250ZXh0KTsKIAkJCQlwZnJlZShjYWNoZS0+dGNvbnRl eHQpOwotCQkJCWlmIChjYWNoZS0+bmNvbnRleHQpCi0JCQkJCXBmcmVlKGNhY2hlLT5uY29u dGV4dCk7CisJCQkJcGZyZWUoY2FjaGUtPm5jb250ZXh0KTsKIAkJCQlwZnJlZShjYWNoZSk7 CiAKIAkJCQlhdmNfbnVtX2NhY2hlcy0tOwpAQCAtNDI4LDggKzQyNyw3IEBAIHNlcGdzcWxf YXZjX2NoZWNrX3Blcm1zKGNvbnN0IE9iamVjdEFkZHJlc3MgKnRvYmplY3QsCiAJcmMgPSBz ZXBnc3FsX2F2Y19jaGVja19wZXJtc19sYWJlbCh0Y29udGV4dCwKIAkJCQkJCQkJCSAgIHRj bGFzcywgcmVxdWlyZWQsCiAJCQkJCQkJCQkgICBhdWRpdF9uYW1lLCBhYm9ydF9vbl92aW9s YXRpb24pOwotCWlmICh0Y29udGV4dCkKLQkJcGZyZWUodGNvbnRleHQpOworCXBmcmVlKHRj b250ZXh0KTsKIAogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGFibGVm dW5jL3RhYmxlZnVuYy5jIGIvY29udHJpYi90YWJsZWZ1bmMvdGFibGVmdW5jLmMKaW5kZXgg ZTMwODIyOGJkZS4uOGQzMzUxMGNlZSAxMDA2NDQKLS0tIGEvY29udHJpYi90YWJsZWZ1bmMv dGFibGVmdW5jLmMKKysrIGIvY29udHJpYi90YWJsZWZ1bmMvdGFibGVmdW5jLmMKQEAgLTkz LDExICs5Myw4IEBAIHR5cGVkZWYgc3RydWN0CiAKICNkZWZpbmUgeHBmcmVlKHZhcl8pIFwK IAlkbyB7IFwKLQkJaWYgKHZhcl8gIT0gTlVMTCkgXAotCQl7IFwKLQkJCXBmcmVlKHZhcl8p OyBcCi0JCQl2YXJfID0gTlVMTDsgXAotCQl9IFwKKwkJcGZyZWUodmFyXyk7IFwKKwkJdmFy XyA9IE5VTEw7IFwKIAl9IHdoaWxlICgwKQogCiAjZGVmaW5lIHhwc3RyZHVwKHRndHZhcl8s IHNyY3Zhcl8pIFwKQEAgLTU4NCw4ICs1ODEsNyBAQCBjcm9zc3RhYihQR19GVU5DVElPTl9B UkdTKQogCiAJCS8qIENsZWFuIHVwICovCiAJCWZvciAoaSA9IDA7IGkgPCBudW1fY2F0ZWdv cmllcyArIDE7IGkrKykKLQkJCWlmICh2YWx1ZXNbaV0gIT0gTlVMTCkKLQkJCQlwZnJlZSh2 YWx1ZXNbaV0pOworCQkJcGZyZWUodmFsdWVzW2ldKTsKIAkJcGZyZWUodmFsdWVzKTsKIAl9 CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIveG1sMi94cGF0aC5jIGIvY29udHJpYi94bWwyL3hw YXRoLmMKaW5kZXggYjhlZTc1NzY3NC4uYjkyOTc5NjdiZiAxMDA2NDQKLS0tIGEvY29udHJp Yi94bWwyL3hwYXRoLmMKKysrIGIvY29udHJpYi94bWwyL3hwYXRoLmMKQEAgLTcxMSwxMCAr NzExLDggQEAgeHBhdGhfdGFibGUoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQl4bWxGcmVlRG9j KGRvY3RyZWUpOwogCQkJZG9jdHJlZSA9IE5VTEw7CiAKLQkJCWlmIChwa2V5KQotCQkJCXBm cmVlKHBrZXkpOwotCQkJaWYgKHhtbGRvYykKLQkJCQlwZnJlZSh4bWxkb2MpOworCQkJcGZy ZWUocGtleSk7CisJCQlwZnJlZSh4bWxkb2MpOwogCQl9CiAJfQogCVBHX0NBVENIKCk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKaW5kZXggZDJmM2I1NzI4OC4uYTE3 MzZkMTAxMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1 cC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwpAQCAtMjUz LDggKzI1Myw3IEBAIHByaW50dHVwX3ByZXBhcmVfaW5mbyhEUl9wcmludHR1cCAqbXlTdGF0 ZSwgVHVwbGVEZXNjIHR5cGVpbmZvLCBpbnQgbnVtQXR0cnMpCiAJaW50CQkJaTsKIAogCS8q IGdldCByaWQgb2YgYW55IG9sZCBkYXRhICovCi0JaWYgKG15U3RhdGUtPm15aW5mbykKLQkJ cGZyZWUobXlTdGF0ZS0+bXlpbmZvKTsKKwlwZnJlZShteVN0YXRlLT5teWluZm8pOwogCW15 U3RhdGUtPm15aW5mbyA9IE5VTEw7CiAKIAlteVN0YXRlLT5hdHRyaW5mbyA9IHR5cGVpbmZv OwpAQCAtMzg3LDE0ICszODYsMTIgQEAgcHJpbnR0dXBfc2h1dGRvd24oRGVzdFJlY2VpdmVy ICpzZWxmKQogewogCURSX3ByaW50dHVwICpteVN0YXRlID0gKERSX3ByaW50dHVwICopIHNl bGY7CiAKLQlpZiAobXlTdGF0ZS0+bXlpbmZvKQotCQlwZnJlZShteVN0YXRlLT5teWluZm8p OworCXBmcmVlKG15U3RhdGUtPm15aW5mbyk7CiAJbXlTdGF0ZS0+bXlpbmZvID0gTlVMTDsK IAogCW15U3RhdGUtPmF0dHJpbmZvID0gTlVMTDsKIAotCWlmIChteVN0YXRlLT5idWYuZGF0 YSkKLQkJcGZyZWUobXlTdGF0ZS0+YnVmLmRhdGEpOworCXBmcmVlKG15U3RhdGUtPmJ1Zi5k YXRhKTsKIAlteVN0YXRlLT5idWYuZGF0YSA9IE5VTEw7CiAKIAlpZiAobXlTdGF0ZS0+dG1w Y29udGV4dCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0 aW9ucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXgg NjA5MzI5YmIyMS4uMmU1NmRlZGFkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi9yZWxvcHRpb25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9y ZWxvcHRpb25zLmMKQEAgLTYxNyw4ICs2MTcsNyBAQCBpbml0aWFsaXplX3JlbG9wdGlvbnMo dm9pZCkKIAl9CiAJaiArPSBudW1fY3VzdG9tX29wdGlvbnM7CiAKLQlpZiAocmVsT3B0cykK LQkJcGZyZWUocmVsT3B0cyk7CisJcGZyZWUocmVsT3B0cyk7CiAJcmVsT3B0cyA9IE1lbW9y eUNvbnRleHRBbGxvYyhUb3BNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkgKGogKyAxKSAqIHNp emVvZihyZWxvcHRfZ2VuICopKTsKIApAQCAtMTk3Miw4ICsxOTcxLDcgQEAgYnVpbGRfbG9j YWxfcmVsb3B0aW9ucyhsb2NhbF9yZWxvcHRzICpyZWxvcHRzLCBEYXR1bSBvcHRpb25zLCBi b29sIHZhbGlkYXRlKQogCWZvcmVhY2gobGMsIHJlbG9wdHMtPnZhbGlkYXRvcnMpCiAJCSgo cmVsb3B0c192YWxpZGF0b3IpIGxmaXJzdChsYykpIChvcHRzLCB2YWxzLCBub3B0aW9ucyk7 CiAKLQlpZiAoZWxlbXMpCi0JCXBmcmVlKGVsZW1zKTsKKwlwZnJlZShlbGVtcyk7CiAKIAly ZXR1cm4gb3B0czsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu ZGF0YXBhZ2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZGF0YXBhZ2UuYwppbmRl eCA3Yzc2ZDFmOTBkLi40MTc4M2QyZTM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2luL2dpbmRhdGFwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5k YXRhcGFnZS5jCkBAIC0xNjE0LDggKzE2MTQsNyBAQCBsZWFmUmVwYWNrSXRlbXMoZGlzYXNz ZW1ibGVkTGVhZiAqbGVhZiwgSXRlbVBvaW50ZXIgcmVtYWluaW5nKQogCQkJCQkgKiBUaGUg bmV3IHNlZ21lbnQgaXMgaW5zZXJ0ZWQgYWZ0ZXIgdGhpcyBvbmUsIHNvIGl0IHdpbGwKIAkJ CQkJICogYmUgcHJvY2Vzc2VkIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiBvZiB0aGlzIGxvb3Au CiAJCQkJCSAqLwotCQkJCQlpZiAoc2VnaW5mby0+c2VnKQotCQkJCQkJcGZyZWUoc2VnaW5m by0+c2VnKTsKKwkJCQkJcGZyZWUoc2VnaW5mby0+c2VnKTsKIAkJCQkJc2VnaW5mby0+c2Vn ID0gZ2luQ29tcHJlc3NQb3N0aW5nTGlzdChzZWdpbmZvLT5pdGVtcywKIAkJCQkJCQkJCQkJ CQkJICBzZWdpbmZvLT5uaXRlbXMsCiAJCQkJCQkJCQkJCQkJCSAgR2luUG9zdGluZ0xpc3RT ZWdtZW50VGFyZ2V0U2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4v Z2luZ2V0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmdldC5jCmluZGV4IGZjODVi YTk5YWMuLjc4ZjRkZjFiZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4v Z2luZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5nZXQuYwpAQCAtMzI3 LDggKzMyNyw3IEBAIHN0YXJ0U2NhbkVudHJ5KEdpblN0YXRlICpnaW5zdGF0ZSwgR2luU2Nh bkVudHJ5IGVudHJ5LCBTbmFwc2hvdCBzbmFwc2hvdCkKIAllbnRyeS0+YnVmZmVyID0gSW52 YWxpZEJ1ZmZlcjsKIAlJdGVtUG9pbnRlclNldE1pbigmZW50cnktPmN1ckl0ZW0pOwogCWVu dHJ5LT5vZmZzZXQgPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOwotCWlmIChlbnRyeS0+bGlzdCkK LQkJcGZyZWUoZW50cnktPmxpc3QpOworCXBmcmVlKGVudHJ5LT5saXN0KTsKIAllbnRyeS0+ bGlzdCA9IE5VTEw7CiAJZW50cnktPm5saXN0ID0gMDsKIAllbnRyeS0+bWF0Y2hCaXRtYXAg PSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5zY2FuLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYwppbmRleCBiNzc2ZDA0NDU5Li4z ZmZiYzgyYjI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYwpAQCAtMjQzLDggKzI0 Myw3IEBAIGdpbkZyZWVTY2FuS2V5cyhHaW5TY2FuT3BhcXVlIHNvKQogCiAJCWlmIChlbnRy eS0+YnVmZmVyICE9IEludmFsaWRCdWZmZXIpCiAJCQlSZWxlYXNlQnVmZmVyKGVudHJ5LT5i dWZmZXIpOwotCQlpZiAoZW50cnktPmxpc3QpCi0JCQlwZnJlZShlbnRyeS0+bGlzdCk7CisJ CXBmcmVlKGVudHJ5LT5saXN0KTsKIAkJaWYgKGVudHJ5LT5tYXRjaEl0ZXJhdG9yKQogCQkJ dGJtX2VuZF9pdGVyYXRlKGVudHJ5LT5tYXRjaEl0ZXJhdG9yKTsKIAkJaWYgKGVudHJ5LT5t YXRjaEJpdG1hcCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFj dXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhY3V1bS5jCmluZGV4IGI0ZmE1 ZjZiZjguLmZhYjhlOTU0YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4v Z2ludmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWN1dW0uYwpA QCAtNTQ0LDggKzU0NCw3IEBAIGdpblZhY3V1bUVudHJ5UGFnZShHaW5WYWN1dW1TdGF0ZSAq Z3ZzLCBCdWZmZXIgYnVmZmVyLCBCbG9ja051bWJlciAqcm9vdHMsIHVpbnQzCiAJCQkJaXR1 cCA9IEdpbkZvcm1UdXBsZSgmZ3ZzLT5naW5zdGF0ZSwgYXR0bnVtLCBrZXksIGNhdGVnb3J5 LAogCQkJCQkJCQkJKGNoYXIgKikgcGxpc3QsIHBsaXN0c2l6ZSwKIAkJCQkJCQkJCW5pdGVt cywgdHJ1ZSk7Ci0JCQkJaWYgKHBsaXN0KQotCQkJCQlwZnJlZShwbGlzdCk7CisJCQkJcGZy ZWUocGxpc3QpOwogCQkJCVBhZ2VJbmRleFR1cGxlRGVsZXRlKHRtcHBhZ2UsIGkpOwogCiAJ CQkJaWYgKFBhZ2VBZGRJdGVtKHRtcHBhZ2UsIChJdGVtKSBpdHVwLCBJbmRleFR1cGxlU2l6 ZShpdHVwKSwgaSwgZmFsc2UsIGZhbHNlKSAhPSBpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0YnVpbGQuYwppbmRleCAzNzRlNjRlODA4Li42MzljMzEyZjQwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0YnVpbGQuYwpAQCAtNDQ4LDggKzQ0OCw3IEBAIGdpc3RfaW5kZXhz b3J0YnVpbGQoR0lTVEJ1aWxkU3RhdGUgKnN0YXRlKQogCQlnaXN0X2luZGV4c29ydGJ1aWxk X2xldmVsc3RhdGVfZmx1c2goc3RhdGUsIGxldmVsc3RhdGUpOwogCQlwYXJlbnQgPSBsZXZl bHN0YXRlLT5wYXJlbnQ7CiAJCWZvciAoaW50IGkgPSAwOyBpIDwgR0lTVF9TT1JURURfQlVJ TERfUEFHRV9OVU07IGkrKykKLQkJCWlmIChsZXZlbHN0YXRlLT5wYWdlc1tpXSkKLQkJCQlw ZnJlZShsZXZlbHN0YXRlLT5wYWdlc1tpXSk7CisJCQlwZnJlZShsZXZlbHN0YXRlLT5wYWdl c1tpXSk7CiAJCXBmcmVlKGxldmVsc3RhdGUpOwogCQlsZXZlbHN0YXRlID0gcGFyZW50Owog CX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYwppbmRleCBjMzYxNTA5ZDY4Li5lNWNkOWYwOGQ5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jCkBAIC00MzksOCArNDM5LDcgQEAgaGFzaGVu ZHNjYW4oSW5kZXhTY2FuRGVzYyBzY2FuKQogCiAJX2hhc2hfZHJvcHNjYW5idWYocmVsLCBz byk7CiAKLQlpZiAoc28tPmtpbGxlZEl0ZW1zICE9IE5VTEwpCi0JCXBmcmVlKHNvLT5raWxs ZWRJdGVtcyk7CisJcGZyZWUoc28tPmtpbGxlZEl0ZW1zKTsKIAlwZnJlZShzbyk7CiAJc2Nh bi0+b3BhcXVlID0gTlVMTDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXgg YWFiOGQ2ZmE0ZS4uZTc5YzMzNGI4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMK QEAgLTEyNzcsMTQgKzEyNzcsMTIgQEAgaGVhcF9lbmRzY2FuKFRhYmxlU2NhbkRlc2Mgc3Nj YW4pCiAJICovCiAJUmVsYXRpb25EZWNyZW1lbnRSZWZlcmVuY2VDb3VudChzY2FuLT5yc19i YXNlLnJzX3JkKTsKIAotCWlmIChzY2FuLT5yc19iYXNlLnJzX2tleSkKLQkJcGZyZWUoc2Nh bi0+cnNfYmFzZS5yc19rZXkpOworCXBmcmVlKHNjYW4tPnJzX2Jhc2UucnNfa2V5KTsKIAog CWlmIChzY2FuLT5yc19zdHJhdGVneSAhPSBOVUxMKQogCQlGcmVlQWNjZXNzU3RyYXRlZ3ko c2Nhbi0+cnNfc3RyYXRlZ3kpOwogCi0JaWYgKHNjYW4tPnJzX3BhcmFsbGVsd29ya2VyZGF0 YSAhPSBOVUxMKQotCQlwZnJlZShzY2FuLT5yc19wYXJhbGxlbHdvcmtlcmRhdGEpOworCXBm cmVlKHNjYW4tPnJzX3BhcmFsbGVsd29ya2VyZGF0YSk7CiAKIAlpZiAoc2Nhbi0+cnNfYmFz ZS5yc19mbGFncyAmIFNPX1RFTVBfU05BUFNIT1QpCiAJCVVucmVnaXN0ZXJTbmFwc2hvdChz Y2FuLT5yc19iYXNlLnJzX3NuYXBzaG90KTsKQEAgLTQzNzcsOCArNDM3NSw3IEBAIGhlYXBf bG9ja190dXBsZShSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cGxlLAogCQkJCQl9 CiAJCQkJfQogCi0JCQkJaWYgKG1lbWJlcnMpCi0JCQkJCXBmcmVlKG1lbWJlcnMpOworCQkJ CXBmcmVlKG1lbWJlcnMpOwogCQkJfQogCQkJZWxzZSBpZiAoVHJhbnNhY3Rpb25JZElzQ3Vy cmVudFRyYW5zYWN0aW9uSWQoeHdhaXQpKQogCQkJewpAQCAtNTUzNiw4ICs1NTMzLDcgQEAg aGVhcF9sb2NrX3VwZGF0ZWRfdHVwbGVfcmVjKFJlbGF0aW9uIHJlbCwgSXRlbVBvaW50ZXIg dGlkLCBUcmFuc2FjdGlvbklkIHhpZCwKIAkJCQkJCWdvdG8gb3V0X2xvY2tlZDsKIAkJCQkJ fQogCQkJCX0KLQkJCQlpZiAobWVtYmVycykKLQkJCQkJcGZyZWUobWVtYmVycyk7CisJCQkJ cGZyZWUobWVtYmVycyk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKaW5kZXggYjgwMmVkMjQ3ZS4uNjVmOGUwZGIyNyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNzk3LDggKzc5Nyw3IEBAIGhl YXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCS8q IENsZWFudXAgaW5kZXggc3RhdGlzdGljcyBhbmQgaW5kZXggbmFtZXMgKi8KIAlmb3IgKGlu dCBpID0gMDsgaSA8IHZhY3JlbC0+bmluZGV4ZXM7IGkrKykKIAl7Ci0JCWlmICh2YWNyZWwt PmluZHN0YXRzW2ldKQotCQkJcGZyZWUodmFjcmVsLT5pbmRzdGF0c1tpXSk7CisJCXBmcmVl KHZhY3JlbC0+aW5kc3RhdHNbaV0pOwogCiAJCWlmIChpbnN0cnVtZW50KQogCQkJcGZyZWUo aW5kbmFtZXNbaV0pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dl bmFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA5OGFmNTM0 N2I5Li44ZjdmNTcyOGE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgv Z2VuYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwpAQCAtMTQ0 LDEwICsxNDQsOCBAQCBSZWxhdGlvbkdldEluZGV4U2NhbihSZWxhdGlvbiBpbmRleFJlbGF0 aW9uLCBpbnQgbmtleXMsIGludCBub3JkZXJieXMpCiB2b2lkCiBJbmRleFNjYW5FbmQoSW5k ZXhTY2FuRGVzYyBzY2FuKQogewotCWlmIChzY2FuLT5rZXlEYXRhICE9IE5VTEwpCi0JCXBm cmVlKHNjYW4tPmtleURhdGEpOwotCWlmIChzY2FuLT5vcmRlckJ5RGF0YSAhPSBOVUxMKQot CQlwZnJlZShzY2FuLT5vcmRlckJ5RGF0YSk7CisJcGZyZWUoc2Nhbi0+a2V5RGF0YSk7CisJ cGZyZWUoc2Nhbi0+b3JkZXJCeURhdGEpOwogCiAJcGZyZWUoc2Nhbik7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCmluZGV4IDhiOTY3MDhiM2UuLjY2Y2NhODY5ZDUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCkBAIC0zOTEsOCArMzkxLDcg QEAgX2J0X2dldHJvb3QoUmVsYXRpb24gcmVsLCBpbnQgYWNjZXNzKQogCQl9CiAJCV9idF9y ZWxidWYocmVsLCByb290YnVmKTsKIAkJLyogQ2FjaGUgaXMgc3RhbGUsIHRocm93IGl0IGF3 YXkgKi8KLQkJaWYgKHJlbC0+cmRfYW1jYWNoZSkKLQkJCXBmcmVlKHJlbC0+cmRfYW1jYWNo ZSk7CisJCXBmcmVlKHJlbC0+cmRfYW1jYWNoZSk7CiAJCXJlbC0+cmRfYW1jYWNoZSA9IE5V TEw7CiAJfQogCkBAIC01OTIsOCArNTkxLDcgQEAgX2J0X2dldHRydWVyb290KFJlbGF0aW9u IHJlbCkKIAkgKiBpcyBvdXQtb2YtZGF0ZSBhbnl3YXkuICBJbiBsaWdodCBvZiBwb2ludCAo YiksIGl0J3MgcHJvYmFibHkgc2FmZXN0IHRvCiAJICogYWN0aXZlbHkgZmx1c2ggYW55IGNh Y2hlZCBtZXRhcGFnZSBpbmZvLgogCSAqLwotCWlmIChyZWwtPnJkX2FtY2FjaGUpCi0JCXBm cmVlKHJlbC0+cmRfYW1jYWNoZSk7CisJcGZyZWUocmVsLT5yZF9hbWNhY2hlKTsKIAlyZWwt PnJkX2FtY2FjaGUgPSBOVUxMOwogCiAJbWV0YWJ1ZiA9IF9idF9nZXRidWYocmVsLCBCVFJF RV9NRVRBUEFHRSwgQlRfUkVBRCk7CkBAIC0xMjY3LDggKzEyNjUsNyBAQCBfYnRfZGVsaXRl bXNfdmFjdXVtKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAlFTkRfQ1JJVF9TRUNUSU9O KCk7CiAKIAkvKiBjYW4ndCBsZWFrIG1lbW9yeSBoZXJlICovCi0JaWYgKHVwZGF0ZWRidWYg IT0gTlVMTCkKLQkJcGZyZWUodXBkYXRlZGJ1Zik7CisJcGZyZWUodXBkYXRlZGJ1Zik7CiAJ LyogZnJlZSB0dXBsZXMgYWxsb2NhdGVkIHdpdGhpbiBfYnRfZGVsaXRlbXNfdXBkYXRlKCkg Ki8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51cGRhdGFibGU7IGkrKykKIAkJcGZyZWUodXBk YXRhYmxlW2ldLT5pdHVwKTsKQEAgLTEzODQsOCArMTM4MSw3IEBAIF9idF9kZWxpdGVtc19k ZWxldGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92ZWRYaWQsCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCiAJLyogY2FuJ3QgbGVhayBtZW1v cnkgaGVyZSAqLwotCWlmICh1cGRhdGVkYnVmICE9IE5VTEwpCi0JCXBmcmVlKHVwZGF0ZWRi dWYpOworCXBmcmVlKHVwZGF0ZWRidWYpOwogCS8qIGZyZWUgdHVwbGVzIGFsbG9jYXRlZCB3 aXRoaW4gX2J0X2RlbGl0ZW1zX3VwZGF0ZSgpICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBu dXBkYXRhYmxlOyBpKyspCiAJCXBmcmVlKHVwZGF0YWJsZVtpXS0+aXR1cCk7CkBAIC0yOTYx LDggKzI5NTcsNyBAQCBfYnRfcGVuZGluZ2ZzbV9maW5hbGl6ZShSZWxhdGlvbiByZWwsIEJU VmFjU3RhdGUgKnZzdGF0ZSkKIAlpZiAodnN0YXRlLT5ucGVuZGluZ3BhZ2VzID09IDApCiAJ ewogCQkvKiBKdXN0IGZyZWUgbWVtb3J5IHdoZW4gbm90aGluZyB0byBkbyAqLwotCQlpZiAo dnN0YXRlLT5wZW5kaW5ncGFnZXMpCi0JCQlwZnJlZSh2c3RhdGUtPnBlbmRpbmdwYWdlcyk7 CisJCXBmcmVlKHZzdGF0ZS0+cGVuZGluZ3BhZ2VzKTsKIAogCQlyZXR1cm47CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMKaW5kZXggYjUyZWNhOGYzOC4uNmUxNjA0Yzc5 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCkBAIC00NjQsMTUgKzQ2NCwx MiBAQCBidGVuZHNjYW4oSW5kZXhTY2FuRGVzYyBzY2FuKQogCS8qIE5vIG5lZWQgdG8gaW52 YWxpZGF0ZSBwb3NpdGlvbnMsIHRoZSBSQU0gaXMgYWJvdXQgdG8gYmUgZnJlZWQuICovCiAK IAkvKiBSZWxlYXNlIHN0b3JhZ2UgKi8KLQlpZiAoc28tPmtleURhdGEgIT0gTlVMTCkKLQkJ cGZyZWUoc28tPmtleURhdGEpOworCXBmcmVlKHNvLT5rZXlEYXRhKTsKIAkvKiBzby0+YXJy YXlLZXlEYXRhIGFuZCBzby0+YXJyYXlLZXlzIGFyZSBpbiBhcnJheUNvbnRleHQgKi8KIAlp ZiAoc28tPmFycmF5Q29udGV4dCAhPSBOVUxMKQogCQlNZW1vcnlDb250ZXh0RGVsZXRlKHNv LT5hcnJheUNvbnRleHQpOwotCWlmIChzby0+a2lsbGVkSXRlbXMgIT0gTlVMTCkKLQkJcGZy ZWUoc28tPmtpbGxlZEl0ZW1zKTsKLQlpZiAoc28tPmN1cnJUdXBsZXMgIT0gTlVMTCkKLQkJ cGZyZWUoc28tPmN1cnJUdXBsZXMpOworCXBmcmVlKHNvLT5raWxsZWRJdGVtcyk7CisJcGZy ZWUoc28tPmN1cnJUdXBsZXMpOwogCS8qIHNvLT5tYXJrVHVwbGVzIHNob3VsZCBub3QgYmUg cGZyZWUnZCwgc2VlIGJ0cmVzY2FuICovCiAJcGZyZWUoc28pOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdzY2FuLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3NjYW4uYwppbmRleCA4N2EzNDVkMjkwLi43Y2NkYmEzN2RiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3NjYW4uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3NjYW4uYwpAQCAtOTAsMTEgKzkwLDggQEAgc3Bn RnJlZVNlYXJjaEl0ZW0oU3BHaXN0U2Nhbk9wYXF1ZSBzbywgU3BHaXN0U2VhcmNoSXRlbSAq aXRlbSkKIAkJRGF0dW1HZXRQb2ludGVyKGl0ZW0tPnZhbHVlKSAhPSBOVUxMKQogCQlwZnJl ZShEYXR1bUdldFBvaW50ZXIoaXRlbS0+dmFsdWUpKTsKIAotCWlmIChpdGVtLT5sZWFmVHVw bGUpCi0JCXBmcmVlKGl0ZW0tPmxlYWZUdXBsZSk7Ci0KLQlpZiAoaXRlbS0+dHJhdmVyc2Fs VmFsdWUpCi0JCXBmcmVlKGl0ZW0tPnRyYXZlcnNhbFZhbHVlKTsKKwlwZnJlZShpdGVtLT5s ZWFmVHVwbGUpOworCXBmcmVlKGl0ZW0tPnRyYXZlcnNhbFZhbHVlKTsKIAogCXBmcmVlKGl0 ZW0pOwogfQpAQCAtMTc1LDE5ICsxNzIsMTQgQEAgcmVzZXRTcEdpc3RTY2FuT3BhcXVlKFNw R2lzdFNjYW5PcGFxdWUgc28pCiAJaWYgKHNvLT5udW1iZXJPZk9yZGVyQnlzID4gMCkKIAl7 CiAJCS8qIE11c3QgcGZyZWUgZGlzdGFuY2VzIHRvIGF2b2lkIG1lbW9yeSBsZWFrICovCi0J CWludAkJCWk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHNvLT5uUHRyczsgaSsrKQotCQkJaWYg KHNvLT5kaXN0YW5jZXNbaV0pCi0JCQkJcGZyZWUoc28tPmRpc3RhbmNlc1tpXSk7CisJCWZv ciAoaW50IGkgPSAwOyBpIDwgc28tPm5QdHJzOyBpKyspCisJCQlwZnJlZShzby0+ZGlzdGFu Y2VzW2ldKTsKIAl9CiAKIAlpZiAoc28tPndhbnRfaXR1cCkKIAl7CiAJCS8qIE11c3QgcGZy ZWUgcmVjb25zdHJ1Y3RlZCB0dXBsZXMgdG8gYXZvaWQgbWVtb3J5IGxlYWsgKi8KLQkJaW50 CQkJaTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgc28tPm5QdHJzOyBpKyspCisJCWZvciAoaW50 IGkgPSAwOyBpIDwgc28tPm5QdHJzOyBpKyspCiAJCQlwZnJlZShzby0+cmVjb25UdXBzW2ld KTsKIAl9CiAJc28tPmlQdHIgPSBzby0+blB0cnMgPSAwOwpAQCAtNDMzLDE1ICs0MjUsMTMg QEAgc3BnZW5kc2NhbihJbmRleFNjYW5EZXNjIHNjYW4pCiAJTWVtb3J5Q29udGV4dERlbGV0 ZShzby0+dGVtcEN4dCk7CiAJTWVtb3J5Q29udGV4dERlbGV0ZShzby0+dHJhdmVyc2FsQ3h0 KTsKIAotCWlmIChzby0+a2V5RGF0YSkKLQkJcGZyZWUoc28tPmtleURhdGEpOworCXBmcmVl KHNvLT5rZXlEYXRhKTsKIAogCWlmIChzby0+c3RhdGUubGVhZlR1cERlc2MgJiYKIAkJc28t PnN0YXRlLmxlYWZUdXBEZXNjICE9IFJlbGF0aW9uR2V0RGVzY3Ioc28tPnN0YXRlLmluZGV4 KSkKIAkJRnJlZVR1cGxlRGVzYyhzby0+c3RhdGUubGVhZlR1cERlc2MpOwogCi0JaWYgKHNv LT5zdGF0ZS5kZWFkVHVwbGVTdG9yYWdlKQotCQlwZnJlZShzby0+c3RhdGUuZGVhZFR1cGxl U3RvcmFnZSk7CisJcGZyZWUoc28tPnN0YXRlLmRlYWRUdXBsZVN0b3JhZ2UpOwogCiAJaWYg KHNjYW4tPm51bWJlck9mT3JkZXJCeXMgPiAwKQogCXsKQEAgLTEwNTQsMTkgKzEwNDQsMTQg QEAgc3BnZ2V0dHVwbGUoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRpcikK IAkJaWYgKHNvLT5udW1iZXJPZk9yZGVyQnlzID4gMCkKIAkJewogCQkJLyogTXVzdCBwZnJl ZSBkaXN0YW5jZXMgdG8gYXZvaWQgbWVtb3J5IGxlYWsgKi8KLQkJCWludAkJCWk7Ci0KLQkJ CWZvciAoaSA9IDA7IGkgPCBzby0+blB0cnM7IGkrKykKLQkJCQlpZiAoc28tPmRpc3RhbmNl c1tpXSkKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgc28tPm5QdHJzOyBpKyspCiAJCQkJCXBm cmVlKHNvLT5kaXN0YW5jZXNbaV0pOwogCQl9CiAKIAkJaWYgKHNvLT53YW50X2l0dXApCiAJ CXsKIAkJCS8qIE11c3QgcGZyZWUgcmVjb25zdHJ1Y3RlZCB0dXBsZXMgdG8gYXZvaWQgbWVt b3J5IGxlYWsgKi8KLQkJCWludAkJCWk7Ci0KLQkJCWZvciAoaSA9IDA7IGkgPCBzby0+blB0 cnM7IGkrKykKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgc28tPm5QdHJzOyBpKyspCiAJCQkJ cGZyZWUoc28tPnJlY29uVHVwc1tpXSk7CiAJCX0KIAkJc28tPmlQdHIgPSBzby0+blB0cnMg PSAwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwppbmRleCA4Zjdk MTI5NTBlLi5iZGQxYTdkYzQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9tdWx0aXhhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0 aXhhY3QuYwpAQCAtMTY1OCw4ICsxNjU4LDcgQEAgbXhpZF90b19zdHJpbmcoTXVsdGlYYWN0 SWQgbXVsdGksIGludCBubWVtYmVycywgTXVsdGlYYWN0TWVtYmVyICptZW1iZXJzKQogCVN0 cmluZ0luZm9EYXRhIGJ1ZjsKIAlpbnQJCQlpOwogCi0JaWYgKHN0ciAhPSBOVUxMKQotCQlw ZnJlZShzdHIpOworCXBmcmVlKHN0cik7CiAKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMKaW5kZXggODAzZDE2OWY1Ny4u NzVlZGQ4ZWMyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdv cGhhc2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFzZS5jCkBA IC0yMDMzLDggKzIwMzMsNyBAQCBTdGFuZGJ5UmVjb3ZlclByZXBhcmVkVHJhbnNhY3Rpb25z KHZvaWQpCiAJCWJ1ZiA9IFByb2Nlc3NUd29QaGFzZUJ1ZmZlcih4aWQsCiAJCQkJCQkJCQln eGFjdC0+cHJlcGFyZV9zdGFydF9sc24sCiAJCQkJCQkJCQlneGFjdC0+b25kaXNrLCBmYWxz ZSwgZmFsc2UpOwotCQlpZiAoYnVmICE9IE5VTEwpCi0JCQlwZnJlZShidWYpOworCQlwZnJl ZShidWYpOwogCX0KIAlMV0xvY2tSZWxlYXNlKFR3b1BoYXNlU3RhdGVMb2NrKTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCA1MGYwOTJkN2ViLi5jOGE1YjQ2MTBj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0xNTIyLDggKzE1MjIsNyBA QCBSZWNvcmRUcmFuc2FjdGlvbkNvbW1pdCh2b2lkKQogCVhhY3RMYXN0UmVjRW5kID0gMDsK IGNsZWFudXA6CiAJLyogQ2xlYW4gdXAgbG9jYWwgZGF0YSAqLwotCWlmIChyZWxzKQotCQlw ZnJlZShyZWxzKTsKKwlwZnJlZShyZWxzKTsKIAlpZiAobmRyb3BwZWRzdGF0cykKIAkJcGZy ZWUoZHJvcHBlZHN0YXRzKTsKIApAQCAtMTY4MCw4ICsxNjc5LDcgQEAgQXRTdWJDb21taXRf Y2hpbGRYaWRzKHZvaWQpCiAJcy0+cGFyZW50LT5uQ2hpbGRYaWRzID0gbmV3X25DaGlsZFhp ZHM7CiAKIAkvKiBSZWxlYXNlIGNoaWxkJ3MgYXJyYXkgdG8gYXZvaWQgbGVha2FnZSAqLwot CWlmIChzLT5jaGlsZFhpZHMgIT0gTlVMTCkKLQkJcGZyZWUocy0+Y2hpbGRYaWRzKTsKKwlw ZnJlZShzLT5jaGlsZFhpZHMpOwogCS8qIFdlIG11c3QgcmVzZXQgdGhlc2UgdG8gYXZvaWQg ZG91YmxlLWZyZWUgaWYgZmFpbCBsYXRlciBpbiBjb21taXQgKi8KIAlzLT5jaGlsZFhpZHMg PSBOVUxMOwogCXMtPm5DaGlsZFhpZHMgPSAwOwpAQCAtMTgwNiw4ICsxODA0LDcgQEAgUmVj b3JkVHJhbnNhY3Rpb25BYm9ydChib29sIGlzU3ViWGFjdCkKIAkJWGFjdExhc3RSZWNFbmQg PSAwOwogCiAJLyogQW5kIGNsZWFuIHVwIGxvY2FsIGRhdGEgKi8KLQlpZiAocmVscykKLQkJ cGZyZWUocmVscyk7CisJcGZyZWUocmVscyk7CiAJaWYgKG5kcm9wcGVkc3RhdHMpCiAJCXBm cmVlKGRyb3BwZWRzdGF0cyk7CiAKQEAgLTE4ODUsOCArMTg4Miw3IEBAIEF0U3ViQWJvcnRf Y2hpbGRYaWRzKHZvaWQpCiAJICogQXRTdWJDb21taXRfY2hpbGRYaWRzKS4gIFRoaXMgbWVh bnMgd2UnZCBiZXR0ZXIgZnJlZSB0aGUgYXJyYXkKIAkgKiBleHBsaWNpdGx5IGF0IGFib3J0 IHRvIGF2b2lkIGxlYWthZ2UuCiAJICovCi0JaWYgKHMtPmNoaWxkWGlkcyAhPSBOVUxMKQot CQlwZnJlZShzLT5jaGlsZFhpZHMpOworCXBmcmVlKHMtPmNoaWxkWGlkcyk7CiAJcy0+Y2hp bGRYaWRzID0gTlVMTDsKIAlzLT5uQ2hpbGRYaWRzID0gMDsKIAlzLT5tYXhDaGlsZFhpZHMg PSAwOwpAQCAtNTI5MSw4ICs1Mjg3LDcgQEAgUG9wVHJhbnNhY3Rpb24odm9pZCkKIAlDdXJy ZW50UmVzb3VyY2VPd25lciA9IHMtPnBhcmVudC0+Y3VyVHJhbnNhY3Rpb25Pd25lcjsKIAog CS8qIEZyZWUgdGhlIG9sZCBjaGlsZCBzdHJ1Y3R1cmUgKi8KLQlpZiAocy0+bmFtZSkKLQkJ cGZyZWUocy0+bmFtZSk7CisJcGZyZWUocy0+bmFtZSk7CiAJcGZyZWUocyk7CiB9CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA4N2IyNDNlMGQ0Li42Yzg3NmE2ZTE4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC00NDE5LDggKzQ0MTksNyBA QCBYTE9HU2htZW1Jbml0KHZvaWQpCiAJCS8qIEluaXRpYWxpemUgbG9jYWwgY29weSBvZiBX QUxJbnNlcnRMb2NrcyAqLwogCQlXQUxJbnNlcnRMb2NrcyA9IFhMb2dDdGwtPkluc2VydC5X QUxJbnNlcnRMb2NrczsKIAotCQlpZiAobG9jYWxDb250cm9sRmlsZSkKLQkJCXBmcmVlKGxv Y2FsQ29udHJvbEZpbGUpOworCQlwZnJlZShsb2NhbENvbnRyb2xGaWxlKTsKIAkJcmV0dXJu OwogCX0KIAltZW1zZXQoWExvZ0N0bCwgMCwgc2l6ZW9mKFhMb2dDdGxEYXRhKSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMKaW5kZXggZjE3ZTgwOTQ4ZC4u MGI1ZjI3NjhmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlYWRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIu YwpAQCAtMTc2LDggKzE3Niw3IEBAIFhMb2dSZWFkZXJGcmVlKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUpCiAJCXBmcmVlKHN0YXRlLT5kZWNvZGVfYnVmZmVyKTsKIAogCXBmcmVlKHN0YXRl LT5lcnJvcm1zZ19idWYpOwotCWlmIChzdGF0ZS0+cmVhZFJlY29yZEJ1ZikKLQkJcGZyZWUo c3RhdGUtPnJlYWRSZWNvcmRCdWYpOworCXBmcmVlKHN0YXRlLT5yZWFkUmVjb3JkQnVmKTsK IAlwZnJlZShzdGF0ZS0+cmVhZEJ1Zik7CiAJcGZyZWUoc3RhdGUpOwogfQpAQCAtMjIwLDgg KzIxOSw3IEBAIGFsbG9jYXRlX3JlY29yZGJ1ZihYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCB1 aW50MzIgcmVjbGVuZ3RoKQogCiAjZW5kaWYKIAotCWlmIChzdGF0ZS0+cmVhZFJlY29yZEJ1 ZikKLQkJcGZyZWUoc3RhdGUtPnJlYWRSZWNvcmRCdWYpOworCXBmcmVlKHN0YXRlLT5yZWFk UmVjb3JkQnVmKTsKIAlzdGF0ZS0+cmVhZFJlY29yZEJ1ZiA9CiAJCShjaGFyICopIHBhbGxv Y19leHRlbmRlZChuZXdTaXplLCBNQ1hUX0FMTE9DX05PX09PTSk7CiAJaWYgKHN0YXRlLT5y ZWFkUmVjb3JkQnVmID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4 IDM5NzY4ZmEyMmIuLmUzM2QzNGE0YTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j CkBAIC0yODIxLDggKzI4MjEsNyBAQCB2b2lkCiBmcmVlX29iamVjdF9hZGRyZXNzZXMoT2Jq ZWN0QWRkcmVzc2VzICphZGRycykKIHsKIAlwZnJlZShhZGRycy0+cmVmcyk7Ci0JaWYgKGFk ZHJzLT5leHRyYXMpCi0JCXBmcmVlKGFkZHJzLT5leHRyYXMpOworCXBmcmVlKGFkZHJzLT5l eHRyYXMpOwogCXBmcmVlKGFkZHJzKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVu ZC5jCmluZGV4IGYyZjIyN2Y4ODcuLjExMWU2ODlkNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKQEAgLTU0MywxMCArNTQzLDggQEAgdXBkYXRlQWNsRGVwZW5kZW5jaWVz KE9pZCBjbGFzc0lkLCBPaWQgb2JqZWN0SWQsIGludDMyIG9ianN1YklkLAogCQl0YWJsZV9j bG9zZShzZGVwUmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAl9CiAKLQlpZiAob2xkbWVtYmVy cykKLQkJcGZyZWUob2xkbWVtYmVycyk7Ci0JaWYgKG5ld21lbWJlcnMpCi0JCXBmcmVlKG5l d21lbWJlcnMpOworCXBmcmVlKG9sZG1lbWJlcnMpOworCXBmcmVlKG5ld21lbWJlcnMpOwog fQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggYTUw NmZjM2VjOC4uMWZiMzMzY2NmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5jCkBAIC0xNjAsOCArMTYwLDcgQEAgRnJlZVN1YnNjcmlwdGlvbihTdWJzY3JpcHRp b24gKnN1YikKIHsKIAlwZnJlZShzdWItPm5hbWUpOwogCXBmcmVlKHN1Yi0+Y29ubmluZm8p OwotCWlmIChzdWItPnNsb3RuYW1lKQotCQlwZnJlZShzdWItPnNsb3RuYW1lKTsKKwlwZnJl ZShzdWItPnNsb3RuYW1lKTsKIAlsaXN0X2ZyZWVfZGVlcChzdWItPnB1YmxpY2F0aW9ucyk7 CiAJcGZyZWUoc3ViKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwppbmRleCBhNzk2NmZm ZjgzLi42NjYzZTcwODYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFs eXplLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCkBAIC03MTcsOCAr NzE3LDcgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBWYWN1dW1QYXJhbXMg KnBhcmFtcywKIAogCQkJc3RhdHMgPSBpbmRleF92YWN1dW1fY2xlYW51cCgmaXZpbmZvLCBO VUxMKTsKIAotCQkJaWYgKHN0YXRzKQotCQkJCXBmcmVlKHN0YXRzKTsKKwkJCXBmcmVlKHN0 YXRzKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGUwNzg0NTZi MTkuLjg4ZDA1YTZlZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTEwNjEsOCAr MTA2MSw3IEBAIHJlcG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZvICpySW5mbywgYm9vbCBz aG93X3JlbG5hbWUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlFeHBsYWluUHJvcGVydHlGbG9h dCgiQ2FsbHMiLCBOVUxMLCBpbnN0ci0+bnR1cGxlcywgMCwgZXMpOwogCQl9CiAKLQkJaWYg KGNvbm5hbWUpCi0JCQlwZnJlZShjb25uYW1lKTsKKwkJcGZyZWUoY29ubmFtZSk7CiAKIAkJ RXhwbGFpbkNsb3NlR3JvdXAoIlRyaWdnZXIiLCBOVUxMLCB0cnVlLCBlcyk7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCA2NjdmMmE0Y2QxLi42MDUzNjdkMjBkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMzAxLDggKzMwMSw3IEBAIENoZWNr SW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIAkJcmV0ID0gQ29tcGFyZU9wY2xhc3NPcHRp b25zKG9wY2xhc3NPcHRpb25zLAogCQkJCQkJCQkJaW5kZXhJbmZvLT5paV9PcGNsYXNzT3B0 aW9ucywgb2xkX25hdHRzKTsKIAotCQlpZiAob3BjbGFzc09wdGlvbnMpCi0JCQlwZnJlZShv cGNsYXNzT3B0aW9ucyk7CisJCXBmcmVlKG9wY2xhc3NPcHRpb25zKTsKIAl9CiAKIAkvKiBB bnkgY2hhbmdlIGluIGV4Y2x1c2lvbiBvcGVyYXRvciBzZWxlY3Rpb25zIGJyZWFrcyBjb21w YXRpYmlsaXR5LiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dl ci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IDYyYTA5ZmIxMzEu LjM0OWYyOTdiN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTIxOTQsMTIgKzIx OTQsOSBAQCBGcmVlVHJpZ2dlckRlc2MoVHJpZ2dlckRlc2MgKnRyaWdkZXNjKQogCQkJCXBm cmVlKHRyaWdnZXItPnRnYXJnc1t0cmlnZ2VyLT50Z25hcmdzXSk7CiAJCQlwZnJlZSh0cmln Z2VyLT50Z2FyZ3MpOwogCQl9Ci0JCWlmICh0cmlnZ2VyLT50Z3F1YWwpCi0JCQlwZnJlZSh0 cmlnZ2VyLT50Z3F1YWwpOwotCQlpZiAodHJpZ2dlci0+dGdvbGR0YWJsZSkKLQkJCXBmcmVl KHRyaWdnZXItPnRnb2xkdGFibGUpOwotCQlpZiAodHJpZ2dlci0+dGduZXd0YWJsZSkKLQkJ CXBmcmVlKHRyaWdnZXItPnRnbmV3dGFibGUpOworCQlwZnJlZSh0cmlnZ2VyLT50Z3F1YWwp OworCQlwZnJlZSh0cmlnZ2VyLT50Z29sZHRhYmxlKTsKKwkJcGZyZWUodHJpZ2dlci0+dGdu ZXd0YWJsZSk7CiAJCXRyaWdnZXIrKzsKIAl9CiAJcGZyZWUodHJpZ2Rlc2MtPnRyaWdnZXJz KTsKQEAgLTUzMjMsOCArNTMyMCw3IEBAIEFmdGVyVHJpZ2dlckVuZFN1YlhhY3QoYm9vbCBp c0NvbW1pdCkKIAkJQXNzZXJ0KG15X2xldmVsIDwgYWZ0ZXJUcmlnZ2Vycy5tYXh0cmFuc2Rl cHRoKTsKIAkJLyogSWYgd2Ugc2F2ZWQgYSBwcmlvciBzdGF0ZSwgd2UgZG9uJ3QgbmVlZCBp dCBhbnltb3JlICovCiAJCXN0YXRlID0gYWZ0ZXJUcmlnZ2Vycy50cmFuc19zdGFja1tteV9s ZXZlbF0uc3RhdGU7Ci0JCWlmIChzdGF0ZSAhPSBOVUxMKQotCQkJcGZyZWUoc3RhdGUpOwor CQlwZnJlZShzdGF0ZSk7CiAJCS8qIHRoaXMgYXZvaWRzIGRvdWJsZSBwZnJlZSBpZiBlcnJv ciBsYXRlcjogKi8KIAkJYWZ0ZXJUcmlnZ2Vycy50cmFuc19zdGFja1tteV9sZXZlbF0uc3Rh dGUgPSBOVUxMOwogCQlBc3NlcnQoYWZ0ZXJUcmlnZ2Vycy5xdWVyeV9kZXB0aCA9PQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jCmluZGV4IDA2YWMyNTNlYTAuLjZmMWNjZDQyNGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNUdXBsZXMuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjVHVwbGVzLmMKQEAgLTEyMTEsMTAgKzEyMTEsOCBA QCBFeGVjUmVzZXRUdXBsZVRhYmxlKExpc3QgKnR1cGxlVGFibGUsCS8qIHR1cGxlIHRhYmxl ICovCiAJCXsKIAkJCWlmICghVFRTX0ZJWEVEKHNsb3QpKQogCQkJewotCQkJCWlmIChzbG90 LT50dHNfdmFsdWVzKQotCQkJCQlwZnJlZShzbG90LT50dHNfdmFsdWVzKTsKLQkJCQlpZiAo c2xvdC0+dHRzX2lzbnVsbCkKLQkJCQkJcGZyZWUoc2xvdC0+dHRzX2lzbnVsbCk7CisJCQkJ cGZyZWUoc2xvdC0+dHRzX3ZhbHVlcyk7CisJCQkJcGZyZWUoc2xvdC0+dHRzX2lzbnVsbCk7 CiAJCQl9CiAJCQlwZnJlZShzbG90KTsKIAkJfQpAQCAtMTI2MSwxMCArMTI1OSw4IEBAIEV4 ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QpCiAJCVJl bGVhc2VUdXBsZURlc2Moc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvcik7CiAJaWYgKCFUVFNf RklYRUQoc2xvdCkpCiAJewotCQlpZiAoc2xvdC0+dHRzX3ZhbHVlcykKLQkJCXBmcmVlKHNs b3QtPnR0c192YWx1ZXMpOwotCQlpZiAoc2xvdC0+dHRzX2lzbnVsbCkKLQkJCXBmcmVlKHNs b3QtPnR0c19pc251bGwpOworCQlwZnJlZShzbG90LT50dHNfdmFsdWVzKTsKKwkJcGZyZWUo c2xvdC0+dHRzX2lzbnVsbCk7CiAJfQogCXBmcmVlKHNsb3QpOwogfQpAQCAtMTMwMSwxMCAr MTI5Nyw4IEBAIEV4ZWNTZXRTbG90RGVzY3JpcHRvcihUdXBsZVRhYmxlU2xvdCAqc2xvdCwg Lyogc2xvdCB0byBjaGFuZ2UgKi8KIAlpZiAoc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvcikK IAkJUmVsZWFzZVR1cGxlRGVzYyhzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yKTsKIAotCWlm IChzbG90LT50dHNfdmFsdWVzKQotCQlwZnJlZShzbG90LT50dHNfdmFsdWVzKTsKLQlpZiAo c2xvdC0+dHRzX2lzbnVsbCkKLQkJcGZyZWUoc2xvdC0+dHRzX2lzbnVsbCk7CisJcGZyZWUo c2xvdC0+dHRzX3ZhbHVlcyk7CisJcGZyZWUoc2xvdC0+dHRzX2lzbnVsbCk7CiAKIAkvKgog CSAqIEluc3RhbGwgdGhlIG5ldyBkZXNjcmlwdG9yOyBpZiBpdCdzIHJlZmNvdW50ZWQsIGJ1 bXAgaXRzIHJlZmNvdW50LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUdhdGhlci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUdhdGhlci5jCmluZGV4IDEy ODNkNWI3MzcuLmQ5ODRjMTViMjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVHYXRoZXIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlR2F0aGVyLmMK QEAgLTQwNCw4ICs0MDQsNyBAQCBFeGVjU2h1dGRvd25HYXRoZXJXb3JrZXJzKEdhdGhlclN0 YXRlICpub2RlKQogCQlFeGVjUGFyYWxsZWxGaW5pc2gobm9kZS0+cGVpKTsKIAogCS8qIEZs dXNoIGxvY2FsIGNvcHkgb2YgcmVhZGVyIGFycmF5ICovCi0JaWYgKG5vZGUtPnJlYWRlcikK LQkJcGZyZWUobm9kZS0+cmVhZGVyKTsKKwlwZnJlZShub2RlLT5yZWFkZXIpOwogCW5vZGUt PnJlYWRlciA9IE5VTEw7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVHYXRoZXJNZXJnZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUdhdGhlck1l cmdlLmMKaW5kZXggM2IxMDA3ZjM1Mi4uMGU1MThhMzQ4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUdhdGhlck1lcmdlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUdhdGhlck1lcmdlLmMKQEAgLTMyNyw4ICszMjcsNyBAQCBFeGVjU2h1dGRv d25HYXRoZXJNZXJnZVdvcmtlcnMoR2F0aGVyTWVyZ2VTdGF0ZSAqbm9kZSkKIAkJRXhlY1Bh cmFsbGVsRmluaXNoKG5vZGUtPnBlaSk7CiAKIAkvKiBGbHVzaCBsb2NhbCBjb3B5IG9mIHJl YWRlciBhcnJheSAqLwotCWlmIChub2RlLT5yZWFkZXIpCi0JCXBmcmVlKG5vZGUtPnJlYWRl cik7CisJcGZyZWUobm9kZS0+cmVhZGVyKTsKIAlub2RlLT5yZWFkZXIgPSBOVUxMOwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkc2Nhbi5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHNjYW4uYwppbmRleCBhMWM2MzI1ZDY0Li5jMzcw ZmI5Zjc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkc2Nhbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRzY2FuLmMKQEAgLTQ0Miw4ICs0 NDIsNyBAQCBFeGVjVGlkU2NhbihQbGFuU3RhdGUgKnBzdGF0ZSkKIHZvaWQKIEV4ZWNSZVNj YW5UaWRTY2FuKFRpZFNjYW5TdGF0ZSAqbm9kZSkKIHsKLQlpZiAobm9kZS0+dHNzX1RpZExp c3QpCi0JCXBmcmVlKG5vZGUtPnRzc19UaWRMaXN0KTsKKwlwZnJlZShub2RlLT50c3NfVGlk TGlzdCk7CiAJbm9kZS0+dHNzX1RpZExpc3QgPSBOVUxMOwogCW5vZGUtPnRzc19OdW1UaWRz ID0gMDsKIAlub2RlLT50c3NfVGlkUHRyID0gLTE7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IDI5 YmMyNjY2OWIuLmFjNWUxNDVlMzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC0xNDU0LDggKzE0 NTQsNyBAQCBTUElfY3Vyc29yX29wZW4oY29uc3QgY2hhciAqbmFtZSwgU1BJUGxhblB0ciBw bGFuLAogCXBvcnRhbCA9IFNQSV9jdXJzb3Jfb3Blbl9pbnRlcm5hbChuYW1lLCBwbGFuLCBw YXJhbUxJLCByZWFkX29ubHkpOwogCiAJLyogZG9uZSB3aXRoIHRoZSB0cmFuc2llbnQgUGFy YW1MaXN0SW5mbyAqLwotCWlmIChwYXJhbUxJKQotCQlwZnJlZShwYXJhbUxJKTsKKwlwZnJl ZShwYXJhbUxJKTsKIAogCXJldHVybiBwb3J0YWw7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci90c3RvcmVSZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv dHN0b3JlUmVjZWl2ZXIuYwppbmRleCAwYTE5OTA0YjFmLi44MjYwYTEzMWEwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci90c3RvcmVSZWNlaXZlci5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmMKQEAgLTIwOCwxMSArMjA4LDkgQEAg dHN0b3JlU2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCiAJVFN0b3JlU3Rh dGUgKm15U3RhdGUgPSAoVFN0b3JlU3RhdGUgKikgc2VsZjsKIAogCS8qIFJlbGVhc2Ugd29y a3NwYWNlIGlmIGFueSAqLwotCWlmIChteVN0YXRlLT5vdXR2YWx1ZXMpCi0JCXBmcmVlKG15 U3RhdGUtPm91dHZhbHVlcyk7CisJcGZyZWUobXlTdGF0ZS0+b3V0dmFsdWVzKTsKIAlteVN0 YXRlLT5vdXR2YWx1ZXMgPSBOVUxMOwotCWlmIChteVN0YXRlLT50b2ZyZWUpCi0JCXBmcmVl KG15U3RhdGUtPnRvZnJlZSk7CisJcGZyZWUobXlTdGF0ZS0+dG9mcmVlKTsKIAlteVN0YXRl LT50b2ZyZWUgPSBOVUxMOwogCWlmIChteVN0YXRlLT50dXBtYXApCiAJCWZyZWVfY29udmVy c2lvbl9tYXAobXlTdGF0ZS0+dHVwbWFwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2pp dC9sbHZtL2xsdm1qaXQuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXQuYwppbmRl eCA2YzcyZDQzYmViLi44NjM2MmIwMzUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0LmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdC5jCkBA IC0xMDk0LDggKzEwOTQsNyBAQCBsbHZtX3Jlc29sdmVfc3ltYm9sKGNvbnN0IGNoYXIgKnN5 bW5hbWUsIHZvaWQgKmN0eCkKIAkJYWRkciA9ICh1aW50cHRyX3QpIExMVk1TZWFyY2hGb3JB ZGRyZXNzT2ZTeW1ib2woc3ltbmFtZSk7CiAKIAlwZnJlZShmdW5jbmFtZSk7Ci0JaWYgKG1v ZG5hbWUpCi0JCXBmcmVlKG1vZG5hbWUpOworCXBmcmVlKG1vZG5hbWUpOwogCiAJLyogbGV0 IExMVk0gd2lsbCBlcnJvciBvdXQgLSBzaG91bGQgbmV2ZXIgaGFwcGVuICovCiAJaWYgKCFh ZGRyKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1zY3JhbS5jIGIvc3Jj L2JhY2tlbmQvbGlicHEvYXV0aC1zY3JhbS5jCmluZGV4IGVlN2Y1MjIxOGEuLmEwMWU3MDdh YTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYworKysgYi9z cmMvYmFja2VuZC9saWJwcS9hdXRoLXNjcmFtLmMKQEAgLTQ4Niw4ICs0ODYsNyBAQCBwZ19i ZV9zY3JhbV9idWlsZF9zZWNyZXQoY29uc3QgY2hhciAqcGFzc3dvcmQpCiAJCQkJCQkJCVND UkFNX0RFRkFVTFRfSVRFUkFUSU9OUywgcGFzc3dvcmQsCiAJCQkJCQkJCSZlcnJzdHIpOwog Ci0JaWYgKHByZXBfcGFzc3dvcmQpCi0JCXBmcmVlKHByZXBfcGFzc3dvcmQpOworCXBmcmVl KHByZXBfcGFzc3dvcmQpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTU0OCw4ICs1NDcs NyBAQCBzY3JhbV92ZXJpZnlfcGxhaW5fcGFzc3dvcmQoY29uc3QgY2hhciAqdXNlcm5hbWUs IGNvbnN0IGNoYXIgKnBhc3N3b3JkLAogCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGNvbXB1 dGUgc2VydmVyIGtleTogJXMiLCBlcnJzdHIpOwogCX0KIAotCWlmIChwcmVwX3Bhc3N3b3Jk KQotCQlwZnJlZShwcmVwX3Bhc3N3b3JkKTsKKwlwZnJlZShwcmVwX3Bhc3N3b3JkKTsKIAog CS8qCiAJICogQ29tcGFyZSB0aGUgc2VjcmV0J3MgU2VydmVyIEtleSB3aXRoIHRoZSBvbmUg Y29tcHV0ZWQgZnJvbSB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgu YyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGguYwppbmRleCAxNTQ1ZmY5ZjE2Li42NDk1Yzlj ZTZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbGlicHEvYXV0aC5jCkBAIC03OTEsOCArNzkxLDcgQEAgQ2hlY2tQYXNzd29yZEF1 dGgoUG9ydCAqcG9ydCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIAllbHNlCiAJCXJlc3Vs dCA9IFNUQVRVU19FUlJPUjsKIAotCWlmIChzaGFkb3dfcGFzcykKLQkJcGZyZWUoc2hhZG93 X3Bhc3MpOworCXBmcmVlKHNoYWRvd19wYXNzKTsKIAlwZnJlZShwYXNzd2QpOwogCiAJaWYg KHJlc3VsdCA9PSBTVEFUVVNfT0spCkBAIC04NDcsOCArODQ2LDcgQEAgQ2hlY2tQV0NoYWxs ZW5nZUF1dGgoUG9ydCAqcG9ydCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIAkJYXV0aF9y ZXN1bHQgPSBDaGVja1NBU0xBdXRoKCZwZ19iZV9zY3JhbV9tZWNoLCBwb3J0LCBzaGFkb3df cGFzcywKIAkJCQkJCQkJCWxvZ2RldGFpbCk7CiAKLQlpZiAoc2hhZG93X3Bhc3MpCi0JCXBm cmVlKHNoYWRvd19wYXNzKTsKKwlwZnJlZShzaGFkb3dfcGFzcyk7CiAKIAkvKgogCSAqIElm IGdldF9yb2xlX3Bhc3N3b3JkKCkgcmV0dXJuZWQgZXJyb3IsIHJldHVybiBlcnJvciwgZXZl biBpZiB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1vcGVu c3NsLmMgYi9zcmMvYmFja2VuZC9saWJwcS9iZS1zZWN1cmUtb3BlbnNzbC5jCmluZGV4IDU1 ZDRiMjlmN2UuLmQwZjM0NzhhMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2Jl LXNlY3VyZS1vcGVuc3NsLmMKKysrIGIvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLW9w ZW5zc2wuYwpAQCAtNjc5LDE3ICs2NzksMTEgQEAgYmVfdGxzX2Nsb3NlKFBvcnQgKnBvcnQp CiAJCXBvcnQtPnBlZXIgPSBOVUxMOwogCX0KIAotCWlmIChwb3J0LT5wZWVyX2NuKQotCXsK LQkJcGZyZWUocG9ydC0+cGVlcl9jbik7Ci0JCXBvcnQtPnBlZXJfY24gPSBOVUxMOwotCX0K KwlwZnJlZShwb3J0LT5wZWVyX2NuKTsKKwlwb3J0LT5wZWVyX2NuID0gTlVMTDsKIAotCWlm IChwb3J0LT5wZWVyX2RuKQotCXsKLQkJcGZyZWUocG9ydC0+cGVlcl9kbik7Ci0JCXBvcnQt PnBlZXJfZG4gPSBOVUxMOwotCX0KKwlwZnJlZShwb3J0LT5wZWVyX2RuKTsKKwlwb3J0LT5w ZWVyX2RuID0gTlVMTDsKIH0KIAogc3NpemVfdApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv bm9kZXMvYml0bWFwc2V0LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9iaXRtYXBzZXQuYwppbmRl eCAwYTZjMzBlNGViLi42ZTQwMWMxOTAyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rl cy9iaXRtYXBzZXQuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9iaXRtYXBzZXQuYwpAQCAt MjAyLDEzICsyMDIsMTIgQEAgYm1zX21ha2Vfc2luZ2xldG9uKGludCB4KQogLyoKICAqIGJt c19mcmVlIC0gZnJlZSBhIGJpdG1hcHNldAogICoKLSAqIFNhbWUgYXMgcGZyZWUgZXhjZXB0 IGZvciBhbGxvd2luZyBOVUxMIGlucHV0CisgKiBTYW1lIGFzIHBmcmVlCiAgKi8KIHZvaWQK IGJtc19mcmVlKEJpdG1hcHNldCAqYSkKIHsKLQlpZiAoYSkKLQkJcGZyZWUoYSk7CisJcGZy ZWUoYSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvdGlkYml0bWFw LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy90aWRiaXRtYXAuYwppbmRleCBhN2E2YjI2NjY4Li5j MjJmYTJlYzUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy90aWRiaXRtYXAuYwor KysgYi9zcmMvYmFja2VuZC9ub2Rlcy90aWRiaXRtYXAuYwpAQCAtMzIyLDEwICszMjIsOCBA QCB0Ym1fZnJlZShUSURCaXRtYXAgKnRibSkKIHsKIAlpZiAodGJtLT5wYWdldGFibGUpCiAJ CXBhZ2V0YWJsZV9kZXN0cm95KHRibS0+cGFnZXRhYmxlKTsKLQlpZiAodGJtLT5zcGFnZXMp Ci0JCXBmcmVlKHRibS0+c3BhZ2VzKTsKLQlpZiAodGJtLT5zY2h1bmtzKQotCQlwZnJlZSh0 Ym0tPnNjaHVua3MpOworCXBmcmVlKHRibS0+c3BhZ2VzKTsKKwlwZnJlZSh0Ym0tPnNjaHVu a3MpOwogCXBmcmVlKHRibSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCBjZjllMGE3NGRiLi45ZTgyYWEyYjRjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMDU5LDggKzMwNTksNyBAQCBleHRyYWN0X3JvbGx1 cF9zZXRzKExpc3QgKmdyb3VwaW5nU2V0cykKIAlwZnJlZShyZXN1bHRzKTsKIAlwZnJlZShj aGFpbnMpOwogCWZvciAoaSA9IDE7IGkgPD0gbnVtX3NldHM7ICsraSkKLQkJaWYgKGFkamFj ZW5jeVtpXSkKLQkJCXBmcmVlKGFkamFjZW5jeVtpXSk7CisJCXBmcmVlKGFkamFjZW5jeVtp XSk7CiAJcGZyZWUoYWRqYWNlbmN5KTsKIAlwZnJlZShhZGphY2VuY3lfYnVmKTsKIAlwZnJl ZShvcmlnX3NldHMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCBi L3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKaW5kZXggODgyZTA4MWFhZS4uMmIzZTZlYzgx MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubAorKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvc2Nhbi5sCkBAIC0xNDMzLDYgKzE0MzMsNSBAQCBjb3JlX3l5cmVhbGxv Yyh2b2lkICpwdHIsIHl5X3NpemVfdCBieXRlcywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIp CiB2b2lkCiBjb3JlX3l5ZnJlZSh2b2lkICpwdHIsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVy KQogewotCWlmIChwdHIpCi0JCXBmcmVlKHB0cik7CisJcGZyZWUocHRyKTsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggNzBhOTE3NmM1NC4uYTllZGM5NjAy NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysr IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI1MTEsMTIgKzI1 MTEsOSBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAKIAkJLyogYmUgdGlkeSAqLwogZGVsZXRl ZDoKLQkJaWYgKHRhYi0+YXRfZGF0bmFtZSAhPSBOVUxMKQotCQkJcGZyZWUodGFiLT5hdF9k YXRuYW1lKTsKLQkJaWYgKHRhYi0+YXRfbnNwbmFtZSAhPSBOVUxMKQotCQkJcGZyZWUodGFi LT5hdF9uc3BuYW1lKTsKLQkJaWYgKHRhYi0+YXRfcmVsbmFtZSAhPSBOVUxMKQotCQkJcGZy ZWUodGFiLT5hdF9yZWxuYW1lKTsKKwkJcGZyZWUodGFiLT5hdF9kYXRuYW1lKTsKKwkJcGZy ZWUodGFiLT5hdF9uc3BuYW1lKTsKKwkJcGZyZWUodGFiLT5hdF9yZWxuYW1lKTsKIAkJcGZy ZWUodGFiKTsKIAogCQkvKgpAQCAtMjcwMiwxMiArMjY5OSw5IEBAIHBlcmZvcm1fd29ya19p dGVtKEF1dG9WYWN1dW1Xb3JrSXRlbSAqd29ya2l0ZW0pCiAKIAkvKiBiZSB0aWR5ICovCiBk ZWxldGVkMjoKLQlpZiAoY3VyX2RhdG5hbWUpCi0JCXBmcmVlKGN1cl9kYXRuYW1lKTsKLQlp ZiAoY3VyX25zcG5hbWUpCi0JCXBmcmVlKGN1cl9uc3BuYW1lKTsKLQlpZiAoY3VyX3JlbG5h bWUpCi0JCXBmcmVlKGN1cl9yZWxuYW1lKTsKKwlwZnJlZShjdXJfZGF0bmFtZSk7CisJcGZy ZWUoY3VyX25zcG5hbWUpOworCXBmcmVlKGN1cl9yZWxuYW1lKTsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL2NoZWNrcG9pbnRlci5jCmluZGV4IDVmYzA3NmZjMTQuLmY0OTBl MTA2YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9jaGVja3BvaW50ZXIuYwpAQCAtMTMw OCw4ICsxMzA4LDcgQEAgQWJzb3JiU3luY1JlcXVlc3RzKHZvaWQpCiAKIAlFTkRfQ1JJVF9T RUNUSU9OKCk7CiAKLQlpZiAocmVxdWVzdHMpCi0JCXBmcmVlKHJlcXVlc3RzKTsKKwlwZnJl ZShyZXF1ZXN0cyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL3N5c2xvZ2dlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYwpp bmRleCBkNmQwMmUzYzYzLi41YjNkYjQwYmVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3N5c2xvZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lz bG9nZ2VyLmMKQEAgLTEzMjksOCArMTMyOSw3IEBAIGxvZ2ZpbGVfcm90YXRlX2Rlc3QoYm9v bCB0aW1lX2Jhc2VkX3JvdGF0aW9uLCBpbnQgc2l6ZV9yb3RhdGlvbl9mb3IsCiAJCWlmICgq bG9nRmlsZSAhPSBOVUxMKQogCQkJZmNsb3NlKCpsb2dGaWxlKTsKIAkJKmxvZ0ZpbGUgPSBO VUxMOwotCQlpZiAoKmxhc3RfZmlsZV9uYW1lICE9IE5VTEwpCi0JCQlwZnJlZSgqbGFzdF9m aWxlX25hbWUpOworCQlwZnJlZSgqbGFzdF9maWxlX25hbWUpOwogCQkqbGFzdF9maWxlX25h bWUgPSBOVUxMOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CkBAIC0xMzg2LDggKzEzODUsNyBAQCBs b2dmaWxlX3JvdGF0ZV9kZXN0KGJvb2wgdGltZV9iYXNlZF9yb3RhdGlvbiwgaW50IHNpemVf cm90YXRpb25fZm9yLAogCQkJcm90YXRpb25fZGlzYWJsZWQgPSB0cnVlOwogCQl9CiAKLQkJ aWYgKGZpbGVuYW1lKQotCQkJcGZyZWUoZmlsZW5hbWUpOworCQlwZnJlZShmaWxlbmFtZSk7 CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTEzOTcsOCArMTM5NSw3IEBAIGxvZ2ZpbGVf cm90YXRlX2Rlc3QoYm9vbCB0aW1lX2Jhc2VkX3JvdGF0aW9uLCBpbnQgc2l6ZV9yb3RhdGlv bl9mb3IsCiAJKmxvZ0ZpbGUgPSBmaDsKIAogCS8qIGluc3RlYWQgb2YgcGZyZWUnaW5nIGZp bGVuYW1lLCByZW1lbWJlciBpdCBmb3IgbmV4dCB0aW1lICovCi0JaWYgKCpsYXN0X2ZpbGVf bmFtZSAhPSBOVUxMKQotCQlwZnJlZSgqbGFzdF9maWxlX25hbWUpOworCXBmcmVlKCpsYXN0 X2ZpbGVfbmFtZSk7CiAJKmxhc3RfZmlsZV9uYW1lID0gZmlsZW5hbWU7CiAKIAlyZXR1cm4g dHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVv cmRlcmJ1ZmZlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVy YnVmZmVyLmMKaW5kZXggMWMyMWExZDE0Yi4uNTYyOGZmZjEyZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZW9yZGVyYnVmZmVyLmMKQEAgLTQzNywy MyArNDM3LDE0IEBAIFJlb3JkZXJCdWZmZXJSZXR1cm5UWE4oUmVvcmRlckJ1ZmZlciAqcmIs IFJlb3JkZXJCdWZmZXJUWE4gKnR4bikKIAogCS8qIGZyZWUgZGF0YSB0aGF0J3MgY29udGFp bmVkICovCiAKLQlpZiAodHhuLT5naWQgIT0gTlVMTCkKLQl7Ci0JCXBmcmVlKHR4bi0+Z2lk KTsKLQkJdHhuLT5naWQgPSBOVUxMOwotCX0KKwlwZnJlZSh0eG4tPmdpZCk7CisJdHhuLT5n aWQgPSBOVUxMOwogCi0JaWYgKHR4bi0+dHVwbGVjaWRfaGFzaCAhPSBOVUxMKQotCXsKLQkJ aGFzaF9kZXN0cm95KHR4bi0+dHVwbGVjaWRfaGFzaCk7Ci0JCXR4bi0+dHVwbGVjaWRfaGFz aCA9IE5VTEw7Ci0JfQorCWhhc2hfZGVzdHJveSh0eG4tPnR1cGxlY2lkX2hhc2gpOworCXR4 bi0+dHVwbGVjaWRfaGFzaCA9IE5VTEw7CiAKLQlpZiAodHhuLT5pbnZhbGlkYXRpb25zKQot CXsKLQkJcGZyZWUodHhuLT5pbnZhbGlkYXRpb25zKTsKLQkJdHhuLT5pbnZhbGlkYXRpb25z ID0gTlVMTDsKLQl9CisJcGZyZWUodHhuLT5pbnZhbGlkYXRpb25zKTsKKwl0eG4tPmludmFs aWRhdGlvbnMgPSBOVUxMOwogCiAJLyogUmVzZXQgdGhlIHRvYXN0IGhhc2ggKi8KIAlSZW9y ZGVyQnVmZmVyVG9hc3RSZXNldChyYiwgdHhuKTsKQEAgLTUwOCwxNiArNDk5LDEzIEBAIFJl b3JkZXJCdWZmZXJSZXR1cm5DaGFuZ2UoUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZm ZXJDaGFuZ2UgKmNoYW5nZSwKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFJFT1JERVJfQlVG RkVSX0NIQU5HRV9NRVNTQUdFOgotCQkJaWYgKGNoYW5nZS0+ZGF0YS5tc2cucHJlZml4ICE9 IE5VTEwpCi0JCQkJcGZyZWUoY2hhbmdlLT5kYXRhLm1zZy5wcmVmaXgpOworCQkJcGZyZWUo Y2hhbmdlLT5kYXRhLm1zZy5wcmVmaXgpOwogCQkJY2hhbmdlLT5kYXRhLm1zZy5wcmVmaXgg PSBOVUxMOwotCQkJaWYgKGNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZSAhPSBOVUxMKQotCQkJ CXBmcmVlKGNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZSk7CisJCQlwZnJlZShjaGFuZ2UtPmRh dGEubXNnLm1lc3NhZ2UpOwogCQkJY2hhbmdlLT5kYXRhLm1zZy5tZXNzYWdlID0gTlVMTDsK IAkJCWJyZWFrOwogCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9JTlZBTElEQVRJT046 Ci0JCQlpZiAoY2hhbmdlLT5kYXRhLmludmFsLmludmFsaWRhdGlvbnMpCi0JCQkJcGZyZWUo Y2hhbmdlLT5kYXRhLmludmFsLmludmFsaWRhdGlvbnMpOworCQkJcGZyZWUoY2hhbmdlLT5k YXRhLmludmFsLmludmFsaWRhdGlvbnMpOwogCQkJY2hhbmdlLT5kYXRhLmludmFsLmludmFs aWRhdGlvbnMgPSBOVUxMOwogCQkJYnJlYWs7CiAJCWNhc2UgUkVPUkRFUl9CVUZGRVJfQ0hB TkdFX0lOVEVSTkFMX1NOQVBTSE9UOgpAQCAtNDg2NSw4ICs0ODUzLDcgQEAgUmVvcmRlckJ1 ZmZlclRvYXN0UmVzZXQoUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4 bikKIAl7CiAJCWRsaXN0X211dGFibGVfaXRlciBpdDsKIAotCQlpZiAoZW50LT5yZWNvbnN0 cnVjdGVkICE9IE5VTEwpCi0JCQlwZnJlZShlbnQtPnJlY29uc3RydWN0ZWQpOworCQlwZnJl ZShlbnQtPnJlY29uc3RydWN0ZWQpOwogCiAJCWRsaXN0X2ZvcmVhY2hfbW9kaWZ5KGl0LCAm ZW50LT5jaHVua3MpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc25hcGJ1aWxkLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3NuYXBidWlsZC5jCmluZGV4IDFmZjJjMTIyNDAuLjA4Yzk4ZTZmYmMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYwpAQCAtMTgwNSwxMCAr MTgwNSw4IEBAIFNuYXBCdWlsZFNlcmlhbGl6ZShTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dS ZWNQdHIgbHNuKQogCVJlb3JkZXJCdWZmZXJTZXRSZXN0YXJ0UG9pbnQoYnVpbGRlci0+cmVv cmRlciwKIAkJCQkJCQkJIGJ1aWxkZXItPmxhc3Rfc2VyaWFsaXplZF9zbmFwc2hvdCk7CiAJ LyogYmUgdGlkeSAqLwotCWlmIChvbmRpc2spCi0JCXBmcmVlKG9uZGlzayk7Ci0JaWYgKGNh dGNoYW5nZV94aXApCi0JCXBmcmVlKGNhdGNoYW5nZV94aXApOworCXBmcmVlKG9uZGlzayk7 CisJcGZyZWUoY2F0Y2hhbmdlX3hpcCk7CiB9CiAKIC8qCkBAIC0xOTczLDEwICsxOTcxLDgg QEAgU25hcEJ1aWxkUmVzdG9yZShTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNu KQogCXJldHVybiB0cnVlOwogCiBzbmFwc2hvdF9ub3RfaW50ZXJlc3Rpbmc6Ci0JaWYgKG9u ZGlzay5idWlsZGVyLmNvbW1pdHRlZC54aXAgIT0gTlVMTCkKLQkJcGZyZWUob25kaXNrLmJ1 aWxkZXIuY29tbWl0dGVkLnhpcCk7Ci0JaWYgKG9uZGlzay5idWlsZGVyLmNhdGNoYW5nZS54 aXAgIT0gTlVMTCkKLQkJcGZyZWUob25kaXNrLmJ1aWxkZXIuY2F0Y2hhbmdlLnhpcCk7CisJ cGZyZWUob25kaXNrLmJ1aWxkZXIuY29tbWl0dGVkLnhpcCk7CisJcGZyZWUob25kaXNrLmJ1 aWxkZXIuY2F0Y2hhbmdlLnhpcCk7CiAJcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA1ZjhjNTQxNzYzLi43NDY4 OTM4OTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMK QEAgLTM0NjQsOSArMzQ2NCw3IEBAIHN0cmVhbV93cml0ZV9jaGFuZ2UoY2hhciBhY3Rpb24s IFN0cmluZ0luZm8gcykKIHN0YXRpYyBpbmxpbmUgdm9pZAogY2xlYW51cF9zdWJ4YWN0X2lu Zm8oKQogewotCWlmIChzdWJ4YWN0X2RhdGEuc3VieGFjdHMpCi0JCXBmcmVlKHN1YnhhY3Rf ZGF0YS5zdWJ4YWN0cyk7Ci0KKwlwZnJlZShzdWJ4YWN0X2RhdGEuc3VieGFjdHMpOwogCXN1 YnhhY3RfZGF0YS5zdWJ4YWN0cyA9IE5VTEw7CiAJc3VieGFjdF9kYXRhLnN1YnhhY3RfbGFz dCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCXN1YnhhY3RfZGF0YS5uc3VieGFjdHMgPSAw OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKaW5kZXggODYwNGZkNGJj Mi4uNWU4OTc5ZjlkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5j CkBAIC0zMTEsMTEgKzMxMSw4IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQogCXdhbHJjdi0+ cmVhZHlfdG9fZGlzcGxheSA9IHRydWU7CiAJU3BpbkxvY2tSZWxlYXNlKCZ3YWxyY3YtPm11 dGV4KTsKIAotCWlmICh0bXBfY29ubmluZm8pCi0JCXBmcmVlKHRtcF9jb25uaW5mbyk7Ci0K LQlpZiAoc2VuZGVyX2hvc3QpCi0JCXBmcmVlKHNlbmRlcl9ob3N0KTsKKwlwZnJlZSh0bXBf Y29ubmluZm8pOworCXBmcmVlKHNlbmRlcl9ob3N0KTsKIAogCWZpcnN0X3N0cmVhbSA9IHRy dWU7CiAJZm9yICg7OykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2ZyZWVsaXN0LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9mcmVlbGlzdC5jCmlu ZGV4IDk5MGUwODFhYWUuLjQxN2ZhYTY0NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvYnVmZmVyL2ZyZWVsaXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZm ZXIvZnJlZWxpc3QuYwpAQCAtNTk1LDkgKzU5NSw3IEBAIEdldEFjY2Vzc1N0cmF0ZWd5KEJ1 ZmZlckFjY2Vzc1N0cmF0ZWd5VHlwZSBidHlwZSkKIHZvaWQKIEZyZWVBY2Nlc3NTdHJhdGVn eShCdWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneSkKIHsKLQkvKiBkb24ndCBjcmFzaCBp ZiBjYWxsZWQgb24gYSAiZGVmYXVsdCIgc3RyYXRlZ3kgKi8KLQlpZiAoc3RyYXRlZ3kgIT0g TlVMTCkKLQkJcGZyZWUoc3RyYXRlZ3kpOworCXBmcmVlKHN0cmF0ZWd5KTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobV9tcS5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvc2htX21xLmMKaW5kZXggOGNhMjRkZThkNi4uZTc3ZDhkYjcx MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htX21xLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htX21xLmMKQEAgLTg2MCw4ICs4NjAsNyBAQCBz aG1fbXFfZGV0YWNoKHNobV9tcV9oYW5kbGUgKm1xaCkKIAkJCQkJCQkgUG9pbnRlckdldERh dHVtKG1xaC0+bXFoX3F1ZXVlKSk7CiAKIAkvKiBSZWxlYXNlIGxvY2FsIG1lbW9yeSBhc3Nv Y2lhdGVkIHdpdGggaGFuZGxlLiAqLwotCWlmIChtcWgtPm1xaF9idWZmZXIgIT0gTlVMTCkK LQkJcGZyZWUobXFoLT5tcWhfYnVmZmVyKTsKKwlwZnJlZShtcWgtPm1xaF9idWZmZXIpOwog CXBmcmVlKG1xaCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1n ci9sb2NrLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jCmluZGV4IDVmNTgw M2Y2ODEuLjEyYTM3NWZhYzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1n ci9sb2NrLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtMTM3 NCw4ICsxMzc0LDcgQEAgUmVtb3ZlTG9jYWxMb2NrKExPQ0FMTE9DSyAqbG9jYWxsb2NrKQog CQkJUmVzb3VyY2VPd25lckZvcmdldExvY2sobG9jYWxsb2NrLT5sb2NrT3duZXJzW2ldLm93 bmVyLCBsb2NhbGxvY2spOwogCX0KIAlsb2NhbGxvY2stPm51bUxvY2tPd25lcnMgPSAwOwot CWlmIChsb2NhbGxvY2stPmxvY2tPd25lcnMgIT0gTlVMTCkKLQkJcGZyZWUobG9jYWxsb2Nr LT5sb2NrT3duZXJzKTsKKwlwZnJlZShsb2NhbGxvY2stPmxvY2tPd25lcnMpOwogCWxvY2Fs bG9jay0+bG9ja093bmVycyA9IE5VTEw7CiAKIAlpZiAobG9jYWxsb2NrLT5ob2xkc1N0cm9u Z0xvY2tDb3VudCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBi L3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA3YmVjNGU0ZmY1Li41NTNkNDcx YzYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0yNTI3LDggKzI1MjcsNyBAQCBiaW5kX3Bh cmFtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCQkJICAgZGF0YS0+cGFyYW1ubyAr IDEpOwogCX0KIAotCWlmIChxdW90ZWR2YWwpCi0JCXBmcmVlKHF1b3RlZHZhbCk7CisJcGZy ZWUocXVvdGVkdmFsKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFy Y2gvZGljdF90aGVzYXVydXMuYyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF90aGVzYXVy dXMuYwppbmRleCBiOGMwOGJjZjdiLi5hZDgzODYwOGJhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90c2VhcmNoL2RpY3RfdGhlc2F1cnVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJj aC9kaWN0X3RoZXNhdXJ1cy5jCkBAIC00NTYsOCArNDU2LDcgQEAgY29tcGlsZVRoZUxleGVt ZShEaWN0VGhlc2F1cnVzICpkKQogCQlwZnJlZShkLT53cmRzW2ldLmVudHJpZXMpOwogCX0K IAotCWlmIChkLT53cmRzKQotCQlwZnJlZShkLT53cmRzKTsKKwlwZnJlZShkLT53cmRzKTsK IAlkLT53cmRzID0gbmV3d3JkczsKIAlkLT5ud3JkcyA9IG5udzsKIAlkLT5udHdyZHMgPSB0 bm07CkBAIC00ODEsOCArNDgwLDcgQEAgY29tcGlsZVRoZUxleGVtZShEaWN0VGhlc2F1cnVz ICpkKQogCQkJCWVsc2UKIAkJCQkJcGZyZWUocHRyd3Jkcy0+ZW50cmllcyk7CiAKLQkJCQlp ZiAocHRyd3Jkcy0+bGV4ZW1lKQotCQkJCQlwZnJlZShwdHJ3cmRzLT5sZXhlbWUpOworCQkJ CXBmcmVlKHB0cndyZHMtPmxleGVtZSk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC01NzUs OCArNTczLDcgQEAgY29tcGlsZVRoZVN1YnN0aXR1dGUoRGljdFRoZXNhdXJ1cyAqZCkKIAkJ CQkJCQkJaW5wdHItPmxleGVtZSwgaSArIDEpKSk7CiAJCQl9CiAKLQkJCWlmIChpbnB0ci0+ bGV4ZW1lKQotCQkJCXBmcmVlKGlucHRyLT5sZXhlbWUpOworCQkJcGZyZWUoaW5wdHItPmxl eGVtZSk7CiAJCQlpbnB0cisrOwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rz ZWFyY2gvc3BlbGwuYyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvc3BlbGwuYwppbmRleCBmMDcz MjFiNjFkLi4zNzJlM2MwZmUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL3Nw ZWxsLmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC9zcGVsbC5jCkBAIC0xMzIyLDggKzEz MjIsNyBAQCBOSUltcG9ydE9PQWZmaXhlcyhJc3BlbGxEaWN0ICpDb25mLCBjb25zdCBjaGFy ICpmaWxlbmFtZSkKIAogCQlmaWVsZHNfcmVhZCA9IHBhcnNlX29vYWZmZW50cnkocmVjb2Rl ZCwgdHlwZSwgc2ZsYWcsIGZpbmQsIHJlcGwsIG1hc2spOwogCi0JCWlmIChwdHlwZSkKLQkJ CXBmcmVlKHB0eXBlKTsKKwkJcGZyZWUocHR5cGUpOwogCQlwdHlwZSA9IGxvd2Vyc3RyX2N0 eChDb25mLCB0eXBlKTsKIAogCQkvKiBGaXJzdCB0cnkgdG8gcGFyc2UgQUYgcGFyYW1ldGVy IChhbGlhcyBjb21wcmVzc2lvbikgKi8KQEAgLTE0MjcsOCArMTQyNiw3IEBAIE5JSW1wb3J0 T09BZmZpeGVzKElzcGVsbERpY3QgKkNvbmYsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogCX0K IAogCXRzZWFyY2hfcmVhZGxpbmVfZW5kKCZ0cnN0KTsKLQlpZiAocHR5cGUpCi0JCXBmcmVl KHB0eXBlKTsKKwlwZnJlZShwdHlwZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC90c2VhcmNoL3RvX3RzYW55LmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL3RvX3RzYW55 LmMKaW5kZXggZWRlZmZhY2MyZC4uNmExZjRmNGI0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdHNlYXJjaC90b190c2FueS5jCisrKyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvdG9fdHNh bnkuYwpAQCAtMjM0LDggKzIzNCw3IEBAIG1ha2VfdHN2ZWN0b3IoUGFyc2VkVGV4dCAqcHJz KQogCQlwdHIrKzsKIAl9CiAKLQlpZiAocHJzLT53b3JkcykKLQkJcGZyZWUocHJzLT53b3Jk cyk7CisJcGZyZWUocHJzLT53b3Jkcyk7CiAKIAlyZXR1cm4gaW47CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC90c2VhcmNoL3dwYXJzZXJfZGVmLmMgYi9zcmMvYmFja2VuZC90c2Vh cmNoL3dwYXJzZXJfZGVmLmMKaW5kZXggODI2MDI3ODQ0ZS4uYjY3MjRhZTdiMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdHNlYXJjaC93cGFyc2VyX2RlZi5jCisrKyBiL3NyYy9iYWNr ZW5kL3RzZWFyY2gvd3BhcnNlcl9kZWYuYwpAQCAtMzc4LDEwICszNzgsOCBAQCBUUGFyc2Vy Q2xvc2UoVFBhcnNlciAqcHJzKQogCQlwcnMtPnN0YXRlID0gcHRyOwogCX0KIAotCWlmIChw cnMtPndzdHIpCi0JCXBmcmVlKHBycy0+d3N0cik7Ci0JaWYgKHBycy0+cGd3c3RyKQotCQlw ZnJlZShwcnMtPnBnd3N0cik7CisJcGZyZWUocHJzLT53c3RyKTsKKwlwZnJlZShwcnMtPnBn d3N0cik7CiAKICNpZmRlZiBXUEFSU0VSX1RSQUNFCiAJZnByaW50ZihzdGRlcnIsICJjbG9z aW5nIHBhcnNlclxuIik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXRfc2htZW0uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9z aG1lbS5jCmluZGV4IDg5MDYwZWYyOWEuLjM3YjJjZTM2YWQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9zaG1lbS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9zaG1lbS5jCkBAIC01NjMsOCArNTYzLDcgQEAgcGdz dGF0X3JlbGVhc2VfZW50cnlfcmVmKFBnU3RhdF9IYXNoS2V5IGtleSwgUGdTdGF0X0VudHJ5 UmVmICplbnRyeV9yZWYsCiAJaWYgKCFwZ3N0YXRfZW50cnlfcmVmX2hhc2hfZGVsZXRlKHBn U3RhdEVudHJ5UmVmSGFzaCwga2V5KSkKIAkJZWxvZyhFUlJPUiwgImVudHJ5IHJlZiB2YW5p c2hlZCBiZWZvcmUgZGVsZXRpb24iKTsKIAotCWlmIChlbnRyeV9yZWYpCi0JCXBmcmVlKGVu dHJ5X3JlZik7CisJcGZyZWUoZW50cnlfcmVmKTsKIH0KIAogYm9vbApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0aWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYl91dGlsLmMKaW5kZXggNTMxOGVkYTljZi4uYmMyNmJiODExNyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0aWwuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbmJfdXRpbC5jCkBAIC0xMjgxLDEwICsxMjgxLDggQEAgSnNv bmJEZWVwQ29udGFpbnMoSnNvbmJJdGVyYXRvciAqKnZhbCwgSnNvbmJJdGVyYXRvciAqKm1D b250YWluZWQpCiAKIAkJCQkJY29udGFpbnMgPSBKc29uYkRlZXBDb250YWlucygmbmVzdHZh bCwgJm5lc3RDb250YWluZWQpOwogCi0JCQkJCWlmIChuZXN0dmFsKQotCQkJCQkJcGZyZWUo bmVzdHZhbCk7Ci0JCQkJCWlmIChuZXN0Q29udGFpbmVkKQotCQkJCQkJcGZyZWUobmVzdENv bnRhaW5lZCk7CisJCQkJCXBmcmVlKG5lc3R2YWwpOworCQkJCQlwZnJlZShuZXN0Q29udGFp bmVkKTsKIAkJCQkJaWYgKGNvbnRhaW5zKQogCQkJCQkJYnJlYWs7CiAJCQkJfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX3NjYW4ubCBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9zY2FuLmwKaW5kZXggNDM1MWY2ZWM5OC4uMmVkOGJi MGJjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX3NjYW4u bAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfc2Nhbi5sCkBAIC02MTQs NiArNjE0LDUgQEAganNvbnBhdGhfeXlyZWFsbG9jKHZvaWQgKnB0ciwgeXlfc2l6ZV90IGJ5 dGVzKQogdm9pZAoganNvbnBhdGhfeXlmcmVlKHZvaWQgKnB0cikKIHsKLQlpZiAocHRyKQot CQlwZnJlZShwdHIpOworCXBmcmVlKHB0cik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbGlrZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbGlr ZV9zdXBwb3J0LmMKaW5kZXggNjVhNTdmYzNjNC4uYTE2YzJmNzZhNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xpa2Vfc3VwcG9ydC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9saWtlX3N1cHBvcnQuYwpAQCAtMTY4Nyw4ICsxNjg3LDcgQEAgbWFrZV9n cmVhdGVyX3N0cmluZyhjb25zdCBDb25zdCAqc3RyX2NvbnN0LCBGbWdySW5mbyAqbHRwcm9j LCBPaWQgY29sbGF0aW9uKQogCQkJCQkJCQkJCQkgICB3b3Jrc3RyX2NvbnN0LT5jb25zdHZh bHVlKSkpCiAJCQl7CiAJCQkJLyogU3VjY2Vzc2Z1bGx5IG1hZGUgYSBzdHJpbmcgbGFyZ2Vy IHRoYW4gY21wc3RyICovCi0JCQkJaWYgKGNtcHR4dCkKLQkJCQkJcGZyZWUoY21wdHh0KTsK KwkJCQlwZnJlZShjbXB0eHQpOwogCQkJCXBmcmVlKHdvcmtzdHIpOwogCQkJCXJldHVybiB3 b3Jrc3RyX2NvbnN0OwogCQkJfQpAQCAtMTcwNyw4ICsxNzA2LDcgQEAgbWFrZV9ncmVhdGVy X3N0cmluZyhjb25zdCBDb25zdCAqc3RyX2NvbnN0LCBGbWdySW5mbyAqbHRwcm9jLCBPaWQg Y29sbGF0aW9uKQogCX0KIAogCS8qIEZhaWxlZC4uLiAqLwotCWlmIChjbXB0eHQpCi0JCXBm cmVlKGNtcHR4dCk7CisJcGZyZWUoY21wdHh0KTsKIAlwZnJlZSh3b3Jrc3RyKTsKIAogCXJl dHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggOTIwYTYzYjAwOC4u MmZmYWZjYzFmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCkBAIC00NzcsMTAgKzQ3 Nyw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfdmFyKGNvbnN0IGNoYXIgKnN0ciwgTnVtZXJpY1Zh ciAqdmFyKTsKICNkZWZpbmUgZGlnaXRidWZfYWxsb2MobmRpZ2l0cykgIFwKIAkoKE51bWVy aWNEaWdpdCAqKSBwYWxsb2MoKG5kaWdpdHMpICogc2l6ZW9mKE51bWVyaWNEaWdpdCkpKQog I2RlZmluZSBkaWdpdGJ1Zl9mcmVlKGJ1ZikJXAotCWRvIHsgXAotCQkgaWYgKChidWYpICE9 IE5VTEwpIFwKLQkJCSBwZnJlZShidWYpOyBcCi0JfSB3aGlsZSAoMCkKKwlwZnJlZShidWYp CiAKICNkZWZpbmUgaW5pdF92YXIodikJCW1lbXNldCh2LCAwLCBzaXplb2YoTnVtZXJpY1Zh cikpCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYwppbmRleCAxYTA0N2E5N2Q3Li5i NWYxNDFkMzQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCkBAIC03MjIsOCAr NzIyLDcgQEAgY2FjaGVfc2luZ2xlX3N0cmluZyhjaGFyICoqZHN0LCBjb25zdCBjaGFyICpz cmMsIGludCBlbmNvZGluZykKIAkvKiBTdG9yZSB0aGUgc3RyaW5nIGluIGxvbmctbGl2ZWQg c3RvcmFnZSwgcmVwbGFjaW5nIGFueSBwcmV2aW91cyB2YWx1ZSAqLwogCW9sZGRzdCA9ICpk c3Q7CiAJKmRzdCA9IE1lbW9yeUNvbnRleHRTdHJkdXAoVG9wTWVtb3J5Q29udGV4dCwgcHRy KTsKLQlpZiAob2xkZHN0KQotCQlwZnJlZShvbGRkc3QpOworCXBmcmVlKG9sZGRzdCk7CiAK IAkvKiBNaWdodCBhcyB3ZWxsIGNsZWFuIHVwIGFueSBwYWxsb2MnZCBjb252ZXJzaW9uIHJl c3VsdCwgdG9vICovCiAJaWYgKHB0ciAhPSBzcmMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3Zl Y3Rvcl9vcC5jCmluZGV4IDE3ODZjMThmODkuLjQxZjQxNTYzNzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9vcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90c3ZlY3Rvcl9vcC5jCkBAIC0xMzc3LDggKzEzNzcsNyBAQCBjaGVja2NvbmRp dGlvbl9zdHIodm9pZCAqY2hlY2t2YWwsIFF1ZXJ5T3BlcmFuZCAqdmFsLCBFeGVjUGhyYXNl RGF0YSAqZGF0YSkKIAkJCQkJCS8qIGZvcmdldCBhbnkgcHJldmlvdXMgcG9zaXRpb25zICov CiAJCQkJCQlucG9zID0gMDsKIAkJCQkJCS8qIGRvbid0IGxlYWsgc3RvcmFnZSAqLwotCQkJ CQkJaWYgKGFsbHBvcykKLQkJCQkJCQlwZnJlZShhbGxwb3MpOworCQkJCQkJcGZyZWUoYWxs cG9zKTsKIAkJCQkJCWJyZWFrOwogCQkJCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90c3ZlY3Rvcl9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c3ZlY3Rvcl9wYXJzZXIuYwppbmRleCBlMjQ2MGQzOTNhLi40MjE1NTQ5ZTNhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2ZWN0b3JfcGFyc2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX3BhcnNlci5jCkBAIC05OSw3ICs5OSw3IEBA IGRvIHsgXAogCQkqcG9zX3B0ciA9IHBvczsgXAogCQkqcG9zbGVuID0gbnBvczsgXAogCX0g XAotCWVsc2UgaWYgKHBvcyAhPSBOVUxMKSBcCisJZWxzZSBcCiAJCXBmcmVlKHBvcyk7IFwK IAlcCiAJaWYgKHN0cnZhbCAhPSBOVUxMKSBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpp bmRleCA4NTM5Y2VmMDI0Li4xM2YzNDNjZWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFybGVuYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5h LmMKQEAgLTI2MjEsOCArMjYyMSw3IEBAIHZhcnN0cl9hYmJyZXZfY29udmVydChEYXR1bSBv cmlnaW5hbCwgU29ydFN1cHBvcnQgc3N1cCkKIAkJbWVtY3B5KHByZXMsIHNzcy0+YnVmMiwg TWluKHNpemVvZihEYXR1bSksIGJzaXplKSk7CiAKICNpZmRlZiBVU0VfSUNVCi0JCWlmICh1 Y2hhcikKLQkJCXBmcmVlKHVjaGFyKTsKKwkJcGZyZWUodWNoYXIpOwogI2VuZGlmCiAJfQog CkBAIC01OTE5LDEwICs1OTE4LDggQEAgdGV4dF9mb3JtYXQoUEdfRlVOQ1RJT05fQVJHUykK IAl9CiAKIAkvKiBEb24ndCBuZWVkIGRlY29uc3RydWN0X2FycmF5IHJlc3VsdHMgYW55bW9y ZS4gKi8KLQlpZiAoZWxlbWVudHMgIT0gTlVMTCkKLQkJcGZyZWUoZWxlbWVudHMpOwotCWlm IChudWxscyAhPSBOVUxMKQotCQlwZnJlZShudWxscyk7CisJcGZyZWUoZWxlbWVudHMpOwor CXBmcmVlKG51bGxzKTsKIAogCS8qIEdlbmVyYXRlIHJlc3VsdHMuICovCiAJcmVzdWx0ID0g Y3N0cmluZ190b190ZXh0X3dpdGhfbGVuKHN0ci5kYXRhLCBzdHIubGVuKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC94bWwuYwppbmRleCA2MGE4NWM0Njk3Li44MmRhODA1MjUwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ht bC5jCkBAIC0xNjc3LDkgKzE2NzcsNyBAQCB4bWxfcmVwYWxsb2Modm9pZCAqcHRyLCBzaXpl X3Qgc2l6ZSkKIHN0YXRpYyB2b2lkCiB4bWxfcGZyZWUodm9pZCAqcHRyKQogewotCS8qIEF0 IGxlYXN0IHNvbWUgcGFydHMgb2YgbGlieG1sIGFzc3VtZSB4bWxGcmVlKE5VTEwpIGlzIGFs bG93ZWQgKi8KLQlpZiAocHRyKQotCQlwZnJlZShwdHIpOworCXBmcmVlKHB0cik7CiB9CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvYXR0b3B0Y2FjaGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2F0dG9wdGNhY2hlLmMKaW5kZXggOWUyNTJhMDg5 MS4uM2UzNGJhZjE2OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvYXR0 b3B0Y2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9hdHRvcHRjYWNoZS5j CkBAIC01OSw4ICs1OSw3IEBAIEludmFsaWRhdGVBdHRvcHRDYWNoZUNhbGxiYWNrKERhdHVt IGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAJaGFzaF9zZXFfaW5pdCgm c3RhdHVzLCBBdHRvcHRDYWNoZUhhc2gpOwogCXdoaWxlICgoYXR0b3B0ID0gKEF0dG9wdENh Y2hlRW50cnkgKikgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQogCXsKLQkJ aWYgKGF0dG9wdC0+b3B0cykKLQkJCXBmcmVlKGF0dG9wdC0+b3B0cyk7CisJCXBmcmVlKGF0 dG9wdC0+b3B0cyk7CiAJCWlmIChoYXNoX3NlYXJjaChBdHRvcHRDYWNoZUhhc2gsCiAJCQkJ CQkodm9pZCAqKSAmYXR0b3B0LT5rZXksCiAJCQkJCQlIQVNIX1JFTU9WRSwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTE2YTYzZjQ5NS4uNzUyMzMwNjBmZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTMzMDUsMTQgKzMzMDUs MTEgQEAgdm9pZAogZnJlZV9hdHRzdGF0c3Nsb3QoQXR0U3RhdHNTbG90ICpzc2xvdCkKIHsK IAkvKiBUaGUgdmFsdWVzW10gYXJyYXkgd2FzIHNlcGFyYXRlbHkgcGFsbG9jJ2QgYnkgZGVj b25zdHJ1Y3RfYXJyYXkgKi8KLQlpZiAoc3Nsb3QtPnZhbHVlcykKLQkJcGZyZWUoc3Nsb3Qt PnZhbHVlcyk7CisJcGZyZWUoc3Nsb3QtPnZhbHVlcyk7CiAJLyogVGhlIG51bWJlcnNbXSBh cnJheSBwb2ludHMgaW50byBudW1iZXJzX2FyciwgZG8gbm90IHBmcmVlIGl0ICovCiAJLyog RnJlZSB0aGUgZGV0b2FzdGVkIGFycmF5IG9iamVjdHMsIGlmIGFueSAqLwotCWlmIChzc2xv dC0+dmFsdWVzX2FycikKLQkJcGZyZWUoc3Nsb3QtPnZhbHVlc19hcnIpOwotCWlmIChzc2xv dC0+bnVtYmVyc19hcnIpCi0JCXBmcmVlKHNzbG90LT5udW1iZXJzX2Fycik7CisJcGZyZWUo c3Nsb3QtPnZhbHVlc19hcnIpOworCXBmcmVlKHNzbG90LT5udW1iZXJzX2Fycik7CiB9CiAK IC8qCQkJCS0tLS0tLS0tLS0gUEdfTkFNRVNQQUNFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCAwMGRjMGYyNDAzLi4xYTVl NzQ2NzQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTIyMzAsOCAr MjIzMCw3IEBAIFJlbGF0aW9uUmVsb2FkSW5kZXhJbmZvKFJlbGF0aW9uIHJlbGF0aW9uKQog CVJlbGF0aW9uQ2xvc2VTbWdyKHJlbGF0aW9uKTsKIAogCS8qIE11c3QgZnJlZSBhbnkgQU0g Y2FjaGVkIGRhdGEgdXBvbiByZWxjYWNoZSBmbHVzaCAqLwotCWlmIChyZWxhdGlvbi0+cmRf YW1jYWNoZSkKLQkJcGZyZWUocmVsYXRpb24tPnJkX2FtY2FjaGUpOworCXBmcmVlKHJlbGF0 aW9uLT5yZF9hbWNhY2hlKTsKIAlyZWxhdGlvbi0+cmRfYW1jYWNoZSA9IE5VTEw7CiAKIAkv KgpAQCAtMjI2MSw4ICsyMjYwLDcgQEAgUmVsYXRpb25SZWxvYWRJbmRleEluZm8oUmVsYXRp b24gcmVsYXRpb24pCiAJcmVscCA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QocGdfY2xh c3NfdHVwbGUpOwogCW1lbWNweShyZWxhdGlvbi0+cmRfcmVsLCByZWxwLCBDTEFTU19UVVBM RV9TSVpFKTsKIAkvKiBSZWxvYWQgcmVsb3B0aW9ucyBpbiBjYXNlIHRoZXkgY2hhbmdlZCAq LwotCWlmIChyZWxhdGlvbi0+cmRfb3B0aW9ucykKLQkJcGZyZWUocmVsYXRpb24tPnJkX29w dGlvbnMpOworCXBmcmVlKHJlbGF0aW9uLT5yZF9vcHRpb25zKTsKIAlSZWxhdGlvblBhcnNl UmVsT3B0aW9ucyhyZWxhdGlvbiwgcGdfY2xhc3NfdHVwbGUpOwogCS8qIGRvbmUgd2l0aCBw Z19jbGFzcyB0dXBsZSAqLwogCWhlYXBfZnJlZXR1cGxlKHBnX2NsYXNzX3R1cGxlKTsKQEAg LTI0MTcsOCArMjQxNSw3IEBAIFJlbGF0aW9uRGVzdHJveVJlbGF0aW9uKFJlbGF0aW9uIHJl bGF0aW9uLCBib29sIHJlbWVtYmVyX3R1cGRlc2MpCiAJICogRnJlZSBhbGwgdGhlIHN1YnNp ZGlhcnkgZGF0YSBzdHJ1Y3R1cmVzIG9mIHRoZSByZWxjYWNoZSBlbnRyeSwgdGhlbiB0aGUK IAkgKiBlbnRyeSBpdHNlbGYuCiAJICovCi0JaWYgKHJlbGF0aW9uLT5yZF9yZWwpCi0JCXBm cmVlKHJlbGF0aW9uLT5yZF9yZWwpOworCXBmcmVlKHJlbGF0aW9uLT5yZF9yZWwpOwogCS8q IGNhbid0IHVzZSBEZWNyVHVwbGVEZXNjUmVmQ291bnQgaGVyZSAqLwogCUFzc2VydChyZWxh dGlvbi0+cmRfYXR0LT50ZHJlZmNvdW50ID4gMCk7CiAJaWYgKC0tcmVsYXRpb24tPnJkX2F0 dC0+dGRyZWZjb3VudCA9PSAwKQpAQCAtMjQ0NCwxNiArMjQ0MSwxMSBAQCBSZWxhdGlvbkRl c3Ryb3lSZWxhdGlvbihSZWxhdGlvbiByZWxhdGlvbiwgYm9vbCByZW1lbWJlcl90dXBkZXNj KQogCWJtc19mcmVlKHJlbGF0aW9uLT5yZF9rZXlhdHRyKTsKIAlibXNfZnJlZShyZWxhdGlv bi0+cmRfcGthdHRyKTsKIAlibXNfZnJlZShyZWxhdGlvbi0+cmRfaWRhdHRyKTsKLQlpZiAo cmVsYXRpb24tPnJkX3B1YmRlc2MpCi0JCXBmcmVlKHJlbGF0aW9uLT5yZF9wdWJkZXNjKTsK LQlpZiAocmVsYXRpb24tPnJkX29wdGlvbnMpCi0JCXBmcmVlKHJlbGF0aW9uLT5yZF9vcHRp b25zKTsKLQlpZiAocmVsYXRpb24tPnJkX2luZGV4dHVwbGUpCi0JCXBmcmVlKHJlbGF0aW9u LT5yZF9pbmRleHR1cGxlKTsKLQlpZiAocmVsYXRpb24tPnJkX2FtY2FjaGUpCi0JCXBmcmVl KHJlbGF0aW9uLT5yZF9hbWNhY2hlKTsKLQlpZiAocmVsYXRpb24tPnJkX2Zkd3JvdXRpbmUp Ci0JCXBmcmVlKHJlbGF0aW9uLT5yZF9mZHdyb3V0aW5lKTsKKwlwZnJlZShyZWxhdGlvbi0+ cmRfcHViZGVzYyk7CisJcGZyZWUocmVsYXRpb24tPnJkX29wdGlvbnMpOworCXBmcmVlKHJl bGF0aW9uLT5yZF9pbmRleHR1cGxlKTsKKwlwZnJlZShyZWxhdGlvbi0+cmRfYW1jYWNoZSk7 CisJcGZyZWUocmVsYXRpb24tPnJkX2Zkd3JvdXRpbmUpOwogCWlmIChyZWxhdGlvbi0+cmRf aW5kZXhjeHQpCiAJCU1lbW9yeUNvbnRleHREZWxldGUocmVsYXRpb24tPnJkX2luZGV4Y3h0 KTsKIAlpZiAocmVsYXRpb24tPnJkX3J1bGVzY3h0KQpAQCAtMjUxMyw4ICsyNTA1LDcgQEAg UmVsYXRpb25DbGVhclJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBib29sIHJlYnVpbGQp CiAJUmVsYXRpb25DbG9zZVNtZ3IocmVsYXRpb24pOwogCiAJLyogRnJlZSBBTSBjYWNoZWQg ZGF0YSwgaWYgYW55ICovCi0JaWYgKHJlbGF0aW9uLT5yZF9hbWNhY2hlKQotCQlwZnJlZShy ZWxhdGlvbi0+cmRfYW1jYWNoZSk7CisJcGZyZWUocmVsYXRpb24tPnJkX2FtY2FjaGUpOwog CXJlbGF0aW9uLT5yZF9hbWNhY2hlID0gTlVMTDsKIAogCS8qCkBAIC00MjAyLDggKzQxOTMs NyBAQCBSZWxhdGlvbkNhY2hlSW5pdGlhbGl6ZVBoYXNlMyh2b2lkKQogCQkJbWVtY3B5KChj aGFyICopIHJlbGF0aW9uLT5yZF9yZWwsIChjaGFyICopIHJlbHAsIENMQVNTX1RVUExFX1NJ WkUpOwogCiAJCQkvKiBVcGRhdGUgcmRfb3B0aW9ucyB3aGlsZSB3ZSBoYXZlIHRoZSB0dXBs ZSAqLwotCQkJaWYgKHJlbGF0aW9uLT5yZF9vcHRpb25zKQotCQkJCXBmcmVlKHJlbGF0aW9u LT5yZF9vcHRpb25zKTsKKwkJCXBmcmVlKHJlbGF0aW9uLT5yZF9vcHRpb25zKTsKIAkJCVJl bGF0aW9uUGFyc2VSZWxPcHRpb25zKHJlbGF0aW9uLCBodHVwKTsKIAogCQkJLyoKQEAgLTU3 NDIsMTEgKzU3MzIsOCBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9u IHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlicmVhazsKIAl9CiAK LQlpZiAocmVsYXRpb24tPnJkX3B1YmRlc2MpCi0JewotCQlwZnJlZShyZWxhdGlvbi0+cmRf cHViZGVzYyk7Ci0JCXJlbGF0aW9uLT5yZF9wdWJkZXNjID0gTlVMTDsKLQl9CisJcGZyZWUo cmVsYXRpb24tPnJkX3B1YmRlc2MpOworCXJlbGF0aW9uLT5yZF9wdWJkZXNjID0gTlVMTDsK IAogCS8qIE5vdyBzYXZlIGNvcHkgb2YgdGhlIGRlc2NyaXB0b3IgaW4gdGhlIHJlbGNhY2hl IGVudHJ5LiAqLwogCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9y eUNvbnRleHQpOwpAQCAtNTgyOSw4ICs1ODE2LDcgQEAgUmVsYXRpb25HZXRJbmRleEF0dE9w dGlvbnMoUmVsYXRpb24gcmVsYXRpb24sIGJvb2wgY29weSkKIAogCQkJb3B0c1tpXSA9IGlu ZGV4X29wY2xhc3Nfb3B0aW9ucyhyZWxhdGlvbiwgaSArIDEsIGF0dG9wdGlvbnMsIGZhbHNl KTsKIAotCQkJaWYgKGF0dG9wdGlvbnMgIT0gKERhdHVtKSAwKQotCQkJCXBmcmVlKERhdHVt R2V0UG9pbnRlcihhdHRvcHRpb25zKSk7CisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoYXR0 b3B0aW9ucykpOwogCQl9CiAJfQogCkBAIC01ODQzLDEwICs1ODI5LDcgQEAgUmVsYXRpb25H ZXRJbmRleEF0dE9wdGlvbnMoUmVsYXRpb24gcmVsYXRpb24sIGJvb2wgY29weSkKIAkJcmV0 dXJuIG9wdHM7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7IGkrKykKLQl7Ci0JCWlmIChv cHRzW2ldKQotCQkJcGZyZWUob3B0c1tpXSk7Ci0JfQorCQlwZnJlZShvcHRzW2ldKTsKIAog CXBmcmVlKG9wdHMpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9z cGNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3BjY2FjaGUuYwppbmRleCA1 NjA5MjQ2YzJmLi5kYjRlOTk3YTk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9zcGNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3NwY2NhY2hl LmMKQEAgLTU5LDggKzU5LDcgQEAgSW52YWxpZGF0ZVRhYmxlU3BhY2VDYWNoZUNhbGxiYWNr KERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAJaGFzaF9zZXFf aW5pdCgmc3RhdHVzLCBUYWJsZVNwYWNlQ2FjaGVIYXNoKTsKIAl3aGlsZSAoKHNwYyA9IChU YWJsZVNwYWNlQ2FjaGVFbnRyeSAqKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5V TEwpCiAJewotCQlpZiAoc3BjLT5vcHRzKQotCQkJcGZyZWUoc3BjLT5vcHRzKTsKKwkJcGZy ZWUoc3BjLT5vcHRzKTsKIAkJaWYgKGhhc2hfc2VhcmNoKFRhYmxlU3BhY2VDYWNoZUhhc2gs CiAJCQkJCQkodm9pZCAqKSAmc3BjLT5vaWQsCiAJCQkJCQlIQVNIX1JFTU9WRSwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3RzX2NhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS90c19jYWNoZS5jCmluZGV4IDI0ODA4ZGZiYjEuLjFmZTUyYTgzNTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3RzX2NhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHNfY2FjaGUuYwpAQCAtNDQ5LDggKzQ0OSw3IEBA IGxvb2t1cF90c19jb25maWdfY2FjaGUoT2lkIGNmZ0lkKQogCQkJaWYgKGVudHJ5LT5tYXAp CiAJCQl7CiAJCQkJZm9yIChpID0gMDsgaSA8IGVudHJ5LT5sZW5tYXA7IGkrKykKLQkJCQkJ aWYgKGVudHJ5LT5tYXBbaV0uZGljdElkcykKLQkJCQkJCXBmcmVlKGVudHJ5LT5tYXBbaV0u ZGljdElkcyk7CisJCQkJCXBmcmVlKGVudHJ5LT5tYXBbaV0uZGljdElkcyk7CiAJCQkJcGZy ZWUoZW50cnktPm1hcCk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3R5cGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNo ZS5jCmluZGV4IDgwOGY5ZWJkMGQuLjIwNDIzYmFiNzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvdHlwY2FjaGUuYwpAQCAtMjY5MCw4ICsyNjkwLDcgQEAgbG9hZF9lbnVtX2NhY2hlX2Rh dGEoVHlwZUNhY2hlRW50cnkgKnRjYWNoZSkKIAlibXNfZnJlZShiaXRtYXApOwogCiAJLyog QW5kIGxpbmsgdGhlIGZpbmlzaGVkIGNhY2hlIHN0cnVjdCBpbnRvIHRoZSB0eXBjYWNoZSAq LwotCWlmICh0Y2FjaGUtPmVudW1EYXRhICE9IE5VTEwpCi0JCXBmcmVlKHRjYWNoZS0+ZW51 bURhdGEpOworCXBmcmVlKHRjYWNoZS0+ZW51bURhdGEpOwogCXRjYWNoZS0+ZW51bURhdGEg PSBlbnVtZGF0YTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3Iv ZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDk1ZjMyZGU0 ZTIuLjU3MmI2OTIzZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vs b2cuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAgLTU5MiwzMCAr NTkyLDE4IEBAIGVycmZpbmlzaChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGxpbmVubywg Y29uc3QgY2hhciAqZnVuY25hbWUpCiAJRW1pdEVycm9yUmVwb3J0KCk7CiAKIAkvKiBOb3cg ZnJlZSB1cCBzdWJzaWRpYXJ5IGRhdGEgYXR0YWNoZWQgdG8gc3RhY2sgZW50cnksIGFuZCBy ZWxlYXNlIGl0ICovCi0JaWYgKGVkYXRhLT5tZXNzYWdlKQotCQlwZnJlZShlZGF0YS0+bWVz c2FnZSk7Ci0JaWYgKGVkYXRhLT5kZXRhaWwpCi0JCXBmcmVlKGVkYXRhLT5kZXRhaWwpOwot CWlmIChlZGF0YS0+ZGV0YWlsX2xvZykKLQkJcGZyZWUoZWRhdGEtPmRldGFpbF9sb2cpOwot CWlmIChlZGF0YS0+aGludCkKLQkJcGZyZWUoZWRhdGEtPmhpbnQpOwotCWlmIChlZGF0YS0+ Y29udGV4dCkKLQkJcGZyZWUoZWRhdGEtPmNvbnRleHQpOwotCWlmIChlZGF0YS0+YmFja3Ry YWNlKQotCQlwZnJlZShlZGF0YS0+YmFja3RyYWNlKTsKLQlpZiAoZWRhdGEtPnNjaGVtYV9u YW1lKQotCQlwZnJlZShlZGF0YS0+c2NoZW1hX25hbWUpOwotCWlmIChlZGF0YS0+dGFibGVf bmFtZSkKLQkJcGZyZWUoZWRhdGEtPnRhYmxlX25hbWUpOwotCWlmIChlZGF0YS0+Y29sdW1u X25hbWUpCi0JCXBmcmVlKGVkYXRhLT5jb2x1bW5fbmFtZSk7Ci0JaWYgKGVkYXRhLT5kYXRh dHlwZV9uYW1lKQotCQlwZnJlZShlZGF0YS0+ZGF0YXR5cGVfbmFtZSk7Ci0JaWYgKGVkYXRh LT5jb25zdHJhaW50X25hbWUpCi0JCXBmcmVlKGVkYXRhLT5jb25zdHJhaW50X25hbWUpOwot CWlmIChlZGF0YS0+aW50ZXJuYWxxdWVyeSkKLQkJcGZyZWUoZWRhdGEtPmludGVybmFscXVl cnkpOworCXBmcmVlKGVkYXRhLT5tZXNzYWdlKTsKKwlwZnJlZShlZGF0YS0+ZGV0YWlsKTsK KwlwZnJlZShlZGF0YS0+ZGV0YWlsX2xvZyk7CisJcGZyZWUoZWRhdGEtPmhpbnQpOworCXBm cmVlKGVkYXRhLT5jb250ZXh0KTsKKwlwZnJlZShlZGF0YS0+YmFja3RyYWNlKTsKKwlwZnJl ZShlZGF0YS0+c2NoZW1hX25hbWUpOworCXBmcmVlKGVkYXRhLT50YWJsZV9uYW1lKTsKKwlw ZnJlZShlZGF0YS0+Y29sdW1uX25hbWUpOworCXBmcmVlKGVkYXRhLT5kYXRhdHlwZV9uYW1l KTsKKwlwZnJlZShlZGF0YS0+Y29uc3RyYWludF9uYW1lKTsKKwlwZnJlZShlZGF0YS0+aW50 ZXJuYWxxdWVyeSk7CiAKIAllcnJvcmRhdGFfc3RhY2tfZGVwdGgtLTsKIApAQCAtODQ1LDgg KzgzMyw3IEBAIGVycmNvZGVfZm9yX3NvY2tldF9hY2Nlc3Modm9pZCkKIAkJCWVubGFyZ2VT dHJpbmdJbmZvKCZidWYsIG5lZWRlZCk7IFwKIAkJfSBcCiAJCS8qIFNhdmUgdGhlIGNvbXBs ZXRlZCBtZXNzYWdlIGludG8gdGhlIHN0YWNrIGl0ZW0gKi8gXAotCQlpZiAoZWRhdGEtPnRh cmdldGZpZWxkKSBcCi0JCQlwZnJlZShlZGF0YS0+dGFyZ2V0ZmllbGQpOyBcCisJCXBmcmVl KGVkYXRhLT50YXJnZXRmaWVsZCk7IFwKIAkJZWRhdGEtPnRhcmdldGZpZWxkID0gcHN0cmR1 cChidWYuZGF0YSk7IFwKIAkJcGZyZWUoYnVmLmRhdGEpOyBcCiAJfQpAQCAtODg0LDggKzg3 MSw3IEBAIGVycmNvZGVfZm9yX3NvY2tldF9hY2Nlc3Modm9pZCkKIAkJCWVubGFyZ2VTdHJp bmdJbmZvKCZidWYsIG5lZWRlZCk7IFwKIAkJfSBcCiAJCS8qIFNhdmUgdGhlIGNvbXBsZXRl ZCBtZXNzYWdlIGludG8gdGhlIHN0YWNrIGl0ZW0gKi8gXAotCQlpZiAoZWRhdGEtPnRhcmdl dGZpZWxkKSBcCi0JCQlwZnJlZShlZGF0YS0+dGFyZ2V0ZmllbGQpOyBcCisJCXBmcmVlKGVk YXRhLT50YXJnZXRmaWVsZCk7IFwKIAkJZWRhdGEtPnRhcmdldGZpZWxkID0gcHN0cmR1cChi dWYuZGF0YSk7IFwKIAkJcGZyZWUoYnVmLmRhdGEpOyBcCiAJfQpAQCAtMTMyMCwxMSArMTMw Niw4IEBAIGludGVybmFsZXJycXVlcnkoY29uc3QgY2hhciAqcXVlcnkpCiAJLyogd2UgZG9u J3QgYm90aGVyIGluY3JlbWVudGluZyByZWN1cnNpb25fZGVwdGggKi8KIAlDSEVDS19TVEFD S19ERVBUSCgpOwogCi0JaWYgKGVkYXRhLT5pbnRlcm5hbHF1ZXJ5KQotCXsKLQkJcGZyZWUo ZWRhdGEtPmludGVybmFscXVlcnkpOwotCQllZGF0YS0+aW50ZXJuYWxxdWVyeSA9IE5VTEw7 Ci0JfQorCXBmcmVlKGVkYXRhLT5pbnRlcm5hbHF1ZXJ5KTsKKwllZGF0YS0+aW50ZXJuYWxx dWVyeSA9IE5VTEw7CiAKIAlpZiAocXVlcnkpCiAJCWVkYXRhLT5pbnRlcm5hbHF1ZXJ5ID0g TWVtb3J5Q29udGV4dFN0cmR1cChlZGF0YS0+YXNzb2NfY29udGV4dCwgcXVlcnkpOwpAQCAt MTYxMCwzMCArMTU5MywxOCBAQCBDb3B5RXJyb3JEYXRhKHZvaWQpCiB2b2lkCiBGcmVlRXJy b3JEYXRhKEVycm9yRGF0YSAqZWRhdGEpCiB7Ci0JaWYgKGVkYXRhLT5tZXNzYWdlKQotCQlw ZnJlZShlZGF0YS0+bWVzc2FnZSk7Ci0JaWYgKGVkYXRhLT5kZXRhaWwpCi0JCXBmcmVlKGVk YXRhLT5kZXRhaWwpOwotCWlmIChlZGF0YS0+ZGV0YWlsX2xvZykKLQkJcGZyZWUoZWRhdGEt PmRldGFpbF9sb2cpOwotCWlmIChlZGF0YS0+aGludCkKLQkJcGZyZWUoZWRhdGEtPmhpbnQp OwotCWlmIChlZGF0YS0+Y29udGV4dCkKLQkJcGZyZWUoZWRhdGEtPmNvbnRleHQpOwotCWlm IChlZGF0YS0+YmFja3RyYWNlKQotCQlwZnJlZShlZGF0YS0+YmFja3RyYWNlKTsKLQlpZiAo ZWRhdGEtPnNjaGVtYV9uYW1lKQotCQlwZnJlZShlZGF0YS0+c2NoZW1hX25hbWUpOwotCWlm IChlZGF0YS0+dGFibGVfbmFtZSkKLQkJcGZyZWUoZWRhdGEtPnRhYmxlX25hbWUpOwotCWlm IChlZGF0YS0+Y29sdW1uX25hbWUpCi0JCXBmcmVlKGVkYXRhLT5jb2x1bW5fbmFtZSk7Ci0J aWYgKGVkYXRhLT5kYXRhdHlwZV9uYW1lKQotCQlwZnJlZShlZGF0YS0+ZGF0YXR5cGVfbmFt ZSk7Ci0JaWYgKGVkYXRhLT5jb25zdHJhaW50X25hbWUpCi0JCXBmcmVlKGVkYXRhLT5jb25z dHJhaW50X25hbWUpOwotCWlmIChlZGF0YS0+aW50ZXJuYWxxdWVyeSkKLQkJcGZyZWUoZWRh dGEtPmludGVybmFscXVlcnkpOworCXBmcmVlKGVkYXRhLT5tZXNzYWdlKTsKKwlwZnJlZShl ZGF0YS0+ZGV0YWlsKTsKKwlwZnJlZShlZGF0YS0+ZGV0YWlsX2xvZyk7CisJcGZyZWUoZWRh dGEtPmhpbnQpOworCXBmcmVlKGVkYXRhLT5jb250ZXh0KTsKKwlwZnJlZShlZGF0YS0+YmFj a3RyYWNlKTsKKwlwZnJlZShlZGF0YS0+c2NoZW1hX25hbWUpOworCXBmcmVlKGVkYXRhLT50 YWJsZV9uYW1lKTsKKwlwZnJlZShlZGF0YS0+Y29sdW1uX25hbWUpOworCXBmcmVlKGVkYXRh LT5kYXRhdHlwZV9uYW1lKTsKKwlwZnJlZShlZGF0YS0+Y29uc3RyYWludF9uYW1lKTsKKwlw ZnJlZShlZGF0YS0+aW50ZXJuYWxxdWVyeSk7CiAJcGZyZWUoZWRhdGEpOwogfQogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMgYi9zcmMvYmFja2Vu ZC91dGlscy9pbml0L21pc2Npbml0LmMKaW5kZXggYmQ5NzNiYTYxMy4uM2E2ZTJiMzAyOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYwpAQCAtMTY2Nyw4ICsxNjY3LDcgQEAg bG9hZF9saWJyYXJpZXMoY29uc3QgY2hhciAqbGlicmFyaWVzLCBjb25zdCBjaGFyICpndWNu YW1lLCBib29sIHJlc3RyaWN0ZWQpCiAJCWxvYWRfZmlsZShmaWxlbmFtZSwgcmVzdHJpY3Rl ZCk7CiAJCWVyZXBvcnQoREVCVUcxLAogCQkJCShlcnJtc2dfaW50ZXJuYWwoImxvYWRlZCBs aWJyYXJ5IFwiJXNcIiIsIGZpbGVuYW1lKSkpOwotCQlpZiAoZXhwYW5kZWQpCi0JCQlwZnJl ZShleHBhbmRlZCk7CisJCXBmcmVlKGV4cGFuZGVkKTsKIAl9CiAKIAlsaXN0X2ZyZWVfZGVl cChlbGVtbGlzdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9zdHJpbmdp bmZvX21iLmMgYi9zcmMvYmFja2VuZC91dGlscy9tYi9zdHJpbmdpbmZvX21iLmMKaW5kZXgg NDQwMWRmYzQ3YS4uMjVlODcyZmE5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv bWIvc3RyaW5naW5mb19tYi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL3N0cmluZ2lu Zm9fbWIuYwpAQCAtODEsNiArODEsNSBAQCBhcHBlbmRTdHJpbmdJbmZvU3RyaW5nUXVvdGVk KFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICpzLCBpbnQgbWF4bGVuKQogCWVsc2UKIAkJ YXBwZW5kU3RyaW5nSW5mbyhzdHIsICIlcyciLCBjaHVua19jb3B5X3N0YXJ0KTsKIAotCWlm IChjb3B5KQotCQlwZnJlZShjb3B5KTsKKwlwZnJlZShjb3B5KTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLWZpbGUubCBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjLWZpbGUubAppbmRleCBjZTU2MzM4NDRjLi42ZDBlN2I0ZGM1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy1maWxlLmwKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWMtZmlsZS5sCkBAIC00NzgsOCArNDc4LDcgQEAgUHJvY2Vzc0Nv bmZpZ0ZpbGVJbnRlcm5hbChHdWNDb250ZXh0IGNvbnRleHQsIGJvb2wgYXBwbHlTZXR0aW5n cywgaW50IGVsZXZlbCkKIAkJCXNldF9jb25maWdfc291cmNlZmlsZShpdGVtLT5uYW1lLCBp dGVtLT5maWxlbmFtZSwKIAkJCQkJCQkJICBpdGVtLT5zb3VyY2VsaW5lKTsKIAotCQlpZiAo cHJlX3ZhbHVlKQotCQkJcGZyZWUocHJlX3ZhbHVlKTsKKwkJcGZyZWUocHJlX3ZhbHVlKTsK IAl9CiAKIAkvKiBSZW1lbWJlciB3aGVuIHdlIGxhc3Qgc3VjY2Vzc2Z1bGx5IGxvYWRlZCB0 aGUgY29uZmlnIGZpbGUuICovCkBAIC04ODMsMTAgKzg4Miw4IEBAIFBhcnNlQ29uZmlnRnAo RklMRSAqZnAsIGNvbnN0IGNoYXIgKmNvbmZpZ19maWxlLCBpbnQgZGVwdGgsIGludCBlbGV2 ZWwsCiAKIHBhcnNlX2Vycm9yOgogCQkvKiByZWxlYXNlIHN0b3JhZ2UgaWYgd2UgYWxsb2Nh dGVkIGFueSBvbiB0aGlzIGxpbmUgKi8KLQkJaWYgKG9wdF9uYW1lKQotCQkJcGZyZWUob3B0 X25hbWUpOwotCQlpZiAob3B0X3ZhbHVlKQotCQkJcGZyZWUob3B0X3ZhbHVlKTsKKwkJcGZy ZWUob3B0X25hbWUpOworCQlwZnJlZShvcHRfdmFsdWUpOwogCiAJCS8qIHJlcG9ydCB0aGUg ZXJyb3IgKi8KIAkJaWYgKHRva2VuID09IEdVQ19FT0wgfHwgdG9rZW4gPT0gMCkKQEAgLTEx MTksMTQgKzExMTYsMTAgQEAgRnJlZUNvbmZpZ1ZhcmlhYmxlcyhDb25maWdWYXJpYWJsZSAq bGlzdCkKIHN0YXRpYyB2b2lkCiBGcmVlQ29uZmlnVmFyaWFibGUoQ29uZmlnVmFyaWFibGUg Kml0ZW0pCiB7Ci0JaWYgKGl0ZW0tPm5hbWUpCi0JCXBmcmVlKGl0ZW0tPm5hbWUpOwotCWlm IChpdGVtLT52YWx1ZSkKLQkJcGZyZWUoaXRlbS0+dmFsdWUpOwotCWlmIChpdGVtLT5lcnJt c2cpCi0JCXBmcmVlKGl0ZW0tPmVycm1zZyk7Ci0JaWYgKGl0ZW0tPmZpbGVuYW1lKQotCQlw ZnJlZShpdGVtLT5maWxlbmFtZSk7CisJcGZyZWUoaXRlbS0+bmFtZSk7CisJcGZyZWUoaXRl bS0+dmFsdWUpOworCXBmcmVlKGl0ZW0tPmVycm1zZyk7CisJcGZyZWUoaXRlbS0+ZmlsZW5h bWUpOwogCXBmcmVlKGl0ZW0pOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCA5ZmJi ZmIxYmU1Li5hZGE3YmM2YjkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTc1MTMsOCAr NzUxMyw3IEBAIHBhcnNlX2FuZF92YWxpZGF0ZV92YWx1ZShzdHJ1Y3QgY29uZmlnX2dlbmVy aWMgKnJlY29yZCwKIAkJCQkJCQkJCW5hbWUsIHZhbHVlKSwKIAkJCQkJCQkgaGludG1zZyA/ IGVycmhpbnQoIiVzIiwgXyhoaW50bXNnKSkgOiAwKSk7CiAKLQkJCQkJaWYgKGhpbnRtc2cp Ci0JCQkJCQlwZnJlZShoaW50bXNnKTsKKwkJCQkJcGZyZWUoaGludG1zZyk7CiAJCQkJCXJl dHVybiBmYWxzZTsKIAkJCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL3Jl c293bmVyL3Jlc293bmVyLmMgYi9zcmMvYmFja2VuZC91dGlscy9yZXNvd25lci9yZXNvd25l ci5jCmluZGV4IGNlYjRiMGUzZjcuLjFkYmY0MTM5NmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL3Jlc293bmVyL3Jlc293bmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv cmVzb3duZXIvcmVzb3duZXIuYwpAQCAtNDA3LDggKzQwNyw3IEBAIFJlc291cmNlQXJyYXlH ZXRBbnkoUmVzb3VyY2VBcnJheSAqcmVzYXJyLCBEYXR1bSAqdmFsdWUpCiBzdGF0aWMgdm9p ZAogUmVzb3VyY2VBcnJheUZyZWUoUmVzb3VyY2VBcnJheSAqcmVzYXJyKQogewotCWlmIChy ZXNhcnItPml0ZW1zYXJyKQotCQlwZnJlZShyZXNhcnItPml0ZW1zYXJyKTsKKwlwZnJlZShy ZXNhcnItPml0ZW1zYXJyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9zb3J0L2xvZ3RhcGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvbG9ndGFwZS5jCmlu ZGV4IGMzODRmOThlMTMuLjY3Y2M2ZmQyMDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL3NvcnQvbG9ndGFwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvbG9ndGFw ZS5jCkBAIC03MzMsOCArNzMzLDcgQEAgbHRzQ3JlYXRlVGFwZShMb2dpY2FsVGFwZVNldCAq bHRzKQogdm9pZAogTG9naWNhbFRhcGVDbG9zZShMb2dpY2FsVGFwZSAqbHQpCiB7Ci0JaWYg KGx0LT5idWZmZXIpCi0JCXBmcmVlKGx0LT5idWZmZXIpOworCXBmcmVlKGx0LT5idWZmZXIp OwogCXBmcmVlKGx0KTsKIH0KIApAQCAtOTAxLDggKzkwMCw3IEBAIExvZ2ljYWxUYXBlUmV3 aW5kRm9yUmVhZChMb2dpY2FsVGFwZSAqbHQsIHNpemVfdCBidWZmZXJfc2l6ZSkKIAkJQXNz ZXJ0KGx0LT5mcm96ZW4pOwogCX0KIAotCWlmIChsdC0+YnVmZmVyKQotCQlwZnJlZShsdC0+ YnVmZmVyKTsKKwlwZnJlZShsdC0+YnVmZmVyKTsKIAogCS8qIHRoZSBidWZmZXIgaXMgbGF6 aWx5IGFsbG9jYXRlZCwgYnV0IHNldCB0aGUgc2l6ZSBoZXJlICovCiAJbHQtPmJ1ZmZlciA9 IE5VTEw7CkBAIC0xMDE4LDggKzEwMTYsNyBAQCBMb2dpY2FsVGFwZUZyZWV6ZShMb2dpY2Fs VGFwZSAqbHQsIFRhcGVTaGFyZSAqc2hhcmUpCiAJICovCiAJaWYgKCFsdC0+YnVmZmVyIHx8 IGx0LT5idWZmZXJfc2l6ZSAhPSBCTENLU1opCiAJewotCQlpZiAobHQtPmJ1ZmZlcikKLQkJ CXBmcmVlKGx0LT5idWZmZXIpOworCQlwZnJlZShsdC0+YnVmZmVyKTsKIAkJbHQtPmJ1ZmZl ciA9IHBhbGxvYyhCTENLU1opOwogCQlsdC0+YnVmZmVyX3NpemUgPSBCTENLU1o7CiAJfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC9zaGFyZWR0dXBsZXN0b3JlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3NoYXJlZHR1cGxlc3RvcmUuYwppbmRleCA5OTZj ZWYwN2Q0Li5kYWJhOWZkZjk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9zb3J0 L3NoYXJlZHR1cGxlc3RvcmUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3NoYXJl ZHR1cGxlc3RvcmUuYwpAQCAtNDQ0LDggKzQ0NCw3IEBAIHN0c19yZWFkX3R1cGxlKFNoYXJl ZFR1cGxlc3RvcmVBY2Nlc3NvciAqYWNjZXNzb3IsIHZvaWQgKm1ldGFfZGF0YSkKIAl7CiAJ CXNpemVfdAkJbmV3X3JlYWRfYnVmZmVyX3NpemU7CiAKLQkJaWYgKGFjY2Vzc29yLT5yZWFk X2J1ZmZlciAhPSBOVUxMKQotCQkJcGZyZWUoYWNjZXNzb3ItPnJlYWRfYnVmZmVyKTsKKwkJ cGZyZWUoYWNjZXNzb3ItPnJlYWRfYnVmZmVyKTsKIAkJbmV3X3JlYWRfYnVmZmVyX3NpemUg PSBNYXgoc2l6ZSwgYWNjZXNzb3ItPnJlYWRfYnVmZmVyX3NpemUgKiAyKTsKIAkJYWNjZXNz b3ItPnJlYWRfYnVmZmVyID0KIAkJCU1lbW9yeUNvbnRleHRBbGxvYyhhY2Nlc3Nvci0+Y29u dGV4dCwgbmV3X3JlYWRfYnVmZmVyX3NpemUpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcGFyc2VfbWFuaWZlc3QuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BhcnNlX21hbmlmZXN0LmMKaW5kZXggNjM2NGIwMTI4Mi4uZDY4MmJhYmJhMyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGFyc2VfbWFuaWZlc3QuYworKysgYi9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wYXJzZV9tYW5pZmVzdC5jCkBAIC01MzUsMjEgKzUz NSwxMiBAQCBqc29uX21hbmlmZXN0X2ZpbmFsaXplX2ZpbGUoSnNvbk1hbmlmZXN0UGFyc2VT dGF0ZSAqcGFyc2UpCiAJCQkJCQljaGVja3N1bV90eXBlLCBjaGVja3N1bV9sZW5ndGgsIGNo ZWNrc3VtX3BheWxvYWQpOwogCiAJLyogRnJlZSBtZW1vcnkgd2Ugbm8gbG9uZ2VyIG5lZWQu ICovCi0JaWYgKHBhcnNlLT5zaXplICE9IE5VTEwpCi0JewotCQlwZnJlZShwYXJzZS0+c2l6 ZSk7Ci0JCXBhcnNlLT5zaXplID0gTlVMTDsKLQl9Ci0JaWYgKHBhcnNlLT5hbGdvcml0aG0g IT0gTlVMTCkKLQl7Ci0JCXBmcmVlKHBhcnNlLT5hbGdvcml0aG0pOwotCQlwYXJzZS0+YWxn b3JpdGhtID0gTlVMTDsKLQl9Ci0JaWYgKHBhcnNlLT5jaGVja3N1bSAhPSBOVUxMKQotCXsK LQkJcGZyZWUocGFyc2UtPmNoZWNrc3VtKTsKLQkJcGFyc2UtPmNoZWNrc3VtID0gTlVMTDsK LQl9CisJcGZyZWUocGFyc2UtPnNpemUpOworCXBhcnNlLT5zaXplID0gTlVMTDsKKwlwZnJl ZShwYXJzZS0+YWxnb3JpdGhtKTsKKwlwYXJzZS0+YWxnb3JpdGhtID0gTlVMTDsKKwlwZnJl ZShwYXJzZS0+Y2hlY2tzdW0pOworCXBhcnNlLT5jaGVja3N1bSA9IE5VTEw7CiB9CiAKIC8q CkBAIC01OTEsMjEgKzU4MiwxMiBAQCBqc29uX21hbmlmZXN0X2ZpbmFsaXplX3dhbF9yYW5n ZShKc29uTWFuaWZlc3RQYXJzZVN0YXRlICpwYXJzZSkKIAljb250ZXh0LT5wZXJ3YWxyYW5n ZV9jYihjb250ZXh0LCB0bGksIHN0YXJ0X2xzbiwgZW5kX2xzbik7CiAKIAkvKiBGcmVlIG1l bW9yeSB3ZSBubyBsb25nZXIgbmVlZC4gKi8KLQlpZiAocGFyc2UtPnRpbWVsaW5lICE9IE5V TEwpCi0JewotCQlwZnJlZShwYXJzZS0+dGltZWxpbmUpOwotCQlwYXJzZS0+dGltZWxpbmUg PSBOVUxMOwotCX0KLQlpZiAocGFyc2UtPnN0YXJ0X2xzbiAhPSBOVUxMKQotCXsKLQkJcGZy ZWUocGFyc2UtPnN0YXJ0X2xzbik7Ci0JCXBhcnNlLT5zdGFydF9sc24gPSBOVUxMOwotCX0K LQlpZiAocGFyc2UtPmVuZF9sc24gIT0gTlVMTCkKLQl7Ci0JCXBmcmVlKHBhcnNlLT5lbmRf bHNuKTsKLQkJcGFyc2UtPmVuZF9sc24gPSBOVUxMOwotCX0KKwlwZnJlZShwYXJzZS0+dGlt ZWxpbmUpOworCXBhcnNlLT50aW1lbGluZSA9IE5VTEw7CisJcGZyZWUocGFyc2UtPnN0YXJ0 X2xzbik7CisJcGFyc2UtPnN0YXJ0X2xzbiA9IE5VTEw7CisJcGZyZWUocGFyc2UtPmVuZF9s c24pOworCXBhcnNlLT5lbmRfbHNuID0gTlVMTDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Ny Yy9jb21tb24vY29tcHJlc3Npb24uYyBiL3NyYy9jb21tb24vY29tcHJlc3Npb24uYwppbmRl eCBkYTNjMjkxYzBmLi5iNjNkNDI4NDRmIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2NvbXBy ZXNzaW9uLmMKKysrIGIvc3JjL2NvbW1vbi9jb21wcmVzc2lvbi5jCkBAIC0xODgsOCArMTg4 LDcgQEAgcGFyc2VfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbihwZ19jb21wcmVzc19hbGdvcml0 aG0gYWxnb3JpdGhtLCBjaGFyICpzcGVjaWZpY2F0aW8KIAogCQkvKiBSZWxlYXNlIG1lbW9y eSwganVzdCB0byBiZSB0aWR5LiAqLwogCQlwZnJlZShrZXl3b3JkKTsKLQkJaWYgKHZhbHVl ICE9IE5VTEwpCi0JCQlwZnJlZSh2YWx1ZSk7CisJCXBmcmVlKHZhbHVlKTsKIAogCQkvKgog CQkgKiBJZiB3ZSBnb3QgYW4gZXJyb3Igb3IgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhl IHN0cmluZywgc3RvcC4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCmlu ZGV4IDkzMzlmMjkzMDMuLjQ3ODBiMmEwYTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuaApAQCAtNDQyLDggKzQ0Miw3IEBAIHdhbHJjdl9jbGVhcl9yZXN1bHQo V2FsUmN2RXhlY1Jlc3VsdCAqd2FscmVzKQogCWlmICghd2FscmVzKQogCQlyZXR1cm47CiAK LQlpZiAod2FscmVzLT5lcnIpCi0JCXBmcmVlKHdhbHJlcy0+ZXJyKTsKKwlwZnJlZSh3YWxy ZXMtPmVycik7CiAKIAlpZiAod2FscmVzLT50dXBsZXN0b3JlKQogCQl0dXBsZXN0b3JlX2Vu ZCh3YWxyZXMtPnR1cGxlc3RvcmUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9wbHBl cmwuYyBiL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMKaW5kZXggYWYzNTRhNjhjYy4uZjZmYzQz MDNmZCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9wbHBlcmwuYworKysgYi9zcmMvcGwv cGxwZXJsL3BscGVybC5jCkBAIC00MDY0LDggKzQwNjQsNyBAQCBwbHBlcmxfdXRpbF9lbG9n KGludCBsZXZlbCwgU1YgKm1zZykKIAkJZWRhdGEgPSBDb3B5RXJyb3JEYXRhKCk7CiAJCUZs dXNoRXJyb3JTdGF0ZSgpOwogCi0JCWlmIChjbXNnKQotCQkJcGZyZWUoY21zZyk7CisJCXBm cmVlKGNtc2cpOwogCiAJCS8qIFB1bnQgdGhlIGVycm9yIHRvIFBlcmwgKi8KIAkJY3JvYWtf Y3N0cihlZGF0YS0+bWVzc2FnZSk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vcGxw eV9lbG9nLmMgYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmMKaW5kZXggN2M2MjdlYWNm Yi4uNTA1OGM2YTIwNSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5j CisrKyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuYwpAQCAtMTQxLDEwICsxNDEsOCBA QCBQTHlfZWxvZ19pbXBsKGludCBlbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAJewog CQlpZiAoZm10KQogCQkJcGZyZWUoZW1zZy5kYXRhKTsKLQkJaWYgKHhtc2cpCi0JCQlwZnJl ZSh4bXNnKTsKLQkJaWYgKHRibXNnKQotCQkJcGZyZWUodGJtc2cpOworCQlwZnJlZSh4bXNn KTsKKwkJcGZyZWUodGJtc2cpOwogCQlQeV9YREVDUkVGKGV4Yyk7CiAJCVB5X1hERUNSRUYo dmFsKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vcGxweV9leGVjLmMgYi9z cmMvcGwvcGxweXRob24vcGxweV9leGVjLmMKaW5kZXggMTUwYjNhNTk3Ny4uMWE3YzRiNmE3 MiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3BscHlfZXhlYy5jCisrKyBiL3NyYy9w bC9wbHB5dGhvbi9wbHB5X2V4ZWMuYwpAQCAtOTgxLDEyICs5ODEsOSBAQCBQTHlfbW9kaWZ5 X3R1cGxlKFBMeVByb2NlZHVyZSAqcHJvYywgUHlPYmplY3QgKnBsdGQsIFRyaWdnZXJEYXRh ICp0ZGF0YSwKIAkJUHlfWERFQ1JFRihwbGtleXMpOwogCQlQeV9YREVDUkVGKHBsdmFsKTsK IAotCQlpZiAobW9kdmFsdWVzKQotCQkJcGZyZWUobW9kdmFsdWVzKTsKLQkJaWYgKG1vZG51 bGxzKQotCQkJcGZyZWUobW9kbnVsbHMpOwotCQlpZiAobW9kcmVwbHMpCi0JCQlwZnJlZSht b2RyZXBscyk7CisJCXBmcmVlKG1vZHZhbHVlcyk7CisJCXBmcmVlKG1vZG51bGxzKTsKKwkJ cGZyZWUobW9kcmVwbHMpOwogCiAJCVBHX1JFX1RIUk9XKCk7CiAJfQpkaWZmIC0tZ2l0IGEv c3JjL3BsL3BscHl0aG9uL3BscHlfcGxweW1vZHVsZS5jIGIvc3JjL3BsL3BscHl0aG9uL3Bs cHlfcGxweW1vZHVsZS5jCmluZGV4IGZhMDhmMGRiZmIuLjkxYWIzMTk3MDAgMTAwNjQ0Ci0t LSBhL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3BscHltb2R1bGUuYworKysgYi9zcmMvcGwvcGxw eXRob24vcGxweV9wbHB5bW9kdWxlLmMKQEAgLTQ1Miw4ICs0NTIsNyBAQCBQTHlfb3V0cHV0 KHZvbGF0aWxlIGludCBsZXZlbCwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQ eU9iamVjdCAqa3cpCiAJCQkJCXJldHVybiBOVUxMOwogCQkJCX0KIAotCQkJCWlmIChtZXNz YWdlKQotCQkJCQlwZnJlZShtZXNzYWdlKTsKKwkJCQlwZnJlZShtZXNzYWdlKTsKIAkJCQlt ZXNzYWdlID0gb2JqZWN0X3RvX3N0cmluZyh2YWx1ZSk7CiAJCQl9CiAJCQllbHNlIGlmIChz dHJjbXAoa2V5d29yZCwgImRldGFpbCIpID09IDApCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw eXRob24vcGxweV90eXBlaW8uYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jCmlu ZGV4IDcwMThjOWQ0MDQuLjlmOWY1ZWVjODQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5dGhv bi9wbHB5X3R5cGVpby5jCisrKyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jCkBA IC0xNzUsOCArMTc1LDcgQEAgUEx5X2lucHV0X3NldHVwX3R1cGxlKFBMeURhdHVtVG9PYiAq YXJnLCBUdXBsZURlc2MgZGVzYywgUEx5UHJvY2VkdXJlICpwcm9jKQogCS8qIChSZSlhbGxv Y2F0ZSBhdHRzIGFycmF5IGFzIG5lZWRlZCAqLwogCWlmIChhcmctPnUudHVwbGUubmF0dHMg IT0gZGVzYy0+bmF0dHMpCiAJewotCQlpZiAoYXJnLT51LnR1cGxlLmF0dHMpCi0JCQlwZnJl ZShhcmctPnUudHVwbGUuYXR0cyk7CisJCXBmcmVlKGFyZy0+dS50dXBsZS5hdHRzKTsKIAkJ YXJnLT51LnR1cGxlLm5hdHRzID0gZGVzYy0+bmF0dHM7CiAJCWFyZy0+dS50dXBsZS5hdHRz ID0gKFBMeURhdHVtVG9PYiAqKQogCQkJTWVtb3J5Q29udGV4dEFsbG9jWmVybyhhcmctPm1j eHQsCkBAIC0yMjUsOCArMjI0LDcgQEAgUEx5X291dHB1dF9zZXR1cF90dXBsZShQTHlPYlRv RGF0dW0gKmFyZywgVHVwbGVEZXNjIGRlc2MsIFBMeVByb2NlZHVyZSAqcHJvYykKIAkvKiAo UmUpYWxsb2NhdGUgYXR0cyBhcnJheSBhcyBuZWVkZWQgKi8KIAlpZiAoYXJnLT51LnR1cGxl Lm5hdHRzICE9IGRlc2MtPm5hdHRzKQogCXsKLQkJaWYgKGFyZy0+dS50dXBsZS5hdHRzKQot CQkJcGZyZWUoYXJnLT51LnR1cGxlLmF0dHMpOworCQlwZnJlZShhcmctPnUudHVwbGUuYXR0 cyk7CiAJCWFyZy0+dS50dXBsZS5uYXR0cyA9IGRlc2MtPm5hdHRzOwogCQlhcmctPnUudHVw bGUuYXR0cyA9IChQTHlPYlRvRGF0dW0gKikKIAkJCU1lbW9yeUNvbnRleHRBbGxvY1plcm8o YXJnLT5tY3h0LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X29hdF9ob29r cy90ZXN0X29hdF9ob29rcy5jIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X29hdF9ob29rcy90 ZXN0X29hdF9ob29rcy5jCmluZGV4IDRiNGUyNTljZDIuLjY1ZjIxYjEyMDkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9vYXRfaG9va3MvdGVzdF9vYXRfaG9va3MuYwor KysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfb2F0X2hvb2tzL3Rlc3Rfb2F0X2hvb2tzLmMK QEAgLTI0OSwxMCArMjQ5LDggQEAgZW1pdF9hdWRpdF9tZXNzYWdlKGNvbnN0IGNoYXIgKnR5 cGUsIGNvbnN0IGNoYXIgKmhvb2ssIGNoYXIgKmFjdGlvbiwgY2hhciAqb2JqTmEKIAkJCQkJ IGVycm1zZygiaW4gJXM6ICVzICVzICVzIiwgaG9vaywgd2hvLCB0eXBlLCBhY3Rpb24pKSk7 CiAJfQogCi0JaWYgKGFjdGlvbikKLQkJcGZyZWUoYWN0aW9uKTsKLQlpZiAob2JqTmFtZSkK LQkJcGZyZWUob2JqTmFtZSk7CisJcGZyZWUoYWN0aW9uKTsKKwlwZnJlZShvYmpOYW1lKTsK IH0KIAogc3RhdGljIHZvaWQKLS0gCjIuMzcuMQoK --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; name="0004-Remove-unneeded-null-pointer-checks-before-PQfreemem.patch" Content-Disposition: attachment; filename*0="0004-Remove-unneeded-null-pointer-checks-before-PQfreemem.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmODMzMmU1ZDI3OTdiMWU3ZDQwODFhNzQ2NDEyYTQ5Zjg1OTVkMzhmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNjo1MTo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNC81XSBSZW1vdmUgdW5uZWVkZWQgbnVsbCBwb2ludGVyIGNoZWNrcyBiZWZv cmUgUFFmcmVlbWVtKCkKCi0tLQogY29udHJpYi92YWN1dW1sby92YWN1dW1sby5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA5ICsrKy0tLS0tLQogLi4uL3JlcGxpY2F0aW9u L2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jICAgICAgfCA2ICsrLS0tLQog c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYyAgICAgICAgICAgICAgICAgICAg ICAgfCA5ICsrKy0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDE2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdmFjdXVtbG8vdmFjdXVtbG8u YyBiL2NvbnRyaWIvdmFjdXVtbG8vdmFjdXVtbG8uYwppbmRleCBiN2M4ZjJjODA1Li4yNjRi ODc5YmQzIDEwMDY0NAotLS0gYS9jb250cmliL3ZhY3V1bWxvL3ZhY3V1bWxvLmMKKysrIGIv Y29udHJpYi92YWN1dW1sby92YWN1dW1sby5jCkBAIC0yMzEsMTIgKzIzMSw5IEBAIHZhY3V1 bWxvKGNvbnN0IGNoYXIgKmRhdGFiYXNlLCBjb25zdCBzdHJ1Y3QgX3BhcmFtICpwYXJhbSkK IAkJCXBnX2xvZ19lcnJvcigiJXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CiAJCQlQUWNs ZWFyKHJlcyk7CiAJCQlQUWZpbmlzaChjb25uKTsKLQkJCWlmIChzY2hlbWEgIT0gTlVMTCkK LQkJCQlQUWZyZWVtZW0oc2NoZW1hKTsKLQkJCWlmICh0YWJsZSAhPSBOVUxMKQotCQkJCVBR ZnJlZW1lbSh0YWJsZSk7Ci0JCQlpZiAoZmllbGQgIT0gTlVMTCkKLQkJCQlQUWZyZWVtZW0o ZmllbGQpOworCQkJUFFmcmVlbWVtKHNjaGVtYSk7CisJCQlQUWZyZWVtZW0odGFibGUpOwor CQkJUFFmcmVlbWVtKGZpZWxkKTsKIAkJCXJldHVybiAtMTsKIAkJfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVj ZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGli cHF3YWxyZWNlaXZlci5jCmluZGV4IDI4NjUwMjQ1MjQuLjdmNjk3YjBmMjkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxy ZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2 ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBAIC03NDEsOCArNzQxLDcgQEAgc3RhdGljIHZvaWQK IGxpYnBxcmN2X2Rpc2Nvbm5lY3QoV2FsUmVjZWl2ZXJDb25uICpjb25uKQogewogCVBRZmlu aXNoKGNvbm4tPnN0cmVhbUNvbm4pOwotCWlmIChjb25uLT5yZWN2QnVmICE9IE5VTEwpCi0J CVBRZnJlZW1lbShjb25uLT5yZWN2QnVmKTsKKwlQUWZyZWVtZW0oY29ubi0+cmVjdkJ1Zik7 CiAJcGZyZWUoY29ubik7CiB9CiAKQEAgLTc2OCw4ICs3NjcsNyBAQCBsaWJwcXJjdl9yZWNl aXZlKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY2hhciAqKmJ1ZmZlciwKIHsKIAlpbnQJCQly YXdsZW47CiAKLQlpZiAoY29ubi0+cmVjdkJ1ZiAhPSBOVUxMKQotCQlQUWZyZWVtZW0oY29u bi0+cmVjdkJ1Zik7CisJUFFmcmVlbWVtKGNvbm4tPnJlY3ZCdWYpOwogCWNvbm4tPnJlY3ZC dWYgPSBOVUxMOwogCiAJLyogVHJ5IHRvIHJlY2VpdmUgYSBDb3B5RGF0YSBtZXNzYWdlICov CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcmVjZWl2ZWxvZy5jIGIvc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYwppbmRleCA5NzZkMWU3M2IxLi41ZjZm ZDMyMDFmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcmVjZWl2ZWxvZy5j CisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMKQEAgLTg1OCw4ICs4 NTgsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJl YW0sCiAJfQogCiBlcnJvcjoKLQlpZiAoY29weWJ1ZiAhPSBOVUxMKQotCQlQUWZyZWVtZW0o Y29weWJ1Zik7CisJUFFmcmVlbWVtKGNvcHlidWYpOwogCXJldHVybiBOVUxMOwogfQogCkBA IC05NDAsOCArOTM5LDcgQEAgQ29weVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25uLCBsb25n IHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogCWNoYXIJICAgKmNvcHlidWYgPSBO VUxMOwogCWludAkJCXJhd2xlbjsKIAotCWlmICgqYnVmZmVyICE9IE5VTEwpCi0JCVBRZnJl ZW1lbSgqYnVmZmVyKTsKKwlQUWZyZWVtZW0oKmJ1ZmZlcik7CiAJKmJ1ZmZlciA9IE5VTEw7 CiAKIAkvKiBUcnkgdG8gcmVjZWl2ZSBhIENvcHlEYXRhIG1lc3NhZ2UgKi8KQEAgLTEyMDQs OCArMTIwMiw3IEBAIEhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVh bUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLAogCQl9CiAJCXN0aWxsX3NlbmRpbmcgPSBm YWxzZTsKIAl9Ci0JaWYgKGNvcHlidWYgIT0gTlVMTCkKLQkJUFFmcmVlbWVtKGNvcHlidWYp OworCVBRZnJlZW1lbShjb3B5YnVmKTsKIAkqc3RvcHBvcyA9IGJsb2NrcG9zOwogCXJldHVy biByZXM7CiB9Ci0tIAoyLjM3LjEKCg== --------------wNqj2HgBTRycqm1nmCJSSnVe Content-Type: text/plain; charset=UTF-8; name="0005-Remove-unneeded-null-pointer-check-before-FreeDir.patch" Content-Disposition: attachment; filename*0="0005-Remove-unneeded-null-pointer-check-before-FreeDir.patch" Content-Transfer-Encoding: base64 RnJvbSAwNTg0ZmIyZTZiMDk3OThjYTAyNTEwN2VmNDlkNWYyODk3N2NmMzFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNjo1MTo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNS81XSBSZW1vdmUgdW5uZWVkZWQgbnVsbCBwb2ludGVyIGNoZWNrIGJlZm9y ZSBGcmVlRGlyKCkKCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMtZmlsZS5sIHwg MyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy1maWxlLmwgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Yy1maWxlLmwKaW5kZXggNmQwZTdiNGRjNS4uYWNjMzQ4 NThjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMtZmlsZS5sCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLWZpbGUubApAQCAtMTA4Niw4ICsxMDg2 LDcgQEAgUGFyc2VDb25maWdEaXJlY3RvcnkoY29uc3QgY2hhciAqaW5jbHVkZWRpciwKIAlz dGF0dXMgPSB0cnVlOwogCiBjbGVhbnVwOgotCWlmIChkKQotCQlGcmVlRGlyKGQpOworCUZy ZWVEaXIoZCk7CiAJcGZyZWUoZGlyZWN0b3J5KTsKIAlyZXR1cm4gc3RhdHVzOwogfQotLSAK Mi4zNy4xCgo= --------------wNqj2HgBTRycqm1nmCJSSnVe--