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=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 08DA8C433E0 for ; Thu, 4 Feb 2021 03:32:26 +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 3E2BF64DB2 for ; Thu, 4 Feb 2021 03:32:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3E2BF64DB2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=patchew.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l7VNY-00076k-8L for qemu-devel@archiver.kernel.org; Wed, 03 Feb 2021 22:32:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l7VMS-0006M2-Lx for qemu-devel@nongnu.org; Wed, 03 Feb 2021 22:31:16 -0500 Resent-Date: Wed, 03 Feb 2021 22:31:16 -0500 Resent-Message-Id: Received: from sender4-of-o53.zoho.com ([136.143.188.53]:21315) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l7VMP-0002p4-2U for qemu-devel@nongnu.org; Wed, 03 Feb 2021 22:31:16 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1612409466; cv=none; d=zohomail.com; s=zohoarc; b=O3Yn3p8qh0x72Lhwham1L71PKpW+NXl5pOM9V3i4PfoebZgqhOkuliyraDnYE9MSVwytsjXIL9sILaeOW0b521xCSSQQgBfXpBca3pnTQXiGLtCfIKNW9EjIJ2zXS54Rs+v+WsDSMi9sXDxFrS9JvVILDW49HNsde/z/XpMMmKs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1612409466; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:Reply-To:Subject:To; bh=cJdjJf8X8LNmPuUspBq/mf3J6MReisHIoSWu5tOhQ9c=; b=V0GNfTW4a1EbxQpsrGq2fXEjrFXVrGOsPRiDqYVydYUe5roxwdO58c5nP5Y5aEhUBzb26ELnl+gwcpOL6OoRvmMBdS9bG8hUo671ONOnhYnB9DkxXkObxxM2SBhILp3Bi5UFWun71gM1gIssxsgEi70So1uF9Az5ZpmdlsuNmFU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass smtp.mailfrom=no-reply@patchew.org; dmarc=pass header.from= header.from= Received: from [172.17.0.3] (23.253.156.214 [23.253.156.214]) by mx.zohomail.com with SMTPS id 1612409464880614.2092725965349; Wed, 3 Feb 2021 19:31:04 -0800 (PST) In-Reply-To: <20210204014509.882821-1-richard.henderson@linaro.org> Subject: Re: [PATCH v2 00/93] TCI fixes and cleanups Message-ID: <161240946378.16627.11594377404737630759@c667a6b167f6> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Resent-From: From: no-reply@patchew.org To: richard.henderson@linaro.org Date: Wed, 3 Feb 2021 19:31:04 -0800 (PST) X-ZohoMailClient: External Received-SPF: pass client-ip=136.143.188.53; envelope-from=no-reply@patchew.org; helo=sender4-of-o53.zoho.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Reply-To: qemu-devel@nongnu.org Cc: sw@weilnetz.de, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGF0Y2hldyBVUkw6IGh0dHBzOi8vcGF0Y2hldy5vcmcvUUVNVS8yMDIxMDIwNDAxNDUwOS44ODI4 MjEtMS1yaWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnLwoKCgpIaSwKClRoaXMgc2VyaWVzIHNl ZW1zIHRvIGhhdmUgc29tZSBjb2Rpbmcgc3R5bGUgcHJvYmxlbXMuIFNlZSBvdXRwdXQgYmVsb3cg Zm9yCm1vcmUgaW5mb3JtYXRpb246CgpUeXBlOiBzZXJpZXMKTWVzc2FnZS1pZDogMjAyMTAyMDQw MTQ1MDkuODgyODIxLTEtcmljaGFyZC5oZW5kZXJzb25AbGluYXJvLm9yZwpTdWJqZWN0OiBbUEFU Q0ggdjIgMDAvOTNdIFRDSSBmaXhlcyBhbmQgY2xlYW51cHMKCj09PSBURVNUIFNDUklQVCBCRUdJ TiA9PT0KIyEvYmluL2Jhc2gKZ2l0IHJldi1wYXJzZSBiYXNlID4gL2Rldi9udWxsIHx8IGV4aXQg MApnaXQgY29uZmlnIC0tbG9jYWwgZGlmZi5yZW5hbWVsaW1pdCAwCmdpdCBjb25maWcgLS1sb2Nh bCBkaWZmLnJlbmFtZXMgVHJ1ZQpnaXQgY29uZmlnIC0tbG9jYWwgZGlmZi5hbGdvcml0aG0gaGlz dG9ncmFtCi4vc2NyaXB0cy9jaGVja3BhdGNoLnBsIC0tbWFpbGJhY2sgYmFzZS4uCj09PSBURVNU IFNDUklQVCBFTkQgPT09CgpVcGRhdGluZyAzYzhjZjVhOWMyMWZmODc4MjE2NGQxZGVmN2Y0NGJk ODg4NzEzMzg0CkZyb20gaHR0cHM6Ly9naXRodWIuY29tL3BhdGNoZXctcHJvamVjdC9xZW11CiAt IFt0YWcgdXBkYXRlXSAgICAgIHBhdGNoZXcvMjAyMTAxMjcyMzIxNTEuMzUyMzU4MS0xLWY0YnVn QGFtc2F0Lm9yZyAtPiBwYXRjaGV3LzIwMjEwMTI3MjMyMTUxLjM1MjM1ODEtMS1mNGJ1Z0BhbXNh dC5vcmcKIC0gW3RhZyB1cGRhdGVdICAgICAgcGF0Y2hldy8yMDIxMDEyODE0NDEyNS4zNjk2MTE5 LTEtZjRidWdAYW1zYXQub3JnIC0+IHBhdGNoZXcvMjAyMTAxMjgxNDQxMjUuMzY5NjExOS0xLWY0 YnVnQGFtc2F0Lm9yZwogKiBbbmV3IHRhZ10gICAgICAgICBwYXRjaGV3LzIwMjEwMjA0MDE0NTA5 Ljg4MjgyMS0xLXJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmcgLT4gcGF0Y2hldy8yMDIxMDIw NDAxNDUwOS44ODI4MjEtMS1yaWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnClN3aXRjaGVkIHRv IGEgbmV3IGJyYW5jaCAndGVzdCcKOGIwYmMwMSB0Y2cvdGNpOiBJbXBsZW1lbnQgYWRkMiwgc3Vi MgpkYTEwNDI5IHRjZy90Y2k6IEltcGxlbWVudCBtdWx1MiwgbXVsczIKY2VkNGY1YSB0Y2cvdGNp OiBJbXBsZW1lbnQgY2x6LCBjdHosIGN0cG9wCjFlNDg1MmMgdGNnL3RjaTogSW1wbGVtZW50IGV4 dHJhY3QsIHNleHRyYWN0CmYzZjkxY2MgdGNnL3RjaTogSW1wbGVtZW50IGFuZGMsIG9yYywgZXF2 LCBuYW5kLCBub3IKODdhNWQ5ZSB0Y2cvdGNpOiBJbXBsZW1lbnQgbW92Y29uZAo5OTc2MzYxIHRj Zy90Y2k6IEltcGxlbWVudCBnb3RvX3B0cgoxMWUwMDVkIHRjZy90Y2k6IENoYW5nZSBlbmNvZGlu ZyB0byB1aW50MzJfdCB1bml0cwpkNDJhNTYzIHRjZy90Y2k6IFJlbW92ZSB0Y2lfd3JpdGVfcmVn CjIzMWI3MDUgdGNnL3RjaTogRW1pdCBzZXRjb25kIGJlZm9yZSBicmNvbmQKMDU1YjM4ZSB0Y2cv dGNpOiBSZXNlcnZlIHIxMyBmb3IgYSB0ZW1wb3JhcnkKMDgxYWVhNCB0Y2cvdGNpOiBTcGxpdCBv dXQgdGNnX291dF9vcF9yW2lJXQpmZmYwNzBhIHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29w X25wCjAxNTU1OWEgdGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRfb3Bfdgo4OWJlZTZjIHRjZy90 Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3tycm0scnJybSxycnJybX0KMjMxMWIxYSB0Y2cvdGNp OiBTcGxpdCBvdXQgdGNnX291dF9vcF9ycnJyY2wKYjIyNjY2NCB0Y2cvdGNpOiBTcGxpdCBvdXQg dGNnX291dF9vcF9ycnJyCjA4YjI2NDIgdGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRfb3BfcnJy cnJyCjM2YjAyOWIgdGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRfb3BfcnJjbAphNzgwNjBmIHRj Zy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3JycmJiCjgwODkxYjMgdGNnL3RjaTogU3BsaXQg b3V0IHRjZ19vdXRfb3BfcnJycnJjCjAzMGIyYzUgdGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRf b3BfcnJyYwoxNTJkODAzIHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3JycgoyMTkyNDNl IHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3JyCmJjNjJmZTUgdGNnL3RjaTogU3BsaXQg b3V0IHRjZ19vdXRfb3BfcAphZTRjMDVjIHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX2wK NDIwZDFiZSB0Y2cvdGNpOiBTcGxpdCBvdXQgdGNnX291dF9vcF9ycnMKZDY3ZWQ2OCB0Y2cvdGNp OiBQdXNoIG9wY29kZSBlbWl0IGludG8gZWFjaCBjYXNlCjVlODUwODggdGNnL3RjaTogTW92ZSBj YWxsLXJldHVybiByZWdzIHRvIGVuZCBvZiB0Y2dfdGFyZ2V0X3JlZ19hbGxvY19vcmRlcgo4ZWYw YTgyIHRjZy90Y2k6IEltcHJvdmUgdGNnX3RhcmdldF9jYWxsX2Nsb2JiZXJfcmVncwo2YjdhM2M3 IHRjZy90Y2k6IFVzZSBmZmkgZm9yIGNhbGxzCjM2MDNhZjMgdGNnOiBCdWlsZCBmZmkgZGF0YSBz dHJ1Y3R1cmVzIGZvciBoZWxwZXJzCmEzZWUzZGQgdGNnL3RjaTogSW1wbGVtZW50IHRoZSBkaXNh c3NlbWJsZXIgcHJvcGVybHkKOTM4YzQ4ZSB0Y2cvdGNpOiBSZW1vdmUgdGNpX2Rpc2FzCjEwMmE0 YjcgdGNnL3RjaTogSG9pc3Qgb3Bfc2l6ZSBjaGVja2luZyBpbnRvIHRjaV9hcmdzXyoKNWY0YTkx ZSB0Y2cvdGNpOiBTcGxpdCBvdXQgdGNpX2FyZ3Nfe3JybSxycnJtLHJycnJtfQo0YWIyNWIxIHRj Zy90Y2k6IFJlZHVjZSBxZW11X2xkL3N0IFRDR01lbU9wSWR4IG9wZXJhbmQgdG8gMzItYml0cwo1 MTEyOTUyIHRjZy90Y2k6IENsZWFuIHVwIGRlcG9zaXQgb3BlcmF0aW9ucwoyNWUzNzhhIHRjZy90 Y2k6IFNwbGl0IG91dCB0Y2lfYXJnc19ycnJyCjk4ZTliM2YgdGNnL3RjaTogU3BsaXQgb3V0IHRj aV9hcmdzX3JycnJycgowMTU2YmY5IHRjZy90Y2k6IFJldXNlIHRjaV9hcmdzX2wgZm9yIGdvdG9f dGIKMGY0YjQ5MiB0Y2cvdGNpOiBSZXVzZSB0Y2lfYXJnc19sIGZvciBleGl0X3RiCjA2OTdkMmQg dGNnL3RjaTogUmV1c2UgdGNpX2FyZ3NfbCBmb3IgY2FsbHMuCmQzNTFjMTMgdGNnL3RjaTogU3Bs aXQgb3V0IHRjaV9hcmdzX3JpIGFuZCB0Y2lfYXJnc19ySQo2OTliYTBmIHRjZy90Y2k6IFNwbGl0 IG91dCB0Y2lfYXJnc19ycmNsIGFuZCB0Y2lfYXJnc19ycnJyY2wKODg4NjQzOCB0Y2cvdGNpOiBT cGxpdCBvdXQgdGNpX2FyZ3NfcnJycnJjCjQwZjY0ZjYgdGNnL3RjaTogU3BsaXQgb3V0IHRjaV9h cmdzX2wKYjE0NDAyYiB0Y2cvdGNpOiBTcGxpdCBvdXQgdGNpX2FyZ3NfcnJyYwowMmE4MDM5IHRj Zy90Y2k6IFNwbGl0IG91dCB0Y2lfYXJnc19ycnIKYTkxYzAzMiB0Y2cvdGNpOiBTcGxpdCBvdXQg dGNpX2FyZ3NfcnIKY2QwNzhmZSB0Y2cvdGNpOiBTcGxpdCBvdXQgdGNpX2FyZ3NfcnJzCjk0M2Zk MjggdGNnL3RjaTogUmVuYW1lIHRjaV9yZWFkX3IgdG8gdGNpX3JlYWRfcnZhbAowZDJkZjZhIHRj Zy90Y2k6IE1lcmdlIG1vdiwgbm90IGFuZCBuZWcgb3BlcmF0aW9ucwpjOGYyOWQ5IHRjZy90Y2k6 IE1lcmdlIGJzd2FwIG9wZXJhdGlvbnMKOTNlMWRkNCB0Y2cvdGNpOiBSZW1vdmUgaWZkZWZzIGZv ciBUQ0dfVEFSR0VUX0hBU19leHQzMlt1c11faTY0CjRiYTk5NmQgdGNnL3RjaTogTWVyZ2UgZXh0 ZW5zaW9uIG9wZXJhdGlvbnMKOGU1YjgwYyB0Y2cvdGNpOiBNZXJnZSBiYXNpYyBhcml0aG1ldGlj IG9wZXJhdGlvbnMKMjFhMzRkMSB0Y2cvdGNpOiBSZWR1Y2UgdXNlIG9mIHRjaV9yZWFkX3I2NApl OThiNjdkIHRjZy90Y2k6IFJlbW92ZSB0Y2lfcmVhZF9yMzJzCjBiMjIwOWEgdGNnL3RjaTogUmVt b3ZlIHRjaV9yZWFkX3IxNnMKMjNmNWNhOCB0Y2cvdGNpOiBSZW1vdmUgdGNpX3JlYWRfcjE2CmIx ZTczNGUgdGNnL3RjaTogUmVtb3ZlIHRjaV9yZWFkX3I4cwo0ZDQ4NWQ2IHRjZy90Y2k6IFJlbW92 ZSB0Y2lfcmVhZF9yOAo4ZGRlZWUyIHRjZy90Y2k6IE1lcmdlIGlkZW50aWNhbCBjYXNlcyBpbiBn ZW5lcmF0aW9uCjAxYjY4ZDQgdGNnL3RjaTogUmVtb3ZlIFRDR19DT05TVAozZjM4NGY1IHRjZy90 Y2k6IFVzZSBib29sIGluIHRjZ19vdXRfcmkqCmMyMzY1ZDAgdGNnL3RjaTogRml4IFRDR19SRUdf UjQgbWlzdXNhZ2UKNWI2ODQ3MSB0Y2cvdGNpOiBSZXN0cmljdCBUQ0dfVEFSR0VUX05CX1JFR1Mg dG8gMTYKYWQzOTFjYiB0Y2cvdGNpOiBSZW1vdmUgVE9ETyBhcyB1bnVzZWQKMWEzMjI1NSB0Y2cv dGNpOiBJbXBsZW1lbnQgNjQtYml0IGRpdmlzaW9uCjliNTY2YzMgdGNnL3RjaTogUmVtb3ZlIGRl YWQgY29kZSBmb3IgVENHX1RBUkdFVF9IQVNfZGl2Ml8qCjFlNzY3NTggdGNnL3RjaTogVXNlIGdf YXNzZXJ0X25vdF9yZWFjaGVkCjkyN2M3N2YgdGNnL3RjaTogTWVyZ2UgSU5ERVhfb3Bfe3N0X2kz MixzdDMyX2k2NH0KYzc5NGEwOSB0Y2cvdGNpOiBNb3ZlIHN0YWNrIGJvdW5kcyBjaGVjayB0byBj b21waWxlLXRpbWUKMzkzYTYyNCB0Y2cvdGNpOiBNZXJnZSBJTkRFWF9vcF9zdDE2X3tpMzIsaTY0 fQo3ZWY4YzA5IHRjZy90Y2k6IE1lcmdlIElOREVYX29wX3N0OF97aTMyLGk2NH0KMTBlOWI5MiB0 Y2cvdGNpOiBNZXJnZSBJTkRFWF9vcF97bGRfaTMyLGxkMzJ1X2k2NH0KMTE2ZjMzZCB0Y2cvdGNp OiBNZXJnZSBJTkRFWF9vcF9sZDE2c197aTMyLGk2NH0KNWY3ZWRlOSB0Y2cvdGNpOiBNZXJnZSBJ TkRFWF9vcF9sZDE2dV97aTMyLGk2NH0KOGRjZDQ3OCB0Y2cvdGNpOiBNZXJnZSBJTkRFWF9vcF9s ZDhzX3tpMzIsaTY0fQowMWVmMTYyIHRjZy90Y2k6IE1lcmdlIElOREVYX29wX2xkOHVfe2kzMixp NjR9CmZjY2Y0YjYgdGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9yZWc2NCBpbnRvIDY0LWJpdCBj YWxsZXJzCmMyNDUwNzAgdGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9yZWczMiBpbnRvIGFsbCBj YWxsZXJzCjg0ZGNmMmEgdGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9yZWcxNiBpbnRvIHRoZSBv bmx5IGNhbGxlcgpkZjY0MTA4IHRjZy90Y2k6IElubGluZSB0Y2lfd3JpdGVfcmVnOCBpbnRvIGl0 cyBjYWxsZXJzCmJkZTRhNTIgdGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9yZWczMnMgaW50byB0 aGUgb25seSBjYWxsZXIKMTQ5OTA3YiB0Y2cvdGNpOiBJbXBsZW1lbnQgSU5ERVhfb3BfbGQ4c19p NjQKZGMxYjMzZSB0Y2cvdGNpOiBJbXBsZW1lbnQgSU5ERVhfb3BfbGQxNnNfaTMyCmZjNjBjMzUg dGNnL3RjaTogTWFrZSB0Y2lfdGJfcHRyIHRocmVhZC1sb2NhbAowNDYwNDMzIHRjZzogTWFuYWdl IHNwbGl0d3ggaW4gdGNfcHRyX3RvX3JlZ2lvbl90cmVlIGJ5IGhhbmQKZGNjMTQyNyBjb25maWd1 cmU6IEZpeCAtLWVuYWJsZS10Y2ctaW50ZXJwcmV0ZXIKODg2OTNmNSB0Y2c6IFNwbGl0IG91dCB0 Y2dfcmFpc2VfdGJfb3ZlcmZsb3cKNThmMWM5ZCBnZGJzdHViOiBGaXggaGFuZGxlX3F1ZXJ5X3hm ZXJfYXV4dgoKPT09IE9VVFBVVCBCRUdJTiA9PT0KMS85MyBDaGVja2luZyBjb21taXQgNThmMWM5 ZGQxMmVkIChnZGJzdHViOiBGaXggaGFuZGxlX3F1ZXJ5X3hmZXJfYXV4dikKMi85MyBDaGVja2lu ZyBjb21taXQgODg2OTNmNWI0MDk4ICh0Y2c6IFNwbGl0IG91dCB0Y2dfcmFpc2VfdGJfb3ZlcmZs b3cpCjMvOTMgQ2hlY2tpbmcgY29tbWl0IGRjYzE0Mjc0MjBmYSAoY29uZmlndXJlOiBGaXggLS1l bmFibGUtdGNnLWludGVycHJldGVyKQo0LzkzIENoZWNraW5nIGNvbW1pdCAwNDYwNDMzZjBiNGQg KHRjZzogTWFuYWdlIHNwbGl0d3ggaW4gdGNfcHRyX3RvX3JlZ2lvbl90cmVlIGJ5IGhhbmQpCjUv OTMgQ2hlY2tpbmcgY29tbWl0IGZjNjBjMzUyODEwOSAodGNnL3RjaTogTWFrZSB0Y2lfdGJfcHRy IHRocmVhZC1sb2NhbCkKNi85MyBDaGVja2luZyBjb21taXQgZGMxYjMzZWU3NTcxICh0Y2cvdGNp OiBJbXBsZW1lbnQgSU5ERVhfb3BfbGQxNnNfaTMyKQo3LzkzIENoZWNraW5nIGNvbW1pdCAxNDk5 MDdiYTkxODUgKHRjZy90Y2k6IEltcGxlbWVudCBJTkRFWF9vcF9sZDhzX2k2NCkKOC85MyBDaGVj a2luZyBjb21taXQgYmRlNGE1MjMyMmUzICh0Y2cvdGNpOiBJbmxpbmUgdGNpX3dyaXRlX3JlZzMy cyBpbnRvIHRoZSBvbmx5IGNhbGxlcikKOS85MyBDaGVja2luZyBjb21taXQgZGY2NDEwODRjNzlh ICh0Y2cvdGNpOiBJbmxpbmUgdGNpX3dyaXRlX3JlZzggaW50byBpdHMgY2FsbGVycykKMTAvOTMg Q2hlY2tpbmcgY29tbWl0IDg0ZGNmMmE2NDc4MiAodGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9y ZWcxNiBpbnRvIHRoZSBvbmx5IGNhbGxlcikKMTEvOTMgQ2hlY2tpbmcgY29tbWl0IGMyNDUwNzAw M2YyZiAodGNnL3RjaTogSW5saW5lIHRjaV93cml0ZV9yZWczMiBpbnRvIGFsbCBjYWxsZXJzKQox Mi85MyBDaGVja2luZyBjb21taXQgZmNjZjRiNjhiZmFhICh0Y2cvdGNpOiBJbmxpbmUgdGNpX3dy aXRlX3JlZzY0IGludG8gNjQtYml0IGNhbGxlcnMpCjEzLzkzIENoZWNraW5nIGNvbW1pdCAwMWVm MTYyYjQxZDUgKHRjZy90Y2k6IE1lcmdlIElOREVYX29wX2xkOHVfe2kzMixpNjR9KQoxNC85MyBD aGVja2luZyBjb21taXQgOGRjZDQ3OGU1MGM4ICh0Y2cvdGNpOiBNZXJnZSBJTkRFWF9vcF9sZDhz X3tpMzIsaTY0fSkKMTUvOTMgQ2hlY2tpbmcgY29tbWl0IDVmN2VkZTlkZWE3YiAodGNnL3RjaTog TWVyZ2UgSU5ERVhfb3BfbGQxNnVfe2kzMixpNjR9KQoxNi85MyBDaGVja2luZyBjb21taXQgMTE2 ZjMzZDUwZDZiICh0Y2cvdGNpOiBNZXJnZSBJTkRFWF9vcF9sZDE2c197aTMyLGk2NH0pCjE3Lzkz IENoZWNraW5nIGNvbW1pdCAxMGU5YjkyOWQyYTQgKHRjZy90Y2k6IE1lcmdlIElOREVYX29wX3ts ZF9pMzIsbGQzMnVfaTY0fSkKMTgvOTMgQ2hlY2tpbmcgY29tbWl0IDdlZjhjMDkzMWQzYyAodGNn L3RjaTogTWVyZ2UgSU5ERVhfb3Bfc3Q4X3tpMzIsaTY0fSkKMTkvOTMgQ2hlY2tpbmcgY29tbWl0 IDM5M2E2MjQ2MjAwOCAodGNnL3RjaTogTWVyZ2UgSU5ERVhfb3Bfc3QxNl97aTMyLGk2NH0pCjIw LzkzIENoZWNraW5nIGNvbW1pdCBjNzk0YTA5ZGI4ZmMgKHRjZy90Y2k6IE1vdmUgc3RhY2sgYm91 bmRzIGNoZWNrIHRvIGNvbXBpbGUtdGltZSkKMjEvOTMgQ2hlY2tpbmcgY29tbWl0IDkyN2M3N2Y0 NDcyNyAodGNnL3RjaTogTWVyZ2UgSU5ERVhfb3Bfe3N0X2kzMixzdDMyX2k2NH0pCjIyLzkzIENo ZWNraW5nIGNvbW1pdCAxZTc2NzU4MzBlNzggKHRjZy90Y2k6IFVzZSBnX2Fzc2VydF9ub3RfcmVh Y2hlZCkKMjMvOTMgQ2hlY2tpbmcgY29tbWl0IDliNTY2YzNjMWVhNCAodGNnL3RjaTogUmVtb3Zl IGRlYWQgY29kZSBmb3IgVENHX1RBUkdFVF9IQVNfZGl2Ml8qKQoyNC85MyBDaGVja2luZyBjb21t aXQgMWEzMjI1NTE0Nzc1ICh0Y2cvdGNpOiBJbXBsZW1lbnQgNjQtYml0IGRpdmlzaW9uKQoyNS85 MyBDaGVja2luZyBjb21taXQgYWQzOTFjYmZkMmQ5ICh0Y2cvdGNpOiBSZW1vdmUgVE9ETyBhcyB1 bnVzZWQpCjI2LzkzIENoZWNraW5nIGNvbW1pdCA1YjY4NDcxN2U3MzggKHRjZy90Y2k6IFJlc3Ry aWN0IFRDR19UQVJHRVRfTkJfUkVHUyB0byAxNikKMjcvOTMgQ2hlY2tpbmcgY29tbWl0IGMyMzY1 ZDA4YWUzNSAodGNnL3RjaTogRml4IFRDR19SRUdfUjQgbWlzdXNhZ2UpCjI4LzkzIENoZWNraW5n IGNvbW1pdCAzZjM4NGY1N2ZhY2MgKHRjZy90Y2k6IFVzZSBib29sIGluIHRjZ19vdXRfcmkqKQoy OS85MyBDaGVja2luZyBjb21taXQgMDFiNjhkNGMwNmIxICh0Y2cvdGNpOiBSZW1vdmUgVENHX0NP TlNUKQozMC85MyBDaGVja2luZyBjb21taXQgOGRkZWVlMjVmOTUwICh0Y2cvdGNpOiBNZXJnZSBp ZGVudGljYWwgY2FzZXMgaW4gZ2VuZXJhdGlvbikKMzEvOTMgQ2hlY2tpbmcgY29tbWl0IDRkNDg1 ZDZkMDYwYSAodGNnL3RjaTogUmVtb3ZlIHRjaV9yZWFkX3I4KQozMi85MyBDaGVja2luZyBjb21t aXQgYjFlNzM0ZWM1N2VjICh0Y2cvdGNpOiBSZW1vdmUgdGNpX3JlYWRfcjhzKQozMy85MyBDaGVj a2luZyBjb21taXQgMjNmNWNhODNkMTRjICh0Y2cvdGNpOiBSZW1vdmUgdGNpX3JlYWRfcjE2KQoz NC85MyBDaGVja2luZyBjb21taXQgMGIyMjA5YTczODM1ICh0Y2cvdGNpOiBSZW1vdmUgdGNpX3Jl YWRfcjE2cykKMzUvOTMgQ2hlY2tpbmcgY29tbWl0IGU5OGI2N2QwNDc5MSAodGNnL3RjaTogUmVt b3ZlIHRjaV9yZWFkX3IzMnMpCjM2LzkzIENoZWNraW5nIGNvbW1pdCAyMWEzNGQxYTlkZWUgKHRj Zy90Y2k6IFJlZHVjZSB1c2Ugb2YgdGNpX3JlYWRfcjY0KQozNy85MyBDaGVja2luZyBjb21taXQg OGU1YjgwY2Q1YzYzICh0Y2cvdGNpOiBNZXJnZSBiYXNpYyBhcml0aG1ldGljIG9wZXJhdGlvbnMp CjM4LzkzIENoZWNraW5nIGNvbW1pdCA0YmE5OTZkZGM0YTEgKHRjZy90Y2k6IE1lcmdlIGV4dGVu c2lvbiBvcGVyYXRpb25zKQozOS85MyBDaGVja2luZyBjb21taXQgOTNlMWRkNGIyZDFiICh0Y2cv dGNpOiBSZW1vdmUgaWZkZWZzIGZvciBUQ0dfVEFSR0VUX0hBU19leHQzMlt1c11faTY0KQo0MC85 MyBDaGVja2luZyBjb21taXQgYzhmMjlkOWFmZmIyICh0Y2cvdGNpOiBNZXJnZSBic3dhcCBvcGVy YXRpb25zKQo0MS85MyBDaGVja2luZyBjb21taXQgMGQyZGY2YWUxYzA3ICh0Y2cvdGNpOiBNZXJn ZSBtb3YsIG5vdCBhbmQgbmVnIG9wZXJhdGlvbnMpCjQyLzkzIENoZWNraW5nIGNvbW1pdCA5NDNm ZDI4MTI4NWUgKHRjZy90Y2k6IFJlbmFtZSB0Y2lfcmVhZF9yIHRvIHRjaV9yZWFkX3J2YWwpCjQz LzkzIENoZWNraW5nIGNvbW1pdCBjZDA3OGZlMTlhZjEgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2lf YXJnc19ycnMpCjQ0LzkzIENoZWNraW5nIGNvbW1pdCBhOTFjMDMyZjkxYTkgKHRjZy90Y2k6IFNw bGl0IG91dCB0Y2lfYXJnc19ycikKNDUvOTMgQ2hlY2tpbmcgY29tbWl0IDAyYTgwMzkwNDViNCAo dGNnL3RjaTogU3BsaXQgb3V0IHRjaV9hcmdzX3JycikKNDYvOTMgQ2hlY2tpbmcgY29tbWl0IGIx NDQwMmI3YzRkZiAodGNnL3RjaTogU3BsaXQgb3V0IHRjaV9hcmdzX3JycmMpCjQ3LzkzIENoZWNr aW5nIGNvbW1pdCA0MGY2NGY2ODRmYzQgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2lfYXJnc19sKQo0 OC85MyBDaGVja2luZyBjb21taXQgODg4NjQzODMxNGU2ICh0Y2cvdGNpOiBTcGxpdCBvdXQgdGNp X2FyZ3NfcnJycnJjKQo0OS85MyBDaGVja2luZyBjb21taXQgNjk5YmEwZmU4MmU4ICh0Y2cvdGNp OiBTcGxpdCBvdXQgdGNpX2FyZ3NfcnJjbCBhbmQgdGNpX2FyZ3NfcnJycmNsKQo1MC85MyBDaGVj a2luZyBjb21taXQgZDM1MWMxM2Q0NDFlICh0Y2cvdGNpOiBTcGxpdCBvdXQgdGNpX2FyZ3Nfcmkg YW5kIHRjaV9hcmdzX3JJKQo1MS85MyBDaGVja2luZyBjb21taXQgMDY5N2QyZGRhZGE0ICh0Y2cv dGNpOiBSZXVzZSB0Y2lfYXJnc19sIGZvciBjYWxscy4pCjUyLzkzIENoZWNraW5nIGNvbW1pdCAw ZjRiNDkyZTNjNzEgKHRjZy90Y2k6IFJldXNlIHRjaV9hcmdzX2wgZm9yIGV4aXRfdGIpCjUzLzkz IENoZWNraW5nIGNvbW1pdCAwMTU2YmY5ZDU5NzAgKHRjZy90Y2k6IFJldXNlIHRjaV9hcmdzX2wg Zm9yIGdvdG9fdGIpCjU0LzkzIENoZWNraW5nIGNvbW1pdCA5OGU5YjNmYTlkNDAgKHRjZy90Y2k6 IFNwbGl0IG91dCB0Y2lfYXJnc19ycnJycnIpCjU1LzkzIENoZWNraW5nIGNvbW1pdCAyNWUzNzhh NmEyNDcgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2lfYXJnc19ycnJyKQo1Ni85MyBDaGVja2luZyBj b21taXQgNTExMjk1MjQ3NWUyICh0Y2cvdGNpOiBDbGVhbiB1cCBkZXBvc2l0IG9wZXJhdGlvbnMp CjU3LzkzIENoZWNraW5nIGNvbW1pdCA0YWIyNWIxMDM3NTMgKHRjZy90Y2k6IFJlZHVjZSBxZW11 X2xkL3N0IFRDR01lbU9wSWR4IG9wZXJhbmQgdG8gMzItYml0cykKNTgvOTMgQ2hlY2tpbmcgY29t bWl0IDVmNGE5MWUzZWE1MSAodGNnL3RjaTogU3BsaXQgb3V0IHRjaV9hcmdzX3tycm0scnJybSxy cnJybX0pCjU5LzkzIENoZWNraW5nIGNvbW1pdCAxMDJhNGI3NTU4NTcgKHRjZy90Y2k6IEhvaXN0 IG9wX3NpemUgY2hlY2tpbmcgaW50byB0Y2lfYXJnc18qKQo2MC85MyBDaGVja2luZyBjb21taXQg OTM4YzQ4ZTQyNDliICh0Y2cvdGNpOiBSZW1vdmUgdGNpX2Rpc2FzKQo2MS85MyBDaGVja2luZyBj b21taXQgYTNlZTNkZDNhMWI5ICh0Y2cvdGNpOiBJbXBsZW1lbnQgdGhlIGRpc2Fzc2VtYmxlciBw cm9wZXJseSkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBN QUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMjI6IApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK CnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgMzA0IGxpbmVzIGNoZWNrZWQKClBhdGNoIDYx LzkzIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBl cnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwg c2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCjYyLzkzIENoZWNraW5nIGNvbW1pdCAzNjAz YWYzMDJiMTkgKHRjZzogQnVpbGQgZmZpIGRhdGEgc3RydWN0dXJlcyBmb3IgaGVscGVycykKV0FS TklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBu ZWVkIHVwZGF0aW5nPwojMjY6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKRVJST1I6IE1hY3JvcyB3 aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNDE6 IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6MTE6CisjZGVmaW5lIGRoX2ZmaXR5cGVf aTMyICAmZmZpX3R5cGVfdWludDMyCgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMg c2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM0MjogRklMRTogaW5jbHVkZS9leGVj L2hlbHBlci1mZmkuaDoxMjoKKyNkZWZpbmUgZGhfZmZpdHlwZV9zMzIgICZmZmlfdHlwZV9zaW50 MzIKCkVSUk9SOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQgYmUgZW5jbG9zZWQg aW4gcGFyZW50aGVzaXMKIzQ0OiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjE0Ogor I2RlZmluZSBkaF9mZml0eXBlX2k2NCAgJmZmaV90eXBlX3VpbnQ2NAoKRVJST1I6IE1hY3JvcyB3 aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNDU6 IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6MTU6CisjZGVmaW5lIGRoX2ZmaXR5cGVf czY0ICAmZmZpX3R5cGVfc2ludDY0CgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMg c2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM0NjogRklMRTogaW5jbHVkZS9leGVj L2hlbHBlci1mZmkuaDoxNjoKKyNkZWZpbmUgZGhfZmZpdHlwZV9mMTYgICZmZmlfdHlwZV91aW50 MzIKCkVSUk9SOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQgYmUgZW5jbG9zZWQg aW4gcGFyZW50aGVzaXMKIzQ3OiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjE3Ogor I2RlZmluZSBkaF9mZml0eXBlX2YzMiAgJmZmaV90eXBlX3VpbnQzMgoKRVJST1I6IE1hY3JvcyB3 aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNDg6 IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6MTg6CisjZGVmaW5lIGRoX2ZmaXR5cGVf ZjY0ICAmZmZpX3R5cGVfdWludDY0CgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMg c2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM1MTogRklMRTogaW5jbHVkZS9leGVj L2hlbHBlci1mZmkuaDoyMToKKyMgIGRlZmluZSBkaF9mZml0eXBlX3RsICZmZmlfdHlwZV91aW50 MzIKCkVSUk9SOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQgYmUgZW5jbG9zZWQg aW4gcGFyZW50aGVzaXMKIzUzOiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjIzOgor IyAgZGVmaW5lIGRoX2ZmaXR5cGVfdGwgJmZmaV90eXBlX3VpbnQ2NAoKRVJST1I6IE1hY3JvcyB3 aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNTY6 IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6MjY6CisjZGVmaW5lIGRoX2ZmaXR5cGVf cHRyICAmZmZpX3R5cGVfcG9pbnRlcgoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVz IHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojNTc6IEZJTEU6IGluY2x1ZGUvZXhl Yy9oZWxwZXItZmZpLmg6Mjc6CisjZGVmaW5lIGRoX2ZmaXR5cGVfY3B0ciAmZmZpX3R5cGVfcG9p bnRlcgoKRVJST1I6IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3Nl ZCBpbiBwYXJlbnRoZXNpcwojNjA6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6MzA6 CisjZGVmaW5lIGRoX2ZmaXR5cGVfZW52ICAmZmZpX3R5cGVfcG9pbnRlcgoKRVJST1I6IHNwYWNl IHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojNjQ6IEZJTEU6IGluY2x1ZGUvZXhl Yy9oZWxwZXItZmZpLmg6MzQ6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0g eyAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IE1hY3Jv cyB3aXRoIG11bHRpcGxlIHN0YXRlbWVudHMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIGEgZG8gLSB3 aGlsZSBsb29wCiM2ODogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDozODoKKyNkZWZp bmUgREVGX0hFTFBFUl9GTEFHU18xKE5BTUUsIEZMQUdTLCByZXQsIHQxKSAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzFd ID0geyBkaF9mZml0eXBlKHQxKSB9OyAgICAgIFwKKyAgICBzdGF0aWMgZmZpX2NpZiBnbHVlKGNp Zl8sTkFNRSkgPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg LnJ0eXBlID0gZGhfZmZpdHlwZShyZXQpLCAubmFyZ3MgPSAxLCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgLmFyZ190eXBlcyA9IGdsdWUoY2lmX2FyZ3NfLE5BTUUpLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OwoKRVJST1I6IHNwYWNlcyByZXF1aXJl ZCBhcm91bmQgdGhhdCAnKicgKGN0eDpXeFYpCiM2OTogRklMRTogaW5jbHVkZS9leGVjL2hlbHBl ci1mZmkuaDozOToKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzFd ID0geyBkaF9mZml0eXBlKHQxKSB9OyAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgXgoKRVJS T1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojNjk6IEZJTEU6IGlu Y2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6Mzk6CisgICAgc3RhdGljIGZmaV90eXBlICpnbHVlKGNp Zl9hcmdzXyxOQU1FKVsxXSA9IHsgZGhfZmZpdHlwZSh0MSkgfTsgICAgICBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBvcGVuIGJyYWNlICd7JyBmb2xsb3dp bmcgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGdvIG9uIHRoZSBuZXh0IGxpbmUKIzcwOiBGSUxFOiBp bmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjQwOgorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUoY2lm XyxOQU1FKSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IHNw YWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojNzA6IEZJTEU6IGluY2x1ZGUv ZXhlYy9oZWxwZXItZmZpLmg6NDA6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUp ID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6 VnhWKQojNzI6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6NDI6CisgICAgICAgIC5h cmdfdHlwZXMgPSBnbHVlKGNpZl9hcmdzXyxOQU1FKSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBNYWNy b3Mgd2l0aCBtdWx0aXBsZSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBhIGRvIC0g d2hpbGUgbG9vcAojNzU6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6NDU6CisjZGVm aW5lIERFRl9IRUxQRVJfRkxBR1NfMihOQU1FLCBGTEFHUywgcmV0LCB0MSwgdDIpICAgIFwKKyAg ICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzJdID0geyAgICAgICAgXAor ICAgICAgICBkaF9mZml0eXBlKHQxKSwgZGhfZmZpdHlwZSh0MikgICAgICAgICAgICAgICAgICBc CisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBzdGF0aWMgZmZpX2NpZiBnbHVlKGNpZl8sTkFNRSkgPSB7ICAgICAgICAgICAgICAg ICAgXAorICAgICAgICAucnR5cGUgPSBkaF9mZml0eXBlKHJldCksIC5uYXJncyA9IDIsICAgICAg ICAgICBcCisgICAgICAgIC5hcmdfdHlwZXMgPSBnbHVlKGNpZl9hcmdzXyxOQU1FKSwgICAgICAg ICAgICAgIFwKKyAgICB9OwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQgdGhhdCAnKicg KGN0eDpXeFYpCiM3NjogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDo0NjoKKyAgICBz dGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzJdID0geyAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcg KGN0eDpWeFYpCiM3NjogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDo0NjoKKyAgICBz dGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzJdID0geyAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogb3BlbiBicmFjZSAneycg Zm9sbG93aW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBnbyBvbiB0aGUgbmV4dCBsaW5lCiM3OTog RklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDo0OToKKyAgICBzdGF0aWMgZmZpX2NpZiBn bHVlKGNpZl8sTkFNRSkgPSB7ICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IHNwYWNlIHJlcXVp cmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojNzk6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxw ZXItZmZpLmg6NDk6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0geyAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3Bh Y2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiM4MTogRklMRTogaW5jbHVkZS9l eGVjL2hlbHBlci1mZmkuaDo1MToKKyAgICAgICAgLmFyZ190eXBlcyA9IGdsdWUoY2lmX2FyZ3Nf LE5BTUUpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCgpFUlJPUjogTWFjcm9zIHdpdGggbXVsdGlwbGUgc3RhdGVtZW50cyBzaG91bGQgYmUgZW5j bG9zZWQgaW4gYSBkbyAtIHdoaWxlIGxvb3AKIzg0OiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVy LWZmaS5oOjU0OgorI2RlZmluZSBERUZfSEVMUEVSX0ZMQUdTXzMoTkFNRSwgRkxBR1MsIHJldCwg dDEsIHQyLCB0MykgICAgICAgIFwKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3Nf LE5BTUUpWzNdID0geyAgICAgICAgICAgICAgICBcCisgICAgICAgIGRoX2ZmaXR5cGUodDEpLCBk aF9mZml0eXBlKHQyKSwgZGhfZmZpdHlwZSh0MykgICAgICAgICAgXAorICAgIH07ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz dGF0aWMgZmZpX2NpZiBnbHVlKGNpZl8sTkFNRSkgPSB7ICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIC5ydHlwZSA9IGRoX2ZmaXR5cGUocmV0KSwgLm5hcmdzID0gMywgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAuYXJnX3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSks ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBh cm91bmQgdGhhdCAnKicgKGN0eDpXeFYpCiM4NTogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1m ZmkuaDo1NToKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzNdID0g eyAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSBy ZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzg1OiBGSUxFOiBpbmNsdWRlL2V4ZWMv aGVscGVyLWZmaS5oOjU1OgorICAgIHN0YXRpYyBmZmlfdHlwZSAqZ2x1ZShjaWZfYXJnc18sTkFN RSlbM10gPSB7ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgoKRVJST1I6IG9wZW4gYnJhY2UgJ3snIGZvbGxvd2luZyBmdW5jdGlvbiBkZWNsYXJh dGlvbnMgZ28gb24gdGhlIG5leHQgbGluZQojODg6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXIt ZmZpLmg6NTg6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0geyAgICAgICAg ICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywn IChjdHg6VnhWKQojODg6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6NTg6CisgICAg c3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0geyAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJl ZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzkwOiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVy LWZmaS5oOjYwOgorICAgICAgICAuYXJnX3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSksICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgoKRVJST1I6IE1hY3JvcyB3aXRoIG11bHRpcGxlIHN0YXRlbWVudHMgc2hvdWxkIGJlIGVuY2xv c2VkIGluIGEgZG8gLSB3aGlsZSBsb29wCiM5MzogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1m ZmkuaDo2MzoKKyNkZWZpbmUgREVGX0hFTFBFUl9GTEFHU180KE5BTUUsIEZMQUdTLCByZXQsIHQx LCB0MiwgdDMsIHQ0KSAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lm X2FyZ3NfLE5BTUUpWzRdID0geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGhf ZmZpdHlwZSh0MSksIGRoX2ZmaXR5cGUodDIpLCBkaF9mZml0eXBlKHQzKSwgZGhfZmZpdHlwZSh0 NCkgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgZmZpX2NpZiBnbHVlKGNpZl8sTkFN RSkgPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnJ0eXBl ID0gZGhfZmZpdHlwZShyZXQpLCAubmFyZ3MgPSA0LCAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgLmFyZ190eXBlcyA9IGdsdWUoY2lmX2FyZ3NfLE5BTUUpLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91 bmQgdGhhdCAnKicgKGN0eDpXeFYpCiM5NDogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmku aDo2NDoKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzRdID0geyAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNw YWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojOTQ6IEZJTEU6IGluY2x1ZGUv ZXhlYy9oZWxwZXItZmZpLmg6NjQ6CisgICAgc3RhdGljIGZmaV90eXBlICpnbHVlKGNpZl9hcmdz XyxOQU1FKVs0XSA9IHsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBvcGVuIGJyYWNlICd7JyBmb2xsb3dpbmcgZnVu Y3Rpb24gZGVjbGFyYXRpb25zIGdvIG9uIHRoZSBuZXh0IGxpbmUKIzk3OiBGSUxFOiBpbmNsdWRl L2V4ZWMvaGVscGVyLWZmaS5oOjY3OgorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUoY2lmXyxOQU1F KSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IHNwYWNlIHJl cXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojOTc6IEZJTEU6IGluY2x1ZGUvZXhlYy9o ZWxwZXItZmZpLmg6Njc6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0geyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQoj OTk6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6Njk6CisgICAgICAgIC5hcmdfdHlw ZXMgPSBnbHVlKGNpZl9hcmdzXyxOQU1FKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBNYWNyb3Mgd2l0 aCBtdWx0aXBsZSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBhIGRvIC0gd2hpbGUg bG9vcAojMTAyOiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjcyOgorI2RlZmluZSBE RUZfSEVMUEVSX0ZMQUdTXzUoTkFNRSwgRkxBR1MsIHJldCwgdDEsIHQyLCB0MywgdDQsIHQ1KSAg ICAgICAgXAorICAgIHN0YXRpYyBmZmlfdHlwZSAqZ2x1ZShjaWZfYXJnc18sTkFNRSlbNV0gPSB7 ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkaF9mZml0eXBlKHQxKSwgZGhfZmZp dHlwZSh0MiksIGRoX2ZmaXR5cGUodDMpLCAgICAgICAgICAgICAgICAgXAorICAgICAgICBkaF9m Zml0eXBlKHQ0KSwgZGhfZmZpdHlwZSh0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUoY2lmXyxOQU1F KSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAucnR5cGUg PSBkaF9mZml0eXBlKHJldCksIC5uYXJncyA9IDUsICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAuYXJnX3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSksICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIH07CgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3Vu ZCB0aGF0ICcqJyAoY3R4Old4VikKIzEwMzogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmku aDo3MzoKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzVdID0geyAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNw YWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTAzOiBGSUxFOiBpbmNsdWRl L2V4ZWMvaGVscGVyLWZmaS5oOjczOgorICAgIHN0YXRpYyBmZmlfdHlwZSAqZ2x1ZShjaWZfYXJn c18sTkFNRSlbNV0gPSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogb3BlbiBicmFjZSAneycgZm9sbG93aW5nIGZ1 bmN0aW9uIGRlY2xhcmF0aW9ucyBnbyBvbiB0aGUgbmV4dCBsaW5lCiMxMDc6IEZJTEU6IGluY2x1 ZGUvZXhlYy9oZWxwZXItZmZpLmg6Nzc6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5B TUUpID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjogc3BhY2Ug cmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiMxMDc6IEZJTEU6IGluY2x1ZGUvZXhl Yy9oZWxwZXItZmZpLmg6Nzc6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZfLE5BTUUpID0g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhW KQojMTA5OiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjc5OgorICAgICAgICAuYXJn X3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSksICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogTWFjcm9z IHdpdGggbXVsdGlwbGUgc3RhdGVtZW50cyBzaG91bGQgYmUgZW5jbG9zZWQgaW4gYSBkbyAtIHdo aWxlIGxvb3AKIzExMjogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDo4MjoKKyNkZWZp bmUgREVGX0hFTFBFUl9GTEFHU182KE5BTUUsIEZMQUdTLCByZXQsIHQxLCB0MiwgdDMsIHQ0LCB0 NSwgdDYpICAgIFwKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUpWzZd ID0geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGhfZmZpdHlwZSh0MSksIGRo X2ZmaXR5cGUodDIpLCBkaF9mZml0eXBlKHQzKSwgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ZGhfZmZpdHlwZSh0NCksIGRoX2ZmaXR5cGUodDUpLCBkaF9mZml0eXBlKHQ2KSAgICAgICAgICAg ICAgICAgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgZmZpX2NpZiBnbHVlKGNpZl8s TkFNRSkgPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnJ0 eXBlID0gZGhfZmZpdHlwZShyZXQpLCAubmFyZ3MgPSA2LCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgLmFyZ190eXBlcyA9IGdsdWUoY2lmX2FyZ3NfLE5BTUUpLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBh cm91bmQgdGhhdCAnKicgKGN0eDpXeFYpCiMxMTM6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXIt ZmZpLmg6ODM6CisgICAgc3RhdGljIGZmaV90eXBlICpnbHVlKGNpZl9hcmdzXyxOQU1FKVs2XSA9 IHsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9S OiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzExMzogRklMRTogaW5j bHVkZS9leGVjL2hlbHBlci1mZmkuaDo4MzoKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lm X2FyZ3NfLE5BTUUpWzZdID0geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IG9wZW4gYnJhY2UgJ3snIGZvbGxvd2lu ZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZ28gb24gdGhlIG5leHQgbGluZQojMTE3OiBGSUxFOiBp bmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjg3OgorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUoY2lm XyxOQU1FKSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IHNw YWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTE3OiBGSUxFOiBpbmNsdWRl L2V4ZWMvaGVscGVyLWZmaS5oOjg3OgorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUoY2lmXyxOQU1F KSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4 OlZ4VikKIzExOTogRklMRTogaW5jbHVkZS9leGVjL2hlbHBlci1mZmkuaDo4OToKKyAgICAgICAg LmFyZ190eXBlcyA9IGdsdWUoY2lmX2FyZ3NfLE5BTUUpLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IE1h Y3JvcyB3aXRoIG11bHRpcGxlIHN0YXRlbWVudHMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIGEgZG8g LSB3aGlsZSBsb29wCiMxMjI6IEZJTEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6OTI6Cisj ZGVmaW5lIERFRl9IRUxQRVJfRkxBR1NfNyhOQU1FLCBGTEFHUywgcmV0LCB0MSwgdDIsIHQzLCB0 NCwgdDUsIHQ2LCB0NykgXAorICAgIHN0YXRpYyBmZmlfdHlwZSAqZ2x1ZShjaWZfYXJnc18sTkFN RSlbN10gPSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkaF9mZml0eXBlKHQx KSwgZGhfZmZpdHlwZSh0MiksIGRoX2ZmaXR5cGUodDMpLCAgICAgICAgICAgICAgICAgXAorICAg ICAgICBkaF9mZml0eXBlKHQ0KSwgZGhfZmZpdHlwZSh0NSksIGRoX2ZmaXR5cGUodDYpLCBkaF9m Zml0eXBlKHQ3KSAgXAorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBmZmlfY2lmIGdsdWUo Y2lmXyxOQU1FKSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAucnR5cGUgPSBkaF9mZml0eXBlKHJldCksIC5uYXJncyA9IDcsICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICAuYXJnX3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSksICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07CgpFUlJPUjogc3BhY2VzIHJlcXVp cmVkIGFyb3VuZCB0aGF0ICcqJyAoY3R4Old4VikKIzEyMzogRklMRTogaW5jbHVkZS9leGVjL2hl bHBlci1mZmkuaDo5MzoKKyAgICBzdGF0aWMgZmZpX3R5cGUgKmdsdWUoY2lmX2FyZ3NfLE5BTUUp WzddID0geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgXgoK RVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTIzOiBGSUxF OiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjkzOgorICAgIHN0YXRpYyBmZmlfdHlwZSAqZ2x1 ZShjaWZfYXJnc18sTkFNRSlbN10gPSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogb3BlbiBicmFjZSAneycgZm9s bG93aW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBnbyBvbiB0aGUgbmV4dCBsaW5lCiMxMjc6IEZJ TEU6IGluY2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6OTc6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1 ZShjaWZfLE5BTUUpID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJP Ujogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiMxMjc6IEZJTEU6IGlu Y2x1ZGUvZXhlYy9oZWxwZXItZmZpLmg6OTc6CisgICAgc3RhdGljIGZmaV9jaWYgZ2x1ZShjaWZf LE5BTUUpID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywn IChjdHg6VnhWKQojMTI5OiBGSUxFOiBpbmNsdWRlL2V4ZWMvaGVscGVyLWZmaS5oOjk5OgorICAg ICAgICAuYXJnX3R5cGVzID0gZ2x1ZShjaWZfYXJnc18sTkFNRSksICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgp0b3Rh bDogNTUgZXJyb3JzLCAxIHdhcm5pbmdzLCAzMDkgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNjIvOTMg aGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9y cwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUK Q0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCjYzLzkzIENoZWNraW5nIGNvbW1pdCA2YjdhM2M3 YWZmZTcgKHRjZy90Y2k6IFVzZSBmZmkgZm9yIGNhbGxzKQpFUlJPUjogc3BhY2VzIHJlcXVpcmVk IGFyb3VuZCB0aGF0ICcrJyAoY3R4OlZ4VikKIzk0OiBGSUxFOiB0Y2cvdGNnLmM6MjA4NToKKyAg ICAgICAgYm9vbCBpc182NGJpdCA9IHNpemVtYXNrICYgKDEgPDwgKGkrMSkqMik7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlcyByZXF1 aXJlZCBhcm91bmQgdGhhdCAnKicgKGN0eDpWeFYpCiM5NDogRklMRTogdGNnL3RjZy5jOjIwODU6 CisgICAgICAgIGJvb2wgaXNfNjRiaXQgPSBzaXplbWFzayAmICgxIDw8IChpKzEpKjIpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzdXNw ZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg4LCAxMSkKIzEyMzog RklMRTogdGNnL3RjZy5jOjIxMDQ6CisgICAgICAgIGlmIChUQ0dfVEFSR0VUX1JFR19CSVRTIDwg NjQgJiYgaXNfNjRiaXQpIHsKKyAgICAgICAgICAgLyoKCnRvdGFsOiAzIGVycm9ycywgMCB3YXJu aW5ncywgMzgwIGxpbmVzIGNoZWNrZWQKClBhdGNoIDYzLzkzIGhhcyBzdHlsZSBwcm9ibGVtcywg cGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZl cyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRB SU5FUlMuCgo2NC85MyBDaGVja2luZyBjb21taXQgOGVmMGE4MjQ2NmVjICh0Y2cvdGNpOiBJbXBy b3ZlIHRjZ190YXJnZXRfY2FsbF9jbG9iYmVyX3JlZ3MpCjY1LzkzIENoZWNraW5nIGNvbW1pdCA1 ZTg1MDg4NGUxMjIgKHRjZy90Y2k6IE1vdmUgY2FsbC1yZXR1cm4gcmVncyB0byBlbmQgb2YgdGNn X3RhcmdldF9yZWdfYWxsb2Nfb3JkZXIpCjY2LzkzIENoZWNraW5nIGNvbW1pdCBkNjdlZDY4NjY3 NTQgKHRjZy90Y2k6IFB1c2ggb3Bjb2RlIGVtaXQgaW50byBlYWNoIGNhc2UpCjY3LzkzIENoZWNr aW5nIGNvbW1pdCA0MjBkMWJlNWZkNGUgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3Jy cykKNjgvOTMgQ2hlY2tpbmcgY29tbWl0IGFlNGMwNWMwM2JkYiAodGNnL3RjaTogU3BsaXQgb3V0 IHRjZ19vdXRfb3BfbCkKNjkvOTMgQ2hlY2tpbmcgY29tbWl0IGJjNjJmZTU1YmFiZCAodGNnL3Rj aTogU3BsaXQgb3V0IHRjZ19vdXRfb3BfcCkKNzAvOTMgQ2hlY2tpbmcgY29tbWl0IDIxOTI0M2Vk M2JhOSAodGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRfb3BfcnIpCjcxLzkzIENoZWNraW5nIGNv bW1pdCAxNTJkODAzOTc5YjUgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3JycikKNzIv OTMgQ2hlY2tpbmcgY29tbWl0IDAzMGIyYzUwZjk0OSAodGNnL3RjaTogU3BsaXQgb3V0IHRjZ19v dXRfb3BfcnJyYykKNzMvOTMgQ2hlY2tpbmcgY29tbWl0IDgwODkxYjNmYmE5OCAodGNnL3RjaTog U3BsaXQgb3V0IHRjZ19vdXRfb3BfcnJycnJjKQo3NC85MyBDaGVja2luZyBjb21taXQgYTc4MDYw ZjNhMDU3ICh0Y2cvdGNpOiBTcGxpdCBvdXQgdGNnX291dF9vcF9ycnJiYikKNzUvOTMgQ2hlY2tp bmcgY29tbWl0IDM2YjAyOWI0OTczZiAodGNnL3RjaTogU3BsaXQgb3V0IHRjZ19vdXRfb3BfcnJj bCkKNzYvOTMgQ2hlY2tpbmcgY29tbWl0IDA4YjI2NDIzMmMzYSAodGNnL3RjaTogU3BsaXQgb3V0 IHRjZ19vdXRfb3BfcnJycnJyKQo3Ny85MyBDaGVja2luZyBjb21taXQgYjIyNjY2NGFmODM4ICh0 Y2cvdGNpOiBTcGxpdCBvdXQgdGNnX291dF9vcF9ycnJyKQo3OC85MyBDaGVja2luZyBjb21taXQg MjMxMWIxYTUyYzcxICh0Y2cvdGNpOiBTcGxpdCBvdXQgdGNnX291dF9vcF9ycnJyY2wpCjc5Lzkz IENoZWNraW5nIGNvbW1pdCA4OWJlZTZjZjI3ZWIgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0 X29wX3tycm0scnJybSxycnJybX0pCjgwLzkzIENoZWNraW5nIGNvbW1pdCAwMTU1NTlhNmQ3YjMg KHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX3YpCjgxLzkzIENoZWNraW5nIGNvbW1pdCBm ZmYwNzBhY2M5NjcgKHRjZy90Y2k6IFNwbGl0IG91dCB0Y2dfb3V0X29wX25wKQo4Mi85MyBDaGVj a2luZyBjb21taXQgMDgxYWVhNGVjZWYzICh0Y2cvdGNpOiBTcGxpdCBvdXQgdGNnX291dF9vcF9y W2lJXSkKODMvOTMgQ2hlY2tpbmcgY29tbWl0IDA1NWIzOGUzOGRhMiAodGNnL3RjaTogUmVzZXJ2 ZSByMTMgZm9yIGEgdGVtcG9yYXJ5KQo4NC85MyBDaGVja2luZyBjb21taXQgMjMxYjcwNWQ1YjMy ICh0Y2cvdGNpOiBFbWl0IHNldGNvbmQgYmVmb3JlIGJyY29uZCkKODUvOTMgQ2hlY2tpbmcgY29t bWl0IGQ0MmE1NjNjODgxNyAodGNnL3RjaTogUmVtb3ZlIHRjaV93cml0ZV9yZWcpCjg2LzkzIENo ZWNraW5nIGNvbW1pdCAxMWUwMDVkNjUyZWYgKHRjZy90Y2k6IENoYW5nZSBlbmNvZGluZyB0byB1 aW50MzJfdCB1bml0cykKODcvOTMgQ2hlY2tpbmcgY29tbWl0IDk5NzYzNjFhZDI5NSAodGNnL3Rj aTogSW1wbGVtZW50IGdvdG9fcHRyKQo4OC85MyBDaGVja2luZyBjb21taXQgODdhNWQ5ZTg2MWU5 ICh0Y2cvdGNpOiBJbXBsZW1lbnQgbW92Y29uZCkKODkvOTMgQ2hlY2tpbmcgY29tbWl0IGYzZjkx Y2M3ZmYyYSAodGNnL3RjaTogSW1wbGVtZW50IGFuZGMsIG9yYywgZXF2LCBuYW5kLCBub3IpCjkw LzkzIENoZWNraW5nIGNvbW1pdCAxZTQ4NTJjMjc5ZjAgKHRjZy90Y2k6IEltcGxlbWVudCBleHRy YWN0LCBzZXh0cmFjdCkKOTEvOTMgQ2hlY2tpbmcgY29tbWl0IGNlZDRmNWFlNzg1OSAodGNnL3Rj aTogSW1wbGVtZW50IGNseiwgY3R6LCBjdHBvcCkKOTIvOTMgQ2hlY2tpbmcgY29tbWl0IGRhMTA0 MjkwNzlmZSAodGNnL3RjaTogSW1wbGVtZW50IG11bHUyLCBtdWxzMikKOTMvOTMgQ2hlY2tpbmcg Y29tbWl0IDhiMGJjMDE2ZmY2OCAodGNnL3RjaTogSW1wbGVtZW50IGFkZDIsIHN1YjIpCj09PSBP VVRQVVQgRU5EID09PQoKVGVzdCBjb21tYW5kIGV4aXRlZCB3aXRoIGNvZGU6IDEKCgpUaGUgZnVs bCBsb2cgaXMgYXZhaWxhYmxlIGF0Cmh0dHA6Ly9wYXRjaGV3Lm9yZy9sb2dzLzIwMjEwMjA0MDE0 NTA5Ljg4MjgyMS0xLXJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmcvdGVzdGluZy5jaGVja3Bh dGNoLz90eXBlPW1lc3NhZ2UuCi0tLQpFbWFpbCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBQ YXRjaGV3IFtodHRwczovL3BhdGNoZXcub3JnL10uClBsZWFzZSBzZW5kIHlvdXIgZmVlZGJhY2sg dG8gcGF0Y2hldy1kZXZlbEByZWRoYXQuY29t