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 1uebN1-00CHZ2-PT for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Jul 2025 15:27:05 +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 1uebM1-002nM3-Dl for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Jul 2025 15:26:01 +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 1uebM0-002nLu-6H for pgsql-hackers@lists.postgresql.org; Wed, 23 Jul 2025 15:26:01 +0000 Received: from mail-yb1-xb36.google.com ([2607:f8b0:4864:20::b36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uebLm-000PAA-1w for pgsql-hackers@lists.postgresql.org; Wed, 23 Jul 2025 15:25:59 +0000 Received: by mail-yb1-xb36.google.com with SMTP id 3f1490d57ef6-e8d707b9bc2so5360068276.3 for ; Wed, 23 Jul 2025 08:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753284345; x=1753889145; 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=PnSNISMnijTZcen17U7IMvubbTZhDih5ug7E6wUtyxQ=; b=h19IPOpjN+Ylf6qM+N5dng1EBXF4wu7AR1cbCCd1LwuYR87xOHk3SKNov/6nFYkase CTCXZyny55wqYv7z/I9hU7Ylp1n2AfsChCNYxImT1ImrdeCKImsNO5aAF0lB04/g1EIW B5doJtGfajQsH9xrbkIqrk3GMzvXBHyMEZjpAK4v33awbvnXFL23xUf/atsRPk7onRBv feZqNd62TgXeDnsvYXxHahsWKiwNC/1orA7qGyNbqkt3gscuhwtiL+0khivmbyzy//gf 04NdCjF4oyJ08WLdYEKX2n4sK6X7ZhMbAEfMZDhdXopMG/7QOaWxTm15U2G2HhyPZgLK jR1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753284345; x=1753889145; 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=PnSNISMnijTZcen17U7IMvubbTZhDih5ug7E6wUtyxQ=; b=TGD1kwxq5y655IJBjYtjBs10qVJDKDX0DKporYdXGkp7zlKoMYLWX+FJqO+HTQqguv GsZcsuKF7GvQA+EUPhuI4nGmy92f2feZD2dnVHyblHFa6WkDYtDUmsOUM/l9xzlzqoEr KEFgSxmG1pGuGG8/tXK+h4OUqAjji7Owbj9masHV9a33orQffKMebfMDiZ47rfaCMlYg M7omjcd0wnjjL4oJ6IK0/Tnn0W8qSPdfANkqxs+qqXd6gtAOZldCS8yc3AQsWxQHa43O LMCNrv00XROaZ+JMJPuHufWZLVYxlo/JH5WymuQPu19/Cc1txllX4Unbbf2QmwXwsCi5 RVIg== X-Forwarded-Encrypted: i=1; AJvYcCX+FqK4OivToi3IzzRLCGY9E9sHJJdl35kliRfyVikOjLi71NjsPaSba/HL1bHiQUg2K2lIb9P9XHrCrR3t@lists.postgresql.org X-Gm-Message-State: AOJu0YymK1+IGvq0V2G1MRGz30w41dDeHYap6wxGiB9aMRrg+8S3evlC yhUWFIeY4ro3mee65XUUYpAg5bSWUkh6Oi2OUhWtnjCwN5GvJaGedcHQO+LKuKolnUAlD+91rXc VzmPiYnUh67Ca/J5odd13kLIT9U0h3Lc= X-Gm-Gg: ASbGncvKKYPoOT2OL7kZkZMnlsY2B1HilpPXD3OSMEoew9hpk/Fb4khcp+xxm32B7/P IwnfTAdS7y/K84NCdl9XwMeXY+B03+7W3rQRkaPgCdv54c80yNofTrSPC2m7RxRbLuL8Ftn52Fg I66GGK15M5kFWFhD1geQzinPDrQEdS9PzoTBVHxa4GiMAWhtTfgMrxIs3QeeowFFaV1xL1X5Aji 5wseKjee66V5vTiFT/EI3U0VkvoTR4zEqnnPoem X-Google-Smtp-Source: AGHT+IE/HpICSJcmq3nsCT6t4rfhFpojn8gZ+A9RVyrqu2vx0WlEkP5rl+9OR1BbmufEGFALHIF6Sn3NMd/t+hojxSQ= X-Received: by 2002:a05:6902:2387:b0:e8b:a52e:5d6f with SMTP id 3f1490d57ef6-e8dc5838f50mr4623437276.20.1753284345081; Wed, 23 Jul 2025 08:25:45 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> In-Reply-To: From: Pavel Stehule Date: Wed, 23 Jul 2025 17:25:06 +0200 X-Gm-Features: Ac12FXwFY0RO2m3I9Wz7mqI7QxF-CEIhBof_ioinkj0xWdenxoF8S7rYik-4noU 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="000000000000946f98063a9a52ca" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000946f98063a9a52ca Content-Type: multipart/alternative; boundary="000000000000946f97063a9a52c8" --000000000000946f97063a9a52c8 Content-Type: text/plain; charset="UTF-8" Hi fresh rebase - testing farms reports failure Regards Pavel --000000000000946f97063a9a52c8 Content-Type: text/html; charset="UTF-8"
Hi

fresh rebase - testing farms reports failure

Regards

Pavel
--000000000000946f97063a9a52c8-- --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250723-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474u80 RnJvbSBlNzQxZmNiZDk5NTk1Zjk4Yzk4MWM3NjU1MTc4MTRhODhhMDFhNzM0IE1vbiBTZXAgMTcg 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 dmFyMDM7Ci0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="UTF-8"; name="v20250723-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20250723-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474wl4 RnJvbSBmYzViNTBhZmE1NGI2YjQ5MTY4MjQyZTIxNmQ2MmZmZDkwYWE2OTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMDg6Mjk6MzcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzE1XSBMRVQgY29tbWFuZCAtIGFzc2lnbiBhIHJlc3VsdCBvZiBleHByZXNzaW9uIHRv IHRoZQogc2Vzc2lvbiB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoK VGhlIHZhbHVlIGlzIGFzc2lnbmVkIHRvIHNlc3Npb24gdmFyaWFibGVzIHVzdWFsbHkgYnkgU0VU IGNvbW1hbmQuIFVuZm9ydHVuYXRlbHkKdGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSBTRVQgc2hv dWxkIG5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgaW4gUG9zdGdyZXMuCgoxLiBVc2luZyBh X2V4cHIgaW5zaWRlIGdlbmVyaWNfc2V0IHJhbSBydWxlIHByb2R1Y2VzIHJlZHVjZSBjb25mbGlj dHMsIHNvIGl0IG5lZWRzCsKgIMKgdG90YWwgcmVpbXBsZW1lbnRhdGlvbiBvZiByZWxhdGVkIGdy YW0gcnVsZXMuCgoyLiBTRVQgaXMgbm8gcGxhbiBjb21tYW5kIC0gc28gaXQgZG9lc24ndCBzdXBw b3J0IHVzYWdlIG9mIHBhcmFtZXRlcnMuCgozLiBFeGNlcHRpbmcgaW1wbGVtZW50YXRpb24gaXNz dWVzLCB0aGVyZSBpcyBmYWN0LCBzbyBpZiB3ZSB1c2UgU0VUIGNvbW1hbmQKwqAgwqBmb3IgYXNz aWduaW5nIHZhbHVlcyB0byBzZXNzaW9uIHZhcmlhYmxlcywgdGhlbiB0aGVyZSBjYW4gYmUgY29s bGlzaW9ucwrCoCDCoGJldHdlZW4gc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIEdVQywgYW5kIHRoZW4g d2UgbmVlZCBzb21lIGNvbmNlcHRzLCBob3cKwqAgwqB0aGVzZSBjb2xsaXNpb25zIHNob3VsZCBi ZSBzb2x2ZWQsIG9yIGhvdyB0byBwcm90ZWN0IHNlbGYgYWdhaW5zdCB0aGVzZQrCoCDCoGNvbGxp c2lvbnMuIFdpdGggdGhlIGRlZGljYXRlZCBjb21tYW5kLCB0aGUgY29sbGlzaW9ucyBiZXR3ZWVu IEdVQyBhbmQgc2Vzc2lvbgrCoCDCoHZhcmlhYmxlcyBhcmUgbm90IHBvc3NpYmxlLgoKVGhlIGNv bW1hbmQgTEVUIGlzIGV4ZWN1dGVkIGFzIHVzdWFsIHF1ZXJ5IGV4ZWN1dGlvbi4gVGhlIHJlc3Vs dCBpcyBzdG9yZWQKdG8gdGhlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIChyZXN1bHRWYXJpYWJs ZSkgYnkgdXNpbmcgVmFyaWFibGVEZXN0UmVjZWl2ZXIuCgpJbXBsZW1lbnRhdGlvbnMgb2YgRVhQ TEFJTiBMRVQgYW5kIFBSRVBBUkUgTEVUIHN0YXRlbWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQKbm93 LiBQb3N0cG9uZWQgdG8gbmV4dCBzdGVwIGR1ZSByZWR1Y2luZyBwYXRjaCBzaXplLgotLS0KIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOSArKwogZG9j L3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAxICsKIGRvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8ICAgMSArCiBkb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgIDUgKy0KIGRvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2xldC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOTYgKysrKysrCiBkb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDg2ICsrKysrKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDIzICstCiBzcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAgIHwgIDI0ICsrCiBzcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAgICAgfCAgMzQgKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAyMzcgKysrKysrKysrKysrKysr CiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKyst CiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTUgKwog c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDExICsKIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA1ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlc19kbWwub3V0ICAgICAgICB8IDI3NyArKysrKysrKysrKysrKysrKysKIC4u Li9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDE4OSArKysrKysr KysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAg MSArCiAyNyBmaWxlcyBjaGFuZ2VkLCAxMTI0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXgg MjY1NWZhNWU3Y2UuLmJkZjAwYjM1NTA4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01NDAzLDEwICs1NDAzLDM5IEBAIEVY UExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7 PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIsIGFu ZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCiAgICAgaWRlbnRpZmllci4g VGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgcmVtb3Zl cwogICAgIHJpc2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFu ZCBjb2x1bW4gbmFtZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBj YW4gYmUgcmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxF Q1Q8L2NvbW1hbmQ+LgogPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg ZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOwor PC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBW QVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVu dF91c2VyX2lkID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9u X3VzZXIpOwogU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiA8L3Byb2dyYW1saXN0 aW5nPgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9u IHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAg ICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1 bmxlc3MgaXRzIHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRo ZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFu eSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRy YW5zYWN0aW9uIHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xs ZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2Vz KS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAg IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhl IGNvbnRlbnQgb2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0 MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXgg MmY2N2RlM2UyMWIuLmNjM2JkNWFiNTQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs bGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgs NiArMTU4LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4g dGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFu dC5zZ21sIj4KIDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9y ZWlnbl9zY2hlbWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJp bnNlcnQuc2dtbCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dt bCI+CiA8IUVOVElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8 IUVOVElUWSBsb2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkg bG9jayAgICAgICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dmFyaWFibGUuc2dtbAppbmRleCA5NmQyNTg2NDIzZS4uMjIxYTY5OTQ2OWIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJM RSBib28gU0VUIFNDSEVNQSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4K ICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxl bGlzdD4KICA8L3JlZnNlY3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJp YWJsZS5zZ21sCmluZGV4IDZlOTg4ZjJlNDcyLi40MzAwMGNlMDA0ZCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0xMjAsOSArMTIwLDExIEBAIENSRUFURSBWQVJJQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFiCiAgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CiAKICAgPHBhcmE+Ci0gICBDcmVh dGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorICAg Q3JlYXRlIGEgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPiBvZiBkYXRh IHR5cGUgZGF0ZToKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKTsKIDwv cHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+ CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zhcmlh YmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRi MzU2MGYwYi4uNjc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92 YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBA IC0xMTEsNiArMTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBl PSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIv PjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUi Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVy PgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mv c3JjL3NnbWwvcmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8 cmVmZW50cnkgaWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxw cmltYXJ5PkxFVDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxw cmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8 L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRs ZT5MRVQ8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1 cnBvc2U+Y2hhbmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwv cmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8 L2NvbW1hbmQ+IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lv bgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vz c2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJl c3Npb248L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgQW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9m IGEgZGF0YSB0eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFt bGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0g MTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxp dHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMg YSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisg IDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288 L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2 Yy4uMTNlNGFkYzVkZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAg JmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsK ICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jCmluZGV4IGRiYzA1NDc5NWJiLi43NjgxNjNlMjAwOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTksMTUgKzE5LDIyIEBACiAjaW5j bHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0 b3IvZXhlY2Rlc2MuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUg ImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisj aW5jbHVkZSAibm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUu aCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNvcC90Y29w cHJvdC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1n ci5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIC8qCkBAIC01MTQsMyArNTIxLDgy IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0 bXQgKnN0bXQpCiAKIAlyZXR1cm4gdmFyaWFibGU7CiB9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJl c3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUK KyAqLwordm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0 U3RtdCAqc3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5 CSAgICpxdWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3 cml0dGVuOworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBs YW5uZWRTdG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9 IHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisK KwkvKiBkbyB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGU/ICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENI RUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNl aXZlciBmb3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlk KTsKKworCS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3Qo cXVlcnkpOworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChs aXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1 ZXJ5LCByZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVD VCk7CisKKwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5 LCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBw YXJhbXMpOworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFu ZCBJRCB0byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHBy ZXZpb3VzbHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJ ICogdGhlIHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0 IGNoYW5nZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3 YXkgdG8gYmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLwor CVB1c2hDb3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVT bmFwc2hvdENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGlu ZyBvdXRwdXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVl cnlEZXNjKHBsYW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFw c2hvdCgpLCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYs IDApOworCisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4 ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVu IHRoZSBwbGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSBy b3cuICBUbworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2Ug dHJ5IHRvIGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRT Y2FuRGlyZWN0aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZl biBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBs ZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOwor CisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVj dXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9w QWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDIyMzc0MmI5 MjBmLi42ODViYTY2ZmQzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMzUsMTMgKzIz NSwyNCBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQg ZWZsYWdzKQogCQkvKiBmaWxsIHRoZSBhcnJheSAqLwogCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVl cnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKIAkJewotCQkJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKKwkJCS8qCisJCQkgKiBQZXJtaXNzaW9uIGNoZWNrIHNob3VsZCBiZSBleGVj dXRlZCBvbiBhbGwgZXhwbGljaXRseSB1c2VkCisJCQkgKiB2YXJpYWJsZXMgaW4gdGhlIHF1ZXJ5 LiBGb3IgaW1wbGljaXRseSB1c2VkIHZhcmlhYmxlIChsaWtlIGJhc2UKKwkJCSAqIG5vZGUgb2Yg YXNzaWdubWVudCBpbmRpcmVjdCkgd2UgY2Fubm90IGRvIHBlcm1pc3Npb24gY2hlY2ssCisJCQkg KiBiZWNhdXNlIHdlIG5lZWQgcmVhZCB0aGUgdmFsdWUgKGFuZCB1c2VyIGNhbiBoYXZlIG9ubHkg VVBEQVRFCisJCQkgKiB2YXJpYWJsZSkuIEluIHRoaXMgY2FzZSB0aGUgcGVybWlzc2lvbiBjaGVj ayBpcyBleGVjdXRlZCBpbgorCQkJICogd3JpdGUgdGltZS4KKwkJCSAqLworCQkJaWYgKHZhcmlk ICE9IHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZCkKKwkJ CXsKKwkJCQlBY2xSZXN1bHQJYWNscmVzdWx0OwogCi0JCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKLQkJCQkJCQkJCQlHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCk7Ci0JCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQkJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAotCQkJCQkJCSAgIGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CiAKIAkJCWVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXNbaV0udmFsdWUgPQogCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKaW5kZXggY2Q2MDljNmU0NzkuLjU3NTM2NWVlZmNkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYwpAQCAtNDM3OCw2ICs0Mzc4LDE2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fs a2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10 ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJnZXQpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCQlpZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQor CQkJYnJlYWs7CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExBc3NpZ25TdG10 ICpzdG10ID0gKFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCmluZGV4IGNkNmIzYzI3YWRlLi5iNTkzNzYwYWYzNSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3BsYW5uZXIuYwpAQCAtMzQ1LDYgKzM0NSwyMCBAQCBzdGFuZGFyZF9wbGFubmVyKFF1 ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywK IAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CiAJZ2xvYi0+c2Vzc2lvblZhcmlh YmxlcyA9IE5JTDsKIAorCS8qCisJICogVGhlIChzZXNzaW9uKSByZXN1bHQgdmFyaWFibGUgc2hv dWxkIGJlIHN0b3JlZCB0byBnbG9iYWwsIGJlY2F1c2UgaXQgaXMKKwkgKiBub3Qgc2V0IGluIHN1 YnF1ZXJ5LiAgV2hlbiB0aGlzIHZhcmlhYmxlIGlzIHVzZWQgb3RoZXIgdGhhbiBpbiBiYXNlCisJ ICogbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLCB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBh Y2Nlc3MgcmlnaHRzIChhbmQKKwkgKiB0aGVuIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMgc2l0dWF0 aW9uKS4gVGhlIHZhcmlhYmxlIHVzZWQgbGlrZSBiYXNlCisJICogbm9kZSBjYW5ub3QgYmUgZGlm ZmVyZW50IHRoYW4gdGFyZ2V0IChyZXN1bHQpIHZhcmlhYmxlLiBCZWNhdXNlIHdlIGtub3cKKwkg KiB0aGUgcmVzdWx0IHZhcmlhYmxlIGJlZm9yZSBwbGFubmVyIGludm9jYXRpb24sIHdlIGNhbiBz aW1wbHkgc2VhcmNoIG9mCisJICogdXNhZ2UganVzdCB0aGlzIHZhcmlhYmxlLCBhbmQgd2UgZG9u J3QgbmVlZCB0byB0byB3YWl0IHVudGlsIHRoZSBlbmQgb2YKKwkgKiBwbGFubmluZyB3aGVuIHdl IGtub3cgYmFzZW5vZGVTZXNzaW9uVmFyaWQuCisJICovCisJZ2xvYi0+cmVzdWx0VmFyaWFibGUg PSBwYXJzZS0+cmVzdWx0VmFyaWFibGU7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQgPSBJ bnZhbGlkT2lkOworCWdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrID0gZmFsc2U7 CisKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8gdXNlIHBhcmFsbGVs IG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCiAJICogY2FuJ3QgZG8gdGhpcyBpbiBhIHN0YW5kYWxv bmUgYmFja2VuZCwgb3IgaWYgdGhlIGNvbW1hbmQgd2lsbCB0cnkgdG8KQEAgLTU4NCw2ICs1OTgs MTYgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAKIAlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBn bG9iLT5zZXNzaW9uVmFyaWFibGVzOwogCisJLyoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB1 c2VkIChhbmQgb25seSB1c2VkKSBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWduZW1udAorCSAqIGlu ZGlyZWN0aW9uIHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suCisJICov CisJaWYgKE9pZElzVmFsaWQoZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpICYmCisJCSghZ2xv Yi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2spKQorCQlyZXN1bHQtPmV4Y2xTZWxlY3RQ ZXJtQ2hlY2tWYXJpZCA9IGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkOworCWVsc2UKKwkJcmVz dWx0LT5leGNsU2VsZWN0UGVybUNoZWNrVmFyaWQgPSBJbnZhbGlkT2lkOworCiAJcmVzdWx0LT5z dG10X2xvY2F0aW9uID0gcGFyc2UtPnN0bXRfbG9jYXRpb247CiAJcmVzdWx0LT5zdG10X2xlbiA9 IHBhcnNlLT5zdG10X2xlbjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vc2V0cmVmcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCmluZGV4 IDZjODZlZTFhZDY0Li5kNDdhNzI2ZjJkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vc2V0cmVmcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYwpAQCAtMjIyNCw2ICsyMjI0LDI3IEBAIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpy b290LCBQYXJhbSAqcCkKIAkJCXAtPnBhcmFtaWQgPSBuOwogCQl9CiAKKwkJLyoKKwkJICogV2Ug ZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb2YgYWxsIHZhcmlhYmxlcyB1c2VkIGJ5IHRoZSBx dWVyeQorCQkgKiBleGNsdWRpbmcgdGhlIHZhcmlhYmxlIHRoYXQgaXMgdXNlZCBvbmx5IGFzIGJh c2Ugbm9kZSBvZiBhc3NpZ25tZW50CisJCSAqIGluZGlyZWN0aW9uLiBUaGUgdmFyaWFibGUgaWQg YXNzaWduZWQgdG8gdGhpcyBwYXJhbSBzaG91bGQgYmUgc2FtZQorCQkgKiBsaWtlIHJlc3VsdFZh cmlhYmxlIGlkLCBhbmQgdGhpcyBwYXJhbSBzaG91bGQgYmUgdXNlZCBvbmx5IG9uY2UgaW4KKwkJ ICogcXVlcnkuIFdoZW4gdGhlIHZhcmlhYmxlIGlzIHJlZmVyZW5jZWQgYnkgYW55IG90aGVyIHBh cmFtLCB3ZQorCQkgKiBzaG91bGQgdG8gZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgZm9yIHRo aXMgdmFyaWFibGUgdG9vLgorCQkgKi8KKwkJaWYgKHAtPnBhcmFtYmFzZW5vZGUpCisJCXsKKwkJ CUFzc2VydCghT2lkSXNWYWxpZChyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkpOwor CQkJQXNzZXJ0KHJvb3QtPmdsb2ItPnJlc3VsdFZhcmlhYmxlID09IHAtPnBhcmFtdmFyaWQpOwor CisJCQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IHAtPnBhcmFtdmFyaWQ7CisJ CX0KKwkJZWxzZQorCQl7CisJCQlpZiAocC0+cGFyYW12YXJpZCA9PSByb290LT5nbG9iLT5yZXN1 bHRWYXJpYWJsZSkKKwkJCQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVj ayA9IHRydWU7CisJCX0KKwogCQlyZXR1cm4gKE5vZGUgKikgcDsKIAl9CiAKQEAgLTM3MDksNyAr MzczMCw3IEBAIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwg T2lkIHR5cGlkKQogCiAvKgogICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9uIHZhcmlh YmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKLSAqIHNlc3Npb24gdmFyaWFibGUg aW4gYW4gZXhwcmVzc2lvbiBsaXN0LgorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBleHByZXNz aW9uIGxpc3QsIG9yIGFzIHRoZSB0YXJnZXQgb2YgYSBMRVQgc3RhdGVtZW50LgogICovCiBzdGF0 aWMgdm9pZAogcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9v dCwgT2lkIHZhcmlkKQpAQCAtMzgxMSw5ICszODMyLDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5k ZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0KIAog CQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9z ZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3Qt cGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFuc2Zl ciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUgb3Ro ZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgorCQkJ ICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5LiAg Rm9yCisJCQkgKiB0aG9zZSwgd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRpb24g dG8gdGhlIGNvbnRhaW5lZAorCQkJICogcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0 eUNvbnRhaW5zUXVlcnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxM KQpAQCAtMzgzNiw2ICszODU4LDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtl cihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29u dGV4dC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIHJlY29y ZCBkZXBlbmRlbmN5IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2YgYSBMRVQgY29tbWFuZCAqLwor CQlpZiAoT2lkSXNWYWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5f dmFyaWFibGVfZGVwZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJ CS8qIEFuZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0 dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193 YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDk1YmIw NjIwZjM5Li45MjcxNWJmOGIxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC01Miw2ICs1Miw3IEBA CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNp bmNsdWRlICJ1dGlscy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAKQEAgLTgzLDYgKzg0LDggQEAgc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ2Fs bFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3RtdCk7CitzdGF0 aWMgUXVlcnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCSAg IExldFN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0NsYXVzZShQYXJz ZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdDbGF1c2UgKmxj LCBib29sIHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5BQkxFRApAQCAt MzMwLDYgKzMzMyw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpw YXJzZVRyZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxldGVTdG10Ogog CQkJY2FzZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2b2lkKSB0ZXN0 X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgpAQCAtNDA5LDYgKzQxMywxMSBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10ICopIHBhcnNl VHJlZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3VsdCA9IHRyYW5z Zm9ybUxldFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJzZVRyZWUpOwor CQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTQ2MCw2ICs0NjksNyBAQCBzdG10 X3JlcXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1Nl bGVjdFN0bXQ6CiAJCWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3NpZ25TdG10Ogor CQljYXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAtMzM2 Miw2ICszMzcyLDIzMyBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENh bGxTdG10ICpzdG10KQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1MZXRT dG10IC0KKyAqCSAgdHJhbnNmb3JtIGFuIExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGljIFF1ZXJ5 ICoKK3RyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10KQor eworCVF1ZXJ5CSAgICpxdWVyeTsKKwlRdWVyeQkgICAqcmVzdWx0OworCUxpc3QJICAgKmV4cHJM aXN0ID0gTklMOworCUxpc3QJICAgKmV4cHJMaXN0Q29lciA9IE5JTDsKKwlMaXN0Q2VsbCAgICps YzsKKwlMaXN0Q2VsbCAgICppbmRpcmVjdGlvbl9oZWFkID0gTlVMTDsKKwlRdWVyeQkgICAqc2Vs ZWN0UXVlcnk7CisJT2lkCQkJdmFyaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJv b2wJCW5vdF91bmlxdWU7CisJYm9vbAkJaXNfcm93dHlwZTsKKwlPaWQJCQl0eXBpZDsKKwlpbnQz MgkJdHlwbW9kOworCU9pZAkJCWNvbGxpZDsKKwlMaXN0CSAgICpuYW1lcyA9IE5VTEw7CisJaW50 CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisKKwkvKiB0aGVyZSBjYW4ndCBi ZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFzc2VydChwc3RhdGUtPnBfY3Rl bmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJvbUxpc3Qoc3RtdC0+dGFyZ2V0 KTsKKworCS8qIGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jayAqLwor CXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwg ZmFsc2UpOworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygidGFyZ2V0IFwiJXNc IiBvZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikp KTsKKworCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFt ZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7 CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJsZSBwb3NpdGlvbiBvZiBhbiBp bmRpcmVjdGlvbiBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlzIGluc2lkZSB0aGUgbGlzdCwg c3RvcmUgcG9pbnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0aW9uLgorCSAqLworCWluZGly ZWN0aW9uX3N0YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0dHJuYW1lID8gMSA6IDApOwor CWlmIChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJlY3Rpb25fc3RhcnQpCisJCWlu ZGlyZWN0aW9uX2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRhcmdldCwgaW5kaXJlY3Rpb25f c3RhcnQpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlk LCAmdHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93dHlwZSA9IHR5cGVfaXNfcm93 dHlwZSh0eXBpZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jvd3R5cGUpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVy cm1zZygiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJ CQkJCQlhdHRybmFtZSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5k ID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNv bnZlcnNpb24gb2YgInVua25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtu b3ducyA9IGZhbHNlOworCisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3Rt dC0+cXVlcnkpOworCisJLyogdGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxF Q1QgKi8KKwlBc3NlcnQoSXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNv bW1hbmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNz aW9uIGxpc3QgZm9yIHRoZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUKKwkgKiBub24tcmVzanVu ayBjb2x1bW5zIGZyb20gdGhlIHN1YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZv cmVhY2hfbm9kZShUYXJnZXRFbnRyeSwgdGxlLCBzZWxlY3RRdWVyeS0+dGFyZ2V0TGlzdCkKKwl7 CisJCWlmICh0bGUtPnJlc2p1bmspCisJCQljb250aW51ZTsKKworCQlleHByTGlzdCA9IGxhcHBl bmQoZXhwckxpc3QsIHRsZS0+ZXhwcik7CisJfQorCisJLyogZG9uJ3QgYWxsb3cgbXVsdGljb2x1 bW4gcmVzdWx0ICovCisJaWYgKGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSAhPSAxKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNn X3BsdXJhbCgiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJ CQkJICAgImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJ CQkgICBsaXN0X2xlbmd0aChleHByTGlzdCksCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxp c3QpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2Nh dGlvbigoTm9kZSAqKSBleHByTGlzdCkpKSk7CisKKwlleHByTGlzdENvZXIgPSBOSUw7CisKKwlm b3JlYWNoKGxjLCBleHByTGlzdCkKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmly c3QobGMpOworCQlFeHByCSAgICpjb2VyY2VkX2V4cHI7CisJCU9pZAkJCWV4cHJ0eXBpZDsKKwor CQkvKiBub3cgd2UgY2FuIHJlYWQgdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24gKi8KKwkJZXhw cnR5cGlkID0gZXhwclR5cGUoKE5vZGUgKikgZXhwcik7CisKKwkJaWYgKGluZGlyZWN0aW9uX2hl YWQpCisJCXsKKwkJCWJvb2wJCXRhcmdldElzQXJyYXk7CisJCQljaGFyCSAgICp0YXJnZXROYW1l OworCQkJUGFyYW0JICAgKnBhcmFtOworCisJCQl0YXJnZXROYW1lID0gZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCk7CisJCQl0YXJnZXRJc0FycmF5ID0gT2lkSXNWYWxpZChnZXRfZWxl bWVudF90eXBlKHR5cGlkKSk7CisKKwkJCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0g dHJ1ZTsKKworCQkJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisJCQlwYXJhbS0+cGFyYW1raW5k ID0gUEFSQU1fVkFSSUFCTEU7CisJCQlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOworCQkJcGFy YW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCQkJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOwor CisJCQkvKgorCQkJICogVGhlIHBhcmFtZXRlciB1c2VkIGFzIGJhc2Vub2RlIGhhcyB0byBoYXZl IHNwZWNpYWwgbWFyaywKKwkJCSAqIGJlY2F1c2UgcmVxdWlyZXMgc3BlY2lhbCBhY2Nlc3Mgd2hl biB3ZSBkbyBTRUxFQ1QgYWNjZXNzIGNoZWNrLgorCQkJICovCisJCQlwYXJhbS0+cGFyYW1iYXNl bm9kZSA9IHRydWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFy YW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJy YXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJ CQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJ CQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJ CQkJCQkJCQkJICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9j YXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJY29l cmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJ CQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJ ICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwK KwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVM TCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywg YnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwK KwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3 aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIpKSkpOwor CisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOwor CX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIGNvbXB1dGVk IGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVy eS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhwckxpc3RDb2Vy KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVu dHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsg MSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxz ZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxl KTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUg Ki8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUg PSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNU YXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1Ykxpbmtz ID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRvcC1sZXZlbCBx dWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdl dCBzZXNzaW9uIHZhcmlhYmxlIElELiBJdCBpcyB1c2VkIGxhdGVyIGZvciBhY3F1aXJpbmcgYW4K KwkgKiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5nIHBsYW4gZGVw ZW5kZW5jeSBhbmQgZmluYWxseQorCSAqIGZvciBjcmVhdGluZyBWYXJpYWJsZURlc3RSZWNlaXZl ci4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVy eV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhl Y3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFz c2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1 ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0g KE5vZGUgKikgcXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5 IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5 cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsK KworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBQcm9kdWNlIGEgc3RyaW5nIHJlcHJlc2Vu dGF0aW9uIG9mIGEgTG9ja0NsYXVzZVN0cmVuZ3RoIHZhbHVlLgogICogVGhpcyBzaG91bGQgb25s eSBiZSBhcHBsaWVkIHRvIHZhbGlkIHZhbHVlcyAobm90IExDU19OT05FKS4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDIyOTU0N2IxNzc4Li41ZjZiYzBmOGE5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTYsNyArMjk2 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJv cFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50 Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJ TGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWlu YWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExv Y2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3Rt dAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVt b3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBS ZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVs ZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03NDEsNyArNzQxLDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9Q IExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZU IExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FM VElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENI IE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QK QEAgLTEwODgsNiArMTA4OCw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10 CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlz dGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyOTI3 LDYgKzEyOTI4LDM4IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJ CQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIENvbElkIG9wdF9pbmRpcmVjdGlvbiAnPScgYV9l eHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJ CVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRh cmdldCA9IGxjb25zKG1ha2VTdHJpbmcoJDIpLAorCQkJCQkJCQkJICBjaGVja19pbmRpcmVjdGlv bigkMywgeXlzY2FubmVyKSk7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7 CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdl dCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJ CQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ1Owor CQkJCQlyZXMtPmxvY2F0aW9uID0gQDU7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlz dF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQlu LT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE4MDAyLDYgKzE4MDM1LDcg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBM RUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBA IC0xODYxNiw2ICsxODY1MCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09G CiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UK IAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGM1ODQ5YzAzMTE3Li5kNGU3ZDgzMzczZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKQEAgLTIzNSw2ICsyMzUsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5k QXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNl IFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1h bmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAg LTEwNTcsNiArMTA1OCwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAq cHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRl TGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAg cXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIg c3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNz VXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMTk2LDYgKzIyMDIs MTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBV dGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICop IHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJl dHVybiBOVUxMOwogCX0KQEAgLTIzOTQsNiArMjQwNCwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQlj YXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyog dXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQlj YXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI3OSw2ICszMjkzLDcgQEAgR2V0Q29t bWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFz c2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQli cmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBjYTkyYmU5YTZhZS4u NTk0NjljNTJhYmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNo ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0yMDMwLDYg KzIwMzAsMTcgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1 aXJlKQogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFj cXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJLyogcHJv Y2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJlZS0+cmVz dWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VPYmplY3Qo VmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCSAg IDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZh cmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkJIDAs IEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IGIxOGI2M2Q3ZjE1Li4zNDVjMTBiODVmMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTI0 OSw4ICsxMjQ5LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0g ewogCSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQ T0lOVCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIs ICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElT Q0FSRCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRD SCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElT VEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAi UFJFUEFSRSIsCisJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJ TlNFUlQgSU5UTyIsICJMRVQiLAorCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElO VE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0gg TUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVW T0tFIiwgIlJPTExCQUNLIiwKIAkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVD VCIsICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00NzczLDYgKzQ3NzMsMTQgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZB TFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVf V0lUSCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0 IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkv KiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAq LwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVz ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCmluZGV4IDlmNWM2ZTMwZmJkLi4yZWJlODQ3Nzc4OSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMTcsMTEgKzE3LDE2IEBACiAKICNpbmNs dWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9k ZS5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgogI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9k ZXMuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgogCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERh dHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiAKIGV4dGVy biBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl U2Vzc2lvblZhclN0bXQgKnN0bXQpOwogCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJ CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwor CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAxMGNmNTI0NjdlMy4uNzZmYTRhMjlk ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE0Nyw2ICsxNDcsOSBAQCB0eXBlZGVmIHN0 cnVjdCBRdWVyeQogCSAqLwogCWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBMRVQgc3RhdGVtZW50 ICovCisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVnYXRlcyBpbiB0bGlz dCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTIx NjgsNiArMjE3MSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZVN0bXQKIAlXaXRoQ2xhdXNlICp3 aXRoQ2xhdXNlOwkJLyogV0lUSCBjbGF1c2UgKi8KIH0gTWVyZ2VTdG10OwogCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgkJTGV0IFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBMZXRTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlM aXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCisJTm9kZQkgICAqcXVlcnk7 CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gTGV0U3Rt dDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNlbGVjdCBTdGF0ZW1lbnQKICAq CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDU3NmJjZDM2YjRiLi5lMzBiYmNjNWZjNiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKQEAgLTE4NSw2ICsxODUsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5l ckdsb2JhbAogCiAJLyogbGlzdCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCiAJTGlzdAkg ICAqc2Vzc2lvblZhcmlhYmxlczsKKworCS8qIE9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHVzZWQg bGlrZSB0YXJnZXQgb2YgTEVUIGNvbW1hbmQgKi8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKwor CS8qIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgbGlrZSBiYXNlIG5vZGUgZm9yIGFzc2ln bm1lbnQgaW5kaXJlY3Rpb24gKi8KKwlPaWQJCQliYXNlbm9kZVNlc3Npb25WYXJpZDsKKworCS8q IHRydWUsIGlmIHdlIGRvIFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNrIG9uIGJhc2Vub2RlU2Vzc2lv blZhcmlkICovCisJYm9vbAkJYmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2s7CiB9IFBsYW5u ZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdp dGggYSBTdWJQbGFuIG5vZGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMzYyMjY5OWNmYzku LjEwNzYxY2Y5MTA1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTM0LDYgKzEzNCwxMyBAQCB0 eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAogCS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklBQkxFIFBh cmFtcyAqLwogCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CiAKKwkvKgorCSAqIFRoZSBvaWQg b2Ygc2Vzc2lvbiB2YXJpYWJsZSBleGVjbHVkZWQgZnJvbSBwZXJtaXNzaW9uIGNoZWNrLiBUaGlz CisJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50 IGluZGlyZWN0aW9uIChhbmQgaXQKKwkgKiBpcyB1c2VkIG9ubHkgdGhlcmUpLgorCSAqLworCWlu dAkJCWV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZDsKKwogCS8qIHN0YXRlbWVudCBsb2NhdGlvbiBp biBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAkvKiBzdGFydCBsb2NhdGlv biwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCmluZGV4IDlkN2I5ZjU5OGY4Li5hM2NmYjFlODA0NCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmgKQEAgLTQwNCw2ICs0MDQsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlPaWQJCQlw YXJhbWNvbGxpZDsKIAkvKiBPSUQgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIG9yIEludmFsaWRP aWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtdmFyaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOworCisJLyoKKwkgKiB0cnVlIGlmIHBhcmFtIGlzIHVzZWQgYXMgYmFzZSBub2Rl IG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24gKHdoZW4KKwkgKiB0YXJnZXQgb2YgTEVUIHN0YXRl bWVudCBpcyBhbiBhcnJheSBmaWVsZCBvciBhbiByZWNvcmQgZmllbGQpLiBGb3IgdGhpcworCSAq IHBhcmFtIHdlIGRvIG5vdCBjaGVjayBTRUxFQ1QgYWNjZXNzIHJpZ2h0LCBiZWNhdXNlIHRoaXMg cGFyYW0gaXMgdXNlZAorCSAqIGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBhbiBtb2RpZnkgb3BlcmF0 aW9uLgorCSAqLworCWJvb2wJCXBhcmFtYmFzZW5vZGU7CisKIAkvKiB0b2tlbiBsb2NhdGlvbiwg b3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCAwZWEwMjY1ZGU3Yy4uOGMwYWZmYmExM2IgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK QEAgLTI1Nyw2ICsyNTcsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9P RiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBM RUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBM RUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0 IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZl bCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJs aWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaAppbmRleCBlYTg2OTU0ZGRlZC4uMjIwODJjMzAwMDggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlz dC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQg Uk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JF SUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQor UEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1s Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91 dAppbmRleCAzZTIxMDU5YWNjMi4uNjdmNzhhNTQ4ZGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKQEAgLTE4OSwzICsxODks MjgwIEBAIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIKIERST1Ag Uk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CiBEUk9QIFZBUklBQkxFIHNlc3Zh cjQwOwogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMg QVMgbnVtZXJpYzsKKy0tIExFVCBzdG10IGlzIG5vdCBhbGxvd2VkIGluc2lkZSBDVEUKK1dJVEgg eCBBUyAoTEVUIHNlc3ZhcjQzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50 YXggZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCBzZXN2YXI0 MyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBMRVQg c3RtdCByZXF1aXJlcyByZXN1bHQgd2l0aCBleGFjdGx5IG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9 IGdlbmVyYXRlX3NlcmllcygxLDEpOworLS0gc2hvdWxkIGZhaWwKK0xFVCBzZXN2YXI0MyA9IGdl bmVyYXRlX3NlcmllcygxLDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhh biBvbmUgcm93CitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwwKTsKK0VSUk9SOiAg ZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDQgQVMgdmFyY2hhcjsKK0NSRUFU RSBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IEFTIHN2YXJ0ZXN0X2Rt bC5jb21wb3NpdGVfdHlwZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2Rt bC5meDAxKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0xFVCBzZXN2YXI0MyA9ICQxOwor JCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1s LmZ4MDIoKQorUkVUVVJOUyBudW1lcmljIEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMp OworJCQgTEFOR1VBR0Ugc3FsOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAxKDMuMTQpOworIGZ4 MDEgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAyKCksIFZB UklBQkxFKHNlc3ZhcjQzKTsKKyBmeDAyIHwgc2VzdmFyNDMgCistLS0tLS0rLS0tLS0tLS0tLQor IDMuMTQgfCAgICAgMy4xNAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBz dmFydGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lO CisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBzOworICBSRVRVUk4gVkFSSUFCTEUoc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBz dmFydGVzdF9kbWwuZngwMygnSGVsbG8nKTsKKyBmeDAzICAKKy0tLS0tLS0KKyBIZWxsbworKDEg cm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNChzIHZh cmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lOCisgIExFVCBzZXN2YXI0NCA9IHM7 CisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0NCk7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWwK K1NFVCBTRUFSQ0hfUEFUSCBUTyAnc3ZhcnRlc3RfZG1sJzsKK1NFTEVDVCBzdmFydGVzdF9kbWwu ZngwNCgnSGVsbG8nKTsKKyBmeDA0ICAKKy0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNShhIGludCwgYiBpbnQsIGMg aW50KQorUkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQVMgJCQKK0JFR0lOCisg IExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coYSwgYiwgYyk7CisgIFJFVFVSTiBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK K1NFTEVDVCByb3dfdG9fanNvbihzdmFydGVzdF9kbWwuZngwNSgxMCwgMjAsIDMwKSk7CisgICAg ICByb3dfdG9fanNvbiAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAs ImIiOjIwLCJjIjozMH0KKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSk7CisgIHNlc3ZhcjQ1ICAKKy0tLS0tLS0tLS0tLQorICgxMCwyMCwzMCkKKygxIHJv dykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuKjsKKyBhICB8IGIg IHwgYyAgCistLS0tKy0tLS0rLS0tLQorIDEwIHwgMjAgfCAzMAorKDEgcm93KQorCitTRUxFQ1Qg VkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEpOworIGEgIAorLS0tLQorIDEwCisoMSBy b3cpCisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLmE7CisgYSAgCist LS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVFlQRSBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5 cGUgQUREIEFUVFJJQlVURSBkIGludDsKKy0tIGNvbXBvc2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3Rp bGwgcmVhZGFibGUKK1NFTEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDUpKTsKKyAgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMCwiYiI6MjAsImMiOjMwLCJkIjpudWxsfQor KDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEwMCwgMjAwLCAzMDAs IE5VTEwpOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 NSkpOworICAgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEwMCwiYiI6MjAwLCJjIjozMDAsImQiOm51 bGx9CisoMSByb3cpCisKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXcKK0NSRUFURSBWSUVX IHN2YXJ0ZXN0X2RtbC52aWV3MDEgQVMgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NSkuKjsKK1NFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKyAgYSAgfCAgYiAg fCAgYyAgfCBkIAorLS0tLS0rLS0tLS0rLS0tLS0rLS0tCisgMTAwIHwgMjAwIHwgMzAwIHwgIAor KDEgcm93KQorCistLSBzdGFydCBuZXcgY29ubmVjdGlvbgorXGMKK1NFTEVDVCAqIEZST00gc3Zh cnRlc3RfZG1sLnZpZXcwMTsKKyBhIHwgYiB8IGMgfCBkIAorLS0tKy0tLSstLS0rLS0tCisgICB8 ICAgfCAgIHwgIAorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDUs IDYsIDcsIDgpOworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworIGEgfCBiIHwg YyB8IGQgCistLS0rLS0tKy0tLSstLS0KKyA1IHwgNiB8IDcgfCA4CisoMSByb3cpCisKKy0tIHNo b3VsZCBmYWlsIChkZXBlbmRlbmN5KQorRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFy NDU7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcg c3ZhcnRlc3RfZG1sLnZpZXcwMSBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ1CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVw ZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWSUVXIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CistLSB0 ZXN0IG9mIGFjY2VzcyB2YXJpYWJsZXMgZnJvbSBnZW5lcmljIHBsYW5zCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQK K0JFR0lOCisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0Myk7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitMRVQg c2VzdmFyNDMgPSA2LjI4OworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAKKy0t LS0tLQorIDYuMjgKKygxIHJvdykKKworTEVUIHNlc3ZhcjQzID0gVkFSSUFCTEUoc2VzdmFyNDMp ICogMjsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOworIGZ4MDYgIAorLS0tLS0tLQorIDEy LjU2CisoMSByb3cpCisKKy0tIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFS SUFCTEUgc2VzdmFyNDM7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2 KCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjQzIiBkb2Vzbid0IGV4aXN0CitM SU5FIDE6IFZBUklBQkxFKHNlc3ZhcjQzKQorICAgICAgICAgICAgICAgICBeCitRVUVSWTogIFZB UklBQkxFKHNlc3ZhcjQzKQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHN2YXJ0ZXN0X2Rt bC5meDA2KCkgbGluZSAzIGF0IFJFVFVSTgorQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQzIEFTIG51 bWVyaWM7CitMRVQgc2VzdmFyNDMgPSAyLjcyOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7 CisgZngwNiAKKy0tLS0tLQorIDIuNzIKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzZXN2YXI0 MzsKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0so dmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 NiBBUyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOworLS0gc2hvdWxkIGZhaWwKK0xFVCBzdmFy dGVzdF9kbWwuc2VzdmFyNDYgPSBOVUxMOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIHN2YXJ0 ZXN0X2RtbC5pbnRfbm90X251bGwgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50X25vdF9u dWxsX2NoZWNrIgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2ID0g MTAwOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVygxLDIsMyw0KTsKK0xFVCBzdmFy dGVzdF9kbWwuc2VzdmFyNDUuYSA9IDEwMDsKK1NFTEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShz dmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKyAgICAgICAgIHJvd190b19qc29uICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyLCJjIjozLCJkIjo0 fQorKDEgcm93KQorCitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5 X3JvbGU7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3Zh cnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSBzdmFy dGVzdF9kbWwuc2VzdmFyNDUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xl OworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworLS0g c2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXI0NQorLS0g c2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmIgPSAyMDA7CitTRVQgUk9M RSBUTyBERUZBVUxUOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSkpOworICAgICAgICAgIHJvd190b19qc29uICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyMDAsImMiOjMsImQiOjR9CisoMSBy b3cpCisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDcgQVMgaW50W107CitM RVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3ID0gQVJSQVlbMSwyLDNdOworR1JBTlQgVVBEQVRFIE9O IFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93 cml0ZV9vbmx5X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9v bmx5X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0Nyk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxl IHNlc3ZhcjQ3CistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDdbMV0g PSAyMDA7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0Nyk7Cisgc2VzdmFyNDcgIAorLS0tLS0tLS0tLS0KKyB7MjAwLDIsM30KKygxIHJv dykKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCBBUyBpbnQ0bXVsdGly YW5nZVtdOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCA9IE5VTEw7CitMRVQgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ4ID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOwor TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OFsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDgpOworICAgICAgICAgICAgICAgIHNlc3Zh cjQ4ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CisoMSByb3cpCisK Ky0tIHRlc3QgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dF9kbWwuc2VzdmFyNDkgQVMgaW50OworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSA9ICQxIFxi aW5kIDEwIFxnCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5KTsKKyBzZXN2 YXI0OSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ5ID0gJDEgXHBhcnNlIGxldHBzCitcYmluZF9uYW1lZCBsZXRwcyAxMDAgXGcKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworIHNlc3ZhcjQ5IAorLS0tLS0t LS0tLQorICAgICAgMTAwCisoMSByb3cpCisKK1xjbG9zZV9wcmVwYXJlZCBsZXRwcworRFJPUCBT Q0hFTUEgc3ZhcnRlc3RfZG1sIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0 IG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBzdmFydGVzdF9kbWwuc2VzdmFyNDQKK2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSBzdmFydGVzdF9k bWwuY29tcG9zaXRlX3R5cGUKK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFy dGVzdF9kbWwuc2VzdmFyNDUKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1s LmZ4MDEobnVtZXJpYykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4 MDIoKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwMyhjaGFyYWN0 ZXIgdmFyeWluZykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDQo Y2hhcmFjdGVyIHZhcnlpbmcpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2Rt bC5meDA1KGludGVnZXIsaW50ZWdlcixpbnRlZ2VyKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlv biBzdmFydGVzdF9kbWwuZngwNigpCitkcm9wIGNhc2NhZGVzIHRvIHR5cGUgc3ZhcnRlc3RfZG1s LmludF9ub3RfbnVsbAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NgorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0OAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0OQorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlf cm9sZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3Fs CmluZGV4IGIyODcwZGRlOWU5Li4yYzhkNmMzYTQ5NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBAIC0xNTksMyArMTU5LDE5MiBAQCBEUk9Q IFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOwogRFJPUCBWQVJJQUJMRSBzZXN2 YXI0MDsKIAogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CisKK0NSRUFURSBWQVJJQUJMRSBzZXN2 YXI0MyBBUyBudW1lcmljOworCistLSBMRVQgc3RtdCBpcyBub3QgYWxsb3dlZCBpbnNpZGUgQ1RF CitXSVRIIHggQVMgKExFVCBzZXN2YXI0MyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKworLS0g TEVUIHN0bXQgcmVxdWlyZXMgcmVzdWx0IHdpdGggZXhhY3RseSBvbmUgcm93CitMRVQgc2VzdmFy NDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCBzZXN2YXI0 MyA9IGdlbmVyYXRlX3NlcmllcygxLDIpOworTEVUIHNlc3ZhcjQzID0gZ2VuZXJhdGVfc2VyaWVz KDEsMCk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JFQVRFIFRZUEUgc3ZhcnRlc3RfZG1s LmNvbXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMShudW1lcmljKQor UkVUVVJOUyB2b2lkIEFTICQkCitMRVQgc2VzdmFyNDMgPSAkMTsKKyQkIExBTkdVQUdFIHNxbDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDIoKQorUkVUVVJO UyBudW1lcmljIEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMpOworJCQgTEFOR1VBR0Ug c3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7CitTRUxFQ1Qgc3ZhcnRlc3Rf ZG1sLmZ4MDIoKSwgVkFSSUFCTEUoc2VzdmFyNDMpOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzdmFydGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQK K0JFR0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBzOworICBSRVRVUk4gVkFSSUFC TEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKwor U0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAzKCdIZWxsbycpOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzdmFydGVzdF9kbWwuZngwNChzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMg JCQKK0JFR0lOCisgIExFVCBzZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0 NCk7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWwKK1NFVCBTRUFSQ0hfUEFUSCBUTyAnc3ZhcnRl c3RfZG1sJzsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA0KCdIZWxsbycpOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNShhIGludCwgYiBpbnQsIGMgaW50 KQorUkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQVMgJCQKK0JFR0lOCisgIExF VCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coYSwgYiwgYyk7CisgIFJFVFVSTiBWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKwor U0VMRUNUIHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzApKTsKKworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NS5hKTsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLmE7CisKK0FM VEVSIFRZUEUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFERCBBVFRSSUJVVEUgZCBpbnQ7 CisKKy0tIGNvbXBvc2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3RpbGwgcmVhZGFibGUKK1NFTEVDVCBy b3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworTEVUIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVygxMDAsIDIwMCwgMzAwLCBOVUxMKTsKK1NFTEVDVCByb3df dG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworLS0gdXNlIHZhcmlh YmxlcyBpbnNpZGUgdmlldworQ1JFQVRFIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMSBBUyBTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUICogRlJPTSBzdmFy dGVzdF9kbWwudmlldzAxOworCistLSBzdGFydCBuZXcgY29ubmVjdGlvbgorXGMKK1NFTEVDVCAq IEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9 IFJPVyg1LCA2LCA3LCA4KTsKKworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOwor CistLSBzaG91bGQgZmFpbCAoZGVwZW5kZW5jeSkKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1OworCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworLS0gdGVzdCBv ZiBhY2Nlc3MgdmFyaWFibGVzIGZyb20gZ2VuZXJpYyBwbGFucworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDYoKQorUkVUVVJOUyBudW1lcmljIEFTICQkCitCRUdJ TgorICBSRVRVUk4gVkFSSUFCTEUoc2VzdmFyNDMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK0xFVCBz ZXN2YXI0MyA9IDYuMjg7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOworCitMRVQgc2Vz dmFyNDMgPSBWQVJJQUJMRShzZXN2YXI0MykgKiAyOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4 MDYoKTsKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJMRSBz ZXN2YXI0MzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOwor CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsKKworTEVUIHNlc3ZhcjQzID0g Mi43MjsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0RST1AgVkFSSUFCTEUgc2Vz dmFyNDM7CisKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmludF9ub3RfbnVsbCBBUyBpbnQg Q0hFQ0sodmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NiBBUyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOworCistLSBzaG91bGQgZmFpbAor TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NiA9IE5VTEw7CistLSBzaG91bGQgYmUgb2sKK0xFVCBz dmFydGVzdF9kbWwuc2VzdmFyNDYgPSAxMDA7CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUg PSBST1coMSwyLDMsNCk7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEgPSAxMDA7CitTRUxF Q1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7CisKK0NSRUFU RSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5UIFVTQUdF IE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25s eV9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworCistLSBzaG91bGQgYmUgb2sK K0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKKworU0VUIFJPTEUgVE8gREVGQVVM VDsKKworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkp OworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IEFTIGludFtdOworTEVU IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyA9IEFSUkFZWzEsMiwzXTsKKworR1JBTlQgVVBEQVRFIE9O IFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93 cml0ZV9vbmx5X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRl X29ubHlfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k bWwuc2VzdmFyNDcpOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFy NDdbMV0gPSAyMDA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCBWQVJJQUJMRShz dmFydGVzdF9kbWwuc2VzdmFyNDcpOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ4IEFTIGludDRtdWx0aXJhbmdlW107CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0g TlVMTDsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDggPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7 WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4WzJdID0gJ3tbNSw4 KSxbMTIsMTAwKX0nOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCk7CisK Ky0tIHRlc3QgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dF9kbWwuc2VzdmFyNDkgQVMgaW50OworCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEg XGJpbmQgMTAgXGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworCitM RVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEgXHBhcnNlIGxldHBzCitcYmluZF9uYW1lZCBs ZXRwcyAxMDAgXGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworCitc Y2xvc2VfcHJlcGFyZWQgbGV0cHMKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sIENBU0NBREU7 CitEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBjNDMwYzc4ZjE3Zi4uZDQzNDVjNDUwZDYgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0xNTQ2LDYgKzE1NDYsNyBAQCBMYXJnZU9iamVjdERlc2MK IExhdGNoCiBMYXVuY2hlckxhc3RTdGFydFRpbWVzRW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBM ZXhEZXNjcgogTGV4ZW1lRW50cnkKIExleGVtZUhhc2hLZXkKLS0gCjIuNTAuMQoK --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250723-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474wc3 RnJvbSBlODNhMDY2YmIzOGUwMjIxOWQwM2NlM2Q0ZWM5YTFjNDYxOWI5ZDFjIE1vbiBTZXAgMTcg 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 bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBi YmEyNzMyN2U0NC4uMjVkOTAxYTAzZjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI1 OTksNCArMTI1OTksMTIgQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsaW9faWQsaW9fZ2VuZXJh dGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJnZXQsaGFuZGxlX2RhdGFfbGVuLHJh d19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxmX2xvY2FsbWVtLGZfYnVmZmVyZWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAorIyBTZXNzaW9uIHZhcmlhYmxlcyBz dXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycsIHByb3Jvd3Mg PT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9PiAncycsIHByb3Bh cmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4dCxib29sLGJvb2ws Ym9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmdu YW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVtb3ZlZCxjYW5fc2Vs ZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycgfSwK IF0KLS0gCjIuNTAuMQoK --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250723-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474w32 RnJvbSA0NTE0NDcwNWJkMjQyYzA1YThiYmNhZGI1MGMxZTJkYzQzNjNjMDgyIE1vbiBTZXAgMTcg 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 cnNlci9ncmFtLnkKaW5kZXggNWY2YmMwZjhhOTkuLjQ2ZTE4NmY3MTM3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK QEAgLTIwOTAsNyArMjA5MCwxMyBAQCBEaXNjYXJkU3RtdDoKIAkJCQkJbi0+dGFyZ2V0ID0gRElT Q0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IERJU0NB UkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNjYXJkU3RtdCAqbiA9IG1ha2VOb2RlKERpc2Nh cmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggZDRlN2Q4MzM3 M2UuLjVkZDgwODQ4ZjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwor KysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjk1MSw2ICsyOTUxLDkgQEAgQ3Jl YXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNF UzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJ CQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJ QUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktO T1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDM0NWMxMGI4NWYxLi44ZWYzZWZl MjQzNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDIwMCw3ICs0MjAwLDcgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIERJU0NBUkQgKi8KIAllbHNlIGlm IChNYXRjaGVzKCJESVNDQVJEIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJT RVFVRU5DRVMiLCAiVEVNUCIpOworCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VR VUVOQ0VTIiwgIlRFTVAiLCAiVkFSSUFCTEVTIik7CiAKIC8qIERPICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiRE8iKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCAy ZWJlODQ3Nzc4OS4uYWMzNmRmY2MxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKQEAgLTI5LDQgKzI5LDYgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3QKIGV4dGVy biB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVu diwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlh Ymxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNzZmYTRhMjlk ZjIuLmM5YWEwNjU0MTA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00MTA0LDYgKzQxMDQs NyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVNDQVJEX1BMQU5TLAogCURJU0NBUkRf U0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJEX1ZBUklBQkxFUywKIH0gRGlzY2Fy ZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmlu ZGV4IDIyMDgyYzMwMDA4Li5iZWYwYWMyNTMzMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTEz NSw2ICsxMzUsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfQUxMLCAiRElTQ0FSRCBBTEwi LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1BMQU5TLCAi RElTQ0FSRCBQTEFOUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJ U0NBUkRfU0VRVUVOQ0VTLCAiRElTQ0FSRCBTRVFVRU5DRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1RFTVAsICJESVNDQVJEIFRFTVAiLCBmYWxzZSwg ZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUywgIkRJU0NB UkQgVkFSSUFCTEVTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRE8s ICJETyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUNDRVNT X01FVEhPRCwgIkRST1AgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRFJPUF9BR0dSRUdBVEUsICJEUk9QIEFHR1JFR0FURSIsIHRydWUsIGZhbHNl LCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXNfZG1sLm91dAppbmRleCA2N2Y3OGE1NDhkYy4uMmJmN2JkMjc0NjcgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKQEAg LTQ2NiwzICs0NjYsNTMgQEAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NwogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0OAogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0OQogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQ7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgQVMgdmFyY2hhcjsKK0xFVCBzdmFy dGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CitTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUwIAorLS0tLS0tLS0tLQorIEhl bGxvCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RtbF9kaXNjYXJkJzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMQorKDEgcm93KQorCitESVNDQVJEIEFMTDsKK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBz ZXN2YXI1MCAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworTEVUIHN2YXJ0ZXN0X2RtbF9kaXNj YXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworRElTQ0FS RCBWQVJJQUJMRVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJMRShz dmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAgCistLS0tLS0tLS0tCisg CisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkIENBU0NBREU7CitO T1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sX2Rp c2NhcmQuc2VzdmFyNTAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwuc3FsCmluZGV4IDJjOGQ2YzNhNDk3Li41YTcyMTc1MDQ0NiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBAIC0zNDgsMyArMzQ4LDI3 IEBAIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOwogCiBEUk9QIFNDSEVN QSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKIERST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93 cml0ZV9vbmx5X3JvbGU7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQ7CisK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCBBUyB2YXJjaGFy OworTEVUIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CisKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2Rt bF9kaXNjYXJkJzsKKworRElTQ0FSRCBBTEw7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2Fy ZC5zZXN2YXI1MCk7CitMRVQgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8n OworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVND QVJEIFZBUklBQkxFUzsKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsK K0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkIENBU0NBREU7Ci0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250723-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474vn1 RnJvbSA5ODhkNzM4MjFkYjJhMTlhZWUwZGVkZjY2MzA1ZGIyYmUzZDViMjkwIE1vbiBTZXAgMTcg 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 dmFyNjI7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RkbDsKLS0gCjIuNTAuMQoK --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20250723-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474x26 RnJvbSAxOTU2NTkyMWM4OWY0ZjEyZDdmYWE5NzRlYzk5MTc1ZGYyZmViNTA1IE1vbiBTZXAgMTcg 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 eCBlMTA3ZDZlNWY4MS4uNjMwNjI5ZjM0YjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02NDks NiArNjQ5LDE2IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBs ZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lv blZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg U2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOwor fSBTZXNzaW9uVmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3Rh dGUgaW5mb3JtYXRpb24KICAqCkBAIC03MDgsNiArNzE4LDEwIEBAIHR5cGVkZWYgc3RydWN0IEVT 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 aGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA5NWM3NmJh ZjlhZS4uYjE2ZWMwNjU5NTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf 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 bGlzdAppbmRleCBlZWJlYjU0MDgyZi4uZDRlZGQyYTVlODcgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC0yNzExLDYgKzI3MTEsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQog U2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlh YmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0 Q29uc3RyYWludFRyaWdnZXJEYXRhCi0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20250723-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474wu5 RnJvbSA2ZjkxOWMzNmIxMzAwOTA0ZTcwYWFiYTlhMDIyNmM2YTkwNzRiYWRjIE1vbiBTZXAgMTcg 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 ZDRlZGQyYTVlODcuLmM0MzBjNzhmMTdmIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAt MjY1NCw2ICsyNjU0LDcgQEAgU1RSTEVOCiBTVgogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlCitT VmFyaWFibGVTdGF0ZQogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCiBTYW1w bGVTY2FuCi0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20250723-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474xc7 RnJvbSA2YzcxMzRiMTQxN2I2NTNiZDBjYjc3Y2FmOTQ4MWU4ODhjY2MzMWJjIE1vbiBTZXAgMTcg 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 Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDFkNjJlNjNkNGY3Li5lYjkxYjQ2 YjEyOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE4NzUsNiArMTg3NSwxMSBAQCBm aW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAgICpw YXJhbSA9IChQYXJhbSAqKSBub2RlOwogCisJCS8qIGEgdmFyaWFibGUgcGFyYW1ldGVyIGRlcGVu ZHMgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJCQlhZGRfb2JqZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlvbklk LCBwYXJhbS0+cGFyYW12YXJpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisKIAkJ LyogQSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICov CiAJCWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwg MCwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCBjOTg5ZTcyY2FjNS4uY2Q2YjNjMjdhZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMKQEAgLTM0Myw2ICszNDMsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5 ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAln bG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CiAJZ2xvYi0+cGFydGl0aW9uX2RpcmVjdG9yeSA9 IE5VTEw7CiAJZ2xvYi0+cmVsX25vdG51bGxhdHRzX2hhc2ggPSBOVUxMOworCWdsb2ItPnNlc3Np b25WYXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2li bGUgdG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01ODAsNiArNTgx LDkgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2It PnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2Ug bWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51 dGlsaXR5U3RtdDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25W YXJpYWJsZXM7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24gPSBwYXJzZS0+c3RtdF9sb2NhdGlv bjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRfbGVuOwogCkBAIC03NjIsNiArNzY2 LDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNl LCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJcHVsbF91cF9zdWJxdWVyaWVzKHJv b3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1ZXJ5IHVzZXMgYSBzZXNzaW9uIHZh cmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFyaWFibGVzIHNob3VsZCBiZSB0cnVl IGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMgYQorCSAqIHNlc3Npb24gdmFyaWFi bGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMocm9vdCk7CisKIAkvKgog CSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8g YW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBw bHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9zZXRyZWZzLmMKaW5kZXggODQ2ZTQ0MTg2YzMuLjZjODZlZTFhZDY0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiArMjEwLDkgQEAgc3RhdGljIExpc3QgKnNl dF9yZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiBzdGF0aWMg TGlzdCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJlbmNlcyhQbGFubmVySW5mbyAq cm9vdCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAg IFBsYW4gKnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNf d2Fsa2VyKE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxhbm5lckluZm8gKnJvb3QpOworc3Rh dGljIHZvaWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9v dCwgT2lkIHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzMTYsNiArMTMx OSw1MCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQg cnRvZmZzZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vz c2lvbiB2YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNz aW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBy b290LT5wYXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJv b3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkg cXVlcnlfdHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3Zh cmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0 YXRpYyBib29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9k ZSwgUGxhbm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZh bHNlOworCWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1 ZXJ5ICopIG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJ CQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJ fQorCisJCS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4g ZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl c193YWxrZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5k ZXhvbmx5c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNz aW5nIG9uIGFuIEluZGV4T25seVNjYW4KQEAgLTIwMTYsOCArMjA2Myw5IEBAIGNvcHlWYXIoVmFy ICp2YXIpCiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9m IGV4cHJlc3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBp bmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2Ns YXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFk ZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmds b2ItPmludmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZv ciBHUk9VUElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2Vy LWRlZmluZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5n bG9iLT5pbnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3Ig R1JPVVBJTkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0 byB1cGRhdGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAg KiBzY3JpYmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0 J3MgT0suCkBAIC0yMTA3LDYgKzIxNTUsMTMgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZv ICpyb290LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBjb2xzOwogCQl9CiAJfQorCWVsc2Ug aWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2Rl OworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZWNvcmRfcGxh bl92YXJpYWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFtdmFyaWQpOworCX0KIH0KIAogLyoK QEAgLTIxMTYsNiArMjE3MSwxMCBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKm5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElFWFBSLCByZXBsYWNlIGl0IHdp dGggdGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3QtPm11bHRpZXhwcl9wYXJhbXM7 IG90aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVzdCBmb3IgcGFyYW5vaWEncyBz YWtlLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRoZXIgY2FzZS4KKyAqCisgKiBJ ZiBpdCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVjdCB1c2VkIHNlc3Npb24gdmFy aWFibGVzIGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGUuICBBbHNv LCBhc3NpZ24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1pZCIgdG8gdGhlIHBhcmFtZXRlcidz IHBvc2l0aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25v ZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjEzNCw2ICsyMTkzLDQwIEBAIGZp eF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1Is ICJ1bmV4cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0 dXJuIGNvcHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAo cC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJaW50CQkJbiA9IDA7CisJCWJv b2wJCWZvdW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBtb2RpZnkgb2JqZWN0ICovCisJCXAg PSAoUGFyYW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgorCQkgKiBOb3csIHdlIGNhbiBhY3R1 YWxpemUgbGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5kIHdlIGNhbgorCQkgKiBjb21wbGV0 ZSBwYXJhbWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVhY2hfb2lkKHZhcmlkLCByb290LT5n bG9iLT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAodmFyaWQgPT0gcC0+cGFyYW12YXJp ZCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJl YWs7CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlyb290 LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lv blZhcmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFt aWQgPSBuOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2Rl ICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxOTUsNyArMjI4OCwxMCBAQCBmaXhfYWx0ZXJu YXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3Bs YW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5 IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRh dGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bj b2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lE cyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRz LgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmds b2ItPnJlbGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklB QkxFIHBhcmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFi bGVzIGluIHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZh cmlkIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3Qp LgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9m ZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIyMTcsNyArMjMxMyw4 IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9m ZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8 fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9 IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRl cm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQly ZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNjEw LDYgKzM3MDcsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpy b290LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBz ZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Np b24gdmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LgorICovCitzdGF0aWMgdm9pZAorcmVj b3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlk KQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVt KTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFs X2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBH ZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwg cmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5k KHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8q CiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBi dXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVzCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4IDM1ZThkM2MxODNiLi5kMjQ3MGM5YjJkYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE2NDUsNiArMTY0 NSw5IEBAIHB1bGxfdXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpq dG5vZGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBj b25kaXRpb25zLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1 cml0eSB8PSBzdWJxdWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkg aGFkIHNlc3Npb24gdmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNl LT5oYXNTZXNzaW9uVmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOwor CiAJLyoKIAkgKiBzdWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFz V2luZG93RnVuY3MsIG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24g dGhvc2UgZmxhZ3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCA2ZjBiMzM4 ZDJjZC4uNmRmNzZkODdiNzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAg LTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4 ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVu Y2FwaS5oIgpAQCAtOTM5LDYgKzk0MCwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihO b2RlICpub2RlLCBtYXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChw YXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkv KiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAq LworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYg KG1heF9wYXJhbGxlbF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0 KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMs IHBhcmFtLT5wYXJhbWlkKSkKIAkJewpAQCAtMjM5NSw2ICsyNDAzLDcgQEAgY29udmVydF9zYW9w X3RvX2hhc2hlZF9zYW9wX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2 YWx1ZSBvZiB0aGUgUGFyYW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFi bGUsIGZ1bmN0aW9ucyB0byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIg bm9kZXMgdG8gdGhlaXIgY29udGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1 ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAq LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTIxLDYgKzI1MzAsMjcgQEAg ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJ CX0KIAkJCQl9CisJCQkJZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSAmJgorCQkJCQkJIGNvbnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExl bjsKKwkJCQkJYm9vbAkJdHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlp c251bGw7CisKKwkJCQkJZ2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJ CQkmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGUo cGFyYW0tPnBhcmFtdmFyaWQsICZpc251bGwpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtl Q29uc3QocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2Qs CisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5 cExlbiwKKwkJCQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJ CQkJICB0eXBCeVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUs IHNvIGp1c3QgY29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ4MTksNyArNDg0OSw4IEBA IGlubGluZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRf Y29sbGlkLAogCQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRD b3VudCB8fAogCQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVl cnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJn ZXRMaXN0KSAhPSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdv dG8gZmFpbDsKIAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNv bHZlIGl0ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDg5YTFjNzllOTg0 Li4zOTgyMGI0ZjU0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTU4LDYg KzU4LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRl ICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTE1Myw2ICsxNTQsNyBAQCBJbml0UGxhbkNhY2hlKHZv aWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5DYWNoZVN5 c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZP UkVJR05TRVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hl UmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxhbkNhY2hl U3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2so VkFSSUFCTEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwogfQogCiAv KgpAQCAtMjE3Myw3ICsyMTc1LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBP aWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hl IGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcwor ICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lE LCBOQU1FU1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQs IEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgog ICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNw ZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJl ciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRl eCA3ODIyOTFkOTk5OC4uMDkzNjIyZmJkYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2 LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBh cmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYg KElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJB TV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQ YXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJB TV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRy dWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCBlNWRk MTUwOThmNi4uNTc2YmNkMzZiNGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhu b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xODIsNiArMTgy LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogaGFzaCB0YWJsZSBmb3Ig Tk9UIE5VTEwgYXR0bnVtcyBvZiByZWxhdGlvbnMgKi8KIAlzdHJ1Y3QgSFRBQiAqcmVsX25vdG51 bGxhdHRzX2hhc2ggcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qg b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7 CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3Nv Y2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUzMiw2ICs1MzUsOCBAQCBzdHJ1Y3Qg UGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFu bmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyog dHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9u VmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9H Uk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNGY1 OWUzMGQ2MmQuLjM2MjI2OTljZmM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFu bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTMxLDYgKzEz MSw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJLyogbm9uLW51bGwgaWYgdGhpcyBp cyB1dGlsaXR5IHN0bXQgKi8KIAlOb2RlCSAgICp1dGlsaXR5U3RtdDsKIAorCS8qIE9JRHMgZm9y IFBBUkFNX1ZBUklBQkxFIFBhcmFtcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisK IAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVl cnkpICovCiAJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxv YwlzdG10X2xvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAppbmRleCA5ZDNkZWJjYWIy OC4uYmE0MzA1ZDYxYTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFp bi5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCkBAIC0xMzEsNCArMTMx LDYgQEAgZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFubmVy SW5mbyAqcm9vdCwgT2lkIGZ1bmNpZCk7CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBlX2Rl cGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBleHRy YWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNv bnRleHQpOwogCitleHRlcm4gdm9pZCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFu bmVySW5mbyAqcm9vdCk7CisKICNlbmRpZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCi0tIAoyLjUw LjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20250723-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474xs9 RnJvbSBkYzZiNGFkODliMWYwMTllNTM0OGY3YmUyYzIyN2M3YWUzZTJhNDdlIE1vbiBTZXAgMTcg 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 CmluZGV4IDQyMGE0ZDlmZjExLi4yNjU1ZmE1ZTdjZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM5Niw2ICs1Mzk2LDE3 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 ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAyZDA5YzBl ZTc0MS4uMjI5NTQ3YjE3NzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI0LDcgKzUyNCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JZGVmX2FyZyBjb2x1bW5FbGVtIHdoZXJl X2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZQogCQkJCWFfZXhwciBiX2V4cHIgY19leHBy IEFleHByQ29uc3QgaW5kaXJlY3Rpb25fZWwgb3B0X3NsaWNlX2JvdW5kCiAJCQkJY29sdW1ucmVm IGhhdmluZ19jbGF1c2UgZnVuY190YWJsZSB4bWx0YWJsZSBhcnJheV9leHByCi0JCQkJT3B0V2hl cmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZworCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2Rl Zl9hcmcgdmFyaWFibGVfZmVuY2UKICV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2Rf bGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2Rl Zl9saXN0CiAldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3Zlcmxh cHMKQEAgLTg4MSw3ICs4ODEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICovCiAlbm9u YXNzb2MJVU5CT1VOREVEIE5FU1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRl bmNlIGFzIElERU5UICovCiAlbm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JP VVBTIFBSRUNFRElORyBGT0xMT1dJTkcgQ1VCRSBST0xMVVAKLQkJCVNFVCBLRVlTIE9CSkVDVF9Q IFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRICisJCQlTRVQgS0VZUyBPQkpFQ1RfUCBT Q0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSCBWQVJJQUJMRQogJWxlZnQJCU9wIE9QRVJB VE9SCQkvKiBtdWx0aS1jaGFyYWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICov CiAlbGVmdAkJJysnICctJwogJWxlZnQJCScqJyAnLycgJyUnCkBAIC0xNTcwMiw2ICsxNTcwMiwx OSBAQCBjX2V4cHI6CQljb2x1bW5yZWYJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCQllbHNlCiAJ CQkJCQkkJCA9ICQyOwogCQkJCX0KKwkJCXwgdmFyaWFibGVfZmVuY2Ugb3B0X2luZGlyZWN0aW9u CisJCQkJeworCQkJCQlpZiAoJDIpCisJCQkJCXsKKwkJCQkJCUFfSW5kaXJlY3Rpb24gKm4gPSBt YWtlTm9kZShBX0luZGlyZWN0aW9uKTsKKworCQkJCQkJbi0+YXJnID0gKE5vZGUgKikgJDE7CisJ CQkJCQluLT5pbmRpcmVjdGlvbiA9IGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpOwor CQkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCSQkID0gJDE7 CisJCQkJfQogCQkJfCBjYXNlX2V4cHIKIAkJCQl7ICQkID0gJDE7IH0KIAkJCXwgZnVuY19leHBy CkBAIC0xNzA3Nyw2ICsxNzA5MCwxNyBAQCBjYXNlX2FyZzoJYV9leHByCQkJCQkJCQkJeyAkJCA9 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 ZXggMmI0YzczNjNkNzQuLjEwY2Y1MjQ2N2UzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0x NjcsNiArMTY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dTZWN1cml0 eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhhcyBhZGRl ZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29s CQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTMyMSw2ICszMjMsMTYgQEAgdHlwZWRlZiBz dHJ1Y3QgUGFyYW1SZWYKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCiB9IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVGZW5jZSAt IGVuc3VyZSBzbyBmaWVsZHMgd2lsbCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJsZQorICov Cit0eXBlZGVmIHN0cnVjdCBWYXJpYWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0 CSAgICp2YXJuYW1lOwkJLyogdmFyaWFibGUgbmFtZSAoU3RyaW5nIG5vZGVzKSAqLworCVBhcnNl TG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30g VmFyaWFibGVGZW5jZTsKKwogLyoKICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0 Zml4IGV4cHJlc3Npb25zCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggNmRmY2EzY2IzNWIu LjlkN2I5ZjU5OGY4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4LDYgKzM3OCw4IEBAIHR5 cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNvbnRhaW4g dGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAxNiBiaXRz IGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQYXJhbSBp cyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisgKgkJUEFS QU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2 YXJpYWJsZQorICoJCQkJKHBhcmFtdmFyaWQgaG9sZHMgdGhlIHZhcmlhYmxlJ3MgT0lEKS4KICAq LwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzg1LDYgKzM4Nyw3IEBAIHR5cGVkZWYg ZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVM VElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0 IFBhcmFtCkBAIC0zOTksNiArNDAyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJ cGFyYW10eXBtb2Q7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25l ICovCiAJT2lkCQkJcGFyYW1jb2xsaWQ7CisJLyogT0lEIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJs ZSBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KKwlPaWQJCQlwYXJhbXZhcmlkIHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5r bm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCmluZGV4IGY3ZDA3Yzg0NTQyLi44NGU4ODY5NDBkOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCkBAIC0yMjgsNiArMjI4LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlib29sCQlwX2hhc1Rh cmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlwX2hhc01vZGlmeWluZ0NU RTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlOb2RlCSAgICpwX2xhc3Rfc3Jm OwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZvdW5kICovCiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKaW5kZXggODdlMWZlNjM2YjkuLmY1MTYwZGU2N2Q5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaApAQCAtMjE0LDYgKzIxNCwxMCBAQCBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlv bl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAogZXh0ZXJuIGNoYXIgKmdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIGV4dGVybiBPaWQJZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCk7CitleHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92 YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLAorCQkJCQkJCQkJCQkJCU9pZCAq dHlwaWQsCisJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQkJCQlPaWQgKmNv bGxpZCk7CiAKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBl KHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBi b3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwpkaWZmIC0tZ2l0IGEv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKaW5kZXggZDE5NDI1YjdhNzEuLjk2ODU3ODc0ZmZlIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAg LTgyNjgsNyArODI2OCw4IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhw cikKIAkJcXVlcnktPnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1 ZXJ5LT5saW1pdENvdW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0 T3BlcmF0aW9ucyB8fAorCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZh bHNlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggM2Y3YTlhNjA5MmUuLmI0 MTY0N2EyYTRlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMzIwMSw2ICszMjAxLDcg QEAgVmFsaWRhdG9yVmFsaWRhdGVDQgogVmFsdWVzU2NhbgogVmFsdWVzU2NhblN0YXRlCiBWYXIK K1ZhcmlhYmxlRmVuY2UKIFZhckJpdAogVmFyQ2hhcgogVmFyUGFyYW1TdGF0ZQotLSAKMi41MC4x Cgo= --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20250723-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474xj8 RnJvbSBiMTI2ZjJmYWMxZTFiNDBlMmRjMmMwMmYzZWMwMjY5OTliNGYzYWIzIE1vbiBTZXAgMTcg 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 L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYjQxNjQ3YTJhNGUuLmVlYmViNTQwODJmIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY1Miw2ICsyNjUyLDggQEAgU1NMX0NUWAog U1RBUlRVUElORk8KIFNUUkxFTgogU1YKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZQogU1lOQ0hS T05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCiBTYW1wbGVTY2FuCi0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20250723-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474y010 RnJvbSBjYTk3YmU5YWNhZTc0YjkxNzNhOTgzYWFmOWFlNDFiYTNhZGQ4OWJkIE1vbiBTZXAgMTcg 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 aW5kZXggMzBlMGRhMzFhYTMuLmFhMjc1NjhiZjhlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9h cmNoaXZlci5jCkBAIC0zMTk0LDYgKzMxOTQsMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50 cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFz aW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQog CQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklB QkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1 cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJ IXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcp KQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAt Mzc1Nyw2ICszNzY1LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1Ziwg Y29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05B UlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIp ID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwg IlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyog bm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNF IikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNjI5OGVkYjI2YjUuLjk5MDUxYWQwMGQ2IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKQEAgLTM4MSw2ICszODEsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24o QXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9u UmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJy aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpm b3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBC dWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsK QEAgLTU1OTQsNiArNTU5NSwxODggQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29p 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 IFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLApAQCAtMTE2OTYsNiArMTE4NzksOSBAQCBkdW1w RHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNh c2UgRE9fUkVMX1NUQVRTOgogCQkJZHVtcFJlbGF0aW9uU3RhdHMoZm91dCwgKGNvbnN0IFJlbFN0 YXRzSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVt cFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2Fz ZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJ CQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE2MjAyLDYgKzE2Mzg4LDkg QEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRh Y2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9MQVJHRU9CSkVDVDoKIAkJCXR5cGUgPSAiTEFSR0Ug T0JKRUNUUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0eXBl ID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4ndCBn ZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBkZWZh dWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTIwMDE1LDYgKzIwMjA0LDcgQEAgYWRkQm91bmRhcnlE ZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNl IERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRB Q0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2FzZSBE T19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDkzYTQ0NzVkNTFi Li5lYzQ0Y2VlZDhmMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgZW51 bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZBUklB QkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAgLTcz OSw2ICs3NDAsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1 YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0IGlz IHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3RydWN0 IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNsIGRh Y2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNv bGxhdGlvbjsKKwljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1w dHkgc3RyaW5nICovCit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1 bmN0aW9ucwogICovCkBAIC04MjIsNSArODM2LDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRp b25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGlu dCBudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0 KTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4 dGVybiB2b2lkIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8q IFBHX0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IGY5OWEwNzk3ZWE3Li5hYTI4 ODc5MDYzNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzYsNiArNzYsNyBAQCBlbnVtIGRi T2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX1RBQkxFX0FUVEFDSCwKIAlQUklPX0RVTU1ZX1RZ UEUsCiAJUFJJT19BVFRSREVGLAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VO REFSWSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNF X1NFVCwKQEAgLTExOSw2ICsxMjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVBy aW9yaXR5W10gPQogCVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hd ID0gUFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtE T19WQVJJQUJMRV0gPSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAog CVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9 IFBSSU9fU1RBVFNFWFQsCkBAIC0xNTM2LDYgKzE1MzgsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9i amVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkg IlJFTEFUSU9OIFNUQVRJU1RJQ1MgRk9SICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmot Pm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2Ug RE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUg JXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJ c25wcmludGYoYnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA2Yzdl YzgwZTI3MS4uZjU0ZmQ3ZWZkNWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC05NTks NiArOTU5LDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwg fSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZz ID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScg PT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgV0lUSCBcRQpAQCAtMTk1OSw2ICsxOTY5LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4gewor CQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJs ZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7 CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25f cHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBf dGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9 LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAog CQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkg JwpAQCAtNDI5Myw2ICs0MzIwLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NS RUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVf ZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAor CiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJ CWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ3NTcs NiArNDgwMiwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9u X3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVz dF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVS SUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBmZjFmYjczNDY0Mi4uM2Y3YTlhNjA5MmUgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMjA5LDYgKzMyMDksNyBAQCBWYXJTdHJpbmcKIFZhclN0 cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUlu Zm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0t IAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20250723-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474yh12 RnJvbSA1ODZlNTEwMGIxYjU2MmMyYjc3ZDZjYTljNDlhZTc4MmM3ZmNiZjIwIE1vbiBTZXAgMTcg 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 b2dzLnNnbWwKaW5kZXggYzk1YTI0YTJiZTAuLjhlMzU2MDg1YTVlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzM2MCw3ICszMzYwLDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0 ZXJhbD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ ID0gdHlwZSwKICAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYSwKLSAgICAgICA8 bGl0ZXJhbD5MPC9saXRlcmFsPiA9IGxhcmdlIG9iamVjdAorICAgICAgIDxsaXRlcmFsPkw8L2xp dGVyYWw+ID0gbGFyZ2Ugb2JqZWN0LAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0gc2Vz c2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5k ZXggZmE3MTFhMDliYzQuLjQyMGE0ZDlmZjExIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0yMDI1LDYgKzIwMjUsNyBAQCBS RVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIEZvciBzZXF1ZW5jZXMs IHRoaXMgcHJpdmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0aGUKICAgICAgICA8ZnVuY3Rpb24+ Y3VycnZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0 aGlzIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgorICAgICAgIEZvciBz ZXNzaW9uIHZhcmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJl IHJlYWQuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CkBAIC0yMDYwLDYgKzIwNjEsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVC TElDOwogICAgICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbnMuCiAgICAg ICAgRm9yIGxhcmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB3cml0aW5nIG9yIHRy dW5jYXRpbmcgdGhlCiAgICAgICAgb2JqZWN0LgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxl cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZhbHVlIHRvIHRoZQorICAgICAgIG9i amVjdC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRy eT4KQEAgLTIzMDQsNyArMjMwNyw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJM SUM7CiAgICAgICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0 ZXJhbD5TRVFVRU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+ IChhbmQgdGFibGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0 YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4K ICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjMxOSw3ICsyMzIz LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJh bD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRl cmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUgY29s dW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFC TEU8L2xpdGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAg LTI1MDYsNiArMjUxMSwxMiBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwog ICAgICAgPGVudHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5cZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5c ZFYrPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rn cm91cD4KICAgPC90YWJsZT4KQEAgLTUzNzUsNiArNTM4NiwxMCBAQCBFWFBMQUlOIFNFTEVDVCBj b3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0w MS0wMSc7CiAKICAgIDxwYXJhPgogICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSBkYXRhYmFzZSBv YmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlr ZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzCisgICAg aXMgY29udHJvbGxlZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5S RVZPS0U8L2NvbW1hbmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklBQkxFPC9jb21tYW5kPiBj b21tYW5kLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IGRlNWI1OTI5ZWUwLi4z ODFlMDFjMDRkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTYxMiw2ICsyNTYxMiwyNSBAQCBTRUxFQ1QgaGFzX2Z1 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+CkBAIC0yNTg1MSw4ICsyNTg3MCw4IEBAIFNFTEVDVCBoYXNf ZnVuY3Rpb25fcHJpdmlsZWdlKCdqb2V1c2VyJywgJ215ZnVuYyhpbnQsIHRleHQpJywgJ2V4ZWN1 dGUnKTsKICAgICAgICAgJ3QnIGZvciA8bGl0ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPiwKICAg ICAgICAgJ0YnIGZvciA8bGl0ZXJhbD5GT1JFSUdOIERBVEEgV1JBUFBFUjwvbGl0ZXJhbD4sCiAg ICAgICAgICdTJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBTRVJWRVI8L2xpdGVyYWw+LAotICAgICAg ICBvcgotICAgICAgICAnVCcgZm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFs PkRPTUFJTjwvbGl0ZXJhbD4uCisgICAgICAgICdUJyBmb3IgPGxpdGVyYWw+VFlQRTwvbGl0ZXJh bD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPiBvcgorICAgICAgICAnVicgZm9yIDxsaXRl cmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICAgPC9yb3c+CiAKQEAgLTI2MTIwLDYgKzI2MTM5LDcgQEAgU0VMRUNUIHJlbG5hbWUgRlJP 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 L2dyYW0ueQppbmRleCA1ZTkzZmMwYTA1Ni4uMmQwOWMwZWU3NDEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt Nzg0LDcgKzc4NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5MT0dH RUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJ REFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQotCVZBUllJTkcg VkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCisJVkFSSUFCTEVT IFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCiAK IAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JL IFdSQVBQRVIgV1JJVEUKIApAQCAtODAyOSw2ICs4MDI5LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6 CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUg cXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFy Z2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFD TF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5f UCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJn ZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC04MDc0LDYgKzgwODIsMTQgQEAg cHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJ fQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJ UHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkp OworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+ b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9 IG47CisJCQkJfQogCQk7CiAKIApAQCAtODI3Miw2ICs4Mjg4LDcgQEAgZGVmYWNsX3ByaXZpbGVn ZV90YXJnZXQ6CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJfCBTQ0hF TUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQogCQkJfCBMQVJHRV9QIE9CSkVDVFNfUAl7ICQk ID0gT0JKRUNUX0xBUkdFT0JKRUNUOyB9CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9CSkVDVF9W QVJJQUJMRTsgfQogCQk7CiAKIApAQCAtMTgxMzMsNiArMTgxNTAsNyBAQCB1bnJlc2VydmVkX2tl eXdvcmQ6CiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODc5MCw2ICsxODgwOCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVTCiAJCQl8 IFZBUkNIQVIKIAkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJ CQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggMTIxM2Y5MTA2 ZDUuLmRjNDEyMDEwYzIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAg LTEyOSw2ICsxMzAsOCBAQCBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3R5cGVfcHJpdl9zdHJpbmco dGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9wYXJhbWV0ZXJf cHJpdl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfbGFy Z2VvYmplY3RfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1v ZGUgY29udmVydF9yb2xlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRp YyBPaWQJY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0 aWMgQWNsTW9kZSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJp dl90eXBlX3RleHQpOwogc3RhdGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xl X29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJl cnNoaXBDYWNoZUNhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpOwpAQCAtODY4LDYgKzg3MSwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwg T2lkIG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVy X2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwg KGludCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2Vl cCBjb21waWxlciBxdWlldCAqLwpAQCAtOTY1LDYgKzk3Miw5IEBAIGFjbGRlZmF1bHRfc3FsKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwog CQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3Qg dHlwZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMzMsNiArNTA0Mywy 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 Z19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggM2VlOGZl ZDdlNTMuLmNkNTVmNTBjOTQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU0NjcsNiAr NTQ2NywyNiBAQAogICBwcm9yZXR0eXBlID0+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 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggM2FiYzFhY2E1ZjIuLjk1Yzc2YmFm OWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBi 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 CjIuNTAuMQoK --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20250723-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474ya11 RnJvbSA0OTY1YjkwNzIxOTczNGFkODFjNDQzYzhkNTdiZjZlYjZhMTJkNjE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDIyOjE2OjE2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNC8xNV0gc3VwcG9ydCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgcHNxbAoKVGhpcyBw YXRjaCBlbmhhbmNpbmcgcHNxbCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzOgoKICogXGRW WytdIGNvbW1hbmQKICogdGFiIGNvbXBsZXRlIGZvciBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklB QkxFCgpOb3RlOiB0YWIgY29tcGxldGUgZm9yIHZhcmlhYmxlIGZlbmNpbmcgaXMgbm90IHN1cHBv cnRlZCB5ZXQKLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgIHwgIDEyICsr KysKIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgfCAgMTMgKysrKwogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICB8ICAxNCArKysrCiBzcmMvYmluL3BzcWwvY29t bWFuZC5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAg ICAgICAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5oICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2hlbHAuYyAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgIHwgIDQ1 ICsrKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgfCAgIDMg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCB8ICA1MCArKysrKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgfCAgMjEgKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRl eCAzODFlMDFjMDRkOC4uZTQ2ZmEzZTc1NzMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjYxNDAsNiArMjYxNDAsMTgg QEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxl KG9pZCk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVu Y19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdf dmFyaWFibGVfaXNfdmlzaWJsZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1l dGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0 dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBJcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/ CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAg ICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bz cWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggNGY3YjEx MTc1YzYuLjA5OGMzNmU5MTFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTQ0LDYgKzIx NDQsMTkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAg 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 cmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDBlMDBkNzM0ODdjLi42M2FmZjRmYmVkYyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCkBAIC0xMjQ5LDYgKzEyNDksOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNj YW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJl YWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJ CQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQli cmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJi b3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwppbmRleCA3YTA2YWY0ODg0Mi4uNGU4OTYyNGYyNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjI0LDcgKzEy MjQsNyBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VM RUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxu IgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRl ZmFjbG9ianR5cGUgIgotCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIgogCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAi LAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKQEAgLTEyNDEsNiArMTI0MSw4IEBAIGxp c3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgi c2NoZW1hIiksCiAJCQkJCSAgREVGQUNMT0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRf bm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkg IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpKTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTMx NCw2ICs1MzE2LDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgor 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 L2Jpbi9wc3FsL2hlbHAuYwppbmRleCA4YzYyNzI5YTBkMS4uMTNhMGUzYmU5YWMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjYy LDYgKzI2Miw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAw KCIgIFxcZFRbU3grXSBbUEFUVEVSTl0gICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAo IiAgXFxkdVtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxk dltTeCtdIFtQQVRURVJOXSAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10g IFtQQVRURVJOXSAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxk eFt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRY W3hdICAgW1BBVFRFUk5dICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAw KCIgIFxcZHlbeCtdICBbUEFUVEVSTl0gICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IGRiYzU4NmM1YmMzLi5iMThiNjNkN2YxNSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtOTc4LDYgKzk3OCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5y ZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5j YXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0g InYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICog UXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3Ms IHBvc3NpYmx5CkBAIC0xMzM5LDYgKzEzNDYsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdf dCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAu Li4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5 d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEws IE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFy aWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9 LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTkwNCw3ICsxOTEyLDcg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkK IAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxc ZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAi XFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAi XFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgi LCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxk eCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYi LCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRw aXBlbGluZSIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJc XGZsdXNocmVxdWVzdCIsCkBAIC0yNjE0LDYgKzI2MjIsOSBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJU TyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVf V0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQi KTsKQEAgLTMyMjAsNyArMzIzMSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNF UlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJ CQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJ ICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwg IlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwg IkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJDT05TVFJBSU5UIikpCkBAIC00MDMzLDYgKzQwNDQsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlF eGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRF IFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg Ki8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJM RSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1l PiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBD UkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00 MzEwLDYgKzQzMjgsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJM QU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklD VCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAi VkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVY RUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NTExLDcg KzQ1MzUsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2Jq ZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFV TFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNF UyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hF TUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFV RU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAi VFlQRVMiLCAiU0NIRU1BUyIsICJMQVJHRSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIp OwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9s aXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIs CkBAIC00NTE5LDYgKzQ1NDUsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFU QUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBX UkFQUEVSIiwKQEAgLTQ1MzMsNyArNDU2MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAog CQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJ CSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1h dGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSkKQEAgLTQ1NDEsNyArNDU2OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJ TkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJU QUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJW QVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9L RSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9L RSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikp CiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ1NzcsNiAr NDYwNiw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExF VEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFC TEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRj aEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDkw Myw3ICs0OTM0LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8q IFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnks ICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRP IiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAi SU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRS QU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNh Y3Rpb24KQEAgLTUzOTIsNiArNTQyMyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXND UygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01Q TEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYg KFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBjZDU1 ZjUwYzk0NC4uYmJhMjczMjdlNDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjY5Nyw2 ICs2Njk3LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9j b3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNp YmxlJyB9LAoreyBvaWQgPT4gJzk5OTknLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2 aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlw ZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxl X2lzX3Zpc2libGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2Yg Y3VycmVudCBzZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdw Z19teV90ZW1wX3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggMjM2ZWJhMjU0MGUuLmQ5YjAyZWU5 OWQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi 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 ZTJlMzEyNDU0MzkuLjhmZDc1ZDUzYWZlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx 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 cm9sZTA7Ci0tIAoyLjUwLjEKCg== --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20250723-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474yr13 RnJvbSA2NDNmZDBjNDRiMjJkMzNkYWU2OWUwY2I4NDlmYzczMDk0YTg5MTNmIE1vbiBTZXAgMTcg 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 bWwvZGRsLnNnbWwKaW5kZXggNjViYzA3MGQyZTUuLmZhNzExYTA5YmM0IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01MzYy LDYgKzUzNjIsMjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBX 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 ZW5kZW5jeS5jCmluZGV4IDdkZGVkNjM0ZWI4Li4xZDYyZTYzZDRmNyAxMDA2NDQKLS0tIGEvc3Jj 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 Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjYjgxMTUyMGMyOS4uOTI4 NDAyYmViZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01Miw2ICs1Miw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvc3RvcmFnZV94bG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgpA QCAtNjkwOSw2ICs2OTEwLDcgQEAgQVRUeXBlZFRhYmxlUmVjdXJzaW9uKExpc3QgKip3cXVldWUs IFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogICogKHBvc3NpYmx5IG5lc3RlZCBz ZXZlcmFsIGxldmVscyBkZWVwIGluIGNvbXBvc2l0ZSB0eXBlcywgYXJyYXlzLCBldGMhKS4KICAq IEV2ZW50dWFsbHksIHdlJ2QgbGlrZSB0byBwcm9wYWdhdGUgdGhlIGNoZWNrIG9yIHJld3JpdGUg b3BlcmF0aW9uCiAgKiBpbnRvIHN1Y2ggdGFibGVzLCBidXQgZm9yIG5vdywganVzdCBlcnJvciBv dXQgaWYgd2UgZmluZCBhbnkuCisgKiBBbHNvLCBjaGVjayBpZiAidHlwZU9pZCIgaXMgdXNlZCBh cyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZS4KICAqCiAgKiBDYWxsZXIgc2hvdWxkIHBy b3ZpZGUgZWl0aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9uIG9mIGEgcm93dHlwZSwKICAqIG9y IGEgdHlwZSBuYW1lIChub3QgYm90aCkgZm9yIHVzZSBpbiB0aGUgZXJyb3IgbWVzc2FnZSwgaWYg YW55LgpAQCAtNjk3Miw2ICs2OTc0LDQ1IEBAIGZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5j 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 cy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAyNmQ5 ODUxOTNhZS4uYjc2Y2ZlNjJkMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtNTMsNiAr NTMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHlwZWNtZHMuaCIK QEAgLTMzODEsNiArMzM4MiwyMCBAQCBnZXRfcmVsc193aXRoX2RvbWFpbihPaWQgZG9tYWluT2lk LCBMT0NLTU9ERSBsb2NrbW9kZSkKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CisJCWVsc2UgaWYg KHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJCS8qCisJ CQkgKiBXZSBjYW5ub3QgdG8gdmFsaWRhdGUgY29uc3RyYWludCBpbnNpZGUgc2Vzc2lvbiB2YXJp YWJsZXMgZnJvbQorCQkJICogb3RoZXIgc2Vzc2lvbnMsIHNvIGJldHRlciB0byBmYWlsIGlmIHRo ZXJlIGFyZSBhbnkgc2Vzc2lvbgorCQkJICogdmFyaWFibGUsIHRoYXQgdXNlIHRoaXMgZG9tYWlu LgorCQkJICovCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBkb21haW4gXCIl c1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJ ZG9tYWluVHlwZU5hbWUsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZShwZ19kZXBlbmQtPm9iamlkKSkpKTsKKwkJfQogCiAJCS8qIEVsc2UsIGln bm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgdXNlciBjb2x1bW5zIG9mIHJlbGF0aW9ucyAqLwog CQkvKiAod2UgYXNzdW1lIHN5c3RlbSBjb2x1bW5zIGFyZSBuZXZlciBvZiBkb21haW4gdHlwZXMp ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQppbmRleCA3MzM0NWJiM2M3MC4uNWU5M2ZjMGEwNTYgMTAwNjQ0Ci0tLSBh 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 IFZpZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCTsKIAogCkBAIC01Mjc4LDYg KzUyODEsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIAkJCQl9CiAJCTsKIAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAqCQkJCUNSRUFURSBWQVJJQUJM RSB2YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3JlYXRl U2Vzc2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZh clN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlh YmxlID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAo Q29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UK KwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9 ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4t PmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7 CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQ REFURSBbIFRPIHZlcnNpb24gXQpAQCAtNzA4OSw2ICs3MTIwLDcgQEAgb2JqZWN0X3R5cGVfYW55 X25hbWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFSWQkJCQl7ICQkID0gT0JKRUNUX1RT RElDVElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRFTVBMQVRFCQkJCXsgJCQgPSBPQkpF Q1RfVFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIENPTkZJR1VSQVRJT04JCQl7ICQk ID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBWQVJJQUJMRQkJCQkJCQkJeyAkJCA9 IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC0xMDAyOCw2ICsxMDA2MCwyNCBAQCBS ZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgUkVOQU1F IFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQor CQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQlu LT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAq KSAkMzsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBF WElTVFMgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld25hbWUgPSAk ODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJOwogCiBvcHRfY29sdW1uOiBDT0xVTU4KQEAgLTEwMzg5LDYgKzEwNDM5LDI0IEBAIEFs dGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBTRVQg U0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VO b2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1Rf VkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdzY2hl bWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICop bjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFNFVCBT Q0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5v ZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9W QVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVt YSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTA2NzAsNiArMTA3Mzgs MTQgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0 eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBPV05FUiBU TyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck93bmVyU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJ CW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9ICQ2OworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogCkBAIC0xODA1Niw2ICsxODEzMiw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURBVE9SCiAJCQl8IFZB TFVFX1AKKwkJCXwgVkFSSUFCTEUKIAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJCXwg VklFVwpAQCAtMTg3MTIsNiArMTg3ODksNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZB TFVFX1AKIAkJCXwgVkFMVUVTCiAJCQl8IFZBUkNIQVIKKwkJCXwgVkFSSUFCTEUKIAkJCXwgVkFS SUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jCmluZGV4IGFmY2Y1NDE2OWMzLi44NDBiYWVhY2M4YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCkBAIC0xMDUsNiArMTA1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAg ICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7 CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFO VCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJMRSBpdGVt cyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBAIC00MTEzLDYgKzQxMTQsNyBA QCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29u c3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJpZ2dlcnMg PSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwogCiAJLyoK IAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVu dCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDE4MSw2ICs0MTgzLDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNj aGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1l KQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwogCQkJCWJy ZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJCQlDcmVh dGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVsZW1lbnQ7 CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFibGUtPnNj aGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFibGVzLCBl bGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVUYWcoZWxl bWVudCkpOwpAQCAtNDE5NCw2ICs0MjA1LDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVs ZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0 ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlzdF9jb25j YXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwg Y3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFyaWFibGVz KTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDRjMWZhZjU1NzVjLi5j NTg0OWMwMzExNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIv c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJj b21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFj ZS5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5 KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0Ny ZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0NyZWF0 ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0NyZWF0 ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzc5LDYgKzEzODEsMTAgQEAg UHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJlYWs7 CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRl VmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKKwkJ CQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRpb24g LyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAtMjMzMSw2ICsyMzM3LDkg QEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElDUzsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19BTFRF Ul9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VOS05P V047CiAJCQlicmVhazsKQEAgLTI2MzksNiArMjY0OCw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9k ZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9 IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7CiAJ CQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjE1LDYg KzMyMjcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQli cmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdf Q1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FSTklO RywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhwYXJz ZXRyZWUpKTsKQEAgLTM3NDksNiArMzc2NSwxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAq cGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJT dG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBu b2RlVGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBj NDYwYTcyYjc1ZC4uZmRiN2VhZWY3NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyYW5zZm9ybS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgpAQCAtMzg1NCwzICszODU1LDY3IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQg c3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCisvKgkJCQkt LS0tLS0tLS0tIFBHX1ZBUklBQkxFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBn ZXRfdmFybmFtZV92YXJpZAorICoJCUdpdmVuIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiB2YXJpYWJs ZSwgbG9vayB1cCB0aGUgT0lELgorICovCitPaWQKK2dldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNo YXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpCit7CisJcmV0dXJuIEdldFN5c0NhY2hlT2lk MihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJICAgUG9pbnRl ckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bSh2YXJuYW1lc3Bh Y2UpKTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlSZXR1cm5z IGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgbmFtZSBvZiBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJ SGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFy bmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXRE YXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQp OworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZh cm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCisJUmVsZWFzZVN5 c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZQorICoJCVJldHVybnMgdGhlIHBnX25hbWVzcGFjZSBPSUQgYXNz b2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKworCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwor CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29r dXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52 YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1l c3BhY2U7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCA4YzdjY2M2OWEzYy4uYmRhYzBj MTNiZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4g T2lkCVR5cGVuYW1lR2V0VHlwaWQoY29uc3QgY2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5 cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChjb25zdCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2sp OwogZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBW YXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpOworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3Qg RnVuY25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFy Z3MsIExpc3QgKmFyZ25hbWVzLAogCQkJCQkJCQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywK QEAgLTE2OSw2ICsxNzEsMTAgQEAgZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQ YXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRj aGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0 ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1h dGNoZXIgKnBhdGgpOwogCitleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7 CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNo YXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxl RnJvbU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lk CWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0 ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKIGV4dGVybiBPaWQJRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2Rp bmcsIGludDMyIHRvX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDlmMzZhYzY4ODUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTAsMCArMSwyNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZh cmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNp bmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf bm9kZS5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFy U3RtdCAqc3RtdCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDg2YTIzNmJk NThiLi4yYjRjNzM2M2Q3NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjM3MCw2ICsyMzcw LDcgQEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpF Q1RfVFlQRSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpF Q1RfVklFVywKIH0gT2JqZWN0VHlwZTsKIApAQCAtMzU1Miw2ICszNTUzLDIxIEBAIHR5cGVkZWYg c3RydWN0IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3Ig aWYgc3RhdGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAor CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUg U3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0 IENyZWF0ZVNlc3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2 YXJpYWJsZTsJCS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBl TmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENs YXVzZTsKKwlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkg ZXhpc3RzICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYTRhZjNmNzE3YTEuLjZmNTEzZjA0MjI1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCkBAIC00ODYsNiArNDg2LDcgQEAgUEdfS0VZV09SRCgidmFsaWRhdG9y IiwgVkFMSURBVE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJ2YWx1ZSIsIFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInZhbHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVM KQorUEdfS0VZV09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZ UEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4 IGQyNTBhNzE0ZDU5Li5lYTg2OTU0ZGRlZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYg KzY4LDcgQEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZP Uk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIs ICJBTFRFUiBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19B TFRFUl9UWVBFLCAiQUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19BTFRFUl9VU0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFC TEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJB TFRFUiBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpF LCAiQU5BTFlaRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lO LCAiQkVHSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRS SUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBF LCAiQ1JFQVRFIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NS RUFURV9VU0VSX01BUFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JF QVRFIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NB VEUsICJERUFMTE9DQVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf REVBTExPQ0FURV9BTEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBA IC0xNzUsNiArMTc3LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1Ag VFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RS SUdHRVIsICJEUk9QIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfVFlQRSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZh bHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFC TEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRS T1AgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwg IkVYRUNVVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlO LCAiRVhQTEFJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4 IGZhN2M3ZTAzMjNiLi44N2UxZmU2MzZiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEzOSw2 ICsxMzksNyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQpOwogZXh0 ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJlZ1Byb2Nl ZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsbmFt ZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4dGVybiBP aWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFj ZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdl dF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlwZV9pZChP aWQgcmVsaWQpOwpAQCAtMjExLDYgKzIxMiw5IEBAIGV4dGVybiBjaGFyICpnZXRfcHVibGljYXRp b25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9zdWJz Y3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRl cm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r KTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsK K2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCk7CisK ICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAh PSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWlu IGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5 X2RvbWFpbih0eXBpZCkgIChnZXRfYmFzZV9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NWEwNzhh ZGE5ZS4uY2Q4ZTQ0MTJmYTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5 Lm91dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBvd25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBP V05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIg cmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBl bmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBU WVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21h aW47CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2Jq ZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZh cnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRvbWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVND QURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBl OworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3Rz IGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24g dHlwZSB2YXJ0eXBlCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVw ZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45Yzc1OTVlOWE0MQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dApA QCAtMCwwICsxLDE2MyBAQAorU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworQ1JFQVRFIFZBUklB QkxFIGRkbHRlc3Rfc2VzdmFyMDEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5kZGx0 ZXN0X3Nlc3ZhcjAyIEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitDUkVB VEUgVkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBBUyBpbnQ7CitTRUxF Q1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1Ymlk KQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7ZGRs dGVzdF9zZXN2YXIwMX0nLCAne30nKTsKKyAgICAgICAgICAgIHBnX2lkZW50aWZ5X29iamVjdF9h c19hZGRyZXNzICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICgic2Vzc2lvbiB2YXJpYWJsZSIsIntwdWJsaWMsZGRsdGVz dF9zZXN2YXIwMX0iLHt9KQorKDEgcm93KQorCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2Fz X2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3Rf YWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9Jywg J3t9Jyk7CisgICAgICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAoInNlc3Npb24gdmFyaWFibGUiLCJ7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9Iix7fSkK KygxIHJvdykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQs IG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24g dmFyaWFibGUnLCAne3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rfc2VzdmFyMDN9JywgJ3t9Jyk7Cisg ICAgICAgICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKCJzZXNzaW9uIHZhcmlhYmxlIiwie3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rf c2VzdmFyMDN9Iix7fSkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjAx OworRFJPUCBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMjsKK0NSRUFURSBUWVBFIHNl c3ZhcnRlc3RfdHlwZV9kZGwgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgRE9NQUlOIHNlc3Zh cnRlc3RfZG9tYWluX2RkbCBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9k ZGwgKGEgaW50LCBiIGludCk7CisvKiBwcmVmaXggZGRsdGVzdF8gc2hvdWxkIG5vdCBiZSB1c2Vk IGV2ZXIgaW4gYW5vdGhlciB0ZXN0cyAqLworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDQgQVMgc2VzdmFydGVzdF90eXBlX2RkbDsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3Zh cjA1IEFTIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nl c3ZhcjA2IEFTIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworLS0gYWRkIG5ldyBmaWVsZCB0byBjb21w b3NpdGUgdmFsdWUgaXMgc3VwcG9ydGVkLAorLS0gY2hhbmdlIHR5cGUgb2YgZmllbGQgaXMgcHJv aGliaXRlZAorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwg QUREIEFUVFJJQlVURSBjIGludDsKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIEFE RCBDT0xVTU4gYyBpbnQ7CistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5 cGVfZGRsIEFMVEVSIEFUVFJJQlVURSBiIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFs dGVyIHR5cGUgInNlc3ZhcnRlc3RfdHlwZV9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLmRkbHRlc3Rfc2VzdmFyMDQiIHVzZXMgaXQKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3Rf dGFibGVfZGRsIEFMVEVSIENPTFVNTiBiIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFs dGVyIHRhYmxlICJzZXN2YXJ0ZXN0X3RhYmxlX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMuZGRsdGVzdF9zZXN2YXIwNiIgdXNlcyBpdAorQUxURVIgRE9NQUlOIHNlc3ZhcnRl c3RfZG9tYWluX2RkbCBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VSUk9SOiAgY2Fubm90IGFs dGVyIGRvbWFpbiAic2VzdmFydGVzdF9kb21haW5fZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFi bGUgInB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA1IiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJP UCBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgc2Vz dmFydGVzdF90eXBlX2RkbCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRB SUw6ICBzZXNzaW9uIHZhcmlhYmxlIGRkbHRlc3Rfc2VzdmFyMDQgZGVwZW5kcyBvbiB0eXBlIHNl c3ZhcnRlc3RfdHlwZV9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9k ZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgc2VzdmFydGVzdF9kb21haW5fZGRsIGJlY2F1 c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUg ZGRsdGVzdF9zZXN2YXIwNSBkZXBlbmRzIG9uIHR5cGUgc2VzdmFydGVzdF9kb21haW5fZGRsCitI SU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMg dG9vLgorRFJPUCBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKK0VSUk9SOiAgY2Fubm90IGRy b3AgdGFibGUgc2VzdmFydGVzdF90YWJsZV9kZGwgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSBkZGx0ZXN0X3Nlc3ZhcjA2IGRlcGVu ZHMgb24gdHlwZSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVND QURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGNoZWNrIGV2ZW50IHRy aWdnZXIgc3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xB UkUgciByZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3Ry aWdnZXJfZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIElGIHIuY2xhc3NpZCA9ICdwZ192 YXJpYWJsZSc6OnJlZ2NsYXNzIEFORAorICAgICAgIHIuYWRkcmVzc19uYW1lc1syXSBsaWtlICdk ZGx0ZXN0X3Nlc3ZhciUnCisgICAgVEhFTgorICAgICAgUkFJU0UgTk9USUNFCisgICAgICAgICAn Tk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0l IGFyZ3M9JScsCisgICAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3Jhcnks IHIub2JqZWN0X3R5cGUsCisgICAgICAgICByLm9iamVjdF9pZGVudGl0eSwgci5hZGRyZXNzX25h bWVzLCByLmFkZHJlc3NfYXJnczsKKyAgICBFTkQgSUY7CisgIEVORCBMT09QOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVu dF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJP UCBWQVJJQUJMRScsICdEUk9QIFNDSEVNQScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpOworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3Zh cjA0OworTk9USUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNz aW9uIHZhcmlhYmxlIGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA0IG5hbWU9e3B1Ymxp YyxkZGx0ZXN0X3Nlc3ZhcjA0fSBhcmdzPXt9CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDU7CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Np b24gdmFyaWFibGUgaWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDUgbmFtZT17cHVibGlj LGRkbHRlc3Rfc2VzdmFyMDV9IGFyZ3M9e30KK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIw NjsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lv biB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNiBuYW1lPXtwdWJsaWMs ZGRsdGVzdF9zZXN2YXIwNn0gYXJncz17fQorLS0gc2hvdWxkIHRvIGZhaWwKK0RST1AgU0NIRU1B IHNlc3ZhcnRlc3RfZGRsOworRVJST1I6ICBjYW5ub3QgZHJvcCBzY2hlbWEgc2VzdmFydGVzdF9k ZGwgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2 YXJpYWJsZSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIGRlcGVuZHMgb24gc2NoZW1h IHNlc3ZhcnRlc3RfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitEUk9QIFNDSEVNQSBzZXN2 YXJ0ZXN0X2RkbCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZh cmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMKK05PVElDRTogIE5PUk1BTDog b3JpZz1mIG5vcm1hbD10IGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGl0eT1z ZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIG5hbWU9e3Nlc3ZhcnRlc3RfZGRsLGRkbHRl c3Rfc2VzdmFyMDN9IGFyZ3M9e30KK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZDsKK0RST1AgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCk7CistLSBzaG91bGQgYmUgb2sKK0RST1AgVFlQRSBzZXN2YXJ0 ZXN0X3R5cGVfZGRsOworRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsOworRFJPUCBU QUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUK K0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA3IEFTIGludDsKK0NPTU1FTlQgT04gVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNyBJUyAnc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQn OworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ2RkbHRlc3Rfc2VzdmFyMDcnOworICAg ICAgICBvYmpfZGVzY3JpcHRpb24gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNzsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4 IEFTIGludDsKK0FMVEVSIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggUkVOQU1FIFRPIGRkbHRl c3Rfc2VzdmFyMDhfcmVuYW1lZDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitBTFRF UiBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgU0VUIFNDSEVNQSBzZXN2YXJ0ZXN0 X2RkbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworR1JBTlQgQUxM IE9OIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworLS0gc2hvdWxkIGZhaWwK K0RST1AgVkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOwor RVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgc2VzdmFydGVzdF9kZGwu ZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkCitTRVQgUk9MRSBUTyBERUZBVUxUOworQUxURVIgVkFS SUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIE9XTkVSIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworLS0gc2hvdWxkIGZhaWwKK0RST1AgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKK0VSUk9SOiAgcm9sZSAicmVncmVzc192YXJpYWJsZV9v d25lcl9kZGwiIGNhbm5vdCBiZSBkcm9wcGVkIGJlY2F1c2Ugc29tZSBvYmplY3RzIGRlcGVuZCBv biBpdAorREVUQUlMOiAgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXJ0ZXN0X2RkbC5k ZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQKK3ByaXZpbGVnZXMgZm9yIHNjaGVtYSBzZXN2YXJ0ZXN0 X2RkbAorLS0gc2hvdWxkIGZhaWwgLSBub3Qgb24gc2VhcmNoIHBhdGgKK0RST1AgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJkZGx0 ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQiIGRvZXMgbm90IGV4aXN0CitTRVQgU0VBUkNIX1BBVEggVE8g J3Nlc3ZhcnRlc3RfZGRsJzsKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQ7CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0RST1AgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIERFRkFVTFQ7CitD UkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGludDsKK0NS RUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50OworTk9U SUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAiZGRsdGVzdF9zZXN2YXIwOSIgYWxyZWFkeSBleGlzdHMs IHNraXBwaW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworRFJP UCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK05PVElDRTogIHNlc3Npb24g dmFyaWFibGUgImRkbHRlc3Rfc2VzdmFyMDkiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQ1JF QVRFIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIEFTIGludDsKK0NSRUFU RSBTQ0hFTUEgc3ZhcnRlc3QwMl9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsK Ky0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFy MTAgQVMgaW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJzZXN2YXIxMCIgYWxyZWFkeSBl eGlzdHMKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIFJFTkFNRSBUTyBz ZXN2YXIxMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyMTAiIGFscmVhZHkgZXhp c3RzIGluIHNjaGVtYSAic3ZhcnRlc3QwMV9kZGwiCitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdDAy X2RkbC5zZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsOworRVJST1I6ICBzZXNzaW9u IHZhcmlhYmxlICJzZXN2YXIxMCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hICJzdmFydGVzdDAx X2RkbCIKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBz ZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjEwCitkcm9wIGNhc2NhZGVzIHRv IHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEKK0RST1AgU0NIRU1BIHN2 YXJ0ZXN0MDJfZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCmluZGV4IGZiZmZjNjdhZTYwLi4zYWJjMWFjYTVmMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29k aW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMg TkI6IHRlbXAuc3FsIGRvZXMgcmVjb25uZWN0cyB3aGljaCB0cmFuc2llbnRseSB1c2UgMiBjb25u ZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVz dHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVt cCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFi bGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3 aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4g cmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVu Y2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBz ZXNzaW9uX3ZhcmlhYmxlc19kZGwKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2Yg cGFyYWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVu Y3kuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKaW5kZXggOGQ3NGVk NzEyMmMuLjZjMThiN2Y4NDBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBl bmRlbmN5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbApAQCAt MTE0LDMgKzExNCwxNyBAQCBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIE9XTkVE IEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdy ZXNzX2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKworLS0gZGVwZW5k ZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQ RSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcnR5cGU7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21h aW47CitEUk9QIFRZUEUgdmFydHlwZTsKKworLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY4NDQ0NjllY2IxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApAQCAtMCwwICsx LDE1MCBAQAorU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworCitDUkVBVEUgVkFSSUFCTEUgZGRs dGVzdF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmRkbHRlc3Rfc2Vz dmFyMDIgQVMgaW50OworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0NSRUFURSBWQVJJ QUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIEFTIGludDsKKworU0VMRUNUIHBn X2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkKKyAg RlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24gdmFyaWFibGUnLCAne2RkbHRlc3Rf c2VzdmFyMDF9JywgJ3t9Jyk7CisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVz cyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNz KCdzZXNzaW9uIHZhcmlhYmxlJywgJ3twdWJsaWMsZGRsdGVzdF9zZXN2YXIwMn0nLCAne30nKTsK KworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9iamlkLCBv YmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24gdmFyaWFibGUn LCAne3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rfc2VzdmFyMDN9JywgJ3t9Jyk7CisKK0RST1AgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwMTsKK0RST1AgVkFSSUFCTEUgcHVibGljLmRkbHRlc3Rfc2Vz dmFyMDI7CisKK0NSRUFURSBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwgQVMgKGEgaW50LCBiIGlu dCk7CitDUkVBVEUgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbCBBUyBpbnQ7CitDUkVBVEUg VEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgKGEgaW50LCBiIGludCk7CisKKy8qIHByZWZpeCBk ZGx0ZXN0XyBzaG91bGQgbm90IGJlIHVzZWQgZXZlciBpbiBhbm90aGVyIHRlc3RzICovCitDUkVB VEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNCBBUyBzZXN2YXJ0ZXN0X3R5cGVfZGRsOworQ1JF QVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDUgQVMgc2VzdmFydGVzdF9kb21haW5fZGRsOwor Q1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDYgQVMgc2VzdmFydGVzdF90YWJsZV9kZGw7 CisKKy0tIGFkZCBuZXcgZmllbGQgdG8gY29tcG9zaXRlIHZhbHVlIGlzIHN1cHBvcnRlZCwKKy0t IGNoYW5nZSB0eXBlIG9mIGZpZWxkIGlzIHByb2hpYml0ZWQKKworLS0gc2hvdWxkIGJlIG9rCitB TFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwgQUREIEFUVFJJQlVURSBjIGludDsKK0FMVEVS IFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIEFERCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3Vs ZCBmYWlsCitBTFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwgQUxURVIgQVRUUklCVVRFIGIg VFlQRSBudW1lcmljOworQUxURVIgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgQUxURVIgQ09M VU1OIGIgVFlQRSBudW1lcmljOworQUxURVIgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbCBB REQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgVFlQRSBzZXN2 YXJ0ZXN0X3R5cGVfZGRsOworRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsOworRFJP UCBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKworLS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBz dXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVw b3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVudF90cmlnZ2VyCitBUyAkJAorREVDTEFSRSByIHJl Y29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNFTEVDVCAqIGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9k cm9wcGVkX29iamVjdHMoKQorICBMT09QCisgICAgSUYgci5jbGFzc2lkID0gJ3BnX3ZhcmlhYmxl Jzo6cmVnY2xhc3MgQU5ECisgICAgICAgci5hZGRyZXNzX25hbWVzWzJdIGxpa2UgJ2RkbHRlc3Rf c2VzdmFyJScKKyAgICBUSEVOCisgICAgICBSQUlTRSBOT1RJQ0UKKyAgICAgICAgICdOT1JNQUw6 IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0l JywKKyAgICAgICAgIHIub3JpZ2luYWwsIHIubm9ybWFsLCByLmlzX3RlbXBvcmFyeSwgci5vYmpl Y3RfdHlwZSwKKyAgICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIu YWRkcmVzc19hcmdzOworICAgIEVORCBJRjsKKyAgRU5EIExPT1A7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1AgVkFS SUFCTEUnLCAnRFJPUCBTQ0hFTUEnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3Ry aWdnZXJfcmVwb3J0X2Ryb3BwZWQoKTsKKworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0 OworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1OworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0 X3Nlc3ZhcjA2OworCistLSBzaG91bGQgdG8gZmFpbAorRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9k ZGw7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9kZGwgQ0FTQ0FE RTsKKworRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9y dF9kcm9wcGVkOworCitEUk9QIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJv cHBlZCgpOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRs OworRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsOworRFJPUCBUQUJMRSBzZXN2YXJ0 ZXN0X3RhYmxlX2RkbDsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZB UklBQkxFIGRkbHRlc3Rfc2VzdmFyMDcgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSBkZGx0 ZXN0X3Nlc3ZhcjA3IElTICdzb21lIHNlc3Npb24gdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1Qg cGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3Zh cmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAnZGRsdGVzdF9zZXN2YXIwNyc7CitEUk9QIFZBUklBQkxF IGRkbHRlc3Rfc2VzdmFyMDc7CisKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IEFT IGludDsKK0FMVEVSIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggUkVOQU1FIFRPIGRkbHRlc3Rf c2VzdmFyMDhfcmVuYW1lZDsKKworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0FMVEVS IFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBTRVQgU0NIRU1BIHNlc3ZhcnRlc3Rf ZGRsOworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKworR1JBTlQg QUxMIE9OIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2Rk bDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisKKy0tIHNob3Vs ZCBmYWlsCitEUk9QIFZBUklBQkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDhfcmVu YW1lZDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworQUxURVIgVkFSSUFCTEUgc2VzdmFydGVz dF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXJfZGRsOworCistLSBzaG91bGQgZmFpbAorRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXJfZGRsOworCistLSBzaG91bGQgZmFpbCAtIG5vdCBvbiBzZWFyY2ggcGF0aAorRFJPUCBW QVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQ7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyAn c2VzdmFydGVzdF9kZGwnOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgZGRsdGVz dF9zZXN2YXIwOF9yZW5hbWVkOworCitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKworU0VU IFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CisKK0RST1Ag Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8g REVGQVVMVDsKKworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIw OSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5 IEFTIGludDsKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CitEUk9Q IFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0MDFfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgQVMgaW50OworQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdDAyX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50OworCistLSBzaG91bGQg dG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjEwIEFTIGludDsK K0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIFJFTkFNRSBUTyBzZXN2YXIx MDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwIFNFVCBTQ0hFTUEgc3Zh cnRlc3QwMV9kZGw7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsIENBU0NBREU7CitEUk9Q IFNDSEVNQSBzdmFydGVzdDAyX2RkbCBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApp bmRleCA2YWZkMWQ3YWRkOC4uZmYxZmI3MzQ2NDIgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CkBAIC01NjAsNiArNTYwLDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0bXQKIENy ZWF0ZVNjaGVtYVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9uVmFyU3Rt dAogQ3JlYXRlU3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dAotLSAKMi41 MC4xCgo= --000000000000946f98063a9a52ca Content-Type: text/x-patch; charset="US-ASCII"; name="v20250723-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20250723-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdg474yz14 RnJvbSBlNjM1MTU4YzUxZTgxNzMxOTA0NzBhZDI5M2ZmYTc2MjZjNTc3NzE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDA4OjMwOjI1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMS8xNV0gaW50cm9kdWNlIG5ldyBjbGFzcyAoY2F0YWxvZykgcGdfdmFyaWFibGUKClRo aXMgdGFibGUgaG9sZHMgbWV0YWRhdGEgYWJvdXQgc2Vzc2lvbiB2YXJpYWJsZXMgY3JlYXRlZCBi eQpjb21tYW5kIENSRUFURSBWQVJJQUJMRSwgYW5kIGRyb3BwZWQgYnkgY29tbWFuZCBEUk9QIFZB UklBQkxFLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgIHwgMTMz ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICB8IDE2OCArKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAg ICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgfCAgOTYgKysrKysrKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IHwgICA0ICsKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgIHwgICAyICsKIDkgZmlsZXMgY2hh bmdlZCwgNDA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDk3ZjU0 N2IzY2M0Li5jOTVhMjRhMmJlMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAK ICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0 cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAg ICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0 YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9s aW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAg ICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC05Nzg0 LDQgKzk3ODksMTMyIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g 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 bGlzdAppbmRleCBhODY1NjQxOWNiNi4uNmFmZDFkN2FkZDggMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC05MDksNiArOTA5LDcgQEAgRm9ybURhdGFfcGdfdHNfcGFyc2VyCiBGb3JtRGF0 YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlwZQogRm9ybURhdGFfcGdfdXNlcl9tYXBw aW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1dGUKIEZv cm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05NjgsNiArOTY5LDcgQEAgRm9ybV9wZ190 c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZvcm1fcGdfdHlwZQogRm9ybV9wZ191c2Vy X21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1hdE5vZGUKIEZyZWVCbG9ja051bWJlckFy cmF5CiBGcmVlTGlzdERhdGEKLS0gCjIuNTAuMQoK --000000000000946f98063a9a52ca--