From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A6D8ACCA468 for ; Tue, 30 Sep 2025 11:50:07 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3Ypk-0001Ts-AB; Tue, 30 Sep 2025 07:47:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3Yox-00013E-B2 for grub-devel@gnu.org; Tue, 30 Sep 2025 07:47:09 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3Yoq-0006SR-2W for grub-devel@gnu.org; Tue, 30 Sep 2025 07:47:02 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58U8PSLK005870; Tue, 30 Sep 2025 11:46:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=PzqnX2 Fa7q27JC67UlVrc/FbuGV0wHetPULs/zhJl2M=; b=QOZdq+eE81zFIacFdph5Bb LXedyMNq3JcPnokB2ipuwcj1GcNA69Dz2rl2SNmuKiKOVRybBl4IG/H5xAIRGQD6 ECPgPwnewSfqJv6KiBvw6948Zo8n3MJ1Xx0ks+PgDRN/RV1i1GUGUsxGo8x4N1Eb ZDEVvXf9aIM2bFT8/KyPD4Bo8o3Y51d9PG+y7ndWyebE0PwMO9VKmNjJR4csDssQ OmNSSgJaAP+mIfe0DTrj4jh/9rNQxyWeNFFMGmCa0swGsMZMn795TBGhs+IbPX/y /7bBamhKW4iLaGvF0iFR+EYJ+ZMwSWNFpzNIlAR7I+Y6slomlY39FTaAw/iUFr8A == Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49e7n7rf2h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:45 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58U9PHLe007328; Tue, 30 Sep 2025 11:46:44 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49eurju37k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:44 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58UBke4760228012 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 30 Sep 2025 11:46:40 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 928FA20043; Tue, 30 Sep 2025 11:46:40 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7362920040; Tue, 30 Sep 2025 11:46:37 +0000 (GMT) Received: from localhost.localdomain (unknown [9.39.16.143]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 30 Sep 2025 11:46:37 +0000 (GMT) From: Sudhakar Kuppusamy To: grub-devel@gnu.org Cc: dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, msuchanek@suse.com, mlewando@redhat.com, stefanb@linux.ibm.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Sudhakar Kuppusamy , sridharm@linux.ibm.com, Daniel Kiper Subject: [PATCH v13 16/20] appended signatures: GRUB commands to manage the hashes Date: Tue, 30 Sep 2025 17:10:10 +0530 Message-ID: <20250930114018.78215-17-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250930114018.78215-1-sudhakar@linux.ibm.com> References: <20250930114018.78215-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 48vjVuxxORGG65GGTkANhchIIFQwP9Ud X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTI3MDAyNSBTYWx0ZWRfXwGdxt563bv1W qGYq7ezeGIn8yZYSsendlDFx/uSPbg4LWJMc8yQ6gW0SUPN38Bmt/3isKjNwciD9v3IPQILJkt0 f7UVfVpD0kbB0zP76vnpscGnAdyTWFzm7nU9e/oT0alFRhRmTnM+yo+ysIFkE/JRbngookgWW2q D5glfkya/iJNMrINXlKV/u9DQlPA5LkDIDxd/laF2R9rHlFTs6Balp7h/02w4S3SUAXEU5s/EsQ //4nTpwSGELE0NUC0+8fjN1H35askCEk2dnqoUnsGDUv+irGdNv3ZpuoMHpaGNqv0DcpB3S0nZN bjJQvsZEeOOsq1LX9cBCJ0dNKQaWmHYD7H1OagBMWonOZLeqZIPsNYOhOy+WMbSxmWd68Kz+sBG INTvMCTEU5+nAQ7P84+VxQjkY96BRQ== X-Proofpoint-GUID: 48vjVuxxORGG65GGTkANhchIIFQwP9Ud X-Authority-Analysis: v=2.4 cv=T7qBjvKQ c=1 sm=1 tr=0 ts=68dbc326 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=e-nx5uoHNrGU2HCnJ5kA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-30_02,2025-09-29_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 clxscore=1015 suspectscore=0 bulkscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2509270025 Received-SPF: pass client-ip=148.163.156.1; envelope-from=sudhakar@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org SW50cm9kdWNpbmcgdGhlIGZvbGxvd2luZyBHUlVCIGNvbW1hbmRzIHRvIG1hbmFnZSBjZXJ0aWZp Y2F0ZS9iaW5hcnkKaGFzaGVzLgoKICAxLiBhcHBlbmRfbGlzdF9kYng6CiAgICAgIFNob3cgdGhl IGxpc3Qgb2YgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgYW5kIGJpbmFyeS9jZXJ0aWZpY2F0ZQog ICAgICBoYXNoZXMgZnJvbSB0aGUgZGJ4IGxpc3QuCiAgMi4gYXBwZW5kX2FkZF9kYl9oYXNoOgog ICAgICBBZGQgdGhlIHRydXN0ZWQgYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxpc3QuCiAgMy4gYXBw ZW5kX2FkZF9kYnhfaGFzaDoKICAgICAgQWRkIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlL2Jp bmFyeSBoYXNoIHRvIHRoZSBkYnggbGlzdC4KCk5vdGUgdGhhdCBpZiBzaWduYXR1cmUgdmVyaWZp Y2F0aW9uIChjaGVja19hcHBlbmRlZF9zaWduYXR1cmVzKSBpcyBzZXQgdG8geWVzLAp0aGUgYXBw ZW5kX2FkZF9kYl9oYXNoIGFuZCBhcHBlbmRfYWRkX2RieF9oYXNoIGNvbW1hbmRzIG9ubHkgYWNj ZXB0IHRoZSBmaWxlCuKAmGhhc2hfZmlsZeKAmSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVu ZGVkIHNpZ25hdHVyZS4KClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3VkaGFr YXJAbGludXguaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVy QG9yYWNsZS5jb20+Ci0tLQogZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVk c2lnLmMgfCAyODEgKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9ncnViL2ZpbGUuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogMiBmaWxlcyBjaGFuZ2VkLCAyODMgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBl bmRlZHNpZy5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMK aW5kZXggZDA0YWFmMWUyLi43ZjQ2NzYwMjIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5k cy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBl bmRlZHNpZy9hcHBlbmRlZHNpZy5jCkBAIC01Miw2ICs1Miw5IEBAIEdSVUJfTU9EX0xJQ0VOU0Ug KCJHUEx2MysiKTsKICNkZWZpbmUgU0hBMzg0X0hBU0hfU0laRSAgIDQ4CiAjZGVmaW5lIFNIQTUx Ml9IQVNIX1NJWkUgICA2NAogCisjZGVmaW5lIE9QVElPTl9CSU5BUllfSEFTSCAwCisjZGVmaW5l IE9QVElPTl9DRVJUX0hBU0ggICAxCisKIC8qCiAgKiBUaGlzIHN0cnVjdHVyZSBpcyBleHRyYWN0 ZWQgZnJvbSBzY3JpcHRzL3NpZ24tZmlsZS5jIGluIHRoZSBsaW51eCBrZXJuZWwKICAqIHNvdXJj ZS4gSXQgd2FzIGxpY2Vuc2VkIGFzIExHUEx2Mi4xKywgd2hpY2ggaXMgR1BMdjMrIGNvbXBhdGli bGUuCkBAIC0xMjYsNiArMTI5LDEzIEBAIHN0YXRpYyBncnViX3Brc190ICpwa3Nfa2V5c3RvcmU7 CiAvKiBBcHBlbmRlZCBzaWduYXR1cmUgc2l6ZS4gKi8KIHN0YXRpYyBncnViX3NpemVfdCBhcHBl bmRfc2lnX2xlbiA9IDA7CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ3J1Yl9hcmdfb3B0aW9uIG9w dGlvbnNbXSA9Cit7CisgIHsiYmluYXJ5LWhhc2giLCAnYicsIDAsIE5fKCJoYXNoIGZpbGUgb2Yg dGhlIGJpbmFyeS4iKSwgMCwgQVJHX1RZUEVfUEFUSE5BTUV9LAorICB7ImNlcnQtaGFzaCIsICdj JywgMSwgTl8oImhhc2ggZmlsZSBvZiB0aGUgY2VydGlmaWNhdGUuIiksIDAsIEFSR19UWVBFX1BB VEhOQU1FfSwKKyAgezAsIDAsIDAsIDAsIDAsIDB9Cit9OworCiBzdGF0aWMgZ3J1Yl9zc2l6ZV90 CiBwc2V1ZG9fcmVhZCAoc3RydWN0IGdydWJfZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBncnViX3Np emVfdCBsZW4pCiB7CkBAIC01NDYsNiArNTU2LDY5IEBAIHJlbW92ZV9jZXJ0X2Zyb21fZGIgKGNv bnN0IGdydWJfdWludDhfdCAqZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplKQogICBy ZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBib29sCitjZXJ0X2ZpbmdlcnByaW50X21hdGNoIChjb25z dCBncnViX3VpbnQ4X3QgKmhhc2hfZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgaGFzaF9kYXRhX3Np emUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0 KQoreworICBncnViX2ludDMyX3QgdHlwZTsKKworICBpZiAoaGFzaF9kYXRhX3NpemUgPT0gU0hB MjU2X0hBU0hfU0laRSkKKyAgICB0eXBlID0gR1JVQl9GSU5HRVJQUklOVF9TSEEyNTY7CisgIGVs c2UgaWYgKGhhc2hfZGF0YV9zaXplID09IFNIQTM4NF9IQVNIX1NJWkUpCisgICAgdHlwZSA9IEdS VUJfRklOR0VSUFJJTlRfU0hBMzg0OworICBlbHNlIGlmIChoYXNoX2RhdGFfc2l6ZSA9PSBTSEE1 MTJfSEFTSF9TSVpFKQorICAgIHR5cGUgPSBHUlVCX0ZJTkdFUlBSSU5UX1NIQTUxMjsKKyAgZWxz ZQorICAgIHsKKyAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgInVuc3VwcG9ydGVk IGZpbmdlcnByaW50IGhhc2ggdHlwZSAiCisgICAgICAgICAgICAgICAgICAgICIoJSIgUFJJdUdS VUJfU0laRSAiKSBcbiIsIGhhc2hfZGF0YV9zaXplKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAg ICB9CisKKyAgaWYgKGdydWJfbWVtY21wIChjZXJ0LT5maW5nZXJwcmludFt0eXBlXSwgaGFzaF9k YXRhLCBoYXNoX2RhdGFfc2l6ZSkgPT0gMCkKKyAgICByZXR1cm4gdHJ1ZTsKKworICByZXR1cm4g ZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCityZW1vdmVfaGFzaF9mcm9tX2RiIChjb25zdCBncnVi X3VpbnQ4X3QgKmhhc2hfZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgaGFzaF9kYXRhX3NpemUsCisg ICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIGJpbl9oYXNoKQoreworICBncnViX3VpbnQz Ml90IGk7CisgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisKKyAgaWYgKGJpbl9oYXNoID09IHRy dWUpCisgICAgeworICAgICAgZm9yIChpID0gMDsgaSA8IGRiLmhhc2hfZW50cmllczsgaSsrKQor ICAgICAgICB7CisgICAgICAgICAgaWYgKGRiLmhhc2hlc1tpXSA9PSBOVUxMKQorICAgICAgICAg ICAgY29udGludWU7CisKKyAgICAgICAgICBpZiAoZ3J1Yl9tZW1jbXAgKGRiLmhhc2hlc1tpXSwg aGFzaF9kYXRhLCBoYXNoX2RhdGFfc2l6ZSkgPT0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAicmVtb3ZlZCBkaXN0cnVzdGVkIGhh c2ggJTAyeCUwMnglMDJ4JTAyeC4uIGZyb20gdGhlIGRiIGxpc3RcbiIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGIuaGFzaGVzW2ldWzBdLCBkYi5oYXNoZXNbaV1bMV0sIGRiLmhhc2hl c1tpXVsyXSwgZGIuaGFzaGVzW2ldWzNdKTsKKyAgICAgICAgICAgICAgZ3J1Yl9mcmVlIChkYi5o YXNoZXNbaV0pOworICAgICAgICAgICAgICBkYi5oYXNoZXNbaV0gPSBOVUxMOworICAgICAgICAg ICAgICBkYi5oYXNoX3NpemVzW2ldID0gMDsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBmb3IgKGNlcnQg PSBkYi5jZXJ0czsgY2VydCAhPSBOVUxMOyBjZXJ0ID0gY2VydC0+bmV4dCkKKyAgICAgICAgewor ICAgICAgICAgIGlmIChjZXJ0X2ZpbmdlcnByaW50X21hdGNoIChoYXNoX2RhdGEsIGhhc2hfZGF0 YV9zaXplLCBjZXJ0KSA9PSB0cnVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBfcmVt b3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgfQorfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZmlsZV9yZWFk X3dob2xlIChncnViX2ZpbGVfdCBmaWxlLCBncnViX3VpbnQ4X3QgKipidWYsIGdydWJfc2l6ZV90 ICpsZW4pCiB7CkBAIC0xMDE0LDYgKzEwODcsMTk0IEBAIGdydWJfY21kX2xpc3RfZGIgKGdydWJf Y29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGludCBhcmdjIF9fYXR0cmli CiAgIHJldHVybiBHUlVCX0VSUl9OT05FOwogfQogCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9j bWRfbGlzdF9kYnggKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwK KyAgICAgICAgICAgICAgICAgICBpbnQgYXJnYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgY2hh ciAqKmFyZ3MgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIHN0cnVjdCB4NTA5X2NlcnRp ZmljYXRlICpjZXJ0OworICBncnViX3VpbnQzMl90IGksIGNlcnRfbnVtID0gMTsKKworICBpZiAo YXBwZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VS Ul9BQ0NFU1NfREVOSUVELAorICAgICAgICAgICAgICAgICAgICAgICAiYXBwZW5kX2xpc3RfZGJ4 IGNvbW1hbmQgaXMgdW5zdXBwb3J0ZWQgaW4gc3RhdGljIGtleSBtb2RlIik7CisKKyAgZm9yIChj ZXJ0ID0gZGJ4LmNlcnRzOyBjZXJ0ICE9IE5VTEw7IGNlcnQgPSBjZXJ0LT5uZXh0LCBjZXJ0X251 bSsrKQorICAgIHByaW50X2NlcnRpZmljYXRlIChjZXJ0LCBjZXJ0X251bSk7CisKKyAgZm9yIChp ID0gMDsgaSA8IGRieC5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZGJ4Lmhh c2hlc1tpXSAhPSBOVUxMKQorICAgICAgICB7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCJcbkNl cnRpZmljYXRlL0JpbmFyeSBoYXNoOiAldVxuIiwgaSArIDEpOworICAgICAgICAgIGdydWJfcHJp bnRmICgiICAgIEhhc2g6IHNoYSUiIFBSSXVHUlVCX1NJWkUgIlxuICAgICAgICAgIiwgZGJ4Lmhh c2hfc2l6ZXNbaV0gKiA4KTsKKyAgICAgICAgICBoZXhkdW1wX2NvbG9uIChkYnguaGFzaGVzW2ld LCBkYnguaGFzaF9zaXplc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgcmV0dXJuIEdSVUJf RVJSX05PTkU7Cit9CisKKy8qCisgKiBSZW1vdmUgdGhlIHRydXN0ZWQgYmluYXJ5IGhhc2ggZnJv bSB0aGUgZGJ4IGxpc3QgaWYgcHJlc2VudC4gQW5kIGFkZCB0aGVtIHRvCisgKiB0aGUgZGIgbGlz dCBpZiBpdCBpcyBub3QgYWxyZWFkeSBwcmVzZW50LgorICoKKyAqIE5vdGU6IFdoZW4gc2lnbmF0 dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRzIHRo ZQorICogYmluYXJ5IGhhc2ggZmlsZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVkIHNp Z25hdHVyZS4gVGhlIHNpZ25hdHVyZSBpcworICogdmVyaWZpZWQgYnkgdGhlIGFwcGVuZGVkc2ln IG1vZHVsZS4gSWYgdmVyaWZpY2F0aW9uIHN1Y2NlZWRzLCB0aGUgYmluYXJ5IGhhc2gKKyAqIGlz IGFkZGVkIHRvIHRoZSBkYiBsaXN0LiBPdGhlcndpc2UsIGFuIGVycm9yIGlzIHBvc3RlZCBhbmQg dGhlIGJpbmFyeSBoYXNoIGlzCisgKiBub3QgYWRkZWQuCisgKiBXaGVuIHNpZ25hdHVyZSB2ZXJp ZmljYXRpb24gaXMgZGlzYWJsZWQsIGl0IGFjY2VwdHMgdGhlIGJpbmFyeSBoYXNoIGZpbGUKKyAq IHdpdGhvdXQgYW4gYXBwZW5kZWQgc2lnbmF0dXJlIGFuZCBhZGRzIGl0IHRvIHRoZSBkYiBsaXN0 LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRkaW5nIG9mIHRoZSB0cnVzdGVkIGJpbmFy eSBoYXNoIHVzaW5nIHRoaXMgY29tbWFuZCBkb2VzCisgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVi b290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21kX2FkZF9kYl9oYXNoIChncnVi X2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXygodW51c2VkKSksIGludCBhcmdjLCBjaGFyKiph cmdzKQoreworICBncnViX2Vycl90IHJjOworICBncnViX2ZpbGVfdCBoYXNoX2ZpbGU7CisgIGdy dWJfdWludDhfdCAqaGFzaF9kYXRhID0gTlVMTDsKKyAgZ3J1Yl9zaXplX3QgaGFzaF9kYXRhX3Np emUgPSAwOworCisgIGlmIChhcHBlbmRfa2V5X21nbXQgPT0gZmFsc2UpCisgICAgcmV0dXJuIGdy dWJfZXJyb3IgKEdSVUJfRVJSX0FDQ0VTU19ERU5JRUQsCisgICAgICAgICAgICAgICAgICAgICAg ICJhcHBlbmRfYWRkX2RiX2hhc2ggY29tbWFuZCBpcyB1bnN1cHBvcnRlZCBpbiBzdGF0aWMga2V5 IG1vZGUiKTsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVC X0VSUl9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJhIHRydXN0ZWQgYmlu YXJ5IGhhc2ggZmlsZSBpcyBleHBlY3RlZCBpbiBiaW5hcnkgZm9ybWF0XG4iCisgICAgICAgICAg ICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2RiX2hhc2ggPEJJTkFSWSBIQVNI IEZJTEU+XG4iKTsKKworICBpZiAoIWdydWJfc3RybGVuIChhcmdzWzBdKSkKKyAgICByZXR1cm4g Z3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0ZJTEVOQU1FLCAibWlzc2luZyB0cnVzdGVkIGJpbmFy eSBoYXNoIGZpbGUiKTsKKworICBoYXNoX2ZpbGUgPSBncnViX2ZpbGVfb3BlbiAoYXJnc1swXSwg R1JVQl9GSUxFX1RZUEVfSEFTSF9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RFQ09NUFJFU1Mp OworICBpZiAoaGFzaF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJf RVJSX0ZJTEVfTk9UX0ZPVU5ELCAidW5hYmxlIHRvIG9wZW4gJXMgZmlsZSIsIGFyZ3NbMF0pOwor CisgIHJjID0gZmlsZV9yZWFkX3dob2xlIChoYXNoX2ZpbGUsICZoYXNoX2RhdGEsICZoYXNoX2Rh dGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoaGFzaF9maWxlKTsKKyAgaWYgKHJjICE9IEdS VUJfRVJSX05PTkUpCisgICAgcmV0dXJuIHJjOworCisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2 ZXJpZmljYXRpb24gaXMgZW5hYmxlZCAoY2hlY2tfc2lncyBpcyBzZXQgdG8gdHJ1ZSksIG9idGFp bgorICAgKiB0aGUgYWN0dWFsIGhhc2ggZGF0YSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBl bmRlZCBzaWduYXR1cmUgc2l6ZSBmcm9tCisgICAqIHRoZSBoYXNoIGRhdGEgc2l6ZSBiZWNhdXNl IHRoZSBoYXNoIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzCisgICAqIGFjdHVh bCBoYXNoIGRhdGEgc2l6ZSBpcyB1c2VkIHRvIGdldCB0aGUgaGFzaCBkYXRhLgorICAgKi8KKyAg aWYgKGNoZWNrX3NpZ3MgPT0gdHJ1ZSkKKyAgICBoYXNoX2RhdGFfc2l6ZSAtPSBhcHBlbmRfc2ln X2xlbjsKKworICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsCisgICAgICAgICAgICAgICAg ImFkZGluZyBhIHRydXN0ZWQgYmluYXJ5IGhhc2ggJTAyeCUwMnglMDJ4JTAyeC4uLiB3aXRoIHNp emUgb2YgJSIgUFJJdUdSVUJfU0laRSAiXG4iLAorICAgICAgICAgICAgICAgIGhhc2hfZGF0YVsw XSwgaGFzaF9kYXRhWzFdLCBoYXNoX2RhdGFbMl0sIGhhc2hfZGF0YVszXSwgaGFzaF9kYXRhX3Np emUpOworCisgIC8qIE9ubHkgYWNjZXB0IFNIQTI1NiwgU0hBMzg0IGFuZCBTSEE1MTIgYmluYXJ5 IGhhc2ggKi8KKyAgaWYgKGhhc2hfZGF0YV9zaXplICE9IFNIQTI1Nl9IQVNIX1NJWkUgJiYgaGFz aF9kYXRhX3NpemUgIT0gU0hBMzg0X0hBU0hfU0laRSAmJgorICAgICAgaGFzaF9kYXRhX3NpemUg IT0gU0hBNTEyX0hBU0hfU0laRSkKKyAgICB7CisgICAgICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7 CisgICAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVuYWNj ZXB0YWJsZSB0cnVzdGVkIGJpbmFyeSBoYXNoIHR5cGUiKTsKKyAgICB9CisKKyAgcmMgPSBhZGRf aGFzaCAoaGFzaF9kYXRhLCBoYXNoX2RhdGFfc2l6ZSwgJmRiKTsKKworICBncnViX2ZyZWUgKGhh c2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVz dGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGZyb20gdGhlIGRiIGxpc3QgaWYgcHJlc2VudC4K KyAqIEFuZCBhZGQgdGhlbSB0byB0aGUgZGJ4IGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJl c2VudC4KKyAqCisgKiBOb3RlOiBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxl ZCwgdGhpcyBjb21tYW5kIG9ubHkgYWNjZXB0cyB0aGUKKyAqIGJpbmFyeS9jZXJ0aWZpY2F0ZSBo YXNoIGZpbGUgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuIFRoZQor ICogc2lnbmF0dXJlIGlzIHZlcmlmaWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZl cmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBiaW5hcnkvY2VydGlmaWNhdGUgaGFzaCBpcyBh ZGRlZCB0byB0aGUgZGJ4IGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMKKyAqIHBvc3RlZCBh bmQgdGhlIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGlzIG5vdCBhZGRlZC4KKyAqIFdoZW4gc2ln bmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUgYmluYXJ5L2Nl cnRpZmljYXRlCisgKiBoYXNoIGZpbGUgd2l0aG91dCBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5k IGFkZHMgaXQgdG8gdGhlIGRieCBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRk aW5nIG9mIHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIHVzaW5nCisgKiB0 aGlzIGNvbW1hbmQgZG9lcyBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGlj IGdydWJfZXJyX3QKK2dydWJfY21kX2FkZF9kYnhfaGFzaCAoZ3J1Yl9leHRjbWRfY29udGV4dF90 IGN0eHQsIGludCBhcmdjIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgY2hhciAqKmFyZ3MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBncnVi X2Vycl90IHJjOworICBncnViX2ZpbGVfdCBoYXNoX2ZpbGU7CisgIGdydWJfdWludDhfdCAqaGFz aF9kYXRhID0gTlVMTDsKKyAgZ3J1Yl9zaXplX3QgaGFzaF9kYXRhX3NpemUgPSAwOworICBjaGFy ICpmaWxlX3BhdGg7CisKKyAgaWYgKGFwcGVuZF9rZXlfbWdtdCA9PSBmYWxzZSkKKyAgICByZXR1 cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQUNDRVNTX0RFTklFRCwKKyAgICAgICAgICAgICAgICAg ICAgICAgImFwcGVuZF9hZGRfZGJ4X2hhc2ggY29tbWFuZCBpcyB1bnN1cHBvcnRlZCBpbiBzdGF0 aWMga2V5IG1vZGUiKTsKKworICBpZiAoIWN0eHQtPnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0u c2V0ICYmICFjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNIXS5zZXQpCisgICAgcmV0dXJuIGdy dWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAg ImEgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCBmaWxlIGlzIGV4cGVjdGVkIGlu IGJpbmFyeSBmb3JtYXRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6XG5cdGFw cGVuZF9hZGRfZGJ4X2hhc2ggW29wdGlvbl0gPEZJTEU+XG4iCisgICAgICAgICAgICAgICAgICAg ICAgICJvcHRpb246XG5bLWJ8LS1iaW5hcnktaGFzaF0gRklMRSBbQklOQVJZIEhBU0ggRklMRV1c biIKKyAgICAgICAgICAgICAgICAgICAgICAgIlstY3wtLWNlcnQtaGFzaF0gRklMRSBbQ0VSVEZJ Q0FURSBIQVNIIEZJTEVdXG4iKTsKKworICBpZiAoY3R4dC0+c3RhdGVbT1BUSU9OX0JJTkFSWV9I QVNIXS5hcmcgPT0gTlVMTCAmJiBjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNIXS5hcmcgPT0g TlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0ZJTEVOQU1FLCAibWlz c2luZyBkaXN0cnVzdGVkIGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoIGZpbGUiKTsKKworICBpZiAo Y3R4dC0+c3RhdGVbT1BUSU9OX0JJTkFSWV9IQVNIXS5hcmcgIT0gTlVMTCkKKyAgICBmaWxlX3Bh dGggPSBjdHh0LT5zdGF0ZVtPUFRJT05fQklOQVJZX0hBU0hdLmFyZzsKKyAgZWxzZQorICAgIGZp bGVfcGF0aCA9IGN0eHQtPnN0YXRlW09QVElPTl9DRVJUX0hBU0hdLmFyZzsKKworICBoYXNoX2Zp bGUgPSBncnViX2ZpbGVfb3BlbiAoZmlsZV9wYXRoLCBHUlVCX0ZJTEVfVFlQRV9IQVNIX1RSVVNU IHwgR1JVQl9GSUxFX1RZUEVfTk9fREVDT01QUkVTUyk7CisgIGlmIChoYXNoX2ZpbGUgPT0gTlVM TCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfRklMRV9OT1RfRk9VTkQsICJ1bmFi bGUgdG8gb3BlbiAlcyBmaWxlIiwgZmlsZV9wYXRoKTsKKworICByYyA9IGZpbGVfcmVhZF93aG9s ZSAoaGFzaF9maWxlLCAmaGFzaF9kYXRhLCAmaGFzaF9kYXRhX3NpemUpOworICBncnViX2ZpbGVf Y2xvc2UgKGhhc2hfZmlsZSk7CisgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVy biByYzsKKworICAvKgorICAgKiBJZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQg KGNoZWNrX3NpZ3MgaXMgc2V0IHRvIHRydWUpLCBvYnRhaW4KKyAgICogdGhlIGFjdHVhbCBoYXNo IGRhdGEgc2l6ZSBieSBzdWJ0cmFjdGluZyB0aGUgYXBwZW5kZWQgc2lnbmF0dXJlIHNpemUgZnJv bQorICAgKiB0aGUgaGFzaCBkYXRhIHNpemUgYmVjYXVzZSB0aGUgaGFzaCBoYXMgYW4gYXBwZW5k ZWQgc2lnbmF0dXJlLCBhbmQgdGhpcworICAgKiBhY3R1YWwgaGFzaCBkYXRhIHNpemUgaXMgdXNl ZCB0byBnZXQgdGhlIGhhc2ggZGF0YS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUp CisgICAgaGFzaF9kYXRhX3NpemUgLT0gYXBwZW5kX3NpZ19sZW47CisKKyAgZ3J1Yl9kcHJpbnRm ICgiYXBwZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICJhZGRpbmcgYSBkaXN0cnVzdGVkIGNl cnRpZmljYXRlL2JpbmFyeSBoYXNoICUwMnglMDJ4JTAyeCUwMnguLi4iCisgICAgICAgICAgICAg ICAgIiB3aXRoIHNpemUgb2YgJSIgUFJJdUdSVUJfU0laRSAiXG4iLCBoYXNoX2RhdGFbMF0sIGhh c2hfZGF0YVsxXSwKKyAgICAgICAgICAgICAgICBoYXNoX2RhdGFbMl0sIGhhc2hfZGF0YVszXSwg aGFzaF9kYXRhX3NpemUpOworCisgIGlmIChjdHh0LT5zdGF0ZVtPUFRJT05fQklOQVJZX0hBU0hd LnNldCB8fCBjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNIXS5zZXQpCisgICAgeworICAgICAg LyogT25seSBhY2NlcHQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUxMiBjZXJ0aWZpY2F0ZS9iaW5h cnkgaGFzaCAqLworICAgICAgaWYgKGhhc2hfZGF0YV9zaXplICE9IFNIQTI1Nl9IQVNIX1NJWkUg JiYgaGFzaF9kYXRhX3NpemUgIT0gU0hBMzg0X0hBU0hfU0laRSAmJgorICAgICAgICAgIGhhc2hf ZGF0YV9zaXplICE9IFNIQTUxMl9IQVNIX1NJWkUpCisgICAgICAgIHsKKyAgICAgICAgICBncnVi X2ZyZWUgKGhhc2hfZGF0YSk7CisgICAgICAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJS X0JBRF9TSUdOQVRVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFjY2VwdGFi bGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0eXBlIik7CisgICAgICAgIH0K KyAgICB9CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgYmluYXJ5IGhhc2gvY2VydGlmaWNhdGUg ZnJvbSB0aGUgZGIgbGlzdCBpZiBwcmVzZW50LiAqLworICByZW1vdmVfaGFzaF9mcm9tX2RiICho YXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAoKGN0eHQt PnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0uc2V0KSA/IHRydWUgOiBmYWxzZSkpOworICByYyA9 IGFkZF9oYXNoIChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplLCAmZGJ4KTsKKworICBncnViX2Zy ZWUgKGhhc2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQorCiAvKiBBZGQgdGhlIFguNTA5IGNl cnRpZmljYXRlcy9iaW5hcnkgaGFzaCB0byB0aGUgZGIgbGlzdCBmcm9tIFBLUy4gKi8KIHN0YXRp YyBncnViX2Vycl90CiBsb2FkX3BrczJkYiAodm9pZCkKQEAgLTEyOTcsNiArMTU1OCwxMSBAQCBh cHBlbmRlZHNpZ19pbml0IChncnViX2ZpbGVfdCBpbyBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSks IGVudW0gZ3J1Yl9maWxlX3R5cGUgdAogICAgICAgICAgKiB2ZXJpZmllciwgYnV0IHdlIGxhY2sg dGhlIGh1YnJpcyByZXF1aXJlZCB0byB0YWtlIHRoaXMgb24uIEluc3RlYWQsCiAgICAgICAgICAq IHJlcXVpcmUgdGhhdCBpdCBoYXZlIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4KICAgICAgICAgICov CisgICAgICBjYXNlIEdSVUJfRklMRV9UWVBFX0hBU0hfVFJVU1Q6CisgICAgICAgIC8qCisgICAg ICAgICAqIFRoaXMgaXMgYSBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0byBhZGQgdG8gZGIvZGJ4 LiBUaGlzIG5lZWRzIHRvIGJlCisgICAgICAgICAqIHZlcmlmaWVkIG9yIGJsb2NrZWQuCisgICAg ICAgICAqLwogICAgICAgY2FzZSBHUlVCX0ZJTEVfVFlQRV9MSU5VWF9LRVJORUw6CiAgICAgICBj YXNlIEdSVUJfRklMRV9UWVBFX0dSVUJfTU9EVUxFOgogICAgICAgICAvKgpAQCAtMTMzOCw2ICsx NjA0LDggQEAgc3RydWN0IGdydWJfZmlsZV92ZXJpZmllciBncnViX2FwcGVuZGVkc2lnX3Zlcmlm aWVyID0gewogfTsKIAogc3RhdGljIGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0 X2RiLCBjbWRfZGJ4X2NlcnQsIGNtZF9kYl9jZXJ0Oworc3RhdGljIGdydWJfY29tbWFuZF90IGNt ZF9saXN0X2RieCwgY21kX2RiX2hhc2g7CitzdGF0aWMgZ3J1Yl9leHRjbWRfdCBjbWRfZGJ4X2hh c2g7CiAKIEdSVUJfTU9EX0lOSVQgKGFwcGVuZGVkc2lnKQogewpAQCAtMTQxNyw2ICsxNjg1LDE2 IEBAIEdSVUJfTU9EX0lOSVQgKGFwcGVuZGVkc2lnKQogICBjbWRfZGJ4X2NlcnQgPSBncnViX3Jl Z2lzdGVyX2NvbW1hbmQgKCJhcHBlbmRfYWRkX2RieF9jZXJ0IiwgZ3J1Yl9jbWRfZGJ4X2NlcnQs IE5fKCI8WDUwOV9DRVJUSUZJQ0FURT4iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOXygiQWRkIGRpc3RydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSB0byB0aGUgZGJ4 IGxpc3QiKSk7CiAKKyAgY21kX2xpc3RfZGJ4ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBw ZW5kX2xpc3RfZGJ4IiwgZ3J1Yl9jbWRfbGlzdF9kYngsIDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTl8oIlNob3cgdGhlIGxpc3Qgb2YgZGlzdHJ1c3RlZCBjZXJ0 aWZpY2F0ZXMgYW5kIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg Y2VydGlmaWNhdGUvYmluYXJ5IGhhc2hlcyBmcm9tIHRoZSBkYnggbGlzdCIpKTsKKyAgY21kX2Ri X2hhc2ggPSBncnViX3JlZ2lzdGVyX2NvbW1hbmQgKCJhcHBlbmRfYWRkX2RiX2hhc2giLCBncnVi X2NtZF9hZGRfZGJfaGFzaCwgTl8oIkJJTkFSWSBIQVNIIEZJTEUiKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJBZGQgdHJ1c3RlZCBCSU5BUlkgSEFTSCB0byB0 aGUgZGIgbGlzdC4iKSk7CisgIGNtZF9kYnhfaGFzaCA9IGdydWJfcmVnaXN0ZXJfZXh0Y21kICgi YXBwZW5kX2FkZF9kYnhfaGFzaCIsIGdydWJfY21kX2FkZF9kYnhfaGFzaCwgMCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJbLWJ8LS1iaW5hcnktaGFzaF0gRklM RSBbQklOQVJZIEhBU0ggRklMRV1cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJbLWN8LS1jZXJ0LWhhc2hdIEZJTEUgW0NFUlRGSUNBVEUgSEFTSCBGSUxFXSIpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVk IENFUlRGSUNBVEUvQklOQVJZIEhBU0ggdG8gdGhlIGRieCBsaXN0LiIpLCBvcHRpb25zKTsKKwog ICBncnViX3ZlcmlmaWVyX3JlZ2lzdGVyICgmZ3J1Yl9hcHBlbmRlZHNpZ192ZXJpZmllcik7CiAg IGdydWJfZGxfc2V0X3BlcnNpc3RlbnQgKG1vZCk7CiB9CkBAIC0xNDM5LDQgKzE3MTcsNyBAQCBH UlVCX01PRF9GSU5JIChhcHBlbmRlZHNpZykKICAgZ3J1Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNt ZF9saXN0X2RiKTsKICAgZ3J1Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNtZF9kYl9jZXJ0KTsKICAg Z3J1Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNtZF9kYnhfY2VydCk7CisgIGdydWJfdW5yZWdpc3Rl cl9jb21tYW5kIChjbWRfbGlzdF9kYngpOworICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21k X2RiX2hhc2gpOworICBncnViX3VucmVnaXN0ZXJfZXh0Y21kIChjbWRfZGJ4X2hhc2gpOwogfQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2ZpbGUuaCBiL2luY2x1ZGUvZ3J1Yi9maWxlLmgKaW5k ZXggZDY3OGRlMDYzLi4xNmE0YjdkMjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ3J1Yi9maWxlLmgK KysrIGIvaW5jbHVkZS9ncnViL2ZpbGUuaApAQCAtMTE1LDYgKzExNSw4IEBAIGVudW0gZ3J1Yl9m aWxlX3R5cGUKICAgICBHUlVCX0ZJTEVfVFlQRV9IQVNITElTVCwKICAgICAvKiBGaWxlIGhhc2hl ZCBieSBoYXNoc3VtLiAgKi8KICAgICBHUlVCX0ZJTEVfVFlQRV9UT19IQVNILAorICAgIC8qIEZp bGUgaG9sZGluZyBjZXJ0aWZpY2lhdGUvYmluYXJ5IGhhc2ggdG8gYWRkIHRvIGRiL2RieC4gKi8K KyAgICBHUlVCX0ZJTEVfVFlQRV9IQVNIX1RSVVNULAogICAgIC8qIEtleWJvYXJkIGxheW91dC4g ICovCiAgICAgR1JVQl9GSUxFX1RZUEVfS0VZQk9BUkRfTEFZT1VULAogICAgIC8qIFBpY3R1cmUg ZmlsZS4gICovCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1 Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dy dWItZGV2ZWwK