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 3DD83CA0EF7 for ; Tue, 19 Aug 2025 13:16:24 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uoMBO-0007Vb-Hg; Tue, 19 Aug 2025 09:15:22 -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 1uoMBL-0007N4-Km for grub-devel@gnu.org; Tue, 19 Aug 2025 09:15:19 -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 1uoMBF-0007z1-KT for grub-devel@gnu.org; Tue, 19 Aug 2025 09:15:17 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57JALKio009340; Tue, 19 Aug 2025 13:15:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=YBPv34pGm5HM3pB1R 0pgkHPLlrehalcaM34xMwjrw34=; b=QW2rqd6z5jS0w8qdX4jv33kUUsi4YANF7 UdZauURwV41UcwONQ8WMZYVtWwYNyO81lJDmxjZKRwlYmWhxtIu6zpWCCk5Ttq31 4NXxmPAQO9AjiXLWu7mC95JBClhg5UfWr7gX7fFuImfuwq5ZCquJ7G4W7dMXEeSH q8Vvq+82wz6BSQI65GQs3Ko04IBekzOiPVcQeToLVd/TM4T85qc66BFE0cRrRNNg PxV807cW8VHRwVaoKFFK2mhrblVf2UQWAJ5i6nV/bNMWomZeGlGmJmMOdhqekWv/ TfIGnBv9A+FxNfKJvDm3EK+VeRtzzdfD8cbcOp1CboKhn7zOSs1qg== 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 48jhn3xjce-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Aug 2025 13:15:10 +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 57J9PsT1011683; Tue, 19 Aug 2025 13:15:10 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 48k4auah41-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Aug 2025 13:15:09 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57JDF6CL52298138 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 Aug 2025 13:15:06 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E79482004E; Tue, 19 Aug 2025 13:15:05 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 80B1A20040; Tue, 19 Aug 2025 13:15:03 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.211.37]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 19 Aug 2025 13:15:03 +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 v7 16/20] appended signatures: Introduce GRUB commands to access db and dbx Date: Tue, 19 Aug 2025 18:43:19 +0530 Message-Id: <20250819131323.57631-17-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250819131323.57631-1-sudhakar@linux.ibm.com> References: <20250819131323.57631-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: MJalNZJ00khdanWp4TvWFzYruRQWQXGt X-Authority-Analysis: v=2.4 cv=L6wdQ/T8 c=1 sm=1 tr=0 ts=68a478de cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=2OwXVqhp2XgA:10 a=VnNF1IyMAAAA:8 a=lDsDDlvnfdr5eoMeJawA:9 X-Proofpoint-GUID: MJalNZJ00khdanWp4TvWFzYruRQWQXGt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODE2MDAyNyBTYWx0ZWRfX2MWqv2PXcuQc 6LEflKKLUS/GnwkAFpx50c3uFfH2yXOrQVqjOye+VLorEB9xLe7fsVOekIIEA5x0WBX9m80YP3O PepyNWLhXGsxX3hhKcOLjzSyI3w+wMb1mdGk33ZBAmIpz7IGhxGyzt55L0OZRNqr+7h/vupju0/ TfQ3S+Nq9CmDBPKF+yyqrRJ0RA9LvAIT5khawccRjvysaciK4TWwymwT4tt/CNTzw9KgqeIgXkE NB8S5z/Pcy5KOlqZmmLE8+thS5VMd2DpJA2fuDUOgnHRiaP93uHdVANPx46xqHH/kbsCvxiM6je ahlCh9L82Nr5ENk5PoO3traQOLUgAWqpLimzhthBZHPr1zGPyQ+of+zO2QMaLuddLHu86yTDVuW QE6+E1uN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-19_02,2025-08-14_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508160027 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 SW50cm9kdWNpbmcgdGhlIGZvbGxvd2luZyBkYiBhbmQgZGJ4IGNvbW1hbmRzCgogIDEuIGFwcGVu ZF9saXN0X2RiOgogICAgICBTaG93IHRoZSBsaXN0IG9mIHRydXN0ZWQgY2VydGlmaWNhdGVzIGFu ZCBiaW5hcnkgaGFzaGVzCiAgICAgIGZyb20gdGhlIGRiIGxpc3QuCiAgMi4gYXBwZW5kX2xpc3Rf ZGJ4OgogICAgICBTaG93IHRoZSBsaXN0IG9mIGRpc3RydXN0ZWQgY2VydGlmaWNhdGVzIGFuZCBi aW5hcnkvY2VydGlmaWNhdGUKICAgICAgaGFzaGVzIGZyb20gdGhlIGRieCBsaXN0LgogIDMuIGFw cGVuZF9hZGRfZGJfY2VydDoKICAgICAgQWRkIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHRvIHRo ZSBkYiBsaXN0LgogIDQuIGFwcGVuZF9hZGRfZGJfaGFzaDoKICAgICAgQWRkIHRoZSB0cnVzdGVk IGJpbmFyeSBoYXNoIHRvIHRoZSBkYiBsaXN0LgogIDUuIGFwcGVuZF9hZGRfZGJ4X2NlcnQ6CiAg ICAgIEFkZCB0aGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZSB0byB0aGUgZGJ4IGxpc3QuCiAgNi4g YXBwZW5kX2FkZF9kYnhfaGFzaDoKICAgICAgQWRkIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRl L2JpbmFyeSBoYXNoIHRvIHRoZSBkYnggbGlzdC4KCk5vdGUgdGhhdCBpZiBzaWduYXR1cmUgdmVy aWZpY2F0aW9uIChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAox LiBXaGVuIGFwcGVuZF9hZGRfZGJfY2VydCBvciBhcHBlbmRfYWRkX2RieF9jZXJ0IGV4ZWN1dGVz LAogICB0aGVuIHRoZSBjZXJ0aWZpY2F0ZSBmaWxlIG11c3QgYmUgc2lnbmVkIHdpdGggYW4gYXBw ZW5kZWQgc2lnbmF0dXJlLgoyLiBXaGVuIGFwcGVuZF9hZGRfZGJfaGFzaCBleGVjdXRlcywgdGhl biB0aGUgYmluYXJ5IGhhc2ggZmlsZQogICBtdXN0IGJlIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVk IHNpZ25hdHVyZS4KMy4gV2hlbiBhcHBlbmRfYWRkX2RieF9oYXNoIGV4ZWN1dGVzLCB0aGVuIHRo ZSBjZXJ0aWZpY2F0ZS9iaW5hcnkKICAgaGFzaCBmaWxlIG11c3QgYmUgc2lnbmVkIHdpdGggYW4g YXBwZW5kZWQgc2lnbmF0dXJlLgoKU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxz dWRoYWthckBsaW51eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogQXZuaXNoIENob3VoYW4gPGF2bmlz aEBsaW51eC5pYm0uY29tPgotLS0KIGdydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBl bmRlZHNpZy5jIHwgNDI2ICsrKysrKysrKysrKysrKysrKy0KIGluY2x1ZGUvZ3J1Yi9maWxlLmgg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIDIgZmlsZXMgY2hhbmdlZCwgNDE4IGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9jb21t YW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVu ZGVkc2lnL2FwcGVuZGVkc2lnLmMKaW5kZXggMGNiNjE2M2YzLi5jNTQ3ZmFlMjggMTAwNjQ0Ci0t LSBhL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCisrKyBiL2dy dWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCkBAIC00Miw2ICs0Miw5 IEBAIEdSVUJfTU9EX0xJQ0VOU0UgKCJHUEx2MysiKTsKIC8qIFB1YmxpYyBrZXkgdHlwZS4gKi8K ICNkZWZpbmUgR1JVQl9QS0VZX0lEX1BLQ1M3IDIKIAorI2RlZmluZSBPUFRJT05fQklOQVJZX0hB U0ggMAorI2RlZmluZSBPUFRJT05fQ0VSVF9IQVNIICAgMQorCiAvKiBBcHBlbmRlZCBzaWduYXR1 cmUgbWFnaWMgc3RyaW5nLiAqLwogc3RhdGljIGNvbnN0IGNoYXIgbWFnaWNbXSA9ICJ+TW9kdWxl IHNpZ25hdHVyZSBhcHBlbmRlZH5cbiI7CiAKQEAgLTk5LDYgKzEwMiwxMyBAQCBzdGF0aWMgZ3J1 Yl9zaXplX3QgYXBwZW5kX3NpZ19sZW4gPSAwOwogICovCiBzdGF0aWMgYm9vbCBjaGVja19zaWdz ID0gZmFsc2U7CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ3J1Yl9hcmdfb3B0aW9uIG9wdGlvbnNb XSA9Cit7CisgIHsiYmluYXJ5LWhhc2giLCAnYicsIDAsIE5fKCJoYXNoIGZpbGUgb2YgdGhlIGJp bmFyeS4iKSwgMCwgQVJHX1RZUEVfUEFUSE5BTUV9LAorICB7ImNlcnQtaGFzaCIsICdjJywgMSwg Tl8oImhhc2ggZmlsZSBvZiB0aGUgY2VydGlmaWNhdGUuIiksIDAsIEFSR19UWVBFX1BBVEhOQU1F fSwKKyAgezAsIDAsIDAsIDAsIDAsIDB9Cit9OworCiBzdGF0aWMgdm9pZAogcmVnaXN0ZXJfYXBw ZW5kZWRfc2lnbmF0dXJlc19jbWQgKHZvaWQpOwogc3RhdGljIHZvaWQKQEAgLTE3Niw5ICsxODYs MTcgQEAgZ3J1Yl9lbnZfd3JpdGVfa2V5IChzdHJ1Y3QgZ3J1Yl9lbnZfdmFyICp2YXIgX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpLCBjb25zdCBjaGEKICAgaWYgKGNoZWNrX3NpZ3MgPT0gZmFsc2Up CiAgICAgewogICAgICAgaWYgKCgqdmFsID09ICcxJykgfHwgKCp2YWwgPT0gJ2QnKSkKLSAgICAg ICAgZ3J1Yl9wa3NfdXNlX2tleXN0b3JlID0gdHJ1ZTsKKyAgICAgICAgeworICAgICAgICAgIHVu cmVnaXN0ZXJfYXBwZW5kZWRfc2lnbmF0dXJlc19jbWQgKCk7CisgICAgICAgICAgZ3J1Yl9wa3Nf dXNlX2tleXN0b3JlID0gdHJ1ZTsKKyAgICAgICAgICByZWdpc3Rlcl9hcHBlbmRlZF9zaWduYXR1 cmVzX2NtZCAoKTsKKyAgICAgICAgfQogICAgICAgZWxzZSBpZiAoKCp2YWwgPT0gJzAnKSB8fCAo KnZhbCA9PSAncycpKQotICAgICAgICBncnViX3Brc191c2Vfa2V5c3RvcmUgPSBmYWxzZTsKKyAg ICAgICAgeworICAgICAgICAgIHVucmVnaXN0ZXJfYXBwZW5kZWRfc2lnbmF0dXJlc19jbWQgKCk7 CisgICAgICAgICAgZ3J1Yl9wa3NfdXNlX2tleXN0b3JlID0gZmFsc2U7CisgICAgICAgICAgcmVn aXN0ZXJfYXBwZW5kZWRfc2lnbmF0dXJlc19jbWQgKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg cmV0ID0gZ3J1Yl9zdHJkdXAgKGdydWJfZW52X3JlYWRfa2V5IChOVUxMLCBOVUxMKSk7CkBAIC03 MzAsNiArNzQ4LDUyIEBAIHJlbW92ZV9jZXJ0X2Zyb21fZGIgKGNvbnN0IHN0cnVjdCB4NTA5X2Nl cnRpZmljYXRlICpjZXJ0KQogICAgIH0KIH0KIAorLyoKKyAqIFdlIGNhbm5vdCB1c2UgaGV4ZHVt cCgpIHRvIGRpc3BsYXkgaGFzaCBkYXRhIGJlY2F1c2UgaXQgaXMgdHlwaWNhbGx5CisgKiBkaXNw bGF5ZWQgaW4gaGV4YWRlY2ltYWwgZm9ybWF0LCBhbG9uZyB3aXRoIGFuIEFTQ0lJIHJlcHJlc2Vu dGF0aW9uIG9mCisgKiB0aGUgc2FtZSBkYXRhLgorICogRXhhbXBsZTogc2hhMjU2IGhhc2ggZGF0 YQorICogMDAwMDAwMDAgIDUyIGI1IDkwIDQ5IDY0IGRlIDIyIGQ3ICA0ZSA1ZiA0ZiBiNCAxYiA1 MSA5YyAzNCAgfFIuLklkLiIuTl9PLi5RLjR8CisgKiAwMDAwMDAxMCAgYjEgOTYgMjEgN2MgOTEg NzggYTUgMGQgIDIwIDhjIGU5IDVjIDIyIDU0IDUzIGY3ICB8Li4hfC54Li4gLi5cIlRTLnwKKyAq CisgKiBBbiBhcHBlbmRlZCBzaWduYXR1cmUgb25seSByZXF1aXJlZCB0byBkaXNwbGF5IHRoZSBo ZXhhZGVjaW1hbCBvZiB0aGUgaGFzaCBkYXRhCisgKiBieSBzZXBhcmF0aW5nIGVhY2ggYnl0ZSB3 aXRoICI6Ii4gU28sIHdlIGludHJvZHVjZWQgYSBuZXcgbWV0aG9kIGR1bXBfZGF0YV90b19oZXgK KyAqIHRvIGRpc3BsYXkgaXQuCisgKiBFeGFtcGxlOiBTaGEyNTYgaGFzaCBkYXRhCisgKiAgNTI6 YjU6OTA6NDk6NjQ6ZGU6MjI6ZDc6NGU6NWY6NGY6YjQ6MWI6NTE6OWM6MzQ6CisgKiAgYjE6OTY6 MjE6N2M6OTE6Nzg6YTU6MGQ6MjA6OGM6ZTk6NWM6MjI6NTQ6NTM6ZjcKKyAqLworc3RhdGljIHZv aWQKK2R1bXBfZGF0YV90b19oZXggKGNvbnN0IGdydWJfdWludDhfdCAqZGF0YSwgY29uc3QgZ3J1 Yl9zaXplX3QgbGVuZ3RoKQoreworICBncnViX3NpemVfdCBpLCBjb3VudCA9IDA7CisKKyAgZm9y IChpID0gMDsgaSA8IGxlbmd0aCAtIDE7IGkrKykKKyAgICB7CisgICAgICBncnViX3ByaW50ZiAo IiUwMng6IiwgZGF0YVtpXSk7CisgICAgICBjb3VudCsrOworICAgICAgaWYgKGNvdW50ID09IDE2 KQorICAgICAgICB7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCJcblx0ICAgICAgIik7CisgICAg ICAgICAgY291bnQgPSAwOworICAgICAgICB9CisgICAgfQorCisgIGdydWJfcHJpbnRmICgiJTAy eFxuIiwgZGF0YVtpXSk7Cit9CisKK3N0YXRpYyBib29sCitpc19jZXJ0X3ByZXNlbnRfaW5fZGJ4 IChjb25zdCBzdHJ1Y3QgeDUwOV9jZXJ0aWZpY2F0ZSAqY2VydF9pbikKK3sKKyAgc3RydWN0IHg1 MDlfY2VydGlmaWNhdGUgKmNlcnQ7CisKKyAgZm9yIChjZXJ0ID0gZGJ4LmNlcnRzOyBjZXJ0OyBj ZXJ0ID0gY2VydC0+bmV4dCkKKyAgICBpZiAoaXNfY2VydF9tYXRjaCAoY2VydCwgY2VydF9pbikg PT0gdHJ1ZSkKKyAgICAgIHJldHVybiB0cnVlOworCisgIHJldHVybiBmYWxzZTsKK30KKwogc3Rh dGljIGdydWJfZXJyX3QKIGdydWJfY21kX3ZlcmlmeV9zaWduYXR1cmUgKGdydWJfY29tbWFuZF90 IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGludCBhcmdjLCBjaGFyICoqYXJncykKIHsK QEAgLTc2Miw3ICs4MjYsOCBAQCBncnViX2NtZF92ZXJpZnlfc2lnbmF0dXJlIChncnViX2NvbW1h bmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQgYXJnYwogfQogCiAvKgotICog QWRkIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHRvIHRoZSBkYiBsaXN0IGlmIGl0IGlzIG5vdCBh bHJlYWR5IHByZXNlbnQuCisgKiBDaGVja3MgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgYWdhaW5z dCBkYnggbGlzdCBpZiBkeW5hbWljIGtleSBtYW5hZ2VtZW50IGlzIGVuYWJsZWQuCisgKiBBbmQg YWRkIGl0IHRvIHRoZSBkYiBsaXN0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByZXNlbnQuCiAgKiBO b3RlOi0gV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY29tbWFu ZCBvbmx5IGFjY2VwdHMgdGhlCiAgKiB0cnVzdGVkIGNlcnRpZmljYXRlIHRoYXQgaXMgc2lnbmVk IHdpdGggYW4gYXBwZW5kZWQgc2lnbmF0dXJlLgogICogVGhlIHNpZ25hdHVyZSBpcyB2ZXJpZmll ZCBieSB0aGUgYXBwZW5kZWRzaWcgbW9kdWxlLiBJZiB2ZXJpZmljYXRpb24gc3VjY2VlZHMsCkBA IC04MDIsNiArODY3LDE0IEBAIGdydWJfY21kX2RiX2NlcnQgKGdydWJfY29tbWFuZF90IGNtZCBf X2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGludCBhcmdjLCBjaGFyICoqCiAgICAgICByZXR1cm4g ZXJyOwogICAgIH0KIAorICAvKiBPbmx5IGNoZWNrcyB0aGUgY2VydGlmaWNhdGUgYWdhaW5zdCBk YnggaWYgZHluYW1pYyBrZXkgbWFuYWdlbWVudCBpcyBlbmFibGVkLiAqLworICBpZiAoZ3J1Yl9w a3NfdXNlX2tleXN0b3JlID09IHRydWUpCisgICAgeworICAgICAgaWYgKGlzX2NlcnRfcHJlc2Vu dF9pbl9kYnggKGNlcnQpID09IHRydWUpCisgICAgICAgIHJldHVybiBncnViX2Vycm9yIChHUlVC X0VSUl9BQ0NFU1NfREVOSUVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvdWxkIG5v dCBhZGQgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSwgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGJ4IGxp c3QiKTsKKyAgICB9CisKICAgaWYgKGlzX2NlcnRfcHJlc2VudF9pbl9kYiAoY2VydCkgPT0gdHJ1 ZSkKICAgICB7CiAgICAgICBjZXJ0aWZpY2F0ZV9yZWxlYXNlIChjZXJ0KTsKQEAgLTgyMSw2ICs4 OTQsOCBAQCBncnViX2NtZF9kYl9jZXJ0IChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVf XyAoKHVudXNlZCkpLCBpbnQgYXJnYywgY2hhciAqKgogCiAvKgogICogUmVtb3ZlIHRoZSBkaXN0 cnVzdGVkIGNlcnRpZmljYXRlIGZyb20gdGhlIGRiIGxpc3QgaWYgaXQgaXMgYWxyZWFkeSBwcmVz ZW50LgorICogQW5kIGFkZCBpdCB0byB0aGUgZGJ4IGxpc3QgaWYgbm90IHByZXNlbnQgd2hlbiBk eW5hbWljIGtleSBtYW5hZ2VtZW50IGlzCisgKiBlbmFibGVkLgogICogTm90ZTotIFdoZW4gc2ln bmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRz IHRoZQogICogZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFw cGVuZGVkIHNpZ25hdHVyZS4KICAqIFRoZSBzaWduYXR1cmUgaXMgdmVyaWZpZWQgYnkgdGhlIGFw cGVuZGVkIHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKQEAgLTg0MSw4ICs5 MTYsMTAgQEAgZ3J1Yl9jbWRfZGJ4X2NlcnQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0 ZV9fICgodW51c2VkKSksIGludCBhcmdjLCBjaGFyICoKIAogICBpZiAoYXJnYyAhPSAxKQogICAg IHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCi0gICAgICAgICAgICAg ICAgICAgICAgICJhIGRpc3RydXN0ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSBpcyBleHBlY3Rl ZCBpbiBERVIgZm9ybWF0XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRh cHBlbmRfcm1fZGJ4X2NlcnQgPFg1MDlfQ0VSVElGSUNBVEU+XG4iKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgImEgZGlzdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIGlzIGV4cGVjdGVk IGluIERFUiBmb3JtYXRcbiVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgKChncnViX3Brc191 c2Vfa2V5c3RvcmUgPT0gdHJ1ZSkgPworICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTpc blx0YXBwZW5kX2FkZF9kYnhfY2VydCA8WDUwOV9DRVJUSUZJQ0FURT5cbiIgOgorICAgICAgICAg ICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX3JtX2RieF9jZXJ0IDxYNTA5X0NFUlRJ RklDQVRFPlxuIikpOwogCiAgIGlmICgqYXJncyA9PSBOVUxMKQogICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUsICJtaXNzaW5nIGRpc3RydXN0ZWQgWC41MDkgY2Vy dGlmaWNhdGUgZmlsZSIpOwpAQCAtODYyLDggKzkzOSwzMCBAQCBncnViX2NtZF9kYnhfY2VydCAo Z3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MsIGNo YXIgKgogCiAgIC8qIFJlbW92ZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIGZyb20gdGhlIGRiIGxp c3QgaWYgcHJlc2VudC4gKi8KICAgcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7Ci0gIGNlcnRp ZmljYXRlX3JlbGVhc2UgKGNlcnQpOwotICBncnViX2ZyZWUgKGNlcnQpOworCisgIC8qIE9ubHkg Y2hlY2tzIHRoZSBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IGRieCBpZiBkeW5hbWljIGtleSBtYW5hZ2Vt ZW50IGlzIGVuYWJsZWQuICovCisgIGlmIChncnViX3Brc191c2Vfa2V5c3RvcmUgPT0gdHJ1ZSkK KyAgICB7CisgICAgICBpZiAoaXNfY2VydF9wcmVzZW50X2luX2RieCAoY2VydCkgPT0gdHJ1ZSkK KyAgICAgICAgeworICAgICAgICAgIGNlcnRpZmljYXRlX3JlbGVhc2UgKGNlcnQpOworICAgICAg ICAgIGdydWJfZnJlZSAoY2VydCk7CisgICAgICAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJf RVJSX0VYSVNUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvdWxkIG5vdCBhZGQg ZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZSwgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGJ4IGxpc3Qi KTsKKyAgICAgICAgfQorCisgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJhZGRl ZCBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIHdpdGggQ046ICVzIHRvIHRoZSBkYnggbGlzdFxuIiwK KyAgICAgICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCk7CisKKyAgICAgIGNlcnQtPm5leHQg PSBkYnguY2VydHM7CisgICAgICBkYnguY2VydHMgPSBjZXJ0OworICAgICAgZGJ4LmNlcnRfZW50 cmllcysrOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGNlcnRpZmljYXRlX3JlbGVhc2Ug KGNlcnQpOworICAgICAgZ3J1Yl9mcmVlIChjZXJ0KTsKKyAgICB9CiAKICAgcmV0dXJuIEdSVUJf RVJSX05PTkU7CiB9CkBAIC04ODgsOSArOTg3LDI4MCBAQCBncnViX2NtZF9saXN0X2RiIChncnVi X2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQgYXJnYyBfX2F0dHJp YgogICAgICAgZ3J1Yl9wcmludGYgKCJcdENOOiAlc1xuXG4iLCBjZXJ0LT5zdWJqZWN0KTsKICAg ICB9CiAKKyAgLyogT25seSBsaXN0IHRoZSBiaW5hcnkgaGFzaCBpZiBkeW5hbWljIGtleSBtYW5h Z2VtZW50IGlzIGVuYWJsZWQuICovCisgIGlmIChncnViX3Brc191c2Vfa2V5c3RvcmUgPT0gdHJ1 ZSkKKyAgICB7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZGIuc2lnbmF0dXJlX2VudHJpZXM7IGkr KykKKyAgICAgICAgeworICAgICAgICAgIGlmIChkYi5zaWduYXR1cmVzW2ldICE9IE5VTEwpCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgIGdydWJfcHJpbnRmICgiQmluYXJ5IGhhc2ggJXU6 XG4iLCBpICsgMSk7CisgICAgICAgICAgICAgIGdydWJfcHJpbnRmICgiXHRoYXNoOiAiKTsKKyAg ICAgICAgICAgICAgZHVtcF9kYXRhX3RvX2hleCAoZGIuc2lnbmF0dXJlc1tpXSwgZGIuc2lnbmF0 dXJlX3NpemVbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgIHJldHVy biBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfbGlzdF9k YnggKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKKyAgICAgICAg ICAgICAgICAgICBpbnQgYXJnYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgY2hhciAqKmFyZ3Mg X19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIHN0cnVjdCB4NTA5X2NlcnRpZmljYXRlICpj ZXJ0OworICBncnViX3VpbnQzMl90IGksIGNlcnRfbnVtID0gMTsKKworICBmb3IgKGNlcnQgPSBk YnguY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNlcnRfbnVtKyspCisg ICAgeworICAgICAgZ3J1Yl9wcmludGYgKCJDZXJ0aWZpY2F0ZSAldTpcbiIsIGNlcnRfbnVtKTsK KyAgICAgIGdydWJfcHJpbnRmICgiXHRzZXJpYWw6ICIpOworCisgICAgICBmb3IgKGkgPSAwOyBp IDwgY2VydC0+c2VyaWFsX2xlbiAtIDE7IGkrKykKKyAgICAgICAgZ3J1Yl9wcmludGYgKCIlMDJ4 OiIsIGNlcnQtPnNlcmlhbFtpXSk7CisKKyAgICAgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgY2Vy dC0+c2VyaWFsW2NlcnQtPnNlcmlhbF9sZW4gLSAxXSk7CisgICAgICBncnViX3ByaW50ZiAoIlx0 aXNzdWVyOiAlc1xuIiwgY2VydC0+aXNzdWVyKTsKKyAgICAgIGdydWJfcHJpbnRmICgiXHRDTjog JXNcblxuIiwgY2VydC0+c3ViamVjdCk7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCBkYngu c2lnbmF0dXJlX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZGJ4LnNpZ25hdHVyZXNb aV0gIT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgIGdydWJfcHJpbnRmICgiQ2VydGlmaWNh dGUvQmluYXJ5IGhhc2ggJXU6XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCJc dGhhc2g6ICIpOworICAgICAgICAgIGR1bXBfZGF0YV90b19oZXggKGRieC5zaWduYXR1cmVzW2ld LCBkYnguc2lnbmF0dXJlX3NpemVbaV0pOworICAgICAgICB9CisgICAgfQorCiAgIHJldHVybiBH UlVCX0VSUl9OT05FOwogfQogCitzdGF0aWMgZ3J1Yl9lcnJfdAorcmVhZF9oYXNoX2Zyb21fZmls ZSAoY2hhciAqZmlsZV9wYXRoLCBncnViX3VpbnQ4X3QgKipoYXNoX2RhdGEsIGdydWJfc2l6ZV90 ICpoYXNoX2RhdGFfc2l6ZSkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl9maWxlX3QgaGFz aF9maWxlOworCisgIGhhc2hfZmlsZSA9IGdydWJfZmlsZV9vcGVuIChmaWxlX3BhdGgsIEdSVUJf RklMRV9UWVBFX0hBU0hfVFJVU1QgfCBHUlVCX0ZJTEVfVFlQRV9OT19ERUNPTVBSRVNTKTsKKyAg aWYgKGhhc2hfZmlsZSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9G SUxFX05PVF9GT1VORCwgInVuYWJsZSB0byBvcGVuICVzIGZpbGUiLCBmaWxlX3BhdGgpOworCisg IHJjID0gZmlsZV9yZWFkX3dob2xlIChoYXNoX2ZpbGUsIGhhc2hfZGF0YSwgaGFzaF9kYXRhX3Np emUpOworICBncnViX2ZpbGVfY2xvc2UgKGhhc2hfZmlsZSk7CisKKyAgLyoKKyAgICogSWYgc2ln bmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLCBvYnRhaW4gdGhlIGFjdHVhbCBoYXNoIGRh dGEgc2l6ZSBieQorICAgKiBzdWJ0cmFjdGluZyB0aGUgYXBwZW5kZWQgc2lnbmF0dXJlIHNpemUg ZnJvbSB0aGUgaGFzaCBkYXRhIHNpemUgYmVjYXVzZQorICAgKiB0aGUgaGFzaCBoYXMgYW4gYXBw ZW5kZWQgc2lnbmF0dXJlLCBhbmQgdGhpcyBhY3R1YWwgaGFzaCBkYXRhIHNpemUgaXMKKyAgICog dXNlZCB0byBnZXQgdGhlIGhhc2ggZGF0YS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRy dWUpCisgICAgKmhhc2hfZGF0YV9zaXplIC09IGFwcGVuZF9zaWdfbGVuOworCisgIHJldHVybiBy YzsKK30KKworc3RhdGljIGJvb2wKK2lzX2hhc2hfcHJlc2VudF9pbl9kYiAoY29uc3QgZ3J1Yl91 aW50OF90ICpoYXNoX2RhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGhhc2hfZGF0YV9zaXplKQorewor ICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IGRiLnNpZ25hdHVyZV9lbnRy aWVzOyBpKyspCisgICAgaWYgKGdydWJfbWVtY21wIChkYi5zaWduYXR1cmVzW2ldLCBoYXNoX2Rh dGEsIGhhc2hfZGF0YV9zaXplKSA9PSAwKQorICAgICAgcmV0dXJuIHRydWU7CisKKyAgcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgYm9vbAoraXNfaGFzaF9wcmVzZW50X2luX2RieCAoY29uc3Qg Z3J1Yl91aW50OF90ICpoYXNoX2RhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGhhc2hfZGF0YV9zaXpl KQoreworICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IGRieC5zaWduYXR1 cmVfZW50cmllczsgaSsrKQorICAgIGlmIChncnViX21lbWNtcCAoZGJ4LnNpZ25hdHVyZXNbaV0s IGhhc2hfZGF0YSwgaGFzaF9kYXRhX3NpemUpID09IDApCisgICAgICByZXR1cm4gdHJ1ZTsKKwor ICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCityZW1vdmVfaGFzaF9mcm9tX2RiIChj b25zdCBncnViX3VpbnQ4X3QgKmhhc2hfZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgaGFzaF9kYXRh X3NpemUpCit7CisgIGdydWJfdWludDMyX3QgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgZGIuc2ln bmF0dXJlX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZ3J1Yl9tZW1jbXAgKGRiLnNp Z25hdHVyZXNbaV0sIGhhc2hfZGF0YSwgaGFzaF9kYXRhX3NpemUpID09IDApCisgICAgICAgIHsK KyAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJyZW1vdmVkIGRpc3RydXN0 ZWQgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4gZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIGRiLnNpZ25hdHVyZXNbaV1bMF0sIGRiLnNpZ25hdHVyZXNbaV1bMV0s IGRiLnNpZ25hdHVyZXNbaV1bMl0sCisgICAgICAgICAgICAgICAgICAgICAgICBkYi5zaWduYXR1 cmVzW2ldWzNdKTsKKyAgICAgICAgICBncnViX2ZyZWUgKGRiLnNpZ25hdHVyZXNbaV0pOworICAg ICAgICAgIGRiLnNpZ25hdHVyZXNbaV0gPSBOVUxMOworICAgICAgICAgIGRiLnNpZ25hdHVyZV9z aXplW2ldID0gMDsKKyAgICAgICAgICBicmVhazsKKwl9CisgICAgfQorfQorCisvKgorICogUmVt b3ZlIHRoZSB0cnVzdGVkIGJpbmFyeSBoYXNoIGZyb20gdGhlIGRieCBsaXN0IGlmIHByZXNlbnQu CisgKiBBbmQgYWRkIHRoZW0gdG8gdGhlIGRiIGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJl c2VudC4KKyAqIE5vdGU6LSBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwg dGhpcyBjb21tYW5kIG9ubHkgYWNjZXB0cworICogdGhlIGJpbmFyeSBoYXNoIGZpbGUgdGhhdCBp cyBzaWduZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlz IHZlcmlmaWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNj ZWVkcywKKyAqIHRoZSBiaW5hcnkgaGFzaCBpcyBhZGRlZCB0byB0aGUgZGIgbGlzdC4gT3RoZXJ3 aXNlLCBhbiBlcnJvciBpcyBwb3N0ZWQgYW5kCisgKiB0aGUgYmluYXJ5IGhhc2ggaXMgbm90IGFk ZGVkLgorICogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGRpc2FibGVkLCBpdCBhY2Nl cHRzIHRoZSBiaW5hcnkgaGFzaCBmaWxlIHdpdGhvdXQKKyAqIGFuIGFwcGVuZGVkIHNpZ25hdHVy ZSBhbmQgYWRkcyBpdCB0byB0aGUgZGIgbGlzdC4KKyAqCisgKiBBbHNvLCBub3RlIHRoYXQgdGhl IGFkZGluZyBvZiB0aGUgdHJ1c3RlZCBiaW5hcnkgaGFzaCB1c2luZyB0aGlzIGNvbW1hbmQgZG9l cworICogbm90IHBlcnNpc3QgYWNyb3NzIHJlYm9vdHMuCisgKi8KK3N0YXRpYyBncnViX2Vycl90 CitncnViX2NtZF9kYl9oYXNoIChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXygodW51 c2VkKSksIGludCBhcmdjLCBjaGFyKiphcmdzKQoreworICBncnViX2Vycl90IHJjOworICBncnVi X3VpbnQ4X3QgKmhhc2hfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGhhc2hfZGF0YV9zaXpl ID0gMDsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VS Ul9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJhIHRydXN0ZWQgYmluYXJ5 IGhhc2ggZmlsZSBpcyBleHBlY3RlZCBpbiBBU0NJSSB0ZXh0IGZvcm1hdFxuIgorICAgICAgICAg ICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX2FkZF9kYl9oYXNoIDxCSU5BUlkgSEFT SCBGSUxFPlxuIik7CisKKyAgaWYgKCphcmdzID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJy b3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3NpbmcgdHJ1c3RlZCBiaW5hcnkgaGFzaCBm aWxlIik7CisKKyAgcmMgPSByZWFkX2hhc2hfZnJvbV9maWxlIChhcmdzWzBdLCAmaGFzaF9kYXRh LCAmaGFzaF9kYXRhX3NpemUpOworICBpZiAocmMgPT0gR1JVQl9FUlJfTk9ORSkKKyAgICB7Cisg ICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsCisgICAgICAgICAgICAgICAgICAgICJh ZGRpbmcgYSB0cnVzdGVkIGJpbmFyeSBoYXNoICUwMnglMDJ4JTAyeCUwMnguLi5cbiB3aXRoIHNp emUgb2YgJSIgUFJJdUdSVUJfU0laRSAiXG4iLAorICAgICAgICAgICAgICAgICAgICBoYXNoX2Rh dGFbMF0sIGhhc2hfZGF0YVsxXSwgaGFzaF9kYXRhWzJdLCBoYXNoX2RhdGFbM10sIGhhc2hfZGF0 YV9zaXplKTsKKworICAgICAgLyogT25seSBhY2NlcHQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUx MiBiaW5hcnkgaGFzaCAqLworICAgICAgaWYgKGhhc2hfZGF0YV9zaXplICE9IDMyICYmIGhhc2hf ZGF0YV9zaXplICE9IDQ4ICYmIGhhc2hfZGF0YV9zaXplICE9IDY0KQorICAgICAgICB7CisgICAg ICAgICAgZ3J1Yl9mcmVlIChoYXNoX2RhdGEpOworICAgICAgICAgIHJldHVybiBncnViX2Vycm9y IChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCAidW5hY2NlcHRhYmxlIHRydXN0ZWQgYmluYXJ5IGhh c2ggdHlwZSIpOworICAgICAgICB9CisKKyAgICAgIGlmIChpc19oYXNoX3ByZXNlbnRfaW5fZGJ4 IChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAg ICAgZ3J1Yl9mcmVlIChoYXNoX2RhdGEpOworICAgICAgICAgIHJldHVybiBncnViX2Vycm9yIChH UlVCX0VSUl9BQ0NFU1NfREVOSUVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY291 bGQgbm90IGFkZCB0cnVzdGVkIGJpbmFyeSBoYXNoLCBhcyBpdCBpcyBwcmVzZW50IGluIHRoZSBk YnggbGlzdCIpOworICAgICAgICB9CisKKyAgICAgIGlmIChpc19oYXNoX3ByZXNlbnRfaW5fZGIg KGhhc2hfZGF0YSwgaGFzaF9kYXRhX3NpemUpID09IGZhbHNlKQorICAgICAgICB7CisgICAgICAg ICAgcmMgPSBhZGRfaGFzaCAoKGNvbnN0IGdydWJfdWludDhfdCAqKikgJmhhc2hfZGF0YSwgaGFz aF9kYXRhX3NpemUsICZkYi5zaWduYXR1cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICZk Yi5zaWduYXR1cmVfc2l6ZSwgJmRiLnNpZ25hdHVyZV9lbnRyaWVzKTsKKyAgICAgICAgICBpZiAo cmMgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICAgICAgICAgIHJjID0gZ3J1Yl9lcnJvciAocmMsICJh ZGRpbmcgb2YgdHJ1c3RlZCBiaW5hcnkgaGFzaCBmYWlsZWQiKTsKKyAgICAgICAgICBlbHNlCisg ICAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICJhZGRlZCB0cnVzdGVkIGJpbmFyeSBoYXNoICUwMnglMDJ4JTAyeCUwMnguLi5c biB0byB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9kYXRh WzBdLCBoYXNoX2RhdGFbMV0sIGhhc2hfZGF0YVsyXSwgaGFzaF9kYXRhWzNdKTsKKyAgICAgICAg IH0KKyAgICAgICBlbHNlCisgICAgICAgICByYyA9IGdydWJfZXJyb3IgKEdSVUJfRVJSX0VYSVNU UywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNvdWxkIG5vdCBhZGQgdHJ1c3RlZCBiaW5h cnkgaGFzaCwgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGIgbGlzdCIpOworICAgIH0KKworICBn cnViX2ZyZWUgKGhhc2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQorCisvKgorICogUmVtb3Zl IHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGZyb20gdGhlIGRiIGxpc3Qg aWYgcHJlc2VudC4KKyAqIEFuZCBhZGQgdGhlbSB0byB0aGUgZGJ4IGxpc3QgaWYgaXQgaXMgbm90 IGFscmVhZHkgcHJlc2VudC4KKyAqIE5vdGU6LSBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24g aXMgZW5hYmxlZCwgdGhpcyBjb21tYW5kIG9ubHkgYWNjZXB0cworICogdGhlIGJpbmFyeS9jZXJ0 aWZpY2F0ZSBoYXNoIGZpbGUgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1 cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1 bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBiaW5hcnkvY2VydGlmaWNhdGUg aGFzaCBpcyBhZGRlZCB0byB0aGUgZGJ4IGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9z dGVkIGFuZAorICogdGhlIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGlzIG5vdCBhZGRlZC4KKyAq IFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUg YmluYXJ5L2NlcnRpZmljYXRlIGhhc2ggZmlsZSB3aXRob3V0CisgKiBhbiBhcHBlbmRlZCBzaWdu YXR1cmUgYW5kIGFkZHMgaXQgdG8gdGhlIGRieCBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhh dCB0aGUgYWRkaW5nIG9mIHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIHVz aW5nIHRoaXMgY29tbWFuZCBkb2VzCisgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAq Lworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21kX2RieF9oYXNoIChncnViX2V4dGNtZF9jb250 ZXh0X3QgY3R4dCwgaW50IGFyZ2MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAg ICAgICAgICAgIGNoYXIgKiphcmdzIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKK3sKKyAgZ3J1 Yl9lcnJfdCByYzsKKyAgZ3J1Yl91aW50OF90ICpoYXNoX2RhdGEgPSBOVUxMOworICBncnViX3Np emVfdCBoYXNoX2RhdGFfc2l6ZSA9IDA7CisgIGNoYXIgKmZpbGVfcGF0aDsKKworICBpZiAoIWN0 eHQtPnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0uc2V0ICYmICFjdHh0LT5zdGF0ZVtPUFRJT05f Q0VSVF9IQVNIXS5zZXQpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdV TUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgImEgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9i aW5hcnkgaGFzaCBmaWxlIGlzIGV4cGVjdGVkIGluIEFTQ0lJIHRleHQgZm9ybWF0XG4iCisgICAg ICAgICAgICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2RieF9oYXNoIFtvcHRp b25dIDxGSUxFPlxuIgorICAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uOlxuWy1ifC0tYmlu YXJ5LWhhc2hdIEZJTEUgW0JJTkFSWSBIQVNIIEZJTEVdXG4iCisgICAgICAgICAgICAgICAgICAg ICAgICJbLWN8LS1jZXJ0LWhhc2hdIEZJTEUgW0NFUlRGSUNBVEUgSEFTSCBGSUxFXVxuIik7CisK KyAgaWYgKGN0eHQtPnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0uYXJnID09IE5VTEwgJiYgY3R4 dC0+c3RhdGVbT1BUSU9OX0NFUlRfSEFTSF0uYXJnID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJf ZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3NpbmcgZGlzdHJ1c3RlZCBjZXJ0aWZp Y2F0ZS9iaW5hcnkgaGFzaCBmaWxlIik7CisKKyAgaWYgKGN0eHQtPnN0YXRlW09QVElPTl9CSU5B UllfSEFTSF0uYXJnICE9IE5VTEwpCisgICAgZmlsZV9wYXRoID0gY3R4dC0+c3RhdGVbT1BUSU9O X0JJTkFSWV9IQVNIXS5hcmc7CisgIGVsc2UKKyAgICBmaWxlX3BhdGggPSBjdHh0LT5zdGF0ZVtP UFRJT05fQ0VSVF9IQVNIXS5hcmc7CisKKyAgcmMgPSByZWFkX2hhc2hfZnJvbV9maWxlIChmaWxl X3BhdGgsICZoYXNoX2RhdGEsICZoYXNoX2RhdGFfc2l6ZSk7CisgIGlmIChyYyA9PSBHUlVCX0VS Ul9OT05FKQorICAgIHsKKyAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAg ICAgICAgICAgICAgICAgImFkZGluZyBhIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUvYmluYXJ5IGhh c2ggJTAyeCUwMnglMDJ4JTAyeC4uLlxuIgorICAgICAgICAgICAgICAgICAgICAiIHdpdGggc2l6 ZSBvZiAlIiBQUkl1R1JVQl9TSVpFICJcbiIsIGhhc2hfZGF0YVswXSwgaGFzaF9kYXRhWzFdLAor ICAgICAgICAgICAgICAgICAgICBoYXNoX2RhdGFbMl0sIGhhc2hfZGF0YVszXSwgaGFzaF9kYXRh X3NpemUpOworCisgICAgICBpZiAoY3R4dC0+c3RhdGVbT1BUSU9OX0JJTkFSWV9IQVNIXS5zZXQg fHwgY3R4dC0+c3RhdGVbT1BUSU9OX0NFUlRfSEFTSF0uc2V0KQorICAgICAgICB7CisgICAgICAg ICAgLyogT25seSBhY2NlcHQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUxMiBjZXJ0aWZpY2F0ZS9i aW5hcnkgaGFzaCAqLworICAgICAgICAgIGlmIChoYXNoX2RhdGFfc2l6ZSAhPSAzMiAmJiBoYXNo X2RhdGFfc2l6ZSAhPSA0OCAmJiBoYXNoX2RhdGFfc2l6ZSAhPSA2NCkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgcmMgPSBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFjY2VwdGFibGUgZGlzdHJ1c3RlZCBj ZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0eXBlIik7CisgICAgICAgICAgICAgIGdvdG8gY2xlYW47 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogUmVtb3ZlIGRpc3RydXN0ZWQg aGFzaCBmcm9tIHRoZSBkYiBsaXN0IGlmIHByZXNlbnQuICovCisgICAgICByZW1vdmVfaGFzaF9m cm9tX2RiIChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKTsKKworICAgICAgaWYgKGlzX2hhc2hf cHJlc2VudF9pbl9kYnggKGhhc2hfZGF0YSwgaGFzaF9kYXRhX3NpemUpID09IHRydWUpCisgICAg ICAgIHsKKyAgICAgICAgICByYyA9IGdydWJfZXJyb3IgKEdSVUJfRVJSX0VYSVNUUywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICJjb3VsZCBub3QgYWRkIGRpc3RydXN0ZWQgY2VydGlmaWNh dGUvYmluYXJ5IGhhc2gsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcyBpdCBpcyBw cmVzZW50IGluIHRoZSBkYnggbGlzdCIpOworICAgICAgICAgIGdvdG8gY2xlYW47CisgICAgICAg IH0KKworICAgICAgcmMgPSBhZGRfaGFzaCAoKGNvbnN0IGdydWJfdWludDhfdCAqKikgJmhhc2hf ZGF0YSwgaGFzaF9kYXRhX3NpemUsICZkYnguc2lnbmF0dXJlcywKKyAgICAgICAgICAgICAgICAg ICAgICZkYnguc2lnbmF0dXJlX3NpemUsICZkYnguc2lnbmF0dXJlX2VudHJpZXMpOworICAgICAg aWYgKHJjICE9IEdSVUJfRVJSX05PTkUpCisgICAgICAgIHJjID0gZ3J1Yl9lcnJvciAocmMsICJh ZGRpbmcgb2YgZGlzdHJ1c3RlZCBiaW5hcnkvY2VydGlmaWNhdGUgaGFzaCBmYWlsZWQiKTsKKyAg ICAgIGVsc2UKKyAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLAorICAgICAgICAg ICAgICAgICAgICAgICJhZGRlZCBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoICUw MnglMDJ4JTAyeCUwMnguLi5cbiB0byB0aGUgZGJ4IGxpc3RcbiIsCisgICAgICAgICAgICAgICAg ICAgICAgaGFzaF9kYXRhWzBdLCBoYXNoX2RhdGFbMV0sIGhhc2hfZGF0YVsyXSwgaGFzaF9kYXRh WzNdKTsKKyAgICB9CisKKyBjbGVhbjoKKyAgZ3J1Yl9mcmVlIChoYXNoX2RhdGEpOworCisgIHJl dHVybiByYzsKK30KKwogc3RhdGljIGdydWJfZXJyX3QKIGFwcGVuZGVkc2lnX2luaXQgKGdydWJf ZmlsZV90IGlvIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgZW51bSBncnViX2ZpbGVfdHlwZSB0 eXBlLAogICAgICAgICAgICAgICAgICAgdm9pZCAqKmNvbnRleHQgX19hdHRyaWJ1dGVfXyAoKHVu dXNlZCkpLCBlbnVtIGdydWJfdmVyaWZ5X2ZsYWdzICpmbGFncykKQEAgLTkxMSw2ICsxMjgxLDEx IEBAIGFwcGVuZGVkc2lnX2luaXQgKGdydWJfZmlsZV90IGlvIF9fYXR0cmlidXRlX18gKCh1bnVz ZWQpKSwgZW51bSBncnViX2ZpbGVfdHlwZSB0CiAgICAgICAgICAqIHZlcmlmaWVyLCBidXQgd2Ug bGFjayB0aGUgaHVicmlzIHJlcXVpcmVkIHRvIHRha2UgdGhpcyBvbi4gSW5zdGVhZCwKICAgICAg ICAgICogcmVxdWlyZSB0aGF0IGl0IGhhdmUgYW4gYXBwZW5kZWQgc2lnbmF0dXJlLgogICAgICAg ICAgKi8KKyAgICAgIGNhc2UgR1JVQl9GSUxFX1RZUEVfSEFTSF9UUlVTVDoKKyAgICAgICAgLyoK KyAgICAgICAgICogVGhpcyBpcyBhIGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoIHRvIGFkZCB0byBk Yi9kYnguCisgICAgICAgICAqIFRoaXMgbmVlZHMgdG8gYmUgdmVyaWZpZWQgb3IgYmxvY2tlZC4K KyAgICAgICAgICovCiAgICAgICBjYXNlIEdSVUJfRklMRV9UWVBFX0xJTlVYX0tFUk5FTDoKICAg ICAgIGNhc2UgR1JVQl9GSUxFX1RZUEVfR1JVQl9NT0RVTEU6CiAgICAgICAgIC8qCkBAIC05NjQs NyArMTMzOSw5IEBAIHN0YXRpYyBzdHJ1Y3QgZ3J1Yl9mcyBwc2V1ZG9fZnMgPSB7CiAgIC5mc19y ZWFkID0gcHNldWRvX3JlYWQKIH07CiAKLXN0YXRpYyBncnViX2NvbW1hbmRfdCBjbWRfdmVyaWZ5 LCBjbWRfbGlzdF9kYiwgY21kX2RieF9jZXJ0LCBjbWRfZGJfY2VydDsKK3N0YXRpYyBncnViX2V4 dGNtZF90IGNtZF9kYnhfaGFzaDsKK3N0YXRpYyBncnViX2NvbW1hbmRfdCBjbWRfdmVyaWZ5LCBj bWRfbGlzdF9kYiwgY21kX2RiX2NlcnQsIGNtZF9kYl9oYXNoLAorICAgICAgICAgICAgICAgICAg ICAgIGNtZF9saXN0X2RieCwgY21kX2RieF9jZXJ0OwogCiAvKiBDaGVjayB0aGUgY2VydGlmaWNh dGUgaGFzaCBwcmVzZW5jZSBpbiB0aGUgUEtTIGRieCBsaXN0LiAqLwogc3RhdGljIGJvb2wKQEAg LTEyMjgsOCArMTYwNSwyNyBAQCByZWdpc3Rlcl9hcHBlbmRlZF9zaWduYXR1cmVzX2NtZCAodm9p ZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJTaG93IHRoZSBs aXN0IG9mIHRydXN0ZWQgWC41MDkgY2VydGlmaWNhdGVzIGZyb20gdGhlIGRiIGxpc3QiKSk7CiAg IGNtZF9kYl9jZXJ0ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYl9jZXJ0 IiwgZ3J1Yl9jbWRfZGJfY2VydCwgTl8oIlg1MDlfQ0VSVElGSUNBVEUiKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJBZGQgdHJ1c3RlZCBYNTA5X0NFUlRJRklD QVRFIHRvIHRoZSBkYiBsaXN0IikpOwotICBjbWRfZGJ4X2NlcnQgPSBncnViX3JlZ2lzdGVyX2Nv bW1hbmQgKCJhcHBlbmRfcm1fZGJ4X2NlcnQiLCBncnViX2NtZF9kYnhfY2VydCwgTl8oIlg1MDlf Q0VSVElGSUNBVEUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO XygiUmVtb3ZlIGRpc3RydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSBmcm9tIHRoZSBkYiBsaXN0Iikp OworICAvKgorICAgKiBJZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQgd2l0aCBk eW5hbWljIGtleSBtYW5hZ2VtZW50IG1vZGUsCisgICAqIHJlZ2lzdGVyIGR5bmFtaWMgc2VjdXJl IGJvb3QgR1JVQiBjb21tYW5kcy4KKyAgICovCisgIGlmIChncnViX3Brc191c2Vfa2V5c3RvcmUg PT0gdHJ1ZSkKKyAgICB7CisgICAgICBjbWRfZGJ4X2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1h bmQgKCJhcHBlbmRfYWRkX2RieF9jZXJ0IiwgZ3J1Yl9jbWRfZGJ4X2NlcnQsIE5fKCJYNTA5X0NF UlRJRklDQVRFIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5fKCJBZGQgZGlzdHJ1c3RlZCBYNTA5X0NFUlRJRklDQVRFIHRvIHRoZSBkYnggbGlzdCIpKTsK KyAgICAgIGNtZF9saXN0X2RieCA9IGdydWJfcmVnaXN0ZXJfY29tbWFuZCAoImFwcGVuZF9saXN0 X2RieCIsIGdydWJfY21kX2xpc3RfZGJ4LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOXygiU2hvdyB0aGUgbGlzdCBvZiBkaXN0cnVzdGVkIGNlcnRpZmlj YXRlcyBhbmQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg Y2VydGlmaWNhdGUvYmluYXJ5IGhhc2hlcyBmcm9tIHRoZSBkYnggbGlzdCIpKTsKKyAgICAgIGNt ZF9kYl9oYXNoID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYl9oYXNoIiwg Z3J1Yl9jbWRfZGJfaGFzaCwgTl8oIkJJTkFSWSBIQVNIIEZJTEUiKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRkIHRydXN0ZWQgQklOQVJZIEhBU0gg dG8gdGhlIGRiIGxpc3QuIikpOworICAgICAgY21kX2RieF9oYXNoID0gZ3J1Yl9yZWdpc3Rlcl9l eHRjbWQgKCJhcHBlbmRfYWRkX2RieF9oYXNoIiwgZ3J1Yl9jbWRfZGJ4X2hhc2gsIDAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl8oIlstYnwtLWJpbmFyeS1o YXNoXSBGSUxFIFtCSU5BUlkgSEFTSCBGSUxFXVxuIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJbLWN8LS1jZXJ0LWhhc2hdIEZJTEUgW0NFUlRGSUNBVEUgSEFT SCBGSUxFXSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5f KCJBZGQgZGlzdHJ1c3RlZCBDRVJURklDQVRFL0JJTkFSWSBIQVNIIHRvIHRoZSBkYnggbGlzdC4i KSwgb3B0aW9ucyk7CisgICAgfQorICBlbHNlCisgICAgY21kX2RieF9jZXJ0ID0gZ3J1Yl9yZWdp c3Rlcl9jb21tYW5kICgiYXBwZW5kX3JtX2RieF9jZXJ0IiwgZ3J1Yl9jbWRfZGJ4X2NlcnQsIE5f KCJYNTA5X0NFUlRJRklDQVRFIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOXygiUmVtb3ZlIGRpc3RydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSBmcm9tIHRoZSBk YiBsaXN0IikpOwogfQogCiAvKiBJdCB1bnJlZ2lzdGVycyB0aGUgYXBwZW5kZWQgc2lnbmF0dXJl cyBHUlVCIGNvbW1hbmRzLiAqLwpAQCAtMTI0MCw2ICsxNjM2LDE2IEBAIHVucmVnaXN0ZXJfYXBw ZW5kZWRfc2lnbmF0dXJlc19jbWQgKHZvaWQpCiAgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChj bWRfbGlzdF9kYik7CiAgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfY2VydCk7CiAg IGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOworICAvKgorICAgKiBJZiBz aWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQgd2l0aCBkeW5hbWljIGtleSBtYW5hZ2Vt ZW50IG1vZGUsCisgICAqIHVucmVnaXN0ZXIgZHluYW1pYyBzZWN1cmUgYm9vdCBHUlVCIGNvbW1h bmRzLgorICAgKi8KKyAgaWYgKGdydWJfcGtzX3VzZV9rZXlzdG9yZSA9PSB0cnVlKQorICAgIHsK KyAgICAgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfbGlzdF9kYngpOworICAgICAgZ3J1 Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNtZF9kYl9oYXNoKTsKKyAgICAgIGdydWJfdW5yZWdpc3Rl cl9leHRjbWQgKGNtZF9kYnhfaGFzaCk7CisgICAgfQogfQogCiBHUlVCX01PRF9JTklUIChhcHBl bmRlZHNpZykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9maWxlLmggYi9pbmNsdWRlL2dydWIv ZmlsZS5oCmluZGV4IGQ2NzhkZTA2My4uMTZhNGI3ZDI2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dy dWIvZmlsZS5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9maWxlLmgKQEAgLTExNSw2ICsxMTUsOCBAQCBl bnVtIGdydWJfZmlsZV90eXBlCiAgICAgR1JVQl9GSUxFX1RZUEVfSEFTSExJU1QsCiAgICAgLyog RmlsZSBoYXNoZWQgYnkgaGFzaHN1bS4gICovCiAgICAgR1JVQl9GSUxFX1RZUEVfVE9fSEFTSCwK KyAgICAvKiBGaWxlIGhvbGRpbmcgY2VydGlmaWNpYXRlL2JpbmFyeSBoYXNoIHRvIGFkZCB0byBk Yi9kYnguICovCisgICAgR1JVQl9GSUxFX1RZUEVfSEFTSF9UUlVTVCwKICAgICAvKiBLZXlib2Fy ZCBsYXlvdXQuICAqLwogICAgIEdSVUJfRklMRV9UWVBFX0tFWUJPQVJEX0xBWU9VVCwKICAgICAv KiBQaWN0dXJlIGZpbGUuICAqLwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGlu ZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9s aXN0aW5mby9ncnViLWRldmVsCg==