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 726CFC7EE23 for ; Wed, 26 Apr 2023 00:43:25 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1prTFY-00083g-Iv; Tue, 25 Apr 2023 20:43:12 -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 1prTFV-00082m-TJ for qemu-devel@nongnu.org; Tue, 25 Apr 2023 20:43:09 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1prTF6-0006Pa-Vd for qemu-devel@nongnu.org; Tue, 25 Apr 2023 20:43:09 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33Q0gKfW015119; Wed, 26 Apr 2023 00:42:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=qcppdkim1; bh=WIMYuBgj3hQq9FhoU6hlvaWK8ni05y1gDXvBXNzFunA=; b=H99LxSxMg1v+TZHH3wGTtz+a6KqIhYZlF2+i8qrkUrZxJbPn6UCbIRPL+yAoTQUEdRbQ QbrzoLsMDwn+7+h3ES9Dm+F0+/6+jJ/iImKuD3PM48LaePY14YXLtI3X4Cf37N+V5rQS OBi6Ef33Rb/ntiHC50g7mQa6lhlWYLwKG0gVb6U9lTSEoURqFH9J15Hf/Q9y4a3/vHRB 2dLEEB7qTgUw0rQxyG6SZaPkT8xJOWeNrXn1OYg7Tbax0fUQZ4JbhLyn6Z6HIqR9tCm3 v/Ul8tdWE70EKyul/TlNltPJJjwSraxgz2GukXQFNKrf/RfiaQBDKXjMFR+oygdGVhI9 PQ== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q6brdt6jq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Apr 2023 00:42:37 +0000 Received: from pps.filterd (NALASPPMTA02.qualcomm.com [127.0.0.1]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 33Q0gaWx025125; Wed, 26 Apr 2023 00:42:36 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA02.qualcomm.com (PPS) with ESMTPS id 3q48nmcy67-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Apr 2023 00:42:36 +0000 Received: from NALASPPMTA02.qualcomm.com (NALASPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33Q0eJKh023326; Wed, 26 Apr 2023 00:42:36 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA02.qualcomm.com (PPS) with ESMTPS id 33Q0gZVU025117 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Apr 2023 00:42:36 +0000 Received: by hu-devc-sd-u20-a-1.qualcomm.com (Postfix, from userid 47164) id 9E2AA587; Tue, 25 Apr 2023 17:42:35 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: tsimpson@quicinc.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, bcain@quicinc.com, quic_mathbern@quicinc.com Subject: [PATCH 11/21] Hexagon (target/hexagon) Short-circuit packet register writes Date: Tue, 25 Apr 2023 17:42:26 -0700 Message-Id: <20230426004234.1319401-2-tsimpson@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230426004234.1319401-1-tsimpson@quicinc.com> References: <20230426004234.1319401-1-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: 89SOu-1j_dJzuFCku1LR_WCXunPBW4Ry X-Proofpoint-GUID: 89SOu-1j_dJzuFCku1LR_WCXunPBW4Ry X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-25_11,2023-04-25_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 impostorscore=0 mlxscore=0 spamscore=0 priorityscore=1501 phishscore=0 clxscore=1015 malwarescore=0 mlxlogscore=711 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304260004 Received-SPF: pass client-ip=205.220.180.131; envelope-from=tsimpson@qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org SW4gY2VydGFpbiBjYXNlcywgd2UgY2FuIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiB3cml0aW5nIHRv IGhleF9uZXdfdmFsdWUKYW5kIHdyaXRlIGRpcmVjdGx5IHRvIGhleF9ncHIuICBXZSBhZGQgbmVl ZF9jb21taXQgZmllbGQgdG8gRGlzYXNDb250ZXh0CmluZGljYXRpbmcgaWYgdGhlIGVuZC1vZi1w YWNrZXQgY29tbWl0IGlzIG5lZWRlZC4gIElmIGl0IGlzIG5vdCBuZWVkZWQsCmdldF9yZXN1bHRf Z3ByKCkgYW5kIGdldF9yZXN1bHRfZ3ByX3BhaXIoKSBjYW4gcmV0dXJuIGhleF9ncHIuCgpXZSBw YXNzIHRoZSBjdHgtPm5lZWRfY29tbWl0IHRvIGhlbHBlcnMgd2hlbiBuZWVkZWQuCgpGaW5hbGx5 LCB3ZSBjYW4gZWFybHktZXhpdCBmcm9tIGdlbl9yZWdfd3JpdGVzIGR1cmluZyBwYWNrZXQgY29t bWl0LgoKVGhlcmUgYXJlIGEgZmV3IGluc3RydWN0aW9ucyB3aG9zZSBzZW1hbnRpY3Mgd3JpdGUg dG8gdGhlIHJlc3VsdCBiZWZvcmUKcmVhZGluZyBhbGwgdGhlIGlucHV0cy4gIFRoZXJlZm9yZSwg dGhlIGlkZWYtcGFyc2VyIGdlbmVyYXRlZCBjb2RlIGlzCmluY29tcGF0aWJsZSB3aXRoIHNob3J0 LWNpcmN1aXQuICBXZSB0ZWxsIGlkZWYtcGFyc2VyIHRvIHNraXAgdGhlbS4KCkZvciBkZWJ1Z2dp bmcgcHVycG9zZXMsIHdlIGFkZCBhIGNwdSBwcm9wZXJ0eSB0byB0dXJuIG9mZiBzaG9ydC1jaXJj dWl0LgpXaGVuIHRoZSBzaG9ydC1jaXJjdWl0IHByb3BlcnR5IGlzIGZhbHNlLCB3ZSBza2lwIHRo ZSBhbmFseXNpcyBhbmQgZm9yY2UKdGhlIGVuZC1vZi1wYWNrZXQgY29tbWl0LgoKSGVyZSdzIGEg c2ltcGxlIGV4YW1wbGUgb2YgdGhlIFRDRyBnZW5lcmF0ZWQgZm9yCjB4MDA0MDAwYjQ6ICAweDc4 MDBjMDIwIHsgICAgICAgUjAgPSAjMHgxIH0KCkJFRk9SRToKIC0tLS0gMDA0MDAwYjQKIG1vdmlf aTMyIG5ld19yMCwkMHgxCiBtb3ZfaTMyIHIwLG5ld19yMAoKQUZURVI6CiAtLS0tIDAwNDAwMGI0 CiBtb3ZpX2kzMiByMCwkMHgxCgpTaWduZWQtb2ZmLWJ5OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBz b25AcXVpY2luYy5jb20+Ci0tLQogdGFyZ2V0L2hleGFnb24vY3B1LmggICAgICAgICAgICAgICAg ICAgIHwgIDEgKwogdGFyZ2V0L2hleGFnb24vZ2VuX3RjZy5oICAgICAgICAgICAgICAgIHwgIDMg Ky0KIHRhcmdldC9oZXhhZ29uL2dlbnB0ci5oICAgICAgICAgICAgICAgICB8ICAyICsKIHRhcmdl dC9oZXhhZ29uL2hlbHBlci5oICAgICAgICAgICAgICAgICB8ICAyICstCiB0YXJnZXQvaGV4YWdv bi9tYWNyb3MuaCAgICAgICAgICAgICAgICAgfCAxMyArKysrLQogdGFyZ2V0L2hleGFnb24vdHJh bnNsYXRlLmggICAgICAgICAgICAgIHwgIDIgKwogdGFyZ2V0L2hleGFnb24vYXJjaC5jICAgICAg ICAgICAgICAgICAgIHwgIDMgKy0KIHRhcmdldC9oZXhhZ29uL2NwdS5jICAgICAgICAgICAgICAg ICAgICB8ICA1ICstCiB0YXJnZXQvaGV4YWdvbi9nZW5wdHIuYyAgICAgICAgICAgICAgICAgfCAz MCArKysrKy0tLS0tLS0KIHRhcmdldC9oZXhhZ29uL29wX2hlbHBlci5jICAgICAgICAgICAgICB8 ICA1ICstCiB0YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuYyAgICAgICAgICAgICAgfCA2NSArKysr KysrKysrKysrKysrKysrKysrKystCiB0YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX2Z1bmNzLnB5 ICAgICAgfCAgMiArCiB0YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX3Byb3Rvcy5weSAgICAgfCAx MCArKystCiB0YXJnZXQvaGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3MucHkgfCAgNyArKysK IHRhcmdldC9oZXhhZ29uL2dlbl90Y2dfZnVuY3MucHkgICAgICAgICB8ICA1ICsrCiB0YXJnZXQv aGV4YWdvbi9oZXhfY29tbW9uLnB5ICAgICAgICAgICAgfCAgMyArKwogMTYgZmlsZXMgY2hhbmdl ZCwgMTI4IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rhcmdl dC9oZXhhZ29uL2NwdS5oIGIvdGFyZ2V0L2hleGFnb24vY3B1LmgKaW5kZXggODFiNjYzZWNmYi4u OTI1MjA1NWEzOCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vY3B1LmgKKysrIGIvdGFyZ2V0 L2hleGFnb24vY3B1LmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBzdHJ1Y3QgQXJjaENQVSB7CiAKICAg ICBib29sIGxsZGJfY29tcGF0OwogICAgIHRhcmdldF91bG9uZyBsbGRiX3N0YWNrX2FkanVzdDsK KyAgICBib29sIHNob3J0X2NpcmN1aXQ7CiB9OwogCiAjaW5jbHVkZSAiY3B1X2JpdHMuaCIKZGlm ZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dlbl90Y2cuaCBiL3RhcmdldC9oZXhhZ29uL2dlbl90 Y2cuaAppbmRleCBkYmI2NGI5MjU5Li5lYzM4ODYyOWIzIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4 YWdvbi9nZW5fdGNnLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VuX3RjZy5oCkBAIC01OTIsNyAr NTkyLDggQEAKICNkZWZpbmUgZkdFTl9UQ0dfQTVfQUNTKFNIT1JUQ09ERSkgXAogICAgIGRvIHsg XAogICAgICAgICBnZW5faGVscGVyX3ZhY3NoX3ByZWQoUGVWLCBjcHVfZW52LCBSeHhWLCBSc3NW LCBSdHRWKTsgXAotICAgICAgICBnZW5faGVscGVyX3ZhY3NoX3ZhbChSeHhWLCBjcHVfZW52LCBS eHhWLCBSc3NWLCBSdHRWKTsgXAorICAgICAgICBnZW5faGVscGVyX3ZhY3NoX3ZhbChSeHhWLCBj cHVfZW52LCBSeHhWLCBSc3NWLCBSdHRWLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRjZ19jb25zdGFudF90bChjdHgtPm5lZWRfY29tbWl0KSk7IFwKICAgICB9IHdoaWxlICgwKQog CiAjZGVmaW5lIGZHRU5fVENHX1MyX2NhYmFjZGVjYmluKFNIT1JUQ09ERSkgXApkaWZmIC0tZ2l0 IGEvdGFyZ2V0L2hleGFnb24vZ2VucHRyLmggYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaAppbmRl eCA3NWQwZmMyNjJkLi40MjA4NjdmOTM0IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9nZW5w dHIuaAorKysgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaApAQCAtNTgsNCArNTgsNiBAQCB2b2lk IGdlbl9zZXRfaGFsZihpbnQgTiwgVENHdiByZXN1bHQsIFRDR3Ygc3JjKTsKIHZvaWQgZ2VuX3Nl dF9oYWxmX2k2NChpbnQgTiwgVENHdl9pNjQgcmVzdWx0LCBUQ0d2IHNyYyk7CiB2b2lkIHByb2Jl X25vc2h1Zl9sb2FkKFRDR3YgdmEsIGludCBzLCBpbnQgbWkpOwogCitleHRlcm4gY29uc3QgdGFy Z2V0X3Vsb25nIHJlZ19pbW11dF9tYXNrc1tUT1RBTF9QRVJfVEhSRUFEX1JFR1NdOworCiAjZW5k aWYKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2hlbHBlci5oIGIvdGFyZ2V0L2hleGFnb24v aGVscGVyLmgKaW5kZXggNzM4NDllM2Q0OS4uNGI3NTBkMDM1MSAxMDA2NDQKLS0tIGEvdGFyZ2V0 L2hleGFnb24vaGVscGVyLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vaGVscGVyLmgKQEAgLTI5LDcg KzI5LDcgQEAgREVGX0hFTFBFUl9GTEFHU180KGZjaXJjYWRkLCBUQ0dfQ0FMTF9OT19SV0dfU0Us IHMzMiwgczMyLCBzMzIsIHMzMiwgczMyKQogREVGX0hFTFBFUl9GTEFHU18xKGZicmV2LCBUQ0df Q0FMTF9OT19SV0dfU0UsIGkzMiwgaTMyKQogREVGX0hFTFBFUl8zKHNmcmVjaXBhLCBpNjQsIGVu diwgZjMyLCBmMzIpCiBERUZfSEVMUEVSXzIoc2ZpbnZzcXJ0YSwgaTY0LCBlbnYsIGYzMikKLURF Rl9IRUxQRVJfNCh2YWNzaF92YWwsIHM2NCwgZW52LCBzNjQsIHM2NCwgczY0KQorREVGX0hFTFBF Ul81KHZhY3NoX3ZhbCwgczY0LCBlbnYsIHM2NCwgczY0LCBzNjQsIGkzMikKIERFRl9IRUxQRVJf RkxBR1NfNCh2YWNzaF9wcmVkLCBUQ0dfQ0FMTF9OT19SV0dfU0UsIHMzMiwgZW52LCBzNjQsIHM2 NCwgczY0KQogREVGX0hFTFBFUl9GTEFHU18yKGNhYmFjZGVjYmluX3ZhbCwgVENHX0NBTExfTk9f UldHX1NFLCBzNjQsIHM2NCwgczY0KQogREVGX0hFTFBFUl9GTEFHU18yKGNhYmFjZGVjYmluX3By ZWQsIFRDR19DQUxMX05PX1JXR19TRSwgczMyLCBzNjQsIHM2NCkKZGlmZiAtLWdpdCBhL3Rhcmdl dC9oZXhhZ29uL21hY3Jvcy5oIGIvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKaW5kZXggMTZlNzJl ZDBkNS4uYTY4NDQ2YTM2NyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKKysr IGIvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKQEAgLTQ0LDggKzQ0LDE3IEBACiAgICAgICAgICAg ICAgICAgICAgcmVnX2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCkKIAogI2RlZmluZSBTRVRfVVNS X0ZJRUxEKEZJRUxELCBWQUwpIFwKLSAgICBmSU5TRVJUX0JJVFMoZW52LT5uZXdfdmFsdWVbSEVY X1JFR19VU1JdLCByZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lkdGgsIFwKLSAgICAgICAgICAgICAg ICAgcmVnX2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCwgKFZBTCkpCisgICAgZG8geyBcCisgICAg ICAgIGlmIChwa3RfbmVlZF9jb21taXQpIHsgXAorICAgICAgICAgICAgZklOU0VSVF9CSVRTKGVu di0+bmV3X3ZhbHVlW0hFWF9SRUdfVVNSXSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgcmVn X2ZpZWxkX2luZm9bRklFTERdLndpZHRoLCBcCisgICAgICAgICAgICAgICAgICAgICAgICByZWdf ZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0LCAoVkFMKSk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAor ICAgICAgICAgICAgZklOU0VSVF9CSVRTKGVudi0+Z3ByW0hFWF9SRUdfVVNSXSwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgcmVnX2ZpZWxkX2luZm9bRklFTERdLndpZHRoLCBcCisgICAgICAg ICAgICAgICAgICAgICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0LCAoVkFMKSk7IFwK KyAgICAgICAgfSBcCisgICAgfSB3aGlsZSAoMCkKICNlbmRpZgogCiAjaWZkZWYgUUVNVV9HRU5F UkFURQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmggYi90YXJnZXQvaGV4 YWdvbi90cmFuc2xhdGUuaAppbmRleCBmNzIyMjg4NTlmLi4zZjZmZDM0NTJjIDEwMDY0NAotLS0g YS90YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuaAorKysgYi90YXJnZXQvaGV4YWdvbi90cmFuc2xh dGUuaApAQCAtNjIsMTAgKzYyLDEyIEBAIHR5cGVkZWYgc3RydWN0IERpc2FzQ29udGV4dCB7CiAg ICAgaW50IHFyZWdfbG9nX2lkeDsKICAgICBERUNMQVJFX0JJVE1BUChxcmVnc19yZWFkLCBOVU1f UVJFR1MpOwogICAgIGJvb2wgcHJlX2NvbW1pdDsKKyAgICBib29sIG5lZWRfY29tbWl0OwogICAg IFRDR0NvbmQgYnJhbmNoX2NvbmQ7CiAgICAgdGFyZ2V0X3Vsb25nIGJyYW5jaF9kZXN0OwogICAg IGJvb2wgaXNfdGlnaHRfbG9vcDsKICAgICBib29sIG5lZWRfcGt0X2hhc19zdG9yZV9zMTsKKyAg ICBib29sIHNob3J0X2NpcmN1aXQ7CiB9IERpc2FzQ29udGV4dDsKIAogc3RhdGljIGlubGluZSB2 b2lkIGN0eF9sb2dfcHJlZF93cml0ZShEaXNhc0NvbnRleHQgKmN0eCwgaW50IHBudW0pCmRpZmYg LS1naXQgYS90YXJnZXQvaGV4YWdvbi9hcmNoLmMgYi90YXJnZXQvaGV4YWdvbi9hcmNoLmMKaW5k ZXggZGE3OWI0MWM0ZC4uZDA1M2Q2ODQ4NyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vYXJj aC5jCisrKyBiL3RhcmdldC9oZXhhZ29uL2FyY2guYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAg Q29weXJpZ2h0KGMpIDIwMTktMjAyMiBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBB bGwgUmlnaHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjMgUXVhbGNvbW0g SW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKICAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMjI0LDYgKzIyNCw3IEBAIHZvaWQgYXJjaF9m cG9wX3N0YXJ0KENQVUhleGFnb25TdGF0ZSAqZW52KQogCiB2b2lkIGFyY2hfZnBvcF9lbmQoQ1BV SGV4YWdvblN0YXRlICplbnYpCiB7CisgICAgY29uc3QgYm9vbCBwa3RfbmVlZF9jb21taXQgPSB0 cnVlOwogICAgIGludCBmbGFncyA9IGdldF9mbG9hdF9leGNlcHRpb25fZmxhZ3MoJmVudi0+ZnBf c3RhdHVzKTsKICAgICBpZiAoZmxhZ3MgIT0gMCkgewogICAgICAgICBTT0ZURkxPQVRfVEVTVF9G TEFHKGZsb2F0X2ZsYWdfaW5leGFjdCwgRlBJTlBGLCBGUElOUEUpOwpkaWZmIC0tZ2l0IGEvdGFy Z2V0L2hleGFnb24vY3B1LmMgYi90YXJnZXQvaGV4YWdvbi9jcHUuYwppbmRleCBhYjQwY2ZjMjgz Li40YWRmOTBkY2ZhIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuYworKysgYi90YXJn ZXQvaGV4YWdvbi9jcHUuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0KGMpIDIw MTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjMgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50 ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQpAQCAtNTIsNiArNTIsOCBAQCBzdGF0aWMgUHJvcGVydHkgaGV4YWdvbl9sbGRi X2NvbXBhdF9wcm9wZXJ0eSA9CiBzdGF0aWMgUHJvcGVydHkgaGV4YWdvbl9sbGRiX3N0YWNrX2Fk anVzdF9wcm9wZXJ0eSA9CiAgICAgREVGSU5FX1BST1BfVU5TSUdORUQoImxsZGItc3RhY2stYWRq dXN0IiwgSGV4YWdvbkNQVSwgbGxkYl9zdGFja19hZGp1c3QsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgcWRldl9wcm9wX3VpbnQzMiwgdGFyZ2V0X3Vsb25nKTsKK3N0YXRpYyBQcm9wZXJ0 eSBoZXhhZ29uX3Nob3J0X2NpcmN1aXRfcHJvcGVydHkgPQorICAgIERFRklORV9QUk9QX0JPT0wo InNob3J0LWNpcmN1aXQiLCBIZXhhZ29uQ1BVLCBzaG9ydF9jaXJjdWl0LCB0cnVlKTsKIAogY29u c3QgY2hhciAqIGNvbnN0IGhleGFnb25fcmVnbmFtZXNbVE9UQUxfUEVSX1RIUkVBRF9SRUdTXSA9 IHsKICAgICJyMCIsICJyMSIsICAicjIiLCAgInIzIiwgICJyNCIsICAgInI1IiwgICJyNiIsICAi cjciLApAQCAtMzI4LDYgKzMzMCw3IEBAIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X2luaXQoT2Jq ZWN0ICpvYmopCiAgICAgY3B1X3NldF9jcHVzdGF0ZV9wb2ludGVycyhjcHUpOwogICAgIHFkZXZf cHJvcGVydHlfYWRkX3N0YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFnb25fbGxkYl9jb21wYXRfcHJv cGVydHkpOwogICAgIHFkZXZfcHJvcGVydHlfYWRkX3N0YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFn b25fbGxkYl9zdGFja19hZGp1c3RfcHJvcGVydHkpOworICAgIHFkZXZfcHJvcGVydHlfYWRkX3N0 YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFnb25fc2hvcnRfY2lyY3VpdF9wcm9wZXJ0eSk7CiB9CiAK ICNpbmNsdWRlICJody9jb3JlL3RjZy1jcHUtb3BzLmgiCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4 YWdvbi9nZW5wdHIuYyBiL3RhcmdldC9oZXhhZ29uL2dlbnB0ci5jCmluZGV4IGU0YzExNmVkYzAu Ljk0MzFiZWViYzMgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2dlbnB0ci5jCisrKyBiL3Rh cmdldC9oZXhhZ29uL2dlbnB0ci5jCkBAIC00NSw3ICs0NSw3IEBAIFRDR3YgZ2VuX3JlYWRfcHJl ZyhUQ0d2IHByZWQsIHVpbnQ4X3QgbnVtKQogCiAjZGVmaW5lIElNTVVUQUJMRSAofjApCiAKLXN0 YXRpYyBjb25zdCB0YXJnZXRfdWxvbmcgcmVnX2ltbXV0X21hc2tzW1RPVEFMX1BFUl9USFJFQURf UkVHU10gPSB7Citjb25zdCB0YXJnZXRfdWxvbmcgcmVnX2ltbXV0X21hc2tzW1RPVEFMX1BFUl9U SFJFQURfUkVHU10gPSB7CiAgICAgW0hFWF9SRUdfVVNSXSA9IDB4YzEzMDAwYzAsCiAgICAgW0hF WF9SRUdfUENdID0gSU1NVVRBQkxFLAogICAgIFtIRVhfUkVHX0dQXSA9IDB4M2YsCkBAIC03MCwx NCArNzAsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGdlbl9tYXNrZWRfcmVnX3dyaXRlKFRDR3Yg bmV3X3ZhbCwgVENHdiBjdXJfdmFsLAogCiBzdGF0aWMgVENHdiBnZXRfcmVzdWx0X2dwcihEaXNh c0NvbnRleHQgKmN0eCwgaW50IHJudW0pCiB7Ci0gICAgcmV0dXJuIGhleF9uZXdfdmFsdWVbcm51 bV07CisgICAgaWYgKGN0eC0+bmVlZF9jb21taXQpIHsKKyAgICAgICAgcmV0dXJuIGhleF9uZXdf dmFsdWVbcm51bV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGhleF9ncHJbcm51bV07 CisgICAgfQogfQogCiBzdGF0aWMgVENHdl9pNjQgZ2V0X3Jlc3VsdF9ncHJfcGFpcihEaXNhc0Nv bnRleHQgKmN0eCwgaW50IHJudW0pCiB7CiAgICAgVENHdl9pNjQgcmVzdWx0ID0gdGNnX3RlbXBf bmV3X2k2NCgpOwotICAgIHRjZ19nZW5fY29uY2F0X2kzMl9pNjQocmVzdWx0LCBoZXhfbmV3X3Zh bHVlW3JudW1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXhfbmV3X3Zh bHVlW3JudW0gKyAxXSk7CisgICAgdGNnX2dlbl9jb25jYXRfaTMyX2k2NChyZXN1bHQsIGdldF9y ZXN1bHRfZ3ByKGN0eCwgcm51bSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdldF9yZXN1bHRfZ3ByKGN0eCwgcm51bSArIDEpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog CkBAIC04Niw3ICs5MCw3IEBAIHZvaWQgZ2VuX2xvZ19yZWdfd3JpdGUoRGlzYXNDb250ZXh0ICpj dHgsIGludCBybnVtLCBUQ0d2IHZhbCkKICAgICBjb25zdCB0YXJnZXRfdWxvbmcgcmVnX21hc2sg PSByZWdfaW1tdXRfbWFza3Nbcm51bV07CiAKICAgICBnZW5fbWFza2VkX3JlZ193cml0ZSh2YWws IGhleF9ncHJbcm51bV0sIHJlZ19tYXNrKTsKLSAgICB0Y2dfZ2VuX21vdl90bChoZXhfbmV3X3Zh bHVlW3JudW1dLCB2YWwpOworICAgIHRjZ19nZW5fbW92X3RsKGdldF9yZXN1bHRfZ3ByKGN0eCwg cm51bSksIHZhbCk7CiAgICAgaWYgKEhFWF9ERUJVRykgewogICAgICAgICAvKiBEbyB0aGlzIHNv IEhFTFBFUihkZWJ1Z19jb21taXRfZW5kKSB3aWxsIGtub3cgKi8KICAgICAgICAgdGNnX2dlbl9t b3ZpX3RsKGhleF9yZWdfd3JpdHRlbltybnVtXSwgMSk7CkBAIC05NSwyNyArOTksMTUgQEAgdm9p ZCBnZW5fbG9nX3JlZ193cml0ZShEaXNhc0NvbnRleHQgKmN0eCwgaW50IHJudW0sIFRDR3YgdmFs KQogCiBzdGF0aWMgdm9pZCBnZW5fbG9nX3JlZ193cml0ZV9wYWlyKERpc2FzQ29udGV4dCAqY3R4 LCBpbnQgcm51bSwgVENHdl9pNjQgdmFsKQogewotICAgIGNvbnN0IHRhcmdldF91bG9uZyByZWdf bWFza19sb3cgPSByZWdfaW1tdXRfbWFza3Nbcm51bV07Ci0gICAgY29uc3QgdGFyZ2V0X3Vsb25n IHJlZ19tYXNrX2hpZ2ggPSByZWdfaW1tdXRfbWFza3Nbcm51bSArIDFdOwogICAgIFRDR3YgdmFs MzIgPSB0Y2dfdGVtcF9uZXcoKTsKIAogICAgIC8qIExvdyB3b3JkICovCiAgICAgdGNnX2dlbl9l eHRybF9pNjRfaTMyKHZhbDMyLCB2YWwpOwotICAgIGdlbl9tYXNrZWRfcmVnX3dyaXRlKHZhbDMy LCBoZXhfZ3ByW3JudW1dLCByZWdfbWFza19sb3cpOwotICAgIHRjZ19nZW5fbW92X3RsKGhleF9u ZXdfdmFsdWVbcm51bV0sIHZhbDMyKTsKLSAgICBpZiAoSEVYX0RFQlVHKSB7Ci0gICAgICAgIC8q IERvIHRoaXMgc28gSEVMUEVSKGRlYnVnX2NvbW1pdF9lbmQpIHdpbGwga25vdyAqLwotICAgICAg ICB0Y2dfZ2VuX21vdmlfdGwoaGV4X3JlZ193cml0dGVuW3JudW1dLCAxKTsKLSAgICB9CisgICAg Z2VuX2xvZ19yZWdfd3JpdGUoY3R4LCBybnVtLCB2YWwzMik7CiAKICAgICAvKiBIaWdoIHdvcmQg Ki8KICAgICB0Y2dfZ2VuX2V4dHJoX2k2NF9pMzIodmFsMzIsIHZhbCk7Ci0gICAgZ2VuX21hc2tl ZF9yZWdfd3JpdGUodmFsMzIsIGhleF9ncHJbcm51bSArIDFdLCByZWdfbWFza19oaWdoKTsKLSAg ICB0Y2dfZ2VuX21vdl90bChoZXhfbmV3X3ZhbHVlW3JudW0gKyAxXSwgdmFsMzIpOwotICAgIGlm IChIRVhfREVCVUcpIHsKLSAgICAgICAgLyogRG8gdGhpcyBzbyBIRUxQRVIoZGVidWdfY29tbWl0 X2VuZCkgd2lsbCBrbm93ICovCi0gICAgICAgIHRjZ19nZW5fbW92aV90bChoZXhfcmVnX3dyaXR0 ZW5bcm51bSArIDFdLCAxKTsKLSAgICB9CisgICAgZ2VuX2xvZ19yZWdfd3JpdGUoY3R4LCBybnVt ICsgMSwgdmFsMzIpOwogfQogCiB2b2lkIGdlbl9sb2dfcHJlZF93cml0ZShEaXNhc0NvbnRleHQg KmN0eCwgaW50IHBudW0sIFRDR3YgdmFsKQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vb3Bf aGVscGVyLmMgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwppbmRleCA0NmNjYzU5MTA2Li5m YzVjMzBhMTQxIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYworKysgYi90 YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgSEVMUEVS KGRlYnVnX2NvbW1pdF9lbmQpKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgaGFzX3N0MCwgaW50 IGhhc19zdDEpCiAgICAgICAgICAgICAgICAgcmVnX3ByaW50ZWQgPSB0cnVlOwogICAgICAgICAg ICAgfQogICAgICAgICAgICAgSEVYX0RFQlVHX0xPRygiXHRyJWQgPSAiIFRBUkdFVF9GTVRfbGQg IiAoMHgiIFRBUkdFVF9GTVRfbHggIilcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGks IGVudi0+bmV3X3ZhbHVlW2ldLCBlbnYtPm5ld192YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgIGksIGVudi0+Z3ByW2ldLCBlbnYtPmdwcltpXSk7CiAgICAgICAgIH0KICAgICB9 CiAKQEAgLTM1Miw3ICszNTIsOCBAQCB1aW50NjRfdCBIRUxQRVIoc2ZpbnZzcXJ0YSkoQ1BVSGV4 YWdvblN0YXRlICplbnYsIGZsb2F0MzIgUnNWKQogfQogCiBpbnQ2NF90IEhFTFBFUih2YWNzaF92 YWwpKENQVUhleGFnb25TdGF0ZSAqZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 NjRfdCBSeHhWLCBpbnQ2NF90IFJzc1YsIGludDY0X3QgUnR0VikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludDY0X3QgUnh4ViwgaW50NjRfdCBSc3NWLCBpbnQ2NF90IFJ0dFYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwa3RfbmVlZF9jb21taXQpCiB7CiAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKICAgICAgICAgaW50IHh2ID0gc2V4dHJhY3Q2 NChSeHhWLCBpICogMTYsIDE2KTsKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL3RyYW5zbGF0 ZS5jIGIvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmMKaW5kZXggMDA0ZDkxZjEwOC4uYTg3Zjdl NzEzMCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmMKKysrIGIvdGFyZ2V0 L2hleGFnb24vdHJhbnNsYXRlLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJpbnNuLmgi CiAjaW5jbHVkZSAiZGVjb2RlLmgiCiAjaW5jbHVkZSAidHJhbnNsYXRlLmgiCisjaW5jbHVkZSAi Z2VucHRyLmgiCiAjaW5jbHVkZSAicHJpbnRpbnNuLmgiCiAKICNpbmNsdWRlICJhbmFseXplX2Z1 bmNzX2dlbmVyYXRlZC5jLmluYyIKQEAgLTMzNiw2ICszMzcsNTggQEAgc3RhdGljIHZvaWQgbWFy a19pbXBsaWNpdF9wcmVkX3dyaXRlcyhEaXNhc0NvbnRleHQgKmN0eCkKICAgICBtYXJrX2ltcGxp Y2l0X3ByZWRfd3JpdGUoY3R4LCBBX0lNUExJQ0lUX1dSSVRFU19QMywgMyk7CiB9CiAKK3N0YXRp YyBib29sIHBrdF9yYWlzZXNfZXhjZXB0aW9uKFBhY2tldCAqcGt0KQoreworICAgIGlmIChjaGVj a19mb3JfYXR0cmliKHBrdCwgQV9MT0FEKSB8fAorICAgICAgICBjaGVja19mb3JfYXR0cmliKHBr dCwgQV9TVE9SRSkpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBm YWxzZTsKK30KKworc3RhdGljIGJvb2wgbmVlZF9jb21taXQoRGlzYXNDb250ZXh0ICpjdHgpCit7 CisgICAgUGFja2V0ICpwa3QgPSBjdHgtPnBrdDsKKworICAgIC8qCisgICAgICogSWYgdGhlIHNo b3J0LWNpcmN1aXQgcHJvcGVydHkgaXMgc2V0IHRvIGZhbHNlLCB3ZSdsbCBhbHdheXMgZG8gdGhl IGNvbW1pdAorICAgICAqLworICAgIGlmICghY3R4LT5zaG9ydF9jaXJjdWl0KSB7CisgICAgICAg IHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChwa3RfcmFpc2VzX2V4Y2VwdGlvbihwa3Qp KSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qIFJlZ2lzdGVycyB3aXRo IGltbXV0YWJpbGl0eSBmbGFncyByZXF1aXJlIG5ld192YWx1ZSAqLworICAgIGZvciAoaW50IGkg PSAwOyBpIDwgY3R4LT5yZWdfbG9nX2lkeDsgaSsrKSB7CisgICAgICAgIGludCBybnVtID0gY3R4 LT5yZWdfbG9nW2ldOworICAgICAgICBpZiAocmVnX2ltbXV0X21hc2tzW3JudW1dKSB7CisgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEZsb2F0aW5n IHBvaW50IGluc3RydWN0aW9ucyBhcmUgaGFyZC1jb2RlZCB0byB1c2UgbmV3X3ZhbHVlICovCisg ICAgaWYgKGNoZWNrX2Zvcl9hdHRyaWIocGt0LCBBX0ZQT1ApKSB7CisgICAgICAgIHJldHVybiB0 cnVlOworICAgIH0KKworICAgIGlmIChwa3QtPm51bV9pbnNucyA9PSAxKSB7CisgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKiBDaGVjayBmb3Igb3ZlcmxhcCBiZXR3ZWVuIHJl Z2lzdGVyIHJlYWRzIGFuZCB3cml0ZXMgKi8KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGN0eC0+ cmVnX2xvZ19pZHg7IGkrKykgeworICAgICAgICBpbnQgcm51bSA9IGN0eC0+cmVnX2xvZ1tpXTsK KyAgICAgICAgaWYgKHRlc3RfYml0KHJudW0sIGN0eC0+cmVnc19yZWFkKSkgeworICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9 CisKIHN0YXRpYyB2b2lkIG1hcmtfaW1wbGljaXRfcHJlZF9yZWFkKERpc2FzQ29udGV4dCAqY3R4 LCBpbnQgYXR0cmliLCBpbnQgcG51bSkKIHsKICAgICBpZiAoR0VUX0FUVFJJQihjdHgtPmluc24t Pm9wY29kZSwgYXR0cmliKSkgewpAQCAtMzY1LDYgKzQxOCw4IEBAIHN0YXRpYyB2b2lkIGFuYWx5 emVfcGFja2V0KERpc2FzQ29udGV4dCAqY3R4KQogICAgICAgICBtYXJrX2ltcGxpY2l0X3ByZWRf d3JpdGVzKGN0eCk7CiAgICAgICAgIG1hcmtfaW1wbGljaXRfcHJlZF9yZWFkcyhjdHgpOwogICAg IH0KKworICAgIGN0eC0+bmVlZF9jb21taXQgPSBuZWVkX2NvbW1pdChjdHgpOwogfQogCiBzdGF0 aWMgdm9pZCBnZW5fc3RhcnRfcGFja2V0KERpc2FzQ29udGV4dCAqY3R4KQpAQCAtNDM0LDcgKzQ4 OSw4IEBAIHN0YXRpYyB2b2lkIGdlbl9zdGFydF9wYWNrZXQoRGlzYXNDb250ZXh0ICpjdHgpCiAg ICAgfQogCiAgICAgLyogUHJlbG9hZCB0aGUgcHJlZGljYXRlZCByZWdpc3RlcnMgaW50byBoZXhf bmV3X3ZhbHVlW2ldICovCi0gICAgaWYgKCFiaXRtYXBfZW1wdHkoY3R4LT5wcmVkaWNhdGVkX3Jl Z3MsIFRPVEFMX1BFUl9USFJFQURfUkVHUykpIHsKKyAgICBpZiAoY3R4LT5uZWVkX2NvbW1pdCAm JgorICAgICAgICAhYml0bWFwX2VtcHR5KGN0eC0+cHJlZGljYXRlZF9yZWdzLCBUT1RBTF9QRVJf VEhSRUFEX1JFR1MpKSB7CiAgICAgICAgIGludCBpID0gZmluZF9maXJzdF9iaXQoY3R4LT5wcmVk aWNhdGVkX3JlZ3MsIFRPVEFMX1BFUl9USFJFQURfUkVHUyk7CiAgICAgICAgIHdoaWxlIChpIDwg VE9UQUxfUEVSX1RIUkVBRF9SRUdTKSB7CiAgICAgICAgICAgICB0Y2dfZ2VuX21vdl90bChoZXhf bmV3X3ZhbHVlW2ldLCBoZXhfZ3ByW2ldKTsKQEAgLTU0MSw2ICs1OTcsMTEgQEAgc3RhdGljIHZv aWQgZ2VuX3JlZ193cml0ZXMoRGlzYXNDb250ZXh0ICpjdHgpCiB7CiAgICAgaW50IGk7CiAKKyAg ICAvKiBFYXJseSBleGl0IGlmIG5vdCBuZWVkZWQgKi8KKyAgICBpZiAoIWN0eC0+bmVlZF9jb21t aXQpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGZvciAoaSA9IDA7IGkgPCBjdHgt PnJlZ19sb2dfaWR4OyBpKyspIHsKICAgICAgICAgaW50IHJlZ19udW0gPSBjdHgtPnJlZ19sb2db aV07CiAKQEAgLTkxOSw2ICs5ODAsNyBAQCBzdGF0aWMgdm9pZCBoZXhhZ29uX3RyX2luaXRfZGlz YXNfY29udGV4dChEaXNhc0NvbnRleHRCYXNlICpkY2Jhc2UsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDUFVTdGF0ZSAqY3MpCiB7CiAgICAgRGlzYXNDb250ZXh0 ICpjdHggPSBjb250YWluZXJfb2YoZGNiYXNlLCBEaXNhc0NvbnRleHQsIGJhc2UpOworICAgIEhl eGFnb25DUFUgKmhleF9jcHUgPSBlbnZfYXJjaGNwdShjcy0+ZW52X3B0cik7CiAgICAgdWludDMy X3QgaGV4X2ZsYWdzID0gZGNiYXNlLT50Yi0+ZmxhZ3M7CiAKICAgICBjdHgtPm1lbV9pZHggPSBN TVVfVVNFUl9JRFg7CkBAIC05MjcsNiArOTg5LDcgQEAgc3RhdGljIHZvaWQgaGV4YWdvbl90cl9p bml0X2Rpc2FzX2NvbnRleHQoRGlzYXNDb250ZXh0QmFzZSAqZGNiYXNlLAogICAgIGN0eC0+bnVt X2h2eF9pbnNucyA9IDA7CiAgICAgY3R4LT5icmFuY2hfY29uZCA9IFRDR19DT05EX05FVkVSOwog ICAgIGN0eC0+aXNfdGlnaHRfbG9vcCA9IEZJRUxEX0VYMzIoaGV4X2ZsYWdzLCBUQl9GTEFHUywg SVNfVElHSFRfTE9PUCk7CisgICAgY3R4LT5zaG9ydF9jaXJjdWl0ID0gaGV4X2NwdS0+c2hvcnRf Y2lyY3VpdDsKIH0KIAogc3RhdGljIHZvaWQgaGV4YWdvbl90cl90Yl9zdGFydChEaXNhc0NvbnRl eHRCYXNlICpkYiwgQ1BVU3RhdGUgKmNwdSkKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dl bl9oZWxwZXJfZnVuY3MucHkgYi90YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX2Z1bmNzLnB5Cmlu ZGV4IGM3M2Q3OTI1ODAuLmUyNTllYTNkMDMgMTAwNzU1Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2dl bl9oZWxwZXJfZnVuY3MucHkKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VuX2hlbHBlcl9mdW5jcy5w eQpAQCAtMjg3LDYgKzI4Nyw4IEBAIGRlZiBnZW5faGVscGVyX2Z1bmN0aW9uKGYsIHRhZywgdGFn cmVncywgdGFnaW1tcyk6CiAKICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9oYXNfbXVs dGlfY29mKHRhZyk6CiAgICAgICAgICAgICBmLndyaXRlKCIsIHVpbnQzMl90IHBrdF9oYXNfbXVs dGlfY29mIikKKyAgICAgICAgaWYgKGhleF9jb21tb24ubmVlZF9wa3RfbmVlZF9jb21taXQodGFn KSk6CisgICAgICAgICAgICBmLndyaXRlKCIsIHVpbnQzMl90IHBrdF9uZWVkX2NvbW1pdCIpCiAK ICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX1BDKHRhZyk6CiAgICAgICAgICAgICBpZiBpID4g MDoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dlbl9oZWxwZXJfcHJvdG9zLnB5IGIvdGFy Z2V0L2hleGFnb24vZ2VuX2hlbHBlcl9wcm90b3MucHkKaW5kZXggMTg3Y2Q2ZTA0ZS4uYzVlY2I4 NTI5NCAxMDA3NTUKLS0tIGEvdGFyZ2V0L2hleGFnb24vZ2VuX2hlbHBlcl9wcm90b3MucHkKKysr IGIvdGFyZ2V0L2hleGFnb24vZ2VuX2hlbHBlcl9wcm90b3MucHkKQEAgLTg2LDYgKzg2LDggQEAg ZGVmIGdlbl9oZWxwZXJfcHJvdG90eXBlKGYsIHRhZywgdGFncmVncywgdGFnaW1tcyk6CiAgICAg ICAgICAgICBkZWZfaGVscGVyX3NpemUgPSBsZW4ocmVncykgKyBsZW4oaW1tcykgKyBudW1zY2Fs YXJyZWFkd3JpdGUgKyAxCiAgICAgICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X2hhc19t dWx0aV9jb2YodGFnKToKICAgICAgICAgICAgICAgICBkZWZfaGVscGVyX3NpemUgKz0gMQorICAg ICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9uZWVkX2NvbW1pdCh0YWcpOgorICAgICAg ICAgICAgICAgIGRlZl9oZWxwZXJfc2l6ZSArPSAxCiAgICAgICAgICAgICBpZiBoZXhfY29tbW9u Lm5lZWRfcGFydDEodGFnKToKICAgICAgICAgICAgICAgICBkZWZfaGVscGVyX3NpemUgKz0gMQog ICAgICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3Nsb3QodGFnKToKQEAgLTEwMyw2ICsxMDUs OCBAQCBkZWYgZ2VuX2hlbHBlcl9wcm90b3R5cGUoZiwgdGFnLCB0YWdyZWdzLCB0YWdpbW1zKToK ICAgICAgICAgICAgIGRlZl9oZWxwZXJfc2l6ZSA9IGxlbihyZWdzKSArIGxlbihpbW1zKSArIG51 bXNjYWxhcnJlYWR3cml0ZQogICAgICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9oYXNf bXVsdGlfY29mKHRhZyk6CiAgICAgICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplICs9IDEKKyAg ICAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfbmVlZF9jb21taXQodGFnKToKKyAgICAg ICAgICAgICAgICBkZWZfaGVscGVyX3NpemUgKz0gMQogICAgICAgICAgICAgaWYgaGV4X2NvbW1v bi5uZWVkX3BhcnQxKHRhZyk6CiAgICAgICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplICs9IDEK ICAgICAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9zbG90KHRhZyk6CkBAIC0xNTYsMTAgKzE2 MCwxMiBAQCBkZWYgZ2VuX2hlbHBlcl9wcm90b3R5cGUoZiwgdGFnLCB0YWdyZWdzLCB0YWdpbW1z KToKICAgICAgICAgZm9yIGltbWxldHQsIGJpdHMsIGltbXNoaWZ0IGluIGltbXM6CiAgICAgICAg ICAgICBmLndyaXRlKCIsIHMzMiIpCiAKLSAgICAgICAgIyMgQWRkIHRoZSBhcmd1bWVudHMgZm9y IHRoZSBpbnN0cnVjdGlvbiBwa3RfaGFzX211bHRpX2NvZiwgc2xvdCBhbmQKLSAgICAgICAgIyMg cGFydDEgKGlmIG5lZWRlZCkKKyAgICAgICAgIyMgQWRkIHRoZSBhcmd1bWVudHMgZm9yIHRoZSBp bnN0cnVjdGlvbiBwa3RfaGFzX211bHRpX2NvZiwKKyAgICAgICAgIyMgcGt0X25lZWRzX2NvbW1p dCwgUEMsIG5leHRfUEMsIHNsb3QsIGFuZCBwYXJ0MSAoaWYgbmVlZGVkKQogICAgICAgICBpZiBo ZXhfY29tbW9uLm5lZWRfcGt0X2hhc19tdWx0aV9jb2YodGFnKToKICAgICAgICAgICAgIGYud3Jp dGUoIiwgaTMyIikKKyAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9uZWVkX2NvbW1pdCh0 YWcpOgorICAgICAgICAgICAgZi53cml0ZSgnLCBpMzInKQogICAgICAgICBpZiBoZXhfY29tbW9u Lm5lZWRfUEModGFnKToKICAgICAgICAgICAgIGYud3JpdGUoIiwgaTMyIikKICAgICAgICAgaWYg aGV4X2NvbW1vbi5oZWxwZXJfbmVlZHNfbmV4dF9QQyh0YWcpOgpkaWZmIC0tZ2l0IGEvdGFyZ2V0 L2hleGFnb24vZ2VuX2lkZWZfcGFyc2VyX2Z1bmNzLnB5IGIvdGFyZ2V0L2hleGFnb24vZ2VuX2lk ZWZfcGFyc2VyX2Z1bmNzLnB5CmluZGV4IGFmZTY4YmRiNmYuLmI3ZjJkZjBmMzYgMTAwNjQ0Ci0t LSBhL3RhcmdldC9oZXhhZ29uL2dlbl9pZGVmX3BhcnNlcl9mdW5jcy5weQorKysgYi90YXJnZXQv aGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3MucHkKQEAgLTEwOSw2ICsxMDksMTMgQEAgZGVm IG1haW4oKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgIkFfQ09G IiBpbiBoZXhfY29tbW9uLmF0dHJpYmRpY3RbdGFnXToKICAgICAgICAgICAgICAgICBjb250aW51 ZQorICAgICAgICAgICAgIyMgU2tpcCBpbnN0cnVjdGlvbnMgdGhhdCBhcmUgaW5jb21wYXRpYmxl IHdpdGggc2hvcnQtY2lyY3VpdAorICAgICAgICAgICAgIyMgcGFja2V0IHJlZ2lzdGVyIHdyaXRl cworICAgICAgICAgICAgaWYgKCB0YWcgPT0gJ1MyX2luc2VydCcgb3IKKyAgICAgICAgICAgICAg ICAgdGFnID09ICdTMl9pbnNlcnRfcnAnIG9yCisgICAgICAgICAgICAgICAgIHRhZyA9PSAnUzJf YXNyX3Jfc3Z3X3RydW4nIG9yCisgICAgICAgICAgICAgICAgIHRhZyA9PSAnQTJfc3dpeicgKToK KyAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICByZWdzID0gdGFncmVnc1t0 YWddCiAgICAgICAgICAgICBpbW1zID0gdGFnaW1tc1t0YWddCmRpZmYgLS1naXQgYS90YXJnZXQv aGV4YWdvbi9nZW5fdGNnX2Z1bmNzLnB5IGIvdGFyZ2V0L2hleGFnb24vZ2VuX3RjZ19mdW5jcy5w eQppbmRleCBkOWNjYmU2M2Y2Li4wZTQ1ZDQzNjg1IDEwMDc1NQotLS0gYS90YXJnZXQvaGV4YWdv bi9nZW5fdGNnX2Z1bmNzLnB5CisrKyBiL3RhcmdldC9oZXhhZ29uL2dlbl90Y2dfZnVuY3MucHkK QEAgLTU1MCw2ICs1NTAsOSBAQCBkZWYgZ2VuX3RjZ19mdW5jKGYsIHRhZywgcmVncywgaW1tcyk6 CiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfaGFzX211bHRpX2NvZih0YWcpOgogICAg ICAgICAgICAgZi53cml0ZSgiICAgIFRDR3YgcGt0X2hhc19tdWx0aV9jb2YgPSAiKQogICAgICAg ICAgICAgZi53cml0ZSgidGNnX2NvbnN0YW50X3RsKGN0eC0+cGt0LT5wa3RfaGFzX211bHRpX2Nv Zik7XG4iKQorICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X25lZWRfY29tbWl0KHRhZyk6 CisgICAgICAgICAgICBmLndyaXRlKCIgICAgVENHdiBwa3RfbmVlZF9jb21taXQgPSAiKQorICAg ICAgICAgICAgZi53cml0ZSgidGNnX2NvbnN0YW50X3RsKGN0eC0+bmVlZF9jb21taXQpO1xuIikK ICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BhcnQxKHRhZyk6CiAgICAgICAgICAgICBmLndy aXRlKCIgICAgVENHdiBwYXJ0MSA9IHRjZ19jb25zdGFudF90bChpbnNuLT5wYXJ0MSk7XG4iKQog ICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfc2xvdCh0YWcpOgpAQCAtNTk2LDYgKzU5OSw4IEBA IGRlZiBnZW5fdGNnX2Z1bmMoZiwgdGFnLCByZWdzLCBpbW1zKToKIAogICAgICAgICBpZiBoZXhf Y29tbW9uLm5lZWRfcGt0X2hhc19tdWx0aV9jb2YodGFnKToKICAgICAgICAgICAgIGYud3JpdGUo IiwgcGt0X2hhc19tdWx0aV9jb2YiKQorICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X25l ZWRfY29tbWl0KHRhZyk6CisgICAgICAgICAgICBmLndyaXRlKCIsIHBrdF9uZWVkX2NvbW1pdCIp CiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9QQyh0YWcpOgogICAgICAgICAgICAgZi53cml0 ZSgiLCBQQyIpCiAgICAgICAgIGlmIGhleF9jb21tb24uaGVscGVyX25lZWRzX25leHRfUEModGFn KToKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2hleF9jb21tb24ucHkgYi90YXJnZXQvaGV4 YWdvbi9oZXhfY29tbW9uLnB5CmluZGV4IDIzMmM2ZTJjMjAuLjI5YzA1MDhmNjYgMTAwNzU1Ci0t LSBhL3RhcmdldC9oZXhhZ29uL2hleF9jb21tb24ucHkKKysrIGIvdGFyZ2V0L2hleGFnb24vaGV4 X2NvbW1vbi5weQpAQCAtMjc2LDYgKzI3Niw5IEBAIGRlZiBuZWVkX3BrdF9oYXNfbXVsdGlfY29m KHRhZyk6CiAgICAgcmV0dXJuICJBX0NPRiIgaW4gYXR0cmliZGljdFt0YWddCiAKIAorZGVmIG5l ZWRfcGt0X25lZWRfY29tbWl0KHRhZyk6CisgICAgcmV0dXJuICdBX0lNUExJQ0lUX1dSSVRFU19V U1InIGluIGF0dHJpYmRpY3RbdGFnXQorCiBkZWYgbmVlZF9jb25kZXhlY19yZWcodGFnLCByZWdz KToKICAgICBpZiAiQV9DT05ERVhFQyIgaW4gYXR0cmliZGljdFt0YWddOgogICAgICAgICBmb3Ig cmVndHlwZSwgcmVnaWQsIHRvc3MsIG51bXJlZ3MgaW4gcmVnczoKLS0gCjIuMjUuMQoK