Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vYmJR-00E4De-32 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Dec 2025 14:27:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vYmJP-007kiL-2o for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Dec 2025 14:27:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vYmJO-007kiC-31 for pgsql-hackers@lists.postgresql.org; Thu, 25 Dec 2025 14:27:32 +0000 Received: from forward500a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d500]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vYmJJ-002ZI7-1w for pgsql-hackers@lists.postgresql.org; Thu, 25 Dec 2025 14:27:30 +0000 Received: from mail-nwsmtp-mxback-production-main-13.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-13.vla.yp-c.yandex.net [IPv6:2a02:6b8:c2a:29c:0:640:7f5:0]) by forward500a.mail.yandex.net (Yandex) with ESMTPS id D987DC234F; Thu, 25 Dec 2025 17:27:20 +0300 (MSK) Received: from mail.360.yandex.ru (2a02:6b8:c15:51c:0:640:8647:0 [2a02:6b8:c15:51c:0:640:8647:0]) by mail-nwsmtp-mxback-production-main-13.vla.yp-c.yandex.net (mxback/Yandex) with HTTPS id IReRLF2um4Y0-j25GCpae; Thu, 25 Dec 2025 17:27:20 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.ru; s=mail; t=1766672840; bh=ni+nTiQvjDCAmKpQDOxk9mQi2dIK1E6zLWQwU28V/Gg=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=ZvxIkGn1A+TgMyvy8gaatoQGs6sC+ouDom6sBJC0LtzRtFTdyn5RuzBBKvOBLOvYD rQCvjPwPIAhvXil1Pqt2dW99FhN6zZKFauzcB5CmffELJWgOgTxcp6ZISdHZ141l+2 J/eXeb6nvQ8anfC5T5Cwn0ehd25Ke07bU8oxA2ig= Authentication-Results: mail-nwsmtp-mxback-production-main-13.vla.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.ru Received: by mail-sendbernar-production-main-90.vla.yp-c.yandex.net (sendbernar/Yandex) with HTTPS id 87d5e265cb10c9dc4a3beecd3bbb4112; Thu, 25 Dec 2025 17:27:19 +0300 From: =?utf-8?B?0JDQvdC00YDQtdC5INCa0LDQt9Cw0YfQutC+0LI=?= To: Sami Imseih , Lukas Fittl , Michael Paquier Cc: PostgreSQL Hackers , Marko M In-Reply-To: References: Subject: Re: [PATCH] Optionally record Plan IDs to track plan changes for a query MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Thu, 25 Dec 2025 17:27:19 +0300 Message-Id: <1459301766672119@mail.360.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.900221.49cd4b58-7c78-42e5-a261-f615fc122742" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------==--bound.900221.49cd4b58-7c78-42e5-a261-f615fc122742 Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PkRlYXIgUG9zdGdyZVNRTCBIYWNrZXJzLDwvZGl2Pjxk aXY+wqA8L2Rpdj48ZGl2PknigJlkIGxpa2UgdG8gcHJvcG9zZSBhIGZvbGxvdy11cCBmaXggZm9y IGEgY3Jhc2ggY2F1c2VkIGJ5IGp1bWJsaW5nIG9mIGVtcHR5PC9kaXY+PGRpdj5hcnJheSBmaWVs ZHMgaW4gUGxhbiBzdHJ1Y3R1cmVzIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHY1LTAwMDMg cGF0Y2guPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+Rm9yIHlvdXIgY29udmVuaWVuY2UsIEkgYXR0 YWNoZWQgYSBtaW5pbWFsIHJlcHJvZHVjaWJsZSBleGFtcGxlOjwvZGl2PjxkaXY+YGBgPC9kaXY+ PGRpdj5jcmVhdGUgdGFibGUgZm9vIGFzIHNlbGVjdCBpIGFzIG51bSBmcm9tIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBpOzwvZGl2PjxkaXY+c2V0IGNvbXB1dGVfcGxhbl9pZCB0byB0cnVlOzwv ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2Pi0tIHNlcnZlciBjbG9zZWQgdGhlIGNvbm5lY3Rpb24gdW5l eHBlY3RlZGx5PC9kaXY+PGRpdj5leHBsYWluIChjb3N0cyBvZmYsIHZlcmJvc2UpPC9kaXY+PGRp dj5zZWxlY3QgbWluKG51bSkgZnJvbSBmb287PC9kaXY+PGRpdj5gYGA8L2Rpdj48ZGl2PkluIHRo aXMgY2FzZSB0aGUgc2NhbGFyIGFnZ3JlZ2F0ZSBvcGVyYXRvciBgbWluKG51bSlgIGlzIGV4cHJl c3NlZCBhcyBhbiBBZ2c8L2Rpdj48ZGl2Pm5vZGUgd2l0aCBhbiBlbXB0eSBhcnJheSBvZiBHUk9V UCBCWSBhdHRyaWJ1dGVzLiBUaGUganVtYmxlIGxvZ2ljIGNhbuKAmXQgaGFuZGxlPC9kaXY+PGRp dj5lbXB0aW5lc3MgYW5kIHRlcm1pbmF0ZXMgdGhlIGJhY2tlbmQuIFNpbWlsYXIgYmVoYXZpb3Ig Y291bGQgaGFwcGVuIGR1cmluZzwvZGl2PjxkaXY+anVtYmxpbmcgYW4gYXJiaXRyYXJ5IHBsYW4g bm9kZSB3aGljaCBjb250YWlucyBhbiBhcnJheS48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5QYXRj aHNldCBvdmVydmlldzo8L2Rpdj48ZGl2PnY2LTAwMDE8L2Rpdj48ZGl2Pi0tLS0tLS0tLS0tPC9k aXY+PGRpdj5BZ2dyZWdhdGVzIGNoYW5nZXMgZnJvbSB2NS0wMDAxLi52NS0wMDAzIGFuZCByZWJh c2VzIG9udG8gbWFzdGVyPC9kaXY+PGRpdj5jb21taXQgYjM5MDEzYjdiMWIxMTZiNWQ5YmU1MWYw OTE5YjQ3MmI1OGIzYTI4ZC48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj52Ni0wMDAyPC9kaXY+PGRp dj4tLS0tLS0tLS0tLTwvZGl2PjxkaXY+Rml4ZXMgdGhlIGxhY2sgb2YgZW1wdHktYXJyYXkgaGFu ZGxpbmcgZHVyaW5nIGp1bWJsaW5nIChvcmlnaW5hbGx5IGFwcGxpZXMgb248L2Rpdj48ZGl2PnRv cCBvZiB2Ni0wMDAwKS4gRm9yIGFueW9uZSB0ZXN0aW5nIG9uIHRoZSB2NSB2ZXJzaW9ucywgdjYt MDAwMSBjYW4gYmUgZWFzaWx5PC9kaXY+PGRpdj5hcHBsaWVkIG9uIHRvcCBvZiB2NS0wMDAzLjwv ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2Pi0tPC9kaXY+PGRpdj5TaW5jZXJlbHksIEFuZHJleSBLYXph Y2hrb3Y8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4= ------==--bound.900221.49cd4b58-7c78-42e5-a261-f615fc122742 Content-Disposition: attachment; filename="v6-0002-Fix-jumbling-of-empty-arrays-in-plan-nodes.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="v6-0002-Fix-jumbling-of-empty-arrays-in-plan-nodes.patch" RnJvbSA3MGM5NzIwYThlZGQ4NGZkMzFjNGU5YTliMTk3ODc2NWRmNWRiYWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgS2F6YWNoa292IDxhbmRyZXkua2F6YWNoa292QHRh bnRvcmxhYnMucnU+CkRhdGU6IFdlZCwgMjQgRGVjIDIwMjUgMTg6NDc6MzQgKzAzMDAKU3ViamVj dDogW1BBVENIIHY2IDIvMl0gRml4IGp1bWJsaW5nIG9mIGVtcHR5IGFycmF5cyBpbiBwbGFuIG5v ZGVzCgotLS0KIHNyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyB8IDUgKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9u b2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKaW5kZXggNTcxNzQ4MGRiZjUuLmEwZDI4ODI3MjY5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKKysrIGIvc3Jj L2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCkBAIC01NTUsNyArNTU1LDEwIEBAIGRv IHsgXAogCQlBcHBlbmRKdW1ibGUoanN0YXRlLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBleHBy LT5pdGVtLT53b3Jkcywgc2l6ZW9mKGJpdG1hcHdvcmQpICogZXhwci0+aXRlbS0+bndvcmRzKTsg XAogfSB3aGlsZSgwKQogI2RlZmluZSBKVU1CTEVfQVJSQVkoaXRlbSwgbGVuKSBcCi0JQXBwZW5k SnVtYmxlKGpzdGF0ZSwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgZXhwci0+aXRlbSwgc2l6ZW9m KCooZXhwci0+aXRlbSkpICogbGVuKQorCWRvIHsgXAorCQlpZiAobGVuKSBcCisJCQlBcHBlbmRK dW1ibGUoanN0YXRlLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBleHByLT5pdGVtLCBzaXplb2Yo KihleHByLT5pdGVtKSkgKiBsZW4pOyBcCisJfSB3aGlsZSAoMCkKICNkZWZpbmUgSlVNQkxFX1NU UklORyhzdHIpIFwKIGRvIHsgXAogCWlmIChleHByLT5zdHIpIFwKLS0gCjIuNDMuMAoK ------==--bound.900221.49cd4b58-7c78-42e5-a261-f615fc122742 Content-Disposition: attachment; filename="v6-0001-Added-plan_id-to-the-core.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="v6-0001-Added-plan_id-to-the-core.patch" RnJvbSA0OTUxODcxMzc3NWMzZDI0YmE4ZTdhODAyYzgxNzA0MjE0M2U1NDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgS2F6YWNoa292IDxhbmRyZXkua2F6YWNoa292QHRh bnRvcmxhYnMucnU+CkRhdGU6IFR1ZSwgMTYgRGVjIDIwMjUgMTk6NTI6MzkgKzAzMDAKU3ViamVj dDogW1BBVENIIHY2IDEvMl0gQWRkZWQgcGxhbl9pZCB0byB0aGUgY29yZS4KCjEuIENoYW5nZWQg YSBqdW1ibGluZyBpbml0aWFsaXphdGlvbiByb3V0aW5lCjIuIEp1bWJsZU5vZGUoKSBpcyBhbiBl bnRyeSBwb2ludCBmb3IganVtYmxpbmcKMy4gQXBwZW5kSnVtYmxlKCkgcmVtYWlucyBzdGF0aWMK NC4gZ3VjLWNvbXB1dGUtcGxhbi1pZCBoYXMgYmVlbiBhZGRlZAo1LiBnZW5fbm9kZV9zdXBwb3J0 LnBsIGNoYW5nZWQgdG8gcHJvY2VzcyBwbGFuIG5vZGUgc3RydWN0dXJlcwo2LiBwZ19ub2RlX2F0 dHIgaGFzIGJlZW4gYWRkZWQgdG8gY2VydGFpbiBzdHJ1Y3R1cmVzL2ZpZWxkcwotLS0KIGRvYy9z cmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKysrCiBkb2Mv c3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgMSArCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgICAgICAgICAgICAgfCAgMTcgKysKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAxMCArLQogc3JjL2JhY2tl bmQvbm9kZXMvZ2VuX25vZGVfc3VwcG9ydC5wbCAgICAgICAgIHwgIDM0ICsrKy0KIHNyYy9iYWNr ZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyAgICAgICAgICB8IDE4MCArKysrKysrKysrKy0t LS0tLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAx OSArKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgICA5 ICsKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQuYyAgICAgICB8ICAgMyAr CiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAgIDcgKy0K IHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0ICAgICB8ICAgNyArCiBz cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgMTggKysKIHNy Yy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgNTAgKystLS0KIHNyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaCAgICAgICAgICAgICAgIHwgIDM1ICsrKy0KIHNyYy9p bmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmggICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dCAgICAgICAgIHwgIDExICsrCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDkgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsICAgICAgICAgICAgICB8ICAgNCArCiAyMyBmaWxlcyBj aGFuZ2VkLCAzNzEgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRl eCA0MDVjOTY4OWJkMC4uNGNkYWY5YzQ5YmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTg4NjQsNiArODg2NCw0 MCBAQCBDT1BZIHBvc3RncmVzX2xvZyBGUk9NICcvZnVsbC9wYXRoL3RvL2xvZ2ZpbGUuY3N2JyBX SVRIIGNzdjsKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1jb21wdXRlLXBsYW4taWQiIHhyZWZsYWJlbD0iY29tcHV0 ZV9wbGFuX2lkIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNvbXB1dGVfcGxhbl9pZDwvdmFybmFt ZT4gKDx0eXBlPmVudW08L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFy eT48dmFybmFtZT5jb21wdXRlX3BsYW5faWQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEVuYWJsZXMgaW4tY29yZSBjb21wdXRh dGlvbiBvZiBhIHBsYW4gaWRlbnRpZmllci4KKyAgICAgICAgUGxhbiBpZGVudGlmaWVycyBjYW4g YmUgZGlzcGxheWVkIGluIHRoZSA8bGluaworICAgICAgICBsaW5rZW5kPSJtb25pdG9yaW5nLXBn LXN0YXQtYWN0aXZpdHktdmlldyI+PHN0cnVjdG5hbWU+cGdfc3RhdF9hY3Rpdml0eTwvc3RydWN0 bmFtZT48L2xpbms+CisgICAgICAgIHZpZXcgb3IgdXNpbmcgPGNvbW1hbmQ+RVhQTEFJTjwvY29t bWFuZD4uCisgICAgICAgIE5vdGUgdGhhdCBhbiBleHRlcm5hbCBtb2R1bGUgY2FuIGFsdGVybmF0 aXZlbHkgYmUgdXNlZCBpZiB0aGUKKyAgICAgICAgaW4tY29yZSBwbGFuIGlkZW50aWZpZXIgY29t cHV0YXRpb24gbWV0aG9kIGlzIG5vdCBhY2NlcHRhYmxlLgorICAgICAgICBJbiB0aGlzIGNhc2Us IGluLWNvcmUgY29tcHV0YXRpb24gbXVzdCBiZSBhbHdheXMgZGlzYWJsZWQuCisgICAgICAgIFZh bGlkIHZhbHVlcyBhcmUgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiAoYWx3YXlzIGRpc2FibGVkKSwK KyAgICAgICAgPGxpdGVyYWw+b248L2xpdGVyYWw+IChhbHdheXMgZW5hYmxlZCksIDxsaXRlcmFs PmF1dG88L2xpdGVyYWw+LAorICAgICAgICB3aGljaCBsZXRzIG1vZHVsZXMgdGhhdCB1dGlsaXpl IHBsYW4gaWRlbnRpZmllcnMgZW5hYmxlCisgICAgICAgIGl0IGF1dG9tYXRpY2FsbHksIGFuZCA8 bGl0ZXJhbD5yZWdyZXNzPC9saXRlcmFsPiB3aGljaAorICAgICAgICBoYXMgdGhlIHNhbWUgZWZm ZWN0IGFzIDxsaXRlcmFsPm9uPC9saXRlcmFsPiwgZXhjZXB0IHRoYXQgdGhlCisgICAgICAgIHF1 ZXJ5IGlkZW50aWZpZXIgaXMgbm90IHNob3duIGluIHRoZSA8bGl0ZXJhbD5FWFBMQUlOPC9saXRl cmFsPiBvdXRwdXQKKyAgICAgICAgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBhdXRvbWF0ZWQgcmVn cmVzc2lvbiB0ZXN0aW5nLgorICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5hdXRvPC9s aXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPG5vdGU+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVG8gZW5zdXJlIHRoYXQgb25seSBvbmUgcGxhbiBpZGVudGlmaWVyIGlzIGNhbGN1 bGF0ZWQgYW5kCisgICAgICAgICBkaXNwbGF5ZWQsIGV4dGVuc2lvbnMgdGhhdCBjYWxjdWxhdGUg cGxhbiBpZGVudGlmaWVycyBzaG91bGQKKyAgICAgICAgIHRocm93IGFuIGVycm9yIGlmIGEgcGxh biBpZGVudGlmaWVyIGhhcyBhbHJlYWR5IGJlZW4gY29tcHV0ZWQuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L25vdGU+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtbG9nLXN0YXRlbWVudC1zdGF0cyI+CiAgICAg ICA8dGVybT48dmFybmFtZT5sb2dfc3RhdGVtZW50X3N0YXRzPC92YXJuYW1lPiAoPHR5cGU+Ym9v bGVhbjwvdHlwZT4pCiAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKaW5kZXggODE3 ZmQ5ZjRjYTcuLjllOThmZDJjMTk4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTk4Myw2ICs5ODMs MjIgQEAgcG9zdGdyZXMgICAyNzA5MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNz ICAgMTE6MzQgICAwOjAwIHBvc3RncmVzOiBzZXIKICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg PC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5wbGFuX2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgSWRlbnRpZmllciBvZiB0aGlzIGJhY2tlbmQncyBtb3N0 IHJlY2VudCBxdWVyeSBwbGFuLiBJZgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zdGF0ZTwvc3RydWN0 ZmllbGQ+IGlzIDxsaXRlcmFsPmFjdGl2ZTwvbGl0ZXJhbD4gdGhpcworICAgICAgIGZpZWxkIHNo b3dzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIHF1ZXJ5IHBsYW4u IEluCisgICAgICAgYWxsIG90aGVyIHN0YXRlcywgaXQgc2hvd3MgdGhlIGlkZW50aWZpZXIgb2Yg bGFzdCBxdWVyeSBwbGFuIHRoYXQKKyAgICAgICB3YXMgZXhlY3V0ZWQuICBQbGFuIGlkZW50aWZp ZXJzIGFyZSBub3QgY29tcHV0ZWQgYnkgZGVmYXVsdCBzbyB0aGlzCisgICAgICAgZmllbGQgd2ls bCBiZSBudWxsIHVubGVzcyA8eHJlZiBsaW5rZW5kPSJndWMtY29tcHV0ZS1wbGFuLWlkIi8+Cisg ICAgICAgcGFyYW1ldGVyIGlzIGVuYWJsZWQgb3IgYSB0aGlyZC1wYXJ0eSBtb2R1bGUgdGhhdCBj b21wdXRlcyBwbGFuCisgICAgICAgaWRlbnRpZmllcnMgaXMgY29uZmlndXJlZC4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+cXVlcnk8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBl PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDBhMGY5NWY2YmI5Li4zNTc0 NGE4MmYwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtOTE5LDYgKzkx OSw3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfYWN0aXZpdHkgQVMKICAgICAgICAgICAgIFMuYmFj a2VuZF94aWQsCiAgICAgICAgICAgICBTLmJhY2tlbmRfeG1pbiwKICAgICAgICAgICAgIFMucXVl cnlfaWQsCisJCQlTLnBsYW5faWQsCiAgICAgICAgICAgICBTLnF1ZXJ5LAogICAgICAgICAgICAg Uy5iYWNrZW5kX3R5cGUKICAgICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEwpIEFTIFMK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCA1YTYzOTA2MzFlYi4uYjIxY2QxNDIxMTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9leHBsYWluLmMKQEAgLTgxOCw2ICs4MTgsMjMgQEAgRXhwbGFpblByaW50UGxhbihF eHBsYWluU3RhdGUgKmVzLCBRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJRXhwbGFpblByb3BlcnR5 SW50ZWdlcigiUXVlcnkgSWRlbnRpZmllciIsIE5VTEwsCiAJCQkJCQkJICAgcXVlcnlEZXNjLT5w bGFubmVkc3RtdC0+cXVlcnlJZCwgZXMpOwogCX0KKworCS8qCisJICogQ09NUFVURV9QTEFOX0lE X1JFR1JFU1MgbWVhbnMgQ09NUFVURV9QTEFOX0lEX1lFUywgYnV0IHdlIGRvbid0IHNob3cKKwkg KiB0aGUgcXVlcnlpZCBpbiBhbnkgb2YgdGhlIEVYUExBSU4gcGxhbnMgdG8ga2VlcCBzdGFibGUg dGhlIHJlc3VsdHMKKwkgKiBnZW5lcmF0ZWQgYnkgcmVncmVzc2lvbiB0ZXN0IHN1aXRlcy4KKwkg Ki8KKwlpZiAoZXMtPnZlcmJvc2UgJiYgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+cGxhbklkICE9 IFVJTlQ2NENPTlNUKDApICYmCisJCWNvbXB1dGVfcGxhbl9pZCAhPSBDT01QVVRFX1BMQU5fSURf UkVHUkVTUykKKwl7CisJCS8qCisJCSAqIE91dHB1dCB0aGUgcXVlcnlpZCBhcyBhbiBpbnQ2NCBy YXRoZXIgdGhhbiBhIHVpbnQ2NCBzbyB3ZSBtYXRjaAorCQkgKiB3aGF0IHdvdWxkIGJlIHNlZW4g aW4gdGhlIEJJR0lOVCBwZ19zdGF0X2FjdGl2aXR5LnBsYW5faWQgY29sdW1uLgorCQkgKi8KKwkJ RXhwbGFpblByb3BlcnR5SW50ZWdlcigiUGxhbiBJZGVudGlmaWVyIiwgTlVMTCwKKwkJCQkJCQkg ICBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5wbGFuSWQsIGVzKTsKKwl9CisKIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDc5N2Q4YjFjYTFjLi4xNGYxMDdkNDViMSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMjMsMTMgKzEyMywxNSBAQCBFeGVjdXRvclN0YXJ0KFF1 ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogewogCS8qCiAJICogSW4gc29tZSBjYXNl cyAoZS5nLiBhbiBFWEVDVVRFIHN0YXRlbWVudCBvciBhbiBleGVjdXRlIG1lc3NhZ2Ugd2l0aCB0 aGUKLQkgKiBleHRlbmRlZCBxdWVyeSBwcm90b2NvbCkgdGhlIHF1ZXJ5X2lkIHdvbid0IGJlIHJl cG9ydGVkLCBzbyBkbyBpdCBub3cuCisJICogZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wpIHRoZSBx dWVyeV9pZCBhbmQgcGxhbl9pZCB3b24ndCBiZSByZXBvcnRlZCwgc28KKwkgKiBkbyBpdCBub3cu CiAJICoKLQkgKiBOb3RlIHRoYXQgaXQncyBoYXJtbGVzcyB0byByZXBvcnQgdGhlIHF1ZXJ5X2lk IG11bHRpcGxlIHRpbWVzLCBhcyB0aGUKLQkgKiBjYWxsIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUg dG9wIGxldmVsIHF1ZXJ5X2lkIGhhcyBhbHJlYWR5IGJlZW4KLQkgKiByZXBvcnRlZC4KKwkgKiBO b3RlIHRoYXQgaXQncyBoYXJtbGVzcyB0byByZXBvcnQgdGhlIGlkZW50aWZpZXJzIG11bHRpcGxl IHRpbWVzLCBhcworCSAqIHRoZSBjYWxsIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUgdG9wIGxldmVs IHF1ZXJ5X2lkIG9yIHBsYW5faWQgaGFzCisJICogYWxyZWFkeSBiZWVuIHJlcG9ydGVkLgogCSAq LwogCXBnc3RhdF9yZXBvcnRfcXVlcnlfaWQocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+cXVlcnlJ ZCwgZmFsc2UpOworCXBnc3RhdF9yZXBvcnRfcGxhbl9pZChxdWVyeURlc2MtPnBsYW5uZWRzdG10 LT5wbGFuSWQsIGZhbHNlKTsKIAogCWlmIChFeGVjdXRvclN0YXJ0X2hvb2spCiAJCSgqRXhlY3V0 b3JTdGFydF9ob29rKSAocXVlcnlEZXNjLCBlZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvZ2VuX25vZGVfc3VwcG9ydC5wbCBiL3NyYy9iYWNrZW5kL25vZGVzL2dlbl9ub2Rl X3N1cHBvcnQucGwKaW5kZXggOWVjZGRiMTQyMzEuLmVhYjE0NGJkOTYyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9nZW5fbm9kZV9zdXBwb3J0LnBsCisrKyBiL3NyYy9iYWNrZW5kL25v ZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwKQEAgLTEyOTEsNiArMTI5MSw3IEBAIF9qdW1ibGUke259 KEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCiAJewogCQlteSAkdCA9ICRub2RlX3R5 cGVfaW5mb3skbn0tPntmaWVsZF90eXBlc317JGZ9OwogCQlteSBAYSA9IEB7ICRub2RlX3R5cGVf aW5mb3skbn0tPntmaWVsZF9hdHRyc317JGZ9IH07CisJCW15ICRhcnJheV9zaXplX2ZpZWxkOwog CQlteSAkcXVlcnlfanVtYmxlX2lnbm9yZSA9ICRzdHJ1Y3Rfbm9fcXVlcnlfanVtYmxlOwogCQlt eSAkcXVlcnlfanVtYmxlX2N1c3RvbSA9IDA7CiAJCW15ICRxdWVyeV9qdW1ibGVfbG9jYXRpb24g PSAwOwpAQCAtMTMwMyw3ICsxMzA0LDExIEBAIF9qdW1ibGUke259KEp1bWJsZVN0YXRlICpqc3Rh dGUsIE5vZGUgKm5vZGUpCiAJCQl7CiAJCQkJJHF1ZXJ5X2p1bWJsZV9jdXN0b20gPSAxOwogCQkJ fQotCQkJaWYgKCRhIGVxICdxdWVyeV9qdW1ibGVfaWdub3JlJykKKwkJCWVsc2lmICgkYSA9fiAv XmFycmF5X3NpemVcKChbXHcuXSspXCkkLykKKwkJCXsKKwkJCQkkYXJyYXlfc2l6ZV9maWVsZCA9 ICQxOworCQkJfQorCQkJZWxzaWYgKCRhIGVxICdxdWVyeV9qdW1ibGVfaWdub3JlJykKIAkJCXsK IAkJCQkkcXVlcnlfanVtYmxlX2lnbm9yZSA9IDE7CiAJCQl9CkBAIC0xMzE3LDEyICsxMzIyLDE5 IEBAIF9qdW1ibGUke259KEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCiAJCQl9CiAJ CX0KIAorCQluZXh0IGlmICRxdWVyeV9qdW1ibGVfaWdub3JlOworCiAJCWlmICgkcXVlcnlfanVt YmxlX2N1c3RvbSkKIAkJewogCQkJIyBDdXN0b20gZnVuY3Rpb24gdGhhdCBhcHBsaWVzIHRvIG9u ZSBmaWVsZCBvZiBhIG5vZGUuCiAJCQlwcmludCAkamZmICJcdEpVTUJMRV9DVVNUT00oJG4sICRm KTtcbiIKIAkJCSAgdW5sZXNzICRxdWVyeV9qdW1ibGVfaWdub3JlOwogCQl9CisJCWVsc2lmICgk dCBlcSAnQml0bWFwc2V0KicpCisJCXsKKwkJCXByaW50ICRqZmYgIlx0SlVNQkxFX0JJVE1BUFNF VCgkZik7XG4iCisJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2lnbm9yZTsKKwkJfQogCQllbHNp ZiAoKCR0ID1+IC9eKFx3KylcKiQvIG9yICR0ID1+IC9ec3RydWN0XHMrKFx3KylcKiQvKQogCQkJ YW5kIGVsZW0gJDEsIEBub2RlX3R5cGVzKQogCQl7CkBAIC0xMzUyLDYgKzEzNjQsMjYgQEAgX2p1 bWJsZSR7bn0oSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSkKIAkJCXByaW50ICRqZmYg Ilx0SlVNQkxFX1NUUklORygkZik7XG4iCiAJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2lnbm9y ZTsKIAkJfQorCQllbHNpZiAoJHQgPX4gL14oXHcrKShcKnxcW1x3K1xdKSQvIGFuZCBlbGVtICQx LCBAc2NhbGFyX3R5cGVzKQorCQl7CisJCQlpZiAoIWRlZmluZWQgJGFycmF5X3NpemVfZmllbGQp CisJCQl7CisJCQkJZGllICJubyBhcnJheSBzaXplIGRlZmluZWQgZm9yICRuLiRmIG9mIHR5cGUg JHRcbiI7CisJCQl9CisJCQlpZiAoJG5vZGVfdHlwZV9pbmZveyRufS0+e2ZpZWxkX3R5cGVzfXsk YXJyYXlfc2l6ZV9maWVsZH0gZXEKKwkJCQknTGlzdConKQorCQkJeworCQkJCXByaW50ICRqZmYK KwkJCQkgICJcdEpVTUJMRV9BUlJBWSgkZiwgbGlzdF9sZW5ndGgoZXhwci0+JGFycmF5X3NpemVf ZmllbGQpKTtcbiIKKwkJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2lnbm9yZTsKKwkJCX0KKwkJ CWVsc2UKKwkJCXsKKwkJCQlwcmludCAkamZmCisJCQkJICAiXHRKVU1CTEVfQVJSQVkoJGYsIGV4 cHItPiRhcnJheV9zaXplX2ZpZWxkKTtcbiIKKwkJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2ln bm9yZTsKKwkJCX0KKwkJfQogCQllbHNlCiAJCXsKIAkJCXByaW50ICRqZmYgIlx0SlVNQkxFX0ZJ RUxEKCRmKTtcbiIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYwppbmRleCBmZmMyMzBh ZjQyNy4uNTcxNzQ4MGRiZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVt YmxlZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKQEAg LTMsMzIgKzMsMzEgQEAKICAqIHF1ZXJ5anVtYmxlZnVuY3MuYwogICoJIFF1ZXJ5IG5vcm1hbGl6 YXRpb24gYW5kIGZpbmdlcnByaW50aW5nLgogICoKLSAqIE5vcm1hbGl6YXRpb24gaXMgYSBwcm9j ZXNzIHdoZXJlYnkgc2ltaWxhciBxdWVyaWVzLCB0eXBpY2FsbHkgZGlmZmVyaW5nIG9ubHkKLSAq IGluIHRoZWlyIGNvbnN0YW50cyAodGhvdWdoIHRoZSBleGFjdCBydWxlcyBhcmUgc29tZXdoYXQg bW9yZSBzdWJ0bGUgdGhhbgotICogdGhhdCkgYXJlIHJlY29nbml6ZWQgYXMgZXF1aXZhbGVudCwg YW5kIGFyZSB0cmFja2VkIGFzIGEgc2luZ2xlIGVudHJ5LiAgVGhpcwotICogaXMgcGFydGljdWxh cmx5IHVzZWZ1bCBmb3Igbm9uLXByZXBhcmVkIHF1ZXJpZXMuCisgKiBGaW5nZXJwcmludGluZyBz ZWxlY3RpdmVseSBzZXJpYWxpemVzIGtleSBmaWVsZHMgd2l0aGluIGEgdHJlZSBzdHJ1Y3R1cmUs CisgKiBzdWNoIGFzIGEgUXVlcnkgb3IgUGxhbiB0cmVlLCB0byBjcmVhdGUgYSB1bmlxdWUgaWRl bnRpZmllciB3aGlsZSBpZ25vcmluZworICogZXh0cmFuZW91cyBkZXRhaWxzLiBUaGVzZSBlc3Nl bnRpYWwgZmllbGRzIGFyZSBjb25jYXRlbmF0ZWQgaW50byBhIGp1bWJsZSwKKyAqIGZyb20gd2hp Y2ggYSA2NC1iaXQgaGFzaCBpcyBjb21wdXRlZC4gVW5saWtlIHJlZ3VsYXIgc2VyaWFsaXphdGlv biwgdGhpcworICogYXBwcm9hY2ggZXhjbHVkZXMgaXJyZWxldmFudCBpbmZvcm1hdGlvbi4KKyAq IAorICogVXNlIENhc2VzOgogICoKLSAqIE5vcm1hbGl6YXRpb24gaXMgaW1wbGVtZW50ZWQgYnkg ZmluZ2VycHJpbnRpbmcgcXVlcmllcywgc2VsZWN0aXZlbHkKLSAqIHNlcmlhbGl6aW5nIHRob3Nl IGZpZWxkcyBvZiBlYWNoIHF1ZXJ5IHRyZWUncyBub2RlcyB0aGF0IGFyZSBqdWRnZWQgdG8gYmUK LSAqIGVzc2VudGlhbCB0byB0aGUgcXVlcnkuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzIGEgcXVl cnkganVtYmxlLiAgVGhpcyBpcwotICogZGlzdGluY3QgZnJvbSBhIHJlZ3VsYXIgc2VyaWFsaXph dGlvbiBpbiB0aGF0IHZhcmlvdXMgZXh0cmFuZW91cwotICogaW5mb3JtYXRpb24gaXMgaWdub3Jl ZCBhcyBpcnJlbGV2YW50IG9yIG5vdCBlc3NlbnRpYWwgdG8gdGhlIHF1ZXJ5LCBzdWNoCi0gKiBh cyB0aGUgY29sbGF0aW9ucyBvZiBWYXJzIGFuZCwgbW9zdCBub3RhYmx5LCB0aGUgdmFsdWVzIG9m IGNvbnN0YW50cy4KLSAqCi0gKiBUaGlzIGp1bWJsZSBpcyBhY3F1aXJlZCBhdCB0aGUgZW5kIG9m IHBhcnNlIGFuYWx5c2lzIG9mIGVhY2ggcXVlcnksIGFuZAotICogYSA2NC1iaXQgaGFzaCBvZiBp dCBpcyBzdG9yZWQgaW50byB0aGUgcXVlcnkncyBRdWVyeS5xdWVyeUlkIGZpZWxkLgotICogVGhl IHNlcnZlciB0aGVuIGNvcGllcyB0aGlzIHZhbHVlIGFyb3VuZCwgbWFraW5nIGl0IGF2YWlsYWJs ZSBpbiBwbGFuCi0gKiB0cmVlKHMpIGdlbmVyYXRlZCBmcm9tIHRoZSBxdWVyeS4gIFRoZSBleGVj dXRvciBjYW4gdGhlbiB1c2UgdGhpcyB2YWx1ZQotICogdG8gYmxhbWUgcXVlcnkgY29zdHMgb24g dGhlIHByb3BlciBxdWVyeUlkLgotICoKLSAqIEFycmF5cyBvZiB0d28gb3IgbW9yZSBjb25zdGFu dHMgYW5kIFBBUkFNX0VYVEVSTiBwYXJhbWV0ZXJzIGFyZSAic3F1YXNoZWQiCi0gKiBhbmQgY29u dHJpYnV0ZSBvbmx5IG9uY2UgdG8gdGhlIGp1bWJsZS4gIFRoaXMgaGFzIHRoZSBlZmZlY3QgdGhh dCBxdWVyaWVzCi0gKiB0aGF0IGRpZmZlciBvbmx5IG9uIHRoZSBsZW5ndGggb2Ygc3VjaCBsaXN0 cyBoYXZlIHRoZSBzYW1lIHF1ZXJ5SWQuCi0gKgotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqIDEuIEluLUNvcmUgUXVlcnkgTm9ybWFsaXphdGlvbiAmIElkZW50aWZpY2F0 aW9uCiAgKgorICogRmluZ2VycHJpbnRpbmcgaXMgdXNlZCB0byBub3JtYWxpemUgcXVlcnkgdHJl ZXMgYnkgZ2VuZXJhdGluZyBhIGhhc2ggc3RvcmVkCisgKiBpbiB0aGUgUXVlcnkucXVlcnlJZCBm aWVsZC4gVGhpcyBJRCBpcyBwcm9wYWdhdGVkIHRvIHBsYW4gdHJlZShzKSwgYWxsb3dpbmcKKyAq IHRoZSBleGVjdXRvciB0byBhdHRyaWJ1dGUgcXVlcnkgY29zdHMgb24gdGhlIHByb3BlciBxdWVy eUlkLiBUaGUgcHJvY2VzcworICogZXhjbHVkZXMgaW5mb3JtYXRpb24gbGlrZSB0eXBtb2QsIGNv bGxhdGlvbiwgYW5kIG1vc3Qgbm90YWJseSwgdGhlIHZhbHVlcworICogb2YgY29uc3RhbnRzLgor ICogCisgKiBFeGFtcGxlOiBUaGUgZm9sbG93aW5nIHF1ZXJpZXMgcHJvZHVjZSB0aGUgc2FtZSBx dWVyeUlkOgorICogCisgKiBTRUxFQ1QgdC4qIEZST00gczEudCBXSEVSRSBjMSA9IDE7CisgKiBT RUxFQ1QgdC4qIEZST00gczEudCBXSEVSRSBjMSA9IDI7CisgKiAKKyAqIDIuIE1vZGlmaWVkIGp1 bWJsaW5nIGxvZ2ljIGZvciBleHRlbnNpb25zCisgKiAKKyAqIEV4dGVuc2lvbnMgY2FuIG1vZGlm eSB0aGUgZmluZ2VycHJpbnRpbmcgbG9naWMgZm9yIHF1ZXJ5SWQsIG9yIGZpbmdlcnByaW50Cisg KiBvdGhlciB0eXBlcyBvZiB0cmVlcywgc3VjaCBhcyBhIHBsYW4gdHJlZSwgdG8gY29tcHV0ZSBh IHBsYW4gaWRlbnRpZmllci4KICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBzcmMvYmFja2Vu ZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKQEAgLTUwLDYgKzQ5LDcgQEAKIAogLyogR1VDIHBh cmFtZXRlcnMgKi8KIGludAkJCWNvbXB1dGVfcXVlcnlfaWQgPSBDT01QVVRFX1FVRVJZX0lEX0FV VE87CitpbnQJCQljb21wdXRlX3BsYW5faWQgPSBDT01QVVRFX1BMQU5fSURfQVVUTzsKIAogLyoK ICAqIFRydWUgd2hlbiBjb21wdXRlX3F1ZXJ5X2lkIGlzIE9OIG9yIEFVVE8sIGFuZCBhIG1vZHVs ZSByZXF1ZXN0cyB0aGVtLgpAQCAtNjAsMTUgKzYwLDIxIEBAIGludAkJCWNvbXB1dGVfcXVlcnlf aWQgPSBDT01QVVRFX1FVRVJZX0lEX0FVVE87CiAgKi8KIGJvb2wJCXF1ZXJ5X2lkX2VuYWJsZWQg PSBmYWxzZTsKIAotc3RhdGljIEp1bWJsZVN0YXRlICpJbml0SnVtYmxlKHZvaWQpOwotc3RhdGlj IGludDY0IERvSnVtYmxlKEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpOworLyoKKyAq IFRydWUgd2hlbiBjb21wdXRlX3BsYW5faWQgaXMgT04gb3IgQVVUTywgYW5kIGEgbW9kdWxlIHJl cXVlc3RzIHRoZW0uCisgKgorICogTm90ZSB0aGF0IElzUGxhbklkRW5hYmxlZCgpIHNob3VsZCBi ZSB1c2VkIGluc3RlYWQgb2YgY2hlY2tpbmcKKyAqIHBsYW5faWRfZW5hYmxlZCBvciBjb21wdXRl X3BsYW5faWQgZGlyZWN0bHkgd2hlbiB3ZSB3YW50IHRvIGtub3cKKyAqIHdoZXRoZXIgcXVlcnkg aWRlbnRpZmllcnMgYXJlIGNvbXB1dGVkIGluIHRoZSBjb3JlIG9yIG5vdC4KKyAqLworYm9vbAkJ cGxhbl9pZF9lbmFibGVkID0gZmFsc2U7CisKIHN0YXRpYyB2b2lkIEFwcGVuZEp1bWJsZShKdW1i bGVTdGF0ZSAqanN0YXRlLAogCQkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBTaXpl IHNpemUpOwogc3RhdGljIHZvaWQgRmx1c2hQZW5kaW5nTnVsbHMoSnVtYmxlU3RhdGUgKmpzdGF0 ZSk7CiBzdGF0aWMgdm9pZCBSZWNvcmRDb25zdExvY2F0aW9uKEp1bWJsZVN0YXRlICpqc3RhdGUs CiAJCQkJCQkJCWJvb2wgZXh0ZXJuX3BhcmFtLAogCQkJCQkJCQlpbnQgbG9jYXRpb24sIGludCBs ZW4pOwotc3RhdGljIHZvaWQgX2p1bWJsZU5vZGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAq bm9kZSk7CiBzdGF0aWMgdm9pZCBfanVtYmxlTGlzdChKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2Rl ICpub2RlKTsKIHN0YXRpYyB2b2lkIF9qdW1ibGVFbGVtZW50cyhKdW1ibGVTdGF0ZSAqanN0YXRl LCBMaXN0ICplbGVtZW50cywgTm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBfanVtYmxlUGFyYW0o SnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSk7CkBAIC0xMzYsMTMgKzE0MiwxMyBAQCBD bGVhblF1ZXJ5dGV4dChjb25zdCBjaGFyICpxdWVyeSwgaW50ICpsb2NhdGlvbiwgaW50ICpsZW4p CiBKdW1ibGVTdGF0ZSAqCiBKdW1ibGVRdWVyeShRdWVyeSAqcXVlcnkpCiB7Ci0JSnVtYmxlU3Rh dGUgKmpzdGF0ZTsKKwlKdW1ibGVTdGF0ZSAqanN0YXRlID0gSW5pdGlhbGl6ZUp1bWJsZVN0YXRl KHRydWUpOzsKIAogCUFzc2VydChJc1F1ZXJ5SWRFbmFibGVkKCkpOwogCi0JanN0YXRlID0gSW5p dEp1bWJsZSgpOwotCi0JcXVlcnktPnF1ZXJ5SWQgPSBEb0p1bWJsZShqc3RhdGUsIChOb2RlICop IHF1ZXJ5KTsKKwkvKiBDb21wdXRlIHF1ZXJ5IElEIGFuZCBtYXJrIHRoZSBRdWVyeSBub2RlIHdp dGggaXQgKi8KKwlKdW1ibGVOb2RlKGpzdGF0ZSwgKE5vZGUgKikgcXVlcnkpOworCXF1ZXJ5LT5x dWVyeUlkID0gSGFzaEp1bWJsZVN0YXRlKGpzdGF0ZSk7CiAKIAkvKgogCSAqIElmIHdlIGFyZSB1 bmx1Y2t5IGVub3VnaCB0byBnZXQgYSBoYXNoIG9mIHplcm8sIHVzZSAxIGluc3RlYWQgZm9yCkBA IC0xNzMsNDQgKzE3OSw0NCBAQCBFbmFibGVRdWVyeUlkKHZvaWQpCiB9CiAKIC8qCi0gKiBJbml0 SnVtYmxlCi0gKgkJQWxsb2NhdGUgYSBKdW1ibGVTdGF0ZSBvYmplY3QgYW5kIG1ha2UgaXQgcmVh ZHkgdG8ganVtYmxlLgorICogRW5hYmxlcyBwbGFuIGlkZW50aWZpZXIgY29tcHV0YXRpb24uCisg KgorICogVGhpcmQtcGFydHkgcGx1Z2lucyBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gaW5mb3Jt IGNvcmUgdGhhdCB0aGV5IHJlcXVpcmUKKyAqIGEgcXVlcnkgaWRlbnRpZmllciB0byBiZSBjb21w dXRlZC4KICAqLwotc3RhdGljIEp1bWJsZVN0YXRlICoKLUluaXRKdW1ibGUodm9pZCkKK3ZvaWQK K0VuYWJsZVBsYW5JZCh2b2lkKQogewotCUp1bWJsZVN0YXRlICpqc3RhdGU7CisJaWYgKGNvbXB1 dGVfcGxhbl9pZCAhPSBDT01QVVRFX1BMQU5fSURfT0ZGKQorCQlwbGFuX2lkX2VuYWJsZWQgPSB0 cnVlOworfQogCi0JanN0YXRlID0gcGFsbG9jX29iamVjdChKdW1ibGVTdGF0ZSk7CisvKgorICog SW5pdGlhbGl6ZUp1bWJsZVN0YXRlCisgKgkJQWxsb2NhdGUgYSBKdW1ibGVTdGF0ZSBvYmplY3Qg YW5kIG1ha2UgaXQgcmVhZHkgdG8ganVtYmxlLgorICovCitKdW1ibGVTdGF0ZSAqCitJbml0aWFs aXplSnVtYmxlU3RhdGUoYm9vbCByZWNvcmRfY2xvY2F0aW9ucykKK3sKKwlKdW1ibGVTdGF0ZSAq anN0YXRlID0gKEp1bWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKEp1bWJsZVN0YXRlKSk7CiAK IAkvKiBTZXQgdXAgd29ya3NwYWNlIGZvciBxdWVyeSBqdW1ibGluZyAqLwogCWpzdGF0ZS0+anVt YmxlID0gKHVuc2lnbmVkIGNoYXIgKikgcGFsbG9jKEpVTUJMRV9TSVpFKTsKIAlqc3RhdGUtPmp1 bWJsZV9sZW4gPSAwOwotCWpzdGF0ZS0+Y2xvY2F0aW9uc19idWZfc2l6ZSA9IDMyOwotCWpzdGF0 ZS0+Y2xvY2F0aW9ucyA9IChMb2NhdGlvbkxlbiAqKSBwYWxsb2MoanN0YXRlLT5jbG9jYXRpb25z X2J1Zl9zaXplICoKLQkJCQkJCQkJCQkJCXNpemVvZihMb2NhdGlvbkxlbikpOwotCWpzdGF0ZS0+ Y2xvY2F0aW9uc19jb3VudCA9IDA7Ci0JanN0YXRlLT5oaWdoZXN0X2V4dGVybl9wYXJhbV9pZCA9 IDA7Ci0JanN0YXRlLT5wZW5kaW5nX251bGxzID0gMDsKLQlqc3RhdGUtPmhhc19zcXVhc2hlZF9s aXN0cyA9IGZhbHNlOwotI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKLQlqc3RhdGUtPnRvdGFs X2p1bWJsZV9sZW4gPSAwOwotI2VuZGlmCisKKwlpZiAocmVjb3JkX2Nsb2NhdGlvbnMpCisJewor CQlqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUgPSAzMjsKKwkJanN0YXRlLT5jbG9jYXRpb25z ID0gKExvY2F0aW9uTGVuICopCisJCQlwYWxsb2MoanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9zaXpl ICogc2l6ZW9mKExvY2F0aW9uTGVuKSk7CisJfQogCiAJcmV0dXJuIGpzdGF0ZTsKIH0KIAotLyoK LSAqIERvSnVtYmxlCi0gKgkJSnVtYmxlIHRoZSBnaXZlbiBOb2RlIHVzaW5nIHRoZSBnaXZlbiBK dW1ibGVTdGF0ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcKLSAqCQlqdW1ibGUgaGFzaC4KLSAq Lwotc3RhdGljIGludDY0Ci1Eb0p1bWJsZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2Rl KQordWludDY0CitIYXNoSnVtYmxlU3RhdGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSkKIHsKLQkvKiBK dW1ibGUgdGhlIGdpdmVuIG5vZGUgKi8KLQlfanVtYmxlTm9kZShqc3RhdGUsIG5vZGUpOwotCiAJ LyogRmx1c2ggYW55IHBlbmRpbmcgTlVMTHMgYmVmb3JlIGRvaW5nIHRoZSBmaW5hbCBoYXNoICov CiAJaWYgKGpzdGF0ZS0+cGVuZGluZ19udWxscyA+IDApCiAJCUZsdXNoUGVuZGluZ051bGxzKGpz dGF0ZSk7CkBAIC0yMTksMTAgKzIyNSw5IEBAIERvSnVtYmxlKEp1bWJsZVN0YXRlICpqc3RhdGUs IE5vZGUgKm5vZGUpCiAJaWYgKGpzdGF0ZS0+aGFzX3NxdWFzaGVkX2xpc3RzKQogCQlqc3RhdGUt PmhpZ2hlc3RfZXh0ZXJuX3BhcmFtX2lkID0gMDsKIAotCS8qIFByb2Nlc3MgdGhlIGp1bWJsZSBi dWZmZXIgYW5kIHByb2R1Y2UgdGhlIGhhc2ggdmFsdWUgKi8KLQlyZXR1cm4gRGF0dW1HZXRJbnQ2 NChoYXNoX2FueV9leHRlbmRlZChqc3RhdGUtPmp1bWJsZSwKLQkJCQkJCQkJCQkgICBqc3RhdGUt Pmp1bWJsZV9sZW4sCi0JCQkJCQkJCQkJICAgMCkpOworCXJldHVybiBEYXR1bUdldFVJbnQ2NCho YXNoX2FueV9leHRlbmRlZChqc3RhdGUtPmp1bWJsZSwKKwkJCQkJCQkJCQkJanN0YXRlLT5qdW1i bGVfbGVuLAorCQkJCQkJCQkJCQkwKSk7CiB9CiAKIC8qCkBAIC0zOTgsNyArNDAzLDcgQEAgc3Rh dGljIHZvaWQKIFJlY29yZENvbnN0TG9jYXRpb24oSnVtYmxlU3RhdGUgKmpzdGF0ZSwgYm9vbCBl eHRlcm5fcGFyYW0sIGludCBsb2NhdGlvbiwgaW50IGxlbikKIHsKIAkvKiAtMSBpbmRpY2F0ZXMg dW5rbm93biBvciB1bmRlZmluZWQgbG9jYXRpb24gKi8KLQlpZiAobG9jYXRpb24gPj0gMCkKKwlp ZiAobG9jYXRpb24gPj0gMCAmJiBqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUgPiAwKQogCXsK IAkJLyogZW5sYXJnZSBhcnJheSBpZiBuZWVkZWQgKi8KIAkJaWYgKGpzdGF0ZS0+Y2xvY2F0aW9u c19jb3VudCA+PSBqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUpCkBAIC01MjYsNyArNTMxLDcg QEAgSXNTcXVhc2hhYmxlQ29uc3RhbnRMaXN0KExpc3QgKmVsZW1lbnRzKQogfQogCiAjZGVmaW5l IEpVTUJMRV9OT0RFKGl0ZW0pIFwKLQlfanVtYmxlTm9kZShqc3RhdGUsIChOb2RlICopIGV4cHIt Pml0ZW0pCisJSnVtYmxlTm9kZShqc3RhdGUsIChOb2RlICopIGV4cHItPml0ZW0pCiAjZGVmaW5l IEpVTUJMRV9FTEVNRU5UUyhsaXN0LCBub2RlKSBcCiAJX2p1bWJsZUVsZW1lbnRzKGpzdGF0ZSwg KExpc3QgKikgZXhwci0+bGlzdCwgbm9kZSkKICNkZWZpbmUgSlVNQkxFX0xPQ0FUSU9OKGxvY2F0 aW9uKSBcCkBAIC01NDQsNiArNTQ5LDEzIEBAIGRvIHsgXAogCWVsc2UgXAogCQlBcHBlbmRKdW1i bGUoanN0YXRlLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSAmKGV4cHItPml0ZW0pLCBzaXplb2Yo ZXhwci0+aXRlbSkpOyBcCiB9IHdoaWxlICgwKQorI2RlZmluZSBKVU1CTEVfQklUTUFQU0VUKGl0 ZW0pIFwKK2RvIHsgXAorCWlmIChleHByLT5pdGVtKSBcCisJCUFwcGVuZEp1bWJsZShqc3RhdGUs IChjb25zdCB1bnNpZ25lZCBjaGFyICopIGV4cHItPml0ZW0tPndvcmRzLCBzaXplb2YoYml0bWFw d29yZCkgKiBleHByLT5pdGVtLT5ud29yZHMpOyBcCit9IHdoaWxlKDApCisjZGVmaW5lIEpVTUJM RV9BUlJBWShpdGVtLCBsZW4pIFwKKwlBcHBlbmRKdW1ibGUoanN0YXRlLCAoY29uc3QgdW5zaWdu ZWQgY2hhciAqKSBleHByLT5pdGVtLCBzaXplb2YoKihleHByLT5pdGVtKSkgKiBsZW4pCiAjZGVm aW5lIEpVTUJMRV9TVFJJTkcoc3RyKSBcCiBkbyB7IFwKIAlpZiAoZXhwci0+c3RyKSBcCkBAIC01 NTcsOCArNTY5LDggQEAgZG8geyBcCiAKICNpbmNsdWRlICJxdWVyeWp1bWJsZWZ1bmNzLmZ1bmNz LmMiCiAKLXN0YXRpYyB2b2lkCi1fanVtYmxlTm9kZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2Rl ICpub2RlKQordm9pZAorSnVtYmxlTm9kZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2Rl KQogewogCU5vZGUJICAgKmV4cHIgPSBub2RlOwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcK QEAgLTYxMiw3ICs2MjQsNyBAQCBfanVtYmxlTGlzdChKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2Rl ICpub2RlKQogCXsKIAkJY2FzZSBUX0xpc3Q6CiAJCQlmb3JlYWNoKGwsIGV4cHIpCi0JCQkJX2p1 bWJsZU5vZGUoanN0YXRlLCBsZmlyc3QobCkpOworCQkJCUp1bWJsZU5vZGUoanN0YXRlLCBsZmly c3QobCkpOwogCQkJYnJlYWs7CiAJCWNhc2UgVF9JbnRMaXN0OgogCQkJZm9yZWFjaChsLCBleHBy KQpAQCAtNjY4LDcgKzY4MCw3IEBAIF9qdW1ibGVFbGVtZW50cyhKdW1ibGVTdGF0ZSAqanN0YXRl LCBMaXN0ICplbGVtZW50cywgTm9kZSAqbm9kZSkKIAogCWlmICghbm9ybWFsaXplX2xpc3QpCiAJ ewotCQlfanVtYmxlTm9kZShqc3RhdGUsIChOb2RlICopIGVsZW1lbnRzKTsKKwkJSnVtYmxlTm9k ZShqc3RhdGUsIChOb2RlICopIGVsZW1lbnRzKTsKIAl9CiB9CiAKQEAgLTc1OCw2ICs3NzAsNDAg QEAgX2p1bWJsZVZhcmlhYmxlU2V0U3RtdChKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2Rl KQogCUpVTUJMRV9MT0NBVElPTihsb2NhdGlvbik7CiB9CiAKKy8qCisgKiBKdW1ibGUgdGhlIGVu dHJpZXMgaW4gdGhlIHJhbmdsZSB0YWJsZSB0byBtYXAgUlQgaW5kZXhlcyB0byByZWxhdGlvbnMK KyAqCisgKiBUaGlzIGVuc3VyZXMganVtYmxlZCBSVCBpbmRleGVzIChlLmcuIGluIGEgU2NhbiBv ciBNb2RpZnkgbm9kZSksIGFyZQorICogZGlzdGluZ3Vpc2hlZCBieSB0aGUgdGFyZ2V0IG9mIHRo ZSBSVCBlbnRyeSwgZXZlbiBpZiB0aGUgaW5kZXggaXMgdGhlIHNhbWUuCisgKi8KK3ZvaWQKK0p1 bWJsZVJhbmdlVGFibGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTGlzdCAqcnRhYmxlKQoreworCUxp c3RDZWxsICpsYzsKKworCWZvcmVhY2gobGMsIHJ0YWJsZSkKKwl7CisJCVJhbmdlVGJsRW50cnkg KmV4cHIgPSBsZmlyc3Rfbm9kZShSYW5nZVRibEVudHJ5LCBsYyk7CisKKwkJc3dpdGNoIChleHBy LT5ydGVraW5kKQorCQl7CisJCQljYXNlIFJURV9SRUxBVElPTjoKKwkJCQlKVU1CTEVfRklFTEQo cmVsaWQpOworCQkJCWJyZWFrOworCQkJY2FzZSBSVEVfQ1RFOgorCQkJCUpVTUJMRV9TVFJJTkco Y3RlbmFtZSk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCisJCQkJLyoKKwkJCQkqIElnbm9y ZSBvdGhlciB0YXJnZXRzLCB0aGUganVtYmxlIGluY2x1ZGVzIHNvbWV0aGluZyBpZGVudGlmeWlu ZworCQkJCSogYWJvdXQgdGhlbSBhbHJlYWR5CisJCQkJKi8KKwkJCQlicmVhazsKKwkJfQorCX0K K30KKwogLyoKICAqIEN1c3RvbSBxdWVyeSBqdW1ibGUgZnVuY3Rpb24gZm9yIFJhbmdlVGJsRW50 cnkuZXJlZi4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDhiMjJj MzA1NTliLi4wMzA5NTY2ZjYwMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpA QCAtMzcsNiArMzcsNyBAQAogI2lmZGVmIE9QVElNSVpFUl9ERUJVRwogI2luY2x1ZGUgIm5vZGVz L3ByaW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJub2Rlcy9xdWVyeWp1bWJsZS5oIgogI2luY2x1 ZGUgIm5vZGVzL3N1cHBvcnRub2Rlcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9hcHBlbmRpbmZv LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL2NsYXVzZXMuaCIKQEAgLTU3OCw2ICs1NzksMTYgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJQXNzZXJ0KGdsb2ItPmZpbmFscm93bWFya3MgPT0gTklMKTsK IAlBc3NlcnQoZ2xvYi0+cmVzdWx0UmVsYXRpb25zID09IE5JTCk7CiAJQXNzZXJ0KGdsb2ItPmFw cGVuZFJlbGF0aW9ucyA9PSBOSUwpOworCisJLyoKKwkgKiBJbml0aWFsaXplIHBsYW4gaWRlbnRp ZmllciBqdW1ibGUgaWYgbmVlZGVkCisJICoKKwkgKiBOb3RlIHRoZSBhY3R1YWwganVtYmxpbmcg aXMgZG9uZSBpbiB0aGUgdHJlZSB3YWxrIGluCisJICogc2V0X3BsYW5fcmVmZXJlbmNlcworCSAq LworCWlmIChJc1BsYW5JZEVuYWJsZWQoKSkKKwkJZ2xvYi0+cGxhbl9qdW1ibGVfc3RhdGUgPSBJ bml0aWFsaXplSnVtYmxlU3RhdGUoZmFsc2UpOworCiAJdG9wX3BsYW4gPSBzZXRfcGxhbl9yZWZl cmVuY2VzKHJvb3QsIHRvcF9wbGFuKTsKIAkvKiAuLi4gYW5kIHRoZSBzdWJwbGFucyAoYm90aCBy ZWd1bGFyIHN1YnBsYW5zIGFuZCBpbml0cGxhbnMpICovCiAJQXNzZXJ0KGxpc3RfbGVuZ3RoKGds b2ItPnN1YnBsYW5zKSA9PSBsaXN0X2xlbmd0aChnbG9iLT5zdWJyb290cykpOwpAQCAtNjQ1LDYg KzY1NiwxNCBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVl cnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJCXJlc3VsdC0+aml0RmxhZ3MgfD0gUEdK SVRfREVGT1JNOwogCX0KIAorCWlmIChJc1BsYW5JZEVuYWJsZWQoKSkKKwl7CisJCUp1bWJsZVJh bmdlVGFibGUoZ2xvYi0+cGxhbl9qdW1ibGVfc3RhdGUsIGdsb2ItPmZpbmFscnRhYmxlKTsKKwkJ cmVzdWx0LT5wbGFuSWQgPSBIYXNoSnVtYmxlU3RhdGUoZ2xvYi0+cGxhbl9qdW1ibGVfc3RhdGUp OworCQlwZnJlZShnbG9iLT5wbGFuX2p1bWJsZV9zdGF0ZS0+anVtYmxlKTsKKwkJcGZyZWUoZ2xv Yi0+cGxhbl9qdW1ibGVfc3RhdGUpOworCX0KKwogCS8qIEFsbG93IHBsdWdpbnMgdG8gdGFrZSBj b250cm9sIGJlZm9yZSB3ZSBkaXNjYXJkICJnbG9iIiAqLwogCWlmIChwbGFubmVyX3NodXRkb3du X2hvb2spCiAJCSgqcGxhbm5lcl9zaHV0ZG93bl9ob29rKSAoZ2xvYiwgcGFyc2UsIHF1ZXJ5X3N0 cmluZywgcmVzdWx0KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Nl dHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCBjZDdl YTFlNmI1OC4uOTQ3YmQ5ODBjNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMK QEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNs dWRlICJub2Rlcy9xdWVyeWp1bWJsZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIu aCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGF0aG5vZGUuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIv cGxhbm1haW4uaCIKQEAgLTEzMzgsNiArMTMzOSwxNCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJ bmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJcGxhbi0+bGVmdHRyZWUgPSBz ZXRfcGxhbl9yZWZzKHJvb3QsIHBsYW4tPmxlZnR0cmVlLCBydG9mZnNldCk7CiAJcGxhbi0+cmln aHR0cmVlID0gc2V0X3BsYW5fcmVmcyhyb290LCBwbGFuLT5yaWdodHRyZWUsIHJ0b2Zmc2V0KTsK IAorCS8qCisJICogSWYgZW5hYmxlZCwgYXBwZW5kIHNpZ25pZmljYW50IGluZm9ybWF0aW9uIHRv IHRoZSBwbGFuIGlkZW50aWZpZXIKKwkgKiBqdW1ibGUgKHdlIGRvIHRoaXMgaGVyZSBzaW5jZSB3 ZSdyZSBhbHJlYWR5IHdhbGtpbmcgdGhlIHRyZWUgaW4gYQorCSAqIG5lYXItZmluYWwgc3RhdGUp CisJICovCisJaWYgKElzUGxhbklkRW5hYmxlZCgpKQorCQlKdW1ibGVOb2RlKHJvb3QtPmdsb2It PnBsYW5fanVtYmxlX3N0YXRlLCAoTm9kZSAqKSBwbGFuKTsKKwogCXJldHVybiBwbGFuOwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMKaW5kZXggOThmN2M0ODQ4Yzku LmI2NGM4OGRiMjAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9i YWNrZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jCkBA IC0xMTgsNiArMTE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQlyZWRpcmVjdGlvbl9kb25l OwogCWJvb2wJCUlzQmluYXJ5VXBncmFkZTsKIAlib29sCQlxdWVyeV9pZF9lbmFibGVkOworCWJv b2wJCXBsYW5faWRfZW5hYmxlZDsKIAlpbnQJCQltYXhfc2FmZV9mZHM7CiAJaW50CQkJTWF4QmFj a2VuZHM7CiAJaW50CQkJbnVtX3BtY2hpbGRfc2xvdHM7CkBAIC03NTcsNiArNzU4LDcgQEAgc2F2 ZV9iYWNrZW5kX3ZhcmlhYmxlcyhCYWNrZW5kUGFyYW1ldGVycyAqcGFyYW0sCiAJcGFyYW0tPnJl ZGlyZWN0aW9uX2RvbmUgPSByZWRpcmVjdGlvbl9kb25lOwogCXBhcmFtLT5Jc0JpbmFyeVVwZ3Jh ZGUgPSBJc0JpbmFyeVVwZ3JhZGU7CiAJcGFyYW0tPnF1ZXJ5X2lkX2VuYWJsZWQgPSBxdWVyeV9p ZF9lbmFibGVkOworCXBhcmFtLT5wbGFuX2lkX2VuYWJsZWQgPSBwbGFuX2lkX2VuYWJsZWQ7CiAJ cGFyYW0tPm1heF9zYWZlX2ZkcyA9IG1heF9zYWZlX2ZkczsKIAogCXBhcmFtLT5NYXhCYWNrZW5k cyA9IE1heEJhY2tlbmRzOwpAQCAtMTAxOSw2ICsxMDIxLDcgQEAgcmVzdG9yZV9iYWNrZW5kX3Zh cmlhYmxlcyhCYWNrZW5kUGFyYW1ldGVycyAqcGFyYW0pCiAJcmVkaXJlY3Rpb25fZG9uZSA9IHBh cmFtLT5yZWRpcmVjdGlvbl9kb25lOwogCUlzQmluYXJ5VXBncmFkZSA9IHBhcmFtLT5Jc0JpbmFy eVVwZ3JhZGU7CiAJcXVlcnlfaWRfZW5hYmxlZCA9IHBhcmFtLT5xdWVyeV9pZF9lbmFibGVkOwor CXBsYW5faWRfZW5hYmxlZCA9IHBhcmFtLT5wbGFuX2lkX2VuYWJsZWQ7CiAJbWF4X3NhZmVfZmRz ID0gcGFyYW0tPm1heF9zYWZlX2ZkczsKIAogCU1heEJhY2tlbmRzID0gcGFyYW0tPk1heEJhY2tl bmRzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBlZjZmZmZlNjBiOS4uODU0 YzlmOGJmZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0zNTEsNyArMzUx LDcgQEAgcGdfc3RhdF9nZXRfcHJvZ3Jlc3NfaW5mbyhQR19GVU5DVElPTl9BUkdTKQogRGF0dW0K IHBnX3N0YXRfZ2V0X2FjdGl2aXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX1NU QVRfR0VUX0FDVElWSVRZX0NPTFMJMzEKKyNkZWZpbmUgUEdfU1RBVF9HRVRfQUNUSVZJVFlfQ09M UwkzMgogCWludAkJCW51bV9iYWNrZW5kcyA9IHBnc3RhdF9mZXRjaF9zdGF0X251bWJhY2tlbmRz KCk7CiAJaW50CQkJY3Vycl9iYWNrZW5kOwogCWludAkJCXBpZCA9IFBHX0FSR0lTTlVMTCgwKSA/ IC0xIDogUEdfR0VUQVJHX0lOVDMyKDApOwpAQCAtNjY1LDYgKzY2NSwxMCBAQCBwZ19zdGF0X2dl dF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQkJCW51bGxzWzMwXSA9IHRydWU7CiAJCQll bHNlCiAJCQkJdmFsdWVzWzMwXSA9IEludDY0R2V0RGF0dW0oYmVlbnRyeS0+c3RfcXVlcnlfaWQp OworCQkJaWYgKGJlZW50cnktPnN0X3BsYW5faWQgPT0gSU5UNjRDT05TVCgwKSkKKwkJCQludWxs c1szMV0gPSB0cnVlOworCQkJZWxzZQorCQkJCXZhbHVlc1szMV0gPSBVSW50NjRHZXREYXR1bShi ZWVudHJ5LT5zdF9wbGFuX2lkKTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTY5NCw2ICs2OTgsNyBA QCBwZ19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQkJbnVsbHNbMjhdID0g dHJ1ZTsKIAkJCW51bGxzWzI5XSA9IHRydWU7CiAJCQludWxsc1szMF0gPSB0cnVlOworCQkJbnVs bHNbMzFdID0gdHJ1ZTsKIAkJfQogCiAJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0 UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAppbmRleCAzYjlkODM0OTA3OC4uZDlmNWNmMzFjMzQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0Cisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC00NjIsNiAr NDYyLDEzIEBACiAgIGNoZWNrX2hvb2sgPT4gJ2NoZWNrX2NvbW1pdF90c19idWZmZXJzJywKIH0s CiAKK3sgbmFtZSA9PiAnY29tcHV0ZV9wbGFuX2lkJywgdHlwZSA9PiAnZW51bScsIGNvbnRleHQg PT4gJ1BHQ19TVVNFVCcsIGdyb3VwID0+ICdTVEFUU19NT05JVE9SSU5HJywKKyAgc2hvcnRfZGVz YyA9PiAnRW5hYmxlcyBpbi1jb3JlIGNvbXB1dGF0aW9uIG9mIHBsYW4gaWRlbnRpZmllcnMuJywK KyAgdmFyaWFibGUgPT4gJ2NvbXB1dGVfcGxhbl9pZCcsCisgIGJvb3RfdmFsID0+ICdDT01QVVRF X1BMQU5fSURfQVVUTycsCisgIG9wdGlvbnMgPT4gJ2NvbXB1dGVfcGxhbl9pZF9vcHRpb25zJywK K30sCisKIHsgbmFtZSA9PiAnY29tcHV0ZV9xdWVyeV9pZCcsIHR5cGUgPT4gJ2VudW0nLCBjb250 ZXh0ID0+ICdQR0NfU1VTRVQnLCBncm91cCA9PiAnU1RBVFNfTU9OSVRPUklORycsCiAgIHNob3J0 X2Rlc2MgPT4gJ0VuYWJsZXMgaW4tY29yZSBjb21wdXRhdGlvbiBvZiBxdWVyeSBpZGVudGlmaWVy cy4nLAogICB2YXJpYWJsZSA9PiAnY29tcHV0ZV9xdWVyeV9pZCcsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IGY4N2I1NThjMmM2Li4zYTVkN2VlMzJhYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTMxOCw2ICszMTgsMjQgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjb25maWdfZW51bV9lbnRyeSBjb21wdXRlX3F1ZXJ5X2lkX29wdGlvbnNbXSA9IHsKIAl7 TlVMTCwgMCwgZmFsc2V9CiB9OwogCisvKgorICogQWx0aG91Z2ggb25seSAib24iIGFuZCAib2Zm IiBhcmUgZG9jdW1lbnRlZCwgd2UgYWNjZXB0CisgKiBhbGwgdGhlIGxpa2VseSB2YXJpYW50cyBv ZiAib24iIGFuZCAib2ZmIi4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9l bnRyeSBjb21wdXRlX3BsYW5faWRfb3B0aW9uc1tdID0geworCXsiYXV0byIsIENPTVBVVEVfUExB Tl9JRF9BVVRPLCBmYWxzZX0sCisJeyJyZWdyZXNzIiwgQ09NUFVURV9QTEFOX0lEX1JFR1JFU1Ms IGZhbHNlfSwKKwl7Im9uIiwgQ09NUFVURV9QTEFOX0lEX09OLCBmYWxzZX0sCisJeyJvZmYiLCBD T01QVVRFX1BMQU5fSURfT0ZGLCBmYWxzZX0sCisJeyJ0cnVlIiwgQ09NUFVURV9QTEFOX0lEX09O LCB0cnVlfSwKKwl7ImZhbHNlIiwgQ09NUFVURV9QTEFOX0lEX09GRiwgdHJ1ZX0sCisJeyJ5ZXMi LCBDT01QVVRFX1BMQU5fSURfT04sIHRydWV9LAorCXsibm8iLCBDT01QVVRFX1BMQU5fSURfT0ZG LCB0cnVlfSwKKwl7IjEiLCBDT01QVVRFX1BMQU5fSURfT04sIHRydWV9LAorCXsiMCIsIENPTVBV VEVfUExBTl9JRF9PRkYsIHRydWV9LAorCXtOVUxMLCAwLCBmYWxzZX0KK307CisKIC8qCiAgKiBB bHRob3VnaCBvbmx5ICJvbiIsICJvZmYiLCBhbmQgInBhcnRpdGlvbiIgYXJlIGRvY3VtZW50ZWQs IHdlCiAgKiBhY2NlcHQgYWxsIHRoZSBsaWtlbHkgdmFyaWFudHMgb2YgIm9uIiBhbmQgIm9mZiIu CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXgg ZGM5ZTIyNTVmOGEuLjNkMGU0MmYwODNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC02NzQsNiArNjc0LDcgQEAKICMgLSBNb25pdG9yaW5n IC0KIAogI2NvbXB1dGVfcXVlcnlfaWQgPSBhdXRvCisjY29tcHV0ZV9wbGFuX2lkID0gYXV0bwog I2xvZ19zdGF0ZW1lbnRfc3RhdHMgPSBvZmYKICNsb2dfcGFyc2VyX3N0YXRzID0gb2ZmCiAjbG9n X3BsYW5uZXJfc3RhdHMgPSBvZmYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGZkOTQ0OGVj N2I5Li4yYmYyODRlMjczMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01NjUzLDkgKzU2 NTMsOSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9hY3Rpdml0eScsIHByb3Jvd3MgPT4g JzEwMCcsIHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ3JlY29yZCcs IHByb2FyZ3R5cGVzID0+ICdpbnQ0JywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tpbnQ0LG9pZCxp bnQ0LG9pZCx0ZXh0LHRleHQsdGV4dCx0ZXh0LHRleHQsdGltZXN0YW1wdHosdGltZXN0YW1wdHos dGltZXN0YW1wdHosdGltZXN0YW1wdHosaW5ldCx0ZXh0LGludDQseGlkLHhpZCx0ZXh0LGJvb2ws dGV4dCx0ZXh0LGludDQsdGV4dCxudW1lcmljLHRleHQsYm9vbCx0ZXh0LGJvb2wsYm9vbCxpbnQ0 LGludDh9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4g J3twaWQsZGF0aWQscGlkLHVzZXN5c2lkLGFwcGxpY2F0aW9uX25hbWUsc3RhdGUscXVlcnksd2Fp dF9ldmVudF90eXBlLHdhaXRfZXZlbnQseGFjdF9zdGFydCxxdWVyeV9zdGFydCxiYWNrZW5kX3N0 YXJ0LHN0YXRlX2NoYW5nZSxjbGllbnRfYWRkcixjbGllbnRfaG9zdG5hbWUsY2xpZW50X3BvcnQs YmFja2VuZF94aWQsYmFja2VuZF94bWluLGJhY2tlbmRfdHlwZSxzc2wsc3NsdmVyc2lvbixzc2xj aXBoZXIsc3NsYml0cyxzc2xfY2xpZW50X2RuLHNzbF9jbGllbnRfc2VyaWFsLHNzbF9pc3N1ZXJf ZG4sZ3NzX2F1dGgsZ3NzX3ByaW5jLGdzc19lbmMsZ3NzX2RlbGVnYXRpb24sbGVhZGVyX3BpZCxx dWVyeV9pZH0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne2ludDQsb2lkLGludDQsb2lkLHRleHQs dGV4dCx0ZXh0LHRleHQsdGV4dCx0aW1lc3RhbXB0eix0aW1lc3RhbXB0eix0aW1lc3RhbXB0eix0 aW1lc3RhbXB0eixpbmV0LHRleHQsaW50NCx4aWQseGlkLHRleHQsYm9vbCx0ZXh0LHRleHQsaW50 NCx0ZXh0LG51bWVyaWMsdGV4dCxib29sLHRleHQsYm9vbCxib29sLGludDQsaW50OCxpbnQ4fScs CisgIHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3twaWQs ZGF0aWQscGlkLHVzZXN5c2lkLGFwcGxpY2F0aW9uX25hbWUsc3RhdGUscXVlcnksd2FpdF9ldmVu dF90eXBlLHdhaXRfZXZlbnQseGFjdF9zdGFydCxxdWVyeV9zdGFydCxiYWNrZW5kX3N0YXJ0LHN0 YXRlX2NoYW5nZSxjbGllbnRfYWRkcixjbGllbnRfaG9zdG5hbWUsY2xpZW50X3BvcnQsYmFja2Vu ZF94aWQsYmFja2VuZF94bWluLGJhY2tlbmRfdHlwZSxzc2wsc3NsdmVyc2lvbixzc2xjaXBoZXIs c3NsYml0cyxzc2xfY2xpZW50X2RuLHNzbF9jbGllbnRfc2VyaWFsLHNzbF9pc3N1ZXJfZG4sZ3Nz X2F1dGgsZ3NzX3ByaW5jLGdzc19lbmMsZ3NzX2RlbGVnYXRpb24sbGVhZGVyX3BpZCxxdWVyeV9p ZCxwbGFuX2lkfScsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfYWN0aXZpdHknIH0sCiB7IG9p ZCA9PiAnNjMxOCcsIGRlc2NyID0+ICdkZXNjcmliZSB3YWl0IGV2ZW50cycsCiAgIHByb25hbWUg PT4gJ3BnX2dldF93YWl0X2V2ZW50cycsIHByb2Nvc3QgPT4gJzEwJywgcHJvcm93cyA9PiAnMjUw JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggYjVmZjQ1NmVmN2YuLmM5OGY3Yjk3MjgzIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaApAQCAtMTg5LDYgKzE4OSw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5u ZXJHbG9iYWwKIAkvKiBleHRlbnNpb24gc3RhdGUgKi8KIAl2b2lkCSAgKipleHRlbnNpb25fc3Rh dGUgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKIAlpbnQJCQlleHRlbnNpb25fc3Rh dGVfYWxsb2NhdGVkOworCisJLyogb3B0aW9uYWwganVtYmxlIHN0YXRlIGZvciBwbGFuIGlkZW50 aWZpZXIgY2FsY3VsYXRpb24gKi8KKwlzdHJ1Y3QgSnVtYmxlU3RhdGUgKnBsYW5fanVtYmxlX3N0 YXRlIHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CiB9IFBsYW5uZXJHbG9iYWw7CiAK IC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFu IG5vZGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggYzQzOTNhOTQzMjEuLmE1YTJjY2VhMWY3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtNzAsNyArNzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQ bGFubmVkU3RtdAogCS8qIHF1ZXJ5IGlkZW50aWZpZXIgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwog CWludDY0CQlxdWVyeUlkOwogCi0JLyogcGxhbiBpZGVudGlmaWVyIChjYW4gYmUgc2V0IGJ5IHBs dWdpbnMpICovCisJLyogcGxhbiBpZGVudGlmaWVyIChzZXQgd2hlbiBjb21wdXRlX3BsYW5faWQg aXMgZW5hYmxlZCBvciBieSBwbHVnaW5zKSAqLwogCWludDY0CQlwbGFuSWQ7CiAKIAkvKiBvcmln aW4gb2YgcGxhbiAqLwpAQCAtMTg0LDcgKzE4NCw3IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRT dG10CiAgKi8KIHR5cGVkZWYgc3RydWN0IFBsYW4KIHsKLQlwZ19ub2RlX2F0dHIoYWJzdHJhY3Qs IG5vX2VxdWFsLCBub19xdWVyeV9qdW1ibGUpCisJcGdfbm9kZV9hdHRyKGFic3RyYWN0LCBub19l cXVhbCkKIAogCU5vZGVUYWcJCXR5cGU7CiAKQEAgLTE5MiwxOSArMTkyLDE5IEBAIHR5cGVkZWYg c3RydWN0IFBsYW4KIAkgKiBlc3RpbWF0ZWQgZXhlY3V0aW9uIGNvc3RzIGZvciBwbGFuIChzZWUg Y29zdHNpemUuYyBmb3IgbW9yZSBpbmZvKQogCSAqLwogCS8qIGNvdW50IG9mIGRpc2FibGVkIG5v ZGVzICovCi0JaW50CQkJZGlzYWJsZWRfbm9kZXM7CisJaW50CQkJZGlzYWJsZWRfbm9kZXMgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGNvc3QgZXhwZW5kZWQgYmVmb3Jl IGZldGNoaW5nIGFueSB0dXBsZXMgKi8KLQlDb3N0CQlzdGFydHVwX2Nvc3Q7CisJQ29zdAkJc3Rh cnR1cF9jb3N0IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiB0b3RhbCBj b3N0IChhc3N1bWluZyBhbGwgdHVwbGVzIGZldGNoZWQpICovCi0JQ29zdAkJdG90YWxfY29zdDsK KwlDb3N0CQl0b3RhbF9jb3N0IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAog CS8qCiAJICogcGxhbm5lcidzIGVzdGltYXRlIG9mIHJlc3VsdCBzaXplIG9mIHRoaXMgcGxhbiBz dGVwCiAJICovCiAJLyogbnVtYmVyIG9mIHJvd3MgcGxhbiBpcyBleHBlY3RlZCB0byBlbWl0ICov Ci0JQ2FyZGluYWxpdHkgcGxhbl9yb3dzOworCUNhcmRpbmFsaXR5IHBsYW5fcm93cyBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogYXZlcmFnZSByb3cgd2lkdGggaW4gYnl0 ZXMgKi8KLQlpbnQJCQlwbGFuX3dpZHRoOworCWludAkJCXBsYW5fd2lkdGggcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCiAJLyoKIAkgKiBpbmZvcm1hdGlvbiBuZWVkZWQgZm9y IHBhcmFsbGVsIHF1ZXJ5CkBAIC0yMzAsMTAgKzIzMCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBQbGFu CiAJLyogaW1wbGljaXRseS1BTkRlZCBxdWFsIGNvbmRpdGlvbnMgKi8KIAlMaXN0CSAgICpxdWFs OwogCS8qIGlucHV0IHBsYW4gdHJlZShzKSAqLwotCXN0cnVjdCBQbGFuICpsZWZ0dHJlZTsKLQlz dHJ1Y3QgUGxhbiAqcmlnaHR0cmVlOworCXN0cnVjdCBQbGFuICpsZWZ0dHJlZSBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJc3RydWN0IFBsYW4gKnJpZ2h0dHJlZSBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogSW5pdCBQbGFuIG5vZGVzICh1bi1jb3Jy ZWxhdGVkIGV4cHIgc3Vic2VsZWN0cykgKi8KLQlMaXN0CSAgICppbml0UGxhbjsKKwlMaXN0CSAg ICppbml0UGxhbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKIAkvKgogCSAq IEluZm9ybWF0aW9uIGZvciBtYW5hZ2VtZW50IG9mIHBhcmFtZXRlci1jaGFuZ2UtZHJpdmVuIHJl c2Nhbm5pbmcKQEAgLTM1MSw3ICszNTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZQog CS8qIHBlci10YXJnZXQtdGFibGUgUkVUVVJOSU5HIHRsaXN0cyAqLwogCUxpc3QJICAgKnJldHVy bmluZ0xpc3RzOwogCS8qIHBlci10YXJnZXQtdGFibGUgRkRXIHByaXZhdGUgZGF0YSBsaXN0cyAq LwotCUxpc3QJICAgKmZkd1ByaXZMaXN0czsKKwlMaXN0CSAgICpmZHdQcml2TGlzdHMgcGdfbm9k ZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGluZGljZXMgb2YgRkRXIERNIHBsYW5z ICovCiAJQml0bWFwc2V0ICAqZmR3RGlyZWN0TW9kaWZ5UGxhbnM7CiAJLyogUGxhblJvd01hcmtz IChub24tbG9ja2luZyBvbmx5KSAqLwpAQCAtMzkwLDcgKzM5MCw3IEBAIHR5cGVkZWYgc3RydWN0 IEFwcGVuZAogCVBsYW4JCXBsYW47CiAJLyogUlRJcyBvZiBhcHBlbmRyZWwocykgZm9ybWVkIGJ5 IHRoaXMgbm9kZSAqLwogCUJpdG1hcHNldCAgKmFwcHJlbGlkczsKLQlMaXN0CSAgICphcHBlbmRw bGFuczsKKwlMaXN0CSAgICphcHBlbmRwbGFucyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CiAJLyogIyBvZiBhc3luY2hyb25vdXMgcGxhbnMgKi8KIAlpbnQJCQluYXN5bmNwbGFu czsKIApAQCAtNDIwLDcgKzQyMCw3IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlQXBwZW5kCiAJLyog UlRJcyBvZiBhcHBlbmRyZWwocykgZm9ybWVkIGJ5IHRoaXMgbm9kZSAqLwogCUJpdG1hcHNldCAg KmFwcHJlbGlkczsKIAotCUxpc3QJICAgKm1lcmdlcGxhbnM7CisJTGlzdAkgICAqbWVyZ2VwbGFu cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKIAkvKiB0aGVzZSBmaWVsZHMg YXJlIGp1c3QgbGlrZSB0aGUgc29ydC1rZXkgaW5mbyBpbiBzdHJ1Y3QgU29ydDogKi8KIApAQCAt NDc1LDcgKzQ3NSw3IEBAIHR5cGVkZWYgc3RydWN0IFJlY3Vyc2l2ZVVuaW9uCiAJT2lkCQkgICAq ZHVwQ29sbGF0aW9ucyBwZ19ub2RlX2F0dHIoYXJyYXlfc2l6ZShudW1Db2xzKSk7CiAKIAkvKiBl c3RpbWF0ZWQgbnVtYmVyIG9mIGdyb3VwcyBpbiBpbnB1dCAqLwotCUNhcmRpbmFsaXR5IG51bUdy b3VwczsKKwlsb25nCQludW1Hcm91cHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogfSBSZWN1cnNpdmVVbmlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDg5LDcgKzQ4 OSw3IEBAIHR5cGVkZWYgc3RydWN0IFJlY3Vyc2l2ZVVuaW9uCiB0eXBlZGVmIHN0cnVjdCBCaXRt YXBBbmQKIHsKIAlQbGFuCQlwbGFuOwotCUxpc3QJICAgKmJpdG1hcHBsYW5zOworCUxpc3QJICAg KmJpdG1hcHBsYW5zIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIH0gQml0bWFw QW5kOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC01MDQsNyArNTA0LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQml0bWFwT3IKIHsKIAlQbGFuCQlwbGFuOwogCWJvb2wJCWlzc2hhcmVkOwotCUxpc3QJ ICAgKmJpdG1hcHBsYW5zOworCUxpc3QJICAgKmJpdG1hcHBsYW5zIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIH0gQml0bWFwT3I7CiAKIC8qCkBAIC03NTIsNyArNzUyLDcgQEAg dHlwZWRlZiBlbnVtIFN1YnF1ZXJ5U2NhblN0YXR1cwogdHlwZWRlZiBzdHJ1Y3QgU3VicXVlcnlT Y2FuCiB7CiAJU2NhbgkJc2NhbjsKLQlQbGFuCSAgICpzdWJwbGFuOworCVBsYW4JICAgKnN1YnBs YW4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCVN1YnF1ZXJ5U2NhblN0YXR1 cyBzY2Fuc3RhdHVzOwogfSBTdWJxdWVyeVNjYW47CiAKQEAgLTg4MCw3ICs4ODAsNyBAQCB0eXBl ZGVmIHN0cnVjdCBGb3JlaWduU2NhbgogCS8qIGV4cHJlc3Npb25zIHRoYXQgRkRXIG1heSBldmFs dWF0ZSAqLwogCUxpc3QJICAgKmZkd19leHByczsKIAkvKiBwcml2YXRlIGRhdGEgZm9yIEZEVyAq LwotCUxpc3QJICAgKmZkd19wcml2YXRlOworCUxpc3QJICAgKmZkd19wcml2YXRlIHBnX25vZGVf YXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBvcHRpb25hbCB0bGlzdCBkZXNjcmliaW5n IHNjYW4gdHVwbGUgKi8KIAlMaXN0CSAgICpmZHdfc2Nhbl90bGlzdDsKIAkvKiBvcmlnaW5hbCBx dWFscyBub3QgaW4gc2Nhbi5wbGFuLnF1YWwgKi8KQEAgLTkxOCw3ICs5MTgsNyBAQCB0eXBlZGVm IHN0cnVjdCBDdXN0b21TY2FuCiAJLyogZXhwcmVzc2lvbnMgdGhhdCBjdXN0b20gY29kZSBtYXkg ZXZhbHVhdGUgKi8KIAlMaXN0CSAgICpjdXN0b21fZXhwcnM7CiAJLyogcHJpdmF0ZSBkYXRhIGZv ciBjdXN0b20gY29kZSAqLwotCUxpc3QJICAgKmN1c3RvbV9wcml2YXRlOworCUxpc3QJICAgKmN1 c3RvbV9wcml2YXRlIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBvcHRp b25hbCB0bGlzdCBkZXNjcmliaW5nIHNjYW4gdHVwbGUgKi8KIAlMaXN0CSAgICpjdXN0b21fc2Nh bl90bGlzdDsKIAkvKiBSVElzIGdlbmVyYXRlZCBieSB0aGlzIHNjYW4gKi8KQEAgLTkyOSw3ICs5 MjksNyBAQCB0eXBlZGVmIHN0cnVjdCBDdXN0b21TY2FuCiAJICogc3RhdGljIHRhYmxlIG9mIGNh bGxiYWNrIGZ1bmN0aW9ucy4gIFNvIHdlIGRvbid0IGNvcHkgdGhlIHRhYmxlIGl0c2VsZiwKIAkg KiBqdXN0IHJlZmVyZW5jZSB0aGUgb3JpZ2luYWwgb25lLgogCSAqLwotCWNvbnN0IHN0cnVjdCBD dXN0b21TY2FuTWV0aG9kcyAqbWV0aG9kczsKKwljb25zdCBzdHJ1Y3QgQ3VzdG9tU2Nhbk1ldGhv ZHMgKm1ldGhvZHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogfSBDdXN0b21T Y2FuOwogCiAvKgpAQCAtOTkxLDcgKzk5MSw3IEBAIHR5cGVkZWYgc3RydWN0IE5lc3RMb29wCiAK IHR5cGVkZWYgc3RydWN0IE5lc3RMb29wUGFyYW0KIHsKLQlwZ19ub2RlX2F0dHIobm9fZXF1YWws IG5vX3F1ZXJ5X2p1bWJsZSkKKwlwZ19ub2RlX2F0dHIobm9fZXF1YWwpCiAKIAlOb2RlVGFnCQl0 eXBlOwogCS8qIG51bWJlciBvZiB0aGUgUEFSQU1fRVhFQyBQYXJhbSB0byBzZXQgKi8KQEAgLTEw OTksNyArMTA5OSw3IEBAIHR5cGVkZWYgc3RydWN0IE1lbW9pemUKIAkgKiBUaGUgbWF4aW11bSBu dW1iZXIgb2YgZW50cmllcyB0aGF0IHRoZSBwbGFubmVyIGV4cGVjdHMgd2lsbCBmaXQgaW4gdGhl CiAJICogY2FjaGUsIG9yIDAgaWYgdW5rbm93bgogCSAqLwotCXVpbnQzMgkJZXN0X2VudHJpZXM7 CisJdWludDMyCQllc3RfZW50cmllcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 CiAKIAkvKiBwYXJhbWlkcyBmcm9tIHBhcmFtX2V4cHJzICovCiAJQml0bWFwc2V0ICAqa2V5cGFy YW1pZHM7CkBAIC0xMjA2LDcgKzEyMDYsNyBAQCB0eXBlZGVmIHN0cnVjdCBBZ2cKIAlPaWQJCSAg ICpncnBDb2xsYXRpb25zIHBnX25vZGVfYXR0cihhcnJheV9zaXplKG51bUNvbHMpKTsKIAogCS8q IGVzdGltYXRlZCBudW1iZXIgb2YgZ3JvdXBzIGluIGlucHV0ICovCi0JQ2FyZGluYWxpdHkgbnVt R3JvdXBzOworCWxvbmcJCW51bUdyb3VwcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CiAKIAkvKiBmb3IgcGFzcy1ieS1yZWYgdHJhbnNpdGlvbiBkYXRhICovCiAJdWludDY0CQl0 cmFuc2l0aW9uU3BhY2U7CkBAIC0xNDE1LDcgKzE0MTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBIYXNo CiAJYm9vbAkJc2tld0luaGVyaXQ7CiAJLyogYWxsIG90aGVyIGluZm8gaXMgaW4gdGhlIHBhcmVu dCBIYXNoSm9pbiBub2RlICovCiAJLyogZXN0aW1hdGUgdG90YWwgcm93cyBpZiBwYXJhbGxlbF9h d2FyZSAqLwotCUNhcmRpbmFsaXR5IHJvd3NfdG90YWw7CisJQ2FyZGluYWxpdHkgcm93c190b3Rh bCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiB9IEhhc2g7CiAKIC8qIC0tLS0t LS0tLS0tLS0tLS0KQEAgLTE0NDYsNyArMTQ0Niw3IEBAIHR5cGVkZWYgc3RydWN0IFNldE9wCiAJ Ym9vbAkgICAqY21wTnVsbHNGaXJzdCBwZ19ub2RlX2F0dHIoYXJyYXlfc2l6ZShudW1Db2xzKSk7 CiAKIAkvKiBlc3RpbWF0ZWQgbnVtYmVyIG9mIGdyb3VwcyBpbiBsZWZ0IGlucHV0ICovCi0JQ2Fy ZGluYWxpdHkgbnVtR3JvdXBzOworCWxvbmcJCW51bUdyb3VwcyBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CiB9IFNldE9wOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCmluZGV4IDFiNDQzNmYyZmY2Li40Y2NiYTZiY2QwMyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmgKQEAgLTExMjMsOCArMTEyMyw4IEBAIHR5cGVkZWYgc3RydWN0IFN1YlBsYW4KIAlMaXN0 CSAgICpwYXJQYXJhbTsJCS8qIGluZGljZXMgb2YgaW5wdXQgUGFyYW1zIGZyb20gcGFyZW50IHBs YW4gKi8KIAlMaXN0CSAgICphcmdzOwkJCS8qIGV4cHJzIHRvIHBhc3MgYXMgcGFyUGFyYW0gdmFs dWVzICovCiAJLyogRXN0aW1hdGVkIGV4ZWN1dGlvbiBjb3N0czogKi8KLQlDb3N0CQlzdGFydHVw X2Nvc3Q7CS8qIG9uZS10aW1lIHNldHVwIGNvc3QgKi8KLQlDb3N0CQlwZXJfY2FsbF9jb3N0Owkv KiBjb3N0IGZvciBlYWNoIHN1YnBsYW4gZXZhbHVhdGlvbiAqLworCUNvc3QJCXN0YXJ0dXBfY29z dCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CS8qIG9uZS10aW1lIHNldHVwIGNv c3QgKi8KKwlDb3N0CQlwZXJfY2FsbF9jb3N0IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsJLyogY29zdCBmb3IgZWFjaCBzdWJwbGFuIGV2YWx1YXRpb24gKi8KIH0gU3ViUGxhbjsK IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3F1ZXJ5anVtYmxlLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCmluZGV4IGRjYjM2ZGNiNDRmLi5hZWIyMGFhMDU4 NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oCkBAIC0xNSw2ICsxNSw3IEBACiAjZGVmaW5lIFFV RVJZSlVNQkxFX0gKIAogI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJu b2Rlcy9wYXRobm9kZXMuaCIKIAogLyoKICAqIFN0cnVjdCBmb3IgdHJhY2tpbmcgbG9jYXRpb25z L2xlbmd0aHMgb2YgY29uc3RhbnRzIGR1cmluZyBub3JtYWxpemF0aW9uCkBAIC04NiwxNSArODcs MjYgQEAgZW51bSBDb21wdXRlUXVlcnlJZFR5cGUKIAlDT01QVVRFX1FVRVJZX0lEX1JFR1JFU1Ms CiB9OwogCisvKiBWYWx1ZXMgZm9yIHRoZSBjb21wdXRlX3BsYW5faWQgR1VDICovCitlbnVtIENv bXB1dGVQbGFuSWRUeXBlCit7CisJQ09NUFVURV9QTEFOX0lEX09GRiwKKwlDT01QVVRFX1BMQU5f SURfT04sCisJQ09NUFVURV9QTEFOX0lEX0FVVE8sCisJQ09NUFVURV9QTEFOX0lEX1JFR1JFU1Ms Cit9OworCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21w dXRlX3F1ZXJ5X2lkOwotCitleHRlcm4gUEdETExJTVBPUlQgaW50IGNvbXB1dGVfcGxhbl9pZDsK IAogZXh0ZXJuIGNvbnN0IGNoYXIgKkNsZWFuUXVlcnl0ZXh0KGNvbnN0IGNoYXIgKnF1ZXJ5LCBp bnQgKmxvY2F0aW9uLCBpbnQgKmxlbik7CiBleHRlcm4gSnVtYmxlU3RhdGUgKkp1bWJsZVF1ZXJ5 KFF1ZXJ5ICpxdWVyeSk7CiBleHRlcm4gdm9pZCBFbmFibGVRdWVyeUlkKHZvaWQpOworZXh0ZXJu IHZvaWQgRW5hYmxlUGxhbklkKHZvaWQpOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBxdWVy eV9pZF9lbmFibGVkOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcGxhbl9pZF9lbmFibGVkOwog CiAvKgogICogUmV0dXJucyB3aGV0aGVyIHF1ZXJ5IGlkZW50aWZpZXIgY29tcHV0YXRpb24gaGFz IGJlZW4gZW5hYmxlZCwgZWl0aGVyCkBAIC0xMTAsNCArMTIyLDI1IEBAIElzUXVlcnlJZEVuYWJs ZWQodm9pZCkKIAlyZXR1cm4gcXVlcnlfaWRfZW5hYmxlZDsKIH0KIAorLyoKKyAqIFJldHVybnMg d2hldGhlciBwbGFuIGlkZW50aWZpZXIgY29tcHV0YXRpb24gaGFzIGJlZW4gZW5hYmxlZCwgZWl0 aGVyCisgKiBkaXJlY3RseSBpbiB0aGUgR1VDIG9yIGJ5IGEgbW9kdWxlIHdoZW4gdGhlIHNldHRp bmcgaXMgJ2F1dG8nLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wKK0lzUGxhbklkRW5hYmxlZCh2 b2lkKQoreworCWlmIChjb21wdXRlX3BsYW5faWQgPT0gQ09NUFVURV9QTEFOX0lEX09GRikKKwkJ cmV0dXJuIGZhbHNlOworCWlmIChjb21wdXRlX3BsYW5faWQgPT0gQ09NUFVURV9QTEFOX0lEX09O KQorCQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gcGxhbl9pZF9lbmFibGVkOworfQorCisvKiBGdW5j dGlvbnMgY2FsbGVkIGZvciBwbGFuIGp1bWJsaW5nIG9yIGV4dGVuc2lvbnMgZG9pbmcgdGhlaXIg b3duIGp1bWJsaW5nICovCitleHRlcm4gSnVtYmxlU3RhdGUgKkluaXRpYWxpemVKdW1ibGVTdGF0 ZShib29sIHJlY29yZF9jbG9jYXRpb25zKTsKKy8vZXh0ZXJuIHZvaWQgQXBwZW5kSnVtYmxlKEp1 bWJsZVN0YXRlICpqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml0ZW0sIFNpemUgc2l6ZSk7 CitleHRlcm4gdm9pZCBKdW1ibGVSYW5nZVRhYmxlKEp1bWJsZVN0YXRlICpqc3RhdGUsIExpc3Qg KnJ0YWJsZSk7CitleHRlcm4gdm9pZCBKdW1ibGVOb2RlKEp1bWJsZVN0YXRlICpqc3RhdGUsIE5v ZGUgKm5vZGUpOworZXh0ZXJuIHVpbnQ2NCBIYXNoSnVtYmxlU3RhdGUoSnVtYmxlU3RhdGUgKmpz dGF0ZSk7CisKICNlbmRpZgkJCQkJCQkvKiBRVUVSWUpVTUJMRV9IICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFj a2VuZF9zdGF0dXMuaAppbmRleCAzMDE2NTAxYWMwNS4uNDVmMDBlYjkzYTggMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvYmFja2VuZF9zdGF0dXMuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHR5cGVkZWYgc3RydWN0IFBn QmFja2VuZFN0YXR1cwogCS8qIHF1ZXJ5IGlkZW50aWZpZXIsIG9wdGlvbmFsbHkgY29tcHV0ZWQg dXNpbmcgcG9zdF9wYXJzZV9hbmFseXplX2hvb2sgKi8KIAlpbnQ2NAkJc3RfcXVlcnlfaWQ7CiAK LQkvKiBwbGFuIGlkZW50aWZpZXIsIG9wdGlvbmFsbHkgY29tcHV0ZWQgdXNpbmcgcGxhbm5lcl9o b29rICovCisJLyogcGxhbiBpZGVudGlmaWVyLCBvcHRpb25hbGx5IGNvbXB1dGVkIGFmdGVyIHBs YW5uaW5nICovCiAJaW50NjQJCXN0X3BsYW5faWQ7CiB9IFBnQmFja2VuZFN0YXR1czsKIApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQKaW5kZXggN2MxZjI2YjE4MmMuLjdhYzAyNWNj YTg0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQKQEAgLTc0Myw2ICs3NDMs MTcgQEAgc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBjcmVhdGUgdGFi bGUgdGVzdF9jdGFzIGFzIHNlbGVjdCAxJyk7CiAgUXVlcnkgSWRlbnRpZmllcjogTgogKDMgcm93 cykKIAorLS0gVGVzdCBjb21wdXRlX3BsYW5faWQKK3NldCBjb21wdXRlX3BsYW5faWQgPSBvbjsK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy5pbnQ4 X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IHExLCBx MgorIFF1ZXJ5IElkZW50aWZpZXI6IE4KKyBQbGFuIElkZW50aWZpZXI6IE4KKyg0IHJvd3MpCisK IC0tIFRlc3QgU0VSSUFMSVpFIG9wdGlvbgogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWlu IChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp OCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA0Mjg2YzI2NmUxNy4uMjlhZjliZDJkZTkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNzk0LDkgKzE3OTQsMTAgQEAgcGdfc3Rh dF9hY3Rpdml0eXwgU0VMRUNUIHMuZGF0aWQsCiAgICAgcy5iYWNrZW5kX3hpZCwKICAgICBzLmJh Y2tlbmRfeG1pbiwKICAgICBzLnF1ZXJ5X2lkLAorCXMucGxhbl9pZCwKICAgICBzLnF1ZXJ5LAog ICAgIHMuYmFja2VuZF90eXBlCi0gICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6 aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUs IHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0 YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9z dG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5 cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBz c2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3Nz X2VuYywgZ3NzX2RlbGVnYXRpb24sIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQorICAgRlJPTSAoKHBn X3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQs IGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2 ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdl LCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQs IGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwg c3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4s IGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGdzc19kZWxlZ2F0aW9uLCBsZWFkZXJfcGlk LCBxdWVyeV9pZCwgcGxhbl9pZCkKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChz LmRhdGlkID0gZC5vaWQpKSkKICAgICAgTEVGVCBKT0lOIHBnX2F1dGhpZCB1IE9OICgocy51c2Vz eXNpZCA9IHUub2lkKSkpOwogcGdfc3RhdF9hbGxfaW5kZXhlc3wgU0VMRUNUIGMub2lkIEFTIHJl bGlkLApAQCAtMTkyNiw3ICsxOTI3LDcgQEAgcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBwaWQsCiAg ICAgZ3NzX3ByaW5jIEFTIHByaW5jaXBhbCwKICAgICBnc3NfZW5jIEFTIGVuY3J5cHRlZCwKICAg ICBnc3NfZGVsZWdhdGlvbiBBUyBjcmVkZW50aWFsc19kZWxlZ2F0ZWQKLSAgIEZST00gcGdfc3Rh dF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBw bGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQs IHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNs aWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFj a2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xi aXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3Nz X2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgZ3NzX2RlbGVnYXRpb24sIGxlYWRlcl9waWQsIHF1 ZXJ5X2lkKQorICAgRlJPTSBwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxMOjppbnRlZ2VyKSBzKGRh dGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1lLCBzdGF0ZSwgcXVlcnksIHdhaXRf ZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFjdF9zdGFydCwgcXVlcnlfc3RhcnQsIGJhY2tlbmRf c3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50X2FkZHIsIGNsaWVudF9ob3N0bmFtZSwgY2xpZW50 X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5kX3htaW4sIGJhY2tlbmRfdHlwZSwgc3NsLCBzc2x2 ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMsIHNzbF9jbGllbnRfZG4sIHNzbF9jbGllbnRfc2Vy aWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3ByaW5jLCBnc3NfZW5jLCBnc3NfZGVs ZWdhdGlvbiwgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIHBsYW5faWQpCiAgIFdIRVJFIChjbGllbnRf cG9ydCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0X2lvfCBTRUxFQ1QgYmFja2VuZF90eXBlLAogICAg IG9iamVjdCwKQEAgLTIxNTYsNyArMjE1Nyw3IEBAIHBnX3N0YXRfcmVwbGljYXRpb258IFNFTEVD VCBzLnBpZCwKICAgICB3LnN5bmNfcHJpb3JpdHksCiAgICAgdy5zeW5jX3N0YXRlLAogICAgIHcu cmVwbHlfdGltZQotICAgRlJPTSAoKHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIp IHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwg d2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFj a2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBj bGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2ws IHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVu dF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGdz c19kZWxlZ2F0aW9uLCBsZWFkZXJfcGlkLCBxdWVyeV9pZCkKKyAgIEZST00gKChwZ19zdGF0X2dl dF9hY3Rpdml0eShOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNh dGlvbl9uYW1lLCBzdGF0ZSwgcXVlcnksIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFj dF9zdGFydCwgcXVlcnlfc3RhcnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50 X2FkZHIsIGNsaWVudF9ob3N0bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5k X3htaW4sIGJhY2tlbmRfdHlwZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMs IHNzbF9jbGllbnRfZG4sIHNzbF9jbGllbnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0 aCwgZ3NzX3ByaW5jLCBnc3NfZW5jLCBnc3NfZGVsZWdhdGlvbiwgbGVhZGVyX3BpZCwgcXVlcnlf aWQsIHBsYW5faWQpCiAgICAgIEpPSU4gcGdfc3RhdF9nZXRfd2FsX3NlbmRlcnMoKSB3KHBpZCwg c3RhdGUsIHNlbnRfbHNuLCB3cml0ZV9sc24sIGZsdXNoX2xzbiwgcmVwbGF5X2xzbiwgd3JpdGVf bGFnLCBmbHVzaF9sYWcsIHJlcGxheV9sYWcsIHN5bmNfcHJpb3JpdHksIHN5bmNfc3RhdGUsIHJl cGx5X3RpbWUpIE9OICgocy5waWQgPSB3LnBpZCkpKQogICAgICBMRUZUIEpPSU4gcGdfYXV0aGlk IHUgT04gKChzLnVzZXN5c2lkID0gdS5vaWQpKSk7CiBwZ19zdGF0X3JlcGxpY2F0aW9uX3Nsb3Rz fCBTRUxFQ1Qgcy5zbG90X25hbWUsCkBAIC0yMTkzLDcgKzIxOTQsNyBAQCBwZ19zdGF0X3NzbHwg U0VMRUNUIHBpZCwKICAgICBzc2xfY2xpZW50X2RuIEFTIGNsaWVudF9kbiwKICAgICBzc2xfY2xp ZW50X3NlcmlhbCBBUyBjbGllbnRfc2VyaWFsLAogICAgIHNzbF9pc3N1ZXJfZG4gQVMgaXNzdWVy X2RuCi0gICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQs IHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVu dF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFy dCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9y dCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNp b24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWws IHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGdzc19kZWxlZ2F0 aW9uLCBsZWFkZXJfcGlkLCBxdWVyeV9pZCkKKyAgIEZST00gcGdfc3RhdF9nZXRfYWN0aXZpdHko TlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwg c3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1 ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGll bnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNr ZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50 X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmlu YywgZ3NzX2VuYywgZ3NzX2RlbGVnYXRpb24sIGxlYWRlcl9waWQsIHF1ZXJ5X2lkLCBwbGFuX2lk KQogICBXSEVSRSAoY2xpZW50X3BvcnQgSVMgTk9UIE5VTEwpOwogcGdfc3RhdF9zdWJzY3JpcHRp b258IFNFTEVDVCBzdS5vaWQgQVMgc3ViaWQsCiAgICAgc3Uuc3VibmFtZSwKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv ZXhwbGFpbi5zcWwKaW5kZXggZWJkYWI0MjYwNGIuLjA0NDlmMDVjMWUxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9leHBsYWluLnNxbApAQCAtMTczLDYgKzE3MywxMCBAQCBzZWxlY3QgZXhwbGFpbl9maWx0ZXIo J2V4cGxhaW4gKHZlcmJvc2UpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKIHNlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgZGVjbGFyZSB0ZXN0X2N1ciBjdXJzb3Ig Zm9yIHNlbGVjdCAqIGZyb20gaW50OF90YmwnKTsKIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAodmVyYm9zZSkgY3JlYXRlIHRhYmxlIHRlc3RfY3RhcyBhcyBzZWxlY3QgMScpOwogCist LSBUZXN0IGNvbXB1dGVfcGxhbl9pZAorc2V0IGNvbXB1dGVfcGxhbl9pZCA9IG9uOworc2VsZWN0 IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIGludDhfdGJs IGk4Jyk7CisKIC0tIFRlc3QgU0VSSUFMSVpFIG9wdGlvbgogc2VsZWN0IGV4cGxhaW5fZmlsdGVy KCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOwogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLHNl cmlhbGl6ZSB0ZXh0LGJ1ZmZlcnMsdGltaW5nIG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp OCcpOwoKYmFzZS1jb21taXQ6IGIzOTAxM2I3YjFiMTE2YjVkOWJlNTFmMDkxOWI0NzJiNThiM2Ey OGQKLS0gCjIuNDMuMAoK ------==--bound.900221.49cd4b58-7c78-42e5-a261-f615fc122742--