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 E2C44C77B61 for ; Thu, 27 Apr 2023 22:42:55 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1psAIa-0001tb-2Z; Thu, 27 Apr 2023 18:41: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 1psAIY-0001su-ND for qemu-devel@nongnu.org; Thu, 27 Apr 2023 18:41:10 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1psAIU-0005Lo-Aa for qemu-devel@nongnu.org; Thu, 27 Apr 2023 18:41:10 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33RMf2IH024369; Thu, 27 Apr 2023 22:41:02 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=MEjhzX5tqBj/L6gv+sJDioQgjv3bjMwjV4F7+TNVyso=; b=S2LuKs6bqj6GNriQmmHzuqEb1XM4sUg3pzNd93o0swHrayRH16KmVgrPOF3XN2Jyv59e sLodZGCWk3GjXNP2qAItsF6+noK0jdU6Flba/IgshrUlO6neCbFdUZ4GohoBB+pM3DYV h9t/ZeCxs8tQ7FpuBIKHEvU3yn0Cn2LCbjblpxp2Z4GW3PSUsVWcanRAYOkgU/ltEXwk Ne2CfLuFyIj2R1YChTcETkMRyZqeWS/F18fZW+6SSCwwJn45ybdeC6PKmHkGu9a0Wj7P LnXYqN0W0SOQKbtwvSrpXLJwM1FaToSUJuMWB15Aa6N9Dt3Lq5ps2ez9AIOJK7ZIzwKt FQ== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q7kqua6fb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:01 +0000 Received: from pps.filterd (NALASPPMTA01.qualcomm.com [127.0.0.1]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 33RMf0i6006412; Thu, 27 Apr 2023 22:41:00 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA01.qualcomm.com (PPS) with ESMTPS id 3q48nmt1s9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:00 +0000 Received: from NALASPPMTA01.qualcomm.com (NALASPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33RMf0l6006391; Thu, 27 Apr 2023 22:41:00 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA01.qualcomm.com (PPS) with ESMTPS id 33RMex5B006369 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Apr 2023 22:41:00 +0000 Received: by hu-devc-sd-u20-a-1.qualcomm.com (Postfix, from userid 47164) id D2EA2690; Thu, 27 Apr 2023 15:40:59 -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 v2 4/9] Hexagon (target/hexagon) Add v68 HVX instructions Date: Thu, 27 Apr 2023 15:40:52 -0700 Message-Id: <20230427224057.3766963-5-tsimpson@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230427224057.3766963-1-tsimpson@quicinc.com> References: <20230427224057.3766963-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-GUID: qRpiLE5KnbHXLYcjcTXJwpHtwXtrv2jw X-Proofpoint-ORIG-GUID: qRpiLE5KnbHXLYcjcTXJwpHtwXtrv2jw 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-27_09,2023-04-27_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=506 bulkscore=0 phishscore=0 priorityscore=1501 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304270200 Received-SPF: pass client-ip=205.220.168.131; envelope-from=tsimpson@qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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 VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXJlIGFkZGVkCiAgICBWNl92Nm1weXZ1YnMxMF92 eHgKICAgIFY2X3Y2bXB5aHViczEwX3Z4eAogICAgVjZfdjZtcHl2dWJzMTAKICAgIFY2X3Y2bXB5 aHViczEwCgpTaWduZWQtb2ZmLWJ5OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBzb25AcXVpY2luYy5j b20+ClJldmlld2VkLWJ5OiBBbnRvbiBKb2hhbnNzb24gPGFuam9AcmV2Lm5nPgotLS0KIHRhcmdl dC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oICAgICAgICAgICAgICAgIHwgICA5ICstCiB0YXJnZXQv aGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZiB8ICAgOCArLQogdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvbW12ZWMvZXh0LmlkZWYgICAgICAgfCAyODEgKysrKysrKysrKysrKysr KysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9tbXZlYy9tYWNyb3MuaCBiL3RhcmdldC9oZXhh Z29uL21tdmVjL21hY3Jvcy5oCmluZGV4IDEyMDFkNzc4ZDAuLmE2NTU2MzRmZDEgMTAwNjQ0Ci0t LSBhL3RhcmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oCisrKyBiL3RhcmdldC9oZXhhZ29uL21t dmVjL21hY3Jvcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQoYykgMjAxOS0y MDIyIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu CisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMyBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwg SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CkBAIC0zNDYsNCArMzQ2LDExIEBACiAjZGVmaW5lIGZVQVJDSF9OT1RFX1BVTVBfMlgo KQogCiAjZGVmaW5lIElWMURFQUQoKQorCisjZGVmaW5lIGZHRVQxMEJJVChDT0UsIFZBTCwgUE9T KSBcCisgICAgZG8geyBcCisgICAgICAgIENPRSA9IChzZXh0cmFjdDMyKFZBTCwgMjQgKyAyICog UE9TLCAyKSA8PCA4KSB8IFwKKyAgICAgICAgICAgICAgIGV4dHJhY3QzMihWQUwsIFBPUyAqIDgs IDgpOyBcCisgICAgfSB3aGlsZSAoMCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvbW12ZWMvZW5jb2RlX2V4dC5kZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBv cnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZgppbmRleCA2ZmJiZTJjNDIyLi5iOWI2MmZlZjhkIDEw MDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZgor KysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9lbmNvZGVfZXh0LmRlZgpAQCAtMSw1 ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMSBRdWFsY29tbSBJbm5vdmF0 aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodChjKSAy MDE5LTIwMjMgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtNzMwLDYgKzcz MCw4IEBAIERFRl9FTkMoVjZfdm1heGIsICAgICAgICAgSUNMQVNTX0NKIiAxIDExMSAwMDEgdnZ2 dnYgUFAgMCB1dXV1dSAxMDEgZGRkZGQiKSAvLwogREVGX0VOQyhWNl92c2F0dXd1aCwgICAgSUNM QVNTX0NKIiAxIDExMSAwMDEgdnZ2dnYgUFAgMCB1dXV1dSAxMTAgZGRkZGQiKSAvLwogREVGX0VO QyhWNl92ZGVhbGI0dywgICAgIElDTEFTU19DSiIgMSAxMTEgMDAxIHZ2dnZ2IFBQIDAgdXV1dXUg MTExIGRkZGRkIikgLy8KIAorREVGX0VOQyhWNl92Nm1weXZ1YnMxMF92eHgsIAlJQ0xBU1NfQ0oi IDEgMTExIDAwMSB2dnZ2diBQUCAxIHV1dXV1IDBpaSB4eHh4eCIpCitERUZfRU5DKFY2X3Y2bXB5 aHViczEwX3Z4eCwgCUlDTEFTU19DSiIgMSAxMTEgMDAxIHZ2dnZ2IFBQIDEgdXV1dXUgMWlpIHh4 eHh4IikKIAogREVGX0VOQyhWNl92bXB5b3doX3JuZCwgICAgIElDTEFTU19DSiIgMSAxMTEgMDEw IHZ2dnZ2IFBQIDAgdXV1dXUgMDAwIGRkZGRkIikgLy8KIERFRl9FTkMoVjZfdnNodWZmZWIsICAg ICAgSUNMQVNTX0NKIiAxIDExMSAwMTAgdnZ2dnYgUFAgMCB1dXV1dSAwMDEgZGRkZGQiKSAvLwpA QCAtNzQwLDYgKzc0MiwxMCBAQCBERUZfRU5DKFY2X3ZzaHVmb2VoLCAgICAgIElDTEFTU19DSiIg MSAxMTEgMDEwIHZ2dnZ2IFBQIDAgdXV1dXUgMTAxIGRkZGRkIikgLy8KIERFRl9FTkMoVjZfdnNo dWZvZWIsICAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTAgdnZ2dnYgUFAgMCB1dXV1dSAxMTAgZGRk ZGQiKSAvLwogREVGX0VOQyhWNl92Y29tYmluZSwgICAgIElDTEFTU19DSiIgMSAxMTEgMDEwIHZ2 dnZ2IFBQIDAgdXV1dXUgMTExIGRkZGRkIikgLy8KIAorREVGX0VOQyhWNl92Nm1weXZ1YnMxMCwg IElDTEFTU19DSiIgMSAxMTEgMDEwIHZ2dnZ2IFBQIDEgdXV1dXUgMGlpIGRkZGRkIikKK0RFRl9F TkMoVjZfdjZtcHlodWJzMTAsICBJQ0xBU1NfQ0oiIDEgMTExIDAxMCB2dnZ2diBQUCAxIHV1dXV1 IDFpaSBkZGRkZCIpCisKKwogREVGX0VOQyhWNl92bXB5aWVvaCwgICAgIElDTEFTU19DSiIgMSAx MTEgMDExIHZ2dnZ2IFBQIDAgdXV1dXUgMDAwIGRkZGRkIikgLy8KIERFRl9FTkMoVjZfdmFkZHV3 c2F0LCAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTEgdnZ2dnYgUFAgMCB1dXV1dSAwMDEgZGRkZGQi KSAvLwogREVGX0VOQyhWNl92c2F0aHViLCAgICAgSUNMQVNTX0NKIiAxIDExMSAwMTEgdnZ2dnYg UFAgMCB1dXV1dSAwMTAgZGRkZGQiKSAvLwpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW1w b3J0ZWQvbW12ZWMvZXh0LmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tbXZlYy9leHQu aWRlZgppbmRleCA4Y2E1YTYwNmUxLi5jMGQxNjlmZDRmIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9tbXZlYy9leHQuaWRlZgorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRl ZC9tbXZlYy9leHQuaWRlZgpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0KGMpIDIw MTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjMgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50 ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQpAQCAtMTE2LDYgKzExNiwxMCBAQCBJVEVSQVRPUl9JTlNOX01QWV9TTE9UX0xB VEUoV0lEVEgsVEFHLCBTWU5UQVgyLERFU0NSLENPREUpCiBFWFRJTlNOKFY2XyMjVEFHLCBTWU5U QVgsIEFUVFJJQlMoQV9FWFRFTlNJT04sQV9DVkksQV9DVklfVlhfRFYpLCAgXAogREVTQ1IsIERP X0ZPUl9FQUNIX0NPREUoV0lEVEgsIENPREUpKQogCisjZGVmaW5lIElURVJBVE9SX0lOU05fTVBZ X1NMT1RfRE9VQkxFX1ZFQ19WWF9GV0QoV0lEVEgsVEFHLFNZTlRBWCxERVNDUixDT0RFKSBcCitF WFRJTlNOKFY2XyMjVEFHLCBTWU5UQVgsIEFUVFJJQlMoQV9FWFRFTlNJT04sQV9DVkksQV9DVklf VlhfRFYpLCAgXAorREVTQ1IsIERPX0ZPUl9FQUNIX0NPREUoV0lEVEgsIENPREUpKQorCiAjZGVm aW5lIElURVJBVE9SX0lOU04yX01QWV9TTE9UX0RPVUJMRV9WRUMoV0lEVEgsVEFHLFNZTlRBWCxT WU5UQVgyLERFU0NSLENPREUpIFwKIElURVJBVE9SX0lOU05fTVBZX1NMT1RfRE9VQkxFX1ZFQyhX SURUSCxUQUcsU1lOVEFYMixERVNDUixDT0RFKQogCkBAIC0yNTA3LDYgKzI1MTEsMjgxIEBAIEVY VElOU04oVjZfdnNjYXR0ZXJtaHcgLCAidnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIudykuaD1WdzMy IiwgQVRUUklCUyhBX0VYVEVOU0lPCiB9KQogCiAKK0lURVJBVE9SX0lOU05fTVBZX1NMT1RfRE9V QkxFX1ZFQ19WWF9GV0QoMzIsIHY2bXB5dnViczEwX3Z4eCwgIlZ4eDMyLncrPXY2bXB5KFZ1dTMy LnViLFZ2djMyLmIsI3UyKTp2IiwgIiIsCisgICAgZkhJREUoc2l6ZTJzX3QgYzAwOykKKyAgICBm R0VUMTBCSVQoYzAwLCBWdnZWLnZbMF0udXdbaV0sIDApCisgICAgZkhJREUoc2l6ZTJzX3QgYzAx OykKKyAgICBmR0VUMTBCSVQoYzAxLCBWdnZWLnZbMF0udXdbaV0sIDEpCisgICAgZkhJREUoc2l6 ZTJzX3QgYzAyOykKKyAgICBmR0VUMTBCSVQoYzAyLCBWdnZWLnZbMF0udXdbaV0sIDIpCisKKwlm SElERShzaXplMnNfdCBjMTA7KQorICAgIGZHRVQxMEJJVChjMTAsIFZ2dlYudlsxXS51d1tpXSwg MCkKKyAgICBmSElERShzaXplMnNfdCBjMTE7KQorICAgIGZHRVQxMEJJVChjMTEsIFZ2dlYudlsx XS51d1tpXSwgMSkKKyAgICBmSElERShzaXplMnNfdCBjMTI7KQorICAgIGZHRVQxMEJJVChjMTIs IFZ2dlYudlsxXS51d1tpXSwgMikKKworICAgIGlmICh1aVYgPT0gMCkgeworICAgICAgICBWeHhW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMTAp OworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZb MV0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VU VUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgICAgIFZ4eFYudlsxXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMwMCk7CisgICAgICAg IFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tpXSks IGMwMSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1 dVYudlsxXS51d1tpXSksIGMwMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzEwKTsKKyAgICAgICAgVnh4Vi52WzBd LndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsKKyAg ICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzFdLnV3 W2ldKSwgYzEyKTsKKworICAgIH0gZWxzZSBpZiAodWlWID09IDEpIHsKKyAgICAgICAgVnh4Vi52 WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsK KyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzFd LnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVC WVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSAr PSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAgICBW eHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMV0udXdbaV0pLCBj MTEpOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVW LnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVT KGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMwMCk7CisgICAgICAgIFZ4eFYudlswXS53 W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tpXSksIGMwMSk7CisgICAg ICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tp XSksIGMwMik7CisKKyAgICB9IGVsc2UgaWYgKHVpViA9PSAyKSB7CisgICAgICAgIFZ4eFYudlsx XS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7Cisg ICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51 d1tpXSksIGMxMSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllU RSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0g Zk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4 Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAx KTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52 WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhm R0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0ud1tp XSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAgICAg ICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0p LCBjMTIpOworCisgICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAgICAgICBWeHhWLnZbMV0u d1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMDApOworICAg ICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdb aV0pLCBjMDEpOworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MixWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZN UFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYu dlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7 CisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlsx XS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdF VFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAg Vnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwg YzAyKTsKKyAgICB9CispCitJVEVSQVRPUl9JTlNOX01QWV9TTE9UX0RPVUJMRV9WRUNfVlhfRldE KDMyLCB2Nm1weWh1YnMxMF92eHgsICJWeHgzMi53Kz12Nm1weShWdXUzMi51YixWdnYzMi5iLCN1 Mik6aCIsICIiLAorICAgIGZISURFKHNpemUyc190IGMwMDspCisgICAgZkdFVDEwQklUKGMwMCwg VnZ2Vi52WzBdLnV3W2ldLCAwKQorICAgIGZISURFKHNpemUyc190IGMwMTspCisgICAgZkdFVDEw QklUKGMwMSwgVnZ2Vi52WzBdLnV3W2ldLCAxKQorICAgIGZISURFKHNpemUyc190IGMwMjspCisg ICAgZkdFVDEwQklUKGMwMiwgVnZ2Vi52WzBdLnV3W2ldLCAyKQorICAgIGZISURFKHNpemUyc190 IGMxMDspCisgICAgZkdFVDEwQklUKGMxMCwgVnZ2Vi52WzFdLnV3W2ldLCAwKQorICAgIGZISURF KHNpemUyc190IGMxMTspCisgICAgZkdFVDEwQklUKGMxMSwgVnZ2Vi52WzFdLnV3W2ldLCAxKQor ICAgIGZISURFKHNpemUyc190IGMxMjspCisgICAgZkdFVDEwQklUKGMxMiwgVnZ2Vi52WzFdLnV3 W2ldLCAyKQorCisgICAgaWYgKHVpViA9PSAwKSB7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4 eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMx MSk7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYu dlswXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDIsVnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzFdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAg ICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ld KSwgYzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MixWdXVWLnZbMV0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhWLnZb MF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMTIpOwor CisgICAgfSBlbHNlIGlmICh1aVYgPT0gMSkgeworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWeHhW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDEp OworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZb MF0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZH RVRVQllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYudlswXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAgICAg IFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSks IGMxMik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIs VnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52WzBd LndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKwor ICAgIH0gIGVsc2UgaWYgKHVpViA9PSAyKSB7CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZN UFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYu dlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7 CisgICAgICAgIFZ4eFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsw XS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdF VFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzFdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAg Vnh4Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwg YzAyKTsKKworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxW dXVWLnZbMV0udXdbaV0pLCBjMTApOworICAgICAgICBWeHhWLnZbMF0ud1tpXSArPSBmTVBZMTZV UyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAgICAgICBWeHhWLnZbMF0u d1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTIpOworCisg ICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWeHhWLnZb MV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMDEpOwor ICAgICAgICBWeHhWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0u dXdbaV0pLCBjMDIpOworCisgICAgICAgIFZ4eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRV QllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZ4eFYudlswXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZ4 eFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMx Mik7CisKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1 Vi52WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVnh4Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVnh4Vi52WzBdLndb aV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKyAgICB9 CispCisKKworSVRFUkFUT1JfSU5TTl9NUFlfU0xPVF9ET1VCTEVfVkVDKDMyLCB2Nm1weXZ1YnMx MCwgIlZkZDMyLnc9djZtcHkoVnV1MzIudWIsVnZ2MzIuYiwjdTIpOnYiLCAiIiwKKyAgICBmSElE RShzaG9ydCBjMDA7KQorICAgIGZHRVQxMEJJVChjMDAsIFZ2dlYudlswXS51d1tpXSwgMCkKKyAg ICBmSElERShzaG9ydCBjMDE7KQorICAgIGZHRVQxMEJJVChjMDEsIFZ2dlYudlswXS51d1tpXSwg MSkKKyAgICBmSElERShzaG9ydCBjMDI7KQorICAgIGZHRVQxMEJJVChjMDIsIFZ2dlYudlswXS51 d1tpXSwgMikKKyAgICBmSElERShzaG9ydCBjMTA7KQorICAgIGZHRVQxMEJJVChjMTAsIFZ2dlYu dlsxXS51d1tpXSwgMCkKKyAgICBmSElERShzaG9ydCBjMTE7KQorICAgIGZHRVQxMEJJVChjMTEs IFZ2dlYudlsxXS51d1tpXSwgMSkKKyAgICBmSElERShzaG9ydCBjMTI7KQorICAgIGZHRVQxMEJJ VChjMTIsIFZ2dlYudlsxXS51d1tpXSwgMikKKworCisKKyAgICBpZiAodWlWID09IDApIHsKKyAg ICAgICAgVmRkVi52WzFdLndbaV0gID0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBdLnV3 W2ldKSwgYzEwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRF KDIsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1Q WTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzEyKTsKKworICAgICAgICBWZGRW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBjMDAp OworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZb MV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VU VUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZkZFYudlswXS53W2ld ICA9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMxMCk7CisgICAgICAg IFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgwLFZ1dVYudlsxXS51d1tpXSks IGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1 dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICB9ICBlbHNlIGlmICh1aVYgPT0gMSkgeworICAg ICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdb aV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUo MixWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZkZFYu dlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMCk7 CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlsx XS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRV QllURSgzLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRkVi52WzBdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAg VmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwg YzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1 Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgIH0gIGVsc2UgaWYgKHVpViA9PSAyKSB7CisgICAg ICAgIFZkZFYudlsxXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tp XSksIGMxMCk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgz LFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9IGZNUFkx NlVTKGZHRVRVQllURSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRkVi52 WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsK KyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBd LnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVC WVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwgYzAyKTsKKworICAgICAgICBWZGRWLnZbMF0ud1tpXSAg PSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTApOworICAgICAgICBW ZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBj MTEpOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVW LnZbMV0udXdbaV0pLCBjMTIpOworCisgICAgfSBlbHNlIGlmICh1aVYgPT0gMykgeworICAgICAg ICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0p LCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxW dXVWLnZbMF0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZV UyhmR0VUVUJZVEUoMixWdXVWLnZbMV0udXdbaV0pLCBjMDIpOworCisgICAgICAgIFZkZFYudlsw XS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMCk7Cisg ICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51 d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllU RSgyLFZ1dVYudlsxXS51d1tpXSksIGMxMik7CisKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0g Zk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVmRk Vi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzBdLnV3W2ldKSwgYzAx KTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52 WzFdLnV3W2ldKSwgYzAyKTsKKyAgICB9CispCisKK0lURVJBVE9SX0lOU05fTVBZX1NMT1RfRE9V QkxFX1ZFQygzMiwgdjZtcHlodWJzMTAsICJWZGQzMi53PXY2bXB5KFZ1dTMyLnViLFZ2djMyLmIs I3UyKTpoIiwgIiIsCisgICAgZkhJREUoc2hvcnQgYzAwOykKKyAgICBmR0VUMTBCSVQoYzAwLCBW dnZWLnZbMF0udXdbaV0sIDApCisgICAgZkhJREUoc2hvcnQgYzAxOykKKyAgICBmR0VUMTBCSVQo YzAxLCBWdnZWLnZbMF0udXdbaV0sIDEpCisgICAgZkhJREUoc2hvcnQgYzAyOykKKyAgICBmR0VU MTBCSVQoYzAyLCBWdnZWLnZbMF0udXdbaV0sIDIpCisgICAgZkhJREUoc2hvcnQgYzEwOykKKyAg ICBmR0VUMTBCSVQoYzEwLCBWdnZWLnZbMV0udXdbaV0sIDApCisgICAgZkhJREUoc2hvcnQgYzEx OykKKyAgICBmR0VUMTBCSVQoYzExLCBWdnZWLnZbMV0udXdbaV0sIDEpCisgICAgZkhJREUoc2hv cnQgYzEyOykKKyAgICBmR0VUMTBCSVQoYzEyLCBWdnZWLnZbMV0udXdbaV0sIDIpCisKKyAgICBp ZiAodWlWID09IDApIHsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gID0gZk1QWTE2VVMoZkdFVFVC WVRFKDMsVnV1Vi52WzFdLnV3W2ldKSwgYzEwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0g Zk1QWTE2VVMoZkdFVFVCWVRFKDEsVnV1Vi52WzFdLnV3W2ldKSwgYzExKTsKKyAgICAgICAgVmRk Vi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDMsVnV1Vi52WzBdLnV3W2ldKSwgYzEy KTsKKworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVW LnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZMTZVUyhm R0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZbMV0ud1tp XSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixWdXVWLnZbMF0udXdbaV0pLCBjMDIpOworCisgICAg ICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgyLFZ1dVYudlsxXS51d1tp XSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgw LFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkx NlVTKGZHRVRVQllURSgyLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICB9ICBlbHNlIGlm ICh1aVYgPT0gMSkgeworICAgICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZ VEUoMyxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBm TVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMV0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRW LnZbMV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMDIp OworCisgICAgICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYu dlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZH RVRVQllURSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ld ICs9IGZNUFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICAg ICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzFdLnV3W2ld KSwgYzAwKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAs VnV1Vi52WzFdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2 VVMoZkdFVFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKworICAgIH0gIGVsc2UgaWYg KHVpViA9PSAyKSB7CisgICAgICAgIFZkZFYudlsxXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllU RSgxLFZ1dVYudlsxXS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlsxXS53W2ldICs9IGZN UFkxNlVTKGZHRVRVQllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYu dlsxXS53W2ldICs9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMxMik7 CisKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52 WzFdLnV3W2ldKSwgYzAwKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0gKz0gZk1QWTE2VVMoZkdF VFVCWVRFKDIsVnV1Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzFdLndbaV0g Kz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKworICAgICAg ICBWZGRWLnZbMF0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUoMCxWdXVWLnZbMV0udXdbaV0p LCBjMTApOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMixW dXVWLnZbMF0udXdbaV0pLCBjMTEpOworICAgICAgICBWZGRWLnZbMF0ud1tpXSArPSBmTVBZMTZV UyhmR0VUVUJZVEUoMCxWdXVWLnZbMF0udXdbaV0pLCBjMTIpOworCisgICAgfSBlbHNlIGlmICh1 aVYgPT0gMykgeworICAgICAgICBWZGRWLnZbMV0ud1tpXSAgPSBmTVBZMTZVUyhmR0VUVUJZVEUo MSxWdXVWLnZbMV0udXdbaV0pLCBjMDApOworICAgICAgICBWZGRWLnZbMV0ud1tpXSArPSBmTVBZ MTZVUyhmR0VUVUJZVEUoMyxWdXVWLnZbMF0udXdbaV0pLCBjMDEpOworICAgICAgICBWZGRWLnZb MV0ud1tpXSArPSBmTVBZMTZVUyhmR0VUVUJZVEUoMSxWdXVWLnZbMF0udXdbaV0pLCBjMDIpOwor CisgICAgICAgIFZkZFYudlswXS53W2ldICA9IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlsx XS51d1tpXSksIGMxMCk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9IGZNUFkxNlVTKGZHRVRV QllURSgzLFZ1dVYudlswXS51d1tpXSksIGMxMSk7CisgICAgICAgIFZkZFYudlswXS53W2ldICs9 IGZNUFkxNlVTKGZHRVRVQllURSgxLFZ1dVYudlswXS51d1tpXSksIGMxMik7CisKKyAgICAgICAg VmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDAsVnV1Vi52WzFdLnV3W2ldKSwg YzAwKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMoZkdFVFVCWVRFKDIsVnV1 Vi52WzBdLnV3W2ldKSwgYzAxKTsKKyAgICAgICAgVmRkVi52WzBdLndbaV0gKz0gZk1QWTE2VVMo ZkdFVFVCWVRFKDAsVnV1Vi52WzBdLnV3W2ldKSwgYzAyKTsKKyAgICB9CispCisKIAogRVhUSU5T TihWNl92c2NhdHRlcm1od3EsICAiaWYgKFFzNCkgdnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIudyku aD1WdzMyIiwgQVRUUklCUyhBX0VYVEVOU0lPTixBX0NWSSxBX0NWSV9TQ0FUVEVSLEFfQ1ZJX1ZB X0RWLEFfQ1ZJX1ZNLEFfTUVNTElLRSksICJTY2F0dGVyIGhhbGZ3b3JkcyBjb25kaXRpb25hbCIs CiB7Ci0tIAoyLjI1LjEKCg==