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.5 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,WEIRD_QUOTING 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 83BAEC352A4 for ; Tue, 11 Feb 2020 01:20:43 +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 436C620708 for ; Tue, 11 Feb 2020 01:20:43 +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="PP+XehqH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 436C620708 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]:42086 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1KEE-0002mP-E4 for qemu-devel@archiver.kernel.org; Mon, 10 Feb 2020 20:20:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34641) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1Jd1-0002rx-Vy for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:42:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j1Jcy-0003uI-SY for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:42:15 -0500 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:59197) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j1Jcy-0004rC-CP for qemu-devel@nongnu.org; Mon, 10 Feb 2020 19:42:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1581381732; x=1612917732; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uZ0AMtqN/AhARovGOnYVr64WuEeGXI4Cwov9bpYxJt0=; b=PP+XehqHkJbffHWvtWF7EfBbGCU5sQA5wdsaYVOymt/YK21CSEQEVj87 SnoCzeQnLxjHbJCKKTzbfOaAA0PMocWVBgwM5EB5yUycMQOQm6UHF3v0d 1VfOWJGTwQWOZhweF+CqrXeIja8FFJ57kIhjUuSuqw5MO1XsBHZIywceA c=; Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-02.qualcomm.com with ESMTP; 10 Feb 2020 16:41:03 -0800 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg05-sd.qualcomm.com with ESMTP; 10 Feb 2020 16:41:03 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 346271B76; Mon, 10 Feb 2020 18:41:03 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH 58/66] Hexagon HVX semantics generator Date: Mon, 10 Feb 2020 18:40:36 -0600 Message-Id: <1581381644-13678-59-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.39 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" QWRkIEhWWCBzdXBwb3J0IHRvIHRoZSBzZW1hbnRpY3MgZ2VuZXJhdG9yCgpTaWduZWQtb2ZmLWJ5 OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBzb25AcXVpY2luYy5jb20+Ci0tLQogdGFyZ2V0L2hleGFn b24vZG9fcWVtdS5weSAgICAgIHwgMTc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tCiB0YXJnZXQvaGV4YWdvbi9nZW5fc2VtYW50aWNzLmMgfCAgIDkgKysrCiAyIGZp bGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9kb19xZW11LnB5IGIvdGFyZ2V0L2hleGFnb24vZG9fcWVtdS5w eQppbmRleCA5NzRkNDVlLi41YjkwZDMyIDEwMDc1NQotLS0gYS90YXJnZXQvaGV4YWdvbi9kb19x ZW11LnB5CisrKyBiL3RhcmdldC9oZXhhZ29uL2RvX3FlbXUucHkKQEAgLTExMSw2ICsxMTEsMTYg QEAgZGVmIFNFTUFOVElDUyh0YWcsIGJlaCwgc2VtKToKICAgICBhdHRyaWJkaWN0W3RhZ10gPSBz ZXQoKQogICAgIHRhZ3MuYXBwZW5kKHRhZykgICAgICAgICMgZGljdHMgaGF2ZSBubyBvcmRlciwg dGhpcyBpcyBmb3Igb3JkZXIKIAorZGVmIEVYVF9TRU1BTlRJQ1MoZXh0LCB0YWcsIGJlaCwgc2Vt KToKKyAgICAjcHJpbnQgdGFnLGJlaCxzZW0KKyAgICBleHRuYW1lc1tleHRdID0gVHJ1ZQorICAg IGV4dGRpY3RbdGFnXSA9IGV4dAorICAgIGJlaGRpY3RbdGFnXSA9IGJlaAorICAgIHNlbWRpY3Rb dGFnXSA9IHNlbQorICAgIGF0dHJpYmRpY3RbdGFnXSA9IHNldCgpCisgICAgdGFncy5hcHBlbmQo dGFnKSAgICAgICAgIyBkaWN0cyBoYXZlIG5vIG9yZGVyLCB0aGlzIGlzIGZvciBvcmRlcgorCisK IGRlZiBBVFRSSUJVVEVTKHRhZywgYXR0cmlic3RyaW5nKToKICAgICBhdHRyaWJzdHJpbmcgPSBc CiAgICAgICAgIGF0dHJpYnN0cmluZy5yZXBsYWNlKCJBVFRSSUJTIiwiIikucmVwbGFjZSgiKCIs IiIpLnJlcGxhY2UoIikiLCIiKQpAQCAtMTc0LDYgKzE4NCw5IEBAIGRlZiBjb21wdXRlX3RhZ19p bW1lZGlhdGVzKHRhZyk6CiAjIyAgICAgICAgICBQICAgICAgICAgICAgICAgIHByZWRpY2F0ZSBy ZWdpc3RlcgogIyMgICAgICAgICAgUiAgICAgICAgICAgICAgICBHUFIgcmVnaXN0ZXIKICMjICAg ICAgICAgIE0gICAgICAgICAgICAgICAgbW9kaWZpZXIgcmVnaXN0ZXIKKyMjICAgICAgICAgIFEg ICAgICAgICAgICAgICAgSFZYIHByZWRpY2F0ZSB2ZWN0b3IKKyMjICAgICAgICAgIFYgICAgICAg ICAgICAgICAgSFZYIHZlY3RvciByZWdpc3RlcgorIyMgICAgICAgICAgTyAgICAgICAgICAgICAg ICBIVlggbmV3IHZlY3RvciByZWdpc3RlcgogIyMgICAgICByZWdpZCBjYW4gYmUgb25lIG9mIHRo ZSBmb2xsb3dpbmcKICMjICAgICAgICAgIGQsIGUgICAgICAgICAgICAgZGVzdGluYXRpb24gcmVn aXN0ZXIKICMjICAgICAgICAgIGRkICAgICAgICAgICAgICAgZGVzdGluYXRpb24gcmVnaXN0ZXIg cGFpcgpAQCAtMjA1LDYgKzIxOCw5IEBAIGRlZiBpc19yZWFkd3JpdGUocmVnaWQpOgogZGVmIGlz X3NjYWxhcl9yZWcocmVndHlwZSk6CiAgICAgcmV0dXJuIHJlZ3R5cGUgaW4gIlJQQyIKIAorZGVm IGlzX2h2eF9yZWcocmVndHlwZSk6CisgICAgcmV0dXJuIHJlZ3R5cGUgaW4gIlZRIgorCiBkZWYg aXNfb2xkX3ZhbChyZWd0eXBlLCByZWdpZCwgdGFnKToKICAgICByZXR1cm4gcmVndHlwZStyZWdp ZCsnVicgaW4gc2VtZGljdFt0YWddCiAKQEAgLTIxNSw3ICsyMzEsOCBAQCB0YWdpbW1zID0gZGlj dCh6aXAodGFncywgbGlzdChtYXAoY29tcHV0ZV90YWdfaW1tZWRpYXRlcywgdGFncykpKSkKIAog ZGVmIG5lZWRfc2xvdCh0YWcpOgogICAgIGlmICgnQV9DT05ERVhFQycgaW4gYXR0cmliZGljdFt0 YWddIG9yCi0gICAgICAgICdBX1NUT1JFJyBpbiBhdHRyaWJkaWN0W3RhZ10pOgorICAgICAgICAn QV9TVE9SRScgaW4gYXR0cmliZGljdFt0YWddIG9yCisgICAgICAgICdBX0NWSScgaW4gYXR0cmli ZGljdFt0YWddKToKICAgICAgICAgcmV0dXJuIDEKICAgICBlbHNlOgogICAgICAgICByZXR1cm4g MApAQCAtMzAxLDE5ICszMTgsMzIgQEAgZGVmIGdlbl9oZWxwZXJfcHJvdG90eXBlKGYsIHRhZywg cmVncywgaW1tcyk6CiAgICAgICAgICAgICBmLndyaXRlKCdERUZfSEVMUEVSXyVzKCVzJyAlIChk ZWZfaGVscGVyX3NpemUsIHRhZykpCiAKICAgICAgICAgIyMgR2VuZXJhdGUgdGhlIHFlbXUgREVG X0hFTFBFUiB0eXBlIGZvciBlYWNoIHJlc3VsdAorICAgICAgICAjIyBJdGVyYXRlIG92ZXIgdGhp cyBsaXN0IHR3aWNlCisgICAgICAgICMjIC0gRW1pdCB0aGUgc2NhbGFyIHJlc3VsdAorICAgICAg ICAjIyAtIEVtaXQgdGhlIHZlY3RvciByZXN1bHQKICAgICAgICAgaT0wCiAgICAgICAgIGZvciBy ZWd0eXBlLHJlZ2lkLHRvc3MsbnVtcmVncyBpbiByZWdzOgogICAgICAgICAgICAgaWYgKGlzX3dy aXR0ZW4ocmVnaWQpKToKLSAgICAgICAgICAgICAgICBnZW5fZGVmX2hlbHBlcl9vcG4oZiwgdGFn LCByZWd0eXBlLCByZWdpZCwgdG9zcywgbnVtcmVncywgaSkKKyAgICAgICAgICAgICAgICBpZiAo bm90IGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgICAgICAgICBnZW5fZGVmX2hl bHBlcl9vcG4oZiwgdGFnLCByZWd0eXBlLCByZWdpZCwgdG9zcywgbnVtcmVncywgaSkKICAgICAg ICAgICAgICAgICBpICs9IDEKIAogICAgICAgICAjIyBQdXQgdGhlIGVudiBiZXR3ZWVuIHRoZSBv dXRwdXRzIGFuZCBpbnB1dHMKICAgICAgICAgZi53cml0ZSgnLCBlbnYnICkKICAgICAgICAgaSAr PSAxCiAKKyAgICAgICAgIyBTZWNvbmQgcGFzcworICAgICAgICBmb3IgcmVndHlwZSxyZWdpZCx0 b3NzLG51bXJlZ3MgaW4gcmVnczoKKyAgICAgICAgICAgIGlmIChpc193cml0dGVuKHJlZ2lkKSk6 CisgICAgICAgICAgICAgICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAg ICAgICAgICBnZW5fZGVmX2hlbHBlcl9vcG4oZiwgdGFnLCByZWd0eXBlLCByZWdpZCwgdG9zcywg bnVtcmVncywgaSkKKyAgICAgICAgICAgICAgICAgICAgaSArPSAxCisKICAgICAgICAgIyMgR2Vu ZXJhdGUgdGhlIHFlbXUgdHlwZSBmb3IgZWFjaCBpbnB1dCBvcGVyYW5kIChyZWdzIGFuZCBpbW1l ZGlhdGVzKQogICAgICAgICBmb3IgcmVndHlwZSxyZWdpZCx0b3NzLG51bXJlZ3MgaW4gcmVnczoK ICAgICAgICAgICAgIGlmIChpc19yZWFkKHJlZ2lkKSk6CisgICAgICAgICAgICAgICAgaWYgKGlz X2h2eF9yZWcocmVndHlwZSkgYW5kIGlzX3JlYWR3cml0ZShyZWdpZCkpOgorICAgICAgICAgICAg ICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgIGdlbl9kZWZfaGVscGVyX29wbihmLCB0 YWcsIHJlZ3R5cGUsIHJlZ2lkLCB0b3NzLCBudW1yZWdzLCBpKQogICAgICAgICAgICAgICAgIGkg Kz0gMQogICAgICAgICBmb3IgaW1tbGV0dCxiaXRzLGltbXNoaWZ0IGluIGltbXM6CkBAIC00NDEs MTEgKzQ3MSwzMyBAQCBkZWYgZ2VucHRyX2RzdF93cml0ZShmLHJlZ3R5cGUsIHJlZ2lkKToKICAg ICBtYWNybyA9ICJXUklURV8lc1JFR18lcyIgJSAocmVndHlwZSwgcmVnaWQpCiAgICAgZi53cml0 ZSgiJXMoJXMlc04sICVzJXNWKTtcbiIgJSAobWFjcm8sIHJlZ3R5cGUsIHJlZ2lkLCByZWd0eXBl LCByZWdpZCkpCiAKK2RlZiBnZW5wdHJfZHN0X3dyaXRlX2V4dChmLCByZWd0eXBlLCByZWdpZCwg bmV3dj0iMCIpOgorICAgIG1hY3JvID0gIldSSVRFXyVzUkVHXyVzIiAlIChyZWd0eXBlLCByZWdp ZCkKKyAgICBmLndyaXRlKCIlcyglcyVzTiwgJXMlc1YsJXMpO1xuIiAlIFwKKyAgICAgICAgICAg IChtYWNybywgcmVndHlwZSwgcmVnaWQsIHJlZ3R5cGUsIHJlZ2lkLCBuZXd2KSkKKwogZGVmIGdl bnB0cl9kc3Rfd3JpdGVfb3BuKGYscmVndHlwZSwgcmVnaWQsIHRhZyk6CiAgICAgaWYgKGlzX3Bh aXIocmVnaWQpKToKLSAgICAgICAgZ2VucHRyX2RzdF93cml0ZShmLCByZWd0eXBlLCByZWdpZCkK KyAgICAgICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgaWYgKCdBX0NW SV9UTVAnIGluIGF0dHJpYmRpY3RbdGFnXSBvcgorICAgICAgICAgICAgICAgICdBX0NWSV9UTVBf RFNUJyBpbiBhdHRyaWJkaWN0W3RhZ10pOgorICAgICAgICAgICAgICAgIGdlbnB0cl9kc3Rfd3Jp dGVfZXh0KGYsIHJlZ3R5cGUsIHJlZ2lkLCAiRVhUX1RNUCIpCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIGdlbnB0cl9kc3Rfd3JpdGVfZXh0KGYsIHJlZ3R5cGUsIHJlZ2lkKQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgZ2VucHRyX2RzdF93cml0ZShmLCByZWd0eXBlLCBy ZWdpZCkKICAgICBlbGlmIChpc19zaW5nbGUocmVnaWQpKToKLSAgICAgICAgZ2VucHRyX2RzdF93 cml0ZShmLCByZWd0eXBlLCByZWdpZCkKKyAgICAgICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkp OgorICAgICAgICAgICAgaWYgJ0FfQ1ZJX05FVycgaW4gYXR0cmliZGljdFt0YWddOgorICAgICAg ICAgICAgICAgIGdlbnB0cl9kc3Rfd3JpdGVfZXh0KGYsIHJlZ3R5cGUsIHJlZ2lkLCAiRVhUX05F VyIpCisgICAgICAgICAgICBlbGlmICdBX0NWSV9UTVAnIGluIGF0dHJpYmRpY3RbdGFnXToKKyAg ICAgICAgICAgICAgICBnZW5wdHJfZHN0X3dyaXRlX2V4dChmLCByZWd0eXBlLCByZWdpZCwgIkVY VF9UTVAiKQorICAgICAgICAgICAgZWxpZiAnQV9DVklfVE1QX0RTVCcgaW4gYXR0cmliZGljdFt0 YWddOgorICAgICAgICAgICAgICAgIGdlbnB0cl9kc3Rfd3JpdGVfZXh0KGYsIHJlZ3R5cGUsIHJl Z2lkLCAiRVhUX1RNUCIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGdlbnB0 cl9kc3Rfd3JpdGVfZXh0KGYsIHJlZ3R5cGUsIHJlZ2lkLCAiRVhUX0RGTCIpCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBnZW5wdHJfZHN0X3dyaXRlKGYsIHJlZ3R5cGUsIHJlZ2lkKQogICAg IGVsc2U6CiAgICAgICAgIHByaW50KCJCYWQgcmVnaXN0ZXIgcGFyc2U6ICIscmVndHlwZSxyZWdp ZCx0b3NzLG51bXJlZ3MpCiAKQEAgLTUwOCwxMyArNTYwLDIzIEBAIGRlZiBnZW5fdGNnX2Z1bmMo ZiwgdGFnLCByZWdzLCBpbW1zKToKICAgICAjIyBJZiB0aGVyZSBpcyBhIHNjYWxhciByZXN1bHQs IGl0IGlzIHRoZSByZXR1cm4gdHlwZQogICAgIGZvciByZWd0eXBlLHJlZ2lkLHRvc3MsbnVtcmVn cyBpbiByZWdzOgogICAgICAgICBpZiAoaXNfd3JpdHRlbihyZWdpZCkpOgorICAgICAgICAgICAg aWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAg ICAgICAgICBnZW5faGVscGVyX2NhbGxfb3BuKGYsIHRhZywgcmVndHlwZSwgcmVnaWQsIHRvc3Ms IG51bXJlZ3MsIGkpCiAgICAgICAgICAgICBpICs9IDEKICAgICBpZiAoaSA+IDApOiBmLndyaXRl KCIsICIpCiAgICAgZi53cml0ZSgiY3B1X2VudiIpCiAgICAgaT0xCiAgICAgZm9yIHJlZ3R5cGUs cmVnaWQsdG9zcyxudW1yZWdzIGluIHJlZ3M6CisgICAgICAgIGlmIChpc193cml0dGVuKHJlZ2lk KSk6CisgICAgICAgICAgICBpZiAobm90IGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAg ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBnZW5faGVscGVyX2NhbGxfb3BuKGYsIHRhZywg cmVndHlwZSwgcmVnaWQsIHRvc3MsIG51bXJlZ3MsIGkpCisgICAgICAgICAgICBpICs9IDEKKyAg ICBmb3IgcmVndHlwZSxyZWdpZCx0b3NzLG51bXJlZ3MgaW4gcmVnczoKICAgICAgICAgaWYgKGlz X3JlYWQocmVnaWQpKToKKyAgICAgICAgICAgIGlmIChpc19odnhfcmVnKHJlZ3R5cGUpIGFuZCBp c19yZWFkd3JpdGUocmVnaWQpKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAg ICAgZ2VuX2hlbHBlcl9jYWxsX29wbihmLCB0YWcsIHJlZ3R5cGUsIHJlZ2lkLCB0b3NzLCBudW1y ZWdzLCBpKQogICAgICAgICAgICAgaSArPSAxCiAgICAgZm9yIGltbWxldHQsYml0cyxpbW1zaGlm dCBpbiBpbW1zOgpAQCAtNTc3LDEyICs2MzksMjYgQEAgZGVmIGdlbl9oZWxwZXJfYXJnX3BhaXIo ZixyZWd0eXBlLHJlZ2lkLHJlZ25vKToKICAgICBpZiByZWdubyA+PSAwIDogZi53cml0ZSgiLCAi KQogICAgIGYud3JpdGUoImludDY0X3QgJXMlc1YiICUgKHJlZ3R5cGUscmVnaWQpKQogCitkZWYg Z2VuX2hlbHBlcl9hcmdfZXh0KGYscmVndHlwZSxyZWdpZCxyZWdubyk6CisgICAgaWYgcmVnbm8g PiAwIDogZi53cml0ZSgiLCAiKQorICAgIGYud3JpdGUoInZvaWQgKiVzJXNWX3ZvaWQiICUgKHJl Z3R5cGUscmVnaWQpKQorCitkZWYgZ2VuX2hlbHBlcl9hcmdfZXh0X3BhaXIoZixyZWd0eXBlLHJl Z2lkLHJlZ25vKToKKyAgICBpZiByZWdubyA+IDAgOiBmLndyaXRlKCIsICIpCisgICAgZi53cml0 ZSgidm9pZCAqJXMlc1Zfdm9pZCIgJSAocmVndHlwZSxyZWdpZCkpCisKIGRlZiBnZW5faGVscGVy X2FyZ19vcG4oZixyZWd0eXBlLHJlZ2lkLGkpOgogICAgIGlmIChpc19wYWlyKHJlZ2lkKSk6Ci0g ICAgICAgIGdlbl9oZWxwZXJfYXJnX3BhaXIoZixyZWd0eXBlLHJlZ2lkLGkpCisgICAgICAgIGlm IChpc19odnhfcmVnKHJlZ3R5cGUpKToKKyAgICAgICAgICAgIGdlbl9oZWxwZXJfYXJnX2V4dF9w YWlyKGYscmVndHlwZSxyZWdpZCxpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZ2VuX2hl bHBlcl9hcmdfcGFpcihmLHJlZ3R5cGUscmVnaWQsaSkKICAgICBlbGlmIChpc19zaW5nbGUocmVn aWQpKToKICAgICAgICAgaWYgaXNfb2xkX3ZhbChyZWd0eXBlLCByZWdpZCwgdGFnKToKLSAgICAg ICAgICAgIGdlbl9oZWxwZXJfYXJnKGYscmVndHlwZSxyZWdpZCxpKQorICAgICAgICAgICAgaWYg KGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgICAgIGdlbl9oZWxwZXJfYXJnX2V4 dChmLHJlZ3R5cGUscmVnaWQsaSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg Z2VuX2hlbHBlcl9hcmcoZixyZWd0eXBlLHJlZ2lkLGkpCiAgICAgICAgIGVsaWYgaXNfbmV3X3Zh bChyZWd0eXBlLCByZWdpZCwgdGFnKToKICAgICAgICAgICAgIGdlbl9oZWxwZXJfYXJnX25ldyhm LHJlZ3R5cGUscmVnaWQsaSkKICAgICAgICAgZWxzZToKQEAgLTYwMSwyNSArNjc3LDYxIEBAIGRl ZiBnZW5faGVscGVyX2Rlc3RfZGVjbF9wYWlyKGYscmVndHlwZSxyZWdpZCxyZWdubyxzdWJmaWVs ZD0iIik6CiAgICAgZi53cml0ZSgiaW50NjRfdCAlcyVzViVzID0gMDtcbiIgJSBcCiAgICAgICAg IChyZWd0eXBlLHJlZ2lkLHN1YmZpZWxkKSkKIAorZGVmIGdlbl9oZWxwZXJfZGVzdF9kZWNsX2V4 dChmLHJlZ3R5cGUscmVnaWQpOgorICAgIGYud3JpdGUoIi8qICVzJXNWIGlzICoobW12ZWN0b3Jf dCopKCVzJXNWX3ZvaWQpICovXG4iICUgXAorICAgICAgICAocmVndHlwZSxyZWdpZCxyZWd0eXBl LHJlZ2lkKSkKKworZGVmIGdlbl9oZWxwZXJfZGVzdF9kZWNsX2V4dF9wYWlyKGYscmVndHlwZSxy ZWdpZCxyZWdubyk6CisgICAgZi53cml0ZSgiLyogJXMlc1YgaXMgKihtbXZlY3Rvcl9wYWlyX3Qq KSklcyVzVl92b2lkKSAqL1xuIiAlIFwKKyAgICAgICAgKHJlZ3R5cGUscmVnaWQscmVndHlwZSwg cmVnaWQpKQorCiBkZWYgZ2VuX2hlbHBlcl9kZXN0X2RlY2xfb3BuKGYscmVndHlwZSxyZWdpZCxp KToKICAgICBpZiAoaXNfcGFpcihyZWdpZCkpOgotICAgICAgICBnZW5faGVscGVyX2Rlc3RfZGVj bF9wYWlyKGYscmVndHlwZSxyZWdpZCxpKQorICAgICAgICBpZiAoaXNfaHZ4X3JlZyhyZWd0eXBl KSk6CisgICAgICAgICAgICBnZW5faGVscGVyX2Rlc3RfZGVjbF9leHRfcGFpcihmLHJlZ3R5cGUs cmVnaWQsIGkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBnZW5faGVscGVyX2Rlc3RfZGVj bF9wYWlyKGYscmVndHlwZSxyZWdpZCxpKQogICAgIGVsaWYgKGlzX3NpbmdsZShyZWdpZCkpOgot ICAgICAgICBnZW5faGVscGVyX2Rlc3RfZGVjbChmLHJlZ3R5cGUscmVnaWQsaSkKKyAgICAgICAg aWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgZ2VuX2hlbHBlcl9kZXN0X2Rl Y2xfZXh0KGYscmVndHlwZSxyZWdpZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGdlbl9o ZWxwZXJfZGVzdF9kZWNsKGYscmVndHlwZSxyZWdpZCxpKQogICAgIGVsc2U6CiAgICAgICAgIHBy aW50KCJCYWQgcmVnaXN0ZXIgcGFyc2U6ICIscmVndHlwZSxyZWdpZCx0b3NzLG51bXJlZ3MpCiAK K2RlZiBnZW5faGVscGVyX3NyY192YXJfZXh0KGYscmVndHlwZSxyZWdpZCk6CisgICAgZi53cml0 ZSgiLyogJXMlc1YgaXMgKihtbXZlY3Rvcl90KikoJXMlc1Zfdm9pZCkgKi9cbiIgJSBcCisgICAg ICAgIChyZWd0eXBlLHJlZ2lkLHJlZ3R5cGUscmVnaWQpKQorCitkZWYgZ2VuX2hlbHBlcl9zcmNf dmFyX2V4dF9wYWlyKGYscmVndHlwZSxyZWdpZCxyZWdubyk6CisgICAgZi53cml0ZSgiLyogJXMl c1YlcyBpcyAqKG1tdmVjdG9yX3BhaXJfdCopKCVzJXNWJXNfdm9pZCkgKi9cbiIgJSBcCisgICAg ICAgIChyZWd0eXBlLHJlZ2lkLHJlZ25vLHJlZ3R5cGUscmVnaWQscmVnbm8pKQorCiBkZWYgZ2Vu X2hlbHBlcl9yZXR1cm4oZixyZWd0eXBlLHJlZ2lkLHJlZ25vKToKICAgICBmLndyaXRlKCJyZXR1 cm4gJXMlc1Y7XG4iICUgKHJlZ3R5cGUscmVnaWQpKQogCiBkZWYgZ2VuX2hlbHBlcl9yZXR1cm5f cGFpcihmLHJlZ3R5cGUscmVnaWQscmVnbm8pOgogICAgIGYud3JpdGUoInJldHVybiAlcyVzVjtc biIgJSAocmVndHlwZSxyZWdpZCkpCiAKK2RlZiBnZW5faGVscGVyX2RzdF93cml0ZV9leHQoZixy ZWd0eXBlLHJlZ2lkKToKKyAgICBmLndyaXRlKCIvKiAlcyVzViBpcyAqKG1tdmVjdG9yX3QqKSVz JXNWX3ZvaWQgKi9cbiIgJSBcCisgICAgICAgIChyZWd0eXBlLHJlZ2lkLHJlZ3R5cGUscmVnaWQp KQorCitkZWYgZ2VuX2hlbHBlcl9kc3Rfd3JpdGVfZXh0X3BhaXIoZixyZWd0eXBlLHJlZ2lkKToK KyAgICBmLndyaXRlKCIvKiAlcyVzViBpcyAqKG1tdmVjdG9yX3BhaXJfdCopJXMlc1Zfdm9pZCAq L1xuIiAlIFwKKyAgICAgICAgKHJlZ3R5cGUscmVnaWQsIHJlZ3R5cGUscmVnaWQpKQorCiBkZWYg Z2VuX2hlbHBlcl9yZXR1cm5fb3BuKGYsIHJlZ3R5cGUsIHJlZ2lkLCBpKToKICAgICBpZiAoaXNf cGFpcihyZWdpZCkpOgotICAgICAgICBnZW5faGVscGVyX3JldHVybl9wYWlyKGYscmVndHlwZSxy ZWdpZCxpKQorICAgICAgICBpZiAoaXNfaHZ4X3JlZyhyZWd0eXBlKSk6CisgICAgICAgICAgICBn ZW5faGVscGVyX2RzdF93cml0ZV9leHRfcGFpcihmLHJlZ3R5cGUscmVnaWQpCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBnZW5faGVscGVyX3JldHVybl9wYWlyKGYscmVndHlwZSxyZWdpZCxp KQogICAgIGVsaWYgKGlzX3NpbmdsZShyZWdpZCkpOgotICAgICAgICBnZW5faGVscGVyX3JldHVy bihmLHJlZ3R5cGUscmVnaWQsaSkKKyAgICAgICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgor ICAgICAgICAgICAgZ2VuX2hlbHBlcl9kc3Rfd3JpdGVfZXh0KGYscmVndHlwZSxyZWdpZCkKKyAg ICAgICAgZWxzZToKKyAgICAgICAgICAgIGdlbl9oZWxwZXJfcmV0dXJuKGYscmVndHlwZSxyZWdp ZCxpKQogICAgIGVsc2U6CiAgICAgICAgIHByaW50KCJCYWQgcmVnaXN0ZXIgcGFyc2U6ICIscmVn dHlwZSxyZWdpZCx0b3NzLG51bXJlZ3MpCiAKQEAgLTY1OCwxNCArNzcwLDIwIEBAIGRlZiBnZW5f aGVscGVyX2RlZmluaXRpb24oZiwgdGFnLCByZWdzLCBpbW1zKToKICAgICAgICAgICAgICAgICAl ICh0YWcsIHRhZykpCiAgICAgZWxzZToKICAgICAgICAgIyMgVGhlIHJldHVybiB0eXBlIG9mIHRo ZSBmdW5jdGlvbiBpcyB0aGUgdHlwZSBvZiB0aGUgZGVzdGluYXRpb24KLSAgICAgICAgIyMgcmVn aXN0ZXIKKyAgICAgICAgIyMgcmVnaXN0ZXIgKGlmIHNjYWxhcikKICAgICAgICAgaT0wCiAgICAg ICAgIGZvciByZWd0eXBlLHJlZ2lkLHRvc3MsbnVtcmVncyBpbiByZWdzOgogICAgICAgICAgICAg aWYgKGlzX3dyaXR0ZW4ocmVnaWQpKToKICAgICAgICAgICAgICAgICBpZiAoaXNfcGFpcihyZWdp ZCkpOgotICAgICAgICAgICAgICAgICAgICBnZW5faGVscGVyX3JldHVybl90eXBlX3BhaXIoZixy ZWd0eXBlLHJlZ2lkLGkpCisgICAgICAgICAgICAgICAgICAgIGlmIChpc19odnhfcmVnKHJlZ3R5 cGUpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBnZW5faGVscGVyX3JldHVybl90eXBl X3BhaXIoZixyZWd0eXBlLHJlZ2lkLGkpCiAgICAgICAgICAgICAgICAgZWxpZiAoaXNfc2luZ2xl KHJlZ2lkKSk6Ci0gICAgICAgICAgICAgICAgICAgIGdlbl9oZWxwZXJfcmV0dXJuX3R5cGUoZixy ZWd0eXBlLHJlZ2lkLGkpCisgICAgICAgICAgICAgICAgICAgIGlmIChpc19odnhfcmVnKHJlZ3R5 cGUpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2hlbHBlcl9yZXR1cm5f dHlwZShmLHJlZ3R5cGUscmVnaWQsaSkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg ICAgICAgICAgICBwcmludCgiQmFkIHJlZ2lzdGVyIHBhcnNlOiAiLHJlZ3R5cGUscmVnaWQsdG9z cyxudW1yZWdzKQogICAgICAgICAgICAgaSArPSAxCkBAIC02NzQsMTAgKzc5MiwzMCBAQCBkZWYg Z2VuX2hlbHBlcl9kZWZpbml0aW9uKGYsIHRhZywgcmVncywgaW1tcyk6CiAgICAgICAgICAgICBm LndyaXRlKCJ2b2lkIikKICAgICAgICAgZi53cml0ZSgiIEhFTFBFUiglcykoQ1BVSGV4YWdvblN0 YXRlICplbnYiICUgdGFnKQogCisgICAgICAgICMjIEFyZ3VtZW50cyBpbmNsdWRlIHRoZSB2ZWN0 b3IgZGVzdGluYXRpb24gb3BlcmFuZHMKICAgICAgICAgaSA9IDEKKyAgICAgICAgZm9yIHJlZ3R5 cGUscmVnaWQsdG9zcyxudW1yZWdzIGluIHJlZ3M6CisgICAgICAgICAgICBpZiAoaXNfd3JpdHRl bihyZWdpZCkpOgorICAgICAgICAgICAgICAgIGlmIChpc19wYWlyKHJlZ2lkKSk6CisgICAgICAg ICAgICAgICAgICAgIGlmIChpc19odnhfcmVnKHJlZ3R5cGUpKToKKyAgICAgICAgICAgICAgICAg ICAgICAgIGdlbl9oZWxwZXJfYXJnX2V4dF9wYWlyKGYscmVndHlwZSxyZWdpZCxpKQorICAgICAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAg ICAgICAgICAgICAgICBlbGlmIChpc19zaW5nbGUocmVnaWQpKToKKyAgICAgICAgICAgICAgICAg ICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkpOgorICAgICAgICAgICAgICAgICAgICAgICAgZ2Vu X2hlbHBlcl9hcmdfZXh0KGYscmVndHlwZSxyZWdpZCxpKQorICAgICAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSByZXR1cm4gdmFsdWUg b2YgdGhlIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCJCYWQgcmVnaXN0ZXIg cGFyc2U6ICIscmVndHlwZSxyZWdpZCx0b3NzLG51bXJlZ3MpCisgICAgICAgICAgICAgICAgaSAr PSAxCisKICAgICAgICAgIyMgQXJndW1lbnRzIHRvIHRoZSBoZWxwZXIgZnVuY3Rpb24gYXJlIHRo ZSBzb3VyY2UgcmVncyBhbmQgaW1tZWRpYXRlcwogICAgICAgICBmb3IgcmVndHlwZSxyZWdpZCx0 b3NzLG51bXJlZ3MgaW4gcmVnczoKICAgICAgICAgICAgIGlmIChpc19yZWFkKHJlZ2lkKSk6Cisg ICAgICAgICAgICAgICAgaWYgKGlzX2h2eF9yZWcocmVndHlwZSkgYW5kIGlzX3JlYWR3cml0ZShy ZWdpZCkpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgIGdl bl9oZWxwZXJfYXJnX29wbihmLHJlZ3R5cGUscmVnaWQsaSkKICAgICAgICAgICAgICAgICBpICs9 IDEKICAgICAgICAgZm9yIGltbWxldHQsYml0cyxpbW1zaGlmdCBpbiBpbW1zOgpAQCAtNzAwLDYg KzgzOCwxNyBAQCBkZWYgZ2VuX2hlbHBlcl9kZWZpbml0aW9uKGYsIHRhZywgcmVncywgaW1tcyk6 CiAgICAgICAgICAgICAgICAgZ2VuX2hlbHBlcl9kZXN0X2RlY2xfb3BuKGYscmVndHlwZSxyZWdp ZCxpKQogICAgICAgICAgICAgaSArPSAxCiAKKyAgICAgICAgZm9yIHJlZ3R5cGUscmVnaWQsdG9z cyxudW1yZWdzIGluIHJlZ3M6CisgICAgICAgICAgICBpZiAoaXNfcmVhZChyZWdpZCkpOgorICAg ICAgICAgICAgICAgIGlmIChpc19wYWlyKHJlZ2lkKSk6CisgICAgICAgICAgICAgICAgICAgIGlm IChpc19odnhfcmVnKHJlZ3R5cGUpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9oZWxw ZXJfc3JjX3Zhcl9leHRfcGFpcihmLHJlZ3R5cGUscmVnaWQsaSkKKyAgICAgICAgICAgICAgICBl bGlmIChpc19zaW5nbGUocmVnaWQpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2h2eF9y ZWcocmVndHlwZSkpOgorICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2hlbHBlcl9zcmNfdmFy X2V4dChmLHJlZ3R5cGUscmVnaWQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgcHJpbnQoIkJhZCByZWdpc3RlciBwYXJzZTogIixyZWd0eXBlLHJlZ2lkLHRvc3Ms bnVtcmVncykKKwogICAgICAgICBpZiAnQV9GUE9QJyBpbiBhdHRyaWJkaWN0W3RhZ106CiAgICAg ICAgICAgICBmLndyaXRlKCdmRlBPUF9TVEFSVCgpO1xuJyk7CiAKZGlmZiAtLWdpdCBhL3Rhcmdl dC9oZXhhZ29uL2dlbl9zZW1hbnRpY3MuYyBiL3RhcmdldC9oZXhhZ29uL2dlbl9zZW1hbnRpY3Mu YwppbmRleCAyMjExYWU2Li44ZmQ5N2M3IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9nZW5f c2VtYW50aWNzLmMKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VuX3NlbWFudGljcy5jCkBAIC04Nyw2 ICs4NywxNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogI2luY2x1ZGUgImlt cG9ydGVkL21hY3Jvcy5kZWYiCiAjdW5kZWYgREVGX01BQ1JPCiAKKy8qCisgKiBQcm9jZXNzIHRo ZSBtYWNyb3MgZm9yIEhWWAorICovCisjZGVmaW5lIERFRl9NQUNSTyhNTkFNRSwgUEFSQU1TLCBT REVTQywgTERFU0MsIEJFSCwgQVRUUlMpIFwKKyAgICBmcHJpbnRmKG91dGZpbGUsICJNQUNST0FU VFJJQihcIiVzXCIsXCJcIlwiJXNcIlwiXCIsXCIlc1wiLFwiJXNcIilcbiIsIFwKKyAgICAgICAg ICAgICNNTkFNRSwgU1RSSU5HSVpFKEJFSCksIFNUUklOR0laRShBVFRSUyksIEVYVFNUUik7Cisj aW5jbHVkZSAiaW1wb3J0ZWQvYWxsZXh0X21hY3Jvcy5kZWYiCisjdW5kZWYgREVGX01BQ1JPCisK ICAgICBmY2xvc2Uob3V0ZmlsZSk7CiAgICAgcmV0dXJuIDA7CiB9Ci0tIAoyLjcuNAoK