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=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 8E1B6C433E6 for ; Mon, 8 Feb 2021 06:05:05 +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 EE6AB64E07 for ; Mon, 8 Feb 2021 06:05:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE6AB64E07 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]:36446 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8zfT-0006AE-Uh for qemu-devel@archiver.kernel.org; Mon, 08 Feb 2021 01:05:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8zOg-0008SH-7J for qemu-devel@nongnu.org; Mon, 08 Feb 2021 00:47:42 -0500 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:14431) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l8zOe-0006S5-1A for qemu-devel@nongnu.org; Mon, 08 Feb 2021 00:47:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1612763260; x=1644299260; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=q/hDRmGBZtBt0clc8esh+Y8YhuVmItlLBHetW0I23zI=; b=pZJ44oOry5n3X6VErI+SFe61wa/mE6PATkDbuzvyD7pAGQsumGyc9Y5d F7K7ta/nT/yR//VH4F2d1Wmj/snuNzqzcFpBjIsYih0zIBahmShGn5I8c /E3Kd8s35s3LOiMSOm9Lrk8UJEh9U1p8WaNAe2c2rXex8+/Wm+4NX7CsB o=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-01.qualcomm.com with ESMTP; 07 Feb 2021 21:46:55 -0800 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 07 Feb 2021 21:46:33 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 591F52C77; Sun, 7 Feb 2021 23:46:30 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v8 21/35] Hexagon (target/hexagon) generator phase 3 - C preprocessor for decode tree Date: Sun, 7 Feb 2021 23:46:11 -0600 Message-Id: <1612763186-18161-22-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1612763186-18161-1-git-send-email-tsimpson@quicinc.com> References: <1612763186-18161-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 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.248, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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: ale@rev.ng, bcain@quicinc.com, philmd@redhat.com, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, alex.bennee@linaro.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UnVuIHRoZSBDIHByZXByb2Nlc3NvciBhY3Jvc3MgdGhlIGluc3RydWN0aW9uIGRlZmluaXRpb24g YW5kIGVuY29kaW5nCmZpbGVzIHRvIGV4cGFuZCBtYWNyb3MgYW5kIHByZXBhcmUgdGhlIGlzZXQu cHkgZmlsZS4gIFRoZSByZXN1bHRpbmcKZmlsbCBjb250YWlucyBweXRob24gZGF0YSBzdHJ1Y3R1 cmVzIHVzZWQgdG8gYnVpbGQgdGhlIGRlY29kZSB0cmVlLgoKU2lnbmVkLW9mZi1ieTogVGF5bG9y IFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgpSZXZpZXdlZC1ieTogUGhpbGlwcGUgTWF0 aGlldS1EYXVkw6kgPGY0YnVnQGFtc2F0Lm9yZz4KLS0tCiB0YXJnZXQvaGV4YWdvbi9nZW5fZGVj dHJlZV9pbXBvcnQuYyB8IDE4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRh cmdldC9oZXhhZ29uL2dlbl9kZWN0cmVlX2ltcG9ydC5jCgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hl eGFnb24vZ2VuX2RlY3RyZWVfaW1wb3J0LmMgYi90YXJnZXQvaGV4YWdvbi9nZW5fZGVjdHJlZV9p bXBvcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjdlY2ZjCi0tLSAv ZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VuX2RlY3RyZWVfaW1wb3J0LmMKQEAgLTAs MCArMSwxODggQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIFRoaXMgcHJvZ3JhbSBn ZW5lcmF0ZXMgdGhlIGVuY29kaW5ncyBmaWxlIHRoYXQgaXMgcHJvY2Vzc2VkIGJ5CisgKiB0aGUg ZGVjdHJlZS5weSBzY3JpcHQgdG8gcHJvZHVjZSB0aGUgZGVjb2RpbmcgdHJlZS4gIFdlIHVzZSB0 aGUgQworICogcHJlcHJvY2Vzc29yIHRvIG1hbmlwdWxhdGUgdGhlIGZpbGVzIGltcG9ydGVkIGZy b20gdGhlIEhleGFnb24KKyAqIGFyY2hpdGVjdHVyZSBsaWJyYXJ5LgorICovCisjaW5jbHVkZSA8 c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJvcGNvZGVzLmgiCisKKyNk ZWZpbmUgU1RSSU5HSVpFKFgpICAgICNYCisKK2NvbnN0IGNoYXIgKiBjb25zdCBvcGNvZGVfbmFt ZXNbXSA9IHsKKyNkZWZpbmUgT1BDT0RFKElJRCkgU1RSSU5HSVpFKElJRCkKKyNpbmNsdWRlICJv cGNvZGVzX2RlZl9nZW5lcmF0ZWQuaC5pbmMiCisgICAgTlVMTAorI3VuZGVmIE9QQ09ERQorfTsK KworLyoKKyAqIFByb2Nlc3MgdGhlIGluc3RydWN0aW9uIGRlZmluaXRpb25zCisgKiAgICAgU2Nh bGFyIGNvcmUgaW5zdHJ1Y3Rpb25zIGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtCisgKiAgICAgICAg IFE2SU5TTihBMl9hZGQsIlJkMzI9YWRkKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyAqICAgICAg ICAgIkFkZCAzMi1iaXQgcmVnaXN0ZXJzIiwKKyAqICAgICAgICAgeyBSZFY9UnNWK1J0Vjt9KQor ICovCitjb25zdCBjaGFyICogY29uc3Qgb3Bjb2RlX3N5bnRheFtYWF9MQVNUX09QQ09ERV0gPSB7 CisjZGVmaW5lIFE2SU5TTihUQUcsIEJFSCwgQVRUUklCUywgREVTQ1IsIFNFTSkgXAorICAgW1RB R10gPSBCRUgsCisjZGVmaW5lIEVYVElOU04oVEFHLCBCRUgsIEFUVFJJQlMsIERFU0NSLCBTRU0p IFwKKyAgIFtUQUddID0gQkVILAorI2luY2x1ZGUgImltcG9ydGVkL2FsbGlkZWZzLmRlZiIKKyN1 bmRlZiBRNklOU04KKyN1bmRlZiBFWFRJTlNOCit9OworCitjb25zdCBjaGFyICogY29uc3Qgb3Bj b2RlX3JyZWdzW10gPSB7CisjZGVmaW5lIFJFR0lORk8oVEFHLCBSRUdJTkZPLCBSUkVHUywgV1JF R1MpIFJSRUdTLAorI2RlZmluZSBJTU1JTkZPKFRBRywgU0lHTiwgU0laRSwgU0hBTVQsIFNJR04y LCBTSVpFMiwgU0hBTVQyKSAgLyogbm90aGluZyAqLworI2luY2x1ZGUgIm9wX3JlZ3NfZ2VuZXJh dGVkLmguaW5jIgorICAgIE5VTEwKKyN1bmRlZiBSRUdJTkZPCisjdW5kZWYgSU1NSU5GTworfTsK KworY29uc3QgY2hhciAqIGNvbnN0IG9wY29kZV93cmVnc1tdID0geworI2RlZmluZSBSRUdJTkZP KFRBRywgUkVHSU5GTywgUlJFR1MsIFdSRUdTKSBXUkVHUywKKyNkZWZpbmUgSU1NSU5GTyhUQUcs IFNJR04sIFNJWkUsIFNIQU1ULCBTSUdOMiwgU0laRTIsIFNIQU1UMikgIC8qIG5vdGhpbmcgKi8K KyNpbmNsdWRlICJvcF9yZWdzX2dlbmVyYXRlZC5oLmluYyIKKyAgICBOVUxMCisjdW5kZWYgUkVH SU5GTworI3VuZGVmIElNTUlORk8KK307CisKK2NvbnN0IE9wY29kZUVuY29kaW5nIG9wY29kZV9l bmNvZGluZ3NbXSA9IHsKKyNkZWZpbmUgREVGX0VOQzMyKFRBRywgRU5DU1RSKSBcCisgICAgW1RB R10gPSB7IC5lbmNvZGluZyA9IEVOQ1NUUiB9LAorI2RlZmluZSBERUZfRU5DX1NVQklOU04oVEFH LCBDTEFTUywgRU5DU1RSKSBcCisgICAgW1RBR10gPSB7IC5lbmNvZGluZyA9IEVOQ1NUUiwgLmVu Y19jbGFzcyA9IENMQVNTIH0sCisjZGVmaW5lIERFRl9FWFRfRU5DKFRBRywgQ0xBU1MsIEVOQ1NU UikgXAorICAgIFtUQUddID0geyAuZW5jb2RpbmcgPSBFTkNTVFIsIC5lbmNfY2xhc3MgPSBDTEFT UyB9LAorI2luY2x1ZGUgImltcG9ydGVkL2VuY29kZS5kZWYiCisjdW5kZWYgREVGX0VOQzMyCisj dW5kZWYgREVGX0VOQ19TVUJJTlNOCisjdW5kZWYgREVGX0VYVF9FTkMKK307CisKK3N0YXRpYyBj b25zdCBjaGFyICogY29uc3Qgb3Bjb2RlX2VuY19jbGFzc19uYW1lc1tYWF9MQVNUX0VOQ19DTEFT U10gPSB7CisgICAgIk5PUk1BTCIsCisgICAgIjE2QklUIiwKKyAgICAiU1VCSU5TTl9BIiwKKyAg ICAiU1VCSU5TTl9MMSIsCisgICAgIlNVQklOU05fTDIiLAorICAgICJTVUJJTlNOX1MxIiwKKyAg ICAiU1VCSU5TTl9TMiIsCisgICAgIkVYVF9ub2V4dCIsCisgICAgIkVYVF9tbXZlYyIsCit9Owor CitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X29wY29kZV9lbmMoaW50IG9wY29kZSkKK3sKKyAgICBj b25zdCBjaGFyICp0bXAgPSBvcGNvZGVfZW5jb2RpbmdzW29wY29kZV0uZW5jb2Rpbmc7CisgICAg aWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgIHRtcCA9ICJNSVNTSU5HIEVOQ09ESU5HIjsKKyAg ICB9CisgICAgcmV0dXJuIHRtcDsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF9vcGNvZGVf ZW5jX2NsYXNzKGludCBvcGNvZGUpCit7CisgICAgcmV0dXJuIG9wY29kZV9lbmNfY2xhc3NfbmFt ZXNbb3Bjb2RlX2VuY29kaW5nc1tvcGNvZGVdLmVuY19jbGFzc107Cit9CisKK3N0YXRpYyB2b2lk IGdlbl9pc2V0X3RhYmxlKEZJTEUgKm91dCkKK3sKKyAgICBpbnQgaTsKKworICAgIGZwcmludGYo b3V0LCAiaXNldCA9IHtcbiIpOworICAgIGZvciAoaSA9IDA7IGkgPCBYWF9MQVNUX09QQ09ERTsg aSsrKSB7CisgICAgICAgIGZwcmludGYob3V0LCAiXHRcJyVzXCcgOiB7XG4iLCBvcGNvZGVfbmFt ZXNbaV0pOworICAgICAgICBmcHJpbnRmKG91dCwgIlx0XHRcJ3RhZ1wnIDogXCclc1wnLFxuIiwg b3Bjb2RlX25hbWVzW2ldKTsKKyAgICAgICAgZnByaW50ZihvdXQsICJcdFx0XCdzeW50YXhcJyA6 IFwnJXNcJyxcbiIsIG9wY29kZV9zeW50YXhbaV0pOworICAgICAgICBmcHJpbnRmKG91dCwgIlx0 XHRcJ3JyZWdzXCcgOiBcJyVzXCcsXG4iLCBvcGNvZGVfcnJlZ3NbaV0pOworICAgICAgICBmcHJp bnRmKG91dCwgIlx0XHRcJ3dyZWdzXCcgOiBcJyVzXCcsXG4iLCBvcGNvZGVfd3JlZ3NbaV0pOwor ICAgICAgICBmcHJpbnRmKG91dCwgIlx0XHRcJ2VuY1wnIDogXCclc1wnLFxuIiwgZ2V0X29wY29k ZV9lbmMoaSkpOworICAgICAgICBmcHJpbnRmKG91dCwgIlx0XHRcJ2VuY19jbGFzc1wnIDogXCcl c1wnLFxuIiwgZ2V0X29wY29kZV9lbmNfY2xhc3MoaSkpOworICAgICAgICBmcHJpbnRmKG91dCwg Ilx0fSxcbiIpOworICAgIH0KKyAgICBmcHJpbnRmKG91dCwgIn07XG5cbiIpOworfQorCitzdGF0 aWMgdm9pZCBnZW5fdGFnc19saXN0KEZJTEUgKm91dCkKK3sKKyAgICBpbnQgaTsKKworICAgIGZw cmludGYob3V0LCAidGFncyA9IFtcbiIpOworICAgIGZvciAoaSA9IDA7IGkgPCBYWF9MQVNUX09Q Q09ERTsgaSsrKSB7CisgICAgICAgIGZwcmludGYob3V0LCAiXHRcJyVzXCcsXG4iLCBvcGNvZGVf bmFtZXNbaV0pOworICAgIH0KKyAgICBmcHJpbnRmKG91dCwgIl07XG5cbiIpOworfQorCitzdGF0 aWMgdm9pZCBnZW5fZW5jX2V4dF9zcGFjZXNfdGFibGUoRklMRSAqb3V0KQoreworICAgIGZwcmlu dGYob3V0LCAiZW5jX2V4dF9zcGFjZXMgPSB7XG4iKTsKKyNkZWZpbmUgREVGX0VYVF9TUEFDRShT UEFDRUlELCBFTkNTVFIpIFwKKyAgICBmcHJpbnRmKG91dCwgIlx0XCclc1wnIDogXCclc1wnLFxu IiwgI1NQQUNFSUQsIEVOQ1NUUik7CisjaW5jbHVkZSAiaW1wb3J0ZWQvZW5jb2RlLmRlZiIKKyN1 bmRlZiBERUZfRVhUX1NQQUNFCisgICAgZnByaW50ZihvdXQsICJ9O1xuXG4iKTsKK30KKworc3Rh dGljIHZvaWQgZ2VuX3N1Ymluc25fZ3JvdXBpbmdzX3RhYmxlKEZJTEUgKm91dCkKK3sKKyAgICBm cHJpbnRmKG91dCwgInN1Ymluc25fZ3JvdXBpbmdzID0ge1xuIik7CisjZGVmaW5lIERFRl9QQUNL RUQzMihUQUcsIFRZUEVBLCBUWVBFQiwgRU5DU1RSKSBcCisgICAgZG8geyBcCisgICAgICAgIGZw cmludGYob3V0LCAiXHRcJyVzXCcgOiB7XG4iLCAjVEFHKTsgXAorICAgICAgICBmcHJpbnRmKG91 dCwgIlx0XHRcJ25hbWVcJyA6IFwnJXNcJyxcbiIsICNUQUcpOyBcCisgICAgICAgIGZwcmludGYo b3V0LCAiXHRcdFwnY2xhc3NfYVwnIDogXCclc1wnLFxuIiwgI1RZUEVBKTsgXAorICAgICAgICBm cHJpbnRmKG91dCwgIlx0XHRcJ2NsYXNzX2JcJyA6IFwnJXNcJyxcbiIsICNUWVBFQik7IFwKKyAg ICAgICAgZnByaW50ZihvdXQsICJcdFx0XCdlbmNcJyA6IFwnJXNcJyxcbiIsIEVOQ1NUUik7IFwK KyAgICAgICAgZnByaW50ZihvdXQsICJcdH0sXG4iKTsgXAorICAgIH0gd2hpbGUgKDApOworI2lu Y2x1ZGUgImltcG9ydGVkL2VuY29kZS5kZWYiCisjdW5kZWYgREVGX1BBQ0tFRDMyCisgICAgZnBy aW50ZihvdXQsICJ9O1xuXG4iKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKK3sKKyAgICBGSUxFICpvdXRmaWxlOworCisgICAgaWYgKGFyZ2MgIT0gMikgeworICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiBnZW5fZGVjdHJlZV9pbXBvcnQgb3VwdHB1dGZpbGVc biIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgb3V0ZmlsZSA9IGZvcGVuKGFyZ3Zb MV0sICJ3Iik7CisgICAgaWYgKG91dGZpbGUgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIkNhbm5vdCBvcGVuICVzIGZvciB3cml0aW5nXG4iLCBhcmd2WzFdKTsKKyAgICAgICAg cmV0dXJuIDE7CisgICAgfQorCisgICAgZ2VuX2lzZXRfdGFibGUob3V0ZmlsZSk7CisgICAgZ2Vu X3RhZ3NfbGlzdChvdXRmaWxlKTsKKyAgICBnZW5fZW5jX2V4dF9zcGFjZXNfdGFibGUob3V0Zmls ZSk7CisgICAgZ2VuX3N1Ymluc25fZ3JvdXBpbmdzX3RhYmxlKG91dGZpbGUpOworCisgICAgZmNs b3NlKG91dGZpbGUpOworICAgIHJldHVybiAwOworfQotLSAKMi43LjQKCg==