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 1p3f1e-0001Bz-3o for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Dec 2022 15:10:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p3f1c-0003Hz-88 for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Dec 2022 15:10:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3f1b-0003Ho-H1 for pgsql-hackers@lists.postgresql.org; Fri, 09 Dec 2022 15:10:55 +0000 Received: from mail-oa1-x30.google.com ([2001:4860:4864:20::30]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p3f1X-0003FT-0T for pgsql-hackers@lists.postgresql.org; Fri, 09 Dec 2022 15:10:54 +0000 Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-1445ca00781so90723fac.1 for ; Fri, 09 Dec 2022 07:10:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; h=user-agent:mime-version:date:organization:references:in-reply-to:cc :to:reply-to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=FLGyV/7I5lqM7ujPwyFrB3ftB5kLCsp7QT9IkJbJlbU=; b=T2WcRDod91nvO7oLu/jNwUAFbxsKn/s+akmZ1qrLjtY4MNWb3vuHCjYkEJIwPh52kc u9mAlsZ0NcxVxnd0vZMEVBlWr4k4gynSFvi7MYcISfmxwJVWjwWipOfwrq00q89g+16s fR6t01rtiKrvbZZOo49H99C3dy9gTK0nauUrVDKBgVzIz9tFjze6Gjq5KXAHE51pI6fL IgT+CuhQIctCo/kjf9cbDdIIEnQJGsI6K7O06n4VyzuGNA0SbIjEJwhH2tDx4ss9p9Bd Pm9YAEVOZNhzmqTTKIXqEby4kCt39URLYVI8V89px4+JqrM6wYaEjOO6KsWORK8YGY00 UvYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:mime-version:date:organization:references:in-reply-to:cc :to:reply-to:from:subject:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FLGyV/7I5lqM7ujPwyFrB3ftB5kLCsp7QT9IkJbJlbU=; b=HL3PMQkQaUubt54NYUg2WN1NIiTMRoUQav9vxwEFvttoKVSqHi1eMN4xEMN42zgjK+ uvE+qasq8KZky5C7UVyCSVWGIEY7H/T0PgIulwBiSCu0LQB1VKG8obRIUJyNLpMkL8S9 bscU0OieUT0I57QAiAxLP8pThWMod1tmma37m1wVKMkYSd7msqiV9hb1G4r+KOuwAv2M lfCdtDoCdTgrgH+KhFtPwHB8OkatfTCAkGHlgOVcm2OoxIN+XHbnA7TzksdFAUQ5kr/0 /7wcDBmUw8kVyFkI0KgDJ5vyNlZS/NK8c+ZaNvkcgCmKUh+Na0sifmETVRL83jy1+14D ihzA== X-Gm-Message-State: ANoB5pmwIS1NLO9XJ/wZAj6AN8b8WXG/KJH8NOUKbdt+EqffamJR1FW7 PKys3klDfoK4R94yRgLfmNArHg== X-Google-Smtp-Source: AA0mqf6dQJnp4/Xoh0Q62PjNbNY1eDlxwz5/SdLnBwA5KR+mgGuRE5ZjkWPeMz5EcrNhmZzMZMpmiw== X-Received: by 2002:a05:6358:ed07:b0:df:42a4:a1ad with SMTP id hy7-20020a056358ed0700b000df42a4a1admr126266rwb.14.1670598650291; Fri, 09 Dec 2022 07:10:50 -0800 (PST) Received: from raker.lan (cpe-24-163-67-44.nc.res.rr.com. [24.163.67.44]) by smtp.gmail.com with ESMTPSA id r18-20020a05620a299200b006fed2788751sm1226qkp.76.2022.12.09.07.10.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Dec 2022 07:10:49 -0800 (PST) Message-ID: <4816d81103c9360c51d0bc73f1dfb9992f10c9de.camel@crunchydata.com> Subject: Re: Add the ability to limit the amount of memory that can be allocated to backends. From: Reid Thompson Reply-To: reid.thompson@crunchydata.com To: Andres Freund Cc: reid.thompson@crunchydata.com, Arne Roland , "pgsql-hackers@lists.postgresql.org" , Justin Pryzby , Ibrar Ahmed In-Reply-To: <20221206183244.howaxkwg4tm4bnkp@awork3.anarazel.de> References: <9e7969b9f6cbd2494705c7a5a21e7de0171727bb.camel@crunchydata.com> <20221206183244.howaxkwg4tm4bnkp@awork3.anarazel.de> Organization: Crunchy Data Content-Type: multipart/mixed; boundary="=-WCe3NAXK8q4+b30t6MGz" Date: Fri, 09 Dec 2022 10:05:45 -0500 MIME-Version: 1.0 User-Agent: Evolution 3.45.1 Compiled: 2022-06-07 10:22:05 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-WCe3NAXK8q4+b30t6MGz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2022-12-06 at 10:32 -0800, Andres Freund wrote: > Hi, >=20 > On 2022-11-26 22:22:15 -0500, Reid Thompson wrote: > > rebased/patched to current master && current pg-stat-activity- > > backend-memory-allocated >=20 > This version fails to build with msvc, and builds with warnings on > other > platforms. > https://cirrus-ci.com/build/5410696721072128 > msvc: >=20 > Andres Freund updated patches --=20 Reid Thompson Senior Software Engineer Crunchy Data, Inc. reid.thompson@crunchydata.com www.crunchydata.com --=-WCe3NAXK8q4+b30t6MGz Content-Disposition: attachment; filename*0=0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.patch"; charset="UTF-8" RnJvbSBlNDgyOTJlYWY0MDJiZmUzOTdmMWMyZmRjMWIzZWZkOGNkMGE5MTM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogU2F0LCA0IEp1biAyMDIyIDIyOjIzOjU5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIEFkZCB0aGUgYWJpbGl0eSB0byBsaW1pdCB0aGUgYW1vdW50IG9mIG1lbW9yeSB0aGF0IGNh biBiZQogYWxsb2NhdGVkIHRvIGJhY2tlbmRzLgoKVGhpcyBidWlsZHMgb24gdGhlIHdvcmsgdGhh dCBhZGRzIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRlZCB0byBwZ19zdGF0X2FjdGl2aXR5LgoKQWRk IEdVQyB2YXJpYWJsZSBtYXhfdG90YWxfYmFja2VuZF9tZW1vcnkuCgpTcGVjaWZpZXMgYSBsaW1p dCB0byB0aGUgYW1vdW50IG9mIG1lbW9yeSAoaW4gTUIpIHRoYXQgbWF5IGJlIGFsbG9jYXRlZCB0 bwpiYWNrZW5kcyBpbiB0b3RhbCAoaS5lLiB0aGlzIGlzIG5vdCBhIHBlciB1c2VyIG9yIHBlciBi YWNrZW5kIGxpbWl0KS4gSWYgdW5zZXQsCm9yIHNldCB0byAwIGl0IGlzIGRpc2FibGVkLiBJdCBp cyBpbnRlbmRlZCBhcyBhIHJlc291cmNlIHRvIGhlbHAgYXZvaWQgdGhlIE9PTQpraWxsZXIgb24g TElOVVggYW5kIG1hbmFnZSByZXNvdXJjZXMgaW4gZ2VuZXJhbC4gQSBiYWNrZW5kIHJlcXVlc3Qg dGhhdCB3b3VsZApwdXNoIHRoZSB0b3RhbCBvdmVyIHRoZSBsaW1pdCB3aWxsIGJlIGRlbmllZCB3 aXRoIGFuIG91dCBvZiBtZW1vcnkgZXJyb3IgY2F1c2luZwp0aGF0IGJhY2tlbmQncyBjdXJyZW50 IHF1ZXJ5L3RyYW5zYWN0aW9uIHRvIGZhaWwuIER1ZSB0byB0aGUgZHluYW1pYyBuYXR1cmUgb2YK bWVtb3J5IGFsbG9jYXRpb25zLCB0aGlzIGxpbWl0IGlzIG5vdCBleGFjdC4gSWYgd2l0aGluIDEu NU1CIG9mIHRoZSBsaW1pdCBhbmQKdHdvIGJhY2tlbmRzIHJlcXVlc3QgMU1CIGVhY2ggYXQgdGhl IHNhbWUgdGltZSBib3RoIG1heSBiZSBhbGxvY2F0ZWQsIGFuZCBleGNlZWQKdGhlIGxpbWl0LiBG dXJ0aGVyIHJlcXVlc3RzIHdpbGwgbm90IGJlIGFsbG9jYXRlZCB1bnRpbCBkcm9wcGluZyBiZWxv dyB0aGUKbGltaXQuIEtlZXAgdGhpcyBpbiBtaW5kIHdoZW4gc2V0dGluZyB0aGlzIHZhbHVlLiBU aGlzIGxpbWl0IGRvZXMgbm90IGFmZmVjdAphdXhpbGlhcnkgYmFja2VuZCBwcm9jZXNzZXMuIEJh Y2tlbmQgbWVtb3J5IGFsbG9jYXRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlCnBnX3N0YXRfYWN0 aXZpdHkgdmlldy4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAg ICAgICAgfCAgMjYgKysrKysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMgICAg ICAgICAgICB8ICAxMiArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0 dXMuYyAgIHwgMTA4ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfdGFibGVzLmMgICAgICAgICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDMgKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0 LmMgICAgICAgICAgICAgICAgIHwgIDE3ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5l cmF0aW9uLmMgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIu YyAgICAgICAgICAgICAgICAgfCAgIDggKysKIHNyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3Rh dHVzLmggICAgICAgICAgICB8ICAgMyArCiA5IGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sCmluZGV4IGZmNmZjZDkwMmEuLjI4OTlmMTA5YWMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAg LTIwNzksNiArMjA3OSwzMiBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgPC9saXN0aXRl bT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLW1h eC10b3RhbC1iYWNrZW5kLW1lbW9yeSIgeHJlZmxhYmVsPSJtYXhfdG90YWxfYmFja2VuZF9tZW1v cnkiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+bWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5PC92YXJu YW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPm1heF90b3RhbF9iYWNrZW5kX21lbW9yeTwvdmFybmFtZT4gY29uZmln dXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwv dGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVz IGEgbGltaXQgdG8gdGhlIGFtb3VudCBvZiBtZW1vcnkgKE1CKSB0aGF0IG1heSBiZSBhbGxvY2F0 ZWQgdG8KKyAgICAgICAgYmFja2VuZHMgaW4gdG90YWwgKGkuZS4gdGhpcyBpcyBub3QgYSBwZXIg dXNlciBvciBwZXIgYmFja2VuZCBsaW1pdCkuCisgICAgICAgIElmIHVuc2V0LCBvciBzZXQgdG8g MCBpdCBpcyBkaXNhYmxlZC4gIEEgYmFja2VuZCByZXF1ZXN0IHRoYXQgd291bGQKKyAgICAgICAg cHVzaCB0aGUgdG90YWwgb3ZlciB0aGUgbGltaXQgd2lsbCBiZSBkZW5pZWQgd2l0aCBhbiBvdXQg b2YgbWVtb3J5CisgICAgICAgIGVycm9yIGNhdXNpbmcgdGhhdCBiYWNrZW5kJ3MgY3VycmVudCBx dWVyeS90cmFuc2FjdGlvbiB0byBmYWlsLiBEdWUgdG8KKyAgICAgICAgdGhlIGR5bmFtaWMgbmF0 dXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgdGhpcyBsaW1pdCBpcyBub3QgZXhhY3QuIElmCisg ICAgICAgIHdpdGhpbiAxLjVNQiBvZiB0aGUgbGltaXQgYW5kIHR3byBiYWNrZW5kcyByZXF1ZXN0 IDFNQiBlYWNoIGF0IHRoZSBzYW1lCisgICAgICAgIHRpbWUgYm90aCBtYXkgYmUgYWxsb2NhdGVk LCBhbmQgZXhjZWVkIHRoZSBsaW1pdC4gRnVydGhlciByZXF1ZXN0cyB3aWxsCisgICAgICAgIG5v dCBiZSBhbGxvY2F0ZWQgdW50aWwgZHJvcHBpbmcgYmVsb3cgdGhlIGxpbWl0LiBLZWVwIHRoaXMg aW4gbWluZCB3aGVuCisgICAgICAgIHNldHRpbmcgdGhpcyB2YWx1ZS4gVGhpcyBsaW1pdCBkb2Vz IG5vdCBhZmZlY3QgYXV4aWxpYXJ5IGJhY2tlbmQKKyAgICAgICAgcHJvY2Vzc2VzIDx4cmVmIGxp bmtlbmQ9Imdsb3NzYXJ5LWF1eGlsaWFyeS1wcm9jIi8+IC4gQmFja2VuZCBtZW1vcnkKKyAgICAg ICAgYWxsb2NhdGlvbnMgKDx2YXJuYW1lPmFsbG9jYXRlZF9ieXRlczwvdmFybmFtZT4pIGFyZSBk aXNwbGF5ZWQgaW4gdGhlCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Im1vbml0b3JpbmctcGctc3Rh dC1hY3Rpdml0eS12aWV3Ij48c3RydWN0bmFtZT5wZ19zdGF0X2FjdGl2aXR5PC9zdHJ1Y3RuYW1l PjwvbGluaz4KKyAgICAgICAgdmlldy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICAgPC9z ZWN0Mj4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKaW5kZXggMzZlZjNlNDI1ZS4uNThm YjY5MGM2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYwor KysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jCkBAIC0yNTQsNiArMjU0LDEw IEBAIGRzbV9pbXBsX3Bvc2l4KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVx dWVzdF9zaXplLAogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKKwkvKiBEbyBub3QgZXhjZWVkIG1heGlt dW0gYWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JFQVRF ICYmIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShyZXF1ZXN0X3NpemUpKQorCQlyZXR1cm4g ZmFsc2U7CisKIAkvKgogCSAqIENyZWF0ZSBuZXcgc2VnbWVudCBvciBvcGVuIGFuIGV4aXN0aW5n IG9uZSBmb3IgYXR0YWNoLgogCSAqCkBAIC01MjUsNiArNTI5LDEwIEBAIGRzbV9pbXBsX3N5c3Yo ZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCWludAkJ CWZsYWdzID0gSVBDUHJvdGVjdGlvbjsKIAkJc2l6ZV90CQlzZWdzaXplOwogCisJCS8qIERvIG5v dCBleGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJCWlmIChvcCA9 PSBEU01fT1BfQ1JFQVRFICYmIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShyZXF1ZXN0X3Np emUpKQorCQkJcmV0dXJuIGZhbHNlOworCiAJCS8qCiAJCSAqIEFsbG9jYXRlIHRoZSBtZW1vcnkg QkVGT1JFIGFjcXVpcmluZyB0aGUgcmVzb3VyY2UsIHNvIHRoYXQgd2UgZG9uJ3QKIAkJICogbGVh ayB0aGUgcmVzb3VyY2UgaWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMuCkBAIC03MTksNiArNzI3 LDEwIEBAIGRzbV9pbXBsX3dpbmRvd3MoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6 ZSByZXF1ZXN0X3NpemUsCiAJCXJldHVybiB0cnVlOwogCX0KIAorCS8qIERvIG5vdCBleGNlZWQg bWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJaWYgKG9wID09IERTTV9PUF9D UkVBVEUgJiYgZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKHJlcXVlc3Rfc2l6ZSkpCisJCXJl dHVybiBmYWxzZTsKKwogCS8qIENyZWF0ZSBuZXcgc2VnbWVudCBvciBvcGVuIGFuIGV4aXN0aW5n IG9uZSBmb3IgYXR0YWNoLiAqLwogCWlmIChvcCA9PSBEU01fT1BfQ1JFQVRFKQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCmluZGV4IDM3ODVlOGFmNTMu LjA3ZGZkOGY0OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tl bmRfc3RhdHVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0 dXMuYwpAQCAtNDUsNiArNDUsOSBAQAogYm9vbAkJcGdzdGF0X3RyYWNrX2FjdGl2aXRpZXMgPSBm YWxzZTsKIGludAkJCXBnc3RhdF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplID0gMTAyNDsKIAor LyogTWF4IGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRpb24gYWxsb3dlZCAoTUIpLiAwID0gZGlzYWJs ZWQgKi8KK2ludAkJCW1heF90b3RhbF9ia2VuZF9tZW0gPSAwOworCiAKIC8qIGV4cG9zZWQgc28g dGhhdCBiYWNrZW5kX3Byb2dyZXNzLmMgY2FuIGFjY2VzcyBpdCAqLwogUGdCYWNrZW5kU3RhdHVz ICpNeUJFRW50cnkgPSBOVUxMOwpAQCAtMTIzNiwzICsxMjM5LDEwOCBAQCBwZ3N0YXRfcmVzZXRf YWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2Uodm9pZCkKIAlteV9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9j YWxfbXlfYWxsb2NhdGVkX2J5dGVzOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBwZ3N0YXRfZ2V0 X2FsbF9tZW1vcnlfYWxsb2NhdGVkKCkgLQorICoKKyAqCVJldHVybiBhIHVpbnQ2NCByZXByZXNl bnRpbmcgdGhlIGN1cnJlbnQgc2hhcmVkIG1lbW9yeSBhbGxvY2F0ZWQgdG8gYWxsCisgKgliYWNr ZW5kcy4gIFRoaXMgbG9va3MgZGlyZWN0bHkgYXQgdGhlIEJhY2tlbmRTdGF0dXNBcnJheSwgYW5k IHNvIHdpbGwKKyAqCXByb3ZpZGUgY3VycmVudCBpbmZvcm1hdGlvbiByZWdhcmRsZXNzIG9mIHRo ZSBhZ2Ugb2Ygb3VyIHRyYW5zYWN0aW9uJ3MKKyAqCXNuYXBzaG90IG9mIHRoZSBzdGF0dXMgYXJy YXkuCisgKglJbiB0aGUgZnV0dXJlIHdlIHdpbGwgbGlrZWx5IHV0aWxpemUgYWRkaXRpb25hbCB2 YWx1ZXMgLSBwZXJoYXBzIGxpbWl0CisgKgliYWNrZW5kIGFsbG9jYXRpb24gYnkgdXNlci9yb2xl LCBldGMuCisgKiAtLS0tLS0tLS0tCisgKi8KK3VpbnQ2NAorcGdzdGF0X2dldF9hbGxfYmFja2Vu ZF9tZW1vcnlfYWxsb2NhdGVkKHZvaWQpCit7CisJUGdCYWNrZW5kU3RhdHVzICpiZWVudHJ5Owor CWludAkJCWk7CisJdWludDY0CQlhbGxfbWVtb3J5X2FsbG9jYXRlZCA9IDA7CisKKwliZWVudHJ5 ID0gQmFja2VuZFN0YXR1c0FycmF5OworCisJLyoKKwkgKiBXZSBwcm9iYWJseSBzaG91bGRuJ3Qg Z2V0IGhlcmUgYmVmb3JlIHNoYXJlZCBtZW1vcnkgaGFzIGJlZW4gc2V0IHVwLAorCSAqIGJ1dCBi ZSBzYWZlLgorCSAqLworCWlmIChiZWVudHJ5ID09IE5VTEwgfHwgQmFja2VuZEFjdGl2aXR5QnVm ZmVyID09IE5VTEwpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBXZSBpbmNsdWRlIEFVWCBwcm9j cyBpbiBhbGwgYmFja2VuZCBtZW1vcnkgY2FsY3VsYXRpb24KKwkgKi8KKwlmb3IgKGkgPSAxOyBp IDw9IE51bUJhY2tlbmRTdGF0U2xvdHM7IGkrKykKKwl7CisJCS8qCisJCSAqIFdlIHVzZSBhIHZv bGF0aWxlIHBvaW50ZXIgaGVyZSB0byBlbnN1cmUgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgdHJ5CisJ CSAqIHRvIGdldCBjdXRlLgorCQkgKi8KKwkJdm9sYXRpbGUgUGdCYWNrZW5kU3RhdHVzICp2YmVl bnRyeSA9IGJlZW50cnk7CisJCWJvb2wJCWZvdW5kOworCQl1aW50NjQJCWFsbG9jYXRlZF9ieXRl cyA9IDA7CisKKwkJZm9yICg7OykKKwkJeworCQkJaW50CQkJYmVmb3JlX2NoYW5nZWNvdW50Owor CQkJaW50CQkJYWZ0ZXJfY2hhbmdlY291bnQ7CisKKwkJCXBnc3RhdF9iZWdpbl9yZWFkX2FjdGl2 aXR5KHZiZWVudHJ5LCBiZWZvcmVfY2hhbmdlY291bnQpOworCisJCQkvKgorCQkJICogSWdub3Jl IGludmFsaWQgZW50cmllcywgd2hpY2ggbWF5IGNvbnRhaW4gaW52YWxpZCBkYXRhLgorCQkJICog U2VlIHBnc3RhdF9iZXNodXRkb3duX2hvb2soKQorCQkJICovCisJCQlpZiAodmJlZW50cnktPnN0 X3Byb2NwaWQgPiAwKQorCQkJCWFsbG9jYXRlZF9ieXRlcyA9IHZiZWVudHJ5LT5hbGxvY2F0ZWRf Ynl0ZXM7CisKKwkJCXBnc3RhdF9lbmRfcmVhZF9hY3Rpdml0eSh2YmVlbnRyeSwgYWZ0ZXJfY2hh bmdlY291bnQpOworCisJCQlpZiAoKGZvdW5kID0gcGdzdGF0X3JlYWRfYWN0aXZpdHlfY29tcGxl dGUoYmVmb3JlX2NoYW5nZWNvdW50LAorCQkJCQkJCQkJCQkJCSAgIGFmdGVyX2NoYW5nZWNvdW50 KSkpCisJCQkJYnJlYWs7CisKKwkJCS8qIE1ha2Ugc3VyZSB3ZSBjYW4gYnJlYWsgb3V0IG9mIGxv b3AgaWYgc3R1Y2suLi4gKi8KKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisJCX0KKworCQlp ZiAoZm91bmQpCisJCQlhbGxfbWVtb3J5X2FsbG9jYXRlZCArPSBhbGxvY2F0ZWRfYnl0ZXM7CisK KwkJYmVlbnRyeSsrOworCX0KKworCXJldHVybiBhbGxfbWVtb3J5X2FsbG9jYXRlZDsKK30KKwor LyoKKyAqIERldGVybWluZSBpZiBhbGxvY2F0aW9uIHJlcXVlc3Qgd2lsbCBleGNlZWQgbWF4IGJh Y2tlbmQgbWVtb3J5IGFsbG93ZWQuCisgKiBEbyBub3QgYXBwbHkgdG8gYXV4aWxpYXJ5IHByb2Nl c3Nlcy4KKyAqLworYm9vbAorZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKHVpbnQ2NCBhbGxv Y2F0aW9uX3JlcXVlc3QpCit7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwkvKiBFeGNsdWRl IGF1eGlsaWFyeSBwcm9jZXNzZXMgZnJvbSB0aGUgY2hlY2sgKi8KKwlpZiAoTXlBdXhQcm9jVHlw ZSAhPSBOb3RBbkF1eFByb2Nlc3MpCisJCXJldHVybiByZXN1bHQ7CisKKwkvKiBDb252ZXJ0IG1h eF90b3RhbF9ia2VuZF9tZW0gdG8gYnl0ZXMgZm9yIGNvbXBhcmlzb24gKi8KKwlpZiAobWF4X3Rv dGFsX2JrZW5kX21lbSAmJgorCQlwZ3N0YXRfZ2V0X2FsbF9iYWNrZW5kX21lbW9yeV9hbGxvY2F0 ZWQoKSArCisJCWFsbG9jYXRpb25fcmVxdWVzdCA+ICh1aW50NjQpIG1heF90b3RhbF9ia2VuZF9t ZW0gKiAxMDI0ICogMTAyNCkKKwl7CisJCS8qCisJCSAqIEV4cGxpY2l0bHkgaWRlbnRpZnkgdGhl IE9PTSBiZWluZyBhIHJlc3VsdCBvZiB0aGlzIGNvbmZpZ3VyYXRpb24KKwkJICogcGFyYW1ldGVy IHZzIGEgc3lzdGVtIGZhaWx1cmUgdG8gYWxsb2NhdGUgT09NLgorCQkgKi8KKwkJZXJlcG9ydChX QVJOSU5HLAorCQkJCWVycm1zZygiYWxsb2NhdGlvbiB3b3VsZCBleGNlZWQgbWF4X3RvdGFsX21l bW9yeSBsaW1pdCAoJWxsdSA+ICVsbHUpIiwKKwkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykg cGdzdGF0X2dldF9hbGxfYmFja2VuZF9tZW1vcnlfYWxsb2NhdGVkKCkgKworCQkJCQkgICBhbGxv Y2F0aW9uX3JlcXVlc3QsICh1bnNpZ25lZCBsb25nIGxvbmcpIG1heF90b3RhbF9ia2VuZF9tZW0g KiAxMDI0ICogMTAyNCkpOworCisJCXJlc3VsdCA9IHRydWU7CisJfQorCisJcmV0dXJuIHJlc3Vs dDsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMWJmMTRlZWM2Ni4uYmZk ZTMzOGE4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTM0MjMsNiArMzQy MywxNyBAQCBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAkJTlVMTCwg TlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsibWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5IiwgUEdD X1NVX0JBQ0tFTkQsIFJFU09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlJlc3RyaWN0IHRv dGFsIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRpb25zIHRvIHRoaXMgbWF4LiIpLAorCQkJZ2V0dGV4 dF9ub29wKCIwIHR1cm5zIHRoaXMgZmVhdHVyZSBvZmYuIiksCisJCQlHVUNfVU5JVF9NQgorCQl9 LAorCQkmbWF4X3RvdGFsX2JrZW5kX21lbSwKKwkJMCwgMCwgSU5UX01BWCwKKwkJTlVMTCwgTlVM TCwgTlVMTAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAw LCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwgMCwgMCwgMCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDA0Mzg2NDU5 N2YuLjc1ZWEwYzlhZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKQEAgLTE1NSw2ICsxNTUsOSBAQAogCQkJCQkjICAgbW1hcAogCQkJCQkjIChj aGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKICNtaW5fZHluYW1pY19zaGFyZWRfbWVtb3J5ID0gME1C CSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI21heF90b3RhbF9iYWNrZW5kX21lbW9yeSA9 IDBNQgkJIyBSZXN0cmljdCB0b3RhbCBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9ucworCQkJCQkJ CQkJIyB0byB0aGlzIG1heCAoaW4gTUIpLiAwIHR1cm5zIHRoaXMgZmVhdHVyZQorCQkJCQkJCQkJ IyBvZmYuCiAKICMgLSBEaXNrIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9hc2V0LmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwppbmRleCBjYzEwZGZkNjA5 Li4zY2UyMTkxNTU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwpAQCAtNDQwLDYgKzQ0MCwxMCBAQCBB bGxvY1NldENvbnRleHRDcmVhdGVJbnRlcm5hbChNZW1vcnlDb250ZXh0IHBhcmVudCwKIAllbHNl CiAJCWZpcnN0QmxvY2tTaXplID0gTWF4KGZpcnN0QmxvY2tTaXplLCBpbml0QmxvY2tTaXplKTsK IAorCS8qIERvIG5vdCBleGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICov CisJaWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShmaXJzdEJsb2NrU2l6ZSkpCisJCXJl dHVybiBOVUxMOworCiAJLyoKIAkgKiBBbGxvY2F0ZSB0aGUgaW5pdGlhbCBibG9jay4gIFVubGlr ZSBvdGhlciBhc2V0LmMgYmxvY2tzLCBpdCBzdGFydHMgd2l0aAogCSAqIHRoZSBjb250ZXh0IGhl YWRlciBhbmQgaXRzIGJsb2NrIGhlYWRlciBmb2xsb3dzIHRoYXQuCkBAIC03NDEsNiArNzQ1LDEx IEBAIEFsbG9jU2V0QWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAjZW5k aWYKIAogCQlibGtzaXplID0gY2h1bmtfc2l6ZSArIEFMTE9DX0JMT0NLSERSU1ogKyBBTExPQ19D SFVOS0hEUlNaOworCisJCS8qIERvIG5vdCBleGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBh bGxvY2F0aW9uICovCisJCWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oYmxrc2l6ZSkp CisJCQlyZXR1cm4gTlVMTDsKKwogCQlibG9jayA9IChBbGxvY0Jsb2NrKSBtYWxsb2MoYmxrc2l6 ZSk7CiAJCWlmIChibG9jayA9PSBOVUxMKQogCQkJcmV0dXJuIE5VTEw7CkBAIC05MzgsNiArOTQ3 LDEwIEBAIEFsbG9jU2V0QWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJ CXdoaWxlIChibGtzaXplIDwgcmVxdWlyZWRfc2l6ZSkKIAkJCWJsa3NpemUgPDw9IDE7CiAKKwkJ LyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJ aWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShibGtzaXplKSkKKwkJCXJldHVybiBOVUxM OworCiAJCS8qIFRyeSB0byBhbGxvY2F0ZSBpdCAqLwogCQlibG9jayA9IChBbGxvY0Jsb2NrKSBt YWxsb2MoYmxrc2l6ZSk7CiAKQEAgLTExNzgsNiArMTE5MSwxMCBAQCBBbGxvY1NldFJlYWxsb2Mo dm9pZCAqcG9pbnRlciwgU2l6ZSBzaXplKQogCQlibGtzaXplID0gY2hrc2l6ZSArIEFMTE9DX0JM T0NLSERSU1ogKyBBTExPQ19DSFVOS0hEUlNaOwogCQlvbGRibGtzaXplID0gYmxvY2stPmVuZHB0 ciAtICgoY2hhciAqKSBibG9jayk7CiAKKwkJLyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93 ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGJsa3NpemUgPiBvbGRibGtzaXplICYmIGV4 Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShibGtzaXplIC0gb2xkYmxrc2l6ZSkpCisJCQlyZXR1 cm4gTlVMTDsKKwogCQlibG9jayA9IChBbGxvY0Jsb2NrKSByZWFsbG9jKGJsb2NrLCBibGtzaXpl KTsKIAkJaWYgKGJsb2NrID09IE5VTEwpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL21tZ3IvZ2VuZXJhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9u LmMKaW5kZXggYjA0NjBkOTdjMi4uMzE4M2M5YThkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvbW1nci9nZW5lcmF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5l cmF0aW9uLmMKQEAgLTIwMSw2ICsyMDEsOSBAQCBHZW5lcmF0aW9uQ29udGV4dENyZWF0ZShNZW1v cnlDb250ZXh0IHBhcmVudCwKIAllbHNlCiAJCWFsbG9jU2l6ZSA9IE1heChhbGxvY1NpemUsIGlu aXRCbG9ja1NpemUpOwogCisJaWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShhbGxvY1Np emUpKQorCQlyZXR1cm4gTlVMTDsKKwogCS8qCiAJICogQWxsb2NhdGUgdGhlIGluaXRpYWwgYmxv Y2suICBVbmxpa2Ugb3RoZXIgZ2VuZXJhdGlvbi5jIGJsb2NrcywgaXQKIAkgKiBzdGFydHMgd2l0 aCB0aGUgY29udGV4dCBoZWFkZXIgYW5kIGl0cyBibG9jayBoZWFkZXIgZm9sbG93cyB0aGF0LgpA QCAtMzgwLDYgKzM4Myw5IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQs IFNpemUgc2l6ZSkKIAl7CiAJCVNpemUJCWJsa3NpemUgPSByZXF1aXJlZF9zaXplICsgR2VuZXJh dGlvbl9CTE9DS0hEUlNaOwogCisJCWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oYmxr c2l6ZSkpCisJCQlyZXR1cm4gTlVMTDsKKwogCQlibG9jayA9IChHZW5lcmF0aW9uQmxvY2sgKikg bWFsbG9jKGJsa3NpemUpOwogCQlpZiAoYmxvY2sgPT0gTlVMTCkKIAkJCXJldHVybiBOVUxMOwpA QCAtNDgzLDYgKzQ4OSw5IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQs IFNpemUgc2l6ZSkKIAkJCWlmIChibGtzaXplIDwgcmVxdWlyZWRfc2l6ZSkKIAkJCQlibGtzaXpl ID0gcGdfbmV4dHBvd2VyMl9zaXplX3QocmVxdWlyZWRfc2l6ZSk7CiAKKwkJCWlmIChleGNlZWRz X21heF90b3RhbF9ia2VuZF9tZW0oYmxrc2l6ZSkpCisJCQkJcmV0dXJuIE5VTEw7CisKIAkJCWJs b2NrID0gKEdlbmVyYXRpb25CbG9jayAqKSBtYWxsb2MoYmxrc2l6ZSk7CiAKIAkJCWlmIChibG9j ayA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMgYi9z cmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIuYwppbmRleCAwOGJiMDEzZjdjLi4yMDc0ZjM4NTNh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9tbWdyL3NsYWIuYwpAQCAtMTk3LDYgKzE5NywxMCBAQCBTbGFiQ29udGV4dENy ZWF0ZShNZW1vcnlDb250ZXh0IHBhcmVudCwKIAloZWFkZXJTaXplICs9IGNodW5rc1BlckJsb2Nr ICogc2l6ZW9mKGJvb2wpOwogI2VuZGlmCiAKKwkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxs b3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9t ZW0oaGVhZGVyU2l6ZSkpCisJCXJldHVybiBOVUxMOworCiAJc2xhYiA9IChTbGFiQ29udGV4dCAq KSBtYWxsb2MoaGVhZGVyU2l6ZSk7CiAJaWYgKHNsYWIgPT0gTlVMTCkKIAl7CkBAIC0zNTEsNiAr MzU1LDEwIEBAIFNsYWJBbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkg Ki8KIAlpZiAoc2xhYi0+bWluRnJlZUNodW5rcyA9PSAwKQogCXsKKwkJLyogRG8gbm90IGV4Y2Vl ZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGV4Y2VlZHNfbWF4 X3RvdGFsX2JrZW5kX21lbShzbGFiLT5ibG9ja1NpemUpKQorCQkJcmV0dXJuIE5VTEw7CisKIAkJ YmxvY2sgPSAoU2xhYkJsb2NrICopIG1hbGxvYyhzbGFiLT5ibG9ja1NpemUpOwogCiAJCWlmIChi bG9jayA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0 dXMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKaW5kZXggM2JhNDc5Y2Iw ZC4uMTc4N2Q3NWFjZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0 dXMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCkBAIC0yODYsNiAr Mjg2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTG9jYWxQZ0JhY2tlbmRTdGF0dXMKICAqLwogZXh0ZXJu IFBHRExMSU1QT1JUIGJvb2wgcGdzdGF0X3RyYWNrX2FjdGl2aXRpZXM7CiBleHRlcm4gUEdETExJ TVBPUlQgaW50IHBnc3RhdF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplOworZXh0ZXJuIFBHRExM SU1QT1JUIGludCBtYXhfdG90YWxfYmtlbmRfbWVtOwogCiAKIC8qIC0tLS0tLS0tLS0KQEAgLTMy NSw2ICszMjYsNyBAQCBleHRlcm4gY29uc3QgY2hhciAqcGdzdGF0X2dldF9iYWNrZW5kX2N1cnJl bnRfYWN0aXZpdHkoaW50IHBpZCwgYm9vbCBjaGVja1VzZXIpOwogZXh0ZXJuIGNvbnN0IGNoYXIg KnBnc3RhdF9nZXRfY3Jhc2hlZF9iYWNrZW5kX2FjdGl2aXR5KGludCBwaWQsIGNoYXIgKmJ1ZmZl ciwKIAkJCQkJCQkJCQkJCQkgICBpbnQgYnVmbGVuKTsKIGV4dGVybiB1aW50NjQgcGdzdGF0X2dl dF9teV9xdWVyeV9pZCh2b2lkKTsKK2V4dGVybiB1aW50NjQgcGdzdGF0X2dldF9hbGxfYmFja2Vu ZF9tZW1vcnlfYWxsb2NhdGVkKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3NldF9hbGxvY2F0 ZWRfYnl0ZXNfc3RvcmFnZSh1aW50NjQgKmFsbG9jYXRlZF9ieXRlcyk7CiBleHRlcm4gdm9pZCBw Z3N0YXRfcmVzZXRfYWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2Uodm9pZCk7CiAKQEAgLTMzNyw2ICsz MzksNyBAQCBleHRlcm4gaW50CXBnc3RhdF9mZXRjaF9zdGF0X251bWJhY2tlbmRzKHZvaWQpOwog ZXh0ZXJuIFBnQmFja2VuZFN0YXR1cyAqcGdzdGF0X2ZldGNoX3N0YXRfYmVlbnRyeShCYWNrZW5k SWQgYmVpZCk7CiBleHRlcm4gTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKnBnc3RhdF9mZXRjaF9zdGF0 X2xvY2FsX2JlZW50cnkoaW50IGJlaWQpOwogZXh0ZXJuIGNoYXIgKnBnc3RhdF9jbGlwX2FjdGl2 aXR5KGNvbnN0IGNoYXIgKnJhd19hY3Rpdml0eSk7CitleHRlcm4gYm9vbCBleGNlZWRzX21heF90 b3RhbF9ia2VuZF9tZW0odWludDY0IGFsbG9jYXRpb25fcmVxdWVzdCk7CiAKIC8qIC0tLS0tLS0t LS0KICAqIHBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKCkgLQotLSAKMi4yNS4xCgo= --=-WCe3NAXK8q4+b30t6MGz Content-Disposition: attachment; filename*0=0001-Add-tracking-of-backend-memory-allocated-to-pg_stat_.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Add-tracking-of-backend-memory-allocated-to-pg_stat_.patch"; charset="UTF-8" RnJvbSBmZGI3ZTZkNWJiNjUzZTljNTAzMWZkMDU4YmYxNjhiZGY4MGEyMGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogVGh1LCAxMSBBdWcgMjAyMiAxMjowMToyNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBBZGQgdHJhY2tpbmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkIHRvCiBwZ19zdGF0 X2FjdGl2aXR5CgpUaGlzIG5ldyBmaWVsZCBkaXNwbGF5cyB0aGUgY3VycmVudCBieXRlcyBvZiBt ZW1vcnkgYWxsb2NhdGVkIHRvIHRoZQpiYWNrZW5kIHByb2Nlc3MuIEl0IGlzIHVwZGF0ZWQgYXMg bWVtb3J5IGZvciB0aGUgcHJvY2VzcyBpcwptYWxsb2MnZC9mcmVlJ2QuIE1lbW9yeSBhbGxvY2F0 ZWQgdG8gaXRlbXMgb24gdGhlIGZyZWVsaXN0IGlzIGluY2x1ZGVkIGluCnRoZSBkaXNwbGF5ZWQg dmFsdWUuICBEeW5hbWljIHNoYXJlZCBtZW1vcnkgYWxsb2NhdGlvbnMgYXJlIGluY2x1ZGVkCm9u bHkgaW4gdGhlIHZhbHVlIGRpc3BsYXllZCBmb3IgdGhlIGJhY2tlbmQgdGhhdCBjcmVhdGVkIHRo ZW0sIHRoZXkgYXJlCm5vdCBpbmNsdWRlZCBpbiB0aGUgdmFsdWUgZm9yIGJhY2tlbmRzIHRoYXQg YXJlIGF0dGFjaGVkIHRvIHRoZW0gdG8KYXZvaWQgZG91YmxlIGNvdW50aW5nLiBPbiBvY2Nhc2lv biwgb3JwaGFuZWQgbWVtb3J5IHNlZ21lbnRzIG1heSBiZQpjbGVhbmVkIHVwIG9uIHBvc3RtYXN0 ZXIgc3RhcnR1cC4gVGhpcyBtYXkgcmVzdWx0IGluIGRlY3JlYXNpbmcgdGhlIHN1bQp3aXRob3V0 IGEgcHJpb3IgaW5jcmVtZW50LiBXZSBsaW1pdCB0aGUgZmxvb3Igb2YgYmFja2VuZF9tZW1fYWxs b2NhdGVkCnRvIHplcm8uIFVwZGF0ZWQgcGdfc3RhdF9hY3Rpdml0eSBkb2N1bWVudGF0aW9uIGZv ciB0aGUgbmV3IGNvbHVtbi4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAg ICAgICAgICAgIHwgMTUgKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs ICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAg ICAgfCAgNiArKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICB8 IDEzICsrKysKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMgICAgICAgICAgfCAg MyArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jICAgICAgICAgIHwgODEgKysr KysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0 YXR1cy5jIHwgNDUgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVu Y3MuYyAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jICAgICAg ICAgICAgICAgfCAxNyArKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMg ICAgICAgICB8IDE1ICsrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jICAgICAgICAg ICAgICAgfCAyMSArKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAg ICAgICAgfCAgNiArLQogc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaCAgICAgICAg ICB8IDU5ICsrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgICAgICAgICB8ICA5ICsrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQg ICAgICAgICB8IDExICsrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsICAgICAgICAg ICAgICB8ICAzICsKIDE2IGZpbGVzIGNoYW5nZWQsIDMwMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDExYThlYmU1ZWMuLjEzZWNiZTU4NzcgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbApAQCAtOTQ4LDYgKzk0OCwyMSBAQCBwb3N0Z3JlcyAgIDI3MDkzICAw LjAgIDAuMCAgMzAwOTYgIDI3NTIgPyAgICAgICAgU3MgICAxMTozNCAgIDA6MDAgcG9zdGdyZXM6 IHNlcgogICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICA8L3Jvdz4KIAorICAgIDxyb3c+CisgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICA8c3RydWN0ZmllbGQ+YWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAg TWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGluIGJ5dGVzLiBUaGlz IGlzIHRoZSBiYWxhbmNlCisgICAgICBvZiBieXRlcyBhbGxvY2F0ZWQgYW5kIGZyZWVkIGJ5IHRo aXMgYmFja2VuZC4gRHluYW1pYyBzaGFyZWQgbWVtb3J5CisgICAgICBhbGxvY2F0aW9ucyBhcmUg aW5jbHVkZWQgb25seSBpbiB0aGUgdmFsdWUgZGlzcGxheWVkIGZvciB0aGUgYmFja2VuZCB0aGF0 CisgICAgICBjcmVhdGVkIHRoZW0sIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgdmFsdWUg Zm9yIGJhY2tlbmRzIHRoYXQgYXJlCisgICAgICBhdHRhY2hlZCB0byB0aGVtIHRvIGF2b2lkIGRv dWJsZSBjb3VudGluZy4gVXNlIDxmdW5jdGlvbj5wZ19zaXplX3ByZXR0eTwvZnVuY3Rpb24+Cisg ICAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLWFkbWluLWRic2l6ZSIv PiB0byBtYWtlIHRoaXMgdmFsdWUKKyAgICAgIG1vcmUgZWFzaWx5IHJlYWRhYmxlLgorICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+cXVlcnk8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBl PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDJkODEwNGIwOTAuLjllYThm NzhjOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTg2NCw2ICs4NjQs NyBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FjdGl2aXR5IEFTCiAgICAgICAgICAgICBTLnN0YXRl LAogICAgICAgICAgICAgUy5iYWNrZW5kX3hpZCwKICAgICAgICAgICAgIHMuYmFja2VuZF94bWlu LAorICAgICAgICAgICAgUy5hbGxvY2F0ZWRfYnl0ZXMsCiAgICAgICAgICAgICBTLnF1ZXJ5X2lk LAogICAgICAgICAgICAgUy5xdWVyeSwKICAgICAgICAgICAgIFMuYmFja2VuZF90eXBlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDA3NDZkODAyMjQuLmY2YjZmNzFjZGIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC00MDcsNiArNDA3LDkgQEAgU3RhcnRB dXRvVmFjTGF1bmNoZXIodm9pZCkKIAogI2lmbmRlZiBFWEVDX0JBQ0tFTkQKIAkJY2FzZSAwOgor CQkJLyogWmVybyBhbGxvY2F0ZWQgYnl0ZXMgdG8gYXZvaWQgZG91YmxlIGNvdW50aW5nIHBhcmVu dCBhbGxvY2F0aW9uICovCisJCQlwZ3N0YXRfemVyb19teV9hbGxvY2F0ZWRfYnl0ZXMoKTsKKwog CQkJLyogaW4gcG9zdG1hc3RlciBjaGlsZCAuLi4gKi8KIAkJCUluaXRQb3N0bWFzdGVyQ2hpbGQo KTsKIApAQCAtMTQ4NSw2ICsxNDg4LDkgQEAgU3RhcnRBdXRvVmFjV29ya2VyKHZvaWQpCiAKICNp Zm5kZWYgRVhFQ19CQUNLRU5ECiAJCWNhc2UgMDoKKwkJCS8qIFplcm8gYWxsb2NhdGVkIGJ5dGVz IHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZyBwYXJlbnQgYWxsb2NhdGlvbiAqLworCQkJcGdzdGF0 X3plcm9fbXlfYWxsb2NhdGVkX2J5dGVzKCk7CisKIAkJCS8qIGluIHBvc3RtYXN0ZXIgY2hpbGQg Li4uICovCiAJCQlJbml0UG9zdG1hc3RlckNoaWxkKCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0 bWFzdGVyLmMKaW5kZXggYThhMjQ2OTIxZi4uODlhNmNhZWM3OCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9wb3N0bWFzdGVyLmMKQEAgLTQxMDIsNiArNDEwMiw5IEBAIEJhY2tlbmRTdGFydHVwKFBvcnQg KnBvcnQpCiAJewogCQlmcmVlKGJuKTsKIAorCQkvKiBaZXJvIGFsbG9jYXRlZCBieXRlcyB0byBh dm9pZCBkb3VibGUgY291bnRpbmcgcGFyZW50IGFsbG9jYXRpb24gKi8KKwkJcGdzdGF0X3plcm9f bXlfYWxsb2NhdGVkX2J5dGVzKCk7CisKIAkJLyogRGV0YW5nbGUgZnJvbSBwb3N0bWFzdGVyICov CiAJCUluaXRQb3N0bWFzdGVyQ2hpbGQoKTsKIApAQCAtNTMwNyw2ICs1MzEwLDExIEBAIFN0YXJ0 Q2hpbGRQcm9jZXNzKEF1eFByb2NUeXBlIHR5cGUpCiAJCU1lbW9yeUNvbnRleHREZWxldGUoUG9z dG1hc3RlckNvbnRleHQpOwogCQlQb3N0bWFzdGVyQ29udGV4dCA9IE5VTEw7CiAKKwkJLyogWmVy byBhbGxvY2F0ZWQgYnl0ZXMgdG8gYXZvaWQgZG91YmxlIGNvdW50aW5nIHBhcmVudCBhbGxvY2F0 aW9uLgorCQkgKiBOZWVkcyB0byBiZSBhZnRlciB0aGUgTWVtb3J5Q29udGV4dERlbGV0ZShQb3N0 bWFzdGVyQ29udGV4dCkgYWJvdmUuCisJCSAqLworCQlwZ3N0YXRfemVyb19teV9hbGxvY2F0ZWRf Ynl0ZXMoKTsKKwogCQlBdXhpbGlhcnlQcm9jZXNzTWFpbih0eXBlKTsgLyogZG9lcyBub3QgcmV0 dXJuICovCiAJfQogI2VuZGlmCQkJCQkJCS8qIEVYRUNfQkFDS0VORCAqLwpAQCAtNTcwMCw2ICs1 NzA4LDExIEBAIGRvX3N0YXJ0X2Jnd29ya2VyKFJlZ2lzdGVyZWRCZ1dvcmtlciAqcncpCiAJCQlN ZW1vcnlDb250ZXh0RGVsZXRlKFBvc3RtYXN0ZXJDb250ZXh0KTsKIAkJCVBvc3RtYXN0ZXJDb250 ZXh0ID0gTlVMTDsKIAorCQkJLyogWmVybyBhbGxvY2F0ZWQgYnl0ZXMgdG8gYXZvaWQgZG91Ymxl IGNvdW50aW5nIHBhcmVudCBhbGxvY2F0aW9uLgorCQkJICogTmVlZHMgdG8gYmUgYWZ0ZXIgdGhl IE1lbW9yeUNvbnRleHREZWxldGUoUG9zdG1hc3RlckNvbnRleHQpIGFib3ZlLgorCQkJICovCisJ CQlwZ3N0YXRfemVyb19teV9hbGxvY2F0ZWRfYnl0ZXMoKTsKKwogCQkJU3RhcnRCYWNrZ3JvdW5k V29ya2VyKCk7CiAKIAkJCWV4aXQoMSk7CQkJLyogc2hvdWxkIG5vdCBnZXQgaGVyZSAqLwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMKaW5kZXggZDZkMDJlM2M2My4uNGNiYzU5Y2RhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYworKysgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jCkBAIC02NzksNiArNjc5LDkgQEAgU3lzTG9nZ2Vy X1N0YXJ0KHZvaWQpCiAKICNpZm5kZWYgRVhFQ19CQUNLRU5ECiAJCWNhc2UgMDoKKwkJCS8qIFpl cm8gYWxsb2NhdGVkIGJ5dGVzIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZyBwYXJlbnQgYWxsb2Nh dGlvbiAqLworCQkJcGdzdGF0X3plcm9fbXlfYWxsb2NhdGVkX2J5dGVzKCk7CisKIAkJCS8qIGlu IHBvc3RtYXN0ZXIgY2hpbGQgLi4uICovCiAJCQlJbml0UG9zdG1hc3RlckNoaWxkKCk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jCmluZGV4IDZkZGQ0NmE0ZTcuLjM2ZWYzZTQyNWUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYwpAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUg InBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZHNtX2ltcGwuaCIK ICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCisjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0dXMu aCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgog CkBAIC0yMzIsNiArMjMzLDE0IEBAIGRzbV9pbXBsX3Bvc2l4KGRzbV9vcCBvcCwgZHNtX2hhbmRs ZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJCW5hbWUpKSk7CiAJCQlyZXR1cm4g ZmFsc2U7CiAJCX0KKworCQkvKgorCQkgKiBEZXRhY2ggYW5kIGRlc3Ryb3kgcGFzcyB0aHJvdWdo IGhlcmUsIG9ubHkgZGVjcmVhc2UgdGhlIG1lbW9yeQorCQkgKiBzaG93biBhbGxvY2F0ZWQgaW4g cGdfc3RhdF9hY3Rpdml0eSB3aGVuIHRoZSBjcmVhdG9yIGRlc3Ryb3lzIHRoZQorCQkgKiBhbGxv Y2F0aW9uLgorCQkgKi8KKwkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9ZKQorCQkJcGdzdGF0X3Jl cG9ydF9hbGxvY2F0ZWRfYnl0ZXMoKm1hcHBlZF9zaXplLCBQR19BTExPQ19ERUNSRUFTRSk7CiAJ CSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBwZWRfc2l6ZSA9IDA7CiAJCWlmIChvcCA9 PSBEU01fT1BfREVTVFJPWSAmJiBzaG1fdW5saW5rKG5hbWUpICE9IDApCkBAIC0zMzIsNiArMzQx LDM2IEBAIGRzbV9pbXBsX3Bvc2l4KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUg cmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KKworCS8q CisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJvdWdoIGhlcmUsIG9ubHkgdXBkYXRlIGJh Y2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZpdHkgZm9yIHRoZSBj cmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYgKG9wID09IERTTV9PUF9DUkVBVEUpCisJeworCQkv KgorCQkgKiBQb3NpeCBjcmVhdGlvbiBjYWxscyBkc21faW1wbF9wb3NpeF9yZXNpemUgaW1wbHlp bmcgdGhhdCByZXNpemluZworCQkgKiBvY2N1cnMgb3IgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1 cmUuIEFzIGltcGxlbWVudGVkCisJCSAqIGRzbV9pbXBsX3Bvc2l4X3Jlc2l6ZSB1dGlsaXplcyBm YWxsb2NhdGUgb3IgdHJ1bmNhdGUsIHBhc3NpbmcgdGhlCisJCSAqIHdob2xlIG5ldyBzaXplIGFz IGlucHV0LCBncm93aW5nIHRoZSBhbGxvY2F0aW9uIGFzIG5lZWRlZCAob25seQorCQkgKiB0cnVu Y2F0ZSBzdXBwb3J0cyBzaHJpbmtpbmcpLiBXZSB1cGRhdGUgYnkgcmVwbGFjaW5nIHRoZSBvbGQK KwkJICogYWxsb2NhdGlvbiB3aXRoIHRoZSBuZXcuCisJCSAqLworI2lmIGRlZmluZWQoSEFWRV9Q T1NJWF9GQUxMT0NBVEUpICYmIGRlZmluZWQoX19saW51eF9fKQorCQkvKgorCQkgKiBwb3NpeF9m YWxsb2NhdGUgZG9lcyBub3Qgc2hyaW5rIGFsbG9jYXRpb25zLCBhZGp1c3Qgb25seSBvbgorCQkg KiBhbGxvY2F0aW9uIGluY3JlYXNlLgorCQkgKi8KKwkJaWYgKHJlcXVlc3Rfc2l6ZSA+ICptYXBw ZWRfc2l6ZSkKKwkJeworCQkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMocmVxdWVzdF9z aXplIC0gKm1hcHBlZF9zaXplLAorCQkJCQkJCQkJCSAgUEdfQUxMT0NfSU5DUkVBU0UpOworCQl9 CisjZWxzZQorCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlcygqbWFwcGVkX3NpemUsIFBH X0FMTE9DX0RFQ1JFQVNFKTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMocmVxdWVz dF9zaXplLCBQR19BTExPQ19JTkNSRUFTRSk7CisjZW5kaWYKKwl9CiAJKm1hcHBlZF9hZGRyZXNz ID0gYWRkcmVzczsKIAkqbWFwcGVkX3NpemUgPSByZXF1ZXN0X3NpemU7CiAJY2xvc2UoZmQpOwpA QCAtNTM3LDYgKzU3NiwxNCBAQCBkc21faW1wbF9zeXN2KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBo YW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJCW5hbWUpKSk7CiAJCQlyZXR1cm4gZmFs c2U7CiAJCX0KKworCQkvKgorCQkgKiBEZXRhY2ggYW5kIGRlc3Ryb3kgcGFzcyB0aHJvdWdoIGhl cmUsIG9ubHkgZGVjcmVhc2UgdGhlIG1lbW9yeQorCQkgKiBzaG93biBhbGxvY2F0ZWQgaW4gcGdf c3RhdF9hY3Rpdml0eSB3aGVuIHRoZSBjcmVhdG9yIGRlc3Ryb3lzIHRoZQorCQkgKiBhbGxvY2F0 aW9uLgorCQkgKi8KKwkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9ZKQorCQkJcGdzdGF0X3JlcG9y dF9hbGxvY2F0ZWRfYnl0ZXMoKm1hcHBlZF9zaXplLCBQR19BTExPQ19ERUNSRUFTRSk7CiAJCSpt YXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBwZWRfc2l6ZSA9IDA7CiAJCWlmIChvcCA9PSBE U01fT1BfREVTVFJPWSAmJiBzaG1jdGwoaWRlbnQsIElQQ19STUlELCBOVUxMKSA8IDApCkBAIC01 ODQsNiArNjMxLDEzIEBAIGRzbV9pbXBsX3N5c3YoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRs ZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQluYW1lKSkpOwogCQlyZXR1cm4gZmFsc2U7CiAJ fQorCisJLyoKKwkgKiBBdHRhY2ggYW5kIGNyZWF0ZSBwYXNzIHRocm91Z2ggaGVyZSwgb25seSB1 cGRhdGUgYmFja2VuZCBtZW1vcnkKKwkgKiBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rpdml0eSBm b3IgdGhlIGNyZWF0b3IgcHJvY2Vzcy4KKwkgKi8KKwlpZiAob3AgPT0gRFNNX09QX0NSRUFURSkK KwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMocmVxdWVzdF9zaXplLCBQR19BTExPQ19J TkNSRUFTRSk7CiAJKm1hcHBlZF9hZGRyZXNzID0gYWRkcmVzczsKIAkqbWFwcGVkX3NpemUgPSBy ZXF1ZXN0X3NpemU7CiAKQEAgLTY1Miw2ICs3MDYsMTMgQEAgZHNtX2ltcGxfd2luZG93cyhkc21f b3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJCXJldHVybiBm YWxzZTsKIAkJfQogCisJCS8qCisJCSAqIERldGFjaCBhbmQgZGVzdHJveSBwYXNzIHRocm91Z2gg aGVyZSwgb25seSBkZWNyZWFzZSB0aGUgbWVtb3J5CisJCSAqIHNob3duIGFsbG9jYXRlZCBpbiBw Z19zdGF0X2FjdGl2aXR5IHdoZW4gdGhlIGNyZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFsbG9j YXRpb24uCisJCSAqLworCQlpZiAob3AgPT0gRFNNX09QX0RFU1RST1kpCisJCQlwZ3N0YXRfcmVw b3J0X2FsbG9jYXRlZF9ieXRlcygqbWFwcGVkX3NpemUsIFBHX0FMTE9DX0RFQ1JFQVNFKTsKIAkJ KmltcGxfcHJpdmF0ZSA9IE5VTEw7CiAJCSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBw ZWRfc2l6ZSA9IDA7CkBAIC03NjgsNiArODI5LDEyIEBAIGRzbV9pbXBsX3dpbmRvd3MoZHNtX29w IG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKKwkvKgorCSAqIEF0dGFjaCBhbmQgY3JlYXRlIHBhc3MgdGhyb3VnaCBoZXJlLCBv bmx5IHVwZGF0ZSBiYWNrZW5kIG1lbW9yeQorCSAqIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2 aXR5IGZvciB0aGUgY3JlYXRvciBwcm9jZXNzLgorCSAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JF QVRFKQorCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlcyhpbmZvLlJlZ2lvblNpemUsIFBH X0FMTE9DX0lOQ1JFQVNFKTsKIAkqbWFwcGVkX2FkZHJlc3MgPSBhZGRyZXNzOwogCSptYXBwZWRf c2l6ZSA9IGluZm8uUmVnaW9uU2l6ZTsKIAkqaW1wbF9wcml2YXRlID0gaG1hcDsKQEAgLTgxMiw2 ICs4NzksMTMgQEAgZHNtX2ltcGxfbW1hcChkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBT aXplIHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCQluYW1lKSkpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9 CisKKwkJLyoKKwkJICogRGV0YWNoIGFuZCBkZXN0cm95IHBhc3MgdGhyb3VnaCBoZXJlLCBvbmx5 IGRlY3JlYXNlIHRoZSBtZW1vcnkKKwkJICogc2hvd24gYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0 aXZpdHkgd2hlbiB0aGUgY3JlYXRvciBkZXN0cm95cyB0aGUKKwkJICogYWxsb2NhdGlvbi4KKwkJ ICovCisJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKCptYXBwZWRfc2l6ZSwgUEdfQUxM T0NfREVDUkVBU0UpOwogCQkqbWFwcGVkX2FkZHJlc3MgPSBOVUxMOwogCQkqbWFwcGVkX3NpemUg PSAwOwogCQlpZiAob3AgPT0gRFNNX09QX0RFU1RST1kgJiYgdW5saW5rKG5hbWUpICE9IDApCkBA IC05MzMsNiArMTAwNywxMyBAQCBkc21faW1wbF9tbWFwKGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBo YW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkpKTsKIAkJcmV0dXJuIGZhbHNl OwogCX0KKworCS8qCisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJvdWdoIGhlcmUsIG9u bHkgdXBkYXRlIGJhY2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZp dHkgZm9yIHRoZSBjcmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYgKG9wID09IERTTV9PUF9DUkVB VEUpCisJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKHJlcXVlc3Rfc2l6ZSwgUEdfQUxM T0NfSU5DUkVBU0UpOwogCSptYXBwZWRfYWRkcmVzcyA9IGFkZHJlc3M7CiAJKm1hcHBlZF9zaXpl ID0gcmVxdWVzdF9zaXplOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9iYWNrZW5kX3N0YXR1cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9z dGF0dXMuYwppbmRleCAxMTQ2YTZjMzNjLi4zNzg1ZThhZjUzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKQEAgLTQ5LDYgKzQ5LDkgQEAgaW50CQkJcGdz dGF0X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemUgPSAxMDI0OwogLyogZXhwb3NlZCBzbyB0aGF0 IGJhY2tlbmRfcHJvZ3Jlc3MuYyBjYW4gYWNjZXNzIGl0ICovCiBQZ0JhY2tlbmRTdGF0dXMgKk15 QkVFbnRyeSA9IE5VTEw7CiAKKy8qIE1lbW9yeSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIHBy aW9yIHRvIHBnc3RhdHMgaW5pdGlhbGl6YXRpb24gKi8KK3VpbnQ2NAlsb2NhbF9teV9hbGxvY2F0 ZWRfYnl0ZXMgPSAwOwordWludDY0CSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfYWxs b2NhdGVkX2J5dGVzOwogCiBzdGF0aWMgUGdCYWNrZW5kU3RhdHVzICpCYWNrZW5kU3RhdHVzQXJy YXkgPSBOVUxMOwogc3RhdGljIGNoYXIgKkJhY2tlbmRBcHBuYW1lQnVmZmVyID0gTlVMTDsKQEAg LTQwMCw2ICs0MDMsMTUgQEAgcGdzdGF0X2Jlc3RhcnQodm9pZCkKIAlsYmVlbnRyeS5zdF9wcm9n cmVzc19jb21tYW5kX3RhcmdldCA9IEludmFsaWRPaWQ7CiAJbGJlZW50cnkuc3RfcXVlcnlfaWQg PSBVSU5UNjRDT05TVCgwKTsKIAorCS8qIEFsdGVyIGFsbG9jYXRpb24gcmVwb3J0aW5nIGZyb20g bG9jYWxfbXlfYWxsb2NhdGVkX2J5dGVzIHRvIHNoYXJlZCBtZW1vcnkgKi8KKwlwZ3N0YXRfc2V0 X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKCZNeUJFRW50cnktPmFsbG9jYXRlZF9ieXRlcyk7CisK KwkvKiBQb3B1bGF0ZSBzdW0gb2YgbWVtb3J5IGFsbG9jYXRlZCBwcmlvciB0byBwZ3N0YXRzIGlu aXRpYWxpemF0aW9uIHRvIHBnc3RhdHMKKwkgKiBhbmQgemVybyB0aGUgbG9jYWwgdmFyaWFibGUu CisJICovCisJbGJlZW50cnkuYWxsb2NhdGVkX2J5dGVzICs9IGxvY2FsX215X2FsbG9jYXRlZF9i eXRlczsKKwlsb2NhbF9teV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCiAJLyoKIAkgKiB3ZSBkb24n dCB6ZXJvIHN0X3Byb2dyZXNzX3BhcmFtIGhlcmUgdG8gc2F2ZSBjeWNsZXM7IG5vYm9keSBzaG91 bGQKIAkgKiBleGFtaW5lIGl0IHVudGlsIHN0X3Byb2dyZXNzX2NvbW1hbmQgaGFzIGJlZW4gc2V0 IHRvIHNvbWV0aGluZyBvdGhlcgpAQCAtNDU5LDYgKzQ3MSwxMSBAQCBwZ3N0YXRfYmVzaHV0ZG93 bl9ob29rKGludCBjb2RlLCBEYXR1bSBhcmcpCiB7CiAJdm9sYXRpbGUgUGdCYWNrZW5kU3RhdHVz ICpiZWVudHJ5ID0gTXlCRUVudHJ5OwogCisJLyoKKwkgKiBTdG9wIHJlcG9ydGluZyBtZW1vcnkg YWxsb2NhdGlvbiBjaGFuZ2VzIHRvICZNeUJFRW50cnktPmFsbG9jYXRlZF9ieXRlcworCSAqLwor CXBnc3RhdF9yZXNldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSgpOworCiAJLyoKIAkgKiBDbGVh ciBteSBzdGF0dXMgZW50cnksIGZvbGxvd2luZyB0aGUgcHJvdG9jb2wgb2YgYnVtcGluZyBzdF9j aGFuZ2Vjb3VudAogCSAqIGJlZm9yZSBhbmQgYWZ0ZXIuICBXZSB1c2UgYSB2b2xhdGlsZSBwb2lu dGVyIGhlcmUgdG8gZW5zdXJlIHRoZQpAQCAtMTE5MSwzICsxMjA4LDMxIEBAIHBnc3RhdF9jbGlw X2FjdGl2aXR5KGNvbnN0IGNoYXIgKnJhd19hY3Rpdml0eSkKIAogCXJldHVybiBhY3Rpdml0eTsK IH0KKworLyoKKyAqIENvbmZpZ3VyZSBieXRlcyBhbGxvY2F0ZWQgcmVwb3J0aW5nIHRvIHJlcG9y dCBhbGxvY2F0ZWQgYnl0ZXMgdG8KKyAqICphbGxvY2F0ZWRfYnl0ZXMuICAqYWxsb2NhdGVkX2J5 dGVzIG5lZWRzIHRvIGJlIHZhbGlkIHVudGlsCisgKiBwZ3N0YXRfc2V0X2FsbG9jYXRlZF9ieXRl c19zdG9yYWdlKCkgaXMgY2FsbGVkLgorICoKKyAqIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBkdXJp bmcgYmFja2VuZCBzdGFydHVwIChpbiBwZ3N0YXRfYmVzdGFydCksIHRvIHBvaW50CisgKiBteV9h bGxvY2F0ZWRfYnl0ZXMgaW50byBzaGFyZWQgbWVtb3J5LgorICovCit2b2lkCitwZ3N0YXRfc2V0 X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHVpbnQ2NCAqbmV3X2FsbG9jYXRlZF9ieXRlcykKK3sK KwlteV9hbGxvY2F0ZWRfYnl0ZXMgPSBuZXdfYWxsb2NhdGVkX2J5dGVzOworCSpuZXdfYWxsb2Nh dGVkX2J5dGVzID0gbG9jYWxfbXlfYWxsb2NhdGVkX2J5dGVzOworfQorCisvKgorICogUmVzZXQg YWxsb2NhdGVkIGJ5dGVzIHN0b3JhZ2UgbG9jYXRpb24uCisgKgorICogRXhwZWN0ZWQgdG8gYmUg Y2FsbGVkIGR1cmluZyBiYWNrZW5kIHNodXRkb3duLCBiZWZvcmUgdGhlIGxvY2F0aW9uIHNldCB1 cAorICogYnkgcGdzdGF0X3NldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSgpIGJlY29tZXMgaW52 YWxpZC4KKyAqLwordm9pZAorcGdzdGF0X3Jlc2V0X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHZv aWQpCit7CisJbXlfYWxsb2NhdGVkX2J5dGVzID0gJmxvY2FsX215X2FsbG9jYXRlZF9ieXRlczsK K30KKwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCAyNWExNTliNWU1Li5jNDM1 MGNmYTUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMzAyLDcgKzMwMiw3 IEBAIHBnX3N0YXRfZ2V0X3Byb2dyZXNzX2luZm8oUEdfRlVOQ1RJT05fQVJHUykKIERhdHVtCiBw Z19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogewotI2RlZmluZSBQR19TVEFU X0dFVF9BQ1RJVklUWV9DT0xTCTMwCisjZGVmaW5lIFBHX1NUQVRfR0VUX0FDVElWSVRZX0NPTFMJ MzEKIAlpbnQJCQludW1fYmFja2VuZHMgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9udW1iYWNrZW5kcygp OwogCWludAkJCWN1cnJfYmFja2VuZDsKIAlpbnQJCQlwaWQgPSBQR19BUkdJU05VTEwoMCkgPyAt MSA6IFBHX0dFVEFSR19JTlQzMigwKTsKQEAgLTM1OCw2ICszNTgsOCBAQCBwZ19zdGF0X2dldF9h Y3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQllbHNlCiAJCQludWxsc1sxNl0gPSB0cnVlOwog CisJCXZhbHVlc1szMF0gPSBVSW50NjRHZXREYXR1bShiZWVudHJ5LT5hbGxvY2F0ZWRfYnl0ZXMp OworCiAJCS8qIFZhbHVlcyBvbmx5IGF2YWlsYWJsZSB0byByb2xlIG1lbWJlciBvciBwZ19yZWFk X2FsbF9zdGF0cyAqLwogCQlpZiAoSEFTX1BHU1RBVF9QRVJNSVNTSU9OUyhiZWVudHJ5LT5zdF91 c2VyaWQpKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCmluZGV4IGI2YThiYmNkNTkuLmNjMTBkZmQ2 MDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAicG9z dGdyZXMuaCIKIAogI2luY2x1ZGUgInBvcnQvcGdfYml0dXRpbHMuaCIKKyNpbmNsdWRlICJ1dGls cy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL21lbWRlYnVnLmgiCiAjaW5jbHVk ZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlsc19tZW1vcnljaHVu ay5oIgpAQCAtNTIxLDYgKzUyMiw3IEBAIEFsbG9jU2V0Q29udGV4dENyZWF0ZUludGVybmFsKE1l bW9yeUNvbnRleHQgcGFyZW50LAogCQkJCQkJbmFtZSk7CiAKIAkoKE1lbW9yeUNvbnRleHQpIHNl dCktPm1lbV9hbGxvY2F0ZWQgPSBmaXJzdEJsb2NrU2l6ZTsKKwlwZ3N0YXRfcmVwb3J0X2FsbG9j YXRlZF9ieXRlcyhmaXJzdEJsb2NrU2l6ZSwgUEdfQUxMT0NfSU5DUkVBU0UpOwogCiAJcmV0dXJu IChNZW1vcnlDb250ZXh0KSBzZXQ7CiB9CkBAIC01NDMsNiArNTQ1LDcgQEAgQWxsb2NTZXRSZXNl dChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJQWxsb2NTZXQJc2V0ID0gKEFsbG9jU2V0KSBjb250 ZXh0OwogCUFsbG9jQmxvY2sJYmxvY2s7CiAJU2l6ZQkJa2VlcGVyc2l6ZSBQR19VU0VEX0ZPUl9B U1NFUlRTX09OTFk7CisJdWludDY0CQlkZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KEFsbG9j U2V0SXNWYWxpZChzZXQpKTsKIApAQCAtNTg1LDYgKzU4OCw3IEBAIEFsbG9jU2V0UmVzZXQoTWVt b3J5Q29udGV4dCBjb250ZXh0KQogCQl7CiAJCQkvKiBOb3JtYWwgY2FzZSwgcmVsZWFzZSB0aGUg YmxvY2sgKi8KIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgLT0gYmxvY2stPmVuZHB0ciAtICgo Y2hhciAqKSBibG9jayk7CisJCQlkZWFsbG9jYXRpb24gKz0gYmxvY2stPmVuZHB0ciAtICgoY2hh ciAqKSBibG9jayk7CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01FTU9SWQogCQkJd2lwZV9tZW0o YmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0gKChjaGFyICopIGJsb2NrKSk7CkBAIC01OTUsNiArNTk5 LDcgQEAgQWxsb2NTZXRSZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJfQogCiAJQXNzZXJ0 KGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgPT0ga2VlcGVyc2l6ZSk7CisJcGdzdGF0X3JlcG9ydF9h bGxvY2F0ZWRfYnl0ZXMoZGVhbGxvY2F0aW9uLCBQR19BTExPQ19ERUNSRUFTRSk7CiAKIAkvKiBS ZXNldCBibG9jayBzaXplIGFsbG9jYXRpb24gc2VxdWVuY2UsIHRvbyAqLwogCXNldC0+bmV4dEJs b2NrU2l6ZSA9IHNldC0+aW5pdEJsb2NrU2l6ZTsKQEAgLTYxMyw2ICs2MTgsNyBAQCBBbGxvY1Nl dERlbGV0ZShNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJQWxsb2NTZXQJc2V0ID0gKEFsbG9jU2V0 KSBjb250ZXh0OwogCUFsbG9jQmxvY2sJYmxvY2sgPSBzZXQtPmJsb2NrczsKIAlTaXplCQlrZWVw ZXJzaXplIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwl1aW50NjQJCWRlYWxsb2NhdGlvbiA9 IDA7CiAKIAlBc3NlcnQoQWxsb2NTZXRJc1ZhbGlkKHNldCkpOwogCkBAIC02NTEsMTEgKzY1Nywx MyBAQCBBbGxvY1NldERlbGV0ZShNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAKIAkJCQlmcmVlbGlz dC0+Zmlyc3RfZnJlZSA9IChBbGxvY1NldENvbnRleHQgKikgb2xkc2V0LT5oZWFkZXIubmV4dGNo aWxkOwogCQkJCWZyZWVsaXN0LT5udW1fZnJlZS0tOworCQkJCWRlYWxsb2NhdGlvbiArPSBvbGRz ZXQtPmhlYWRlci5tZW1fYWxsb2NhdGVkOwogCiAJCQkJLyogQWxsIHRoYXQgcmVtYWlucyBpcyB0 byBmcmVlIHRoZSBoZWFkZXIvaW5pdGlhbCBibG9jayAqLwogCQkJCWZyZWUob2xkc2V0KTsKIAkJ CX0KIAkJCUFzc2VydChmcmVlbGlzdC0+bnVtX2ZyZWUgPT0gMCk7CisJCQlwZ3N0YXRfcmVwb3J0 X2FsbG9jYXRlZF9ieXRlcyhkZWFsbG9jYXRpb24sIFBHX0FMTE9DX0RFQ1JFQVNFKTsKIAkJfQog CiAJCS8qIE5vdyBhZGQgdGhlIGp1c3QtZGVsZXRlZCBjb250ZXh0IHRvIHRoZSBmcmVlbGlzdC4g Ki8KQEAgLTY3Miw3ICs2ODAsMTAgQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4dCBjb250 ZXh0KQogCQlBbGxvY0Jsb2NrCW5leHQgPSBibG9jay0+bmV4dDsKIAogCQlpZiAoYmxvY2sgIT0g c2V0LT5rZWVwZXIpCisJCXsKIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgLT0gYmxvY2stPmVu ZHB0ciAtICgoY2hhciAqKSBibG9jayk7CisJCQlkZWFsbG9jYXRpb24gKz0gYmxvY2stPmVuZHB0 ciAtICgoY2hhciAqKSBibG9jayk7CisJCX0KIAogI2lmZGVmIENMT0JCRVJfRlJFRURfTUVNT1JZ CiAJCXdpcGVfbWVtKGJsb2NrLCBibG9jay0+ZnJlZXB0ciAtICgoY2hhciAqKSBibG9jaykpOwpA QCAtNjg1LDYgKzY5Niw3IEBAIEFsbG9jU2V0RGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4dCkK IAl9CiAKIAlBc3NlcnQoY29udGV4dC0+bWVtX2FsbG9jYXRlZCA9PSBrZWVwZXJzaXplKTsKKwlw Z3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlcyhkZWFsbG9jYXRpb24gKyBjb250ZXh0LT5tZW1f YWxsb2NhdGVkLCBQR19BTExPQ19ERUNSRUFTRSk7CiAKIAkvKiBGaW5hbGx5LCBmcmVlIHRoZSBj b250ZXh0IGhlYWRlciwgaW5jbHVkaW5nIHRoZSBrZWVwZXIgYmxvY2sgKi8KIAlmcmVlKHNldCk7 CkBAIC03MzQsNiArNzQ2LDcgQEAgQWxsb2NTZXRBbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQs IFNpemUgc2l6ZSkKIAkJCXJldHVybiBOVUxMOwogCiAJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQg Kz0gYmxrc2l6ZTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoYmxrc2l6ZSwgUEdf QUxMT0NfSU5DUkVBU0UpOwogCiAJCWJsb2NrLT5hc2V0ID0gc2V0OwogCQlibG9jay0+ZnJlZXB0 ciA9IGJsb2NrLT5lbmRwdHIgPSAoKGNoYXIgKikgYmxvY2spICsgYmxrc2l6ZTsKQEAgLTk0NCw2 ICs5NTcsNyBAQCBBbGxvY1NldEFsbG9jKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXpl KQogCQkJcmV0dXJuIE5VTEw7CiAKIAkJY29udGV4dC0+bWVtX2FsbG9jYXRlZCArPSBibGtzaXpl OworCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlcyhibGtzaXplLCBQR19BTExPQ19JTkNS RUFTRSk7CiAKIAkJYmxvY2stPmFzZXQgPSBzZXQ7CiAJCWJsb2NrLT5mcmVlcHRyID0gKChjaGFy ICopIGJsb2NrKSArIEFMTE9DX0JMT0NLSERSU1o7CkBAIC0xMDQzLDYgKzEwNTcsNyBAQCBBbGxv Y1NldEZyZWUodm9pZCAqcG9pbnRlcikKIAkJCWJsb2NrLT5uZXh0LT5wcmV2ID0gYmxvY2stPnBy ZXY7CiAKIAkJc2V0LT5oZWFkZXIubWVtX2FsbG9jYXRlZCAtPSBibG9jay0+ZW5kcHRyIC0gKChj aGFyICopIGJsb2NrKTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoYmxvY2stPmVu ZHB0ciAtICgoY2hhciAqKSBibG9jayksIFBHX0FMTE9DX0RFQ1JFQVNFKTsKIAogI2lmZGVmIENM T0JCRVJfRlJFRURfTUVNT1JZCiAJCXdpcGVfbWVtKGJsb2NrLCBibG9jay0+ZnJlZXB0ciAtICgo Y2hhciAqKSBibG9jaykpOwpAQCAtMTE3Myw3ICsxMTg4LDkgQEAgQWxsb2NTZXRSZWFsbG9jKHZv aWQgKnBvaW50ZXIsIFNpemUgc2l6ZSkKIAogCQkvKiB1cGRhdGVkIHNlcGFyYXRlbHksIG5vdCB0 byB1bmRlcmZsb3cgd2hlbiAob2xkYmxrc2l6ZSA+IGJsa3NpemUpICovCiAJCXNldC0+aGVhZGVy Lm1lbV9hbGxvY2F0ZWQgLT0gb2xkYmxrc2l6ZTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRf Ynl0ZXMob2xkYmxrc2l6ZSwgUEdfQUxMT0NfREVDUkVBU0UpOwogCQlzZXQtPmhlYWRlci5tZW1f YWxsb2NhdGVkICs9IGJsa3NpemU7CisJCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKGJs a3NpemUsIFBHX0FMTE9DX0lOQ1JFQVNFKTsKIAogCQlibG9jay0+ZnJlZXB0ciA9IGJsb2NrLT5l bmRwdHIgPSAoKGNoYXIgKikgYmxvY2spICsgYmxrc2l6ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dl bmVyYXRpb24uYwppbmRleCBiNDMyYTkyYmUzLi5iMDQ2MGQ5N2MyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9t bWdyL2dlbmVyYXRpb24uYwpAQCAtMzcsNiArMzcsNyBAQAogCiAjaW5jbHVkZSAibGliL2lsaXN0 LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgorI2luY2x1ZGUgInV0aWxzL2JhY2tl bmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzX21lbW9yeWNodW5rLmgiCkBA IC0yNjcsNiArMjY4LDcgQEAgR2VuZXJhdGlvbkNvbnRleHRDcmVhdGUoTWVtb3J5Q29udGV4dCBw YXJlbnQsCiAJCQkJCQluYW1lKTsKIAogCSgoTWVtb3J5Q29udGV4dCkgc2V0KS0+bWVtX2FsbG9j YXRlZCA9IGZpcnN0QmxvY2tTaXplOworCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKGZp cnN0QmxvY2tTaXplLCBQR19BTExPQ19JTkNSRUFTRSk7CiAKIAlyZXR1cm4gKE1lbW9yeUNvbnRl eHQpIHNldDsKIH0KQEAgLTI4Myw2ICsyODUsNyBAQCBHZW5lcmF0aW9uUmVzZXQoTWVtb3J5Q29u dGV4dCBjb250ZXh0KQogewogCUdlbmVyYXRpb25Db250ZXh0ICpzZXQgPSAoR2VuZXJhdGlvbkNv bnRleHQgKikgY29udGV4dDsKIAlkbGlzdF9tdXRhYmxlX2l0ZXIgbWl0ZXI7CisJdWludDY0CQlk ZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KEdlbmVyYXRpb25Jc1ZhbGlkKHNldCkpOwogCkBA IC0zMDUsOSArMzA4LDE0IEBAIEdlbmVyYXRpb25SZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQp CiAJCWlmIChibG9jayA9PSBzZXQtPmtlZXBlcikKIAkJCUdlbmVyYXRpb25CbG9ja01hcmtFbXB0 eShibG9jayk7CiAJCWVsc2UKKwkJeworCQkJZGVhbGxvY2F0aW9uICs9IGJsb2NrLT5ibGtzaXpl OwogCQkJR2VuZXJhdGlvbkJsb2NrRnJlZShzZXQsIGJsb2NrKTsKKwkJfQogCX0KIAorCXBnc3Rh dF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKGRlYWxsb2NhdGlvbiwgUEdfQUxMT0NfREVDUkVBU0Up OworCiAJLyogc2V0IGl0IHNvIG5ldyBhbGxvY2F0aW9ucyB0byBtYWtlIHVzZSBvZiB0aGUga2Vl cGVyIGJsb2NrICovCiAJc2V0LT5ibG9jayA9IHNldC0+a2VlcGVyOwogCkBAIC0zMjgsNiArMzM2 LDkgQEAgR2VuZXJhdGlvbkRlbGV0ZShNZW1vcnlDb250ZXh0IGNvbnRleHQpCiB7CiAJLyogUmVz ZXQgdG8gcmVsZWFzZSBhbGwgcmVsZWFzYWJsZSBHZW5lcmF0aW9uQmxvY2tzICovCiAJR2VuZXJh dGlvblJlc2V0KGNvbnRleHQpOworCisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoY29u dGV4dC0+bWVtX2FsbG9jYXRlZCwgUEdfQUxMT0NfREVDUkVBU0UpOworCiAJLyogQW5kIGZyZWUg dGhlIGNvbnRleHQgaGVhZGVyIGFuZCBrZWVwZXIgYmxvY2sgKi8KIAlmcmVlKGNvbnRleHQpOwog fQpAQCAtMzc0LDYgKzM4NSw3IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRl eHQsIFNpemUgc2l6ZSkKIAkJCXJldHVybiBOVUxMOwogCiAJCWNvbnRleHQtPm1lbV9hbGxvY2F0 ZWQgKz0gYmxrc2l6ZTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoYmxrc2l6ZSwg UEdfQUxMT0NfSU5DUkVBU0UpOwogCiAJCS8qIGJsb2NrIHdpdGggYSBzaW5nbGUgKHVzZWQpIGNo dW5rICovCiAJCWJsb2NrLT5jb250ZXh0ID0gc2V0OwpAQCAtNDc3LDYgKzQ4OSw3IEBAIEdlbmVy YXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkJCQlyZXR1cm4g TlVMTDsKIAogCQkJY29udGV4dC0+bWVtX2FsbG9jYXRlZCArPSBibGtzaXplOworCQkJcGdzdGF0 X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoYmxrc2l6ZSwgUEdfQUxMT0NfSU5DUkVBU0UpOwogCiAJ CQkvKiBpbml0aWFsaXplIHRoZSBuZXcgYmxvY2sgKi8KIAkJCUdlbmVyYXRpb25CbG9ja0luaXQo c2V0LCBibG9jaywgYmxrc2l6ZSk7CkBAIC03MjYsNiArNzM5LDggQEAgR2VuZXJhdGlvbkZyZWUo dm9pZCAqcG9pbnRlcikKIAlkbGlzdF9kZWxldGUoJmJsb2NrLT5ub2RlKTsKIAogCXNldC0+aGVh ZGVyLm1lbV9hbGxvY2F0ZWQgLT0gYmxvY2stPmJsa3NpemU7CisJcGdzdGF0X3JlcG9ydF9hbGxv Y2F0ZWRfYnl0ZXMoYmxvY2stPmJsa3NpemUsIFBHX0FMTE9DX0RFQ1JFQVNFKTsKKwogCWZyZWUo YmxvY2spOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCmluZGV4IDZkZjA4MzliNmEuLjA4YmIwMTNm N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAicG9z dGdyZXMuaCIKIAogI2luY2x1ZGUgImxpYi9pbGlzdC5oIgorI2luY2x1ZGUgInV0aWxzL2JhY2tl bmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzX21lbW9yeWNodW5rLmgiCkBA IC0yMzgsNiArMjM5LDEyIEBAIFNsYWJDb250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRleHQgcGFyZW50 LAogCQkJCQkJcGFyZW50LAogCQkJCQkJbmFtZSk7CiAKKwkvKgorCSAqIElmIFNsYWJDb250ZXh0 Q3JlYXRlIGlzIHVwZGF0ZWQgdG8gYWRkIGhlYWRlclNpemUgdG8KKwkgKiBjb250ZXh0LT5tZW1f YWxsb2NhdGVkLCB0aGVuIHVwZGF0ZSBoZXJlIGFuZCBTbGFiRGVsZXRlIGFwcHJvcHJpYXRlbHkK KwkgKi8KKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlcyhoZWFkZXJTaXplLCBQR19BTExP Q19JTkNSRUFTRSk7CisKIAlyZXR1cm4gKE1lbW9yeUNvbnRleHQpIHNsYWI7CiB9CiAKQEAgLTI1 Myw2ICsyNjAsNyBAQCBTbGFiUmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogewogCVNsYWJD b250ZXh0ICpzbGFiID0gKFNsYWJDb250ZXh0ICopIGNvbnRleHQ7CiAJaW50CQkJaTsKKwl1aW50 NjQJCWRlYWxsb2NhdGlvbiA9IDA7CiAKIAlBc3NlcnQoU2xhYklzVmFsaWQoc2xhYikpOwogCkBA IC0yNzgsOSArMjg2LDExIEBAIFNsYWJSZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJCQlm cmVlKGJsb2NrKTsKIAkJCXNsYWItPm5ibG9ja3MtLTsKIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0 ZWQgLT0gc2xhYi0+YmxvY2tTaXplOworCQkJZGVhbGxvY2F0aW9uICs9IHNsYWItPmJsb2NrU2l6 ZTsKIAkJfQogCX0KIAorCXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzKGRlYWxsb2NhdGlv biwgUEdfQUxMT0NfREVDUkVBU0UpOwogCXNsYWItPm1pbkZyZWVDaHVua3MgPSAwOwogCiAJQXNz ZXJ0KHNsYWItPm5ibG9ja3MgPT0gMCk7CkBAIC0yOTQsOCArMzA0LDE3IEBAIFNsYWJSZXNldChN ZW1vcnlDb250ZXh0IGNvbnRleHQpCiB2b2lkCiBTbGFiRGVsZXRlKE1lbW9yeUNvbnRleHQgY29u dGV4dCkKIHsKKwkvKgorCSAqIFVudGlsIGhlYWRlciBhbGxvY2F0aW9uIGlzIGluY2x1ZGVkIGlu IGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQsIGNhc3QgdG8KKwkgKiBzbGFiIGFuZCBkZWNyZW1lbnQg dGhlIGhlYWRlclNpemUKKwkgKi8KKwlTbGFiQ29udGV4dCAqc2xhYiA9IGNhc3ROb2RlKFNsYWJD b250ZXh0LCBjb250ZXh0KTsKKwogCS8qIFJlc2V0IHRvIHJlbGVhc2UgYWxsIHRoZSBTbGFiQmxv Y2tzICovCiAJU2xhYlJlc2V0KGNvbnRleHQpOworCisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRf Ynl0ZXMoc2xhYi0+aGVhZGVyU2l6ZSwgUEdfQUxMT0NfREVDUkVBU0UpOworCiAJLyogQW5kIGZy ZWUgdGhlIGNvbnRleHQgaGVhZGVyICovCiAJZnJlZShjb250ZXh0KTsKIH0KQEAgLTM2NCw2ICsz ODMsNyBAQCBTbGFiQWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCXNs YWItPm1pbkZyZWVDaHVua3MgPSBzbGFiLT5jaHVua3NQZXJCbG9jazsKIAkJc2xhYi0+bmJsb2Nr cyArPSAxOwogCQljb250ZXh0LT5tZW1fYWxsb2NhdGVkICs9IHNsYWItPmJsb2NrU2l6ZTsKKwkJ cGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXMoc2xhYi0+YmxvY2tTaXplLCBQR19BTExPQ19J TkNSRUFTRSk7CiAJfQogCiAJLyogZ3JhYiB0aGUgYmxvY2sgZnJvbSB0aGUgZnJlZWxpc3QgKGV2 ZW4gdGhlIG5ldyBibG9jayBpcyB0aGVyZSkgKi8KQEAgLTUzNyw2ICs1NTcsNyBAQCBTbGFiRnJl ZSh2b2lkICpwb2ludGVyKQogCQlmcmVlKGJsb2NrKTsKIAkJc2xhYi0+bmJsb2Nrcy0tOwogCQlz bGFiLT5oZWFkZXIubWVtX2FsbG9jYXRlZCAtPSBzbGFiLT5ibG9ja1NpemU7CisJCXBnc3RhdF9y ZXBvcnRfYWxsb2NhdGVkX2J5dGVzKHNsYWItPmJsb2NrU2l6ZSwgUEdfQUxMT0NfREVDUkVBU0Up OwogCX0KIAllbHNlCiAJCWRsaXN0X3B1c2hfaGVhZCgmc2xhYi0+ZnJlZWxpc3RbYmxvY2stPm5m cmVlXSwgJmJsb2NrLT5ub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGY5MzAxYjI2 MjcuLjFiZjAyNzU4ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTM3Myw5ICs1Mzcz LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfYWN0aXZpdHknLCBwcm9yb3dzID0+ICcx MDAnLCBwcm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAogICBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBw cm9hcmd0eXBlcyA9PiAnaW50NCcsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7aW50NCxvaWQsaW50 NCxvaWQsdGV4dCx0ZXh0LHRleHQsdGV4dCx0ZXh0LHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6LHRp bWVzdGFtcHR6LHRpbWVzdGFtcHR6LGluZXQsdGV4dCxpbnQ0LHhpZCx4aWQsdGV4dCxib29sLHRl eHQsdGV4dCxpbnQ0LHRleHQsbnVtZXJpYyx0ZXh0LGJvb2wsdGV4dCxib29sLGludDQsaW50OH0n LAotICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsZGF0 aWQscGlkLHVzZXN5c2lkLGFwcGxpY2F0aW9uX25hbWUsc3RhdGUscXVlcnksd2FpdF9ldmVudF90 eXBlLHdhaXRfZXZlbnQseGFjdF9zdGFydCxxdWVyeV9zdGFydCxiYWNrZW5kX3N0YXJ0LHN0YXRl X2NoYW5nZSxjbGllbnRfYWRkcixjbGllbnRfaG9zdG5hbWUsY2xpZW50X3BvcnQsYmFja2VuZF94 aWQsYmFja2VuZF94bWluLGJhY2tlbmRfdHlwZSxzc2wsc3NsdmVyc2lvbixzc2xjaXBoZXIsc3Ns Yml0cyxzc2xfY2xpZW50X2RuLHNzbF9jbGllbnRfc2VyaWFsLHNzbF9pc3N1ZXJfZG4sZ3NzX2F1 dGgsZ3NzX3ByaW5jLGdzc19lbmMsbGVhZGVyX3BpZCxxdWVyeV9pZH0nLAorICBwcm9hbGxhcmd0 eXBlcyA9PiAne2ludDQsb2lkLGludDQsb2lkLHRleHQsdGV4dCx0ZXh0LHRleHQsdGV4dCx0aW1l c3RhbXB0eix0aW1lc3RhbXB0eix0aW1lc3RhbXB0eix0aW1lc3RhbXB0eixpbmV0LHRleHQsaW50 NCx4aWQseGlkLHRleHQsYm9vbCx0ZXh0LHRleHQsaW50NCx0ZXh0LG51bWVyaWMsdGV4dCxib29s LHRleHQsYm9vbCxpbnQ0LGludDgsaW50OH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3BpZCxkYXRpZCxwaWQsdXNlc3lzaWQsYXBwbGljYXRpb25f bmFtZSxzdGF0ZSxxdWVyeSx3YWl0X2V2ZW50X3R5cGUsd2FpdF9ldmVudCx4YWN0X3N0YXJ0LHF1 ZXJ5X3N0YXJ0LGJhY2tlbmRfc3RhcnQsc3RhdGVfY2hhbmdlLGNsaWVudF9hZGRyLGNsaWVudF9o b3N0bmFtZSxjbGllbnRfcG9ydCxiYWNrZW5kX3hpZCxiYWNrZW5kX3htaW4sYmFja2VuZF90eXBl LHNzbCxzc2x2ZXJzaW9uLHNzbGNpcGhlcixzc2xiaXRzLHNzbF9jbGllbnRfZG4sc3NsX2NsaWVu dF9zZXJpYWwsc3NsX2lzc3Vlcl9kbixnc3NfYXV0aCxnc3NfcHJpbmMsZ3NzX2VuYyxsZWFkZXJf cGlkLHF1ZXJ5X2lkLGFsbG9jYXRlZF9ieXRlc30nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0 X2FjdGl2aXR5JyB9LAogeyBvaWQgPT4gJzMzMTgnLAogICBkZXNjciA9PiAnc3RhdGlzdGljczog aW5mb3JtYXRpb24gYWJvdXQgcHJvZ3Jlc3Mgb2YgYmFja2VuZHMgcnVubmluZyBtYWludGVuYW5j ZSBjb21tYW5kJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVz LmggYi9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCmluZGV4IGI1ODJiNDZlOWYu LjNiYTQ3OWNiMGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVz LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaApAQCAtMTUsNiArMTUs NyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgkJCS8qIGZvciBCYWNrZW5kVHlwZSAqLwogI2lu Y2x1ZGUgInN0b3JhZ2UvYmFja2VuZGlkLmgiCiAjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9wcm9n cmVzcy5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKIAogCiAvKiAtLS0tLS0tLS0tCkBAIC0z Miw2ICszMywxMyBAQCB0eXBlZGVmIGVudW0gQmFja2VuZFN0YXRlCiAJU1RBVEVfRElTQUJMRUQK IH0gQmFja2VuZFN0YXRlOwogCisvKiBFbnVtIGhlbHBlciBmb3IgcmVwb3J0aW5nIG1lbW9yeSBh bGxvY2F0ZWQgYnl0ZXMgKi8KK2VudW0gYWxsb2NhdGlvbl9kaXJlY3Rpb24KK3sKKwlQR19BTExP Q19ERUNSRUFTRSA9IC0xLAorCVBHX0FMTE9DX0lHTk9SRSwKKwlQR19BTExPQ19JTkNSRUFTRSwK K307CiAKIC8qIC0tLS0tLS0tLS0KICAqIFNoYXJlZC1tZW1vcnkgZGF0YSBzdHJ1Y3R1cmVzCkBA IC0xNjksNiArMTc3LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdCYWNrZW5kU3RhdHVzCiAKIAkvKiBx dWVyeSBpZGVudGlmaWVyLCBvcHRpb25hbGx5IGNvbXB1dGVkIHVzaW5nIHBvc3RfcGFyc2VfYW5h bHl6ZV9ob29rICovCiAJdWludDY0CQlzdF9xdWVyeV9pZDsKKworCS8qIEN1cnJlbnQgbWVtb3J5 IGFsbG9jYXRlZCB0byB0aGlzIGJhY2tlbmQgKi8KKwl1aW50NjQJCWFsbG9jYXRlZF9ieXRlczsK IH0gUGdCYWNrZW5kU3RhdHVzOwogCiAKQEAgLTI4Miw2ICsyOTMsNyBAQCBleHRlcm4gUEdETExJ TVBPUlQgaW50IHBnc3RhdF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplOwogICogLS0tLS0tLS0t LQogICovCiBleHRlcm4gUEdETExJTVBPUlQgUGdCYWNrZW5kU3RhdHVzICpNeUJFRW50cnk7Citl eHRlcm4gUEdETExJTVBPUlQgdWludDY0ICpteV9hbGxvY2F0ZWRfYnl0ZXM7CiAKIAogLyogLS0t LS0tLS0tLQpAQCAtMzEzLDcgKzMyNSw4IEBAIGV4dGVybiBjb25zdCBjaGFyICpwZ3N0YXRfZ2V0 X2JhY2tlbmRfY3VycmVudF9hY3Rpdml0eShpbnQgcGlkLCBib29sIGNoZWNrVXNlcik7CiBleHRl cm4gY29uc3QgY2hhciAqcGdzdGF0X2dldF9jcmFzaGVkX2JhY2tlbmRfYWN0aXZpdHkoaW50IHBp ZCwgY2hhciAqYnVmZmVyLAogCQkJCQkJCQkJCQkJCSAgIGludCBidWZsZW4pOwogZXh0ZXJuIHVp bnQ2NCBwZ3N0YXRfZ2V0X215X3F1ZXJ5X2lkKHZvaWQpOwotCitleHRlcm4gdm9pZCBwZ3N0YXRf c2V0X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHVpbnQ2NCAqYWxsb2NhdGVkX2J5dGVzKTsKK2V4 dGVybiB2b2lkIHBnc3RhdF9yZXNldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSh2b2lkKTsKIAog LyogLS0tLS0tLS0tLQogICogU3VwcG9ydCBmdW5jdGlvbnMgZm9yIHRoZSBTUUwtY2FsbGFibGUg ZnVuY3Rpb25zIHRvCkBAIC0zMjUsNSArMzM4LDQ5IEBAIGV4dGVybiBQZ0JhY2tlbmRTdGF0dXMg KnBnc3RhdF9mZXRjaF9zdGF0X2JlZW50cnkoQmFja2VuZElkIGJlaWQpOwogZXh0ZXJuIExvY2Fs UGdCYWNrZW5kU3RhdHVzICpwZ3N0YXRfZmV0Y2hfc3RhdF9sb2NhbF9iZWVudHJ5KGludCBiZWlk KTsKIGV4dGVybiBjaGFyICpwZ3N0YXRfY2xpcF9hY3Rpdml0eShjb25zdCBjaGFyICpyYXdfYWN0 aXZpdHkpOwogCisvKiAtLS0tLS0tLS0tCisgKiBwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRl cygpIC0KKyAqCisgKiAgQ2FsbGVkIHRvIHJlcG9ydCBjaGFuZ2UgaW4gbWVtb3J5IGFsbG9jYXRl ZCBmb3IgdGhpcyBiYWNrZW5kLgorICoKKyAqIG15X2FsbG9jYXRlZF9ieXRlcyBpbml0aWFsbHkg cG9pbnRzIHRvIGxvY2FsIG1lbW9yeSwgbWFraW5nIGl0IHNhZmUgdG8gY2FsbAorICogdGhpcyBi ZWZvcmUgcGdzdGF0cyBoYXMgYmVlbiBpbml0aWFsaXplZC4gYWxsb2NhdGlvbl9kaXJlY3Rpb24g aXMgYQorICogcG9zaXRpdmUvbmVnYXRpdmUgbXVsdGlwbGllciBlbnVtIGRlZmluZWQgYWJvdmUu CisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorcGdzdGF0X3JlcG9ydF9h bGxvY2F0ZWRfYnl0ZXMoaW50NjQgYWxsb2NhdGVkX2J5dGVzLCBpbnQgYWxsb2NhdGlvbl9kaXJl Y3Rpb24pCit7CisJdWludDY0IHRlbXA7CisKKwkvKiBBdm9pZCAqbXlfYWxsb2NhdGVkX2J5dGVz IHVuc2lnbmVkIGludGVnZXIgb3ZlcmZsb3cgb24gUEdfQUxMT0NfREVDUkVBU0UgKi8KKwlpZiAo YWxsb2NhdGlvbl9kaXJlY3Rpb24gPT0gUEdfQUxMT0NfREVDUkVBU0UgJiYKKwkJcGdfc3ViX3U2 NF9vdmVyZmxvdygqbXlfYWxsb2NhdGVkX2J5dGVzLCBhbGxvY2F0ZWRfYnl0ZXMsICZ0ZW1wKSkK Kwl7CisJCSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCQllcmVwb3J0KExPRywKKwkJCQllcnJt c2coIkJhY2tlbmQgJWQgZGVhbGxvY2F0ZWQgJWxsZCBieXRlcywgZXhjZWVkaW5nIHRoZSAlbGx1 IGJ5dGVzIGl0IGlzIGN1cnJlbnRseSByZXBvcnRpbmcgYWxsb2NhdGVkLiBTZXR0aW5nIHJlcG9y dGVkIHRvIDAuIiwKKwkJCQkJICAgTXlQcm9jUGlkLCAobG9uZyBsb25nKWFsbG9jYXRlZF9ieXRl cywgKHVuc2lnbmVkIGxvbmcgbG9uZykqbXlfYWxsb2NhdGVkX2J5dGVzKSk7CisJfQorCWVsc2UK KwkJKm15X2FsbG9jYXRlZF9ieXRlcyArPSAoYWxsb2NhdGVkX2J5dGVzKSAqIGFsbG9jYXRpb25f ZGlyZWN0aW9uOworCisJcmV0dXJuOworfQorCisvKiAtLS0tLS0tLS0KKyAqIHBnc3RhdF96ZXJv X215X2FsbG9jYXRlZF9ieXRlcygpIC0KKyAqCisgKiBDYWxsZWQgdG8gemVybyBvdXQgbG9jYWwg YWxsb2NhdGVkIGJ5dGVzIHZhcmlhYmxlIGFmdGVyIGZvcmsgdG8gYXZvaWQgZG91YmxlCisgKiBj b3VudGluZyBhbGxvY2F0aW9ucy4KKyAqIC0tLS0tLS0tLQorICovCitzdGF0aWMgaW5saW5lIHZv aWQKK3Bnc3RhdF96ZXJvX215X2FsbG9jYXRlZF9ieXRlcyh2b2lkKQoreworCSpteV9hbGxvY2F0 ZWRfYnl0ZXMgPSAwOworCisgICAgcmV0dXJuOworfQogCiAjZW5kaWYJCQkJCQkJLyogQkFDS0VO RF9TVEFUVVNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBmYjlmOTM2 ZDQzLi41Zjg1NGFhYjE4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTc1 NiwxMCArMTc1NiwxMSBAQCBwZ19zdGF0X2FjdGl2aXR5fCBTRUxFQ1Qgcy5kYXRpZCwKICAgICBz LnN0YXRlLAogICAgIHMuYmFja2VuZF94aWQsCiAgICAgcy5iYWNrZW5kX3htaW4sCisgICAgcy5h bGxvY2F0ZWRfYnl0ZXMsCiAgICAgcy5xdWVyeV9pZCwKICAgICBzLnF1ZXJ5LAogICAgIHMuYmFj a2VuZF90eXBlCi0gICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikg cyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3 YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNr ZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNs aWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwg c3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50 X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgbGVh ZGVyX3BpZCwgcXVlcnlfaWQpCisgICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6 aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUs IHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0 YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9z dG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5 cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBz c2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3Nz X2VuYywgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIGFsbG9jYXRlZF9ieXRlcykKICAgICAgTEVGVCBK T0lOIHBnX2RhdGFiYXNlIGQgT04gKChzLmRhdGlkID0gZC5vaWQpKSkKICAgICAgTEVGVCBKT0lO IHBnX2F1dGhpZCB1IE9OICgocy51c2VzeXNpZCA9IHUub2lkKSkpOwogcGdfc3RhdF9hbGxfaW5k ZXhlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLApAQCAtMTg3NCw3ICsxODc1LDcgQEAgcGdfc3Rh dF9nc3NhcGl8IFNFTEVDVCBzLnBpZCwKICAgICBzLmdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNh dGVkLAogICAgIHMuZ3NzX3ByaW5jIEFTIHByaW5jaXBhbCwKICAgICBzLmdzc19lbmMgQVMgZW5j cnlwdGVkCi0gICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0 aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9l dmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9z dGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRf cG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZl cnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJp YWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGxlYWRlcl9w aWQsIHF1ZXJ5X2lkKQorICAgRlJPTSBwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxMOjppbnRlZ2Vy KSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1lLCBzdGF0ZSwgcXVlcnks IHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFjdF9zdGFydCwgcXVlcnlfc3RhcnQsIGJh Y2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50X2FkZHIsIGNsaWVudF9ob3N0bmFtZSwg Y2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5kX3htaW4sIGJhY2tlbmRfdHlwZSwgc3Ns LCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMsIHNzbF9jbGllbnRfZG4sIHNzbF9jbGll bnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3ByaW5jLCBnc3NfZW5jLCBs ZWFkZXJfcGlkLCBxdWVyeV9pZCwgYWxsb2NhdGVkX2J5dGVzKQogICBXSEVSRSAocy5jbGllbnRf cG9ydCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0X3Byb2dyZXNzX2FuYWx5emV8IFNFTEVDVCBzLnBp ZCwKICAgICBzLmRhdGlkLApAQCAtMjA1NSw3ICsyMDU2LDcgQEAgcGdfc3RhdF9yZXBsaWNhdGlv bnwgU0VMRUNUIHMucGlkLAogICAgIHcuc3luY19wcmlvcml0eSwKICAgICB3LnN5bmNfc3RhdGUs CiAgICAgdy5yZXBseV90aW1lCi0gICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6 aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUs IHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0 YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9z dG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5 cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBz c2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3Nz X2VuYywgbGVhZGVyX3BpZCwgcXVlcnlfaWQpCisgICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZp dHkoTlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFt ZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQs IHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBj bGllbnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBi YWNrZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xp ZW50X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19w cmluYywgZ3NzX2VuYywgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIGFsbG9jYXRlZF9ieXRlcykKICAg ICAgSk9JTiBwZ19zdGF0X2dldF93YWxfc2VuZGVycygpIHcocGlkLCBzdGF0ZSwgc2VudF9sc24s IHdyaXRlX2xzbiwgZmx1c2hfbHNuLCByZXBsYXlfbHNuLCB3cml0ZV9sYWcsIGZsdXNoX2xhZywg cmVwbGF5X2xhZywgc3luY19wcmlvcml0eSwgc3luY19zdGF0ZSwgcmVwbHlfdGltZSkgT04gKChz LnBpZCA9IHcucGlkKSkpCiAgICAgIExFRlQgSk9JTiBwZ19hdXRoaWQgdSBPTiAoKHMudXNlc3lz aWQgPSB1Lm9pZCkpKTsKIHBnX3N0YXRfcmVwbGljYXRpb25fc2xvdHN8IFNFTEVDVCBzLnNsb3Rf bmFtZSwKQEAgLTIwODksNyArMjA5MCw3IEBAIHBnX3N0YXRfc3NsfCBTRUxFQ1Qgcy5waWQsCiAg ICAgcy5zc2xfY2xpZW50X2RuIEFTIGNsaWVudF9kbiwKICAgICBzLnNzbF9jbGllbnRfc2VyaWFs IEFTIGNsaWVudF9zZXJpYWwsCiAgICAgcy5zc2xfaXNzdWVyX2RuIEFTIGlzc3Vlcl9kbgotICAg RlJPTSBwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVz ZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1lLCBzdGF0ZSwgcXVlcnksIHdhaXRfZXZlbnRfdHlwZSwg d2FpdF9ldmVudCwgeGFjdF9zdGFydCwgcXVlcnlfc3RhcnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRl X2NoYW5nZSwgY2xpZW50X2FkZHIsIGNsaWVudF9ob3N0bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tl bmRfeGlkLCBiYWNrZW5kX3htaW4sIGJhY2tlbmRfdHlwZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xj aXBoZXIsIHNzbGJpdHMsIHNzbF9jbGllbnRfZG4sIHNzbF9jbGllbnRfc2VyaWFsLCBzc2xfaXNz dWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3ByaW5jLCBnc3NfZW5jLCBsZWFkZXJfcGlkLCBxdWVyeV9p ZCkKKyAgIEZST00gcGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikgcyhkYXRpZCwg cGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50 X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0 LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0 LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lv biwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwg c3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgbGVhZGVyX3BpZCwg cXVlcnlfaWQsIGFsbG9jYXRlZF9ieXRlcykKICAgV0hFUkUgKHMuY2xpZW50X3BvcnQgSVMgTk9U IE5VTEwpOwogcGdfc3RhdF9zdWJzY3JpcHRpb258IFNFTEVDVCBzdS5vaWQgQVMgc3ViaWQsCiAg ICAgc3Uuc3VibmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Rh dHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKaW5kZXggMWQ4NDQw N2EwMy4uYWI3ZTk1YzM2NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKQEAgLTEx MjYsNCArMTEyNiwxNSBAQCBTRUxFQ1QgcGdfc3RhdF9nZXRfc3Vic2NyaXB0aW9uX3N0YXRzKE5V TEwpOwogIAogKDEgcm93KQogCistLSBlbnN1cmUgdGhhdCBhbGxvY2F0ZWRfYnl0ZXMgZXhpc3Qg Zm9yIGJhY2tlbmRzCitTRUxFQ1QgYWxsb2NhdGVkX2J5dGVzID4gMCBBUyByZXN1bHQgRlJPTSBw Z19zdGF0X2FjdGl2aXR5IFdIRVJFIGJhY2tlbmRfdHlwZQorSU4gKCdjaGVja3BvaW50ZXInLCAn YmFja2dyb3VuZCB3cml0ZXInLCAnd2Fsd3JpdGVyJywgJ2F1dG92YWN1dW0gbGF1bmNoZXInKTsK KyByZXN1bHQgCistLS0tLS0tLQorIHQKKyB0CisgdAorIHQKKyg0IHJvd3MpCisKIC0tIEVuZCBv ZiBTdGF0cyBUZXN0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwKaW5kZXggYjRkNjc1M2M3MS4uMmYwYjFj YzlkOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbApAQCAtNTM1LDUgKzUzNSw4IEBAIFNFVCBlbmFi bGVfc2Vxc2NhbiBUTyBvbjsKIFNFTEVDVCBwZ19zdGF0X2dldF9yZXBsaWNhdGlvbl9zbG90KE5V TEwpOwogU0VMRUNUIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbl9zdGF0cyhOVUxMKTsKIAorLS0g ZW5zdXJlIHRoYXQgYWxsb2NhdGVkX2J5dGVzIGV4aXN0IGZvciBiYWNrZW5kcworU0VMRUNUIGFs bG9jYXRlZF9ieXRlcyA+IDAgQVMgcmVzdWx0IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSBi YWNrZW5kX3R5cGUKK0lOICgnY2hlY2twb2ludGVyJywgJ2JhY2tncm91bmQgd3JpdGVyJywgJ3dh bHdyaXRlcicsICdhdXRvdmFjdXVtIGxhdW5jaGVyJyk7CiAKIC0tIEVuZCBvZiBTdGF0cyBUZXN0 Ci0tIAoyLjI1LjEKCg== --=-WCe3NAXK8q4+b30t6MGz--