From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id D2B441F55B for ; Wed, 20 May 2020 14:40:12 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CF86A395C81F; Wed, 20 May 2020 14:40:10 +0000 (GMT) Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id B5710383F86D for ; Wed, 20 May 2020 14:39:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B5710383F86D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=mentor.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ChungLin_Tang@mentor.com IronPort-SDR: dknHE116h1Xv+xl2tenmfHDHPSEk3cGv71e1TLvvg11nvx/MfF2GpIDpZ+rC8rwBTzh9bLsksa Dw1bfYHRZF9kcrRt8sNTIoXRUP1wQ6f/fainByMrULLFbjZ4/FBVx0xYdqPl9k6Bwgvs0UDMyD 9xV7i+7iyvMmKXZ5EKA7nm5JqnEhHN2rP7JunbwAcdVCAbn7rO/1S+Xvik3a4VVhfhU0wSyX9w 8hFrgakO3fRfyLDwtM0PvlTA7ZiZ8vdCp2ieAyTpbMMtwihBPNsqAWdWvdJUp4NutzvkZvFeJR kgM= X-IronPort-AV: E=Sophos;i="5.73,414,1583222400"; d="scan'208";a="49035180" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 20 May 2020 06:39:57 -0800 IronPort-SDR: urxeSp773UUtt+GGTS5qsyUvW9Ht9ATvlO6ONuER1mAroTaWlfTmQ2q1VWREqXJk2X4lY16zB6 eQf6EoQGbxdt8J/C+zPNNIPIPgi5ml12GLXwrM52oiRUZlhPfgm2aAjzDZAkrWLwD2tQq6TyIV g4zWQBuhyKBw8oL5Pxxp9NmX4KDVFOPH15vYgOogoTKwHSj/eiV5NqF+2YDB9t1N5oBrbSEGb0 3R6I9krQfT7Kfp5a2qs5AIq7wsu6mHAmZMLBbIULxPhFaao1vDDymZKgxU5LgVj7Psibu4q6Zq Hxo= Subject: Re: [PATCH v2.1 1/2] BZ #17645, fix slow DSO sorting behavior in dynamic loader To: Andreas Schwab References: <87a724uhtf.fsf@igel.home> <87tv0ct1vl.fsf@igel.home> From: Chung-Lin Tang Message-ID: Date: Wed, 20 May 2020 22:38:41 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <87tv0ct1vl.fsf@igel.home> Content-Type: multipart/mixed; boundary="------------B83B762A5B198B946E8A3337" Content-Language: en-US X-ClientProxiedBy: SVR-ORW-MBX-09.mgc.mentorg.com (147.34.90.209) To svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: cltang@codesourcery.com Cc: Catherine Moore , GNU C Library Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --------------B83B762A5B198B946E8A3337 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 2020/5/19 10:50 PM, Andreas Schwab wrote: > On Mai 19 2020, Chung-Lin Tang wrote: > >> Do you mean that an include target is automatically re-made? > > Yes. The glibc makefiles already make use of that feature extensively. > > Andreas. Thanks for the tip. I've updated that part of the patch (now dubbed v2.1), this time using a make rule for the Makefile fragment, and a small fix to the Python script to use os.makedirs instead of os.mkdir for subdirectory creation (the make rule change revealed a race bug there) Thanks, Chung-Lin --------------B83B762A5B198B946E8A3337 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="dlsort-01-tests-v2.1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dlsort-01-tests-v2.1.patch" ZGlmZiAtLWdpdCBhL2VsZi9NYWtlZmlsZSBiL2VsZi9NYWtlZmlsZQppbmRleCA3N2RhNjFh ZTY0Li45ZGM2NWMxMGY5IDEwMDY0NAotLS0gYS9lbGYvTWFrZWZpbGUKKysrIGIvZWxmL01h a2VmaWxlCkBAIC00MjAsNiArNDIwLDMzIEBAIHRlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngp b3JkZXItY21wLm91dCAkKG9ianBmeCl0c3QtYXJyYXkxLWNtcC5vdXQgXAogCQkgJChvYmpw ZngpdHN0LXVudXNlZC1kZXAtY21wLm91dAogZW5kaWYKIAorIyBEU08gc29ydGluZyB0ZXN0 czoKKyMgVGhlIGRzby1vcmRlcmluZy10ZXN0LnB5IHNjcmlwdCBnZW5lcmF0ZXMgdGVzdGNh c2Ugc291cmNlIGZpbGVzIGluICQob2JqcGZ4KSwKKyMgY3JlYXRpbmcgYSAkKG9ianBmeCk8 dGVzdGNhc2UtbmFtZT4tZGlyIGZvciBlYWNoIHRlc3RjYXNlLCBhbmQgY3JlYXRlcyBhCisj IE1ha2VmaWxlIGZyYWdtZW50IHRvIGJlIGluY2x1ZGVkLgorZGVmaW5lIGluY2x1ZGVfZHNv c29ydF90ZXN0cworJChvYmpwZngpJCgxKS50bXAtbWFrZWZpbGU6ICQoMSkKKwkkKFBZVEhP TikgJCguLilzY3JpcHRzL2Rzby1vcmRlcmluZy10ZXN0LnB5IFwKKwktLWRlc2NyaXB0aW9u LWZpbGUgJCQ8IC0tb2JqcGZ4ICQob2JqcGZ4KSAtLW91dHB1dC1tYWtlZmlsZSAkJEAKK2lu Y2x1ZGUgJChvYmpwZngpJCgxKS50bXAtbWFrZWZpbGUKK2VuZGVmCisKKyMgR2VuZXJhdGUg ZnJvbSBlYWNoIHRlc3RjYXNlIGRlc2NyaXB0aW9uIGZpbGUKKyQoZXZhbCAkKGNhbGwgaW5j bHVkZV9kc29zb3J0X3Rlc3RzLGRzby1zb3J0LXRlc3RzLTEuZGVmKSkKKyQoZXZhbCAkKGNh bGwgaW5jbHVkZV9kc29zb3J0X3Rlc3RzLGRzby1zb3J0LXRlc3RzLTIuZGVmKSkKKworIyBU aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhIHNpbmdsZSBEU08gc29ydGlu ZyB0ZXN0LCBjb21wbGV0ZWx5CisjIGhlcmUgaW4gdGhlIE1ha2VmaWxlLCBmb3IgZXhhbXBs ZToKKyMgICAkKGV2YWwgJChjYWxsIHNpbmdsZV9kc29zb3J0X3Rlc3QsdGVzdGNhc2UtbmFt ZSwnYS0+Yi0+YycsJ2M+Yj5hPnt9PGE8YjxjJykpCisjIEN1cnJlbnRseSBhbGwgdGVzdHMg YXJlIGRlZmluZWQgaW4gZGVzY3JpcHRpb24gZmlsZXMsIGFuZCB0aGlzIGZ1bmN0aW9uIGlz CisjIG5vdCB1dGlsaXplZCwgYnV0IGtlcHQgaGVyZSBmb3IgcG9zc2libGUgY29udmVuaWVu Y2VzLgorZGVmaW5lIHNpbmdsZV9kc29zb3J0X3Rlc3QKKyQob2JqcGZ4KSQoMSkudG1wLW1h a2VmaWxlOgorCSQoUFlUSE9OKSAkKC4uKXNjcmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkg LS1vYmpwZnggJChvYmpwZngpIFwKKwkkKDIpICQoMSkgJCgzKSAtLW91dHB1dC1tYWtlZmls ZSAkJEAKK2luY2x1ZGUgJChvYmpwZngpJCgxKS50bXAtbWFrZWZpbGUKK2VuZGVmCisKIGNo ZWNrLWFiaTogJChvYmpwZngpY2hlY2stYWJpLWxkLm91dAogdGVzdHMtc3BlY2lhbCArPSAk KG9ianBmeCljaGVjay1hYmktbGQub3V0CiB1cGRhdGUtYWJpOiB1cGRhdGUtYWJpLWxkCmRp ZmYgLS1naXQgYS9lbGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYgYi9lbGYvZHNvLXNvcnQtdGVz dHMtMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDk0YzZl ZGE4NwotLS0gL2Rldi9udWxsCisrKyBiL2VsZi9kc28tc29ydC10ZXN0cy0xLmRlZgpAQCAt MCwwICsxLDMwIEBACit0c3QtZHNvLW9yZGVyaW5nMTogYS0+Yi0+Yworb3V0cHV0OiBjPmI+ YT57fTxhPGI8YworCit0c3QtZHNvLW9yZGVyaW5nMjogYS0+Yi0+W2NkXS0+ZQorb3V0cHV0 OiBlPmQ+Yz5iPmE+e308YTxiPGM8ZDxlCisKK3RzdC1kc28tb3JkZXJpbmczOiBhLT5bYmNd LT5bZGVmXS0+W2doXS0+aQorb3V0cHV0OiBpPmg+Zz5mPmU+ZD5jPmI+YT57fTxhPGI8Yzxk PGU8ZjxnPGg8aQorCit0c3QtZHNvLW9yZGVyaW5nNDogYS0+Yi0+W2RlXTthLT5jLT5kLT5l CitvdXRwdXQ6IGU+ZD5jPmI+YT57fTxhPGI8YzxkPGUKKwordHN0LWRzby1vcmRlcmluZzU6 IGEtPltiY10tPmQ7Yi0+Yworb3V0cHV0OiBkPmM+Yj5hPnt9PGE8YjxjPGQKKwordHN0LWRz by1vcmRlcmluZzY6IGEtPltiY2RlXS0+Zgorb3V0cHV0OiBmPmU+ZD5jPmI+YT57fTxhPGI8 YzxkPGU8ZgorCit0c3QtZHNvLW9yZGVyaW5nNzogYS0+W2JjXTtiLT5bY2RlXTtlLT5mCitv dXRwdXQ6IGY+ZT5kPmM+Yj5hPnt9PGE8YjxjPGQ8ZTxmCisKK3RzdC1kc28tb3JkZXJpbmc4 OiBhLT5iLT5jPT5hO3t9LT5bYmFdCitvdXRwdXQ6IGM+Yj5hPnt9PGE8YjxjCisKK3RzdC1k c28tb3JkZXJpbmc5OiBhLT5iLT5jLT5kLT5lO3t9IS0+W2FiY2RlXQorb3V0cHV0OiBlPmQ+ Yz5iPmE+e308YTxiPGM8ZDxlCisKK3RzdC1iejE1MzExOiB7K2E7K2U7K2Y7K2c7K2Q7JWQ7 LWQ7LWc7LWY7LWU7LWF9O2EtPmItPmMtPmQ7ZD0+W2JhXTtjPT5hO2I9PmU9PmE7Yz0+Zj0+ YjtkPT5nPT5jCitvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9MSk6IHsrYVtkPmM+ Yj5hPl07K2VbZT5dOytmW2Y+XTsrZ1tnPl07K2RbXTslZChiKGUoYSgpKSlhKClnKGMoYSgp ZihiKGUoYSgpKSkpKSkpOy1kW107LWdbXTstZltdOy1lW107LWFbPGE8YzxkPGc8ZjxiPGVd O30KK291dHB1dChnbGliYy5ydGxkLmR5bmFtaWNfc29ydD0yKTogeythW2Q+Yz5iPmE+XTsr ZVtlPl07K2ZbZj5dOytnW2c+XTsrZFtdOyVkKGIoZShhKCkpKWEoKWcoYyhhKClmKGIoZShh KCkpKSkpKSk7LWRbXTstZ1tdOy1mW107LWVbXTstYVs8ZzxmPGE8YjxjPGQ8ZV07fQpkaWZm IC0tZ2l0IGEvZWxmL2Rzby1zb3J0LXRlc3RzLTIuZGVmIGIvZWxmL2Rzby1zb3J0LXRlc3Rz LTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM5YzZhY2Jh ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9lbGYvZHNvLXNvcnQtdGVzdHMtMi5kZWYKQEAgLTAs MCArMSw2MDUgQEAKK3RzdC1yZWRoYXQtMTE2MjgxMDoKK3t9LT5BMTAxCit7fS0+KgorQTEw MS0+KEIxMDEgQjE2MyBCMTIyIEIxODEpCitBMTAyLT4oQjEwMiBCMTQwIEIxOTkgQjE1OCkK K0ExMDMtPihCMTAzIEIxMTcgQjE3NiBCMTM1KQorQTEwNC0+KEIxMDQgQjE5NCBCMTUzIEIx MTIpCitBMTA1LT4oQjEwNSBCMTcxIEIxMzAgQjE4OSkKK0ExMDYtPihCMTA2IEIxNDggQjEw NyBCMTY2KQorQTEwNy0+KEIxMDcgQjEyNSBCMTg0IEIxNDMpCitBMTA4LT4oQjEwOCBCMTAy IEIxNjEgQjEyMCkKK0ExMDktPihCMTA5IEIxNzkgQjEzOCBCMTk3KQorQTExMC0+KEIxMTAg QjE1NiBCMTE1IEIxNzQpCitBMTExLT4oQjExMSBCMTMzIEIxOTIgQjE1MSkKK0ExMTItPihC MTEyIEIxMTAgQjE2OSBCMTI4KQorQTExMy0+KEIxMTMgQjE4NyBCMTQ2IEIxMDUpCitBMTE0 LT4oQjExNCBCMTY0IEIxMjMgQjE4MikKK0ExMTUtPihCMTE1IEIxNDEgQjIwMCBCMTU5KQor QTExNi0+KEIxMTYgQjExOCBCMTc3IEIxMzYpCitBMTE3LT4oQjExNyBCMTk1IEIxNTQgQjEx MykKK0ExMTgtPihCMTE4IEIxNzIgQjEzMSBCMTkwKQorQTExOS0+KEIxMTkgQjE0OSBCMTA4 IEIxNjcpCitBMTIwLT4oQjEyMCBCMTI2IEIxODUgQjE0NCkKK0ExMjEtPihCMTIxIEIxMDMg QjE2MikKK0ExMjItPihCMTIyIEIxODAgQjEzOSBCMTk4KQorQTEyMy0+KEIxMjMgQjE1NyBC MTE2IEIxNzUpCitBMTI0LT4oQjEyNCBCMTM0IEIxOTMgQjE1MikKK0ExMjUtPihCMTI1IEIx MTEgQjE3MCBCMTI5KQorQTEyNi0+KEIxMjYgQjE4OCBCMTQ3IEIxMDYpCitBMTI3LT4oQjEy NyBCMTY1IEIxMjQgQjE4MykKK0ExMjgtPihCMTI4IEIxNDIgQjEwMSBCMTYwKQorQTEyOS0+ KEIxMjkgQjExOSBCMTc4IEIxMzcpCitBMTMwLT4oQjEzMCBCMTk2IEIxNTUgQjExNCkKK0Ex MzEtPihCMTMxIEIxNzMgQjEzMiBCMTkxKQorQTEzMi0+KEIxMzIgQjE1MCBCMTA5IEIxNjgp CitBMTMzLT4oQjEzMyBCMTI3IEIxODYgQjE0NSkKK0ExMzQtPihCMTM0IEIxMDQgQjE2MyBC MTIyKQorQTEzNS0+KEIxMzUgQjE4MSBCMTQwIEIxOTkpCitBMTM2LT4oQjEzNiBCMTU4IEIx MTcgQjE3NikKK0ExMzctPihCMTM3IEIxMzUgQjE5NCBCMTUzKQorQTEzOC0+KEIxMzggQjEx MiBCMTcxIEIxMzApCitBMTM5LT4oQjEzOSBCMTg5IEIxNDggQjEwNykKK0ExNDAtPihCMTQw IEIxNjYgQjEyNSBCMTg0KQorQTE0MS0+KEIxNDEgQjE0MyBCMTAyIEIxNjEpCitBMTQyLT4o QjE0MiBCMTIwIEIxNzkgQjEzOCkKK0ExNDMtPihCMTQzIEIxOTcgQjE1NiBCMTE1KQorQTE0 NC0+KEIxNDQgQjE3NCBCMTMzIEIxOTIpCitBMTQ1LT4oQjE0NSBCMTUxIEIxMTAgQjE2OSkK K0ExNDYtPihCMTQ2IEIxMjggQjE4NykKK0ExNDctPihCMTQ3IEIxMDUgQjE2NCBCMTIzKQor QTE0OC0+KEIxNDggQjE4MiBCMTQxIEIyMDApCitBMTQ5LT4oQjE0OSBCMTU5IEIxMTggQjE3 NykKK0ExNTAtPihCMTUwIEIxMzYgQjE5NSBCMTU0KQorQTE1MS0+KEIxNTEgQjExMyBCMTcy IEIxMzEpCitBMTUyLT4oQjE1MiBCMTkwIEIxNDkgQjEwOCkKK0ExNTMtPihCMTUzIEIxNjcg QjEyNiBCMTg1KQorQTE1NC0+KEIxNTQgQjE0NCBCMTAzIEIxNjIpCitBMTU1LT4oQjE1NSBC MTIxIEIxODAgQjEzOSkKK0ExNTYtPihCMTU2IEIxOTggQjE1NyBCMTE2KQorQTE1Ny0+KEIx NTcgQjE3NSBCMTM0IEIxOTMpCitBMTU4LT4oQjE1OCBCMTUyIEIxMTEgQjE3MCkKK0ExNTkt PihCMTU5IEIxMjkgQjE4OCBCMTQ3KQorQTE2MC0+KEIxNjAgQjEwNiBCMTY1IEIxMjQpCitB MTYxLT4oQjE2MSBCMTgzIEIxNDIgQjEwMSkKK0ExNjItPihCMTYyIEIxNjAgQjExOSBCMTc4 KQorQTE2My0+KEIxNjMgQjEzNyBCMTk2IEIxNTUpCitBMTY0LT4oQjE2NCBCMTE0IEIxNzMg QjEzMikKK0ExNjUtPihCMTY1IEIxOTEgQjE1MCBCMTA5KQorQTE2Ni0+KEIxNjYgQjE2OCBC MTI3IEIxODYpCitBMTY3LT4oQjE2NyBCMTQ1IEIxMDQgQjE2MykKK0ExNjgtPihCMTY4IEIx MjIgQjE4MSBCMTQwKQorQTE2OS0+KEIxNjkgQjE5OSBCMTU4IEIxMTcpCitBMTcwLT4oQjE3 MCBCMTc2IEIxMzUgQjE5NCkKK0ExNzEtPihCMTcxIEIxNTMgQjExMikKK0ExNzItPihCMTcy IEIxMzAgQjE4OSBCMTQ4KQorQTE3My0+KEIxNzMgQjEwNyBCMTY2IEIxMjUpCitBMTc0LT4o QjE3NCBCMTg0IEIxNDMgQjEwMikKK0ExNzUtPihCMTc1IEIxNjEgQjEyMCBCMTc5KQorQTE3 Ni0+KEIxNzYgQjEzOCBCMTk3IEIxNTYpCitBMTc3LT4oQjE3NyBCMTE1IEIxNzQgQjEzMykK K0ExNzgtPihCMTc4IEIxOTIgQjE1MSBCMTEwKQorQTE3OS0+KEIxNzkgQjE2OSBCMTI4IEIx ODcpCitBMTgwLT4oQjE4MCBCMTQ2IEIxMDUgQjE2NCkKK0ExODEtPihCMTgxIEIxMjMgQjE4 MiBCMTQxKQorQTE4Mi0+KEIxODIgQjIwMCBCMTU5IEIxMTgpCitBMTgzLT4oQjE4MyBCMTc3 IEIxMzYgQjE5NSkKK0ExODQtPihCMTg0IEIxNTQgQjExMyBCMTcyKQorQTE4NS0+KEIxODUg QjEzMSBCMTkwIEIxNDkpCitBMTg2LT4oQjE4NiBCMTA4IEIxNjcgQjEyNikKK0ExODctPihC MTg3IEIxODUgQjE0NCBCMTAzKQorQTE4OC0+KEIxODggQjE2MiBCMTIxIEIxODApCitBMTg5 LT4oQjE4OSBCMTM5IEIxOTggQjE1NykKK0ExOTAtPihCMTkwIEIxMTYgQjE3NSBCMTM0KQor QTE5MS0+KEIxOTEgQjE5MyBCMTUyIEIxMTEpCitBMTkyLT4oQjE5MiBCMTcwIEIxMjkgQjE4 OCkKK0ExOTMtPihCMTkzIEIxNDcgQjEwNiBCMTY1KQorQTE5NC0+KEIxOTQgQjEyNCBCMTgz IEIxNDIpCitBMTk1LT4oQjE5NSBCMTAxIEIxNjAgQjExOSkKK0ExOTYtPihCMTk2IEIxNzgg QjEzNykKK0ExOTctPihCMTk3IEIxNTUgQjExNCBCMTczKQorQTE5OC0+KEIxOTggQjEzMiBC MTkxIEIxNTApCitBMTk5LT4oQjE5OSBCMTA5IEIxNjggQjEyNykKK0EyMDAtPihCMjAwIEIx ODYgQjE0NSBCMTA0KQorQjEwMS0+KEMxMDEgQzE2NCBDMTIzIEMxODIpCitCMTAyLT4oQzEw MiBDMTQxIEMyMDAgQzE1OSkKK0IxMDMtPihDMTAzIEMxMTggQzE3NyBDMTM2KQorQjEwNC0+ KEMxMDQgQzE5NSBDMTU0IEMxMTMpCitCMTA1LT4oQzEwNSBDMTcyIEMxMzEgQzE5MCkKK0Ix MDYtPihDMTA2IEMxNDkgQzEwOCBDMTY3KQorQjEwNy0+KEMxMDcgQzEyNiBDMTg1IEMxNDQp CitCMTA4LT4oQzEwOCBDMTAzIEMxNjIgQzEyMSkKK0IxMDktPihDMTA5IEMxODAgQzEzOSBD MTk4KQorQjExMC0+KEMxMTAgQzE1NyBDMTE2IEMxNzUpCitCMTExLT4oQzExMSBDMTM0IEMx OTMgQzE1MikKK0IxMTItPihDMTEyIEMxMTEgQzE3MCBDMTI5KQorQjExMy0+KEMxMTMgQzE4 OCBDMTQ3IEMxMDYpCitCMTE0LT4oQzExNCBDMTY1IEMxMjQgQzE4MykKK0IxMTUtPihDMTE1 IEMxNDIgQzEwMSBDMTYwKQorQjExNi0+KEMxMTYgQzExOSBDMTc4IEMxMzcpCitCMTE3LT4o QzExNyBDMTk2IEMxNTUgQzExNCkKK0IxMTgtPihDMTE4IEMxNzMgQzEzMiBDMTkxKQorQjEx OS0+KEMxMTkgQzE1MCBDMTA5IEMxNjgpCitCMTIwLT4oQzEyMCBDMTI3IEMxODYgQzE0NSkK K0IxMjEtPihDMTIxIEMxMDQgQzE2MyBDMTIyKQorQjEyMi0+KEMxMjIgQzE4MSBDMTQwIEMx OTkpCitCMTIzLT4oQzEyMyBDMTU4IEMxMTcgQzE3NikKK0IxMjQtPihDMTI0IEMxMzUgQzE5 NCBDMTUzKQorQjEyNS0+KEMxMjUgQzExMiBDMTcxIEMxMzApCitCMTI2LT4oQzEyNiBDMTg5 IEMxNDggQzEwNykKK0IxMjctPihDMTI3IEMxNjYgQzEyNSBDMTg0KQorQjEyOC0+KEMxMjgg QzE0MyBDMTAyIEMxNjEpCitCMTI5LT4oQzEyOSBDMTIwIEMxNzkgQzEzOCkKK0IxMzAtPihD MTMwIEMxOTcgQzE1NiBDMTE1KQorQjEzMS0+KEMxMzEgQzE3NCBDMTMzIEMxOTIpCitCMTMy LT4oQzEzMiBDMTUxIEMxMTAgQzE2OSkKK0IxMzMtPihDMTMzIEMxMjggQzE4NyBDMTQ2KQor QjEzNC0+KEMxMzQgQzEwNSBDMTY0IEMxMjMpCitCMTM1LT4oQzEzNSBDMTgyIEMxNDEgQzIw MCkKK0IxMzYtPihDMTM2IEMxNTkgQzExOCBDMTc3KQorQjEzNy0+KEMxMzcgQzEzNiBDMTk1 IEMxNTQpCitCMTM4LT4oQzEzOCBDMTEzIEMxNzIgQzEzMSkKK0IxMzktPihDMTM5IEMxOTAg QzE0OSBDMTA4KQorQjE0MC0+KEMxNDAgQzE2NyBDMTI2IEMxODUpCitCMTQxLT4oQzE0MSBD MTQ0IEMxMDMgQzE2MikKK0IxNDItPihDMTQyIEMxMjEgQzE4MCBDMTM5KQorQjE0My0+KEMx NDMgQzE5OCBDMTU3IEMxMTYpCitCMTQ0LT4oQzE0NCBDMTc1IEMxMzQgQzE5MykKK0IxNDUt PihDMTQ1IEMxNTIgQzExMSBDMTcwKQorQjE0Ni0+KEMxNDYgQzEyOSBDMTg4IEMxNDcpCitC MTQ3LT4oQzE0NyBDMTA2IEMxNjUgQzEyNCkKK0IxNDgtPihDMTQ4IEMxODMgQzE0MiBDMTAx KQorQjE0OS0+KEMxNDkgQzE2MCBDMTE5IEMxNzgpCitCMTUwLT4oQzE1MCBDMTM3IEMxOTYg QzE1NSkKK0IxNTEtPihDMTUxIEMxMTQgQzE3MyBDMTMyKQorQjE1Mi0+KEMxNTIgQzE5MSBD MTUwIEMxMDkpCitCMTUzLT4oQzE1MyBDMTY4IEMxMjcgQzE4NikKK0IxNTQtPihDMTU0IEMx NDUgQzEwNCBDMTYzKQorQjE1NS0+KEMxNTUgQzEyMiBDMTgxIEMxNDApCitCMTU2LT4oQzE1 NiBDMTk5IEMxNTggQzExNykKK0IxNTctPihDMTU3IEMxNzYgQzEzNSBDMTk0KQorQjE1OC0+ KEMxNTggQzE1MyBDMTEyIEMxNzEpCitCMTU5LT4oQzE1OSBDMTMwIEMxODkgQzE0OCkKK0Ix NjAtPihDMTYwIEMxMDcgQzE2NiBDMTI1KQorQjE2MS0+KEMxNjEgQzE4NCBDMTQzIEMxMDIp CitCMTYyLT4oQzE2MiBDMTYxIEMxMjAgQzE3OSkKK0IxNjMtPihDMTYzIEMxMzggQzE5NyBD MTU2KQorQjE2NC0+KEMxNjQgQzExNSBDMTc0IEMxMzMpCitCMTY1LT4oQzE2NSBDMTkyIEMx NTEgQzExMCkKK0IxNjYtPihDMTY2IEMxNjkgQzEyOCBDMTg3KQorQjE2Ny0+KEMxNjcgQzE0 NiBDMTA1IEMxNjQpCitCMTY4LT4oQzE2OCBDMTIzIEMxODIgQzE0MSkKK0IxNjktPihDMTY5 IEMyMDAgQzE1OSBDMTE4KQorQjE3MC0+KEMxNzAgQzE3NyBDMTM2IEMxOTUpCitCMTcxLT4o QzE3MSBDMTU0IEMxMTMgQzE3MikKK0IxNzItPihDMTcyIEMxMzEgQzE5MCBDMTQ5KQorQjE3 My0+KEMxNzMgQzEwOCBDMTY3IEMxMjYpCitCMTc0LT4oQzE3NCBDMTg1IEMxNDQgQzEwMykK K0IxNzUtPihDMTc1IEMxNjIgQzEyMSBDMTgwKQorQjE3Ni0+KEMxNzYgQzEzOSBDMTk4IEMx NTcpCitCMTc3LT4oQzE3NyBDMTE2IEMxNzUgQzEzNCkKK0IxNzgtPihDMTc4IEMxOTMgQzE1 MiBDMTExKQorQjE3OS0+KEMxNzkgQzE3MCBDMTI5IEMxODgpCitCMTgwLT4oQzE4MCBDMTQ3 IEMxMDYgQzE2NSkKK0IxODEtPihDMTgxIEMxMjQgQzE4MyBDMTQyKQorQjE4Mi0+KEMxODIg QzEwMSBDMTYwIEMxMTkpCitCMTgzLT4oQzE4MyBDMTc4IEMxMzcgQzE5NikKK0IxODQtPihD MTg0IEMxNTUgQzExNCBDMTczKQorQjE4NS0+KEMxODUgQzEzMiBDMTkxIEMxNTApCitCMTg2 LT4oQzE4NiBDMTA5IEMxNjggQzEyNykKK0IxODctPihDMTg3IEMxODYgQzE0NSBDMTA0KQor QjE4OC0+KEMxODggQzE2MyBDMTIyIEMxODEpCitCMTg5LT4oQzE4OSBDMTQwIEMxOTkgQzE1 OCkKK0IxOTAtPihDMTkwIEMxMTcgQzE3NiBDMTM1KQorQjE5MS0+KEMxOTEgQzE5NCBDMTUz IEMxMTIpCitCMTkyLT4oQzE5MiBDMTcxIEMxMzAgQzE4OSkKK0IxOTMtPihDMTkzIEMxNDgg QzEwNyBDMTY2KQorQjE5NC0+KEMxOTQgQzEyNSBDMTg0IEMxNDMpCitCMTk1LT4oQzE5NSBD MTAyIEMxNjEgQzEyMCkKK0IxOTYtPihDMTk2IEMxNzkgQzEzOCBDMTk3KQorQjE5Ny0+KEMx OTcgQzE1NiBDMTE1IEMxNzQpCitCMTk4LT4oQzE5OCBDMTMzIEMxOTIgQzE1MSkKK0IxOTkt PihDMTk5IEMxMTAgQzE2OSBDMTI4KQorQjIwMC0+KEMyMDAgQzE4NyBDMTQ2IEMxMDUpCitD MTAxLT4oQTE2NSBBMTI0KQorQzEwMi0+KEExODMgQTE0MikKK0MxMDMtPihBMTAxIEExNjAp CitDMTA0LT4oQTExOSBBMTc4KQorQzEwNS0+KEExMzcgQTE5NikKK0MxMDYtPihBMTU1IEEx MTQpCitDMTA3LT4oQTE3MyBBMTMyKQorQzEwOC0+KEExOTEgQTE1MCkKK0MxMDktPihBMTA5 IEExNjgpCitDMTEwLT4oQTEyNyBBMTg2KQorQzExMS0+KEExNDUgQTEwNCkKK0MxMTItPihB MTYzIEExMjIpCitDMTEzLT4oQTE4MSBBMTQwKQorQzExNC0+KEExOTkgQTE1OCkKK0MxMTUt PihBMTE3IEExNzYpCitDMTE2LT4oQTEzNSBBMTk0KQorQzExNy0+KEExNTMgQTExMikKK0Mx MTgtPihBMTcxIEExMzApCitDMTE5LT4oQTE4OSBBMTQ4KQorQzEyMC0+KEExMDcgQTE2NikK K0MxMjEtPihBMTI1IEExODQpCitDMTIyLT4oQTE0MyBBMTAyKQorQzEyMy0+KEExNjEgQTEy MCkKK0MxMjQtPihBMTc5IEExMzgpCitDMTI1LT4oQTE5NyBBMTU2KQorQzEyNi0+KEExMTUg QTE3NCkKK0MxMjctPihBMTMzIEExOTIpCitDMTI4LT4oQTE1MSBBMTEwKQorQzEyOS0+KEEx NjkgQTEyOCkKK0MxMzAtPihBMTg3IEExNDYpCitDMTMxLT4oQTEwNSBBMTY0KQorQzEzMi0+ KEExMjMgQTE4MikKK0MxMzMtPihBMTQxIEEyMDApCitDMTM0LT4oQTE1OSBBMTE4KQorQzEz NS0+KEExNzcgQTEzNikKK0MxMzYtPihBMTk1IEExNTQpCitDMTM3LT4oQTExMyBBMTcyKQor QzEzOC0+KEExMzEgQTE5MCkKK0MxMzktPihBMTQ5IEExMDgpCitDMTQwLT4oQTE2NyBBMTI2 KQorQzE0MS0+KEExODUgQTE0NCkKK0MxNDItPihBMTAzIEExNjIpCitDMTQzLT4oQTEyMSBB MTgwKQorQzE0NC0+KEExMzkgQTE5OCkKK0MxNDUtPihBMTU3IEExMTYpCitDMTQ2LT4oQTE3 NSBBMTM0KQorQzE0Ny0+KEExOTMgQTE1MikKK0MxNDgtPihBMTExIEExNzApCitDMTQ5LT4o QTEyOSBBMTg4KQorQzE1MC0+KEExNDcgQTEwNikKK0MxNTEtPihBMTY1IEExMjQpCitDMTUy LT4oQTE4MyBBMTQyKQorQzE1My0+KEExMDEgQTE2MCkKK0MxNTQtPihBMTE5IEExNzgpCitD MTU1LT4oQTEzNyBBMTk2KQorQzE1Ni0+KEExNTUgQTExNCkKK0MxNTctPihBMTczIEExMzIp CitDMTU4LT4oQTE5MSBBMTUwKQorQzE1OS0+KEExMDkgQTE2OCkKK0MxNjAtPihBMTI3IEEx ODYpCitDMTYxLT4oQTE0NSBBMTA0KQorQzE2Mi0+KEExNjMgQTEyMikKK0MxNjMtPihBMTgx IEExNDApCitDMTY0LT4oQTE5OSBBMTU4KQorQzE2NS0+KEExMTcgQTE3NikKK0MxNjYtPihB MTM1IEExOTQpCitDMTY3LT4oQTE1MyBBMTEyKQorQzE2OC0+KEExNzEgQTEzMCkKK0MxNjkt PihBMTg5IEExNDgpCitDMTcwLT4oQTEwNyBBMTY2KQorQzE3MS0+KEExMjUgQTE4NCkKK0Mx NzItPihBMTQzIEExMDIpCitDMTczLT4oQTE2MSBBMTIwKQorQzE3NC0+KEExNzkgQTEzOCkK K0MxNzUtPihBMTk3IEExNTYpCitDMTc2LT4oQTExNSBBMTc0KQorQzE3Ny0+KEExMzMgQTE5 MikKK0MxNzgtPihBMTUxIEExMTApCitDMTc5LT4oQTE2OSBBMTI4KQorQzE4MC0+KEExODcg QTE0NikKK0MxODEtPihBMTA1IEExNjQpCitDMTgyLT4oQTEyMyBBMTgyKQorQzE4My0+KEEx NDEgQTIwMCkKK0MxODQtPihBMTU5IEExMTgpCitDMTg1LT4oQTE3NyBBMTM2KQorQzE4Ni0+ KEExOTUgQTE1NCkKK0MxODctPihBMTEzIEExNzIpCitDMTg4LT4oQTEzMSBBMTkwKQorQzE4 OS0+KEExNDkgQTEwOCkKK0MxOTAtPihBMTY3IEExMjYpCitDMTkxLT4oQTE4NSBBMTQ0KQor QzE5Mi0+KEExMDMgQTE2MikKK0MxOTMtPihBMTIxIEExODApCitDMTk0LT4oQTEzOSBBMTk4 KQorQzE5NS0+KEExNTcgQTExNikKK0MxOTYtPihBMTc1IEExMzQpCitDMTk3LT4oQTE5MyBB MTUyKQorQzE5OC0+KEExMTEgQTE3MCkKK0MxOTktPihBMTI5IEExODgpCitDMjAwLT4oQTE0 NyBBMTA2KQorTTExWDExLT4oTTEzWDE0IE0xMlgxMyBNMTJYMTIgTTEyWDExKQorTTExWDEy LT4oTTEzWDI1IE0xMlgyNCBNMTJYMjMgTTEyWDIyKQorTTExWDEzLT4oTTEzWDIxIE0xMlgy MCBNMTJYMTkgTTEyWDE4KQorTTExWDE0LT4oTTEzWDE3IE0xMlgxNiBNMTJYMTUgTTEyWDE0 KQorTTExWDE1LT4oTTEzWDEzIE0xMlgxMiBNMTJYMTEgTTEyWDI1KQorTTExWDE2LT4oTTEz WDI0IE0xMlgyMyBNMTJYMjIgTTEyWDIxKQorTTExWDE3LT4oTTEzWDIwIE0xMlgxOSBNMTJY MTggTTEyWDE3KQorTTExWDE4LT4oTTEzWDE2IE0xMlgxNSBNMTJYMTQgTTEyWDEzKQorTTEx WDE5LT4oTTEzWDEyIE0xMlgxMSBNMTJYMjUgTTEyWDI0KQorTTExWDIwLT4oTTEzWDIzIE0x MlgyMiBNMTJYMjEgTTEyWDIwKQorTTExWDIxLT4oTTEzWDE5IE0xMlgxOCBNMTJYMTcgTTEy WDE2KQorTTExWDIyLT4oTTEzWDE1IE0xMlgxNCBNMTJYMTMgTTEyWDEyKQorTTExWDIzLT4o TTEzWDExIE0xMlgyNSBNMTJYMjQgTTEyWDIzKQorTTExWDI0LT4oTTEzWDIyIE0xMlgyMSBN MTJYMjAgTTEyWDE5KQorTTExWDI1LT4oTTEzWDE4IE0xMlgxNyBNMTJYMTYgTTEyWDE1KQor TTEyWDExLT4oTTE0WDE0IE0xM1gxMyBNMTNYMTIgTTEzWDExKQorTTEyWDEyLT4oTTE0WDI1 IE0xM1gyNCBNMTNYMjMgTTEzWDIyKQorTTEyWDEzLT4oTTE0WDIxIE0xM1gyMCBNMTNYMTkg TTEzWDE4KQorTTEyWDE0LT4oTTE0WDE3IE0xM1gxNiBNMTNYMTUgTTEzWDE0KQorTTEyWDE1 LT4oTTE0WDEzIE0xM1gxMiBNMTNYMTEgTTEzWDI1KQorTTEyWDE2LT4oTTE0WDI0IE0xM1gy MyBNMTNYMjIgTTEzWDIxKQorTTEyWDE3LT4oTTE0WDIwIE0xM1gxOSBNMTNYMTggTTEzWDE3 KQorTTEyWDE4LT4oTTE0WDE2IE0xM1gxNSBNMTNYMTQgTTEzWDEzKQorTTEyWDE5LT4oTTE0 WDEyIE0xM1gxMSBNMTNYMjUgTTEzWDI0KQorTTEyWDIwLT4oTTE0WDIzIE0xM1gyMiBNMTNY MjEgTTEzWDIwKQorTTEyWDIxLT4oTTE0WDE5IE0xM1gxOCBNMTNYMTcgTTEzWDE2KQorTTEy WDIyLT4oTTE0WDE1IE0xM1gxNCBNMTNYMTMgTTEzWDEyKQorTTEyWDIzLT4oTTE0WDExIE0x M1gyNSBNMTNYMjQgTTEzWDIzKQorTTEyWDI0LT4oTTE0WDIyIE0xM1gyMSBNMTNYMjAgTTEz WDE5KQorTTEyWDI1LT4oTTE0WDE4IE0xM1gxNyBNMTNYMTYgTTEzWDE1KQorTTEzWDExLT4o TTE1WDE0IE0xNFgxMyBNMTRYMTIgTTE0WDExKQorTTEzWDEyLT4oTTE1WDI1IE0xNFgyNCBN MTRYMjMgTTE0WDIyKQorTTEzWDEzLT4oTTE1WDIxIE0xNFgyMCBNMTRYMTkgTTE0WDE4KQor TTEzWDE0LT4oTTE1WDE3IE0xNFgxNiBNMTRYMTUgTTE0WDE0KQorTTEzWDE1LT4oTTE1WDEz IE0xNFgxMiBNMTRYMTEgTTE0WDI1KQorTTEzWDE2LT4oTTE1WDI0IE0xNFgyMyBNMTRYMjIg TTE0WDIxKQorTTEzWDE3LT4oTTE1WDIwIE0xNFgxOSBNMTRYMTggTTE0WDE3KQorTTEzWDE4 LT4oTTE1WDE2IE0xNFgxNSBNMTRYMTQgTTE0WDEzKQorTTEzWDE5LT4oTTE1WDEyIE0xNFgx MSBNMTRYMjUgTTE0WDI0KQorTTEzWDIwLT4oTTE1WDIzIE0xNFgyMiBNMTRYMjEgTTE0WDIw KQorTTEzWDIxLT4oTTE1WDE5IE0xNFgxOCBNMTRYMTcgTTE0WDE2KQorTTEzWDIyLT4oTTE1 WDE1IE0xNFgxNCBNMTRYMTMgTTE0WDEyKQorTTEzWDIzLT4oTTE1WDExIE0xNFgyNSBNMTRY MjQgTTE0WDIzKQorTTEzWDI0LT4oTTE1WDIyIE0xNFgyMSBNMTRYMjAgTTE0WDE5KQorTTEz WDI1LT4oTTE1WDE4IE0xNFgxNyBNMTRYMTYgTTE0WDE1KQorTTE0WDExLT4oTTE2WDE0IE0x NVgxMyBNMTVYMTIgTTE1WDExKQorTTE0WDEyLT4oTTE2WDI1IE0xNVgyNCBNMTVYMjMgTTE1 WDIyKQorTTE0WDEzLT4oTTE2WDIxIE0xNVgyMCBNMTVYMTkgTTE1WDE4KQorTTE0WDE0LT4o TTE2WDE3IE0xNVgxNiBNMTVYMTUgTTE1WDE0KQorTTE0WDE1LT4oTTE2WDEzIE0xNVgxMiBN MTVYMTEgTTE1WDI1KQorTTE0WDE2LT4oTTE2WDI0IE0xNVgyMyBNMTVYMjIgTTE1WDIxKQor TTE0WDE3LT4oTTE2WDIwIE0xNVgxOSBNMTVYMTggTTE1WDE3KQorTTE0WDE4LT4oTTE2WDE2 IE0xNVgxNSBNMTVYMTQgTTE1WDEzKQorTTE0WDE5LT4oTTE2WDEyIE0xNVgxMSBNMTVYMjUg TTE1WDI0KQorTTE0WDIwLT4oTTE2WDIzIE0xNVgyMiBNMTVYMjEgTTE1WDIwKQorTTE0WDIx LT4oTTE2WDE5IE0xNVgxOCBNMTVYMTcgTTE1WDE2KQorTTE0WDIyLT4oTTE2WDE1IE0xNVgx NCBNMTVYMTMgTTE1WDEyKQorTTE0WDIzLT4oTTE2WDExIE0xNVgyNSBNMTVYMjQgTTE1WDIz KQorTTE0WDI0LT4oTTE2WDIyIE0xNVgyMSBNMTVYMjAgTTE1WDE5KQorTTE0WDI1LT4oTTE2 WDE4IE0xNVgxNyBNMTVYMTYgTTE1WDE1KQorTTE1WDExLT4oTTE3WDE0IE0xNlgxMyBNMTZY MTIgTTE2WDExKQorTTE1WDEyLT4oTTE3WDI1IE0xNlgyNCBNMTZYMjMgTTE2WDIyKQorTTE1 WDEzLT4oTTE3WDIxIE0xNlgyMCBNMTZYMTkgTTE2WDE4KQorTTE1WDE0LT4oTTE3WDE3IE0x NlgxNiBNMTZYMTUgTTE2WDE0KQorTTE1WDE1LT4oTTE3WDEzIE0xNlgxMiBNMTZYMTEgTTE2 WDI1KQorTTE1WDE2LT4oTTE3WDI0IE0xNlgyMyBNMTZYMjIgTTE2WDIxKQorTTE1WDE3LT4o TTE3WDIwIE0xNlgxOSBNMTZYMTggTTE2WDE3KQorTTE1WDE4LT4oTTE3WDE2IE0xNlgxNSBN MTZYMTQgTTE2WDEzKQorTTE1WDE5LT4oTTE3WDEyIE0xNlgxMSBNMTZYMjUgTTE2WDI0KQor TTE1WDIwLT4oTTE3WDIzIE0xNlgyMiBNMTZYMjEgTTE2WDIwKQorTTE1WDIxLT4oTTE3WDE5 IE0xNlgxOCBNMTZYMTcgTTE2WDE2KQorTTE1WDIyLT4oTTE3WDE1IE0xNlgxNCBNMTZYMTMg TTE2WDEyKQorTTE1WDIzLT4oTTE3WDExIE0xNlgyNSBNMTZYMjQgTTE2WDIzKQorTTE1WDI0 LT4oTTE3WDIyIE0xNlgyMSBNMTZYMjAgTTE2WDE5KQorTTE1WDI1LT4oTTE3WDE4IE0xNlgx NyBNMTZYMTYgTTE2WDE1KQorTTE2WDExLT4oTTE4WDE0IE0xN1gxMyBNMTdYMTIgTTE3WDEx KQorTTE2WDEyLT4oTTE4WDI1IE0xN1gyNCBNMTdYMjMgTTE3WDIyKQorTTE2WDEzLT4oTTE4 WDIxIE0xN1gyMCBNMTdYMTkgTTE3WDE4KQorTTE2WDE0LT4oTTE4WDE3IE0xN1gxNiBNMTdY MTUgTTE3WDE0KQorTTE2WDE1LT4oTTE4WDEzIE0xN1gxMiBNMTdYMTEgTTE3WDI1KQorTTE2 WDE2LT4oTTE4WDI0IE0xN1gyMyBNMTdYMjIgTTE3WDIxKQorTTE2WDE3LT4oTTE4WDIwIE0x N1gxOSBNMTdYMTggTTE3WDE3KQorTTE2WDE4LT4oTTE4WDE2IE0xN1gxNSBNMTdYMTQgTTE3 WDEzKQorTTE2WDE5LT4oTTE4WDEyIE0xN1gxMSBNMTdYMjUgTTE3WDI0KQorTTE2WDIwLT4o TTE4WDIzIE0xN1gyMiBNMTdYMjEgTTE3WDIwKQorTTE2WDIxLT4oTTE4WDE5IE0xN1gxOCBN MTdYMTcgTTE3WDE2KQorTTE2WDIyLT4oTTE4WDE1IE0xN1gxNCBNMTdYMTMgTTE3WDEyKQor TTE2WDIzLT4oTTE4WDExIE0xN1gyNSBNMTdYMjQgTTE3WDIzKQorTTE2WDI0LT4oTTE4WDIy IE0xN1gyMSBNMTdYMjAgTTE3WDE5KQorTTE2WDI1LT4oTTE4WDE4IE0xN1gxNyBNMTdYMTYg TTE3WDE1KQorTTE3WDExLT4oTTE5WDE0IE0xOFgxMyBNMThYMTIgTTE4WDExKQorTTE3WDEy LT4oTTE5WDI1IE0xOFgyNCBNMThYMjMgTTE4WDIyKQorTTE3WDEzLT4oTTE5WDIxIE0xOFgy MCBNMThYMTkgTTE4WDE4KQorTTE3WDE0LT4oTTE5WDE3IE0xOFgxNiBNMThYMTUgTTE4WDE0 KQorTTE3WDE1LT4oTTE5WDEzIE0xOFgxMiBNMThYMTEgTTE4WDI1KQorTTE3WDE2LT4oTTE5 WDI0IE0xOFgyMyBNMThYMjIgTTE4WDIxKQorTTE3WDE3LT4oTTE5WDIwIE0xOFgxOSBNMThY MTggTTE4WDE3KQorTTE3WDE4LT4oTTE5WDE2IE0xOFgxNSBNMThYMTQgTTE4WDEzKQorTTE3 WDE5LT4oTTE5WDEyIE0xOFgxMSBNMThYMjUgTTE4WDI0KQorTTE3WDIwLT4oTTE5WDIzIE0x OFgyMiBNMThYMjEgTTE4WDIwKQorTTE3WDIxLT4oTTE5WDE5IE0xOFgxOCBNMThYMTcgTTE4 WDE2KQorTTE3WDIyLT4oTTE5WDE1IE0xOFgxNCBNMThYMTMgTTE4WDEyKQorTTE3WDIzLT4o TTE5WDExIE0xOFgyNSBNMThYMjQgTTE4WDIzKQorTTE3WDI0LT4oTTE5WDIyIE0xOFgyMSBN MThYMjAgTTE4WDE5KQorTTE3WDI1LT4oTTE5WDE4IE0xOFgxNyBNMThYMTYgTTE4WDE1KQor TTE4WDExLT4oTTIwWDE0IE0xOVgxMyBNMTlYMTIgTTE5WDExKQorTTE4WDEyLT4oTTIwWDI1 IE0xOVgyNCBNMTlYMjMgTTE5WDIyKQorTTE4WDEzLT4oTTIwWDIxIE0xOVgyMCBNMTlYMTkg TTE5WDE4KQorTTE4WDE0LT4oTTIwWDE3IE0xOVgxNiBNMTlYMTUgTTE5WDE0KQorTTE4WDE1 LT4oTTIwWDEzIE0xOVgxMiBNMTlYMTEgTTE5WDI1KQorTTE4WDE2LT4oTTIwWDI0IE0xOVgy MyBNMTlYMjIgTTE5WDIxKQorTTE4WDE3LT4oTTIwWDIwIE0xOVgxOSBNMTlYMTggTTE5WDE3 KQorTTE4WDE4LT4oTTIwWDE2IE0xOVgxNSBNMTlYMTQgTTE5WDEzKQorTTE4WDE5LT4oTTIw WDEyIE0xOVgxMSBNMTlYMjUgTTE5WDI0KQorTTE4WDIwLT4oTTIwWDIzIE0xOVgyMiBNMTlY MjEgTTE5WDIwKQorTTE4WDIxLT4oTTIwWDE5IE0xOVgxOCBNMTlYMTcgTTE5WDE2KQorTTE4 WDIyLT4oTTIwWDE1IE0xOVgxNCBNMTlYMTMgTTE5WDEyKQorTTE4WDIzLT4oTTIwWDExIE0x OVgyNSBNMTlYMjQgTTE5WDIzKQorTTE4WDI0LT4oTTIwWDIyIE0xOVgyMSBNMTlYMjAgTTE5 WDE5KQorTTE4WDI1LT4oTTIwWDE4IE0xOVgxNyBNMTlYMTYgTTE5WDE1KQorTTE5WDExLT4o TTIxWDE0IE0yMFgxMyBNMjBYMTIgTTIwWDExKQorTTE5WDEyLT4oTTIxWDI1IE0yMFgyNCBN MjBYMjMgTTIwWDIyKQorTTE5WDEzLT4oTTIxWDIxIE0yMFgyMCBNMjBYMTkgTTIwWDE4KQor TTE5WDE0LT4oTTIxWDE3IE0yMFgxNiBNMjBYMTUgTTIwWDE0KQorTTE5WDE1LT4oTTIxWDEz IE0yMFgxMiBNMjBYMTEgTTIwWDI1KQorTTE5WDE2LT4oTTIxWDI0IE0yMFgyMyBNMjBYMjIg TTIwWDIxKQorTTE5WDE3LT4oTTIxWDIwIE0yMFgxOSBNMjBYMTggTTIwWDE3KQorTTE5WDE4 LT4oTTIxWDE2IE0yMFgxNSBNMjBYMTQgTTIwWDEzKQorTTE5WDE5LT4oTTIxWDEyIE0yMFgx MSBNMjBYMjUgTTIwWDI0KQorTTE5WDIwLT4oTTIxWDIzIE0yMFgyMiBNMjBYMjEgTTIwWDIw KQorTTE5WDIxLT4oTTIxWDE5IE0yMFgxOCBNMjBYMTcgTTIwWDE2KQorTTE5WDIyLT4oTTIx WDE1IE0yMFgxNCBNMjBYMTMgTTIwWDEyKQorTTE5WDIzLT4oTTIxWDExIE0yMFgyNSBNMjBY MjQgTTIwWDIzKQorTTE5WDI0LT4oTTIxWDIyIE0yMFgyMSBNMjBYMjAgTTIwWDE5KQorTTE5 WDI1LT4oTTIxWDE4IE0yMFgxNyBNMjBYMTYgTTIwWDE1KQorTTIwWDExLT4oTTIyWDE0IE0y MVgxMyBNMjFYMTIgTTIxWDExKQorTTIwWDEyLT4oTTIyWDI1IE0yMVgyNCBNMjFYMjMgTTIx WDIyKQorTTIwWDEzLT4oTTIyWDIxIE0yMVgyMCBNMjFYMTkgTTIxWDE4KQorTTIwWDE0LT4o TTIyWDE3IE0yMVgxNiBNMjFYMTUgTTIxWDE0KQorTTIwWDE1LT4oTTIyWDEzIE0yMVgxMiBN MjFYMTEgTTIxWDI1KQorTTIwWDE2LT4oTTIyWDI0IE0yMVgyMyBNMjFYMjIgTTIxWDIxKQor TTIwWDE3LT4oTTIyWDIwIE0yMVgxOSBNMjFYMTggTTIxWDE3KQorTTIwWDE4LT4oTTIyWDE2 IE0yMVgxNSBNMjFYMTQgTTIxWDEzKQorTTIwWDE5LT4oTTIyWDEyIE0yMVgxMSBNMjFYMjUg TTIxWDI0KQorTTIwWDIwLT4oTTIyWDIzIE0yMVgyMiBNMjFYMjEgTTIxWDIwKQorTTIwWDIx LT4oTTIyWDE5IE0yMVgxOCBNMjFYMTcgTTIxWDE2KQorTTIwWDIyLT4oTTIyWDE1IE0yMVgx NCBNMjFYMTMgTTIxWDEyKQorTTIwWDIzLT4oTTIyWDExIE0yMVgyNSBNMjFYMjQgTTIxWDIz KQorTTIwWDI0LT4oTTIyWDIyIE0yMVgyMSBNMjFYMjAgTTIxWDE5KQorTTIwWDI1LT4oTTIy WDE4IE0yMVgxNyBNMjFYMTYgTTIxWDE1KQorTTIxWDExLT4oTTIzWDE1IE0yMlgxNCBNMjJY MTMgTTIyWDEyKQorTTIxWDEyLT4oTTExWDExIE0yM1gyNSBNMjJYMjQgTTIyWDIzIE0yMlgy MikKK00yMVgxMy0+KE0yM1gyMSBNMjJYMjAgTTIyWDE5IE0yMlgxOCkKK00yMVgxNC0+KE0y M1gxNyBNMjJYMTYgTTIyWDE1IE0yMlgxNCkKK00yMVgxNS0+KE0yM1gxMyBNMjJYMTIgTTIy WDExIE0yMlgyNSkKK00yMVgxNi0+KE0yM1gyNCBNMjJYMjMgTTIyWDIyIE0yMlgyMSkKK00y MVgxNy0+KE0yM1gyMCBNMjJYMTkgTTIyWDE4IE0yMlgxNykKK00yMVgxOC0+KE0yM1gxNiBN MjJYMTUgTTIyWDE0IE0yMlgxMykKK00yMVgxOS0+KE0yM1gxMiBNMjJYMTEgTTIyWDI1IE0y MlgyNCkKK00yMVgyMC0+KE0yM1gyMyBNMjJYMjIgTTIyWDIxIE0yMlgyMCkKK00yMVgyMS0+ KE0yM1gxOSBNMjJYMTggTTIyWDE3IE0yMlgxNikKK00yMVgyMi0+KE0yM1gxNSBNMjJYMTQg TTIyWDEzIE0yMlgxMikKK00yMVgyMy0+KE0yM1gxMSBNMjJYMjUgTTIyWDI0IE0yMlgyMykK K00yMVgyNC0+KE0yM1gyMiBNMjJYMjEgTTIyWDIwIE0yMlgxOSkKK00yMVgyNS0+KE0yM1gx OCBNMjJYMTcgTTIyWDE2IE0yMlgxNSkKK00yMlgxMS0+KE0yNFgxNiBNMjNYMTUgTTIzWDE0 IE0yM1gxMykKK00yMlgxMi0+KE0xMlgxMiBNMjRYMTEgTTIzWDI1IE0yM1gyNCBNMjNYMjMp CitNMjJYMTMtPihNMjRYMjIgTTIzWDIxIE0yM1gyMCBNMjNYMTkpCitNMjJYMTQtPihNMjRY MTggTTIzWDE3IE0yM1gxNiBNMjNYMTUpCitNMjJYMTUtPihNMjRYMTQgTTIzWDEzIE0yM1gx MiBNMjNYMTEpCitNMjJYMTYtPihNMjRYMjUgTTIzWDI0IE0yM1gyMyBNMjNYMjIpCitNMjJY MTctPihNMjRYMjEgTTIzWDIwIE0yM1gxOSBNMjNYMTgpCitNMjJYMTgtPihNMjRYMTcgTTIz WDE2IE0yM1gxNSBNMjNYMTQpCitNMjJYMTktPihNMjRYMTMgTTIzWDEyIE0yM1gxMSBNMjNY MjUpCitNMjJYMjAtPihNMjRYMjQgTTIzWDIzIE0yM1gyMiBNMjNYMjEpCitNMjJYMjEtPihN MjRYMjAgTTIzWDE5IE0yM1gxOCBNMjNYMTcpCitNMjJYMjItPihNMjRYMTYgTTIzWDE1IE0y M1gxNCBNMjNYMTMpCitNMjJYMjMtPihNMjRYMTIgTTIzWDExIE0yM1gyNSBNMjNYMjQpCitN MjJYMjQtPihNMjRYMjMgTTIzWDIyIE0yM1gyMSBNMjNYMjApCitNMjJYMjUtPihNMjRYMTkg TTIzWDE4IE0yM1gxNyBNMjNYMTYpCitNMjNYMTEtPihNMjVYMTcgTTI0WDE2IE0yNFgxNSBN MjRYMTQpCitNMjNYMTItPihNMTNYMTMgTTI1WDEyIE0yNFgxMSBNMjRYMjUgTTI0WDI0KQor TTIzWDEzLT4oTTI1WDIzIE0yNFgyMiBNMjRYMjEgTTI0WDIwKQorTTIzWDE0LT4oTTI1WDE5 IE0yNFgxOCBNMjRYMTcgTTI0WDE2KQorTTIzWDE1LT4oTTI1WDE1IE0yNFgxNCBNMjRYMTMg TTI0WDEyKQorTTIzWDE2LT4oTTI1WDExIE0yNFgyNSBNMjRYMjQgTTI0WDIzKQorTTIzWDE3 LT4oTTI1WDIyIE0yNFgyMSBNMjRYMjAgTTI0WDE5KQorTTIzWDE4LT4oTTI1WDE4IE0yNFgx NyBNMjRYMTYgTTI0WDE1KQorTTIzWDE5LT4oTTI1WDE0IE0yNFgxMyBNMjRYMTIgTTI0WDEx KQorTTIzWDIwLT4oTTI1WDI1IE0yNFgyNCBNMjRYMjMgTTI0WDIyKQorTTIzWDIxLT4oTTI1 WDIxIE0yNFgyMCBNMjRYMTkgTTI0WDE4KQorTTIzWDIyLT4oTTI1WDE3IE0yNFgxNiBNMjRY MTUgTTI0WDE0KQorTTIzWDIzLT4oTTI1WDEzIE0yNFgxMiBNMjRYMTEgTTI0WDI1KQorTTIz WDI0LT4oTTI1WDI0IE0yNFgyMyBNMjRYMjIgTTI0WDIxKQorTTIzWDI1LT4oTTI1WDIwIE0y NFgxOSBNMjRYMTggTTI0WDE3KQorTTI0WDExLT4oTTI2WDE4IE0yNVgxNyBNMjVYMTYgTTI1 WDE1KQorTTI0WDEyLT4oTTE0WDE0IE0yNlgxMyBNMjVYMTIgTTI1WDExIE0yNVgyNSkKK00y NFgxMy0+KE0yNlgyNCBNMjVYMjMgTTI1WDIyIE0yNVgyMSkKK00yNFgxNC0+KE0yNlgyMCBN MjVYMTkgTTI1WDE4IE0yNVgxNykKK00yNFgxNS0+KE0yNlgxNiBNMjVYMTUgTTI1WDE0IE0y NVgxMykKK00yNFgxNi0+KE0yNlgxMiBNMjVYMTEgTTI1WDI1IE0yNVgyNCkKK00yNFgxNy0+ KE0yNlgyMyBNMjVYMjIgTTI1WDIxIE0yNVgyMCkKK00yNFgxOC0+KE0yNlgxOSBNMjVYMTgg TTI1WDE3IE0yNVgxNikKK00yNFgxOS0+KE0yNlgxNSBNMjVYMTQgTTI1WDEzIE0yNVgxMikK K00yNFgyMC0+KE0yNlgxMSBNMjVYMjUgTTI1WDI0IE0yNVgyMykKK00yNFgyMS0+KE0yNlgy MiBNMjVYMjEgTTI1WDIwIE0yNVgxOSkKK00yNFgyMi0+KE0yNlgxOCBNMjVYMTcgTTI1WDE2 IE0yNVgxNSkKK00yNFgyMy0+KE0yNlgxNCBNMjVYMTMgTTI1WDEyIE0yNVgxMSkKK00yNFgy NC0+KE0yNlgyNSBNMjVYMjQgTTI1WDIzIE0yNVgyMikKK00yNFgyNS0+KE0yNlgyMSBNMjVY MjAgTTI1WDE5IE0yNVgxOCkKK00yNVgxMS0+KE0yN1gxOSBNMjZYMTggTTI2WDE3IE0yNlgx NikKK00yNVgxMi0+KE0xNVgxNSBNMjdYMTQgTTI2WDEzIE0yNlgxMiBNMjZYMTEpCitNMjVY MTMtPihNMjdYMjUgTTI2WDI0IE0yNlgyMyBNMjZYMjIpCitNMjVYMTQtPihNMjdYMjEgTTI2 WDIwIE0yNlgxOSBNMjZYMTgpCitNMjVYMTUtPihNMjdYMTcgTTI2WDE2IE0yNlgxNSBNMjZY MTQpCitNMjVYMTYtPihNMjdYMTMgTTI2WDEyIE0yNlgxMSBNMjZYMjUpCitNMjVYMTctPihN MjdYMjQgTTI2WDIzIE0yNlgyMiBNMjZYMjEpCitNMjVYMTgtPihNMjdYMjAgTTI2WDE5IE0y NlgxOCBNMjZYMTcpCitNMjVYMTktPihNMjdYMTYgTTI2WDE1IE0yNlgxNCBNMjZYMTMpCitN MjVYMjAtPihNMjdYMTIgTTI2WDExIE0yNlgyNSBNMjZYMjQpCitNMjVYMjEtPihNMjdYMjMg TTI2WDIyIE0yNlgyMSBNMjZYMjApCitNMjVYMjItPihNMjdYMTkgTTI2WDE4IE0yNlgxNyBN MjZYMTYpCitNMjVYMjMtPihNMjdYMTUgTTI2WDE0IE0yNlgxMyBNMjZYMTIpCitNMjVYMjQt PihNMjdYMTEgTTI2WDI1IE0yNlgyNCBNMjZYMjMpCitNMjVYMjUtPihNMjdYMjIgTTI2WDIx IE0yNlgyMCBNMjZYMTkpCitNMjZYMTEtPihNMjhYMjAgTTI3WDE5IE0yN1gxOCBNMjdYMTcp CitNMjZYMTItPihNMTZYMTYgTTI4WDE1IE0yN1gxNCBNMjdYMTMgTTI3WDEyKQorTTI2WDEz LT4oTTI4WDExIE0yN1gyNSBNMjdYMjQgTTI3WDIzKQorTTI2WDE0LT4oTTI4WDIyIE0yN1gy MSBNMjdYMjAgTTI3WDE5KQorTTI2WDE1LT4oTTI4WDE4IE0yN1gxNyBNMjdYMTYgTTI3WDE1 KQorTTI2WDE2LT4oTTI4WDE0IE0yN1gxMyBNMjdYMTIgTTI3WDExKQorTTI2WDE3LT4oTTI4 WDI1IE0yN1gyNCBNMjdYMjMgTTI3WDIyKQorTTI2WDE4LT4oTTI4WDIxIE0yN1gyMCBNMjdY MTkgTTI3WDE4KQorTTI2WDE5LT4oTTI4WDE3IE0yN1gxNiBNMjdYMTUgTTI3WDE0KQorTTI2 WDIwLT4oTTI4WDEzIE0yN1gxMiBNMjdYMTEgTTI3WDI1KQorTTI2WDIxLT4oTTI4WDI0IE0y N1gyMyBNMjdYMjIgTTI3WDIxKQorTTI2WDIyLT4oTTI4WDIwIE0yN1gxOSBNMjdYMTggTTI3 WDE3KQorTTI2WDIzLT4oTTI4WDE2IE0yN1gxNSBNMjdYMTQgTTI3WDEzKQorTTI2WDI0LT4o TTI4WDEyIE0yN1gxMSBNMjdYMjUgTTI3WDI0KQorTTI2WDI1LT4oTTI4WDIzIE0yN1gyMiBN MjdYMjEgTTI3WDIwKQorTTI3WDExLT4oTTI5WDIxIE0yOFgyMCBNMjhYMTkgTTI4WDE4KQor TTI3WDEyLT4oTTE3WDE3IE0yOVgxNiBNMjhYMTUgTTI4WDE0IE0yOFgxMykKK00yN1gxMy0+ KE0yOVgxMiBNMjhYMTEgTTI4WDI1IE0yOFgyNCkKK00yN1gxNC0+KE0yOVgyMyBNMjhYMjIg TTI4WDIxIE0yOFgyMCkKK00yN1gxNS0+KE0yOVgxOSBNMjhYMTggTTI4WDE3IE0yOFgxNikK K00yN1gxNi0+KE0yOVgxNSBNMjhYMTQgTTI4WDEzIE0yOFgxMikKK00yN1gxNy0+KE0yOVgx MSBNMjhYMjUgTTI4WDI0IE0yOFgyMykKK00yN1gxOC0+KE0yOVgyMiBNMjhYMjEgTTI4WDIw IE0yOFgxOSkKK00yN1gxOS0+KE0yOVgxOCBNMjhYMTcgTTI4WDE2IE0yOFgxNSkKK00yN1gy MC0+KE0yOVgxNCBNMjhYMTMgTTI4WDEyIE0yOFgxMSkKK00yN1gyMS0+KE0yOVgyNSBNMjhY MjQgTTI4WDIzIE0yOFgyMikKK00yN1gyMi0+KE0yOVgyMSBNMjhYMjAgTTI4WDE5IE0yOFgx OCkKK00yN1gyMy0+KE0yOVgxNyBNMjhYMTYgTTI4WDE1IE0yOFgxNCkKK00yN1gyNC0+KE0y OVgxMyBNMjhYMTIgTTI4WDExIE0yOFgyNSkKK00yN1gyNS0+KE0yOVgyNCBNMjhYMjMgTTI4 WDIyIE0yOFgyMSkKK00yOFgxMS0+KE0zMFgyMiBNMjlYMjEgTTI5WDIwIE0yOVgxOSkKK00y OFgxMi0+KE0xOFgxOCBNMzBYMTcgTTI5WDE2IE0yOVgxNSBNMjlYMTQpCitNMjhYMTMtPihN MzBYMTMgTTI5WDEyIE0yOVgxMSBNMjlYMjUpCitNMjhYMTQtPihNMzBYMjQgTTI5WDIzIE0y OVgyMiBNMjlYMjEpCitNMjhYMTUtPihNMzBYMjAgTTI5WDE5IE0yOVgxOCBNMjlYMTcpCitN MjhYMTYtPihNMzBYMTYgTTI5WDE1IE0yOVgxNCBNMjlYMTMpCitNMjhYMTctPihNMzBYMTIg TTI5WDExIE0yOVgyNSBNMjlYMjQpCitNMjhYMTgtPihNMzBYMjMgTTI5WDIyIE0yOVgyMSBN MjlYMjApCitNMjhYMTktPihNMzBYMTkgTTI5WDE4IE0yOVgxNyBNMjlYMTYpCitNMjhYMjAt PihNMzBYMTUgTTI5WDE0IE0yOVgxMyBNMjlYMTIpCitNMjhYMjEtPihNMzBYMTEgTTI5WDI1 IE0yOVgyNCBNMjlYMjMpCitNMjhYMjItPihNMzBYMjIgTTI5WDIxIE0yOVgyMCBNMjlYMTkp CitNMjhYMjMtPihNMzBYMTggTTI5WDE3IE0yOVgxNiBNMjlYMTUpCitNMjhYMjQtPihNMzBY MTQgTTI5WDEzIE0yOVgxMiBNMjlYMTEpCitNMjhYMjUtPihNMzBYMjUgTTI5WDI0IE0yOVgy MyBNMjlYMjIpCitNMjlYMTEtPihNMzBYMjIgTTMwWDIxIE0zMFgyMCkKK00yOVgxMi0+KE0z MFgxNyBNMzBYMTYgTTMwWDE1KQorTTI5WDEzLT4oTTMwWDEzIE0zMFgxMiBNMzBYMTEpCitN MjlYMTQtPihNMzBYMjQgTTMwWDIzIE0zMFgyMikKK00yOVgxNS0+KE0zMFgyMCBNMzBYMTkg TTMwWDE4KQorTTI5WDE2LT4oTTMwWDE2IE0zMFgxNSBNMzBYMTQpCitNMjlYMTctPihNMzBY MTIgTTMwWDExIE0zMFgyNSkKK00yOVgxOC0+KE0zMFgyMyBNMzBYMjIgTTMwWDIxKQorTTI5 WDE5LT4oTTMwWDE5IE0zMFgxOCBNMzBYMTcpCitNMjlYMjAtPihNMzBYMTUgTTMwWDE0IE0z MFgxMykKK00yOVgyMS0+KE0zMFgxMSBNMzBYMjUgTTMwWDI0KQorTTI5WDIyLT4oTTMwWDIy IE0zMFgyMSBNMzBYMjApCitNMjlYMjMtPihNMzBYMTggTTMwWDE3IE0zMFgxNikKK00yOVgy NC0+KE0zMFgxNCBNMzBYMTMgTTMwWDEyKQorTTI5WDI1LT4oTTMwWDI1IE0zMFgyNCBNMzBY MjMpCitNMzBYMTEKK00zMFgxMgorTTMwWDEzCitNMzBYMTQKK00zMFgxNQorTTMwWDE2CitN MzBYMTcKK00zMFgxOAorTTMwWDE5CitNMzBYMjAKK00zMFgyMQorTTMwWDIyCitNMzBYMjMK K00zMFgyNAorTTMwWDI1CitvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9MSk6IE0z MFgxOT5NMzBYMTU+TTMwWDE2Pk0zMFgxMT5NMzBYMTI+TTMwWDE3Pk0zMFgxMz5NMzBYMTQ+ TTI5WDIwPk0zMFgyMz5NMzBYMjQ+TTMwWDIwPk0zMFgxOD5NMjlYMTU+TTI5WDEyPk0zMFgy Mj5NMzBYMjE+TTI5WDIyPk0zMFgyNT5NMjlYMTk+TTI5WDIzPk0yOVgxNj5NMjlYMjQ+TTI5 WDEzPk0yOVgxNz5NMjlYMTg+TTI4WDE5Pk0yOVgyMT5NMjlYMjU+TTI5WDE0Pk0yOFgyMD5N MjhYMTU+TTI4WDE2Pk0yOFgyMT5NMjdYMTg+TTI5WDExPk0yOFgxNz5NMjhYMTE+TTI4WDIy Pk0yN1gxND5NMjhYMTg+TTI3WDE1Pk0yOFgxMz5NMjdYMTE+TTI4WDIzPk0yN1gyNT5NMjhY MTQ+TTI4WDI1Pk0yN1gyMz5NMjdYMjI+TTI4WDI0Pk0yN1gyMT5NMjdYMTM+TTI3WDE5Pk0y N1gxNz5NMjZYMTE+TTI2WDIzPk0yNlgyMT5NMjZYMjI+TTI2WDIwPk0yNlgxNj5NMjVYMjE+ TTE3WDIyPk0xNVgxNT5NMjBYMTQ+TTIwWDE2Pk0xOFgxOD5NMjhYMTI+TTI3WDI0Pk0yNVgx Nz5NMjdYMjA+TTI2WDE4Pk0yNlgxNz5NMjdYMTY+TTI2WDE5Pk0yNVgxOD5NMjZYMjQ+TTI1 WDIwPk0yNFgxNz5NMjNYMTg+TTI1WDEzPk0yNlgxMz5NMTdYMjM+TTE2WDE2Pk0yNlgxMj5N MjVYMTI+TTI2WDE1Pk0yNFgxOT5NMjVYMjM+TTI1WDI0Pk0yNVgyNT5NMjRYMjA+TTI1WDE5 Pk0yNFgyMT5NMjNYMTc+TTIyWDIxPk0yNFgxND5NMjNYMjI+TTI0WDI0Pk0yMlgyMD5NMjRY MTM+TTI1WDExPk0yNFgxMj5NMjVYMTU+TTIzWDE1Pk0yNVgxNj5NMjRYMjI+TTIzWDEzPk0y NFgxOD5NMjNYMTQ+TTIyWDIyPk0yMVgyMD5NMjRYMjU+TTIzWDE2Pk0yMlgyNT5NMjFYMTk+ TTIyWDE0Pk0yM1gxMT5NMjJYMTU+TTIxWDE4Pk0yMlgxOT5NMjFYMTc+TTIwWDE3Pk0xOVgx Nz5NMjFYMjQ+TTIxWDEyPk0yMFgyMj5NMTlYMTY+TTE4WDI1Pk0xOVgyMT5NMTlYMjA+TTE4 WDI0Pk0yMFgxMj5NMTlYMTE+TTIzWDIwPk0yMlgyND5NMjJYMTY+TTIxWDIxPk0yNVgxND5N MjNYMTk+TTIzWDI0Pk0yMFgyND5NMTlYMTI+TTE4WDE1Pk0xN1gxND5NMTZYMTg+TTE0WDI1 Pk0xNlgyMj5NMTZYMjA+TTE3WDE3Pk0yMlgxMj5NMjFYMTE+TTIwWDE1Pk0xOFgyMj5NMTlY MjQ+TTE5WDE4Pk0xOFgyMT5NMTdYMTY+TTE3WDE4Pk0xNlgyMT5NMTVYMjA+TTE5WDIyPk0x OFgyMD5NMThYMTE+TTE3WDE5Pk0xNlgxNz5NMTVYMjE+TTE2WDE0Pk0xNlgxMz5NMTVYMjI+ TTE0WDIwPk0xN1gyNT5NMTZYMTk+TTE0WDIxPk0xM1gyND5NMTJYMTI+TTE2WDI0Pk0xNVgy Mz5NMTRYMTY+TTE2WDE1Pk0xNVgyNT5NMTVYMTE+TTE1WDEyPk0xNFgxNT5NMTNYMTQ+TTE0 WDIyPk0xM1gyMD5NMTJYMTM+TTExWDExPk0yMlgyMz5NMjFYMTU+TTIxWDE2Pk0yMFgyMT5N MjBYMjA+TTE4WDE3Pk0xOVgyNT5NMThYMjM+TTIxWDEzPk0xNVgxNz5NMTVYMTg+TTE4WDE5 Pk0xN1gyND5NMTZYMTI+TTE3WDEzPk0yMFgyNT5NMTlYMjM+TTE1WDE5Pk0xNFgxMz5NMTNY MTg+TTE1WDEzPk0xN1gxMj5NMTZYMTE+TTE4WDEzPk0xOFgxMj5NMTRYMTE+TTE0WDI0Pk0x M1gxOT5NMTVYMTQ+TTE3WDIwPk0yMFgxMT5NMjBYMTM+TTIxWDE0Pk0xNVgyND5NMTRYMTI+ TTEzWDIyPk0xNFgyMz5NMTNYMjM+TTE0WDE5Pk0xN1gxNT5NMTZYMjU+TTE3WDExPk0xOFgx ND5NMTlYMTk+TTIxWDI1Pk0xM1gxMj5NMTNYMTE+TTE0WDE4Pk0xM1gxMz5NMTJYMTE+TTE1 WDE2Pk0xNFgxND5NMjdYMTI+TTE3WDIxPk0yMFgyMz5NMjJYMTM+TTIxWDIyPk0yNFgxNj5N MjRYMTU+TTI2WDI1Pk0yM1gyNT5NMjZYMTQ+TTIzWDEyPk0yMlgxOD5NMjRYMTE+TTE2WDIz Pk0xOVgxND5NMTlYMTM+TTIxWDIzPk0yMlgxNz5NMjNYMjM+TTIzWDIxPk0yNVgyMj5NMThY MTY+TTE5WDE1Pk0yMFgxOD5NMjBYMTk+TTIyWDExPk0yNFgyMz5DMTU2PkMxMTg+QzE0Mz5D MTM3PkMxNDc+QzEwNj5DMTY4PkMxMTM+QzE2Mz5DMTU1PkMxMDU+QzE0Nj5DMTg3PkExNTA+ QzEzOT5DMTgwPkMxNjQ+QzE5Mz5DMTU3PkExOTE+QzE1OD5CMTg4PkExNTk+QzE4ND5DMTIx PkMxNTQ+QjE3MT5BMTA1PkMxMzE+QzEwND5CMTA0PkMxNjE+QzExMT5CMTQ1PkMxNjA+QjE1 NT5BMTYzPkMxMTI+QzE0Mj5CMTQ4PkMxMzM+QjE5OD5BMTk4PkExMTU+QzExND5CMTU3PkEx NTY+QzE3NT5CMTQ0PkExMjA+QzE3Mz5CMTg0PkExNzQ+QzEyNj5CMTA3PkExMzk+QzE5ND5C MTk0PkExOTQ+QzExNj5CMTE2PkMxNjY+QjE2MD5CMTEwPkExMTA+QzEyOD5CMTI4PkExMjg+ QzE3OT5CMTYyPkExNTQ+QzE4Nj5CMTg3PkExNzk+QzEyND5CMTgxPkExMDE+QzE1Mz5CMTU4 PkExMzY+QzEzNT5DMTc2PkExOTI+QjEzMz5BMTMzPkMxNzc+QjE3Nz5BMTc3PkMxODU+QzEw Mz5CMTQxPkExNDE+QzE4Mz5BMTYyPkMxOTI+QzEyOT5CMTc5PkMxNDQ+QjEyND5CMTgzPkMx Mjc+QjEyNz5BMTI3PkIxMDg+QTExMj5CMTUzPkExNTM+QzE2Nz5CMTY3PkExODY+QTEyMj5D MTYyPkExNDQ+QjE0OT5DMTc0PkIxMzE+QTE4NT5DMTQxPkIxMDY+QTEyNj5BMTY3PkMxNDA+ QjEyMj5BMTcwPkMxOTg+QjE0Mz5DMTE3PkMxMjM+QjEyMz5BMTQ3PkExMDY+QzIwMD5CMTY5 PkMxOTE+QjE3NT5BMTIzPkIxMTg+QTE4Mj5DMTMyPkIxNTE+QTE0NT5BMTA0PkExMDk+QzE1 OT5DMTUwPkIxMTk+QTExOT5BMTc4PkIxNjQ+QjExND5BMTY0PkMxODE+QTEwMj5DMTIyPkIx MzQ+QTE1Nz5BMTE2PkMxOTU+QjE5MT5CMTExPkMxNzI+QjE3Mj5BMTE4PkIxMjk+QTEyOT5D MTQ5PkExMDc+QzE3MD5CMTk3PkExOTc+QTE3Mz5CMTY4PkExMzI+QzEwNz5CMTY1PkExNjA+ QTEzMT5DMTg4PkExNjg+QjEwOT5DMTc4PkExODk+QTE0OD5DMTE5PkMxOTA+QzEyMD5CMTY2 PkIxNzY+QzEwOD5CMTM1PkIxMzk+QTEwMz5CMTc4PkExNjk+QjEzMj5DMTI1PkMxMzg+QjE2 Mz5BMTExPkIxNzA+QzExMD5BMTY1PkMxNTE+QzE2OT5DMTk5PkExMzg+QzE4Mj5BMTM1PkIx MDE+QjE0Mj5DMTAxPkMxNDg+QjE5Mz5CMTUyPkExNTg+QTE5OT5DMTM2PkIxMzc+QTE2MT5C MTIwPkExMDg+QTE0OT5BMTI1PkIxMTM+QTE4ND5DMTcxPkExMzQ+QTE3NT5BMTI0PkIxNTA+ QjE2MT5CMTAyPkExNDY+QTE4Nz5DMTMwPkIxOTI+QjIwMD5BMjAwPkExNDI+QTE4Mz5DMTAy PkIxMDU+QjE1Nj5BMTc2PkMxNjU+QjE0Nz5BMTM3PkExOTY+QjE5MD5BMTkwPkIxMjU+QzEz ND5DMTg5PkIxMjY+QjE4Nj5BMTY2PkIxMzY+QjE5NT5BMTk1PkIxNTQ+QjEzOD5CMTEyPkIx NzM+QTExNz5CMTU5PkIxODI+QTE4MT5BMTQwPkMxNDU+QjExNz5BMTUyPkExOTM+QzE5Nz5C MTMwPkExNzI+QTExMz5BMTUxPkIxMTU+QTE0Mz5CMTQwPkIxODU+QjEwMz5BMTIxPkExODA+ QTEzMD5BMTcxPkIxOTk+QzE5Nj5CMTQ2PkIxODA+QzExNT5CMTc0PkIxMjE+QTE4OD5CMTk2 PkIxODk+QzE1Mj5DMTA5PkExNTU+QTExND5NMTRYMTc+TTEzWDE1Pk0xM1gxNj5NMTNYMTc+ TTEyWDE3Pk0xMlgyMT5NMTJYMjU+TTEyWDE0Pk0xM1gyNT5NMTJYMTU+TTEzWDIxPk0xMlgx Nj5NMTJYMTg+TTEyWDE5Pk0xMlgyMD5NMTJYMjI+TTEyWDIzPk0xMlgyND5NMTFYMjU+TTEx WDI0Pk0xMVgyMz5NMTFYMjI+TTExWDIxPk0xMVgyMD5NMTFYMTk+TTExWDE4Pk0xMVgxNz5N MTFYMTY+TTExWDE1Pk0xMVgxND5NMTFYMTM+TTExWDEyPnt9PE0xMVgxMjxNMTFYMTM8TTEx WDE0PE0xMVgxNTxNMTFYMTY8TTExWDE3PE0xMVgxODxNMTFYMTk8TTExWDIwPE0xMVgyMTxN MTFYMjI8TTExWDIzPE0xMVgyNDxNMTFYMjU8TTEyWDI0PE0xMlgyMzxNMTJYMjI8TTEyWDIw PE0xMlgxOTxNMTJYMTg8TTEyWDE2PE0xM1gyMTxNMTJYMTU8TTEzWDI1PE0xMlgxNDxNMTJY MjU8TTEyWDIxPE0xMlgxNzxNMTNYMTc8TTEzWDE2PE0xM1gxNTxNMTRYMTc8QTExNDxBMTU1 PEMxMDk8QzE1MjxCMTg5PEIxOTY8QTE4ODxCMTIxPEIxNzQ8QzExNTxCMTgwPEIxNDY8QzE5 NjxCMTk5PEExNzE8QTEzMDxBMTgwPEExMjE8QjEwMzxCMTg1PEIxNDA8QTE0MzxCMTE1PEEx NTE8QTExMzxBMTcyPEIxMzA8QzE5NzxBMTkzPEExNTI8QjExNzxDMTQ1PEExNDA8QTE4MTxC MTgyPEIxNTk8QTExNzxCMTczPEIxMTI8QjEzODxCMTU0PEExOTU8QjE5NTxCMTM2PEExNjY8 QjE4NjxCMTI2PEMxODk8QzEzNDxCMTI1PEExOTA8QjE5MDxBMTk2PEExMzc8QjE0NzxDMTY1 PEExNzY8QjE1NjxCMTA1PEMxMDI8QTE4MzxBMTQyPEEyMDA8QjIwMDxCMTkyPEMxMzA8QTE4 NzxBMTQ2PEIxMDI8QjE2MTxCMTUwPEExMjQ8QTE3NTxBMTM0PEMxNzE8QTE4NDxCMTEzPEEx MjU8QTE0OTxBMTA4PEIxMjA8QTE2MTxCMTM3PEMxMzY8QTE5OTxBMTU4PEIxNTI8QjE5MzxD MTQ4PEMxMDE8QjE0MjxCMTAxPEExMzU8QzE4MjxBMTM4PEMxOTk8QzE2OTxDMTUxPEExNjU8 QzExMDxCMTcwPEExMTE8QjE2MzxDMTM4PEMxMjU8QjEzMjxBMTY5PEIxNzg8QTEwMzxCMTM5 PEIxMzU8QzEwODxCMTc2PEIxNjY8QzEyMDxDMTkwPEMxMTk8QTE0ODxBMTg5PEMxNzg8QjEw OTxBMTY4PEMxODg8QTEzMTxBMTYwPEIxNjU8QzEwNzxBMTMyPEIxNjg8QTE3MzxBMTk3PEIx OTc8QzE3MDxBMTA3PEMxNDk8QTEyOTxCMTI5PEExMTg8QjE3MjxDMTcyPEIxMTE8QjE5MTxD MTk1PEExMTY8QTE1NzxCMTM0PEMxMjI8QTEwMjxDMTgxPEExNjQ8QjExNDxCMTY0PEExNzg8 QTExOTxCMTE5PEMxNTA8QzE1OTxBMTA5PEExMDQ8QTE0NTxCMTUxPEMxMzI8QTE4MjxCMTE4 PEExMjM8QjE3NTxDMTkxPEIxNjk8QzIwMDxBMTA2PEExNDc8QjEyMzxDMTIzPEMxMTc8QjE0 MzxDMTk4PEExNzA8QjEyMjxDMTQwPEExNjc8QTEyNjxCMTA2PEMxNDE8QTE4NTxCMTMxPEMx NzQ8QjE0OTxBMTQ0PEMxNjI8QTEyMjxBMTg2PEIxNjc8QzE2NzxBMTUzPEIxNTM8QTExMjxC MTA4PEExMjc8QjEyNzxDMTI3PEIxODM8QjEyNDxDMTQ0PEIxNzk8QzEyOTxDMTkyPEExNjI8 QzE4MzxBMTQxPEIxNDE8QzEwMzxDMTg1PEExNzc8QjE3NzxDMTc3PEExMzM8QjEzMzxBMTky PEMxNzY8QzEzNTxBMTM2PEIxNTg8QzE1MzxBMTAxPEIxODE8QzEyNDxBMTc5PEIxODc8QzE4 NjxBMTU0PEIxNjI8QzE3OTxBMTI4PEIxMjg8QzEyODxBMTEwPEIxMTA8QjE2MDxDMTY2PEIx MTY8QzExNjxBMTk0PEIxOTQ8QzE5NDxBMTM5PEIxMDc8QzEyNjxBMTc0PEIxODQ8QzE3MzxB MTIwPEIxNDQ8QzE3NTxBMTU2PEIxNTc8QzExNDxBMTE1PEExOTg8QjE5ODxDMTMzPEIxNDg8 QzE0MjxDMTEyPEExNjM8QjE1NTxDMTYwPEIxNDU8QzExMTxDMTYxPEIxMDQ8QzEwNDxDMTMx PEExMDU8QjE3MTxDMTU0PEMxMjE8QzE4NDxBMTU5PEIxODg8QzE1ODxBMTkxPEMxNTc8QzE5 MzxDMTY0PEMxODA8QzEzOTxBMTUwPEMxODc8QzE0NjxDMTA1PEMxNTU8QzE2MzxDMTEzPEMx Njg8QzEwNjxDMTQ3PEMxMzc8QzE0MzxDMTE4PEMxNTY8TTI0WDIzPE0yMlgxMTxNMjBYMTk8 TTIwWDE4PE0xOVgxNTxNMThYMTY8TTI1WDIyPE0yM1gyMTxNMjNYMjM8TTIyWDE3PE0yMVgy MzxNMTlYMTM8TTE5WDE0PE0xNlgyMzxNMjRYMTE8TTIyWDE4PE0yM1gxMjxNMjZYMTQ8TTIz WDI1PE0yNlgyNTxNMjRYMTU8TTI0WDE2PE0yMVgyMjxNMjJYMTM8TTIwWDIzPE0xN1gyMTxN MjdYMTI8TTE0WDE0PE0xNVgxNjxNMTJYMTE8TTEzWDEzPE0xNFgxODxNMTNYMTE8TTEzWDEy PE0yMVgyNTxNMTlYMTk8TTE4WDE0PE0xN1gxMTxNMTZYMjU8TTE3WDE1PE0xNFgxOTxNMTNY MjM8TTE0WDIzPE0xM1gyMjxNMTRYMTI8TTE1WDI0PE0yMVgxNDxNMjBYMTM8TTIwWDExPE0x N1gyMDxNMTVYMTQ8TTEzWDE5PE0xNFgyNDxNMTRYMTE8TTE4WDEyPE0xOFgxMzxNMTZYMTE8 TTE3WDEyPE0xNVgxMzxNMTNYMTg8TTE0WDEzPE0xNVgxOTxNMTlYMjM8TTIwWDI1PE0xN1gx MzxNMTZYMTI8TTE3WDI0PE0xOFgxOTxNMTVYMTg8TTE1WDE3PE0yMVgxMzxNMThYMjM8TTE5 WDI1PE0xOFgxNzxNMjBYMjA8TTIwWDIxPE0yMVgxNjxNMjFYMTU8TTIyWDIzPE0xMVgxMTxN MTJYMTM8TTEzWDIwPE0xNFgyMjxNMTNYMTQ8TTE0WDE1PE0xNVgxMjxNMTVYMTE8TTE1WDI1 PE0xNlgxNTxNMTRYMTY8TTE1WDIzPE0xNlgyNDxNMTJYMTI8TTEzWDI0PE0xNFgyMTxNMTZY MTk8TTE3WDI1PE0xNFgyMDxNMTVYMjI8TTE2WDEzPE0xNlgxNDxNMTVYMjE8TTE2WDE3PE0x N1gxOTxNMThYMTE8TTE4WDIwPE0xOVgyMjxNMTVYMjA8TTE2WDIxPE0xN1gxODxNMTdYMTY8 TTE4WDIxPE0xOVgxODxNMTlYMjQ8TTE4WDIyPE0yMFgxNTxNMjFYMTE8TTIyWDEyPE0xN1gx NzxNMTZYMjA8TTE2WDIyPE0xNFgyNTxNMTZYMTg8TTE3WDE0PE0xOFgxNTxNMTlYMTI8TTIw WDI0PE0yM1gyNDxNMjNYMTk8TTI1WDE0PE0yMVgyMTxNMjJYMTY8TTIyWDI0PE0yM1gyMDxN MTlYMTE8TTIwWDEyPE0xOFgyNDxNMTlYMjA8TTE5WDIxPE0xOFgyNTxNMTlYMTY8TTIwWDIy PE0yMVgxMjxNMjFYMjQ8TTE5WDE3PE0yMFgxNzxNMjFYMTc8TTIyWDE5PE0yMVgxODxNMjJY MTU8TTIzWDExPE0yMlgxNDxNMjFYMTk8TTIyWDI1PE0yM1gxNjxNMjRYMjU8TTIxWDIwPE0y MlgyMjxNMjNYMTQ8TTI0WDE4PE0yM1gxMzxNMjRYMjI8TTI1WDE2PE0yM1gxNTxNMjVYMTU8 TTI0WDEyPE0yNVgxMTxNMjRYMTM8TTIyWDIwPE0yNFgyNDxNMjNYMjI8TTI0WDE0PE0yMlgy MTxNMjNYMTc8TTI0WDIxPE0yNVgxOTxNMjRYMjA8TTI1WDI1PE0yNVgyNDxNMjVYMjM8TTI0 WDE5PE0yNlgxNTxNMjVYMTI8TTI2WDEyPE0xNlgxNjxNMTdYMjM8TTI2WDEzPE0yNVgxMzxN MjNYMTg8TTI0WDE3PE0yNVgyMDxNMjZYMjQ8TTI1WDE4PE0yNlgxOTxNMjdYMTY8TTI2WDE3 PE0yNlgxODxNMjdYMjA8TTI1WDE3PE0yN1gyNDxNMjhYMTI8TTE4WDE4PE0yMFgxNjxNMjBY MTQ8TTE1WDE1PE0xN1gyMjxNMjVYMjE8TTI2WDE2PE0yNlgyMDxNMjZYMjI8TTI2WDIxPE0y NlgyMzxNMjZYMTE8TTI3WDE3PE0yN1gxOTxNMjdYMTM8TTI3WDIxPE0yOFgyNDxNMjdYMjI8 TTI3WDIzPE0yOFgyNTxNMjhYMTQ8TTI3WDI1PE0yOFgyMzxNMjdYMTE8TTI4WDEzPE0yN1gx NTxNMjhYMTg8TTI3WDE0PE0yOFgyMjxNMjhYMTE8TTI4WDE3PE0yOVgxMTxNMjdYMTg8TTI4 WDIxPE0yOFgxNjxNMjhYMTU8TTI4WDIwPE0yOVgxNDxNMjlYMjU8TTI5WDIxPE0yOFgxOTxN MjlYMTg8TTI5WDE3PE0yOVgxMzxNMjlYMjQ8TTI5WDE2PE0yOVgyMzxNMjlYMTk8TTMwWDI1 PE0yOVgyMjxNMzBYMjE8TTMwWDIyPE0yOVgxMjxNMjlYMTU8TTMwWDE4PE0zMFgyMDxNMzBY MjQ8TTMwWDIzPE0yOVgyMDxNMzBYMTQ8TTMwWDEzPE0zMFgxNzxNMzBYMTI8TTMwWDExPE0z MFgxNjxNMzBYMTU8TTMwWDE5CitvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9Mik6 IE0zMFgxOT5NMzBYMTU+TTMwWDE2Pk0zMFgxMT5NMzBYMTI+TTMwWDE3Pk0zMFgxMz5NMzBY MTQ+TTI5WDIwPk0zMFgyMz5NMzBYMjQ+TTMwWDIwPk0zMFgxOD5NMjlYMTU+TTI5WDEyPk0z MFgyMj5NMzBYMjE+TTI5WDIyPk0zMFgyNT5NMjlYMTk+TTI5WDIzPk0yOVgxNj5NMjlYMjQ+ TTI5WDEzPk0yOVgxNz5NMjlYMTg+TTI4WDE5Pk0yOVgyMT5NMjlYMjU+TTI5WDE0Pk0yOFgy MD5NMjhYMTU+TTI4WDE2Pk0yOFgyMT5NMjdYMTg+TTI5WDExPk0yOFgxNz5NMjhYMTE+TTI4 WDIyPk0yOFgyND5NMjhYMjM+TTI3WDIxPk0yOFgxMz5NMjdYMjA+TTI3WDE5Pk0yNlgxND5N MjdYMjU+TTI4WDE4Pk0yN1gxMT5NMjhYMjU+TTI3WDI0Pk0yNlgyND5NMjdYMTU+TTI3WDE0 Pk0yN1gxMz5NMjZYMjM+TTI3WDE3Pk0yNlgyMj5NMjVYMTM+TTI4WDE0Pk0yN1gxNj5NMjZY MTk+TTI2WDE4Pk0yN1gyMz5NMjdYMjI+TTI2WDE3Pk0yNVgxOD5NMjZYMjE+TTI1WDE3Pk0y NlgyMD5NMjZYMTU+TTI2WDEzPk0yNVgxOT5NMjRYMTQ+TTI1WDIzPk0yNlgxMT5NMjZYMjU+ TTI1WDE2Pk0yNVgxNT5NMjRYMjI+TTI1WDIxPk0yNVgyMD5NMjRYMjE+TTI1WDI1Pk0yNVgy ND5NMjRYMjA+TTIzWDEzPk0yMlgxNT5NMjVYMTQ+TTI0WDE5Pk0yM1gxNz5NMjRYMjU+TTIz WDI0Pk0yNFgxMz5NMjNYMTU+TTI0WDE4Pk0yM1gxND5NMjJYMTE+TTI0WDE1Pk0yM1gyMj5N MjRYMTE+TTIzWDE5Pk0yMlgyMT5NMjRYMjQ+TTIzWDIxPk0yMlgyMD5NMjNYMjU+TTIyWDE5 Pk0yMVgyND5NMjBYMjM+TTIyWDIyPk0yNVgxMT5NMjNYMTY+TTIyWDE4Pk0yM1gyMD5NMjJY MTc+TTIxWDIxPk0yMVgyMD5NMjBYMjQ+TTIyWDE0Pk0yMlgxMz5NMjFYMTE+TTIxWDE3Pk0y MlgyMz5NMjFYMTY+TTIwWDI1Pk0xOVgyMz5NMThYMTY+TTIxWDIyPk0yMFgyMD5NMjBYMTk+ TTIxWDEzPk0yMFgxOD5NMTlYMTM+TTIxWDE4Pk0yMFgyMT5NMTlYMjQ+TTE4WDEyPk0yMFgx ND5NMjBYMTM+TTIyWDI1Pk0yMFgxMj5NMjBYMTU+TTE5WDE0Pk0xOFgyMj5NMTlYMTg+TTIw WDE3Pk0xOVgxNz5NMTlYMTY+TTE4WDIxPk0xN1gyMD5NMTlYMTk+TTE4WDEzPk0xN1gxMT5N MThYMTc+TTE5WDI1Pk0xOFgxNT5NMTdYMjU+TTE4WDE5Pk0xN1gyND5NMTZYMTk+TTE1WDE3 Pk0xN1gyMT5NMTZYMjQ+TTE4WDIzPk0xN1gxNj5NMTZYMjU+TTE5WDE1Pk0xOFgyNT5NMTdY MjM+TTE2WDIzPk0xNVgyMz5NMThYMTQ+TTE3WDE0Pk0xNlgxND5NMTdYMTg+TTE2WDEzPk0x N1gyMj5NMTZYMTI+TTE1WDIyPk0xNFgxNj5NMTdYMTI+TTE2WDIyPk0xNVgxMj5NMTZYMTE+ TTE1WDExPk0xNlgxNT5NMTVYMjU+TTE0WDE1Pk0xM1gxND5NMTVYMTg+TTE2WDIxPk0xNVgx Nj5NMTRYMjE+TTE1WDE0Pk0xNlgyMD5NMTVYMTM+TTE0WDIyPk0xNVgyMD5NMTRYMjA+TTEz WDIwPk0xNFgxMT5NMTVYMTk+TTE0WDI0Pk0xM1gxOT5NMTRYMTM+TTEzWDE4Pk0xMlgxMz5N MTVYMjQ+TTE0WDIzPk0xM1gxMj5NMTRYMTI+TTEzWDExPk0xMlgxMT5NMTFYMTE+TTIxWDEy Pk0yMFgxMT5NMTlYMTE+TTE4WDExPk0xN1gxNT5NMTZYMTg+TTE0WDI1Pk0xNFgxOT5NMTNY MjQ+TTEzWDIzPk0xM1gyMj5NMTJYMTI+TTIyWDEyPk0yMVgxNT5NMTlYMjI+TTE4WDIwPk0x NlgxNz5NMTRYMTQ+TTI0WDEyPk0yM1gyMz5NMjJYMTY+TTIxWDE0Pk0yMFgyMj5NMThYMjQ+ TTE2WDE2Pk0yNlgxMj5NMjRYMTY+TTIzWDExPk0yMVgyMz5NMTlYMjA+TTE3WDE3Pk0yN1gx Mj5NMjZYMTY+TTI1WDIyPk0yNFgxNz5NMjNYMTg+TTIxWDI1Pk0xOVgxMj5NMTdYMTk+TTE1 WDIxPk0xNFgxOD5NMTNYMTM+TTIzWDEyPk0yMVgxOT5NMTlYMjE+TTE3WDEzPk0xNVgxNT5N MjVYMTI+TTI0WDIzPk0yMlgyND5NMjBYMTY+TTE4WDE4Pk0yOFgxMj5BMTUwPkMxNTg+QjEx Mj5BMTEyPkMxNjc+QjE0Nj5BMTQ2PkMxODA+QjE4MD5BMTgwPkMxNDM+QjE0Mz5BMTE1PkMx MjY+QjEyNj5BMTI2PkMxOTA+QjE5MD5BMTkwPkMxMzg+QjEzOD5BMTM4PkMxNzQ+QjE3ND5B MTAyPkMxMjI+QjEyMj5BMTIyPkMxNjI+QjE2Mj5BMTYyPkMxNDI+QjE0Mj5BMTQyPkMxMDI+ QjEwMj5BMTc0PkMxNzY+QjE3Nj5BMTc2PkMxMTU+QjExNT5BMTQzPkMxNzI+QjE3Mj5BMTcy PkMxODc+QjE4Nz5BMTg3PkMxMzA+QjEzMD5BMTMwPkMxMTg+QjExOD5BMTE4PkMxODQ+QjE4 ND5BMTg0PkMxNzE+QjE3MT5BMTcxPkMxNjg+QjE4Mj5BMTgyPkMxODI+QjE2OD5BMTY4PkMx MDk+QjEwOT5BMTA5PkMxNTk+QjE1OT5BMTU5PkMxMzQ+QjEzND5BMTM0PkMxNDY+QjE2Nz5B MTY3PkMxNDA+QjE0MD5BMTQwPkMxNjM+QjE2Mz5BMTYzPkMxMTI+QjE1OD5BMTU4PkMxNjQ+ QjE2ND5BMTY0PkMxMzE+QjEzMT5BMTMxPkMxODg+QjE4OD5BMTg4PkMxOTk+QjE5OT5BMTk5 PkMxMTQ+QjExND5BMTE0PkMxMDY+QjEwNj5BMTA2PkMyMDA+QjIwMD5BMjAwPkMxODM+QjE4 Mz5BMTgzPkMxNTI+QjE1Mj5BMTUyPkMxNDc+QjE0Nz5BMTQ3PkMxNTA+QjE1MD5BMTk4PkMx NDQ+QjE0ND5BMTQ0PkMxOTE+QjE5MT5BMTkxPkMxMDg+QjEwOD5BMTA4PkMxMzk+QjEzOT5B MTM5PkMxOTQ+QjE5ND5BMTk0PkMxNjY+QjE2Nj5BMTY2PkMxMjA+QjEyMD5BMTIwPkMxMjM+ QjEyMz5BMTIzPkMxMzI+QjEzMj5BMTMyPkMxMDc+QjEwNz5BMTA3PkMxNzA+QjE3MD5BMTcw PkMxOTg+QjE5OD5BMTU2PkMxMjU+QjEyNT5BMTI1PkMxMjE+QjEyMT5BMTIxPkMxOTM+QjE5 Mz5BMTkzPkMxOTc+QjE5Nz5BMTk3PkMxNzU+QjE3NT5BMTc1PkMxOTY+QjE5Nj5BMTk2PkMx MDU+QjEwNT5BMTA1PkMxODE+QjE4MT5BMTgxPkMxMTM+QjExMz5BMTEzPkMxMzc+QjEzNz5B MTM3PkMxNTU+QjE1NT5BMTU1PkMxNTY+QjE1Nj5BMTEwPkMxMjg+QjEyOD5BMTI4PkMxNzk+ QjE3OT5BMTc5PkMxMjQ+QjEyND5BMTI0PkMxNTE+QjE1MT5BMTUxPkMxNzg+QjE3OD5BMTc4 PkMxMDQ+QjEwND5BMTA0PkMxMTE+QjExMT5BMTExPkMxNDg+QjE0OD5BMTQ4PkMxNjk+QjE2 OT5BMTY5PkMxMjk+QjEyOT5BMTI5PkMxNDk+QjE0OT5BMTQ5PkMxODk+QjE4OT5BMTg5PkMx MTk+QjExOT5BMTE5PkMxNTQ+QjE1ND5BMTU0PkMxMzY+QjEzNj5BMTM2PkMxMzU+QjEzNT5B MTM1PkMxMTY+QjExNj5BMTE2PkMxNDU+QjE0NT5BMTQ1PkMxNjE+QjE2MT5BMTYxPkMxNzM+ QjE3Mz5BMTczPkMxNTc+QjE1Nz5BMTU3PkMxOTU+QjE5NT5BMTk1PkMxODY+QjE4Nj5BMTg2 PkMxNjA+QjE2MD5BMTYwPkMxNTM+QjE1Mz5BMTUzPkMxMTc+QjExNz5BMTE3PkMxNjU+QjE2 NT5BMTY1PkMxMDE+QjEwMT5BMTAxPkMxMDM+QjEwMz5BMTAzPkMxOTI+QjE5Mj5BMTkyPkMx Nzc+QjE3Nz5BMTc3PkMxODU+QjE4NT5BMTg1PkMxNDE+QjE0MT5BMTQxPkMxMzM+QjEzMz5B MTMzPkMxMjc+QjEyNz5BMTI3PkMxMTA+QjExMD5NMTRYMTc+TTEzWDE1Pk0xM1gxNj5NMTNY MTc+TTEyWDE3Pk0xMlgyMT5NMTJYMjU+TTEyWDE0Pk0xM1gyNT5NMTJYMTU+TTEzWDIxPk0x MlgxNj5NMTJYMTg+TTEyWDE5Pk0xMlgyMD5NMTJYMjI+TTEyWDIzPk0xMlgyND5NMTFYMjU+ TTExWDI0Pk0xMVgyMz5NMTFYMjI+TTExWDIxPk0xMVgyMD5NMTFYMTk+TTExWDE4Pk0xMVgx Nz5NMTFYMTY+TTExWDE1Pk0xMVgxND5NMTFYMTM+TTExWDEyPnt9PE0xMVgxMjxNMTFYMTM8 TTExWDE0PE0xMVgxNTxNMTFYMTY8TTExWDE3PE0xMVgxODxNMTFYMTk8TTExWDIwPE0xMVgy MTxNMTFYMjI8TTExWDIzPE0xMVgyNDxNMTFYMjU8TTEyWDI0PE0xMlgyMzxNMTJYMjI8TTEy WDIwPE0xMlgxOTxNMTJYMTg8TTEyWDE2PE0xM1gyMTxNMTJYMTU8TTEzWDI1PE0xMlgxNDxN MTJYMjU8TTEyWDIxPE0xMlgxNzxNMTNYMTc8TTEzWDE2PE0xM1gxNTxNMTRYMTc8QjExMDxD MTEwPEExMjc8QjEyNzxDMTI3PEExMzM8QjEzMzxDMTMzPEExNDE8QjE0MTxDMTQxPEExODU8 QjE4NTxDMTg1PEExNzc8QjE3NzxDMTc3PEExOTI8QjE5MjxDMTkyPEExMDM8QjEwMzxDMTAz PEExMDE8QjEwMTxDMTAxPEExNjU8QjE2NTxDMTY1PEExMTc8QjExNzxDMTE3PEExNTM8QjE1 MzxDMTUzPEExNjA8QjE2MDxDMTYwPEExODY8QjE4NjxDMTg2PEExOTU8QjE5NTxDMTk1PEEx NTc8QjE1NzxDMTU3PEExNzM8QjE3MzxDMTczPEExNjE8QjE2MTxDMTYxPEExNDU8QjE0NTxD MTQ1PEExMTY8QjExNjxDMTE2PEExMzU8QjEzNTxDMTM1PEExMzY8QjEzNjxDMTM2PEExNTQ8 QjE1NDxDMTU0PEExMTk8QjExOTxDMTE5PEExODk8QjE4OTxDMTg5PEExNDk8QjE0OTxDMTQ5 PEExMjk8QjEyOTxDMTI5PEExNjk8QjE2OTxDMTY5PEExNDg8QjE0ODxDMTQ4PEExMTE8QjEx MTxDMTExPEExMDQ8QjEwNDxDMTA0PEExNzg8QjE3ODxDMTc4PEExNTE8QjE1MTxDMTUxPEEx MjQ8QjEyNDxDMTI0PEExNzk8QjE3OTxDMTc5PEExMjg8QjEyODxDMTI4PEExMTA8QjE1NjxD MTU2PEExNTU8QjE1NTxDMTU1PEExMzc8QjEzNzxDMTM3PEExMTM8QjExMzxDMTEzPEExODE8 QjE4MTxDMTgxPEExMDU8QjEwNTxDMTA1PEExOTY8QjE5NjxDMTk2PEExNzU8QjE3NTxDMTc1 PEExOTc8QjE5NzxDMTk3PEExOTM8QjE5MzxDMTkzPEExMjE8QjEyMTxDMTIxPEExMjU8QjEy NTxDMTI1PEExNTY8QjE5ODxDMTk4PEExNzA8QjE3MDxDMTcwPEExMDc8QjEwNzxDMTA3PEEx MzI8QjEzMjxDMTMyPEExMjM8QjEyMzxDMTIzPEExMjA8QjEyMDxDMTIwPEExNjY8QjE2NjxD MTY2PEExOTQ8QjE5NDxDMTk0PEExMzk8QjEzOTxDMTM5PEExMDg8QjEwODxDMTA4PEExOTE8 QjE5MTxDMTkxPEExNDQ8QjE0NDxDMTQ0PEExOTg8QjE1MDxDMTUwPEExNDc8QjE0NzxDMTQ3 PEExNTI8QjE1MjxDMTUyPEExODM8QjE4MzxDMTgzPEEyMDA8QjIwMDxDMjAwPEExMDY8QjEw NjxDMTA2PEExMTQ8QjExNDxDMTE0PEExOTk8QjE5OTxDMTk5PEExODg8QjE4ODxDMTg4PEEx MzE8QjEzMTxDMTMxPEExNjQ8QjE2NDxDMTY0PEExNTg8QjE1ODxDMTEyPEExNjM8QjE2MzxD MTYzPEExNDA8QjE0MDxDMTQwPEExNjc8QjE2NzxDMTQ2PEExMzQ8QjEzNDxDMTM0PEExNTk8 QjE1OTxDMTU5PEExMDk8QjEwOTxDMTA5PEExNjg8QjE2ODxDMTgyPEExODI8QjE4MjxDMTY4 PEExNzE8QjE3MTxDMTcxPEExODQ8QjE4NDxDMTg0PEExMTg8QjExODxDMTE4PEExMzA8QjEz MDxDMTMwPEExODc8QjE4NzxDMTg3PEExNzI8QjE3MjxDMTcyPEExNDM8QjExNTxDMTE1PEEx NzY8QjE3NjxDMTc2PEExNzQ8QjEwMjxDMTAyPEExNDI8QjE0MjxDMTQyPEExNjI8QjE2MjxD MTYyPEExMjI8QjEyMjxDMTIyPEExMDI8QjE3NDxDMTc0PEExMzg8QjEzODxDMTM4PEExOTA8 QjE5MDxDMTkwPEExMjY8QjEyNjxDMTI2PEExMTU8QjE0MzxDMTQzPEExODA8QjE4MDxDMTgw PEExNDY8QjE0NjxDMTY3PEExMTI8QjExMjxDMTU4PEExNTA8TTI4WDEyPE0xOFgxODxNMjBY MTY8TTIyWDI0PE0yNFgyMzxNMjVYMTI8TTE1WDE1PE0xN1gxMzxNMTlYMjE8TTIxWDE5PE0y M1gxMjxNMTNYMTM8TTE0WDE4PE0xNVgyMTxNMTdYMTk8TTE5WDEyPE0yMVgyNTxNMjNYMTg8 TTI0WDE3PE0yNVgyMjxNMjZYMTY8TTI3WDEyPE0xN1gxNzxNMTlYMjA8TTIxWDIzPE0yM1gx MTxNMjRYMTY8TTI2WDEyPE0xNlgxNjxNMThYMjQ8TTIwWDIyPE0yMVgxNDxNMjJYMTY8TTIz WDIzPE0yNFgxMjxNMTRYMTQ8TTE2WDE3PE0xOFgyMDxNMTlYMjI8TTIxWDE1PE0yMlgxMjxN MTJYMTI8TTEzWDIyPE0xM1gyMzxNMTNYMjQ8TTE0WDE5PE0xNFgyNTxNMTZYMTg8TTE3WDE1 PE0xOFgxMTxNMTlYMTE8TTIwWDExPE0yMVgxMjxNMTFYMTE8TTEyWDExPE0xM1gxMTxNMTRY MTI8TTEzWDEyPE0xNFgyMzxNMTVYMjQ8TTEyWDEzPE0xM1gxODxNMTRYMTM8TTEzWDE5PE0x NFgyNDxNMTVYMTk8TTE0WDExPE0xM1gyMDxNMTRYMjA8TTE1WDIwPE0xNFgyMjxNMTVYMTM8 TTE2WDIwPE0xNVgxNDxNMTRYMjE8TTE1WDE2PE0xNlgyMTxNMTVYMTg8TTEzWDE0PE0xNFgx NTxNMTVYMjU8TTE2WDE1PE0xNVgxMTxNMTZYMTE8TTE1WDEyPE0xNlgyMjxNMTdYMTI8TTE0 WDE2PE0xNVgyMjxNMTZYMTI8TTE3WDIyPE0xNlgxMzxNMTdYMTg8TTE2WDE0PE0xN1gxNDxN MThYMTQ8TTE1WDIzPE0xNlgyMzxNMTdYMjM8TTE4WDI1PE0xOVgxNTxNMTZYMjU8TTE3WDE2 PE0xOFgyMzxNMTZYMjQ8TTE3WDIxPE0xNVgxNzxNMTZYMTk8TTE3WDI0PE0xOFgxOTxNMTdY MjU8TTE4WDE1PE0xOVgyNTxNMThYMTc8TTE3WDExPE0xOFgxMzxNMTlYMTk8TTE3WDIwPE0x OFgyMTxNMTlYMTY8TTE5WDE3PE0yMFgxNzxNMTlYMTg8TTE4WDIyPE0xOVgxNDxNMjBYMTU8 TTIwWDEyPE0yMlgyNTxNMjBYMTM8TTIwWDE0PE0xOFgxMjxNMTlYMjQ8TTIwWDIxPE0yMVgx ODxNMTlYMTM8TTIwWDE4PE0yMVgxMzxNMjBYMTk8TTIwWDIwPE0yMVgyMjxNMThYMTY8TTE5 WDIzPE0yMFgyNTxNMjFYMTY8TTIyWDIzPE0yMVgxNzxNMjFYMTE8TTIyWDEzPE0yMlgxNDxN MjBYMjQ8TTIxWDIwPE0yMVgyMTxNMjJYMTc8TTIzWDIwPE0yMlgxODxNMjNYMTY8TTI1WDEx PE0yMlgyMjxNMjBYMjM8TTIxWDI0PE0yMlgxOTxNMjNYMjU8TTIyWDIwPE0yM1gyMTxNMjRY MjQ8TTIyWDIxPE0yM1gxOTxNMjRYMTE8TTIzWDIyPE0yNFgxNTxNMjJYMTE8TTIzWDE0PE0y NFgxODxNMjNYMTU8TTI0WDEzPE0yM1gyNDxNMjRYMjU8TTIzWDE3PE0yNFgxOTxNMjVYMTQ8 TTIyWDE1PE0yM1gxMzxNMjRYMjA8TTI1WDI0PE0yNVgyNTxNMjRYMjE8TTI1WDIwPE0yNVgy MTxNMjRYMjI8TTI1WDE1PE0yNVgxNjxNMjZYMjU8TTI2WDExPE0yNVgyMzxNMjRYMTQ8TTI1 WDE5PE0yNlgxMzxNMjZYMTU8TTI2WDIwPE0yNVgxNzxNMjZYMjE8TTI1WDE4PE0yNlgxNzxN MjdYMjI8TTI3WDIzPE0yNlgxODxNMjZYMTk8TTI3WDE2PE0yOFgxNDxNMjVYMTM8TTI2WDIy PE0yN1gxNzxNMjZYMjM8TTI3WDEzPE0yN1gxNDxNMjdYMTU8TTI2WDI0PE0yN1gyNDxNMjhY MjU8TTI3WDExPE0yOFgxODxNMjdYMjU8TTI2WDE0PE0yN1gxOTxNMjdYMjA8TTI4WDEzPE0y N1gyMTxNMjhYMjM8TTI4WDI0PE0yOFgyMjxNMjhYMTE8TTI4WDE3PE0yOVgxMTxNMjdYMTg8 TTI4WDIxPE0yOFgxNjxNMjhYMTU8TTI4WDIwPE0yOVgxNDxNMjlYMjU8TTI5WDIxPE0yOFgx OTxNMjlYMTg8TTI5WDE3PE0yOVgxMzxNMjlYMjQ8TTI5WDE2PE0yOVgyMzxNMjlYMTk8TTMw WDI1PE0yOVgyMjxNMzBYMjE8TTMwWDIyPE0yOVgxMjxNMjlYMTU8TTMwWDE4PE0zMFgyMDxN MzBYMjQ8TTMwWDIzPE0yOVgyMDxNMzBYMTQ8TTMwWDEzPE0zMFgxNzxNMzBYMTI8TTMwWDEx PE0zMFgxNjxNMzBYMTU8TTMwWDE5CmRpZmYgLS1naXQgYS9zY3JpcHRzL2Rzby1vcmRlcmlu Zy10ZXN0LnB5IGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42ZTJlMzZhYjg3Ci0tLSAvZGV2L251bGwKKysr IGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQpAQCAtMCwwICsxLDk0NyBAQAorIyEv dXNyL2Jpbi9weXRob24zCisjIEdlbmVyYXRlIHRlc3RjYXNlIGZpbGVzIGFuZCBNYWtlZmls ZSBmcmFnbWVudHMgZm9yIERTTyBzb3J0aW5nIHRlc3QKKyMgQ29weXJpZ2h0IChDKSAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKyMKKyMgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyCisjIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyMgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisiIiJHZW5lcmF0ZSB0ZXN0Y2FzZSBmaWxlcyBhbmQgTWFrZWZpbGUgZnJh Z21lbnRzIGZvciBEU08gc29ydGluZyB0ZXN0CisKK1RoaXMgc2NyaXB0IHRha2VzIGEgc21h bGwgZGVzY3JpcHRpb24gc3RyaW5nIGxhbmd1YWdlLCBhbmQgZ2VuZXJhdGVzCit0ZXN0Y2Fz ZXMgZm9yIGRpc3BsYXlpbmcgdGhlIEVMRiBkeW5hbWljIGxpbmtlcidzIGRlcGVuZGVuY3kg c29ydGluZworYmVoYXZpb3IsIGFsbG93aW5nIHZlcmlmaWNhdGlvbi4KKworVGVzdGNhc2Ug ZGVzY3JpcHRpb25zIGFyZSBzZW1pY29sb24tc2VwYXJhdGVkIGRlc2NyaXB0aW9uIHN0cmlu Z3MsIGFuZAordGhpcyB0b29sIGdlbmVyYXRlcyBhIHRlc3RjYXNlIGZyb20gdGhlIGRlc2Ny aXB0aW9uLCBpbmNsdWRpbmcgbWFpbiBwcm9ncmFtLAorYXNzb2NpYXRlZCBtb2R1bGVzLCBh bmQgTWFrZWZpbGUgZnJhZ21lbnRzIGZvciBpbmNsdWRpbmcgaW50byBlbGYvTWFrZWZpbGUu CisKK1RoaXMgYWxsb3dzIGF1dG9tYXRpb24gb2Ygd2hhdCBvdGhlcndpc2Ugd291bGQgYmUg dmVyeSBsYWJvcm91cyBtYW51YWwKK2NvbnN0cnVjdGlvbiBvZiBjb21wbGV4IGRlcGVuZGVu Y3kgY2FzZXMsIGhvd2V2ZXIgaXQgbXVzdCBiZSBub3RlZCB0aGF0IHRoaXMKK2lzIG9ubHkg YSB0b29sIHRvIHNwZWVkIHVwIHRlc3RjYXNlIGNvbnN0cnVjdGlvbiwgYW5kIHRodXMgdGhl IGdlbmVyYXRpb24KK2ZlYXR1cmVzIGFyZSBsYXJnZWx5IG1lY2hhbmljYWwgaW4gbmF0dXJl OyBpbmNvbnNpc3RlbmNpZXMgb3IgZXJyb3JzIG1heSBvY2N1cgoraWYgdGhlIGlucHV0IGRl c2NyaXB0aW9uIHdhcyBpdHNlbGYgZXJyb3Jvbm91cyBvciBoYXZlIHVuZm9yZXNlZW4gaW50 ZXJhY3Rpb25zLgorCitUaGUgZm9ybWF0IG9mIHRoZSBpbnB1dCB0ZXN0IGRlc2NyaXB0aW9u IGZpbGVzIGFyZToKKworICAjIEVhY2ggdGVzdCBkZXNjcmlwdGlvbiBoYXMgYSBuYW1lLCBs aW5lcyBvZiBkZXNjcmlwdGlvbiwKKyAgIyBhbmQgYW4gZXhwZWN0ZWQgb3V0cHV0IHNwZWNp ZmljYXRpb24uIENvbW1lbnRzIHVzZSAnIycuCisgIHRlc3RuYW1lMTogPHRlc3QtZGVzY3Jp cHRpb24tbGluZT4KKyAgb3V0cHV0OiA8ZXhwZWN0ZWQtb3V0cHV0LXN0cmluZz4KKworICAj IFRlc3QgZGVzY3JpcHRpb25zIGNhbiB1c2UgbXVsdGlwbGUgbGluZXMsIHdoaWNoIHdpbGwg YWxsIGJlIG1lcmdlZAorICAjIHRvZ2V0aGVyLCBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50 LgorICB0ZXN0bmFtZTE6IDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+CisgIDx0ZXN0LWRlc2Ny aXB0aW9uLWxpbmU+CisgIDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+CisgIC4uLgorICBvdXRw dXQ6IDxleHBlY3RlZC1vdXRwdXQtc3RyaW5nPgorCisgICMgTXVsdGlwbGUgZXhwZWN0ZWQg b3V0cHV0cyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQsIHdpdGggYW4gYXNzb2NpYXRlZAorICAj IHR1bmFibGUgb3B0aW9uIGluICgpLCB3aGljaCBtdWx0aXBsZSB0ZXN0cyB3aWxsIGJlIHJ1 biB3aXRoIGVhY2gKKyAgIyBHTElCQ19UVU5BQkxFUz0uLi4gb3B0aW9uIHRyaWVkLgorICB0 ZXN0bmFtZTM6CisgIDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+CisgIC4uLgorICBvdXRwdXQo PGdsaWJjLXR1bmFibGUtc3RyaW5nMT4pOiA8ZXhwZWN0ZWQtb3V0cHV0LXN0cmluZy0xPgor ICBvdXRwdXQoPGdsaWJjLXR1bmFibGUtc3RyaW5nMj4pOiA8ZXhwZWN0ZWQtb3V0cHV0LXN0 cmluZy0yPgorCitPbiB0aGUgZGVzY3JpcHRpb24gbGFuZ3VhZ2UgdXNlZCwgYW4gZXhhbXBs ZSBkZXNjcmlwdGlvbiBsaW5lIHN0cmluZzoKKworICBhLT5iIS0+W2NkZWZdO2M9Pmc9Pmg7 eytjOyVjOy1jfS0+YQorCitFYWNoIGlkZW50aWZpZXIgcmVwcmVzZW50cyBhIHNoYXJlZCBv YmplY3QgbW9kdWxlLCBjdXJyZW50bHkgc2VxdWVuY2VzIG9mCitsZXR0ZXJzL2RpZ2l0cyBh cmUgYWxsb3dlZCwgY2FzZS1zZW5zaXRpdmUuCisKK0FsbCBzdWNoIHNoYXJlZCBvYmplY3Rz IGhhdmUgYSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIGdlbmVyYXRlZCBmb3IgdGhlbQordGhh dCBlbWl0cyBpdHMgbmFtZSBmb2xsb3dlZCBieSBhICc+JyBmb3IgY29uc3RydWN0b3JzLCBh bmQgJzwnIGZvbGxvd2VkIGJ5CitpdHMgbmFtZSBmb3IgZGVzdHJ1Y3RvcnMsIGUuZy4gaWYg dGhlIG5hbWUgaXMgJ29iajEnLCB0aGVuICJvYmoxPiIgYW5kICI8b2JqMSIKK2lzIHByaW50 ZWQgYnkgaXRzIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IgcmVzcGVjdGl2ZWx5LgorCitUaGUg LT4gb3BlcmF0b3Igc3BlY2lmaWVzIGEgbGluayB0aW1lIGRlcGVuZGVuY3ksIHRoZXNlIGNh biBiZSBjaGFpbmVkIGZvcgorY29udmVuaWVuY2UgKGUuZy4gYS0+Yi0+Yy0+ZCkuCisKK1Ro ZSA9PiBvcGVyYXRvciBjcmVhdGVzIGEgY2FsbC1yZWZlcmVuY2UsIGUuZy4gZm9yIGE9PmIs IGFuIGZuX2EoKSBmdW5jdGlvbgoraXMgY3JlYXRlZCBpbnNpZGUgbW9kdWxlICdhJywgd2hp Y2ggY2FsbHMgZm5fYigpIGluIG1vZHVsZSAnYicuCitUaGVzZSBtb2R1bGUgZnVuY3Rpb25z IGVtaXQgJ25hbWUoKScgb3V0cHV0IGluIG5lc3RlZCBmb3JtLAorZS5nLiBhPT5iIGVtaXRz ICdhKGIoKSknCisKK0ZvciBzaW5nbGUgY2hhcmFjdGVyIG9iamVjdCBuYW1lcywgc3F1YXJl IGJyYWNrZXRzIFtdIGluIHRoZSBkZXNjcmlwdGlvbgorYWxsb3dzIHNwZWNpZml5aW5nIG11 bHRpcGxlIG9iamVjdHM7IGUuZy4gYS0+W2JjZF0tPmUgaXMgZXF1aXZhbGVudCB0bworIGEt PmItPmU7YS0+Yy0+ZTthLT5kLT5lCisKK1RoZSAoKSBwYXJlbnRoZXNpcyBjb25zdHJ1Y3Qg d2l0aCBzcGFjZSBzZXBhcmF0ZWQgbmFtZXMgaXMgYWxzbyBhbGxvd2VkIGZvcgorc3BlY2lm eWluZyBvYmplY3RzLiBGb3IgbmFtZXMgd2l0aCBpbnRlZ2VyIHN1ZmZpeGVzIGEgcmFuZ2Ug Y2FuIGFsc28gYmUgdXNlZCwKK2UuZy4gKGZvbzEgYmFyMi01KSwgc3BlY2lmaWVzIERTT3Mg Zm9vMSwgYmFyMiwgYmFyMiwgYmFyMywgYmFyNCwgYmFyNS4KKworQSB7fSBjb25zdHJ1Y3Qg c3BlY2lmaWVzIHRoZSBtYWluIHRlc3QgcHJvZ3JhbSwgYW5kIGl0cyBsaW5rIGRlcGVuZGVu Y2llcworYXJlIGFsc28gc3BlY2lmaWVkIHVzaW5nIC0+LiBJbnNpZGUge30sIGEgZmV3IDst c2VwZXJhdGVkIGNvbnN0cnVjdHMgYXJlCithbGxvd2VkOgorICAgICAgICAgK2EgICBMb2Fk cyBtb2R1bGUgYSB1c2luZyBkbG9wZW4oUlRMRF9MQVpZfFJUTERfR0xPQkFMKQorICAgICAg ICAgXmEgICBMb2FkcyBtb2R1bGUgYSB1c2luZyBkbG9wZW4oUlRMRF9MQVpZKQorICAgICAg ICAgJWEgICBVc2UgZGxzeW0oKSB0byBsb2FkIGFuZCBjYWxsIGZuX2EoKQorICAgICAgICAg QGEgICBDYWxscyBmbl9hKCkgZGlyZWN0bHkuCisgICAgICAgICAtYSAgIFVubG9hZHMgbW9k dWxlIGEgdXNpbmcgZGxjbG9zZSgpCisKK1RoZSBnZW5lcmF0ZWQgbWFpbiBwcm9ncmFtIG91 dHB1dHMgJ3snICd9JyB3aXRoIGFsbCBvdXRwdXQgZnJvbSBhYm92ZQorY29uc3RydWN0cyBp biBiZXR3ZWVuLiBUaGUgb3RoZXIgb3V0cHV0IGJlZm9yZS9hZnRlciB7fSBhcmUgdGhlIG9y ZGVyZWQKK2NvbnN0cnVjdG9yL2Rlc3RydWN0b3Igb3V0cHV0LgorCitJZiBubyB7fSBjb25z dHJ1Y3QgaXMgcHJlc2VudCwgYSBkZWZhdWx0IGVtcHR5IG1haW4gcHJvZ3JhbSBpcyBsaW5r ZWQKK2FnYWluc3QgYWxsIG9iamVjdHMgd2hpY2ggaGF2ZSBubyBkZXBlbmRlbmN5IGxpbmtl ZCB0byBpdC4gZS5nLiBmb3IKKydbYWJdLT5jO2QtPmUnLCB0aGUgZGVmYXVsdCBtYWluIHBy b2dyYW0gaXMgZXF1aXZhbGVudCB0byAne30tPlthYmRdJworCitTb21ldGltZXMgZm9yIHZl cnkgY29tcGxleCBvciBsYXJnZSB0ZXN0Y2FzZXMsIGJlc2lkZXMgc3BlY2lmeWluZyBhCitm ZXcgZXhwbGljaXQgZGVwZW5kZW5jaWVzIGZyb20gbWFpbnt9LCB0aGUgYWJvdmUgZGVmYXVs dCBkZXBlbmRlbmN5CitiZWhhdmlvciBpcyBzdGlsbCB1c2VmdWwgdG8gYXV0b21hdGljYWxs eSBoYXZlLCBidXQgaXMgdHVybmVkIG9mZgordXBvbiBzcGVjaWZ5aW5nIGEgc2luZ2xlIGV4 cGxpY2l0IHt9LT5kc29fbmFtZS4KK0luIHRoaXMgY2FzZSwgYWRkIHt9LT4qIHRvIGV4cGxp Y2l0bHkgYWRkIHRoaXMgZ2VuZXJhdGlvbiBiZWhhdmlvcjoKKworICAgIyBNYWluIHByb2dy YW0gbGlua3MgdG8gJ2ZvbycsIGFuZCBhbGwgb3RoZXIgb2JqZWN0cyB3aGljaCBoYXZlIG5v CisgICAjIGRlcGVuZGVuY3kgbGlua2VkIHRvIGl0LgorICAge30tPmZvbyx7fS0+KgorCitO b3RlIHRoYXQgJyonIHdvcmtzIG5vdCBvbmx5IG9uIG1haW57fSwgYnV0IGNhbiBiZSB1c2Vk IGFzIHRoZQorZGVwZW5kZW5jeSB0YXJnZXQgb2YgYW55IG9iamVjdC4gTm90ZSB0aGF0IGl0 IG9ubHkgd29ya3MgYXMgYSB0YXJnZXQsCitub3QgYSBkZXBlbmRlbmN5IHNvdXJjZS4KKwor VGhlICchJyBvcGVyYXRvciBhZnRlciBvYmplY3QgbmFtZXMgdHVybnMgb24gcGVybXV0YXRp b24gb2YgaXRzCitkZXBlbmRlbmNpZXMsIGUuZy4gd2hpbGUgYS0+W2JjZF0gb25seSBnZW5l cmF0ZXMgb25lIHNldCBvZiBvYmplY3RzLAord2l0aCAnYS5zbycgYnVpbHQgd2l0aCBhIGxp bmsgbGluZSBvZiAiYi5zbyBjLnNvIGQuc28iLCBmb3IgYSEtPltiY2RdCitwZXJtdXRhdGlv bnMgb2YgYSdzIGRlcGVuZGVuY2llcyBjcmVhdGVzIG11bHRpcGxlIHRlc3RjYXNlcyB3aXRo CitkaWZmZXJlbnQgbGluayBsaW5lIG9yZGVyczogImIuc28gYy5zbyBkLnNvIiwgImMuc28g Yi5zbyBkLnNvIiwKKyJiLnNvIGQuc28gYy5zbyIsIGV0Yy4gTm90ZSB0aGF0IGZvciBhIDx0 ZXN0LW5hbWU+IHNwZWNpZmllZCBvbgordGhlIHNjcmlwdCBjb21tYW5kLWxpbmUsIG11bHRp cGxlIDx0ZXN0LW5hbWVfMT4sIDx0ZXN0LW5hbWVfMj4sIGV0Yy4KK3Rlc3RzIHdpbGwgYmUg Z2VuZXJhdGVkIChlLmcuIGZvciBhIS0+W2JjXSEtPltkZV0sIGVpZ2h0IHRlc3RzIHdpdGgK K2RpZmZlcmVudCBsaW5rIG9yZGVycyBmb3IgYSwgYiwgYW5kIGMgd2lsbCBiZSBnZW5lcmF0 ZWQpCisKKyIiIgoraW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgb3MKK2ltcG9ydCBz dWJwcm9jZXNzCitpbXBvcnQgYXJncGFyc2UKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9y ZGVyZWREaWN0CitpbXBvcnQgaXRlcnRvb2xzCisKKyMgQlVJTERfR0NDIGlzIG9ubHkgdXNl ZCB1bmRlciB0aGUgLS1idWlsZCBvcHRpb24sCisjIHdoaWNoIGJ1aWxkcyB0aGUgZ2VuZXJh dGVkIHRlc3RjYXNlLCBpbmNsdWRpbmcgRFNPcyB1c2luZyBCVUlMRF9HQ0MuCisjIE1haW5s eSBmb3IgdGVzdGluZyBwdXJwb3NlcywgZXNwZWNpYWxseSBkZWJ1Z2dpbmcgb2YgdGhpcyBz Y3JpcHQsCisjIGFuZCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIGFub3RoZXIgdG9vbGNoYWlu IHBhdGggaWYgbmVlZGVkLgorYnVpbGRfZ2NjID0gImdjYyIKKworcGFyc2VyID0gYXJncGFy c2UuQXJndW1lbnRQYXJzZXIoIiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCJkZXNjcmlwdGlv biIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRlc2NyaXB0aW9uIHN0cmluZyBvZiBE U08gZGVwZW5kZW5jeSB0ZXN0IHRvIGJlICIKKyAgICAgICAgICAgICAgICAgICAgImdlbmVy YXRlZCAoc2VlIHNjcmlwdCBzb3VyY2UgZm9yIGRvY3VtZW50YXRpb24gb2YgIgorICAgICAg ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24gbGFuZ3VhZ2UpLCBlaXRoZXIgc3BlY2lmaWVk IGhlcmUgYXMgIgorICAgICAgICAgICAgICAgICAgICAiY29tbWFuZCBsaW5lIGFyZ3VtZW50 LCBvciBieSBpbnB1dCBmaWxlIHVzaW5nICIKKyAgICAgICAgICAgICAgICAgICAgIi1mLy0t ZGVzY3JpcHRpb24tZmlsZSBvcHRpb24iLAorICAgICAgICAgICAgICAgICAgICBuYXJncz0i PyIsIGRlZmF1bHQ9IiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0X25hbWUiLCBoZWxw PSJJZGVudGlmaWVyIGZvciB0ZXN0Y2FzZSBiZWluZyAiCisgICAgICAgICAgICAgICAgICAg ICJnZW5lcmF0ZWQiLCBuYXJncz0iPyIsIGRlZmF1bHQ9IiIpCitwYXJzZXIuYWRkX2FyZ3Vt ZW50KCItLW9ianBmeCIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gcGxh Y2UgZ2VuZXJhdGVkIGZpbGVzLCBkZWZhdWx0cyB0byAiCisgICAgICAgICAgICAgICAgICAg ICJjdXJyZW50IGRpcmVjdG9yeSBpZiBub25lIHNwZWNpZmllZCIsCisgICAgICAgICAgICAg ICAgICAgIG5hcmdzPSI/IiwgZGVmYXVsdD0iLi8iKQorcGFyc2VyLmFkZF9hcmd1bWVudCgi LW0iLCAiLS1vdXRwdXQtbWFrZWZpbGUiLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJG aWxlIHRvIHdyaXRlIE1ha2VmaWxlIGZyYWdtZW50IHRvLCBkZWZhdWx0cyB0byAiCisgICAg ICAgICAgICAgICAgICAgICJzdGRvdXQgd2hlbiBvcHRpb24gbm90IHByZXNlbnQiLCBuYXJn cz0iPyIsIGRlZmF1bHQ9IiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCItZiIsICItLWRlc2Ny aXB0aW9uLWZpbGUiLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJJbnB1dCBmaWxlIGNv bnRhaW5pbmcgdGVzdGNhc2UgZGVzY3JpcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgICAg bmFyZ3M9Ij8iLCBkZWZhdWx0PSIiKQorcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1idWlsZCIs IGhlbHA9IkFmdGVyIEMgdGVzdGNhc2UgZ2VuZXJhdGVkLCBidWlsZCBpdCAiCisgICAgICAg ICAgICAgICAgICAgICJ1c2luZyBnY2MgKGZvciBtYW51YWwgdGVzdGluZyBwdXJwb3Nlcyki LAorICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiKQorcGFyc2VyLmFk ZF9hcmd1bWVudCgiLS1kZWJ1Zy1vdXRwdXQiLCBoZWxwPSJQcmludHMgc29tZSBpbnRlcm5h bCBkYXRhICIKKyAgICAgICAgICAgICAgICAgICAgInN0cnVjdHVyZXM7IHVzZWQgZm9yIGRl YnVnZ2luZyBvZiB0aGlzIHNjcmlwdCIsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0i c3RvcmVfdHJ1ZSIpCitjbWRsaW5lYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKK3Rlc3Rf bmFtZSA9IGNtZGxpbmVhcmdzLnRlc3RfbmFtZQorZGVzY3JpcHRpb24gPSBjbWRsaW5lYXJn cy5kZXNjcmlwdGlvbgorb2JqcGZ4ID0gY21kbGluZWFyZ3Mub2JqcGZ4CitkZXNjcmlwdGlv bl9maWxlID0gY21kbGluZWFyZ3MuZGVzY3JpcHRpb25fZmlsZQorb3V0cHV0X21ha2VmaWxl ID0gY21kbGluZWFyZ3Mub3V0cHV0X21ha2VmaWxlCittYWtlZmlsZSA9ICIiCisKK2lmICh0 ZXN0X25hbWUgb3IgZGVzY3JpcHRpb24pIGFuZCBkZXNjcmlwdGlvbl9maWxlOgorICAgIHBy aW50ICgiRXJyb3I6IGJvdGggY29tbWFuZC1saW5lIHRlc3RjYXNlIGFuZCBpbnB1dCBmaWxl IHNwZWNpZmllZCIpCisgICAgZXhpdCAoLTEpCitpZiB0ZXN0X25hbWUgYW5kIG5vdCBkZXNj cmlwdGlvbjoKKyAgICBwcmludCAoIkVycm9yOiBjb21tYW5kLWxpbmUgdGVzdGNhc2UgbmFt ZSB3aXRob3V0IGRlc2NyaXB0aW9uIHN0cmluZyIpCisgICAgZXhpdCAoLTEpCisKKyMgTWFp biBjbGFzcyB0eXBlIGRlc2NyaWJpbmcgYSB0ZXN0Y2FzZS4KK2NsYXNzIFRlc3REZXNjcjoK KyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYub2JqcyA9IFtdICAgICAg ICAgICAgICAgICAgICAgICAgIyBsaXN0IG9mIGFsbCBEU08gb2JqZWN0cworICAgICAgICBz ZWxmLmRlcHMgPSBPcmRlcmVkRGljdCgpICAgICAgICAgICAgICMgbWFwIG9mIERTTyBvYmpl Y3QgLT4gbGlzdCBvZiBkZXBlbmRlbmNpZXMKKyAgICAgICAgc2VsZi5jYWxscmVmcyA9IE9y ZGVyZWREaWN0KCkgICAgICAgICAjIG1hcCBvZiBEU08gb2JqZWN0IC0+IGxpc3Qgb2YgY2Fs bCByZWZzCisgICAgICAgIHNlbGYuZGVwX3Blcm11dGF0aW9ucyA9IE9yZGVyZWREaWN0KCkg IyBtYXAgb2YgRFNPIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgICAtPiBsaXN0IG9mIHBlcm11dGF0aW9ucyBvZiBkZXBlbmRlbmNp ZXMKKyAgICAgICAgc2VsZi5tYWluX3Byb2dyYW0gPSBbXSAgICAgICAgICAgICAgICAjIGxp c3Qgb2YgbWFpbiBwcm9ncmFtIG9wZXJhdGlvbnMKKyAgICAgICAgc2VsZi5tYWluX3Byb2dy YW1fbmVlZHNfbGRsID0gRmFsc2UgICAjIHNldCBpZiBtYWluIHByb2dyYW0gbmVlZHMgLWxk bAorICAgICAgICBzZWxmLm1haW5fcHJvZ3JhbV9kZWZhdWx0X2RlcHMgPSBUcnVlICMgc2V0 IGlmIGRlZmF1bHQgZGVwZW5kZW5jaWVzIGFkZGVkIHRvIG1haW4KKyAgICAgICAgc2VsZi50 ZXN0X25hbWUgPSAiIiAgICAgICAgICAgICAgICAgICAjIG5hbWUgb2YgdGVzdGNhc2UKKyAg ICAgICAgc2VsZi5leHBlY3RlZF9vdXRwdXRzID0gT3JkZXJlZERpY3QoKSAjIGV4cGVjdGVk IG91dHB1dHMgb2YgdGVzdGNhc2UKKworICAgICMgQWRkICdvYmplY3QgLT4gW29iamVjdCwg b2JqZWN0LCAuLi5dJyByZWxhdGlvbnMgdG8gQ1VSUl9NQVAKKyAgICBkZWYgX19hZGRfZGVw c19pbnRlcm5hbCAoc2VsZiwgc3JjX29ianMsIGRzdF9vYmpzLCBjdXJyX21hcCk6CisgICAg ICAgIGZvciBzcmMgaW4gc3JjX29ianM6CisgICAgICAgICAgICBmb3IgZHN0IGluIGRzdF9v YmpzOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzcmMgaW4gY3Vycl9tYXA6CisgICAgICAg ICAgICAgICAgICAgIGN1cnJfbWFwW3NyY10gPSBbXQorICAgICAgICAgICAgICAgIGlmIG5v dCBkc3QgaW4gY3Vycl9tYXBbc3JjXToKKyAgICAgICAgICAgICAgICAgICAgY3Vycl9tYXBb c3JjXS5hcHBlbmQgKGRzdCkKKyAgICBkZWYgYWRkX2RlcHMgKHNlbGYsIHNyY19vYmpzLCBk c3Rfb2Jqcyk6CisgICAgICAgIHNlbGYuX19hZGRfZGVwc19pbnRlcm5hbCAoc3JjX29ianMs IGRzdF9vYmpzLCBzZWxmLmRlcHMpCisgICAgZGVmIGFkZF9jYWxscmVmcyAoc2VsZiwgc3Jj X29ianMsIGRzdF9vYmpzKToKKyAgICAgICAgc2VsZi5fX2FkZF9kZXBzX2ludGVybmFsIChz cmNfb2JqcywgZHN0X29ianMsIHNlbGYuY2FsbHJlZnMpCisKKyMgRm9yIGluc2lkZSB0aGUg e30gY29uc3RydWN0CitkZWYgcHJvY2Vzc19tYWluX3Byb2dyYW0gKHRlc3RfZGVzY3IsIG1h aW5wcm9nX3N0cik6CisgICAgaWYgbWFpbnByb2dfc3RyOgorICAgICAgICB0ZXN0X2Rlc2Ny Lm1haW5fcHJvZ3JhbSA9IG1haW5wcm9nX3N0ci5zcGxpdCAoJzsnKQorICAgIGZvciBzIGlu IHRlc3RfZGVzY3IubWFpbl9wcm9ncmFtOgorICAgICAgICBtID0gcmUubWF0Y2ggKHIiXihb K1wtJV5AXSkoWzAtOWEtekEtWl0rKSQiLCBzKQorICAgICAgICBpZiBub3QgbToKKyAgICAg ICAgICAgIHByaW50ICgiRXJyb3I6ICclcycgaXMgbm90IHJlY29nbml6ZWQgbWFpbiBwcm9n cmFtIG9wZXJhdGlvbiIgJSAocykpCisgICAgICAgICAgICBleGl0ICgtMSkKKyAgICAgICAg b3ByID0gbS5ncm91cCgxKQorICAgICAgICBpZiAob3ByID09ICcrJyBvciBvcHIgPT0gJ14n IG9yIG9wciA9PSAnJScgb3Igb3ByID09ICctJyk6CisgICAgICAgICAgICAjIERldGVybWlu ZWQgdGhlIG1haW4gcHJvZ3JhbSBuZWVkcyBsaWJkbAorICAgICAgICAgICAgdGVzdF9kZXNj ci5tYWluX3Byb2dyYW1fbmVlZHNfbGRsID0gVHJ1ZQorICAgICAgICBvYmogPSBtLmdyb3Vw KDIpCisgICAgICAgIGlmIG5vdCBvYmogaW4gdGVzdF9kZXNjci5vYmpzOgorICAgICAgICAg ICAgdGVzdF9kZXNjci5vYmpzLmFwcGVuZCAob2JqKQorICAgICAgICBpZiBvcHIgPT0gJyUn IG9yIG9wciA9PSAnQCc6CisgICAgICAgICAgICB0ZXN0X2Rlc2NyLmFkZF9jYWxscmVmcyAo WycjJ10sIFtvYmpdKQorICAgICMgV2UgaGF2ZSBhIG1haW4gcHJvZ3JhbSBzcGVjaWZpZWQs IHR1cm4gdGhpcyBvZmYKKyAgICB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbV9kZWZhdWx0X2Rl cHMgPSBGYWxzZQorCisjIEZvciAoYTEgYTIgYjEtMTIpIG9iamVjdCBzZXQgZGVzY3JpcHRp b25zLCBleHBhbmQgaW50byBhbiBvYmplY3QgbGlzdAorZGVmIGV4cGFuZF9vYmplY3Rfc2V0 X3N0cmluZyAoZGVzY3Jfc3RyKToKKyAgICBvYmpfbGlzdCA9IFtdCisgICAgZGVzY3JfbGlz dCA9IGRlc2NyX3N0ci5zcGxpdCAoKQorICAgIGZvciBkZXNjciBpbiBkZXNjcl9saXN0Ogor ICAgICAgICBtID0gcmUubWF0Y2ggKHIiXihbYS16QS1aXVswLTlhLXpBLVpdKikoLVswLTld Kyk/JCIsIGRlc2NyKQorICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgIHByaW50ICgi RXJyb3I6ICclcycgaXMgbm90IGEgdmFsaWQgb2JqZWN0IHNldCBkZXNjcmlwdGlvbiIgJSAo ZGVzY3IpKQorICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgIG9iaiA9IG0uZ3JvdXAg KDEpCisgICAgICAgIGlkeF9lbmQgPSBtLmdyb3VwICgyKQorICAgICAgICBpZiBub3QgaWR4 X2VuZDoKKyAgICAgICAgICAgIGlmIG5vdCBvYmogaW4gb2JqX2xpc3Q6CisgICAgICAgICAg ICAgICAgb2JqX2xpc3QuYXBwZW5kIChvYmopCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICBpZHhfZW5kID0gaW50IChpZHhfZW5kWzE6XSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj aCAociJeKFswLTlhLXpBLVpdW2EtekEtWl0qKShbMC05XSspJCIsIG9iaikKKyAgICAgICAg ICAgIGlmIG5vdCBtOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG9iamVjdCBk ZXNjcmlwdGlvbiAnJXMnIGlzIG1hbGZvcm1lZCIgJSAob2JqKSkKKyAgICAgICAgICAgICAg ICBleGl0ICgtMSkKKyAgICAgICAgICAgIG9ial9uYW1lID0gbS5ncm91cCAoMSkKKyAgICAg ICAgICAgIGlkeF9zdGFydCA9IGludCAobS5ncm91cCAoMikpCisgICAgICAgICAgICBpZiBp ZHhfc3RhcnQgPiBpZHhfZW5kOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IGlu ZGV4IHJhbmdlICVzLSVzIGludmFsaWQiICUgKGlkeF9zdGFydCwgaWR4X2VuZCkpCisgICAg ICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShpZHhf c3RhcnQsIGlkeF9lbmQgKyAxKToKKyAgICAgICAgICAgICAgICBvID0gb2JqX25hbWUgKyBz dHIoaSkKKyAgICAgICAgICAgICAgICBpZiBub3QgbyBpbiBvYmpfbGlzdDoKKyAgICAgICAg ICAgICAgICAgICAgb2JqX2xpc3QuYXBwZW5kIChvKQorICAgIHJldHVybiBvYmpfbGlzdAor CisjIExleGVyIGZvciB0b2tlbnMKK3Rva2Vuc3BlYyA9IFsgKCJPQkoiLCAgICAgIHIiKFsw LTlhLXpBLVpdKykiKSwKKyAgICAgICAgICAgICAgKCJERVAiLCAgICAgIHIiLT4iKSwKKyAg ICAgICAgICAgICAgKCJDQUxMUkVGIiwgIHIiPT4iKSwKKyAgICAgICAgICAgICAgKCJPQkpT RVQiLCAgIHIiXFsoWzAtOWEtekEtWl0rKVxdIiksCisgICAgICAgICAgICAgICgiT0JKU0VU MiIsICByIlwoKFswLTlhLXpBLVogXC1dKylcKSIpLAorICAgICAgICAgICAgICAoIk9CSlNF VDMiLCAgciJcKiIpLAorICAgICAgICAgICAgICAoIlBST0ciLCAgICAgciJ7KFswLTlhLXpB LVo7K15cLSVdKil9IiksCisgICAgICAgICAgICAgICgiUEVSTVVURSIsICByIiEiKSwKKyAg ICAgICAgICAgICAgKCJTRU1JQ09MIiwgIHIiOyIpLAorICAgICAgICAgICAgICAoIkVSUk9S IiwgICAgciIuIikgXQordG9rX3JlID0gJ3wnLmpvaW4oJyg/UDwlcz4lcyknICUgcGFpciBm b3IgcGFpciBpbiB0b2tlbnNwZWMpCisKKyMgTWFpbiBsaW5lIHBhcnNlciBvZiBkZXNjcmlw dGlvbiBsYW5ndWFnZQorZGVmIHBhcnNlX2Rlc2NyaXB0aW9uX3N0cmluZyAodCwgZGVzY3Jf c3RyKToKKworICAgICMgU3RhdGUgdXNlZCB3aGVuIHBhcnNpbmcgZGVwZW5kZW5jaWVzCisg ICAgY3Vycl9vYmpzID0gW10KKyAgICBpbl9kZXAgPSBGYWxzZQorICAgIGluX2NhbGxyZWYg PSBGYWxzZQorICAgIGRlZiBjbGVhcl9kZXBfc3RhdGUgKCk6CisgICAgICAgIG5vbmxvY2Fs IGluX2RlcCwgaW5fY2FsbHJlZgorICAgICAgICBpbl9kZXAgPSBpbl9jYWxscmVmID0gRmFs c2UKKworICAgIGZvciBtIGluIHJlLmZpbmRpdGVyKHRva19yZSwgZGVzY3Jfc3RyKToKKyAg ICAgICAga2luZCA9IG0ubGFzdGdyb3VwCisgICAgICAgIHZhbHVlID0gbS5ncm91cCAoKQor ICAgICAgICBpZiBraW5kID09ICJPQkoiOgorICAgICAgICAgICAgaWYgaW5fZGVwOgorICAg ICAgICAgICAgICAgIHQuYWRkX2RlcHMgKGN1cnJfb2JqcywgW3ZhbHVlXSkKKyAgICAgICAg ICAgIGVsaWYgaW5fY2FsbHJlZjoKKyAgICAgICAgICAgICAgICB0LmFkZF9jYWxscmVmcyAo Y3Vycl9vYmpzLCBbdmFsdWVdKQorICAgICAgICAgICAgY2xlYXJfZGVwX3N0YXRlICgpCisg ICAgICAgICAgICBjdXJyX29ianMgPSBbdmFsdWVdCisgICAgICAgICAgICBpZiBub3QgdmFs dWUgaW4gdC5vYmpzOgorICAgICAgICAgICAgICAgIHQub2Jqcy5hcHBlbmQgKHZhbHVlKQor CisgICAgICAgIGVsaWYga2luZCA9PSAiT0JKU0VUIjoKKyAgICAgICAgICAgIG9ianNldCA9 IHZhbHVlWzE6bGVuKHZhbHVlKS0xXQorICAgICAgICAgICAgaWYgaW5fZGVwOgorICAgICAg ICAgICAgICAgIHQuYWRkX2RlcHMgKGN1cnJfb2JqcywgbGlzdCAob2Jqc2V0KSkKKyAgICAg ICAgICAgIGVsaWYgaW5fY2FsbHJlZjoKKyAgICAgICAgICAgICAgICB0LmFkZF9jYWxscmVm cyAoY3Vycl9vYmpzLCBsaXN0IChvYmpzZXQpKQorICAgICAgICAgICAgY2xlYXJfZGVwX3N0 YXRlICgpCisgICAgICAgICAgICBjdXJyX29ianMgPSBsaXN0IChvYmpzZXQpCisgICAgICAg ICAgICBmb3IgbyBpbiBsaXN0IChvYmpzZXQpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBv IGluIHQub2JqczoKKyAgICAgICAgICAgICAgICAgICAgdC5vYmpzLmFwcGVuZCAobykKKwor ICAgICAgICBlbGlmIGtpbmQgPT0gIk9CSlNFVDIiOgorICAgICAgICAgICAgZGVzY3Jfc3Ry ID0gdmFsdWVbMTpsZW4odmFsdWUpLTFdCisgICAgICAgICAgICBkZXNjcl9zdHIuc3RyaXAg KCkKKyAgICAgICAgICAgIG9ianMgPSBleHBhbmRfb2JqZWN0X3NldF9zdHJpbmcgKGRlc2Ny X3N0cikKKyAgICAgICAgICAgIGlmIG5vdCBvYmpzOgorICAgICAgICAgICAgICAgIHByaW50 ICgiRXJyb3I6IGVtcHR5IG9iamVjdCBzZXQgJyVzJyIgJSAodmFsdWUpKQorICAgICAgICAg ICAgICAgIGV4aXQgKC0xKQorICAgICAgICAgICAgaWYgaW5fZGVwOgorICAgICAgICAgICAg ICAgIHQuYWRkX2RlcHMgKGN1cnJfb2Jqcywgb2JqcykKKyAgICAgICAgICAgIGVsaWYgaW5f Y2FsbHJlZjoKKyAgICAgICAgICAgICAgICB0LmFkZF9jYWxscmVmcyAoY3Vycl9vYmpzLCBv YmpzKQorICAgICAgICAgICAgY2xlYXJfZGVwX3N0YXRlICgpCisgICAgICAgICAgICBjdXJy X29ianMgPSBvYmpzCisgICAgICAgICAgICBmb3IgbyBpbiBvYmpzOgorICAgICAgICAgICAg ICAgIGlmIG5vdCBvIGluIHQub2JqczoKKyAgICAgICAgICAgICAgICAgICAgdC5vYmpzLmFw cGVuZCAobykKKworICAgICAgICBlbGlmIGtpbmQgPT0gIk9CSlNFVDMiOgorICAgICAgICAg ICAgaWYgaW5fZGVwOgorICAgICAgICAgICAgICAgIHQuYWRkX2RlcHMgKGN1cnJfb2Jqcywg WycqJ10pCisgICAgICAgICAgICBlbGlmIGluX2NhbGxyZWY6CisgICAgICAgICAgICAgICAg dC5hZGRfY2FsbHJlZnMgKGN1cnJfb2JqcywgWycqJ10pCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG5vbi1kZXBlbmRlbmNlIHRhcmdldCBz ZXQgJyonIGNhbiBvbmx5IGJlIHVzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiYXMg dGFyZ2V0IG9mIC0+Lz0+IG9wZXJhdGlvbnMiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0x KQorICAgICAgICAgICAgY2xlYXJfZGVwX3N0YXRlICgpCisgICAgICAgICAgICBjdXJyX29i anMgPSBbJyonXQorCisgICAgICAgIGVsaWYga2luZCA9PSAiUEVSTVVURSI6CisgICAgICAg ICAgICBpZiBpbl9kZXAgb3IgaW5fY2FsbHJlZjoKKyAgICAgICAgICAgICAgICBwcmludCAo IkVycm9yOiBzeW50YXggZXJyb3IsIHBlcm11dGUgb3BlcmF0aW9uIGludmFsaWQgaGVyZSIp CisgICAgICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICBpZiBub3QgY3Vycl9v YmpzOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IHN5bnRheCBlcnJvciwgbm8g b2JqZWN0cyB0byBwZXJtdXRlIGhlcmUiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0xKQor CisgICAgICAgICAgICBmb3Igb2JqIGluIGN1cnJfb2JqczoKKyAgICAgICAgICAgICAgICBp ZiBub3Qgb2JqIGluIHQuZGVwX3Blcm11dGF0aW9uczoKKyAgICAgICAgICAgICAgICAgICAg IyBTaWduYWwgdGhpcyBvYmplY3QgaGFzIHBlcm11dGF0ZWQgZGVwZW5kZW5jaWVzCisgICAg ICAgICAgICAgICAgICAgIHQuZGVwX3Blcm11dGF0aW9uc1tvYmpdID0gW10KKworICAgICAg ICBlbGlmIGtpbmQgPT0gIlBST0ciOgorICAgICAgICAgICAgaWYgdC5tYWluX3Byb2dyYW06 CisgICAgICAgICAgICAgICAgcHJpbnQgKCJFcnJvcjogY2Fubm90IGhhdmUgbW9yZSB0aGFu IG9uZSBtYWluIHByb2dyYW0iKQorICAgICAgICAgICAgICAgIGV4aXQgKC0xKQorICAgICAg ICAgICAgaWYgaW5fZGVwOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG9iamVj dHMgY2Fubm90IGhhdmUgZGVwZW5kZW5jeSBvbiBtYWluIHByb2dyYW0iKQorICAgICAgICAg ICAgICAgIGV4aXQgKC0xKQorICAgICAgICAgICAgaWYgaW5fY2FsbHJlZjoKKyAgICAgICAg ICAgICAgICAjIFRPRE86IEEgRFNPIGNhbiByZXNvbHZlIHRvIGEgc3ltYm9sIGluIHRoZSBt YWluIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAjIHdoaWNoIHdlIHN5bnRhY3RpY2FsbHkg YWxsb3cgaGVyZSwgYnV0IGhhdmVuJ3QgeWV0IGltcGxlbWVudGVkLgorICAgICAgICAgICAg ICAgIHQuYWRkX2NhbGxyZWZzIChjdXJyX29ianMsIFsiIyJdKQorICAgICAgICAgICAgcHJv Y2Vzc19tYWluX3Byb2dyYW0gKHQsIHZhbHVlWzE6bGVuKHZhbHVlKS0xXSkKKyAgICAgICAg ICAgIGNsZWFyX2RlcF9zdGF0ZSAoKQorICAgICAgICAgICAgY3Vycl9vYmpzID0gWyIjIl0K KworICAgICAgICBlbGlmIGtpbmQgPT0gIkRFUCI6CisgICAgICAgICAgICBpZiBpbl9kZXAg b3IgaW5fY2FsbHJlZjoKKyAgICAgICAgICAgICAgICBwcmludCAoIkVycm9yOiBzeW50YXgg ZXJyb3IsIG11bHRpcGxlIGNvbnRpZ3VvdXMgLT4sPT4gb3BlcmF0aW9ucyIpCisgICAgICAg ICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICBpZiAnKicgaW4gY3Vycl9vYmpzOgor ICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG5vbi1kZXBlbmRlbmNlIHRhcmdldCBz ZXQgJyonIGNhbiBvbmx5IGJlIHVzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiYXMg dGFyZ2V0IG9mIC0+Lz0+IG9wZXJhdGlvbnMiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0x KQorICAgICAgICAgICAgaW5fZGVwID0gVHJ1ZQorCisgICAgICAgIGVsaWYga2luZCA9PSAi Q0FMTFJFRiI6CisgICAgICAgICAgICBpZiBpbl9kZXAgb3IgaW5fY2FsbHJlZjoKKyAgICAg ICAgICAgICAgICBwcmludCAoIkVycm9yOiBzeW50YXggZXJyb3IsIG11bHRpcGxlIGNvbnRp Z3VvdXMgLT4sPT4gb3BlcmF0aW9ucyIpCisgICAgICAgICAgICAgICAgZXhpdCAoLTEpCisg ICAgICAgICAgICBpZiAnKicgaW4gY3Vycl9vYmpzOgorICAgICAgICAgICAgICAgIHByaW50 ICgiRXJyb3I6IG5vbi1kZXBlbmRlbmNlIHRhcmdldCBzZXQgJyonIGNhbiBvbmx5IGJlIHVz ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiYXMgdGFyZ2V0IG9mIC0+Lz0+IG9wZXJh dGlvbnMiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0xKQorICAgICAgICAgICAgaW5fY2Fs bHJlZiA9IFRydWUKKworICAgICAgICBlbGlmIGtpbmQgPT0gIlNFTUlDT0wiOgorICAgICAg ICAgICAgY3Vycl9vYmpzID0gW10KKyAgICAgICAgICAgIGNsZWFyX2RlcF9zdGF0ZSAoKQor CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAoIkVycm9yOiB1bmtub3duIHRv a2VuICclcyciICUgKHZhbHVlKSkKKyAgICAgICAgICAgIGV4aXQgKC0xKQorICAgIHJldHVy biB0CisKKworCitkZWYgcHJvY2Vzc190ZXN0Y2FzZSAodCk6CisgICAgZ2xvYmFsIG9ianBm eAorICAgIGFzc2VydCB0LnRlc3RfbmFtZQorCisgICAgYmFzZV90ZXN0X25hbWUgPSB0LnRl c3RfbmFtZQorICAgIHRlc3Rfc3ViZGlyID0gYmFzZV90ZXN0X25hbWUgKyAiLWRpciIKKyAg ICB0ZXN0cGZ4ID0gb2JqcGZ4ICsgdGVzdF9zdWJkaXIgKyAiLyIKKworICAgIGlmIG5vdCBv cy5wYXRoLmV4aXN0cyAodGVzdHBmeCk6CisgICAgICAgIG9zLm1rZGlyICh0ZXN0cGZ4KQor CisgICAgZGVmIGZpbmRfb2Jqc19ub3RfZGVwZW5kZWRfb24gKHQpOgorICAgICAgICBvYmpz X25vdF9kZXBlbmRlZF9vbiA9IFtdCisgICAgICAgIGZvciBvYmogaW4gdC5vYmpzOgorICAg ICAgICAgICAgc2tpcCA9IEZhbHNlCisgICAgICAgICAgICBmb3IgciBpbiB0LmRlcHMuaXRl bXMoKToKKyAgICAgICAgICAgICAgICBpZiBvYmogaW4gclsxXToKKyAgICAgICAgICAgICAg ICAgICAgc2tpcCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg ICAgIGlmIG5vdCBza2lwOgorICAgICAgICAgICAgICAgIG9ianNfbm90X2RlcGVuZGVkX29u LmFwcGVuZCAob2JqKQorICAgICAgICByZXR1cm4gb2Jqc19ub3RfZGVwZW5kZWRfb24KKwor ICAgIG5vbl9kZXBfdGd0X29ianMgPSBmaW5kX29ianNfbm90X2RlcGVuZGVkX29uICh0KQor ICAgIGZvciBvYmogaW4gdC5vYmpzOgorICAgICAgICBpZiBvYmogaW4gdC5kZXBzOgorICAg ICAgICAgICAgZGVwcyA9IHQuZGVwc1tvYmpdCisgICAgICAgICAgICBpZiAnKicgaW4gZGVw czoKKyAgICAgICAgICAgICAgICB0LmRlcHNbb2JqXS5yZW1vdmUgKCcqJykKKyAgICAgICAg ICAgICAgICB0LmFkZF9kZXBzIChbb2JqXSwgbm9uX2RlcF90Z3Rfb2JqcykKKyAgICAgICAg aWYgb2JqIGluIHQuY2FsbHJlZnM6CisgICAgICAgICAgICBkZXBzID0gdC5jYWxscmVmc1tv YmpdCisgICAgICAgICAgICBpZiAnKicgaW4gZGVwczoKKyAgICAgICAgICAgICAgICB0LmRl cHNbb2JqXS5yZW1vdmUgKCcqJykKKyAgICAgICAgICAgICAgICB0LmFkZF9jYWxscmVmcyAo W29ial0sIG5vbl9kZXBfdGd0X29ianMpCisgICAgaWYgIiMiIGluIHQuZGVwczoKKyAgICAg ICAgZGVwcyA9IHQuZGVwc1siIyJdCisgICAgICAgIGlmICcqJyBpbiBkZXBzOgorICAgICAg ICAgICAgdC5kZXBzWyIjIl0ucmVtb3ZlICgnKicpCisgICAgICAgICAgICB0LmFkZF9kZXBz IChbIiMiXSwgbm9uX2RlcF90Z3Rfb2JqcykKKworICAgICMgSWYgbm8gbWFpbiBwcm9ncmFt IHdhcyBzcGVjaWZpZWQgaW4gZGVwZW5kZW5jeSBkZXNjcmlwdGlvbiwgbWFrZSBhCisgICAg IyBkZWZhdWx0IG1haW4gcHJvZ3JhbSB3aXRoIGRlcHMgcG9pbnRpbmcgdG8gYWxsIERTT3Mg d2hpY2ggYXJlIG5vdAorICAgICMgZGVwZW5kZWQgYnkgYW5vdGhlciBEU08uCisgICAgaWYg dC5tYWluX3Byb2dyYW1fZGVmYXVsdF9kZXBzOgorICAgICAgICBtYWluX2RlcHMgPSBub25f ZGVwX3RndF9vYmpzCisgICAgICAgIGlmIG5vdCBtYWluX2RlcHM6CisgICAgICAgICAgICBw cmludCAoIkVycm9yOiBubyBvYmplY3RzIGZvciBkZWZhdWx0IG1haW4gcHJvZ3JhbSB0byBw b2ludCAiCisgICAgICAgICAgICAgICAgICAgImRlcGVuZGVuY3kgdG8gKGFsbCBvYmplY3Rz IHN0cm9uZ2x5IGNvbm5lY3RlZD8pIikKKyAgICAgICAgICAgIGV4aXQgKC0xKQorICAgICAg ICB0LmFkZF9kZXBzIChbIiMiXSwgbWFpbl9kZXBzKQorCisgICAgIyBTb21lIGRlYnVnIG91 dHB1dAorICAgIGlmIGNtZGxpbmVhcmdzLmRlYnVnX291dHB1dDoKKyAgICAgICAgcHJpbnQg KCJUZXN0Y2FzZTogJXMiICUgKHQudGVzdF9uYW1lKSkKKyAgICAgICAgcHJpbnQgKCJBbGwg b2JqZWN0czogJXMiICUgKHQub2JqcykpCisgICAgICAgIHByaW50ICgiLS0tIFN0YXRpYyBs aW5rIGRlcGVuZGVuY2llcyAtLS0iKQorICAgICAgICBmb3IgciBpbiB0LmRlcHMuaXRlbXMo KToKKyAgICAgICAgICAgIHByaW50ICgiJXMgLT4gJXMiICUgKHJbMF0sIHJbMV0pKQorICAg ICAgICBwcmludCAoIi0tLSBPYmplY3RzIHdob3NlIGRlcGVuZGVuY2llcyBhcmUgdG8gYmUg cGVybXV0YXRlZCAtLS0iKQorICAgICAgICBmb3IgciBpbiB0LmRlcF9wZXJtdXRhdGlvbnMu aXRlbXMoKToKKyAgICAgICAgICAgIHByaW50ICgiJXMiICUgKHJbMF0pKQorICAgICAgICBw cmludCAoIi0tLSBDYWxsIHJlZmVyZW5jZSBkZXBlbmRlbmNpZXMgLS0tIikKKyAgICAgICAg Zm9yIHIgaW4gdC5jYWxscmVmcy5pdGVtcygpOgorICAgICAgICAgICAgcHJpbnQgKCIlcyA9 PiAlcyIgJSAoclswXSwgclsxXSkpCisgICAgICAgIHByaW50ICgiLS0tIG1haW4gcHJvZ3Jh bSAtLS0iKQorICAgICAgICBwcmludCAodC5tYWluX3Byb2dyYW0pCisKKyAgICAjIE1haW4g dGVzdGNhc2UgZ2VuZXJhdGlvbiByb3V0aW5lLCBkb2VzIE1ha2VmaWxlIGZyYWdtZW50IGdl bmVyYXRpb24sCisgICAgIyB0ZXN0Y2FzZSBzb3VyY2UgZ2VuZXJhdGlvbiwgYW5kIGlmIC0t YnVpbGQgc3BlY2lmaWVkIGJ1aWxkcyB0ZXN0Y2FzZS4KKyAgICBkZWYgZ2VuZXJhdGVfdGVz dGNhc2UgKHRlc3RfZGVzY3IsIHRlc3Rfc3VmZml4KToKKworICAgICAgICB0ZXN0X25hbWUg PSB0ZXN0X2Rlc2NyLnRlc3RfbmFtZSArIHRlc3Rfc3VmZml4CisKKyAgICAgICAgIyBQcmlu dCBvdXQgbmVlZGVkIE1ha2VmaWxlIGZyYWdtZW50cyBmb3IgdXNlIGluIGdsaWJjL2VsZi9N YWtlZmlsZS4KKyAgICAgICAgbW9kdWxlX25hbWVzID0gIiIKKyAgICAgICAgZm9yIG8gaW4g dGVzdF9kZXNjci5vYmpzOgorICAgICAgICAgICAgbW9kdWxlX25hbWVzICs9ICIgIiArIHRl c3Rfc3ViZGlyICsgIi8iICsgdGVzdF9uYW1lICsgIi0iICsgbworICAgICAgICBtYWtlZmls ZS53cml0ZSAoIm1vZHVsZXMtbmFtZXMgKz0lc1xuIiAlIChtb2R1bGVfbmFtZXMpKQorCisg ICAgICAgICMgRGVwdGgtZmlyc3QgdHJhdmVyc2FsLCBleGVjdXRpbmcgRk4oT0JKKSBpbiBw b3N0LW9yZGVyCisgICAgICAgIGRlZiBkZnMgKHQsIGZuKToKKyAgICAgICAgICAgIGRlZiBk ZnNfcmVjIChvYmosIGZuLCBvYmpfdmlzaXRlZCk6CisgICAgICAgICAgICAgICAgaWYgb2Jq IGluIG9ial92aXNpdGVkOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg ICAgICAgICBvYmpfdmlzaXRlZFtvYmpdID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIG9i aiBpbiB0LmRlcHM6CisgICAgICAgICAgICAgICAgICAgIGZvciBkZXAgaW4gdC5kZXBzW29i al06CisgICAgICAgICAgICAgICAgICAgICAgICBkZnNfcmVjIChkZXAsIGZuLCBvYmpfdmlz aXRlZCkKKyAgICAgICAgICAgICAgICBmbiAob2JqKQorCisgICAgICAgICAgICBvYmpfdmlz aXRlZCA9IHt9CisgICAgICAgICAgICBmb3Igb2JqIGluIHQub2JqczoKKyAgICAgICAgICAg ICAgICBkZnNfcmVjIChvYmosIGZuLCBvYmpfdmlzaXRlZCkKKworICAgICAgICAjIEdlbmVy YXRlIGxpbmsgZGVwZW5kZW5jaWVzIGZvciBhbGwgRFNPcywgZG9uZSBpbiBhIERGUyBmYXNo aW9uLiBVc3VhbGx5CisgICAgICAgICMgdGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgdGhpcyBj b21wbGV4LCBqdXN0IGxpc3RpbmcgdGhlIGRpcmVjdCBkZXBlbmRlbmNpZXMKKyAgICAgICAg IyBpcyBlbm91Z2guIEhvd2V2ZXIgdG8gc3VwcG9ydCBjcmVhdGluZyBjaXJjdWxhciBkZXBl bmRlbmN5IHNpdHVhdGlvbnMsCisgICAgICAgICMgdHJhdmVyc2luZyBpdCBieSBERlMgYW5k IHRyYWNraW5nIHByb2Nlc3Npbmcgc3RhdHVzIGlzIHRoZSBuYXR1cmFsIHdheSB0bworICAg ICAgICAjIGRvIGl0LgorICAgICAgICBvYmpfcHJvY2Vzc2VkID0ge30KKyAgICAgICAgZmFr ZV9jcmVhdGVkID0ge30KKyAgICAgICAgZGVmIGdlbl9saW5rX2RlcHMgKG9iaik6CisgICAg ICAgICAgICBpZiBvYmogaW4gdGVzdF9kZXNjci5kZXBzOgorICAgICAgICAgICAgICAgIGRz byA9IHRlc3Rfc3ViZGlyICsgIi8iICsgdGVzdF9uYW1lICsgIi0iICsgb2JqICsgIi5zbyIK KyAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSAiIgorICAgICAgICAgICAgICAgIGZv ciBkZXAgaW4gdGVzdF9kZXNjci5kZXBzW29ial06CisgICAgICAgICAgICAgICAgICAgIGlm IGRlcCBpbiBvYmpfcHJvY2Vzc2VkOgorICAgICAgICAgICAgICAgICAgICAgICAgZGVwc3Ry ID0gKCIgJChvYmpwZngpIiArIHRlc3Rfc3ViZGlyICsgIi8iCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLnNvIikKKyAg ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgQSBj aXJjdWxhciBkZXBlbmRlbmN5IGlzIHNhdGlzZmllZCBieSBtYWtpbmcgYSBmYWtlIERTTwor ICAgICAgICAgICAgICAgICAgICAgICAgIyB0YWdnZWQgd2l0aCB0aGUgY29ycmVjdCBTT05B TUUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHN0ciA9ICgiICQob2JqcGZ4KSIgKyB0 ZXN0X3N1YmRpciArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg dGVzdF9uYW1lICsgIi0iICsgZGVwICsgIi5GQUtFLnNvIikKKyAgICAgICAgICAgICAgICAg ICAgICAgICMgQ3JlYXRlIGVtcHR5IEMgZmlsZSBhbmQgTWFrZWZpbGUgZnJhZ21lbnRzIGZv ciBmYWtlIG9iamVjdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBvbmx5IG5l ZWRzIHRvIGJlIGRvbmUgYXQgbW9zdCBvbmNlIGZvciBhbiBvYmplY3QgbmFtZS4KKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBkZXAgaW4gZmFrZV9jcmVhdGVkOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGYgPSBvcGVuICh0ZXN0cGZ4ICsgdGVzdF9uYW1lICsg Ii0iICsgZGVwICsgIi5GQUtFLmMiLCAidyIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZi53cml0ZSAoIiBcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5jbG9z ZSAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR2VuZXJhdGUgcnVsZSB0byBj cmVhdGUgZmFrZSBvYmplY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWtlZmls ZS53cml0ZSAoIkxERkxBR1MtJXMgPSAtV2wsLS1uby1hcy1uZWVkZWQgIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVdsLC1zb25hbWU9JXNcbiIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAodGVzdF9u YW1lICsgIi0iICsgZGVwICsgIi5GQUtFLnNvIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCIkKG9ianBmeCkiICsgdGVzdF9zdWJkaXIgKyAi LyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg dGVzdF9uYW1lICsgIi0iICsgZGVwICsgIi5zbyIpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYWtlZmlsZS53cml0ZSAoIm1vZHVsZXMtbmFtZXMgKz0gJXNcbiIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAodGVzdF9zdWJkaXIg KyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLkZBS0UiKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmYWtlX2NyZWF0ZWRbZGVwXSA9IFRydWUKKyAgICAgICAgICAgICAgICAg ICAgZGVwZW5kZW5jaWVzICs9IGRlcHN0cgorICAgICAgICAgICAgICAgIG1ha2VmaWxlLndy aXRlICgiJChvYmpwZngpJXM6JXNcbiIgJSAoZHNvLCBkZXBlbmRlbmNpZXMpKQorICAgICAg ICAgICAgIyBNYXJrIG9iaiBhcyBwcm9jZXNzZWQKKyAgICAgICAgICAgIG9ial9wcm9jZXNz ZWRbb2JqXSA9IFRydWUKKworICAgICAgICBkZnMgKHRlc3RfZGVzY3IsIGdlbl9saW5rX2Rl cHMpCisKKyAgICAgICAgIyBQcmludCBMREZMQUdTLSogYW5kICotbm8tei1kZWZzCisgICAg ICAgIGZvciBvIGluIHRlc3RfZGVzY3Iub2JqczoKKyAgICAgICAgICAgIGRzbyA9IHRlc3Rf bmFtZSArICItIiArIG8gKyAiLnNvIgorICAgICAgICAgICAgbWFrZWZpbGUud3JpdGUgKCJM REZMQUdTLSVzID0gLVdsLC0tbm8tYXMtbmVlZGVkXG4iICUgKGRzbykpCisgICAgICAgICAg ICBpZiBvIGluIHRlc3RfZGVzY3IuY2FsbHJlZnM6CisgICAgICAgICAgICAgICAgbWFrZWZp bGUud3JpdGUgKCIlcy1uby16LWRlZnMgPSB5ZXNcbiIgJSAoZHNvKSkKKworICAgICAgICAj IFByaW50IGRlcGVuZGVuY2llcyBmb3IgbWFpbiB0ZXN0IHByb2dyYW0KKyAgICAgICAgZGVw c3RyID0gIiIKKyAgICAgICAgaWYgJyMnIGluIHRlc3RfZGVzY3IuZGVwczoKKyAgICAgICAg ICAgIGZvciBvIGluIHRlc3RfZGVzY3IuZGVwc1snIyddOgorICAgICAgICAgICAgICAgIGRl cHN0ciArPSAoIiAkKG9ianBmeCkiICsgdGVzdF9zdWJkaXIgKyAiLyIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICsgdGVzdF9uYW1lICsgIi0iICsgbyArICIuc28iKQorICAgICAg ICBpZiB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbV9uZWVkc19sZGw6CisgICAgICAgICAgICBk ZXBzdHIgKz0gIiAkKGxpYmRsKSIKKyAgICAgICAgbWFrZWZpbGUud3JpdGUgKCIkKG9ianBm eCklcy8lczolc1xuIiAlICh0ZXN0X3N1YmRpciwgdGVzdF9uYW1lLCBkZXBzdHIpKQorICAg ICAgICBtYWtlZmlsZS53cml0ZSAoIkxERkxBR1MtJXMgPSAtV2wsLS1uby1hcy1uZWVkZWRc biIgJSAodGVzdF9uYW1lKSkKKworICAgICAgICBub3RfZGVwZW5kZWRfb2JqcyA9IGZpbmRf b2Jqc19ub3RfZGVwZW5kZWRfb24gKHRlc3RfZGVzY3IpCisgICAgICAgIGlmIG5vdF9kZXBl bmRlZF9vYmpzOgorICAgICAgICAgICAgZGVwc3RyID0gIiIKKyAgICAgICAgICAgIGZvciBk ZXAgaW4gbm90X2RlcGVuZGVkX29ianM6CisgICAgICAgICAgICAgICAgZGVwc3RyICs9ICgi ICQob2JqcGZ4KSIgKyB0ZXN0X3N1YmRpciArICIvIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLnNvIikKKyAgICAgICAgICAgIG1h a2VmaWxlLndyaXRlICgiJChvYmpwZngpJXMub3V0OiVzXG4iICUgKGJhc2VfdGVzdF9uYW1l LCBkZXBzdHIpKQorCisgICAgICAgICMgQWRkIG1haW4gZXhlY3V0YWJsZSB0byB0ZXN0LXNy Y3MKKyAgICAgICAgbWFrZWZpbGUud3JpdGUgKCJ0ZXN0LXNyY3MgKz0gJXMvJXNcbiIgJSAo dGVzdF9zdWJkaXIsIHRlc3RfbmFtZSkpCisgICAgICAgICMgQWRkIGRlcGVuZGVuY3kgb24g bWFpbiBleGVjdXRhYmxlIG9mIHRlc3QKKyAgICAgICAgbWFrZWZpbGUud3JpdGUgKCIkKG9i anBmeCklcy5vdXQ6ICQob2JqcGZ4KSVzLyVzXG4iCisgICAgICAgICAgICAgICAgICAgICAg ICAlIChiYXNlX3Rlc3RfbmFtZSwgdGVzdF9zdWJkaXIsIHRlc3RfbmFtZSkpCisKKyAgICAg ICAgZm9yIHIgaW4gdGVzdF9kZXNjci5leHBlY3RlZF9vdXRwdXRzLml0ZW1zICgpOgorICAg ICAgICAgICAgdHVuYWJsZV9lbnYgPSAiIgorICAgICAgICAgICAgdHVuYWJsZV9zZnggPSAi IgorICAgICAgICAgICAgaWYgclswXSAhPSAiIjoKKyAgICAgICAgICAgICAgICB0dW5hYmxl X2VudiA9ICJHTElCQ19UVU5BQkxFUz0lcyAiICUgclswXQorICAgICAgICAgICAgICAgIHR1 bmFibGVfc2Z4ID0gIi0iICsgclswXS5yZXBsYWNlKCI9IiwiXyIpCisgICAgICAgICAgICAj IFdyaXRlIG91dCBmcmFnbWVudCBvZiBzaGVsbCBzY3JpcHQgZm9yIHRoaXMgc2luZ2xlIHRl c3QuCisgICAgICAgICAgICB0ZXN0X2Rlc2NyLnNoLndyaXRlICgiJXMke3Rlc3Rfd3JhcHBl cl9lbnZ9ICR7cnVuX3Byb2dyYW1fZW52fSBcXFxuIgorICAgICAgICAgICAgICAgICAgICAi JHtjb21tb25fb2JqcGZ4fWVsZi9sZC5zbyBcXFxuIgorICAgICAgICAgICAgICAgICAgICAi LS1saWJyYXJ5LXBhdGggJHtjb21tb25fb2JqcGZ4fWVsZi8lczpcXFxuIgorICAgICAgICAg ICAgICAgICAgICAiJHtjb21tb25fb2JqcGZ4fWVsZjoke2NvbW1vbl9vYmpwZnh9Ljoke2Nv bW1vbl9vYmpwZnh9ZGxmY24gXFxcbiIKKyAgICAgICAgICAgICAgICAgICAgIiAgJHtjb21t b25fb2JqcGZ4fWVsZi8lcy8lcyA+ICR7Y29tbW9uX29ianBmeH1lbGYvJXMvJXMlcy5vdXRw dXRcbiIKKyAgICAgICAgICAgICAgICAgICAgJSAodHVuYWJsZV9lbnYgLHRlc3Rfc3ViZGly LAorICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1YmRpciwgdGVzdF9uYW1lLCB0ZXN0 X3N1YmRpciwgdGVzdF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICB0dW5hYmxlX3Nm eCkpCisgICAgICAgICAgICAjIEdlbmVyYXRlIGEgcnVuIG9mIGVhY2ggdGVzdCBhbmQgY29t cGFyZSB3aXRoIGV4cGVjdGVkIG91dAorICAgICAgICAgICAgdGVzdF9kZXNjci5zaC53cml0 ZSAoImlmIFsgJD8gLW5lIDAgXTsgdGhlblxuIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiAgZWNobyAnRkFJTDogJXMgZXhlY3V0aW9uIHRlc3QnXG4iCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICBzb21ldGhpbmdfZmFpbGVkPXRydWVcbiIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaVxuIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImRpZmYgLXd1ICR7Y29tbW9uX29ianBmeH1lbGYvJXMv JXMlcy5vdXRwdXQgXFxcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg ICAgICAgICAke2NvbW1vbl9vYmpwZnh9ZWxmLyVzLyVzJXMuZXhwXG4iCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiaWYgWyAkPyAtbmUgMCBdOyB0aGVuXG4iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBlY2hvICdGQUlMOiAlcyVzIGV4cGVj dGVkIG91dHB1dCBjb21wYXJpc29uJ1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAgc29tZXRoaW5nX2ZhaWxlZD10cnVlXG4iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZmlcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICUgKHRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3Rfc3ViZGlyLCB0ZXN0X25hbWUsIHR1bmFibGVfc2Z4LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9zdWJkaXIsIGJhc2VfdGVzdF9uYW1lLCB0dW5hYmxl X3NmeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSwg KCIoJXMpIiAlIHR1bmFibGVfZW52LnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR1bmFibGVfZW52IGVsc2UgIiIpKSkKKwor ICAgICAgICAjIEdlbmVyYXRlIEMgZmlsZXMgYWNjb3JkaW5nIHRvIGRlcGVuZGVuY3kgYW5k IGNhbGxpbmcgcmVsYXRpb25zIGZyb20KKyAgICAgICAgIyBkZXNjcmlwdGlvbiBzdHJpbmcu CisgICAgICAgIGZvciBvYmogaW4gdGVzdF9kZXNjci5vYmpzOgorICAgICAgICAgICAgc3Jj X25hbWUgPSB0ZXN0X25hbWUgKyAiLSIgKyBvYmogKyAiLmMiCisgICAgICAgICAgICBmID0g b3BlbiAodGVzdHBmeCArIHNyY19uYW1lLCAidyIpCisgICAgICAgICAgICBpZiBvYmogaW4g dGVzdF9kZXNjci5jYWxscmVmczoKKyAgICAgICAgICAgICAgICBjYWxsZWRfb2JqcyA9IHRl c3RfZGVzY3IuY2FsbHJlZnNbb2JqXQorICAgICAgICAgICAgICAgIGZvciBjYWxsZWUgaW4g Y2FsbGVkX29ianM6CisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUgKCJleHRlcm4gdm9p ZCBmbl8lcyAodm9pZCk7XG4iICUgKGNhbGxlZSkpCisgICAgICAgICAgICBpZiBsZW4ob2Jq KSA9PSAxOgorICAgICAgICAgICAgICAgIGYud3JpdGUgKCJleHRlcm4gaW50IHB1dGNoYXIo aW50KTtcbiIpCisgICAgICAgICAgICAgICAgZi53cml0ZSAoInN0YXRpYyB2b2lkIF9fYXR0 cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAg ImluaXQodm9pZCl7cHV0Y2hhcignJXMnKTtwdXRjaGFyKCc+Jyk7fVxuIiAlIChvYmopKQor ICAgICAgICAgICAgICAgIGYud3JpdGUgKCJzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChk ZXN0cnVjdG9yKSkgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmkodm9pZCl7 cHV0Y2hhcignPCcpO3B1dGNoYXIoJyVzJyk7fVxuIiAlIChvYmopKQorICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICBmLndyaXRlICgnZXh0ZXJuIGludCBwcmludGYoY29u c3QgY2hhciAqLCAuLi4pO1xuJykKKyAgICAgICAgICAgICAgICBmLndyaXRlICgnc3RhdGlj IHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKSAnICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAnaW5pdCh2b2lkKXtwcmludGYoIiVzPiIpO31cbicgJSAob2JqKSkKKyAg ICAgICAgICAgICAgICBmLndyaXRlICgnc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoZGVz dHJ1Y3RvcikpICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICdmaW5pKHZvaWQpe3By aW50ZigiPCVzIik7fVxuJyAlIChvYmopKQorICAgICAgICAgICAgaWYgb2JqIGluIHRlc3Rf ZGVzY3IuY2FsbHJlZnM6CisgICAgICAgICAgICAgICAgY2FsbGVkX29ianMgPSB0ZXN0X2Rl c2NyLmNhbGxyZWZzW29ial0KKyAgICAgICAgICAgICAgICBpZiBsZW4gKG9iaikgIT0gMToK KyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoImV4dGVybiBpbnQgcHV0Y2hhcihpbnQp O1xuIikKKyAgICAgICAgICAgICAgICBmLndyaXRlICgidm9pZCBmbl8lcyAodm9pZCkge1xu IiAlIChvYmopKQorICAgICAgICAgICAgICAgIGlmIGxlbiAob2JqKSA9PSAxOgorICAgICAg ICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyICgnJXMnKTtcbiIgJSAob2JqKSk7 CisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIgKCcoJyk7XG4iKTsK KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlICgn ICBwcmludGYgKCIlcygiKTtcbicgJSAob2JqKSk7CisgICAgICAgICAgICAgICAgZm9yIGNh bGxlZSBpbiBjYWxsZWRfb2JqczoKKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoIiAg Zm5fJXMgKCk7XG4iICUgKGNhbGxlZSkpCisgICAgICAgICAgICAgICAgZi53cml0ZSAoIiAg cHV0Y2hhciAoJyknKTtcbiIpOworICAgICAgICAgICAgICAgIGYud3JpdGUgKCJ9XG4iKQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3IgY2FsbHJlZiBpbiB0ZXN0 X2Rlc2NyLmNhbGxyZWZzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGlmIG9iaiBp biBjYWxscmVmWzFdOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuIChvYmopID09 IDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBXZSBuZWVkIHRvIGRlY2xhcmUg cHJpbnRmIGhlcmUgaW4gdGhpcyBjYXNlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGYud3JpdGUgKCdleHRlcm4gaW50IHByaW50Zihjb25zdCBjaGFyICosIC4uLik7XG4nKQor ICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoInZvaWQgZm5fJXMgKHZvaWQpIHtc biIgJSAob2JqKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUgKCcgIHByaW50 ZiAoIiVzKCkiKTtcbicgJSAob2JqKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3Jp dGUgKCJ9XG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg IGYuY2xvc2UgKCkKKworICAgICAgICAjIE9wZW4gQyBmaWxlIGZvciB3cml0aW5nIG1haW4g cHJvZ3JhbQorICAgICAgICBmID0gb3BlbiAodGVzdHBmeCArIHRlc3RfbmFtZSArICIuYyIs ICJ3IikKKworICAgICAgICAjIGlmIHRoZXJlIGFyZSBzb21lIG9wZXJhdGlvbnMgaW4gbWFp bigpLCBpdCBtZWFucyB3ZSBuZWVkIC1sZGwKKyAgICAgICAgaWYgdGVzdF9kZXNjci5tYWlu X3Byb2dyYW1fbmVlZHNfbGRsOgorICAgICAgICAgICAgZi53cml0ZSAoIiNpbmNsdWRlIDxk bGZjbi5oPlxuIikKKyAgICAgICAgZi53cml0ZSAoIiNpbmNsdWRlIDxzdGRpby5oPlxuIikK KyAgICAgICAgZi53cml0ZSAoIiNpbmNsdWRlIDxzdGRsaWIuaD5cbiIpCisgICAgICAgIGZv ciBzIGluIHRlc3RfZGVzY3IubWFpbl9wcm9ncmFtOgorICAgICAgICAgICAgaWYgc1swXSA9 PSAnQCc6CisgICAgICAgICAgICAgICAgZi53cml0ZSAoImV4dGVybiB2b2lkIGZuXyVzICh2 b2lkKTtcbiIsIHNbMV0pOworICAgICAgICBmLndyaXRlICgiaW50IG1haW4gKHZvaWQpIHtc biIpCisgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJ3snKTtcbiIpCisKKyAgICAgICAg IyBIZWxwZXIgcm91dGluZSBmb3IgZ2VuZXJhdGluZyBzYW5pdHkgY2hlY2tpbmcgY29kZS4K KyAgICAgICAgZGVmIHB1dF9mYWlsX2NoZWNrIChmYWlsX2NvbmQsIGFjdGlvbl9kZXNjKToK KyAgICAgICAgICAgIGYud3JpdGUgKCcgIGlmICglcykgeyBwcmludGYgKCJcXG4lcyBmYWls ZWQ6ICUlc1xcbiIsICcKKyAgICAgICAgICAgICAgICAgICAgICdkbGVycm9yICgpKTsgZXhp dCAoMSk7fVxuJyAlIChmYWlsX2NvbmQsIGFjdGlvbl9kZXNjKSkKKyAgICAgICAgaSA9IDAK KyAgICAgICAgd2hpbGUgaSA8IGxlbih0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbSk6CisgICAg ICAgICAgICBzID0gdGVzdF9kZXNjci5tYWluX3Byb2dyYW1baV0KKyAgICAgICAgICAgIG9i aiA9IHNbbGVuKHMpLTFdCisgICAgICAgICAgICBkc28gPSB0ZXN0X25hbWUgKyAiLSIgKyBv YmoKKyAgICAgICAgICAgIGlmIHNbMF0gPT0gJysnIG9yIHNbMF0gPT0gJ14nOgorICAgICAg ICAgICAgICAgIGlmIHNbMF0gPT0gJysnOgorICAgICAgICAgICAgICAgICAgICBkbG9wZW5f ZmxhZ3MgPSAiUlRMRF9MQVpZfFJUTERfR0xPQkFMIgorICAgICAgICAgICAgICAgICAgICBm LndyaXRlICgiICBwdXRjaGFyKCcrJyk7XG4iKTsKKyAgICAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICAgICBkbG9wZW5fZmxhZ3MgPSAiUlRMRF9MQVpZIgorICAgICAg ICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCc6Jyk7XG4iKTsKKyAgICAgICAg ICAgICAgICBpZiBsZW4gKG9iaikgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgZi53cml0 ZSAoIiAgcHV0Y2hhcignJXMnKTtcbiIgJSAob2JqKSk7CisgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoJyAgcHJpbnRmKCIlcyIpO1xuJyAl IChvYmopKTsKKyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCdbJyk7XG4i KTsKKyAgICAgICAgICAgICAgICBmLndyaXRlICgnICB2b2lkIColcyA9IGRsb3BlbiAoIiVz LnNvIiwgJXMpO1xuJworICAgICAgICAgICAgICAgICAgICAgICAgICUgKG9iaiwgZHNvLCBk bG9wZW5fZmxhZ3MpKQorICAgICAgICAgICAgICAgIHB1dF9mYWlsX2NoZWNrICgiISVzIiAl IChvYmopLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMuc28gZGxvcGVu IiAlIChkc28pKQorICAgICAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJ10nKTtc biIpOworICAgICAgICAgICAgZWxpZiBzWzBdID09ICctJzoKKyAgICAgICAgICAgICAgICBm LndyaXRlICgiICBwdXRjaGFyKCctJyk7XG4iKTsKKyAgICAgICAgICAgICAgICBpZiBsZW4g KG9iaikgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoIiAgcHV0Y2hhcign JXMnKTtcbiIgJSAob2JqKSk7CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgZi53cml0ZSAoJyAgcHJpbnRmKCIlcyIpO1xuJyAlIChvYmopKTsKKyAgICAg ICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCdbJyk7XG4iKTsKKyAgICAgICAgICAg ICAgICBwdXRfZmFpbF9jaGVjayAoImRsY2xvc2UgKCVzKSAhPSAwIiAlIChvYmopLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMuc28gZGxjbG9zZSIgJSAoZHNvKSkK KyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCddJyk7XG4iKTsKKyAgICAg ICAgICAgIGVsaWYgc1swXSA9PSAnJSc6CisgICAgICAgICAgICAgICAgZi53cml0ZSAoIiAg cHV0Y2hhcignJScpO1xuIik7CisgICAgICAgICAgICAgICAgZi53cml0ZSAoJyAgdm9pZCAo KmZuXyVzKSh2b2lkKSA9IGRsc3ltICglcywgImZuXyVzIik7XG4nCisgICAgICAgICAgICAg ICAgICAgICAgICAgJSAob2JqLCBvYmosIG9iaikpCisgICAgICAgICAgICAgICAgcHV0X2Zh aWxfY2hlY2sgKCIhZm5fJXMiICUgKG9iaiksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJkbHN5bShmbl8lcykgZnJvbSAlcy5zbyIgJSAob2JqLCBkc28pKQorICAgICAg ICAgICAgICAgIGYud3JpdGUgKCIgIGZuXyVzICgpO1xuIiAlIChvYmopKQorICAgICAgICAg ICAgZWxpZiBzWzBdID09ICdAJzoKKyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRj aGFyKCdAJyk7XG4iKTsKKyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBmbl8lcyAoKTtc biIgJSAob2JqKSkKKyAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJzsnKTtcbiIp OworICAgICAgICAgICAgaSArPSAxCisgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJ30n KTtcbiIpCisgICAgICAgIGYud3JpdGUgKCIgIHJldHVybiAwO1xuIikKKyAgICAgICAgZi53 cml0ZSAoIn1cbiIpCisgICAgICAgIGYuY2xvc2UgKCkKKworICAgICAgICAjIC0tYnVpbGQg b3B0aW9uIHByb2Nlc3Npbmc6IGJ1aWxkIGdlbmVyYXRlZCBzb3VyY2VzIHVzaW5nICdidWls ZF9nY2MnCisgICAgICAgIGlmIGNtZGxpbmVhcmdzLmJ1aWxkOgorICAgICAgICAgICAgIyBI ZWxwZXIgcm91dGluZSB0byBydW4gYSBzaGVsbCBjb21tYW5kLCBmb3IgcnVubmluZyBHQ0Mg YmVsb3cKKyAgICAgICAgICAgIGRlZiBydW5fY21kIChhcmdzKToKKyAgICAgICAgICAgICAg ICBjbWQgPSBzdHIuam9pbiAoJyAnLCBhcmdzKQorICAgICAgICAgICAgICAgIGlmIGNtZGxp bmVhcmdzLmRlYnVnX291dHB1dDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgKGNtZCkK KyAgICAgICAgICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbiAoYXJncykKKyAgICAgICAg ICAgICAgICBwLndhaXQgKCkKKyAgICAgICAgICAgICAgICBpZiBwLnJldHVybmNvZGUgIT0g MDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgKCJFcnJvciBydW5uaW5nOiAlcyIgJSAo Y21kKSkKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAoLTEpCisKKyAgICAgICAgICAgICMg Q29tcGlsZSBpbmRpdmlkdWFsIC5vcyBmaWxlcworICAgICAgICAgICAgZm9yIG9iaiBpbiB0 ZXN0X2Rlc2NyLm9ianM6CisgICAgICAgICAgICAgICAgc3JjX25hbWUgPSB0ZXN0X25hbWUg KyAiLSIgKyBvYmogKyAiLmMiCisgICAgICAgICAgICAgICAgb2JqX25hbWUgPSB0ZXN0X25h bWUgKyAiLSIgKyBvYmogKyAiLm9zIgorICAgICAgICAgICAgICAgIHJ1bl9jbWQgKFtidWls ZF9nY2MsICItYyIsICItZlBJQyIsIHRlc3RwZnggKyBzcmNfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIi1vIiwgdGVzdHBmeCArIG9ial9uYW1lXSkKKworICAgICAgICAg ICAgb2JqX3Byb2Nlc3NlZCA9IHt9CisgICAgICAgICAgICBmYWtlX2NyZWF0ZWQgPSB7fQor ICAgICAgICAgICAgIyBGdW5jdGlvbiB0byBjcmVhdGUgPHRlc3RfbmFtZT4tPG9iaj4uc28K KyAgICAgICAgICAgIGRlZiBidWlsZF9kc28gKG9iaik6CisgICAgICAgICAgICAgICAgb2Jq X25hbWUgPSB0ZXN0X25hbWUgKyAiLSIgKyBvYmogKyAiLm9zIgorICAgICAgICAgICAgICAg IGRzb19uYW1lID0gdGVzdF9uYW1lICsgIi0iICsgb2JqICsgIi5zbyIKKyAgICAgICAgICAg ICAgICBkZXBzID0gW10KKyAgICAgICAgICAgICAgICBpZiBvYmogaW4gdGVzdF9kZXNjci5k ZXBzOgorICAgICAgICAgICAgICAgICAgICBmb3IgZGVwIGluIHRlc3RfZGVzY3IuZGVwc1tv YmpdOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGVwIGluIG9ial9wcm9jZXNzZWQ6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcy5hcHBlbmQgKGRlcCkKKyAgICAg ICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVwcy5hcHBlbmQgKGRlcCArICIuRkFLRSIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbm90IGRlcCBpbiBmYWtlX2NyZWF0ZWQ6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZCA9IFtidWlsZF9nY2MsICItV2wsLS1uby1hcy1uZWVkZWQiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCItV2wsLXNvbmFtZT0iICsg dGVzdHBmeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdGVz dF9uYW1lICsgIi0iICsgZGVwICsgIi5zbyIpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi1zaGFyZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdHBmeCArIHRlc3RfbmFtZSArICItIiArIGRlcCArICIuRkFLRS5j IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cGZ4ICsgdGVzdF9uYW1l ICsgIi0iICsgZGVwICsgIi5GQUtFLnNvIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnVuX2NtZCAoY21kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm YWtlX2NyZWF0ZWRbZGVwXSA9IFRydWUKKyAgICAgICAgICAgICAgICBkc29fZGVwcyA9IG1h cCAobGFtYmRhIGQ6IHRlc3RwZnggKyB0ZXN0X25hbWUgKyAiLSIgKyBkICsgIi5zbyIsIGRl cHMpCisgICAgICAgICAgICAgICAgY21kID0gKFtidWlsZF9nY2MsICItc2hhcmVkIiwgIi1v IiwgdGVzdHBmeCArIGRzb19uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHBm eCArIG9ial9uYW1lLCAiLVdsLC0tbm8tYXMtbmVlZGVkIl0gKyBsaXN0KGRzb19kZXBzKSkK KyAgICAgICAgICAgICAgICBydW5fY21kIChjbWQpCisgICAgICAgICAgICAgICAgb2JqX3By b2Nlc3NlZFtvYmpdID0gVHJ1ZQorCisgICAgICAgICAgICAjIEJ1aWxkIGFsbCBEU09zLCB0 aGlzIG5lZWRzIHRvIGJlIGluIHRvcG9sb2dpY2FsIGRlcGVuZGVuY3kgb3JkZXIsCisgICAg ICAgICAgICAjIG9yIGxpbmsgd2lsbCBmYWlsCisgICAgICAgICAgICBkZnMgKHRlc3RfZGVz Y3IsIGJ1aWxkX2RzbykKKworICAgICAgICAgICAgIyBCdWlsZCBtYWluIHByb2dyYW0KKyAg ICAgICAgICAgIGRlcHMgPSBbXQorICAgICAgICAgICAgaWYgJyMnIGluIHRlc3RfZGVzY3Iu ZGVwczoKKyAgICAgICAgICAgICAgICBkZXBzID0gdGVzdF9kZXNjci5kZXBzWycjJ10KKyAg ICAgICAgICAgIG1haW5fZGVwcyA9IG1hcCAobGFtYmRhIGQ6IHRlc3RwZnggKyB0ZXN0X25h bWUgKyAiLSIgKyBkICsgIi5zbyIsIGRlcHMpCisgICAgICAgICAgICBjbWQgPSAoW2J1aWxk X2djYywgIi1XbCwtLW5vLWFzLW5lZWRlZCIsICItbyIsIHRlc3RwZnggKyB0ZXN0X25hbWUs CisgICAgICAgICAgICAgICAgICAgIHRlc3RwZnggKyB0ZXN0X25hbWUgKyAiLmMiLCAiLUwl cyIgJSAob3MuZ2V0Y3dkICgpKSwKKyAgICAgICAgICAgICAgICAgICAgIi1XbCwtcnBhdGgt bGluaz0lcyIgJSAob3MuZ2V0Y3dkICgpKV0KKyAgICAgICAgICAgICAgICAgICArIGxpc3Qg KG1haW5fZGVwcykpCisgICAgICAgICAgICBpZiB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbV9u ZWVkc19sZGw6CisgICAgICAgICAgICAgICAgY21kICs9IFsiLWxkbCJdCisgICAgICAgICAg ICBydW5fY21kIChjbWQpCisKKyAgICAjIENoZWNrIGlmIHdlIG5lZWQgdG8gZW51bWVyYXRl IHBlcm11dGF0aW9ucyBvZiBkZXBlbmRlbmNpZXMKKyAgICBuZWVkX3Blcm11dGF0aW9uX3By b2Nlc3NpbmcgPSBGYWxzZQorICAgIGlmIHQuZGVwX3Blcm11dGF0aW9uczoKKyAgICAgICAg IyBBZGp1c3QgZGVwX3Blcm11dGF0aW9ucyBpbnRvIG1hcCBvZiBvYmplY3QgLT4gZGVwZW5k ZW5jeSBwZXJtdXRhdGlvbnMKKyAgICAgICAgZm9yIHIgaW4gdC5kZXBfcGVybXV0YXRpb25z Lml0ZW1zKCk6CisgICAgICAgICAgICBvYmogPSByWzBdCisgICAgICAgICAgICBpZiBvYmog aW4gdC5kZXBzIGFuZCBsZW4odC5kZXBzW29ial0pID4gMToKKyAgICAgICAgICAgICAgICBk ZXBzID0gdC5kZXBzW29ial0KKyAgICAgICAgICAgICAgICB0LmRlcF9wZXJtdXRhdGlvbnNb b2JqXSA9IGxpc3QgKGl0ZXJ0b29scy5wZXJtdXRhdGlvbnMgKGRlcHMpKQorICAgICAgICAg ICAgICAgIG5lZWRfcGVybXV0YXRpb25fcHJvY2Vzc2luZyA9IFRydWUKKworICAgIGRlZiBl bnVtX3Blcm11dGF0aW9ucyAodCwgcGVybV9saXN0KToKKyAgICAgICAgdGVzdF9zdWJpbmRl eCA9IDEKKyAgICAgICAgY3Vycl9wZXJtcyA9IFtdCisgICAgICAgIGRlZiBlbnVtX3Blcm11 dGF0aW9uc19yZWMgKHQsIHBlcm1fbGlzdCk6CisgICAgICAgICAgICBub25sb2NhbCB0ZXN0 X3N1YmluZGV4LCBjdXJyX3Blcm1zCisgICAgICAgICAgICBpZiBsZW4ocGVybV9saXN0KSA+ PSAxOgorICAgICAgICAgICAgICAgIGN1cnIgPSBwZXJtX2xpc3RbMF0KKyAgICAgICAgICAg ICAgICBvYmogPSBjdXJyWzBdCisgICAgICAgICAgICAgICAgcGVybXMgPSBjdXJyWzFdCisg ICAgICAgICAgICAgICAgaWYgbm90IHBlcm1zOgorICAgICAgICAgICAgICAgICAgICAjIFRo aXMgbWF5IGJlIGFuIGVtcHR5IGxpc3QgaWYgbm8gbXVsdGlwbGUgZGVwZW5kZW5jaWVzIHRv CisgICAgICAgICAgICAgICAgICAgICMgcGVybXV0ZSB3ZXJlIGZvdW5kLCBza2lwIHRvIG5l eHQgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgICAgIGVudW1fcGVybXV0YXRpb25z X3JlYyAodCwgcGVybV9saXN0WzE6XSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBmb3IgZGVwcyBpbiBwZXJtczoKKyAgICAgICAgICAgICAgICAgICAg ICAgIHQuZGVwc1tvYmpdID0gZGVwcworICAgICAgICAgICAgICAgICAgICAgICAgcGVybXN0 ciA9ICIiIGlmIG9iaiA9PSAiIyIgZWxzZSBvYmogKyAiXyIKKyAgICAgICAgICAgICAgICAg ICAgICAgIHBlcm1zdHIgKz0gc3RyLmpvaW4gKCcnLCBkZXBzKQorICAgICAgICAgICAgICAg ICAgICAgICAgY3Vycl9wZXJtcy5hcHBlbmQgKHBlcm1zdHIpCisgICAgICAgICAgICAgICAg ICAgICAgICBlbnVtX3Blcm11dGF0aW9uc19yZWMgKHQsIHBlcm1fbGlzdFsxOl0pCisgICAg ICAgICAgICAgICAgICAgICAgICBjdXJyX3Blcm1zID0gY3Vycl9wZXJtc1swOmxlbihjdXJy X3Blcm1zKS0xXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIHQuZGVw cyBpcyBub3cgaW5zdGFudGlhdGVkIHdpdGggb25lIGRlcGVuZGVuY3kgb3JkZXIKKyAgICAg ICAgICAgICAgICAjIHBlcm11dGF0aW9uIChhY3Jvc3MgYWxsIG9iamVjdHMgdGhhdCBoYXZl IG11bHRpcGxlCisgICAgICAgICAgICAgICAgIyBwZXJtdXRhdGlvbnMpLCBub3cgcHJvY2Vz cyBhIHRlc3RjYXNlCisgICAgICAgICAgICAgICAgZ2VuZXJhdGVfdGVzdGNhc2UgKHQsICgi XyIgKyBzdHIgKHRlc3Rfc3ViaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArICItIiArIHN0ci5qb2luICgnLScsIGN1cnJfcGVybXMpKSkKKyAgICAg ICAgICAgICAgICB0ZXN0X3N1YmluZGV4ICs9IDEKKyAgICAgICAgZW51bV9wZXJtdXRhdGlv bnNfcmVjICh0LCBwZXJtX2xpc3QpCisKKyAgICAjIENyZWF0ZSAqLmV4cCBmaWxlcyB3aXRo IGV4cGVjdGVkIG91dHB1dHMKKyAgICBmb3IgciBpbiB0LmV4cGVjdGVkX291dHB1dHMuaXRl bXMgKCk6CisgICAgICAgIHNmeCA9ICIiCisgICAgICAgIGlmIHJbMF0gIT0gIiI6CisgICAg ICAgICAgICBzZnggPSAiLSIgKyByWzBdLnJlcGxhY2UoIj0iLCJfIikKKyAgICAgICAgZiA9 IG9wZW4gKHRlc3RwZnggKyB0LnRlc3RfbmFtZSArIHNmeCArICIuZXhwIiwgInciKQorICAg ICAgICBmLndyaXRlICgnJXMnICUgclsxXSkKKyAgICAgICAgZi5jbG9zZSAoKQorCisgICAg IyBDcmVhdGUgaGVhZGVyIHBhcnQgb2YgdG9wLWxldmVsIHRlc3RjYXNlIHNoZWxsIHNjcmlw dCwgdG8gd3JhcCBleGVjdXRpb24KKyAgICAjIGFuZCBvdXRwdXQgY29tcGFyaXNvbiB0b2dl dGhlci4KKyAgICB0LnNoID0gb3BlbiAodGVzdHBmeCArIHQudGVzdF9uYW1lICsgIi5zaCIs ICJ3IikKKyAgICB0LnNoLndyaXRlICgiIyEvYmluL3NoXG4iKQorICAgIHQuc2gud3JpdGUg KCIjIFRlc3QgZHJpdmVyIGZvciAlcywgZ2VuZXJhdGVkIGJ5ICIKKyAgICAgICAgICAgICAg ICAiZHNvLW9yZGVyaW5nLXRlc3QucHlcbiIgJSAodC50ZXN0X25hbWUpKQorICAgIHQuc2gu d3JpdGUgKCJjb21tb25fb2JqcGZ4PSQxXG4iKQorICAgIHQuc2gud3JpdGUgKCJ0ZXN0X3dy YXBwZXJfZW52PSQyXG4iKQorICAgIHQuc2gud3JpdGUgKCJydW5fcHJvZ3JhbV9lbnY9JDNc biIpCisgICAgdC5zaC53cml0ZSAoInNvbWV0aGluZ19mYWlsZWQ9ZmFsc2VcbiIpCisKKyAg ICAjIFN0YXJ0aW5nIHBhcnQgb2YgTWFrZWZpbGUgZnJhZ21lbnQKKyAgICBtYWtlZmlsZS53 cml0ZSAoImlmZXEgKHllcywkKGJ1aWxkLXNoYXJlZCkpXG4iKQorCisgICAgaWYgbmVlZF9w ZXJtdXRhdGlvbl9wcm9jZXNzaW5nOgorICAgICAgICBlbnVtX3Blcm11dGF0aW9ucyAodCwg bGlzdCAodC5kZXBfcGVybXV0YXRpb25zLml0ZW1zKCkpKQorICAgIGVsc2U6CisgICAgICAg ICMgV2UgaGF2ZSBubyBwZXJtdXRhdGlvbnMgdG8gZW51bWVyYXRlLCBqdXN0IHByb2Nlc3Mg dGVzdGNhc2Ugbm9ybWFsbHkKKyAgICAgICAgZ2VuZXJhdGVfdGVzdGNhc2UgKHQsICIiKQor CisgICAgIyBPdXRwdXQgZW5kIHBhcnQgb2YgTWFrZWZpbGUgZnJhZ21lbnQKKyAgICBleHBl Y3RlZF9vdXRwdXRfZmlsZXMgPSAiIgorICAgIGZvciByIGluIHQuZXhwZWN0ZWRfb3V0cHV0 cy5pdGVtcyAoKToKKyAgICAgICAgc2Z4ID0gIiIKKyAgICAgICAgaWYgclswXSAhPSAiIjoK KyAgICAgICAgICAgIHNmeCA9ICItIiArIHJbMF0ucmVwbGFjZSgiPSIsIl8iKQorICAgICAg ICBleHBlY3RlZF9vdXRwdXRfZmlsZXMgKz0gIiAkKG9ianBmeCklcy8lcyVzLmV4cCIgJSAo dGVzdF9zdWJkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0LnRlc3RfbmFtZSwgc2Z4KQorICAgIG1ha2VmaWxlLndy aXRlICgiJChvYmpwZngpJXMub3V0OiAkKG9ianBmeCklcy8lcy5zaCVzXG4iCisgICAgICAg ICAgICAgICAgICAgICUgKHQudGVzdF9uYW1lLCB0ZXN0X3N1YmRpciwgdC50ZXN0X25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX291dHB1dF9maWxlcykpCisgICAg bWFrZWZpbGUud3JpdGUgKCJcdCQoU0hFTEwpICQ8ICQoY29tbW9uLW9ianBmeCkgJyQodGVz dC13cmFwcGVyLWVudiknICIKKyAgICAgICAgICAgICAgICAgICAgIickKHJ1bi1wcm9ncmFt LWVudiknID4gJEA7ICQoZXZhbHVhdGUtdGVzdClcbiIpCisgICAgbWFrZWZpbGUud3JpdGUg KCJpZmVxICgkKHJ1bi1idWlsdC10ZXN0cykseWVzKVxuIikKKyAgICBtYWtlZmlsZS53cml0 ZSAoInRlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngpJXMub3V0XG4iICUgKHQudGVzdF9uYW1l KSkKKyAgICBtYWtlZmlsZS53cml0ZSAoImVuZGlmXG4iKQorICAgIG1ha2VmaWxlLndyaXRl ICgiZW5kaWZcbiIpCisKKyAgICAjIFdyaXRlIGVuZGluZyBwYXJ0IG9mIHNoZWxsIHNjcmlw dCBnZW5lcmF0aW9uCisgICAgdC5zaC53cml0ZSAoImlmICRzb21ldGhpbmdfZmFpbGVkOyB0 aGVuXG4iCisgICAgICAgICAgICAgICAgIiAgZXhpdCAxXG4iCisgICAgICAgICAgICAgICAg ImVsc2VcbiIKKyAgICAgICAgICAgICAgICAiICBlY2hvICdQQVNTOiBhbGwgdGVzdHMgZm9y ICVzIHN1Y2NlZWRlZCdcbiIKKyAgICAgICAgICAgICAgICAiICBleGl0IDBcbiIKKyAgICAg ICAgICAgICAgICAiZmlcbiIgJSAodC50ZXN0X25hbWUpKQorICAgIHQuc2guY2xvc2UgKCkK KworIyBEZWNyaXB0aW9uIGZpbGUgcGFyc2luZworZGVmIHBhcnNlX2Rlc2NyaXB0aW9uX2Zp bGUgKGZpbGVuYW1lKToKKyAgICBmID0gb3BlbiAoZmlsZW5hbWUpCisgICAgaWYgbm90IGY6 CisgICAgICAgIHByaW50ICgiRXJyb3I6IGNhbm5vdCBvcGVuIGRlc2NyaXB0aW9uIGZpbGUg JXMiICUgKGZpbGVuYW1lKSkKKyAgICAgICAgZXhpdCAoLTEpCisgICAgZGVzY3JmaWxlX2xp bmVzID0gZi5yZWFkbGluZXMgKCkKKyAgICB0ID0gTm9uZQorICAgIGZvciBsaW5lIGluIGRl c2NyZmlsZV9saW5lczoKKyAgICAgICAgcCA9IHJlLmNvbXBpbGUgKHIiIy4qJCIpCisgICAg ICAgIGxpbmUgPSBwLnN1YiAoIiIsIGxpbmUpICMgRmlsdGVyIG91dCBjb21tZW50cworICAg ICAgICBsaW5lID0gbGluZS5zdHJpcCAoKSAjIFJlbW92ZSBleGNlc3Mgd2hpdGVzcGFjZQor ICAgICAgICBtID0gcmUubWF0Y2ggKHIiXihbXjpdKyk6XHMqKC4qKSQiLCBsaW5lKQorICAg ICAgICBpZiBtOgorICAgICAgICAgICAgbyA9IHJlLm1hdGNoIChyIl5vdXRwdXQoLiopJCIs IG0uZ3JvdXAgKDEpKQorICAgICAgICAgICAgaWYgbzoKKyAgICAgICAgICAgICAgICBpZiBu b3QgdDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgKCJFcnJvcjogb3V0cHV0IHNwZWNp ZmljYXRpb24gd2l0aG91dCB0ZXN0Y2FzZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZGVzY3JpcHRpb24iKQorICAgICAgICAgICAgICAgICAgICBleGl0ICgtMSkKKyAgICAg ICAgICAgICAgICB0c3N0ciA9ICIiCisgICAgICAgICAgICAgICAgaWYgby5ncm91cCgxKToK KyAgICAgICAgICAgICAgICAgICAgdHMgPSByZS5tYXRjaCAociJeXCgoW2EtekEtWjAtOV8u PV0qKVwpJCIsIG8uZ3JvdXAgKDEpKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgdHM6 CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAoIkVycm9yOiB0dW5hYmxlIG9wdGlv biBtYWxmb3JtZWQgJyVzJyIgJSBvLmdyb3VwKDEpKQorICAgICAgICAgICAgICAgICAgICAg ICAgZXhpdCAoLTEpCisgICAgICAgICAgICAgICAgICAgIHRzc3RyID0gdHMuZ3JvdXAoMSkK KyAgICAgICAgICAgICAgICB0LmV4cGVjdGVkX291dHB1dHNbdHNzdHJdID0gbS5ncm91cCAo MikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgdDoKKyAgICAgICAg ICAgICAgICAgICAgIyBTdGFydGluZyBhIG5ldyB0ZXN0IGRlc2NyaXB0aW9uLCBlbmQgYW5k IHByb2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgIyBjdXJyZW50IG9uZS4KKyAgICAgICAg ICAgICAgICAgICAgcHJvY2Vzc190ZXN0Y2FzZSAodCkKKyAgICAgICAgICAgICAgICB0ID0g VGVzdERlc2NyICgpCisgICAgICAgICAgICAgICAgdC50ZXN0X25hbWUgPSBtLmdyb3VwICgx KQorICAgICAgICAgICAgICAgIGRlc2NyX3N0cmluZyA9IG0uZ3JvdXAgKDIpCisgICAgICAg ICAgICAgICAgcGFyc2VfZGVzY3JpcHRpb25fc3RyaW5nICh0LCBkZXNjcl9zdHJpbmcpCisg ICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbGlu ZToKKyAgICAgICAgICAgICAgICBpZiBub3QgdDoKKyAgICAgICAgICAgICAgICAgICAgcHJp bnQgKCJFcnJvcjogbm8gYWN0aXZlIHRlc3RjYXNlIGRlc2NyaXB0aW9uIikKKyAgICAgICAg ICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICAgICAgcGFyc2VfZGVzY3JpcHRp b25fc3RyaW5nICh0LCBsaW5lKQorICAgICMgUHJvY2VzcyBsYXN0IGNvbXBsZXRlZCB0ZXN0 IGRlc2NyaXB0aW9uCisgICAgaWYgdDoKKyAgICAgICAgcHJvY2Vzc190ZXN0Y2FzZSAodCkK KworIyBTZXR1cCBNYWtlZmlsZSBvdXRwdXQgdG8gZmlsZSBvciBzdGRvdXQgYXMgc2VsZWN0 ZWQKK2lmIG91dHB1dF9tYWtlZmlsZToKKyAgICBvdXRwdXRfbWFrZWZpbGVfZGlyID0gb3Mu cGF0aC5kaXJuYW1lIChvdXRwdXRfbWFrZWZpbGUpCisgICAgaWYgb3V0cHV0X21ha2VmaWxl X2RpcjoKKyAgICAgICAgb3MubWFrZWRpcnMgKG91dHB1dF9tYWtlZmlsZV9kaXIsIGV4aXN0 X29rID0gVHJ1ZSkKKyAgICBtYWtlZmlsZSA9IG9wZW4gKG91dHB1dF9tYWtlZmlsZSwgInci KQorZWxzZToKKyAgICBtYWtlZmlsZSA9IG9wZW4gKHN5cy5zdGRvdXQuZmlsZW5vICgpLCAi dyIpCisKKyMgRmluYWxseSwgdGhlIG1haW4gdG9wLWxldmVsIGNhbGxpbmcgb2YgYWJvdmUg cGFyc2luZyByb3V0aW5lcy4KK2lmIGRlc2NyaXB0aW9uX2ZpbGU6CisgICAgcGFyc2VfZGVz Y3JpcHRpb25fZmlsZSAoZGVzY3JpcHRpb25fZmlsZSkKK2Vsc2U6CisgICAgdCA9IFRlc3RE ZXNjciAoKQorICAgIHQudGVzdF9uYW1lID0gdGVzdF9uYW1lCisgICAgcGFyc2VfZGVzY3Jp cHRpb25fc3RyaW5nICh0LCBkZXNjcmlwdGlvbikKKyAgICBwcm9jZXNzX3Rlc3RjYXNlICh0 KQorCisjIENsb3NlIE1ha2VmaWxlIGZyYWdtZW50IG91dHB1dAorbWFrZWZpbGUuY2xvc2Ug KCkK --------------B83B762A5B198B946E8A3337--