Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uPwQg-001Dxi-Lw for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Jun 2025 04:54:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uPwQe-0010sn-Oo for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Jun 2025 04:54:13 +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.94.2) (envelope-from ) id 1uPwQd-0010sb-Ib for pgsql-hackers@lists.postgresql.org; Fri, 13 Jun 2025 04:54:12 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uPwQP-001j4O-2z for pgsql-hackers@lists.postgresql.org; Fri, 13 Jun 2025 04:54:11 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-710fe491842so11772127b3.0 for ; Thu, 12 Jun 2025 21:53:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749790437; x=1750395237; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cqNzTmzDhwSAajPwn2ffTE2K1y8hkH3TtQkpcMABPhw=; b=ZwFFchWu5svU9b51dNlhJ116nvdLP3RpARlid5fslOVjsbA5i1T/UT0loINlFfsYVa AROJVg5dOeDFDomOCtLd+esge0Acv3347rfG4Nm05hIo4kI0TxsAvQmGRVRs8zTr4y8W EPIRznq1WuOuem0/ozeEdifeWwN32Y4tfeZwn6vFXI/VmP7uESoLxuQTJSPKpYKwtlXw IZ1VpGX86d0SRbInYEy3ULSfK3hEBkrIMNbc40C/wrKb510EH/4z7wOLEmT58lud3DoC GUhZTOWdsbpfhiUfKtGpWX+n2rHQ/CGdqdOaURpP5soETnqZe9FxU2O+OiLQVTszdppQ 1r8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749790437; x=1750395237; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cqNzTmzDhwSAajPwn2ffTE2K1y8hkH3TtQkpcMABPhw=; b=H2ns9Rl+Vt7DKk99vI+3pS48nT8jMVoJO7G5EefXcdGTSMr6Yi4YZop5RI1IwwfSMx sbXCwVanRHVS7RqtH/7GQ5339oCuDV0yywlgZcAK6Q5wnTxjycdblubFR7/bU82HnKgn R7fHexcw8mi2RuggLNre3nHN4REj8J5TWLmEa7fwfse559dLSMFuaknZauaJBE+AwbM3 V8aNUHZTkAZrpQwOGe+fij/TpAPecuZMBplImOxVULctrabR/hZXjmxjiEl0vSnRzCal D4eF9StFpqaiXHpUnB0Po7ndYLZKv0YuDf0c0vNCJr0SezUp8NfpSHO3RXmYkpQoWLg4 PBow== X-Forwarded-Encrypted: i=1; AJvYcCXHXyuwMaGVl1i8gq6HLmdWmchvH6HDdMHF0MXk0inlrXMcX32FNVh4ORcpbLmVB6fUpqJTxQoeyyipBQb9@lists.postgresql.org X-Gm-Message-State: AOJu0Yw4YvtiWoYfXq/VTWarn/OycqGI4cfmOrrQ/dz0n1cKfAfmUJOd TAmwcDMf2aTwnWyBOhm3ZVJXJUWm7h44XD1vCOIpmGM9GOa9LxdqNARD6kFmEgvamPO6qohXC56 ha+7fVWyr2Io2//BRfbW+XW/z7YzvSBY= X-Gm-Gg: ASbGncuA35CbgqCJB9zrQVQkOtDVCjWzJO6lspwEsCcoEvEJ2bMDltyJFHNjbh4AOuQ 9qmN3t/cq2B6pCnNF6kk0T3jjuJrhjzEDeXIEcoo9bMjIdX5RmHQvTwbGGxL5VQoWMe8ZHcj62J 1j0pQ1aOnw6BMKRf4BZxcny/Q0eThfv+aIdOxPfgsriJjWWNym5gZb1sMngwSdZ22kbMROO0c8G kWC X-Google-Smtp-Source: AGHT+IGdkTW/RBW1ylkzVDL1SKoxPjM/FL8Eg9ucn0fZH9c3xcXIO+vL16sZKxBsR/aNOCCvPhoPLC5WrjgICFsJHjI= X-Received: by 2002:a05:690c:b06:b0:70e:17da:dccc with SMTP id 00721157ae682-7116373f6admr29779917b3.16.1749790437050; Thu, 12 Jun 2025 21:53:57 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> In-Reply-To: From: Pavel Stehule Date: Fri, 13 Jun 2025 06:53:20 +0200 X-Gm-Features: AX0GCFtskPJGUKsED1qbQuX6bqHyVef_zM3hwrXnP7HnyDBUHGZOa1LODzcpOsc Message-ID: Subject: Re: proposal: schema variables To: Bruce Momjian Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="0000000000006fcc3506376cd535" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006fcc3506376cd535 Content-Type: multipart/alternative; boundary="0000000000006fcc3406376cd533" --0000000000006fcc3406376cd533 Content-Type: text/plain; charset="UTF-8" Hi rebase after 0f65f3eec478db8ac4f217a608b4478fed023bac Reards Pavel --0000000000006fcc3406376cd533 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

rebase after=C2=A00f65f3e= ec478db8ac4f217a608b4478fed023bac

Reards

Pavel
--0000000000006fcc3406376cd533-- --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250613-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nhf0 RnJvbSAxOTY5MDlhZjk3MDU3ZDFkYjY4ODJkZTNlMTFlZTQwNmE4MjNjMDkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMTVdIHBscGdzcWwgdGVzdHMKCnNldCBvZiBwbHBnc3FsIHJlbGF0ZWQgdGVzdHM6CgoqIGNo ZWNrIHNlc3Npb24gdmFyaWFibGVzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcyBhcmUgbm90IGluIGNv bGxpc2lvbiBldmVyCiogY2hlY2sgY29ycmVjdCBwbHBnc3FsIHBsYW4gY2FjaGUgaW52YWxpZGF0 aW9uIHdoZW4gc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkCiogY2hlY2sgc28gdGhlIHZhbHVl IG9mIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IGNvcnJ1cHRlZCwgd2hlbiB0aGUgdmFyaWFibGUg aXMKICBtb2RpZmllZCBpbnNpZGUgbmVzdGVkIGNhbGxlZCBmdW5jdGlvbnMKLS0tCiBzcmMvcGwv cGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCB8IDE5OCArKysrKysrKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MSArCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAxMzcg KysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUK aW5kZXggNjNjYjk2ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3 ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9 IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9s IFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3Fs X3JlY29yZCBwbHBnc3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3Ry YXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3Nx bF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQog CiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVz CiBUT09MU0RJUiA9ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZGNlYzc4YzIzNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CkBAIC0wLDAgKzEsMTk4IEBACistLSBjaGVjayBvZiBjb3JyZWN0IHBsYW4gY2Fj aGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMiBBUyBpbnRbXTsKKy0tIHBscGdzcWwg dmFyaWFibGVzIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGluIGNvbGxpc2lvbiBldmVy CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMV8wMSgp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgcGxwZ3NxbF9zZXN2YXIwMSBpbnQ7CitCRUdJ TgorICBwbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAx MDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9uIHZhcjogJScsCisg ICAgcGxwZ3NxbF9zZXN2YXIwMSwgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7 CitOT1RJQ0U6ICBwbHBnc3FsIHZhcjogMTAwLCBzZXNzaW9uIHZhcjogMTAwMAorIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuYzAxXzAxIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgX19wbHBnc3FsX3Nlc3ZhcjAxIGlu dDsKK0JFR0lOCisgIF9fcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7CisgIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9u IHZhcjogJScsCisgICAgX19wbHBnc3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShfX3BscGdzcWxfc2Vz dmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSAiX19wbHBnc3FsX3Nlc3ZhcjAxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCBfX3BscGdz cWxfc2VzdmFyMDEgPSAxMDAwCisgICAgICAgICAgICBeCitRVUVSWTogIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDFfMDIoKSBsaW5lIDUgYXQgU1FMIHN0YXRlbWVudAorLS0gc2hvdWxkIGZhaWwK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0VSUk9SOiAgInBs cGdzcWxfc2VzdmFyMDEiIGlzIG5vdCBhIGtub3duIHZhcmlhYmxlCitMSU5FIDQ6ICAgcGxwZ3Nx bF9zZXN2YXIwMSA6PSAxMDA7CisgICAgICAgICAgXgorRFJPUCBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMSgpOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5j MDIoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOwor QkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxf c2VzdmFyMDEpXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxf c2VzdmFyMDIgPSB2OworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nl c3ZhcjAxKV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2 YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAyKCk7CitOT1RJQ0U6ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFyMDI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOwor Tk9USUNFOiAgezEwMH0KK05PVElDRTogIHstMX0KKyBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAx LCBwbHBnc3FsX3Nlc3ZhcjAyOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAg TEVUIHBscGdzcWxfc2VzdmFyMDEgPSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAx KSArICQxLCAkMSk7CisgIFJFVFVSTiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7Cisg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEpOwor IHN2YXJ0ZXN0X3BscGdzcWxfaW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKTsK KyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSkg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAg ICAgICAgNQorICAgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAg ICAgICAgICAgICAgICAgICAgOAorICAgICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAg ICAgICAgMTAKKyAgICAgICAgICAgICAgICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisg ICAgICAgICAgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAwLjA7CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAyID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMikgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNU IHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDIKKygxIHJvdykKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDMKKygxIHJvdykKKwor U0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICAgICAgNQorICAgICAgICAgICAgICAg ICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAgICAgICAgICAgICAgICAgICAgOAorICAg ICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAgICAgICAgMTAKKyAgICAgICAgICAgICAg ICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisgICAgICAgICAgICAgICAgICAgMTMKKygx MCByb3dzKQorCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFy MDI7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKGludCk7CitEUk9QIEZVTkNU SU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51bWVyaWMpOworLS0gdGhlIHZhbHVlIHNob3VsZCBu b3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0Owor TEVUIHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBzdmFy dGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDMpKTsKK0VO RAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3Fs X2Z1bmNfbmVzdGVkKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBs cGdzcWxfc2VzdmFyMDMgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKyBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBhYmMKKygxIHJvdykK KworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3Nlc3ZhcjAzOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxk IGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMyNWQ5Li4xZDAx ZDFjMjYyOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCisrKyBi L3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZApAQCAtODgsNiArODgsNyBAQCB0ZXN0cyAr PSB7CiAgICAgICAncGxwZ3NxbF90cmFwJywKICAgICAgICdwbHBnc3FsX3RyaWdnZXInLAogICAg ICAgJ3BscGdzcWxfdmFycHJvcHMnLAorICAgICAgJ3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZScs CiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNWFiZjE4ZTNiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTAsMCArMSwxMzcgQEAKKy0tIGNo ZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAy IEFTIGludFtdOworCistLSBwbHBnc3FsIHZhcmlhYmxlcyBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCBpbiBjb2xsaXNpb24gZXZlcgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zh cnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHBs cGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSBfX3BscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgX19wbHBnc3FsX3Nlc3ZhcjAxIDo9 IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5PVElDRSAn cGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBfX3BscGdzcWxfc2VzdmFyMDEs IFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCk7 CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIHBscGdzcWxf c2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBwbHBnc3FsX3Nl c3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKTsKK0RS T1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxf c2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpXSA9IDEwMDsKKyAg UkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSB2OworICBMRVQg cGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKV0gPSAtMTsKKyAgUkFJ U0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJP UCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyKCk7 CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJPUCBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCistLSByZXR1cm5zIHVw ZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSkgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7 CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CisKK1NFTEVDVCBzdmFydGVzdF9wbHBn c3FsX2luYygxKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc2VzdmFyMDIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAw LjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51 bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIg PSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7CisgIFJFVFVS TiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxLjApOworU0VMRUNUIHN2YXJ0ZXN0X3Bs cGdzcWxfaW5jKDEuMCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsKKwor RFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpOworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3Qg YmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0OworTEVU IHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykpOworRU5E CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3Nx bF9mdW5jX25lc3RlZCh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3Nlc3ZhcjAzID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKworRFJPUCBG VU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElPTiBzdmFydGVz dF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2Vz dmFyMDM7Ci0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250613-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nim2 RnJvbSAzYjU2OWNmNGRjMzE0NjQ4M2Y5ZDlkYjdhNmNjZTYxOWIwOTFlNzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMjA6NDE6NTcgKzAyMDAKU3ViamVjdDogW1BB VENIIDEzLzE1XSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBW QVJJQUJMRVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFy aWFibGVzCmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3Jj L3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKysrLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jICAgICAgICAgICAgICAgIHwgIDYgKysrCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAzMiArKysrKysrKysrLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKwog c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKysKIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVk ZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysr CiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbCAgICAgfCAyNCArKysr KysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggYmY0NGM1MjNjYWMuLjYxYjk2N2Y5YzliIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbApAQCAtMjEsNyArMjEsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRp b24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLURJU0NBUkQgeyBBTEwgfCBQTEFO UyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfQorRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB8IFZBUklBQkxFUyB9CiA8L3N5bm9wc2lz PgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTY2LDYgKzY2LDE2IEBAIERJU0NBUkQgeyBBTEwg fCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfQogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5WQVJJQUJMRVM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcy4gSWYg YSB2YXJpYWJsZQorICAgICAgaXMgbGF0ZXIgcmV1c2VkLCBpdCBpcyByZS1pbml0aWFsaXplZCB0 byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0 ZXJhbD5URU1QT1JBUlk8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlRFTVA8L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KQEAgLTkzLDYgKzEwMyw3IEBAIFNFTEVDVCBwZ19hZHZpc29yeV91 bmxvY2tfYWxsKCk7CiBESVNDQVJEIFBMQU5TOwogRElTQ0FSRCBURU1QOwogRElTQ0FSRCBTRVFV RU5DRVM7CitESVNDQVJEIFZBUklBQkxFUzsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogICAg IDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Rpc2NhcmQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwppbmRl eCA4MTMzOWE3NWE1Mi4uNTkwNGE2YzQ5MTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Rpc2NhcmQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4 LDYgKzE4LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2Rpc2NhcmQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBA IC00OCw2ICs0OSwxMCBAQCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBp c1RvcExldmVsKQogCQkJUmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgRElTQ0FSRF9WQVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJ CWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NB UkQgdGFyZ2V0OiAlZCIsIHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNj YXJkQWxsKGJvb2wgaXNUb3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRh YmxlTmFtZXNwYWNlKCk7CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZh cmlhYmxlcygpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4 IDlhOTI4MWFjZDgzLi4xMGY5YjVlMjAyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYwpAQCAtMTAzLDcgKzEwMywxMyBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFj ayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCiAJZWxvZyhERUJV RzEsICJwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1 ZSk7CiAKLQlBc3NlcnQoc2Vzc2lvbnZhcnMpOworCS8qCisJICogVGhlcmUgaXMgbm8gZ3VhcmFu dGVlIG9mIHNlc3Npb24gdmFyaWFibGVzIGJlaW5nIGluaXRpYWxpemVkLCBldmVuIHdoZW4KKwkg KiByZWNlaXZpbmcgYW4gaW52YWxpZGF0aW9uIGNhbGxiYWNrLCBhcyBESVNDQVJEIFsgQUxMIHwg VkFSSUFCTEVTIF0KKwkgKiBkZXN0cm95cyB0aGUgaGFzaCB0YWJsZSBlbnRpcmVseS4KKwkgKi8K KwlpZiAoIXNlc3Npb252YXJzKQorCQlyZXR1cm47CiAKIAkvKgogCSAqIElmIHRoZSBoYXNodmFs dWUgaXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBjdXJyZW50bHkKQEAg LTY1Nyw4ICs2NjMsOCBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CiAJCQkJLyoKIAkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2YXJpYWJsZSBoYXMg YmVlbiBkcm9wcGVkIGFuZAotCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5ldyB2YXJpYWJsZSB3 aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4KLQkJCQkgKiBVc2UgdGhlIGNhdGFsb2cgaW5mb3JtYXRp b24gb25seSBpZiB0aGF0IGlzIG5vdCB0aGUgY2FzZS4KKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQg YSBuZXcgdmFyaWFibGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuIFVzZQorCQkJCSAqIHRoZSBj YXRhbG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCiAJCQkJICov CiAJCQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKIAkJ CQl7CkBAIC03MDAsMyArNzA2LDIzIEBAIHBnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAwOwogfQorCisvKgorICogRmFzdCBkcm9wIG9mIHRo ZSBjb21wbGV0ZSBjb250ZW50IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlcyBoYXNoIHRhYmxlLCBh bmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3QgdGhhdCB3b3VsZG4ndCBiZSByZWxldmFudCBhbnlt b3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBESVNDQVJEIFZBUklBQkxFUyAoYW5kIERJU0NB UkQgQUxMKSBjb21tYW5kLgorICovCit2b2lkCitSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCkK K3sKKwkvKiBkZXN0cm95IGhhc2ggdGFibGUgYW5kIHJlc2V0IHJlbGF0ZWQgbWVtb3J5IGNvbnRl eHQgKi8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQloYXNoX2Rlc3Ryb3koc2Vzc2lvbnZhcnMp OworCQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQorCisJLyogcmVsZWFzZSBtZW1vcnkgYWxsb2Nh dGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQg IT0gTlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggZjRhYzUxODYzNDguLjRiOWE1MjFlNjk3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK QEAgLTIwODMsNyArMjA4MywxMyBAQCBEaXNjYXJkU3RtdDoKIAkJCQkJbi0+dGFyZ2V0ID0gRElT Q0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IERJU0NB UkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNjYXJkU3RtdCAqbiA9IG1ha2VOb2RlKERpc2Nh cmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMjBlNGQ0MzU3 NmIuLjVmZmNlZTVhYTgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwor KysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjk2MSw2ICsyOTYxLDkgQEAgQ3Jl YXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNF UzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJ CQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJ QUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktO T1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGM2ODlhNDU5MThjLi5kMmY2MzE0 ZDFiNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDE1Myw3ICs0MTUzLDcgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIERJU0NBUkQgKi8KIAllbHNlIGlm IChNYXRjaGVzKCJESVNDQVJEIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJT RVFVRU5DRVMiLCAiVEVNUCIpOworCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VR VUVOQ0VTIiwgIlRFTVAiLCAiVkFSSUFCTEVTIik7CiAKIC8qIERPICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiRE8iKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCAy ZWJlODQ3Nzc4OS4uYWMzNmRmY2MxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKQEAgLTI5LDQgKzI5LDYgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3QKIGV4dGVy biB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVu diwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlh Ymxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMWRkN2YzZWEw MGYuLjc2MDJjZWZjZmMyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00MDcxLDYgKzQwNzEs NyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVNDQVJEX1BMQU5TLAogCURJU0NBUkRf U0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJEX1ZBUklBQkxFUywKIH0gRGlzY2Fy ZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmlu ZGV4IDIyMDgyYzMwMDA4Li5iZWYwYWMyNTMzMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTEz NSw2ICsxMzUsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfQUxMLCAiRElTQ0FSRCBBTEwi LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1BMQU5TLCAi RElTQ0FSRCBQTEFOUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJ U0NBUkRfU0VRVUVOQ0VTLCAiRElTQ0FSRCBTRVFVRU5DRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1RFTVAsICJESVNDQVJEIFRFTVAiLCBmYWxzZSwg ZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUywgIkRJU0NB UkQgVkFSSUFCTEVTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRE8s ICJETyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUNDRVNT X01FVEhPRCwgIkRST1AgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRFJPUF9BR0dSRUdBVEUsICJEUk9QIEFHR1JFR0FURSIsIHRydWUsIGZhbHNl LCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXNfZG1sLm91dAppbmRleCAwZmRmMGZkYzY4YS4uNDQ3YzEwYmM0YTMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKQEAg LTQ0NywzICs0NDcsNTMgQEAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NgogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NwogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0OAogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQ7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgQVMgdmFyY2hhcjsKK0xFVCBzdmFy dGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CitTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUwIAorLS0tLS0tLS0tLQorIEhl bGxvCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RtbF9kaXNjYXJkJzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMQorKDEgcm93KQorCitESVNDQVJEIEFMTDsKK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBz ZXN2YXI1MCAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworTEVUIHN2YXJ0ZXN0X2RtbF9kaXNj YXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworRElTQ0FS RCBWQVJJQUJMRVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJMRShz dmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAgCistLS0tLS0tLS0tCisg CisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkIENBU0NBREU7CitO T1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sX2Rp c2NhcmQuc2VzdmFyNTAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwuc3FsCmluZGV4IDEyNTBlN2VmMDYyLi4zNDBhZTZmNzZhYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBAIC0zMzYsMyArMzM2LDI3 IEBAIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDgpOwogCiBEUk9QIFNDSEVN QSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKIERST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93 cml0ZV9vbmx5X3JvbGU7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQ7CisK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCBBUyB2YXJjaGFy OworTEVUIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CisKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2Rt bF9kaXNjYXJkJzsKKworRElTQ0FSRCBBTEw7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2Fy ZC5zZXN2YXI1MCk7CitMRVQgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8n OworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVND QVJEIFZBUklBQkxFUzsKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsK K0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkIENBU0NBREU7Ci0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250613-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0niw3 RnJvbSA0YWNmN2IxODhmYjUyYWQ0NzAxZjA2YWU1N2IxYTAwYzZiOTZkYzM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzE1XSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDc2 ODE2M2UyMDA5Li45YTkyODFhY2Q4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNkZXNjLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgpAQCAtNjAwLDMgKzYwMSwxMDIgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Np b25fdmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVu Y3Rpb24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhl CisgKiBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9y ZSBkaXNwbGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkLCBidXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNo YXJlZCBpbnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVz KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19B VFRTIDgKKworCS8qCisJICogTWFrZSBzdXJlIHN5c2NhY2hlIGVudHJpZXMgYXJlIGZsdXNoZWQg Zm9yIHJlY2VudCBjYXRhbG9nIGNoYW5nZXMuIEZvcgorCSAqIHN0YWJsZSBiZWhhdmlvciB3ZSBu ZWVkIHRvIHJlbGlhYmx5IGRldGVjdCB3aGljaCB2YXJpYWJsZXMgd2VyZQorCSAqIGRyb3BwZWQu CisJICovCisJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKworCUluaXRNYXRlcmlhbGl6 ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCVJldHVyblNldElu Zm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKKwkJSEFT SF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7CisKKwkJaGFzaF9zZXFfaW5p dCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkg aGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlEYXR1bQkJdmFsdWVz W05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJvb2wJCW51bGxzW05VTV9QR19T RVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0cDsKKwkJCWJvb2wJCXZhcl9p c192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7 CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOworCisJCQl2YWx1ZXNbMF0gPSBP YmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVlc1szXSA9IE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQgaXMgcG9zc2libGUgdGhhdCB0 aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQorCQkJICogY2F0YWxvZywgYnV0 IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJCQkgKi8KKwkJCXRwID0gU2Vh cmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKSk7 CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8q CisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFyaWFibGUgaGFzIGJlZW4gZHJv cHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcgdmFyaWFibGUgd2l0aCB0aGUg c2FtZSBvYmplY3QgSUQuCisJCQkJICogVXNlIHRoZSBjYXRhbG9nIGluZm9ybWF0aW9uIG9ubHkg aWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJCQkJaWYgKHN2YXItPmNyZWF0ZV9s c24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7CisJCQkJCXZhbHVlc1sxXSA9IENT dHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZv cm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1syXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJCXZhbHVlc1s0XSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlwaWQpKTsKKwkJCQkJdmFsdWVzWzVd ID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1ZXNbNl0gPSBCb29sR2V0RGF0dW0o CisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52 YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCkgPT0gQUNMQ0hF Q0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXREYXR1bSgKKwkJCQkJCQkJCQkJIG9i amVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2YXItPnZhcmlkLAorCQkJCQkJCQkJ CQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBBQ0xDSEVDS19PSyk7CisKKwkJCQkJ dmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBjYXRhbG9nIGVudHJ5LCByZXR1 cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3ZhbGlkKQorCQkJeworCQkJCW51bGxz WzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJCQkJbnVsbHNbNF0gPSB0cnVlOwor CQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwkJCQludWxsc1s2XSA9IHRydWU7 CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhy c2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQor CX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBm NzJhY2RkODRiZC4uZDZjZWU1NzI1NjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI1 NzksNCArMTI1NzksMTIgQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsaW9faWQsaW9fZ2VuZXJh dGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJnZXQsaGFuZGxlX2RhdGFfbGVuLHJh d19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxmX2xvY2FsbWVtLGZfYnVmZmVyZWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAorIyBTZXNzaW9uIHZhcmlhYmxlcyBz dXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycsIHByb3Jvd3Mg PT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9PiAncycsIHByb3Bh cmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4dCxib29sLGJvb2ws Ym9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmdu YW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVtb3ZlZCxjYW5fc2Vs ZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycgfSwK IF0KLS0gCjIuNDkuMAoK --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250613-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nib1 RnJvbSA4OTI2YjIwY2E0NzVmY2RkMjY5NTE2ZTIxMTA5MWQwOWZhZWVjOWZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMjI6MzM6MjUgKzAyMDAKU3ViamVjdDogW1BB VENIIDE0LzE1XSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0aW5n IGEgc2ludmFsIG1lc3NhZ2UgaW52YWxpZGF0ZXMgZW50cmllcyBpbiB0aGUgInNlc3Npb252YXJz IiBoYXNoIHRhYmxlLgpUaGVzZSBlbnRyaWVzIGFyZSB2YWxpZGF0ZWQgYmVmb3JlIGFueSByZWFk IG9yIHdyaXRlIG9wZXJhdGlvbnMgb24gc2Vzc2lvbiB2YXJpYWJsZXMuCldoZW4gdGhlIGVudHJ5 IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIGl0IGlzIHJlbW92ZWQuICBSZW1vdmFsIHdpbGwgYmUgZGVs YXllZCB3aGVuCnRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2Fj dGlvbiwgd2hpY2ggY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCi0tLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNTQgKysrKysrKysrKysrLQogc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICAyICsKIC4uLi9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8IDExMCArKysrKysrKysK IHNyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgICAgICAgICB8ICAgMSArCiAu Li4vaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNTAgKysrKwog Li4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAgICAgIHwgMjE0ICsrKysr KysrKysrKysrKysrKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwg ICAgIHwgMTUxICsrKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCA2ODMgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jCmluZGV4IGQ4ZWRlNGZhOGM4Li5jOTQxMTQ0M2M2ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvcGdfbHNu LmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTE1NCw3ICsxNTUsOCBAQCBjcmVh dGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIH0KIAogLyoKLSAqIERyb3AgdmFyaWFi bGUgYnkgT0lECisgKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRCwgYW5kIHJlZ2lzdGVyIHRoZSBuZWVk ZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2xlYW51cC4KICAqLwogdm9pZAogRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCkBAIC0xNzQsNCArMTc2LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJLyogZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbnVwIGluIGxvY2FsIG1l bW9yeSwgaWYgbmVlZGVkICovCisJU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlk KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAxMGY5YjVl MjAyMS4uMGI4OGMwNjcxYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKQEAgLTEzLDggKzEzLDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKLQogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgpA QCAtNzYsNiArNzYsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCXZvaWQJICAg KmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQ7CiAKKwkvKgorCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0 aGUgbGFzdCB0cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCisJICogdmFyaWFibGUsIGlmIGFu eS4gIFdlIG5lZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IK KwkgKiB2YXJpYWJsZXMgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCwgaW4gY2FzZSB0aGUg b3BlcmF0aW9uIGlzIHJvbGxlZAorCSAqIGJhY2suCisJICovCisJTG9jYWxUcmFuc2FjdGlvbklk IGRyb3BfbHhpZDsKKwogCS8qCiAJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9u IGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQogCSAqIHNpbnZhbCBtZXNzYWdlLiAg V2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKQEAgLTky LDYgKzEwMCwxNyBAQCBzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRh YmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFy aWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKIAorLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVj ZWl2ZSBhIHNpbnZhbCBtZXNzYWdlICovCitzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0g ZmFsc2U7CisKKy8qCisgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVz IGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgV2UgZG8KKyAqIHRoYXQgaW4gdGhlIG5leHQg dHJhbnNhY3Rpb24gdGhhdCByZWFkcyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICog InZhbGlkYXRlZF9seGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNh aWQgdmFsaWRhdGlvbiwgc28KKyAqIHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZm b3J0LgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52 YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBz ZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTI0LDYgKzE0MywzOCBAQCBw Z192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhh c2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5lZWRzX3ZhbGlk YXRpb24gPSB0cnVlOworCQl9CisJfQorfQorCisvKgorICogSGFuZGxlIHRoZSBsb2NhbCBtZW1v cnkgY2xlYW51cCBmb3IgYSBEUk9QIFZBUklBQkxFIGNvbW1hbmQuCisgKgorICogQ2FsbGVyIHNo b3VsZCB0YWtlIGNhcmUgb2YgcmVtb3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5IGZpcnN0Lgor ICovCit2b2lkCitTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQorewor CUFzc2VydChMb2NhbFRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CisK KwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQlib29sCQlmb3VuZDsKKwkJU1ZhcmlhYmxlCXN2YXIg PSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkJ CQkJICAgSEFTSF9GSU5ELCAmZm91bmQpOworCisJCWlmIChmb3VuZCkKKwkJeworCQkJLyoKKwkJ CSAqIFNhdmUgdGhlIGN1cnJlbnQgdG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIHRvIG1h a2Ugc3VyZSB3ZQorCQkJICogd29uJ3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGxvY2FsIHZh cmlhYmxlIHN0b3JhZ2UgaW4KKwkJCSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygp IHdoZW4gdGhlIGludmFsaWRhdGlvbiBtZXNzYWdlCisJCQkgKiBmcm9tIERST1AgVkFSSUFCTEUg YXJyaXZlcy4gIEFmdGVyIGFsbCwgdGhlIHRyYW5zYWN0aW9uIGNvdWxkCisJCQkgKiBzdGlsbCBi ZSByb2xsZWQgYmFjay4KKwkJCSAqLworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2 YXItPmRyb3BfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOwogCQl9CiAJfQogfQpAQCAtMTc3LDYg KzIyOCw2NyBAQCBpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJl dHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBDaGVjayBhbGwgcG90ZW50aWFsbHkgaW52YWxpZCBz ZXNzaW9uIHZhcmlhYmxlIGRhdGEgaW4gbG9jYWwgbWVtb3J5IGFuZCBmcmVlCisgKiB0aGUgbWVt b3J5IGZvciBhbGwgaW52YWxpZCBvbmVzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3Jl IGFueSByZWFkIG9yCisgKiB3cml0ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuICBGcmVlaW5nIG9m IGEgdmFyaWFibGUncyBtZW1vcnkgaXMgcG9zdHBvbmVkIGlmCisgKiB0aGUgdmFyaWFibGUgaGFz IGJlZW4gZHJvcHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdAorICog b3BlcmF0aW9uIGNvdWxkIHN0aWxsIGJlIHJvbGxlZCBiYWNrLgorICoKKyAqIEl0IGlzIHBvc3Np YmxlIHRoYXQgd2UgcmVjZWl2ZSBhIGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCisg KiByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2Ug Y2Fubm90IGd1YXJhbnRlZSB0aGF0CisgKiBhbGwgZW50cmllcyBpbiAic2Vzc2lvbnZhcnMiIHdp bGwgYmUgc2V0IHRvICJpc192YWxpZCIgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGlzCisgKiBkb25lLiAg SG93ZXZlciwgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9u Y2UuCisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2 b2lkKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkv KgorCSAqIFRoZSB2YWxpZGF0aW9uIHJlcXVpcmVzIHN5c3RlbSBjYXRhbG9nIGFjY2Vzcywgc28g dGhlIHNlc3Npb24gc3RhdGUKKwkgKiBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8K KwlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9u IHx8ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGUgZmxhZyBi ZWZvcmUgd2Ugc3RhcnQgdGhlIHZhbGlkYXRpb24uICBJdCBjYW4gYmUgc2V0IGFnYWluIGJ5CisJ ICogY29uY3VycmVudGx5IGluY29taW5nIHNpbnZhbCBtZXNzYWdlcy4KKwkgKi8KKwluZWVkc192 YWxpZGF0aW9uID0gZmFsc2U7CisKKwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZh bGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0 dXMsIHNlc3Npb252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9z ZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7 CisJCQlpZiAoc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJ CS8qIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiAqLworCQkJCW5lZWRzX3ZhbGlk YXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlpZiAoIWlzX3Nlc3Npb25f dmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJp ZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQloYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJc3ZhciA9 IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQl9CisJ fQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAq LwpAQCAtMjA2LDYgKzMxOCw4IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAor CXN2YXItPmRyb3BfbHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCiAJc3Zhci0+aXNudWxs ID0gdHJ1ZTsKIAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIApAQCAtMzI5LDIyICs0NDMsNDIg QEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCWlmICghc2Vzc2lvbnZhcnMpCiAJ CWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAKKwlpZiAodmFsaWRhdGVkX2x4aWQg PT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVBy b2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vz c2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rp b24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFy ID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJ ICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRo ZSBzZXNzaW9uIHZhcmlhYmxlIGNvdWxkIGhhdmUgYmVlbiBkcm9wcGVkIGJ5IGEgRFJPUCBWQVJJ QUJMRQorCQkgKiBzdGF0ZW1lbnQgaW4gYSBzdWJ0cmFuc2FjdGlvbiB0aGF0IHdhcyBsYXRlciBy b2xsZWQgYmFjaywgd2hpY2gKKwkJICogbWVhbnMgdGhhdCB3ZSBtYXkgaGF2ZSB0byB3b3JrIHdp dGggdGhlIGRhdGEgb2YgYSB2YXJpYWJsZSBtYXJrZWQKKwkJICogYXMgaW52YWxpZC4KKwkJICov CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiB0aGVyZSB3YXMg YW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbAotCQkJICog YmUgdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgor CQkJICogV2UgaGF2ZSB0byBjaGVjayB0aGUgc3lzdGVtIGNhdGFsb2cgdG8gc2VlIGlmIHRoZSB2 YXJpYWJsZSBpcworCQkJICogc3RpbGwgdmFsaWQsIGV2ZW4gaWYgYW4gaW52YWxpZGF0aW9uIG1l c3NhZ2Ugc2V0IGl0IHRvIGludmFsaWQuCisJCQkgKgorCQkJICogVGhlIHZhcmlhYmxlIG11c3Qg YmUgdmFsaWRhdGVkIGJlZm9yZSBpdCBpcyBhY2Nlc3NlZC4gIFRoZSBvaWQKKwkJCSAqIHNob3Vs ZCBiZSB2YWxpZCwgYmVjYXVzZSB0aGUgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIGlzCisJCQkg KiBhbHJlYWR5IGxvY2tlZCwgYW5kIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkg d291bGQKKwkJCSAqIHJlbW92ZSB2YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlv bnMuCiAJCQkgKi8KIAkJCWlmIChpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJ CXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fu bm90IGJlIHZhbGlkYXRlZCwgd2UgaGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0 YXRlIG9mIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAJCX0KIAl9CiAJZWxzZQpAQCAt NDA1LDYgKzUzOSwxNiBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1 ZSwgYm9vbCBpc051bGwpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJz X2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFu c2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsK KwkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwor CQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCisJCS8qIGRvbid0IHJlcGVh dCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRf bHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNo X3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91 bmQpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYWMzNmRm Y2MxOWIuLmMwNmUxZmFmMDJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCkBAIC0yMSw2ICsyMSw4IEBACiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgogI2lu Y2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQ b3N0cHJvY2VzcyhPaWQgdmFyaWQpOworCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUo T2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNl c3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWZjYjA2NTk5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTAsMCAr MSwxMTAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBl cm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3Qn Oworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJMRShteXZhcik7CitteXZhcgorLS0tLS0KK3Rlc3Qg CisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBT RUxFQ1QgVkFSSUFCTEUobXl2YXIpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJteXZhciIg ZG9lc24ndCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkcm9wIHZh bCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIFZB UklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTog QkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNU IFZBUklBQkxFKG15dmFyKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAibXl2YXIiIGRvZXNu J3QgZXhpc3QKK3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxl dCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVz dCc7CitzdGVwIHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVz dCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSst LS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6 IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZXxyZW1vdmVkCistLS0tLS0rLS0tLSst LS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCisoMSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1Qg VkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCisKK3N0YXJ0 aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUo bXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsK K3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQor cHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxF IG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Oworc3Rl cCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0tLS0tLQorICAgICAg fCAgICB8dCAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFy KTsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOwor CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZB UklBQkxFIG15dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOwor c3RlcCBzMzogQkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMg dGV4dDsKK3N0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1Ag VkFSSUFCTEUgbXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVw IGludmFsMzogU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2Nv bHVtbj8KKy0tLS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NB UkQgVkFSSUFCTEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJu YW1lIEZST00gcGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IGUzYzY2OWEyOWM3Li44 ZGY5MDFmYzc5YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC0xMTYs MyArMTE2LDQgQEAgdGVzdDogc2VyaWFsaXphYmxlLXBhcmFsbGVsLTIKIHRlc3Q6IHNlcmlhbGl6 YWJsZS1wYXJhbGxlbC0zCiB0ZXN0OiBtYXR2aWV3LXdyaXRlLXNrZXcKIHRlc3Q6IGxvY2stbm93 YWl0Cit0ZXN0OiBzZXNzaW9uLXZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYTM4Yjk3NjFmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCkBAIC0wLDAgKzEsNTAgQEAKKyMgVGVzdCBzZXNz aW9uIHZhcmlhYmxlcyBtZW1vcnkgY2xlYW51cCBmb3Igc2ludmFsCisKK3NldHVwCit7CisgICAg Q1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJP UCBWQVJJQUJMRSBJRiBFWElTVFMgbXl2YXI7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczEJCXsg QkVHSU47IH0KK3N0ZXAgbGV0CXsgTEVUIG15dmFyID0gJ3Rlc3QnOyB9CitzdGVwIHZhbAl7IFNF TEVDVCBWQVJJQUJMRShteXZhcik7IH0KK3N0ZXAgZGJnCXsgU0VMRUNUIHNjaGVtYSwgbmFtZSwg cmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7IH0KK3N0ZXAgc3IxCXsgUk9MTEJB Q0s7IH0KKworc2Vzc2lvbiBzMgorc3RlcCBkcm9wCQl7IERST1AgVkFSSUFCTEUgbXl2YXI7IH0K K3N0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0OyB9CisKK3Nlc3Np b24gczMKK3N0ZXAgczMJCQl7IEJFR0lOOyB9CitzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0 ZXN0JzsgfQorc3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9 CitzdGVwIGxldDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQorc3RlcCBkcm9wNAkJeyBEUk9Q IFZBUklBQkxFIG15dmFyNDsgfQorc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAg RlJPTSBwZ19mb3JlaWduX3RhYmxlOyB9CitzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxF UzsgfQorc3RlcCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1l IEZST00gcGdfdmFyaWFibGU7IH0KKworc2Vzc2lvbiBzNAorc3RlcCBjcmVhdGUzCXsgQ1JFQVRF IFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0OyB9CitzdGVwIGRyb3AzCQl7IERST1AgVkFSSUFCTEUg bXl2YXIzOyB9CisKKyMgQ29uY3VycmVudCBkcm9wIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxk IGxlYWQgdG8gYW4gZXJyb3IKK3Blcm11dGF0aW9uIGxldCB2YWwgZHJvcCB2YWwKKyMgU2FtZSwg YnV0IHdpdGggYW4gZXhwbGljaXQgdHJhbnNhY3Rpb24KK3Blcm11dGF0aW9uIGxldCB2YWwgczEg ZHJvcCB2YWwgc3IxCisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJs ZSBzaG91bGQgbGVhZCB0byBlbXB0eSB2YXJpYWJsZQorcGVybXV0YXRpb24gbGV0IHZhbCBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbAorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24g dmFyaWFibGUgc2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKKyMgV2UgbmVlZCBhIHRyYW5z YWN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHdvbid0IGFjY2VwdCBpbnZhbGlkYXRpb24gd2hl bgorIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVudCBkcm9wCitwZXJt dXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQorIyB0ZXN0IGZv ciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lz dGVyZWQKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJv cDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKaW5kZXggOWM3NTk1ZTlhNDEuLjU5YzJj ZjhiZmE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlc19kZGwub3V0CkBAIC0xNjEsMyArMTYxLDIxNyBAQCBERVRBSUw6ICBkcm9wIGNhc2Nh ZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAKIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMQogRFJPUCBT Q0hFTUEgc3ZhcnRlc3QwMl9kZGwgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMAorQ1JFQVRFIFNDSEVNQSBz dmFydGVzdF9kZGw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZh cmNoYXI7CistLSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9y eSBiZWZvcmUgdGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRo ZSBuZXh0IHRyYW5zYWN0aW9uCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsK K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2No ZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDEKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgIFdI RVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAwCisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQgb2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVz ZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3BwZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNh Y3Rpb24KK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgdmFyY2hhcjsK K0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworQkVHSU47CisgIERST1AgVkFS SUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworICAtLSBzaG91bGQgZmFpbAorICBTRUxFQ1Qg VkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSAic3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworICAgICAgICAgICAgICAgICAgICAgICAg XgorUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k ZGwuc2VzdmFyNjApOyAtLSBIZWxsbworIHNlc3ZhcjYwIAorLS0tLS0tLS0tLQorIEhlbGxvCiso MSByb3cpCisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CisgIERST1AgVkFSSUFCTEUgc3ZhcnRl c3RfZGRsLnNlc3ZhcjYwOworICAtLSBzaG91bGQgYmUgb2sKKyAgQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAg PSAxMDA7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSAxMDAK KyBzZXN2YXI2MCAKKy0tLS0tLS0tLS0KKyAgICAgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsK K1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSBIZWxsbworIHNlc3Zh cjYwIAorLS0tLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRl c3RfZGRsLnNlc3ZhcjYwOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7 IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVz dF9kZGwuc2VzdmFyNjAgPSAxMDA7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2Vz dmFyNjApOworIHNlc3ZhcjYwIAorLS0tLS0tLS0tLQorICAgICAgMTAwCisoMSByb3cpCisKKyAg U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICAgIFdIRVJFIHNj aGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygx IHJvdykKKworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKK0NPTU1JVDsK K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2No ZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxIEFTIGludDsKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjIgQVMgaW50OworTEVUIHN2YXJ0ZXN0 X2RkbC5zZXN2YXI2MSA9IDEwOworTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MiA9IDA7CitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlh YmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYy IAorLS0tLS0tLS0tLQorICAgICAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworIHNlc3ZhcjYxIAorLS0t LS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91 Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVz dF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0tLQorICAgICAgICAwCisoMSBy b3cpCisKKyAgUk9MTEJBQ0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworIHNlc3ZhcjYxIAorLS0tLS0tLS0t LQorICAgICAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0tLS0tLS0tCisgICAgICAgIDAKKygx IHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCistLS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykK KworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYx OworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFi bGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIg CistLS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMjsKK1JP TExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNl c3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCitC RUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2 YXI2MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3Zh cjYyIAorLS0tLS0tLS0tLQorICAgICAgICAwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOwor ICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCist LS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0t LS0tLQorICAgICAgICAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCistLS0tLS0t LS0tCisgICAgICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlv bgorQkVHSU47IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsK K0JFR0lOOyBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitC RUdJTjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBz ZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSwgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyOworRFJPUCBTQ0hF TUEgc3ZhcnRlc3RfZGRsOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZGRsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RkbC5zcWwKaW5kZXggZjg0NDQ2OWVjYjEuLjZiOTYyY2Y4ZTVhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKQEAgLTE0OCwzICsxNDgs MTU0IEBAIEFMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwIFNFVCBTQ0hFTUEg c3ZhcnRlc3QwMV9kZGw7CiAKIERST1AgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsIENBU0NBREU7CiBE Uk9QIFNDSEVNQSBzdmFydGVzdDAyX2RkbCBDQVNDQURFOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0 ZXN0X2RkbDsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyB2YXJj aGFyOworCistLSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9y eSBiZWZvcmUgdGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRo ZSBuZXh0IHRyYW5zYWN0aW9uCisKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8n OworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgIFdIRVJF IHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsg LS0gMAorCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZlZCB3 aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlvbgor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyB2YXJjaGFyOworCitMRVQg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKKworQkVHSU47CisgIERST1AgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworCisgIC0tIHNob3VsZCBmYWlsCisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworCitST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0gSGVsbG8K KworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwu c2VzdmFyNjA7CisKKyAgLS0gc2hvdWxkIGJlIG9rCisgIENSRUFURSBWQVJJQUJMRSBzdmFydGVz dF9kZGwuc2VzdmFyNjAgQVMgaW50OworICBMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gMTAw OworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0gMTAwCisKK1JP TExCQUNLOworCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0gSGVs bG8KKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgIFdI RVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAwCisKK0JFR0lOOworICBDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIGludDsKKworICBMRVQgc3ZhcnRlc3RfZGRs LnNlc3ZhcjYwID0gMTAwOworCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFy NjApOworCisgIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAg ICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMQorCisgIERST1AgVkFSSUFCTEUg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworCitDT01NSVQ7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7 IC0tIDAKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSBBUyBpbnQ7CitD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyIEFTIGludDsKKworTEVUIHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MSA9IDEwOworTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MiA9IDA7CisK K0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNl c3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAg Uk9MTEJBQ0sgVE8gczE7CisKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MSk7CisKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2 YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24g dmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7CisgIFJP TExCQUNLIFRPIHMyOworQ09NTUlUOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmlu ZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7CisgIFJPTExCQUNLIFRPIHMxOworCisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworCisgIFNBVkVQT0lOVCBzMjsKKyAgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcg YnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShz dmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xMQkFDSyBUTyBzMjsKK1JPTExCQUNLOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOwor CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Np b24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7CisK KyAgU0FWRVBPSU5UIHMyOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3Ro ZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYyKTsKKyAgUk9MTEJBQ0sgVE8gczE7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k ZGwuc2VzdmFyNjIpOworQ09NTUlUOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworCistLSByZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0 aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNL OworQkVHSU47IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsK K0JFR0lOOyBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7 CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxLCBzdmFydGVzdF9kZGwuc2Vz dmFyNjI7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RkbDsKLS0gCjIuNDkuMAoK --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20250613-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nj54 RnJvbSA0ZWNiNWU5ODdhOTcwMTk1YzQ3ODdlYTkyMjRkMmE1YjU3N2VkMmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMDg6Mjk6MzcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzE1XSBMRVQgY29tbWFuZCAtIGFzc2lnbiBhIHJlc3VsdCBvZiBleHByZXNzaW9uIHRv IHRoZQogc2Vzc2lvbiB2YXJpYWJsZQoKSW1wbGVtZW50YXRpb25zIG9mIEVYUExBSU4gTEVUIGFu ZCBQUkVQQVJFIExFVCBzdGF0ZW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkCm5vdy4gUG9zdHBvbmVk IHRvIG5leHQgc3RlcCBkdWUgcmVkdWNpbmcgcGF0Y2ggc2l6ZS4KLS0tCiBkb2Mvc3JjL3NnbWwv ZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKysKIGRvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgICA1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysKIGRvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgODYgKysrKysrCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMjQgKysKIHNyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAzNCArKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgICAgICAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKystCiBzcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTUgKwogc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDExICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlc19kbWwub3V0ICAgICAgICB8IDI1OCArKysrKysrKysrKysrKysrKysKIC4uLi9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDE3NyArKysrKysrKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyNyBm aWxlcyBjaGFuZ2VkLCAxMDkzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggYmNiNjI3Mjk3 NzEuLmRmNGVhYzVhZjhkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01MzkzLDEwICs1MzkzLDM5IEBAIEVYUExBSU4gU0VM RUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcy MDA4LTAxLTAxJzsKICAgICBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIsIGFuZCBjYW4gYmUg dXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCiAgICAgaWRlbnRpZmllci4gVGhlIHNwZWNp YWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgcmVtb3ZlcwogICAgIHJp c2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBjb2x1bW4g bmFtZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgcmV0 cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1h bmQ+LgogPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOworPC9wcm9ncmFt bGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBw dWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lk ID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOwog U0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiA8L3Byb2dyYW1saXN0aW5nPgogICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxl IGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRz IHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFuZ2Vz IG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9u IHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAo anVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Np b24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRoZWlyIHZh bHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQg b2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxz ZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggMmY2N2RlM2Uy MWIuLmNjM2JkNWFiNTQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgsNiArMTU4LDcg QEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJl Y3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4K IDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hl bWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dt bCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVO VElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBs b2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAg ICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUu c2dtbAppbmRleCA5NmQyNTg2NDIzZS4uMjIxYTY5OTQ2OWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3ZhcmlhYmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VU IFNDSEVNQSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8 L3JlZnNlY3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s CmluZGV4IDZlOTg4ZjJlNDcyLi40MzAwMGNlMDA0ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCkBAIC0xMjAsOSArMTIwLDExIEBAIENSRUFURSBWQVJJQUJMRSBbIElGIE5P VCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi CiAgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CiAKICAgPHBhcmE+Ci0gICBDcmVhdGUgYW4gZGF0 ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorICAgQ3JlYXRlIGEg c2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPiBvZiBkYXRhIHR5cGUgZGF0 ZToKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQg dmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKTsKIDwvcHJvZ3JhbWxp c3Rpbmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZz ZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwYi4u Njc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiAr MTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUi PgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVy PgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3Np bXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9s ZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwv cmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkg aWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxwcmltYXJ5PkxF VDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNl c3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5MRVQ8L3Jl ZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisg PHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hh bmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRp dj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lu b3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2Ny aXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+ IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbgorICAgdmFy aWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJp YWJsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4g YXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0 eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQg bXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2Yy4uMTNlNGFk YzVkZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50Owog ICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0 ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCmluZGV4IGRiYzA1NDc5NWJiLi43NjgxNjNlMjAwOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTksMTUgKzE5LDIyIEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY2Rl c2MuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAi bm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNs dWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNp bmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2lu Y2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIC8qCkBAIC01MTQsMyArNTIxLDgyIEBAIENyZWF0 ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQp CiAKIAlyZXR1cm4gdmFyaWFibGU7CiB9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBvZiB0 aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwordm9p ZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAqc3Rt dCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVudCAq cXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpxdWVy eSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVuOwor CURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRTdG10 ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5LT5y ZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBkbyB3 ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICovCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdl dFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBmb3Ig TEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKworCS8q IHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkpOwor CisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xlbmd0 aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdy aXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkv KiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3RhdGUt PnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMpOwor CisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0byBl bnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3VzbHkg ZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhlIHBs YW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5nZWQg dGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8gYmUg cGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hDb3Bp ZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hvdENv bW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRwdXQg dG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNjKHBs YW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFwc2hvdCgpLCBJ bnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYsIDApOworCisJ LyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4ZWN1dGlvbiAq LworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVuIHRoZSBwbGFu IHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuICBUbwor CSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2UgdHJ5IHRvIGZl dGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZlbiBhIFF1ZXJ5 Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBsZXRpb24ocWMs IENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCisJLyogYW5k IGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVjdXRvckVuZChx dWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9wQWN0aXZlU25h cHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDIyMzc0MmI5MjBmLi42ODVi YTY2ZmQzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMzUsMTMgKzIzNSwyNCBAQCBz dGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQog CQkvKiBmaWxsIHRoZSBhcnJheSAqLwogCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5w bGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKIAkJewotCQkJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwkJCS8qCisJCQkgKiBQZXJtaXNzaW9uIGNoZWNrIHNob3VsZCBiZSBleGVjdXRlZCBvbiBh bGwgZXhwbGljaXRseSB1c2VkCisJCQkgKiB2YXJpYWJsZXMgaW4gdGhlIHF1ZXJ5LiBGb3IgaW1w bGljaXRseSB1c2VkIHZhcmlhYmxlIChsaWtlIGJhc2UKKwkJCSAqIG5vZGUgb2YgYXNzaWdubWVu dCBpbmRpcmVjdCkgd2UgY2Fubm90IGRvIHBlcm1pc3Npb24gY2hlY2ssCisJCQkgKiBiZWNhdXNl IHdlIG5lZWQgcmVhZCB0aGUgdmFsdWUgKGFuZCB1c2VyIGNhbiBoYXZlIG9ubHkgVVBEQVRFCisJ CQkgKiB2YXJpYWJsZSkuIEluIHRoaXMgY2FzZSB0aGUgcGVybWlzc2lvbiBjaGVjayBpcyBleGVj dXRlZCBpbgorCQkJICogd3JpdGUgdGltZS4KKwkJCSAqLworCQkJaWYgKHZhcmlkICE9IHF1ZXJ5 RGVzYy0+cGxhbm5lZHN0bXQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZCkKKwkJCXsKKwkJCQlB Y2xSZXN1bHQJYWNscmVzdWx0OwogCi0JCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFy aWFibGVSZWxhdGlvbklkLCB2YXJpZCwKLQkJCQkJCQkJCQlHZXRVc2VySWQoKSwgQUNMX1NFTEVD VCk7Ci0JCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQkJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAotCQkJCQkJCSAgIGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodmFyaWQpKTsKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp OworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CiAKIAkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXNbaV0udmFsdWUgPQogCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKaW5kZXggY2Q2MDljNmU0NzkuLjU3NTM2NWVlZmNkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YwpAQCAtNDM3OCw2ICs0Mzc4LDE2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwo Tm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10ICopIG5vZGU7 CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJnZXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlp ZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7 CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExBc3NpZ25TdG10ICpzdG10ID0g KFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IDcxNGY1OGJkM2Q3Li43MTE5Y2VlY2FmYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMzQ0LDYgKzM0NCwyMCBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJz ZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iLT5w YXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVMTDsKIAlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gTklM OwogCisJLyoKKwkgKiBUaGUgKHNlc3Npb24pIHJlc3VsdCB2YXJpYWJsZSBzaG91bGQgYmUgc3Rv cmVkIHRvIGdsb2JhbCwgYmVjYXVzZSBpdCBpcworCSAqIG5vdCBzZXQgaW4gc3VicXVlcnkuICBX aGVuIHRoaXMgdmFyaWFibGUgaXMgdXNlZCBvdGhlciB0aGFuIGluIGJhc2UKKwkgKiBub2RlIG9m IGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24sIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGFjY2VzcyByaWdo dHMgKGFuZAorCSAqIHRoZW4gd2UgbmVlZCB0byBkZXRlY3QgdGhpcyBzaXR1YXRpb24pLiBUaGUg dmFyaWFibGUgdXNlZCBsaWtlIGJhc2UKKwkgKiBub2RlIGNhbm5vdCBiZSBkaWZmZXJlbnQgdGhh biB0YXJnZXQgKHJlc3VsdCkgdmFyaWFibGUuIEJlY2F1c2Ugd2Uga25vdworCSAqIHRoZSByZXN1 bHQgdmFyaWFibGUgYmVmb3JlIHBsYW5uZXIgaW52b2NhdGlvbiwgd2UgY2FuIHNpbXBseSBzZWFy Y2ggb2YKKwkgKiB1c2FnZSBqdXN0IHRoaXMgdmFyaWFibGUsIGFuZCB3ZSBkb24ndCBuZWVkIHRv IHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZgorCSAqIHBsYW5uaW5nIHdoZW4gd2Uga25vdyBiYXNl bm9kZVNlc3Npb25WYXJpZC4KKwkgKi8KKwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9IHBhcnNlLT5y ZXN1bHRWYXJpYWJsZTsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IEludmFsaWRPaWQ7 CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSBmYWxzZTsKKwogCS8qCiAJ ICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3Ig dGhpcyBxdWVyeS4gV2UKIAkgKiBjYW4ndCBkbyB0aGlzIGluIGEgc3RhbmRhbG9uZSBiYWNrZW5k LCBvciBpZiB0aGUgY29tbWFuZCB3aWxsIHRyeSB0bwpAQCAtNTgzLDYgKzU5NywxNiBAQCBzdGFu ZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQg Y3Vyc29yT3B0aW9ucywKIAogCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Np b25WYXJpYWJsZXM7CiAKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFuZCBv bmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25lbW50CisJICogaW5kaXJlY3Rpb24g c2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbiBjaGVjay4KKwkgKi8KKwlpZiAoT2lk SXNWYWxpZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9iLT5iYXNlbm9k ZVNlc3Npb25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkID0gZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1bHQtPmV4Y2xT ZWxlY3RQZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRp b24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0 bXRfbGVuOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZz LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNmM4NmVlMWFk NjQuLmQ0N2E3MjZmMmRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9z ZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0y MjI0LDYgKzIyMjQsMjcgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFt ICpwKQogCQkJcC0+cGFyYW1pZCA9IG47CiAJCX0KIAorCQkvKgorCQkgKiBXZSBkbyBTRUxFQ1Qg cGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkgdGhlIHF1ZXJ5CisJCSAq IGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkgYXMgYmFzZSBub2RlIG9m IGFzc2lnbm1lbnQKKwkJICogaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJsZSBpZCBhc3NpZ25lZCB0 byB0aGlzIHBhcmFtIHNob3VsZCBiZSBzYW1lCisJCSAqIGxpa2UgcmVzdWx0VmFyaWFibGUgaWQs IGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZSB1c2VkIG9ubHkgb25jZSBpbgorCQkgKiBxdWVyeS4g V2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkgb3RoZXIgcGFyYW0sIHdlCisJ CSAqIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBmb3IgdGhpcyB2YXJpYWJs ZSB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9kZSkKKwkJeworCQkJQXNzZXJ0KCFP aWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSk7CisJCQlBc3NlcnQo cm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUgPT0gcC0+cGFyYW12YXJpZCk7CisKKwkJCXJvb3Qt Pmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gcC0+cGFyYW12YXJpZDsKKwkJfQorCQllbHNl CisJCXsKKwkJCWlmIChwLT5wYXJhbXZhcmlkID09IHJvb3QtPmdsb2ItPnJlc3VsdFZhcmlhYmxl KQorCQkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrID0gdHJ1ZTsK KwkJfQorCiAJCXJldHVybiAoTm9kZSAqKSBwOwogCX0KIApAQCAtMzcwOSw3ICszNzMwLDcgQEAg cmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQp CiAKIC8qCiAgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUg dmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQotICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBleHBy ZXNzaW9uIGxpc3QuCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Npb24gbGlzdCwg b3IgYXMgdGhlIHRhcmdldCBvZiBhIExFVCBzdGF0ZW1lbnQuCiAgKi8KIHN0YXRpYyB2b2lkCiBy ZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFy aWQpCkBAIC0zODExLDkgKzM4MzIsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fs a2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJCQkvKgotCQkJ ICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFz IEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1 ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRl bnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5 IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkgKiBvciBMRVQp IHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IKKwkJCSAq IHRob3NlLCB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29u dGFpbmVkCisJCQkgKiBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29udGFpbnNR dWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBAIC0zODM2 LDYgKzM4NTgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5v ZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0LT5nbG9i LT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3JkIGRlcGVuZGVu Y3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJCWlmIChPaWRJ c1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5kIHJl Y3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVlcnlf dHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwKIAkJ CQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggOTViYjA2MjBmMzkuLjky NzE1YmY4YjFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0 aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCiAKIApAQCAtODMsNiArODQsOCBAQCBzdGF0aWMgUXVlcnkgKnRyYW5zZm9y bUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQ3JlYXRl VGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxsU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRpYyBRdWVyeSAq dHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAgTGV0U3RtdCAq c3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMsIGJvb2wgcHVz aGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC0zMzAsNiArMzMz LDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkK IAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJCQljYXNlIFRf TWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3RfcmF3X2V4cHJl c3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CkBAIC00MDksNiArNDEzLDExIEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VUcmVlKTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtTGV0U3Rt dChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJCQlicmVhazsK KwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNDYwLDYgKzQ2OSw3IEBAIHN0bXRfcmVxdWlyZXNf cGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCQljYXNlIFRfU2VsZWN0U3RtdDoK IAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9M ZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0zMzYyLDYgKzMzNzIs MjMzIEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0 bXQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQorICoJ ICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJhbnNm b3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVlcnkJ ICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBOSUw7 CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxpc3RD ZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVyeTsK KwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3Vu aXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7 CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRpcmVj dGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBvdXRl ciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3BhY2Ug PT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJLyog bG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQgPSBJ ZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisJ aWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9B TUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExFVCBj b21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJaWYg KCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8qCisJ ICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0aW9u IGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBwb2lu dGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25fc3Rh cnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxpc3Rf bGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rpb25f aGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7CisK KwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwg JnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5cGlk KTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjYW5u b3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBi ZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWF0dHJu YW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJ CQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJ TkRfVVBEQVRFX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lvbiBv ZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0gZmFs c2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVyeSk7 CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLworCUFz c2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5cGUg PT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlzdCBm b3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZQorCSAqIG5vbi1yZXNqdW5rIGNvbHVtbnMg ZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaF9ub2Rl KFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJaWYgKHRs ZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHByTGlz dCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1bHQg Ki8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJh c3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNz aWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxpc3Rf bGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAorCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2Rl ICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2gobGMs IGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJ CUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5vdyB3 ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQgPSBl eHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJewor CQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisJCQlQYXJh bQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5cGUo dHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJ CQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9W QVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJhbS0+cGFyYW10 eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJCS8qCisJ CQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lhbCBt YXJrLAorCQkJICogYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVuIHdlIGRvIFNF TEVDVCBhY2Nlc3MgY2hlY2suCisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vub2RlID0gdHJ1 ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25tZW50 SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJCQkJ CQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJCQkJ CQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAgSW52 YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBpbmRp cmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJCQkg ICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7CisJ CX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9fdGFy Z2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJICBl eHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJDSU9O X0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJCQkJ ICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJ CQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCBidXQgZXhwcmVz c2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJCWZv cm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0 byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhwckxp c3RDb2VyID0gbGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJLyog Z2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBl eHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21tYW5k VHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJeworCQlF eHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRsZTsK KworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJCQkJ CSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJcXVl cnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0KKwor CS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1ZXJ5 LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9t RXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNSRnMg PSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICovCisJ cXVlcnktPmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Npb24g dmFyaWFibGUgSUQuIEl0IGlzIHVzZWQgbGF0ZXIgZm9yIGFjcXVpcmluZyBhbgorCSAqIEFjY2Vz c1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUsIHNldHRpbmcgcGxhbiBkZXBlbmRlbmN5IGFu ZCBmaW5hbGx5CisJICogZm9yIGNyZWF0aW5nIFZhcmlhYmxlRGVzdFJlY2VpdmVyLgorCSAqLwor CXF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxhdGlv bnMocHN0YXRlLCBxdWVyeSk7CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVjdXRlZCBhcyB1 dGlsaXR5IGNvbW1hbmQgYnkgbmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNzaWduZWQgcXVl cnlJZCBpcyByZXF1aXJlZCBpbiB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVlcnlJZEVuYWJs ZWQoKSkKKwkJSnVtYmxlUXVlcnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBx dWVyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8K KwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9V VElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJu IHJlc3VsdDsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Yg YSBMb2NrQ2xhdXNlU3RyZW5ndGggdmFsdWUuCiAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGFwcGxp ZWQgdG8gdmFsaWQgdmFsdWVzIChub3QgTENTX05PTkUpLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNmQ3Yzhj NTZjOTAuLmY0YWM1MTg2MzQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1hcHBp bmdTdG10IEV4cGxhaW5TdG10IEZldGNoU3RtdAogCQlHcmFudFN0bXQgR3JhbnRSb2xlU3RtdCBJ bXBvcnRGb3JlaWduU2NoZW1hU3RtdCBJbmRleFN0bXQgSW5zZXJ0U3RtdAotCQlMaXN0ZW5TdG10 IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQ cmVwYXJhYmxlU3RtdAorCQlMZXRTdG10IExpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVy Z2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CiAJCUNyZWF0 ZUZ1bmN0aW9uU3RtdCBBbHRlckZ1bmN0aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1vdmVBZ2dyU3Rt dAogCQlSZW1vdmVGdW5jU3RtdCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVTdG10IFJldHVyblN0bXQg UmV2b2tlU3RtdCBSZXZva2VSb2xlU3RtdAogCQlSdWxlQWN0aW9uU3RtdCBSdWxlQWN0aW9uU3Rt dE9yRW1wdHkgUnVsZVN0bXQKQEAgLTc0MSw3ICs3NDEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9QIExB VEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBM SVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVUIExFVkVM IExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAg TE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBN QVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRApAQCAtMTA4OCw2 ICsxMDg4LDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQKIAkJCXwgSW5k ZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJfCBMaXN0ZW5TdG10CiAJ CQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3RtdApAQCAtMTI4NjIsNiArMTI4NjMs MzggQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAkJCA9IDA7IH0KIAkJCXwgV0lUSE9V VCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoK KyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAqCisgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCitMZXRTdG10OglMRVQgQ29sSWQgb3B0X2luZGlyZWN0aW9uICc9JyBhX2V4cHIKKwkJCQl7 CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShMZXRTdG10KTsKKwkJCQkJU2VsZWN0U3Rt dCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJbi0+dGFyZ2V0ID0gbGNv bnMobWFrZVN0cmluZygkMiksCisJCQkJCQkJCQkgIGNoZWNrX2luZGlyZWN0aW9uKCQzLCB5eXNj YW5uZXIpKTsKKworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJCQkJcmVz ID0gbWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0IGxpc3QgZm9y IGltcGxpY2l0IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJlcy0+aW5k aXJlY3Rpb24gPSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDU7CisJCQkJCXJlcy0+ bG9jYXRpb24gPSBANTsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21ha2UxKHJl cyk7CisJCQkJCW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxvY2F0aW9u ID0gQDI7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTc5MzcsNiArMTc5NzAsNyBAQCB1bnJlc2Vy dmVkX2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8IExFQUtQUk9PRgor CQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQKQEAgLTE4NTUxLDYg KzE4NTg1LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJPT0YKIAkJCXwgTEVB U1QKIAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElLRQogCQkJfCBMSVNU RU4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKaW5kZXggNzgyYjAyMmRhOWMuLjIwZTRkNDM1NzZiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYwpAQCAtMjM1LDYgKzIzNSw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5 KE5vZGUgKnBhcnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0bXQ6CiAJCWNhc2UgVF9Eb1N0bXQ6 CisJCWNhc2UgVF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJCQkJICogQ29tbWFuZHMgaW5zaWRl IHRoZSBETyBibG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVyZSBtaWdodApAQCAtMTA2Nyw2ICsx MDY4LDExIEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJ CQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCUV4ZWN1dGVMZXRTdG10KHBz dGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBwYXJhbXMsCisJCQkJCQkgICBxdWVyeUVudiwg cWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIEFsbCBvdGhlciBzdGF0ZW1lbnQg dHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8KIAkJCVByb2Nlc3NVdGlsaXR5U2xv dyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywKQEAgLTIyMDYsNiArMjIxMiwxMCBAQCBVdGls aXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRyZWUpCiAJCQkJcmV0dXJuIFV0aWxpdHlDb250 YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwogCQkJcmV0dXJuIHFyeTsKIAorCQljYXNlIFRf TGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1ZXJ5LCAoKExldFN0bXQgKikgcGFyc2V0cmVl KS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7 CiAJfQpAQCAtMjQwNCw2ICsyNDE0LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0 cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRT dG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJCWJyZWFrOworCiAJCQkvKiB1dGlsaXR5IHN0 YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcgb3IgY29va2VkICovCiAJCWNhc2UgVF9UcmFu c2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjg5LDYgKzMzMDMsNyBAQCBHZXRDb21tYW5kTG9nTGV2 ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoK KwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBMT0dTVE1UX0FMTDsKIAkJCWJyZWFrOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IGNhOTJiZTlhNmFlLi41OTQ2OWM1MmFi ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTIwMzAsNiArMjAzMCwxNyBA QCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAJCXF1 ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwKIAkJ CQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisKKwkvKiBwcm9jZXNzIHNlc3Np b24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJs ZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJl bGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJICAgMCwgQWNjZXNz U2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxh dGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCQkgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNzhmYzhlZjZk NDUuLmM2ODlhNDU5MThjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjI4LDggKzEyMjgs OCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3FsX2NvbW1hbmRzW10gPSB7CiAJIkFCT1JU IiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIsICJDSEVDS1BPSU5UIiwgIkNM T1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwgIkNSRUFURSIs ICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJERUxFVEUgRlJPTSIsICJESVNDQVJEIiwgIkRP IiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JIkZFVENIIiwgIkdSQU5U IiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMSVNURU4iLCAiTE9B RCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwK KwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRP IiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLCAiTUVSR0UgSU5UTyIsICJNT1ZF IiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVBU1NJR04iLCAiUkVGUkVTSCBNQVRFUklBTEla RUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCSJSRVNFVCIsICJSRVZPS0UiLCAiUk9M TEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNUIiwgIlNFVCIs ICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ3MDIsNiArNDcwMiwxNCBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYg IVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7 CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCS8qIENvbXBsZXRl IExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIs IE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiPSIpOworCiAvKiBMT0NLICovCiAJLyogQ29t cGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKaW5kZXggOWY1YzZlMzBmYmQuLjJlYmU4NDc3Nzg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xNywxMSArMTcsMTYgQEAKIAogI2luY2x1ZGUgImNhdGFs b2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5j bHVkZSAibm9kZXMvcGFyYW1zLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorI2lu Y2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIAogZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFy U3RtdCAqc3RtdCk7CiAKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkJCQkgICBRdWVy eUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CisKICNlbmRpZgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDQ2NTQ1NzRjMDZjLi4xZGQ3ZjNlYTAwZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQ3LDYgKzE0Nyw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5 CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJ CQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmlu Z1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMjE2OCw2ICsyMTcx LDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3RtdAogCVdpdGhDbGF1c2UgKndpdGhDbGF1c2U7 CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K K3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRh cmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3Vy Y2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0 aG5vZGVzLmgKaW5kZXggZWM1Njg1ZGY3NzkuLjRiMGM2MjU2MTlmIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaApAQCAtMTgyLDYgKzE4MiwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAK IAkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAlMaXN0CSAgICpzZXNzaW9u VmFyaWFibGVzOworCisJLyogT2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIHRhcmdl dCBvZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCisJLyogb2lkIG9m IHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdubWVudCBpbmRp cmVjdGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vzc2lvblZhcmlkOworCisJLyogdHJ1ZSwgaWYg d2UgZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb24gYmFzZW5vZGVTZXNzaW9uVmFyaWQgKi8K Kwlib29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjazsKIH0gUGxhbm5lckdsb2JhbDsK IAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBs YW4gbm9kZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAzNjIyNjk5Y2ZjOS4uMTA3NjFjZjkx MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMzQsNiArMTM0LDEzIEBAIHR5cGVkZWYgc3Ry dWN0IFBsYW5uZWRTdG10CiAJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCiAJ TGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIAorCS8qCisJICogVGhlIG9pZCBvZiBzZXNzaW9u IHZhcmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suIFRoaXMKKwkgKiBzZXNz aW9uIHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rp b24gKGFuZCBpdAorCSAqIGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJZXhjbFNl bGVjdFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBz dHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBp ZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK aW5kZXggZGM1OTI2MDJjNjUuLjBkMTIzM2Y1OWU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAt NDAyLDYgKzQwMiwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCU9pZAkJCXBhcmFtY29sbGlk IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBPSUQgb2YgdXNlZCBzZXNz aW9uIHZhcmlhYmxlIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtdmFyaWQg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCisJLyoKKwkgKiB0cnVlIGlmIHBh cmFtIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24gKHdoZW4K KwkgKiB0YXJnZXQgb2YgTEVUIHN0YXRlbWVudCBpcyBhbiBhcnJheSBmaWVsZCBvciBhbiByZWNv cmQgZmllbGQpLiBGb3IgdGhpcworCSAqIHBhcmFtIHdlIGRvIG5vdCBjaGVjayBTRUxFQ1QgYWNj ZXNzIHJpZ2h0LCBiZWNhdXNlIHRoaXMgcGFyYW0gaXMgdXNlZAorCSAqIGp1c3QgZm9yIGV4ZWN1 dGlvbiBvZiBhbiBtb2RpZnkgb3BlcmF0aW9uLgorCSAqLworCWJvb2wJCXBhcmFtYmFzZW5vZGU7 CisKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxv Y2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCAwZWEwMjY1ZGU3Yy4uOGMwYWZm YmExM2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1Nyw2ICsyNTcsNyBAQCBQR19LRVlXT1JEKCJs ZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdP UkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg Yi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBlYTg2OTU0ZGRlZC4uMjIwODJj MzAwMDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFH KENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVN QSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJU IiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAppbmRleCAzZTIxMDU5YWNjMi4uMGZkZjBmZGM2OGEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5vdXQKQEAgLTE4OSwzICsxODksMjYxIEBAIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgc3Zh cnRlc3RfZG1sLnRlc3R0YWIKIERST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3Jv bGU7CiBEUk9QIFZBUklBQkxFIHNlc3ZhcjQwOwogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CitD UkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsKKy0tIExFVCBzdG10IGlzIG5vdCBh bGxvd2VkIGluc2lkZSBDVEUKK1dJVEggeCBBUyAoTEVUIHNlc3ZhcjQzID0gMy4xNCkgU0VMRUNU ICogRlJPTSB4OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAx OiBXSVRIIHggQVMgKExFVCBzZXN2YXI0MyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKyAgICAg ICAgICAgICAgICAgICBeCistLSBMRVQgc3RtdCByZXF1aXJlcyByZXN1bHQgd2l0aCBleGFjdGx5 IG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDEpOworLS0gc2hvdWxk IGZhaWwKK0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDIpOworRVJST1I6ICBleHBy ZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93CitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0 ZV9zZXJpZXMoMSwwKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitDUkVB VEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2Vz dmFyNDQgQVMgdmFyY2hhcjsKK0NSRUFURSBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlw ZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1IEFTIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZTsKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDAxKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMg JCQKK0xFVCBzZXN2YXI0MyA9ICQxOworJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDIoKQorUkVUVVJOUyBudW1lcmljIEFTICQkCitT RUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMpOworJCQgTEFOR1VBR0Ugc3FsOworU0VMRUNUIHN2YXJ0 ZXN0X2RtbC5meDAxKDMuMTQpOworIGZ4MDEgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNU IHN2YXJ0ZXN0X2RtbC5meDAyKCksIFZBUklBQkxFKHNlc3ZhcjQzKTsKKyBmeDAyIHwgc2VzdmFy NDMgCistLS0tLS0rLS0tLS0tLS0tLQorIDMuMTQgfCAgICAgMy4xNAorKDEgcm93KQorCitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRV Uk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBz OworICBSRVRVUk4gVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwMygnSGVsbG8nKTsKKyBmeDAz ICAKKy0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9kbWwuZngwNChzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JF R0lOCisgIExFVCBzZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0NCk7CitF TkQKKyQkIExBTkdVQUdFIHBscGdzcWwKK1NFVCBTRUFSQ0hfUEFUSCBUTyAnc3ZhcnRlc3RfZG1s JzsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNCgnSGVsbG8nKTsKKyBmeDA0ICAKKy0tLS0tLS0K KyBIZWxsbworKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9k bWwuZngwNShhIGludCwgYiBpbnQsIGMgaW50KQorUkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9z aXRlX3R5cGUgQVMgJCQKK0JFR0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1co YSwgYiwgYyk7CisgIFJFVFVSTiBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCByb3dfdG9fanNvbihzdmFydGVzdF9kbWwu ZngwNSgxMCwgMjAsIDMwKSk7CisgICAgICByb3dfdG9fanNvbiAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHsiYSI6MTAsImIiOjIwLCJjIjozMH0KKygxIHJvdykKKworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CisgIHNlc3ZhcjQ1ICAKKy0tLS0tLS0t LS0tLQorICgxMCwyMCwzMCkKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NSkuKjsKKyBhICB8IGIgIHwgYyAgCistLS0tKy0tLS0rLS0tLQorIDEwIHwgMjAg fCAzMAorKDEgcm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEp OworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k bWwuc2VzdmFyNDUpLmE7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVFlQRSBz dmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQUREIEFUVFJJQlVURSBkIGludDsKKy0tIGNvbXBv c2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3RpbGwgcmVhZGFibGUKK1NFTEVDVCByb3dfdG9fanNvbihW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKyAgICAgICAgICAgcm93X3RvX2pzb24g ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMCwi YiI6MjAsImMiOjMwLCJkIjpudWxsfQorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ1ID0gUk9XKDEwMCwgMjAwLCAzMDAsIE5VTEwpOworU0VMRUNUIHJvd190b19qc29uKFZBUklB QkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworICAgICAgICAgICAgcm93X3RvX2pzb24gICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEw MCwiYiI6MjAwLCJjIjozMDAsImQiOm51bGx9CisoMSByb3cpCisKKy0tIHVzZSB2YXJpYWJsZXMg aW5zaWRlIHZpZXcKK0NSRUFURSBWSUVXIHN2YXJ0ZXN0X2RtbC52aWV3MDEgQVMgU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuKjsKK1NFTEVDVCAqIEZST00gc3ZhcnRlc3Rf ZG1sLnZpZXcwMTsKKyAgYSAgfCAgYiAgfCAgYyAgfCBkIAorLS0tLS0rLS0tLS0rLS0tLS0rLS0t CisgMTAwIHwgMjAwIHwgMzAwIHwgIAorKDEgcm93KQorCistLSBzdGFydCBuZXcgY29ubmVjdGlv bgorXGMKK1NFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKyBhIHwgYiB8IGMgfCBk IAorLS0tKy0tLSstLS0rLS0tCisgICB8ICAgfCAgIHwgIAorKDEgcm93KQorCitMRVQgc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDUsIDYsIDcsIDgpOworU0VMRUNUICogRlJPTSBzdmFydGVz dF9kbWwudmlldzAxOworIGEgfCBiIHwgYyB8IGQgCistLS0rLS0tKy0tLSstLS0KKyA1IHwgNiB8 IDcgfCA4CisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsIChkZXBlbmRlbmN5KQorRFJPUCBWQVJJ QUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDU7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24g dmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBl bmQgb24gaXQKK0RFVEFJTDogIHZpZXcgc3ZhcnRlc3RfZG1sLnZpZXcwMSBkZXBlbmRzIG9uIHNl c3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1CitISU5UOiAgVXNlIERST1AgLi4u IENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWSUVXIHN2 YXJ0ZXN0X2RtbC52aWV3MDE7CistLSB0ZXN0IG9mIGFjY2VzcyB2YXJpYWJsZXMgZnJvbSBnZW5l cmljIHBsYW5zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNigp CitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0 Myk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CitMRVQgc2VzdmFyNDMgPSA2LjI4OworU0VMRUNUIHN2YXJ0ZXN0 X2RtbC5meDA2KCk7CisgZngwNiAKKy0tLS0tLQorIDYuMjgKKygxIHJvdykKKworTEVUIHNlc3Zh cjQzID0gVkFSSUFCTEUoc2VzdmFyNDMpICogMjsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigp OworIGZ4MDYgIAorLS0tLS0tLQorIDEyLjU2CisoMSByb3cpCisKKy0tIHBsYW4gY2FjaGUgaW52 YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgc2VzdmFyNDM7CistLSBzaG91bGQgZmFpbAor U0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNl c3ZhcjQzIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IFZBUklBQkxFKHNlc3ZhcjQzKQorICAgICAg ICAgICAgICAgICBeCitRVUVSWTogIFZBUklBQkxFKHNlc3ZhcjQzKQorQ09OVEVYVDogIFBML3Bn U1FMIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDA2KCkgbGluZSAzIGF0IFJFVFVSTgorQ1JFQVRF IFZBUklBQkxFIHNlc3ZhcjQzIEFTIG51bWVyaWM7CitMRVQgc2VzdmFyNDMgPSAyLjcyOworU0VM RUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAKKy0tLS0tLQorIDIuNzIKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBzZXN2YXI0MzsKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmlu dF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0sodmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NiBBUyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOwor LS0gc2hvdWxkIGZhaWwKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYgPSBOVUxMOworRVJST1I6 ICB2YWx1ZSBmb3IgZG9tYWluIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGwgdmlvbGF0ZXMgY2hl Y2sgY29uc3RyYWludCAiaW50X25vdF9udWxsX2NoZWNrIgorLS0gc2hvdWxkIGJlIG9rCitMRVQg c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2ID0gMTAwOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9 IFJPVygxLDIsMyw0KTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSA9IDEwMDsKK1NFTEVD VCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKyAgICAgICAg IHJvd190b19qc29uICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsi YSI6MTAwLCJiIjoyLCJjIjozLCJkIjo0fQorKDEgcm93KQorCitDUkVBVEUgUk9MRSByZWdyZXNz X3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgc3Zh cnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5U IFVQREFURSBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgVE8gcmVncmVzc19zdmFy dGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9k bWxfd3JpdGVfb25seV9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDUpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSBzZXN2YXI0NQorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1LmIgPSAyMDA7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VMRUNUIHJvd190b19qc29u KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworICAgICAgICAgIHJvd190b19qc29u ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJi IjoyMDAsImMiOjMsImQiOjR9CisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9k bWwuc2VzdmFyNDcgQVMgaW50W107CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3ID0gQVJSQVlb MSwyLDNdOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0Nyk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQ3CistLSBzaG91bGQgYmUgb2sKK0xFVCBz dmFydGVzdF9kbWwuc2VzdmFyNDdbMV0gPSAyMDA7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0Nyk7Cisgc2VzdmFyNDcgIAorLS0tLS0t LS0tLS0KKyB7MjAwLDIsM30KKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0OCBBUyBpbnQ0bXVsdGlyYW5nZVtdOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 OCA9IE5VTEw7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0gJ3sie1syLDgpLFsxMSwxNCl9 Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OFsyXSA9ICd7 WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDgp OworICAgICAgICAgICAgICAgIHNlc3ZhcjQ4ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgp LFsxMiwxMDApfSJ9CisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURF OworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxMyBvdGhlciBvYmplY3RzCitERVRBSUw6ICBk cm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ0Citk cm9wIGNhc2NhZGVzIHRvIHR5cGUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlCitkcm9wIGNh c2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1Citkcm9wIGNh c2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDAxKG51bWVyaWMpCitkcm9wIGNhc2Nh ZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDAyKCkKK2Ryb3AgY2FzY2FkZXMgdG8gZnVu Y3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDMoY2hhcmFjdGVyIHZhcnlpbmcpCitkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDA0KGNoYXJhY3RlciB2YXJ5aW5nKQorZHJvcCBj YXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwNShpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcikKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDYoKQorZHJv cCBjYXNjYWRlcyB0byB0eXBlIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGwKK2Ryb3AgY2FzY2Fk ZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDYKK2Ryb3AgY2FzY2Fk ZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDcKK2Ryb3AgY2FzY2Fk ZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDgKK0RST1AgUk9MRSBy ZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAppbmRleCBiMjg3MGRkZTllOS4uMTI1MGU3 ZWYwNjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1s LnNxbApAQCAtMTU5LDMgKzE1OSwxODAgQEAgRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1s X3JlYWRfcm9sZTsKIERST1AgVkFSSUFCTEUgc2VzdmFyNDA7CiAKIERST1AgVEFCTEUgc3ZhcnRl c3RfZG1sOworCitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsKKworLS0gTEVU IHN0bXQgaXMgbm90IGFsbG93ZWQgaW5zaWRlIENURQorV0lUSCB4IEFTIChMRVQgc2VzdmFyNDMg PSAzLjE0KSBTRUxFQ1QgKiBGUk9NIHg7CisKKy0tIExFVCBzdG10IHJlcXVpcmVzIHJlc3VsdCB3 aXRoIGV4YWN0bHkgb25lIHJvdworTEVUIHNlc3ZhcjQzID0gZ2VuZXJhdGVfc2VyaWVzKDEsMSk7 CisKKy0tIHNob3VsZCBmYWlsCitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwyKTsK K0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDApOworCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDQgQVMgdmFy Y2hhcjsKK0NSRUFURSBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAoYSBpbnQs IGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IEFT IHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gc3ZhcnRlc3RfZG1sLmZ4MDEobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJAorTEVUIHNl c3ZhcjQzID0gJDE7CiskJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHN2YXJ0ZXN0X2RtbC5meDAyKCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJAorU0VMRUNUIFZB UklBQkxFKHNlc3ZhcjQzKTsKKyQkIExBTkdVQUdFIHNxbDsKKworU0VMRUNUIHN2YXJ0ZXN0X2Rt bC5meDAxKDMuMTQpOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAyKCksIFZBUklBQkxFKHNlc3Zh cjQzKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDMocyB2 YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkCitCRUdJTgorICBMRVQgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ0ID0gczsKKyAgUkVUVVJOIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCk7 CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwMygn SGVsbG8nKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDQo cyB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkCitCRUdJTgorICBMRVQgc2VzdmFyNDQg PSBzOworICBSRVRVUk4gVkFSSUFCTEUoc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBn c3FsCitTRVQgU0VBUkNIX1BBVEggVE8gJ3N2YXJ0ZXN0X2RtbCc7CisKK1NFTEVDVCBzdmFydGVz dF9kbWwuZngwNCgnSGVsbG8nKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRl c3RfZG1sLmZ4MDUoYSBpbnQsIGIgaW50LCBjIGludCkKK1JFVFVSTlMgc3ZhcnRlc3RfZG1sLmNv bXBvc2l0ZV90eXBlIEFTICQkCitCRUdJTgorICBMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0g Uk9XKGEsIGIsIGMpOworICBSRVRVUk4gVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KTsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCByb3dfdG9fanNvbihzdmFydGVz dF9kbWwuZngwNSgxMCwgMjAsIDMwKSk7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwu c2VzdmFyNDUpOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuKjsKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSk7CitTRUxFQ1QgVkFSSUFCTEUo c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS5hOworCitBTFRFUiBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21w b3NpdGVfdHlwZSBBREQgQVRUUklCVVRFIGQgaW50OworCistLSBjb21wb3NpdGUgdmFsdWUgc2hv dWxkIGJlIHN0aWxsIHJlYWRhYmxlCitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ1KSk7CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coMTAw LCAyMDAsIDMwMCwgTlVMTCk7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ1KSk7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXcKK0NSRUFURSBW SUVXIHN2YXJ0ZXN0X2RtbC52aWV3MDEgQVMgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSkuKjsKK1NFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworLS0gc3Rh cnQgbmV3IGNvbm5lY3Rpb24KK1xjCitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7 CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coNSwgNiwgNywgOCk7CisKK1NFTEVD VCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworLS0gc2hvdWxkIGZhaWwgKGRlcGVuZGVu Y3kpCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NTsKKworRFJPUCBWSUVXIHN2 YXJ0ZXN0X2RtbC52aWV3MDE7CisKKy0tIHRlc3Qgb2YgYWNjZXNzIHZhcmlhYmxlcyBmcm9tIGdl bmVyaWMgcGxhbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA2 KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIFZBUklBQkxFKHNlc3Zh cjQzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgc2VzdmFyNDMgPSA2LjI4OworCitTRUxFQ1Qg c3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKworTEVUIHNlc3ZhcjQzID0gVkFSSUFCTEUoc2VzdmFyNDMp ICogMjsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKKy0tIHBsYW4gY2FjaGUgaW52 YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgc2VzdmFyNDM7CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKworQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQz IEFTIG51bWVyaWM7CisKK0xFVCBzZXN2YXI0MyA9IDIuNzI7CisKK1NFTEVDVCBzdmFydGVzdF9k bWwuZngwNigpOworCitEUk9QIFZBUklBQkxFIHNlc3ZhcjQzOworCitDUkVBVEUgRE9NQUlOIHN2 YXJ0ZXN0X2RtbC5pbnRfbm90X251bGwgQVMgaW50IENIRUNLKHZhbHVlIElTIE5PVCBOVUxMKTsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDYgQVMgc3ZhcnRlc3RfZG1sLmlu dF9ub3RfbnVsbDsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYg PSBOVUxMOworLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2ID0gMTAw OworCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEsMiwzLDQpOworTEVUIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NS5hID0gMTAwOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworCitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2Rt bF93cml0ZV9vbmx5X3JvbGU7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgc3ZhcnRlc3RfZG1sIFRP IHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5UIFVQREFURSBPTiBW QVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3Jp dGVfb25seV9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9v bmx5X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1KTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1 LmIgPSAyMDA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCByb3dfdG9fanNvbihW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NyBBUyBpbnRbXTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDcgPSBB UlJBWVsxLDIsM107CisKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2Vz dmFyNDcgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworCitTRVQgUk9M RSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CisKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3KTsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3WzFdID0gMjAwOworCitTRVQgUk9MRSBU TyBERUZBVUxUOworCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3KTsKKwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCBBUyBpbnQ0bXVsdGlyYW5nZVtd OworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCA9IE5VTEw7CitMRVQgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ4ID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0OFsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDgpOworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwg Q0FTQ0FERTsKK0RST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7 CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDBjODU5Y2ZlMTg3Li5iMDhlYWQyM2E3OSAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1NDIsNiArMTU0Miw3IEBAIExhcmdlT2Jq ZWN0RGVzYwogTGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xl dFN0bXQKIExleERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQotLSAKMi40OS4wCgo= --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20250613-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0njc5 RnJvbSA0M2M0OTEyZTEzOGMzZDk1ZTIyMTQ5ZjcxNzU4MjZkMThlNzljZWI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDEgSnVuIDIwMjUgMjE6MjA6MTYgKzAyMDAKU3ViamVjdDogW1BB VENIIDEwLzE1XSBzdmFyaWFibGVSZWNlaXZlcgoKYWxsb3dzIHRvIHN0b3JlIHJlc3VsdCBvZiB0 aGUgcXVlcnkgdG8gc2Vzc2lvbiB2YXJpYWJsZQoKQ2hlY2sgY29ycmVjdCBmb3JtYXQgb2YgcmVz dWx0IC0gb25lIGNvbHVtbiwgb25lIHJvdy4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtl ZmlsZSAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxk ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu YyB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIHwgIDIyICsrKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwg ICAxICsKIDcgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIuLjcxMjQ4YTM0ZjI2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpTID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJ bm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8gXAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAog CXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQK aW5kZXggMmNlYTQxZjg3NzEuLjQ5MTA5MmZjYzRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWls ZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdub2RlV2lu ZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJsZXNjYW4uYycsCiAgICdzcGkuYycsCisgICdzdmFy aWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1ZS5jJywKICAgJ3RzdG9yZVJlY2VpdmVyLmMnLAog KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQxYTk2N2NiNGIyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpAQCAtMCwwICsxLDE3MiBA QAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoJICBB biBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0UmVjZWl2ZXIgdGhhdCBzdG9yZXMgdGhlIHJlc3VsdCB2 YWx1ZSBpbgorICoJICBhIHNlc3Npb24gdmFyaWFibGUuCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor CisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKworI2luY2x1 ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5j bHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoKKyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVz ZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBzdG9yaW5nIHRoZSByZXN1bHQgdG8gYQorICogc2Vz c2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQgaGFzIHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0 aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQgYXR0cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChm aWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVkCisgKiBhZnRlciByZWNlaXZpbmcgYSByb3csIGFu ZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcm93cyBvcgorICogdGhlcmUg YXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93cy4gIEEgcmVjZWl2ZWQgdHVwbGUgY2Fubm90 IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcy4gIFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQg YmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlLgorICovCit0eXBl ZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJ bmVlZF9kZXRvYXN0OwkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8K KwlpbnQJCQlyb3dzOwkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0YXRlOworCisv KgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgorICovCitzdGF0 aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZiwgaW50 IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0 YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlPaWQJCQl0eXBp ZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJT2lkCQkJY29sbGlkIFBHX1VTRURfRk9SX0FT U0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwor CUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0KE9p ZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2FjaGVFeGlzdHMx KFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkpOworCUFzc2VydCh0eXBlaW5mby0+bmF0dHMg PT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpF Q1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0 aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChM b2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlm CisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywgMCk7CisKKwlBc3NlcnQoIWF0dHIt PmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlnZXRfc2Vz c2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJ CQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJJmNvbGxpZCk7CisK KwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlwaWQpOworCUFzc2VydChhdHRyLT5hdHR0eXBt b2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0eXBtb2QpOworCisjZW5kaWYKKworCW15U3Rh dGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwlteVN0YXRlLT5yb3dzID0g MDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBsZSBmcm9tIHRoZSBleGVjdXRvciBhbmQgc3Rv cmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFi bGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQor eworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJ RGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlib29sCQlmcmVldmFsID0gZmFsc2U7CisK KwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90 X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUgPSBzbG90LT50dHNfdmFsdWVzWzBdOworCWlz bnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisKKwlpZiAobXlTdGF0ZS0+bmVlZF9kZXRvYXN0 ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkp KQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5hbF9hdHRyKChz dHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkp OworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7CisKKwlpZiAo bXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG1vcmUg dGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRlLT52YXJpZCwg dmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1HZXRQb2ludGVy KHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVwIGF0IGVuZCBv ZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTaHV0ZG93blJl Y2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVTdGF0ZSAqKSBz ZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf Tk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dz IikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2UgYXJlIGRvbmUg d2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyKERlc3RS ZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIEluaXRpYWxseSBj cmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRl VmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0YXRlICpzZWxm ID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0YXRlKSk7CisK KwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsKKwlzZWxmLT5w dWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJTaHV0 ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJEZXN0cm95ID0g c3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBEZXN0VmFyaWFi bGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVjZWl2ZXIgKikg c2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tl bmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5MzguLmIyZjc2NGI2NTdmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpA QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVy LmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJs aWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsx NTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERl c3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0 UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRl VmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVy IGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNv bXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28K IAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNl IERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwog CX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQog CQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2Ug RGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJ fQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkK IAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNl IERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwog CX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwy MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJ ICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFi bGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFS SUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVk ZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVz dFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlW RVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVk ZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3Yy4uNmNlM2VhMGU2MTcgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBA IC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgZW51bQogCURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVz dWx0cyBzZW50IHRvIHRyYW5zaWVudCByZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkv KiByZXN1bHRzIHNlbnQgdG8gdHVwbGUgcXVldWUgKi8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJ CS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6ZWQgYW5kIGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJs ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHNlc3Npb24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERl c3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXgg NWNkYTJlMGQyZWMuLjBjODU5Y2ZlMTg3IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAt MjY0MSw2ICsyNjQxLDcgQEAgU1RSTEVOCiBTVgogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlCitT VmFyaWFibGVTdGF0ZQogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNhbXBsZVNjYW4KIFNhbXBs ZVNjYW5HZXRTYW1wbGVTaXplX2Z1bmN0aW9uCi0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20250613-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0njy8 RnJvbSA1NmIzZjMzZDdkOWY0YTVjMzdiODEwNmZiYzA2NWViODYyMDQwZDI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDIyOjQ0OjU4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8xNV0gbG9jYWwgSEFTSFRBQiBmb3IgY3VycmVudGx5IHVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMgYW5kCiBsb3cgbGV2ZWwgYWNjZXNzIGZ1bmN0aW9ucwoKU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIHN0b3JlZCBpbiBzZXNzaW9uIG1lbW9yeSBpbiBhIGRlZGljYXRlZCBoYXNoIHRhYmxlLgpU aGV5IGFyZSBzZXQgYnkgdGhlIExFVCBjb21tYW5kIGFuZCByZWFkIGJ5IHRoZSBTRUxFQ1QgY29t bWFuZC4KVGhlIGFjY2VzcyByaWdodHMgc2hvdWxkIGJlIGNoZWNrZWQuCgpIYXNoIGVudHJpZXMg cmVsYXRlZCB0byBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgcmVsZWFzZWQuIFRo ZSBtZW1vcnkKY2xlYW5pbmcgaXMgaW1wbGVtZW50ZWQgaW4gbWVtb3J5LWNsZWFuaW5nLWFmdGVy LURST1AtVkFSSUFCTEUgcGF0Y2guCi0tLQogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgfCA0MjggKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggfCAgIDMgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgIHwgICAyICsKIDQgZmlsZXMgY2hhbmdlZCwgNDM2IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCA4M2IxM2Y5OGYyOC4uMmQxM2RjZWE0ZWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC0xNzE0LDggKzE3MTQsOSBAQAogICAgIDxwYXJhPgogICAgICBB IHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9sZHMgYSB2YWx1ZSBpbiBzZXNzaW9u IG1lbW9yeS4gIFRoaXMKICAgICAgdmFsdWUgaXMgcHJpdmF0ZSB0byBlYWNoIHNlc3Npb24gYW5k IGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KLSAgICAgUmVhZCBvciB3cml0ZSBh Y2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJvbGxlZCBieSBwcml2aWxlZ2VzLAot ICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVjdHMuCisgICAgIFRoZSBkZWZhdWx0 IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlzIG51bGwuICBSZWFkIG9yIHdyaXRlIGFj Y2VzcworICAgICB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVn ZXMsIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2UKKyAgICAgb2JqZWN0cy4KICAgICA8L3BhcmE+ CiAgICAgPHBhcmE+CiAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2Vu ZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCmluZGV4IGY2NDFlMDBjMWFjLi5kYmMwNTQ3OTViYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTQsMTQgKzE0LDQ0MiBAQAogICovCiAjaW5j bHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJz dG9yYWdlL3Byb2MuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0 aWxzL2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGlj YXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3Jt YXQuCisgKiBUaGV5IGFyZSBzdG9yZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwg d2hvc2Uga2V5IGlzIHRoZSBPSUQgb2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBP SUQgaXMgbm90IGdvb2QgZW5vdWdoIHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6 IGNvbmN1cnJlbnQgc2Vzc2lvbnMgY291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQg Y3JlYXRlIGEKKyAqIG5ldyBvbmUsIHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9J RC4gIFRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRo ZSBjYXRhbG9nIGRlZmluaXRpb24gbWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhl ICJjcmVhdGVfbHNuIi4gIEJlZm9yZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMs IHdlIG5lZWQgdG8KKyAqIGNoZWNrIGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVz IHRoZSBMU04gaW4gdGhlIGNhdGFsb2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3 ZWVuIHRoZSBMU05zLCBvciBpZiB0aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxl CisgKiBhdCBhbGwsIHRoZSB2YWx1ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICov Cit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdf dmFyaWFibGUgT0lEIG9mIHRoZSB2YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cglj cmVhdGVfbHNuOworCisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5 cGlkOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21h aW47CisKKwkvKgorCSAqIGRvbWFpbl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1l dGFkYXRhLiAgVGhpcyAiZXh0cmEiIGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4g IFdlIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGF0IG1lbW9yeQorCSAqIGNvbnRleHQgZm9yIHNl c3Npb24gdmFyaWFibGVzLCBidXQgd2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQKKwkg KiBpbnN0ZWFkLiBBIGZyZXNoIHZhbHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUg aW4gYSBkaWZmZXJlbnQKKwkgKiB0cmFuc2FjdGlvbiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElE IGRpZmZlcnMgZnJvbQorCSAqIGRvbWFpbl9jaGVja19leHRyYV9seGlkKS4KKwkgKi8KKwl2b2lk CSAgICpkb21haW5fY2hlY2tfZXh0cmE7CisJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVj a19leHRyYV9seGlkOworCisJLyoKKwkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRp b24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCisJICogc2ludmFsIG1lc3NhZ2Uu ICBXZSB0aGVuIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbAorCSAq IHRydXN0d29ydGh5LgorCSAqLworCWJvb2wJCWlzX3ZhbGlkOworCisJdWludDMyCQloYXNodmFs dWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCit9IFNWYXJpYWJsZURh dGE7CisKK3R5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOworCitzdGF0aWMgSFRBQiAq c2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAq LworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsK KworLyoKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRh dGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3BnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVt IGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJSEFTSF9TRVFfU1RBVFVT IHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCWVsb2coREVCVUcxLCAicGdfdmFyaWFibGVf Y2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOworCisJQXNzZXJ0KHNl c3Npb252YXJzKTsKKworCS8qCisJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQorCSAqIHVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMuICBTaW5jZSB3ZSBjYW4ndCB0ZWxsIHRoZSBleGFjdCBzZXNzaW9uIHZhcmlhYmxlCisJ ICogZnJvbSBpdHMgaGFzaHZhbHVlLCB3ZSBoYXZlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgaXRlbXMg aW4gdGhlIGhhc2gKKwkgKiBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBz ZXNzaW9udmFycyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFy Y2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+ aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsK KwkJfQorCX0KK30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQor ICovCitzdGF0aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBz dmFyKQoreworCS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251 bGwpCisJeworCQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVy KHN2YXItPnZhbHVlKSk7CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52 YWx1ZSA9IChEYXR1bSkgMDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRy eSBpbiBwZ192YXJpYWJsZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9u IHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChT VmFyaWFibGUgc3ZhcikKK3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7 CisKKwlBc3NlcnQoT2lkSXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMg bm90IGVub3VnaCBhcyBhbiB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFs dWVzIGdldCByZWN5Y2xlZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBn b3QgdGhlCisJCSAqIHNhbWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUg NjQtYml0IExTTiB3aGVuIHRoZQorCQkgKiB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJ CWlmIChzdmFyLT5jcmVhdGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRw KSktPnZhcmNyZWF0ZV9sc24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNo ZSh0cCk7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0 cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkp OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVt KHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwg ImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisK Kwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+ dmFyaWQgPSB2YXJpZDsKKwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xz bjsKKworCXN2YXItPnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZh bChzdmFyLT50eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXIt PmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RP TUFJTik7CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5f Y2hlY2tfZXh0cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5p c251bGwgPSB0cnVlOworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFs aWQgPSB0cnVlOworCisJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZB UklBQkxFT0lELAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxl YXNlU3lzQ2FjaGUodHVwKTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUg c2Vzc2lvbiB2YXJpYWJsZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCBpZiBuZWNlc3NhcnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlz dGluZyB2YWx1ZSB3b24ndCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNz aW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7 CisJRGF0dW0JCW5ld3ZhbDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7 CisKKwlBc3NlcnQoc3Zhcik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAw KTsKKworCS8qCisJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFi bGUgb25seSB3aGVuIHRoZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24g bWVzc2FnZSB3YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhl IHZhcmlhYmxlIG1pZ2h0IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90 IG92ZXJ3cml0ZSB0aGUgcGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNl cnRhaW4KKwkgKiB0aGF0IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFy LT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXIt PnZhcmlkKTsKKwkJX3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7 CisKKwlpZiAoIWlzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVt Q29weSh2YWx1ZSwgX3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKwor CWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vz c2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRf bmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlk KSksCisJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXIt PnZhcmlkKTsKKworCS8qIG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3Jp dGUgdGhlIG9sZCB2YXJpYWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5 KHN2YXIsIF9zdmFyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBu ZXd2YWw7CisJc3Zhci0+aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBo YXNoIHRhYmxlIGZvciBzdG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9p ZAorY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJz X2N0bDsKKworCUFzc2VydCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlD b250ZXh0KQorCXsKKwkJLyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3Rl clN5c2NhY2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrLAorCQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3Vy IG93biBsb25nLWxpdmVkIG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRl eHQgPQorCQkJQWxsb2NTZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJ CSAgInNlc3Npb24gdmFyaWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9T SVpFUyk7CisJfQorCisJbWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJ dmFyc19jdGwua2V5c2l6ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNp emVvZihTVmFyaWFibGVEYXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dDsKKworCXNlc3Npb252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwg NjQsICZ2YXJzX2N0bCwKKwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NP TlRFWFQpOworfQorCisvKgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFz aCB0YWJsZSBnaXZlbiBpdHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5z ZXJ0IGl0IHRoZXJlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5n IHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rp b24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxl IHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxl CitnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJ Ym9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdh aW5zdCBEUk9QICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVf c2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2Vh cmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7 CisKKwlpZiAoZm91bmQpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgor CQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUg bWlnaHQgc3RpbGwKKwkJCSAqIGJlIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRo ZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFs aWQoc3ZhcikpCisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlm IHRoZSB2YWx1ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8K KwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQor CQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90 IHlldCBpbml0aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICog YmUgdmFsaWRhdGVkLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24g dmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkg KGVtaXR0ZWQgYnkgUkVBRCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRh IGlzIHN0aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4p CisJeworCQkvKgorCQkgKiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BU cmFuc2FjdGlvbkNvbnRleHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlv biwgZG9tYWluX2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4K KwkJICovCisJCWlmIChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4 aWQubHhpZCkKKwkJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWlu X2NoZWNrKHN2YXItPnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2 YXItPmRvbWFpbl9jaGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisK KwkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9 CisKKwlyZXR1cm4gc3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBh IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBl ZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNl c3Npb24KKyAqIHZhcmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICov Cit2b2lkCitTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBp c051bGwpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0 IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlm ICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJ CQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24g dmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkg KGVtaXR0ZWQgYnkgV1JJVEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZShzdmFyLT52YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFp bHMsIGl0IHdvbid0IGNoYW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBv ZiB0aGUgdmFsdWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0 dW0KK2NvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNO dWxsKQoreworCURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFs dWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXIt PnZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNl OworCX0KKwllbHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7 CisJfQorCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhl IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAq IGNvbnRleHQpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVj a3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051 bGwpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUo dmFyaWQpOworCisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQg aW4gdGhpcyBwb2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGlu dmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4KKwkgKiBj aGVjay4gQnV0IHRoZSB2YXJpYWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tl ZCBub3csIHNvIHdlCisJICogZG9uJ3QgbmVlZCB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJ ICovCisJcmV0dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOwor fQogCiAvKgogICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDQ5ZjM2YWM2ODg1Li45ZjVjNmUzMGZiZCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMTksNiArMTksOSBAQAogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgog CitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwg Ym9vbCBpc051bGwpOworZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQs IGJvb2wgKmlzTnVsbCk7CisKIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNjYxYjI3ZTVmMmMuLmNkY2E0OTYzZjNlIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjYzOSw2ICsyNjM5LDggQEAgU1NMX0NUWAog U1RBUlRVUElORk8KIFNUUkxFTgogU1YKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZQogU1lOQ0hS T05JWkFUSU9OX0JBUlJJRVIKIFNhbXBsZVNjYW4KIFNhbXBsZVNjYW5HZXRTYW1wbGVTaXplX2Z1 bmN0aW9uCi0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20250613-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0njj6 RnJvbSA0N2ZjYTE5NmNhMGY4OWFlNGNjNjAwMDA1YTg1MjI5ZmVmNTdkMWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDEgSnVuIDIwMjUgMDc6MzI6MDEgKzAyMDAKU3ViamVjdDogW1BB VENIIDA5LzE1XSBmaWxsIGFuIGF1eGlsaWFyeSBidWZmZXIgd2l0aCB2YWx1ZXMgb2Ygc2Vzc2lv bgogdmFyaWFibGVzIHVzZWQgaW4gcXVlcnkKCmFuZCBsb2NrcyB2YXJpYWJsZXMgdXNlZCBpbiBx dWVyeS4gTm93IHdlIGNhbiByZWFkIHRoZSBjb250ZW50IG9mIGFueQpzZXNzaW9uIHZhcmlhYmxl LiBEaXJlY3QgcmVhZGluZyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgbm90IGFsbG93ZWQs CnNvIHdlIGNhbm5vdCB0byB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMgaW5zaWRlIENBTEwgb3IgRVhF Q1VURSBjb21tYW5kcwooY2FuIGJlIHN1cHBvcnRlZCB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZXMgKGZyb20gZXhwcmVzc2lvbgpleGVjdXRvcikgLSBwb3N0cG9uZWQpLgoK VXNpbmcgc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2tzIHBhcmFsbGVsIHF1ZXJ5IGV4ZWN1dGlvbi4g SXQgaXMgbm90CnRlY2huaWNhbCBwcm9ibGVtIChpdCBqdXN0IG5lZWRzIGEgc2VyaWFsaXphdGlv bi9kZXNlcmlhbGl6YXRpb24gb2YKZXNfc2Vzc2lvbl92YXJpYmxlcyBidWZmZXIpLCBidXQgaXQg aW5jcmVhc2VzIGEgc2l6ZSBvZiBwYXRjaCAoYW5kIHRoZW4KaXQgaXMgcG9zdHBvbmVkKS4KLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgMjkgKysr CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgNTYgKysr KysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAgICB8ICAyNCAr Ky0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxNCAr KwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQgICAgICAgIHwgMTkxICsr KysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAg ICAgICAgIHwgICA3ICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNx bCAgICAgfCAxNjEgKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCA0NzkgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIuLjA0NTdhNzI5NTM3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKQEAgLTEwNjksNiArMTA2OSwzNSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAq bm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CiAJCQkJCQl9CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBQQVJBTV9WQVJJQUJM RToKKwkJCQkJCXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOwor CQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7 CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0ZS0+ cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNfc2Vz c2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXM7CisJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNzZXJ0 KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hl Y2tzICovCisJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcykKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFy YW0gaXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJs ZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYSBjb25zdGFudC4KKwkJCQkJCQkgKi8KKwkJCQkJCQlzY3Jh dGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVl ID0gdmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0gdmFyLT5p c251bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJ fQorCQkJCQkJYnJlYWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQllbG9nKEVSUk9SLCAidW5yZWNv Z25pemVkIHBhcmFta2luZDogJWQiLAogCQkJCQkJCSAoaW50KSBwYXJhbS0+cGFyYW1raW5kKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDAzOTE3OThkZDJjLi4yMjM3NDJiOTIwZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBACiAjaW5jbHVkZSAiYWNjZXNz L3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9y L2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5oIgpAQCAtMTk3 LDYgKzE5OSw2MCBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNj LCBpbnQgZWZsYWdzKQogCUFzc2VydChxdWVyeURlc2MtPnNvdXJjZVRleHQgIT0gTlVMTCk7CiAJ ZXN0YXRlLT5lc19zb3VyY2VUZXh0ID0gcXVlcnlEZXNjLT5zb3VyY2VUZXh0OwogCisJLyoKKwkg KiBUaGUgZXhlY3V0b3IgZG9lc24ndCB3b3JrIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgZGlyZWN0 bHkuIFZhbHVlcyBvZgorCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0 byBhIGRlZGljYXRlZCBhcnJheSwgYW5kIHRoaXMKKwkgKiBhcnJheSBpcyBwYXNzZWQgdG8gdGhl IGV4ZWN1dG9yLiBUaGlzIGFycmF5IGlzIHN0YWJsZSAic25hcHNob3QiIG9mCisJICogdmFsdWVz IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZXJlIGFyZSB0aHJlZSBiZW5lZml0cyBvZiB0 aGlzCisJICogc3RyYXRlZ3k6CisJICoKKwkgKiAtIGNvbnNpc3RlbmN5IHdpdGggZXh0ZXJuYWwg cGFyYW1ldGVycyBhbmQgcGxwZ3NxbCB2YXJpYWJsZXMsCisJICoKKwkgKiAtIHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBwYXJhbGxlbCBzYWZlLAorCSAqCisJICogLSB3ZSBkb24ndCBuZWVkIG1h a2UgZnJlc2ggY29weSBmb3IgYW55IHJlYWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAodGhpcworCSAq IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbnRlcm5hbGx5IHRoZSBzZXNzaW9uIHZhcmlhYmxl IGNhbiBiZSBjaGFuZ2VkCisJICogaW5zaWRlIHF1ZXJ5IGV4ZWN1dGlvbiB0aW1lLCBhbmQgdGhl biBhIHJlZmVyZW5jZSB0byBwcmV2aW91c2x5CisJICogcmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNv cnJ1cHRlZCkuCisJICovCisJaWYgKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJp YWJsZXMpCisJeworCQlpbnQJCQluU2Vzc2lvblZhcmlhYmxlczsKKwkJaW50CQkJaSA9IDA7CisK KwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUgcXVlcnkgdXNlcyBzZXNzaW9uIHZhcmlhYmxl cywgYnV0IHdlIGhhdmUgdG8KKwkJICogcHJlcGFyZSB0aGUgYXJyYXkgd2l0aCBwYXNzZWQgdmFs dWVzIChvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzKQorCQkgKiBmaXJzdC4KKwkJICovCisJCUFz c2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKwkJblNlc3Npb25WYXJpYWJsZXMgPSBsaXN0X2xl bmd0aChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKTsKKworCQkvKiBj cmVhdGUgdGhlIGFycmF5IHVzZWQgZm9yIHBhc3NpbmcgdmFsdWVzIG9mIHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlcyA9IChTZXNzaW9uVmFy aWFibGVWYWx1ZSAqKQorCQkJcGFsbG9jKG5TZXNzaW9uVmFyaWFibGVzICogc2l6ZW9mKFNlc3Np b25WYXJpYWJsZVZhbHVlKSk7CisKKwkJLyogZmlsbCB0aGUgYXJyYXkgKi8KKwkJZm9yZWFjaF9v aWQodmFyaWQsIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJCXsK KwkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj ayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBBQ0xf U0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hlY2tf ZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJICAgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVz W2ldLnZhbHVlID0KKwkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCisJCQkJCQkJCSAgICZl c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7CisKKwkJCWkrKzsKKwkJfQor CisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNlc3Npb25WYXJpYWJsZXM7 CisJfQorCiAJLyoKIAkgKiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9ubWVudCwgaWYgYW55LCBm cm9tIHF1ZXJ5RGVzYy4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXgg Mzk4MjBiNGY1NDUuLmNhOTJiZTlhNmFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUu YwpAQCAtMjAyMCw5ICsyMDIwLDEyIEBAIFNjYW5RdWVyeUZvckxvY2tzKFF1ZXJ5ICpwYXJzZXRy ZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8qCiAJICogUmVjdXJzZSBpbnRvIHN1Ymxpbmsgc3VicXVl cmllcywgdG9vLiAgQnV0IHdlIGFscmVhZHkgZGlkIHRoZSBvbmVzIGluCi0JICogdGhlIHJ0YWJs ZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LiAgV2UgbmVlZCB0byBm b3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZvciBzZXNzaW9uCisJICogdmFyaWFibGVzIHRvbywgdG8g ZmluZCBhbmQgbG9jayB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgcXVlcnkgKHNlZQorCSAqIFNjYW5R dWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MpCisJaWYgKHBh cnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFyc2V0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVz KQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFyc2V0cmVlLCBTY2FuUXVlcnlXYWxrZXIsICZh Y3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JDX1NVQlFVRVJJRVMpOwpAQCAtMjAzMCw3ICsy MDMzLDggQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJl KQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBTY2Fu UXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJl ZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICov CiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUp CkBAIC0yMDQ1LDYgKzIwNDksMjAgQEAgU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wg KmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNl bGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQg YXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJewor CQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9i amVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFj Y2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFi bGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9j ayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMs IGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxyZWFkeQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCAyNDkyMjgyMjEzZi4uNGZiN2I0NmNjZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02NDEs NiArNjQxLDE2IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBs ZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lv blZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg U2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOwor fSBTZXNzaW9uVmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3Rh dGUgaW5mb3JtYXRpb24KICAqCkBAIC03MDAsNiArNzEwLDEwIEBAIHR5cGVkZWYgc3RydWN0IEVT dGF0ZQogCVBhcmFtTGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0 ZXJuYWwgcGFyYW1zICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2 YWx1ZXMgb2YgaW50ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZv OiAqLworCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsJLyogbnVtYmVyIG9mIHVzZWQg dmFyaWFibGVzICovCisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVz OyAvKiBhcnJheSBvZiBjb3BpZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICpl c19xdWVyeUVudjsJLyogcXVlcnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcg c3RhdGU6ICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RtbC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNl MjEwNTlhY2MyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CkBAIC0wLDAgKzEsMTkxIEBACitDUkVBVEUgVkFSSUFC TEUgc2VzdmFyNDAgQVMgaW50OworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQg dmFyaWFibGUncyBmZW5jZQorLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzZXN2YXI0MDsKK0VSUk9S OiAgY29sdW1uICJzZXN2YXI0MCIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHNlc3Zh cjQwOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUo c2VzdmFyNDApOworIHNlc3ZhcjQwIAorLS0tLS0tLS0tLQorICAgICAgICAgCisoMSByb3cpCisK K0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0MSBBUyBpbnQ7CistLSBpZGVudGlmaWVyIGNvbGxpc2lvbiB0ZXN0CitDUkVBVEUg VEFCTEUgc3ZhcnRlc3RfZG1sKHNlc3ZhcjQxIGludCk7CitJTlNFUlQgSU5UTyBzdmFydGVzdF9k bWwgVkFMVUVTKDEwMCk7CitTRUxFQ1Qgc2VzdmFyNDEgRlJPTSBzdmFydGVzdF9kbWw7IC0tIDEw MAorIHNlc3ZhcjQxIAorLS0tLS0tLS0tLQorICAgICAgMTAwCisoMSByb3cpCisKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOyAtLSBOVUxMCisgc2VzdmFyNDEgCistLS0t LS0tLS0tCisgICAgICAgICAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJ QUJMRShzZXN2YXI0MSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjQxIiBkb2Vz bid0IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7CisgICAgICAgICAg ICAgICAgICAgICAgICBeCitTRVQgU0VBUkNIX1BBVEggVE8gc3ZhcnRlc3RfZG1sOworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDEpOworIHNlc3ZhcjQxIAorLS0tLS0t LS0tLQorICAgICAgICAgCisoMSByb3cpCisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwor LS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CitFTkQ7CiskJDsKK05PVElDRTogIDxOVUxM PgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKQorUkVU VVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOwor JCQgTEFOR1VBR0Ugc3FsOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CisgdGVzdHNx bCAKKy0tLS0tLS0tLQorICAgICAgICAKKygxIHJvdykKKworLS0gc2Vzc2lvbiB2YXJpYWJsZSBj YW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXIgb2YgQ0FMTCBvciBFWEVDVVRFCitDUkVBVEUgT1Ig UkVQTEFDRSBQUk9DRURVUkUgc3ZhcnRlc3RfZG1sLnByb2MoaW50KQorQVMgJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAnJScsICQxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNo b3VsZCBub3QgY3Jhc2gKK0NBTEwgc3ZhcnRlc3RfZG1sLnByb2MoVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQxKSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIGlzIG5v dCBzdXBwb3J0ZWQgaGVyZQorTElORSAxOiBDQUxMIHN2YXJ0ZXN0X2RtbC5wcm9jKFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK1BSRVBBUkUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10KGludCkgQVMgU0VMRUNU ICQxOworLS0gc2hvdWxkIG5vdCBjcmFzaAorRVhFQ1VURSBzdmFydGVzdF9kbWxfcHJlcHN0bXQo VkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgcmVmZXJlbmNlIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZQorTElORSAxOiBFWEVDVVRFIHN2YXJ0 ZXN0X2RtbF9wcmVwc3RtdChWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorRFJPUCBQUk9DRURV UkUgc3ZhcnRlc3RfZG1sLnByb2M7CitERUFMTE9DQVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdDsK Ky0tIGRvbWFpbnMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIERPTUFJTiBzdmFydGVzdF9kbWxfaW50 X25vdF9udWxsIEFTIGludCBDSEVDSyh2YWx1ZSBJUyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIgQVMgc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbDsK Ky0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIp OworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251bGwgdmlv bGF0ZXMgY2hlY2sgY29uc3RyYWludCAic3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbF9jaGVjayIK K0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDI7CitEUk9QIERPTUFJTiBzdmFy dGVzdF9kbWxfaW50X25vdF9udWxsOworQ1JFQVRFIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxf cmVhZF9yb2xlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ1bmNf c2VjZGVmKCkKK1JFVFVSTlMgaW50IEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKKyQkIExBTkdVQUdFIFNRTCBTRUNVUklUWSBERUZJTkVSOworR1JBTlQgVVNB R0UgT04gU0NIRU1BIHN2YXJ0ZXN0X2RtbCBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3Jv bGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CistLSBzaG91 bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQxCistLSBzaG91 bGQgZmFpbAorRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0MSk7CitFTkQ7CiskJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgc2VzdmFyNDEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNz aW9uICJWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpIgorUEwvcGdTUUwgZnVuY3Rpb24g aW5saW5lX2NvZGVfYmxvY2sgbGluZSAzIGF0IFJBSVNFCistLSB1c2luZyBzcWwgZnVuY3Rpb24g c2hvdWxkIHRvIGZhaWwKK1NFTEVDVCBzdmFydGVzdF9kbWwudGVzdHNxbCgpOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXI0MQorQ09OVEVYVDog IFNRTCBmdW5jdGlvbiAidGVzdHNxbCIgc3RhdGVtZW50IDEKKy0tIHVzaW5nIHNlY3VyaXR5IGRl ZmluZXIgc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ1bmNfc2VjZGVmKCk7Cisg ZnVuY19zZWNkZWYgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAKKygxIHJvdykKKworU0VU IFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ1bmNfc2VjZGVm KCk7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxIFRPIHJl Z3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRl c3RfZG1sX3JlYWRfcm9sZTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0MSk7Cisgc2VzdmFyNDEgCistLS0tLS0tLS0tCisgICAgICAgICAKKygx IHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICcl JywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsKKyQkOworTk9USUNFOiAg PE5VTEw+CitTRVQgUk9MRSBUTyBERUZBVUxUOworQ1JFQVRFIFRBQkxFIHN2YXJ0ZXN0X2RtbC50 ZXN0dGFiKGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFNFTEVDVCAq IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitDUkVBVEUgSU5ERVggc3ZhcnRlc3RfZG1s X3Rlc3R0YWJfYSBPTiBzdmFydGVzdF9kbWwudGVzdHRhYihhKTsKK0FOQUxZWkUgc3ZhcnRlc3Rf ZG1sLnRlc3R0YWI7CistLSBmb3JjZSBpbmRleAorU0VUIGVuYWJsZV9zZXFzY2FuIFRPIE9GRjsK Ky0tIGluZGV4IHNjYW4gc2hvdWxkIGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUoc2VzdmFyNDAp OworICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBJbmRleCBPbmx5IFNjYW4gdXNpbmcgc3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYSBvbiB0 ZXN0dGFiCisgICBJbmRleCBDb25kOiAoYSA9IFZBUklBQkxFKHNlc3ZhcjQwKSkKKygyIHJvd3Mp CisKK0RST1AgSU5ERVggc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2E7CitTRVQg ZW5hYmxlX3NlcXNjYW4gVE8gREVGQVVMVDsKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQg YmUgYmxvY2tlZAorLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFs bGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1p bl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJz X3Blcl9nYXRoZXIgPSAyOworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEg PSAxMDA7CisgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEdhdGhlcgorICAgV29ya2VycyBQbGFubmVkOiAy CisgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gdGVzdHRhYgorICAgICAgICAgRmlsdGVyOiAo YSA9IDEwMCkKKyg0IHJvd3MpCisKKy0tIHBhcmFsbGVsIHBsYW4gc2hvdWxkIG5vdCBiZSB1c2Vk CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIg V0hFUkUgYSA9IFZBUklBQkxFKHNlc3ZhcjQwKTsKKyAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gdGVzdHRhYgorICAgRmlsdGVyOiAoYSA9IFZBUklBQkxFKHNlc3ZhcjQwKSkKKygyIHJv d3MpCisKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9j b3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJh bGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FE RTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMyBvdGhlciBvYmplY3RzCitERVRBSUw6ICBk cm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxCitk cm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCkKK2Ryb3AgY2Fz Y2FkZXMgdG8gdGFibGUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIKK0RST1AgUk9MRSByZWdyZXNzX3N2 YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CitEUk9QIFZBUklBQkxFIHNlc3ZhcjQwOworRFJPUCBUQUJM RSBzdmFydGVzdF9kbWw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxYzY3ZmRm ZjU2NC4uNWE5YmZkNGRjOGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTE1 LDcgKzExNSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBqc29u cGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBkb2Vz IHJlY29ubmVjdHMgd2hpY2ggdHJhbnNpZW50bHkgdXNlIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtl ZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0K LXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVu Y3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHlt b3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92 YXJpYWJsZXNfZGRsIHNlc3Npb25fdmFyaWFibGVzX2FjbAordGVzdDogcGxhbmNhY2hlIGxpbWl0 IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24g dHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVy bmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91 cCBvZiBwYXJhbGxlbCB0ZXN0cwpAQCAtMTQwLDMgKzE0MCw4IEBAIHRlc3Q6IGZhc3RfZGVmYXVs dAogIyBydW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBpdCBkcm9wcyB0aGUg dGFibGVzcGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90aGVyIHRlc3RzIG1heSB1 c2UuCiB0ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQorIyBBbm90aGVyIGdyb3VwIG9m IHBhcmFsbGVsIHRlc3RzIChzZXNzaW9uIHZhcmlhYmxlcyByZWxhdGVkKQorIyAtLS0tLS0tLS0t Cit0ZXN0OiBzZXNzaW9uX3ZhcmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsIHNlc3Np b25fdmFyaWFibGVzX2RtbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RtbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIyODcw ZGRlOWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXNfZG1sLnNxbApAQCAtMCwwICsxLDE2MSBAQAorQ1JFQVRFIFZBUklBQkxFIHNlc3Zh cjQwIEFTIGludDsKKworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdmFyaWFi bGUncyBmZW5jZQorLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzZXN2YXI0MDsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDApOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0 ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgQVMgaW50Owor CistLSBpZGVudGlmaWVyIGNvbGxpc2lvbiB0ZXN0CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1s KHNlc3ZhcjQxIGludCk7CitJTlNFUlQgSU5UTyBzdmFydGVzdF9kbWwgVkFMVUVTKDEwMCk7CisK K1NFTEVDVCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCitTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsgLS0gTlVMTAorCistLSBzaG91bGQgZmFpbAorU0VM RUNUIFZBUklBQkxFKHNlc3ZhcjQxKTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIHN2YXJ0ZXN0X2Rt bDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDEpOworCitTRVQg U0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQKK0JF R0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7 CitFTkQ7CiskJDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLnRl c3RzcWwoKQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwu c2VzdmFyNDEpOworJCQgTEFOR1VBR0Ugc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3Rz cWwoKTsKKworLS0gc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXIg b2YgQ0FMTCBvciBFWEVDVVRFCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUgc3ZhcnRlc3Rf ZG1sLnByb2MoaW50KQorQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsICQxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorQ0FMTCBzdmFy dGVzdF9kbWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKKworUFJFUEFS RSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBu b3QgY3Jhc2gKK0VYRUNVVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0MSkpOworCitEUk9QIFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYzsKK0RF QUxMT0NBVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworCistLSBkb21haW5zIGFyZSBzdXBwb3J0 ZWQKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0so dmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zdmFydGVz dDQyIEFTIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251bGw7CisKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIpOworCitEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RtbC5zdmFydGVzdDQyOworRFJPUCBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3Rf bnVsbDsKKworQ1JFQVRFIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKQorUkVU VVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOwor JCQgTEFOR1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CisKK0dSQU5UIFVTQUdFIE9OIFNDSEVN QSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQg Uk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKKworLS0gc2hvdWxkIGZh aWwKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShzdmFydGVzdF9k bWwuc2VzdmFyNDEpOworRU5EOworJCQ7CisKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CisKKy0tIHVzaW5nIHNlY3Vy aXR5IGRlZmluZXIgc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ1bmNfc2VjZGVm KCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfZG1s LmZ1bmNfc2VjZGVmKCk7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwu c2VzdmFyNDEgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CisKKy0tIHNob3VsZCBiZSBvawor RE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0MSk7CitFTkQ7CiskJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworQ1JFQVRFIFRB QkxFIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiKGEgaW50KTsKKworSU5TRVJUIElOVE8gc3ZhcnRlc3Rf ZG1sLnRlc3R0YWIgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKKworQ1JF QVRFIElOREVYIHN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2EgT04gc3ZhcnRlc3RfZG1sLnRlc3R0YWIo YSk7CisKK0FOQUxZWkUgc3ZhcnRlc3RfZG1sLnRlc3R0YWI7CisKKy0tIGZvcmNlIGluZGV4CitT RVQgZW5hYmxlX3NlcXNjYW4gVE8gT0ZGOworCistLSBpbmRleCBzY2FuIHNob3VsZCBiZSB1c2Vk CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIg V0hFUkUgYSA9IFZBUklBQkxFKHNlc3ZhcjQwKTsKKworRFJPUCBJTkRFWCBzdmFydGVzdF9kbWwu c3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYTsKKworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIERFRkFVTFQ7 CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQgYmUgYmxvY2tlZAorLS0gRW5jb3VyYWdl IHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VU IHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3Np emUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworCistLSBw YXJhbGxlbCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsKKworLS0gcGFyYWxsZWwg cGxhbiBzaG91bGQgbm90IGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUoc2VzdmFyNDApOworCitS RVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JF U0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29y a2Vyc19wZXJfZ2F0aGVyOworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKK0RS T1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK0RST1AgVkFSSUFCTEUg c2VzdmFyNDA7CisKK0RST1AgVEFCTEUgc3ZhcnRlc3RfZG1sOwpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCBjZGNhNDk2M2YzZS4uNWNkYTJlMGQyZWMgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC0yNjk3LDYgKzI2OTcsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQog U2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlh YmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0 Q29uc3RyYWludFRyaWdnZXJEYXRhCi0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20250613-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0njp7 RnJvbSA5MjE2ZjJmNWRiNzQzMzNiY2FiNmEzNzkwNGI1ODRhMDliZTY0MTRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDA5OjMxOjA2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8xNV0gY29sbGVjdCBzZXNzaW9uIHZhcmlhYmxlcyB1c2VkIGluIHBsYW4gYW5kIGFz c2lnbgogcGFyYW1pZAoKSW4gdGhlIHBsYW4gc3RhZ2Ugd2UgbmVlZCB0byBjb2xsZWN0IHVzZWQg c2Vzc2lvbiB2YXJpYWJsZXMuIE9uIHRoZQpvcmRlciBvZiB0aGlzIGxpc3QsIHRoZSBwYXJhbSBu b2RlcyBnZXRzIHBhcmFtaWQgKGZpeF9wYXJhbV9ub2RlKS4KVGhpcyBudW1iZXIgaXMgdXNlZCAo bGF0ZXIpIGFzIGluZGV4IHRvIGJ1ZmZlciBvZiB2YWx1ZXMgb2YgdGhlCnVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuIFRoZSBidWZmZXIgaXMgcHJlcGFyZWQgYW5kIGZpbGxlZCBieSBleGVjdXRvci4K ClNvbWUgdW5zdXBwb3J0ZWQgb3B0aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQ6CgoqIHBhcmFsbGVs IGV4ZWN1dGlvbgoqIHNpbXBsZSBleHByZXNzaW9uIGV4ZWN1dGlvbiBpbiBQTC9wZ1NRTAoqIFNR TCBmdW5jdGlvbnMgaW5saW5pbmcKCkJlZm9yZSBleGVjdXRpb24gb2YgcXVlcnkgd2l0aCBzZXNz aW9uIHZhcmlhYmxlcyB3ZSBuZWVkIHRvIGNvbGxlY3QKdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g VGhpcyBsaXN0IGlzIHVzZWQgZm9yCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAg ICAgICAgICAgICAgfCAgIDYgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAg ICAgICAgIHwgICA1ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAg IHwgIDExICsrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICB8IDEy NCArKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVw am9pbnRyZWUuYyB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMg ICAgICB8ICAzMyArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAg ICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAgICAgICAgfCAgIDUg Kwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgfCAgIDIgKwogMTEgZmlsZXMg Y2hhbmdlZCwgMTk5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApp bmRleCAxY2U5YWJmODZmNS4uNjgzZGVkZTZhZGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsNiAr NTE1LDEyIEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZp bGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29y cmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgIFBsYW4g bm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJl bGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDllMGY2NDhiNzRmLi45MGM5ZThi YjI1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE4NjQsNiArMTg2NCwxMSBAQCBm aW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAgICpw YXJhbSA9IChQYXJhbSAqKSBub2RlOwogCisJCS8qIGEgdmFyaWFibGUgcGFyYW1ldGVyIGRlcGVu ZHMgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJCQlhZGRfb2JqZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlvbklk LCBwYXJhbS0+cGFyYW12YXJpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisKIAkJ LyogQSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICov CiAJCWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwg MCwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCBmZjY1ODY3ZWViZS4uNzE0ZjU4YmQzZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMKQEAgLTM0Miw2ICszNDIsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5 ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAln bG9iLT50cmFuc2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNl OwogCWdsb2ItPnBhcnRpdGlvbl9kaXJlY3RvcnkgPSBOVUxMOworCWdsb2ItPnNlc3Npb25WYXJp YWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8g dXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NzksNiArNTgwLDkgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBhcmFt RXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2UgbWlnaHQg YXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51dGlsaXR5 U3RtdDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25WYXJpYWJs ZXM7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAly ZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRfbGVuOwogCkBAIC03NTcsNiArNzYxLDEzIEBA IHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFu bmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJcHVsbF91cF9zdWJxdWVyaWVzKHJvb3QpOwog CisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1ZXJ5IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxl LiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFyaWFibGVzIHNob3VsZCBiZSB0cnVlIGlmIHRo ZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMgYQorCSAqIHNlc3Npb24gdmFyaWFibGUuCisJ ICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElm IHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBw ZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcg cHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKaW5kZXggODQ2ZTQ0MTg2YzMuLjZjODZlZTFhZDY0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiArMjEwLDkgQEAgc3RhdGljIExpc3QgKnNldF9yZXR1 cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAq c2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwK IAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBsYW4g KnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxhbm5lckluZm8gKnJvb3QpOworc3RhdGljIHZv aWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lk IHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzMTYsNiArMTMxOSw1MCBA QCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZz ZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3Zh cmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5w YXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkgcXVlcnlf dHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl c193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBi b29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxh bm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOwor CWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICop IG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJ CS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtl cigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxr ZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5 c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9u IGFuIEluZGV4T25seVNjYW4KQEAgLTIwMTYsOCArMjA2Myw5IEBAIGNvcHlWYXIoVmFyICp2YXIp CiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJl c3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZv ciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENv bnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFu SW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmlu dmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9V UElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmlu ZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5p bnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJ TkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRh dGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3Jp YmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0su CkBAIC0yMTA3LDYgKzIxNTUsMTMgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290 LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBjb2xzOwogCQl9CiAJfQorCWVsc2UgaWYgKElz QShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJ CWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZWNvcmRfcGxhbl92YXJp YWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFtdmFyaWQpOworCX0KIH0KIAogLyoKQEAgLTIx MTYsNiArMjE3MSwxMCBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUg Km5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElFWFBSLCByZXBsYWNlIGl0IHdpdGggdGhl IGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3QtPm11bHRpZXhwcl9wYXJhbXM7IG90aGVy d2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVzdCBmb3IgcGFyYW5vaWEncyBzYWtlLCB3 ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRoZXIgY2FzZS4KKyAqCisgKiBJZiBpdCdz IGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGVz IGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGUuICBBbHNvLCBhc3Np Z24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1pZCIgdG8gdGhlIHBhcmFtZXRlcidzIHBvc2l0 aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxh bm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjEzNCw2ICsyMTkzLDQwIEBAIGZpeF9wYXJh bV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNv cHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJaW50CQkJbiA9IDA7CisJCWJvb2wJCWZv dW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBtb2RpZnkgb2JqZWN0ICovCisJCXAgPSAoUGFy YW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgorCQkgKiBOb3csIHdlIGNhbiBhY3R1YWxpemUg bGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5kIHdlIGNhbgorCQkgKiBjb21wbGV0ZSBwYXJh bWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVhY2hfb2lkKHZhcmlkLCByb290LT5nbG9iLT5z ZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAodmFyaWQgPT0gcC0+cGFyYW12YXJpZCkKKwkJ CXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJ CQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlyb290LT5nbG9i LT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlh YmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFtaWQgPSBu OworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICopIGNv cHlPYmplY3QocCk7CiB9CiAKQEAgLTIxOTUsNyArMjI4OCwxMCBAQCBmaXhfYWx0ZXJuYXRpdmVf c3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAg KiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRw bGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBm b3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGlu Zm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9t IHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICog YWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJl bGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBh cmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVzIGlu IHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlz IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgogICoK ICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNldCc6 IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIyMTcsNyArMjMxMyw4IEBAIGZp eF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNldCwg ZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAogCQly b290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8 fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5hdGl2 ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1cm4g Zml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNjEwLDYgKzM3 MDcsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBP aWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9u IHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24gdmFy aWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LgorICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3Bs YW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKQorewor CVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKwor CS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0t PmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXND YWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0 ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3Qt Pmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBl eHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90 IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBqb2ludHJlZS5jCmluZGV4IDg3ZGM2ZjU2YjU3Li4xZWJjODA4YTVlNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE1ODUsNiArMTU4NSw5IEBA IHB1bGxfdXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUs IFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRp b25zLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8 PSBzdWJxdWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNl c3Npb24gdmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNT ZXNzaW9uVmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoK IAkgKiBzdWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93 RnVuY3MsIG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2Ug ZmxhZ3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAyNmEzZTA1MDA4Ni4u MjNjYWZjNzNjM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYg KzI0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9y LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5o IgpAQCAtOTM2LDYgKzkzNywxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpu b2RlLCBtYXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBk b24ndCBzdXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlp ZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9w YXJhbGxlbF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJ CQlyZXR1cm4gdHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VY RUMgfHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFt LT5wYXJhbWlkKSkKIAkJewpAQCAtMjM5MSw2ICsyMzk5LDcgQEAgY29udmVydF9zYW9wX3RvX2hh c2hlZF9zYW9wX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBv ZiB0aGUgUGFyYW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1 bmN0aW9ucyB0byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMg dG8gdGhlaXIgY29udGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBz ZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTE3LDYgKzI1MjYsMjcgQEAgZXZhbF9j b25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJ CQl9CisJCQkJZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgor CQkJCQkJIGNvbnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJ CQkJYm9vbAkJdHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7 CisKKwkJCQkJZ2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlw TGVuLCAmdHlwQnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGUocGFyYW0t PnBhcmFtdmFyaWQsICZpc251bGwpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3Qo cGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJ CQkJCQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwK KwkJCQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0 eXBCeVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1 c3QgY29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MjIsNyArNDc1Miw4IEBAIGlubGlu ZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlk LAogCQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8 fAogCQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVl LT50YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0 KSAhPSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFp bDsKIAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0 ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDg5YTFjNzllOTg0Li4zOTgy MGI0ZjU0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTU4LDYgKzU4LDcg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rl cy9ub2RlRnVuY3MuaCIKQEAgLTE1Myw2ICsxNTQsNyBAQCBJbml0UGxhbkNhY2hlKHZvaWQpCiAJ Q2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5DYWNoZVN5c0NhbGxi YWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05T RVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxhbkNhY2hlU3lzQ2Fs bGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVkFSSUFC TEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwogfQogCiAvKgpAQCAt MjE3Myw3ICsyMTc1LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBPaWQgcmVs aWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hlIGludmFs IGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcworICoJCVN5 c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lELCBOQU1F U1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJ R05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgogICogSW52 YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmll ZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJlciBvZiB0 aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCA3ODIy OTFkOTk5OC4uMDkzNjIyZmJkYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIw MjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0p CiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShh cmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkg ICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJ fQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0 aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCA2NTY3NzU5NTk1 ZC4uZWM1Njg1ZGY3NzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xNzksNiArMTc5LDkgQEAg dHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3Jz ICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRy KHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8q IG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5v ZGUgKi8KQEAgLTUyOSw2ICs1MzIsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFj ZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0 ZW0gKi8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxl cyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBU aGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUg aXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNGY1OWUzMGQ2MmQuLjM2MjI2OTljZmM5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTMxLDYgKzEzMSw5IEBAIHR5cGVkZWYgc3RydWN0IFBs YW5uZWRTdG10CiAJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQgKi8KIAlOb2Rl CSAgICp1dGlsaXR5U3RtdDsKIAorCS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklBQkxFIFBhcmFtcyAq LworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24g aW4gc291cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVlcnkpICovCiAJLyogc3RhcnQgbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9uOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggYi9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm1haW4uaAppbmRleCA5ZDNkZWJjYWIyOC4uYmE0MzA1ZDYxYTcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL29w dGltaXplci9wbGFubWFpbi5oCkBAIC0xMzEsNCArMTMxLDYgQEAgZXh0ZXJuIHZvaWQgcmVjb3Jk X3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIGZ1bmNpZCk7 CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJv b3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193 YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpOwogCitleHRlcm4gdm9pZCBw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCk7CisKICNlbmRp ZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCi0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20250613-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nk69 RnJvbSA2ZDRhZjRiOWRmMzBhNWNiYTdiZDFiMDk3MDA3ODQ3MDQxOGIwOTlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDA3OjI3OjI3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi8xNV0gc2Vzc2lvbiB2YXJpYWJsZSBmZW5jZXMgcGFyc2luZwoKVGhlIHNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIHF1ZXJ5IG9ubHkgaW5zaWRlIHRoZSB2YXJpYWJsZSBm ZW5jZS4KVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBWQVJJQUJMRSh2YXJuYW1lKSwgdGhhdCBlbGlt aW5hdGVzIGEgcmlzayBvZgpjb2xsaXNpb24gYmV0d2VlbiB2YXJpYWJsZSBhbmQgY29sdW1uIGlk ZW50aWZpZXIuCgpUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlIHVzZWQgYXMgcGFyYW1l dGVycyBvZiBDQUxMIG9yIEVYRUNVVEUKY29tbWFuZHMuIFRoZXNlIGNvbW1hbmRzIGV2YWx1YXRl cyBhcmd1bWVudHMgYnkgZGlyZWN0IGNhbGwgb2YgZXhwcmVzc2lvbgpleGVjdXRvciwgYW5kIGRp cmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CndpbGwgYmUgaW1wbGVtZW50ZWQgbGF0ZXIgKGluIG5leHQgc3RlcCkuCi0tLQogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgfCAgMTEgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgICAgIHwgMjg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMg ICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgIHwgIDI4 ICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgfCAyMDggKysrKysrKysr KysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgIHwgICA3ICsKIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgIHwgIDQ2ICsrKysrCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyB8ICAyNCArKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmggICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgIHwgIDEy ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICB8ICAgNSArCiBzcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaCAgICAgICB8ICAgNCArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAg ICAgICB8ICAgMyArLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgfCAgIDEg KwogMTggZmlsZXMgY2hhbmdlZCwgNjYxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CmluZGV4IDRkNzlhYzk2ZTYyLi5iY2I2MjcyOTc3MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM4Niw2ICs1Mzg2LDE3 IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0 ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSBob2xk cyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUgaXMgcHJpdmF0ZQogICAgIHRv IGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgogICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBhbiBxdWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSBjYW4gYmUgdXNlZCBvbmx5IGluc2lkZQorICAgIDxmaXJzdHRlcm0+dmFyaWFibGUgZmVuY2U8 L2ZpcnN0dGVybT4uIFRoaXMgaXMgc3BlY2lhbCBzeW50YXggZm9yCisgICAgc2Vzc2lvbiB2YXJp YWJsZSBpZGVudGlmaWVyLCBhbmQgY2FuIGJlIHVzZWQgb25seSBmb3Igc2Vzc2lvbiB2YXJpYWJs ZQorICAgIGlkZW50aWZpZXIuIFRoZSBzcGVjaWFsIHN5bnRheCBmb3IgYWNjZXNzaW5nIHNlc3Np b24gdmFyaWFibGVzIHJlbW92ZXMKKyAgICByaXNrIG9mIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJp YWJsZSBpZGVudGlmaWVycyBhbmQgY29sdW1uIG5hbWVzLgorPHByb2dyYW1saXN0aW5nPgorU0VM RUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9w YXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25h bWVzcGFjZS5jCmluZGV4IGI0NTA0NzFlMDYzLi5jZGJlOWZmNGZjYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25h bWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0OTcsMjk1IEBAIE5hbWVzRnJvbUxpc3QoTGlzdCAqbmFt ZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogLS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUg LSB0cnkgdG8gZmluZCBhIHZhcmlhYmxlIGZyb20gYSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgor ICogUmV0dXJucyB0aGUgT0lEIG9mIHRoZSB2YXJpYWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4K KyAqCisgKiAibmFtZXMiIGlzIGEgbGlzdCBvZiB1cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3Nz aWJsZSBtZWFuaW5ncyBhcmU6CisgKiAtIHZhcmlhYmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJj aF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUKKyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAo c2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmli dXRlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEu dmFyaWFibGUuYXR0cmlidXRlCisgKgorICogSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkg dG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwgIm5vdF91bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0 cnVlLgorICoKKyAqIFVubGVzcyAibm9lcnJvciIgaXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2Vk IGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gZm91cgorICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0 LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJhc2UgaXMgbm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRo aXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4K KyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUgaXMgaWRlbnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJh dHRybmFtZSIsIG90aGVyd2lzZSB0aGUKKyAqIHBhcmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAq CisgKiBUaGUgaWRlbnRpZmllZCBzZXNzaW9uIHZhcmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGgg YW4gQWNjZXNzU2hhcmVMb2NrLgorICogLS0tLS0KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxl KExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9l cnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0g SW52YWxpZE9pZDsKKwl1aW50NjQJCWludmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7 CisKKwkvKgorCSAqIERETCBvcGVyYXRpb25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBu YW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBzdWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRl IGludmFsaWRhdGlvbiBtZXNzYWdlcywgd2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55 IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRp b24sCisJICogYW5kIHJldHJ5IHVudGlsIGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24g bWVzc2FnZXMgc2hvdyB1cCBvciAoMikKKwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgor CSAqLworCWZvciAoOzspCisJeworCQlOb2RlCSAgICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAg ICpmaWVsZDIgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpm aWVsZDQgPSBOVUxMOworCQljaGFyCSAgICphID0gTlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7 CisJCWNoYXIJICAgKmMgPSBOVUxMOworCQljaGFyCSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFy b2lkX3dpdGhvdXRfYXR0ciA9IEludmFsaWRPaWQ7CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIg PSBJbnZhbGlkT2lkOworCisJCSpub3RfdW5pcXVlID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5V TEw7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFs aWRNZXNzYWdlQ291bnRlcjsKKworCQlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJewor CQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJ c0EoZmllbGQxLCBTdHJpbmcpKTsKKworCQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwg c3RyVmFsKGZpZWxkMSksIHRydWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIDI6CisJCQkJZmll bGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJ CQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsK KworCQkJCWlmIChJc0EoZmllbGQyLCBTdHJpbmcpKQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3Ro IGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5cGUgKi8KKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOwor CisJCQkJCS8qCisJCQkJCSAqIGEuYiBjYW4gbWVhbiAic2NoZW1hIi4idmFyaWFibGUiIG9yCisJ CQkJCSAqICJ2YXJpYWJsZSIuImF0dHJpYnV0ZSIuICBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQK KwkJCQkJICogcmV0dXJucyBJbnZhbGlkT2lkIHdpdGggbm90X3VuaXF1ZSBmbGFnLCB3aGVuIGJv dGgKKwkJCQkJICogaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJICovCisJCQkJ CXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKwkJCQkJ dmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOworCQkJCX0K KwkJCQllbHNlCisJCQkJeworCQkJCQkvKiB0aGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNhbiBiZSBz dGFyIHRvbyAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgQV9TdGFyKSk7CisKKwkJCQkJLyoK KwkJCQkJICogVGhlIHN5bnRheCBpZGVudC4qIGlzIHVzZWQgb25seSBieSByZWxhdGlvbiBhbGlh c2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0aGlzIGlkZW50aWZpZXIgY2Fubm90IGJlIGEgcmVmZXJl bmNlIHRvCisJCQkJCSAqIHNlc3Npb24gdmFyaWFibGUuCisJCQkJCSAqLworCQkJCQlyZXR1cm4g SW52YWxpZE9pZDsKKwkJCQl9CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9h dHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91 bmlxdWUgPSB0cnVlOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQor CQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJ CQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElz VmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJ CQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNl IDM6CisJCQkJeworCQkJCQlib29sCQlmaWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJ CWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7 CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEs IFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9 IHN0clZhbChmaWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElz QShmaWVsZDMsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKwor CQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5jIGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxl IG9yCisJCQkJCQkgKiBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlLgorCQkJCQkJICoKKwkJCQkJ CSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJ CQkJCQkgKiBib3RoIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJ CQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGlu dGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJpYWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0 dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4KKwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhf YXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICog Y2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAq IHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChz dHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsK KwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRf YXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJ CWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJ cmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRf d2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJ CQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0 dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRy KSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJ CQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJ CSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0K KworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdlIGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4g KHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dlZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJl bmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9l cnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJt c2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAor CQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsK KworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJ CQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsK KwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEs IFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2Vy dChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJ CWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8q CisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEiIGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hl Y2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15 RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsKKwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUg bm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KSkpOworCQkJCQl9CisKKwkJCQkJaWYgKElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCXsKKwkJ CQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJ CUFzc2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOwor CQkJCQl9CisKKwkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJs ZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJaWYg KCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAo dG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCX0KKworCQkvKgorCQkgKiBJZiwg dXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0IHRpbWUsIHRo ZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQgZGlkIG5vdCBj aGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2UncmUgZG9uZS4KKwkJICoKKwkJICog SWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9ja2VkIHRoZSB2YXJpYWJsZSB0aGF0 IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9uZSB0aGF0IGRv ZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4KKwkJICovCisJCWlmIChyZXRyeSkK KwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJCQlicmVhazsKKworCQkJaWYgKE9p ZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJl bGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCisJCS8qCisJ CSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFsc28gYWNjZXB0IGFueSBwZW5kaW5n IGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdlIGdvdCBiYWNrIEludmFsaWRPaWQs IGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGluZyB0byBsb2Nr LCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdlcworCQkgKiBhbnl3YXksIHRvIGZs dXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJCSAqIGxpbmdl cmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlBY2NlcHRJbnZhbGlk YXRpb25NZXNzYWdlcygpOworCQllbHNlCisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkvKgorCQkgKiBJZiBu byBpbnZhbGlkYXRpb24gbWVzc2FnZSB3ZXJlIHByb2Nlc3NlZCwgd2UncmUgZG9uZSEKKwkJICov CisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQli cmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9 IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZhcmlkOworfQorCiAvKgogICogRGVjb25zdHJ1 Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHBy ZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRl eCAzNGI2NDEwZDZhMi4uZmNhZGNkOWJjM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTM0 MSw2ICszNDEsMTQgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJl ZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAorCS8qCisJICog VGhlIGFyZ3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVz c2lvbiBleGVjdXRvcgorCSAqIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Np b24gdmFyaWFibGVzIHlldC4gSXQgd2lsbCBiZQorCSAqIGVuYWJsZWQgbGF0ZXIuIFRoaXMgY2Fz ZSBzaG91bGQgYmUgYmxvY2tlZCBwYXJzZXIgYnkKKwkgKiBleHByX2tpbmRfYWxsb3dzX3Nlc3Np b25fdmFyaWFibGVzLCBzbyBvbmx5IGFzc2VydGlvbnMgaXMgdXNlZCBoZXJlLgorCSAqLworCUFz c2VydCghcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpOworCiAJLyogUHJlcGFyZSB0aGUg ZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4 cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA3YmM4MjM1 MDdmMS4uY2Q2MDljNmU0NzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjczLDYgKzE2NzMs OSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1BhcmFtUmVmOgog CQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJCQlicmVhazsK KwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlhYmxlRmVuY2Ug KikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0OgogCQkJbG9j ID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOwpAQCAtNDcw NSw2ICs0NzA4LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2Rl LAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVG ZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGluZyBpbnRlcmVz dGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCmluZGV4IDM0ZjdjMTdmNTc2Li45NWJiMDYyMGYzOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j CkBAIC02MDcsNiArNjA3LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9o YXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0 U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9x dWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTAzMiw2ICsxMDMzLDcgQEAgdHJh bnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQpCiAK IAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhh c1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2Nv bGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xNDk3LDYgKzE0OTksNyBAQCB0cmFuc2Zvcm1T ZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhh c1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+ cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNz aW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKQEAg LTE3MjMsNiArMTcyNiw3IEBAIHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3Rh dGUtPnBfam9pbmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9o YXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsK IApAQCAtMTk3NCw2ICsxOTc4LDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBz dGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBf aGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAog CWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDQ5LDYgKzI0NTQsNyBAQCB0cmFu c2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCkKIAlx cnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFz VGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBz dGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBx cnkpOwogCkBAIC0yNTE2LDYgKzI1MjIsNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFz U3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAK QEAgLTI5OTIsNiArMjk5OSw4IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCQkgICAoTG9ja2luZ0NsYXVzZSAqKSBs Zmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3Rh dGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBz dGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBiZSBkb25lIGFmdGVyIGNvbGxhdGlvbnMsIGZv ciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJzICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAwMWE5NzMx Y2UyOC4uNmQ3YzhjNTZjOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI0LDcgKzUyNCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JZGVmX2FyZyBjb2x1bW5FbGVtIHdoZXJl X2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZQogCQkJCWFfZXhwciBiX2V4cHIgY19leHBy IEFleHByQ29uc3QgaW5kaXJlY3Rpb25fZWwgb3B0X3NsaWNlX2JvdW5kCiAJCQkJY29sdW1ucmVm IGhhdmluZ19jbGF1c2UgZnVuY190YWJsZSB4bWx0YWJsZSBhcnJheV9leHByCi0JCQkJT3B0V2hl cmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZworCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2Rl Zl9hcmcgdmFyaWFibGVfZmVuY2UKICV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2Rf bGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2Rl Zl9saXN0CiAldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3Zlcmxh cHMKQEAgLTg4MSw3ICs4ODEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICovCiAlbm9u YXNzb2MJVU5CT1VOREVEIE5FU1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRl bmNlIGFzIElERU5UICovCiAlbm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JP VVBTIFBSRUNFRElORyBGT0xMT1dJTkcgQ1VCRSBST0xMVVAKLQkJCVNFVCBLRVlTIE9CSkVDVF9Q IFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRICisJCQlTRVQgS0VZUyBPQkpFQ1RfUCBT Q0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSCBWQVJJQUJMRQogJWxlZnQJCU9wIE9QRVJB VE9SCQkvKiBtdWx0aS1jaGFyYWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICov CiAlbGVmdAkJJysnICctJwogJWxlZnQJCScqJyAnLycgJyUnCkBAIC0xNTYzNyw2ICsxNTYzNywx OSBAQCBjX2V4cHI6CQljb2x1bW5yZWYJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCQllbHNlCiAJ CQkJCQkkJCA9ICQyOwogCQkJCX0KKwkJCXwgdmFyaWFibGVfZmVuY2Ugb3B0X2luZGlyZWN0aW9u CisJCQkJeworCQkJCQlpZiAoJDIpCisJCQkJCXsKKwkJCQkJCUFfSW5kaXJlY3Rpb24gKm4gPSBt YWtlTm9kZShBX0luZGlyZWN0aW9uKTsKKworCQkJCQkJbi0+YXJnID0gKE5vZGUgKikgJDE7CisJ CQkJCQluLT5pbmRpcmVjdGlvbiA9IGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpOwor CQkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCSQkID0gJDE7 CisJCQkJfQogCQkJfCBjYXNlX2V4cHIKIAkJCQl7ICQkID0gJDE7IH0KIAkJCXwgZnVuY19leHBy CkBAIC0xNzAxMiw2ICsxNzAyNSwxNyBAQCBjYXNlX2FyZzoJYV9leHByCQkJCQkJCQkJeyAkJCA9 ICQxOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCit2YXJp YWJsZV9mZW5jZToKKwkJCVZBUklBQkxFICcoJyBhbnlfbmFtZSAnKScKKwkJCQl7CisJCQkJCVZh cmlhYmxlRmVuY2UgKnZmID0gbWFrZU5vZGUoVmFyaWFibGVGZW5jZSk7CisKKwkJCQkJdmYtPnZh cm5hbWUgPSAkMzsKKwkJCQkJdmYtPmxvY2F0aW9uID0gQDM7CisJCQkJCSQkID0gKE5vZGUgKikg dmY7CisJCQkJfQorCQk7CisKIGNvbHVtbnJlZjoJQ29sSWQKIAkJCQl7CiAJCQkJCSQkID0gbWFr ZUNvbHVtblJlZigkMSwgTklMLCBAMSwgeXlzY2FubmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CmluZGV4IGQ2NjI3NjgwMWM2Li4xMzRiNWE2YjA5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CkBAIC0xNSw2ICsxNSw3IEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAi Y2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFu ZHMuaCIKQEAgLTc3LDYgKzc4LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRl Q2xhdXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpz b25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25P YmplY3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbkFycmF5 Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTA2LDcgKzEwOCw5IEBAIHN0YXRp YyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1l LAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRpb24pOwogc3Rh dGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOwotCitzdGF0aWMgTm9k ZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJ CSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJ CQkJCSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CiAKIC8qCiAgKiB0cmFuc2Zvcm1F eHByIC0KQEAgLTM3MCw2ICszNzQsMTAgQEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJcmVzdWx0ID0gdHJhbnNmb3JtSnNvbkZ1bmNFeHBy KHBzdGF0ZSwgKEpzb25GdW5jRXhwciAqKSBleHByKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9W YXJpYWJsZUZlbmNlOgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtVmFyaWFibGVGZW5jZShwc3RhdGUs IChWYXJpYWJsZUZlbmNlICopIGV4cHIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8q IHNob3VsZCBub3QgcmVhY2ggaGVyZSAqLwogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhleHByKSk7CkBAIC05MDMsNiArOTExLDEzNSBA QCB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQog CXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4 cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9u IHZhcmlhYmxlcyBjYW4gYmUgdXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRl cnMgY2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGlu IERETCBjb21tYW5kcyBvciBpbiBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNh biBiZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2lu ZHMKKyAqIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUg cHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVz YWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMg bm90CisgKiBleGlzdCIgb3IgYSAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBl cnJvciBtZXNzYWdlIHNob3VsZCBiZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4 cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSBy YWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAor ZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9r aW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkK Kwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3Qg aGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIHNlc3Npb24gdmFyaWFibGVzIGFs bG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5f T046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VMRUNUOgorCQljYXNlIEVYUFJfS0lORF9G Uk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRf SEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRP V19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19PUkRFUjoKKwkJY2FzZSBFWFBS X0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVf Uk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX0dST1VQUzoKKwkJY2FzZSBFWFBS X0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJ Y2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hF TjoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9H Uk9VUF9CWToKKwkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJ U1RJTkNUX09OOgorCQljYXNlIEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZG U0VUOgorCQljYXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVF UzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJCXJlc3VsdCA9IHRydWU7CisJ CQlicmVhazsKKworCQkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgbm90IGFsbG93ZWQgKi8KKwkJY2Fz ZSBFWFBSX0tJTkRfSU5TRVJUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJB TUVURVI6CisJCWNhc2UgRVhQUl9LSU5EX0NBTExfQVJHVU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5E X0NIRUNLX0NPTlNUUkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2Fz ZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RF RkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9L SU5EX0lOREVYX1BSRURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoK KwkJY2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJ T05fQk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNl IEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5H OgorCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9D T0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2UgRVhQUl9LSU5E X0NPUFlfV0hFUkU6CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJCWJyZWFrOworCX0KKworCXJldHVy biByZXN1bHQ7Cit9CisKK3N0YXRpYyBOb2RlICoKK3RyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFy c2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJsZUZlbmNlICp2ZikKK3sKKwlOb2RlCSAgICpyZXN1bHQ7 CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsK Kwlib29sCQlub3RfdW5pcXVlOworCisJLyogVmFyaWFibGVGZW5jZSBjYW4gYmUgdXNlZCBvbmx5 IGluIGNvbnRleHQgd2hlbiB2YXJpYWJsZXMgYXJlIHN1cHBvcnRlZCAqLworCWlmICghZXhwcl9r aW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRl ZCBoZXJlIiksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikp KTsKKworCS8qIHRha2VzIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZSh2Zi0+dmFybmFtZSwgJmF0dHJuYW1lLCAm bm90X3VuaXF1ZSwgZmFsc2UpOworCisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNn KCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJ CU5hbWVMaXN0VG9TdHJpbmcodmYtPnZhcm5hbWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCXsK KwkJT2lkCQkJdHlwaWQ7CisJCWludDMyCQl0eXBtb2Q7CisJCU9pZAkJCWNvbGxpZDsKKworCQln ZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5 cG1vZCwKKwkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCXJlc3VsdCA9IG1ha2VQYXJhbVNlc3Np b25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJICB2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29s bGlkLAorCQkJCQkJCQkJCSAgYXR0cm5hbWUsIHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJ CQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBU ZXN0IHdoZXRoZXIgYW4gYV9leHByIGlzIGEgcGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8K IHN0YXRpYyBib29sCiBleHBySXNOdWxsQ29uc3RhbnQoTm9kZSAqYXJnKQpAQCAtMzEyMiw2ICsz MjU5LDc1IEBAIG1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUs IEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpCiAJcmV0dXJuIChOb2RlICopIG50OwogfQog CisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0byBzZXNzaW9u IHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5 cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKQor eworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOworCisJcGFy YW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFy aWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5 cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0gTlVMTCkKKwl7CisJCVR1 cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRlc2MgPSBsb29rdXBfcm93dHlw ZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJCWlmICghdHVwZGVzYykK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSBcIiVzXCIs IHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQp KSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJCWZv ciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJp YnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJCQlpZiAoc3RyY21wKGF0 dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJCQkhYXR0LT5hdHRpc2Ry b3BwZWQpCisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28gZ2VuZXJhdGUgYSBGaWVsZFNlbGVjdCBl eHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBtYWtlTm9kZShGaWVsZFNl bGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJhbTsKKwkJCQlmc2VsZWN0 LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cGUgPSBhdHQtPmF0dHR5 cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0dHlwbW9kOworCQkJCS8q IHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCQlm c2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsKKworCQkJCVJlbGVhc2VU dXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZzZWxlY3Q7CisJCQl9CisJ CX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiBcIiVzXCIgaW4g dmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisK IC8qCiAgKiBQcm9kdWNlIGEgc3RyaW5nIGlkZW50aWZ5aW5nIGFuIGV4cHJlc3Npb24gYnkga2lu ZC4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCmluZGV4IDUxZDc3MDNlZmY3Li4yNDRlZmNk ZGYzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKQEAgLTQwNSw2ICs0MDUsNyBAQCB0cmFu c2Zvcm1NZXJnZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNZXJnZVN0bXQgKnN0bXQpCiAKIAlx cnktPmhhc1RhcmdldFNSRnMgPSBmYWxzZTsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5w X2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNGFiYTBkOWQ0ZDUuLmNmMDFiZmY2 NWE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC0yMDM0LDYgKzIwMzQsMTMgQEAg RmlndXJlQ29sbmFtZUludGVybmFsKE5vZGUgKm5vZGUsIGNoYXIgKipuYW1lKQogCQkJCQkJIChp bnQpICgoSnNvbkZ1bmNFeHByICopIG5vZGUpLT5vcCk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQl7CisJCQkJLyogcmV0dXJuIGxhc3QgZmllbGQgbmFtZSAq LworCQkJCSpuYW1lID0gc3RyVmFsKGxsYXN0KCgoVmFyaWFibGVGZW5jZSAqKSBub2RlKS0+dmFy bmFtZSkpOworCQkJCXJldHVybiAyOworCQkJfQorCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQli cmVhazsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggM2Q2ZTZiZGJmZDIuLjUy Yjg2NzNlZWQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0zNyw2ICszNyw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tb24va2V5d29yZHMu aCIKQEAgLTUzNCw2ICs1MzUsNyBAQCBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfZnVuY3Rpb25fbmFt ZShPaWQgZnVuY2lkLCBpbnQgbmFyZ3MsCiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfb3BlcmF0b3Jf bmFtZShPaWQgb3BlcmlkLCBPaWQgYXJnMSwgT2lkIGFyZzIpOwogc3RhdGljIHZvaWQgYWRkX2Nh c3RfdG8oU3RyaW5nSW5mbyBidWYsIE9pZCB0eXBpZCk7CiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVf cXVhbGlmaWVkX3R5cGVfbmFtZShPaWQgdHlwaWQpOworc3RhdGljIGNoYXIgKmdlbmVyYXRlX3Nl c3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogc3RhdGljIHRleHQgKnN0cmluZ190b190 ZXh0KGNoYXIgKnN0cik7CiBzdGF0aWMgY2hhciAqZmxhdHRlbl9yZWxvcHRpb25zKE9pZCByZWxp ZCk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsb3B0aW9ucyhTdHJpbmdJbmZvIGJ1ZiwgRGF0dW0gcmVs b3B0aW9ucyk7CkBAIC04ODAzLDYgKzg4MDUsMTQgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFy YW0sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJfQogCX0KIAorCS8qIHRyYW5zbGF0ZSBw YXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFibGUgbmFtZSAqLworCWlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5i dWYsICJWQVJJQUJMRSglcykiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBOb3QgUEFS QU1fRVhFQywgb3IgY291bGRuJ3QgZmluZCByZWZlcmVudDoganVzdCBwcmludCAkTi4KIAkgKgpA QCAtMTM1NjYsNiArMTM1NzYsNDIgQEAgZ2VuZXJhdGVfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxp ZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5IGZvciBhIHNlc3Npb24gdmFy aWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1bHQgaW5jbHVkZXMgYWxsIG5l Y2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgorICovCitzdGF0aWMgY2hhciAq CitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBs ZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisJ Y2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisKKwl0dXAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBm b3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUp IEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7 CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJbnNwbmFtZSA9IGdldF9uYW1l c3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJZWxzZQorCQluc3Bu YW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5h bWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gcmVzdWx0 OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVjZSBhIFRFWFQgZGF0dW0uCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBmZGI3ZWFlZjc1YS4uMmMxNDg4 YTRmZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zOTE5LDMgKzM5MTks MjcgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCkKIAogCXJldHVy biB2YXJuYW1lc3BhY2U7CiB9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0eXBlLCB0eXBtb2QgYW5k IGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwordm9pZAorZ2V0X3Nl c3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJpZCwgT2lkICp0eXBpZCwg aW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sKKwlIZWFwVHVwbGUJdHVw OworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNz aW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxl KSBHRVRTVFJVQ1QodHVwKTsKKworCSp0eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisJKnR5cG1v ZCA9IHZhcmZvcm0tPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gdmFyZm9ybS0+dmFyY29sbGF0aW9u OworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRl eCBiZGFjMGMxM2JlYy4uYjIyMWFkYWZkMmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAt OTgsNiArOTgsOCBAQCBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChjb25zdCBj aGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShP aWQgdHlwaWQpOwogCiBleHRlcm4gYm9vbCBWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpOwor ZXh0ZXJuIE9pZAlJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUs CisJCQkJCQkJIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBGdW5j Q2FuZGlkYXRlTGlzdCBGdW5jbmFtZUdldENhbmRpZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJ CQkJCSAgIGludCBuYXJncywgTGlzdCAqYXJnbmFtZXMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggOGFiZTNmMGQ0MDkuLjQ2NTQ1NzRjMDZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0x NjcsNiArMTY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dTZWN1cml0 eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhhcyBhZGRl ZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29s CQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTMyMSw2ICszMjMsMTYgQEAgdHlwZWRlZiBz dHJ1Y3QgUGFyYW1SZWYKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCiB9IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVGZW5jZSAt IGVuc3VyZSBzbyBmaWVsZHMgd2lsbCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJsZQorICov Cit0eXBlZGVmIHN0cnVjdCBWYXJpYWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0 CSAgICp2YXJuYW1lOwkJLyogdmFyaWFibGUgbmFtZSAoU3RyaW5nIG5vZGVzKSAqLworCVBhcnNl TG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30g VmFyaWFibGVGZW5jZTsKKwogLyoKICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0 Zml4IGV4cHJlc3Npb25zCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMDE1MTBiMDFiNjQu LmRjNTkyNjAyYzY1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4LDYgKzM3OCw4IEBAIHR5 cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNvbnRhaW4g dGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAxNiBiaXRz IGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQYXJhbSBp cyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisgKgkJUEFS QU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2 YXJpYWJsZQorICoJCQkJKHBhcmFtdmFyaWQgaG9sZHMgdGhlIHZhcmlhYmxlJ3MgT0lEKS4KICAq LwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzg1LDYgKzM4Nyw3IEBAIHR5cGVkZWYg ZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVM VElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0 IFBhcmFtCkBAIC0zOTcsNiArNDAwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJ cGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBv ZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29sbGlk IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2YgdXNlZCBzZXNz aW9uIHZhcmlhYmxlIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLworCU9pZAkJCXBhcmFtdmFyaWQg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmgKaW5kZXggZjdkMDdjODQ1NDIuLjg0ZTg4Njk0MGQ4IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJv b2wJCXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFz TW9kaWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAg KnBfbGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQg Ki8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5j bHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA4N2UxZmU2MzZiOS4uZjUxNjBkZTY3ZDkgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0yMTQsNiArMjE0LDEwIEBAIGV4dGVybiBjaGFyICpnZXRf c3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCiBleHRlcm4g Y2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogZXh0ZXJuIE9pZAln ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsCisJCQkJCQkJ CQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJ CQkJCU9pZCAqY29sbGlkKTsKIAogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9l bGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFp biBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYwppbmRleCBiYjk5NzgxYzU2ZS4uMWNmZjVlZmE2ZjcgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYwpAQCAtODI2NCw3ICs4MjY0LDggQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NR TF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZz ZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJ CXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQog CQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBiZGNk YmQzZjU3Zi4uNjYxYjI3ZTVmMmMgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMTc5 LDYgKzMxNzksNyBAQCBWYWxpZGF0b3JNb2R1bGVSZXN1bHQKIFZhbHVlc1NjYW4KIFZhbHVlc1Nj YW5TdGF0ZQogVmFyCitWYXJpYWJsZUZlbmNlCiBWYXJCaXQKIFZhckNoYXIKIFZhclBhcmFtU3Rh dGUKLS0gCjIuNDkuMAoK --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20250613-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nkf10 RnJvbSA3YjAzMmJkOTNlNjBiNGIyNzRmN2UxNDdjN2VlNzkyYzE4Mzk2ZTliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDIyOjU0OjA5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8xNV0gc3VwcG9ydCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgcGdfZHVtcAoKVGhp cyBwYXRjaCBlbmhhbmNpbmcgcGdfZHVtcCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzLgot LS0KIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmlu L3BnX2R1bXAvZHVtcHV0aWxzLmMgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYyB8ICAgOSArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgIHwg MTkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCAgICAgICAgICAgIHwgIDE1ICsrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAg ICAgIHwgICA3ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICB8ICA2NCAr KysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICB8ICAgMSArCiA5 IGZpbGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IGFhMTU4OWUz MzMxLi44NjM2MGJkNmQ5NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBAIGdldFNjaGVt YURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJl YWRpbmcgc3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0 aW9uVGFibGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFibGVzIik7CisJ Z2V0VmFyaWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90IG5lZWRlZCBh bnkgbG9uZ2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5j CmluZGV4IDczY2UzNDM0NmIyLi5jYmNhN2MzNDNhMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTE0 LDYgKzUxNCwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOwogCQlD T05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAi VkFSSUFCTEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMiKSA9PSAwKQor CXsKKwkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BSSVYoJ3cnLCAi VVBEQVRFIik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGFm MDAwN2ZiNmQyLi43NjM1NjUyNGFmMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTM0LDEyICsxMzQs MTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVuY3Rpb247 CiAJaW50CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJs ZTsKIAlTaW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5j dGlvbk5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5n TGlzdCBzY2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7 CiAJU2ltcGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFi bGVOYW1lczsKIAogCWludAkJCXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8qIHBhcmFt ZXRlcnMgdG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK aW5kZXggMTk3YzEyOTVkOTMuLjQ0Mzg2OTcyNWQyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9h cmNoaXZlci5jCkBAIC0zMTc5LDYgKzMxNzksMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50 cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFz aW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQog CQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklB QkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1 cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJ IXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcp KQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAt Mzc0Miw2ICszNzUwLDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1Ziwg Y29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05B UlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIp ID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwg IlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyog bm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNF IikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMzc0MzJlNjZlZmQuLjVkODc2MjUzOGJkIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKQEAgLTM3MCw2ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24o QXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9u UmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJy aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpm b3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBC dWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsK QEAgLTU1MTIsNiArNTUxMywxODggQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29p ZChBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0 X3Bvc3NpYmxlX2ZyZWVfb2lkOwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdldCBp bmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFyY2hp dmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCVZh cmlhYmxlSW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lkOwor CWludAkJCWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5 cGU7CisJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJaV92 YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCWlu dAkJCWksCisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkK KwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJLyogZ2V0IHRo ZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJ CQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAg ICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5 cG5hbWUsXG4iCisJCQkJCSAgIiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50 eXBjb2xsYXRpb24gIgorCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4i CisJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZh cmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgor CQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRc biIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9J TiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCki KTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQ TEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFm bnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7 CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFj ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0 eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9u Iik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJh Y2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVy KHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXpl b2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJ CVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFS SUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9p ZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2 YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2Ug PQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNw YWNlKSkpOworCisJCXZhcmluZm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9u ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmlu Zm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7 CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJ dmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9 IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8g bm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251 bGwocmVzLCBpLCBpX3ZhcmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBE VU1QX0NPTVBPTkVOVF9BQ0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09 IDApCisJCQlwZ19sb2dfd2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMg dG8gYmUgaW52YWxpZCIsCisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyog ZGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2Jq ZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lk KHZhcmluZm9baV0udmFydHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0u ZG9iaiwgdnR5cGUtPmRvYmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJv eVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1w IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRp YyB2b2lkCitkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVm ZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJ Y29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lw IGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9w dC0+ZHVtcFNjaGVtYSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJk dXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZv LT52YXJ0eXBuYW1lOworCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwor CWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBx dWFsdmFybmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJM RSAlcyBBUyAlcyIsCisJCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9p ZElzVmFsaWQodmFyY29sbGF0aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29s bCA9IGZpbmRDb2xsYXRpb25CeU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlm aWVkRHVtcGFibGUoY29sbCkpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xu Iik7CisKKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElP TikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRv YmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUs CisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5h bWUsCisJCQkJCQkJCSAgLm93bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVz Y3JpcHRpb24gPSAiVkFSSUFCTEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVf REFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5k cm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlp ZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENv bW1lbnQoZm91dCwgIlZBUklBQkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8t PnJvbG5hbWUsCisJCQkJCXZhcmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVt cElkKTsKKworCS8qIGR1bXAgQUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAg JiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1 cChmbXRJZCh2YXJpbmZvLT5kb2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8t PmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBO VUxMLAorCQkJCXZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmlu Zm8tPnJvbG5hbWUsCisJCQkJJnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOwor CX0KKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVl cnkpOworCisJZnJlZShxdWFsdmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBn cmFkZV9zZXRfdHlwZV9vaWRzX2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJ IFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLApAQCAtMTE1NTgsNiArMTE3NDEsOSBAQCBkdW1w RHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNh c2UgRE9fUkVMX1NUQVRTOgogCQkJZHVtcFJlbGF0aW9uU3RhdHMoZm91dCwgKGNvbnN0IFJlbFN0 YXRzSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVt cFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2Fz ZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJ CQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE2MDEyLDYgKzE2MTk4LDkg QEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRh Y2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9MQVJHRU9CSkVDVDoKIAkJCXR5cGUgPSAiTEFSR0Ug T0JKRUNUUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0eXBl ID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4ndCBn ZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBkZWZh dWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE5NzUwLDYgKzE5OTM5LDcgQEAgYWRkQm91bmRhcnlE ZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNl IERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRB Q0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2FzZSBE T19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDc0MTdlYWI2YWVm Li4xYzcyMmU0OGRlNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgZW51 bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZBUklB QkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAgLTcz NSw2ICs3MzYsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1 YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0IGlz IHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3RydWN0 IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNsIGRh Y2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNv bGxhdGlvbjsKKwljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1w dHkgc3RyaW5nICovCit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1 bmN0aW9ucwogICovCkBAIC04MTgsNSArODMyLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRp b25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGlu dCBudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0 KTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4 dGVybiB2b2lkIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8q IFBHX0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDBiMDk3Nzc4OGYxLi5iMzRm MzQxOGY2NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRi T2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAog CVBSSU9fTEFSR0VfT0JKRUNULAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VO REFSWSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNF X1NFVCwKQEAgLTExOSw2ICsxMjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVBy aW9yaXR5W10gPQogCVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hd ID0gUFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtE T19WQVJJQUJMRV0gPSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAog CVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9 IFBSSU9fU1RBVFNFWFQsCkBAIC0xNTMzLDYgKzE1MzUsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9i amVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkg IlJFTEFUSU9OIFNUQVRJU1RJQ1MgRk9SICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmot Pm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2Ug RE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUg JXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJ c25wcmludGYoYnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAzODZl MjFlMGM1OS4uNjYzZDMxYTQ1NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC05NjAs NiArOTYwLDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwg fSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZz ID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScg PT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgV0lUSCBcRQpAQCAtMTkyOCw2ICsxOTM4LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4gewor CQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJs ZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7 CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25f cHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBf dGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9 LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAog CQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkg JwpAQCAtNDIzNiw2ICs0MjYzLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NS RUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVf ZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAor CiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJ CWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ3MDAs NiArNDc0NSwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9u X3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVz dF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVS SUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBlYzQ5OWJjZjI4Ny4uYmRjZGJkM2Y1N2YgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMTg3LDYgKzMxODcsNyBAQCBWYXJTdHJpbmcKIFZhclN0 cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUlu Zm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0t IAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20250613-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nkv12 RnJvbSBjYmQzZTJkNTJkZmNhMmJlYzMyNWQzNWY5OWMxNjEyNzY1NGI1MTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE4OjU4OjUxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMy8xNV0gR1JBTlQsIFJFVk9LRSB2YXJpYWJsZQoKQWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBjb250cm9sbGVkIGJ5IFNFTEVDVCBvciBVUERBVEUgcmlnaHRzLiBCb3Ro IHJpZ2h0cyBhcmUKaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHRvby4gRGVmYXVsdCBBQ0wgYXJl IHN1cHBvcnRlZC4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAg ICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxOSArLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDI0ICstCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwg ICAgfCAgMjkgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCAgICAgICAgICAgICAgICAg IHwgICA4ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8 ICA3NCArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAg IHwgIDIyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAg fCAgMTEgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICAyMSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwg MjIxICsrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCAg ICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgMjAgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQgICAgICAg IHwgMzA3ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfYWNsLnNxbCAgICAgfCAxNTggKysrKysrKysrCiAxOCBmaWxlcyBjaGFuZ2VkLCA5MTYgaW5z ZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wub3V0CiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLnNxbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKaW5kZXggZGZlOGVlYWJkZjguLjU1OTU3ZDc0MmJjIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzM2MCw3ICszMzYwLDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0 ZXJhbD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ ID0gdHlwZSwKICAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYSwKLSAgICAgICA8 bGl0ZXJhbD5MPC9saXRlcmFsPiA9IGxhcmdlIG9iamVjdAorICAgICAgIDxsaXRlcmFsPkw8L2xp dGVyYWw+ID0gbGFyZ2Ugb2JqZWN0LAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0gc2Vz c2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5k ZXggYWViMjBjM2I2YzAuLjRkNzlhYzk2ZTYyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0yMDE1LDYgKzIwMTUsNyBAQCBS RVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIEZvciBzZXF1ZW5jZXMs IHRoaXMgcHJpdmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0aGUKICAgICAgICA8ZnVuY3Rpb24+ Y3VycnZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0 aGlzIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgorICAgICAgIEZvciBz ZXNzaW9uIHZhcmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJl IHJlYWQuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CkBAIC0yMDUwLDYgKzIwNTEsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVC TElDOwogICAgICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbnMuCiAgICAg ICAgRm9yIGxhcmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB3cml0aW5nIG9yIHRy dW5jYXRpbmcgdGhlCiAgICAgICAgb2JqZWN0LgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxl cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZhbHVlIHRvIHRoZQorICAgICAgIG9i amVjdC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRy eT4KQEAgLTIyOTQsNyArMjI5Nyw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJM SUM7CiAgICAgICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0 ZXJhbD5TRVFVRU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+ IChhbmQgdGFibGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0 YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4K ICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjMwOSw3ICsyMzEz LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJh bD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRl cmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUgY29s dW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFC TEU8L2xpdGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAg LTI0OTYsNiArMjUwMSwxMiBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwog ICAgICAgPGVudHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5cZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5c ZFYrPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rn cm91cD4KICAgPC90YWJsZT4KQEAgLTUzNjUsNiArNTM3NiwxMCBAQCBFWFBMQUlOIFNFTEVDVCBj b3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0w MS0wMSc7CiAKICAgIDxwYXJhPgogICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSBkYXRhYmFzZSBv YmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlr ZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzCisgICAg aXMgY29udHJvbGxlZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5S RVZPS0U8L2NvbW1hbmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklBQkxFPC9jb21tYW5kPiBj b21tYW5kLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IGM2NzY4OGNiZjVmLi4z ZThkNGJlYTE0OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTYwMiw2ICsyNTYwMiwyNSBAQCBTRUxFQ1QgaGFzX2Z1 bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0ZXh0KScsICdleGVjdXRl Jyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19z aWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+aGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4K KyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZTwvZnVuY3Rp b24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFyYW1ldGVyPiA8 dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFsPgorICAgICAg ICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+cHJpdmlsZWdl PC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJv b2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZhcmlhYmxlPworICAgICAg ICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8bGl0ZXJhbD5TRUxFQ1Q8 L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFsPi4KKyAgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxl bnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+ CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTg0MSw4ICsyNTg2MCw4IEBAIFNFTEVDVCBoYXNf ZnVuY3Rpb25fcHJpdmlsZWdlKCdqb2V1c2VyJywgJ215ZnVuYyhpbnQsIHRleHQpJywgJ2V4ZWN1 dGUnKTsKICAgICAgICAgJ3QnIGZvciA8bGl0ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPiwKICAg ICAgICAgJ0YnIGZvciA8bGl0ZXJhbD5GT1JFSUdOIERBVEEgV1JBUFBFUjwvbGl0ZXJhbD4sCiAg ICAgICAgICdTJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBTRVJWRVI8L2xpdGVyYWw+LAotICAgICAg ICBvcgotICAgICAgICAnVCcgZm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFs PkRPTUFJTjwvbGl0ZXJhbD4uCisgICAgICAgICdUJyBmb3IgPGxpdGVyYWw+VFlQRTwvbGl0ZXJh bD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPiBvcgorICAgICAgICAnVicgZm9yIDxsaXRl cmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICAgPC9yb3c+CiAKQEAgLTI2MTEwLDYgKzI2MTI5LDcgQEAgU0VMRUNUIHJlbG5hbWUgRlJP TSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElzIHR5 cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgIDwvcm93PgorCiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3JvdXA+CiAgICA8 L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZp bGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNn bWwKaW5kZXggNmFjZDBmMWRmOTEuLmJjNzM4MTcwNjFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKQEAgLTU2LDYgKzU2LDExIEBAIEdSQU5U IHsgeyBTRUxFQ1QgfCBVUERBVEUgfQogICAgIE9OIExBUkdFIE9CSkVDVFMKICAgICBUTyB7IFsg R1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNl YWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0K KyAgICBPTiBWQVJJQUJMRVMKKyAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsg V0lUSCBHUkFOVCBPUFRJT04gXQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7 IHsgU0VMRUNUIHwgSU5TRVJUIHwgVVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBSRUZFUkVO Q0VTIHwgVFJJR0dFUiB8IE1BSU5UQUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdF UyBdIH0KQEAgLTk1LDYgKzEwMCwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAg ICBPTiBMQVJHRSBPQkpFQ1RTCiAgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5d CiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9S IF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklM RUdFUyBdIH0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJ TEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMg fSBbLCAuLi5dCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3Jl ZnN5bm9wc2lzZGl2PgogCkBAIC0xMjksMTQgKzE0MiwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJ T04gRk9SIF0KICAgPHBhcmE+CiAgICBDdXJyZW50bHksCiAgICBvbmx5IHRoZSBwcml2aWxlZ2Vz IGZvciBzY2hlbWFzLCB0YWJsZXMgKGluY2x1ZGluZyB2aWV3cyBhbmQgZm9yZWlnbgotICAgdGFi bGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyksIGFu ZCBsYXJnZSBvYmplY3RzCi0gICBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1 bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29yZHMg PGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVy YWw+IGFyZQotICAgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9VVElO RVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRh cmQgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhlci4g IEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxpdGVy YWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0 byBzZXQKLSAgIGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVz IHNlcGFyYXRlbHkuKQorICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChp bmNsdWRpbmcgZG9tYWlucyksIGxhcmdlIG9iamVjdHMKKyAgIGFuZCBzZXNzaW9uIHZhcmlhYmxl cyBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlCisg ICBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9O UzwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2 YWxlbnQgaW4gdGhpcyBjb21tYW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBp cyBwcmVmZXJyZWQgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybQorICAgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdy ZVNRTCByZWxlYXNlcywKKyAgIG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRl cmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZQorICAgdG8gc2V0IGRlZmF1bHQg cHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8 L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1YzAuLmMxMTg2 MGZhMjAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBAIEdSQU5UIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5d IFRPIDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0geyBPUFRJ T04gfCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5U IHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiB7IFZBUklB QkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAg ICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KQEAg LTExOSw4ICsxMjUsOCBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgdGhhdCBncmFudHMg cHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVtbiwgdmlldywKICAg IGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1kYXRhIHdyYXBwZXIs IGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJvY2VkdXJhbCBsYW5n dWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0ZXIsIHNjaGVtYSwg dGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAgIG1lbWJlcnNoaXAg aW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQK KyAgIHBhcmFtZXRlciwgc2NoZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJsZXNwYWNlLCBvciB0 eXBlKSwgYW5kIG9uZSB0aGF0CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVz ZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAgdGhleSBhcmUgZGlm ZmVyZW50IGVub3VnaCB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAgPC9wYXJhPgogCkBA IC0yMzYsOSArMjQyLDkgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgPHBhcmE+CiAgICBU aGVyZSBpcyBhbHNvIGFuIG9wdGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9uIGFsbCBvYmplY3Rz IG9mIHRoZSBzYW1lCiAgICB0eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hlbWFzLiAgVGhpcyBm dW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkgZm9yIHRhYmxlcywg c2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVyYWw+QUxMCi0gICBU QUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1 c3QgbGlrZSB0aGUKLSAgIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4g Y29tbWFuZC4gIDxsaXRlcmFsPkFMTAorICAgb25seSBmb3IgdGFibGVzLCBzZXF1ZW5jZXMsIGZ1 bmN0aW9ucywgcHJvY2VkdXJlcyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVyYWw+QUxMIFRBQkxF UzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRhYmxlcywganVzdAor ICAgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21t YW5kLiAgPGxpdGVyYWw+QUxMCiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyBh Z2dyZWdhdGUgYW5kIHdpbmRvdyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHByb2NlZHVyZXMsIGFn YWluIGp1c3QgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5k PgogICAgY29tbWFuZC4gIFVzZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xpdGVyYWw+IHRvIGlu Y2x1ZGUgcHJvY2VkdXJlcy4KQEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBhZG1pbnMgVE8gam9l OwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywg dGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXJzIGFyZQorICAgIFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNwYWNlcywg c2NoZW1hcywgbGFuZ3VhZ2VzLCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFuZCBjb25maWd1cmF0 aW9uIHBhcmFtZXRlcnMgYXJlCiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiBleHRlbnNpb25zLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dt bAppbmRleCA4ZGY0OTIyODFhMS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAt MTMwLDYgKzEzMCwxNCBAQCBSRVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElP TiBGT1IgXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RS SUNUIF0KIAorUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQ REFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUg PHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAg fCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwg UFVCTElDIH0gWywgLi4uXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgog CiAgICAgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggNzA3NWM4NjM3OGEuLmUzMzNhZDIy ZTI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsy OTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBh dmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9B Q0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVk LCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRl R3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlk IHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFC TEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQp IHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJ bnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4 ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xf QUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lk cyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJ CQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJ YnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VW YXIsIHZhcnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVs T2lkID0gTG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZh ci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lk KG9iamVjdHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0 czsKQEAgLTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUg b2JqdHlwZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQl7CisJCQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJs ZVNjYW5EZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5p dCgma2V5LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KG5hbWVzcGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxv ZyhyZWwsIDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2Nh biwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlv aWQgPSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2Jq ZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9l bmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJ CQkJfQorCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAq LwogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK QEAgLTEwMDksNiArMTA1OCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWVycm9ybXNnID0gZ2V0 dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBsYXJnZSBvYmplY3QiKTsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0 eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjA5LDYgKzEyNjIs MTEgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJaWYgKGlh Y2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCiAJCQkJ dGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfTEFSR0VPQkpFQ1Q7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxF OworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19S SUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmpl Y3QgdHlwZTogJWQiLApAQCAtMTQ1Niw2ICsxNTE0LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RB Q0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNMT0JK X0xBUkdFT0JKRUNUOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfTEFSR0VPQkpFQ1Q7CiAJ CQkJYnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBl ID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91 bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFD TCB0eXBlOiAlZCIsCkBAIC0xNTE2LDYgKzE1NzcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFD TChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJB Y2xSZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsK IAkJCQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5 cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2co RVJST1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFr OwpAQCAtMjc0OSw2ICsyODEzLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwg T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJl YWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJl YWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI3NzEsNyAr MjgzOCw2IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCQkJCWNhc2UgT0JKRUNUX1RTVEVN UExBVEU6CiAJCQkJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKLQkJCQkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CiAJCQkJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVk Iiwgb2JqdHlwZSk7CiAJCQkJfQogCkBAIC0zMDEyLDYgKzMwNzgsOCBAQCBwZ19hY2xtYXNrKE9i amVjdFR5cGUgb2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQg cm9sZWlkLAogCQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJ CQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVp ZCwgbWFzaywgaG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soVmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhv dyk7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBl OiAlZCIsCiAJCQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI3NSw2ICs0MzQzLDEwIEBAIGdldF91 c2VyX2RlZmF1bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bf b2lkKQogCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9MQVJHRU9CSkVDVDsKIAkJCWJyZWFr OwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9C Sl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDk0MTNiNzYxOWM1Li40NDQ4OTJh ZDZiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTIwMzAsMTcgKzIwMzAs MjEgQEAgZ2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2lu Z19vaykKIAkJY2FzZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1Q6CiAJCQlvYmp0eXBlX3N0ciA9ICJs YXJnZSBvYmplY3RzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJ CW9ianR5cGVfc3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAogCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUg XCIlY1wiIiwgb2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJl IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKKwkJCQkJ IGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwg XCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxB VElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1NFUVVFTkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVO Q1RJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9UWVBFLAogCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQ QUNFLAotCQkJCQkJCSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QpKSk7CisJCQkJCQkJIERFRkFDTE9C Sl9MQVJHRU9CSkVDVCwKKwkJCQkJCQkgREVGQUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8q CkBAIC0zOTIyLDYgKzM5MjYsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQg cHJpdmlsZWdlcyBvbiBuZXcgbGFyZ2Ugb2JqZWN0cyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAog CQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpf VkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24g dmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJ CQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vz c2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVu YW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdl dCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTU4NTIsNiArNTg2NiwxMCBAQCBnZXRP YmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBsYXJnZSBv YmplY3RzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJ CQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24g c2Vzc2lvbiB2YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpu YW1lKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGJkNmEyOWE3OWU1Li5kOGVkZTRm YThjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMzgsNiArMzgsNyBAQCBjcmVh dGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAog CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKIHsKKwlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJ dmFybmFtZTsKIAlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CiAJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ192YXJpYWJsZV07CkBAIC05Nyw3ICs5OCwxMiBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAK LQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKwl2YXJhY2wgPSBn ZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAorCQkJCQkJCQkg IHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOworCWVsc2UKKwkJ bnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CiAKIAl0dXBkZXNjID0g UmVsYXRpb25HZXREZXNjcihyZWwpOwogCkBAIC0xMzEsNiArMTM3LDkgQEAgY3JlYXRlX3Zhcmlh YmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLwogCXJl Y29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVy KTsKIAorCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wg Ki8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgdmFyT3duZXIsIHZhcmFjbCk7CisKIAkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLwog CXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA5MmJmODQxOTgzMy4uMDFhOTczMWNlMjggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt Nzg0LDcgKzc4NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5MT0dH RUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJ REFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQotCVZBUllJTkcg VkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCisJVkFSSUFCTEVT IFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCiAK IAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JL IFdSQVBQRVIgV1JJVEUKIApAQCAtNzk2NCw2ICs3OTY0LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6 CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUg cXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFy Z2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFD TF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5f UCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJn ZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC04MDA5LDYgKzgwMTcsMTQgQEAg cHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJ fQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJ UHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkp OworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+ b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9 IG47CisJCQkJfQogCQk7CiAKIApAQCAtODIwNyw2ICs4MjIzLDcgQEAgZGVmYWNsX3ByaXZpbGVn ZV90YXJnZXQ6CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJfCBTQ0hF TUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQogCQkJfCBMQVJHRV9QIE9CSkVDVFNfUAl7ICQk ID0gT0JKRUNUX0xBUkdFT0JKRUNUOyB9CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9CSkVDVF9W QVJJQUJMRTsgfQogCQk7CiAKIApAQCAtMTgwNjgsNiArMTgwODUsNyBAQCB1bnJlc2VydmVkX2tl eXdvcmQ6CiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODcyNSw2ICsxODc0Myw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVTCiAJCQl8 IFZBUkNIQVIKIAkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJ CQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggY2EzYzVlZTNk ZjMuLjA3ODc0ZDRiYTM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAg LTEyOSw2ICsxMzAsOCBAQCBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3R5cGVfcHJpdl9zdHJpbmco dGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9wYXJhbWV0ZXJf cHJpdl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfbGFy Z2VvYmplY3RfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1v ZGUgY29udmVydF9yb2xlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRp YyBPaWQJY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0 aWMgQWNsTW9kZSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJp dl90eXBlX3RleHQpOwogc3RhdGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xl X29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJl cnNoaXBDYWNoZUNhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpOwpAQCAtODUxLDYgKzg1NCwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwg T2lkIG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVy X2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwg KGludCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2Vl cCBjb21waWxlciBxdWlldCAqLwpAQCAtOTQ4LDYgKzk1NSw5IEBAIGFjbGRlZmF1bHRfc3FsKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwog CQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3Qg dHlwZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMTYsNiArNTAyNiwy MTcgQEAgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUg bW9kZSkKIAlyZXR1cm4gQUNMQ0hFQ0tfTk9fUFJJVjsKIH0KIAorLyoKKyAqIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5 IHRha2UgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgdmFyaWFibGUgbmFtZSwgdmFyaWFibGUgT0lE LAorICoJCXVzZXIgbmFtZSwgdXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3Vz ZXIuCisgKgorICoJCVRoZSByZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIg aGFzIHRoZSBpbmRpY2F0ZWQKKyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdCwgb3IgTlVMTCBp ZiBzZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QKKyAqCQlleGlzdHMuCisgKi8KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHBy aXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwg dGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlOYW1lCQlyb2xlbmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCXRleHQJICAg KnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCpy b2xlbmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmco cHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlz c2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JF VFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQl0ZXh0IHNlc3Npb24gdmFyaWFibGUgYW5k IHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVt CitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQor eworCXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlP aWQJCQl2YXJpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9v bAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJ dmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCVBHX1JFVFVS Tl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVz ZXJuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lE KDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJ T2lkCQkJcm9sZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwli b29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVi bGljKE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQKKyAqCQlDaGVj ayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJc2Vzc2lv biB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMg YXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRl eHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9s ZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19t aXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVy dF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0 ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9pZF9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJp YWJsZSBnaXZlbgorICoJCXJvbGVpZCwgdGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0 ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZF9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJH X09JRCgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQl2YXJp ZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlz c2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0 cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZp c19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJ UEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmls ZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xl aWQgPSBQR19HRVRBUkdfT0lEKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsK Kwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIEdpdmVu IGEgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lIGV4cHJlc3NlZCBhcyBhIHN0cmluZywgbG9vayBpdCB1 cCBhbmQgcmV0dXJuCisgKiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSkKK3sKKwlyZXR1cm4gTG9va3VwVmFyaWFibGVGcm9t TmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodmFybmFtZSksIHRydWUpOworfQorCisv KgorICogY29udmVydF92YXJpYWJsZV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJp bmcgdG8gQWNsTW9kZSB2YWx1ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfc2Vzc2lv bl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMg Y29uc3QgcHJpdl9tYXAgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcFtdID0geworCQl7IlNFTEVD VCIsIEFDTF9TRUxFQ1R9LAorCQl7IlNFTEVDVCBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFO VF9PUFRJT05fRk9SKEFDTF9TRUxFQ1QpfSwKKwkJeyJVUERBVEUiLCBBQ0xfVVBEQVRFfSwKKwkJ eyJVUERBVEUgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVBE QVRFKX0sCisJCXtOVUxMLCAwfQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJp bmcocHJpdl90eXBlX3RleHQsIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXApOworfQogCiAvKgog ICogaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKGNhbGxlZCBieSBJbml0UG9zdGdyZXMpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggY2U2ZTUwOThlYWYuLjA4N2QzNWI5NDNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCkBAIC02OSw2ICs2OSw3IEBAIE1B S0VfU1lTQ0FDSEUoREVGQUNMUk9MRU5TUE9CSiwgcGdfZGVmYXVsdF9hY2xfcm9sZV9uc3Bfb2Jq X2luZGV4LCA4KTsKICNkZWZpbmUgREVGQUNMT0JKX1RZUEUJCQknVCcgLyogdHlwZSAqLwogI2Rl ZmluZSBERUZBQ0xPQkpfTkFNRVNQQUNFCQknbicgLyogbmFtZXNwYWNlICovCiAjZGVmaW5lIERF RkFDTE9CSl9MQVJHRU9CSkVDVAknTCcgLyogbGFyZ2Ugb2JqZWN0ICovCisjZGVmaW5lIERFRkFD TE9CSl9WQVJJQUJMRQkJJ1YnIC8qIHZhcmlhYmxlICovCiAKICNlbmRpZgkJCQkJCQkvKiBFWFBP U0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZDNkMjhh MjYzZmEuLjVkYTk5NTk5NDJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU0NjYsNiAr NTQ2NiwyNiBAQAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCBv aWQgdGV4dCcsCiAgIHByb3NyYyA9PiAnaGFzX2xhcmdlb2JqZWN0X3ByaXZpbGVnZV9pZF9pZCcg fSwKIAoreyBvaWQgPT4gJzk2MTMnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lv biB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUg PT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSB0ZXh0IHRleHQnLAorICBwcm9zcmMg PT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUnIH0sCit7IG9pZCA9 PiAnOTYxNCcsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5 IHVzZXJuYW1lLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAg cHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkJyB9LAoreyBvaWQgPT4gJzk2MTUnLCBkZXNjciA9PiAn dXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwgc2VxIG5hbWUn LAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xh dGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lk IHRleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lk X25hbWUnIH0sCit7IG9pZCA9PiAnOTYxNicsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBz ZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0 eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCBvaWQgdGV4dCcsIHByb3NyYyA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkJyB9LAoreyBvaWQgPT4gJzk2 MTcnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxl IGJ5IHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJn dHlwZXMgPT4gJ3RleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxOCcsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIg cHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2VxIG9pZCcsCisgIHByb25hbWUgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCcsIHByb3NyYyA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkJyB9LAorCiB7IG9pZCA9PiAnMzM1 NScsIGRlc2NyID0+ICdJL08nLAogICBwcm9uYW1lID0+ICdwZ19uZGlzdGluY3RfaW4nLCBwcm9y ZXR0eXBlID0+ICdwZ19uZGlzdGluY3QnLAogICBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsIHBy b3NyYyA9PiAncGdfbmRpc3RpbmN0X2luJyB9LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDZmNTEzZjA0 MjI1Li4wZWEwMjY1ZGU3YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDg3LDYgKzQ4Nyw3IEBAIFBH X0tFWVdPUkQoInZhbHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFS SUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5n IiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZl cmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wu aAppbmRleCAwMWFlNWI3MTlmZC4uNWUxYThhODJlOTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdI VFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRT X1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQko QUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8 QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5 cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlc19hY2wub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlc19hY2wub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40 NzhiNDc0NzJmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dApAQCAtMCwwICsxLDMwNyBAQAorLS0gY2hlY2sgYWNj ZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2Fj bDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVz dF9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1B IHB1YmxpYyBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0FMVEVSIERFRkFVTFQgUFJJ VklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAgIElOIFND SEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVz c192YXJpYWJsZV9yZWFkZXJfYWNsOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0 IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7CitTRVQgUk9MRSBUTyBE RUZBVUxUOworLS0gc2hvdWxkIGJlIG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMK Ky0tIGFsbG93IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbCB0byBoYXZlIFNFTEVDVCBwcml2 aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcl9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNs LnNlc3ZhcjIwOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyX2FjbDsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdS QU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUg c2VzdmFyMjJfYWNsIEFTIGludDsgICAgICAtLXNlc3ZhcjIyX2FjbCB3aWxsIG93bmVkIGJ5IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFy MjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsIFdJVEggR1JBTlQgT1BUSU9OOworU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIFdJVEggR1JBTlQgT1BU SU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVi bGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00g cmVncmVzc192YXJpYWJsZV9yMV9hY2wgQ0FTQ0FERTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgor KDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0dSQU5U IFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9h Y2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFMTCBPTiBWQVJJ QUJMRSBzZXN2YXIyMl9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCBHUkFOVEVEIEJZ IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdw dWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfb3duZXJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFS SUFCTEUgc2VzdmFyMjJfYWNsOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5U IE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCistLQorLS0gYmVnaW4gb2YgdGVzdDog R1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0t CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3Zh cjIwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjEgQVMgaW50 OworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIy MCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdz dmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVz dF9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2Fj bC5zZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3Zh cnRlc3RfYWNsLnNlc3ZhcjIwOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjE7 CitEUk9QIFNDSEVNQSBzdmFydGVzdF9hY2w7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJF Vk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorLS0KKy0t IGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZhcmlvdXMga2lu ZCBvZiBzaWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUgdGVzdCBmb3Ig aXQuCistLQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUg VkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8g cHVibGljOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgVE8g cmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJM RSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMV9hY2wnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1QnKSBJUyBOVUxMOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFU RScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3Nlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdz ZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFy aWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICdzZXN2YXIyMl9hY2wnIEFORCB2YXJuYW1lc3BhY2Ug PSAncHVibGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2Vz dmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFf YWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MV9hY2wnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyX2FjbCcsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBm CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIy Ml9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn OjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9s ZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9h Y2wnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKKy0tCistLSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIHRlc3RzLgorLS0KK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2Vh cmNoX3BhdGggVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbDsK K0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbDsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNs OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMGY3NWJmYWY1YWUuLjFjNjdmZGZm NTY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExNSw3ICsxMTUsNyBAQCB0 ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBhdGhfZW5jb2Rpbmcg anNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyByZWNvbm5lY3RzIHdo aWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxs ZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29u dmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlw ZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzX2RkbAor dGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5j cyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1v cnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3Zh cmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsCiAKICMgLS0tLS0tLS0tLQogIyBBbm90 aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZTFhOWQ1Y2U1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsCkBAIC0wLDAgKzEsMTU4IEBACistLSBjaGVjayBh Y2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Rf YWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3Zh cnRlc3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworR1JBTlQgQUxMIE9OIFND SEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAg IElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8g cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRo IGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9h Y2w7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwIEFTIGludDsKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CisKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2wgdG8gaGF2ZSBT RUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMCcsICdT RUxFQ1QnKTsgLS0gdAorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMDsKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cl9hY2w7CisKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBh bmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXIyMl9h Y2wgQVMgaW50OyAgICAgIC0tc2VzdmFyMjJfYWNsIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJp YWJsZV9vd25lcl9hY2wKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3Zh cjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NF VCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0t IHQKKworUkVWT0tFIEFMTCBQUklWSUxFR0VTIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBGUk9N IHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsIENBU0NBREU7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2 YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIGYKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9h Y2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcjJfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcp OyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisK K1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00gcmVncmVzc192YXJpYWJs ZV9yMl9hY2wgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGlj LnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wnLCAncHVibGljLnNlc3Zh cjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBW QVJJQUJMRSBzZXN2YXIyMl9hY2w7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JB TlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKworLS0KKy0tIGJlZ2luIG9mIHRl c3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1B CistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2 YXJ0ZXN0X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNs LnNlc3ZhcjIwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjEg QVMgaW50OworCitHUkFOVCBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9h Y2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2 YXIyMScsICdTRUxFQ1QnKTsgLS0gdAorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMg SU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywg J3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMScsICdTRUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBE RUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjA7CitEUk9QIFZBUklB QkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKKy0t CistLSBlbmQgb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEKKy0tCisKKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgaGF2ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxv d2luZyBhcmUgZXh0ZW5zaXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2Fj bCBBUyBpbnQ7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0dSQU5UIFNFTEVDVCBP TiBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNs OworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMg TlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywg J3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2VzdmFyMjJfYWNsJywg J1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdV UERBVEUnKTsgLS0gZgorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUK KyAgV0hFUkUgdmFybmFtZSA9ICdzZXN2YXIyMl9hY2wnIEFORCB2YXJuYW1lc3BhY2UgPSAncHVi bGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjFfYWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjJfYWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgOnZhcmlk LCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2 YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2Fj bCcsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NF TEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7 IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn OjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCA6dmFy aWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsg LS0gdAorLS0KKy0tIGVuZCBvZiBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgdGVzdHMuCistLQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRP IERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbDsKKworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsOworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcmlh YmxlX293bmVyX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKLS0g CjIuNDkuMAoK --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20250613-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nkn11 RnJvbSBjMjkwZDgwZDY5Nzg3MmI4MTY4YjNmYjE4NmZiMWY5OGNhM2Y0NDk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDIyOjE2OjE2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNC8xNV0gc3VwcG9ydCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgcHNxbAoKVGhpcyBw YXRjaCBlbmhhbmNpbmcgcHNxbCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzOgoKICogXGRW WytdIGNvbW1hbmQKICogdGFiIGNvbXBsZXRlIGZvciBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklB QkxFCgpOb3RlOiB0YWIgY29tcGxldGUgZm9yIHZhcmlhYmxlIGZlbmNpbmcgaXMgbm90IHN1cHBv cnRlZCB5ZXQKLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgIHwgIDEyICsr KysKIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgfCAgMTMgKysrKwogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICB8ICAxNCArKysrCiBzcmMvYmluL3BzcWwvY29t bWFuZC5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAg ICAgICAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5oICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2hlbHAuYyAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgIHwgIDQ1 ICsrKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgfCAgIDMg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCB8ICA1MCArKysrKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgfCAgMjEgKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRl eCAzZThkNGJlYTE0OS4uZmEwOWJmNDhmYjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjYxMzAsNiArMjYxMzAsMTgg QEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxl KG9pZCk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVu Y19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdf dmFyaWFibGVfaXNfdmlzaWJsZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1l dGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0 dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBJcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/ CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAg ICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bz cWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggMWNiNjdm ZjgwNmQuLjM4MTNkMDk0NDM2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTM1LDYgKzIx MzUsMTkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAg ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1l dGEtY29tbWFuZC1kdiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxp bmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAg PGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT4gaXMKKyAgICAgICAgc3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVz IHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRo ZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xpdGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24KKyAgICAgICAgYWJvdXQgZWFjaCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNz IHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBp ZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1 W1N4K10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48 L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDRh YmJlNzMzZjQ1Li5iNDUwNDcxZTA2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC01Mjky LDMgKzUyOTIsMTcgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykK IAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1 bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9p ZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJYm9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3Npbmcg PSBmYWxzZTsKKworCXJlc3VsdCA9IFZhcmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3Np bmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJO X0JPT0wocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9z cmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDgxYTViYTg0NGJhLi5hMTcxYmY1ZjNiNCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCkBAIC0xMjQ2LDYgKzEyNDYsOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNj YW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJl YWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJ CQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQli cmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJi b3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwppbmRleCAyNGUwMTAwYzlmMC4uOTdiYWRlNmRjNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjIzLDcgKzEy MjMsNyBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VM RUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxu IgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRl ZmFjbG9ianR5cGUgIgotCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIgogCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAi LAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKQEAgLTEyNDAsNiArMTI0MCw4IEBAIGxp c3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgi c2NoZW1hIiksCiAJCQkJCSAgREVGQUNMT0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRf bm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkg IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpKTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTMx Myw2ICs1MzE1LDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgor ICogXGRWCisgKgorICogbGlzdFZhcmlhYmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBi dWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lv biA8IDE4MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigi VGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxl cy4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAor CQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsK Kwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkgICJTRUxFQ1Qgbi5uc3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZh cm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52 YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5j b2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlw ZSBidFxuIgorCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5v aWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3du ZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkg IGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJ CQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25l ciIpKTsKKworCWlmICh2ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg IixcbiAgIik7CisJCXByaW50QUNMQ29sdW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlv bih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29w KCJEZXNjcmlwdGlvbiIpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJ CQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFj ZSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJ aWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4u bnNwbmFtZSA8PiAncGdfY2F0YWxvZydcbiIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUg PD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0 ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYu dmFybmFtZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2li bGUodi5vaWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhl YyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwkvKgorCSAqIE1vc3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29u dGVudCB0byBwcmludCBhbiBlbXB0eSB0YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNo aW5nIG9iamVjdHMuICBXZSBpbnRlbnRpb25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVy ZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICov CisJaWYgKFBRbnR1cGxlcyhyZXMpID09IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0 dGVybikKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxl IG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJIHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJy b3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7 CisJCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2 YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRy YW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRl X2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShy ZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKwor CVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5k ZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFhYjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBA IGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0 aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJn ZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJ CQkvKiBERVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3Jj L2Jpbi9wc3FsL2hlbHAuYwppbmRleCA0MDNiNTEzMjVhNy4uODE4ODZlYjk3MjUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjYx LDYgKzI2MSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAw KCIgIFxcZFRbU3grXSBbUEFUVEVSTl0gICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAo IiAgXFxkdVtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxk dltTeCtdIFtQQVRURVJOXSAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10g IFtQQVRURVJOXSAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxk eFt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRY W3hdICAgW1BBVFRFUk5dICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAw KCIgIFxcZHlbeCtdICBbUEFUVEVSTl0gICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IDJjMGI0ZjI4YzE0Li43OGZjOGVmNmQ0NSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtOTcwLDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5y ZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5j YXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0g InYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICog UXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3Ms IHBvc3NpYmx5CkBAIC0xMzE4LDYgKzEzMjUsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdf dCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAu Li4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5 d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEws IE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFy aWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9 LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg4Myw3ICsxODkxLDcg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkK IAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxc ZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAi XFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAi XFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgi LCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxk eCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYi LCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRw aXBlbGluZSIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJc XGZsdXNocmVxdWVzdCIsCkBAIC0yNTkyLDYgKzI2MDAsOSBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJU TyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVf V0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQi KTsKQEAgLTMxNzUsNyArMzE4Niw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNF UlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJ CQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJ ICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwg IlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwg IkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJDT05TVFJBSU5UIikpCkBAIC0zOTg2LDYgKzM5OTcsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlF eGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRF IFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg Ki8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJM RSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1l PiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBD UkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00 MjYzLDYgKzQyODEsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJM QU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklD VCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAi VkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVY RUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NDY0LDcg KzQ0ODgsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2Jq ZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFV TFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNF UyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hF TUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFV RU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAi VFlQRVMiLCAiU0NIRU1BUyIsICJMQVJHRSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIp OwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9s aXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIs CkBAIC00NDcyLDYgKzQ0OTgsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFU QUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBX UkFQUEVSIiwKQEAgLTQ0ODYsNyArNDUxMyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAog CQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJ CSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1h dGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSkKQEAgLTQ0OTQsNyArNDUyMiw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJ TkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJU QUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJW QVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9L RSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9L RSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikp CiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ1MzAsNiAr NDU1OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExF VEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFC TEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRj aEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDgz Miw3ICs0ODYzLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8q IFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnks ICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRP IiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAi SU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRS QU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNh Y3Rpb24KQEAgLTUzMjEsNiArNTM1Miw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXND UygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01Q TEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYg KFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA1ZGE5 OTU5OTQyYy4uZjcyYWNkZDg0YmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjY5Niw2 ICs2Njk2LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9j b3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNp YmxlJyB9LAoreyBvaWQgPT4gJzk5OTknLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2 aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlw ZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxl X2lzX3Zpc2libGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2Yg Y3VycmVudCBzZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdw Z19teV90ZW1wX3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggY2Y0OGFlNmQwYzIuLmZkNmIyYTZi OGM4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTYwMjMsNiArNjAyMywzMCBA QCBDT01NSVQ7CiAjIGZpbmFsIE9OX0VSUk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxh OwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAi QyI7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykK KworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBW QVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJp dmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8 IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOwor RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGlu dmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02 MjQ0LDYgKzYyNjgsMTIgQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxl bWVudGVkOiBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9u ZXN1Y2gubXlldnQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFt ZXMpOiBub25lc3VjaC5teWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNz aW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVi bGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhh dCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAi bm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjQ3OCw2 ICs2NTA4LDEyIEBAIExpc3Qgb2Ygc2NoZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0KICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJs ZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9k IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTY2NDcsNiArNjY4MywxMiBA QCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBh Z2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCiAgICAgICAgIExpc3Qgb2YgdGFibGVzCkBAIC02NzgwLDYgKzY4MjIsMTIgQEAg TGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3Mp CisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudGFibGUucmVsYXRpb24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtNjgyNyw2ICs2ODc1LDggQEAgY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW0KIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgog XGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gudmFyaWFibGUiCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUw OwogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXgg MWE4YTgzNDYyZjAuLmI1NjdlZTFlZWUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTY0Myw2 ICsxNjQzLDE5IEBAIENPTU1JVDsKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3Fs X2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJM RSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxk QSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25lc3VjaC5oZWFwCkBAIC0xNzU0LDYgKzE3NjcsOSBA QCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVw c19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9z dC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgor XGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90 ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0 aG9kIgpAQCAtMTc5NSw2ICsxODExLDggQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4 ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3Rh dGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlh YmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MzUs NiArMTg1Myw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxl IgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVt YSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODU5LDYgKzE4NzgsNyBAQCBEUk9QIEZVTkNUSU9OIHBz cWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRp dGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4 dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTg4NCw2ICsxOTA0LDcg QEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0 aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZh cmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVf cm9sZTA7Ci0tIAoyLjQ5LjAKCg== --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20250613-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nlb14 RnJvbSBhMzU4ZTEwZWZjMWM1Mzg1YzFlNzAyMzUzM2Y5MTFkOWVlYmJjOGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDA4OjMwOjI1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMS8xNV0gaW50cm9kdWNlIG5ldyBjbGFzcyAoY2F0YWxvZykgcGdfdmFyaWFibGUKClRo aXMgdGFibGUgaG9sZHMgbWV0YWRhdGEgYWJvdXQgc2Vzc2lvbiB2YXJpYWJsZXMgY3JlYXRlZCBi eQpjb21tYW5kIENSRUFURSBWQVJJQUJMRSwgYW5kIGRyb3BwZWQgYnkgY29tbWFuZCBEUk9QIFZB UklBQkxFLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgIHwgMTMz ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICB8IDE2OCArKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAg ICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgfCAgOTYgKysrKysrKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IHwgICA0ICsKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgIHwgICAyICsKIDkgZmlsZXMgY2hh bmdlZCwgNDA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGZhODZj NTY5ZGM0Li5kZmU4ZWVhYmRmOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAK ICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0 cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAg ICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0 YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9s aW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAg ICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC05Nzcz LDQgKzk3NzgsMTMyIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9z ZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0g em9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJp bWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0 bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0Cisg ICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48 c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8 dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0 bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0 aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFy Y3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgdGhl IHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNu PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAgICAgIGlkZW50aWZpZXIgKDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBub3QgZW5vdWdoLCBzaW5jZQor ICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNlZCkuCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1uYW1lc3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0 bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNv bnRhaW5zIHRoaXMgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3du ZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3Ry dWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0 PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAg ICAgc3VwcGxpZWQgYXQgdmFyaWFibGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBt YXhpbXVtCisgICAgICAgbGVuZ3RoIG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4g IEl0IGlzIHBhc3NlZCB0bworICAgICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFu ZCBsZW5ndGggY29lcmNpb24gZnVuY3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVy YWxseSBiZSAtMSBmb3IgdHlwZXMgdGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlw bW9kPC9zdHJ1Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxh dGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8 bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0 aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9u IG9mIHRoZSB2YXJpYWJsZSwgb3IgemVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qg b2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ dmFyYWNsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4 cmVmIGxpbmtlbmQ9InNxbC1ncmFudCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwt cmV2b2tlIi8+CisgICAgICAgZm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3Nl Y3QxPgogPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggYzA5MDA5NGVkMDguLjJjMjBk NjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlw Z19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192 YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24u YnVpbGQKaW5kZXggMTk1OGVhOTIzOGEuLmVkNDRjODc3ZmNhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24u YnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGdf c2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190eXBlLmMnLAorICAn cGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3RpbmcuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmJkNmEyOWE3OWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0wLDAgKzEsMTY4IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBwZ192YXJpYWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNs dWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogQ3JlYXRlcyBlbnRyeSBpbiBw Z192YXJpYWJsZSB0YWJsZQorICovCitPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29u c3QgY2hhciAqdmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBl LAorCQkJCWludDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNv bGxhdGlvbiwKKwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJTmFtZURhdGEJdmFybmFtZTsK Kwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19w Z192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJVHVwbGVEZXNj CXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNlZDsKKwlPYmpl Y3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZhck5hbWUpOwor CUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZh clR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVsID0gdGFibGVf b3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBD aGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVhbGx5IHByZXZl bnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVycm9y IG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUg dW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlz dHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2YXJOYW1lKSwK KwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJeworCQlpZiAoaWZf bm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RV UExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBh bHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJCWVsc2UKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks CisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwK KwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9j ayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1lbXNldCh2YWx1 ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVs bHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFyaWQgPSBHZXRO ZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVf b2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFd ID0gTFNOR2V0RGF0dW0oR2V0WExvZ0luc2VydFJlY1B0cigpKTsKKwl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJO YW1lc3BhY2UpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0odmFyVHlwZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9k IC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJD b2xsYXRpb24pOworCisJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7 CisKKwl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3Jt X3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWws IHR1cCk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVj dF9hZGRyZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0 QWRkcmVzc1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2Up OworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyog ZGVwZW5kZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQs IFR5cGVSZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJl ZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYg KE9pZElzVmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9D T0xMQVRJT05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRp b25SZWxhdGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3Mo JnJlZmVyZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5k ZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3Rf YWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmRE ZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisK KwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVuZGVuY3lPbkN1cnJl bnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVwbGUodHVwKTsKKwor CS8qIHBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7CisKKwl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2VsZjsKK30KKworLyoK KyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lk IHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFi bGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRl KHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVf Y2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDJi YmM3ODA1ZmUzLi5mOTg3NjBkZTYzNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9N YWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4 IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAog CXBnX3B1YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2Ny aXB0aW9uX3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAK IEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZWMxY2Y0NjdmNmYuLjgxMzk4ZWZhN2M5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwog ICAncGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdf c3Vic2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0 IGZpbGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4xNWY1MzA4OTRjNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaApAQCAtMCwwICsxLDk2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBw Z192YXJpYWJsZS5oCisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVt IGNhdGFsb2cgKHBnX3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAq IE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRl cml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaWZuZGVmIFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5j bHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNp bmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFibGUKKyAqIC0tLS0tLS0tLS0tLS0tLS0K KyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3Ig dmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOwor CisJLyoKKwkgKiBVc2VkIGZvciBpZGVudGl0eSBjaGVjayBbb2lkLCBjcmVhdGVfbHNuXS4KKwkg KgorCSAqIFRoaXMgY29sdW1uIG9mIHRoZSA4LWJ5dGUgWGxvZ1JlY1B0ciB0eXBlIHNob3VsZCBi ZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkgKiBpcyBkaXZpc2libGUgYnkgOCwgYnV0IGJlZm9yZSBh bnkgY29sdW1uIG9mIHR5cGUgTmFtZURhdGEuCisJICovCisJWExvZ1JlY1B0cgl2YXJjcmVhdGVf bHNuOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRhCXZhcm5hbWU7CisKKwkvKiBP SUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xhc3MgKi8KKwlPaWQJCQl2YXJu YW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJLyogdmFyaWFibGUgb3duZXIg Ki8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisKKwkvKiB0eXBtb2Qg Zm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEp OworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9E RUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CisKKworI2lmZGVmIENBVEFM T0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisKKwkv KiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQo X251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIg dG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRp b24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfdmFyaWFi bGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1QocGdfdmFyaWFibGUsIDkyMjMs IDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3ZhcmlhYmxlX29pZF9pbmRl eCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUob2lkIG9pZF9v cHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4 LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUodmFybmFt ZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShWQVJJ QUJMRU5BTUVOU1AsIHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lT Q0FDSEUoVkFSSUFCTEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKK2V4dGVybiBP YmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJ CQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkg aW50MzIgdmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQg dmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisKK2V4dGVybiB2 b2lkIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZB UklBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1 ZWI4OTliZTMuLmQ5OTUzMzIxNDAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv biB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19j bGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBn X3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9 ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zh cm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxl IHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCBhODM0NmNkYTYzMy4uMjZmYzlmNjgxMGQgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC05MDcsNiArOTA3LDcgQEAgRm9ybURhdGFfcGdfdHNfcGFyc2VyCiBGb3JtRGF0 YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlwZQogRm9ybURhdGFfcGdfdXNlcl9tYXBw aW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1dGUKIEZv cm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05NjYsNiArOTY3LDcgQEAgRm9ybV9wZ190 c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZvcm1fcGdfdHlwZQogRm9ybV9wZ191c2Vy X21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1hdE5vZGUKIEZyZWVCbG9ja051bWJlckFy cmF5CiBGcmVlTGlzdERhdGEKLS0gCjIuNDkuMAoK --0000000000006fcc3506376cd535 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250613-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20250613-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbuc0nl213 RnJvbSBmMjRlN2QyMTEyNTM3M2RmMDJlY2U5MjFjYjg1ZGUzNzI0YzdmMDJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDExOjI2OjE3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMi8xNV0gQ1JFQVRFLCBEUk9QLCBBTFRFUiBWQVJJQUJMRQoKSW1wbGVtZW50YXRpb24g b2YgY29tbWFuZHM6CgogICAgQ1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgQVMgdHlwZQogICAgRFJP UCBWQVJJQUJMRSB2YXJuYW1lCiAgICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIE9XTkVSIFRPCiAg ICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIFJFTkFNRSBUTwogICAgQUxURVIgVkFSSUFCTEUgdmFy bmFtZSBTRVQgU0NIRU1BCgpBTFRFUiBjb21tYW5kIHVzZXMgYWxyZWFkeSBwcmVwYXJlZCBpbmZy YXN0cnVjdHVyZSBiYXNlZCBvbiBPYmplY3RBZGRyZXNzIEFQSSwKc28gdGhpcyBwYXRjaCBpbXBs ZW1lbnRzIE9iamVjdEFkZHJlc3MgcmVsYXRlZCBmdW5jdGlvbmFsaXR5IHRvby4KCkV2ZW50IHRy aWdnZXJzIGZvciBEREwgb3ZlciBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkLgotLS0K IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMSArKwog ZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCiBk b2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysKIGRv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMyArCiBkb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAxNzggKysrKysrKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAg IDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwgIDEy ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxNDkg KysrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAg ICAgIHwgMTE3ICsrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAg ICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAg ICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAg ICAgICB8IDIwNyArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jICAgICAgICAgICB8ICA5OSArKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfc2hkZXBlbmQuYyAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYyAgICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90 cmlnZ2VyLmMgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMgICAgICAgfCAgODggKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jICAgICAgICAgICAgICB8ICA0MSArKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jICAgICAgICAgICAgICAgfCAgMTUgKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAg ICAgICAgICAgICAgICAgICB8ICA4NiArKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j ICAgICAgICAgICAgICAgICAgICB8ICAyMCArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMgICAgICAgICAgIHwgIDY1ICsrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaCAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCAgICAgICB8ICAyNCArKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAg ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVu Y3kub3V0ICAgICAgfCAgMTcgKysKIC4uLi9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwu b3V0ICAgICAgICB8IDE2MyArKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBl bmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKysKIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlc19kZGwuc3FsICAgICB8IDE1MCArKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogNDAgZmlsZXMgY2hhbmdlZCwg MTU3MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKaW5kZXggOTY5MzZiY2QzYWUuLmFlYjIwYzNiNmMwIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01MzUy LDYgKzUzNTIsMjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBX SEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2Vj dDE+CiAKKyAgPHNlY3QxIGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNl c3Npb24gVmFyaWFibGVzPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lv bi12YXJpYWJsZXMiPgorICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5Pgor ICAgPC9pbmRleHRlcm0+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2 YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJhc2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUu CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRz IHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2YXRlCisgICAgdG8g ZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCisgICA8 L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+ T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggYjg4Y2Fj NTk4ZTkuLjgzYjEzZjk4ZjI4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTcwOCw2ICsxNzA4LDIxIEBA CiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxl PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVu dCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAg VGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFz ZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWls YXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+Cisg ICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24t dmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRy eT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xv c3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21s CmluZGV4IGU5Mzc0OTFlNmI4Li4xZTRjNDNiOGI2MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM2LDYg KzYwMzYsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9n cmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBs cGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBh Y2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48L3RpdGxlPgorCisgICAgPHBh cmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFn ZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJs ZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRp bmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVy ZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRo YXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRl ZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2Vj dDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgi PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGY1YmU2Mzg4NjdhLi4yZjY3ZGUzZTIxYiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtNDcsNiArNDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVz YWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVy VHlwZSAgICAgICAgICBTWVNURU0gImFsdGVyX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVz ZXIgICAgICAgICAgU1lTVEVNICJhbHRlcl91c2VyLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2Vy TWFwcGluZyAgIFNZU1RFTSAiYWx0ZXJfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0 ZXJWYXJpYWJsZSAgICAgIFNZU1RFTSAiYWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBh bHRlclZpZXcgICAgICAgICAgU1lTVEVNICJhbHRlcl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5h bHl6ZSAgICAgICAgICAgIFNZU1RFTSAiYW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAg ICAgICAgICAgICBTWVNURU0gImJlZ2luLnNnbWwiPgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBjcmVhdGVUeXBlICAgICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwh RU5USVRZIGNyZWF0ZVVzZXIgICAgICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFF TlRJVFkgY3JlYXRlVXNlck1hcHBpbmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21s Ij4KKzwhRU5USVRZIGNyZWF0ZVZhcmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNn bWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21s Ij4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBA IC0xNDcsNiArMTQ5LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmls ZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVN ICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJk cm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9w X3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0g ImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVN ICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJl bmQuc2dtbCI+CiA8IUVOVElUWSBleGVjdXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNn bWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi45NmQyNTg2NDIzZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0 ZXJtIHpvbmU9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFS SUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1l PgorICA8cmVmcHVycG9zZT4KKyAgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24g dmFyaWFibGUKKyAgPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNp c2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJS RU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFND SEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFi bGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxU RVIgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBh bgorICAgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9y bXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxp dGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFi bGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5n ZXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBPbmx5IHRoZSBvd25lciBvciBhIHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVy IGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEluIG9yZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlh YmxlIGZyb20gb25lIHNjaGVtYSB0byBhbm90aGVyLCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhh dmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2No ZW1hIChvcgorICAgYmUgYSBzdXBlcnVzZXIpLgorCisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIG93bmVyc2hpcCBmcm9tIG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0 aGUgdXNlciBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBu ZXcKKyAgIG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAgIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mg c2NoZW1hIChvciBiZSBhIHN1cGVydXNlcikuIFRoZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3Jj ZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4n dCBkbyBieQorICAgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBUaGUgbmFtZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0 aW5nIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAgdG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3du ZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vz c2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEg Zm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJh PgorICA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGEgc2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFt bGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGZvbyBSRU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJh bD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9X TkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFRvIGNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJv bzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPnByaXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxl cyBhbmQgdGhpcyBjb21tYW5kIGluIHBhcnRpY3VsYXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNp b24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2 YXJpYWJsZS1zZWUtYWxzbyI+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBs ZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w dmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3Jl ZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uMjFjZDgwODE4ZmIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJB TlNGT1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0Ug PHJlcGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAg IFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNl YWJsZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0 X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4IGVkNjkyOThjY2M2Li5kMmJiMjY1MjA5YiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAgQ1JF QVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhPUklaQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNv bW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJ RVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+LCA8 Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAgICAg ICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhcmUgYWNj ZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwv Y29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0ZWQg aW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgorICAgICAg ICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFu ZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1 c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgU0NIRU1BPC9jb21tYW5kPi4gT3Ro ZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZQorICAgICAgICBj b21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCiAgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMTQsNiArMjE1LDExIEBA IENSRUFURSBWSUVXIGhvbGx5d29vZC53aW5uZXJzIEFTCiAgICBUaGUgPGxpdGVyYWw+SUYgTk9U IEVYSVNUUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIGEKICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FM PC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgogICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUg PGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CiAg PC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Mgot LS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK QEAgLTAsMCArMSwxNDkgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+ CisgIDxwcmltYXJ5PkNSRUFURSBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKwor IDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxz ZWNvbmRhcnk+ZGVmaW5pbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRh PgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxt YW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3Rh dGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxy ZWZuYW1lPkNSRUFURSBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEg c2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lu b3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsg Q09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5D UkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFi bGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBh IHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisgICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFu ZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+ LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29t bWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdp dGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxu b3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFk b3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZpZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUg PHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8 L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwt Y3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9U IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBu b3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxl LWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0 YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUg PHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xp dGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5v dCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMg dXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZB UklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxl LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFi bGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBkYXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29t bWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBs ZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zhcmlh YmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViZGIzNTYw ZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNn bWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+Cisg IDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5k ZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25k YXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAg PHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2 YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+ Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJF U1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRS T1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBz ZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3Vw ZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3Vl ZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmll ZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtl bmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJF U1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVw ZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwv bGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJv Z3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9Q IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50 cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgzZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNl cjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJW aWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZj cmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAm Y3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRl Y2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsK ICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3Owog ICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggOWNhOGE4OGRjOTEu LjcwNzVjODYzNzhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTI3NzEsNiArMjc3MSw3IEBAIGFj bGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJ Y2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCQkJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCQkJ CWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJ CQkJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7 CiAJCQkJfQogCkBAIC0yODc4LDYgKzI4NzksOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQg YWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFS WToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiB0ZXh0IHNlYXJj aCBkaWN0aW9uYXJ5ICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAKIAkJCQkJCS8qCiAJCQkJCQkgKiBTcGVjaWFs IGNhc2VzOiBGb3IgdGhlc2UsIHRoZSBlcnJvciBtZXNzYWdlIHRhbGtzCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCmluZGV4IDE4MzE2YTM5NjhiLi45ZTBmNjQ4Yjc0ZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNf dGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3BvbGljeS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNt ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgpAQCAtMTQ0NCw2ICsx NDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBpbnQgZmxh Z3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CiAJCQlicmVh azsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCURyb3BWYXJpYWJsZUJ5SWQob2Jq ZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIENhc3RSZWxhdGlvbklkOgogCQlj YXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCBkOTdkNjMyYTdlZi4uNGFiYmU3MzNmNDUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2hh c2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTIyNSw2ICsyMjYsNyBA QCBzdGF0aWMgYm9vbCBUU1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJvb2wgKmlzX21p c3NpbmcpOwogc3RhdGljIGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9pZCBkaWN0SWQs IGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlzaWJsZUV4dChP aWQgdG1wbElkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29uZmlnSXNWaXNp YmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9vbCBWYXJpYWJs ZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIHZvaWQg cmVjb21wdXRlTmFtZXNwYWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vzc1RlbXBUYWJs ZU5hbWVzcGFjZShib29sIGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFibGVOYW1lc3Bh Y2Uodm9pZCk7CkBAIC05ODYsNiArOTg4LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCBy ZWxpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZh cmlhYmxlSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRp ZmllZCBieSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4g VmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1 bnF1YWxpZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUo T2lkIHZhcmlkKQoreworCXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJpZCwgTlVMTCk7 Cit9CisKKy8qCisgKiBWYXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3ZlLCBidXQgaWYg dGhlIHZhcmlhYmxlIGlzbid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBOVUxMLAorICoJ CXRoZW4gc2V0ICppc19taXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBpbnN0ZWFkIG9m IHRocm93aW5nCisgKgkJYW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXplICppc19taXNz aW5nID0gZmFsc2UuKQorICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2libGVFeHQoT2lk IHZhcmlkLCBib29sICppc19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9w Z192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxl OworCisJdmFydHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJeworCQlpZiAo aXNfbWlzc2luZyAhPSBOVUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChGb3JtX3BnX3Zh cmlhYmxlKSBHRVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsK KworCS8qCisJICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwg aXQgYWluJ3QgdmlzaWJsZS4gV2UgZG9uJ3QKKwkgKiBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0g dmFyZm9ybS0+dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJj aFBhdGgsIHZhcm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkv KgorCQkgKiBJZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2li bGU7IGl0IGNvdWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBz YW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cg Y2hlY2sgZm9yIGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5h bWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJ Zm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCWlmIChu YW1lc3BhY2VJZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3Qg aW4gcGF0aCAqLworCQkJCXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYg KE9pZElzVmFsaWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJ CXsKKwkJCQkvKiBmb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVy biB2aXNpYmxlOworfQogCiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI4OSw2ICszMzY5 LDEzMyBAQCBUU0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3Npbmcp CiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZh cmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisg KiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRo cm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1l LAorCQkJICAgY29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sK KwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJeworCQlPaWQJ CQluYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1pc3Npbmdf b2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2YXJpYWJs ZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJewor CQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJp YWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJ IE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJeworCQkv KiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJCXJlY29t cHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZl U2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFN RU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZh cm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJ aWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghT2lk SXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIs CisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZhcm5hbWUp KSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoKKyAqIFJldHVybnMgb2lkIG9mIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVy CisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywg ZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3Qo TGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkgICAqY2F0 bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFt ZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNhc2UgMToK KwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNl IDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQl2YXJuYW1lID0g c3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQljYXRuYW1l ID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3BuYW1lID0gc3RyVmFsKGxzZWNvbmQo bmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisKKwkJCS8qIGNo ZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChjYXRuYW1lLCBnZXRfZGF0YWJhc2Vf bmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ IGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVh azsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2lu Z19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3aXRoIGlu ZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2YgTEVUIHN0 YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9u bHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlvbiBleHBy ZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQoreworCUxp c3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChsLCBuYW1l cykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBTdHJpbmcp KQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxzZQorCQkJ YnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAogLyoKICAqIERlY29uc3RydWN0UXVh bGlmaWVkTmFtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBiNjNmZDU3ZGMw NC4uOTQxM2I3NjE5YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2 ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Ri Y29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21t YW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC02MzYsNiArNjM3LDIwIEBAIHN0YXRpYyBjb25zdCBP YmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9VU0VSX01BUFBJ TkcsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwKKwkJVmFyaWFibGVS ZWxhdGlvbklkLAorCQlWYXJpYWJsZU9pZEluZGV4SWQsCisJCVZBUklBQkxFT0lELAorCQlWQVJJ QUJMRU5BTUVOU1AsCisJCUFudW1fcGdfdmFyaWFibGVfb2lkLAorCQlBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWUsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQlBbnVtX3BnX3Zh cmlhYmxlX3Zhcm93bmVyLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCwKKwkJT0JKRUNUX1ZB UklBQkxFLAorCQl0cnVlCisJfQogfTsKIAogLyoKQEAgLTgzMSw2ICs4NDYsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCX0sCiAJewogCQkic3RhdGlzdGljcyBvYmpl Y3QiLCBPQkpFQ1RfU1RBVElTVElDX0VYVAorCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIs IE9CSkVDVF9WQVJJQUJMRQogCX0KIH07CiAKQEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfYXR0cmRlZihPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCQkJCQkJCQlib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0 X29iamVjdF9hZGRyZXNzX3R5cGUoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkgVHlw ZU5hbWUgKnR5cGVuYW1lLCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIE9iamVjdEFkZHJlc3Mg Z2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29r KTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19vcGNmKE9iamVjdFR5 cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsK IHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19vcGZfbWVtYmVyKE9iamVj dFR5cGUgb2JqdHlwZSwKQEAgLTExMjcsNiArMTE0Niw5IEBAIGdldF9vYmplY3RfYWRkcmVzcyhP YmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJCQkJCQkJCQkJCSBtaXNzaW5n X29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFi bGUoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgbWlzc2luZ19vayk7CisJCQkJYnJlYWs7CiAJCQkJ Lyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBpbGVyIHdhcm4gYWJvdXQgbWlzc2luZyBjYXNlICov CiAJCX0KIApAQCAtMjEwMiw2ICsyMTI0LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3Qo QXJyYXlUeXBlICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmpl Y3RBZGRyZXNzIGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJl c3MKK2dldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2lu Z19vaykKK3sKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5V TEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJl c3MsIFZhcmlhYmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxp ZmllZE5hbWUob2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQg PSBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVy biBhZGRyZXNzOworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVj dF9hZGRyZXNzCiAgKi8KQEAgLTIyOTYsNiArMjMzNiw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVz cyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNl IE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNl IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgpAQCAtMjQ2Nyw2ICsyNTA4LDcgQEAgY2hlY2tfb2JqZWN0 X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3Mg YWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNE SUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFk ZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9U X09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSkpOwpAQCAtMzQ5Niw2ICszNTM4LDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFr OwogCQkJfQogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAg Km5zcG5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZv cm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXAp KQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZv cm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNp YmxlKG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJ CQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsK KworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIp LAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJ CQkJCQkJCU5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNo ZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgog CQkJewogCQkJCUhlYXBUdXBsZQl0dXA7CkBAIC00NjcwLDYgKzQ3MzgsMTAgQEAgZ2V0T2JqZWN0 VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5n X29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAidHJhbnNmb3JtIik7CiAJ CQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9i amVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNjAyMCw2ICs2MDkyLDMzIEBAIGdldE9iamVjdElkZW50 aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJfQogCQkJYnJlYWs7CiAK KwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqc2NoZW1hOwor CQkJCWNoYXIJICAgKnZhcm5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQs IE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJc2NoZW1h ID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwkJ CQl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCQkJCWFwcGVuZFN0cmlu Z0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJCQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVy KHNjaGVtYSwgdmFybmFtZSkpOworCisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0g bGlzdF9tYWtlMihzY2hlbWEsIHBzdHJkdXAodmFybmFtZSkpOworCisJCQkJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNTM2MTkxMjg0ZTguLmM2ZmQxZmEwNzRmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYg KzE3MTUsNyBAQCBzaGRlcFJlYXNzaWduT3duZWRfT3duZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVw Rm9ybSwgT2lkIG5ld3JvbGUpCiAJCWNhc2UgRGF0YWJhc2VSZWxhdGlvbklkOgogCQljYXNlIFRT Q29uZmlnUmVsYXRpb25JZDoKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgorCQljYXNl IFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCUFsdGVyT2JqZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZv cm0tPmNsYXNzaWQsCiAJCQkJCQkJCQkgIHNkZXBGb3JtLT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3 cm9sZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IGNiMmZiZGM3YzYwLi5hZWU0MGU3YmQ1OSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTUzLDYgKzUzLDcgQEAgT0JKUyA9IFwKIAlzY2hlbWFj bWRzLm8gXAogCXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFyaWFibGUu byBcCiAJc3RhdHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVjbWRzLm8g XApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggYzgwMWM4NjljMWMuLmM3MmE0YWRiMDdiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2Rp Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNlci5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfdGVtcGxhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRpb25j bWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpAQCAtMTQwLDYgKzE0MSwx MCBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpu YW1lLCBPaWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CiAJCQltc2dm bXQgPSBnZXR0ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gXCIlc1wiIGFscmVh ZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOworCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOworCQkJbXNnZm10ID0g Z2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBz Y2hlbWEgXCIlc1wiIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1IiwgY2xhc3NJZCk7CiAJCQlicmVhazsKQEAgLTQz NSw2ICs0NDAsNyBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpzdG10KQogCQljYXNlIE9C SkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJY2FzZSBPQkpF Q1RfU1VCU0NSSVBUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmpl Y3RBZGRyZXNzIGFkZHJlc3M7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKQEAgLTU3NSw2ICs1ODEs NyBAQCBFeGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqc3Rt dCwKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoK IAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7 CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIAkJCQlPaWQJCQljbGFzc0lkOwpAQCAtNjU3LDYgKzY2 NCw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBP aWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNUZW1w bGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgorCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCkBAIC04ODcsNiAr ODk1LDcgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCQljYXNl IE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2Ug T0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJ CQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwppbmRleCBj ZWI5YTIyOWI2My4uZWJiNTg1ZGM0YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtNDc2 LDYgKzQ3NiwxMCBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUs IE5vZGUgKm9iamVjdCkKIAkJCW1zZyA9IGdldHRleHRfbm9vcCgicHVibGljYXRpb24gXCIlc1wi IGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOwogCQkJbmFtZSA9IHN0clZhbChvYmplY3QpOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJ CW5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOworCQkJYnJl YWs7CiAKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRleCBlZGMyYzk4OGUyOS4uMTgzOWMxZjgy YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNDksNiArMjE0OSw4 IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVy biAiVEFCTEVTUEFDRSI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEUiOwor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEUiOwogCQkJLyogdGhl c2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6 CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKQEAgLTIyMzIsNiArMjIzNCw4IEBAIHN0cmluZ2lm eV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxF U1BBQ0VTIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRVMiOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEVTIjsKIAkJCS8qIHRoZXNlIGN1 cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQlj YXNlIE9CSkVDVF9BR0dSRUdBVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9t ZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGRkNGNk ZTQxZDMyLi4xMDFjOGQ3NWRkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTQxLDYg KzQxLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnc2NoZW1hY21kcy5jJywKICAg J3NlY2xhYmVsLmMnLAogICAnc2VxdWVuY2UuYycsCisgICdzZXNzaW9uX3ZhcmlhYmxlLmMnLAog ICAnc3RhdHNjbWRzLmMnLAogICAnc3Vic2NyaXB0aW9uY21kcy5jJywKICAgJ3RhYmxlY21kcy5j JywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IGNlZTVkN2JiYjljLi41N2I0ZTY3MTljMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC05Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9y dHNPYmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6 CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmY2NDFlMDBjMWFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0wLDAgKzEsODggQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlh YmxlIGNyZWF0aW9uL21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJs ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKworLyoK KyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENSRUFURSBWQVJJQUJM RSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lkCQkJbmFtZXNwYWNl aWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9k OworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29sbGF0aW9uOworCU9p ZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCisJbmFtZXNwYWNl aWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFi bGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHN0bXQt PnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJLyogZGlzYWxsb3cgcHNldWRvdHlwZXMg Ki8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURPKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlICVzIiwKKwkJCQkJ CWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj ayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCWlmIChh Y2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0 LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9uKHR5cGlkKTsKKwor CWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBDb2xsYXRpb24ocHN0 YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJCQkJCQkJCQlzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQorCQljb2xsYXRpb24gPSB0eXBjb2xsYXRp b247CisKKwkvKiBjb21wbGFpbiBpZiBDT0xMQVRFIGlzIGFwcGxpZWQgdG8gYW4gdW5jb2xsYXRh YmxlIHR5cGUgKi8KKwlpZiAoT2lkSXNWYWxpZChjb2xsYXRpb24pICYmICFPaWRJc1ZhbGlkKHR5 cGNvbGxhdGlvbikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB VFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY29sbGF0aW9ucyBhcmUgbm90IHN1cHBvcnRl ZCBieSB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOworCisJ dmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUoc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCisJCQkJ CQkJICAgbmFtZXNwYWNlaWQsCisJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJICAgdHlwbW9kLAor CQkJCQkJCSAgIHZhcm93bmVyLAorCQkJCQkJCSAgIGNvbGxhdGlvbiwKKwkJCQkJCQkgICBzdG10 LT5pZl9ub3RfZXhpc3RzKTsKKworCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCisJCSBz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOworCisJcmV0dXJuIHZh cmlhYmxlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBlYTk2OTQ3ZDgxMy4uMjMw YjY5NjZkMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01Miw2ICs1Miw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvc3RvcmFnZV94bG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgpA QCAtNjkxMCw2ICs2OTExLDcgQEAgQVRUeXBlZFRhYmxlUmVjdXJzaW9uKExpc3QgKip3cXVldWUs IFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogICogKHBvc3NpYmx5IG5lc3RlZCBz ZXZlcmFsIGxldmVscyBkZWVwIGluIGNvbXBvc2l0ZSB0eXBlcywgYXJyYXlzLCBldGMhKS4KICAq IEV2ZW50dWFsbHksIHdlJ2QgbGlrZSB0byBwcm9wYWdhdGUgdGhlIGNoZWNrIG9yIHJld3JpdGUg b3BlcmF0aW9uCiAgKiBpbnRvIHN1Y2ggdGFibGVzLCBidXQgZm9yIG5vdywganVzdCBlcnJvciBv dXQgaWYgd2UgZmluZCBhbnkuCisgKiBBbHNvLCBjaGVjayBpZiAidHlwZU9pZCIgaXMgdXNlZCBh cyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZS4KICAqCiAgKiBDYWxsZXIgc2hvdWxkIHBy b3ZpZGUgZWl0aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9uIG9mIGEgcm93dHlwZSwKICAqIG9y IGEgdHlwZSBuYW1lIChub3QgYm90aCkgZm9yIHVzZSBpbiB0aGUgZXJyb3IgbWVzc2FnZSwgaWYg YW55LgpAQCAtNjk3Myw2ICs2OTc1LDQ1IEBAIGZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5j aWVzKE9pZCB0eXBlT2lkLCBSZWxhdGlvbiBvcmlnUmVsYXRpb24sCiAJCQljb250aW51ZTsKIAkJ fQogCisJCS8qIGNoZWNrIGlmIHRoZSB0eXBlIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Np b24gdmFyaWFibGUgKi8KKwkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0 aW9uSWQpCisJCXsKKwkJCU9pZAkJCXZhcmlkID0gcGdfZGVwZW5kLT5vYmppZDsKKworCQkJaWYg KG9yaWdUeXBlTmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5 cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJ CQkJCQkJCW9yaWdUeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5y ZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJt c2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVs YXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVM S0lORF9GT1JFSUdOX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0 ZXIgZm9yZWlnbiB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9u KSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkp KTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRf UkVMQVRJT04gfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfTUFUVklFVyB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90 IGFsdGVyIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVz ZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOwor CisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIEVsc2UsIGlnbm9yZSBkZXBlbmRlZXMgdGhhdCBh cmVuJ3QgcmVsYXRpb25zICovCiAJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgIT0gUmVsYXRpb25S ZWxhdGlvbklkKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCA0NWFl NzQ3MmFiNS4uOGY4YjdkMDlmMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtNTMsNiAr NTMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHlwZWNtZHMuaCIK QEAgLTMzNzMsNiArMzM3NCwyMCBAQCBnZXRfcmVsc193aXRoX2RvbWFpbihPaWQgZG9tYWluT2lk LCBMT0NLTU9ERSBsb2NrbW9kZSkKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CisJCWVsc2UgaWYg KHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJCS8qCisJ CQkgKiBXZSBjYW5ub3QgdG8gdmFsaWRhdGUgY29uc3RyYWludCBpbnNpZGUgc2Vzc2lvbiB2YXJp YWJsZXMgZnJvbQorCQkJICogb3RoZXIgc2Vzc2lvbnMsIHNvIGJldHRlciB0byBmYWlsIGlmIHRo ZXJlIGFyZSBhbnkgc2Vzc2lvbgorCQkJICogdmFyaWFibGUsIHRoYXQgdXNlIHRoaXMgZG9tYWlu LgorCQkJICovCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBkb21haW4gXCIl c1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJ ZG9tYWluVHlwZU5hbWUsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZShwZ19kZXBlbmQtPm9iamlkKSkpKTsKKwkJfQogCiAJCS8qIEVsc2UsIGln bm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgdXNlciBjb2x1bW5zIG9mIHJlbGF0aW9ucyAqLwog CQkvKiAod2UgYXNzdW1lIHN5c3RlbSBjb2x1bW5zIGFyZSBuZXZlciBvZiBkb21haW4gdHlwZXMp ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQppbmRleCA1MGY1MzE1OWQ1OC4uOTJiZjg0MTk4MzMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZ3JhbXBhcnNl LmgiCkBAIC0yODQsOCArMjg1LDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJQ29uc3Ry YWludHNTZXRTdG10IENvcHlTdG10IENyZWF0ZUFzU3RtdCBDcmVhdGVDYXN0U3RtdAogCQlDcmVh dGVEb21haW5TdG10IENyZWF0ZUV4dGVuc2lvblN0bXQgQ3JlYXRlR3JvdXBTdG10IENyZWF0ZU9w Q2xhc3NTdG10CiAJCUNyZWF0ZU9wRmFtaWx5U3RtdCBBbHRlck9wRmFtaWx5U3RtdCBDcmVhdGVQ TGFuZ1N0bXQKLQkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVN0bXQgQ3Jl YXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3BhY2VTdG10Ci0JCUNyZWF0ZUZkd1N0bXQgQ3JlYXRl Rm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAorCQlDcmVhdGVTY2hlbWFT dG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVT dGF0c1N0bXQKKwkJQ3JlYXRlVGFibGVTcGFjZVN0bXQgQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3Jl aWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFzc2VydGlvblN0 bXQgQ3JlYXRlVHJhbnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVudFRyaWdTdG10 CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5nU3RtdCBDcmVhdGVSb2xlU3RtdCBD cmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNsYXJlQ3Vyc29yU3RtdCBEZWZpbmVT dG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CkBAIC03ODIsOCArNzgzLDggQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVRVNDQVBFIFVOQk9VTkRFRCBVTkNPTkRJVElPTkFMIFVO Q09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9OIFVOSVFVRSBVTktOT1dOCiAJVU5MSVNURU4gVU5M T0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAotCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBW QUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5HCi0JVkVSQk9T RSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCisJVkFDVVVNIFZBTElEIFZB TElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUklBQkxF CisJVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUK IAogCVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VUIFdP UksgV1JBUFBFUiBXUklURQogCkBAIC0xMDQ5LDYgKzEwNTAsNyBAQCBzdG10OgogCQkJfCBDcmVh dGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAogCQkJfCBDcmVhdGVTY2hlbWFTdG10 CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJCXwgQ3Jl YXRlU3RtdAogCQkJfCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CkBAIC0xNTkxLDYgKzE1OTMsNyBA QCBzY2hlbWFfc3RtdDoKIAkJCXwgQ3JlYXRlVHJpZ1N0bXQKIAkJCXwgR3JhbnRTdG10CiAJCQl8 IFZpZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCTsKIAogCkBAIC01MjY1LDYg KzUyNjgsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIAkJCQl9CiAJCTsKIAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAqCQkJCUNSRUFURSBWQVJJQUJM RSB2YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3JlYXRl U2Vzc2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZh clN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlh YmxlID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAo Q29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UK KwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9 ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4t PmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7 CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQ REFURSBbIFRPIHZlcnNpb24gXQpAQCAtNzA1Niw2ICs3MDg3LDcgQEAgb2JqZWN0X3R5cGVfYW55 X25hbWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFSWQkJCQl7ICQkID0gT0JKRUNUX1RT RElDVElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRFTVBMQVRFCQkJCXsgJCQgPSBPQkpF Q1RfVFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIENPTkZJR1VSQVRJT04JCQl7ICQk ID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBWQVJJQUJMRQkJCQkJCQkJeyAkJCA9 IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC05OTYzLDYgKzk5OTUsMjQgQEAgUmVu YW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBU TyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJ CQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+ cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikg JDM7CisJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwor CQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJ U1RTIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0g bWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9 CiAJCTsKIAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDMyNCw2ICsxMDM3NCwyNCBAQCBBbHRl ck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFND SEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZB UklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1h ID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NI RU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFS SUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEg PSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOwor CQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNjA1LDYgKzEwNjczLDE0 IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlw ZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8g Um9sZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJP d25lclN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQg PSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTc5OTEsNiArMTgwNjcsNyBAQCB1bnJl c2VydmVkX2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxV RV9QCisJCQl8IFZBUklBQkxFCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVSU0lPTl9QCiAJCQl8IFZJ RVcKQEAgLTE4NjQ3LDYgKzE4NzI0LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWQUxV RV9QCiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCisJCQl8IFZBUklBQkxFCiAJCQl8IFZBUklB RElDCiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwppbmRleCA2MjAxNTQzMWZkZi4uYjZjYmUzNTRjNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYwpAQCAtMTA1LDYgKzEwNSw3IEBAIHR5cGVkZWYgc3RydWN0CiAJTGlzdAkgICAq aW5kZXhlczsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAqLwogCUxpc3QJICAgKnRyaWdnZXJzOwkJ LyogQ1JFQVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0CSAgICpncmFudHM7CQkJLyogR1JBTlQg aXRlbXMgKi8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkvKiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMg Ki8KIH0gQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAKIApAQCAtNDA5MSw2ICs0MDkyLDcgQEAg dHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0 IGNoYXIgKnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMgPSBOSUw7CiAJY3h0LnRyaWdnZXJzID0g TklMOwogCWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJ ICogUnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVudCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQg bGlzdC4gU2VwYXJhdGUKQEAgLTQxNTksNiArNDE2MSwxNSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hl bWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkK IAkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVtZW50KTsKIAkJCQlicmVh azsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCXsKKwkJCQkJQ3JlYXRl U2Vzc2lvblZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBlbGVtZW50Owor CisJCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnZhcmlhYmxlLT5zY2hl bWFuYW1lKTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxhcHBlbmQoY3h0LnZhcmlhYmxlcywgZWxl bWVudCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1l bnQpKTsKQEAgLTQxNzIsNiArNDE4Myw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVt ZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9 IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0 KHJlc3VsdCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4 dC5ncmFudHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7 CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAyNWZlM2Q1ODAxNi4uNzgy YjAyMmRhOWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY29t bWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2Uu aCIKQEAgLTE4Miw2ICsxODMsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShO b2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVh dGVSb2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVT ZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVT dGF0c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OSw2ICsxMzkxLDEwIEBAIFBy b2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwog CisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZh cmlhYmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJ YnJlYWs7CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8g ZGVzdHJ1Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIzNDEsNiArMjM0Nyw5IEBA IEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9C SkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJf VkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dO OwogCQkJYnJlYWs7CkBAIC0yNjQ5LDYgKzI2NTgsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUg KnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBD TURUQUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJ CWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMzIyNSw2ICsz MjM3LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJl YWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NS RUFURV9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcs ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0 cmVlKSk7CkBAIC0zNzU5LDYgKzM3NzUsMTAgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBh cnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3Rt dDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVs b2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9k ZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYzQ2 MGE3MmI3NWQuLmZkYjdlYWVmNzVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpA QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJy YXkuaCIKQEAgLTM4NTQsMyArMzg1NSw2NyBAQCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1 YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0t LS0tLS0tLSBQR19WQVJJQUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0 X3Zhcm5hbWVfdmFyaWQKKyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUs IGxvb2sgdXAgdGhlIE9JRC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFy ICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIo VkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJH ZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNl KSk7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBh IHBhbGxvYydkIGNvcHkgb2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgor ICovCitjaGFyICoKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhl YXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5h bWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJu YW1lID0gcHN0cmR1cChOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29j aWF0ZWQgd2l0aCBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZv cm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdf dmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFy bmFtZXNwYWNlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNw YWNlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggOGM3Y2NjNjlhM2MuLmJkYWMwYzEz YmVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9p ZAlUeXBlbmFtZUdldFR5cGlkKGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBl bmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsK IGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFy aWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1 bmNuYW1lR2V0Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdz LCBMaXN0ICphcmduYW1lcywKIAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBA IC0xNjksNiArMTcxLDEwIEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0 aE1hdGNoZXIoTWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hl ciAqQ29weVNlYXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVy biBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRj aGVyICpwYXRoKTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOwor ZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFy ICp2YXJuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZy b21OYW1lTGlzdChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAln ZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5n LCBpbnQzMiB0b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ5ZjM2YWM2ODg1Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o CkBAIC0wLDAgKzEsMjQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb252YXJp YWJsZS5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lm bmRlZiBTRVNTSU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAorCisjaW5j bHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25v ZGUuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisKK2V4dGVybiBPYmplY3RBZGRy ZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0 bXQgKnN0bXQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBiYTEyNjc4ZDFj Yi4uOGFiZTNmMGQ0MDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzNzAsNiArMjM3MCw3 IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JKRUNU X1RZUEUsCiAJT0JKRUNUX1VTRVJfTUFQUElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JKRUNU X1ZJRVcsCiB9IE9iamVjdFR5cGU7CiAKQEAgLTM1MjAsNiArMzUyMSwyMSBAQCB0eXBlZGVmIHN0 cnVjdCBBbHRlclN0YXRzU3RtdAogCWJvb2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9yIGlm IHN0YXRpc3RpY3Mgb2JqZWN0IGlzIG1pc3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAKKwor LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxFIFN0 YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBD cmVhdGVTZXNzaW9uVmFyU3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdmFy aWFibGU7CQkvKiB0aGUgdmFyaWFibGUgdG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlwZU5h bWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1 c2U7CisJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4 aXN0cyAqLworfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgKgkJQ3JlYXRlIEZ1bmN0aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGE0YWYzZjcxN2ExLi42ZjUxM2YwNDIyNSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaApAQCAtNDg2LDYgKzQ4Niw3IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIs IFZBTElEQVRPUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dmFsdWUiLCBWQUxVRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJ2YWx1ZXMiLCBWQUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJ2YXJjaGFyIiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoInZhcmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZF RF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBF X0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBk MjUwYTcxNGQ1OS4uZWE4Njk1NGRkZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2 OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JN IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAi QUxURVIgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfVFlQRSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxU RVIgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwg IkFOQUxZWkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwg IkJFR0lOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklH R0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwg IkNSRUFURSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVB VEVfVVNFUl9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFU RSBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRF LCAiREVBTExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RF QUxMT0NBVEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAt MTc1LDYgKzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRS QU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklH R0VSLCAiRFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19EUk9QX1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9Q IFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJF WEVDVVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwg IkVYUExBSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCBm YTdjN2UwMzIzYi4uODdlMWZlNjM2YjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xMzksNiAr MTM5LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQgZnVuY2lkKTsKIGV4dGVy biBib29sIGdldF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4dGVybiBSZWdQcm9jZWR1 cmUgZ2V0X2Z1bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbG5hbWVf cmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFjZSk7CitleHRlcm4gT2lk CWdldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2Up OwogZXh0ZXJuIGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRf cmVsX25hbWVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3R5cGVfaWQoT2lk IHJlbGlkKTsKQEAgLTIxMSw2ICsyMTIsOSBAQCBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9u X25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2Ny aXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJu IGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7 CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7Citl eHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpOworCiAj ZGVmaW5lIHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0g SW52YWxpZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBh cnJheXMgYW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9k b21haW4odHlwaWQpICAoZ2V0X2Jhc2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lk KQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzVhMDc4YWRh OWUuLmNkOGU0NDEyZmE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Rl cGVuZGVuY3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5v dXQKQEAgLTE1MSwzICsxNTEsMjAgQEAgb3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dO RUQgQlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJl Z3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5k ZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQ RSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcnR5cGU7CistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWlu OworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVj dHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0 eXBlIGRlcGVuZHMgb24gdHlwZSB2YXJkb21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FE RSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsK K0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBk ZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5 cGUgdmFydHlwZQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVu ZGVudCBvYmplY3RzIHRvby4KKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWM3NTk1ZTlhNDEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKQEAg LTAsMCArMSwxNjMgQEAKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKK0NSRUFURSBWQVJJQUJM RSBkZGx0ZXN0X3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuZGRsdGVz dF9zZXN2YXIwMiBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQ1JFQVRF IFZBUklBQkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgQVMgaW50OworU0VMRUNU IHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkK KyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24gdmFyaWFibGUnLCAne2RkbHRl c3Rfc2VzdmFyMDF9JywgJ3t9Jyk7CisgICAgICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNf YWRkcmVzcyAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAoInNlc3Npb24gdmFyaWFibGUiLCJ7cHVibGljLGRkbHRlc3Rf c2VzdmFyMDF9Iix7fSkKKygxIHJvdykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19h ZGRyZXNzKGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2Fk ZHJlc3MoJ3Nlc3Npb24gdmFyaWFibGUnLCAne3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfScsICd7 fScpOworICAgICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKCJzZXNzaW9uIHZhcmlhYmxlIiwie3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfSIse30pCiso MSByb3cpCisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBv YmppZCwgb2Jqc3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZh cmlhYmxlJywgJ3tzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAzfScsICd7fScpOworICAg ICAgICAgICAgICAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICgic2Vzc2lvbiB2YXJpYWJsZSIsIntzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nl c3ZhcjAzfSIse30pCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwMTsK K0RST1AgVkFSSUFCTEUgcHVibGljLmRkbHRlc3Rfc2VzdmFyMDI7CitDUkVBVEUgVFlQRSBzZXN2 YXJ0ZXN0X3R5cGVfZGRsIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIERPTUFJTiBzZXN2YXJ0 ZXN0X2RvbWFpbl9kZGwgQVMgaW50OworQ1JFQVRFIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRs IChhIGludCwgYiBpbnQpOworLyogcHJlZml4IGRkbHRlc3RfIHNob3VsZCBub3QgYmUgdXNlZCBl dmVyIGluIGFub3RoZXIgdGVzdHMgKi8KK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0 IEFTIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIw NSBBUyBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2 YXIwNiBBUyBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKy0tIGFkZCBuZXcgZmllbGQgdG8gY29tcG9z aXRlIHZhbHVlIGlzIHN1cHBvcnRlZCwKKy0tIGNoYW5nZSB0eXBlIG9mIGZpZWxkIGlzIHByb2hp Yml0ZWQKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFE RCBBVFRSSUJVVEUgYyBpbnQ7CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBREQg Q09MVU1OIGMgaW50OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBl X2RkbCBBTFRFUiBBVFRSSUJVVEUgYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRl ciB0eXBlICJzZXN2YXJ0ZXN0X3R5cGVfZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA0IiB1c2VzIGl0CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3Rh YmxlX2RkbCBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRl ciB0YWJsZSAic2VzdmFydGVzdF90YWJsZV9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLmRkbHRlc3Rfc2VzdmFyMDYiIHVzZXMgaXQKK0FMVEVSIERPTUFJTiBzZXN2YXJ0ZXN0 X2RvbWFpbl9kZGwgQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CitFUlJPUjogIGNhbm5vdCBhbHRl ciBkb21haW4gInNlc3ZhcnRlc3RfZG9tYWluX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMuZGRsdGVzdF9zZXN2YXIwNSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RST1Ag VFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHNlc3Zh cnRlc3RfdHlwZV9kZGwgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlM OiAgc2Vzc2lvbiB2YXJpYWJsZSBkZGx0ZXN0X3Nlc3ZhcjA0IGRlcGVuZHMgb24gdHlwZSBzZXN2 YXJ0ZXN0X3R5cGVfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRs OworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHNlc3ZhcnRlc3RfZG9tYWluX2RkbCBiZWNhdXNl IG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIGRk bHRlc3Rfc2VzdmFyMDUgZGVwZW5kcyBvbiB0eXBlIHNlc3ZhcnRlc3RfZG9tYWluX2RkbAorSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KK0RST1AgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9w IHRhYmxlIHNlc3ZhcnRlc3RfdGFibGVfZGRsIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgZGRsdGVzdF9zZXN2YXIwNiBkZXBlbmRz IG9uIHR5cGUgc2VzdmFydGVzdF90YWJsZV9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FE RSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBjaGVjayBldmVudCB0cmln Z2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dl cl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJF IHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmln Z2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBJRiByLmNsYXNzaWQgPSAncGdfdmFy aWFibGUnOjpyZWdjbGFzcyBBTkQKKyAgICAgICByLmFkZHJlc3NfbmFtZXNbMl0gbGlrZSAnZGRs dGVzdF9zZXN2YXIlJworICAgIFRIRU4KKyAgICAgIFJBSVNFIE5PVElDRQorICAgICAgICAgJ05P Uk1BTDogb3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBh cmdzPSUnLAorICAgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCBy Lm9iamVjdF90eXBlLAorICAgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1l cywgci5hZGRyZXNzX2FyZ3M7CisgICAgRU5EIElGOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRf dHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1Ag VkFSSUFCTEUnLCAnRFJPUCBTQ0hFTUEnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50 X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKTsKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIw NDsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lv biB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNCBuYW1lPXtwdWJsaWMs ZGRsdGVzdF9zZXN2YXIwNH0gYXJncz17fQorRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1 OworTk9USUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9u IHZhcmlhYmxlIGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA1IG5hbWU9e3B1YmxpYyxk ZGx0ZXN0X3Nlc3ZhcjA1fSBhcmdzPXt9CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDY7 CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Npb24g dmFyaWFibGUgaWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDYgbmFtZT17cHVibGljLGRk bHRlc3Rfc2VzdmFyMDZ9IGFyZ3M9e30KKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFNDSEVNQSBz ZXN2YXJ0ZXN0X2RkbDsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2NoZW1hIHNlc3ZhcnRlc3RfZGRs IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFy aWFibGUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBkZXBlbmRzIG9uIHNjaGVtYSBz ZXN2YXJ0ZXN0X2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBTQ0hFTUEgc2VzdmFy dGVzdF9kZGwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJp YWJsZSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzCitOT1RJQ0U6ICBOT1JNQUw6IG9y aWc9ZiBub3JtYWw9dCBpc3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFyaWFibGUgaWRlbnRpdHk9c2Vz dmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBuYW1lPXtzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0 X3Nlc3ZhcjAzfSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50 X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQ7CitEUk9QIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dl cl9yZXBvcnRfZHJvcHBlZCgpOworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFRZUEUgc2VzdmFydGVz dF90eXBlX2RkbDsKK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1AgVEFC TEUgc2VzdmFydGVzdF90YWJsZV9kZGw7CistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitD UkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNyBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklB QkxFIGRkbHRlc3Rfc2VzdmFyMDcgSVMgJ3NvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50JzsK K1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICdkZGx0ZXN0X3Nlc3ZhcjA3JzsKKyAgICAg ICAgb2JqX2Rlc2NyaXB0aW9uICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBzb21lIHNlc3Npb24gdmFyaWFibGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklB QkxFIGRkbHRlc3Rfc2VzdmFyMDc7CitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBB UyBpbnQ7CitBTFRFUiBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IFJFTkFNRSBUTyBkZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQUxURVIg VkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIFNFVCBTQ0hFTUEgc2VzdmFydGVzdF9k ZGw7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKK0dSQU5UIEFMTCBP TiBTQ0hFTUEgc2VzdmFydGVzdF9kZGwgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKy0tIHNob3VsZCBmYWlsCitE Uk9QIFZBUklBQkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKK0VS Uk9SOiAgbXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRk bHRlc3Rfc2VzdmFyMDhfcmVuYW1lZAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0FMVEVSIFZBUklB QkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBPV05FUiBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcl9kZGw7CitFUlJPUjogIHJvbGUgInJlZ3Jlc3NfdmFyaWFibGVfb3du ZXJfZGRsIiBjYW5ub3QgYmUgZHJvcHBlZCBiZWNhdXNlIHNvbWUgb2JqZWN0cyBkZXBlbmQgb24g aXQKK0RFVEFJTDogIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgc2VzdmFydGVzdF9kZGwuZGRs dGVzdF9zZXN2YXIwOF9yZW5hbWVkCitwcml2aWxlZ2VzIGZvciBzY2hlbWEgc2VzdmFydGVzdF9k ZGwKKy0tIHNob3VsZCBmYWlsIC0gbm90IG9uIHNlYXJjaCBwYXRoCitEUk9QIFZBUklBQkxFIGRk bHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAiZGRsdGVz dF9zZXN2YXIwOF9yZW5hbWVkIiBkb2VzIG5vdCBleGlzdAorU0VUIFNFQVJDSF9QQVRIIFRPICdz ZXN2YXJ0ZXN0X2RkbCc7CistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9z ZXN2YXIwOF9yZW5hbWVkOworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcl9kZGw7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBERUZBVUxUOworQ1JF QVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBBUyBpbnQ7CitDUkVB VEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGludDsKK05PVElD RTogIHNlc3Npb24gdmFyaWFibGUgImRkbHRlc3Rfc2VzdmFyMDkiIGFscmVhZHkgZXhpc3RzLCBz a2lwcGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CitOT1RJQ0U6ICBzZXNzaW9uIHZh cmlhYmxlICJkZGx0ZXN0X3Nlc3ZhcjA5IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0NSRUFU RSBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBBUyBpbnQ7CitDUkVBVEUg U0NIRU1BIHN2YXJ0ZXN0MDJfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7Cist LSBzaG91bGQgdG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjEw IEFTIGludDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyMTAiIGFscmVhZHkgZXhp c3RzCitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBSRU5BTUUgVE8gc2Vz dmFyMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4aXN0 cyBpbiBzY2hlbWEgInN2YXJ0ZXN0MDFfZGRsIgorQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9k ZGwuc2VzdmFyMTAgU0VUIFNDSEVNQSBzdmFydGVzdDAxX2RkbDsKK0VSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSAic2VzdmFyMTAiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSAic3ZhcnRlc3QwMV9k ZGwiCitEUk9QIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gc2Vz c2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMAorZHJvcCBjYXNjYWRlcyB0byBz ZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExCitEUk9QIFNDSEVNQSBzdmFy dGVzdDAyX2RkbCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZh cmlhYmxlIHN2YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQppbmRleCBhNDI0YmUyYTZiZi4uMGY3NWJmYWY1YWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQpAQCAtMTE1LDcgKzExNSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGlu ZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5C OiB0ZW1wLnNxbCBkb2VzIHJlY29ubmVjdHMgd2hpY2ggdHJhbnNpZW50bHkgdXNlIDIgY29ubmVj dGlvbnMsCiAjIHNvIGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3Rz CiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAg ZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxl IHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0 aCB4bWwKK3Rlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJh bmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNl IHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vz c2lvbl92YXJpYWJsZXNfZGRsCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBh cmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5 LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmluZGV4IDhkNzRlZDcx MjJjLi42YzE4YjdmODQwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5k ZW5jeS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKQEAgLTEx NCwzICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBPV05FRCBC WSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVz c19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CisKKy0tIGRlcGVuZGVu Y3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUg dmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWlu OworRFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mODQ0NDY5ZWNiMQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKQEAgLTAsMCArMSwx NTAgQEAKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKKworQ1JFQVRFIFZBUklBQkxFIGRkbHRl c3Rfc2VzdmFyMDEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3Zh cjAyIEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitDUkVBVEUgVkFSSUFC TEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBBUyBpbnQ7CisKK1NFTEVDVCBwZ19p ZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZS T00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3tkZGx0ZXN0X3Nl c3ZhcjAxfScsICd7fScpOworCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3Mo Y2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygn c2Vzc2lvbiB2YXJpYWJsZScsICd7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9JywgJ3t9Jyk7CisK K1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jq c3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywg J3tzZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAzfScsICd7fScpOworCitEUk9QIFZBUklB QkxFIGRkbHRlc3Rfc2VzdmFyMDE7CitEUk9QIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3Zh cjAyOworCitDUkVBVEUgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFTIChhIGludCwgYiBpbnQp OworQ1JFQVRFIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgQVMgaW50OworQ1JFQVRFIFRB QkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIChhIGludCwgYiBpbnQpOworCisvKiBwcmVmaXggZGRs dGVzdF8gc2hvdWxkIG5vdCBiZSB1c2VkIGV2ZXIgaW4gYW5vdGhlciB0ZXN0cyAqLworQ1JFQVRF IFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQgQVMgc2VzdmFydGVzdF90eXBlX2RkbDsKK0NSRUFU RSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1IEFTIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0NS RUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA2IEFTIHNlc3ZhcnRlc3RfdGFibGVfZGRsOwor CistLSBhZGQgbmV3IGZpZWxkIHRvIGNvbXBvc2l0ZSB2YWx1ZSBpcyBzdXBwb3J0ZWQsCistLSBj aGFuZ2UgdHlwZSBvZiBmaWVsZCBpcyBwcm9oaWJpdGVkCisKKy0tIHNob3VsZCBiZSBvaworQUxU RVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitBTFRFUiBU QUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBREQgQ09MVU1OIGMgaW50OworCistLSBzaG91bGQg ZmFpbAorQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFMVEVSIEFUVFJJQlVURSBiIFRZ UEUgbnVtZXJpYzsKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIEFMVEVSIENPTFVN TiBiIFRZUEUgbnVtZXJpYzsKK0FMVEVSIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgQURE IENIRUNLKHZhbHVlIDw+IDEwMCk7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgc2VzdmFy dGVzdF90eXBlX2RkbDsKK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1Ag VEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGw7CisKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIgc3Vw cG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9y dF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciByZWNv cmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJfZHJv cHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIElGIHIuY2xhc3NpZCA9ICdwZ192YXJpYWJsZSc6 OnJlZ2NsYXNzIEFORAorICAgICAgIHIuYWRkcmVzc19uYW1lc1syXSBsaWtlICdkZGx0ZXN0X3Nl c3ZhciUnCisgICAgVEhFTgorICAgICAgUkFJU0UgTk9USUNFCisgICAgICAgICAnTk9STUFMOiBv cmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScs CisgICAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0 X3R5cGUsCisgICAgICAgICByLm9iamVjdF9pZGVudGl0eSwgci5hZGRyZXNzX25hbWVzLCByLmFk ZHJlc3NfYXJnczsKKyAgICBFTkQgSUY7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklB QkxFJywgJ0RST1AgU0NIRU1BJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCk7CisKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNDsK K0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNTsKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9z ZXN2YXIwNjsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRs OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsIENBU0NBREU7 CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZDsKKworRFJPUCBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3Bw ZWQoKTsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbDsK K0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1AgVEFCTEUgc2VzdmFydGVz dF90YWJsZV9kZGw7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA3IEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgZGRsdGVz dF9zZXN2YXIwNyBJUyAnc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBn X2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJp YWJsZSBXSEVSRSB2YXJuYW1lID0gJ2RkbHRlc3Rfc2VzdmFyMDcnOworRFJPUCBWQVJJQUJMRSBk ZGx0ZXN0X3Nlc3ZhcjA3OworCitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBBUyBp bnQ7CitBTFRFUiBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IFJFTkFNRSBUTyBkZGx0ZXN0X3Nl c3ZhcjA4X3JlbmFtZWQ7CisKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitBTFRFUiBW QVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgU0VUIFNDSEVNQSBzZXN2YXJ0ZXN0X2Rk bDsKKworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisKK0dSQU5UIEFM TCBPTiBTQ0hFTUEgc2VzdmFydGVzdF9kZGwgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7 CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCistLSBzaG91bGQg ZmFpbAorRFJPUCBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFt ZWQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0FMVEVSIFZBUklBQkxFIHNlc3ZhcnRlc3Rf ZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2RkbDsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2RkbDsKKworLS0gc2hvdWxkIGZhaWwgLSBub3Qgb24gc2VhcmNoIHBhdGgKK0RST1AgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOworCitTRVQgU0VBUkNIX1BBVEggVE8gJ3Nl c3ZhcnRlc3RfZGRsJzsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rf c2VzdmFyMDhfcmVuYW1lZDsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CisKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CisKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworCitEUk9QIFJP TEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIERF RkFVTFQ7CisKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBB UyBpbnQ7CitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworRFJPUCBW QVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKKworQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdDAxX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50OworQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRl c3QwMl9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKKworLS0gc2hvdWxkIHRv IGZhaWwKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMCBBUyBpbnQ7CitB TFRFUiBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBSRU5BTUUgVE8gc2VzdmFyMTA7 CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0 ZXN0MDFfZGRsOworCitEUk9QIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOworRFJPUCBT Q0hFTUEgc3ZhcnRlc3QwMl9kZGwgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggMjZmYzlmNjgxMGQuLmVjNDk5YmNmMjg3IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtNTYyLDYgKzU2Miw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVh dGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQK IENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKLS0gCjIuNDku MAoK --0000000000006fcc3506376cd535--