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 05483CAC597 for ; Mon, 15 Sep 2025 11:07:28 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uy71E-0005kO-DS; Mon, 15 Sep 2025 07:05:15 -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 1uy714-0005aj-6v for grub-devel@gnu.org; Mon, 15 Sep 2025 07:05:03 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uy70n-0004ra-M5 for grub-devel@gnu.org; Mon, 15 Sep 2025 07:04:59 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58F9Ge2K020644; Mon, 15 Sep 2025 11:04:35 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=cTY3m+ d9zRD0HXydPhdaPXphNcw8YA1nROCF0R1Lug8=; b=c8K3HUp8LtNgaqlyjYaYyq L1HNeZtXV0ItKsfuVgI4kUQplIz6GHZIs9O6LwIgypJ6tNWYthkL19fcas/L0dFu ubXZV5qbUOKzWHCf1zshVBTfdanQEN8tEeDDwBxP+xq1tCNadxkazOMNAkFndqlq HByMYA+i8PHhizjb6vKt6y7BIMkt3CBTGA8Vy0cXvXay2ZWXf0hghKYjus3DDUmJ gNu1DTFuwfdSIaBYh32zGle71Itav/0pebe0B8brzspo7mJwrETmdlqLeqfl9OzR aOgsg13M2mJjeXGC+rn721tfpyxdfYfj0InCRhRiBLc5hJSxfHnVKOROsNHMi4Mw == Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 494x1t9rx5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 11:04:35 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58FAP6TF005963; Mon, 15 Sep 2025 11:04:34 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 495jxtx879-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 11:04:34 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58FB4VCd51380616 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Sep 2025 11:04:31 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0D10420043; Mon, 15 Sep 2025 11:04:31 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BEA1A20040; Mon, 15 Sep 2025 11:04:27 +0000 (GMT) Received: from localhost.localdomain (unknown [9.79.204.18]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 15 Sep 2025 11:04:27 +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 Subject: [PATCH v11 18/22] appended signatures: GRUB commands to manage the hashes Date: Mon, 15 Sep 2025 16:31:25 +0530 Message-Id: <20250915110129.20898-19-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250915110129.20898-1-sudhakar@linux.ibm.com> References: <20250915110129.20898-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=OMsn3TaB c=1 sm=1 tr=0 ts=68c7f2c3 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=VnNF1IyMAAAA:8 a=ZtZmgdVXZQadKTyr0nIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: ViPakzTo9Gvtnn1K91tSDT1q_QWeKIVf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTEzMDAwMSBTYWx0ZWRfX8cohcrmwrK7l +M4iJdHPLj2lyxDg+vdsVB1qvPUb1x4bzpIrY1aItKZl01lc0SWdLnFVp1jVGL3+UZz9x+T36pE Ajrfwu/344hHJT/j17Sn4xXHRSsi3YjmAqL74Ef/BqOqXzYEWwZXGokKq2a9NZxEbSH9qcGFUlj W80LWGiHDhmRw2RmcflNxVcx5Io+XC/oZjwFBPguRaMizf7S8e24IDKdaJckpu7ps0+bBH0z2Jy Ue9s2tqRzyv5XQnJYQYb8b5nPK7wdn/gKrUwMJthwJu1l+gFpijao5kJGpV/CEIjT3eO7VHrfBa v6rnHFB0/pxrzW2xl8JnPsS6Ejl3nIuGTJu7F3IvuoRDAwrPFdhOObIVa2leifg6b9P4I4msMGY KwSwvgNL X-Proofpoint-GUID: ViPakzTo9Gvtnn1K91tSDT1q_QWeKIVf 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-15_04,2025-09-12_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 spamscore=0 priorityscore=1501 adultscore=0 impostorscore=0 clxscore=1015 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509130001 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-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.01, RCVD_IN_MSPIKE_WL=-0.01, 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 Y2F0aW9uIChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAp0aGUg YXBwZW5kX2FkZF9kYl9oYXNoIGFuZCBhcHBlbmRfYWRkX2RieF9oYXNoIGNvbW1hbmRzIG9ubHkg YWNjZXB0IHRoZQpmaWxlIOKAmGhhc2hfZmlsZeKAmSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFw cGVuZGVkIHNpZ25hdHVyZS4KClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3Vk aGFrYXJAbGludXguaWJtLmNvbT4KLS0tCiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcv YXBwZW5kZWRzaWcuYyB8IDI3NiArKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2dydWIvZmls ZS5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAyIGZpbGVzIGNoYW5nZWQsIDI3 OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVk c2lnL2FwcGVuZGVkc2lnLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5k ZWRzaWcuYwppbmRleCA0NTA3NTk5MWUuLmM1MjNhN2FjYiAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3Jl L2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1h bmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKQEAgLTUyLDYgKzUyLDkgQEAgR1JVQl9NT0Rf TElDRU5TRSAoIkdQTHYzKyIpOwogI2RlZmluZSBTSEEzODRfSEFTSF9MRU4gICAgNDgKICNkZWZp bmUgU0hBNTEyX0hBU0hfTEVOICAgIDY0CiAKKyNkZWZpbmUgT1BUSU9OX0JJTkFSWV9IQVNIIDAK KyNkZWZpbmUgT1BUSU9OX0NFUlRfSEFTSCAgIDEKKwogLyoKICAqIFRoaXMgc3RydWN0dXJlIGlz IGV4dHJhY3RlZCBmcm9tIHNjcmlwdHMvc2lnbi1maWxlLmMgaW4gdGhlIGxpbnV4IGtlcm5lbAog ICogc291cmNlLiBJdCB3YXMgbGljZW5zZWQgYXMgTEdQTHYyLjErLCB3aGljaCBpcyBHUEx2Mysg Y29tcGF0aWJsZS4KQEAgLTEyNSw2ICsxMjgsMTMgQEAgc3RhdGljIGdydWJfcGtzX3QgKnBrc19r ZXlzdG9yZTsKIC8qIEFwcGVuZGVkIHNpZ25hdHVyZSBzaXplLiAqLwogc3RhdGljIGdydWJfc2l6 ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBncnViX2FyZ19v cHRpb24gb3B0aW9uc1tdID0KK3sKKyAgeyJiaW5hcnktaGFzaCIsICdiJywgMCwgTl8oImhhc2gg ZmlsZSBvZiB0aGUgYmluYXJ5LiIpLCAwLCBBUkdfVFlQRV9QQVRITkFNRX0sCisgIHsiY2VydC1o YXNoIiwgJ2MnLCAxLCBOXygiaGFzaCBmaWxlIG9mIHRoZSBjZXJ0aWZpY2F0ZS4iKSwgMCwgQVJH X1RZUEVfUEFUSE5BTUV9LAorICB7MCwgMCwgMCwgMCwgMCwgMH0KK307CisKIHN0YXRpYyBncnVi X3NzaXplX3QKIHBzZXVkb19yZWFkIChzdHJ1Y3QgZ3J1Yl9maWxlICpmaWxlLCBjaGFyICpidWYs IGdydWJfc2l6ZV90IGxlbikKIHsKQEAgLTU0Niw2ICs1NTYsNjkgQEAgcmVtb3ZlX2NlcnRfZnJv bV9kYiAoY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3Np emUpCiAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGJvb2wKK2NlcnRfZmluZ2VycHJpbnRfbWF0 Y2ggKGNvbnN0IGdydWJfdWludDhfdCAqaGFzaF9kYXRhLCBjb25zdCBncnViX3NpemVfdCBoYXNo X2RhdGFfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdydWJfeDUwOV9jZXJ0 X3QgKmNlcnQpCit7CisgIGdydWJfaW50MzJfdCB0eXBlOworCisgIGlmIChoYXNoX2RhdGFfc2l6 ZSA9PSBTSEEyNTZfSEFTSF9MRU4pCisgICAgdHlwZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBMjU2 OworICBlbHNlIGlmIChoYXNoX2RhdGFfc2l6ZSA9PSBTSEEzODRfSEFTSF9MRU4pCisgICAgdHlw ZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBMzg0OworICBlbHNlIGlmIChoYXNoX2RhdGFfc2l6ZSA9 PSBTSEE1MTJfSEFTSF9MRU4pCisgICAgdHlwZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBNTEyOwor ICBlbHNlCisgICAgeworICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBw b3J0ZWQgZmluZ2VycHJpbnQgaGFzaCB0eXBlICIKKyAgICAgICAgICAgICAgICAgICAgIiglIiBQ Ukl1R1JVQl9TSVpFICIpIFxuIiwgaGFzaF9kYXRhX3NpemUpOworICAgICAgcmV0dXJuIGZhbHNl OworICAgIH0KKworICBpZiAoZ3J1Yl9tZW1jbXAgKGNlcnQtPmZpbmdlcnByaW50W3R5cGVdLCBo YXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKSA9PSAwKQorICAgIHJldHVybiB0cnVlOworCisgIHJl dHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQKK3JlbW92ZV9oYXNoX2Zyb21fZGIgKGNvbnN0 IGdydWJfdWludDhfdCAqaGFzaF9kYXRhLCBjb25zdCBncnViX3NpemVfdCBoYXNoX2RhdGFfc2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgYmluX2hhc2gpCit7CisgIGdydWJf dWludDMyX3QgaTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydDsKKworICBpZiAoYmluX2hhc2gg PT0gdHJ1ZSkKKyAgICB7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZGIuaGFzaF9lbnRyaWVzOyBp KyspCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoZGIuaGFzaGVzW2ldID09IE5VTEwpCisgICAg ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIGlmIChncnViX21lbWNtcCAoZGIuaGFzaGVz W2ldLCBoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKSA9PSAwKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJyZW1vdmVkIGRpc3RydXN0 ZWQgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4gZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYi5oYXNoZXNbaV1bMF0sIGRiLmhhc2hlc1tpXVsxXSwgZGIu aGFzaGVzW2ldWzJdLCBkYi5oYXNoZXNbaV1bM10pOworICAgICAgICAgICAgICBncnViX2ZyZWUg KGRiLmhhc2hlc1tpXSk7CisgICAgICAgICAgICAgIGRiLmhhc2hlc1tpXSA9IE5VTEw7CisgICAg ICAgICAgICAgIGRiLmhhc2hfc2l6ZXNbaV0gPSAwOworICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGZvciAo Y2VydCA9IGRiLmNlcnRzOyBjZXJ0ICE9IE5VTEw7IGNlcnQgPSBjZXJ0LT5uZXh0KQorICAgICAg ICB7CisgICAgICAgICAgaWYgKGNlcnRfZmluZ2VycHJpbnRfbWF0Y2ggKGhhc2hfZGF0YSwgaGFz aF9kYXRhX3NpemUsIGNlcnQpID09IHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IF9yZW1vdmVfY2VydF9mcm9tX2RiIChjZXJ0KTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIHN0YXRpYyBncnViX2Vycl90CiBmaWxl X3JlYWRfd2hvbGUgKGdydWJfZmlsZV90IGZpbGUsIGdydWJfdWludDhfdCAqKmJ1ZiwgZ3J1Yl9z aXplX3QgKmxlbikKIHsKQEAgLTEwMjAsNiArMTA5MywxOTQgQEAgZ3J1Yl9jbWRfbGlzdF9kYiAo Z3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MgX19h dHRyaWIKICAgcmV0dXJuIEdSVUJfRVJSX05PTkU7CiB9CiAKK3N0YXRpYyBncnViX2Vycl90Citn cnViX2NtZF9saXN0X2RieCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18oKHVudXNl ZCkpLAorICAgICAgICAgICAgICAgICAgIGludCBhcmdjIF9fYXR0cmlidXRlX18oKHVudXNlZCkp LCBjaGFyICoqYXJncyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKK3sKKyAgc3RydWN0IHg1MDlf Y2VydGlmaWNhdGUgKmNlcnQ7CisgIGdydWJfdWludDMyX3QgaSwgY2VydF9udW0gPSAxOworCisg IGlmIChhcHBlbmRfa2V5X21nbXQgPT0gZmFsc2UpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdS VUJfRVJSX0FDQ0VTU19ERU5JRUQsCisgICAgICAgICAgICAgICAgICAgICAgICJhcHBlbmRfbGlz dF9kYnggY29tbWFuZCBpcyB1bnN1cHBvcnRlZCBpbiBzdGF0aWMga2V5IG1vZGUiKTsKKworICBm b3IgKGNlcnQgPSBkYnguY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNl cnRfbnVtKyspCisgICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBm b3IgKGkgPSAwOyBpIDwgZGJ4Lmhhc2hfZW50cmllczsgaSsrKQorICAgIHsKKyAgICAgIGlmIChk YnguaGFzaGVzW2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAo IlxuQ2VydGlmaWNhdGUvQmluYXJ5IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1 Yl9wcmludGYgKCIgICAgSGFzaDogc2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBk YnguaGFzaF9zaXplc1tpXSAqIDgpOworICAgICAgICAgIGhleGR1bXBfY29sb24gKGRieC5oYXNo ZXNbaV0sIGRieC5oYXNoX3NpemVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4g R1JVQl9FUlJfTk9ORTsKK30KKworLyoKKyAqIFJlbW92ZSB0aGUgdHJ1c3RlZCBiaW5hcnkgaGFz aCBmcm9tIHRoZSBkYnggbGlzdCBpZiBwcmVzZW50LgorICogQW5kIGFkZCB0aGVtIHRvIHRoZSBk YiBsaXN0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByZXNlbnQuCisgKiBOb3RlOi0gV2hlbiBzaWdu YXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY29tbWFuZCBvbmx5IGFjY2VwdHMK KyAqIHRoZSBiaW5hcnkgaGFzaCBmaWxlIHRoYXQgaXMgc2lnbmVkIHdpdGggYW4gYXBwZW5kZWQg c2lnbmF0dXJlLgorICogVGhlIHNpZ25hdHVyZSBpcyB2ZXJpZmllZCBieSB0aGUgYXBwZW5kZWRz aWcgbW9kdWxlLiBJZiB2ZXJpZmljYXRpb24gc3VjY2VlZHMsCisgKiB0aGUgYmluYXJ5IGhhc2gg aXMgYWRkZWQgdG8gdGhlIGRiIGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFu ZAorICogdGhlIGJpbmFyeSBoYXNoIGlzIG5vdCBhZGRlZC4KKyAqIFdoZW4gc2lnbmF0dXJlIHZl cmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUgYmluYXJ5IGhhc2ggZmlsZSB3 aXRob3V0CisgKiBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5kIGFkZHMgaXQgdG8gdGhlIGRiIGxp c3QuCisgKgorICogQWxzbywgbm90ZSB0aGF0IHRoZSBhZGRpbmcgb2YgdGhlIHRydXN0ZWQgYmlu YXJ5IGhhc2ggdXNpbmcgdGhpcyBjb21tYW5kIGRvZXMKKyAqIG5vdCBwZXJzaXN0IGFjcm9zcyBy ZWJvb3RzLgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfZGJfaGFzaCAoZ3J1Yl9j b21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBpbnQgYXJnYywgY2hhcioqYXJn cykKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl9maWxlX3QgaGFzaF9maWxlOworICBncnVi X3VpbnQ4X3QgKmhhc2hfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGhhc2hfZGF0YV9zaXpl ID0gMDsKKworICBpZiAoYXBwZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9BQ0NFU1NfREVOSUVELAorICAgICAgICAgICAgICAgICAgICAgICAi YXBwZW5kX2FkZF9kYl9oYXNoIGNvbW1hbmQgaXMgdW5zdXBwb3J0ZWQgaW4gc3RhdGljIGtleSBt b2RlIik7CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQkFEX0FSR1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAiYSB0cnVzdGVkIGJpbmFy eSBoYXNoIGZpbGUgaXMgZXhwZWN0ZWQgaW4gQmluYXJ5IGZvcm1hdCAoLmJpbilcbiIKKyAgICAg ICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6XG5cdGFwcGVuZF9hZGRfZGJfaGFzaCA8QklOQVJZ IEhBU0ggRklMRT5cbiIpOworCisgIGlmICghZ3J1Yl9zdHJsZW4gKGFyZ3NbMF0pKQorICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUsICJtaXNzaW5nIHRydXN0ZWQg YmluYXJ5IGhhc2ggZmlsZSIpOworCisgIGhhc2hfZmlsZSA9IGdydWJfZmlsZV9vcGVuIChhcmdz WzBdLCBHUlVCX0ZJTEVfVFlQRV9IQVNIX1RSVVNUIHwgR1JVQl9GSUxFX1RZUEVfTk9fREVDT01Q UkVTUyk7CisgIGlmIChoYXNoX2ZpbGUgPT0gTlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfRklMRV9OT1RfRk9VTkQsICJ1bmFibGUgdG8gb3BlbiAlcyBmaWxlIiwgYXJnc1sw XSk7CisKKyAgcmMgPSBmaWxlX3JlYWRfd2hvbGUgKGhhc2hfZmlsZSwgJmhhc2hfZGF0YSwgJmhh c2hfZGF0YV9zaXplKTsKKyAgZ3J1Yl9maWxlX2Nsb3NlIChoYXNoX2ZpbGUpOworICBpZiAocmMg IT0gR1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gcmM7CisKKyAgLyoKKyAgICogSWYgc2lnbmF0 dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVhbCBoYXNo IGRhdGEgc2l6ZSBieSBzdWJ0cmFjdGluZyB0aGUgYXBwZW5kZWQKKyAgICogc2lnbmF0dXJlIHNp emUgZnJvbSB0aGUgaGFzaCBkYXRhIHNpemUgYmVjYXVzZQorICAgKiB0aGUgaGFzaCBoYXMgYW4g YXBwZW5kZWQgc2lnbmF0dXJlLCBhbmQgdGhpcyBhY3R1YWwgaGFzaCBkYXRhIHNpemUgaXMKKyAg ICogdXNlZCB0byBnZXQgdGhlIGhhc2ggZGF0YS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09 IHRydWUpCisgICAgaGFzaF9kYXRhX3NpemUgLT0gYXBwZW5kX3NpZ19sZW47CisKKyAgZ3J1Yl9k cHJpbnRmICgiYXBwZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICJhZGRpbmcgYSB0cnVzdGVk IGJpbmFyeSBoYXNoICUwMnglMDJ4JTAyeCUwMnguLi5cbiB3aXRoIHNpemUgb2YgJSIgUFJJdUdS VUJfU0laRSAiXG4iLAorICAgICAgICAgICAgICAgIGhhc2hfZGF0YVswXSwgaGFzaF9kYXRhWzFd LCBoYXNoX2RhdGFbMl0sIGhhc2hfZGF0YVszXSwgaGFzaF9kYXRhX3NpemUpOworCisgIC8qIE9u bHkgYWNjZXB0IFNIQTI1NiwgU0hBMzg0IGFuZCBTSEE1MTIgYmluYXJ5IGhhc2ggKi8KKyAgaWYg KGhhc2hfZGF0YV9zaXplICE9IFNIQTI1Nl9IQVNIX0xFTiAmJiBoYXNoX2RhdGFfc2l6ZSAhPSBT SEEzODRfSEFTSF9MRU4gJiYKKyAgICAgIGhhc2hfZGF0YV9zaXplICE9IFNIQTUxMl9IQVNIX0xF TikKKyAgICB7CisgICAgICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisgICAgICByZXR1cm4gZ3J1 Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVuYWNjZXB0YWJsZSB0cnVzdGVkIGJp bmFyeSBoYXNoIHR5cGUiKTsKKyAgICB9CisKKyAgcmMgPSBhZGRfaGFzaCAoaGFzaF9kYXRhLCBo YXNoX2RhdGFfc2l6ZSwgJmRiKTsKKworICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisKKyAgcmV0 dXJuIHJjOworfQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZp Y2F0ZSBoYXNoIGZyb20gdGhlIGRiIGxpc3QgaWYgcHJlc2VudC4KKyAqIEFuZCBhZGQgdGhlbSB0 byB0aGUgZGJ4IGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4KKyAqIE5vdGU6LSBX aGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBjb21tYW5kIG9ubHkg YWNjZXB0cworICogdGhlIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGZpbGUgdGhhdCBpcyBzaWdu ZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZlcmlm aWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywK KyAqIHRoZSBiaW5hcnkvY2VydGlmaWNhdGUgaGFzaCBpcyBhZGRlZCB0byB0aGUgZGJ4IGxpc3Qu IE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFuZAorICogdGhlIGJpbmFyeS9jZXJ0aWZp Y2F0ZSBoYXNoIGlzIG5vdCBhZGRlZC4KKyAqIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBp cyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUgYmluYXJ5L2NlcnRpZmljYXRlIGhhc2ggZmlsZSB3 aXRob3V0CisgKiBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5kIGFkZHMgaXQgdG8gdGhlIGRieCBs aXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRkaW5nIG9mIHRoZSBkaXN0cnVzdGVk IGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIHVzaW5nIHRoaXMgY29tbWFuZCBkb2VzCisgKiBub3Qg cGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21k X2RieF9oYXNoIChncnViX2V4dGNtZF9jb250ZXh0X3QgY3R4dCwgaW50IGFyZ2MgX19hdHRyaWJ1 dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgIGNoYXIgKiphcmdzIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl9maWxlX3QgaGFz aF9maWxlOworICBncnViX3VpbnQ4X3QgKmhhc2hfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90 IGhhc2hfZGF0YV9zaXplID0gMDsKKyAgY2hhciAqZmlsZV9wYXRoOworCisgIGlmIChhcHBlbmRf a2V5X21nbXQgPT0gZmFsc2UpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0FDQ0VT U19ERU5JRUQsCisgICAgICAgICAgICAgICAgICAgICAgICJhcHBlbmRfYWRkX2RieF9oYXNoIGNv bW1hbmQgaXMgdW5zdXBwb3J0ZWQgaW4gc3RhdGljIGtleSBtb2RlIik7CisKKyAgaWYgKCFjdHh0 LT5zdGF0ZVtPUFRJT05fQklOQVJZX0hBU0hdLnNldCAmJiAhY3R4dC0+c3RhdGVbT1BUSU9OX0NF UlRfSEFTSF0uc2V0KQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1F TlQsCisgICAgICAgICAgICAgICAgICAgICAgICJhIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUvYmlu YXJ5IGhhc2ggZmlsZSBpcyBleHBlY3RlZCBpbiBCaW5hcnkgZm9ybWF0ICguYmluKVxuIgorICAg ICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX2FkZF9kYnhfaGFzaCBbb3B0 aW9uXSA8RklMRT5cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbjpcblstYnwtLWJp bmFyeS1oYXNoXSBGSUxFIFtCSU5BUlkgSEFTSCBGSUxFXVxuIgorICAgICAgICAgICAgICAgICAg ICAgICAiWy1jfC0tY2VydC1oYXNoXSBGSUxFIFtDRVJURklDQVRFIEhBU0ggRklMRV1cbiIpOwor CisgIGlmIChjdHh0LT5zdGF0ZVtPUFRJT05fQklOQVJZX0hBU0hdLmFyZyA9PSBOVUxMICYmIGN0 eHQtPnN0YXRlW09QVElPTl9DRVJUX0hBU0hdLmFyZyA9PSBOVUxMKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUsICJtaXNzaW5nIGRpc3RydXN0ZWQgY2VydGlm aWNhdGUvYmluYXJ5IGhhc2ggZmlsZSIpOworCisgIGlmIChjdHh0LT5zdGF0ZVtPUFRJT05fQklO QVJZX0hBU0hdLmFyZyAhPSBOVUxMKQorICAgIGZpbGVfcGF0aCA9IGN0eHQtPnN0YXRlW09QVElP Tl9CSU5BUllfSEFTSF0uYXJnOworICBlbHNlCisgICAgZmlsZV9wYXRoID0gY3R4dC0+c3RhdGVb T1BUSU9OX0NFUlRfSEFTSF0uYXJnOworCisgIGhhc2hfZmlsZSA9IGdydWJfZmlsZV9vcGVuIChm aWxlX3BhdGgsIEdSVUJfRklMRV9UWVBFX0hBU0hfVFJVU1QgfCBHUlVCX0ZJTEVfVFlQRV9OT19E RUNPTVBSRVNTKTsKKyAgaWYgKGhhc2hfZmlsZSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9GSUxFX05PVF9GT1VORCwgInVuYWJsZSB0byBvcGVuICVzIGZpbGUiLCBm aWxlX3BhdGgpOworCisgIHJjID0gZmlsZV9yZWFkX3dob2xlIChoYXNoX2ZpbGUsICZoYXNoX2Rh dGEsICZoYXNoX2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoaGFzaF9maWxlKTsKKyAg aWYgKHJjICE9IEdSVUJfRVJSX05PTkUpCisgICAgcmV0dXJuIHJjOworCisgIC8qCisgICAqIElm IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwKKyAgICogb2J0YWluIHRoZSBhY3R1 YWwgaGFzaCBkYXRhIHNpemUgYnkgc3VidHJhY3RpbmcgdGhlIGFwcGVuZGVkCisgICAqIHNpZ25h dHVyZSBzaXplIGZyb20gdGhlIGhhc2ggZGF0YSBzaXplIGJlY2F1c2UKKyAgICogdGhlIGhhc2gg aGFzIGFuIGFwcGVuZGVkIHNpZ25hdHVyZSwgYW5kIHRoaXMgYWN0dWFsIGhhc2ggZGF0YSBzaXpl IGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBoYXNoIGRhdGEuCisgICAqLworICBpZiAoY2hlY2tf c2lncyA9PSB0cnVlKQorICAgIGhhc2hfZGF0YV9zaXplIC09IGFwcGVuZF9zaWdfbGVuOworCisg IGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAiYWRkaW5nIGEg ZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4uXG4i CisgICAgICAgICAgICAgICAgIiB3aXRoIHNpemUgb2YgJSIgUFJJdUdSVUJfU0laRSAiXG4iLCBo YXNoX2RhdGFbMF0sIGhhc2hfZGF0YVsxXSwKKyAgICAgICAgICAgICAgICBoYXNoX2RhdGFbMl0s IGhhc2hfZGF0YVszXSwgaGFzaF9kYXRhX3NpemUpOworCisgIGlmIChjdHh0LT5zdGF0ZVtPUFRJ T05fQklOQVJZX0hBU0hdLnNldCB8fCBjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNIXS5zZXQp CisgICAgeworICAgICAgLyogT25seSBhY2NlcHQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUxMiBj ZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCAqLworICAgICAgaWYgKGhhc2hfZGF0YV9zaXplICE9IFNI QTI1Nl9IQVNIX0xFTiAmJiBoYXNoX2RhdGFfc2l6ZSAhPSBTSEEzODRfSEFTSF9MRU4gJiYKKyAg ICAgICAgICBoYXNoX2RhdGFfc2l6ZSAhPSBTSEE1MTJfSEFTSF9MRU4pCisgICAgICAgIHsKKyAg ICAgICAgICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisgICAgICAgICAgcmV0dXJuIGdydWJfZXJy b3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmFjY2VwdGFibGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0eXBlIik7 CisgICAgICAgIH0KKyAgICB9CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgYmluYXJ5IGhhc2gv Y2VydGlmaWNhdGUgZnJvbSB0aGUgZGIgbGlzdCBpZiBwcmVzZW50LiAqLworICByZW1vdmVfaGFz aF9mcm9tX2RiIChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAg ICAgICAoKGN0eHQtPnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0uc2V0KSA/IHRydWUgOiBmYWxz ZSkpOworICByYyA9IGFkZF9oYXNoIChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplLCAmZGJ4KTsK KworICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQorCiAvKiBBZGQg dGhlIFguNTA5IGNlcnRpZmljYXRlcy9iaW5hcnkgaGFzaCB0byB0aGUgZGIgbGlzdCBmcm9tIFBL Uy4gKi8KIHN0YXRpYyBncnViX2Vycl90CiBsb2FkX3BrczJkYiAodm9pZCkKQEAgLTEzNDQsNiAr MTYwNSw4IEBAIHN0cnVjdCBncnViX2ZpbGVfdmVyaWZpZXIgZ3J1Yl9hcHBlbmRlZHNpZ192ZXJp ZmllciA9IHsKIH07CiAKIHN0YXRpYyBncnViX2NvbW1hbmRfdCBjbWRfdmVyaWZ5LCBjbWRfbGlz dF9kYiwgY21kX2RieF9jZXJ0LCBjbWRfZGJfY2VydDsKK3N0YXRpYyBncnViX2NvbW1hbmRfdCBj bWRfbGlzdF9kYngsIGNtZF9kYl9oYXNoOworc3RhdGljIGdydWJfZXh0Y21kX3QgY21kX2RieF9o YXNoOwogCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKIHsKQEAgLTE0MjIsNiArMTY4NSwx NiBAQCBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKICAgY21kX2RieF9jZXJ0ID0gZ3J1Yl9y ZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdydWJfY21kX2RieF9jZXJ0 LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElGSUNBVEUgdG8gdGhlIGRi eCBsaXN0IikpOwogCisgIGNtZF9saXN0X2RieCA9IGdydWJfcmVnaXN0ZXJfY29tbWFuZCAoImFw cGVuZF9saXN0X2RieCIsIGdydWJfY21kX2xpc3RfZGJ4LCAwLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5fKCJTaG93IHRoZSBsaXN0IG9mIGRpc3RydXN0ZWQgY2Vy dGlmaWNhdGVzIGFuZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi IGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoZXMgZnJvbSB0aGUgZGJ4IGxpc3QiKSk7CisgIGNtZF9k Yl9oYXNoID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYl9oYXNoIiwgZ3J1 Yl9jbWRfZGJfaGFzaCwgTl8oIkJJTkFSWSBIQVNIIEZJTEUiKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5fKCJBZGQgdHJ1c3RlZCBCSU5BUlkgSEFTSCB0byB0aGUg ZGIgbGlzdC4iKSk7CisgIGNtZF9kYnhfaGFzaCA9IGdydWJfcmVnaXN0ZXJfZXh0Y21kICgiYXBw ZW5kX2FkZF9kYnhfaGFzaCIsIGdydWJfY21kX2RieF9oYXNoLCAwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTl8oIlstYnwtLWJpbmFyeS1oYXNoXSBGSUxFIFtCSU5B UlkgSEFTSCBGSUxFXVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlstY3wtLWNlcnQtaGFzaF0gRklMRSBbQ0VSVEZJQ0FURSBIQVNIIEZJTEVdIiksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRkIGRpc3RydXN0ZWQgQ0VSVEZJ Q0FURS9CSU5BUlkgSEFTSCB0byB0aGUgZGJ4IGxpc3QuIiksIG9wdGlvbnMpOworCiAgIGdydWJf dmVyaWZpZXJfcmVnaXN0ZXIgKCZncnViX2FwcGVuZGVkc2lnX3ZlcmlmaWVyKTsKICAgZ3J1Yl9k bF9zZXRfcGVyc2lzdGVudCAobW9kKTsKIH0KQEAgLTE0NDQsNCArMTcxNyw3IEBAIEdSVUJfTU9E X0ZJTkkgKGFwcGVuZGVkc2lnKQogICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21kX2xpc3Rf ZGIpOwogICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21kX2RiX2NlcnQpOwogICBncnViX3Vu cmVnaXN0ZXJfY29tbWFuZCAoY21kX2RieF9jZXJ0KTsKKyAgZ3J1Yl91bnJlZ2lzdGVyX2NvbW1h bmQgKGNtZF9saXN0X2RieCk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfaGFz aCk7CisgIGdydWJfdW5yZWdpc3Rlcl9leHRjbWQgKGNtZF9kYnhfaGFzaCk7CiB9CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2dydWIvZmlsZS5oIGIvaW5jbHVkZS9ncnViL2ZpbGUuaAppbmRleCBkNjc4 ZGUwNjMuLjE2YTRiN2QyNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2ZpbGUuaAorKysgYi9p bmNsdWRlL2dydWIvZmlsZS5oCkBAIC0xMTUsNiArMTE1LDggQEAgZW51bSBncnViX2ZpbGVfdHlw ZQogICAgIEdSVUJfRklMRV9UWVBFX0hBU0hMSVNULAogICAgIC8qIEZpbGUgaGFzaGVkIGJ5IGhh c2hzdW0uICAqLwogICAgIEdSVUJfRklMRV9UWVBFX1RPX0hBU0gsCisgICAgLyogRmlsZSBob2xk aW5nIGNlcnRpZmljaWF0ZS9iaW5hcnkgaGFzaCB0byBhZGQgdG8gZGIvZGJ4LiAqLworICAgIEdS VUJfRklMRV9UWVBFX0hBU0hfVFJVU1QsCiAgICAgLyogS2V5Ym9hcmQgbGF5b3V0LiAgKi8KICAg ICBHUlVCX0ZJTEVfVFlQRV9LRVlCT0FSRF9MQVlPVVQsCiAgICAgLyogUGljdHVyZSBmaWxlLiAg Ki8KLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVs QGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZl bAo=