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 39EF81F55B for ; Tue, 19 May 2020 13:25:24 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 328683947C3E; Tue, 19 May 2020 13:25:19 +0000 (GMT) Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id F2D013948801 for ; Tue, 19 May 2020 13:24:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org F2D013948801 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: 1QPkdRW9u2nHyq8pFE2hCe/Gqxh9JBPatBwav4pewmfir2U+g9sQEgGfptIpxQn3AfniBtlqVN WRjggVbGFB1tFYiexx6svsUcEi7nKWM7iS/9+JC75GXSJtkSjkWg4AWQwpPVDDtJ1X7ZlJs8qN DzJZ/84b7m/5cUmi2cHSiFj8lXN3rdYRmoXtNtrHwM/mTj/qqzAin47SwOzncZJt+/VtjMncnw p5PBhTAfdonxYcOZSwzXVgPe0PDoawYENgyOGUgLMrWNPu0BJxOSCgBOROl2w1CfK5YgfigowJ fDw= X-IronPort-AV: E=Sophos;i="5.73,410,1583222400"; d="scan'208";a="49041628" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa4.mentor.iphmx.com with ESMTP; 19 May 2020 05:24:55 -0800 IronPort-SDR: k2TuRqSxloKyXohiJR4veiZ7/ZdwiDjzPZhSYGRxtgYv6pYRjAj6oucXWslO9Bsxjtx9gQwj0m Lqua1CHfEGj90ui6GHXWQ6zV4Wm5rHgZLfYXC12C/xUa5+HHV0qzKF4YLSxn3HZj2pSPPyvcrm 6FAOKlAlsQ86ap2CIGAKkkd2xboACAwVafqBo/tlWcL/j/a5Q/jV3YqlEDxrAXqk779k8UFqoK QLuTpxtGhNt7zoHS62dbNUiQJdIxC5xfhNDONUnWNId4YP8Z1XruvMyiwdSFB8w7ctYz+EG2mM lxY= From: Chung-Lin Tang Subject: [PATCH v2 1/2] BZ #17645, fix slow DSO sorting behavior in dynamic loader To: GNU C Library , Carlos O'Donell Message-ID: Date: Tue, 19 May 2020 21:24: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 Content-Type: multipart/mixed; boundary="------------BC545216BD5B02CA58AECF47" Content-Language: en-US X-ClientProxiedBy: SVR-ORW-MBX-07.mgc.mentorg.com (147.34.90.207) 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 Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --------------BC545216BD5B02CA58AECF47 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Hi Carlos, Thanks for the detailed review you gave the last submission[1], and apologies for taking so long for this revised patch set. I believe this one should resolve almost all of the issues you raised in your review. As the last submission, there are two parts: this one, the testing patch, and the actual algorithm changes. On the testing part here, the dso-ordering-test.py script has had some pretty significant changes since the last version[2]: 1. For each test, all objects and scripts are now created in an '$objpfx/elf/-dir' subdirectory, which should be much tidier for testcases with a large number of objects. 2. The running and comparing of tests are now all combined into a single test, executed by the running of a generated .sh shell script. In the last version, things like permutations created a large number of individual tests, which are now all combined as one. Actually another tidying change. 3. Tests can now be specified in description files; all of the tests that were in the last submission are now placed in elf/dso-sort-tests-1.def. 4. More flexible names, now [a-zA-Z0-9]+ are allowed. 5. Constructor/destructor output adjusted to "name>" and " [BZ #17645] [BZ #15311] [BZ #15310] * elf/Makefile (include_dsosort_tests): New make function. Use to process dso-sort-tests-[12].def files. (single_dsosort_test): Likewise. * dso-sort-tests-1.def: New file. * dso-sort-tests-2.def: New file. * scripts/dso-ordering-test.py: New script. --------------BC545216BD5B02CA58AECF47 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="dlsort-01-tests-v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dlsort-01-tests-v2.patch" ZGlmZiAtLWdpdCBhL2VsZi9NYWtlZmlsZSBiL2VsZi9NYWtlZmlsZQppbmRleCA3N2RhNjFh ZTY0Li44ZWY5YTFkOTdkIDEwMDY0NAotLS0gYS9lbGYvTWFrZWZpbGUKKysrIGIvZWxmL01h a2VmaWxlCkBAIC00MjAsNiArNDIwLDM3IEBAIHRlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngp b3JkZXItY21wLm91dCAkKG9ianBmeCl0c3QtYXJyYXkxLWNtcC5vdXQgXAogCQkgJChvYmpw ZngpdHN0LXVudXNlZC1kZXAtY21wLm91dAogZW5kaWYKIAorIyBEU08gc29ydGluZyB0ZXN0 czoKKyMgVGhlIGRzby1vcmRlcmluZy10ZXN0LnB5IHNjcmlwdCBnZW5lcmF0ZXMgdGVzdGNh c2Ugc291cmNlIGZpbGVzIGluICQob2JqcGZ4KSwKKyMgY3JlYXRpbmcgYSAkKG9ianBmeCk8 dGVzdGNhc2UtbmFtZT4tZGlyIGZvciBlYWNoIHRlc3RjYXNlLCBhbmQgb3V0cHV0cyBhbGwK KyMgTWFrZWZpbGUgZnJhZ21lbnRzLiBCZWNhdXNlIG5vcm1hbCBvdXRwdXQgZnJvbSAkKHNo ZWxsIC4uLikgaGFzIG5ld2xpbmVzCisjIGNoYW5nZWQgaW50byBzcGFjZXMsIHdlIGNhbm5v dCBkaXJlY3RseSAkKGV2YWwpIGl0LCBhbmQgaGF2ZSB0byBzYXZlIGl0IHRvIGEKKyMgdGVt cG9yYXJ5IGZpbGUgYW5kIHRoZW4gaW5jbHVkZSBpdC4gV2Ugd3JhcCB0aGlzIGVudGlyZSB0 ZXN0Y2FzZSBnZW5lcmF0aW9uCisjIGZyb20gYSBkZXNjcmlwdGlvbiBmaWxlIGludG8gYSBm dW5jdGlvbiBoZXJlIHRvIG1ha2UgdGhpbmdzIG1vcmUgY29udmVuaWVudC4KK2RlZmluZSBp bmNsdWRlX2Rzb3NvcnRfdGVzdHMKKyMgV2UgdXNlIHRoZSBleGlzdGVuY2Ugb2YgdGhlIE1h a2VmaWxlIGZyYWdtZW50IGZpbGUgdG8gaW5kaWNhdGUgaWYgd2UgbmVlZCB0bworIyByZWdl bmVyYXRlIGFsbCBzb3VyY2VzIGFuZCBzY3JpcHQgZm9yIHRoaXMgdGVzdCBmaWxlLgorJChz aGVsbCBpZiAhIHRlc3QgLWYgIiQob2JqcGZ4KSQoMSkudG1wLW1ha2VmaWxlIjsgdGhlbiBc CisgICAgICAgICAgJChQWVRIT04pICQoLi4pc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5w eSAtLWRlc2NyaXB0aW9uLWZpbGUgJCgxKSBcCisgICAgICAgICAgLS1vYmpwZnggJChvYmpw ZngpIC0tb3V0cHV0LW1ha2VmaWxlICQob2JqcGZ4KSQoMSkudG1wLW1ha2VmaWxlOyBmaSkK K2luY2x1ZGUgJChvYmpwZngpJCgxKS50bXAtbWFrZWZpbGUKK2VuZGVmCisKKyMgR2VuZXJh dGUgZnJvbSBlYWNoIHRlc3RjYXNlIGRlc2NyaXB0aW9uIGZpbGUKKyQoZXZhbCAkKGNhbGwg aW5jbHVkZV9kc29zb3J0X3Rlc3RzLGRzby1zb3J0LXRlc3RzLTEuZGVmKSkKKyQoZXZhbCAk KGNhbGwgaW5jbHVkZV9kc29zb3J0X3Rlc3RzLGRzby1zb3J0LXRlc3RzLTIuZGVmKSkKKwor IyBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhIHNpbmdsZSBEU08gc29y dGluZyB0ZXN0LCBjb21wbGV0ZWx5CisjIGhlcmUgaW4gdGhlIE1ha2VmaWxlLCBmb3IgZXhh bXBsZToKKyMgICAkKGV2YWwgJChjYWxsIHNpbmdsZV9kc29zb3J0X3Rlc3QsdGVzdGNhc2Ut bmFtZSwnYS0+Yi0+YycsJ2M+Yj5hPnt9PGE8YjxjJykpCisjIEN1cnJlbnRseSBhbGwgdGVz dHMgYXJlIGRlZmluZWQgaW4gZGVzY3JpcHRpb24gZmlsZXMsIGFuZCB0aGlzIGZ1bmN0aW9u IGlzCisjIG5vdCB1dGlsaXplZCwgYnV0IGtlcHQgaGVyZSBmb3IgcG9zc2libGUgY29udmVu aWVuY2VzLgorZGVmaW5lIHNpbmdsZV9kc29zb3J0X3Rlc3QKKyQoc2hlbGwgJChQWVRIT04p ICQoLi4pc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weSAtLW9ianBmeCAkKG9ianBmeCkg XAorICAgICAgICAkKDIpICQoMSkgJCgzKSAtLW91dHB1dC1tYWtlZmlsZSAkKG9ianBmeCkk KDEpLnRtcC1tYWtlZmlsZSkKK2luY2x1ZGUgJChvYmpwZngpJCgxKS50bXAtbWFrZWZpbGUK K2VuZGVmCisKIGNoZWNrLWFiaTogJChvYmpwZngpY2hlY2stYWJpLWxkLm91dAogdGVzdHMt c3BlY2lhbCArPSAkKG9ianBmeCljaGVjay1hYmktbGQub3V0CiB1cGRhdGUtYWJpOiB1cGRh dGUtYWJpLWxkCmRpZmYgLS1naXQgYS9lbGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYgYi9lbGYv ZHNvLXNvcnQtdGVzdHMtMS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uZDk0YzZlZGE4NwotLS0gL2Rldi9udWxsCisrKyBiL2VsZi9kc28tc29ydC10ZXN0 cy0xLmRlZgpAQCAtMCwwICsxLDMwIEBACit0c3QtZHNvLW9yZGVyaW5nMTogYS0+Yi0+Ywor b3V0cHV0OiBjPmI+YT57fTxhPGI8YworCit0c3QtZHNvLW9yZGVyaW5nMjogYS0+Yi0+W2Nk XS0+ZQorb3V0cHV0OiBlPmQ+Yz5iPmE+e308YTxiPGM8ZDxlCisKK3RzdC1kc28tb3JkZXJp bmczOiBhLT5bYmNdLT5bZGVmXS0+W2doXS0+aQorb3V0cHV0OiBpPmg+Zz5mPmU+ZD5jPmI+ YT57fTxhPGI8YzxkPGU8ZjxnPGg8aQorCit0c3QtZHNvLW9yZGVyaW5nNDogYS0+Yi0+W2Rl XTthLT5jLT5kLT5lCitvdXRwdXQ6IGU+ZD5jPmI+YT57fTxhPGI8YzxkPGUKKwordHN0LWRz by1vcmRlcmluZzU6IGEtPltiY10tPmQ7Yi0+Yworb3V0cHV0OiBkPmM+Yj5hPnt9PGE8Yjxj PGQKKwordHN0LWRzby1vcmRlcmluZzY6IGEtPltiY2RlXS0+Zgorb3V0cHV0OiBmPmU+ZD5j PmI+YT57fTxhPGI8YzxkPGU8ZgorCit0c3QtZHNvLW9yZGVyaW5nNzogYS0+W2JjXTtiLT5b Y2RlXTtlLT5mCitvdXRwdXQ6IGY+ZT5kPmM+Yj5hPnt9PGE8YjxjPGQ8ZTxmCisKK3RzdC1k c28tb3JkZXJpbmc4OiBhLT5iLT5jPT5hO3t9LT5bYmFdCitvdXRwdXQ6IGM+Yj5hPnt9PGE8 YjxjCisKK3RzdC1kc28tb3JkZXJpbmc5OiBhLT5iLT5jLT5kLT5lO3t9IS0+W2FiY2RlXQor b3V0cHV0OiBlPmQ+Yz5iPmE+e308YTxiPGM8ZDxlCisKK3RzdC1iejE1MzExOiB7K2E7K2U7 K2Y7K2c7K2Q7JWQ7LWQ7LWc7LWY7LWU7LWF9O2EtPmItPmMtPmQ7ZD0+W2JhXTtjPT5hO2I9 PmU9PmE7Yz0+Zj0+YjtkPT5nPT5jCitvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9 MSk6IHsrYVtkPmM+Yj5hPl07K2VbZT5dOytmW2Y+XTsrZ1tnPl07K2RbXTslZChiKGUoYSgp KSlhKClnKGMoYSgpZihiKGUoYSgpKSkpKSkpOy1kW107LWdbXTstZltdOy1lW107LWFbPGE8 YzxkPGc8ZjxiPGVdO30KK291dHB1dChnbGliYy5ydGxkLmR5bmFtaWNfc29ydD0yKTogeyth W2Q+Yz5iPmE+XTsrZVtlPl07K2ZbZj5dOytnW2c+XTsrZFtdOyVkKGIoZShhKCkpKWEoKWco YyhhKClmKGIoZShhKCkpKSkpKSk7LWRbXTstZ1tdOy1mW107LWVbXTstYVs8ZzxmPGE8Yjxj PGQ8ZV07fQpkaWZmIC0tZ2l0IGEvZWxmL2Rzby1zb3J0LXRlc3RzLTIuZGVmIGIvZWxmL2Rz by1zb3J0LXRlc3RzLTIuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjM5YzZhY2JhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9lbGYvZHNvLXNvcnQtdGVzdHMt Mi5kZWYKQEAgLTAsMCArMSw2MDUgQEAKK3RzdC1yZWRoYXQtMTE2MjgxMDoKK3t9LT5BMTAx Cit7fS0+KgorQTEwMS0+KEIxMDEgQjE2MyBCMTIyIEIxODEpCitBMTAyLT4oQjEwMiBCMTQw IEIxOTkgQjE1OCkKK0ExMDMtPihCMTAzIEIxMTcgQjE3NiBCMTM1KQorQTEwNC0+KEIxMDQg QjE5NCBCMTUzIEIxMTIpCitBMTA1LT4oQjEwNSBCMTcxIEIxMzAgQjE4OSkKK0ExMDYtPihC MTA2IEIxNDggQjEwNyBCMTY2KQorQTEwNy0+KEIxMDcgQjEyNSBCMTg0IEIxNDMpCitBMTA4 LT4oQjEwOCBCMTAyIEIxNjEgQjEyMCkKK0ExMDktPihCMTA5IEIxNzkgQjEzOCBCMTk3KQor QTExMC0+KEIxMTAgQjE1NiBCMTE1IEIxNzQpCitBMTExLT4oQjExMSBCMTMzIEIxOTIgQjE1 MSkKK0ExMTItPihCMTEyIEIxMTAgQjE2OSBCMTI4KQorQTExMy0+KEIxMTMgQjE4NyBCMTQ2 IEIxMDUpCitBMTE0LT4oQjExNCBCMTY0IEIxMjMgQjE4MikKK0ExMTUtPihCMTE1IEIxNDEg QjIwMCBCMTU5KQorQTExNi0+KEIxMTYgQjExOCBCMTc3IEIxMzYpCitBMTE3LT4oQjExNyBC MTk1IEIxNTQgQjExMykKK0ExMTgtPihCMTE4IEIxNzIgQjEzMSBCMTkwKQorQTExOS0+KEIx MTkgQjE0OSBCMTA4IEIxNjcpCitBMTIwLT4oQjEyMCBCMTI2IEIxODUgQjE0NCkKK0ExMjEt PihCMTIxIEIxMDMgQjE2MikKK0ExMjItPihCMTIyIEIxODAgQjEzOSBCMTk4KQorQTEyMy0+ KEIxMjMgQjE1NyBCMTE2IEIxNzUpCitBMTI0LT4oQjEyNCBCMTM0IEIxOTMgQjE1MikKK0Ex MjUtPihCMTI1IEIxMTEgQjE3MCBCMTI5KQorQTEyNi0+KEIxMjYgQjE4OCBCMTQ3IEIxMDYp CitBMTI3LT4oQjEyNyBCMTY1IEIxMjQgQjE4MykKK0ExMjgtPihCMTI4IEIxNDIgQjEwMSBC MTYwKQorQTEyOS0+KEIxMjkgQjExOSBCMTc4IEIxMzcpCitBMTMwLT4oQjEzMCBCMTk2IEIx NTUgQjExNCkKK0ExMzEtPihCMTMxIEIxNzMgQjEzMiBCMTkxKQorQTEzMi0+KEIxMzIgQjE1 MCBCMTA5IEIxNjgpCitBMTMzLT4oQjEzMyBCMTI3IEIxODYgQjE0NSkKK0ExMzQtPihCMTM0 IEIxMDQgQjE2MyBCMTIyKQorQTEzNS0+KEIxMzUgQjE4MSBCMTQwIEIxOTkpCitBMTM2LT4o QjEzNiBCMTU4IEIxMTcgQjE3NikKK0ExMzctPihCMTM3IEIxMzUgQjE5NCBCMTUzKQorQTEz OC0+KEIxMzggQjExMiBCMTcxIEIxMzApCitBMTM5LT4oQjEzOSBCMTg5IEIxNDggQjEwNykK K0ExNDAtPihCMTQwIEIxNjYgQjEyNSBCMTg0KQorQTE0MS0+KEIxNDEgQjE0MyBCMTAyIEIx NjEpCitBMTQyLT4oQjE0MiBCMTIwIEIxNzkgQjEzOCkKK0ExNDMtPihCMTQzIEIxOTcgQjE1 NiBCMTE1KQorQTE0NC0+KEIxNDQgQjE3NCBCMTMzIEIxOTIpCitBMTQ1LT4oQjE0NSBCMTUx IEIxMTAgQjE2OSkKK0ExNDYtPihCMTQ2IEIxMjggQjE4NykKK0ExNDctPihCMTQ3IEIxMDUg QjE2NCBCMTIzKQorQTE0OC0+KEIxNDggQjE4MiBCMTQxIEIyMDApCitBMTQ5LT4oQjE0OSBC MTU5IEIxMTggQjE3NykKK0ExNTAtPihCMTUwIEIxMzYgQjE5NSBCMTU0KQorQTE1MS0+KEIx NTEgQjExMyBCMTcyIEIxMzEpCitBMTUyLT4oQjE1MiBCMTkwIEIxNDkgQjEwOCkKK0ExNTMt PihCMTUzIEIxNjcgQjEyNiBCMTg1KQorQTE1NC0+KEIxNTQgQjE0NCBCMTAzIEIxNjIpCitB MTU1LT4oQjE1NSBCMTIxIEIxODAgQjEzOSkKK0ExNTYtPihCMTU2IEIxOTggQjE1NyBCMTE2 KQorQTE1Ny0+KEIxNTcgQjE3NSBCMTM0IEIxOTMpCitBMTU4LT4oQjE1OCBCMTUyIEIxMTEg QjE3MCkKK0ExNTktPihCMTU5IEIxMjkgQjE4OCBCMTQ3KQorQTE2MC0+KEIxNjAgQjEwNiBC MTY1IEIxMjQpCitBMTYxLT4oQjE2MSBCMTgzIEIxNDIgQjEwMSkKK0ExNjItPihCMTYyIEIx NjAgQjExOSBCMTc4KQorQTE2My0+KEIxNjMgQjEzNyBCMTk2IEIxNTUpCitBMTY0LT4oQjE2 NCBCMTE0IEIxNzMgQjEzMikKK0ExNjUtPihCMTY1IEIxOTEgQjE1MCBCMTA5KQorQTE2Ni0+ KEIxNjYgQjE2OCBCMTI3IEIxODYpCitBMTY3LT4oQjE2NyBCMTQ1IEIxMDQgQjE2MykKK0Ex NjgtPihCMTY4IEIxMjIgQjE4MSBCMTQwKQorQTE2OS0+KEIxNjkgQjE5OSBCMTU4IEIxMTcp CitBMTcwLT4oQjE3MCBCMTc2IEIxMzUgQjE5NCkKK0ExNzEtPihCMTcxIEIxNTMgQjExMikK K0ExNzItPihCMTcyIEIxMzAgQjE4OSBCMTQ4KQorQTE3My0+KEIxNzMgQjEwNyBCMTY2IEIx MjUpCitBMTc0LT4oQjE3NCBCMTg0IEIxNDMgQjEwMikKK0ExNzUtPihCMTc1IEIxNjEgQjEy MCBCMTc5KQorQTE3Ni0+KEIxNzYgQjEzOCBCMTk3IEIxNTYpCitBMTc3LT4oQjE3NyBCMTE1 IEIxNzQgQjEzMykKK0ExNzgtPihCMTc4IEIxOTIgQjE1MSBCMTEwKQorQTE3OS0+KEIxNzkg QjE2OSBCMTI4IEIxODcpCitBMTgwLT4oQjE4MCBCMTQ2IEIxMDUgQjE2NCkKK0ExODEtPihC MTgxIEIxMjMgQjE4MiBCMTQxKQorQTE4Mi0+KEIxODIgQjIwMCBCMTU5IEIxMTgpCitBMTgz LT4oQjE4MyBCMTc3IEIxMzYgQjE5NSkKK0ExODQtPihCMTg0IEIxNTQgQjExMyBCMTcyKQor QTE4NS0+KEIxODUgQjEzMSBCMTkwIEIxNDkpCitBMTg2LT4oQjE4NiBCMTA4IEIxNjcgQjEy NikKK0ExODctPihCMTg3IEIxODUgQjE0NCBCMTAzKQorQTE4OC0+KEIxODggQjE2MiBCMTIx IEIxODApCitBMTg5LT4oQjE4OSBCMTM5IEIxOTggQjE1NykKK0ExOTAtPihCMTkwIEIxMTYg QjE3NSBCMTM0KQorQTE5MS0+KEIxOTEgQjE5MyBCMTUyIEIxMTEpCitBMTkyLT4oQjE5MiBC MTcwIEIxMjkgQjE4OCkKK0ExOTMtPihCMTkzIEIxNDcgQjEwNiBCMTY1KQorQTE5NC0+KEIx OTQgQjEyNCBCMTgzIEIxNDIpCitBMTk1LT4oQjE5NSBCMTAxIEIxNjAgQjExOSkKK0ExOTYt PihCMTk2IEIxNzggQjEzNykKK0ExOTctPihCMTk3IEIxNTUgQjExNCBCMTczKQorQTE5OC0+ KEIxOTggQjEzMiBCMTkxIEIxNTApCitBMTk5LT4oQjE5OSBCMTA5IEIxNjggQjEyNykKK0Ey MDAtPihCMjAwIEIxODYgQjE0NSBCMTA0KQorQjEwMS0+KEMxMDEgQzE2NCBDMTIzIEMxODIp CitCMTAyLT4oQzEwMiBDMTQxIEMyMDAgQzE1OSkKK0IxMDMtPihDMTAzIEMxMTggQzE3NyBD MTM2KQorQjEwNC0+KEMxMDQgQzE5NSBDMTU0IEMxMTMpCitCMTA1LT4oQzEwNSBDMTcyIEMx MzEgQzE5MCkKK0IxMDYtPihDMTA2IEMxNDkgQzEwOCBDMTY3KQorQjEwNy0+KEMxMDcgQzEy NiBDMTg1IEMxNDQpCitCMTA4LT4oQzEwOCBDMTAzIEMxNjIgQzEyMSkKK0IxMDktPihDMTA5 IEMxODAgQzEzOSBDMTk4KQorQjExMC0+KEMxMTAgQzE1NyBDMTE2IEMxNzUpCitCMTExLT4o QzExMSBDMTM0IEMxOTMgQzE1MikKK0IxMTItPihDMTEyIEMxMTEgQzE3MCBDMTI5KQorQjEx My0+KEMxMTMgQzE4OCBDMTQ3IEMxMDYpCitCMTE0LT4oQzExNCBDMTY1IEMxMjQgQzE4MykK K0IxMTUtPihDMTE1IEMxNDIgQzEwMSBDMTYwKQorQjExNi0+KEMxMTYgQzExOSBDMTc4IEMx MzcpCitCMTE3LT4oQzExNyBDMTk2IEMxNTUgQzExNCkKK0IxMTgtPihDMTE4IEMxNzMgQzEz MiBDMTkxKQorQjExOS0+KEMxMTkgQzE1MCBDMTA5IEMxNjgpCitCMTIwLT4oQzEyMCBDMTI3 IEMxODYgQzE0NSkKK0IxMjEtPihDMTIxIEMxMDQgQzE2MyBDMTIyKQorQjEyMi0+KEMxMjIg QzE4MSBDMTQwIEMxOTkpCitCMTIzLT4oQzEyMyBDMTU4IEMxMTcgQzE3NikKK0IxMjQtPihD MTI0IEMxMzUgQzE5NCBDMTUzKQorQjEyNS0+KEMxMjUgQzExMiBDMTcxIEMxMzApCitCMTI2 LT4oQzEyNiBDMTg5IEMxNDggQzEwNykKK0IxMjctPihDMTI3IEMxNjYgQzEyNSBDMTg0KQor QjEyOC0+KEMxMjggQzE0MyBDMTAyIEMxNjEpCitCMTI5LT4oQzEyOSBDMTIwIEMxNzkgQzEz OCkKK0IxMzAtPihDMTMwIEMxOTcgQzE1NiBDMTE1KQorQjEzMS0+KEMxMzEgQzE3NCBDMTMz IEMxOTIpCitCMTMyLT4oQzEzMiBDMTUxIEMxMTAgQzE2OSkKK0IxMzMtPihDMTMzIEMxMjgg QzE4NyBDMTQ2KQorQjEzNC0+KEMxMzQgQzEwNSBDMTY0IEMxMjMpCitCMTM1LT4oQzEzNSBD MTgyIEMxNDEgQzIwMCkKK0IxMzYtPihDMTM2IEMxNTkgQzExOCBDMTc3KQorQjEzNy0+KEMx MzcgQzEzNiBDMTk1IEMxNTQpCitCMTM4LT4oQzEzOCBDMTEzIEMxNzIgQzEzMSkKK0IxMzkt PihDMTM5IEMxOTAgQzE0OSBDMTA4KQorQjE0MC0+KEMxNDAgQzE2NyBDMTI2IEMxODUpCitC MTQxLT4oQzE0MSBDMTQ0IEMxMDMgQzE2MikKK0IxNDItPihDMTQyIEMxMjEgQzE4MCBDMTM5 KQorQjE0My0+KEMxNDMgQzE5OCBDMTU3IEMxMTYpCitCMTQ0LT4oQzE0NCBDMTc1IEMxMzQg QzE5MykKK0IxNDUtPihDMTQ1IEMxNTIgQzExMSBDMTcwKQorQjE0Ni0+KEMxNDYgQzEyOSBD MTg4IEMxNDcpCitCMTQ3LT4oQzE0NyBDMTA2IEMxNjUgQzEyNCkKK0IxNDgtPihDMTQ4IEMx ODMgQzE0MiBDMTAxKQorQjE0OS0+KEMxNDkgQzE2MCBDMTE5IEMxNzgpCitCMTUwLT4oQzE1 MCBDMTM3IEMxOTYgQzE1NSkKK0IxNTEtPihDMTUxIEMxMTQgQzE3MyBDMTMyKQorQjE1Mi0+ KEMxNTIgQzE5MSBDMTUwIEMxMDkpCitCMTUzLT4oQzE1MyBDMTY4IEMxMjcgQzE4NikKK0Ix NTQtPihDMTU0IEMxNDUgQzEwNCBDMTYzKQorQjE1NS0+KEMxNTUgQzEyMiBDMTgxIEMxNDAp CitCMTU2LT4oQzE1NiBDMTk5IEMxNTggQzExNykKK0IxNTctPihDMTU3IEMxNzYgQzEzNSBD MTk0KQorQjE1OC0+KEMxNTggQzE1MyBDMTEyIEMxNzEpCitCMTU5LT4oQzE1OSBDMTMwIEMx ODkgQzE0OCkKK0IxNjAtPihDMTYwIEMxMDcgQzE2NiBDMTI1KQorQjE2MS0+KEMxNjEgQzE4 NCBDMTQzIEMxMDIpCitCMTYyLT4oQzE2MiBDMTYxIEMxMjAgQzE3OSkKK0IxNjMtPihDMTYz IEMxMzggQzE5NyBDMTU2KQorQjE2NC0+KEMxNjQgQzExNSBDMTc0IEMxMzMpCitCMTY1LT4o QzE2NSBDMTkyIEMxNTEgQzExMCkKK0IxNjYtPihDMTY2IEMxNjkgQzEyOCBDMTg3KQorQjE2 Ny0+KEMxNjcgQzE0NiBDMTA1IEMxNjQpCitCMTY4LT4oQzE2OCBDMTIzIEMxODIgQzE0MSkK K0IxNjktPihDMTY5IEMyMDAgQzE1OSBDMTE4KQorQjE3MC0+KEMxNzAgQzE3NyBDMTM2IEMx OTUpCitCMTcxLT4oQzE3MSBDMTU0IEMxMTMgQzE3MikKK0IxNzItPihDMTcyIEMxMzEgQzE5 MCBDMTQ5KQorQjE3My0+KEMxNzMgQzEwOCBDMTY3IEMxMjYpCitCMTc0LT4oQzE3NCBDMTg1 IEMxNDQgQzEwMykKK0IxNzUtPihDMTc1IEMxNjIgQzEyMSBDMTgwKQorQjE3Ni0+KEMxNzYg QzEzOSBDMTk4IEMxNTcpCitCMTc3LT4oQzE3NyBDMTE2IEMxNzUgQzEzNCkKK0IxNzgtPihD MTc4IEMxOTMgQzE1MiBDMTExKQorQjE3OS0+KEMxNzkgQzE3MCBDMTI5IEMxODgpCitCMTgw LT4oQzE4MCBDMTQ3IEMxMDYgQzE2NSkKK0IxODEtPihDMTgxIEMxMjQgQzE4MyBDMTQyKQor QjE4Mi0+KEMxODIgQzEwMSBDMTYwIEMxMTkpCitCMTgzLT4oQzE4MyBDMTc4IEMxMzcgQzE5 NikKK0IxODQtPihDMTg0IEMxNTUgQzExNCBDMTczKQorQjE4NS0+KEMxODUgQzEzMiBDMTkx IEMxNTApCitCMTg2LT4oQzE4NiBDMTA5IEMxNjggQzEyNykKK0IxODctPihDMTg3IEMxODYg QzE0NSBDMTA0KQorQjE4OC0+KEMxODggQzE2MyBDMTIyIEMxODEpCitCMTg5LT4oQzE4OSBD MTQwIEMxOTkgQzE1OCkKK0IxOTAtPihDMTkwIEMxMTcgQzE3NiBDMTM1KQorQjE5MS0+KEMx OTEgQzE5NCBDMTUzIEMxMTIpCitCMTkyLT4oQzE5MiBDMTcxIEMxMzAgQzE4OSkKK0IxOTMt PihDMTkzIEMxNDggQzEwNyBDMTY2KQorQjE5NC0+KEMxOTQgQzEyNSBDMTg0IEMxNDMpCitC MTk1LT4oQzE5NSBDMTAyIEMxNjEgQzEyMCkKK0IxOTYtPihDMTk2IEMxNzkgQzEzOCBDMTk3 KQorQjE5Ny0+KEMxOTcgQzE1NiBDMTE1IEMxNzQpCitCMTk4LT4oQzE5OCBDMTMzIEMxOTIg QzE1MSkKK0IxOTktPihDMTk5IEMxMTAgQzE2OSBDMTI4KQorQjIwMC0+KEMyMDAgQzE4NyBD MTQ2IEMxMDUpCitDMTAxLT4oQTE2NSBBMTI0KQorQzEwMi0+KEExODMgQTE0MikKK0MxMDMt PihBMTAxIEExNjApCitDMTA0LT4oQTExOSBBMTc4KQorQzEwNS0+KEExMzcgQTE5NikKK0Mx MDYtPihBMTU1IEExMTQpCitDMTA3LT4oQTE3MyBBMTMyKQorQzEwOC0+KEExOTEgQTE1MCkK K0MxMDktPihBMTA5IEExNjgpCitDMTEwLT4oQTEyNyBBMTg2KQorQzExMS0+KEExNDUgQTEw NCkKK0MxMTItPihBMTYzIEExMjIpCitDMTEzLT4oQTE4MSBBMTQwKQorQzExNC0+KEExOTkg QTE1OCkKK0MxMTUtPihBMTE3IEExNzYpCitDMTE2LT4oQTEzNSBBMTk0KQorQzExNy0+KEEx NTMgQTExMikKK0MxMTgtPihBMTcxIEExMzApCitDMTE5LT4oQTE4OSBBMTQ4KQorQzEyMC0+ KEExMDcgQTE2NikKK0MxMjEtPihBMTI1IEExODQpCitDMTIyLT4oQTE0MyBBMTAyKQorQzEy My0+KEExNjEgQTEyMCkKK0MxMjQtPihBMTc5IEExMzgpCitDMTI1LT4oQTE5NyBBMTU2KQor QzEyNi0+KEExMTUgQTE3NCkKK0MxMjctPihBMTMzIEExOTIpCitDMTI4LT4oQTE1MSBBMTEw KQorQzEyOS0+KEExNjkgQTEyOCkKK0MxMzAtPihBMTg3IEExNDYpCitDMTMxLT4oQTEwNSBB MTY0KQorQzEzMi0+KEExMjMgQTE4MikKK0MxMzMtPihBMTQxIEEyMDApCitDMTM0LT4oQTE1 OSBBMTE4KQorQzEzNS0+KEExNzcgQTEzNikKK0MxMzYtPihBMTk1IEExNTQpCitDMTM3LT4o QTExMyBBMTcyKQorQzEzOC0+KEExMzEgQTE5MCkKK0MxMzktPihBMTQ5IEExMDgpCitDMTQw LT4oQTE2NyBBMTI2KQorQzE0MS0+KEExODUgQTE0NCkKK0MxNDItPihBMTAzIEExNjIpCitD MTQzLT4oQTEyMSBBMTgwKQorQzE0NC0+KEExMzkgQTE5OCkKK0MxNDUtPihBMTU3IEExMTYp CitDMTQ2LT4oQTE3NSBBMTM0KQorQzE0Ny0+KEExOTMgQTE1MikKK0MxNDgtPihBMTExIEEx NzApCitDMTQ5LT4oQTEyOSBBMTg4KQorQzE1MC0+KEExNDcgQTEwNikKK0MxNTEtPihBMTY1 IEExMjQpCitDMTUyLT4oQTE4MyBBMTQyKQorQzE1My0+KEExMDEgQTE2MCkKK0MxNTQtPihB MTE5IEExNzgpCitDMTU1LT4oQTEzNyBBMTk2KQorQzE1Ni0+KEExNTUgQTExNCkKK0MxNTct PihBMTczIEExMzIpCitDMTU4LT4oQTE5MSBBMTUwKQorQzE1OS0+KEExMDkgQTE2OCkKK0Mx NjAtPihBMTI3IEExODYpCitDMTYxLT4oQTE0NSBBMTA0KQorQzE2Mi0+KEExNjMgQTEyMikK K0MxNjMtPihBMTgxIEExNDApCitDMTY0LT4oQTE5OSBBMTU4KQorQzE2NS0+KEExMTcgQTE3 NikKK0MxNjYtPihBMTM1IEExOTQpCitDMTY3LT4oQTE1MyBBMTEyKQorQzE2OC0+KEExNzEg QTEzMCkKK0MxNjktPihBMTg5IEExNDgpCitDMTcwLT4oQTEwNyBBMTY2KQorQzE3MS0+KEEx MjUgQTE4NCkKK0MxNzItPihBMTQzIEExMDIpCitDMTczLT4oQTE2MSBBMTIwKQorQzE3NC0+ KEExNzkgQTEzOCkKK0MxNzUtPihBMTk3IEExNTYpCitDMTc2LT4oQTExNSBBMTc0KQorQzE3 Ny0+KEExMzMgQTE5MikKK0MxNzgtPihBMTUxIEExMTApCitDMTc5LT4oQTE2OSBBMTI4KQor QzE4MC0+KEExODcgQTE0NikKK0MxODEtPihBMTA1IEExNjQpCitDMTgyLT4oQTEyMyBBMTgy KQorQzE4My0+KEExNDEgQTIwMCkKK0MxODQtPihBMTU5IEExMTgpCitDMTg1LT4oQTE3NyBB MTM2KQorQzE4Ni0+KEExOTUgQTE1NCkKK0MxODctPihBMTEzIEExNzIpCitDMTg4LT4oQTEz MSBBMTkwKQorQzE4OS0+KEExNDkgQTEwOCkKK0MxOTAtPihBMTY3IEExMjYpCitDMTkxLT4o QTE4NSBBMTQ0KQorQzE5Mi0+KEExMDMgQTE2MikKK0MxOTMtPihBMTIxIEExODApCitDMTk0 LT4oQTEzOSBBMTk4KQorQzE5NS0+KEExNTcgQTExNikKK0MxOTYtPihBMTc1IEExMzQpCitD MTk3LT4oQTE5MyBBMTUyKQorQzE5OC0+KEExMTEgQTE3MCkKK0MxOTktPihBMTI5IEExODgp CitDMjAwLT4oQTE0NyBBMTA2KQorTTExWDExLT4oTTEzWDE0IE0xMlgxMyBNMTJYMTIgTTEy WDExKQorTTExWDEyLT4oTTEzWDI1IE0xMlgyNCBNMTJYMjMgTTEyWDIyKQorTTExWDEzLT4o TTEzWDIxIE0xMlgyMCBNMTJYMTkgTTEyWDE4KQorTTExWDE0LT4oTTEzWDE3IE0xMlgxNiBN MTJYMTUgTTEyWDE0KQorTTExWDE1LT4oTTEzWDEzIE0xMlgxMiBNMTJYMTEgTTEyWDI1KQor TTExWDE2LT4oTTEzWDI0IE0xMlgyMyBNMTJYMjIgTTEyWDIxKQorTTExWDE3LT4oTTEzWDIw IE0xMlgxOSBNMTJYMTggTTEyWDE3KQorTTExWDE4LT4oTTEzWDE2IE0xMlgxNSBNMTJYMTQg TTEyWDEzKQorTTExWDE5LT4oTTEzWDEyIE0xMlgxMSBNMTJYMjUgTTEyWDI0KQorTTExWDIw LT4oTTEzWDIzIE0xMlgyMiBNMTJYMjEgTTEyWDIwKQorTTExWDIxLT4oTTEzWDE5IE0xMlgx OCBNMTJYMTcgTTEyWDE2KQorTTExWDIyLT4oTTEzWDE1IE0xMlgxNCBNMTJYMTMgTTEyWDEy KQorTTExWDIzLT4oTTEzWDExIE0xMlgyNSBNMTJYMjQgTTEyWDIzKQorTTExWDI0LT4oTTEz WDIyIE0xMlgyMSBNMTJYMjAgTTEyWDE5KQorTTExWDI1LT4oTTEzWDE4IE0xMlgxNyBNMTJY MTYgTTEyWDE1KQorTTEyWDExLT4oTTE0WDE0IE0xM1gxMyBNMTNYMTIgTTEzWDExKQorTTEy WDEyLT4oTTE0WDI1IE0xM1gyNCBNMTNYMjMgTTEzWDIyKQorTTEyWDEzLT4oTTE0WDIxIE0x M1gyMCBNMTNYMTkgTTEzWDE4KQorTTEyWDE0LT4oTTE0WDE3IE0xM1gxNiBNMTNYMTUgTTEz WDE0KQorTTEyWDE1LT4oTTE0WDEzIE0xM1gxMiBNMTNYMTEgTTEzWDI1KQorTTEyWDE2LT4o TTE0WDI0IE0xM1gyMyBNMTNYMjIgTTEzWDIxKQorTTEyWDE3LT4oTTE0WDIwIE0xM1gxOSBN MTNYMTggTTEzWDE3KQorTTEyWDE4LT4oTTE0WDE2IE0xM1gxNSBNMTNYMTQgTTEzWDEzKQor TTEyWDE5LT4oTTE0WDEyIE0xM1gxMSBNMTNYMjUgTTEzWDI0KQorTTEyWDIwLT4oTTE0WDIz IE0xM1gyMiBNMTNYMjEgTTEzWDIwKQorTTEyWDIxLT4oTTE0WDE5IE0xM1gxOCBNMTNYMTcg TTEzWDE2KQorTTEyWDIyLT4oTTE0WDE1IE0xM1gxNCBNMTNYMTMgTTEzWDEyKQorTTEyWDIz LT4oTTE0WDExIE0xM1gyNSBNMTNYMjQgTTEzWDIzKQorTTEyWDI0LT4oTTE0WDIyIE0xM1gy MSBNMTNYMjAgTTEzWDE5KQorTTEyWDI1LT4oTTE0WDE4IE0xM1gxNyBNMTNYMTYgTTEzWDE1 KQorTTEzWDExLT4oTTE1WDE0IE0xNFgxMyBNMTRYMTIgTTE0WDExKQorTTEzWDEyLT4oTTE1 WDI1IE0xNFgyNCBNMTRYMjMgTTE0WDIyKQorTTEzWDEzLT4oTTE1WDIxIE0xNFgyMCBNMTRY MTkgTTE0WDE4KQorTTEzWDE0LT4oTTE1WDE3IE0xNFgxNiBNMTRYMTUgTTE0WDE0KQorTTEz WDE1LT4oTTE1WDEzIE0xNFgxMiBNMTRYMTEgTTE0WDI1KQorTTEzWDE2LT4oTTE1WDI0IE0x NFgyMyBNMTRYMjIgTTE0WDIxKQorTTEzWDE3LT4oTTE1WDIwIE0xNFgxOSBNMTRYMTggTTE0 WDE3KQorTTEzWDE4LT4oTTE1WDE2IE0xNFgxNSBNMTRYMTQgTTE0WDEzKQorTTEzWDE5LT4o TTE1WDEyIE0xNFgxMSBNMTRYMjUgTTE0WDI0KQorTTEzWDIwLT4oTTE1WDIzIE0xNFgyMiBN MTRYMjEgTTE0WDIwKQorTTEzWDIxLT4oTTE1WDE5IE0xNFgxOCBNMTRYMTcgTTE0WDE2KQor TTEzWDIyLT4oTTE1WDE1IE0xNFgxNCBNMTRYMTMgTTE0WDEyKQorTTEzWDIzLT4oTTE1WDEx IE0xNFgyNSBNMTRYMjQgTTE0WDIzKQorTTEzWDI0LT4oTTE1WDIyIE0xNFgyMSBNMTRYMjAg TTE0WDE5KQorTTEzWDI1LT4oTTE1WDE4IE0xNFgxNyBNMTRYMTYgTTE0WDE1KQorTTE0WDEx LT4oTTE2WDE0IE0xNVgxMyBNMTVYMTIgTTE1WDExKQorTTE0WDEyLT4oTTE2WDI1IE0xNVgy NCBNMTVYMjMgTTE1WDIyKQorTTE0WDEzLT4oTTE2WDIxIE0xNVgyMCBNMTVYMTkgTTE1WDE4 KQorTTE0WDE0LT4oTTE2WDE3IE0xNVgxNiBNMTVYMTUgTTE1WDE0KQorTTE0WDE1LT4oTTE2 WDEzIE0xNVgxMiBNMTVYMTEgTTE1WDI1KQorTTE0WDE2LT4oTTE2WDI0IE0xNVgyMyBNMTVY MjIgTTE1WDIxKQorTTE0WDE3LT4oTTE2WDIwIE0xNVgxOSBNMTVYMTggTTE1WDE3KQorTTE0 WDE4LT4oTTE2WDE2IE0xNVgxNSBNMTVYMTQgTTE1WDEzKQorTTE0WDE5LT4oTTE2WDEyIE0x NVgxMSBNMTVYMjUgTTE1WDI0KQorTTE0WDIwLT4oTTE2WDIzIE0xNVgyMiBNMTVYMjEgTTE1 WDIwKQorTTE0WDIxLT4oTTE2WDE5IE0xNVgxOCBNMTVYMTcgTTE1WDE2KQorTTE0WDIyLT4o TTE2WDE1IE0xNVgxNCBNMTVYMTMgTTE1WDEyKQorTTE0WDIzLT4oTTE2WDExIE0xNVgyNSBN MTVYMjQgTTE1WDIzKQorTTE0WDI0LT4oTTE2WDIyIE0xNVgyMSBNMTVYMjAgTTE1WDE5KQor TTE0WDI1LT4oTTE2WDE4IE0xNVgxNyBNMTVYMTYgTTE1WDE1KQorTTE1WDExLT4oTTE3WDE0 IE0xNlgxMyBNMTZYMTIgTTE2WDExKQorTTE1WDEyLT4oTTE3WDI1IE0xNlgyNCBNMTZYMjMg TTE2WDIyKQorTTE1WDEzLT4oTTE3WDIxIE0xNlgyMCBNMTZYMTkgTTE2WDE4KQorTTE1WDE0 LT4oTTE3WDE3IE0xNlgxNiBNMTZYMTUgTTE2WDE0KQorTTE1WDE1LT4oTTE3WDEzIE0xNlgx MiBNMTZYMTEgTTE2WDI1KQorTTE1WDE2LT4oTTE3WDI0IE0xNlgyMyBNMTZYMjIgTTE2WDIx KQorTTE1WDE3LT4oTTE3WDIwIE0xNlgxOSBNMTZYMTggTTE2WDE3KQorTTE1WDE4LT4oTTE3 WDE2IE0xNlgxNSBNMTZYMTQgTTE2WDEzKQorTTE1WDE5LT4oTTE3WDEyIE0xNlgxMSBNMTZY MjUgTTE2WDI0KQorTTE1WDIwLT4oTTE3WDIzIE0xNlgyMiBNMTZYMjEgTTE2WDIwKQorTTE1 WDIxLT4oTTE3WDE5IE0xNlgxOCBNMTZYMTcgTTE2WDE2KQorTTE1WDIyLT4oTTE3WDE1IE0x NlgxNCBNMTZYMTMgTTE2WDEyKQorTTE1WDIzLT4oTTE3WDExIE0xNlgyNSBNMTZYMjQgTTE2 WDIzKQorTTE1WDI0LT4oTTE3WDIyIE0xNlgyMSBNMTZYMjAgTTE2WDE5KQorTTE1WDI1LT4o TTE3WDE4IE0xNlgxNyBNMTZYMTYgTTE2WDE1KQorTTE2WDExLT4oTTE4WDE0IE0xN1gxMyBN MTdYMTIgTTE3WDExKQorTTE2WDEyLT4oTTE4WDI1IE0xN1gyNCBNMTdYMjMgTTE3WDIyKQor TTE2WDEzLT4oTTE4WDIxIE0xN1gyMCBNMTdYMTkgTTE3WDE4KQorTTE2WDE0LT4oTTE4WDE3 IE0xN1gxNiBNMTdYMTUgTTE3WDE0KQorTTE2WDE1LT4oTTE4WDEzIE0xN1gxMiBNMTdYMTEg TTE3WDI1KQorTTE2WDE2LT4oTTE4WDI0IE0xN1gyMyBNMTdYMjIgTTE3WDIxKQorTTE2WDE3 LT4oTTE4WDIwIE0xN1gxOSBNMTdYMTggTTE3WDE3KQorTTE2WDE4LT4oTTE4WDE2IE0xN1gx NSBNMTdYMTQgTTE3WDEzKQorTTE2WDE5LT4oTTE4WDEyIE0xN1gxMSBNMTdYMjUgTTE3WDI0 KQorTTE2WDIwLT4oTTE4WDIzIE0xN1gyMiBNMTdYMjEgTTE3WDIwKQorTTE2WDIxLT4oTTE4 WDE5IE0xN1gxOCBNMTdYMTcgTTE3WDE2KQorTTE2WDIyLT4oTTE4WDE1IE0xN1gxNCBNMTdY MTMgTTE3WDEyKQorTTE2WDIzLT4oTTE4WDExIE0xN1gyNSBNMTdYMjQgTTE3WDIzKQorTTE2 WDI0LT4oTTE4WDIyIE0xN1gyMSBNMTdYMjAgTTE3WDE5KQorTTE2WDI1LT4oTTE4WDE4IE0x N1gxNyBNMTdYMTYgTTE3WDE1KQorTTE3WDExLT4oTTE5WDE0IE0xOFgxMyBNMThYMTIgTTE4 WDExKQorTTE3WDEyLT4oTTE5WDI1IE0xOFgyNCBNMThYMjMgTTE4WDIyKQorTTE3WDEzLT4o TTE5WDIxIE0xOFgyMCBNMThYMTkgTTE4WDE4KQorTTE3WDE0LT4oTTE5WDE3IE0xOFgxNiBN MThYMTUgTTE4WDE0KQorTTE3WDE1LT4oTTE5WDEzIE0xOFgxMiBNMThYMTEgTTE4WDI1KQor TTE3WDE2LT4oTTE5WDI0IE0xOFgyMyBNMThYMjIgTTE4WDIxKQorTTE3WDE3LT4oTTE5WDIw IE0xOFgxOSBNMThYMTggTTE4WDE3KQorTTE3WDE4LT4oTTE5WDE2IE0xOFgxNSBNMThYMTQg TTE4WDEzKQorTTE3WDE5LT4oTTE5WDEyIE0xOFgxMSBNMThYMjUgTTE4WDI0KQorTTE3WDIw LT4oTTE5WDIzIE0xOFgyMiBNMThYMjEgTTE4WDIwKQorTTE3WDIxLT4oTTE5WDE5IE0xOFgx OCBNMThYMTcgTTE4WDE2KQorTTE3WDIyLT4oTTE5WDE1IE0xOFgxNCBNMThYMTMgTTE4WDEy KQorTTE3WDIzLT4oTTE5WDExIE0xOFgyNSBNMThYMjQgTTE4WDIzKQorTTE3WDI0LT4oTTE5 WDIyIE0xOFgyMSBNMThYMjAgTTE4WDE5KQorTTE3WDI1LT4oTTE5WDE4IE0xOFgxNyBNMThY MTYgTTE4WDE1KQorTTE4WDExLT4oTTIwWDE0IE0xOVgxMyBNMTlYMTIgTTE5WDExKQorTTE4 WDEyLT4oTTIwWDI1IE0xOVgyNCBNMTlYMjMgTTE5WDIyKQorTTE4WDEzLT4oTTIwWDIxIE0x OVgyMCBNMTlYMTkgTTE5WDE4KQorTTE4WDE0LT4oTTIwWDE3IE0xOVgxNiBNMTlYMTUgTTE5 WDE0KQorTTE4WDE1LT4oTTIwWDEzIE0xOVgxMiBNMTlYMTEgTTE5WDI1KQorTTE4WDE2LT4o TTIwWDI0IE0xOVgyMyBNMTlYMjIgTTE5WDIxKQorTTE4WDE3LT4oTTIwWDIwIE0xOVgxOSBN MTlYMTggTTE5WDE3KQorTTE4WDE4LT4oTTIwWDE2IE0xOVgxNSBNMTlYMTQgTTE5WDEzKQor TTE4WDE5LT4oTTIwWDEyIE0xOVgxMSBNMTlYMjUgTTE5WDI0KQorTTE4WDIwLT4oTTIwWDIz IE0xOVgyMiBNMTlYMjEgTTE5WDIwKQorTTE4WDIxLT4oTTIwWDE5IE0xOVgxOCBNMTlYMTcg TTE5WDE2KQorTTE4WDIyLT4oTTIwWDE1IE0xOVgxNCBNMTlYMTMgTTE5WDEyKQorTTE4WDIz LT4oTTIwWDExIE0xOVgyNSBNMTlYMjQgTTE5WDIzKQorTTE4WDI0LT4oTTIwWDIyIE0xOVgy MSBNMTlYMjAgTTE5WDE5KQorTTE4WDI1LT4oTTIwWDE4IE0xOVgxNyBNMTlYMTYgTTE5WDE1 KQorTTE5WDExLT4oTTIxWDE0IE0yMFgxMyBNMjBYMTIgTTIwWDExKQorTTE5WDEyLT4oTTIx WDI1IE0yMFgyNCBNMjBYMjMgTTIwWDIyKQorTTE5WDEzLT4oTTIxWDIxIE0yMFgyMCBNMjBY MTkgTTIwWDE4KQorTTE5WDE0LT4oTTIxWDE3IE0yMFgxNiBNMjBYMTUgTTIwWDE0KQorTTE5 WDE1LT4oTTIxWDEzIE0yMFgxMiBNMjBYMTEgTTIwWDI1KQorTTE5WDE2LT4oTTIxWDI0IE0y MFgyMyBNMjBYMjIgTTIwWDIxKQorTTE5WDE3LT4oTTIxWDIwIE0yMFgxOSBNMjBYMTggTTIw WDE3KQorTTE5WDE4LT4oTTIxWDE2IE0yMFgxNSBNMjBYMTQgTTIwWDEzKQorTTE5WDE5LT4o TTIxWDEyIE0yMFgxMSBNMjBYMjUgTTIwWDI0KQorTTE5WDIwLT4oTTIxWDIzIE0yMFgyMiBN MjBYMjEgTTIwWDIwKQorTTE5WDIxLT4oTTIxWDE5IE0yMFgxOCBNMjBYMTcgTTIwWDE2KQor TTE5WDIyLT4oTTIxWDE1IE0yMFgxNCBNMjBYMTMgTTIwWDEyKQorTTE5WDIzLT4oTTIxWDEx IE0yMFgyNSBNMjBYMjQgTTIwWDIzKQorTTE5WDI0LT4oTTIxWDIyIE0yMFgyMSBNMjBYMjAg TTIwWDE5KQorTTE5WDI1LT4oTTIxWDE4IE0yMFgxNyBNMjBYMTYgTTIwWDE1KQorTTIwWDEx LT4oTTIyWDE0IE0yMVgxMyBNMjFYMTIgTTIxWDExKQorTTIwWDEyLT4oTTIyWDI1IE0yMVgy NCBNMjFYMjMgTTIxWDIyKQorTTIwWDEzLT4oTTIyWDIxIE0yMVgyMCBNMjFYMTkgTTIxWDE4 KQorTTIwWDE0LT4oTTIyWDE3IE0yMVgxNiBNMjFYMTUgTTIxWDE0KQorTTIwWDE1LT4oTTIy WDEzIE0yMVgxMiBNMjFYMTEgTTIxWDI1KQorTTIwWDE2LT4oTTIyWDI0IE0yMVgyMyBNMjFY MjIgTTIxWDIxKQorTTIwWDE3LT4oTTIyWDIwIE0yMVgxOSBNMjFYMTggTTIxWDE3KQorTTIw WDE4LT4oTTIyWDE2IE0yMVgxNSBNMjFYMTQgTTIxWDEzKQorTTIwWDE5LT4oTTIyWDEyIE0y MVgxMSBNMjFYMjUgTTIxWDI0KQorTTIwWDIwLT4oTTIyWDIzIE0yMVgyMiBNMjFYMjEgTTIx WDIwKQorTTIwWDIxLT4oTTIyWDE5IE0yMVgxOCBNMjFYMTcgTTIxWDE2KQorTTIwWDIyLT4o TTIyWDE1IE0yMVgxNCBNMjFYMTMgTTIxWDEyKQorTTIwWDIzLT4oTTIyWDExIE0yMVgyNSBN MjFYMjQgTTIxWDIzKQorTTIwWDI0LT4oTTIyWDIyIE0yMVgyMSBNMjFYMjAgTTIxWDE5KQor TTIwWDI1LT4oTTIyWDE4IE0yMVgxNyBNMjFYMTYgTTIxWDE1KQorTTIxWDExLT4oTTIzWDE1 IE0yMlgxNCBNMjJYMTMgTTIyWDEyKQorTTIxWDEyLT4oTTExWDExIE0yM1gyNSBNMjJYMjQg TTIyWDIzIE0yMlgyMikKK00yMVgxMy0+KE0yM1gyMSBNMjJYMjAgTTIyWDE5IE0yMlgxOCkK K00yMVgxNC0+KE0yM1gxNyBNMjJYMTYgTTIyWDE1IE0yMlgxNCkKK00yMVgxNS0+KE0yM1gx MyBNMjJYMTIgTTIyWDExIE0yMlgyNSkKK00yMVgxNi0+KE0yM1gyNCBNMjJYMjMgTTIyWDIy IE0yMlgyMSkKK00yMVgxNy0+KE0yM1gyMCBNMjJYMTkgTTIyWDE4IE0yMlgxNykKK00yMVgx OC0+KE0yM1gxNiBNMjJYMTUgTTIyWDE0IE0yMlgxMykKK00yMVgxOS0+KE0yM1gxMiBNMjJY MTEgTTIyWDI1IE0yMlgyNCkKK00yMVgyMC0+KE0yM1gyMyBNMjJYMjIgTTIyWDIxIE0yMlgy MCkKK00yMVgyMS0+KE0yM1gxOSBNMjJYMTggTTIyWDE3IE0yMlgxNikKK00yMVgyMi0+KE0y M1gxNSBNMjJYMTQgTTIyWDEzIE0yMlgxMikKK00yMVgyMy0+KE0yM1gxMSBNMjJYMjUgTTIy WDI0IE0yMlgyMykKK00yMVgyNC0+KE0yM1gyMiBNMjJYMjEgTTIyWDIwIE0yMlgxOSkKK00y MVgyNS0+KE0yM1gxOCBNMjJYMTcgTTIyWDE2IE0yMlgxNSkKK00yMlgxMS0+KE0yNFgxNiBN MjNYMTUgTTIzWDE0IE0yM1gxMykKK00yMlgxMi0+KE0xMlgxMiBNMjRYMTEgTTIzWDI1IE0y M1gyNCBNMjNYMjMpCitNMjJYMTMtPihNMjRYMjIgTTIzWDIxIE0yM1gyMCBNMjNYMTkpCitN MjJYMTQtPihNMjRYMTggTTIzWDE3IE0yM1gxNiBNMjNYMTUpCitNMjJYMTUtPihNMjRYMTQg TTIzWDEzIE0yM1gxMiBNMjNYMTEpCitNMjJYMTYtPihNMjRYMjUgTTIzWDI0IE0yM1gyMyBN MjNYMjIpCitNMjJYMTctPihNMjRYMjEgTTIzWDIwIE0yM1gxOSBNMjNYMTgpCitNMjJYMTgt PihNMjRYMTcgTTIzWDE2IE0yM1gxNSBNMjNYMTQpCitNMjJYMTktPihNMjRYMTMgTTIzWDEy IE0yM1gxMSBNMjNYMjUpCitNMjJYMjAtPihNMjRYMjQgTTIzWDIzIE0yM1gyMiBNMjNYMjEp CitNMjJYMjEtPihNMjRYMjAgTTIzWDE5IE0yM1gxOCBNMjNYMTcpCitNMjJYMjItPihNMjRY MTYgTTIzWDE1IE0yM1gxNCBNMjNYMTMpCitNMjJYMjMtPihNMjRYMTIgTTIzWDExIE0yM1gy NSBNMjNYMjQpCitNMjJYMjQtPihNMjRYMjMgTTIzWDIyIE0yM1gyMSBNMjNYMjApCitNMjJY MjUtPihNMjRYMTkgTTIzWDE4IE0yM1gxNyBNMjNYMTYpCitNMjNYMTEtPihNMjVYMTcgTTI0 WDE2IE0yNFgxNSBNMjRYMTQpCitNMjNYMTItPihNMTNYMTMgTTI1WDEyIE0yNFgxMSBNMjRY MjUgTTI0WDI0KQorTTIzWDEzLT4oTTI1WDIzIE0yNFgyMiBNMjRYMjEgTTI0WDIwKQorTTIz WDE0LT4oTTI1WDE5IE0yNFgxOCBNMjRYMTcgTTI0WDE2KQorTTIzWDE1LT4oTTI1WDE1IE0y NFgxNCBNMjRYMTMgTTI0WDEyKQorTTIzWDE2LT4oTTI1WDExIE0yNFgyNSBNMjRYMjQgTTI0 WDIzKQorTTIzWDE3LT4oTTI1WDIyIE0yNFgyMSBNMjRYMjAgTTI0WDE5KQorTTIzWDE4LT4o TTI1WDE4IE0yNFgxNyBNMjRYMTYgTTI0WDE1KQorTTIzWDE5LT4oTTI1WDE0IE0yNFgxMyBN MjRYMTIgTTI0WDExKQorTTIzWDIwLT4oTTI1WDI1IE0yNFgyNCBNMjRYMjMgTTI0WDIyKQor TTIzWDIxLT4oTTI1WDIxIE0yNFgyMCBNMjRYMTkgTTI0WDE4KQorTTIzWDIyLT4oTTI1WDE3 IE0yNFgxNiBNMjRYMTUgTTI0WDE0KQorTTIzWDIzLT4oTTI1WDEzIE0yNFgxMiBNMjRYMTEg TTI0WDI1KQorTTIzWDI0LT4oTTI1WDI0IE0yNFgyMyBNMjRYMjIgTTI0WDIxKQorTTIzWDI1 LT4oTTI1WDIwIE0yNFgxOSBNMjRYMTggTTI0WDE3KQorTTI0WDExLT4oTTI2WDE4IE0yNVgx NyBNMjVYMTYgTTI1WDE1KQorTTI0WDEyLT4oTTE0WDE0IE0yNlgxMyBNMjVYMTIgTTI1WDEx IE0yNVgyNSkKK00yNFgxMy0+KE0yNlgyNCBNMjVYMjMgTTI1WDIyIE0yNVgyMSkKK00yNFgx NC0+KE0yNlgyMCBNMjVYMTkgTTI1WDE4IE0yNVgxNykKK00yNFgxNS0+KE0yNlgxNiBNMjVY MTUgTTI1WDE0IE0yNVgxMykKK00yNFgxNi0+KE0yNlgxMiBNMjVYMTEgTTI1WDI1IE0yNVgy NCkKK00yNFgxNy0+KE0yNlgyMyBNMjVYMjIgTTI1WDIxIE0yNVgyMCkKK00yNFgxOC0+KE0y NlgxOSBNMjVYMTggTTI1WDE3IE0yNVgxNikKK00yNFgxOS0+KE0yNlgxNSBNMjVYMTQgTTI1 WDEzIE0yNVgxMikKK00yNFgyMC0+KE0yNlgxMSBNMjVYMjUgTTI1WDI0IE0yNVgyMykKK00y NFgyMS0+KE0yNlgyMiBNMjVYMjEgTTI1WDIwIE0yNVgxOSkKK00yNFgyMi0+KE0yNlgxOCBN MjVYMTcgTTI1WDE2IE0yNVgxNSkKK00yNFgyMy0+KE0yNlgxNCBNMjVYMTMgTTI1WDEyIE0y NVgxMSkKK00yNFgyNC0+KE0yNlgyNSBNMjVYMjQgTTI1WDIzIE0yNVgyMikKK00yNFgyNS0+ KE0yNlgyMSBNMjVYMjAgTTI1WDE5IE0yNVgxOCkKK00yNVgxMS0+KE0yN1gxOSBNMjZYMTgg TTI2WDE3IE0yNlgxNikKK00yNVgxMi0+KE0xNVgxNSBNMjdYMTQgTTI2WDEzIE0yNlgxMiBN MjZYMTEpCitNMjVYMTMtPihNMjdYMjUgTTI2WDI0IE0yNlgyMyBNMjZYMjIpCitNMjVYMTQt PihNMjdYMjEgTTI2WDIwIE0yNlgxOSBNMjZYMTgpCitNMjVYMTUtPihNMjdYMTcgTTI2WDE2 IE0yNlgxNSBNMjZYMTQpCitNMjVYMTYtPihNMjdYMTMgTTI2WDEyIE0yNlgxMSBNMjZYMjUp CitNMjVYMTctPihNMjdYMjQgTTI2WDIzIE0yNlgyMiBNMjZYMjEpCitNMjVYMTgtPihNMjdY MjAgTTI2WDE5IE0yNlgxOCBNMjZYMTcpCitNMjVYMTktPihNMjdYMTYgTTI2WDE1IE0yNlgx NCBNMjZYMTMpCitNMjVYMjAtPihNMjdYMTIgTTI2WDExIE0yNlgyNSBNMjZYMjQpCitNMjVY MjEtPihNMjdYMjMgTTI2WDIyIE0yNlgyMSBNMjZYMjApCitNMjVYMjItPihNMjdYMTkgTTI2 WDE4IE0yNlgxNyBNMjZYMTYpCitNMjVYMjMtPihNMjdYMTUgTTI2WDE0IE0yNlgxMyBNMjZY MTIpCitNMjVYMjQtPihNMjdYMTEgTTI2WDI1IE0yNlgyNCBNMjZYMjMpCitNMjVYMjUtPihN MjdYMjIgTTI2WDIxIE0yNlgyMCBNMjZYMTkpCitNMjZYMTEtPihNMjhYMjAgTTI3WDE5IE0y N1gxOCBNMjdYMTcpCitNMjZYMTItPihNMTZYMTYgTTI4WDE1IE0yN1gxNCBNMjdYMTMgTTI3 WDEyKQorTTI2WDEzLT4oTTI4WDExIE0yN1gyNSBNMjdYMjQgTTI3WDIzKQorTTI2WDE0LT4o TTI4WDIyIE0yN1gyMSBNMjdYMjAgTTI3WDE5KQorTTI2WDE1LT4oTTI4WDE4IE0yN1gxNyBN MjdYMTYgTTI3WDE1KQorTTI2WDE2LT4oTTI4WDE0IE0yN1gxMyBNMjdYMTIgTTI3WDExKQor TTI2WDE3LT4oTTI4WDI1IE0yN1gyNCBNMjdYMjMgTTI3WDIyKQorTTI2WDE4LT4oTTI4WDIx IE0yN1gyMCBNMjdYMTkgTTI3WDE4KQorTTI2WDE5LT4oTTI4WDE3IE0yN1gxNiBNMjdYMTUg TTI3WDE0KQorTTI2WDIwLT4oTTI4WDEzIE0yN1gxMiBNMjdYMTEgTTI3WDI1KQorTTI2WDIx LT4oTTI4WDI0IE0yN1gyMyBNMjdYMjIgTTI3WDIxKQorTTI2WDIyLT4oTTI4WDIwIE0yN1gx OSBNMjdYMTggTTI3WDE3KQorTTI2WDIzLT4oTTI4WDE2IE0yN1gxNSBNMjdYMTQgTTI3WDEz KQorTTI2WDI0LT4oTTI4WDEyIE0yN1gxMSBNMjdYMjUgTTI3WDI0KQorTTI2WDI1LT4oTTI4 WDIzIE0yN1gyMiBNMjdYMjEgTTI3WDIwKQorTTI3WDExLT4oTTI5WDIxIE0yOFgyMCBNMjhY MTkgTTI4WDE4KQorTTI3WDEyLT4oTTE3WDE3IE0yOVgxNiBNMjhYMTUgTTI4WDE0IE0yOFgx MykKK00yN1gxMy0+KE0yOVgxMiBNMjhYMTEgTTI4WDI1IE0yOFgyNCkKK00yN1gxNC0+KE0y OVgyMyBNMjhYMjIgTTI4WDIxIE0yOFgyMCkKK00yN1gxNS0+KE0yOVgxOSBNMjhYMTggTTI4 WDE3IE0yOFgxNikKK00yN1gxNi0+KE0yOVgxNSBNMjhYMTQgTTI4WDEzIE0yOFgxMikKK00y N1gxNy0+KE0yOVgxMSBNMjhYMjUgTTI4WDI0IE0yOFgyMykKK00yN1gxOC0+KE0yOVgyMiBN MjhYMjEgTTI4WDIwIE0yOFgxOSkKK00yN1gxOS0+KE0yOVgxOCBNMjhYMTcgTTI4WDE2IE0y OFgxNSkKK00yN1gyMC0+KE0yOVgxNCBNMjhYMTMgTTI4WDEyIE0yOFgxMSkKK00yN1gyMS0+ KE0yOVgyNSBNMjhYMjQgTTI4WDIzIE0yOFgyMikKK00yN1gyMi0+KE0yOVgyMSBNMjhYMjAg TTI4WDE5IE0yOFgxOCkKK00yN1gyMy0+KE0yOVgxNyBNMjhYMTYgTTI4WDE1IE0yOFgxNCkK K00yN1gyNC0+KE0yOVgxMyBNMjhYMTIgTTI4WDExIE0yOFgyNSkKK00yN1gyNS0+KE0yOVgy NCBNMjhYMjMgTTI4WDIyIE0yOFgyMSkKK00yOFgxMS0+KE0zMFgyMiBNMjlYMjEgTTI5WDIw IE0yOVgxOSkKK00yOFgxMi0+KE0xOFgxOCBNMzBYMTcgTTI5WDE2IE0yOVgxNSBNMjlYMTQp CitNMjhYMTMtPihNMzBYMTMgTTI5WDEyIE0yOVgxMSBNMjlYMjUpCitNMjhYMTQtPihNMzBY MjQgTTI5WDIzIE0yOVgyMiBNMjlYMjEpCitNMjhYMTUtPihNMzBYMjAgTTI5WDE5IE0yOVgx OCBNMjlYMTcpCitNMjhYMTYtPihNMzBYMTYgTTI5WDE1IE0yOVgxNCBNMjlYMTMpCitNMjhY MTctPihNMzBYMTIgTTI5WDExIE0yOVgyNSBNMjlYMjQpCitNMjhYMTgtPihNMzBYMjMgTTI5 WDIyIE0yOVgyMSBNMjlYMjApCitNMjhYMTktPihNMzBYMTkgTTI5WDE4IE0yOVgxNyBNMjlY MTYpCitNMjhYMjAtPihNMzBYMTUgTTI5WDE0IE0yOVgxMyBNMjlYMTIpCitNMjhYMjEtPihN MzBYMTEgTTI5WDI1IE0yOVgyNCBNMjlYMjMpCitNMjhYMjItPihNMzBYMjIgTTI5WDIxIE0y OVgyMCBNMjlYMTkpCitNMjhYMjMtPihNMzBYMTggTTI5WDE3IE0yOVgxNiBNMjlYMTUpCitN MjhYMjQtPihNMzBYMTQgTTI5WDEzIE0yOVgxMiBNMjlYMTEpCitNMjhYMjUtPihNMzBYMjUg TTI5WDI0IE0yOVgyMyBNMjlYMjIpCitNMjlYMTEtPihNMzBYMjIgTTMwWDIxIE0zMFgyMCkK K00yOVgxMi0+KE0zMFgxNyBNMzBYMTYgTTMwWDE1KQorTTI5WDEzLT4oTTMwWDEzIE0zMFgx MiBNMzBYMTEpCitNMjlYMTQtPihNMzBYMjQgTTMwWDIzIE0zMFgyMikKK00yOVgxNS0+KE0z MFgyMCBNMzBYMTkgTTMwWDE4KQorTTI5WDE2LT4oTTMwWDE2IE0zMFgxNSBNMzBYMTQpCitN MjlYMTctPihNMzBYMTIgTTMwWDExIE0zMFgyNSkKK00yOVgxOC0+KE0zMFgyMyBNMzBYMjIg TTMwWDIxKQorTTI5WDE5LT4oTTMwWDE5IE0zMFgxOCBNMzBYMTcpCitNMjlYMjAtPihNMzBY MTUgTTMwWDE0IE0zMFgxMykKK00yOVgyMS0+KE0zMFgxMSBNMzBYMjUgTTMwWDI0KQorTTI5 WDIyLT4oTTMwWDIyIE0zMFgyMSBNMzBYMjApCitNMjlYMjMtPihNMzBYMTggTTMwWDE3IE0z MFgxNikKK00yOVgyNC0+KE0zMFgxNCBNMzBYMTMgTTMwWDEyKQorTTI5WDI1LT4oTTMwWDI1 IE0zMFgyNCBNMzBYMjMpCitNMzBYMTEKK00zMFgxMgorTTMwWDEzCitNMzBYMTQKK00zMFgx NQorTTMwWDE2CitNMzBYMTcKK00zMFgxOAorTTMwWDE5CitNMzBYMjAKK00zMFgyMQorTTMw WDIyCitNMzBYMjMKK00zMFgyNAorTTMwWDI1CitvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWlj X3NvcnQ9MSk6IE0zMFgxOT5NMzBYMTU+TTMwWDE2Pk0zMFgxMT5NMzBYMTI+TTMwWDE3Pk0z MFgxMz5NMzBYMTQ+TTI5WDIwPk0zMFgyMz5NMzBYMjQ+TTMwWDIwPk0zMFgxOD5NMjlYMTU+ TTI5WDEyPk0zMFgyMj5NMzBYMjE+TTI5WDIyPk0zMFgyNT5NMjlYMTk+TTI5WDIzPk0yOVgx Nj5NMjlYMjQ+TTI5WDEzPk0yOVgxNz5NMjlYMTg+TTI4WDE5Pk0yOVgyMT5NMjlYMjU+TTI5 WDE0Pk0yOFgyMD5NMjhYMTU+TTI4WDE2Pk0yOFgyMT5NMjdYMTg+TTI5WDExPk0yOFgxNz5N MjhYMTE+TTI4WDIyPk0yN1gxND5NMjhYMTg+TTI3WDE1Pk0yOFgxMz5NMjdYMTE+TTI4WDIz Pk0yN1gyNT5NMjhYMTQ+TTI4WDI1Pk0yN1gyMz5NMjdYMjI+TTI4WDI0Pk0yN1gyMT5NMjdY MTM+TTI3WDE5Pk0yN1gxNz5NMjZYMTE+TTI2WDIzPk0yNlgyMT5NMjZYMjI+TTI2WDIwPk0y NlgxNj5NMjVYMjE+TTE3WDIyPk0xNVgxNT5NMjBYMTQ+TTIwWDE2Pk0xOFgxOD5NMjhYMTI+ TTI3WDI0Pk0yNVgxNz5NMjdYMjA+TTI2WDE4Pk0yNlgxNz5NMjdYMTY+TTI2WDE5Pk0yNVgx OD5NMjZYMjQ+TTI1WDIwPk0yNFgxNz5NMjNYMTg+TTI1WDEzPk0yNlgxMz5NMTdYMjM+TTE2 WDE2Pk0yNlgxMj5NMjVYMTI+TTI2WDE1Pk0yNFgxOT5NMjVYMjM+TTI1WDI0Pk0yNVgyNT5N MjRYMjA+TTI1WDE5Pk0yNFgyMT5NMjNYMTc+TTIyWDIxPk0yNFgxND5NMjNYMjI+TTI0WDI0 Pk0yMlgyMD5NMjRYMTM+TTI1WDExPk0yNFgxMj5NMjVYMTU+TTIzWDE1Pk0yNVgxNj5NMjRY MjI+TTIzWDEzPk0yNFgxOD5NMjNYMTQ+TTIyWDIyPk0yMVgyMD5NMjRYMjU+TTIzWDE2Pk0y MlgyNT5NMjFYMTk+TTIyWDE0Pk0yM1gxMT5NMjJYMTU+TTIxWDE4Pk0yMlgxOT5NMjFYMTc+ TTIwWDE3Pk0xOVgxNz5NMjFYMjQ+TTIxWDEyPk0yMFgyMj5NMTlYMTY+TTE4WDI1Pk0xOVgy MT5NMTlYMjA+TTE4WDI0Pk0yMFgxMj5NMTlYMTE+TTIzWDIwPk0yMlgyND5NMjJYMTY+TTIx WDIxPk0yNVgxND5NMjNYMTk+TTIzWDI0Pk0yMFgyND5NMTlYMTI+TTE4WDE1Pk0xN1gxND5N MTZYMTg+TTE0WDI1Pk0xNlgyMj5NMTZYMjA+TTE3WDE3Pk0yMlgxMj5NMjFYMTE+TTIwWDE1 Pk0xOFgyMj5NMTlYMjQ+TTE5WDE4Pk0xOFgyMT5NMTdYMTY+TTE3WDE4Pk0xNlgyMT5NMTVY MjA+TTE5WDIyPk0xOFgyMD5NMThYMTE+TTE3WDE5Pk0xNlgxNz5NMTVYMjE+TTE2WDE0Pk0x NlgxMz5NMTVYMjI+TTE0WDIwPk0xN1gyNT5NMTZYMTk+TTE0WDIxPk0xM1gyND5NMTJYMTI+ TTE2WDI0Pk0xNVgyMz5NMTRYMTY+TTE2WDE1Pk0xNVgyNT5NMTVYMTE+TTE1WDEyPk0xNFgx NT5NMTNYMTQ+TTE0WDIyPk0xM1gyMD5NMTJYMTM+TTExWDExPk0yMlgyMz5NMjFYMTU+TTIx WDE2Pk0yMFgyMT5NMjBYMjA+TTE4WDE3Pk0xOVgyNT5NMThYMjM+TTIxWDEzPk0xNVgxNz5N MTVYMTg+TTE4WDE5Pk0xN1gyND5NMTZYMTI+TTE3WDEzPk0yMFgyNT5NMTlYMjM+TTE1WDE5 Pk0xNFgxMz5NMTNYMTg+TTE1WDEzPk0xN1gxMj5NMTZYMTE+TTE4WDEzPk0xOFgxMj5NMTRY MTE+TTE0WDI0Pk0xM1gxOT5NMTVYMTQ+TTE3WDIwPk0yMFgxMT5NMjBYMTM+TTIxWDE0Pk0x NVgyND5NMTRYMTI+TTEzWDIyPk0xNFgyMz5NMTNYMjM+TTE0WDE5Pk0xN1gxNT5NMTZYMjU+ TTE3WDExPk0xOFgxND5NMTlYMTk+TTIxWDI1Pk0xM1gxMj5NMTNYMTE+TTE0WDE4Pk0xM1gx Mz5NMTJYMTE+TTE1WDE2Pk0xNFgxND5NMjdYMTI+TTE3WDIxPk0yMFgyMz5NMjJYMTM+TTIx WDIyPk0yNFgxNj5NMjRYMTU+TTI2WDI1Pk0yM1gyNT5NMjZYMTQ+TTIzWDEyPk0yMlgxOD5N MjRYMTE+TTE2WDIzPk0xOVgxND5NMTlYMTM+TTIxWDIzPk0yMlgxNz5NMjNYMjM+TTIzWDIx Pk0yNVgyMj5NMThYMTY+TTE5WDE1Pk0yMFgxOD5NMjBYMTk+TTIyWDExPk0yNFgyMz5DMTU2 PkMxMTg+QzE0Mz5DMTM3PkMxNDc+QzEwNj5DMTY4PkMxMTM+QzE2Mz5DMTU1PkMxMDU+QzE0 Nj5DMTg3PkExNTA+QzEzOT5DMTgwPkMxNjQ+QzE5Mz5DMTU3PkExOTE+QzE1OD5CMTg4PkEx NTk+QzE4ND5DMTIxPkMxNTQ+QjE3MT5BMTA1PkMxMzE+QzEwND5CMTA0PkMxNjE+QzExMT5C MTQ1PkMxNjA+QjE1NT5BMTYzPkMxMTI+QzE0Mj5CMTQ4PkMxMzM+QjE5OD5BMTk4PkExMTU+ QzExND5CMTU3PkExNTY+QzE3NT5CMTQ0PkExMjA+QzE3Mz5CMTg0PkExNzQ+QzEyNj5CMTA3 PkExMzk+QzE5ND5CMTk0PkExOTQ+QzExNj5CMTE2PkMxNjY+QjE2MD5CMTEwPkExMTA+QzEy OD5CMTI4PkExMjg+QzE3OT5CMTYyPkExNTQ+QzE4Nj5CMTg3PkExNzk+QzEyND5CMTgxPkEx MDE+QzE1Mz5CMTU4PkExMzY+QzEzNT5DMTc2PkExOTI+QjEzMz5BMTMzPkMxNzc+QjE3Nz5B MTc3PkMxODU+QzEwMz5CMTQxPkExNDE+QzE4Mz5BMTYyPkMxOTI+QzEyOT5CMTc5PkMxNDQ+ QjEyND5CMTgzPkMxMjc+QjEyNz5BMTI3PkIxMDg+QTExMj5CMTUzPkExNTM+QzE2Nz5CMTY3 PkExODY+QTEyMj5DMTYyPkExNDQ+QjE0OT5DMTc0PkIxMzE+QTE4NT5DMTQxPkIxMDY+QTEy Nj5BMTY3PkMxNDA+QjEyMj5BMTcwPkMxOTg+QjE0Mz5DMTE3PkMxMjM+QjEyMz5BMTQ3PkEx MDY+QzIwMD5CMTY5PkMxOTE+QjE3NT5BMTIzPkIxMTg+QTE4Mj5DMTMyPkIxNTE+QTE0NT5B MTA0PkExMDk+QzE1OT5DMTUwPkIxMTk+QTExOT5BMTc4PkIxNjQ+QjExND5BMTY0PkMxODE+ QTEwMj5DMTIyPkIxMzQ+QTE1Nz5BMTE2PkMxOTU+QjE5MT5CMTExPkMxNzI+QjE3Mj5BMTE4 PkIxMjk+QTEyOT5DMTQ5PkExMDc+QzE3MD5CMTk3PkExOTc+QTE3Mz5CMTY4PkExMzI+QzEw Nz5CMTY1PkExNjA+QTEzMT5DMTg4PkExNjg+QjEwOT5DMTc4PkExODk+QTE0OD5DMTE5PkMx OTA+QzEyMD5CMTY2PkIxNzY+QzEwOD5CMTM1PkIxMzk+QTEwMz5CMTc4PkExNjk+QjEzMj5D MTI1PkMxMzg+QjE2Mz5BMTExPkIxNzA+QzExMD5BMTY1PkMxNTE+QzE2OT5DMTk5PkExMzg+ QzE4Mj5BMTM1PkIxMDE+QjE0Mj5DMTAxPkMxNDg+QjE5Mz5CMTUyPkExNTg+QTE5OT5DMTM2 PkIxMzc+QTE2MT5CMTIwPkExMDg+QTE0OT5BMTI1PkIxMTM+QTE4ND5DMTcxPkExMzQ+QTE3 NT5BMTI0PkIxNTA+QjE2MT5CMTAyPkExNDY+QTE4Nz5DMTMwPkIxOTI+QjIwMD5BMjAwPkEx NDI+QTE4Mz5DMTAyPkIxMDU+QjE1Nj5BMTc2PkMxNjU+QjE0Nz5BMTM3PkExOTY+QjE5MD5B MTkwPkIxMjU+QzEzND5DMTg5PkIxMjY+QjE4Nj5BMTY2PkIxMzY+QjE5NT5BMTk1PkIxNTQ+ QjEzOD5CMTEyPkIxNzM+QTExNz5CMTU5PkIxODI+QTE4MT5BMTQwPkMxNDU+QjExNz5BMTUy PkExOTM+QzE5Nz5CMTMwPkExNzI+QTExMz5BMTUxPkIxMTU+QTE0Mz5CMTQwPkIxODU+QjEw Mz5BMTIxPkExODA+QTEzMD5BMTcxPkIxOTk+QzE5Nj5CMTQ2PkIxODA+QzExNT5CMTc0PkIx MjE+QTE4OD5CMTk2PkIxODk+QzE1Mj5DMTA5PkExNTU+QTExND5NMTRYMTc+TTEzWDE1Pk0x M1gxNj5NMTNYMTc+TTEyWDE3Pk0xMlgyMT5NMTJYMjU+TTEyWDE0Pk0xM1gyNT5NMTJYMTU+ TTEzWDIxPk0xMlgxNj5NMTJYMTg+TTEyWDE5Pk0xMlgyMD5NMTJYMjI+TTEyWDIzPk0xMlgy ND5NMTFYMjU+TTExWDI0Pk0xMVgyMz5NMTFYMjI+TTExWDIxPk0xMVgyMD5NMTFYMTk+TTEx WDE4Pk0xMVgxNz5NMTFYMTY+TTExWDE1Pk0xMVgxND5NMTFYMTM+TTExWDEyPnt9PE0xMVgx MjxNMTFYMTM8TTExWDE0PE0xMVgxNTxNMTFYMTY8TTExWDE3PE0xMVgxODxNMTFYMTk8TTEx WDIwPE0xMVgyMTxNMTFYMjI8TTExWDIzPE0xMVgyNDxNMTFYMjU8TTEyWDI0PE0xMlgyMzxN MTJYMjI8TTEyWDIwPE0xMlgxOTxNMTJYMTg8TTEyWDE2PE0xM1gyMTxNMTJYMTU8TTEzWDI1 PE0xMlgxNDxNMTJYMjU8TTEyWDIxPE0xMlgxNzxNMTNYMTc8TTEzWDE2PE0xM1gxNTxNMTRY MTc8QTExNDxBMTU1PEMxMDk8QzE1MjxCMTg5PEIxOTY8QTE4ODxCMTIxPEIxNzQ8QzExNTxC MTgwPEIxNDY8QzE5NjxCMTk5PEExNzE8QTEzMDxBMTgwPEExMjE8QjEwMzxCMTg1PEIxNDA8 QTE0MzxCMTE1PEExNTE8QTExMzxBMTcyPEIxMzA8QzE5NzxBMTkzPEExNTI8QjExNzxDMTQ1 PEExNDA8QTE4MTxCMTgyPEIxNTk8QTExNzxCMTczPEIxMTI8QjEzODxCMTU0PEExOTU8QjE5 NTxCMTM2PEExNjY8QjE4NjxCMTI2PEMxODk8QzEzNDxCMTI1PEExOTA8QjE5MDxBMTk2PEEx Mzc8QjE0NzxDMTY1PEExNzY8QjE1NjxCMTA1PEMxMDI8QTE4MzxBMTQyPEEyMDA8QjIwMDxC MTkyPEMxMzA8QTE4NzxBMTQ2PEIxMDI8QjE2MTxCMTUwPEExMjQ8QTE3NTxBMTM0PEMxNzE8 QTE4NDxCMTEzPEExMjU8QTE0OTxBMTA4PEIxMjA8QTE2MTxCMTM3PEMxMzY8QTE5OTxBMTU4 PEIxNTI8QjE5MzxDMTQ4PEMxMDE8QjE0MjxCMTAxPEExMzU8QzE4MjxBMTM4PEMxOTk8QzE2 OTxDMTUxPEExNjU8QzExMDxCMTcwPEExMTE8QjE2MzxDMTM4PEMxMjU8QjEzMjxBMTY5PEIx Nzg8QTEwMzxCMTM5PEIxMzU8QzEwODxCMTc2PEIxNjY8QzEyMDxDMTkwPEMxMTk8QTE0ODxB MTg5PEMxNzg8QjEwOTxBMTY4PEMxODg8QTEzMTxBMTYwPEIxNjU8QzEwNzxBMTMyPEIxNjg8 QTE3MzxBMTk3PEIxOTc8QzE3MDxBMTA3PEMxNDk8QTEyOTxCMTI5PEExMTg8QjE3MjxDMTcy PEIxMTE8QjE5MTxDMTk1PEExMTY8QTE1NzxCMTM0PEMxMjI8QTEwMjxDMTgxPEExNjQ8QjEx NDxCMTY0PEExNzg8QTExOTxCMTE5PEMxNTA8QzE1OTxBMTA5PEExMDQ8QTE0NTxCMTUxPEMx MzI8QTE4MjxCMTE4PEExMjM8QjE3NTxDMTkxPEIxNjk8QzIwMDxBMTA2PEExNDc8QjEyMzxD MTIzPEMxMTc8QjE0MzxDMTk4PEExNzA8QjEyMjxDMTQwPEExNjc8QTEyNjxCMTA2PEMxNDE8 QTE4NTxCMTMxPEMxNzQ8QjE0OTxBMTQ0PEMxNjI8QTEyMjxBMTg2PEIxNjc8QzE2NzxBMTUz PEIxNTM8QTExMjxCMTA4PEExMjc8QjEyNzxDMTI3PEIxODM8QjEyNDxDMTQ0PEIxNzk8QzEy OTxDMTkyPEExNjI8QzE4MzxBMTQxPEIxNDE8QzEwMzxDMTg1PEExNzc8QjE3NzxDMTc3PEEx MzM8QjEzMzxBMTkyPEMxNzY8QzEzNTxBMTM2PEIxNTg8QzE1MzxBMTAxPEIxODE8QzEyNDxB MTc5PEIxODc8QzE4NjxBMTU0PEIxNjI8QzE3OTxBMTI4PEIxMjg8QzEyODxBMTEwPEIxMTA8 QjE2MDxDMTY2PEIxMTY8QzExNjxBMTk0PEIxOTQ8QzE5NDxBMTM5PEIxMDc8QzEyNjxBMTc0 PEIxODQ8QzE3MzxBMTIwPEIxNDQ8QzE3NTxBMTU2PEIxNTc8QzExNDxBMTE1PEExOTg8QjE5 ODxDMTMzPEIxNDg8QzE0MjxDMTEyPEExNjM8QjE1NTxDMTYwPEIxNDU8QzExMTxDMTYxPEIx MDQ8QzEwNDxDMTMxPEExMDU8QjE3MTxDMTU0PEMxMjE8QzE4NDxBMTU5PEIxODg8QzE1ODxB MTkxPEMxNTc8QzE5MzxDMTY0PEMxODA8QzEzOTxBMTUwPEMxODc8QzE0NjxDMTA1PEMxNTU8 QzE2MzxDMTEzPEMxNjg8QzEwNjxDMTQ3PEMxMzc8QzE0MzxDMTE4PEMxNTY8TTI0WDIzPE0y MlgxMTxNMjBYMTk8TTIwWDE4PE0xOVgxNTxNMThYMTY8TTI1WDIyPE0yM1gyMTxNMjNYMjM8 TTIyWDE3PE0yMVgyMzxNMTlYMTM8TTE5WDE0PE0xNlgyMzxNMjRYMTE8TTIyWDE4PE0yM1gx MjxNMjZYMTQ8TTIzWDI1PE0yNlgyNTxNMjRYMTU8TTI0WDE2PE0yMVgyMjxNMjJYMTM8TTIw WDIzPE0xN1gyMTxNMjdYMTI8TTE0WDE0PE0xNVgxNjxNMTJYMTE8TTEzWDEzPE0xNFgxODxN MTNYMTE8TTEzWDEyPE0yMVgyNTxNMTlYMTk8TTE4WDE0PE0xN1gxMTxNMTZYMjU8TTE3WDE1 PE0xNFgxOTxNMTNYMjM8TTE0WDIzPE0xM1gyMjxNMTRYMTI8TTE1WDI0PE0yMVgxNDxNMjBY MTM8TTIwWDExPE0xN1gyMDxNMTVYMTQ8TTEzWDE5PE0xNFgyNDxNMTRYMTE8TTE4WDEyPE0x OFgxMzxNMTZYMTE8TTE3WDEyPE0xNVgxMzxNMTNYMTg8TTE0WDEzPE0xNVgxOTxNMTlYMjM8 TTIwWDI1PE0xN1gxMzxNMTZYMTI8TTE3WDI0PE0xOFgxOTxNMTVYMTg8TTE1WDE3PE0yMVgx MzxNMThYMjM8TTE5WDI1PE0xOFgxNzxNMjBYMjA8TTIwWDIxPE0yMVgxNjxNMjFYMTU8TTIy WDIzPE0xMVgxMTxNMTJYMTM8TTEzWDIwPE0xNFgyMjxNMTNYMTQ8TTE0WDE1PE0xNVgxMjxN MTVYMTE8TTE1WDI1PE0xNlgxNTxNMTRYMTY8TTE1WDIzPE0xNlgyNDxNMTJYMTI8TTEzWDI0 PE0xNFgyMTxNMTZYMTk8TTE3WDI1PE0xNFgyMDxNMTVYMjI8TTE2WDEzPE0xNlgxNDxNMTVY MjE8TTE2WDE3PE0xN1gxOTxNMThYMTE8TTE4WDIwPE0xOVgyMjxNMTVYMjA8TTE2WDIxPE0x N1gxODxNMTdYMTY8TTE4WDIxPE0xOVgxODxNMTlYMjQ8TTE4WDIyPE0yMFgxNTxNMjFYMTE8 TTIyWDEyPE0xN1gxNzxNMTZYMjA8TTE2WDIyPE0xNFgyNTxNMTZYMTg8TTE3WDE0PE0xOFgx NTxNMTlYMTI8TTIwWDI0PE0yM1gyNDxNMjNYMTk8TTI1WDE0PE0yMVgyMTxNMjJYMTY8TTIy WDI0PE0yM1gyMDxNMTlYMTE8TTIwWDEyPE0xOFgyNDxNMTlYMjA8TTE5WDIxPE0xOFgyNTxN MTlYMTY8TTIwWDIyPE0yMVgxMjxNMjFYMjQ8TTE5WDE3PE0yMFgxNzxNMjFYMTc8TTIyWDE5 PE0yMVgxODxNMjJYMTU8TTIzWDExPE0yMlgxNDxNMjFYMTk8TTIyWDI1PE0yM1gxNjxNMjRY MjU8TTIxWDIwPE0yMlgyMjxNMjNYMTQ8TTI0WDE4PE0yM1gxMzxNMjRYMjI8TTI1WDE2PE0y M1gxNTxNMjVYMTU8TTI0WDEyPE0yNVgxMTxNMjRYMTM8TTIyWDIwPE0yNFgyNDxNMjNYMjI8 TTI0WDE0PE0yMlgyMTxNMjNYMTc8TTI0WDIxPE0yNVgxOTxNMjRYMjA8TTI1WDI1PE0yNVgy NDxNMjVYMjM8TTI0WDE5PE0yNlgxNTxNMjVYMTI8TTI2WDEyPE0xNlgxNjxNMTdYMjM8TTI2 WDEzPE0yNVgxMzxNMjNYMTg8TTI0WDE3PE0yNVgyMDxNMjZYMjQ8TTI1WDE4PE0yNlgxOTxN MjdYMTY8TTI2WDE3PE0yNlgxODxNMjdYMjA8TTI1WDE3PE0yN1gyNDxNMjhYMTI8TTE4WDE4 PE0yMFgxNjxNMjBYMTQ8TTE1WDE1PE0xN1gyMjxNMjVYMjE8TTI2WDE2PE0yNlgyMDxNMjZY MjI8TTI2WDIxPE0yNlgyMzxNMjZYMTE8TTI3WDE3PE0yN1gxOTxNMjdYMTM8TTI3WDIxPE0y OFgyNDxNMjdYMjI8TTI3WDIzPE0yOFgyNTxNMjhYMTQ8TTI3WDI1PE0yOFgyMzxNMjdYMTE8 TTI4WDEzPE0yN1gxNTxNMjhYMTg8TTI3WDE0PE0yOFgyMjxNMjhYMTE8TTI4WDE3PE0yOVgx MTxNMjdYMTg8TTI4WDIxPE0yOFgxNjxNMjhYMTU8TTI4WDIwPE0yOVgxNDxNMjlYMjU8TTI5 WDIxPE0yOFgxOTxNMjlYMTg8TTI5WDE3PE0yOVgxMzxNMjlYMjQ8TTI5WDE2PE0yOVgyMzxN MjlYMTk8TTMwWDI1PE0yOVgyMjxNMzBYMjE8TTMwWDIyPE0yOVgxMjxNMjlYMTU8TTMwWDE4 PE0zMFgyMDxNMzBYMjQ8TTMwWDIzPE0yOVgyMDxNMzBYMTQ8TTMwWDEzPE0zMFgxNzxNMzBY MTI8TTMwWDExPE0zMFgxNjxNMzBYMTU8TTMwWDE5CitvdXRwdXQoZ2xpYmMucnRsZC5keW5h bWljX3NvcnQ9Mik6IE0zMFgxOT5NMzBYMTU+TTMwWDE2Pk0zMFgxMT5NMzBYMTI+TTMwWDE3 Pk0zMFgxMz5NMzBYMTQ+TTI5WDIwPk0zMFgyMz5NMzBYMjQ+TTMwWDIwPk0zMFgxOD5NMjlY MTU+TTI5WDEyPk0zMFgyMj5NMzBYMjE+TTI5WDIyPk0zMFgyNT5NMjlYMTk+TTI5WDIzPk0y OVgxNj5NMjlYMjQ+TTI5WDEzPk0yOVgxNz5NMjlYMTg+TTI4WDE5Pk0yOVgyMT5NMjlYMjU+ TTI5WDE0Pk0yOFgyMD5NMjhYMTU+TTI4WDE2Pk0yOFgyMT5NMjdYMTg+TTI5WDExPk0yOFgx Nz5NMjhYMTE+TTI4WDIyPk0yOFgyND5NMjhYMjM+TTI3WDIxPk0yOFgxMz5NMjdYMjA+TTI3 WDE5Pk0yNlgxND5NMjdYMjU+TTI4WDE4Pk0yN1gxMT5NMjhYMjU+TTI3WDI0Pk0yNlgyND5N MjdYMTU+TTI3WDE0Pk0yN1gxMz5NMjZYMjM+TTI3WDE3Pk0yNlgyMj5NMjVYMTM+TTI4WDE0 Pk0yN1gxNj5NMjZYMTk+TTI2WDE4Pk0yN1gyMz5NMjdYMjI+TTI2WDE3Pk0yNVgxOD5NMjZY MjE+TTI1WDE3Pk0yNlgyMD5NMjZYMTU+TTI2WDEzPk0yNVgxOT5NMjRYMTQ+TTI1WDIzPk0y NlgxMT5NMjZYMjU+TTI1WDE2Pk0yNVgxNT5NMjRYMjI+TTI1WDIxPk0yNVgyMD5NMjRYMjE+ TTI1WDI1Pk0yNVgyND5NMjRYMjA+TTIzWDEzPk0yMlgxNT5NMjVYMTQ+TTI0WDE5Pk0yM1gx Nz5NMjRYMjU+TTIzWDI0Pk0yNFgxMz5NMjNYMTU+TTI0WDE4Pk0yM1gxND5NMjJYMTE+TTI0 WDE1Pk0yM1gyMj5NMjRYMTE+TTIzWDE5Pk0yMlgyMT5NMjRYMjQ+TTIzWDIxPk0yMlgyMD5N MjNYMjU+TTIyWDE5Pk0yMVgyND5NMjBYMjM+TTIyWDIyPk0yNVgxMT5NMjNYMTY+TTIyWDE4 Pk0yM1gyMD5NMjJYMTc+TTIxWDIxPk0yMVgyMD5NMjBYMjQ+TTIyWDE0Pk0yMlgxMz5NMjFY MTE+TTIxWDE3Pk0yMlgyMz5NMjFYMTY+TTIwWDI1Pk0xOVgyMz5NMThYMTY+TTIxWDIyPk0y MFgyMD5NMjBYMTk+TTIxWDEzPk0yMFgxOD5NMTlYMTM+TTIxWDE4Pk0yMFgyMT5NMTlYMjQ+ TTE4WDEyPk0yMFgxND5NMjBYMTM+TTIyWDI1Pk0yMFgxMj5NMjBYMTU+TTE5WDE0Pk0xOFgy Mj5NMTlYMTg+TTIwWDE3Pk0xOVgxNz5NMTlYMTY+TTE4WDIxPk0xN1gyMD5NMTlYMTk+TTE4 WDEzPk0xN1gxMT5NMThYMTc+TTE5WDI1Pk0xOFgxNT5NMTdYMjU+TTE4WDE5Pk0xN1gyND5N MTZYMTk+TTE1WDE3Pk0xN1gyMT5NMTZYMjQ+TTE4WDIzPk0xN1gxNj5NMTZYMjU+TTE5WDE1 Pk0xOFgyNT5NMTdYMjM+TTE2WDIzPk0xNVgyMz5NMThYMTQ+TTE3WDE0Pk0xNlgxND5NMTdY MTg+TTE2WDEzPk0xN1gyMj5NMTZYMTI+TTE1WDIyPk0xNFgxNj5NMTdYMTI+TTE2WDIyPk0x NVgxMj5NMTZYMTE+TTE1WDExPk0xNlgxNT5NMTVYMjU+TTE0WDE1Pk0xM1gxND5NMTVYMTg+ TTE2WDIxPk0xNVgxNj5NMTRYMjE+TTE1WDE0Pk0xNlgyMD5NMTVYMTM+TTE0WDIyPk0xNVgy MD5NMTRYMjA+TTEzWDIwPk0xNFgxMT5NMTVYMTk+TTE0WDI0Pk0xM1gxOT5NMTRYMTM+TTEz WDE4Pk0xMlgxMz5NMTVYMjQ+TTE0WDIzPk0xM1gxMj5NMTRYMTI+TTEzWDExPk0xMlgxMT5N MTFYMTE+TTIxWDEyPk0yMFgxMT5NMTlYMTE+TTE4WDExPk0xN1gxNT5NMTZYMTg+TTE0WDI1 Pk0xNFgxOT5NMTNYMjQ+TTEzWDIzPk0xM1gyMj5NMTJYMTI+TTIyWDEyPk0yMVgxNT5NMTlY MjI+TTE4WDIwPk0xNlgxNz5NMTRYMTQ+TTI0WDEyPk0yM1gyMz5NMjJYMTY+TTIxWDE0Pk0y MFgyMj5NMThYMjQ+TTE2WDE2Pk0yNlgxMj5NMjRYMTY+TTIzWDExPk0yMVgyMz5NMTlYMjA+ TTE3WDE3Pk0yN1gxMj5NMjZYMTY+TTI1WDIyPk0yNFgxNz5NMjNYMTg+TTIxWDI1Pk0xOVgx Mj5NMTdYMTk+TTE1WDIxPk0xNFgxOD5NMTNYMTM+TTIzWDEyPk0yMVgxOT5NMTlYMjE+TTE3 WDEzPk0xNVgxNT5NMjVYMTI+TTI0WDIzPk0yMlgyND5NMjBYMTY+TTE4WDE4Pk0yOFgxMj5B MTUwPkMxNTg+QjExMj5BMTEyPkMxNjc+QjE0Nj5BMTQ2PkMxODA+QjE4MD5BMTgwPkMxNDM+ QjE0Mz5BMTE1PkMxMjY+QjEyNj5BMTI2PkMxOTA+QjE5MD5BMTkwPkMxMzg+QjEzOD5BMTM4 PkMxNzQ+QjE3ND5BMTAyPkMxMjI+QjEyMj5BMTIyPkMxNjI+QjE2Mj5BMTYyPkMxNDI+QjE0 Mj5BMTQyPkMxMDI+QjEwMj5BMTc0PkMxNzY+QjE3Nj5BMTc2PkMxMTU+QjExNT5BMTQzPkMx NzI+QjE3Mj5BMTcyPkMxODc+QjE4Nz5BMTg3PkMxMzA+QjEzMD5BMTMwPkMxMTg+QjExOD5B MTE4PkMxODQ+QjE4ND5BMTg0PkMxNzE+QjE3MT5BMTcxPkMxNjg+QjE4Mj5BMTgyPkMxODI+ QjE2OD5BMTY4PkMxMDk+QjEwOT5BMTA5PkMxNTk+QjE1OT5BMTU5PkMxMzQ+QjEzND5BMTM0 PkMxNDY+QjE2Nz5BMTY3PkMxNDA+QjE0MD5BMTQwPkMxNjM+QjE2Mz5BMTYzPkMxMTI+QjE1 OD5BMTU4PkMxNjQ+QjE2ND5BMTY0PkMxMzE+QjEzMT5BMTMxPkMxODg+QjE4OD5BMTg4PkMx OTk+QjE5OT5BMTk5PkMxMTQ+QjExND5BMTE0PkMxMDY+QjEwNj5BMTA2PkMyMDA+QjIwMD5B MjAwPkMxODM+QjE4Mz5BMTgzPkMxNTI+QjE1Mj5BMTUyPkMxNDc+QjE0Nz5BMTQ3PkMxNTA+ QjE1MD5BMTk4PkMxNDQ+QjE0ND5BMTQ0PkMxOTE+QjE5MT5BMTkxPkMxMDg+QjEwOD5BMTA4 PkMxMzk+QjEzOT5BMTM5PkMxOTQ+QjE5ND5BMTk0PkMxNjY+QjE2Nj5BMTY2PkMxMjA+QjEy MD5BMTIwPkMxMjM+QjEyMz5BMTIzPkMxMzI+QjEzMj5BMTMyPkMxMDc+QjEwNz5BMTA3PkMx NzA+QjE3MD5BMTcwPkMxOTg+QjE5OD5BMTU2PkMxMjU+QjEyNT5BMTI1PkMxMjE+QjEyMT5B MTIxPkMxOTM+QjE5Mz5BMTkzPkMxOTc+QjE5Nz5BMTk3PkMxNzU+QjE3NT5BMTc1PkMxOTY+ QjE5Nj5BMTk2PkMxMDU+QjEwNT5BMTA1PkMxODE+QjE4MT5BMTgxPkMxMTM+QjExMz5BMTEz PkMxMzc+QjEzNz5BMTM3PkMxNTU+QjE1NT5BMTU1PkMxNTY+QjE1Nj5BMTEwPkMxMjg+QjEy OD5BMTI4PkMxNzk+QjE3OT5BMTc5PkMxMjQ+QjEyND5BMTI0PkMxNTE+QjE1MT5BMTUxPkMx Nzg+QjE3OD5BMTc4PkMxMDQ+QjEwND5BMTA0PkMxMTE+QjExMT5BMTExPkMxNDg+QjE0OD5B MTQ4PkMxNjk+QjE2OT5BMTY5PkMxMjk+QjEyOT5BMTI5PkMxNDk+QjE0OT5BMTQ5PkMxODk+ QjE4OT5BMTg5PkMxMTk+QjExOT5BMTE5PkMxNTQ+QjE1ND5BMTU0PkMxMzY+QjEzNj5BMTM2 PkMxMzU+QjEzNT5BMTM1PkMxMTY+QjExNj5BMTE2PkMxNDU+QjE0NT5BMTQ1PkMxNjE+QjE2 MT5BMTYxPkMxNzM+QjE3Mz5BMTczPkMxNTc+QjE1Nz5BMTU3PkMxOTU+QjE5NT5BMTk1PkMx ODY+QjE4Nj5BMTg2PkMxNjA+QjE2MD5BMTYwPkMxNTM+QjE1Mz5BMTUzPkMxMTc+QjExNz5B MTE3PkMxNjU+QjE2NT5BMTY1PkMxMDE+QjEwMT5BMTAxPkMxMDM+QjEwMz5BMTAzPkMxOTI+ QjE5Mj5BMTkyPkMxNzc+QjE3Nz5BMTc3PkMxODU+QjE4NT5BMTg1PkMxNDE+QjE0MT5BMTQx PkMxMzM+QjEzMz5BMTMzPkMxMjc+QjEyNz5BMTI3PkMxMTA+QjExMD5NMTRYMTc+TTEzWDE1 Pk0xM1gxNj5NMTNYMTc+TTEyWDE3Pk0xMlgyMT5NMTJYMjU+TTEyWDE0Pk0xM1gyNT5NMTJY MTU+TTEzWDIxPk0xMlgxNj5NMTJYMTg+TTEyWDE5Pk0xMlgyMD5NMTJYMjI+TTEyWDIzPk0x MlgyND5NMTFYMjU+TTExWDI0Pk0xMVgyMz5NMTFYMjI+TTExWDIxPk0xMVgyMD5NMTFYMTk+ TTExWDE4Pk0xMVgxNz5NMTFYMTY+TTExWDE1Pk0xMVgxND5NMTFYMTM+TTExWDEyPnt9PE0x MVgxMjxNMTFYMTM8TTExWDE0PE0xMVgxNTxNMTFYMTY8TTExWDE3PE0xMVgxODxNMTFYMTk8 TTExWDIwPE0xMVgyMTxNMTFYMjI8TTExWDIzPE0xMVgyNDxNMTFYMjU8TTEyWDI0PE0xMlgy MzxNMTJYMjI8TTEyWDIwPE0xMlgxOTxNMTJYMTg8TTEyWDE2PE0xM1gyMTxNMTJYMTU8TTEz WDI1PE0xMlgxNDxNMTJYMjU8TTEyWDIxPE0xMlgxNzxNMTNYMTc8TTEzWDE2PE0xM1gxNTxN MTRYMTc8QjExMDxDMTEwPEExMjc8QjEyNzxDMTI3PEExMzM8QjEzMzxDMTMzPEExNDE8QjE0 MTxDMTQxPEExODU8QjE4NTxDMTg1PEExNzc8QjE3NzxDMTc3PEExOTI8QjE5MjxDMTkyPEEx MDM8QjEwMzxDMTAzPEExMDE8QjEwMTxDMTAxPEExNjU8QjE2NTxDMTY1PEExMTc8QjExNzxD MTE3PEExNTM8QjE1MzxDMTUzPEExNjA8QjE2MDxDMTYwPEExODY8QjE4NjxDMTg2PEExOTU8 QjE5NTxDMTk1PEExNTc8QjE1NzxDMTU3PEExNzM8QjE3MzxDMTczPEExNjE8QjE2MTxDMTYx PEExNDU8QjE0NTxDMTQ1PEExMTY8QjExNjxDMTE2PEExMzU8QjEzNTxDMTM1PEExMzY8QjEz NjxDMTM2PEExNTQ8QjE1NDxDMTU0PEExMTk8QjExOTxDMTE5PEExODk8QjE4OTxDMTg5PEEx NDk8QjE0OTxDMTQ5PEExMjk8QjEyOTxDMTI5PEExNjk8QjE2OTxDMTY5PEExNDg8QjE0ODxD MTQ4PEExMTE8QjExMTxDMTExPEExMDQ8QjEwNDxDMTA0PEExNzg8QjE3ODxDMTc4PEExNTE8 QjE1MTxDMTUxPEExMjQ8QjEyNDxDMTI0PEExNzk8QjE3OTxDMTc5PEExMjg8QjEyODxDMTI4 PEExMTA8QjE1NjxDMTU2PEExNTU8QjE1NTxDMTU1PEExMzc8QjEzNzxDMTM3PEExMTM8QjEx MzxDMTEzPEExODE8QjE4MTxDMTgxPEExMDU8QjEwNTxDMTA1PEExOTY8QjE5NjxDMTk2PEEx NzU8QjE3NTxDMTc1PEExOTc8QjE5NzxDMTk3PEExOTM8QjE5MzxDMTkzPEExMjE8QjEyMTxD MTIxPEExMjU8QjEyNTxDMTI1PEExNTY8QjE5ODxDMTk4PEExNzA8QjE3MDxDMTcwPEExMDc8 QjEwNzxDMTA3PEExMzI8QjEzMjxDMTMyPEExMjM8QjEyMzxDMTIzPEExMjA8QjEyMDxDMTIw PEExNjY8QjE2NjxDMTY2PEExOTQ8QjE5NDxDMTk0PEExMzk8QjEzOTxDMTM5PEExMDg8QjEw ODxDMTA4PEExOTE8QjE5MTxDMTkxPEExNDQ8QjE0NDxDMTQ0PEExOTg8QjE1MDxDMTUwPEEx NDc8QjE0NzxDMTQ3PEExNTI8QjE1MjxDMTUyPEExODM8QjE4MzxDMTgzPEEyMDA8QjIwMDxD MjAwPEExMDY8QjEwNjxDMTA2PEExMTQ8QjExNDxDMTE0PEExOTk8QjE5OTxDMTk5PEExODg8 QjE4ODxDMTg4PEExMzE8QjEzMTxDMTMxPEExNjQ8QjE2NDxDMTY0PEExNTg8QjE1ODxDMTEy PEExNjM8QjE2MzxDMTYzPEExNDA8QjE0MDxDMTQwPEExNjc8QjE2NzxDMTQ2PEExMzQ8QjEz NDxDMTM0PEExNTk8QjE1OTxDMTU5PEExMDk8QjEwOTxDMTA5PEExNjg8QjE2ODxDMTgyPEEx ODI8QjE4MjxDMTY4PEExNzE8QjE3MTxDMTcxPEExODQ8QjE4NDxDMTg0PEExMTg8QjExODxD MTE4PEExMzA8QjEzMDxDMTMwPEExODc8QjE4NzxDMTg3PEExNzI8QjE3MjxDMTcyPEExNDM8 QjExNTxDMTE1PEExNzY8QjE3NjxDMTc2PEExNzQ8QjEwMjxDMTAyPEExNDI8QjE0MjxDMTQy PEExNjI8QjE2MjxDMTYyPEExMjI8QjEyMjxDMTIyPEExMDI8QjE3NDxDMTc0PEExMzg8QjEz ODxDMTM4PEExOTA8QjE5MDxDMTkwPEExMjY8QjEyNjxDMTI2PEExMTU8QjE0MzxDMTQzPEEx ODA8QjE4MDxDMTgwPEExNDY8QjE0NjxDMTY3PEExMTI8QjExMjxDMTU4PEExNTA8TTI4WDEy PE0xOFgxODxNMjBYMTY8TTIyWDI0PE0yNFgyMzxNMjVYMTI8TTE1WDE1PE0xN1gxMzxNMTlY MjE8TTIxWDE5PE0yM1gxMjxNMTNYMTM8TTE0WDE4PE0xNVgyMTxNMTdYMTk8TTE5WDEyPE0y MVgyNTxNMjNYMTg8TTI0WDE3PE0yNVgyMjxNMjZYMTY8TTI3WDEyPE0xN1gxNzxNMTlYMjA8 TTIxWDIzPE0yM1gxMTxNMjRYMTY8TTI2WDEyPE0xNlgxNjxNMThYMjQ8TTIwWDIyPE0yMVgx NDxNMjJYMTY8TTIzWDIzPE0yNFgxMjxNMTRYMTQ8TTE2WDE3PE0xOFgyMDxNMTlYMjI8TTIx WDE1PE0yMlgxMjxNMTJYMTI8TTEzWDIyPE0xM1gyMzxNMTNYMjQ8TTE0WDE5PE0xNFgyNTxN MTZYMTg8TTE3WDE1PE0xOFgxMTxNMTlYMTE8TTIwWDExPE0yMVgxMjxNMTFYMTE8TTEyWDEx PE0xM1gxMTxNMTRYMTI8TTEzWDEyPE0xNFgyMzxNMTVYMjQ8TTEyWDEzPE0xM1gxODxNMTRY MTM8TTEzWDE5PE0xNFgyNDxNMTVYMTk8TTE0WDExPE0xM1gyMDxNMTRYMjA8TTE1WDIwPE0x NFgyMjxNMTVYMTM8TTE2WDIwPE0xNVgxNDxNMTRYMjE8TTE1WDE2PE0xNlgyMTxNMTVYMTg8 TTEzWDE0PE0xNFgxNTxNMTVYMjU8TTE2WDE1PE0xNVgxMTxNMTZYMTE8TTE1WDEyPE0xNlgy MjxNMTdYMTI8TTE0WDE2PE0xNVgyMjxNMTZYMTI8TTE3WDIyPE0xNlgxMzxNMTdYMTg8TTE2 WDE0PE0xN1gxNDxNMThYMTQ8TTE1WDIzPE0xNlgyMzxNMTdYMjM8TTE4WDI1PE0xOVgxNTxN MTZYMjU8TTE3WDE2PE0xOFgyMzxNMTZYMjQ8TTE3WDIxPE0xNVgxNzxNMTZYMTk8TTE3WDI0 PE0xOFgxOTxNMTdYMjU8TTE4WDE1PE0xOVgyNTxNMThYMTc8TTE3WDExPE0xOFgxMzxNMTlY MTk8TTE3WDIwPE0xOFgyMTxNMTlYMTY8TTE5WDE3PE0yMFgxNzxNMTlYMTg8TTE4WDIyPE0x OVgxNDxNMjBYMTU8TTIwWDEyPE0yMlgyNTxNMjBYMTM8TTIwWDE0PE0xOFgxMjxNMTlYMjQ8 TTIwWDIxPE0yMVgxODxNMTlYMTM8TTIwWDE4PE0yMVgxMzxNMjBYMTk8TTIwWDIwPE0yMVgy MjxNMThYMTY8TTE5WDIzPE0yMFgyNTxNMjFYMTY8TTIyWDIzPE0yMVgxNzxNMjFYMTE8TTIy WDEzPE0yMlgxNDxNMjBYMjQ8TTIxWDIwPE0yMVgyMTxNMjJYMTc8TTIzWDIwPE0yMlgxODxN MjNYMTY8TTI1WDExPE0yMlgyMjxNMjBYMjM8TTIxWDI0PE0yMlgxOTxNMjNYMjU8TTIyWDIw PE0yM1gyMTxNMjRYMjQ8TTIyWDIxPE0yM1gxOTxNMjRYMTE8TTIzWDIyPE0yNFgxNTxNMjJY MTE8TTIzWDE0PE0yNFgxODxNMjNYMTU8TTI0WDEzPE0yM1gyNDxNMjRYMjU8TTIzWDE3PE0y NFgxOTxNMjVYMTQ8TTIyWDE1PE0yM1gxMzxNMjRYMjA8TTI1WDI0PE0yNVgyNTxNMjRYMjE8 TTI1WDIwPE0yNVgyMTxNMjRYMjI8TTI1WDE1PE0yNVgxNjxNMjZYMjU8TTI2WDExPE0yNVgy MzxNMjRYMTQ8TTI1WDE5PE0yNlgxMzxNMjZYMTU8TTI2WDIwPE0yNVgxNzxNMjZYMjE8TTI1 WDE4PE0yNlgxNzxNMjdYMjI8TTI3WDIzPE0yNlgxODxNMjZYMTk8TTI3WDE2PE0yOFgxNDxN MjVYMTM8TTI2WDIyPE0yN1gxNzxNMjZYMjM8TTI3WDEzPE0yN1gxNDxNMjdYMTU8TTI2WDI0 PE0yN1gyNDxNMjhYMjU8TTI3WDExPE0yOFgxODxNMjdYMjU8TTI2WDE0PE0yN1gxOTxNMjdY MjA8TTI4WDEzPE0yN1gyMTxNMjhYMjM8TTI4WDI0PE0yOFgyMjxNMjhYMTE8TTI4WDE3PE0y OVgxMTxNMjdYMTg8TTI4WDIxPE0yOFgxNjxNMjhYMTU8TTI4WDIwPE0yOVgxNDxNMjlYMjU8 TTI5WDIxPE0yOFgxOTxNMjlYMTg8TTI5WDE3PE0yOVgxMzxNMjlYMjQ8TTI5WDE2PE0yOVgy MzxNMjlYMTk8TTMwWDI1PE0yOVgyMjxNMzBYMjE8TTMwWDIyPE0yOVgxMjxNMjlYMTU8TTMw WDE4PE0zMFgyMDxNMzBYMjQ8TTMwWDIzPE0yOVgyMDxNMzBYMTQ8TTMwWDEzPE0zMFgxNzxN MzBYMTI8TTMwWDExPE0zMFgxNjxNMzBYMTU8TTMwWDE5CmRpZmYgLS1naXQgYS9zY3JpcHRz L2Rzby1vcmRlcmluZy10ZXN0LnB5IGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMWVmYWY1MTFiCi0tLSAv ZGV2L251bGwKKysrIGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQpAQCAtMCwwICsx LDk0NyBAQAorIyEvdXNyL2Jpbi9weXRob24zCisjIEdlbmVyYXRlIHRlc3RjYXNlIGZpbGVz IGFuZCBNYWtlZmlsZSBmcmFnbWVudHMgZm9yIERTTyBzb3J0aW5nIHRlc3QKKyMgQ29weXJp Z2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKyMKKyMgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisj IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyMgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorCisiIiJHZW5lcmF0ZSB0ZXN0Y2FzZSBmaWxlcyBhbmQg TWFrZWZpbGUgZnJhZ21lbnRzIGZvciBEU08gc29ydGluZyB0ZXN0CisKK1RoaXMgc2NyaXB0 IHRha2VzIGEgc21hbGwgZGVzY3JpcHRpb24gc3RyaW5nIGxhbmd1YWdlLCBhbmQgZ2VuZXJh dGVzCit0ZXN0Y2FzZXMgZm9yIGRpc3BsYXlpbmcgdGhlIEVMRiBkeW5hbWljIGxpbmtlcidz IGRlcGVuZGVuY3kgc29ydGluZworYmVoYXZpb3IsIGFsbG93aW5nIHZlcmlmaWNhdGlvbi4K KworVGVzdGNhc2UgZGVzY3JpcHRpb25zIGFyZSBzZW1pY29sb24tc2VwYXJhdGVkIGRlc2Ny aXB0aW9uIHN0cmluZ3MsIGFuZAordGhpcyB0b29sIGdlbmVyYXRlcyBhIHRlc3RjYXNlIGZy b20gdGhlIGRlc2NyaXB0aW9uLCBpbmNsdWRpbmcgbWFpbiBwcm9ncmFtLAorYXNzb2NpYXRl ZCBtb2R1bGVzLCBhbmQgTWFrZWZpbGUgZnJhZ21lbnRzIGZvciBpbmNsdWRpbmcgaW50byBl bGYvTWFrZWZpbGUuCisKK1RoaXMgYWxsb3dzIGF1dG9tYXRpb24gb2Ygd2hhdCBvdGhlcndp c2Ugd291bGQgYmUgdmVyeSBsYWJvcm91cyBtYW51YWwKK2NvbnN0cnVjdGlvbiBvZiBjb21w bGV4IGRlcGVuZGVuY3kgY2FzZXMsIGhvd2V2ZXIgaXQgbXVzdCBiZSBub3RlZCB0aGF0IHRo aXMKK2lzIG9ubHkgYSB0b29sIHRvIHNwZWVkIHVwIHRlc3RjYXNlIGNvbnN0cnVjdGlvbiwg YW5kIHRodXMgdGhlIGdlbmVyYXRpb24KK2ZlYXR1cmVzIGFyZSBsYXJnZWx5IG1lY2hhbmlj YWwgaW4gbmF0dXJlOyBpbmNvbnNpc3RlbmNpZXMgb3IgZXJyb3JzIG1heSBvY2N1cgoraWYg dGhlIGlucHV0IGRlc2NyaXB0aW9uIHdhcyBpdHNlbGYgZXJyb3Jvbm91cyBvciBoYXZlIHVu Zm9yZXNlZW4gaW50ZXJhY3Rpb25zLgorCitUaGUgZm9ybWF0IG9mIHRoZSBpbnB1dCB0ZXN0 IGRlc2NyaXB0aW9uIGZpbGVzIGFyZToKKworICAjIEVhY2ggdGVzdCBkZXNjcmlwdGlvbiBo YXMgYSBuYW1lLCBsaW5lcyBvZiBkZXNjcmlwdGlvbiwKKyAgIyBhbmQgYW4gZXhwZWN0ZWQg b3V0cHV0IHNwZWNpZmljYXRpb24uIENvbW1lbnRzIHVzZSAnIycuCisgIHRlc3RuYW1lMTog PHRlc3QtZGVzY3JpcHRpb24tbGluZT4KKyAgb3V0cHV0OiA8ZXhwZWN0ZWQtb3V0cHV0LXN0 cmluZz4KKworICAjIFRlc3QgZGVzY3JpcHRpb25zIGNhbiB1c2UgbXVsdGlwbGUgbGluZXMs IHdoaWNoIHdpbGwgYWxsIGJlIG1lcmdlZAorICAjIHRvZ2V0aGVyLCBzbyBvcmRlciBpcyBu b3QgaW1wb3J0YW50LgorICB0ZXN0bmFtZTE6IDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+Cisg IDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+CisgIDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+Cisg IC4uLgorICBvdXRwdXQ6IDxleHBlY3RlZC1vdXRwdXQtc3RyaW5nPgorCisgICMgTXVsdGlw bGUgZXhwZWN0ZWQgb3V0cHV0cyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQsIHdpdGggYW4gYXNz b2NpYXRlZAorICAjIHR1bmFibGUgb3B0aW9uIGluICgpLCB3aGljaCBtdWx0aXBsZSB0ZXN0 cyB3aWxsIGJlIHJ1biB3aXRoIGVhY2gKKyAgIyBHTElCQ19UVU5BQkxFUz0uLi4gb3B0aW9u IHRyaWVkLgorICB0ZXN0bmFtZTM6CisgIDx0ZXN0LWRlc2NyaXB0aW9uLWxpbmU+CisgIC4u LgorICBvdXRwdXQoPGdsaWJjLXR1bmFibGUtc3RyaW5nMT4pOiA8ZXhwZWN0ZWQtb3V0cHV0 LXN0cmluZy0xPgorICBvdXRwdXQoPGdsaWJjLXR1bmFibGUtc3RyaW5nMj4pOiA8ZXhwZWN0 ZWQtb3V0cHV0LXN0cmluZy0yPgorCitPbiB0aGUgZGVzY3JpcHRpb24gbGFuZ3VhZ2UgdXNl ZCwgYW4gZXhhbXBsZSBkZXNjcmlwdGlvbiBsaW5lIHN0cmluZzoKKworICBhLT5iIS0+W2Nk ZWZdO2M9Pmc9Pmg7eytjOyVjOy1jfS0+YQorCitFYWNoIGlkZW50aWZpZXIgcmVwcmVzZW50 cyBhIHNoYXJlZCBvYmplY3QgbW9kdWxlLCBjdXJyZW50bHkgc2VxdWVuY2VzIG9mCitsZXR0 ZXJzL2RpZ2l0cyBhcmUgYWxsb3dlZCwgY2FzZS1zZW5zaXRpdmUuCisKK0FsbCBzdWNoIHNo YXJlZCBvYmplY3RzIGhhdmUgYSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIGdlbmVyYXRlZCBm b3IgdGhlbQordGhhdCBlbWl0cyBpdHMgbmFtZSBmb2xsb3dlZCBieSBhICc+JyBmb3IgY29u c3RydWN0b3JzLCBhbmQgJzwnIGZvbGxvd2VkIGJ5CitpdHMgbmFtZSBmb3IgZGVzdHJ1Y3Rv cnMsIGUuZy4gaWYgdGhlIG5hbWUgaXMgJ29iajEnLCB0aGVuICJvYmoxPiIgYW5kICI8b2Jq MSIKK2lzIHByaW50ZWQgYnkgaXRzIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IgcmVzcGVjdGl2 ZWx5LgorCitUaGUgLT4gb3BlcmF0b3Igc3BlY2lmaWVzIGEgbGluayB0aW1lIGRlcGVuZGVu Y3ksIHRoZXNlIGNhbiBiZSBjaGFpbmVkIGZvcgorY29udmVuaWVuY2UgKGUuZy4gYS0+Yi0+ Yy0+ZCkuCisKK1RoZSA9PiBvcGVyYXRvciBjcmVhdGVzIGEgY2FsbC1yZWZlcmVuY2UsIGUu Zy4gZm9yIGE9PmIsIGFuIGZuX2EoKSBmdW5jdGlvbgoraXMgY3JlYXRlZCBpbnNpZGUgbW9k dWxlICdhJywgd2hpY2ggY2FsbHMgZm5fYigpIGluIG1vZHVsZSAnYicuCitUaGVzZSBtb2R1 bGUgZnVuY3Rpb25zIGVtaXQgJ25hbWUoKScgb3V0cHV0IGluIG5lc3RlZCBmb3JtLAorZS5n LiBhPT5iIGVtaXRzICdhKGIoKSknCisKK0ZvciBzaW5nbGUgY2hhcmFjdGVyIG9iamVjdCBu YW1lcywgc3F1YXJlIGJyYWNrZXRzIFtdIGluIHRoZSBkZXNjcmlwdGlvbgorYWxsb3dzIHNw ZWNpZml5aW5nIG11bHRpcGxlIG9iamVjdHM7IGUuZy4gYS0+W2JjZF0tPmUgaXMgZXF1aXZh bGVudCB0bworIGEtPmItPmU7YS0+Yy0+ZTthLT5kLT5lCisKK1RoZSAoKSBwYXJlbnRoZXNp cyBjb25zdHJ1Y3Qgd2l0aCBzcGFjZSBzZXBhcmF0ZWQgbmFtZXMgaXMgYWxzbyBhbGxvd2Vk IGZvcgorc3BlY2lmeWluZyBvYmplY3RzLiBGb3IgbmFtZXMgd2l0aCBpbnRlZ2VyIHN1ZmZp eGVzIGEgcmFuZ2UgY2FuIGFsc28gYmUgdXNlZCwKK2UuZy4gKGZvbzEgYmFyMi01KSwgc3Bl Y2lmaWVzIERTT3MgZm9vMSwgYmFyMiwgYmFyMiwgYmFyMywgYmFyNCwgYmFyNS4KKworQSB7 fSBjb25zdHJ1Y3Qgc3BlY2lmaWVzIHRoZSBtYWluIHRlc3QgcHJvZ3JhbSwgYW5kIGl0cyBs aW5rIGRlcGVuZGVuY2llcworYXJlIGFsc28gc3BlY2lmaWVkIHVzaW5nIC0+LiBJbnNpZGUg e30sIGEgZmV3IDstc2VwZXJhdGVkIGNvbnN0cnVjdHMgYXJlCithbGxvd2VkOgorICAgICAg ICAgK2EgICBMb2FkcyBtb2R1bGUgYSB1c2luZyBkbG9wZW4oUlRMRF9MQVpZfFJUTERfR0xP QkFMKQorICAgICAgICAgXmEgICBMb2FkcyBtb2R1bGUgYSB1c2luZyBkbG9wZW4oUlRMRF9M QVpZKQorICAgICAgICAgJWEgICBVc2UgZGxzeW0oKSB0byBsb2FkIGFuZCBjYWxsIGZuX2Eo KQorICAgICAgICAgQGEgICBDYWxscyBmbl9hKCkgZGlyZWN0bHkuCisgICAgICAgICAtYSAg IFVubG9hZHMgbW9kdWxlIGEgdXNpbmcgZGxjbG9zZSgpCisKK1RoZSBnZW5lcmF0ZWQgbWFp biBwcm9ncmFtIG91dHB1dHMgJ3snICd9JyB3aXRoIGFsbCBvdXRwdXQgZnJvbSBhYm92ZQor Y29uc3RydWN0cyBpbiBiZXR3ZWVuLiBUaGUgb3RoZXIgb3V0cHV0IGJlZm9yZS9hZnRlciB7 fSBhcmUgdGhlIG9yZGVyZWQKK2NvbnN0cnVjdG9yL2Rlc3RydWN0b3Igb3V0cHV0LgorCitJ ZiBubyB7fSBjb25zdHJ1Y3QgaXMgcHJlc2VudCwgYSBkZWZhdWx0IGVtcHR5IG1haW4gcHJv Z3JhbSBpcyBsaW5rZWQKK2FnYWluc3QgYWxsIG9iamVjdHMgd2hpY2ggaGF2ZSBubyBkZXBl bmRlbmN5IGxpbmtlZCB0byBpdC4gZS5nLiBmb3IKKydbYWJdLT5jO2QtPmUnLCB0aGUgZGVm YXVsdCBtYWluIHByb2dyYW0gaXMgZXF1aXZhbGVudCB0byAne30tPlthYmRdJworCitTb21l dGltZXMgZm9yIHZlcnkgY29tcGxleCBvciBsYXJnZSB0ZXN0Y2FzZXMsIGJlc2lkZXMgc3Bl Y2lmeWluZyBhCitmZXcgZXhwbGljaXQgZGVwZW5kZW5jaWVzIGZyb20gbWFpbnt9LCB0aGUg YWJvdmUgZGVmYXVsdCBkZXBlbmRlbmN5CitiZWhhdmlvciBpcyBzdGlsbCB1c2VmdWwgdG8g YXV0b21hdGljYWxseSBoYXZlLCBidXQgaXMgdHVybmVkIG9mZgordXBvbiBzcGVjaWZ5aW5n IGEgc2luZ2xlIGV4cGxpY2l0IHt9LT5kc29fbmFtZS4KK0luIHRoaXMgY2FzZSwgYWRkIHt9 LT4qIHRvIGV4cGxpY2l0bHkgYWRkIHRoaXMgZ2VuZXJhdGlvbiBiZWhhdmlvcjoKKworICAg IyBNYWluIHByb2dyYW0gbGlua3MgdG8gJ2ZvbycsIGFuZCBhbGwgb3RoZXIgb2JqZWN0cyB3 aGljaCBoYXZlIG5vCisgICAjIGRlcGVuZGVuY3kgbGlua2VkIHRvIGl0LgorICAge30tPmZv byx7fS0+KgorCitOb3RlIHRoYXQgJyonIHdvcmtzIG5vdCBvbmx5IG9uIG1haW57fSwgYnV0 IGNhbiBiZSB1c2VkIGFzIHRoZQorZGVwZW5kZW5jeSB0YXJnZXQgb2YgYW55IG9iamVjdC4g Tm90ZSB0aGF0IGl0IG9ubHkgd29ya3MgYXMgYSB0YXJnZXQsCitub3QgYSBkZXBlbmRlbmN5 IHNvdXJjZS4KKworVGhlICchJyBvcGVyYXRvciBhZnRlciBvYmplY3QgbmFtZXMgdHVybnMg b24gcGVybXV0YXRpb24gb2YgaXRzCitkZXBlbmRlbmNpZXMsIGUuZy4gd2hpbGUgYS0+W2Jj ZF0gb25seSBnZW5lcmF0ZXMgb25lIHNldCBvZiBvYmplY3RzLAord2l0aCAnYS5zbycgYnVp bHQgd2l0aCBhIGxpbmsgbGluZSBvZiAiYi5zbyBjLnNvIGQuc28iLCBmb3IgYSEtPltiY2Rd CitwZXJtdXRhdGlvbnMgb2YgYSdzIGRlcGVuZGVuY2llcyBjcmVhdGVzIG11bHRpcGxlIHRl c3RjYXNlcyB3aXRoCitkaWZmZXJlbnQgbGluayBsaW5lIG9yZGVyczogImIuc28gYy5zbyBk LnNvIiwgImMuc28gYi5zbyBkLnNvIiwKKyJiLnNvIGQuc28gYy5zbyIsIGV0Yy4gTm90ZSB0 aGF0IGZvciBhIDx0ZXN0LW5hbWU+IHNwZWNpZmllZCBvbgordGhlIHNjcmlwdCBjb21tYW5k LWxpbmUsIG11bHRpcGxlIDx0ZXN0LW5hbWVfMT4sIDx0ZXN0LW5hbWVfMj4sIGV0Yy4KK3Rl c3RzIHdpbGwgYmUgZ2VuZXJhdGVkIChlLmcuIGZvciBhIS0+W2JjXSEtPltkZV0sIGVpZ2h0 IHRlc3RzIHdpdGgKK2RpZmZlcmVudCBsaW5rIG9yZGVycyBmb3IgYSwgYiwgYW5kIGMgd2ls bCBiZSBnZW5lcmF0ZWQpCisKKyIiIgoraW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQg b3MKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgYXJncGFyc2UKK2Zyb20gY29sbGVjdGlv bnMgaW1wb3J0IE9yZGVyZWREaWN0CitpbXBvcnQgaXRlcnRvb2xzCisKKyMgQlVJTERfR0ND IGlzIG9ubHkgdXNlZCB1bmRlciB0aGUgLS1idWlsZCBvcHRpb24sCisjIHdoaWNoIGJ1aWxk cyB0aGUgZ2VuZXJhdGVkIHRlc3RjYXNlLCBpbmNsdWRpbmcgRFNPcyB1c2luZyBCVUlMRF9H Q0MuCisjIE1haW5seSBmb3IgdGVzdGluZyBwdXJwb3NlcywgZXNwZWNpYWxseSBkZWJ1Z2dp bmcgb2YgdGhpcyBzY3JpcHQsCisjIGFuZCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIGFub3Ro ZXIgdG9vbGNoYWluIHBhdGggaWYgbmVlZGVkLgorYnVpbGRfZ2NjID0gImdjYyIKKworcGFy c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoIiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50 KCJkZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRlc2NyaXB0aW9u IHN0cmluZyBvZiBEU08gZGVwZW5kZW5jeSB0ZXN0IHRvIGJlICIKKyAgICAgICAgICAgICAg ICAgICAgImdlbmVyYXRlZCAoc2VlIHNjcmlwdCBzb3VyY2UgZm9yIGRvY3VtZW50YXRpb24g b2YgIgorICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24gbGFuZ3VhZ2UpLCBlaXRo ZXIgc3BlY2lmaWVkIGhlcmUgYXMgIgorICAgICAgICAgICAgICAgICAgICAiY29tbWFuZCBs aW5lIGFyZ3VtZW50LCBvciBieSBpbnB1dCBmaWxlIHVzaW5nICIKKyAgICAgICAgICAgICAg ICAgICAgIi1mLy0tZGVzY3JpcHRpb24tZmlsZSBvcHRpb24iLAorICAgICAgICAgICAgICAg ICAgICBuYXJncz0iPyIsIGRlZmF1bHQ9IiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0 X25hbWUiLCBoZWxwPSJJZGVudGlmaWVyIGZvciB0ZXN0Y2FzZSBiZWluZyAiCisgICAgICAg ICAgICAgICAgICAgICJnZW5lcmF0ZWQiLCBuYXJncz0iPyIsIGRlZmF1bHQ9IiIpCitwYXJz ZXIuYWRkX2FyZ3VtZW50KCItLW9ianBmeCIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9 IlBhdGggdG8gcGxhY2UgZ2VuZXJhdGVkIGZpbGVzLCBkZWZhdWx0cyB0byAiCisgICAgICAg ICAgICAgICAgICAgICJjdXJyZW50IGRpcmVjdG9yeSBpZiBub25lIHNwZWNpZmllZCIsCisg ICAgICAgICAgICAgICAgICAgIG5hcmdzPSI/IiwgZGVmYXVsdD0iLi8iKQorcGFyc2VyLmFk ZF9hcmd1bWVudCgiLW0iLCAiLS1vdXRwdXQtbWFrZWZpbGUiLAorICAgICAgICAgICAgICAg ICAgICBoZWxwPSJGaWxlIHRvIHdyaXRlIE1ha2VmaWxlIGZyYWdtZW50IHRvLCBkZWZhdWx0 cyB0byAiCisgICAgICAgICAgICAgICAgICAgICJzdGRvdXQgd2hlbiBvcHRpb24gbm90IHBy ZXNlbnQiLCBuYXJncz0iPyIsIGRlZmF1bHQ9IiIpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCIt ZiIsICItLWRlc2NyaXB0aW9uLWZpbGUiLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJJ bnB1dCBmaWxlIGNvbnRhaW5pbmcgdGVzdGNhc2UgZGVzY3JpcHRpb25zIiwKKyAgICAgICAg ICAgICAgICAgICAgbmFyZ3M9Ij8iLCBkZWZhdWx0PSIiKQorcGFyc2VyLmFkZF9hcmd1bWVu dCgiLS1idWlsZCIsIGhlbHA9IkFmdGVyIEMgdGVzdGNhc2UgZ2VuZXJhdGVkLCBidWlsZCBp dCAiCisgICAgICAgICAgICAgICAgICAgICJ1c2luZyBnY2MgKGZvciBtYW51YWwgdGVzdGlu ZyBwdXJwb3NlcykiLAorICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUi KQorcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1kZWJ1Zy1vdXRwdXQiLCBoZWxwPSJQcmludHMg c29tZSBpbnRlcm5hbCBkYXRhICIKKyAgICAgICAgICAgICAgICAgICAgInN0cnVjdHVyZXM7 IHVzZWQgZm9yIGRlYnVnZ2luZyBvZiB0aGlzIHNjcmlwdCIsCisgICAgICAgICAgICAgICAg ICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCitjbWRsaW5lYXJncyA9IHBhcnNlci5wYXJzZV9h cmdzKCkKK3Rlc3RfbmFtZSA9IGNtZGxpbmVhcmdzLnRlc3RfbmFtZQorZGVzY3JpcHRpb24g PSBjbWRsaW5lYXJncy5kZXNjcmlwdGlvbgorb2JqcGZ4ID0gY21kbGluZWFyZ3Mub2JqcGZ4 CitkZXNjcmlwdGlvbl9maWxlID0gY21kbGluZWFyZ3MuZGVzY3JpcHRpb25fZmlsZQorb3V0 cHV0X21ha2VmaWxlID0gY21kbGluZWFyZ3Mub3V0cHV0X21ha2VmaWxlCittYWtlZmlsZSA9 ICIiCisKK2lmICh0ZXN0X25hbWUgb3IgZGVzY3JpcHRpb24pIGFuZCBkZXNjcmlwdGlvbl9m aWxlOgorICAgIHByaW50ICgiRXJyb3I6IGJvdGggY29tbWFuZC1saW5lIHRlc3RjYXNlIGFu ZCBpbnB1dCBmaWxlIHNwZWNpZmllZCIpCisgICAgZXhpdCAoLTEpCitpZiB0ZXN0X25hbWUg YW5kIG5vdCBkZXNjcmlwdGlvbjoKKyAgICBwcmludCAoIkVycm9yOiBjb21tYW5kLWxpbmUg dGVzdGNhc2UgbmFtZSB3aXRob3V0IGRlc2NyaXB0aW9uIHN0cmluZyIpCisgICAgZXhpdCAo LTEpCisKKyMgTWFpbiBjbGFzcyB0eXBlIGRlc2NyaWJpbmcgYSB0ZXN0Y2FzZS4KK2NsYXNz IFRlc3REZXNjcjoKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYub2Jq cyA9IFtdICAgICAgICAgICAgICAgICAgICAgICAgIyBsaXN0IG9mIGFsbCBEU08gb2JqZWN0 cworICAgICAgICBzZWxmLmRlcHMgPSBPcmRlcmVkRGljdCgpICAgICAgICAgICAgICMgbWFw IG9mIERTTyBvYmplY3QgLT4gbGlzdCBvZiBkZXBlbmRlbmNpZXMKKyAgICAgICAgc2VsZi5j YWxscmVmcyA9IE9yZGVyZWREaWN0KCkgICAgICAgICAjIG1hcCBvZiBEU08gb2JqZWN0IC0+ IGxpc3Qgb2YgY2FsbCByZWZzCisgICAgICAgIHNlbGYuZGVwX3Blcm11dGF0aW9ucyA9IE9y ZGVyZWREaWN0KCkgIyBtYXAgb2YgRFNPIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgICAtPiBsaXN0IG9mIHBlcm11dGF0aW9ucyBv ZiBkZXBlbmRlbmNpZXMKKyAgICAgICAgc2VsZi5tYWluX3Byb2dyYW0gPSBbXSAgICAgICAg ICAgICAgICAjIGxpc3Qgb2YgbWFpbiBwcm9ncmFtIG9wZXJhdGlvbnMKKyAgICAgICAgc2Vs Zi5tYWluX3Byb2dyYW1fbmVlZHNfbGRsID0gRmFsc2UgICAjIHNldCBpZiBtYWluIHByb2dy YW0gbmVlZHMgLWxkbAorICAgICAgICBzZWxmLm1haW5fcHJvZ3JhbV9kZWZhdWx0X2RlcHMg PSBUcnVlICMgc2V0IGlmIGRlZmF1bHQgZGVwZW5kZW5jaWVzIGFkZGVkIHRvIG1haW4KKyAg ICAgICAgc2VsZi50ZXN0X25hbWUgPSAiIiAgICAgICAgICAgICAgICAgICAjIG5hbWUgb2Yg dGVzdGNhc2UKKyAgICAgICAgc2VsZi5leHBlY3RlZF9vdXRwdXRzID0gT3JkZXJlZERpY3Qo KSAjIGV4cGVjdGVkIG91dHB1dHMgb2YgdGVzdGNhc2UKKworICAgICMgQWRkICdvYmplY3Qg LT4gW29iamVjdCwgb2JqZWN0LCAuLi5dJyByZWxhdGlvbnMgdG8gQ1VSUl9NQVAKKyAgICBk ZWYgX19hZGRfZGVwc19pbnRlcm5hbCAoc2VsZiwgc3JjX29ianMsIGRzdF9vYmpzLCBjdXJy X21hcCk6CisgICAgICAgIGZvciBzcmMgaW4gc3JjX29ianM6CisgICAgICAgICAgICBmb3Ig ZHN0IGluIGRzdF9vYmpzOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzcmMgaW4gY3Vycl9t YXA6CisgICAgICAgICAgICAgICAgICAgIGN1cnJfbWFwW3NyY10gPSBbXQorICAgICAgICAg ICAgICAgIGlmIG5vdCBkc3QgaW4gY3Vycl9tYXBbc3JjXToKKyAgICAgICAgICAgICAgICAg ICAgY3Vycl9tYXBbc3JjXS5hcHBlbmQgKGRzdCkKKyAgICBkZWYgYWRkX2RlcHMgKHNlbGYs IHNyY19vYmpzLCBkc3Rfb2Jqcyk6CisgICAgICAgIHNlbGYuX19hZGRfZGVwc19pbnRlcm5h bCAoc3JjX29ianMsIGRzdF9vYmpzLCBzZWxmLmRlcHMpCisgICAgZGVmIGFkZF9jYWxscmVm cyAoc2VsZiwgc3JjX29ianMsIGRzdF9vYmpzKToKKyAgICAgICAgc2VsZi5fX2FkZF9kZXBz X2ludGVybmFsIChzcmNfb2JqcywgZHN0X29ianMsIHNlbGYuY2FsbHJlZnMpCisKKyMgRm9y IGluc2lkZSB0aGUge30gY29uc3RydWN0CitkZWYgcHJvY2Vzc19tYWluX3Byb2dyYW0gKHRl c3RfZGVzY3IsIG1haW5wcm9nX3N0cik6CisgICAgaWYgbWFpbnByb2dfc3RyOgorICAgICAg ICB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbSA9IG1haW5wcm9nX3N0ci5zcGxpdCAoJzsnKQor ICAgIGZvciBzIGluIHRlc3RfZGVzY3IubWFpbl9wcm9ncmFtOgorICAgICAgICBtID0gcmUu bWF0Y2ggKHIiXihbK1wtJV5AXSkoWzAtOWEtekEtWl0rKSQiLCBzKQorICAgICAgICBpZiBu b3QgbToKKyAgICAgICAgICAgIHByaW50ICgiRXJyb3I6ICclcycgaXMgbm90IHJlY29nbml6 ZWQgbWFpbiBwcm9ncmFtIG9wZXJhdGlvbiIgJSAocykpCisgICAgICAgICAgICBleGl0ICgt MSkKKyAgICAgICAgb3ByID0gbS5ncm91cCgxKQorICAgICAgICBpZiAob3ByID09ICcrJyBv ciBvcHIgPT0gJ14nIG9yIG9wciA9PSAnJScgb3Igb3ByID09ICctJyk6CisgICAgICAgICAg ICAjIERldGVybWluZWQgdGhlIG1haW4gcHJvZ3JhbSBuZWVkcyBsaWJkbAorICAgICAgICAg ICAgdGVzdF9kZXNjci5tYWluX3Byb2dyYW1fbmVlZHNfbGRsID0gVHJ1ZQorICAgICAgICBv YmogPSBtLmdyb3VwKDIpCisgICAgICAgIGlmIG5vdCBvYmogaW4gdGVzdF9kZXNjci5vYmpz OgorICAgICAgICAgICAgdGVzdF9kZXNjci5vYmpzLmFwcGVuZCAob2JqKQorICAgICAgICBp ZiBvcHIgPT0gJyUnIG9yIG9wciA9PSAnQCc6CisgICAgICAgICAgICB0ZXN0X2Rlc2NyLmFk ZF9jYWxscmVmcyAoWycjJ10sIFtvYmpdKQorICAgICMgV2UgaGF2ZSBhIG1haW4gcHJvZ3Jh bSBzcGVjaWZpZWQsIHR1cm4gdGhpcyBvZmYKKyAgICB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3Jh bV9kZWZhdWx0X2RlcHMgPSBGYWxzZQorCisjIEZvciAoYTEgYTIgYjEtMTIpIG9iamVjdCBz ZXQgZGVzY3JpcHRpb25zLCBleHBhbmQgaW50byBhbiBvYmplY3QgbGlzdAorZGVmIGV4cGFu ZF9vYmplY3Rfc2V0X3N0cmluZyAoZGVzY3Jfc3RyKToKKyAgICBvYmpfbGlzdCA9IFtdCisg ICAgZGVzY3JfbGlzdCA9IGRlc2NyX3N0ci5zcGxpdCAoKQorICAgIGZvciBkZXNjciBpbiBk ZXNjcl9saXN0OgorICAgICAgICBtID0gcmUubWF0Y2ggKHIiXihbYS16QS1aXVswLTlhLXpB LVpdKikoLVswLTldKyk/JCIsIGRlc2NyKQorICAgICAgICBpZiBub3QgbToKKyAgICAgICAg ICAgIHByaW50ICgiRXJyb3I6ICclcycgaXMgbm90IGEgdmFsaWQgb2JqZWN0IHNldCBkZXNj cmlwdGlvbiIgJSAoZGVzY3IpKQorICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgIG9i aiA9IG0uZ3JvdXAgKDEpCisgICAgICAgIGlkeF9lbmQgPSBtLmdyb3VwICgyKQorICAgICAg ICBpZiBub3QgaWR4X2VuZDoKKyAgICAgICAgICAgIGlmIG5vdCBvYmogaW4gb2JqX2xpc3Q6 CisgICAgICAgICAgICAgICAgb2JqX2xpc3QuYXBwZW5kIChvYmopCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICBpZHhfZW5kID0gaW50IChpZHhfZW5kWzE6XSkKKyAgICAgICAgICAg IG0gPSByZS5tYXRjaCAociJeKFswLTlhLXpBLVpdW2EtekEtWl0qKShbMC05XSspJCIsIG9i aikKKyAgICAgICAgICAgIGlmIG5vdCBtOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJy b3I6IG9iamVjdCBkZXNjcmlwdGlvbiAnJXMnIGlzIG1hbGZvcm1lZCIgJSAob2JqKSkKKyAg ICAgICAgICAgICAgICBleGl0ICgtMSkKKyAgICAgICAgICAgIG9ial9uYW1lID0gbS5ncm91 cCAoMSkKKyAgICAgICAgICAgIGlkeF9zdGFydCA9IGludCAobS5ncm91cCAoMikpCisgICAg ICAgICAgICBpZiBpZHhfc3RhcnQgPiBpZHhfZW5kOgorICAgICAgICAgICAgICAgIHByaW50 ICgiRXJyb3I6IGluZGV4IHJhbmdlICVzLSVzIGludmFsaWQiICUgKGlkeF9zdGFydCwgaWR4 X2VuZCkpCisgICAgICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICBmb3IgaSBp biByYW5nZShpZHhfc3RhcnQsIGlkeF9lbmQgKyAxKToKKyAgICAgICAgICAgICAgICBvID0g b2JqX25hbWUgKyBzdHIoaSkKKyAgICAgICAgICAgICAgICBpZiBub3QgbyBpbiBvYmpfbGlz dDoKKyAgICAgICAgICAgICAgICAgICAgb2JqX2xpc3QuYXBwZW5kIChvKQorICAgIHJldHVy biBvYmpfbGlzdAorCisjIExleGVyIGZvciB0b2tlbnMKK3Rva2Vuc3BlYyA9IFsgKCJPQkoi LCAgICAgIHIiKFswLTlhLXpBLVpdKykiKSwKKyAgICAgICAgICAgICAgKCJERVAiLCAgICAg IHIiLT4iKSwKKyAgICAgICAgICAgICAgKCJDQUxMUkVGIiwgIHIiPT4iKSwKKyAgICAgICAg ICAgICAgKCJPQkpTRVQiLCAgIHIiXFsoWzAtOWEtekEtWl0rKVxdIiksCisgICAgICAgICAg ICAgICgiT0JKU0VUMiIsICByIlwoKFswLTlhLXpBLVogXC1dKylcKSIpLAorICAgICAgICAg ICAgICAoIk9CSlNFVDMiLCAgciJcKiIpLAorICAgICAgICAgICAgICAoIlBST0ciLCAgICAg ciJ7KFswLTlhLXpBLVo7K15cLSVdKil9IiksCisgICAgICAgICAgICAgICgiUEVSTVVURSIs ICByIiEiKSwKKyAgICAgICAgICAgICAgKCJTRU1JQ09MIiwgIHIiOyIpLAorICAgICAgICAg ICAgICAoIkVSUk9SIiwgICAgciIuIikgXQordG9rX3JlID0gJ3wnLmpvaW4oJyg/UDwlcz4l cyknICUgcGFpciBmb3IgcGFpciBpbiB0b2tlbnNwZWMpCisKKyMgTWFpbiBsaW5lIHBhcnNl ciBvZiBkZXNjcmlwdGlvbiBsYW5ndWFnZQorZGVmIHBhcnNlX2Rlc2NyaXB0aW9uX3N0cmlu ZyAodCwgZGVzY3Jfc3RyKToKKworICAgICMgU3RhdGUgdXNlZCB3aGVuIHBhcnNpbmcgZGVw ZW5kZW5jaWVzCisgICAgY3Vycl9vYmpzID0gW10KKyAgICBpbl9kZXAgPSBGYWxzZQorICAg IGluX2NhbGxyZWYgPSBGYWxzZQorICAgIGRlZiBjbGVhcl9kZXBfc3RhdGUgKCk6CisgICAg ICAgIG5vbmxvY2FsIGluX2RlcCwgaW5fY2FsbHJlZgorICAgICAgICBpbl9kZXAgPSBpbl9j YWxscmVmID0gRmFsc2UKKyAgICAKKyAgICBmb3IgbSBpbiByZS5maW5kaXRlcih0b2tfcmUs IGRlc2NyX3N0cik6CisgICAgICAgIGtpbmQgPSBtLmxhc3Rncm91cAorICAgICAgICB2YWx1 ZSA9IG0uZ3JvdXAgKCkKKyAgICAgICAgaWYga2luZCA9PSAiT0JKIjoKKyAgICAgICAgICAg IGlmIGluX2RlcDoKKyAgICAgICAgICAgICAgICB0LmFkZF9kZXBzIChjdXJyX29ianMsIFt2 YWx1ZV0pCisgICAgICAgICAgICBlbGlmIGluX2NhbGxyZWY6CisgICAgICAgICAgICAgICAg dC5hZGRfY2FsbHJlZnMgKGN1cnJfb2JqcywgW3ZhbHVlXSkKKyAgICAgICAgICAgIGNsZWFy X2RlcF9zdGF0ZSAoKQorICAgICAgICAgICAgY3Vycl9vYmpzID0gW3ZhbHVlXQorICAgICAg ICAgICAgaWYgbm90IHZhbHVlIGluIHQub2JqczoKKyAgICAgICAgICAgICAgICB0Lm9ianMu YXBwZW5kICh2YWx1ZSkKKworICAgICAgICBlbGlmIGtpbmQgPT0gIk9CSlNFVCI6CisgICAg ICAgICAgICBvYmpzZXQgPSB2YWx1ZVsxOmxlbih2YWx1ZSktMV0KKyAgICAgICAgICAgIGlm IGluX2RlcDoKKyAgICAgICAgICAgICAgICB0LmFkZF9kZXBzIChjdXJyX29ianMsIGxpc3Qg KG9ianNldCkpCisgICAgICAgICAgICBlbGlmIGluX2NhbGxyZWY6CisgICAgICAgICAgICAg ICAgdC5hZGRfY2FsbHJlZnMgKGN1cnJfb2JqcywgbGlzdCAob2Jqc2V0KSkKKyAgICAgICAg ICAgIGNsZWFyX2RlcF9zdGF0ZSAoKQorICAgICAgICAgICAgY3Vycl9vYmpzID0gbGlzdCAo b2Jqc2V0KQorICAgICAgICAgICAgZm9yIG8gaW4gbGlzdCAob2Jqc2V0KToKKyAgICAgICAg ICAgICAgICBpZiBub3QgbyBpbiB0Lm9ianM6CisgICAgICAgICAgICAgICAgICAgIHQub2Jq cy5hcHBlbmQgKG8pCisKKyAgICAgICAgZWxpZiBraW5kID09ICJPQkpTRVQyIjoKKyAgICAg ICAgICAgIGRlc2NyX3N0ciA9IHZhbHVlWzE6bGVuKHZhbHVlKS0xXQorICAgICAgICAgICAg ZGVzY3Jfc3RyLnN0cmlwICgpCisgICAgICAgICAgICBvYmpzID0gZXhwYW5kX29iamVjdF9z ZXRfc3RyaW5nIChkZXNjcl9zdHIpCisgICAgICAgICAgICBpZiBub3Qgb2JqczoKKyAgICAg ICAgICAgICAgICBwcmludCAoIkVycm9yOiBlbXB0eSBvYmplY3Qgc2V0ICclcyciICUgKHZh bHVlKSkKKyAgICAgICAgICAgICAgICBleGl0ICgtMSkKKyAgICAgICAgICAgIGlmIGluX2Rl cDoKKyAgICAgICAgICAgICAgICB0LmFkZF9kZXBzIChjdXJyX29ianMsIG9ianMpCisgICAg ICAgICAgICBlbGlmIGluX2NhbGxyZWY6CisgICAgICAgICAgICAgICAgdC5hZGRfY2FsbHJl ZnMgKGN1cnJfb2Jqcywgb2JqcykKKyAgICAgICAgICAgIGNsZWFyX2RlcF9zdGF0ZSAoKQor ICAgICAgICAgICAgY3Vycl9vYmpzID0gb2JqcworICAgICAgICAgICAgZm9yIG8gaW4gb2Jq czoKKyAgICAgICAgICAgICAgICBpZiBub3QgbyBpbiB0Lm9ianM6CisgICAgICAgICAgICAg ICAgICAgIHQub2Jqcy5hcHBlbmQgKG8pCisKKyAgICAgICAgZWxpZiBraW5kID09ICJPQkpT RVQzIjoKKyAgICAgICAgICAgIGlmIGluX2RlcDoKKyAgICAgICAgICAgICAgICB0LmFkZF9k ZXBzIChjdXJyX29ianMsIFsnKiddKQorICAgICAgICAgICAgZWxpZiBpbl9jYWxscmVmOgor ICAgICAgICAgICAgICAgIHQuYWRkX2NhbGxyZWZzIChjdXJyX29ianMsIFsnKiddKQorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAoIkVycm9yOiBub24tZGVw ZW5kZW5jZSB0YXJnZXQgc2V0ICcqJyBjYW4gb25seSBiZSB1c2VkICIKKyAgICAgICAgICAg ICAgICAgICAgICAgImFzIHRhcmdldCBvZiAtPi89PiBvcGVyYXRpb25zIikKKyAgICAgICAg ICAgICAgICBleGl0ICgtMSkKKyAgICAgICAgICAgIGNsZWFyX2RlcF9zdGF0ZSAoKQorICAg ICAgICAgICAgY3Vycl9vYmpzID0gWycqJ10KKworICAgICAgICBlbGlmIGtpbmQgPT0gIlBF Uk1VVEUiOgorICAgICAgICAgICAgaWYgaW5fZGVwIG9yIGluX2NhbGxyZWY6CisgICAgICAg ICAgICAgICAgcHJpbnQgKCJFcnJvcjogc3ludGF4IGVycm9yLCBwZXJtdXRlIG9wZXJhdGlv biBpbnZhbGlkIGhlcmUiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0xKQorICAgICAgICAg ICAgaWYgbm90IGN1cnJfb2JqczoKKyAgICAgICAgICAgICAgICBwcmludCAoIkVycm9yOiBz eW50YXggZXJyb3IsIG5vIG9iamVjdHMgdG8gcGVybXV0ZSBoZXJlIikKKyAgICAgICAgICAg ICAgICBleGl0ICgtMSkKKworICAgICAgICAgICAgZm9yIG9iaiBpbiBjdXJyX29ianM6Cisg ICAgICAgICAgICAgICAgaWYgbm90IG9iaiBpbiB0LmRlcF9wZXJtdXRhdGlvbnM6CisgICAg ICAgICAgICAgICAgICAgICMgU2lnbmFsIHRoaXMgb2JqZWN0IGhhcyBwZXJtdXRhdGVkIGRl cGVuZGVuY2llcworICAgICAgICAgICAgICAgICAgICB0LmRlcF9wZXJtdXRhdGlvbnNbb2Jq XSA9IFtdCisKKyAgICAgICAgZWxpZiBraW5kID09ICJQUk9HIjoKKyAgICAgICAgICAgIGlm IHQubWFpbl9wcm9ncmFtOgorICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IGNhbm5v dCBoYXZlIG1vcmUgdGhhbiBvbmUgbWFpbiBwcm9ncmFtIikKKyAgICAgICAgICAgICAgICBl eGl0ICgtMSkKKyAgICAgICAgICAgIGlmIGluX2RlcDoKKyAgICAgICAgICAgICAgICBwcmlu dCAoIkVycm9yOiBvYmplY3RzIGNhbm5vdCBoYXZlIGRlcGVuZGVuY3kgb24gbWFpbiBwcm9n cmFtIikKKyAgICAgICAgICAgICAgICBleGl0ICgtMSkKKyAgICAgICAgICAgIGlmIGluX2Nh bGxyZWY6CisgICAgICAgICAgICAgICAgIyBUT0RPOiBBIERTTyBjYW4gcmVzb2x2ZSB0byBh IHN5bWJvbCBpbiB0aGUgbWFpbiBiaW5hcnksCisgICAgICAgICAgICAgICAgIyB3aGljaCB3 ZSBzeW50YWN0aWNhbGx5IGFsbG93IGhlcmUsIGJ1dCBoYXZlbid0IHlldCBpbXBsZW1lbnRl ZC4KKyAgICAgICAgICAgICAgICB0LmFkZF9jYWxscmVmcyAoY3Vycl9vYmpzLCBbIiMiXSkK KyAgICAgICAgICAgIHByb2Nlc3NfbWFpbl9wcm9ncmFtICh0LCB2YWx1ZVsxOmxlbih2YWx1 ZSktMV0pCisgICAgICAgICAgICBjbGVhcl9kZXBfc3RhdGUgKCkKKyAgICAgICAgICAgIGN1 cnJfb2JqcyA9IFsiIyJdCisKKyAgICAgICAgZWxpZiBraW5kID09ICJERVAiOgorICAgICAg ICAgICAgaWYgaW5fZGVwIG9yIGluX2NhbGxyZWY6CisgICAgICAgICAgICAgICAgcHJpbnQg KCJFcnJvcjogc3ludGF4IGVycm9yLCBtdWx0aXBsZSBjb250aWd1b3VzIC0+LD0+IG9wZXJh dGlvbnMiKQorICAgICAgICAgICAgICAgIGV4aXQgKC0xKQorICAgICAgICAgICAgaWYgJyon IGluIGN1cnJfb2JqczoKKyAgICAgICAgICAgICAgICBwcmludCAoIkVycm9yOiBub24tZGVw ZW5kZW5jZSB0YXJnZXQgc2V0ICcqJyBjYW4gb25seSBiZSB1c2VkICIKKyAgICAgICAgICAg ICAgICAgICAgICAgImFzIHRhcmdldCBvZiAtPi89PiBvcGVyYXRpb25zIikKKyAgICAgICAg ICAgICAgICBleGl0ICgtMSkKKyAgICAgICAgICAgIGluX2RlcCA9IFRydWUKKworICAgICAg ICBlbGlmIGtpbmQgPT0gIkNBTExSRUYiOgorICAgICAgICAgICAgaWYgaW5fZGVwIG9yIGlu X2NhbGxyZWY6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJFcnJvcjogc3ludGF4IGVycm9y LCBtdWx0aXBsZSBjb250aWd1b3VzIC0+LD0+IG9wZXJhdGlvbnMiKQorICAgICAgICAgICAg ICAgIGV4aXQgKC0xKQorICAgICAgICAgICAgaWYgJyonIGluIGN1cnJfb2JqczoKKyAgICAg ICAgICAgICAgICBwcmludCAoIkVycm9yOiBub24tZGVwZW5kZW5jZSB0YXJnZXQgc2V0ICcq JyBjYW4gb25seSBiZSB1c2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgImFzIHRhcmdl dCBvZiAtPi89PiBvcGVyYXRpb25zIikKKyAgICAgICAgICAgICAgICBleGl0ICgtMSkKKyAg ICAgICAgICAgIGluX2NhbGxyZWYgPSBUcnVlCisKKyAgICAgICAgZWxpZiBraW5kID09ICJT RU1JQ09MIjoKKyAgICAgICAgICAgIGN1cnJfb2JqcyA9IFtdCisgICAgICAgICAgICBjbGVh cl9kZXBfc3RhdGUgKCkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgKCJF cnJvcjogdW5rbm93biB0b2tlbiAnJXMnIiAlICh2YWx1ZSkpCisgICAgICAgICAgICBleGl0 ICgtMSkKKyAgICByZXR1cm4gdAorCisKKworZGVmIHByb2Nlc3NfdGVzdGNhc2UgKHQpOgor ICAgIGdsb2JhbCBvYmpwZngKKyAgICBhc3NlcnQgdC50ZXN0X25hbWUKKworICAgIGJhc2Vf dGVzdF9uYW1lID0gdC50ZXN0X25hbWUKKyAgICB0ZXN0X3N1YmRpciA9IGJhc2VfdGVzdF9u YW1lICsgIi1kaXIiCisgICAgdGVzdHBmeCA9IG9ianBmeCArIHRlc3Rfc3ViZGlyICsgIi8i CisKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMgKHRlc3RwZngpOgorICAgICAgICBvcy5t a2RpciAodGVzdHBmeCkKKworICAgIGRlZiBmaW5kX29ianNfbm90X2RlcGVuZGVkX29uICh0 KToKKyAgICAgICAgb2Jqc19ub3RfZGVwZW5kZWRfb24gPSBbXQorICAgICAgICBmb3Igb2Jq IGluIHQub2JqczoKKyAgICAgICAgICAgIHNraXAgPSBGYWxzZQorICAgICAgICAgICAgZm9y IHIgaW4gdC5kZXBzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgb2JqIGluIHJbMV06 CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSBUcnVlCisgICAgICAgICAgICAgICAgICAg IGJyZWFrCisgICAgICAgICAgICBpZiBub3Qgc2tpcDoKKyAgICAgICAgICAgICAgICBvYmpz X25vdF9kZXBlbmRlZF9vbi5hcHBlbmQgKG9iaikKKyAgICAgICAgcmV0dXJuIG9ianNfbm90 X2RlcGVuZGVkX29uCisKKyAgICBub25fZGVwX3RndF9vYmpzID0gZmluZF9vYmpzX25vdF9k ZXBlbmRlZF9vbiAodCkKKyAgICBmb3Igb2JqIGluIHQub2JqczoKKyAgICAgICAgaWYgb2Jq IGluIHQuZGVwczoKKyAgICAgICAgICAgIGRlcHMgPSB0LmRlcHNbb2JqXQorICAgICAgICAg ICAgaWYgJyonIGluIGRlcHM6CisgICAgICAgICAgICAgICAgdC5kZXBzW29ial0ucmVtb3Zl ICgnKicpCisgICAgICAgICAgICAgICAgdC5hZGRfZGVwcyAoW29ial0sIG5vbl9kZXBfdGd0 X29ianMpCisgICAgICAgIGlmIG9iaiBpbiB0LmNhbGxyZWZzOgorICAgICAgICAgICAgZGVw cyA9IHQuY2FsbHJlZnNbb2JqXQorICAgICAgICAgICAgaWYgJyonIGluIGRlcHM6CisgICAg ICAgICAgICAgICAgdC5kZXBzW29ial0ucmVtb3ZlICgnKicpCisgICAgICAgICAgICAgICAg dC5hZGRfY2FsbHJlZnMgKFtvYmpdLCBub25fZGVwX3RndF9vYmpzKQorICAgIGlmICIjIiBp biB0LmRlcHM6CisgICAgICAgIGRlcHMgPSB0LmRlcHNbIiMiXQorICAgICAgICBpZiAnKicg aW4gZGVwczoKKyAgICAgICAgICAgIHQuZGVwc1siIyJdLnJlbW92ZSAoJyonKQorICAgICAg ICAgICAgdC5hZGRfZGVwcyAoWyIjIl0sIG5vbl9kZXBfdGd0X29ianMpCisgICAgICAgIAor ICAgICMgSWYgbm8gbWFpbiBwcm9ncmFtIHdhcyBzcGVjaWZpZWQgaW4gZGVwZW5kZW5jeSBk ZXNjcmlwdGlvbiwgbWFrZSBhCisgICAgIyBkZWZhdWx0IG1haW4gcHJvZ3JhbSB3aXRoIGRl cHMgcG9pbnRpbmcgdG8gYWxsIERTT3Mgd2hpY2ggYXJlIG5vdAorICAgICMgZGVwZW5kZWQg YnkgYW5vdGhlciBEU08uCisgICAgaWYgdC5tYWluX3Byb2dyYW1fZGVmYXVsdF9kZXBzOgor ICAgICAgICBtYWluX2RlcHMgPSBub25fZGVwX3RndF9vYmpzCisgICAgICAgIGlmIG5vdCBt YWluX2RlcHM6CisgICAgICAgICAgICBwcmludCAoIkVycm9yOiBubyBvYmplY3RzIGZvciBk ZWZhdWx0IG1haW4gcHJvZ3JhbSB0byBwb2ludCAiCisgICAgICAgICAgICAgICAgICAgImRl cGVuZGVuY3kgdG8gKGFsbCBvYmplY3RzIHN0cm9uZ2x5IGNvbm5lY3RlZD8pIikKKyAgICAg ICAgICAgIGV4aXQgKC0xKQorICAgICAgICB0LmFkZF9kZXBzIChbIiMiXSwgbWFpbl9kZXBz KQorICAgICAgICAKKyAgICAjIFNvbWUgZGVidWcgb3V0cHV0CisgICAgaWYgY21kbGluZWFy Z3MuZGVidWdfb3V0cHV0OgorICAgICAgICBwcmludCAoIlRlc3RjYXNlOiAlcyIgJSAodC50 ZXN0X25hbWUpKQorICAgICAgICBwcmludCAoIkFsbCBvYmplY3RzOiAlcyIgJSAodC5vYmpz KSkKKyAgICAgICAgcHJpbnQgKCItLS0gU3RhdGljIGxpbmsgZGVwZW5kZW5jaWVzIC0tLSIp CisgICAgICAgIGZvciByIGluIHQuZGVwcy5pdGVtcygpOgorICAgICAgICAgICAgcHJpbnQg KCIlcyAtPiAlcyIgJSAoclswXSwgclsxXSkpCisgICAgICAgIHByaW50ICgiLS0tIE9iamVj dHMgd2hvc2UgZGVwZW5kZW5jaWVzIGFyZSB0byBiZSBwZXJtdXRhdGVkIC0tLSIpCisgICAg ICAgIGZvciByIGluIHQuZGVwX3Blcm11dGF0aW9ucy5pdGVtcygpOgorICAgICAgICAgICAg cHJpbnQgKCIlcyIgJSAoclswXSkpCisgICAgICAgIHByaW50ICgiLS0tIENhbGwgcmVmZXJl bmNlIGRlcGVuZGVuY2llcyAtLS0iKQorICAgICAgICBmb3IgciBpbiB0LmNhbGxyZWZzLml0 ZW1zKCk6CisgICAgICAgICAgICBwcmludCAoIiVzID0+ICVzIiAlIChyWzBdLCByWzFdKSkK KyAgICAgICAgcHJpbnQgKCItLS0gbWFpbiBwcm9ncmFtIC0tLSIpCisgICAgICAgIHByaW50 ICh0Lm1haW5fcHJvZ3JhbSkKKworICAgICMgTWFpbiB0ZXN0Y2FzZSBnZW5lcmF0aW9uIHJv dXRpbmUsIGRvZXMgTWFrZWZpbGUgZnJhZ21lbnQgZ2VuZXJhdGlvbiwKKyAgICAjIHRlc3Rj YXNlIHNvdXJjZSBnZW5lcmF0aW9uLCBhbmQgaWYgLS1idWlsZCBzcGVjaWZpZWQgYnVpbGRz IHRlc3RjYXNlLgorICAgIGRlZiBnZW5lcmF0ZV90ZXN0Y2FzZSAodGVzdF9kZXNjciwgdGVz dF9zdWZmaXgpOgorCisgICAgICAgIHRlc3RfbmFtZSA9IHRlc3RfZGVzY3IudGVzdF9uYW1l ICsgdGVzdF9zdWZmaXgKKworICAgICAgICAjIFByaW50IG91dCBuZWVkZWQgTWFrZWZpbGUg ZnJhZ21lbnRzIGZvciB1c2UgaW4gZ2xpYmMvZWxmL01ha2VmaWxlLgorICAgICAgICBtb2R1 bGVfbmFtZXMgPSAiIgorICAgICAgICBmb3IgbyBpbiB0ZXN0X2Rlc2NyLm9ianM6CisgICAg ICAgICAgICBtb2R1bGVfbmFtZXMgKz0gIiAiICsgdGVzdF9zdWJkaXIgKyAiLyIgKyB0ZXN0 X25hbWUgKyAiLSIgKyBvCisgICAgICAgIG1ha2VmaWxlLndyaXRlICgibW9kdWxlcy1uYW1l cyArPSVzXG4iICUgKG1vZHVsZV9uYW1lcykpCisKKyAgICAgICAgIyBEZXB0aC1maXJzdCB0 cmF2ZXJzYWwsIGV4ZWN1dGluZyBGTihPQkopIGluIHBvc3Qtb3JkZXIKKyAgICAgICAgZGVm IGRmcyAodCwgZm4pOgorICAgICAgICAgICAgZGVmIGRmc19yZWMgKG9iaiwgZm4sIG9ial92 aXNpdGVkKToKKyAgICAgICAgICAgICAgICBpZiBvYmogaW4gb2JqX3Zpc2l0ZWQ6CisgICAg ICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIG9ial92aXNpdGVkW29i al0gPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgb2JqIGluIHQuZGVwczoKKyAgICAgICAg ICAgICAgICAgICAgZm9yIGRlcCBpbiB0LmRlcHNbb2JqXToKKyAgICAgICAgICAgICAgICAg ICAgICAgIGRmc19yZWMgKGRlcCwgZm4sIG9ial92aXNpdGVkKQorICAgICAgICAgICAgICAg IGZuIChvYmopCisKKyAgICAgICAgICAgIG9ial92aXNpdGVkID0ge30KKyAgICAgICAgICAg IGZvciBvYmogaW4gdC5vYmpzOgorICAgICAgICAgICAgICAgIGRmc19yZWMgKG9iaiwgZm4s IG9ial92aXNpdGVkKQorCisgICAgICAgICMgR2VuZXJhdGUgbGluayBkZXBlbmRlbmNpZXMg Zm9yIGFsbCBEU09zLCBkb25lIGluIGEgREZTIGZhc2hpb24uIFVzdWFsbHkKKyAgICAgICAg IyB0aGlzIGRvZXNuJ3QgbmVlZCB0byBiZSB0aGlzIGNvbXBsZXgsIGp1c3QgbGlzdGluZyB0 aGUgZGlyZWN0IGRlcGVuZGVuY2llcworICAgICAgICAjIGlzIGVub3VnaC4gSG93ZXZlciB0 byBzdXBwb3J0IGNyZWF0aW5nIGNpcmN1bGFyIGRlcGVuZGVuY3kgc2l0dWF0aW9ucywKKyAg ICAgICAgIyB0cmF2ZXJzaW5nIGl0IGJ5IERGUyBhbmQgdHJhY2tpbmcgcHJvY2Vzc2luZyBz dGF0dXMgaXMgdGhlIG5hdHVyYWwgd2F5IHRvCisgICAgICAgICMgZG8gaXQuCisgICAgICAg IG9ial9wcm9jZXNzZWQgPSB7fQorICAgICAgICBmYWtlX2NyZWF0ZWQgPSB7fQorICAgICAg ICBkZWYgZ2VuX2xpbmtfZGVwcyAob2JqKToKKyAgICAgICAgICAgIGlmIG9iaiBpbiB0ZXN0 X2Rlc2NyLmRlcHM6CisgICAgICAgICAgICAgICAgZHNvID0gdGVzdF9zdWJkaXIgKyAiLyIg KyB0ZXN0X25hbWUgKyAiLSIgKyBvYmogKyAiLnNvIgorICAgICAgICAgICAgICAgIGRlcGVu ZGVuY2llcyA9ICIiCisgICAgICAgICAgICAgICAgZm9yIGRlcCBpbiB0ZXN0X2Rlc2NyLmRl cHNbb2JqXToKKyAgICAgICAgICAgICAgICAgICAgaWYgZGVwIGluIG9ial9wcm9jZXNzZWQ6 CisgICAgICAgICAgICAgICAgICAgICAgICBkZXBzdHIgPSAoIiAkKG9ianBmeCkiICsgdGVz dF9zdWJkaXIgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRl c3RfbmFtZSArICItIiArIGRlcCArICIuc28iKQorICAgICAgICAgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBBIGNpcmN1bGFyIGRlcGVuZGVuY3kgaXMg c2F0aXNmaWVkIGJ5IG1ha2luZyBhIGZha2UgRFNPCisgICAgICAgICAgICAgICAgICAgICAg ICAjIHRhZ2dlZCB3aXRoIHRoZSBjb3JyZWN0IFNPTkFNRQorICAgICAgICAgICAgICAgICAg ICAgICAgZGVwc3RyID0gKCIgJChvYmpwZngpIiArIHRlc3Rfc3ViZGlyICsgIi8iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAg KyAiLkZBS0Uuc28iKQorICAgICAgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgZW1wdHkg QyBmaWxlIGFuZCBNYWtlZmlsZSBmcmFnbWVudHMgZm9yIGZha2Ugb2JqZWN0LgorICAgICAg ICAgICAgICAgICAgICAgICAgIyBUaGlzIG9ubHkgbmVlZHMgdG8gYmUgZG9uZSBhdCBtb3N0 IG9uY2UgZm9yIGFuIG9iamVjdCBuYW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYg bm90IGRlcCBpbiBmYWtlX2NyZWF0ZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZiA9IG9wZW4gKHRlc3RwZnggKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLkZBS0UuYyIs ICJ3IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlICgiIFxuIikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmLmNsb3NlICgpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBHZW5lcmF0ZSBydWxlIHRvIGNyZWF0ZSBmYWtlIG9iamVjdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VmaWxlLndyaXRlICgiTERGTEFHUy0lcyA9 IC1XbCwtLW5vLWFzLW5lZWRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICItV2wsLXNvbmFtZT0lc1xuIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlICh0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLkZB S0Uuc28iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoIiQob2JqcGZ4KSIgKyB0ZXN0X3N1YmRpciArICIvIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAg KyAiLnNvIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VmaWxlLndyaXRl ICgibW9kdWxlcy1uYW1lcyArPSAlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAlICh0ZXN0X3N1YmRpciArICIvIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRlc3RfbmFtZSArICItIiArIGRl cCArICIuRkFLRSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZha2VfY3JlYXRl ZFtkZXBdID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMgKz0gZGVw c3RyCisgICAgICAgICAgICAgICAgbWFrZWZpbGUud3JpdGUgKCIkKG9ianBmeCklczolc1xu IiAlIChkc28sIGRlcGVuZGVuY2llcykpCisgICAgICAgICAgICAjIE1hcmsgb2JqIGFzIHBy b2Nlc3NlZAorICAgICAgICAgICAgb2JqX3Byb2Nlc3NlZFtvYmpdID0gVHJ1ZQorCisgICAg ICAgIGRmcyAodGVzdF9kZXNjciwgZ2VuX2xpbmtfZGVwcykKKworICAgICAgICAjIFByaW50 IExERkxBR1MtKiBhbmQgKi1uby16LWRlZnMKKyAgICAgICAgZm9yIG8gaW4gdGVzdF9kZXNj ci5vYmpzOgorICAgICAgICAgICAgZHNvID0gdGVzdF9uYW1lICsgIi0iICsgbyArICIuc28i CisgICAgICAgICAgICBtYWtlZmlsZS53cml0ZSAoIkxERkxBR1MtJXMgPSAtV2wsLS1uby1h cy1uZWVkZWRcbiIgJSAoZHNvKSkKKyAgICAgICAgICAgIGlmIG8gaW4gdGVzdF9kZXNjci5j YWxscmVmczoKKyAgICAgICAgICAgICAgICBtYWtlZmlsZS53cml0ZSAoIiVzLW5vLXotZGVm cyA9IHllc1xuIiAlIChkc28pKQorCisgICAgICAgICMgUHJpbnQgZGVwZW5kZW5jaWVzIGZv ciBtYWluIHRlc3QgcHJvZ3JhbQorICAgICAgICBkZXBzdHIgPSAiIgorICAgICAgICBpZiAn IycgaW4gdGVzdF9kZXNjci5kZXBzOgorICAgICAgICAgICAgZm9yIG8gaW4gdGVzdF9kZXNj ci5kZXBzWycjJ106CisgICAgICAgICAgICAgICAgZGVwc3RyICs9ICgiICQob2JqcGZ4KSIg KyB0ZXN0X3N1YmRpciArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXN0 X25hbWUgKyAiLSIgKyBvICsgIi5zbyIpCisgICAgICAgIGlmIHRlc3RfZGVzY3IubWFpbl9w cm9ncmFtX25lZWRzX2xkbDoKKyAgICAgICAgICAgIGRlcHN0ciArPSAiICQobGliZGwpIgor ICAgICAgICBtYWtlZmlsZS53cml0ZSAoIiQob2JqcGZ4KSVzLyVzOiVzXG4iICUgKHRlc3Rf c3ViZGlyLCB0ZXN0X25hbWUsIGRlcHN0cikpCisgICAgICAgIG1ha2VmaWxlLndyaXRlICgi TERGTEFHUy0lcyA9IC1XbCwtLW5vLWFzLW5lZWRlZFxuIiAlICh0ZXN0X25hbWUpKQorCisg ICAgICAgIG5vdF9kZXBlbmRlZF9vYmpzID0gZmluZF9vYmpzX25vdF9kZXBlbmRlZF9vbiAo dGVzdF9kZXNjcikKKyAgICAgICAgaWYgbm90X2RlcGVuZGVkX29ianM6CisgICAgICAgICAg ICBkZXBzdHIgPSAiIgorICAgICAgICAgICAgZm9yIGRlcCBpbiBub3RfZGVwZW5kZWRfb2Jq czoKKyAgICAgICAgICAgICAgICBkZXBzdHIgKz0gKCIgJChvYmpwZngpIiArIHRlc3Rfc3Vi ZGlyICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRlc3RfbmFtZSArICIt IiArIGRlcCArICIuc28iKQorICAgICAgICAgICAgbWFrZWZpbGUud3JpdGUgKCIkKG9ianBm eCklcy5vdXQ6JXNcbiIgJSAoYmFzZV90ZXN0X25hbWUsIGRlcHN0cikpCisKKyAgICAgICAg IyBBZGQgbWFpbiBleGVjdXRhYmxlIHRvIHRlc3Qtc3JjcworICAgICAgICBtYWtlZmlsZS53 cml0ZSAoInRlc3Qtc3JjcyArPSAlcy8lc1xuIiAlICh0ZXN0X3N1YmRpciwgdGVzdF9uYW1l KSkKKyAgICAgICAgIyBBZGQgZGVwZW5kZW5jeSBvbiBtYWluIGV4ZWN1dGFibGUgb2YgdGVz dAorICAgICAgICBtYWtlZmlsZS53cml0ZSAoIiQob2JqcGZ4KSVzLm91dDogJChvYmpwZngp JXMvJXNcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICUgKGJhc2VfdGVzdF9uYW1lLCB0 ZXN0X3N1YmRpciwgdGVzdF9uYW1lKSkKKworICAgICAgICBmb3IgciBpbiB0ZXN0X2Rlc2Ny LmV4cGVjdGVkX291dHB1dHMuaXRlbXMgKCk6CisgICAgICAgICAgICB0dW5hYmxlX2VudiA9 ICIiCisgICAgICAgICAgICB0dW5hYmxlX3NmeCA9ICIiCisgICAgICAgICAgICBpZiByWzBd ICE9ICIiOgorICAgICAgICAgICAgICAgIHR1bmFibGVfZW52ID0gIkdMSUJDX1RVTkFCTEVT PSVzICIgJSByWzBdCisgICAgICAgICAgICAgICAgdHVuYWJsZV9zZnggPSAiLSIgKyByWzBd LnJlcGxhY2UoIj0iLCJfIikKKyAgICAgICAgICAgICMgV3JpdGUgb3V0IGZyYWdtZW50IG9m IHNoZWxsIHNjcmlwdCBmb3IgdGhpcyBzaW5nbGUgdGVzdC4KKyAgICAgICAgICAgIHRlc3Rf ZGVzY3Iuc2gud3JpdGUgKCIlcyR7dGVzdF93cmFwcGVyX2Vudn0gJHtydW5fcHJvZ3JhbV9l bnZ9IFxcXG4iCisgICAgICAgICAgICAgICAgICAgICIke2NvbW1vbl9vYmpwZnh9ZWxmL2xk LnNvIFxcXG4iCisgICAgICAgICAgICAgICAgICAgICItLWxpYnJhcnktcGF0aCAke2NvbW1v bl9vYmpwZnh9ZWxmLyVzOlxcXG4iCisgICAgICAgICAgICAgICAgICAgICIke2NvbW1vbl9v YmpwZnh9ZWxmOiR7Y29tbW9uX29ianBmeH0uOiR7Y29tbW9uX29ianBmeH1kbGZjbiBcXFxu IgorICAgICAgICAgICAgICAgICAgICAiICAke2NvbW1vbl9vYmpwZnh9ZWxmLyVzLyVzID4g JHtjb21tb25fb2JqcGZ4fWVsZi8lcy8lcyVzLm91dHB1dFxuIgorICAgICAgICAgICAgICAg ICAgICAlICh0dW5hYmxlX2VudiAsdGVzdF9zdWJkaXIsCisgICAgICAgICAgICAgICAgICAg ICAgIHRlc3Rfc3ViZGlyLCB0ZXN0X25hbWUsIHRlc3Rfc3ViZGlyLCB0ZXN0X25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgIHR1bmFibGVfc2Z4KSkKKyAgICAgICAgICAgICMgR2Vu ZXJhdGUgYSBydW4gb2YgZWFjaCB0ZXN0IGFuZCBjb21wYXJlIHdpdGggZXhwZWN0ZWQgb3V0 CisgICAgICAgICAgICB0ZXN0X2Rlc2NyLnNoLndyaXRlICgiaWYgWyAkPyAtbmUgMCBdOyB0 aGVuXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBlY2hvICdGQUlM OiAlcyBleGVjdXRpb24gdGVzdCdcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgIHNvbWV0aGluZ19mYWlsZWQ9dHJ1ZVxuIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImZpXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi ZGlmZiAtd3UgJHtjb21tb25fb2JqcGZ4fWVsZi8lcy8lcyVzLm91dHB1dCBcXFxuIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICR7Y29tbW9uX29ianBm eH1lbGYvJXMvJXMlcy5leHBcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJpZiBbICQ/IC1uZSAwIF07IHRoZW5cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgIGVjaG8gJ0ZBSUw6ICVzJXMgZXhwZWN0ZWQgb3V0cHV0IGNvbXBhcmlzb24n XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBzb21ldGhpbmdfZmFp bGVkPXRydWVcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaVxuIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAodGVzdF9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWJkaXIsIHRlc3RfbmFtZSwg dHVuYWJsZV9zZngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X3N1YmRpciwgYmFzZV90ZXN0X25hbWUsIHR1bmFibGVfc2Z4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lLCAoIiglcykiICUgdHVuYWJsZV9lbnYu c3RyaXAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgdHVuYWJsZV9lbnYgZWxzZSAiIikpKQorCisgICAgICAgICMgR2VuZXJhdGUgQyBm aWxlcyBhY2NvcmRpbmcgdG8gZGVwZW5kZW5jeSBhbmQgY2FsbGluZyByZWxhdGlvbnMgZnJv bQorICAgICAgICAjIGRlc2NyaXB0aW9uIHN0cmluZy4KKyAgICAgICAgZm9yIG9iaiBpbiB0 ZXN0X2Rlc2NyLm9ianM6CisgICAgICAgICAgICBzcmNfbmFtZSA9IHRlc3RfbmFtZSArICIt IiArIG9iaiArICIuYyIKKyAgICAgICAgICAgIGYgPSBvcGVuICh0ZXN0cGZ4ICsgc3JjX25h bWUsICJ3IikKKyAgICAgICAgICAgIGlmIG9iaiBpbiB0ZXN0X2Rlc2NyLmNhbGxyZWZzOgor ICAgICAgICAgICAgICAgIGNhbGxlZF9vYmpzID0gdGVzdF9kZXNjci5jYWxscmVmc1tvYmpd CisgICAgICAgICAgICAgICAgZm9yIGNhbGxlZSBpbiBjYWxsZWRfb2JqczoKKyAgICAgICAg ICAgICAgICAgICAgZi53cml0ZSAoImV4dGVybiB2b2lkIGZuXyVzICh2b2lkKTtcbiIgJSAo Y2FsbGVlKSkKKyAgICAgICAgICAgIGlmIGxlbihvYmopID09IDE6CisgICAgICAgICAgICAg ICAgZi53cml0ZSAoImV4dGVybiBpbnQgcHV0Y2hhcihpbnQpO1xuIikKKyAgICAgICAgICAg ICAgICBmLndyaXRlICgic3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3Ip KSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdCh2b2lkKXtwdXRjaGFyKCcl cycpO3B1dGNoYXIoJz4nKTt9XG4iICUgKG9iaikpCisgICAgICAgICAgICAgICAgZi53cml0 ZSAoInN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKSAiICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAiZmluaSh2b2lkKXtwdXRjaGFyKCc8Jyk7cHV0Y2hhcign JXMnKTt9XG4iICUgKG9iaikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IGYud3JpdGUgKCdleHRlcm4gaW50IHByaW50Zihjb25zdCBjaGFyICosIC4uLik7XG4nKQor ICAgICAgICAgICAgICAgIGYud3JpdGUgKCdzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChj b25zdHJ1Y3RvcikpICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICdpbml0KHZvaWQp e3ByaW50ZigiJXM+Iik7fVxuJyAlIChvYmopKQorICAgICAgICAgICAgICAgIGYud3JpdGUg KCdzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChkZXN0cnVjdG9yKSkgJyArCisgICAgICAg ICAgICAgICAgICAgICAgICAgJ2Zpbmkodm9pZCl7cHJpbnRmKCI8JXMiKTt9XG4nICUgKG9i aikpCisgICAgICAgICAgICBpZiBvYmogaW4gdGVzdF9kZXNjci5jYWxscmVmczoKKyAgICAg ICAgICAgICAgICBjYWxsZWRfb2JqcyA9IHRlc3RfZGVzY3IuY2FsbHJlZnNbb2JqXQorICAg ICAgICAgICAgICAgIGlmIGxlbiAob2JqKSAhPSAxOgorICAgICAgICAgICAgICAgICAgICBm LndyaXRlICgiZXh0ZXJuIGludCBwdXRjaGFyKGludCk7XG4iKQorICAgICAgICAgICAgICAg IGYud3JpdGUgKCJ2b2lkIGZuXyVzICh2b2lkKSB7XG4iICUgKG9iaikpCisgICAgICAgICAg ICAgICAgaWYgbGVuIChvYmopID09IDE6CisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUg KCIgIHB1dGNoYXIgKCclcycpO1xuIiAlIChvYmopKTsKKyAgICAgICAgICAgICAgICAgICAg Zi53cml0ZSAoIiAgcHV0Y2hhciAoJygnKTtcbiIpOworICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUgKCcgIHByaW50ZiAoIiVzKCIpO1xuJyAl IChvYmopKTsKKyAgICAgICAgICAgICAgICBmb3IgY2FsbGVlIGluIGNhbGxlZF9vYmpzOgor ICAgICAgICAgICAgICAgICAgICBmLndyaXRlICgiICBmbl8lcyAoKTtcbiIgJSAoY2FsbGVl KSkKKyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyICgnKScpO1xuIik7Cisg ICAgICAgICAgICAgICAgZi53cml0ZSAoIn1cbiIpCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIGZvciBjYWxscmVmIGluIHRlc3RfZGVzY3IuY2FsbHJlZnMuaXRlbXMo KToKKyAgICAgICAgICAgICAgICAgICAgaWYgb2JqIGluIGNhbGxyZWZbMV06CisgICAgICAg ICAgICAgICAgICAgICAgICBpZiBsZW4gKG9iaikgPT0gMToKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIFdlIG5lZWQgdG8gZGVjbGFyZSBwcmludGYgaGVyZSBpbiB0aGlzIGNh c2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoJ2V4dGVybiBpbnQg cHJpbnRmKGNvbnN0IGNoYXIgKiwgLi4uKTtcbicpCisgICAgICAgICAgICAgICAgICAgICAg ICBmLndyaXRlICgidm9pZCBmbl8lcyAodm9pZCkge1xuIiAlIChvYmopKQorICAgICAgICAg ICAgICAgICAgICAgICAgZi53cml0ZSAoJyAgcHJpbnRmICgiJXMoKSIpO1xuJyAlIChvYmop KQorICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZSAoIn1cbiIpCisgICAgICAgICAg ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZi5jbG9zZSAoKQorCisgICAgICAg ICMgT3BlbiBDIGZpbGUgZm9yIHdyaXRpbmcgbWFpbiBwcm9ncmFtCisgICAgICAgIGYgPSBv cGVuICh0ZXN0cGZ4ICsgdGVzdF9uYW1lICsgIi5jIiwgInciKQorCisgICAgICAgICMgaWYg dGhlcmUgYXJlIHNvbWUgb3BlcmF0aW9ucyBpbiBtYWluKCksIGl0IG1lYW5zIHdlIG5lZWQg LWxkbAorICAgICAgICBpZiB0ZXN0X2Rlc2NyLm1haW5fcHJvZ3JhbV9uZWVkc19sZGw6Cisg ICAgICAgICAgICBmLndyaXRlICgiI2luY2x1ZGUgPGRsZmNuLmg+XG4iKQorICAgICAgICBm LndyaXRlICgiI2luY2x1ZGUgPHN0ZGlvLmg+XG4iKQorICAgICAgICBmLndyaXRlICgiI2lu Y2x1ZGUgPHN0ZGxpYi5oPlxuIikKKyAgICAgICAgZm9yIHMgaW4gdGVzdF9kZXNjci5tYWlu X3Byb2dyYW06CisgICAgICAgICAgICBpZiBzWzBdID09ICdAJzoKKyAgICAgICAgICAgICAg ICBmLndyaXRlICgiZXh0ZXJuIHZvaWQgZm5fJXMgKHZvaWQpO1xuIiwgc1sxXSk7CisgICAg ICAgIGYud3JpdGUgKCJpbnQgbWFpbiAodm9pZCkge1xuIikKKyAgICAgICAgZi53cml0ZSAo IiAgcHV0Y2hhcigneycpO1xuIikKKworICAgICAgICAjIEhlbHBlciByb3V0aW5lIGZvciBn ZW5lcmF0aW5nIHNhbml0eSBjaGVja2luZyBjb2RlLgorICAgICAgICBkZWYgcHV0X2ZhaWxf Y2hlY2sgKGZhaWxfY29uZCwgYWN0aW9uX2Rlc2MpOgorICAgICAgICAgICAgZi53cml0ZSAo JyAgaWYgKCVzKSB7IHByaW50ZiAoIlxcbiVzIGZhaWxlZDogJSVzXFxuIiwgJworICAgICAg ICAgICAgICAgICAgICAgJ2RsZXJyb3IgKCkpOyBleGl0ICgxKTt9XG4nICUgKGZhaWxfY29u ZCwgYWN0aW9uX2Rlc2MpKQorICAgICAgICBpID0gMAorICAgICAgICB3aGlsZSBpIDwgbGVu KHRlc3RfZGVzY3IubWFpbl9wcm9ncmFtKToKKyAgICAgICAgICAgIHMgPSB0ZXN0X2Rlc2Ny Lm1haW5fcHJvZ3JhbVtpXQorICAgICAgICAgICAgb2JqID0gc1tsZW4ocyktMV0KKyAgICAg ICAgICAgIGRzbyA9IHRlc3RfbmFtZSArICItIiArIG9iagorICAgICAgICAgICAgaWYgc1sw XSA9PSAnKycgb3Igc1swXSA9PSAnXic6CisgICAgICAgICAgICAgICAgaWYgc1swXSA9PSAn Kyc6CisgICAgICAgICAgICAgICAgICAgIGRsb3Blbl9mbGFncyA9ICJSVExEX0xBWll8UlRM RF9HTE9CQUwiCisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJysn KTtcbiIpOworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRs b3Blbl9mbGFncyA9ICJSVExEX0xBWlkiCisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUg KCIgIHB1dGNoYXIoJzonKTtcbiIpOworICAgICAgICAgICAgICAgIGlmIGxlbiAob2JqKSA9 PSAxOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCclcycpO1xu IiAlIChvYmopKTsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg ICBmLndyaXRlICgnICBwcmludGYoIiVzIik7XG4nICUgKG9iaikpOworICAgICAgICAgICAg ICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJ1snKTtcbiIpOworICAgICAgICAgICAgICAgIGYu d3JpdGUgKCcgIHZvaWQgKiVzID0gZGxvcGVuICgiJXMuc28iLCAlcyk7XG4nCisgICAgICAg ICAgICAgICAgICAgICAgICAgJSAob2JqLCBkc28sIGRsb3Blbl9mbGFncykpCisgICAgICAg ICAgICAgICAgcHV0X2ZhaWxfY2hlY2sgKCIhJXMiICUgKG9iaiksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIlcy5zbyBkbG9wZW4iICUgKGRzbykpCisgICAgICAgICAg ICAgICAgZi53cml0ZSAoIiAgcHV0Y2hhcignXScpO1xuIik7CisgICAgICAgICAgICBlbGlm IHNbMF0gPT0gJy0nOgorICAgICAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJy0n KTtcbiIpOworICAgICAgICAgICAgICAgIGlmIGxlbiAob2JqKSA9PSAxOgorICAgICAgICAg ICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCclcycpO1xuIiAlIChvYmopKTsKKyAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlICgnICBw cmludGYoIiVzIik7XG4nICUgKG9iaikpOworICAgICAgICAgICAgICAgIGYud3JpdGUgKCIg IHB1dGNoYXIoJ1snKTtcbiIpOworICAgICAgICAgICAgICAgIHB1dF9mYWlsX2NoZWNrICgi ZGxjbG9zZSAoJXMpICE9IDAiICUgKG9iaiksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIlcy5zbyBkbGNsb3NlIiAlIChkc28pKQorICAgICAgICAgICAgICAgIGYud3Jp dGUgKCIgIHB1dGNoYXIoJ10nKTtcbiIpOworICAgICAgICAgICAgZWxpZiBzWzBdID09ICcl JzoKKyAgICAgICAgICAgICAgICBmLndyaXRlICgiICBwdXRjaGFyKCclJyk7XG4iKTsKKyAg ICAgICAgICAgICAgICBmLndyaXRlICgnICB2b2lkICgqZm5fJXMpKHZvaWQpID0gZGxzeW0g KCVzLCAiZm5fJXMiKTtcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAlIChvYmosIG9i aiwgb2JqKSkKKyAgICAgICAgICAgICAgICBwdXRfZmFpbF9jaGVjayAoIiFmbl8lcyIgJSAo b2JqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRsc3ltKGZuXyVzKSBm cm9tICVzLnNvIiAlIChvYmosIGRzbykpCisgICAgICAgICAgICAgICAgZi53cml0ZSAoIiAg Zm5fJXMgKCk7XG4iICUgKG9iaikpCisgICAgICAgICAgICBlbGlmIHNbMF0gPT0gJ0AnOgor ICAgICAgICAgICAgICAgIGYud3JpdGUgKCIgIHB1dGNoYXIoJ0AnKTtcbiIpOworICAgICAg ICAgICAgICAgIGYud3JpdGUgKCIgIGZuXyVzICgpO1xuIiAlIChvYmopKQorICAgICAgICAg ICAgZi53cml0ZSAoIiAgcHV0Y2hhcignOycpO1xuIik7CisgICAgICAgICAgICBpICs9IDEK KyAgICAgICAgZi53cml0ZSAoIiAgcHV0Y2hhcignfScpO1xuIikKKyAgICAgICAgZi53cml0 ZSAoIiAgcmV0dXJuIDA7XG4iKQorICAgICAgICBmLndyaXRlICgifVxuIikKKyAgICAgICAg Zi5jbG9zZSAoKQorCisgICAgICAgICMgLS1idWlsZCBvcHRpb24gcHJvY2Vzc2luZzogYnVp bGQgZ2VuZXJhdGVkIHNvdXJjZXMgdXNpbmcgJ2J1aWxkX2djYycKKyAgICAgICAgaWYgY21k bGluZWFyZ3MuYnVpbGQ6CisgICAgICAgICAgICAjIEhlbHBlciByb3V0aW5lIHRvIHJ1biBh IHNoZWxsIGNvbW1hbmQsIGZvciBydW5uaW5nIEdDQyBiZWxvdworICAgICAgICAgICAgZGVm IHJ1bl9jbWQgKGFyZ3MpOgorICAgICAgICAgICAgICAgIGNtZCA9IHN0ci5qb2luICgnICcs IGFyZ3MpCisgICAgICAgICAgICAgICAgaWYgY21kbGluZWFyZ3MuZGVidWdfb3V0cHV0Ogor ICAgICAgICAgICAgICAgICAgICBwcmludCAoY21kKQorICAgICAgICAgICAgICAgIHAgPSBz dWJwcm9jZXNzLlBvcGVuIChhcmdzKQorICAgICAgICAgICAgICAgIHAud2FpdCAoKQorICAg ICAgICAgICAgICAgIGlmIHAucmV0dXJuY29kZSAhPSAwOgorICAgICAgICAgICAgICAgICAg ICBwcmludCAoIkVycm9yIHJ1bm5pbmc6ICVzIiAlIChjbWQpKQorICAgICAgICAgICAgICAg ICAgICBleGl0ICgtMSkKKworICAgICAgICAgICAgIyBDb21waWxlIGluZGl2aWR1YWwgLm9z IGZpbGVzCisgICAgICAgICAgICBmb3Igb2JqIGluIHRlc3RfZGVzY3Iub2JqczoKKyAgICAg ICAgICAgICAgICBzcmNfbmFtZSA9IHRlc3RfbmFtZSArICItIiArIG9iaiArICIuYyIKKyAg ICAgICAgICAgICAgICBvYmpfbmFtZSA9IHRlc3RfbmFtZSArICItIiArIG9iaiArICIub3Mi CisgICAgICAgICAgICAgICAgcnVuX2NtZCAoW2J1aWxkX2djYywgIi1jIiwgIi1mUElDIiwg dGVzdHBmeCArIHNyY19uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iLCB0 ZXN0cGZ4ICsgb2JqX25hbWVdKQorCisgICAgICAgICAgICBvYmpfcHJvY2Vzc2VkID0ge30K KyAgICAgICAgICAgIGZha2VfY3JlYXRlZCA9IHt9CisgICAgICAgICAgICAjIEZ1bmN0aW9u IHRvIGNyZWF0ZSA8dGVzdF9uYW1lPi08b2JqPi5zbworICAgICAgICAgICAgZGVmIGJ1aWxk X2RzbyAob2JqKToKKyAgICAgICAgICAgICAgICBvYmpfbmFtZSA9IHRlc3RfbmFtZSArICIt IiArIG9iaiArICIub3MiCisgICAgICAgICAgICAgICAgZHNvX25hbWUgPSB0ZXN0X25hbWUg KyAiLSIgKyBvYmogKyAiLnNvIgorICAgICAgICAgICAgICAgIGRlcHMgPSBbXQorICAgICAg ICAgICAgICAgIGlmIG9iaiBpbiB0ZXN0X2Rlc2NyLmRlcHM6CisgICAgICAgICAgICAgICAg ICAgIGZvciBkZXAgaW4gdGVzdF9kZXNjci5kZXBzW29ial06CisgICAgICAgICAgICAgICAg ICAgICAgICBpZiBkZXAgaW4gb2JqX3Byb2Nlc3NlZDoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZXBzLmFwcGVuZCAoZGVwKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzLmFwcGVuZCAoZGVwICsgIi5G QUtFIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZGVwIGluIGZha2Vf Y3JlYXRlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kID0gW2J1aWxk X2djYywgIi1XbCwtLW5vLWFzLW5lZWRlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoIi1XbCwtc29uYW1lPSIgKyB0ZXN0cGZ4CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAi LnNvIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXNoYXJl ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cGZ4ICsg dGVzdF9uYW1lICsgIi0iICsgZGVwICsgIi5GQUtFLmMiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIi1vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RwZnggKyB0ZXN0X25hbWUgKyAiLSIgKyBkZXAgKyAiLkZBS0Uu c28iXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5fY21kIChjbWQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZha2VfY3JlYXRlZFtkZXBdID0gVHJ1 ZQorICAgICAgICAgICAgICAgIGRzb19kZXBzID0gbWFwIChsYW1iZGEgZDogdGVzdHBmeCAr IHRlc3RfbmFtZSArICItIiArIGQgKyAiLnNvIiwgZGVwcykKKyAgICAgICAgICAgICAgICBj bWQgPSAoW2J1aWxkX2djYywgIi1zaGFyZWQiLCAiLW8iLCB0ZXN0cGZ4ICsgZHNvX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cGZ4ICsgb2JqX25hbWUsICItV2wsLS1u by1hcy1uZWVkZWQiXSArIGxpc3QoZHNvX2RlcHMpKQorICAgICAgICAgICAgICAgIHJ1bl9j bWQgKGNtZCkKKyAgICAgICAgICAgICAgICBvYmpfcHJvY2Vzc2VkW29ial0gPSBUcnVlCisK KyAgICAgICAgICAgICMgQnVpbGQgYWxsIERTT3MsIHRoaXMgbmVlZHMgdG8gYmUgaW4gdG9w b2xvZ2ljYWwgZGVwZW5kZW5jeSBvcmRlciwKKyAgICAgICAgICAgICMgb3IgbGluayB3aWxs IGZhaWwKKyAgICAgICAgICAgIGRmcyAodGVzdF9kZXNjciwgYnVpbGRfZHNvKQorCisgICAg ICAgICAgICAjIEJ1aWxkIG1haW4gcHJvZ3JhbQorICAgICAgICAgICAgZGVwcyA9IFtdCisg ICAgICAgICAgICBpZiAnIycgaW4gdGVzdF9kZXNjci5kZXBzOgorICAgICAgICAgICAgICAg IGRlcHMgPSB0ZXN0X2Rlc2NyLmRlcHNbJyMnXQorICAgICAgICAgICAgbWFpbl9kZXBzID0g bWFwIChsYW1iZGEgZDogdGVzdHBmeCArIHRlc3RfbmFtZSArICItIiArIGQgKyAiLnNvIiwg ZGVwcykKKyAgICAgICAgICAgIGNtZCA9IChbYnVpbGRfZ2NjLCAiLVdsLC0tbm8tYXMtbmVl ZGVkIiwgIi1vIiwgdGVzdHBmeCArIHRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg dGVzdHBmeCArIHRlc3RfbmFtZSArICIuYyIsICItTCVzIiAlIChvcy5nZXRjd2QgKCkpLAor ICAgICAgICAgICAgICAgICAgICAiLVdsLC1ycGF0aC1saW5rPSVzIiAlIChvcy5nZXRjd2Qg KCkpXQorICAgICAgICAgICAgICAgICAgICsgbGlzdCAobWFpbl9kZXBzKSkKKyAgICAgICAg ICAgIGlmIHRlc3RfZGVzY3IubWFpbl9wcm9ncmFtX25lZWRzX2xkbDoKKyAgICAgICAgICAg ICAgICBjbWQgKz0gWyItbGRsIl0KKyAgICAgICAgICAgIHJ1bl9jbWQgKGNtZCkKKworICAg ICMgQ2hlY2sgaWYgd2UgbmVlZCB0byBlbnVtZXJhdGUgcGVybXV0YXRpb25zIG9mIGRlcGVu ZGVuY2llcworICAgIG5lZWRfcGVybXV0YXRpb25fcHJvY2Vzc2luZyA9IEZhbHNlICAgICAg IAorICAgIGlmIHQuZGVwX3Blcm11dGF0aW9uczoKKyAgICAgICAgIyBBZGp1c3QgZGVwX3Bl cm11dGF0aW9ucyBpbnRvIG1hcCBvZiBvYmplY3QgLT4gZGVwZW5kZW5jeSBwZXJtdXRhdGlv bnMKKyAgICAgICAgZm9yIHIgaW4gdC5kZXBfcGVybXV0YXRpb25zLml0ZW1zKCk6CisgICAg ICAgICAgICBvYmogPSByWzBdCisgICAgICAgICAgICBpZiBvYmogaW4gdC5kZXBzIGFuZCBs ZW4odC5kZXBzW29ial0pID4gMToKKyAgICAgICAgICAgICAgICBkZXBzID0gdC5kZXBzW29i al0KKyAgICAgICAgICAgICAgICB0LmRlcF9wZXJtdXRhdGlvbnNbb2JqXSA9IGxpc3QgKGl0 ZXJ0b29scy5wZXJtdXRhdGlvbnMgKGRlcHMpKQorICAgICAgICAgICAgICAgIG5lZWRfcGVy bXV0YXRpb25fcHJvY2Vzc2luZyA9IFRydWUKKworICAgIGRlZiBlbnVtX3Blcm11dGF0aW9u cyAodCwgcGVybV9saXN0KToKKyAgICAgICAgdGVzdF9zdWJpbmRleCA9IDEKKyAgICAgICAg Y3Vycl9wZXJtcyA9IFtdCisgICAgICAgIGRlZiBlbnVtX3Blcm11dGF0aW9uc19yZWMgKHQs IHBlcm1fbGlzdCk6CisgICAgICAgICAgICBub25sb2NhbCB0ZXN0X3N1YmluZGV4LCBjdXJy X3Blcm1zCisgICAgICAgICAgICBpZiBsZW4ocGVybV9saXN0KSA+PSAxOgorICAgICAgICAg ICAgICAgIGN1cnIgPSBwZXJtX2xpc3RbMF0KKyAgICAgICAgICAgICAgICBvYmogPSBjdXJy WzBdCisgICAgICAgICAgICAgICAgcGVybXMgPSBjdXJyWzFdCisgICAgICAgICAgICAgICAg aWYgbm90IHBlcm1zOgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF5IGJlIGFuIGVt cHR5IGxpc3QgaWYgbm8gbXVsdGlwbGUgZGVwZW5kZW5jaWVzIHRvCisgICAgICAgICAgICAg ICAgICAgICMgcGVybXV0ZSB3ZXJlIGZvdW5kLCBza2lwIHRvIG5leHQgaW4gdGhpcyBjYXNl CisgICAgICAgICAgICAgICAgICAgIGVudW1fcGVybXV0YXRpb25zX3JlYyAodCwgcGVybV9s aXN0WzE6XSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBm b3IgZGVwcyBpbiBwZXJtczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHQuZGVwc1tvYmpd ID0gZGVwcworICAgICAgICAgICAgICAgICAgICAgICAgcGVybXN0ciA9ICIiIGlmIG9iaiA9 PSAiIyIgZWxzZSBvYmogKyAiXyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1zdHIg Kz0gc3RyLmpvaW4gKCcnLCBkZXBzKQorICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9w ZXJtcy5hcHBlbmQgKHBlcm1zdHIpIAorICAgICAgICAgICAgICAgICAgICAgICAgZW51bV9w ZXJtdXRhdGlvbnNfcmVjICh0LCBwZXJtX2xpc3RbMTpdKQorICAgICAgICAgICAgICAgICAg ICAgICAgY3Vycl9wZXJtcyA9IGN1cnJfcGVybXNbMDpsZW4oY3Vycl9wZXJtcyktMV0KKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyB0LmRlcHMgaXMgbm93IGluc3Rh bnRpYXRlZCB3aXRoIG9uZSBkZXBlbmRlbmN5IG9yZGVyCisgICAgICAgICAgICAgICAgIyBw ZXJtdXRhdGlvbiAoYWNyb3NzIGFsbCBvYmplY3RzIHRoYXQgaGF2ZSBtdWx0aXBsZQorICAg ICAgICAgICAgICAgICMgcGVybXV0YXRpb25zKSwgbm93IHByb2Nlc3MgYSB0ZXN0Y2FzZQor ICAgICAgICAgICAgICAgIGdlbmVyYXRlX3Rlc3RjYXNlICh0LCAoIl8iICsgc3RyICh0ZXN0 X3N1YmluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAi LSIgKyBzdHIuam9pbiAoJy0nLCBjdXJyX3Blcm1zKSkpCisgICAgICAgICAgICAgICAgdGVz dF9zdWJpbmRleCArPSAxCisgICAgICAgIGVudW1fcGVybXV0YXRpb25zX3JlYyAodCwgcGVy bV9saXN0KQorCisgICAgIyBDcmVhdGUgKi5leHAgZmlsZXMgd2l0aCBleHBlY3RlZCBvdXRw dXRzCisgICAgZm9yIHIgaW4gdC5leHBlY3RlZF9vdXRwdXRzLml0ZW1zICgpOgorICAgICAg ICBzZnggPSAiIgorICAgICAgICBpZiByWzBdICE9ICIiOgorICAgICAgICAgICAgc2Z4ID0g Ii0iICsgclswXS5yZXBsYWNlKCI9IiwiXyIpCisgICAgICAgIGYgPSBvcGVuICh0ZXN0cGZ4 ICsgdC50ZXN0X25hbWUgKyBzZnggKyAiLmV4cCIsICJ3IikKKyAgICAgICAgZi53cml0ZSAo JyVzJyAlIHJbMV0pCisgICAgICAgIGYuY2xvc2UgKCkKKworICAgICMgQ3JlYXRlIGhlYWRl ciBwYXJ0IG9mIHRvcC1sZXZlbCB0ZXN0Y2FzZSBzaGVsbCBzY3JpcHQsIHRvIHdyYXAgZXhl Y3V0aW9uCisgICAgIyBhbmQgb3V0cHV0IGNvbXBhcmlzb24gdG9nZXRoZXIuCisgICAgdC5z aCA9IG9wZW4gKHRlc3RwZnggKyB0LnRlc3RfbmFtZSArICIuc2giLCAidyIpCisgICAgdC5z aC53cml0ZSAoIiMhL2Jpbi9zaFxuIikKKyAgICB0LnNoLndyaXRlICgiIyBUZXN0IGRyaXZl ciBmb3IgJXMsIGdlbmVyYXRlZCBieSAiCisgICAgICAgICAgICAgICAgImRzby1vcmRlcmlu Zy10ZXN0LnB5XG4iICUgKHQudGVzdF9uYW1lKSkKKyAgICB0LnNoLndyaXRlICgiY29tbW9u X29ianBmeD0kMVxuIikKKyAgICB0LnNoLndyaXRlICgidGVzdF93cmFwcGVyX2Vudj0kMlxu IikKKyAgICB0LnNoLndyaXRlICgicnVuX3Byb2dyYW1fZW52PSQzXG4iKQorICAgIHQuc2gu d3JpdGUgKCJzb21ldGhpbmdfZmFpbGVkPWZhbHNlXG4iKQorCisgICAgIyBTdGFydGluZyBw YXJ0IG9mIE1ha2VmaWxlIGZyYWdtZW50CisgICAgbWFrZWZpbGUud3JpdGUgKCJpZmVxICh5 ZXMsJChidWlsZC1zaGFyZWQpKVxuIikKKworICAgIGlmIG5lZWRfcGVybXV0YXRpb25fcHJv Y2Vzc2luZzoKKyAgICAgICAgZW51bV9wZXJtdXRhdGlvbnMgKHQsIGxpc3QgKHQuZGVwX3Bl cm11dGF0aW9ucy5pdGVtcygpKSkKKyAgICBlbHNlOgorICAgICAgICAjIFdlIGhhdmUgbm8g cGVybXV0YXRpb25zIHRvIGVudW1lcmF0ZSwganVzdCBwcm9jZXNzIHRlc3RjYXNlIG5vcm1h bGx5CisgICAgICAgIGdlbmVyYXRlX3Rlc3RjYXNlICh0LCAiIikKKworICAgICMgT3V0cHV0 IGVuZCBwYXJ0IG9mIE1ha2VmaWxlIGZyYWdtZW50CisgICAgZXhwZWN0ZWRfb3V0cHV0X2Zp bGVzID0gIiIKKyAgICBmb3IgciBpbiB0LmV4cGVjdGVkX291dHB1dHMuaXRlbXMgKCk6Cisg ICAgICAgIHNmeCA9ICIiCisgICAgICAgIGlmIHJbMF0gIT0gIiI6CisgICAgICAgICAgICBz ZnggPSAiLSIgKyByWzBdLnJlcGxhY2UoIj0iLCJfIikKKyAgICAgICAgZXhwZWN0ZWRfb3V0 cHV0X2ZpbGVzICs9ICIgJChvYmpwZngpJXMvJXMlcy5leHAiICUgKHRlc3Rfc3ViZGlyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdC50ZXN0X25hbWUsIHNmeCkKKyAgICBtYWtlZmlsZS53cml0ZSAoIiQob2JqcGZ4 KSVzLm91dDogJChvYmpwZngpJXMvJXMuc2glc1xuIgorICAgICAgICAgICAgICAgICAgICAl ICh0LnRlc3RfbmFtZSwgdGVzdF9zdWJkaXIsIHQudGVzdF9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICBleHBlY3RlZF9vdXRwdXRfZmlsZXMpKQorICAgIG1ha2VmaWxlLndyaXRl ICgiXHQkKFNIRUxMKSAkPCAkKGNvbW1vbi1vYmpwZngpICckKHRlc3Qtd3JhcHBlci1lbnYp JyAiCisgICAgICAgICAgICAgICAgICAgICInJChydW4tcHJvZ3JhbS1lbnYpJyA+ICRAOyAk KGV2YWx1YXRlLXRlc3QpXG4iKQorICAgIG1ha2VmaWxlLndyaXRlICgiaWZlcSAoJChydW4t YnVpbHQtdGVzdHMpLHllcylcbiIpCisgICAgbWFrZWZpbGUud3JpdGUgKCJ0ZXN0cy1zcGVj aWFsICs9ICQob2JqcGZ4KSVzLm91dFxuIiAlICh0LnRlc3RfbmFtZSkpCisgICAgbWFrZWZp bGUud3JpdGUgKCJlbmRpZlxuIikKKyAgICBtYWtlZmlsZS53cml0ZSAoImVuZGlmXG4iKQor CisgICAgIyBXcml0ZSBlbmRpbmcgcGFydCBvZiBzaGVsbCBzY3JpcHQgZ2VuZXJhdGlvbgor ICAgIHQuc2gud3JpdGUgKCJpZiAkc29tZXRoaW5nX2ZhaWxlZDsgdGhlblxuIgorICAgICAg ICAgICAgICAgICIgIGV4aXQgMVxuIgorICAgICAgICAgICAgICAgICJlbHNlXG4iCisgICAg ICAgICAgICAgICAgIiAgZWNobyAnUEFTUzogYWxsIHRlc3RzIGZvciAlcyBzdWNjZWVkZWQn XG4iCisgICAgICAgICAgICAgICAgIiAgZXhpdCAwXG4iCisgICAgICAgICAgICAgICAgImZp XG4iICUgKHQudGVzdF9uYW1lKSkKKyAgICB0LnNoLmNsb3NlICgpCisKKyMgRGVjcmlwdGlv biBmaWxlIHBhcnNpbmcKK2RlZiBwYXJzZV9kZXNjcmlwdGlvbl9maWxlIChmaWxlbmFtZSk6 CisgICAgZiA9IG9wZW4gKGZpbGVuYW1lKQorICAgIGlmIG5vdCBmOgorICAgICAgICBwcmlu dCAoIkVycm9yOiBjYW5ub3Qgb3BlbiBkZXNjcmlwdGlvbiBmaWxlICVzIiAlIChmaWxlbmFt ZSkpCisgICAgICAgIGV4aXQgKC0xKQorICAgIGRlc2NyZmlsZV9saW5lcyA9IGYucmVhZGxp bmVzICgpCisgICAgdCA9IE5vbmUKKyAgICBmb3IgbGluZSBpbiBkZXNjcmZpbGVfbGluZXM6 CisgICAgICAgIHAgPSByZS5jb21waWxlIChyIiMuKiQiKQorICAgICAgICBsaW5lID0gcC5z dWIgKCIiLCBsaW5lKSAjIEZpbHRlciBvdXQgY29tbWVudHMKKyAgICAgICAgbGluZSA9IGxp bmUuc3RyaXAgKCkgIyBSZW1vdmUgZXhjZXNzIHdoaXRlc3BhY2UKKyAgICAgICAgbSA9IHJl Lm1hdGNoIChyIl4oW146XSspOlxzKiguKikkIiwgbGluZSkKKyAgICAgICAgaWYgbToKKyAg ICAgICAgICAgIG8gPSByZS5tYXRjaCAociJeb3V0cHV0KC4qKSQiLCBtLmdyb3VwICgxKSkK KyAgICAgICAgICAgIGlmIG86CisgICAgICAgICAgICAgICAgaWYgbm90IHQ6CisgICAgICAg ICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG91dHB1dCBzcGVjaWZpY2F0aW9uIHdpdGhv dXQgdGVzdGNhc2UgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u IikKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAoLTEpCisgICAgICAgICAgICAgICAgdHNz dHIgPSAiIgorICAgICAgICAgICAgICAgIGlmIG8uZ3JvdXAoMSk6CisgICAgICAgICAgICAg ICAgICAgIHRzID0gcmUubWF0Y2ggKHIiXlwoKFthLXpBLVowLTlfLj1dKilcKSQiLCBvLmdy b3VwICgxKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHRzOgorICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnQgKCJFcnJvcjogdHVuYWJsZSBvcHRpb24gbWFsZm9ybWVkICcl cyciICUgby5ncm91cCgxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQgKC0xKQor ICAgICAgICAgICAgICAgICAgICB0c3N0ciA9IHRzLmdyb3VwKDEpCisgICAgICAgICAgICAg ICAgdC5leHBlY3RlZF9vdXRwdXRzW3Rzc3RyXSA9IG0uZ3JvdXAgKDIpCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHQ6CisgICAgICAgICAgICAgICAgICAgICMg U3RhcnRpbmcgYSBuZXcgdGVzdCBkZXNjcmlwdGlvbiwgZW5kIGFuZCBwcm9jZXNzCisgICAg ICAgICAgICAgICAgICAgICMgY3VycmVudCBvbmUuCisgICAgICAgICAgICAgICAgICAgIHBy b2Nlc3NfdGVzdGNhc2UgKHQpCisgICAgICAgICAgICAgICAgdCA9IFRlc3REZXNjciAoKQor ICAgICAgICAgICAgICAgIHQudGVzdF9uYW1lID0gbS5ncm91cCAoMSkKKyAgICAgICAgICAg ICAgICBkZXNjcl9zdHJpbmcgPSBtLmdyb3VwICgyKQorICAgICAgICAgICAgICAgIHBhcnNl X2Rlc2NyaXB0aW9uX3N0cmluZyAodCwgZGVzY3Jfc3RyaW5nKQorICAgICAgICAgICAgY29u dGludWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAg ICAgICAgaWYgbm90IHQ6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICgiRXJyb3I6IG5v IGFjdGl2ZSB0ZXN0Y2FzZSBkZXNjcmlwdGlvbiIpCisgICAgICAgICAgICAgICAgICAgIGV4 aXQgKC0xKQorICAgICAgICAgICAgICAgIHBhcnNlX2Rlc2NyaXB0aW9uX3N0cmluZyAodCwg bGluZSkKKyAgICAjIFByb2Nlc3MgbGFzdCBjb21wbGV0ZWQgdGVzdCBkZXNjcmlwdGlvbgor ICAgIGlmIHQ6CisgICAgICAgIHByb2Nlc3NfdGVzdGNhc2UgKHQpCisKKyMgU2V0dXAgTWFr ZWZpbGUgb3V0cHV0IHRvIGZpbGUgb3Igc3Rkb3V0IGFzIHNlbGVjdGVkCitpZiBvdXRwdXRf bWFrZWZpbGU6CisgICAgb3V0cHV0X21ha2VmaWxlX2RpciA9IG9zLnBhdGguZGlybmFtZSAo b3V0cHV0X21ha2VmaWxlKQorICAgIGlmIG91dHB1dF9tYWtlZmlsZV9kaXIgYW5kIG5vdCBv cy5wYXRoLmV4aXN0cyAob3V0cHV0X21ha2VmaWxlX2Rpcik6CisgICAgICAgIG9zLm1rZGly IChvdXRwdXRfbWFrZWZpbGVfZGlyKQorICAgIG1ha2VmaWxlID0gb3BlbiAob3V0cHV0X21h a2VmaWxlLCAidyIpCitlbHNlOgorICAgIG1ha2VmaWxlID0gb3BlbiAoc3lzLnN0ZG91dC5m aWxlbm8gKCksICJ3IikKKyAgICAgICAgCisjIEZpbmFsbHksIHRoZSBtYWluIHRvcC1sZXZl bCBjYWxsaW5nIG9mIGFib3ZlIHBhcnNpbmcgcm91dGluZXMuCitpZiBkZXNjcmlwdGlvbl9m aWxlOgorICAgIHBhcnNlX2Rlc2NyaXB0aW9uX2ZpbGUgKGRlc2NyaXB0aW9uX2ZpbGUpCitl bHNlOgorICAgIHQgPSBUZXN0RGVzY3IgKCkKKyAgICB0LnRlc3RfbmFtZSA9IHRlc3RfbmFt ZQorICAgIHBhcnNlX2Rlc2NyaXB0aW9uX3N0cmluZyAodCwgZGVzY3JpcHRpb24pCisgICAg cHJvY2Vzc190ZXN0Y2FzZSAodCkKKworIyBDbG9zZSBNYWtlZmlsZSBmcmFnbWVudCBvdXRw dXQKK21ha2VmaWxlLmNsb3NlICgpCg== --------------BC545216BD5B02CA58AECF47--