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 1CDBAC352A4 for ; Tue, 11 Feb 2020 00:54:53 +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 CA2792080C for ; Tue, 11 Feb 2020 00:54:52 +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="WT4j8zVk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CA2792080C 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]:41732 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1JpD-0006oM-Ug for qemu-devel@archiver.kernel.org; Mon, 10 Feb 2020 19:54:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33055) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1JcR-0001rd-Hu for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:41:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j1JcO-00088u-Qp for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:41:39 -0500 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:3646) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j1JcO-0004rG-FL for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:41:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1581381696; x=1612917696; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c5W9eRA4oq2AUWAT/Pd72ISr9T4rCtj1MNEMWATJ8wA=; b=WT4j8zVkcMIGuo+OtasBtVYPEupU//O175ooqjrxXflXEyrPvZEzsuqv 2fMvqcuFqeLm3ci0ToensOClqPaDPL+nT4sPqZpv6QzeC1ms82iThF3bt iK6+AK9f2JdKuCnc2mNPrEUByEQBZA8RvFx0bNbeD5bdp2oD5uGBDQuaJ Y=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-01.qualcomm.com with ESMTP; 10 Feb 2020 16:41:01 -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; 10 Feb 2020 16:41:01 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 15A221BBA; Mon, 10 Feb 2020 18:41:01 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH 39/66] Hexagon TCG generation - step 02 Date: Mon, 10 Feb 2020 18:40:17 -0600 Message-Id: <1581381644-13678-40-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1581381644-13678-1-git-send-email-tsimpson@quicinc.com> References: <1581381644-13678-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" T3ZlcnJpZGUgbG9hZCBpbnN0cnVjdGlvbnMKClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29u IDx0c2ltcHNvbkBxdWljaW5jLmNvbT4KLS0tCiB0YXJnZXQvaGV4YWdvbi9nZW5wdHIuYyAgICAg ICAgICAgfCAgIDEgKwogdGFyZ2V0L2hleGFnb24vaGVscGVyX292ZXJyaWRlcy5oIHwgNDA0ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQw NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFnb24vaGVscGVy X292ZXJyaWRlcy5oCgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vZ2VucHRyLmMgYi90YXJn ZXQvaGV4YWdvbi9nZW5wdHIuYwppbmRleCAyYTUwYmUwLi4zMDMxOWI1IDEwMDY0NAotLS0gYS90 YXJnZXQvaGV4YWdvbi9nZW5wdHIuYworKysgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuYwpAQCAt MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInRyYW5zbGF0ZS5oIgogI2luY2x1ZGUgIm1hY3Jvcy5o IgogI2luY2x1ZGUgImdlbnB0cl9oZWxwZXJzLmgiCisjaW5jbHVkZSAiaGVscGVyX292ZXJyaWRl cy5oIgogCiAjaW5jbHVkZSAicWVtdV93cmFwX2dlbmVyYXRlZC5oIgogCmRpZmYgLS1naXQgYS90 YXJnZXQvaGV4YWdvbi9oZWxwZXJfb3ZlcnJpZGVzLmggYi90YXJnZXQvaGV4YWdvbi9oZWxwZXJf b3ZlcnJpZGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMzMzU1Mwot LS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2hlbHBlcl9vdmVycmlkZXMuaApAQCAt MCwwICsxLDQwNCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTkgUXVhbGNvbW0gSW5ub3Zh dGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgSEVMUEVSX09WRVJSSURF U19ICisjZGVmaW5lIEhFTFBFUl9PVkVSUklERVNfSAorCisvKgorICogSGVyZSBpcyBhIHByaW1l ciB0byB1bmRlcnN0YW5kIHRoZSB0YWcgbmFtZXMgZm9yIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25z CisgKgorICogRGF0YSB0eXBlcworICogICAgICBiICAgICAgICBzaWduZWQgYnl0ZSAgICAgICAg ICAgICAgICAgICAgICAgcjAgPSBtZW1iKHIyKyMwKQorICogICAgIHViICAgICAgICB1bnNpZ25l ZCBieXRlICAgICAgICAgICAgICAgICAgICAgcjAgPSBtZW11YihyMisjMCkKKyAqICAgICAgaCAg ICAgICAgc2lnbmVkIGhhbGYgd29yZCAoMTYgYml0cykgICAgICAgIHIwID0gbWVtaChyMisjMCkK KyAqICAgICB1aCAgICAgICAgdW5zaWduZWQgaGFsZiB3b3JkICAgICAgICAgICAgICAgIHIwID0g bWVtdWgocjIrIzApCisgKiAgICAgIGkgICAgICAgIGludGVnZXIgKDMyIGJpdHMpICAgICAgICAg ICAgICAgICByMCA9IG1lbXcocjIrIzApCisgKiAgICAgIGQgICAgICAgIGRvdWJsZSB3b3JkICg2 NCBiaXRzKSAgICAgICAgICAgICByMTowID0gbWVtZChyMisjMCkKKyAqCisgKiBBZGRyZXNzaW5n IG1vZGVzCisgKiAgICAgX2lvICAgICAgIGluZGlyZWN0IHdpdGggb2Zmc2V0ICAgICAgICAgICAg ICByMCA9IG1lbXcocjErIzQpCisgKiAgICAgX3VyICAgICAgIGFic29sdXRlIHdpdGggcmVnaXN0 ZXIgb2Zmc2V0ICAgICByMCA9IG1lbXcocjE8PCM0KyMjdmFyaWFibGUpCisgKiAgICAgX3JyICAg ICAgIGluZGlyZWN0IHdpdGggcmVnaXN0ZXIgb2Zmc2V0ICAgICByMCA9IG1lbXcocjErcjQ8PCMy KQorICogICAgIGdwICAgICAgICBnbG9iYWwgcG9pbnRlciByZWxhdGl2ZSAgICAgICAgICAgcjAg PSBtZW13KGdwKyMyMDApCisgKiAgICAgX3NwICAgICAgIHN0YWNrIHBvaW50ZXIgcmVsYXRpdmUg ICAgICAgICAgICByMCA9IG1lbXcocjI5KyMxMikKKyAqICAgICBfYXAgICAgICAgYWJzb2x1dGUg c2V0ICAgICAgICAgICAgICAgICAgICAgIHIwID0gbWVtdyhyMT0jI3ZhcmlhYmxlKQorICogICAg IF9wciAgICAgICBwb3N0IGluY3JlbWVudCByZWdpc3RlciAgICAgICAgICAgcjAgPSBtZW13KHIx KyttMSkKKyAqICAgICBfcGJyICAgICAgcG9zdCBpbmNyZW1lbnQgYml0IHJldmVyc2UgICAgICAg IHIwID0gbWVtdyhyMSsrbTE6YnJldikKKyAqICAgICBfcGkgICAgICAgcG9zdCBpbmNyZW1lbnQg aW1tZWRpYXRlICAgICAgICAgIHIwID0gbWVtYihyMSsrIzEpCisgKiAgICAgX3BjaSAgICAgIHBv c3QgaW5jcmVtZW50IGNpcmN1bGFyIGltbWVkaWF0ZSByMCA9IG1lbXcocjErKyM0OmNpcmMobTAp KQorICogICAgIF9wY3IgICAgICBwb3N0IGluY3JlbWVudCBjaXJjdWxhciByZWdpc3RlciAgcjAg PSBtZW13KHIxKytJOmNpcmMobTApKQorICovCisKKy8qIE1hY3JvcyBmb3IgY29tcGxleCBhZGRy ZXNzaW5nIG1vZGVzICovCisjZGVmaW5lIEdFVF9FQV9hcCBcCisgICAgZG8geyBcCisgICAgICAg IGZFQV9JTU0oVWlWKTsgXAorICAgICAgICB0Y2dfZ2VuX21vdmlfdGwoUmVWLCBVaVYpOyBcCisg ICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgR0VUX0VBX3ByIFwKKyAgICBkbyB7IFwKKyAgICAgICAg ZkVBX1JFRyhSeFYpOyBcCisgICAgICAgIGZQTV9NKFJ4ViwgTXVWKTsgXAorICAgIH0gd2hpbGUg KDApCisjZGVmaW5lIEdFVF9FQV9wYnIgXAorICAgIGRvIHsgXAorICAgICAgICBmRUFfQlJFVlIo UnhWKTsgXAorICAgICAgICBmUE1fTShSeFYsIE11Vik7IFwKKyAgICB9IHdoaWxlICgwKQorI2Rl ZmluZSBHRVRfRUFfcGkgXAorICAgIGRvIHsgXAorICAgICAgICBmRUFfUkVHKFJ4Vik7IFwKKyAg ICAgICAgZlBNX0koUnhWLCBzaVYpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgR0VUX0VB X3BjaSBcCisgICAgZG8geyBcCisgICAgICAgIGZFQV9SRUcoUnhWKTsgXAorICAgICAgICBmUE1f Q0lSSShSeFYsIHNpViwgTXVWKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIEdFVF9FQV9w Y3IoU0hJRlQpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgZkVBX1JFRyhSeFYpOyBcCisgICAgICAg IGZQTV9DSVJSKFJ4ViwgZlJFQURfSVJFRyhNdVYsIChTSElGVCkpLCBNdVYpOyBcCisgICAgfSB3 aGlsZSAoMCkKKworLyoKKyAqIE1hbnkgaW5zdHJ1Y3Rpb25zIHdpbGwgd29yayB3aXRoIGp1c3Qg bWFjcm8gcmVkZWZpbml0aW9ucworICogd2l0aCB0aGUgY2F2ZWF0IHRoYXQgdGhleSBuZWVkIGEg dG1wIHZhcmlhYmxlIHRvIGNhcnJ5IGEKKyAqIHZhbHVlIGJldHdlZW4gdGhlbS4KKyAqLworI2Rl ZmluZSBmV1JBUF90bXAoU0hPUlRDT0RFKSBcCisgICAgZG8geyBcCisgICAgICAgIFRDR3YgdG1w ID0gdGNnX3RlbXBfbmV3KCk7IFwKKyAgICAgICAgU0hPUlRDT0RFOyBcCisgICAgICAgIHRjZ190 ZW1wX2ZyZWUodG1wKTsgXAorICAgIH0gd2hpbGUgKDApCisKKy8qIEJ5dGUgbG9hZCBpbnN0cnVj dGlvbnMgKi8KKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJ1Yl9pbyhHRU5ITFBSLCBTSE9SVENPREUp ICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRyYl9pbyhHRU5ITFBSLCBTSE9S VENPREUpICAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JBUF9MNF9sb2FkcnViX3VyKEdFTkhM UFIsIFNIT1JUQ09ERSkgICAgICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDRfbG9hZHJiX3Vy KEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0w0X2xv YWRydWJfcnIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JB UF9MNF9sb2FkcmJfcnIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNkZWZp bmUgZldSQVBfTDJfbG9hZHJ1YmdwKEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgZldSQVBfdG1w KFNIT1JUQ09ERSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJiZ3AoR0VOSExQUiwgU0hPUlRDT0RF KSAgICAgICAgZldSQVBfdG1wKFNIT1JUQ09ERSkKKyNkZWZpbmUgZldSQVBfU0wxX2xvYWRydWJf aW8oR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX1NMMl9s b2FkcmJfaW8oR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgIFNIT1JUQ09ERQorCisvKiBIYWxmIHdv cmQgbG9hZCBpbnN0cnVjdGlvbiAqLworI2RlZmluZSBmV1JBUF9MMl9sb2FkcnVoX2lvKEdFTkhM UFIsIFNIT1JUQ09ERSkgICAgICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJoX2lv KEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0w0X2xv YWRydWhfdXIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JB UF9MNF9sb2FkcmhfdXIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNkZWZp bmUgZldSQVBfTDRfbG9hZHJ1aF9ycihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRDT0RF CisjZGVmaW5lIGZXUkFQX0w0X2xvYWRyaF9ycihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgIFNI T1JUQ09ERQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcnVoZ3AoR0VOSExQUiwgU0hPUlRDT0RFKSAg ICAgICBmV1JBUF90bXAoU0hPUlRDT0RFKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcmhncChHRU5I TFBSLCBTSE9SVENPREUpICAgICAgICBmV1JBUF90bXAoU0hPUlRDT0RFKQorI2RlZmluZSBmV1JB UF9TTDJfbG9hZHJ1aF9pbyhHRU5ITFBSLCBTSE9SVENPREUpICAgICBTSE9SVENPREUKKyNkZWZp bmUgZldSQVBfU0wyX2xvYWRyaF9pbyhHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRDT0RF CisKKy8qIFdvcmQgbG9hZCBpbnN0cnVjdGlvbnMgKi8KKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJp X2lvKEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0w0 X2xvYWRyaV91cihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBm V1JBUF9MNF9sb2FkcmlfcnIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNk ZWZpbmUgZldSQVBfTDJfbG9hZHJpZ3AoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICAgZldSQVBf dG1wKFNIT1JUQ09ERSkKKyNkZWZpbmUgZldSQVBfU0wxX2xvYWRyaV9pbyhHRU5ITFBSLCBTSE9S VENPREUpICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX1NMMl9sb2Fkcmlfc3AoR0VOSExQ UiwgU0hPUlRDT0RFKSAgICAgIGZXUkFQX3RtcChTSE9SVENPREUpCisKKy8qIERvdWJsZSB3b3Jk IGxvYWQgaW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRyZF9pbyhHRU5ITFBS LCBTSE9SVENPREUpICAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JBUF9MNF9sb2FkcmRfdXIo R0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDRfbG9h ZHJkX3JyKEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQ X0wyX2xvYWRyZGdwKEdFTkhMUFIsIFNIT1JUQ09ERSkgICAgICAgIGZXUkFQX3RtcChTSE9SVENP REUpCisjZGVmaW5lIGZXUkFQX1NMMl9sb2FkcmRfc3AoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAg IGZXUkFQX3RtcChTSE9SVENPREUpCisKKy8qIEluc3RydWN0aW9ucyB3aXRoIG11bHRpcGxlIGRl ZmluaXRpb25zICovCisjZGVmaW5lIGZXUkFQX0xPQURfQVAoUkVTLCBTSVpFLCBTSUdOKSBcCisg ICAgZG8geyBcCisgICAgICAgIGZNVVNUX0lNTUVYVChVaVYpOyBcCisgICAgICAgIGZFQV9JTU0o VWlWKTsgXAorICAgICAgICBmTE9BRCgxLCBTSVpFLCBTSUdOLCBFQSwgUkVTKTsgXAorICAgICAg ICB0Y2dfZ2VuX21vdmlfdGwoUmVWLCBVaVYpOyBcCisgICAgfSB3aGlsZSAoMCkKKworI2RlZmlu ZSBmV1JBUF9MNF9sb2FkcnViX2FwKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX0xP QURfQVAoUmRWLCAxLCB1KQorI2RlZmluZSBmV1JBUF9MNF9sb2FkcmJfYXAoR0VOSExQUiwgU0hP UlRDT0RFKSBcCisgICAgZldSQVBfTE9BRF9BUChSZFYsIDEsIHMpCisjZGVmaW5lIGZXUkFQX0w0 X2xvYWRydWhfYXAoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfTE9BRF9BUChSZFYs IDIsIHUpCisjZGVmaW5lIGZXUkFQX0w0X2xvYWRyaF9hcChHRU5ITFBSLCBTSE9SVENPREUpIFwK KyAgICBmV1JBUF9MT0FEX0FQKFJkViwgMiwgcykKKyNkZWZpbmUgZldSQVBfTDRfbG9hZHJpX2Fw KEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX0xPQURfQVAoUmRWLCA0LCB1KQorI2Rl ZmluZSBmV1JBUF9MNF9sb2FkcmRfYXAoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBf TE9BRF9BUChSZGRWLCA4LCB1KQorCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRydWJfcGNpKEdFTkhM UFIsIFNIT1JUQ09ERSkgXAorICAgICAgZldSQVBfdG1wKFNIT1JUQ09ERSkKKyNkZWZpbmUgZldS QVBfTDJfbG9hZHJiX3BjaShHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICAgIGZXUkFQX3RtcChT SE9SVENPREUpCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRydWhfcGNpKEdFTkhMUFIsIFNIT1JUQ09E RSkgXAorICAgICAgZldSQVBfdG1wKFNIT1JUQ09ERSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJo X3BjaShHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICAgIGZXUkFQX3RtcChTSE9SVENPREUpCisj ZGVmaW5lIGZXUkFQX0wyX2xvYWRyaV9wY2koR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgICBm V1JBUF90bXAoU0hPUlRDT0RFKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcmRfcGNpKEdFTkhMUFIs IFNIT1JUQ09ERSkgXAorICAgICAgZldSQVBfdG1wKFNIT1JUQ09ERSkKKworI2RlZmluZSBmV1JB UF9QQ1IoU0hJRlQsIExPQUQpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgVENHdiBpcmVnID0gdGNn X3RlbXBfbmV3KCk7IFwKKyAgICAgICAgVENHdiB0bXAgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAg ICAgICBmRUFfUkVHKFJ4Vik7IFwKKyAgICAgICAgZlJFQURfSVJFRyhNdVYsIFNISUZUKTsgXAor ICAgICAgICBnZW5fZmNpcmNhZGQoUnhWLCBpcmVnLCBNdVYsIGZSRUFEX0NTUkVHKE11TikpOyBc CisgICAgICAgIExPQUQ7IFwKKyAgICAgICAgdGNnX3RlbXBfZnJlZSh0bXApOyBcCisgICAgICAg IHRjZ190ZW1wX2ZyZWUoaXJlZyk7IFwKKyAgICB9IHdoaWxlICgwKQorCisjZGVmaW5lIGZXUkFQ X0wyX2xvYWRydWJfcGNyKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgICAgZldSQVBfUENSKDAs IGZMT0FEKDEsIDEsIHUsIEVBLCBSZFYpKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcmJfcGNyKEdF TkhMUFIsIFNIT1JUQ09ERSkgXAorICAgICAgZldSQVBfUENSKDAsIGZMT0FEKDEsIDEsIHMsIEVB LCBSZFYpKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcnVoX3BjcihHRU5ITFBSLCBTSE9SVENPREUp IFwKKyAgICAgIGZXUkFQX1BDUigxLCBmTE9BRCgxLCAyLCB1LCBFQSwgUmRWKSkKKyNkZWZpbmUg ZldSQVBfTDJfbG9hZHJoX3BjcihHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICAgIGZXUkFQX1BD UigxLCBmTE9BRCgxLCAyLCBzLCBFQSwgUmRWKSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJpX3Bj cihHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICAgIGZXUkFQX1BDUigyLCBmTE9BRCgxLCA0LCB1 LCBFQSwgUmRWKSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJkX3BjcihHRU5ITFBSLCBTSE9SVENP REUpIFwKKyAgICAgIGZXUkFQX1BDUigzLCBmTE9BRCgxLCA4LCB1LCBFQSwgUmRkVikpCisKKyNk ZWZpbmUgZldSQVBfTDJfbG9hZHJ1Yl9wcihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRD T0RFCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRydWJfcGJyKEdFTkhMUFIsIFNIT1JUQ09ERSkgICAg IFNIT1JUQ09ERQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcnViX3BpKEdFTkhMUFIsIFNIT1JUQ09E RSkgICAgICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJiX3ByKEdFTkhMUFIsIFNI T1JUQ09ERSkgICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRyYl9wYnIoR0VO SExQUiwgU0hPUlRDT0RFKSAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcmJf cGkoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREU7CisjZGVmaW5lIGZXUkFQX0wy X2xvYWRydWhfcHIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBm V1JBUF9MMl9sb2FkcnVoX3BicihHRU5ITFBSLCBTSE9SVENPREUpICAgICBTSE9SVENPREUKKyNk ZWZpbmUgZldSQVBfTDJfbG9hZHJ1aF9waShHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRD T0RFOworI2RlZmluZSBmV1JBUF9MMl9sb2FkcmhfcHIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAg ICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJoX3BicihHRU5ITFBSLCBTSE9SVENP REUpICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRyaF9waShHRU5ITFBSLCBT SE9SVENPREUpICAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBmV1JBUF9MMl9sb2FkcmlfcHIoR0VO SExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNkZWZpbmUgZldSQVBfTDJfbG9hZHJp X3BicihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRDT0RFCisjZGVmaW5lIGZXUkFQX0wy X2xvYWRyaV9waShHRU5ITFBSLCBTSE9SVENPREUpICAgICAgIFNIT1JUQ09ERQorI2RlZmluZSBm V1JBUF9MMl9sb2FkcmRfcHIoR0VOSExQUiwgU0hPUlRDT0RFKSAgICAgICBTSE9SVENPREUKKyNk ZWZpbmUgZldSQVBfTDJfbG9hZHJkX3BicihHRU5ITFBSLCBTSE9SVENPREUpICAgICAgU0hPUlRD T0RFCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRyZF9waShHRU5ITFBSLCBTSE9SVENPREUpICAgICAg IFNIT1JUQ09ERQorCisvKgorICogVGhlc2UgaW5zdHJ1Y3Rpb25zIGxvYWQgMiBieXRlcyBhbmQg cGxhY2VzIHRoZW0gaW4KKyAqIHR3byBoYWx2ZXMgb2YgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVy LgorICogVGhlIEdFVF9FQSBtYWNybyBkZXRlcm1pbmVzIHRoZSBhZGRyZXNzaW5nIG1vZGUuCisg KiBUaGUgZkdCIG1hY3JvIGRldGVybWluZXMgd2hldGhlciB0byB6ZXJvLWV4dGVuZCBvcgorICog c2lnbi1leHRlbmQuCisgKi8KKyNkZWZpbmUgZldSQVBfbG9hZGJYdzIoR0VUX0VBLCBmR0IpIFwK KyAgICBkbyB7IFwKKyAgICAgICAgVENHdiBpcmVnID0gdGNnX3RlbXBfbmV3KCk7IFwKKyAgICAg ICAgVENHdiB0bXAgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAgICAgICBUQ0d2IHRtcFYgPSB0Y2df dGVtcF9uZXcoKTsgXAorICAgICAgICBUQ0d2IEJZVEUgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAg ICAgICBpbnQgaTsgXAorICAgICAgICBHRVRfRUE7IFwKKyAgICAgICAgZkxPQUQoMSwgMiwgdSwg RUEsIHRtcFYpOyBcCisgICAgICAgIHRjZ19nZW5fbW92aV90bChSZFYsIDApOyBcCisgICAgICAg IGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsgXAorICAgICAgICAgICAgZlNFVEhBTEYoaSwgUmRW LCBmR0IoaSwgdG1wVikpOyBcCisgICAgICAgIH0gXAorICAgICAgICB0Y2dfdGVtcF9mcmVlKGly ZWcpOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUodG1wKTsgXAorICAgICAgICB0Y2dfdGVtcF9m cmVlKHRtcFYpOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUoQllURSk7IFwKKyAgICB9IHdoaWxl ICgwKQorCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRiencyX2lvKEdFTkhMUFIsIFNIT1JUQ09ERSkg XAorICAgIGZXUkFQX2xvYWRiWHcyKGZFQV9SSShSc1YsIHNpViksIGZHRVRVQllURSkKKyNkZWZp bmUgZldSQVBfTDRfbG9hZGJ6dzJfdXIoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBf bG9hZGJYdzIoZkVBX0lScyhVaVYsIFJ0ViwgdWlWKSwgZkdFVFVCWVRFKQorI2RlZmluZSBmV1JB UF9MMl9sb2FkYnN3Ml9pbyhHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICBmV1JBUF9sb2FkYlh3 MihmRUFfUkkoUnNWLCBzaVYpLCBmR0VUQllURSkKKyNkZWZpbmUgZldSQVBfTDRfbG9hZGJzdzJf dXIoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGJYdzIoZkVBX0lScyhVaVYs IFJ0ViwgdWlWKSwgZkdFVEJZVEUpCisjZGVmaW5lIGZXUkFQX0w0X2xvYWRiencyX2FwKEdFTkhM UFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHcyKEdFVF9FQV9hcCwgZkdFVFVCWVRF KQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYnp3Ml9wcihHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAg ICBmV1JBUF9sb2FkYlh3MihHRVRfRUFfcHIsIGZHRVRVQllURSkKKyNkZWZpbmUgZldSQVBfTDJf bG9hZGJ6dzJfcGJyKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHcyKEdF VF9FQV9wYnIsIGZHRVRVQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJ6dzJfcGkoR0VOSExQ UiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGJYdzIoR0VUX0VBX3BpLCBmR0VUVUJZVEUp CisjZGVmaW5lIGZXUkFQX0w0X2xvYWRic3cyX2FwKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAg IGZXUkFQX2xvYWRiWHcyKEdFVF9FQV9hcCwgZkdFVEJZVEUpCisjZGVmaW5lIGZXUkFQX0wyX2xv YWRic3cyX3ByKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHcyKEdFVF9F QV9wciwgZkdFVEJZVEUpCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRic3cyX3BicihHRU5ITFBSLCBT SE9SVENPREUpIFwKKyAgICBmV1JBUF9sb2FkYlh3MihHRVRfRUFfcGJyLCBmR0VUQllURSkKKyNk ZWZpbmUgZldSQVBfTDJfbG9hZGJzdzJfcGkoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldS QVBfbG9hZGJYdzIoR0VUX0VBX3BpLCBmR0VUQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJ6 dzJfcGNpKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHcyKEdFVF9FQV9w Y2ksIGZHRVRVQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJzdzJfcGNpKEdFTkhMUFIsIFNI T1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHcyKEdFVF9FQV9wY2ksIGZHRVRCWVRFKQorI2Rl ZmluZSBmV1JBUF9MMl9sb2FkYnp3Ml9wY3IoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldS QVBfbG9hZGJYdzIoR0VUX0VBX3BjcigxKSwgZkdFVFVCWVRFKQorI2RlZmluZSBmV1JBUF9MMl9s b2FkYnN3Ml9wY3IoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGJYdzIoR0VU X0VBX3BjcigxKSwgZkdFVEJZVEUpCisKKy8qCisgKiBUaGVzZSBpbnN0cnVjdGlvbnMgbG9hZCA0 IGJ5dGVzIGFuZCBwbGFjZXMgdGhlbSBpbgorICogZm91ciBoYWx2ZXMgb2YgdGhlIGRlc3RpbmF0 aW9uIHJlZ2lzdGVyIHBhaXIuCisgKiBUaGUgR0VUX0VBIG1hY3JvIGRldGVybWluZXMgdGhlIGFk ZHJlc3NpbmcgbW9kZS4KKyAqIFRoZSBmR0IgbWFjcm8gZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHpl cm8tZXh0ZW5kIG9yCisgKiBzaWduLWV4dGVuZC4KKyAqLworI2RlZmluZSBmV1JBUF9sb2FkYlh3 NChHRVRfRUEsIGZHQikgXAorICAgIGRvIHsgXAorICAgICAgICBUQ0d2IGlyZWcgPSB0Y2dfdGVt cF9uZXcoKTsgXAorICAgICAgICBUQ0d2IHRtcCA9IHRjZ190ZW1wX25ldygpOyBcCisgICAgICAg IFRDR3YgdG1wViA9IHRjZ190ZW1wX25ldygpOyBcCisgICAgICAgIFRDR3YgQllURSA9IHRjZ190 ZW1wX25ldygpOyBcCisgICAgICAgIGludCBpOyBcCisgICAgICAgIEdFVF9FQTsgXAorICAgICAg ICBmTE9BRCgxLCA0LCB1LCBFQSwgdG1wVik7ICBcCisgICAgICAgIHRjZ19nZW5fbW92aV9pNjQo UmRkViwgMCk7IFwKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeyBcCisgICAgICAg ICAgICBmU0VUSEFMRihpLCBSZGRWLCBmR0IoaSwgdG1wVikpOyAgXAorICAgICAgICB9ICBcCisg ICAgICAgIHRjZ190ZW1wX2ZyZWUoaXJlZyk7IFwKKyAgICAgICAgdGNnX3RlbXBfZnJlZSh0bXAp OyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUodG1wVik7IFwKKyAgICAgICAgdGNnX3RlbXBfZnJl ZShCWVRFKTsgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJ6dzRf aW8oR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGJYdzQoZkVBX1JJKFJzViwg c2lWKSwgZkdFVFVCWVRFKQorI2RlZmluZSBmV1JBUF9MNF9sb2FkYnp3NF91cihHRU5ITFBSLCBT SE9SVENPREUpIFwKKyAgICBmV1JBUF9sb2FkYlh3NChmRUFfSVJzKFVpViwgUnRWLCB1aVYpLCBm R0VUVUJZVEUpCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRic3c0X2lvKEdFTkhMUFIsIFNIT1JUQ09E RSkgXAorICAgIGZXUkFQX2xvYWRiWHc0KGZFQV9SSShSc1YsIHNpViksIGZHRVRCWVRFKQorI2Rl ZmluZSBmV1JBUF9MNF9sb2FkYnN3NF91cihHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICBmV1JB UF9sb2FkYlh3NChmRUFfSVJzKFVpViwgUnRWLCB1aVYpLCBmR0VUQllURSkKKyNkZWZpbmUgZldS QVBfTDJfbG9hZGJ6dzRfcGNpKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRi WHc0KEdFVF9FQV9wY2ksIGZHRVRVQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJzdzRfcGNp KEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHc0KEdFVF9FQV9wY2ksIGZH RVRCWVRFKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYnp3NF9wY3IoR0VOSExQUiwgU0hPUlRDT0RF KSBcCisgICAgZldSQVBfbG9hZGJYdzQoR0VUX0VBX3BjcigyKSwgZkdFVFVCWVRFKQorI2RlZmlu ZSBmV1JBUF9MMl9sb2FkYnN3NF9wY3IoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBf bG9hZGJYdzQoR0VUX0VBX3BjcigyKSwgZkdFVEJZVEUpCisjZGVmaW5lIGZXUkFQX0w0X2xvYWRi enc0X2FwKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHc0KEdFVF9FQV9h cCwgZkdFVFVCWVRFKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYnp3NF9wcihHRU5ITFBSLCBTSE9S VENPREUpIFwKKyAgICBmV1JBUF9sb2FkYlh3NChHRVRfRUFfcHIsIGZHRVRVQllURSkKKyNkZWZp bmUgZldSQVBfTDJfbG9hZGJ6dzRfcGJyKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQ X2xvYWRiWHc0KEdFVF9FQV9wYnIsIGZHRVRVQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJ6 dzRfcGkoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGJYdzQoR0VUX0VBX3Bp LCBmR0VUVUJZVEUpCisjZGVmaW5lIGZXUkFQX0w0X2xvYWRic3c0X2FwKEdFTkhMUFIsIFNIT1JU Q09ERSkgXAorICAgIGZXUkFQX2xvYWRiWHc0KEdFVF9FQV9hcCwgZkdFVEJZVEUpCisjZGVmaW5l IGZXUkFQX0wyX2xvYWRic3c0X3ByKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xv YWRiWHc0KEdFVF9FQV9wciwgZkdFVEJZVEUpCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRic3c0X3Bi cihHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICBmV1JBUF9sb2FkYlh3NChHRVRfRUFfcGJyLCBm R0VUQllURSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGJzdzRfcGkoR0VOSExQUiwgU0hPUlRDT0RF KSBcCisgICAgZldSQVBfbG9hZGJYdzQoR0VUX0VBX3BpLCBmR0VUQllURSkKKworLyoKKyAqIFRo ZXNlIGluc3RydWN0aW9ucyBsb2FkIGEgaGFsZiB3b3JkLCBzaGlmdCB0aGUgZGVzdGluYXRpb24g cmlnaHQgYnkgMTYgYml0cworICogYW5kIHBsYWNlIHRoZSBsb2FkZWQgdmFsdWUgaW4gdGhlIGhp Z2ggaGFsZiB3b3JkIG9mIHRoZSBkZXN0aW5hdGlvbiBwYWlyLgorICogVGhlIEdFVF9FQSBtYWNy byBkZXRlcm1pbmVzIHRoZSBhZGRyZXNzaW5nIG1vZGUuCisgKi8KKyNkZWZpbmUgZldSQVBfbG9h ZGFsaWduaChHRVRfRUEpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgVENHdiBpcmVnID0gdGNnX3Rl bXBfbmV3KCk7IFwKKyAgICAgICAgVENHdiB0bXAgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAgICAg ICBUQ0d2IHRtcFYgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAgICAgICBUQ0d2X2k2NCB0bXBfaTY0 ID0gdGNnX3RlbXBfbmV3X2k2NCgpOyBcCisgICAgICAgIFJFQURfUkVHX1BBSVIoUnl5ViwgUnl5 Tik7IFwKKyAgICAgICAgR0VUX0VBOyAgXAorICAgICAgICBmTE9BRCgxLCAyLCB1LCBFQSwgdG1w Vik7ICBcCisgICAgICAgIHRjZ19nZW5fZXh0dV9pMzJfaTY0KHRtcF9pNjQsIHRtcFYpOyBcCisg ICAgICAgIHRjZ19nZW5fc2hsaV9pNjQodG1wX2k2NCwgdG1wX2k2NCwgNDgpOyBcCisgICAgICAg IHRjZ19nZW5fc2hyaV9pNjQoUnl5ViwgUnl5ViwgMTYpOyBcCisgICAgICAgIHRjZ19nZW5fb3Jf aTY0KFJ5eVYsIFJ5eVYsIHRtcF9pNjQpOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUoaXJlZyk7 IFwKKyAgICAgICAgdGNnX3RlbXBfZnJlZSh0bXApOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUo dG1wVik7IFwKKyAgICAgICAgdGNnX3RlbXBfZnJlZV9pNjQodG1wX2k2NCk7IFwKKyAgICB9IHdo aWxlICgwKQorCisjZGVmaW5lIGZXUkFQX0w0X2xvYWRhbGlnbmhfdXIoR0VOSExQUiwgU0hPUlRD T0RFKSBcCisgICAgZldSQVBfbG9hZGFsaWduaChmRUFfSVJzKFVpViwgUnRWLCB1aVYpKQorI2Rl ZmluZSBmV1JBUF9MMl9sb2FkYWxpZ25oX2lvKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZX UkFQX2xvYWRhbGlnbmgoZkVBX1JJKFJzViwgc2lWKSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGFs aWduaF9wY2koR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGFsaWduaChHRVRf RUFfcGNpKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYWxpZ25oX3BjcihHRU5ITFBSLCBTSE9SVENP REUpIFwKKyAgICBmV1JBUF9sb2FkYWxpZ25oKEdFVF9FQV9wY3IoMSkpCisjZGVmaW5lIGZXUkFQ X0w0X2xvYWRhbGlnbmhfYXAoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGFs aWduaChHRVRfRUFfYXApCisjZGVmaW5lIGZXUkFQX0wyX2xvYWRhbGlnbmhfcHIoR0VOSExQUiwg U0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGFsaWduaChHRVRfRUFfcHIpCisjZGVmaW5lIGZX UkFQX0wyX2xvYWRhbGlnbmhfcGJyKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xv YWRhbGlnbmgoR0VUX0VBX3BicikKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGFsaWduaF9waShHRU5I TFBSLCBTSE9SVENPREUpIFwKKyAgICBmV1JBUF9sb2FkYWxpZ25oKEdFVF9FQV9waSkKKworLyog U2FtZSBhcyBhYm92ZSwgYnV0IGxvYWRzIGEgYnl0ZSBpbnN0ZWFkIG9mIGhhbGYgd29yZCAqLwor I2RlZmluZSBmV1JBUF9sb2FkYWxpZ25iKEdFVF9FQSkgXAorICAgIGRvIHsgXAorICAgICAgICBU Q0d2IGlyZWcgPSB0Y2dfdGVtcF9uZXcoKTsgXAorICAgICAgICBUQ0d2IHRtcCA9IHRjZ190ZW1w X25ldygpOyBcCisgICAgICAgIFRDR3YgdG1wViA9IHRjZ190ZW1wX25ldygpOyBcCisgICAgICAg IFRDR3ZfaTY0IHRtcF9pNjQgPSB0Y2dfdGVtcF9uZXdfaTY0KCk7IFwKKyAgICAgICAgUkVBRF9S RUdfUEFJUihSeXlWLCBSeXlOKTsgXAorICAgICAgICBHRVRfRUE7ICBcCisgICAgICAgIGZMT0FE KDEsIDEsIHUsIEVBLCB0bXBWKTsgIFwKKyAgICAgICAgdGNnX2dlbl9leHR1X2kzMl9pNjQodG1w X2k2NCwgdG1wVik7IFwKKyAgICAgICAgdGNnX2dlbl9zaGxpX2k2NCh0bXBfaTY0LCB0bXBfaTY0 LCA1Nik7IFwKKyAgICAgICAgdGNnX2dlbl9zaHJpX2k2NChSeXlWLCBSeXlWLCA4KTsgXAorICAg ICAgICB0Y2dfZ2VuX29yX2k2NChSeXlWLCBSeXlWLCB0bXBfaTY0KTsgXAorICAgICAgICB0Y2df dGVtcF9mcmVlKGlyZWcpOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWUodG1wKTsgXAorICAgICAg ICB0Y2dfdGVtcF9mcmVlKHRtcFYpOyBcCisgICAgICAgIHRjZ190ZW1wX2ZyZWVfaTY0KHRtcF9p NjQpOyBcCisgICAgfSB3aGlsZSAoMCkKKworI2RlZmluZSBmV1JBUF9MMl9sb2FkYWxpZ25iX2lv KEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRhbGlnbmIoZkVBX1JJKFJzViwg c2lWKSkKKyNkZWZpbmUgZldSQVBfTDRfbG9hZGFsaWduYl91cihHRU5ITFBSLCBTSE9SVENPREUp IFwKKyAgICBmV1JBUF9sb2FkYWxpZ25iKGZFQV9JUnMoVWlWLCBSdFYsIHVpVikpCisjZGVmaW5l IGZXUkFQX0wyX2xvYWRhbGlnbmJfcGNpKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQ X2xvYWRhbGlnbmIoR0VUX0VBX3BjaSkKKyNkZWZpbmUgZldSQVBfTDJfbG9hZGFsaWduYl9wY3Io R0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGFsaWduYihHRVRfRUFfcGNyKDAp KQorI2RlZmluZSBmV1JBUF9MNF9sb2FkYWxpZ25iX2FwKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAor ICAgIGZXUkFQX2xvYWRhbGlnbmIoR0VUX0VBX2FwKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYWxp Z25iX3ByKEdFTkhMUFIsIFNIT1JUQ09ERSkgXAorICAgIGZXUkFQX2xvYWRhbGlnbmIoR0VUX0VB X3ByKQorI2RlZmluZSBmV1JBUF9MMl9sb2FkYWxpZ25iX3BicihHRU5ITFBSLCBTSE9SVENPREUp IFwKKyAgICBmV1JBUF9sb2FkYWxpZ25iKEdFVF9FQV9wYnIpCisjZGVmaW5lIGZXUkFQX0wyX2xv YWRhbGlnbmJfcGkoR0VOSExQUiwgU0hPUlRDT0RFKSBcCisgICAgZldSQVBfbG9hZGFsaWduYihH RVRfRUFfcGkpCisKKyNlbmRpZgotLSAKMi43LjQKCg==