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 X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09AF9C3F2D3 for ; Fri, 28 Feb 2020 17:11:36 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id BD3082469F for ; Fri, 28 Feb 2020 17:11:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="amJRBGtk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BD3082469F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51038 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7jAk-0004Di-Um for qemu-devel@archiver.kernel.org; Fri, 28 Feb 2020 12:11:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58481) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7imC-0005kp-4o for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7imA-0007J0-AP for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:12 -0500 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:13235) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j7ilV-0005U6-Cl for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1582908329; x=1614444329; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2+uAiedU+urypLFQ4IYHhsrI57ddDc4rKBSiDcdGapY=; b=amJRBGtkR/aajoPTF7pHv57EpeExqKHKZiqPm6tP51LATZqPk5fQ2jiF zPRKp6228J3cG2mxHiIPHqXN1E6SF4l2X4+RDCHwgpgG4gr7e4Js6x6sv iqoaQXNBlxy/3kmoTbmJvH07vwZtTkcBExRMAEt9VxIQtlMT9Z0BTMPk/ 0=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-01.qualcomm.com with ESMTP; 28 Feb 2020 08:44:31 -0800 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 28 Feb 2020 08:44:30 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 646F6115A; Fri, 28 Feb 2020 10:44:30 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v2 30/67] Hexagon opcode data structures Date: Fri, 28 Feb 2020 10:43:26 -0600 Message-Id: <1582908244-304-31-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> References: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 199.106.114.38 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, Taylor Simpson , philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" U2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0K IHRhcmdldC9oZXhhZ29uL29wY29kZXMuaCB8ICA2NyArKysrKysrKysrKysrKysKIHRhcmdldC9o ZXhhZ29uL29wY29kZXMuYyB8IDIxNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyODQgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL29wY29kZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRhcmdldC9oZXhhZ29uL29wY29kZXMuYwoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL29w Y29kZXMuaCBiL3RhcmdldC9oZXhhZ29uL29wY29kZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5kMjlhMWEyCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24v b3Bjb2Rlcy5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAy MCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor ICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRl ZiBIRVhBR09OX09QQ09ERVNfSAorI2RlZmluZSBIRVhBR09OX09QQ09ERVNfSAorCisjaW5jbHVk ZSAiaGV4X2FyY2hfdHlwZXMuaCIKKyNpbmNsdWRlICJhdHRyaWJzLmgiCisKK3R5cGVkZWYgZW51 bSB7CisjZGVmaW5lIE9QQ09ERShJSUQpIElJRAorI2luY2x1ZGUgIm9wY29kZXNfZGVmX2dlbmVy YXRlZC5oIgorICAgIFhYX0xBU1RfT1BDT0RFCisjdW5kZWYgT1BDT0RFCit9IG9wY29kZV90Owor Cit0eXBlZGVmIGVudW0geworICAgIE5PUk1BTCwKKyAgICBIQUxGLAorICAgIFNVQklOU05fQSwK KyAgICBTVUJJTlNOX0wxLAorICAgIFNVQklOU05fTDIsCisgICAgU1VCSU5TTl9TMSwKKyAgICBT VUJJTlNOX1MyLAorICAgIEVYVF9ub2V4dCwKKyAgICBFWFRfbW12ZWMsCisgICAgWFhfTEFTVF9F TkNfQ0xBU1MKK30gZW5jX2NsYXNzX3Q7CisKK2V4dGVybiBjb25zdCBjaGFyICpvcGNvZGVfbmFt ZXNbXTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKm9wY29kZV9yZWdpbmZvW107CitleHRlcm4gY29u c3QgY2hhciAqb3Bjb2RlX3JyZWdzW107CitleHRlcm4gY29uc3QgY2hhciAqb3Bjb2RlX3dyZWdz W107CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBjaGFyICogY29uc3QgZW5jb2Rpbmc7 CisgICAgc2l6ZTR1X3QgdmFsczsKKyAgICBzaXplNHVfdCBkZXBfdmFsczsKKyAgICBjb25zdCBl bmNfY2xhc3NfdCBlbmNfY2xhc3M7CisgICAgc2l6ZTF1X3QgaXNfZWU6MTsKK30gb3Bjb2RlX2Vu Y29kaW5nX3Q7CisKK2V4dGVybiBvcGNvZGVfZW5jb2RpbmdfdCBvcGNvZGVfZW5jb2RpbmdzW1hY X0xBU1RfT1BDT0RFXTsKKworZXh0ZXJuIHNpemU0dV90CisgICAgb3Bjb2RlX2F0dHJpYnNbWFhf TEFTVF9PUENPREVdWyhBX1paX0xBU1RBVFRSSUIgLyBBVFRSSUJfV0lEVEgpICsgMV07CisKK2V4 dGVybiB2b2lkIG9wY29kZV9pbml0KHZvaWQpOworCitleHRlcm4gaW50IG9wY29kZV93aGljaF9p bW1lZGlhdGVfaXNfZXh0ZW5kZWQob3Bjb2RlX3Qgb3Bjb2RlKTsKKworI2VuZGlmCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9vcGNvZGVzLmMgYi90YXJnZXQvaGV4YWdvbi9vcGNvZGVzLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjljNzYxMgotLS0gL2Rldi9udWxs CisrKyBiL3RhcmdldC9oZXhhZ29uL29wY29kZXMuYwpAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAq ICBDb3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKyAqLworCisvKgorICogb3Bjb2Rlcy5jCisgKgorICogZGF0YSB0YWJsZXMgZ2Vu ZXJhdGVkIGF1dG9tYXRpY2FsbHkKKyAqIE1heWJlIHNvbWUgZnVuY3Rpb25zIHRvbworICovCisK KyNpbmNsdWRlICJxZW11L29zZGVwLmgiCisjaW5jbHVkZSAib3Bjb2Rlcy5oIgorI2luY2x1ZGUg ImRlY29kZS5oIgorCisjZGVmaW5lIFZFQ19ERVNDUihBLCBCLCBDKSBERVNDUihBLCBCLCBDKQor I2RlZmluZSBET05BTUUoWCkgI1gKKworY29uc3QgY2hhciAqb3Bjb2RlX25hbWVzW10gPSB7Cisj ZGVmaW5lIE9QQ09ERShJSUQpIERPTkFNRShJSUQpCisjaW5jbHVkZSAib3Bjb2Rlc19kZWZfZ2Vu ZXJhdGVkLmgiCisgICAgTlVMTAorI3VuZGVmIE9QQ09ERQorfTsKKworY29uc3QgY2hhciAqb3Bj b2RlX3JlZ2luZm9bXSA9IHsKKyNkZWZpbmUgSU1NSU5GTyhUQUcsIFNJR04sIFNJWkUsIFNIQU1U LCBTSUdOMiwgU0laRTIsIFNIQU1UMikgICAgLyogbm90aGluZyAqLworI2RlZmluZSBSRUdJTkZP KFRBRywgUkVHSU5GTywgUlJFR1MsIFdSRUdTKSBSRUdJTkZPLAorI2luY2x1ZGUgIm9wX3JlZ3Nf Z2VuZXJhdGVkLmgiCisgICAgTlVMTAorI3VuZGVmIFJFR0lORk8KKyN1bmRlZiBJTU1JTkZPCit9 OworCisKK2NvbnN0IGNoYXIgKm9wY29kZV9ycmVnc1tdID0geworI2RlZmluZSBJTU1JTkZPKFRB RywgU0lHTiwgU0laRSwgU0hBTVQsIFNJR04yLCBTSVpFMiwgU0hBTVQyKSAgICAvKiBub3RoaW5n ICovCisjZGVmaW5lIFJFR0lORk8oVEFHLCBSRUdJTkZPLCBSUkVHUywgV1JFR1MpIFJSRUdTLAor I2luY2x1ZGUgIm9wX3JlZ3NfZ2VuZXJhdGVkLmgiCisgICAgTlVMTAorI3VuZGVmIFJFR0lORk8K KyN1bmRlZiBJTU1JTkZPCit9OworCisKK2NvbnN0IGNoYXIgKm9wY29kZV93cmVnc1tdID0gewor I2RlZmluZSBJTU1JTkZPKFRBRywgU0lHTiwgU0laRSwgU0hBTVQsIFNJR04yLCBTSVpFMiwgU0hB TVQyKSAgICAvKiBub3RoaW5nICovCisjZGVmaW5lIFJFR0lORk8oVEFHLCBSRUdJTkZPLCBSUkVH UywgV1JFR1MpIFdSRUdTLAorI2luY2x1ZGUgIm9wX3JlZ3NfZ2VuZXJhdGVkLmgiCisgICAgTlVM TAorI3VuZGVmIFJFR0lORk8KKyN1bmRlZiBJTU1JTkZPCit9OworCitjb25zdCBjaGFyICpvcGNv ZGVfc2hvcnRfc2VtYW50aWNzW10gPSB7CisjZGVmaW5lIE9QQ09ERShYKSAgICAgICAgICAgICAg TlVMTAorI2luY2x1ZGUgIm9wY29kZXNfZGVmX2dlbmVyYXRlZC5oIgorI3VuZGVmIE9QQ09ERQor ICAgIE5VTEwKK307CisKKworc2l6ZTR1X3QKKyAgICBvcGNvZGVfYXR0cmlic1tYWF9MQVNUX09Q Q09ERV1bKEFfWlpfTEFTVEFUVFJJQiAvIEFUVFJJQl9XSURUSCkgKyAxXSA9IHswfTsKKworc3Rh dGljIHZvaWQgaW5pdF9hdHRyaWJzKGludCB0YWcsIC4uLikKK3sKKyAgICB2YV9saXN0IGFwOwor ICAgIGludCBhdHRyOworICAgIHZhX3N0YXJ0KGFwLCB0YWcpOworICAgIHdoaWxlICgoYXR0ciA9 IHZhX2FyZyhhcCwgaW50KSkgIT0gMCkgeworICAgICAgICBvcGNvZGVfYXR0cmlic1t0YWddW2F0 dHIgLyBBVFRSSUJfV0lEVEhdIHw9IDEgPDwgKGF0dHIgJSBBVFRSSUJfV0lEVEgpOworICAgIH0K K30KKworc3RhdGljIHNpemU0dV90IHN0cjJ2YWwoY29uc3QgY2hhciAqc3RyKQoreworICAgIHNp emU0dV90IHJldCA9IDA7CisgICAgZm9yICggOyAqc3RyOyBzdHIrKykgeworICAgICAgICBzd2l0 Y2ggKCpzdHIpIHsKKyAgICAgICAgY2FzZSAnICc6CisgICAgICAgIGNhc2UgJ1x0JzoKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgY2FzZSAndCc6CisgICAg ICAgIGNhc2UgJ3UnOgorICAgICAgICBjYXNlICd2JzoKKyAgICAgICAgY2FzZSAndyc6CisgICAg ICAgIGNhc2UgJ2QnOgorICAgICAgICBjYXNlICdlJzoKKyAgICAgICAgY2FzZSAneCc6CisgICAg ICAgIGNhc2UgJ3knOgorICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgY2FzZSAnSSc6CisgICAg ICAgIGNhc2UgJ1AnOgorICAgICAgICBjYXNlICdFJzoKKyAgICAgICAgY2FzZSAnbyc6CisgICAg ICAgIGNhc2UgJy0nOgorICAgICAgICBjYXNlICcwJzoKKyAgICAgICAgICAgIHJldCA9IChyZXQg PDwgMSkgfCAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJzEnOgorICAgICAg ICAgICAgcmV0ID0gKHJldCA8PCAxKSB8IDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVy biByZXQ7Cit9CisKK3N0YXRpYyBzaXplMXVfdCBoYXNfZWUoY29uc3QgY2hhciAqc3RyKQorewor ICAgIHJldHVybiAoc3RyY2hyKHN0ciwgJ0UnKSAhPSBOVUxMKTsKK30KKworb3Bjb2RlX2VuY29k aW5nX3Qgb3Bjb2RlX2VuY29kaW5nc1tdID0geworI2RlZmluZSBERUZfRU5DMzIoT1BDT0RFLCBF TkNTVFIpIFwKKyAgICBbT1BDT0RFXSA9IHsgLmVuY29kaW5nID0gRU5DU1RSIH0sCisKKyNkZWZp bmUgREVGX0VOQ19TVUJJTlNOKE9QQ09ERSwgQ0xBU1MsIEVOQ1NUUikgXAorICAgIFtPUENPREVd ID0geyAuZW5jb2RpbmcgPSBFTkNTVFIsIC5lbmNfY2xhc3MgPSBDTEFTUyB9LAorCisjZGVmaW5l IERFRl9FWFRfRU5DKE9QQ09ERSwgQ0xBU1MsIEVOQ1NUUikgXAorICAgIFtPUENPREVdID0geyAu ZW5jb2RpbmcgPSBFTkNTVFIsIC5lbmNfY2xhc3MgPSBDTEFTUyB9LAorCisjaW5jbHVkZSAiaW1w b3J0ZWQvZW5jb2RlLmRlZiIKKworI3VuZGVmIERFRl9FTkMzMgorI3VuZGVmIERFRl9FTkNfU1VC SU5TTgorI3VuZGVmIERFRl9FWFRfRU5DCit9OworCit2b2lkIG9wY29kZV9pbml0KHZvaWQpCit7 CisgICAgaW5pdF9hdHRyaWJzKDAsIDApOworCisjZGVmaW5lIERFRl9FTkMzMihPUENPREUsIEVO Q1NUUikgXAorICAgIG9wY29kZV9lbmNvZGluZ3NbT1BDT0RFXS52YWxzID0gc3RyMnZhbChFTkNT VFIpOyBcCisgICAgb3Bjb2RlX2VuY29kaW5nc1tPUENPREVdLmlzX2VlID0gaGFzX2VlKEVOQ1NU Uik7CisKKyNkZWZpbmUgREVGX0VOQ19TVUJJTlNOKE9QQ09ERSwgQ0xBU1MsIEVOQ1NUUikgXAor ICAgIG9wY29kZV9lbmNvZGluZ3NbT1BDT0RFXS52YWxzID0gc3RyMnZhbChFTkNTVFIpOworCisj ZGVmaW5lIExFR0FDWV9ERUZfRU5DMzIoT1BDT0RFLCBFTkNTVFIpIFwKKyAgICBvcGNvZGVfZW5j b2RpbmdzW09QQ09ERV0uZGVwX3ZhbHMgPSBzdHIydmFsKEVOQ1NUUik7CisKKyNkZWZpbmUgREVG X0VYVF9FTkMoT1BDT0RFLCBDTEFTUywgRU5DU1RSKSBcCisgICAgb3Bjb2RlX2VuY29kaW5nc1tP UENPREVdLnZhbHMgPSBzdHIydmFsKEVOQ1NUUik7CisKKyNpbmNsdWRlICJpbXBvcnRlZC9lbmNv ZGUuZGVmIgorCisjdW5kZWYgTEVHQUNZX0RFRl9FTkMzMgorI3VuZGVmIERFRl9FTkMzMgorI3Vu ZGVmIERFRl9FTkNfU1VCSU5TTgorI3VuZGVmIERFRl9FWFRfRU5DCisKKyNkZWZpbmUgQVRUUklC UyguLi4pICwgIyMgX19WQV9BUkdTX18sIDAKKyNkZWZpbmUgT1BfQVRUUklCKFRBRywgQVJHUykg aW5pdF9hdHRyaWJzKFRBRyBBUkdTKTsKKyNpbmNsdWRlICJvcF9hdHRyaWJzX2dlbmVyYXRlZC5o IgorI3VuZGVmIE9QX0FUVFJJQgorI3VuZGVmIEFUVFJJQlMKKworICAgIGRlY29kZV9pbml0KCk7 CisKKyNkZWZpbmUgREVGX1FFTVUoVEFHLCBTSE9SVENPREUsIEhFTFBFUiwgR0VORk4sIEhFTFBG TikgXAorICAgIG9wY29kZV9zaG9ydF9zZW1hbnRpY3NbVEFHXSA9ICNTSE9SVENPREU7CisjaW5j bHVkZSAicWVtdV9kZWZfZ2VuZXJhdGVkLmgiCisjdW5kZWYgREVGX1FFTVUKK30KKworCisjZGVm aW5lIE5FRURMRSAiSU1NRVhUKCIKKworaW50IG9wY29kZV93aGljaF9pbW1lZGlhdGVfaXNfZXh0 ZW5kZWQob3Bjb2RlX3Qgb3Bjb2RlKQoreworICAgIGNvbnN0IGNoYXIgKnA7CisgICAgaWYgKG9w Y29kZSA+PSBYWF9MQVNUX09QQ09ERSkgeworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgp OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKCFHRVRfQVRUUklCKG9wY29kZSwg QV9FWFRFTkRBQkxFKSkgeworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAg ICByZXR1cm4gMDsKKyAgICB9CisgICAgcCA9IG9wY29kZV9zaG9ydF9zZW1hbnRpY3Nbb3Bjb2Rl XTsKKyAgICBwID0gc3Ryc3RyKHAsIE5FRURMRSk7CisgICAgaWYgKHAgPT0gTlVMTCkgeworICAg ICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cisg ICAgcCArPSBzdHJsZW4oTkVFRExFKTsKKyAgICB3aGlsZSAoaXNzcGFjZSgqcCkpIHsKKyAgICAg ICAgcCsrOworICAgIH0KKyAgICAvKiBsb3dlciBpcyBhbHdheXMgaW1tIDAsIHVwcGVyIGFsd2F5 cyBpbW0gMS4gKi8KKyAgICBpZiAoaXNsb3dlcigqcCkpIHsKKyAgICAgICAgcmV0dXJuIDA7Cisg ICAgfSBlbHNlIGlmIChpc3VwcGVyKCpwKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVs c2UgeworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgIH0KK30KLS0gCjIuNy40 Cgo=