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 CFF46CCA470 for ; Tue, 30 Sep 2025 11:51:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3Ype-0001I8-8B; Tue, 30 Sep 2025 07:47:46 -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 1v3Yof-0000xh-8A for grub-devel@gnu.org; Tue, 30 Sep 2025 07:46:45 -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 1v3YoY-0006LF-44 for grub-devel@gnu.org; Tue, 30 Sep 2025 07:46:43 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58U83qIX013378; Tue, 30 Sep 2025 11:46:33 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=XuiG4yhJXxPFrGlLV jyD3pBgzYXOeHqubew6UJbvb6I=; b=rCNxmy/L/yvHQO54yGXf7wUGkIEtfJjdr UKYAAFTcYLZWXA8gMfOuLJDnokMtrT5ZXCA3LGpnAFV2FRRJy/fsZwcFrMklLjx8 r427BXhHJSYKjquA5f+YBqZBpK8/g1kgKBKsVD3rByWk8TuLvpKE9UCWzIJ6Gh0G AjmR3XC4V7i4JHR9jx0JIkghbZDFFkaBI9wpveXcLOPybpDhUmVnS63GX6UEYLpB wrbPL/ZC/OTti7TXSEDY6MBWErx1oHs70ANEH1dKR4vA2eM2JnxHmCbGcKlu3RHx H6ZKF0w5hr0iMJ6ey5vTDUw4NFfSQITvhY4IIKp7JcCbDfq16tE3A== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49e7e78jnn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:32 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58U8bMg8003314; Tue, 30 Sep 2025 11:46:31 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49etmxu9uk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:31 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58UBkRp534799910 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 30 Sep 2025 11:46:27 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5B21220040; Tue, 30 Sep 2025 11:46:27 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 228AA20043; Tue, 30 Sep 2025 11:46:24 +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:23 +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 13/20] appended signatures: Create db and dbx lists Date: Tue, 30 Sep 2025 17:10:07 +0530 Message-ID: <20250930114018.78215-14-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: poV2x42iZBMLPhstkZ2z7VoYUEIU5dhK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTI3MDAyMCBTYWx0ZWRfX28E37WZBZe/X ioKNgkMD4wC/tJFl5lqyAWXcu1vi508liV0VMJffYpoC221xU9gIhkzsjerBlGyN0co7neP9wwf TXpuvjq5n9MZqoyiM3u5KP5WC4Mh7CauIX522gLifQs8psXBaTxpnnrBFxq/lzpdNm3IxjDHL1p s1fNcPkK6Ohw9IKK3jjBDewWUlZ0iLrnhLYh8lbO6EX+JYLmOB1i4OZWsHOeDK8fHk7OKCrL0RK SW2kQsf07gy45sruKazEINjYZWkzGvHMO7hw6HXN8RdlGA0qldAI0J/qem0+JEYOClBixeMOhdn 8FhggjIkakoX+ZQ/9z6IXhOLHT9Nx4ALu6pN7RJVhRJtK25cl0Rt93nqmmN2hBXSnmdezG9snNO 8TBv4Y3BuxzfjH9CSb82Hg6ZF1dOBA== X-Proofpoint-GUID: poV2x42iZBMLPhstkZ2z7VoYUEIU5dhK X-Authority-Analysis: v=2.4 cv=Jvj8bc4C c=1 sm=1 tr=0 ts=68dbc318 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=yJojWOMRYYMA:10 a=NEAV23lmAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=sCGIt9ieJHR2VkqI4G0A:9 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 lowpriorityscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 clxscore=1015 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2509270020 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 SWYgc2VjdXJlIGJvb3QgaXMgZW5hYmxlZCB3aXRoIHN0YXRpYyBrZXkgbWFuYWdlbWVudCBtb2Rl LCB0aGUgdHJ1c3RlZApjZXJ0aWZpY2F0ZXMgd2lsbCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgR1JV QiBFTEYgTm90ZSBhbmQgYWRkZWQgdG8gZGIgbGlzdC4KCklmIHNlY3VyZSBib290IGlzIGVuYWJs ZWQgd2l0aCBkeW5hbWljIGtleSBtYW5hZ2VtZW50IG1vZGUsIHRoZSB0cnVzdGVkCmNlcnRpZmlj YXRlcyBhbmQgY2VydGlmaWNhdGUvYmluYXJ5IGhhc2ggd2lsbCBiZSBleHRyYWN0ZWQgZnJvbSB0 aGUgUEtTCmFuZCBhZGRlZCB0byBkYiBsaXN0LiBUaGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMs IGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoCmFyZSByZWFkIGZyb20gdGhlIFBLUyBhbmQgYWRkZWQg dG8gZGJ4IGxpc3QuIEJvdGggZGJ4IGFuZCBkYiBsaXN0cyB1c2FnZSBpcwphZGRlZCBieSBhIHN1 YnNlcXVlbnQgcGF0Y2guCgpOb3RlOgoKSWYgdGhlIGNlcnRpZmljYXRlIG9yIHRoZSBjZXJ0aWZp Y2F0ZSBoYXNoIGV4aXN0cyBpbiB0aGUgZGJ4IGxpc3QsIHRoZW4gZG8gbm90CmFkZCB0aGF0IGNl cnRpZmljYXRlL2NlcnRpZmljYXRlIGhhc2ggdG8gdGhlIGRiIGxpc3QuCgpTaWduZWQtb2ZmLWJ5 OiBTdWRoYWthciBLdXBwdXNhbXkgPHN1ZGhha2FyQGxpbnV4LmlibS5jb20+ClJldmlld2VkLWJ5 OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+ClJldmlld2VkLWJ5OiBBdm5p c2ggQ2hvdWhhbiA8YXZuaXNoQGxpbnV4LmlibS5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgS2lw ZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgotLS0KIGdydWItY29yZS9jb21tYW5kcy9hcHBl bmRlZHNpZy9hcHBlbmRlZHNpZy5jIHwgNDA4ICsrKysrKysrKysrKysrKysrKy0KIGluY2x1ZGUv Z3J1Yi9lZmkvcGtzLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTEyICsrKysrCiBpbmNsdWRl L2dydWIvdHlwZXMuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiAzIGZpbGVzIGNo YW5nZWQsIDUwNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL2dydWIvZWZpL3Brcy5oCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1h bmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5k ZWRzaWcvYXBwZW5kZWRzaWcuYwppbmRleCBjYTU0YzkwZmEuLmJmYTVmMzMyZSAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKKysrIGIvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKQEAgLTM0LDYgKzM0LDcg QEAKICNpbmNsdWRlIDxncnViL2Vudi5oPgogI2luY2x1ZGUgPGdydWIvbG9ja2Rvd24uaD4KICNp bmNsdWRlIDxncnViL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZvcm1fa2V5c3RvcmUuaD4KKyNpbmNs dWRlIDxncnViL2VmaS9wa3MuaD4KIAogI2luY2x1ZGUgImFwcGVuZGVkc2lnLmgiCiAKQEAgLTQ2 LDYgKzQ3LDExIEBAIEdSVUJfTU9EX0xJQ0VOU0UgKCJHUEx2MysiKTsKICNkZWZpbmUgU0lHX01B R0lDICAgICAgICAgICJ+TW9kdWxlIHNpZ25hdHVyZSBhcHBlbmRlZH5cbiIKICNkZWZpbmUgU0lH X01BR0lDX1NJWkUgICAgICgoc2l6ZW9mKFNJR19NQUdJQykgLSAxKSkKIAorLyogU0hBMjU2LCBT SEEzODQgYW5kIFNIQTUxMiBoYXNoIHNpemVzLiAqLworI2RlZmluZSBTSEEyNTZfSEFTSF9TSVpF ICAgMzIKKyNkZWZpbmUgU0hBMzg0X0hBU0hfU0laRSAgIDQ4CisjZGVmaW5lIFNIQTUxMl9IQVNI X1NJWkUgICA2NAorCiAvKgogICogVGhpcyBzdHJ1Y3R1cmUgaXMgZXh0cmFjdGVkIGZyb20gc2Ny aXB0cy9zaWduLWZpbGUuYyBpbiB0aGUgbGludXgga2VybmVsCiAgKiBzb3VyY2UuIEl0IHdhcyBs aWNlbnNlZCBhcyBMR1BMdjIuMSssIHdoaWNoIGlzIEdQTHYzKyBjb21wYXRpYmxlLgpAQCAtNzks MTEgKzg1LDIzIEBAIHN0cnVjdCBzYl9kYXRhYmFzZQogewogICBncnViX3g1MDlfY2VydF90ICpj ZXJ0czsgICAgLyogQ2VydGlmaWNhdGVzLiAqLwogICBncnViX3VpbnQzMl90IGNlcnRfZW50cmll czsgLyogTnVtYmVyIG9mIGNlcnRpZmljYXRlcy4gKi8KKyAgZ3J1Yl91aW50OF90ICoqaGFzaGVz OyAgICAgIC8qIENlcnRpZmljYXRlL2JpbmFyeSBoYXNoZXMuICovCisgIGdydWJfc2l6ZV90ICpo YXNoX3NpemVzOyAgICAvKiBTaXplcyBvZiBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaGVzLiAqLwor ICBncnViX3VpbnQzMl90IGhhc2hfZW50cmllczsgLyogTnVtYmVyIG9mIGNlcnRpZmljYXRlL2Jp bmFyeSBoYXNoZXMuICovCisgIGJvb2wgaXNfZGI7ICAgICAgICAgICAgICAgICAvKiBGbGFnIHRv IGluZGljYXRlIHRoZSBkYi9kYnggbGlzdC4gKi8KIH07CiB0eXBlZGVmIHN0cnVjdCBzYl9kYXRh YmFzZSBzYl9kYXRhYmFzZV90OwogCiAvKiBUaGUgZGIgbGlzdCBpcyB1c2VkIHRvIHZhbGlkYXRl IGFwcGVuZGVkIHNpZ25hdHVyZXMuICovCi1zdGF0aWMgc2JfZGF0YWJhc2VfdCBkYiA9IHsuY2Vy dHMgPSBOVUxMLCAuY2VydF9lbnRyaWVzID0gMH07CitzdGF0aWMgc2JfZGF0YWJhc2VfdCBkYiA9 IHsuY2VydHMgPSBOVUxMLCAuY2VydF9lbnRyaWVzID0gMCwgLmhhc2hlcyA9IE5VTEwsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAuaGFzaF9zaXplcyA9IE5VTEwsIC5oYXNoX2VudHJpZXMg PSAwLCAuaXNfZGIgPSB0cnVlfTsKKy8qCisgKiBUaGUgZGJ4IGxpc3QgaXMgdXNlZCB0byBlbnN1 cmUgdGhhdCB0aGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgb3IgR1JVQgorICogbW9kdWxlcy9r ZXJuZWwgYmluYXJpZXMgYXJlIHJlamVjdGVkIGR1cmluZyBhcHBlbmRlZCBzaWduYXR1cmVzL2hh c2hlcworICogdmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHNiX2RhdGFiYXNlX3QgZGJ4ID0gey5j ZXJ0cyA9IE5VTEwsIC5jZXJ0X2VudHJpZXMgPSAwLCAuaGFzaGVzID0gTlVMTCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuaGFzaF9zaXplcyA9IE5VTEwsIC5oYXNoX2VudHJpZXMgPSAw LCAuaXNfZGIgPSBmYWxzZX07CiAKIC8qCiAgKiBTaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZsYWcg KGNoZWNrX3NpZ3MpLgpAQCAtMTE4LDYgKzEzNiwxNjkgQEAgc3RhdGljIHN0cnVjdCBncnViX2Zz IHBzZXVkb19mcyA9IHsKICAgLmZzX3JlYWQgPSBwc2V1ZG9fcmVhZAogfTsKIAorLyoKKyAqIEdV SUQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFuZCBnZW5l cmF0ZSB0aGUgaGFzaCB1c2luZworICogZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9uLgorICov CitzdGF0aWMgZ3J1Yl9lcnJfdAorZ2V0X2hhc2ggKGNvbnN0IGdydWJfcGFja2VkX2d1aWRfdCAq Z3VpZCwgY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3Np emUsCisgICAgICAgICAgZ3J1Yl91aW50OF90ICpoYXNoLCBncnViX3NpemVfdCAqaGFzaF9zaXpl KQoreworICBnY3J5X21kX3NwZWNfdCAqaGFzaF9mdW5jID0gTlVMTDsKKworICBpZiAoZ3VpZCA9 PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfUkFOR0UsICJH VUlEIGlzIG5vdCBhdmFpbGFibGUiKTsKKworICBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVC X1BLU19DRVJUX1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAg ICAgIGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTI1Nl9HVUlELCBH UlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDApCisgICAgaGFzaF9mdW5jID0gJl9nY3J5X2RpZ2Vz dF9zcGVjX3NoYTI1NjsKKyAgZWxzZSBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BLU19D RVJUX1NIQTM4NF9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAgICAgICAg ICAgZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfU0hBMzg0X0dVSUQsIEdS VUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICBoYXNoX2Z1bmMgPSAmX2djcnlfZGlnZXN0 X3NwZWNfc2hhMzg0OworICBlbHNlIGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NF UlRfU0hBNTEyX0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCB8fAorICAgICAgICAg ICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEE1MTJfR1VJRCwgR1JV Ql9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIGhhc2hfZnVuYyA9ICZfZ2NyeV9kaWdlc3Rf c3BlY19zaGE1MTI7CisgIGVsc2UKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VU X09GX1JBTkdFLCAidW5zdXBwb3J0ZWQgR1VJRCBoYXNoIik7CisKKyAgZ3J1Yl9jcnlwdG9faGFz aCAoaGFzaF9mdW5jLCBoYXNoLCBkYXRhLCBkYXRhX3NpemUpOworICAqaGFzaF9zaXplID0gaGFz aF9mdW5jLT5tZGxlbjsKKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKworc3RhdGljIGdy dWJfZXJyX3QKK2dlbmVyYXRlX2NlcnRfaGFzaCAoY29uc3QgZ3J1Yl9zaXplX3QgY2VydF9oYXNo X3NpemUsIGNvbnN0IGdydWJfdWludDhfdCAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgY29u c3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLCBncnViX3VpbnQ4X3QgKmhhc2gsIGdydWJfc2l6ZV90 ICpoYXNoX3NpemUpCit7CisgIGdydWJfcGFja2VkX2d1aWRfdCBndWlkID0geyAwIH07CisKKyAg Lyogc3VwcG9ydCBTSEEyNTYsIFNIQTM4NCBhbmQgU0hBNTEyIGZvciBjZXJ0aWZpY2F0ZSBoYXNo ICovCisgIGlmIChjZXJ0X2hhc2hfc2l6ZSA9PSBTSEEyNTZfSEFTSF9TSVpFKQorICAgIGdydWJf bWVtY3B5ICgmZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCwgR1JVQl9QQUNL RURfR1VJRF9TSVpFKTsKKyAgZWxzZSBpZiAoY2VydF9oYXNoX3NpemUgPT0gU0hBMzg0X0hBU0hf U0laRSkKKyAgICBncnViX21lbWNweSAoJmd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfU0hBMzg0 X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSk7CisgIGVsc2UgaWYgKGNlcnRfaGFzaF9zaXpl ID09IFNIQTUxMl9IQVNIX1NJWkUpCisgICAgZ3J1Yl9tZW1jcHkgKCZndWlkLCAmR1JVQl9QS1Nf Q0VSVF9YNTA5X1NIQTUxMl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpOworICBlbHNlCisg ICAgeworICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBwb3J0ZWQgaGFz aCB0eXBlICglIiBQUkl1R1JVQl9TSVpFICIpIGFuZCAiCisgICAgICAgICAgICAgICAgICAgICJz a2lwcGVkXG4iLCBjZXJ0X2hhc2hfc2l6ZSk7CisgICAgICByZXR1cm4gR1JVQl9FUlJfVU5LTk9X Tl9DT01NQU5EOworICAgIH0KKworICByZXR1cm4gZ2V0X2hhc2ggKCZndWlkLCBkYXRhLCBkYXRh X3NpemUsIGhhc2gsIGhhc2hfc2l6ZSk7Cit9CisKKy8qIENoZWNrIHRoZSBoYXNoIHByZXNlbmNl IGluIHRoZSBkYi9kYnggbGlzdC4gKi8KK3N0YXRpYyBib29sCitjaGVja19oYXNoX3ByZXNlbmNl IChncnViX3VpbnQ4X3QgKmNvbnN0IGhhc2gsIGNvbnN0IGdydWJfc2l6ZV90IGhhc2hfc2l6ZSwK KyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNiX2RhdGFiYXNlX3QgKnNiX2RhdGFiYXNlKQor eworICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IHNiX2RhdGFiYXNlLT5o YXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoc2JfZGF0YWJhc2UtPmhhc2hlc1tp XSA9PSBOVUxMKQorICAgICAgICBjb250aW51ZTsKKworICAgICAgaWYgKGhhc2hfc2l6ZSA9PSBz Yl9kYXRhYmFzZS0+aGFzaF9zaXplc1tpXSAmJgorICAgICAgICAgIGdydWJfbWVtY21wIChzYl9k YXRhYmFzZS0+aGFzaGVzW2ldLCBoYXNoLCBoYXNoX3NpemUpID09IDApCisgICAgICAgIHJldHVy biB0cnVlOworICAgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8qIEFkZCB0aGUgY2VydGlm aWNhdGUvYmluYXJ5IGhhc2ggaW50byB0aGUgZGIvZGJ4IGxpc3QuICovCitzdGF0aWMgZ3J1Yl9l cnJfdAorYWRkX2hhc2ggKGdydWJfdWludDhfdCAqY29uc3QgZGF0YSwgY29uc3QgZ3J1Yl9zaXpl X3QgZGF0YV9zaXplLCBzYl9kYXRhYmFzZV90ICpzYl9kYXRhYmFzZSkKK3sKKyAgZ3J1Yl91aW50 OF90ICoqaGFzaGVzOworICBncnViX3NpemVfdCAqaGFzaF9zaXplczsKKworICBpZiAoZGF0YSA9 PSBOVUxMIHx8IGRhdGFfc2l6ZSA9PSAwKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VS Ul9PVVRfT0ZfUkFOR0UsICJjZXJ0aWZpY2F0ZS9iaW5hcnktaGFzaCBkYXRhIG9yIHNpemUgaXMg bm90IGF2YWlsYWJsZSIpOworCisgIGlmIChzYl9kYXRhYmFzZS0+aXNfZGIgPT0gdHJ1ZSkKKyAg ICB7CisgICAgICBpZiAoY2hlY2tfaGFzaF9wcmVzZW5jZSAoZGF0YSwgZGF0YV9zaXplLCAmZGJ4 KSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRz aWciLAorICAgICAgICAgICAgICAgICAgICAgICAgImNhbm5vdCBhZGQgYSBoYXNoICglMDJ4JTAy eCUwMnglMDJ4KSwgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGJ4IGxpc3RcbiIsCisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdKTsKKyAg ICAgICAgICByZXR1cm4gR1JVQl9FUlJfQUNDRVNTX0RFTklFRDsKKyAgICAgICAgfQorICAgIH0K KworICBpZiAoY2hlY2tfaGFzaF9wcmVzZW5jZSAoZGF0YSwgZGF0YV9zaXplLCBzYl9kYXRhYmFz ZSkgPT0gdHJ1ZSkKKyAgICB7CisgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsCisg ICAgICAgICAgICAgICAgICAgICJjYW5ub3QgYWRkIGEgaGFzaCAoJTAyeCUwMnglMDJ4JTAyeCks IGFzIGl0IGlzIHByZXNlbnQgaW4gdGhlICVzIGxpc3RcbiIsCisgICAgICAgICAgICAgICAgICAg IGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sICgoc2JfZGF0YWJhc2UtPmlzX2Ri ID09IHRydWUpID8gImRiIiA6ICJkYngiKSk7CisgICAgICByZXR1cm4gR1JVQl9FUlJfRVhJU1RT OworICAgIH0KKworICBoYXNoZXMgPSBncnViX3JlYWxsb2MgKHNiX2RhdGFiYXNlLT5oYXNoZXMs IHNpemVvZiAoZ3J1Yl91aW50OF90ICopICogKHNiX2RhdGFiYXNlLT5oYXNoX2VudHJpZXMgKyAx KSk7CisgIGlmIChoYXNoZXMgPT0gTlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfT1VUX09GX01FTU9SWSwgIm91dCBvZiBtZW1vcnkiKTsKKworICBoYXNoX3NpemVzID0gZ3J1 Yl9yZWFsbG9jIChzYl9kYXRhYmFzZS0+aGFzaF9zaXplcywgc2l6ZW9mIChncnViX3NpemVfdCkg KiAoc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllcyArIDEpKTsKKyAgaWYgKGhhc2hfc2l6ZXMgPT0g TlVMTCkKKyAgICB7CisgICAgICAvKiBBbGxvY2F0ZWQgbWVtb3J5IHdpbGwgYmUgZnJlZWQgYnkg ZnJlZV9kYl9saXN0KCkvZnJlZV9kYnhfbGlzdCgpLiAqLworICAgICAgaGFzaGVzW3NiX2RhdGFi YXNlLT5oYXNoX2VudHJpZXNdID0gTlVMTDsKKyAgICAgIHNiX2RhdGFiYXNlLT5oYXNoZXMgPSBo YXNoZXM7CisgICAgICBzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzKys7CisKKyAgICAgIHJldHVy biBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAib3V0IG9mIG1lbW9yeSIpOwor ICAgIH0KKworICBoYXNoZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllc10gPSBncnViX21hbGxv YyAoZGF0YV9zaXplKTsKKyAgaWYgKGhhc2hlc1tzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzXSA9 PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAi b3V0IG9mIG1lbW9yeSIpOworCisgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAg ICAgICAgICAgICAiYWRkZWQgdGhlIGhhc2ggJTAyeCUwMnglMDJ4JTAyeC4uLiB3aXRoIHNpemUg b2YgJSIgUFJJdUdSVUJfU0laRSAiIHRvIHRoZSAlcyBsaXN0XG4iLAorICAgICAgICAgICAgICAg IGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sIGRhdGFfc2l6ZSwKKyAgICAgICAg ICAgICAgICAoKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVlKSA/ICJkYiIgOiAiZGJ4IikpOwor CisgIGdydWJfbWVtY3B5IChoYXNoZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllc10sIGRhdGEs IGRhdGFfc2l6ZSk7CisgIGhhc2hfc2l6ZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllc10gPSBk YXRhX3NpemU7CisgIHNiX2RhdGFiYXNlLT5oYXNoX3NpemVzID0gaGFzaF9zaXplczsKKyAgc2Jf ZGF0YWJhc2UtPmhhc2hlcyA9IGhhc2hlczsKKyAgc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllcysr OworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgYm9vbAoraXNfaGFzaCAo Y29uc3QgZ3J1Yl9wYWNrZWRfZ3VpZF90ICpndWlkKQoreworICAvKiBHVUlEIHR5cGUgb2YgdGhl IGJpbmFyeSBoYXNoLiAqLworICBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BLU19DRVJU X1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAgICAgIGdydWJf bWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9TSEEzODRfR1VJRCwgR1JVQl9QQUNLRURfR1VJ RF9TSVpFKSA9PSAwIHx8CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRf U0hBNTEyX0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICByZXR1cm4gdHJ1 ZTsKKworICAvKiBHVUlEIHR5cGUgb2YgdGhlIGNlcnRpZmljYXRlIGhhc2guICovCisgIGlmIChn cnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCwgR1JVQl9Q QUNLRURfR1VJRF9TSVpFKSA9PSAwIHx8CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJf UEtTX0NFUlRfWDUwOV9TSEEzODRfR1VJRCwgR1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwIHx8 CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEE1MTJfR1VJ RCwgR1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIHJldHVybiB0cnVlOworCisgIHJl dHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wKK2lzX3g1MDkgKGNvbnN0IGdydWJfcGFja2Vk X2d1aWRfdCAqZ3VpZCkKK3sKKyAgaWYgKGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VS VF9YNTA5X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICByZXR1cm4gdHJ1 ZTsKKworICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sCiBpc19jZXJ0X21hdGNoIChj b25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0MSwgY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2Vy dDIpCiB7CkBAIC0xMzYsNyArMzE3LDMzIEBAIGlzX2NlcnRfbWF0Y2ggKGNvbnN0IGdydWJfeDUw OV9jZXJ0X3QgKmNlcnQxLCBjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0MikKICAgcmV0dXJu IGZhbHNlOwogfQogCi0vKiBDaGVjayB0aGUgY2VydGlmaWNhdGUgcHJlc2VuY2UgaW4gdGhlIGRi IGxpc3QuICovCisvKiBDaGVjayB0aGUgY2VydGlmaWNhdGUgaGFzaCBwcmVzZW5jZSBpbiB0aGUg ZGJ4IGxpc3QuICovCitzdGF0aWMgYm9vbAoraXNfY2VydF9oYXNoX3ByZXNlbnRfaW5fZGJ4IChj b25zdCBncnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSkKK3sK KyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl91aW50MzJfdCBpOworICBncnViX3NpemVfdCBjZXJ0 X2hhc2hfc2l6ZSA9IDA7CisgIGdydWJfdWludDhfdCBjZXJ0X2hhc2hbR1JVQl9NQVhfSEFTSF9M RU5dID0geyAwIH07CisKKyAgZm9yIChpID0gMDsgaSA8IGRieC5oYXNoX2VudHJpZXM7IGkrKykK KyAgICB7CisgICAgICBpZiAoZGJ4Lmhhc2hlc1tpXSA9PSBOVUxMKQorICAgICAgICBjb250aW51 ZTsKKworICAgICAgcmMgPSBnZW5lcmF0ZV9jZXJ0X2hhc2ggKGRieC5oYXNoX3NpemVzW2ldLCBk YXRhLCBkYXRhX3NpemUsIGNlcnRfaGFzaCwgJmNlcnRfaGFzaF9zaXplKTsKKyAgICAgIGlmIChy YyAhPSBHUlVCX0VSUl9OT05FKQorICAgICAgICBjb250aW51ZTsKKworICAgICAgaWYgKGNlcnRf aGFzaF9zaXplID09IGRieC5oYXNoX3NpemVzW2ldICYmCisgICAgICAgICAgZ3J1Yl9tZW1jbXAg KGRieC5oYXNoZXNbaV0sIGNlcnRfaGFzaCwgY2VydF9oYXNoX3NpemUpID09IDApCisgICAgICAg IHJldHVybiB0cnVlOworICAgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8qIENoZWNrIHRo ZSBjZXJ0aWZpY2F0ZSBwcmVzZW5jZSBpbiB0aGUgZGIvZGJ4IGxpc3QuICovCiBzdGF0aWMgYm9v bAogY2hlY2tfY2VydF9wcmVzZW5jZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydF9pbiwg Y29uc3Qgc2JfZGF0YWJhc2VfdCAqc2JfZGF0YWJhc2UpCiB7CkBAIC0xNDksNyArMzU2LDExIEBA IGNoZWNrX2NlcnRfcHJlc2VuY2UgKGNvbnN0IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnRfaW4sIGNv bnN0IHNiX2RhdGFiYXNlX3QgKnNiX2RhCiAgIHJldHVybiBmYWxzZTsKIH0KIAotLyogQWRkIHRo ZSBjZXJ0aWZpY2F0ZSBpbnRvIHRoZSBkYiBsaXN0ICovCisvKgorICogQWRkIHRoZSBjZXJ0aWZp Y2F0ZSBpbnRvIHRoZSBkYiBsaXN0IGlmIGl0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBkYnggYW5k IGRiCisgKiBsaXN0IHdoZW4gaXNfZGIgaXMgdHJ1ZS4gQWRkIHRoZSBjZXJ0aWZpY2F0ZSBpbnRv IHRoZSBkYnggbGlzdCB3aGVuIGlzX2RiIGlzCisgKiBmYWxzZS4KKyAqLwogc3RhdGljIGdydWJf ZXJyX3QKIGFkZF9jZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBjb25zdCBn cnViX3NpemVfdCBkYXRhX3NpemUsCiAgICAgICAgICAgICAgICAgIHNiX2RhdGFiYXNlX3QgKnNi X2RhdGFiYXNlKQpAQCAtMTY3LDMwICszNzgsNTQgQEAgYWRkX2NlcnRpZmljYXRlIChjb25zdCBn cnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwKICAgcmMgPSBn cnViX3g1MDlfY2VydF9wYXJzZSAoZGF0YSwgZGF0YV9zaXplLCBjZXJ0KTsKICAgaWYgKHJjICE9 IEdSVUJfRVJSX05PTkUpCiAgICAgewotICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWci LCAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlIGRiIGxpc3RcbiIsCi0g ICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QpOworICAgICAgZ3J1Yl9kcHJpbnRmICgi YXBwZW5kZWRzaWciLCAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlICVz IGxpc3RcbiIsCisgICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QsIChzYl9kYXRhYmFz ZS0+aXNfZGIgPT0gdHJ1ZSkgPyAiZGIiIDogImRieCIpOwogICAgICAgZ3J1Yl9mcmVlIChjZXJ0 KTsKICAgICAgIHJldHVybiByYzsKICAgICB9CiAKKyAgLyoKKyAgICogT25seSBjaGVja3MgdGhl IGNlcnRpZmljYXRlIGFnYWluc3QgZGJ4IGlmIGlzX2RiIGlzIHRydWUgd2hlbiBkeW5hbWljIGtl eQorICAgKiBtYW5hZ2VtZW50IGlzIGVuYWJsZWQuCisgICAqLworICBpZiAoYXBwZW5kX2tleV9t Z210ID09IHRydWUpCisgICAgeworICAgICAgaWYgKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVl KQorICAgICAgICB7CisgICAgICAgICAgaWYgKGlzX2NlcnRfaGFzaF9wcmVzZW50X2luX2RieCAo ZGF0YSwgZGF0YV9zaXplKSA9PSB0cnVlIHx8CisgICAgICAgICAgICAgIGNoZWNrX2NlcnRfcHJl c2VuY2UgKGNlcnQsICZkYngpID09IHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycsIGFzIGl0IGlzIHByZXNlbnQgaW4g dGhlIGRieCBsaXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0LT5zdWJqZWN0 KTsKKyAgICAgICAgICAgICAgcmMgPSBHUlVCX0VSUl9BQ0NFU1NfREVOSUVEOworICAgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgaWYg KGNoZWNrX2NlcnRfcHJlc2VuY2UgKGNlcnQsIHNiX2RhdGFiYXNlKSA9PSB0cnVlKQogICAgIHsK ICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKLSAgICAgICAgICAgICAgICAgICAg ImNhbm5vdCBhZGQgYSBjZXJ0aWZpY2F0ZSBDTj0nJXMnLCBhcyBpdCBpcyBwcmVzZW50IGluIHRo ZSBkYiBsaXN0IiwKLSAgICAgICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCk7Ci0gICAgICBn cnViX3g1MDlfY2VydF9yZWxlYXNlIChjZXJ0KTsKLSAgICAgIGdydWJfZnJlZSAoY2VydCk7Ci0K LSAgICAgIHJldHVybiBHUlVCX0VSUl9FWElTVFM7CisgICAgICAgICAgICAgICAgICAgICJjYW5u b3QgYWRkIGEgY2VydGlmaWNhdGUgQ049JyVzJywgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgJXMg bGlzdCIsCisgICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QsICgoc2JfZGF0YWJhc2Ut PmlzX2RiID09IHRydWUpID8gImRiIiA6ICJkYngiKSk7CisgICAgICByYyA9IEdSVUJfRVJSX0VY SVNUUzsKKyAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5k ZWRzaWciLCAiYWRkZWQgYSBjZXJ0aWZpY2F0ZSBDTj0nJXMnIHRvIHRoZSBkYiBsaXN0XG4iLAot ICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QpOworICBncnViX2RwcmludGYgKCJhcHBlbmRl ZHNpZyIsICJhZGRlZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlICVzIGxpc3RcbiIsCisg ICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCwgKChzYl9kYXRhYmFzZS0+aXNfZGIgPT0gdHJ1 ZSkgPyAiZGIiIDogImRieCIpKTsKIAogICBjZXJ0LT5uZXh0ID0gc2JfZGF0YWJhc2UtPmNlcnRz OwogICBzYl9kYXRhYmFzZS0+Y2VydHMgPSBjZXJ0OwogICBzYl9kYXRhYmFzZS0+Y2VydF9lbnRy aWVzKys7CiAKKyAgcmV0dXJuIHJjOworCisgZmFpbDoKKyAgZ3J1Yl94NTA5X2NlcnRfcmVsZWFz ZSAoY2VydCk7CisgIGdydWJfZnJlZSAoY2VydCk7CisKICAgcmV0dXJuIHJjOwogfQogCkBAIC0z ODIsNiArNjE3LDY4IEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25hdHVyZSAoY29uc3QgZ3J1 Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIHJldHVybiBlcnI7CiB9CiAK Ky8qIEFkZCB0aGUgWC41MDkgY2VydGlmaWNhdGVzL2JpbmFyeSBoYXNoIHRvIHRoZSBkYiBsaXN0 IGZyb20gUEtTLiAqLworc3RhdGljIGdydWJfZXJyX3QKK2xvYWRfcGtzMmRiICh2b2lkKQorewor ICBncnViX2Vycl90IHJjOworICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8 IHBrc19rZXlzdG9yZS0+ZGJfZW50cmllczsgaSsrKQorICAgIHsKKyAgICAgIGlmIChpc19oYXNo ICgmcGtzX2tleXN0b3JlLT5kYltpXS5ndWlkKSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAg ICAgcmMgPSBhZGRfaGFzaCAocGtzX2tleXN0b3JlLT5kYltpXS5kYXRhLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHBrc19rZXlzdG9yZS0+ZGJbaV0uZGF0YV9zaXplLCAmZGIpOworICAgICAg ICAgIGlmIChyYyA9PSBHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZKQorICAgICAgICAgICAgcmV0dXJu IHJjOworICAgICAgICB9CisgICAgICBlbHNlIGlmIChpc194NTA5ICgmcGtzX2tleXN0b3JlLT5k YltpXS5ndWlkKSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgcmMgPSBhZGRfY2VydGlm aWNhdGUgKHBrc19rZXlzdG9yZS0+ZGJbaV0uZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGtzX2tleXN0b3JlLT5kYltpXS5kYXRhX3NpemUsICZkYik7CisgICAgICAgICAg aWYgKHJjID09IEdSVUJfRVJSX09VVF9PRl9NRU1PUlkpCisgICAgICAgICAgICByZXR1cm4gcmM7 CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRz aWciLCAidW5zdXBwb3J0ZWQgc2lnbmF0dXJlIGRhdGEgdHlwZSBhbmQgIgorICAgICAgICAgICAg ICAgICAgICAgICJza2lwcGVkICgldSlcbiIsIGkgKyAxKTsKKyAgICB9CisKKyAgcmV0dXJuIEdS VUJfRVJSX05PTkU7Cit9CisKKy8qIEFkZCB0aGUgY2VydGlmaWNhdGVzIGFuZCBjZXJ0aWZpY2F0 ZS9iaW5hcnkgaGFzaCB0byB0aGUgZGJ4IGxpc3QgZnJvbSBQS1MuICovCitzdGF0aWMgZ3J1Yl9l cnJfdAorbG9hZF9wa3MyZGJ4ICh2b2lkKQoreworICBncnViX2Vycl90IHJjOworICBncnViX3Vp bnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IHBrc19rZXlzdG9yZS0+ZGJ4X2VudHJpZXM7 IGkrKykKKyAgICB7CisgICAgICBpZiAoaXNfeDUwOSAoJnBrc19rZXlzdG9yZS0+ZGJ4W2ldLmd1 aWQpID09IHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9jZXJ0aWZpY2F0ZSAo cGtzX2tleXN0b3JlLT5kYnhbaV0uZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGtzX2tleXN0b3JlLT5kYnhbaV0uZGF0YV9zaXplLCAmZGJ4KTsKKyAgICAgICAgICBpZiAo cmMgPT0gR1JVQl9FUlJfT1VUX09GX01FTU9SWSkKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAg ICAgICAgfQorICAgICAgZWxzZSBpZiAoaXNfaGFzaCAoJnBrc19rZXlzdG9yZS0+ZGJ4W2ldLmd1 aWQpID09IHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9oYXNoIChwa3Nfa2V5 c3RvcmUtPmRieFtpXS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBrc19rZXlzdG9y ZS0+ZGJ4W2ldLmRhdGFfc2l6ZSwgJmRieCk7CisgICAgICAgICAgaWYgKHJjICE9IEdSVUJfRVJS X05PTkUpCisgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAg ICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBwb3J0ZWQgc2lnbmF0dXJl IGRhdGEgdHlwZSBhbmQgIgorICAgICAgICAgICAgICAgICAgICAgICJza2lwcGVkICgldSlcbiIs IGkgKyAxKTsKKyAgICB9CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKIC8qCiAgKiBF eHRyYWN0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUgRUxGIE5vdGUgaGVhZGVyLCBw YXJzZSBpdCwgYW5kIGFkZAogICogaXQgdG8gdGhlIGRiIGxpc3QuCkBAIC00MjIsMTEgKzcxOSw0 NiBAQCBsb2FkX2VsZjJkYiAodm9pZCkKICAgICB9CiB9CiAKKy8qCisgKiBFeHRyYWN0IHRydXN0 ZWQgYW5kIGRpc3RydXN0ZWQga2V5cyBmcm9tIFBLUyBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgZGIg YW5kCisgKiBkYnggbGlzdC4KKyAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9kYnNfZnJvbV9wa3Mg KHZvaWQpCit7CisgIGdydWJfZXJyX3QgZXJyOworCisgIGVyciA9IGxvYWRfcGtzMmRieCAoKTsK KyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIGdydWJfcHJpbnRmICgid2FybmluZzog ZGJ4IGxpc3QgbWlnaHQgbm90IGJlIGZ1bGx5IHBvcHVsYXRlZFxuIik7CisKKyAgLyoKKyAgICog SWYgdGhlIGRiIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50IG9yIGVtcHR5IGluIHRoZSBQS1Mgc3Rv cmFnZSwgdGhlbiByZWFkCisgICAqIHRoZSBzdGF0aWMga2V5cyBhcyBhIGRiIGRlZmF1bHQga2V5 cyBmcm9tIHRoZSBHUlVCIEVMRiBOb3RlIGFuZCBhZGQgdGhlbQorICAgKiBpbnRvIHRoZSBkYiBs aXN0LgorICAgKi8KKyAgaWYgKHBrc19rZXlzdG9yZS0+ZGIgPT0gTlVMTCkKKyAgICBsb2FkX2Vs ZjJkYiAoKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIGVyciA9IGxvYWRfcGtzMmRiICgpOworICAg ICAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgICAgICBncnViX3ByaW50ZiAoIndhcm5p bmc6IGRiIGxpc3QgbWlnaHQgbm90IGJlIGZ1bGx5IHBvcHVsYXRlZFxuIik7CisgICAgfQorCisg IGdydWJfcGtzX2ZyZWVfZGF0YSAoKTsKKyAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAi dGhlIGRiIGxpc3Qgbm93IGhhcyAldSBrZXlzXG4iCisgICAgICAgICAgICAgICAgInRoZSBkYngg bGlzdCBub3cgaGFzICV1IGtleXNcbiIsCisgICAgICAgICAgICAgICAgZGIuaGFzaF9lbnRyaWVz ICsgZGIuY2VydF9lbnRyaWVzLAorICAgICAgICAgICAgICAgIGRieC5oYXNoX2VudHJpZXMgKyBk YnguY2VydF9lbnRyaWVzKTsKK30KKwogLyogRnJlZSBkYiBsaXN0IG1lbW9yeSAqLwogc3RhdGlj IHZvaWQKIGZyZWVfZGJfbGlzdCAodm9pZCkKIHsKICAgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydDsK KyAgZ3J1Yl91aW50MzJfdCBpOwogCiAgIHdoaWxlIChkYi5jZXJ0cyAhPSBOVUxMKQogICAgIHsK QEAgLTQzNiw5ICs3NjgsMzcgQEAgZnJlZV9kYl9saXN0ICh2b2lkKQogICAgICAgZ3J1Yl9mcmVl IChjZXJ0KTsKICAgICB9CiAKKyAgZm9yIChpID0gMDsgaSA8IGRiLmhhc2hfZW50cmllczsgaSsr KQorICAgIGdydWJfZnJlZSAoZGIuaGFzaGVzW2ldKTsKKworICBncnViX2ZyZWUgKGRiLmhhc2hl cyk7CisgIGdydWJfZnJlZSAoZGIuaGFzaF9zaXplcyk7CiAgIGdydWJfbWVtc2V0ICgmZGIsIDAs IHNpemVvZiAoc2JfZGF0YWJhc2VfdCkpOwogfQogCisvKiBGcmVlIGRieCBsaXN0IG1lbW9yeSAq Lworc3RhdGljIHZvaWQKK2ZyZWVfZGJ4X2xpc3QgKHZvaWQpCit7CisgIGdydWJfeDUwOV9jZXJ0 X3QgKmNlcnQ7CisgIGdydWJfdWludDMyX3QgaTsKKworICB3aGlsZSAoZGJ4LmNlcnRzICE9IE5V TEwpCisgICAgeworICAgICAgY2VydCA9IGRieC5jZXJ0czsKKyAgICAgIGRieC5jZXJ0cyA9IGRi eC5jZXJ0cy0+bmV4dDsKKyAgICAgIGdydWJfeDUwOV9jZXJ0X3JlbGVhc2UgKGNlcnQpOworICAg ICAgZ3J1Yl9mcmVlIChjZXJ0KTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IGRieC5oYXNo X2VudHJpZXM7IGkrKykKKyAgICBncnViX2ZyZWUgKGRieC5oYXNoZXNbaV0pOworCisgIGdydWJf ZnJlZSAoZGJ4Lmhhc2hlcyk7CisgIGdydWJfZnJlZSAoZGJ4Lmhhc2hfc2l6ZXMpOworICBncnVi X21lbXNldCAoJmRieCwgMCwgc2l6ZW9mIChzYl9kYXRhYmFzZV90KSk7Cit9CisKIHN0YXRpYyBj b25zdCBjaGFyICoKIGdydWJfZW52X3JlYWRfc2VjIChzdHJ1Y3QgZ3J1Yl9lbnZfdmFyICp2YXIg X19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg KnZhbCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCkBAIC02MzEsMTAgKzk5MSwyMyBAQCBHUlVC X01PRF9JTklUIChhcHBlbmRlZHNpZykKICAgaWYgKHJjICE9IEFTTjFfU1VDQ0VTUykKICAgICBn cnViX2ZhdGFsICgiZXJyb3IgaW5pdGluZyBBU04uMSBkYXRhIHN0cnVjdHVyZXM6ICVkOiAlc1xu IiwgcmMsIGFzbjFfc3RyZXJyb3IgKHJjKSk7CiAKLSAgLyogRXh0cmFjdCB0cnVzdGVkIGtleXMg ZnJvbSBFTEYgTm90ZSBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgZGIuICovCi0gIGxvYWRfZWxmMmRi ICgpOwotICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ0aGUgZGIgbGlzdCBub3cgaGFz ICV1IHN0YXRpYyBrZXlzXG4iLAotICAgICAgICAgICAgICAgIGRiLmNlcnRfZW50cmllcyk7Cisg IC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCB3aXRoIHRoZSBk eW5hbWljIGtleSBtYW5hZ2VtZW50LAorICAgKiBleHRyYWN0IHRydXN0ZWQgYW5kIGRpc3RydXN0 ZWQga2V5cyBmcm9tIFBLUyBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgZGIKKyAgICogYW5kIGRieCBs aXN0LgorICAgKi8KKyAgaWYgKGFwcGVuZF9rZXlfbWdtdCA9PSB0cnVlKQorICAgIGNyZWF0ZV9k YnNfZnJvbV9wa3MgKCk7CisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMg ZW5hYmxlZCB3aXRoIHRoZSBzdGF0aWMga2V5IG1hbmFnZW1lbnQsCisgICAqIGV4dHJhY3QgdHJ1 c3RlZCBrZXlzIGZyb20gRUxGIE5vdGUgYW5kIHN0b3JlIHRoZW0gaW4gdGhlIGRiIGxpc3QuCisg ICAqLworICBlbHNlCisgICAgeworICAgICAgbG9hZF9lbGYyZGIgKCk7CisgICAgICBncnViX2Rw cmludGYgKCJhcHBlbmRlZHNpZyIsICJ0aGUgZGIgbGlzdCBub3cgaGFzICV1IHN0YXRpYyBrZXlz XG4iLAorICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOworICAgIH0KIAogICBn cnViX3ZlcmlmaWVyX3JlZ2lzdGVyICgmZ3J1Yl9hcHBlbmRlZHNpZ192ZXJpZmllcik7CiAgIGdy dWJfZGxfc2V0X3BlcnNpc3RlbnQgKG1vZCk7CkBAIC02NDgsNiArMTAyMSw3IEBAIEdSVUJfTU9E X0ZJTkkgKGFwcGVuZGVkc2lnKQogICAgKi8KIAogICBmcmVlX2RiX2xpc3QgKCk7CisgIGZyZWVf ZGJ4X2xpc3QgKCk7CiAgIGdydWJfcmVnaXN0ZXJfdmFyaWFibGVfaG9vayAoImNoZWNrX2FwcGVu ZGVkX3NpZ25hdHVyZXMiLCBOVUxMLCBOVUxMKTsKICAgZ3J1Yl9lbnZfdW5zZXQgKCJjaGVja19h cHBlbmRlZF9zaWduYXR1cmVzIik7CiAgIGdydWJfcmVnaXN0ZXJfdmFyaWFibGVfaG9vayAoImFw cGVuZGVkc2lnX2tleV9tZ210IiwgTlVMTCwgTlVMTCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2dy dWIvZWZpL3Brcy5oIGIvaW5jbHVkZS9ncnViL2VmaS9wa3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmZmMzA2ZjU5MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUv Z3J1Yi9lZmkvcGtzLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw MDYgLSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcwor ICogcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFu ZCBtYWRlIGF2YWlsYWJsZQorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRo ZSAyLUNsYXVzZSBCU0QgTGljZW5zZSB3aGljaAorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmli dXRpb24uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAx LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBk b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFOWSBFWFBSRVNT IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJQUJMRSBG T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi1zdGFnaW5nIChlZGsyLXN0YWdpbmcgcmVwbyBvZiB0aWFub2NvcmUpLAorICogdGhlIEltYWdl QXV0aGVudGljYXRpb24uaCBmaWxlIHVuZGVyIGl0LCBhbmQgaGVyZSdzIHRoZSBjb3B5cmlnaHQg YW5kIGxpY2Vuc2UuCisgKgorICogTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhlbnRpY2F0 aW9uLmgKKyAqCisgKiBDb3B5cmlnaHQgMjAyMiwgMjAyMywgMjAyNCwgMjAyNSBJQk0gQ29ycC4K KyAqLworCisjaWZuZGVmIFBLU19IRUFERVIKKyNkZWZpbmUgUEtTX0hFQURFUiAgIDEKKworI2lu Y2x1ZGUgPGdydWIvdHlwZXMuaD4KKworLyoKKyAqIEl0IGlzIGRlcml2ZWQgZnJvbSBFRklfQ0VS VF9YNTA5X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2lu Zy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAor ICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfWDUwOV9HVUlEIFwKKyAgKGdydWJfZ3VpZF90KSBc CisgIHsgMHhhMTU5YzBhNSwgMHhlNDk0LCAweGE3NGEsIFwKKyAgICB7IDB4ODcsIDB4YjUsIDB4 YWIsIDB4MTUsIDB4NWMsIDB4MmIsIDB4ZjAsIDB4NzIgfSBcCisgIH0KKworLyoKKyAqIEl0IGlz IGRlcml2ZWQgZnJvbSBFRklfQ0VSVF9TSEEyNTZfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRlL0d1aWQv SW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9TSEEyNTZf R1VJRCBcCisgIChncnViX2d1aWRfdCkgXAorICB7IDB4MjYxNmM0YzEsIDB4NGM1MCwgMHg5MjQw LCBcCisgICAgeyAweGFjLCAweGE5LCAweDQxLCAweGY5LCAweDM2LCAweDkzLCAweDQzLCAweDI4 IH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJX0NFUlRfU0hBMzg0X0dV SUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9iL21h c3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorICovCisjZGVm aW5lIEdSVUJfUEtTX0NFUlRfU0hBMzg0X0dVSUQgXAorICAoZ3J1Yl9ndWlkX3QpIFwKKyAgeyAw eDA3NTMzZWZmLCAweGQwOWYsIDB4Yzk0OCwgXAorICAgIHsgMHg4NSwgMHhmMSwgMHg4YSwgMHhk NSwgMHg2YywgMHg3MCwgMHgxZSwgMHgxIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVk IGZyb20gRUZJX0NFUlRfU0hBNTEyX0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9j b3JlL2VkazItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0 aGVudGljYXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfU0hBNTEyX0dVSUQgXAor ICAoZ3J1Yl9ndWlkX3QpIFwKKyAgeyAweGFlMGYzZTA5LCAweGM0YTYsIDB4NTA0ZiwgXAorICAg IHsgMHg5ZiwgMHgxYiwgMHhkNCwgMHgxZSwgMHgyYiwgMHg4OSwgMHhjMSwgMHg5YSB9IFwKKyAg fQorCisvKgorICogSXQgaXMgZGVyaXZlZCBmcm9tIEVGSV9DRVJUX1g1MDlfU0hBMjU2X0dVSUQu CisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9iL21hc3Rl ci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorICovCisjZGVmaW5l IEdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCBcCisgIChncnViX2d1aWRfdCkgXAorICB7 IDB4OTJhNGQyM2IsIDB4YzA5NiwgMHg3OTQwLCBcCisgICAgeyAweGI0LCAweDIwLCAweGZjLCAw eGY5LCAweDhlLCAweGYxLCAweDAzLCAweGVkIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJp dmVkIGZyb20gRUZJX0NFUlRfWDUwOV9TSEEzODRfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRlL0d1aWQv SW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9YNTA5X1NI QTM4NF9HVUlEICAgICBcCisgIChncnViX2d1aWRfdCkgXAorICB7IDB4NmU4Nzc2NzAsIDB4YzI4 MCwgMHhlNjRlLCBcCisgICAgeyAweGFhLCAweGQyLCAweDI4LCAweGIzLCAweDQ5LCAweGE2LCAw eDg2LCAweDViIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJX0NFUlRf WDUwOV9TSEE1MTJfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1z dGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRlL0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlv bi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTUxMl9HVUlEIFwKKyAgKGdy dWJfZ3VpZF90KSBcCisgIHsgMHg2M2JmNmQ0NCwgMHgwMjI1LCAweGRhNGMsIFwKKyAgICB7IDB4 YmMsIDB4ZmEsIDB4MjQsIDB4NjUsIDB4ZDIsIDB4YjAsIDB4ZmUsIDB4OWQgfSBcCisgIH0KKwor I2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvdHlwZXMuaCBiL2luY2x1ZGUvZ3J1Yi90 eXBlcy5oCmluZGV4IDQ1MDc5YmY2NS4uYjNiYTc2MmZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dy dWIvdHlwZXMuaAorKysgYi9pbmNsdWRlL2dydWIvdHlwZXMuaApAQCAtMzc5LDYgKzM3OSw4IEBA IHN0cnVjdCBncnViX2d1aWQKIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoNCkpKTsKIHR5cGVk ZWYgc3RydWN0IGdydWJfZ3VpZCBncnViX2d1aWRfdDsKIAorI2RlZmluZSBHUlVCX0dVSURfU0la RSAgICAoc2l6ZW9mIChncnViX2d1aWRfdCkpCisKIHN0cnVjdCBncnViX3BhY2tlZF9ndWlkCiB7 CiAgIGdydWJfdWludDMyX3QgZGF0YTE7CkBAIC0zODgsNCArMzkwLDYgQEAgc3RydWN0IGdydWJf cGFja2VkX2d1aWQKIH0gR1JVQl9QQUNLRUQ7CiB0eXBlZGVmIHN0cnVjdCBncnViX3BhY2tlZF9n dWlkIGdydWJfcGFja2VkX2d1aWRfdDsKIAorI2RlZmluZSBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUg ICAgKHNpemVvZiAoZ3J1Yl9wYWNrZWRfZ3VpZF90KSkKKwogI2VuZGlmIC8qICEgR1JVQl9UWVBF U19IRUFERVIgKi8KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApH cnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8v Z3J1Yi1kZXZlbAo=