From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id 5BC3D383E839 for ; Tue, 24 May 2022 15:27:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5BC3D383E839 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.91,248,1647331200"; d="scan'208";a="78971764" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa1.mentor.iphmx.com with ESMTP; 24 May 2022 07:27:57 -0800 IronPort-SDR: 0UI6k+3XP8ZZ0fPacC7JFYaV2RKD8ixH8hAb1GeO0Jeol7Ab3e9y53Hme3IqkluHzVsSFTOhPN to783NqbSk45Ht3TIpkdk+5Asl7ianacSyboJ6ORyixNQf2QYx0XH/cA+JWZxpHhFDIaZoAPAw jpzaSvI9aq616fETGcJR4EgxFn0IUe0DNF1mK4UE+etF4l01ahmpd/8ZxOAFTphcI1MwBTrica iGvC+bu2W/yhmM+c5QPjhEuuStDeiMOHI9w+7BudljnRz2UEvCGWdBdr37V9dRitgAWx/pnwx7 kAM= Content-Type: multipart/mixed; boundary="------------ifmKQvTwUd7m6wmjw0IXej0q" Message-ID: <76a30f1f-661e-7c6f-9ba0-ab68a11dde15@codesourcery.com> Date: Tue, 24 May 2022 16:27:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Content-Language: en-GB To: "gcc-patches@gcc.gnu.org" From: Andrew Stubbs Subject: [committed] amdgcn: Remove LLVM 9 assembler/linker support X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 May 2022 15:28:03 -0000 --------------ifmKQvTwUd7m6wmjw0IXej0q Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit I've committed this patch to set the minimum required LLVM version, for the assembler and linker, to 13.0.1. An upgrade from LLVM 9 is a prerequisite for the gfx90a support, and 13.0.1 is now the oldest version not known to have compatibility issues. The patch removes all the obsolete feature detection tests from configure and adds a new version test. Likewise the version dependencies in the backend are removed. Andrew --------------ifmKQvTwUd7m6wmjw0IXej0q Content-Type: text/plain; charset="UTF-8"; name="220524-llvm-13.patch" Content-Disposition: attachment; filename="220524-llvm-13.patch" Content-Transfer-Encoding: base64 YW1kZ2NuOiBSZW1vdmUgTExWTSA5IGFzc2VtYmxlci9saW5rZXIgc3VwcG9ydAoKVGhlIG1p bmltdW0gcmVxdWlyZWQgTExWTSB2ZXJzaW9uIGlzIG5vdyAxMy4wLjEsIGFuZCBpcyBlbmZv cmNlZCBieSBjb25maWd1cmUuCgpnY2MvQ2hhbmdlTG9nOgoKCSogY29uZmlnLmluOiBSZWdl bmVyYXRlLgoJKiBjb25maWcvZ2NuL2djbi1oc2EuaCAoWF9GSUpJKTogRGVsZXRlLgoJKFhf OTAwKTogRGVsZXRlLgoJKFhfOTA2KTogRGVsZXRlLgoJKFhfOTA4KTogRGVsZXRlLgoJKFNf RklKSSk6IERlbGV0ZS4KCShTXzkwMCk6IERlbGV0ZS4KCShTXzkwNik6IERlbGV0ZS4KCShT XzkwOCk6IERlbGV0ZS4KCShOT19YTkFDSyk6IE5ldyBtYWNyby4KCShOT19TUkFNX0VDQyk6 IE5ldyBtYWNyby4KCShTUkFNT1BUKTogS2VlcCBvbmx5IHY0IHZhcmlhbnQuCgkoSFNBQ08z X1NFTEVDVF9PUFQpOiBEZWxldGUuCgkoRFJJVkVSX1NFTEZfU1BFQ1MpOiBEZWxldGUuCgko QVNNX1NQRUMpOiBSZW1vdmUgTExWTSA5IHN1cHBvcnQuCgkqIGNvbmZpZy9nY24vZ2NuLXZh bHUubWQKCShnYXRoZXI8bW9kZT5faW5zbl8yb2Zmc2V0czxleGVjPik6IFJlbW92ZSBhc3Nl bWJsZXIgYnVnIHdvcmthcm91bmQuCgkoc2NhdHRlcjxtb2RlPl9pbnNuXzJvZmZzZXRzPGV4 ZWNfc2NhdHRlcj4pOiBMaWtld2lzZS4KCSogY29uZmlnL2djbi9nY24uY2MgKG91dHB1dF9m aWxlX3N0YXJ0KTogUmVtb3ZlIExMVk0gOSBzdXBwb3J0LgoJKHByaW50X29wZXJhbmRfYWRk cmVzcyk6IFJlbW92ZSBhc3NlbWJsZXIgYnVnIHdvcmthcm91bmQuCgkqIGNvbmZpZy9nY24v bWtvZmZsb2FkLmNjIChFRl9BTURHUFVfWE5BQ0tfVjMpOiBEZWxldGUuCgkoRUZfQU1ER1BV X1NSQU1fRUNDX1YzKTogRGVsZXRlLgoJKFNFVF9YTkFDS19PTik6IERlbGV0ZSB2MyB2YXJp YW50cy4KCShTRVRfWE5BQ0tfT0ZGKTogRGVsZXRlIHYzIHZhcmlhbnRzLgoJKFRFU1RfWE5B Q0spOiBEZWxldGUgdjMgdmFyaWFudHMuCgkoU0VUX1NSQU1fRUNDX09OKTogRGVsZXRlIHYz IHZhcmlhbnRzLgoJKFNFVF9TUkFNX0VDQ19BTlkpOiBEZWxldGUgdjMgdmFyaWFudHMuCgko U0VUX1NSQU1fRUNDX09GRik6IERlbGV0ZSB2MyB2YXJpYW50cy4KCShTRVRfU1JBTV9FQ0Nf VU5TVVBQT1JURUQpOiBEZWxldGUgdjMgdmFyaWFudHMuCgkoVEVTVF9TUkFNX0VDQ19BTlkp OiBEZWxldGUgdjMgdmFyaWFudHMuCgkoVEVTVF9TUkFNX0VDQ19PTik6IERlbGV0ZSB2MyB2 YXJpYW50cy4KCShjb3B5X2Vhcmx5X2RlYnVnX2luZm8pOiBSZW1vdmUgdjMgc3VwcG9ydC4K CShtYWluKTogUmVtb3ZlIHYzIHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4K CSogY29uZmlndXJlLmFjOiBSZXBsYWNlIGFsbCBHQ04gZmVhdHVyZSBjaGVja3Mgd2l0aCBh IHZlcnNpb24gY2hlY2suCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5pbiBiL2djYy9jb25m aWcuaW4KaW5kZXggNjRjMjdjOWNmYWMuLjZhNGY4ODU2YzRmIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnLmluCisrKyBiL2djYy9jb25maWcuaW4KQEAgLTEzMzEsMTMgKzEzMzEsNiBAQAog I2VuZGlmCiAKIAotLyogRGVmaW5lIGlmIHlvdXIgQXJtIGFzc2VtYmxlciBwZXJtaXRzIGNv bnRleHQtc3BlY2lmaWMgZmVhdHVyZSBleHRlbnNpb25zLgotICAgKi8KLSNpZm5kZWYgVVNF RF9GT1JfVEFSR0VUCi0jdW5kZWYgSEFWRV9HQVNfQVJNX0VYVEVOREVEX0FSQ0gKLSNlbmRp ZgotCi0KIC8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAuYmFsaWduIGFu ZCAucDJhbGlnbi4gKi8KICNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCiAjdW5kZWYgSEFWRV9H QVNfQkFMSUdOX0FORF9QMkFMSUdOCkBAIC0xNDU3LDcyICsxNDUwLDYgQEAKICNlbmRpZgog CiAKLS8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBoYXMgZml4ZWQgZ2xvYmFsX2xvYWQg ZnVuY3Rpb25zLiAqLwotI2lmbmRlZiBVU0VEX0ZPUl9UQVJHRVQKLSN1bmRlZiBIQVZFX0dD Tl9BU01fR0xPQkFMX0xPQURfRklYRUQKLSNlbmRpZgotCi0KLS8qIERlZmluZSBpZiB5b3Vy IGFzc2VtYmxlciBleHBlY3RzIGFtZGdjbl90YXJnZXQgZ2Z4OTA4K3huYWNrIHN5bnRheC4g Ki8KLSNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCi0jdW5kZWYgSEFWRV9HQ05fQVNNX1YzX1NZ TlRBWAotI2VuZGlmCi0KLQotLyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGV4cGVjdHMg YW1kZ2NuX3RhcmdldCBnZng5MDg6eG5hY2srIHN5bnRheC4gKi8KLSNpZm5kZWYgVVNFRF9G T1JfVEFSR0VUCi0jdW5kZWYgSEFWRV9HQ05fQVNNX1Y0X1NZTlRBWAotI2VuZGlmCi0KLQot LyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAtbWF0dHI9K3NyYW1lY2MgZm9y IGZpamkuICovCi0jaWZuZGVmIFVTRURfRk9SX1RBUkdFVAotI3VuZGVmIEhBVkVfR0NOX1NS QU1fRUNDX0ZJSkkKLSNlbmRpZgotCi0KLS8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBh bGxvd3MgLW1hdHRyPStzcmFtZWNjIGZvciBnZng5MDAuICovCi0jaWZuZGVmIFVTRURfRk9S X1RBUkdFVAotI3VuZGVmIEhBVkVfR0NOX1NSQU1fRUNDX0dGWDkwMAotI2VuZGlmCi0KLQot LyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAtbWF0dHI9K3NyYW1lY2MgZm9y IGdmeDkwNi4gKi8KLSNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCi0jdW5kZWYgSEFWRV9HQ05f U1JBTV9FQ0NfR0ZYOTA2Ci0jZW5kaWYKLQotCi0vKiBEZWZpbmUgaWYgeW91ciBhc3NlbWJs ZXIgYWxsb3dzIC1tYXR0cj0rc3JhbWVjYyBmb3IgZ2Z4OTA4LiAqLwotI2lmbmRlZiBVU0VE X0ZPUl9UQVJHRVQKLSN1bmRlZiBIQVZFX0dDTl9TUkFNX0VDQ19HRlg5MDgKLSNlbmRpZgot Ci0KLS8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBhbGxvd3MgLW1hdHRyPSt4bmFjayBm b3IgZmlqaS4gKi8KLSNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCi0jdW5kZWYgSEFWRV9HQ05f WE5BQ0tfRklKSQotI2VuZGlmCi0KLQotLyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFs bG93cyAtbWF0dHI9K3huYWNrIGZvciBnZng5MDAuICovCi0jaWZuZGVmIFVTRURfRk9SX1RB UkdFVAotI3VuZGVmIEhBVkVfR0NOX1hOQUNLX0dGWDkwMAotI2VuZGlmCi0KLQotLyogRGVm aW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAtbWF0dHI9K3huYWNrIGZvciBnZng5MDYu ICovCi0jaWZuZGVmIFVTRURfRk9SX1RBUkdFVAotI3VuZGVmIEhBVkVfR0NOX1hOQUNLX0dG WDkwNgotI2VuZGlmCi0KLQotLyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAt bWF0dHI9K3huYWNrIGZvciBnZng5MDguICovCi0jaWZuZGVmIFVTRURfRk9SX1RBUkdFVAot I3VuZGVmIEhBVkVfR0NOX1hOQUNLX0dGWDkwOAotI2VuZGlmCi0KLQogLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGBnZXRjaGFyX3VubG9ja2VkJyBmdW5jdGlvbi4gKi8KICNp Zm5kZWYgVVNFRF9GT1JfVEFSR0VUCiAjdW5kZWYgSEFWRV9HRVRDSEFSX1VOTE9DS0VECkBA IC0yMjA4LDYgKzIxMzUsMTIgQEAKICNlbmRpZgogCiAKKy8qIERlZmluZSB3aGljaCBzdGF0 IHN5c2NhbGwgaXMgYWJsZSB0byBoYW5kbGUgNjRiaXQgaW5kb2Rlcy4gKi8KKyNpZm5kZWYg VVNFRF9GT1JfVEFSR0VUCisjdW5kZWYgSE9TVF9TVEFUX0ZPUl82NEJJVF9JTk9ERVMKKyNl bmRpZgorCisKIC8qIERlZmluZSBhcyBjb25zdCBpZiB0aGUgZGVjbGFyYXRpb24gb2YgaWNv bnYoKSBuZWVkcyBjb25zdC4gKi8KICNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCiAjdW5kZWYg SUNPTlZfQ09OU1QKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2djbi1oc2EuaCBiL2dj Yy9jb25maWcvZ2NuL2djbi1oc2EuaAppbmRleCA5YjVmZWU5ZjdkNC4uYjMwNzljZWJiNDMg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL2djbi1oc2EuaAorKysgYi9nY2MvY29uZmln L2djbi9nY24taHNhLmgKQEAgLTc1LDY4ICs3NSwxOSBAQCBleHRlcm4gdW5zaWduZWQgaW50 IGdjbl9sb2NhbF9zeW1faGFzaCAoY29uc3QgY2hhciAqbmFtZSk7CiAgICBzdXBwb3J0ZWQg Zm9yIGdjbi4gICovCiAjZGVmaW5lIEdPTVBfU0VMRl9TUEVDUyAiIgogCi0jaWZkZWYgSEFW RV9HQ05fWE5BQ0tfRklKSQotI2RlZmluZSBYX0ZJSkkKLSNlbHNlCi0jZGVmaW5lIFhfRklK SSAiIW1hcmNoPSo6O21hcmNoPWZpamk6OyIKLSNlbmRpZgotI2lmZGVmIEhBVkVfR0NOX1hO QUNLX0dGWDkwMAotI2RlZmluZSBYXzkwMAotI2Vsc2UKLSNkZWZpbmUgWF85MDAgIm1hcmNo PWdmeDkwMDo7IgotI2VuZGlmCi0jaWZkZWYgSEFWRV9HQ05fWE5BQ0tfR0ZYOTA2Ci0jZGVm aW5lIFhfOTA2Ci0jZWxzZQotI2RlZmluZSBYXzkwNiAibWFyY2g9Z2Z4OTA2OjsiCi0jZW5k aWYKLSNpZmRlZiBIQVZFX0dDTl9YTkFDS19HRlg5MDgKLSNkZWZpbmUgWF85MDgKLSNlbHNl Ci0jZGVmaW5lIFhfOTA4ICJtYXJjaD1nZng5MDg6OyIKLSNlbmRpZgotCi0vKiBUaGVzZSB0 YXJnZXRzIGNhbid0IGhhdmUgU1JBTS1FQ0MsIGV2ZW4gaWYgYSBicm9rZW4gYXNzZW1ibGVy IGFsbG93cyBpdC4gICovCi0jZGVmaW5lIFNfRklKSSAiIW1hcmNoPSo6O21hcmNoPWZpamk6 OyIKLSNkZWZpbmUgU185MDAgIm1hcmNoPWdmeDkwMDo7IgotI2RlZmluZSBTXzkwNiAibWFy Y2g9Z2Z4OTA2OjsiCi0jaWZkZWYgSEFWRV9HQ05fU1JBTV9FQ0NfR0ZYOTA4Ci0jZGVmaW5l IFNfOTA4Ci0jZWxzZQotI2RlZmluZSBTXzkwOCAibWFyY2g9Z2Z4OTA4OjsiCi0jZW5kaWYK KyNkZWZpbmUgTk9fWE5BQ0sgIiFtYXJjaD0qOjttYXJjaD1maWppOjsiCisjZGVmaW5lIE5P X1NSQU1fRUNDICIhbWFyY2g9Kjo7bWFyY2g9ZmlqaTo7bWFyY2g9Z2Z4OTAwOjttYXJjaD1n Zng5MDY6OyIKIAotI2lmZGVmIEhBVkVfR0NOX0FTTV9WM19TWU5UQVgKLSNkZWZpbmUgU1JB TU9QVCAiIW1zcmFtLWVjYz1vZmY6LW1hdHRyPStzcmFtLWVjYzs6LW1hdHRyPS1zcmFtLWVj YyIKLSNlbmRpZgotI2lmZGVmIEhBVkVfR0NOX0FTTV9WNF9TWU5UQVgKIC8qIEluIEhTQUNP djQgbm8gYXR0cmlidXRlIHNldHRpbmcgbWVhbnMgdGhlIGJpbmFyeSBzdXBwb3J0cyAiYW55 IiBoYXJkd2FyZQogICAgY29uZmlndXJhdGlvbi4gIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1 dGUgYWxzbyBjaGFuZ2VkLiAgKi8KICNkZWZpbmUgU1JBTU9QVCAibXNyYW0tZWNjPW9uOi1t YXR0cj0rc3JhbWVjYzttc3JhbS1lY2M9b2ZmOi1tYXR0cj0tc3JhbWVjYyIKLSNlbmRpZgot I2lmICFkZWZpbmVkKFNSQU1PUFQpICYmICFkZWZpbmVkKElOX0xJQkdDQzIpCi0jZXJyb3Ig Ik5vIGFzc2VtYmxlciBzeW50YXggY29uZmlndXJlZCIKLSNlbmRpZgotCi0jaWZkZWYgSEFW RV9HQ05fQVNNX1Y0X1NZTlRBWAotLyogRklKSSBjYXJkcyBkb24ndCBzZWVtIHRvIHN1cHBv cnQgZHJpdmVycyBuZXcgZW5vdWdoIHRvIGFsbG93IEhTQUNPdjQuICAqLwotI2RlZmluZSBI U0FDTzNfU0VMRUNUX09QVCBcCi0gICAgIiV7IW1hcmNoPSp8bWFyY2g9ZmlqaTotLWFtZGhz YS1jb2RlLW9iamVjdC12ZXJzaW9uPTN9ICIKLSNlbHNlCi0jZGVmaW5lIEhTQUNPM19TRUxF Q1RfT1BUCi0jZW5kaWYKLQotLyogVGhlc2UgdGFyZ2V0cyBjYW4ndCBoYXZlIFNSQU0tRUND LCBldmVuIGlmIGEgYnJva2VuIGFzc2VtYmxlciBhbGxvd3MgaXQuICAqLwotI2RlZmluZSBE UklWRVJfU0VMRl9TUEVDUyBcCi0gICIle21hcmNoPWZpaml8bWFyY2g9Z2Z4OTAwfG1hcmNo PWdmeDkwNjoleyFtc3JhbS1lY2M9KjotbXNyYW0tZWNjPW9mZn19IgogCiAvKiBVc2UgTExW TSBhc3NlbWJsZXIgYW5kIGxpbmtlciBvcHRpb25zLiAgKi8KICNkZWZpbmUgQVNNX1NQRUMg ICItdHJpcGxlPWFtZGdjbi0tYW1kaHNhICIgIFwKIAkJICAiJTpsYXN0X2FyZygle21hcmNo PSo6LW1jcHU9JSp9KSAiIFwKLQkJICBIU0FDTzNfU0VMRUNUX09QVCBcCi0JCSAgIiV7IiBY X0ZJSkkgWF85MDAgWF85MDYgWF85MDggXAotCQkgICAgICJteG5hY2s6LW1hdHRyPSt4bmFj azs6LW1hdHRyPS14bmFja30gIiBcCi0JCSAgIiV7IiBTX0ZJSkkgU185MDAgU185MDYgU185 MDggU1JBTU9QVCAifSAiIFwKKwkJICAiJXshbWFyY2g9KnxtYXJjaD1maWppOi0tYW1kaHNh LWNvZGUtb2JqZWN0LXZlcnNpb249M30gIiBcCisJCSAgIiV7IiBOT19YTkFDSyAibXhuYWNr Oi1tYXR0cj0reG5hY2s7Oi1tYXR0cj0teG5hY2t9ICIgXAorCQkgICIleyIgTk9fU1JBTV9F Q0MgU1JBTU9QVCAifSAiIFwKIAkJICAiLWZpbGV0eXBlPW9iaiIKICNkZWZpbmUgTElOS19T UEVDICItLXBpZSAtLWV4cG9ydC1keW5hbWljIgogI2RlZmluZSBMSUJfU1BFQyAgIi1sYyIK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kIGIvZ2NjL2NvbmZpZy9n Y24vZ2NuLXZhbHUubWQKaW5kZXggOWY4NjhhMWE2MDcuLmFiZTQ2MjAxMzQ0IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2djbi9nY24tdmFsdS5tZAorKysgYi9nY2MvY29uZmlnL2djbi9n Y24tdmFsdS5tZApAQCAtODIzLDE3ICs4MjMsOCBAQCAoZGVmaW5lX2luc24gImdhdGhlcjxt b2RlPl9pbnNuXzJvZmZzZXRzPGV4ZWM+IgogCiAgICAgc3RhdGljIGNoYXIgYnVmWzIwMF07 CiAgICAgaWYgKEFTX0dMT0JBTF9QIChhcykpCi0gICAgICB7Ci0JLyogV29yayBhcm91bmQg YXNzZW1ibGVyIGJ1ZyBpbiB3aGljaCBhIDY0LWJpdCByZWdpc3RlciBpcyBleHBlY3RlZCwK LQlidXQgYSAzMi1iaXQgdmFsdWUgd291bGQgYmUgY29ycmVjdC4gICovCi0JaW50IHJlZyA9 IFJFR05PIChvcGVyYW5kc1syXSkgLSBGSVJTVF9WR1BSX1JFRzsKLQlpZiAoSEFWRV9HQ05f QVNNX0dMT0JBTF9MT0FEX0ZJWEVEKQotCSAgc3ByaW50ZiAoYnVmLCAiZ2xvYmFsX2xvYWQl JW8wXHQlJTAsIHYlZCwgJSUxIG9mZnNldDolJTMlc1w7IgotCQkJInNfd2FpdGNudFx0dm1j bnQoMCkiLCByZWcsIGdsYyk7Ci0JZWxzZQotCSAgc3ByaW50ZiAoYnVmLCAiZ2xvYmFsX2xv YWQlJW8wXHQlJTAsIHZbJWQ6JWRdLCAlJTEgb2Zmc2V0OiUlMyVzXDsiCi0JCQkic193YWl0 Y250XHR2bWNudCgwKSIsIHJlZywgcmVnICsgMSwgZ2xjKTsKLSAgICAgIH0KKyAgICAgIHNw cmludGYgKGJ1ZiwgImdsb2JhbF9sb2FkJSVvMFx0JSUwLCAlJTIsICUlMSBvZmZzZXQ6JSUz JXNcOyIKKwkgICAgICAgInNfd2FpdGNudFx0dm1jbnQoMCkiLCBnbGMpOwogICAgIGVsc2UK ICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKICAgICAgIApAQCAtOTU4LDE3ICs5NDksNyBA QCAoZGVmaW5lX2luc24gInNjYXR0ZXI8bW9kZT5faW5zbl8yb2Zmc2V0czxleGVjX3NjYXR0 ZXI+IgogCiAgICAgc3RhdGljIGNoYXIgYnVmWzIwMF07CiAgICAgaWYgKEFTX0dMT0JBTF9Q IChhcykpCi0gICAgICB7Ci0JLyogV29yayBhcm91bmQgYXNzZW1ibGVyIGJ1ZyBpbiB3aGlj aCBhIDY0LWJpdCByZWdpc3RlciBpcyBleHBlY3RlZCwKLQlidXQgYSAzMi1iaXQgdmFsdWUg d291bGQgYmUgY29ycmVjdC4gICovCi0JaW50IHJlZyA9IFJFR05PIChvcGVyYW5kc1sxXSkg LSBGSVJTVF9WR1BSX1JFRzsKLQlpZiAoSEFWRV9HQ05fQVNNX0dMT0JBTF9MT0FEX0ZJWEVE KQotCSAgc3ByaW50ZiAoYnVmLCAiZ2xvYmFsX3N0b3JlJSVzM1x0diVkLCAlJTMsICUlMCBv ZmZzZXQ6JSUyJXMiLAotCQkgICByZWcsIGdsYyk7Ci0JZWxzZQotCSAgc3ByaW50ZiAoYnVm LCAiZ2xvYmFsX3N0b3JlJSVzM1x0dlslZDolZF0sICUlMywgJSUwIG9mZnNldDolJTIlcyIs Ci0JCSAgIHJlZywgcmVnICsgMSwgZ2xjKTsKLSAgICAgIH0KKyAgICAgIHNwcmludGYgKGJ1 ZiwgImdsb2JhbF9zdG9yZSUlczNcdCUlMSwgJSUzLCAlJTAgb2Zmc2V0OiUlMiVzIiwgZ2xj KTsKICAgICBlbHNlCiAgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7CiAKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvZ2NuL2djbi5jYyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwppbmRleCA3 NmIyN2M0OWQ3Ni4uMzlhN2E5NjY1MDIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL2dj bi5jYworKysgYi9nY2MvY29uZmlnL2djbi9nY24uY2MKQEAgLTUyMTYsNzEgKzUyMTYsMzgg QEAgZ2NuX3NoYXJlZF9tZW1fbGF5b3V0ICh1bnNpZ25lZCBIT1NUX1dJREVfSU5UICpsbywK IHN0YXRpYyB2b2lkCiBvdXRwdXRfZmlsZV9zdGFydCAodm9pZCkKIHsKKyAgLyogSW4gSFNB Q092NCBubyBhdHRyaWJ1dGUgc2V0dGluZyBtZWFucyB0aGUgYmluYXJ5IHN1cHBvcnRzICJh bnkiIGhhcmR3YXJlCisgICAgIGNvbmZpZ3VyYXRpb24uICBJbiBHQ0MgYmluYXJpZXMsIHRo aXMgaXMgdHJ1ZSBmb3IgU1JBTSBFQ0MsIGJ1dCBub3QKKyAgICAgWE5BQ0suICAqLworICBj b25zdCBjaGFyICp4bmFjayA9IChmbGFnX3huYWNrID8gIjp4bmFjaysiIDogIjp4bmFjay0i KTsKKyAgY29uc3QgY2hhciAqc3JhbV9lY2MgPSAoZmxhZ19zcmFtX2VjYyA9PSBTUkFNX0VD Q19PTiA/ICI6c3JhbWVjYysiCisJCQkgIDogZmxhZ19zcmFtX2VjYyA9PSBTUkFNX0VDQ19P RkYgPyAiOnNyYW1lY2MtIgorCQkJICA6ICIiKTsKKwogICBjb25zdCBjaGFyICpjcHU7Ci0g IGJvb2wgdXNlX3huYWNrX2F0dHIgPSB0cnVlOwotICBib29sIHVzZV9zcmFtX2F0dHIgPSB0 cnVlOwogICBzd2l0Y2ggKGdjbl9hcmNoKQogICAgIHsKICAgICBjYXNlIFBST0NFU1NPUl9G SUpJOgogICAgICAgY3B1ID0gImdmeDgwMyI7Ci0jaWZuZGVmIEhBVkVfR0NOX1hOQUNLX0ZJ SkkKLSAgICAgIHVzZV94bmFja19hdHRyID0gZmFsc2U7Ci0jZW5kaWYKLSAgICAgIHVzZV9z cmFtX2F0dHIgPSBmYWxzZTsKKyAgICAgIHhuYWNrID0gIiI7CisgICAgICBzcmFtX2VjYyA9 ICIiOwogICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9DRVNTT1JfVkVHQTEwOgogICAgICAg Y3B1ID0gImdmeDkwMCI7Ci0jaWZuZGVmIEhBVkVfR0NOX1hOQUNLX0dGWDkwMAotICAgICAg dXNlX3huYWNrX2F0dHIgPSBmYWxzZTsKLSNlbmRpZgotICAgICAgdXNlX3NyYW1fYXR0ciA9 IGZhbHNlOworICAgICAgc3JhbV9lY2MgPSAiIjsKICAgICAgIGJyZWFrOwogICAgIGNhc2Ug UFJPQ0VTU09SX1ZFR0EyMDoKICAgICAgIGNwdSA9ICJnZng5MDYiOwotI2lmbmRlZiBIQVZF X0dDTl9YTkFDS19HRlg5MDYKLSAgICAgIHVzZV94bmFja19hdHRyID0gZmFsc2U7Ci0jZW5k aWYKLSAgICAgIHVzZV9zcmFtX2F0dHIgPSBmYWxzZTsKKyAgICAgIHNyYW1fZWNjID0gIiI7 CiAgICAgICBicmVhazsKICAgICBjYXNlIFBST0NFU1NPUl9HRlg5MDg6CiAgICAgICBjcHUg PSAiZ2Z4OTA4IjsKLSNpZm5kZWYgSEFWRV9HQ05fWE5BQ0tfR0ZYOTA4Ci0gICAgICB1c2Vf eG5hY2tfYXR0ciA9IGZhbHNlOwotI2VuZGlmCi0jaWZuZGVmIEhBVkVfR0NOX1NSQU1fRUND X0dGWDkwOAotICAgICAgdXNlX3NyYW1fYXR0ciA9IGZhbHNlOwotI2VuZGlmCiAgICAgICBi cmVhazsKICAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAgfQogCi0jaWYg SEFWRV9HQ05fQVNNX1YzX1NZTlRBWAotICBjb25zdCBjaGFyICp4bmFjayA9IChmbGFnX3hu YWNrID8gIit4bmFjayIgOiAiIik7Ci0gIGNvbnN0IGNoYXIgKnNyYW1fZWNjID0gKGZsYWdf c3JhbV9lY2MgPyAiK3NyYW0tZWNjIiA6ICIiKTsKLSNlbmRpZgotI2lmIEhBVkVfR0NOX0FT TV9WNF9TWU5UQVgKLSAgLyogSW4gSFNBQ092NCBubyBhdHRyaWJ1dGUgc2V0dGluZyBtZWFu cyB0aGUgYmluYXJ5IHN1cHBvcnRzICJhbnkiIGhhcmR3YXJlCi0gICAgIGNvbmZpZ3VyYXRp b24uICBJbiBHQ0MgYmluYXJpZXMsIHRoaXMgaXMgdHJ1ZSBmb3IgU1JBTSBFQ0MsIGJ1dCBu b3QKLSAgICAgWE5BQ0suICAqLwotICBjb25zdCBjaGFyICp4bmFjayA9IChmbGFnX3huYWNr ID8gIjp4bmFjaysiIDogIjp4bmFjay0iKTsKLSAgY29uc3QgY2hhciAqc3JhbV9lY2MgPSAo ZmxhZ19zcmFtX2VjYyA9PSBTUkFNX0VDQ19PTiA/ICI6c3JhbWVjYysiCi0JCQkgIDogZmxh Z19zcmFtX2VjYyA9PSBTUkFNX0VDQ19PRkYgPyAiOnNyYW1lY2MtIgotCQkJICA6ICIiKTsK LSNlbmRpZgotICBpZiAoIXVzZV94bmFja19hdHRyKQotICAgIHhuYWNrID0gIiI7Ci0gIGlm ICghdXNlX3NyYW1fYXR0cikKLSAgICBzcmFtX2VjYyA9ICIiOwotCiAgIGZwcmludGYoYXNt X291dF9maWxlLCAiXHQuYW1kZ2NuX3RhcmdldCBcImFtZGdjbi11bmtub3duLWFtZGhzYS0t JXMlcyVzXCJcbiIsCi0JICBjcHUsCi0jaWYgSEFWRV9HQ05fQVNNX1YzX1NZTlRBWAotCSAg eG5hY2ssIHNyYW1fZWNjCi0jZW5kaWYKLSNpZmRlZiBIQVZFX0dDTl9BU01fVjRfU1lOVEFY Ci0JICBzcmFtX2VjYywgeG5hY2sKLSNlbmRpZgotCSAgKTsKKwkgIGNwdSwgc3JhbV9lY2Ms IHhuYWNrKTsKIH0KIAogLyogSW1wbGVtZW50IEFTTV9ERUNMQVJFX0ZVTkNUSU9OX05BTUUg dmlhIGdjbi1oc2EuaC4KQEAgLTU3MjQsMjMgKzU2OTEsMTAgQEAgcHJpbnRfb3BlcmFuZF9h ZGRyZXNzIChGSUxFICpmaWxlLCBydHggbWVtKQogCSAgICAgIGlmICh2Z3ByX29mZnNldCA9 PSBOVUxMX1JUWCkKIAkJLyogSW4gdGhpcyBjYXNlLCB0aGUgdmVjdG9yIG9mZnNldCBpcyB6 ZXJvLCBzbyB3ZSB1c2UgdGhlIGZpcnN0CiAJCSAgIGxhbmUgb2YgdjEsIHdoaWNoIGlzIGlu aXRpYWxpemVkIHRvIHplcm8uICAqLwotCQl7Ci0JCSAgaWYgKEhBVkVfR0NOX0FTTV9HTE9C QUxfTE9BRF9GSVhFRCkKLQkJICAgIGZwcmludGYgKGZpbGUsICJ2MSIpOwotCQkgIGVsc2UK LQkJICAgIGZwcmludGYgKGZpbGUsICJ2WzE6Ml0iKTsKLQkJfQorCQlmcHJpbnRmIChmaWxl LCAidjEiKTsKIAkgICAgICBlbHNlIGlmIChSRUdfUCAodmdwcl9vZmZzZXQpCiAJCSAgICAg ICAmJiBWR1BSX1JFR05PX1AgKFJFR05PICh2Z3ByX29mZnNldCkpKQotCQl7Ci0JCSAgaWYg KEhBVkVfR0NOX0FTTV9HTE9CQUxfTE9BRF9GSVhFRCkKLQkJICAgIGZwcmludGYgKGZpbGUs ICJ2JWQiLAotCQkJICAgICBSRUdOTyAodmdwcl9vZmZzZXQpIC0gRklSU1RfVkdQUl9SRUcp OwotCQkgIGVsc2UKLQkJICAgIGZwcmludGYgKGZpbGUsICJ2WyVkOiVkXSIsCi0JCQkgICAg IFJFR05PICh2Z3ByX29mZnNldCkgLSBGSVJTVF9WR1BSX1JFRywKLQkJCSAgICAgUkVHTk8g KHZncHJfb2Zmc2V0KSAtIEZJUlNUX1ZHUFJfUkVHICsgMSk7Ci0JCX0KKwkJZnByaW50ZiAo ZmlsZSwgInYlZCIsIFJFR05PICh2Z3ByX29mZnNldCkgLSBGSVJTVF9WR1BSX1JFRyk7CiAJ ICAgICAgZWxzZQogCQlvdXRwdXRfb3BlcmFuZF9sb3NzYWdlICgiYmFkIEFERFJfU1BBQ0Vf R0xPQkFMIGFkZHJlc3MiKTsKIAkgICAgfQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9nY24v bWtvZmZsb2FkLmNjIGIvZ2NjL2NvbmZpZy9nY24vbWtvZmZsb2FkLmNjCmluZGV4IDk0YmE3 ZmZhNWFmLi5lOTgyNzdjNDEyYiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24vbWtvZmZs b2FkLmNjCisrKyBiL2djYy9jb25maWcvZ2NuL21rb2ZmbG9hZC5jYwpAQCAtNTYsOSArNTYs NiBAQAogI3VuZGVmICBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZYOTA4CiAjZGVmaW5lIEVG X0FNREdQVV9NQUNIX0FNREdDTl9HRlg5MDggMHgzMAogCi0jZGVmaW5lIEVGX0FNREdQVV9Y TkFDS19WMyAgICAweDEwMAotI2RlZmluZSBFRl9BTURHUFVfU1JBTV9FQ0NfVjMgMHgyMDAK LQogI2RlZmluZSBFRl9BTURHUFVfRkVBVFVSRV9YTkFDS19WNAkweDMwMCAgLyogTWFzay4g ICovCiAjZGVmaW5lIEVGX0FNREdQVV9GRUFUVVJFX1hOQUNLX1VOU1VQUE9SVEVEX1Y0CTB4 MDAwCiAjZGVmaW5lIEVGX0FNREdQVV9GRUFUVVJFX1hOQUNLX0FOWV9WNAkweDEwMApAQCAt NzEsMTkgKzY4LDYgQEAKICNkZWZpbmUgRUZfQU1ER1BVX0ZFQVRVUkVfU1JBTUVDQ19PRkZf VjQJMHg4MDAKICNkZWZpbmUgRUZfQU1ER1BVX0ZFQVRVUkVfU1JBTUVDQ19PTl9WNAkJMHhj MDAKIAotI2lmZGVmIEhBVkVfR0NOX0FTTV9WM19TWU5UQVgKLSNkZWZpbmUgU0VUX1hOQUNL X09OKFZBUikgVkFSIHw9IEVGX0FNREdQVV9YTkFDS19WMwotI2RlZmluZSBTRVRfWE5BQ0tf T0ZGKFZBUikgVkFSICY9IH5FRl9BTURHUFVfWE5BQ0tfVjMKLSNkZWZpbmUgVEVTVF9YTkFD SyhWQVIpIChWQVIgJiBFRl9BTURHUFVfWE5BQ0tfVjMpCi0KLSNkZWZpbmUgU0VUX1NSQU1f RUNDX09OKFZBUikgVkFSIHw9IEVGX0FNREdQVV9TUkFNX0VDQ19WMwotI2RlZmluZSBTRVRf U1JBTV9FQ0NfQU5ZKFZBUikgU0VUX1NSQU1fRUNDX09OIChWQVIpCi0jZGVmaW5lIFNFVF9T UkFNX0VDQ19PRkYoVkFSKSBWQVIgJj0gfkVGX0FNREdQVV9TUkFNX0VDQ19WMwotI2RlZmlu ZSBTRVRfU1JBTV9FQ0NfVU5TVVBQT1JURUQoVkFSKSBTRVRfU1JBTV9FQ0NfT0ZGIChWQVIp Ci0jZGVmaW5lIFRFU1RfU1JBTV9FQ0NfQU5ZKFZBUikgMCAvKiBOb3Qgc3VwcG9ydGVkLiAg Ki8KLSNkZWZpbmUgVEVTVF9TUkFNX0VDQ19PTihWQVIpIChWQVIgJiBFRl9BTURHUFVfU1JB TV9FQ0NfVjMpCi0jZW5kaWYKLSNpZmRlZiBIQVZFX0dDTl9BU01fVjRfU1lOVEFYCiAjZGVm aW5lIFNFVF9YTkFDS19PTihWQVIpIFZBUiA9ICgoVkFSICYgfkVGX0FNREdQVV9GRUFUVVJF X1hOQUNLX1Y0KSBcCiAJCQkJIHwgRUZfQU1ER1BVX0ZFQVRVUkVfWE5BQ0tfT05fVjQpCiAj ZGVmaW5lIFNFVF9YTkFDS19PRkYoVkFSKSBWQVIgPSAoKFZBUiAmIH5FRl9BTURHUFVfRkVB VFVSRV9YTkFDS19WNCkgXApAQCAtMTA0LDcgKzg4LDYgQEAKIAkJCQk9PSBFRl9BTURHUFVf RkVBVFVSRV9TUkFNRUNDX0FOWV9WNCkKICNkZWZpbmUgVEVTVF9TUkFNX0VDQ19PTihWQVIp ICgoVkFSICYgRUZfQU1ER1BVX0ZFQVRVUkVfU1JBTUVDQ19WNCkgXAogCQkJICAgICAgID09 IEVGX0FNREdQVV9GRUFUVVJFX1NSQU1FQ0NfT05fVjQpCi0jZW5kaWYKIAogI2lmbmRlZiBS X0FNREdQVV9OT05FCiAjZGVmaW5lIFJfQU1ER1BVX05PTkUJCTAKQEAgLTEzMCwxMiArMTEz LDcgQEAgc3RhdGljIHN0cnVjdCBvYnN0YWNrIGZpbGVzX3RvX2NsZWFudXA7CiBlbnVtIG9m ZmxvYWRfYWJpIG9mZmxvYWRfYWJpID0gT0ZGTE9BRF9BQklfVU5TRVQ7CiB1aW50MzJfdCBl bGZfYXJjaCA9IEVGX0FNREdQVV9NQUNIX0FNREdDTl9HRlg4MDM7ICAvLyBEZWZhdWx0IEdQ VSBhcmNoaXRlY3R1cmUuCiB1aW50MzJfdCBlbGZfZmxhZ3MgPQotI2lmZGVmIEhBVkVfR0NO X0FTTV9WM19TWU5UQVgKLSAgICAwOwotI2VuZGlmCi0jaWZkZWYgSEFWRV9HQ05fQVNNX1Y0 X1NZTlRBWAogICAgIChFRl9BTURHUFVfRkVBVFVSRV9YTkFDS19BTllfVjQgfCBFRl9BTURH UFVfRkVBVFVSRV9TUkFNRUNDX0FOWV9WNCk7Ci0jZW5kaWYKIAogLyogRGVsZXRlIHRlbXBm aWxlcy4gICovCiAKQEAgLTM2MiwxNCArMzQwLDkgQEAgY29weV9lYXJseV9kZWJ1Z19pbmZv IChjb25zdCBjaGFyICppbmZpbGUsIGNvbnN0IGNoYXIgKm91dGZpbGUpCiAKICAgLyogUGF0 Y2ggdGhlIGNvcnJlY3QgZWxmIGFyY2hpdGVjdHVyZSBmbGFnIGludG8gdGhlIGZpbGUuICAq LwogICBlaGRyLmVfaWRlbnRbN10gPSBFTEZPU0FCSV9BTURHUFVfSFNBOwotI2lmZGVmIEhB VkVfR0NOX0FTTV9WM19TWU5UQVgKLSAgZWhkci5lX2lkZW50WzhdID0gRUxGQUJJVkVSU0lP Tl9BTURHUFVfSFNBX1YzOwotI2VuZGlmCi0jaWZkZWYgSEFWRV9HQ05fQVNNX1Y0X1NZTlRB WAogICBlaGRyLmVfaWRlbnRbOF0gPSAoZWxmX2FyY2ggPT0gRUZfQU1ER1BVX01BQ0hfQU1E R0NOX0dGWDgwMwogCQkgICAgID8gRUxGQUJJVkVSU0lPTl9BTURHUFVfSFNBX1YzCiAJCSAg ICAgOiBFTEZBQklWRVJTSU9OX0FNREdQVV9IU0FfVjQpOwotI2VuZGlmCiAgIGVoZHIuZV90 eXBlID0gRVRfUkVMOwogICBlaGRyLmVfbWFjaGluZSA9IEVNX0FNREdQVTsKICAgZWhkci5l X2ZsYWdzID0gZWxmX2FyY2ggfCBlbGZfZmxhZ3NfYWN0dWFsOwpAQCAtODg0LDcgKzg1Nyw2 IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgYm9vbCBmb3BlbmFjYyA9IGZh bHNlOwogICBib29sIGZQSUMgPSBmYWxzZTsKICAgYm9vbCBmcGljID0gZmFsc2U7Ci0gIGJv b2wgc3JhbV9zZWVuID0gZmFsc2U7CiAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgaSsr KQogICAgIHsKICNkZWZpbmUgU1RSICItZm9mZmxvYWQtYWJpPSIKQEAgLTkxMiwyMCArODg0 LDExIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgIGVsc2UgaWYgKHN0 cmNtcCAoYXJndltpXSwgIi1tbm8teG5hY2siKSA9PSAwKQogCVNFVF9YTkFDS19PRkYgKGVs Zl9mbGFncyk7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbXNyYW0tZWNj PW9uIikgPT0gMCkKLQl7Ci0JICBTRVRfU1JBTV9FQ0NfT04gKGVsZl9mbGFncyk7Ci0JICBz cmFtX3NlZW4gPSB0cnVlOwotCX0KKwlTRVRfU1JBTV9FQ0NfT04gKGVsZl9mbGFncyk7CiAg ICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbXNyYW0tZWNjPWFueSIpID09IDAp Ci0JewotCSAgU0VUX1NSQU1fRUNDX0FOWSAoZWxmX2ZsYWdzKTsKLQkgIHNyYW1fc2VlbiA9 IHRydWU7Ci0JfQorCVNFVF9TUkFNX0VDQ19BTlkgKGVsZl9mbGFncyk7CiAgICAgICBlbHNl IGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbXNyYW0tZWNjPW9mZiIpID09IDApCi0JewotCSAg U0VUX1NSQU1fRUNDX09GRiAoZWxmX2ZsYWdzKTsKLQkgIHNyYW1fc2VlbiA9IHRydWU7Ci0J fQorCVNFVF9TUkFNX0VDQ19PRkYgKGVsZl9mbGFncyk7CiAgICAgICBlbHNlIGlmIChzdHJj bXAgKGFyZ3ZbaV0sICItc2F2ZS10ZW1wcyIpID09IDApCiAJc2F2ZV90ZW1wcyA9IHRydWU7 CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItdiIpID09IDApCkBAIC05NDYs MjggKzkwOSw2IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgaWYgKCEoZm9w ZW5hY2MgXiBmb3Blbm1wKSkKICAgICBmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24sICJl aXRoZXIgLWZvcGVuYWNjIG9yIC1mb3Blbm1wIG11c3QgYmUgc2V0Iik7CiAKLSAgaWYgKCFz cmFtX3NlZW4pCi0gICAgewotI2lmZGVmIEhBVkVfR0NOX0FTTV9WM19TWU5UQVgKLSAgICAg IC8qIEZvciBIU0FDT3YzLCB0aGUgU1JBTS1FQ0MgZmVhdHVyZSBkZWZhdWx0cyB0byAib24i IG9uIEdQVXMgd2hlcmUgdGhlCi0JIGZlYXR1cmUgaXMgYXZhaWxhYmxlLgotCSAoSFNBQ092 NCBoYXMgZWxmX2ZsYWdzIGluaXRpYWxzZWQgdG8gImFueSIgaW4gYWxsIGNhc2VzLikgICov Ci0gICAgICBzd2l0Y2ggKGVsZl9hcmNoKQotCXsKLQljYXNlIEVGX0FNREdQVV9NQUNIX0FN REdDTl9HRlg4MDM6Ci0JY2FzZSBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZYOTAwOgotCWNh c2UgRUZfQU1ER1BVX01BQ0hfQU1ER0NOX0dGWDkwNjoKLSNpZm5kZWYgSEFWRV9HQ05fU1JB TV9FQ0NfR0ZYOTA4Ci0JY2FzZSBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZYOTA4OgotI2Vu ZGlmCi0JICBicmVhazsKLQlkZWZhdWx0OgotCSAgU0VUX1NSQU1fRUNDX09OIChlbGZfZmxh Z3MpOwotCSAgYnJlYWs7Ci0JfQotI2VuZGlmCi0gICAgfQotCiAgIGNvbnN0IGNoYXIgKmFi aTsKICAgc3dpdGNoIChvZmZsb2FkX2FiaSkKICAgICB7CmRpZmYgLS1naXQgYS9nY2MvY29u ZmlndXJlIGIvZ2NjL2NvbmZpZ3VyZQppbmRleCAzN2UwZGQ1ZTQxNC4uYmEzYTk5OGNhZTEg MTAwNzU1Ci0tLSBhL2djYy9jb25maWd1cmUKKysrIGIvZ2NjL2NvbmZpZ3VyZQpAQCAtMjkw MTUsNDIxICsyOTAxNSwyOCBAQCBjYXNlICIkdGFyZ2V0IiBpbgogICAgIDs7CiBlc2FjCiAK LSMgVGhpcyB0ZXN0cyBpZiB0aGUgYXNzZW1ibGVyIHN1cHBvcnRzIHR3byByZWdpc3RlcnMg Zm9yIGdsb2JhbF9sb2FkIGZ1bmN0aW9ucwotIyAobGlrZSBpbiBMTFZNIHZlcnNpb25zIDwx Mikgb3Igb25lIHJlZ2lzdGVyIChsaWtlIGluIExMVk0gMTIpLgorIyBBTUQgR0NOIG5lZWRz IHRoZSBMTFZNIGFzc2VtYmxlciBhbmQgbGlua2VyLgorIyBUZXN0IHRoYXQgTExWTSBpcyBh dCBsZWFzdCAxMy4wLjEuCiBjYXNlICIkdGFyZ2V0IiBpbgogICBhbWRnY24tKiB8IGdjbi0q KQotICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgYXNzZW1ibGVyIGZpeCBmb3IgZ2xvYmFsX2xvYWQgZnVuY3Rpb25zIiA+JjUKLSRhc19l Y2hvX24gImNoZWNraW5nIGFzc2VtYmxlciBmaXggZm9yIGdsb2JhbF9sb2FkIGZ1bmN0aW9u cy4uLiAiID4mNjsgfQotICAgIGdjY19jdl9hc19nY25fZ2xvYmFsX2xvYWRfZml4ZWQ9eWVz CisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBsbHZtIGFzc2VtYmxlciB2ZXJzaW9uIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGxs dm0gYXNzZW1ibGVyIHZlcnNpb24uLi4gIiA+JjY7IH0KKyAgICBnY2NfY3ZfYXNfdmVyc2lv bj0idW5rbm93biIKICAgICBpZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KLSAgICAg IGNhdCA+IGNvbmZ0ZXN0LnMgPDxFT0YKLQlnbG9iYWxfc3RvcmVfZHdvcmR4MiAgICB2WzE6 Ml0sIHZbNDo1XSwgc1sxNDoxNV0KLUVPRgotICAgICAgaWYgJGdjY19jdl9hcyAtdHJpcGxl PWFtZGdjbi0tYW1kaHNhIC1maWxldHlwZT1vYmogLW1jcHU9Z2Z4OTAwIC1vIGNvbmZ0ZXN0 Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICAgIGdjY19jdl9h c19nY25fZ2xvYmFsX2xvYWRfZml4ZWQ9bm8KLSAgICAgIGZpCi0gICAgICBybSAtZiBjb25m dGVzdC5zIGNvbmZ0ZXN0Lm8gY29uZnRlc3QKLSAgICBmaQotICAgIGdsb2JhbF9sb2FkX2Zp eGVkPWBpZiB0ZXN0IHgkZ2NjX2N2X2FzX2djbl9nbG9iYWxfbG9hZF9maXhlZCA9IHh5ZXM7 IHRoZW4gZWNobyAxOyBlbHNlIGVjaG8gMDsgZmlgCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKLSNkZWZpbmUgSEFWRV9HQ05fQVNNX0dMT0JBTF9MT0FEX0ZJWEVEICRnbG9iYWxf bG9hZF9maXhlZAotX0FDRU9GCi0KLSAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGdjY19jdl9hc19nY25fZ2xvYmFsX2xvYWRfZml4ZWQi ID4mNQotJGFzX2VjaG8gIiRnY2NfY3ZfYXNfZ2NuX2dsb2JhbF9sb2FkX2ZpeGVkIiA+JjY7 IH0KLSAgICA7OwotZXNhYwotCi1jYXNlICIkdGFyZ2V0IiBpbgotICBhbWRnY24tKiB8IGdj bi0qKQotICAgICMgVGVzdCB0aGUgTExWTSBhc3NlbWJsZXIgc3ludGF4IGRpYWxlY3Q7IHRo ZXkgaGF2ZSBtYWRlIGEgbnVtYmVyIG9mCi0gICAgIyBjaGFuZ2VzIGJldHdlZW4gTExWTSAx MiAmIDEzIHdpdGhvdXQgYW55IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0gICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIg Zm9yIGFzc2VtYmxlciBhbWRnY25fdGFyZ2V0IHYyLzMgc3ludGF4IiA+JjUKLSRhc19lY2hv X24gImNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVyIGFtZGdjbl90YXJnZXQgdjIv MyBzeW50YXguLi4gIiA+JjY7IH0KLWlmICR7Z2NjX2N2X2FzX2djbl9hc21fdjNfc3ludGF4 Kzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLWVsc2UK LSAgZ2NjX2N2X2FzX2djbl9hc21fdjNfc3ludGF4PW5vCi0gIGlmIHRlc3QgeCRnY2NfY3Zf YXMgIT0geDsgdGhlbgotICAgICRhc19lY2hvICcuYW1kZ2NuX3RhcmdldCAiYW1kZ2NuLXVu a25vd24tYW1kaHNhLS1nZng5MDYreG5hY2siJyA+IGNvbmZ0ZXN0LnMKLSAgICBpZiB7IGFj X3RyeT0nJGdjY19jdl9hcyAkZ2NjX2N2X2FzX2ZsYWdzIC10cmlwbGU9YW1kZ2NuLS1hbWRo c2EgLW1jcHU9Z2Z4OTA2IC1tYXR0cj0reG5hY2sgLW8gY29uZnRlc3QubyBjb25mdGVzdC5z ID4mNScKLSAgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVO T306IFwiJGFjX3RyeVwiIjsgfSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19z dGF0dXM9JD8KLSAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH0KLSAgICB0 aGVuCi0JZ2NjX2N2X2FzX2djbl9hc21fdjNfc3ludGF4PXllcwotICAgIGVsc2UKLSAgICAg IGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzIiA+JjUKLSAgICAgIGNhdCBj b25mdGVzdC5zID4mNQotICAgIGZpCi0gICAgcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5z Ci0gIGZpCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRnY2NfY3ZfYXNfZ2NuX2FzbV92M19zeW50YXgiID4mNQotJGFzX2VjaG8gIiRn Y2NfY3ZfYXNfZ2NuX2FzbV92M19zeW50YXgiID4mNjsgfQotaWYgdGVzdCAkZ2NjX2N2X2Fz X2djbl9hc21fdjNfc3ludGF4ID0geWVzOyB0aGVuCi0KLSRhc19lY2hvICIjZGVmaW5lIEhB VkVfR0NOX0FTTV9WM19TWU5UQVggMSIgPj5jb25mZGVmcy5oCi0KLWZpCi0KLSAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxl ciBmb3IgYXNzZW1ibGVyIGFtZGdjbl90YXJnZXQgdjQgc3ludGF4IiA+JjUKLSRhc19lY2hv X24gImNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVyIGFtZGdjbl90YXJnZXQgdjQg c3ludGF4Li4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19nY25fYXNtX3Y0X3N5bnRheCs6 fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0g IGdjY19jdl9hc19nY25fYXNtX3Y0X3N5bnRheD1ubwotICBpZiB0ZXN0IHgkZ2NjX2N2X2Fz ICE9IHg7IHRoZW4KLSAgICAkYXNfZWNobyAnLmFtZGdjbl90YXJnZXQgImFtZGdjbi11bmtu b3duLWFtZGhzYS0tZ2Z4OTA4OnhuYWNrKyInID4gY29uZnRlc3QucwotICAgIGlmIHsgYWNf dHJ5PSckZ2NjX2N2X2FzICRnY2NfY3ZfYXNfZmxhZ3MgLXRyaXBsZT1hbWRnY24tLWFtZGhz YSAtbWNwdT1nZng5MDggLW1hdHRyPSt4bmFjayAtbyBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMg PiY1JwotICB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5P fTogXCIkYWNfdHJ5XCIiOyB9ID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0 YXR1cz0kPwotICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgfQotICAgIHRo ZW4KLQlnY2NfY3ZfYXNfZ2NuX2FzbV92NF9zeW50YXg9eWVzCi0gICAgZWxzZQotICAgICAg ZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXMiID4mNQotICAgICAgY2F0IGNv bmZ0ZXN0LnMgPiY1Ci0gICAgZmkKLSAgICBybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMK LSAgZmkKLWZpCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGdjY19jdl9hc19nY25fYXNtX3Y0X3N5bnRheCIgPiY1Ci0kYXNfZWNobyAiJGdj Y19jdl9hc19nY25fYXNtX3Y0X3N5bnRheCIgPiY2OyB9Ci1pZiB0ZXN0ICRnY2NfY3ZfYXNf Z2NuX2FzbV92NF9zeW50YXggPSB5ZXM7IHRoZW4KLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFW RV9HQ05fQVNNX1Y0X1NZTlRBWCAxIiA+PmNvbmZkZWZzLmgKLQotZmkKLQotCi0gICAgIyBT b21lIGF0dHJpYnV0ZSBuYW1lcyBjaGFuZ2VkIGluIHRoZSBtb3ZlIHRvIHY0IC4uLgotICAg IGlmIHRlc3QgJGdjY19jdl9hc19nY25fYXNtX3YzX3N5bnRheCA9IHllczsgdGhlbgotCXNy YW1vcHQ9IitzcmFtLWVjYyIKLQlzcmFtYXR0cj0iK3NyYW0tZWNjIgotCXhuYWNrYXR0cj0i K3huYWNrIgotICAgIGVsaWYgdGVzdCAkZ2NjX2N2X2FzX2djbl9hc21fdjRfc3ludGF4ID0g eWVzOyB0aGVuCi0Jc3JhbW9wdD0iK3NyYW1lY2MiCi0Jc3JhbWF0dHI9IjpzcmFtZWNjKyIK LQl4bmFja2F0dHI9Ijp4bmFjaysiCi0gICAgZWxzZQotCWFzX2ZuX2Vycm9yICQ/ICJVbnJl Y29nbmlzZWQgYXNzZW1ibGVyIHZlcnNpb24iICIkTElORU5PIiA1Ci0gICAgZmkKLQotICAg ICMgVGVzdCB3aGV0aGVyIHRoZSBMTFZNIGFzc2VtYmxlciBhY2NlcHRzIC1tYXR0cj0reG5h Y2sgd2l0aG91dCBhbnkKLSAgICAjIGRpYWdub3N0aWMuIExMVk0gOSAmIDEwIGFjY2VwdCB0 aGUgb3B0aW9uIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2Ugb3Igbm90LAotICAgICMgTExWTSAx MisgdGhyb3dzIGEgd2FybmluZyBmb3IgR1BVcyB3aXRob3V0IHN1cHBvcnQuCi0gICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJs ZXIgZm9yIGFzc2VtYmxlciBhY2NlcHRzIC1tYXR0cj0reG5hY2sgZm9yIGZpamkiID4mNQot JGFzX2VjaG9fbiAiY2hlY2tpbmcgYXNzZW1ibGVyIGZvciBhc3NlbWJsZXIgYWNjZXB0cyAt bWF0dHI9K3huYWNrIGZvciBmaWppLi4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19nY25f eG5hY2tfZWNjX2ZpamkrOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotZWxzZQotICBnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19maWppPW5vCi0gIGlm IHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgotICAgICRhc19lY2hvICcnID4gY29uZnRl c3QucwotICAgIGlmIHsgYWNfdHJ5PSckZ2NjX2N2X2FzICRnY2NfY3ZfYXNfZmxhZ3MgLXRy aXBsZT1hbWRnY24tLWFtZGhzYSAtbWNwdT1maWppIC1tYXR0cj0reG5hY2sgMj5jb25mdGVz dC5lcnIgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4mNScKLSAgeyB7IGV2YWwgZWNobyAi XCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX3RyeVwiIjsgfSA+JjUK LSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIHRl c3QgJGFjX3N0YXR1cyA9IDA7IH07IH0KLSAgICB0aGVuCi0JZ3JlcCAiLiIgY29uZnRlc3Qu ZXJyID4mNSBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZmlqaT15ZXMK LSAgICBlbHNlCi0gICAgICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhcyIg PiY1Ci0gICAgICBjYXQgY29uZnRlc3QucyA+JjUKLSAgICBmaQotICAgIHJtIC1mIGNvbmZ0 ZXN0Lm8gY29uZnRlc3QucwotICBmaQotZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZmlqaSIg PiY1Ci0kYXNfZWNobyAiJGdjY19jdl9hc19nY25feG5hY2tfZWNjX2ZpamkiID4mNjsgfQot aWYgdGVzdCAkZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZmlqaSA9IHllczsgdGhlbgotCi0k YXNfZWNobyAiI2RlZmluZSBIQVZFX0dDTl9YTkFDS19GSUpJIDEiID4+Y29uZmRlZnMuaAot Ci1maQotCi0gICAgcm0gLWYgY29uZnRlc3QuZXJyCi0gICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIgZm9yIGFzc2VtYmxl ciBhY2NlcHRzIC1tYXR0cj0reG5hY2sgZm9yIGdmeDkwMCIgPiY1Ci0kYXNfZWNob19uICJj aGVja2luZyBhc3NlbWJsZXIgZm9yIGFzc2VtYmxlciBhY2NlcHRzIC1tYXR0cj0reG5hY2sg Zm9yIGdmeDkwMC4uLiAiID4mNjsgfQotaWYgJHtnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19n Zng5MDArOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot ZWxzZQotICBnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19nZng5MDA9bm8KLSAgaWYgdGVzdCB4 JGdjY19jdl9hcyAhPSB4OyB0aGVuCi0gICAgJGFzX2VjaG8gJycgPiBjb25mdGVzdC5zCi0g ICAgaWYgeyBhY190cnk9JyRnY2NfY3ZfYXMgJGdjY19jdl9hc19mbGFncyAtdHJpcGxlPWFt ZGdjbi0tYW1kaHNhIC1tY3B1PWdmeDkwMCAtbWF0dHI9K3huYWNrIDI+Y29uZnRlc3QuZXJy IC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+JjUnCi0gIHsgeyBldmFsIGVjaG8gIlwiXCRh c19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY190cnlcIiI7IH0gPiY1Ci0gIChl dmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICB0ZXN0ICRh Y19zdGF0dXMgPSAwOyB9OyB9Ci0gICAgdGhlbgotCWdyZXAgIi4iIGNvbmZ0ZXN0LmVyciA+ JjUgXAotICAgICAgIHx8IGdjY19jdl9hc19nY25feG5hY2tfZWNjX2dmeDkwMD15ZXMKLSAg ICBlbHNlCi0gICAgICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhcyIgPiY1 Ci0gICAgICBjYXQgY29uZnRlc3QucyA+JjUKLSAgICBmaQotICAgIHJtIC1mIGNvbmZ0ZXN0 Lm8gY29uZnRlc3QucwotICBmaQotZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4OTAwIiA+ JjUKLSRhc19lY2hvICIkZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4OTAwIiA+JjY7IH0K LWlmIHRlc3QgJGdjY19jdl9hc19nY25feG5hY2tfZWNjX2dmeDkwMCA9IHllczsgdGhlbgot Ci0kYXNfZWNobyAiI2RlZmluZSBIQVZFX0dDTl9YTkFDS19HRlg5MDAgMSIgPj5jb25mZGVm cy5oCi0KLWZpCi0KLSAgICBybSAtZiBjb25mdGVzdC5lcnIKLSAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNz ZW1ibGVyIGFjY2VwdHMgLW1hdHRyPSt4bmFjayBmb3IgZ2Z4OTA2IiA+JjUKLSRhc19lY2hv X24gImNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVyIGFjY2VwdHMgLW1hdHRyPSt4 bmFjayBmb3IgZ2Z4OTA2Li4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19nY25feG5hY2tf ZWNjX2dmeDkwNis6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci1lbHNlCi0gIGdjY19jdl9hc19nY25feG5hY2tfZWNjX2dmeDkwNj1ubwotICBpZiB0 ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KLSAgICAkYXNfZWNobyAnJyA+IGNvbmZ0ZXN0 LnMKLSAgICBpZiB7IGFjX3RyeT0nJGdjY19jdl9hcyAkZ2NjX2N2X2FzX2ZsYWdzIC10cmlw bGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9Z2Z4OTA2IC1tYXR0cj0reG5hY2sgMj5jb25mdGVz dC5lcnIgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4mNScKLSAgeyB7IGV2YWwgZWNobyAi XCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX3RyeVwiIjsgfSA+JjUK LSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIHRl c3QgJGFjX3N0YXR1cyA9IDA7IH07IH0KLSAgICB0aGVuCi0JZ3JlcCAiLiIgY29uZnRlc3Qu ZXJyID4mNSBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4OTA2PXll cwotICAgIGVsc2UKLSAgICAgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz IiA+JjUKLSAgICAgIGNhdCBjb25mdGVzdC5zID4mNQotICAgIGZpCi0gICAgcm0gLWYgY29u ZnRlc3QubyBjb25mdGVzdC5zCi0gIGZpCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19nZng5 MDYiID4mNQotJGFzX2VjaG8gIiRnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19nZng5MDYiID4m NjsgfQotaWYgdGVzdCAkZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4OTA2ID0geWVzOyB0 aGVuCi0KLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfR0NOX1hOQUNLX0dGWDkwNiAxIiA+PmNv bmZkZWZzLmgKLQotZmkKLQotICAgIHJtIC1mIGNvbmZ0ZXN0LmVycgotICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgYXNzZW1ibGVyIGZv ciBhc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9K3huYWNrIGZvciBnZng5MDgiID4mNQotJGFz X2VjaG9fbiAiY2hlY2tpbmcgYXNzZW1ibGVyIGZvciBhc3NlbWJsZXIgYWNjZXB0cyAtbWF0 dHI9K3huYWNrIGZvciBnZng5MDguLi4gIiA+JjY7IH0KLWlmICR7Z2NjX2N2X2FzX2djbl94 bmFja19lY2NfZ2Z4OTA4Kzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLWVsc2UKLSAgZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4OTA4PW5vCi0g IGlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgotICAgICRhc19lY2hvICcnID4gY29u ZnRlc3QucwotICAgIGlmIHsgYWNfdHJ5PSckZ2NjX2N2X2FzICRnY2NfY3ZfYXNfZmxhZ3Mg LXRyaXBsZT1hbWRnY24tLWFtZGhzYSAtbWNwdT1nZng5MDggLW1hdHRyPSt4bmFjayAyPmNv bmZ0ZXN0LmVyciAtbyBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMgPiY1JwotICB7IHsgZXZhbCBl Y2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfdHJ5XCIiOyB9 ID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgfQotICAgIHRoZW4KLQlncmVwICIuIiBjb25m dGVzdC5lcnIgPiY1IFwKLSAgICAgICB8fCBnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19nZng5 MDg9eWVzCi0gICAgZWxzZQotICAgICAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXMiID4mNQotICAgICAgY2F0IGNvbmZ0ZXN0LnMgPiY1Ci0gICAgZmkKLSAgICBybSAt ZiBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMKLSAgZmkKLWZpCi17ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGdjY19jdl9hc19nY25feG5hY2tfZWNj X2dmeDkwOCIgPiY1Ci0kYXNfZWNobyAiJGdjY19jdl9hc19nY25feG5hY2tfZWNjX2dmeDkw OCIgPiY2OyB9Ci1pZiB0ZXN0ICRnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19nZng5MDggPSB5 ZXM7IHRoZW4KLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9HQ05fWE5BQ0tfR0ZYOTA4IDEi ID4+Y29uZmRlZnMuaAotCi1maQotCi0gICAgcm0gLWYgY29uZnRlc3QuZXJyCi0KLSAgICAj IFRlc3Qgd2hldGhlciB0aGUgTExWTSBhc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9K3NyYW1l Y2Mgd2l0aG91dCBhbnkKLSAgICAjIGRpYWdub3N0aWMuIExMVk0gOSAmIDEwIGFjY2VwdCB0 aGUgb3B0aW9uIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2Ugb3Igbm90LAotICAgICMgKHNvbWU/ KSBMTFZNIDEyIHJlamVjdHMgaXQgZm9yIGFsbCBHUFVzLCBhbmQgTExWTTEzIHRocm93cyBh IHdhcm5pbmcKLSAgICAjIGZvciBHUFVzIHdpdGhvdXQgc3VwcG9ydC4KLSAgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciBm b3IgYXNzZW1ibGVyIGFjY2VwdHMgLW1hdHRyPSRzcmFtb3B0IGZvciBmaWppIiA+JjUKLSRh c19lY2hvX24gImNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVyIGFjY2VwdHMgLW1h dHRyPSRzcmFtb3B0IGZvciBmaWppLi4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19nY25f c3JhbV9lY2NfZmlqaSs6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci1lbHNlCi0gIGdjY19jdl9hc19nY25fc3JhbV9lY2NfZmlqaT1ubwotICBpZiB0 ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KLSAgICAkYXNfZWNobyAnJyA+IGNvbmZ0ZXN0 LnMKLSAgICBpZiB7IGFjX3RyeT0nJGdjY19jdl9hcyAkZ2NjX2N2X2FzX2ZsYWdzIC10cmlw bGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9ZmlqaSAtbWF0dHI9JHNyYW1vcHQgMj5jb25mdGVz dC5lcnIgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4mNScKLSAgeyB7IGV2YWwgZWNobyAi XCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX3RyeVwiIjsgfSA+JjUK LSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIHRl c3QgJGFjX3N0YXR1cyA9IDA7IH07IH0KLSAgICB0aGVuCi0JZ3JlcCAiLiIgY29uZnRlc3Qu ZXJyID4mNSBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19maWppPXllcwot ICAgIGVsc2UKLSAgICAgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzIiA+ JjUKLSAgICAgIGNhdCBjb25mdGVzdC5zID4mNQotICAgIGZpCi0gICAgcm0gLWYgY29uZnRl c3QubyBjb25mdGVzdC5zCi0gIGZpCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2ZpamkiID4m NQotJGFzX2VjaG8gIiRnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2ZpamkiID4mNjsgfQotaWYg dGVzdCAkZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19maWppID0geWVzOyB0aGVuCi0KLSRhc19l Y2hvICIjZGVmaW5lIEhBVkVfR0NOX1NSQU1fRUNDX0ZJSkkgMSIgPj5jb25mZGVmcy5oCi0K LWZpCi0KLSAgICBybSAtZiBjb25mdGVzdC5lcnIKLSAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVy IGFjY2VwdHMgLW1hdHRyPSRzcmFtb3B0IGZvciBnZng5MDAiID4mNQotJGFzX2VjaG9fbiAi Y2hlY2tpbmcgYXNzZW1ibGVyIGZvciBhc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9JHNyYW1v cHQgZm9yIGdmeDkwMC4uLiAiID4mNjsgfQotaWYgJHtnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNj X2dmeDkwMCs6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci1lbHNlCi0gIGdjY19jdl9hc19nY25fc3JhbV9lY2NfZ2Z4OTAwPW5vCi0gIGlmIHRlc3Qg eCRnY2NfY3ZfYXMgIT0geDsgdGhlbgotICAgICRhc19lY2hvICcnID4gY29uZnRlc3Qucwot ICAgIGlmIHsgYWNfdHJ5PSckZ2NjX2N2X2FzICRnY2NfY3ZfYXNfZmxhZ3MgLXRyaXBsZT1h bWRnY24tLWFtZGhzYSAtbWNwdT1nZng5MDAgLW1hdHRyPSRzcmFtb3B0IDI+Y29uZnRlc3Qu ZXJyIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+JjUnCi0gIHsgeyBldmFsIGVjaG8gIlwi XCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY190cnlcIiI7IH0gPiY1Ci0g IChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICB0ZXN0 ICRhY19zdGF0dXMgPSAwOyB9OyB9Ci0gICAgdGhlbgotCWdyZXAgIi4iIGNvbmZ0ZXN0LmVy ciA+JjUgXAotICAgICAgIHx8IGdjY19jdl9hc19nY25fc3JhbV9lY2NfZ2Z4OTAwPXllcwot ICAgIGVsc2UKLSAgICAgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzIiA+ JjUKLSAgICAgIGNhdCBjb25mdGVzdC5zID4mNQotICAgIGZpCi0gICAgcm0gLWYgY29uZnRl c3QubyBjb25mdGVzdC5zCi0gIGZpCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2dmeDkwMCIg PiY1Ci0kYXNfZWNobyAiJGdjY19jdl9hc19nY25fc3JhbV9lY2NfZ2Z4OTAwIiA+JjY7IH0K LWlmIHRlc3QgJGdjY19jdl9hc19nY25fc3JhbV9lY2NfZ2Z4OTAwID0geWVzOyB0aGVuCi0K LSRhc19lY2hvICIjZGVmaW5lIEhBVkVfR0NOX1NSQU1fRUNDX0dGWDkwMCAxIiA+PmNvbmZk ZWZzLmgKLQotZmkKLQotICAgIHJtIC1mIGNvbmZ0ZXN0LmVycgotICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgYXNzZW1ibGVyIGZvciBh c3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9JHNyYW1vcHQgZm9yIGdmeDkwNiIgPiY1Ci0kYXNf ZWNob19uICJjaGVja2luZyBhc3NlbWJsZXIgZm9yIGFzc2VtYmxlciBhY2NlcHRzIC1tYXR0 cj0kc3JhbW9wdCBmb3IgZ2Z4OTA2Li4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19nY25f c3JhbV9lY2NfZ2Z4OTA2Kzp9IGZhbHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLWVsc2UKLSAgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5MDY9bm8KLSAg aWYgdGVzdCB4JGdjY19jdl9hcyAhPSB4OyB0aGVuCi0gICAgJGFzX2VjaG8gJycgPiBjb25m dGVzdC5zCi0gICAgaWYgeyBhY190cnk9JyRnY2NfY3ZfYXMgJGdjY19jdl9hc19mbGFncyAt dHJpcGxlPWFtZGdjbi0tYW1kaHNhIC1tY3B1PWdmeDkwNiAtbWF0dHI9JHNyYW1vcHQgMj5j b25mdGVzdC5lcnIgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4mNScKLSAgeyB7IGV2YWwg ZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX3RyeVwiIjsg fSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0gIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH0KLSAgICB0aGVuCi0JZ3JlcCAiLiIgY29u ZnRlc3QuZXJyID4mNSBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5 MDY9eWVzCi0gICAgZWxzZQotICAgICAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXMiID4mNQotICAgICAgY2F0IGNvbmZ0ZXN0LnMgPiY1Ci0gICAgZmkKLSAgICBybSAt ZiBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMKLSAgZmkKLWZpCi17ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGdjY19jdl9hc19nY25fc3JhbV9lY2Nf Z2Z4OTA2IiA+JjUKLSRhc19lY2hvICIkZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5MDYi ID4mNjsgfQotaWYgdGVzdCAkZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5MDYgPSB5ZXM7 IHRoZW4KLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9HQ05fU1JBTV9FQ0NfR0ZYOTA2IDEi ID4+Y29uZmRlZnMuaAotCi1maQotCi0gICAgcm0gLWYgY29uZnRlc3QuZXJyCi0gICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJs ZXIgZm9yIGFzc2VtYmxlciBhY2NlcHRzIC1tYXR0cj0kc3JhbW9wdCBmb3IgZ2Z4OTA4IiA+ JjUKLSRhc19lY2hvX24gImNoZWNraW5nIGFzc2VtYmxlciBmb3IgYXNzZW1ibGVyIGFjY2Vw dHMgLW1hdHRyPSRzcmFtb3B0IGZvciBnZng5MDguLi4gIiA+JjY7IH0KLWlmICR7Z2NjX2N2 X2FzX2djbl9zcmFtX2VjY19nZng5MDgrOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotZWxzZQotICBnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2dmeDkw OD1ubwotICBpZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KLSAgICAkYXNfZWNobyAn JyA+IGNvbmZ0ZXN0LnMKLSAgICBpZiB7IGFjX3RyeT0nJGdjY19jdl9hcyAkZ2NjX2N2X2Fz X2ZsYWdzIC10cmlwbGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9Z2Z4OTA4IC1tYXR0cj0kc3Jh bW9wdCAyPmNvbmZ0ZXN0LmVyciAtbyBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMgPiY1JwotICB7 IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNf dHJ5XCIiOyB9ID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwot ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgfQotICAgIHRoZW4KLQlncmVw ICIuIiBjb25mdGVzdC5lcnIgPiY1IFwKLSAgICAgICB8fCBnY2NfY3ZfYXNfZ2NuX3NyYW1f ZWNjX2dmeDkwOD15ZXMKLSAgICBlbHNlCi0gICAgICBlY2hvICJjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhcyIgPiY1Ci0gICAgICBjYXQgY29uZnRlc3QucyA+JjUKKyAgICAgIGdj Y19jdl9hc192ZXJzaW9uPWAkZ2NjX2N2X2FzIC0tdmVyc2lvbiAyPiYxIHwgc2VkIC1uZSAn L3ZlcnNpb24vcy8uKiBcKFswLTldXCkvXDEvcCcgfHwgZWNobyBlcnJvcmAKKyAgICAgIGNh c2UgIiRnY2NfY3ZfYXNfdmVyc2lvbiIgaW4KKwkxMy4wLlsxLTldKikgOzsgICAgICAgICAg IyAxMy4wLjErCisJMTMuWzEtOV0qKSA7OyAgICAgICAgICAgICMgMTMuMSsKKwkxWzQtOV0q KSA7OyAgICAgICAgICAgICAgIyAxNC4uMTkKKwlbMi05XVswLTldKikgOzsgICAgICAgICMg MjAuLjk5CisJWzEtOV1bMC05XVswLTldKikgOzsgIyAxMDArCisJZXJyb3IpIGFzX2ZuX2Vy cm9yICQ/ICJjYW5ub3QgZGV0ZXJtaW5lIExMVk0gdmVyc2lvbiIgIiRMSU5FTk8iIDUgOzsK KwkqKSBhc19mbl9lcnJvciAkPyAiTExWTSAxMy4wLjEgb3IgbGF0ZXIgaXMgcmVxdWlyZWQg KGZvdW5kIExMVk0gJGdjY19jdl9hc192ZXJzaW9uKSIgIiRMSU5FTk8iIDUgOzsKKyAgICAg IGVzYWMKICAgICBmaQotICAgIHJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucwotICBmaQot ZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk Z2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5MDgiID4mNQotJGFzX2VjaG8gIiRnY2NfY3Zf YXNfZ2NuX3NyYW1fZWNjX2dmeDkwOCIgPiY2OyB9Ci1pZiB0ZXN0ICRnY2NfY3ZfYXNfZ2Nu X3NyYW1fZWNjX2dmeDkwOCA9IHllczsgdGhlbgotCi0kYXNfZWNobyAiI2RlZmluZSBIQVZF X0dDTl9TUkFNX0VDQ19HRlg5MDggMSIgPj5jb25mZGVmcy5oCi0KLWZpCi0KLSAgICBybSAt ZiBjb25mdGVzdC5lcnIKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGdjY19jdl9hc192ZXJzaW9uLCBvayIgPiY1CiskYXNfZWNobyAi JGdjY19jdl9hc192ZXJzaW9uLCBvayIgPiY2OyB9CiAgICAgOzsKLSAgYXJtKikKLSAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2Vt YmxlciBmb3IgYXNzZW1ibGVyIGZvciBhcm0gYWNjZXB0cyBjb250ZXh0LXNwZWNpZmljIGFy Y2hpdGVjdHVyZSBleHRlbnNpb25zIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIGFzc2Vt YmxlciBmb3IgYXNzZW1ibGVyIGZvciBhcm0gYWNjZXB0cyBjb250ZXh0LXNwZWNpZmljIGFy Y2hpdGVjdHVyZSBleHRlbnNpb25zLi4uICIgPiY2OyB9Ci1pZiAke2djY19jdl9hc19hcm1f b3B0aW9uX2V4dGVuc2lvbnMrOn0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotZWxzZQotICBnY2NfY3ZfYXNfYXJtX29wdGlvbl9leHRlbnNpb25zPW5v Ci0gIGlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgotICAgICRhc19lY2hvICcudGV4 dAotCS50aHVtYgotCS5zeW50YXggdW5pZmllZAotCXZtb3YuZjMyIHMwLCBzMScgPiBjb25m dGVzdC5zCi0gICAgaWYgeyBhY190cnk9JyRnY2NfY3ZfYXMgJGdjY19jdl9hc19mbGFncyAt bWFyY2g9YXJtdjguMS1tLm1haW4rbXZlIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+JjUn Ci0gIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBc IiRhY190cnlcIiI7IH0gPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVz PSQ/Ci0gICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9Ci0gICAgdGhlbgot CWdjY19jdl9hc19hcm1fb3B0aW9uX2V4dGVuc2lvbnM9eWVzCi0gICAgZWxzZQotICAgICAg ZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXMiID4mNQotICAgICAgY2F0IGNv bmZ0ZXN0LnMgPiY1Ci0gICAgZmkKLSAgICBybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0LnMK LSAgZmkKLWZpCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGdjY19jdl9hc19hcm1fb3B0aW9uX2V4dGVuc2lvbnMiID4mNQotJGFzX2VjaG8g IiRnY2NfY3ZfYXNfYXJtX29wdGlvbl9leHRlbnNpb25zIiA+JjY7IH0KLWlmIHRlc3QgJGdj Y19jdl9hc19hcm1fb3B0aW9uX2V4dGVuc2lvbnMgPSB5ZXM7IHRoZW4KLQotJGFzX2VjaG8g IiNkZWZpbmUgSEFWRV9HQVNfQVJNX0VYVEVOREVEX0FSQ0ggMSIgPj5jb25mZGVmcy5oCi0K LWZpCi0KIGVzYWMKIAogIyA/Pz8gTm90IGFsbCB0YXJnZXRzIHN1cHBvcnQgZHdhcmYyIGRl YnVnX2xpbmUsIGV2ZW4gd2l0aGluIGEgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Z3VyZS5hYyBiL2djYy9jb25maWd1cmUuYWMKaW5kZXggMjNiZWU3MDEwYTMuLjRjZDQ4YjQw MDcxIDEwMDY0NAotLS0gYS9nY2MvY29uZmlndXJlLmFjCisrKyBiL2djYy9jb25maWd1cmUu YWMKQEAgLTUzNzUsMTQxICs1Mzc1LDI2IEBAIGNhc2UgIiR0YXJnZXQiIGluCiAgICAgOzsK IGVzYWMKIAotIyBUaGlzIHRlc3RzIGlmIHRoZSBhc3NlbWJsZXIgc3VwcG9ydHMgdHdvIHJl Z2lzdGVycyBmb3IgZ2xvYmFsX2xvYWQgZnVuY3Rpb25zCi0jIChsaWtlIGluIExMVk0gdmVy c2lvbnMgPDEyKSBvciBvbmUgcmVnaXN0ZXIgKGxpa2UgaW4gTExWTSAxMikuCisjIEFNRCBH Q04gbmVlZHMgdGhlIExMVk0gYXNzZW1ibGVyIGFuZCBsaW5rZXIuCisjIFRlc3QgdGhhdCBM TFZNIGlzIGF0IGxlYXN0IDEzLjAuMS4KIGNhc2UgIiR0YXJnZXQiIGluCiAgIGFtZGdjbi0q IHwgZ2NuLSopCi0gICAgQUNfTVNHX0NIRUNLSU5HKGFzc2VtYmxlciBmaXggZm9yIGdsb2Jh bF9sb2FkIGZ1bmN0aW9ucykKLSAgICBnY2NfY3ZfYXNfZ2NuX2dsb2JhbF9sb2FkX2ZpeGVk PXllcworICAgIEFDX01TR19DSEVDS0lORyhsbHZtIGFzc2VtYmxlciB2ZXJzaW9uKQorICAg IGdjY19jdl9hc192ZXJzaW9uPSJ1bmtub3duIgogICAgIGlmIHRlc3QgeCRnY2NfY3ZfYXMg IT0geDsgdGhlbgotICAgICAgY2F0ID4gY29uZnRlc3QucyA8PEVPRgotCWdsb2JhbF9zdG9y ZV9kd29yZHgyICAgIHZbWzE6Ml1dLCB2W1s0OjVdXSwgc1tbMTQ6MTVdXQotRU9GCi0gICAg ICBpZiAkZ2NjX2N2X2FzIC10cmlwbGU9YW1kZ2NuLS1hbWRoc2EgLWZpbGV0eXBlPW9iaiAt bWNwdT1nZng5MDAgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4gL2Rldi9udWxsIDI+JjE7 IHRoZW4KLSAgICAgICAgZ2NjX2N2X2FzX2djbl9nbG9iYWxfbG9hZF9maXhlZD1ubwotICAg ICAgZmkKLSAgICAgIHJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubyBjb25mdGVzdAotICAg IGZpCi0gICAgZ2xvYmFsX2xvYWRfZml4ZWQ9YGlmIHRlc3QgeCRnY2NfY3ZfYXNfZ2NuX2ds b2JhbF9sb2FkX2ZpeGVkID0geHllczsgdGhlbiBlY2hvIDE7IGVsc2UgZWNobyAwOyBmaWAK LSAgICBBQ19ERUZJTkVfVU5RVU9URUQoSEFWRV9HQ05fQVNNX0dMT0JBTF9MT0FEX0ZJWEVE LCAkZ2xvYmFsX2xvYWRfZml4ZWQsCi0gICAgICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVy IGhhcyBmaXhlZCBnbG9iYWxfbG9hZCBmdW5jdGlvbnMuXSkKLSAgICBBQ19NU0dfUkVTVUxU KCRnY2NfY3ZfYXNfZ2NuX2dsb2JhbF9sb2FkX2ZpeGVkKQotICAgIDs7Ci1lc2FjCi0KLWNh c2UgIiR0YXJnZXQiIGluCi0gIGFtZGdjbi0qIHwgZ2NuLSopCi0gICAgIyBUZXN0IHRoZSBM TFZNIGFzc2VtYmxlciBzeW50YXggZGlhbGVjdDsgdGhleSBoYXZlIG1hZGUgYSBudW1iZXIg b2YKLSAgICAjIGNoYW5nZXMgYmV0d2VlbiBMTFZNIDEyICYgMTMgd2l0aG91dCBhbnkgYmFj a3dhcmQgY29tcGF0aWJpbGl0eS4KLSAgICBnY2NfR0FTX0NIRUNLX0ZFQVRVUkUoW2Fzc2Vt YmxlciBhbWRnY25fdGFyZ2V0IHYyLzMgc3ludGF4XSwKLSAgICAgIGdjY19jdl9hc19nY25f YXNtX3YzX3N5bnRheCwKLSAgICAgIFstdHJpcGxlPWFtZGdjbi0tYW1kaHNhIC1tY3B1PWdm eDkwNiAtbWF0dHI9K3huYWNrXSwKLSAgICAgIFsuYW1kZ2NuX3RhcmdldCAiYW1kZ2NuLXVu a25vd24tYW1kaHNhLS1nZng5MDYreG5hY2siXSwsCi0gICAgICBbQUNfREVGSU5FKEhBVkVf R0NOX0FTTV9WM19TWU5UQVgsIDEsCi0gICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxl ciBleHBlY3RzIGFtZGdjbl90YXJnZXQgZ2Z4OTA4K3huYWNrIHN5bnRheC5dKV0pCi0gICAg Z2NjX0dBU19DSEVDS19GRUFUVVJFKFthc3NlbWJsZXIgYW1kZ2NuX3RhcmdldCB2NCBzeW50 YXhdLAotICAgICAgZ2NjX2N2X2FzX2djbl9hc21fdjRfc3ludGF4LAotICAgICAgWy10cmlw bGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9Z2Z4OTA4IC1tYXR0cj0reG5hY2tdLAotICAgICAg Wy5hbWRnY25fdGFyZ2V0ICJhbWRnY24tdW5rbm93bi1hbWRoc2EtLWdmeDkwODp4bmFjaysi XSwsCi0gICAgICBbQUNfREVGSU5FKEhBVkVfR0NOX0FTTV9WNF9TWU5UQVgsIDEsCi0gICAg ICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBleHBlY3RzIGFtZGdjbl90YXJnZXQgZ2Z4 OTA4OnhuYWNrKyBzeW50YXguXSldKQotCi0gICAgIyBTb21lIGF0dHJpYnV0ZSBuYW1lcyBj aGFuZ2VkIGluIHRoZSBtb3ZlIHRvIHY0IC4uLgotICAgIGlmIHRlc3QgJGdjY19jdl9hc19n Y25fYXNtX3YzX3N5bnRheCA9IHllczsgdGhlbgotCXNyYW1vcHQ9IitzcmFtLWVjYyIKLQlz cmFtYXR0cj0iK3NyYW0tZWNjIgotCXhuYWNrYXR0cj0iK3huYWNrIgotICAgIGVsaWYgdGVz dCAkZ2NjX2N2X2FzX2djbl9hc21fdjRfc3ludGF4ID0geWVzOyB0aGVuCi0Jc3JhbW9wdD0i K3NyYW1lY2MiCi0Jc3JhbWF0dHI9IjpzcmFtZWNjKyIKLQl4bmFja2F0dHI9Ijp4bmFjaysi Ci0gICAgZWxzZQotCUFDX01TR19FUlJPUihbVW5yZWNvZ25pc2VkIGFzc2VtYmxlciB2ZXJz aW9uXSkKKyAgICAgIGdjY19jdl9hc192ZXJzaW9uPWAkZ2NjX2N2X2FzIC0tdmVyc2lvbiAy PiYxIHwgc2VkIC1uZSAnL3ZlcnNpb24vcy8uKiBcKFtbMC05XV1cKS9cMS9wJyB8fCBlY2hv IGVycm9yYAorICAgICAgY2FzZSAiJGdjY19jdl9hc192ZXJzaW9uIiBpbgorCTEzLjAuW1sx LTldXSopIDs7ICAgICAgICAgICMgMTMuMC4xKworCTEzLltbMS05XV0qKSA7OyAgICAgICAg ICAgICMgMTMuMSsKKwkxW1s0LTldXSopIDs7ICAgICAgICAgICAgICAjIDE0Li4xOQorCVtb Mi05XV1bWzAtOV1dKikgOzsgICAgICAgICMgMjAuLjk5CisJW1sxLTldXVtbMC05XV1bWzAt OV1dKikgOzsgIyAxMDArCisJZXJyb3IpIEFDX01TR19FUlJPUihbY2Fubm90IGRldGVybWlu ZSBMTFZNIHZlcnNpb25dKSA7OworCSopIEFDX01TR19FUlJPUihbTExWTSAxMy4wLjEgb3Ig bGF0ZXIgaXMgcmVxdWlyZWQgKGZvdW5kIExMVk0gJGdjY19jdl9hc192ZXJzaW9uKV0pIDs7 CisgICAgICBlc2FjCiAgICAgZmkKLQotICAgICMgVGVzdCB3aGV0aGVyIHRoZSBMTFZNIGFz c2VtYmxlciBhY2NlcHRzIC1tYXR0cj0reG5hY2sgd2l0aG91dCBhbnkKLSAgICAjIGRpYWdu b3N0aWMuIExMVk0gOSAmIDEwIGFjY2VwdCB0aGUgb3B0aW9uIHdoZXRoZXIgaXQgbWFrZXMg c2Vuc2Ugb3Igbm90LAotICAgICMgTExWTSAxMisgdGhyb3dzIGEgd2FybmluZyBmb3IgR1BV cyB3aXRob3V0IHN1cHBvcnQuCi0gICAgZ2NjX0dBU19DSEVDS19GRUFUVVJFKFthc3NlbWJs ZXIgYWNjZXB0cyAtbWF0dHI9K3huYWNrIGZvciBmaWppXSwKLSAgICAgIGdjY19jdl9hc19n Y25feG5hY2tfZWNjX2ZpamksCi0gICAgICBbLXRyaXBsZT1hbWRnY24tLWFtZGhzYSAtbWNw dT1maWppIC1tYXR0cj0reG5hY2sgMj5jb25mdGVzdC5lcnJdLCBbXSwKLSAgICAgIFtncmVw ICIuIiBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRCBcCi0gICAgICAgfHwgZ2Nj X2N2X2FzX2djbl94bmFja19lY2NfZmlqaT15ZXNdLAotICAgICAgW0FDX0RFRklORShIQVZF X0dDTl9YTkFDS19GSUpJLCAxLAotICAgICAgIFtEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIg YWxsb3dzIC1tYXR0cj0reG5hY2sgZm9yIGZpamkuXSldKQotICAgIHJtIC1mIGNvbmZ0ZXN0 LmVycgotICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbYXNzZW1ibGVyIGFjY2VwdHMgLW1h dHRyPSt4bmFjayBmb3IgZ2Z4OTAwXSwKLSAgICAgIGdjY19jdl9hc19nY25feG5hY2tfZWNj X2dmeDkwMCwKLSAgICAgIFstdHJpcGxlPWFtZGdjbi0tYW1kaHNhIC1tY3B1PWdmeDkwMCAt bWF0dHI9K3huYWNrIDI+Y29uZnRlc3QuZXJyXSwgW10sCi0gICAgICBbZ3JlcCAiLiIgY29u ZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQgXAotICAgICAgIHx8IGdjY19jdl9hc19n Y25feG5hY2tfZWNjX2dmeDkwMD15ZXNdLAotICAgICAgW0FDX0RFRklORShIQVZFX0dDTl9Y TkFDS19HRlg5MDAsIDEsCi0gICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBhbGxv d3MgLW1hdHRyPSt4bmFjayBmb3IgZ2Z4OTAwLl0pXSkKLSAgICBybSAtZiBjb25mdGVzdC5l cnIKLSAgICBnY2NfR0FTX0NIRUNLX0ZFQVRVUkUoW2Fzc2VtYmxlciBhY2NlcHRzIC1tYXR0 cj0reG5hY2sgZm9yIGdmeDkwNl0sCi0gICAgICBnY2NfY3ZfYXNfZ2NuX3huYWNrX2VjY19n Zng5MDYsCi0gICAgICBbLXRyaXBsZT1hbWRnY24tLWFtZGhzYSAtbWNwdT1nZng5MDYgLW1h dHRyPSt4bmFjayAyPmNvbmZ0ZXN0LmVycl0sIFtdLAotICAgICAgW2dyZXAgIi4iIGNvbmZ0 ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZEIFwKLSAgICAgICB8fCBnY2NfY3ZfYXNfZ2Nu X3huYWNrX2VjY19nZng5MDY9eWVzXSwKLSAgICAgIFtBQ19ERUZJTkUoSEFWRV9HQ05fWE5B Q0tfR0ZYOTA2LCAxLAotICAgICAgIFtEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgYWxsb3dz IC1tYXR0cj0reG5hY2sgZm9yIGdmeDkwNi5dKV0pCi0gICAgcm0gLWYgY29uZnRlc3QuZXJy Ci0gICAgZ2NjX0dBU19DSEVDS19GRUFUVVJFKFthc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9 K3huYWNrIGZvciBnZng5MDhdLAotICAgICAgZ2NjX2N2X2FzX2djbl94bmFja19lY2NfZ2Z4 OTA4LAotICAgICAgWy10cmlwbGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9Z2Z4OTA4IC1tYXR0 cj0reG5hY2sgMj5jb25mdGVzdC5lcnJdLCBbXSwKLSAgICAgIFtncmVwICIuIiBjb25mdGVz dC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRCBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl94 bmFja19lY2NfZ2Z4OTA4PXllc10sCi0gICAgICBbQUNfREVGSU5FKEhBVkVfR0NOX1hOQUNL X0dGWDkwOCwgMSwKLSAgICAgICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAt bWF0dHI9K3huYWNrIGZvciBnZng5MDguXSldKQotICAgIHJtIC1mIGNvbmZ0ZXN0LmVycgot Ci0gICAgIyBUZXN0IHdoZXRoZXIgdGhlIExMVk0gYXNzZW1ibGVyIGFjY2VwdHMgLW1hdHRy PStzcmFtZWNjIHdpdGhvdXQgYW55Ci0gICAgIyBkaWFnbm9zdGljLiBMTFZNIDkgJiAxMCBh Y2NlcHQgdGhlIG9wdGlvbiB3aGV0aGVyIGl0IG1ha2VzIHNlbnNlIG9yIG5vdCwKLSAgICAj IChzb21lPykgTExWTSAxMiByZWplY3RzIGl0IGZvciBhbGwgR1BVcywgYW5kIExMVk0xMyB0 aHJvd3MgYSB3YXJuaW5nCi0gICAgIyBmb3IgR1BVcyB3aXRob3V0IHN1cHBvcnQuCi0gICAg Z2NjX0dBU19DSEVDS19GRUFUVVJFKFthc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9JHNyYW1v cHQgZm9yIGZpamldLAotICAgICAgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19maWppLAotICAg ICAgWy10cmlwbGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9ZmlqaSAtbWF0dHI9JHNyYW1vcHQg Mj5jb25mdGVzdC5lcnJdLCBbXSwKLSAgICAgIFtncmVwICIuIiBjb25mdGVzdC5lcnIgPiZB U19NRVNTQUdFX0xPR19GRCBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19m aWppPXllc10sCi0gICAgICBbQUNfREVGSU5FKEhBVkVfR0NOX1NSQU1fRUNDX0ZJSkksIDEs Ci0gICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBhbGxvd3MgLW1hdHRyPStzcmFt ZWNjIGZvciBmaWppLl0pXSkKLSAgICBybSAtZiBjb25mdGVzdC5lcnIKLSAgICBnY2NfR0FT X0NIRUNLX0ZFQVRVUkUoW2Fzc2VtYmxlciBhY2NlcHRzIC1tYXR0cj0kc3JhbW9wdCBmb3Ig Z2Z4OTAwXSwKLSAgICAgIGdjY19jdl9hc19nY25fc3JhbV9lY2NfZ2Z4OTAwLAotICAgICAg Wy10cmlwbGU9YW1kZ2NuLS1hbWRoc2EgLW1jcHU9Z2Z4OTAwIC1tYXR0cj0kc3JhbW9wdCAy PmNvbmZ0ZXN0LmVycl0sIFtdLAotICAgICAgW2dyZXAgIi4iIGNvbmZ0ZXN0LmVyciA+JkFT X01FU1NBR0VfTE9HX0ZEIFwKLSAgICAgICB8fCBnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2dm eDkwMD15ZXNdLAotICAgICAgW0FDX0RFRklORShIQVZFX0dDTl9TUkFNX0VDQ19HRlg5MDAs IDEsCi0gICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBhbGxvd3MgLW1hdHRyPStz cmFtZWNjIGZvciBnZng5MDAuXSldKQotICAgIHJtIC1mIGNvbmZ0ZXN0LmVycgotICAgIGdj Y19HQVNfQ0hFQ0tfRkVBVFVSRShbYXNzZW1ibGVyIGFjY2VwdHMgLW1hdHRyPSRzcmFtb3B0 IGZvciBnZng5MDZdLAotICAgICAgZ2NjX2N2X2FzX2djbl9zcmFtX2VjY19nZng5MDYsCi0g ICAgICBbLXRyaXBsZT1hbWRnY24tLWFtZGhzYSAtbWNwdT1nZng5MDYgLW1hdHRyPSRzcmFt b3B0IDI+Y29uZnRlc3QuZXJyXSwgW10sCi0gICAgICBbZ3JlcCAiLiIgY29uZnRlc3QuZXJy ID4mQVNfTUVTU0FHRV9MT0dfRkQgXAotICAgICAgIHx8IGdjY19jdl9hc19nY25fc3JhbV9l Y2NfZ2Z4OTA2PXllc10sCi0gICAgICBbQUNfREVGSU5FKEhBVkVfR0NOX1NSQU1fRUNDX0dG WDkwNiwgMSwKLSAgICAgICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIGFsbG93cyAtbWF0 dHI9K3NyYW1lY2MgZm9yIGdmeDkwNi5dKV0pCi0gICAgcm0gLWYgY29uZnRlc3QuZXJyCi0g ICAgZ2NjX0dBU19DSEVDS19GRUFUVVJFKFthc3NlbWJsZXIgYWNjZXB0cyAtbWF0dHI9JHNy YW1vcHQgZm9yIGdmeDkwOF0sCi0gICAgICBnY2NfY3ZfYXNfZ2NuX3NyYW1fZWNjX2dmeDkw OCwKLSAgICAgIFstdHJpcGxlPWFtZGdjbi0tYW1kaHNhIC1tY3B1PWdmeDkwOCAtbWF0dHI9 JHNyYW1vcHQgMj5jb25mdGVzdC5lcnJdLCBbXSwKLSAgICAgIFtncmVwICIuIiBjb25mdGVz dC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRCBcCi0gICAgICAgfHwgZ2NjX2N2X2FzX2djbl9z cmFtX2VjY19nZng5MDg9eWVzXSwKLSAgICAgIFtBQ19ERUZJTkUoSEFWRV9HQ05fU1JBTV9F Q0NfR0ZYOTA4LCAxLAotICAgICAgIFtEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgYWxsb3dz IC1tYXR0cj0rc3JhbWVjYyBmb3IgZ2Z4OTA4Ll0pXSkKLSAgICBybSAtZiBjb25mdGVzdC5l cnIKKyAgICBBQ19NU0dfUkVTVUxUKFskZ2NjX2N2X2FzX3ZlcnNpb24sIG9rXSkKICAgICA7 OwotICBhcm0qKQotICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbYXNzZW1ibGVyIGZvciBh cm0gYWNjZXB0cyBjb250ZXh0LXNwZWNpZmljIGFyY2hpdGVjdHVyZSBleHRlbnNpb25zXSwK LSAgICAgIGdjY19jdl9hc19hcm1fb3B0aW9uX2V4dGVuc2lvbnMsCi0gICAgICBbLW1hcmNo PWFybXY4LjEtbS5tYWluK212ZV0sCi0gICAgICBbLnRleHQKLQkudGh1bWIKLQkuc3ludGF4 IHVuaWZpZWQKLQl2bW92LmYzMiBzMCwgczFdLCwKLSAgICAgIFtBQ19ERUZJTkUoSEFWRV9H QVNfQVJNX0VYVEVOREVEX0FSQ0gsIDEsCi0gICAgICAgW0RlZmluZSBpZiB5b3VyIEFybSBh c3NlbWJsZXIgcGVybWl0cyBjb250ZXh0LXNwZWNpZmljIGZlYXR1cmUgZXh0ZW5zaW9ucy5d KV0pCiBlc2FjCiAKICMgPz8/IE5vdCBhbGwgdGFyZ2V0cyBzdXBwb3J0IGR3YXJmMiBkZWJ1 Z19saW5lLCBldmVuIHdpdGhpbiBhIHZlcnNpb24K --------------ifmKQvTwUd7m6wmjw0IXej0q--