- From: Fred Esch <fesch@us.ibm.com>
- Date: Thu, 17 Dec 2015 08:24:15 -0500
- To: "SVG-A11y TF" <public-svg-a11y@w3.org>
- Cc: "Shane McCarron" <shane@aptest.com>, cooper@w3c.org
- Message-Id: <201512171400.tBHE0CKP023635@d01av04.pok.ibm.com>
All, I made a perl script that sucks out the testable statements from wiki markup in the testing page (captured as a UTF-8 file). The script creates test files for each testable statement (96 so far) in HTML and SVG and plops them into directories. The script also creates a JSON and csv file for the HTML wrapped tests. When needed, I will make it create a JSON and csv file for the SVG test files as well (will take about half dozen lines of code). The info in the JSON and csv files are: what is being tested (name, description, role, not present in tree), the element type used in the test (with the id="test"), the attributes and children noted in the comment above the testable statements (ie aria-labeledby title...), the test file and the expected result. I've attached the perl script and the two database files. I plan on making an angularJS web page that will act as a test harness. It will read the JSON file and let you choose what you are going to test and select the tests you will do. You will have to enter the platform/OS (once) and then when you click on a test it will put the test HTML or SVG in another window (with a fixed id) which you can examine with tools that look at the accessibility tree. Then you mark whether the test passed or not in the test harness. When you are done, the test harness will produce csv output with the test info which you can screen scrape and pass along to Michael Cooper or however we aggregate that info. If you can think of a better way to do it, please post suggestions on list or bring up in tomorrows meeting. (See attached file: svgtest.json)(See attached file: svg_test.csv)(See attached file: extract.pl) Regards, Fred Esch Watson, IBM, W3C Accessibility IBM Watson Watson Release Management and Quality --2__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A Content-Transfer-Encoding: quoted-printable Content-type: text/html; charset=US-ASCII Content-Disposition: inline <html><body><p>All,<br><br>I made a perl script that sucks out the testable statements from wiki markup in the testing page (captured as a UTF-8 file). The script creates test files for each testable statement (96 so far) in HTML and SVG and plops them into directories. The script also creates a JSON and csv file for the HTML wrapped tests. When needed, I will make it create a JSON and csv file for the SVG test files as well (will take about half dozen lines of code). <br><br>The info in the JSON and csv files are: what is being tested (name, description, role, not present in tree), the element type used in the test (with the id="test"), the attributes and children noted in the comment above the testable statements (ie aria-labeledby title...), the test file and the expected result. I've attached the perl script and the two database files.<br><br>I plan on making an angularJS web page that will act as a test harness. It will read the JSON file and let you choose what you are going to test and select the tests you will do. You will have to enter the platform/OS (once) and then when you click on a test it will put the test HTML or SVG in another window (with a fixed id) which you can examine with tools that look at the accessibility tree. Then you mark whether the test passed or not in the test harness. When you are done, the test harness will produce csv output with the test info which you can screen scrape and pass along to Michael Cooper or however we aggregate that info.<br><br>If you can think of a better way to do it, please post suggestions on list or bring up in tomorrows meeting.<br><br><i>(See attached file: svgtest.json)</i><i>(See attached file: svg_test.csv)</i><i>(See attached file: extract.pl)</i><br><br><br> <table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td width="473" colspan="2" valign="middle"><div align="center"><font size="4" face="Verdana">Regards, <br><br>Fred Esch <br>Watson, IBM, W3C Accessibility</font></div></td></tr> <tr valign="top"><td width="130" valign="middle"><img src="cid:4__=0ABBF58DDFD4283A8f9e8a93df938690918c0AB@" width="163" height="23" alt="IBM Watson" align="bottom"></td><td width="342" valign="middle"><font size="4" face="Verdana">Watson Release Management and Quality </font></td></tr></table><br><BR> </body></html> --2__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A-- --1__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A Content-type: image/gif; name="0B988816.gif" Content-Disposition: inline; filename="0B988816.gif" Content-ID: <4__ BBF58DDFD4283A8f9e8a93df938690918c0AB@> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAKMAAAAXCAMAAABQ6Q/RAAADAFBMVEXIx8cxLS5MSUrW1dXx8fE/ Ozzj4+N2c3SRj49oZWaEgYKsq6uenZ26ubmbm5v29vZ7e3tTU1M7OzsfHx/FxcX39/eamppmZmaR j5AgICCqqqrR0dFaV1gAAAAjHyD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAADe7fL7AAADE0lEQVR4nM2WiW7kIAyGTbhz9O6eCL//U6bYGJJOst2dlaqppUm4 +fhtnAH8+gb7sroZxodWGZfA5UxP52+Ic2qVEbLDxujTLXnOTHydSDxNdC7DR+NvYQK02PLQYBDn z5dRw04GAPibKIBec2GKuZjyrtbosVZr72J397Xyc+suPshsiOUBvRb4xavlzYoA2tI+XEQTFDfT rkCFiFLIec8Y82jQ0dIhjOU5lmWGa254owKe/J5xPDBqdYHLphZBm08Zi5/nOnEsEUmHwiG6cx3X Z6k8ID5c6kgHHC4YlblkJHcNlotO7Xp0RVP6lLFIPtTmsuDQDn+FGT4YTy3OXcTFEy85VUYonQMQ WHWopSIdR83aTYRs5bBD9cz+VjBjyI3RbVEkSu7ed/XF8r18ExXF25ZJiWnk/RhD1S1JlFT5mLGc B0KYNJG5rtEkLhjPGUVz32Lh2iw+k68WnhqJjeZTldqBr27dFkCz2mlyooxcac0zJUyWM8YKFnn8 KLofdFy7brvwXLctZs+6KScOTrSr6uft2y4SmJqa+tUcxPeKY/iEcc4+W8qNfYUrdSTtYvnRrfE1 rgk1QOqBs207ideoc2gLJGFMtEQ6YQy53OvwA1DifmM86PhQKxSZ66+uI/o6zdVcMmwtRHrBiGbm XWysp2FTjbERHHUEPXAgtDRxrY5Vfsvph6PebGnFvmcswSnp2PcDcECPdYzkz2M8ziBH9rtl8c/3 Gh/X9TtuOhphWyToedNUzEp0boyZ8zQNnHLrXIhLy5jplBHVINnHmKj+415Lamt+QAdWDkphmcC5 mh8lodvqNsOqDyHw5GjamHjKGLKEj66LuK7i5XfmsVbwdX1+leL9vTiLIiTy8qFFjHwygjQA7j46 sUc/oxpoY4w9YzRW+RbsZeJ135mnJ9ErCuv8T4yqCGH6zYoGOyOXDowSqJ5yRtq6jzq2/z2IL7+l H58eaWxMiULLlRjUOCU2+kfKNkkDuam8KJP6eqPB0+eIU7PexswpjQdG5AAJEOL1X+vPt/7/cuLg UP7L/QtHfANvSEKvsxvttAAAAABJRU5ErkJggg= --1__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A-- --0__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A Content-type: application/octet-stream; name="svgtest.json" Content-Disposition: attachment; filename="svgtest.json" Content-ID: <1__ BBF58DDFD4283A8f9e8a93df938690918c0AB@> Content-Transfer-Encoding: base64 Ww0KDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0 cmlidXRlcyI6ImFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIHRpdGxlIiwNCgkiZmlsZSI6ImFy aWFsYWJlbGxlZGJ5X2FyaWFsYWJlbF90aXRsZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJlbmQiDQog IH0sDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0 cmlidXRlcyI6ImFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIiwNCgkiZmlsZSI6ImFyaWFsYWJl bGxlZGJ5X2FyaWFsYWJlbC5odG1sIiwNCgkiZXhwZWN0ZWQiOiJlbmQiDQogIH0sDQogIHsNCgki dGVzdGluZyI6Im5hbWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6ImFy aWEtbGFiZWxsZWRieSB0aXRsZSIsDQoJImZpbGUiOiJhcmlhbGFiZWxsZWRieV90aXRsZS5odG1s IiwNCgkiZXhwZWN0ZWQiOiJlbmQiDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJl bGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6ImFyaWEtbGFiZWxsZWRieSBvbmx5IiwN CgkiZmlsZSI6ImFyaWFsYWJlbGxlZGJ5X29ubHkuaHRtbCIsDQoJImV4cGVjdGVkIjoiZW5kIg0K ICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0 dHJpYnV0ZXMiOiJhcmlhLWxhYmVsIHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFsYWJlbF90aXRsZS5o dG1sIiwNCgkiZXhwZWN0ZWQiOiJoZWxsbyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibmFtZSIs DQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbCBvbmx5IiwN CgkiZmlsZSI6ImFyaWFsYWJlbF9vbmx5Lmh0bWwiLA0KCSJleHBlY3RlZCI6ImhlbGxvIg0KICB9 LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJp YnV0ZXMiOiJ0aXRsZSBvbmx5IiwNCgkiZmlsZSI6InRpdGxlX29ubHkuaHRtbCIsDQoJImV4cGVj dGVkIjoiYWJjIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImNp cmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJlbXB0eSBhcmlhLWxhYmVsbGVkYnkgYXJpYS1sYWJlbCB0 aXRsZSIsDQoJImZpbGUiOiJlbXB0eV9hcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfdGl0bGUuaHRt bCIsDQoJImV4cGVjdGVkIjoiYm9iIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgki ZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJlbXB0eSBhcmlhLWxhYmVsbGVkYnkg YXJpYS1sYWJlbCIsDQoJImZpbGUiOiJlbXB0eV9hcmlhbGFiZWxsZWRieV9hcmlhbGFiZWwuaHRt bCIsDQoJImV4cGVjdGVkIjoiMTUvPiB0aGVuIGFjY2Vzc2libGUiDQogIH0sDQogIHsNCgkidGVz dGluZyI6Im5hbWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6ImVtcHR5 IGFyaWEtbGFiZWxsZWRieSB0aXRsZSIsDQoJImZpbGUiOiJlbXB0eV9hcmlhbGFiZWxsZWRieV90 aXRsZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiIxNT48dGl0bGU+YWJjPC90aXRsZT48L2NpcmNsZT4g dGhlbiINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibmFtZSIsDQoJImVsZW1lbnQiOiJjaXJjbGUi LA0KCSJhdHRyaWJ1dGVzIjoiZW1wdHkgYXJpYS1sYWJlbGxlZGJ5IG9ubHkiLA0KCSJmaWxlIjoi ZW1wdHlfYXJpYWxhYmVsbGVkYnlfb25seS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJudWxsIG9yIGVt cHR5Ig0KICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIs DQoJImF0dHJpYnV0ZXMiOiJ0d28gdmFsaWQgaWRyZWZzIiwNCgkiZmlsZSI6InR3b192YWxpZF9p ZHJlZnMuaHRtbCIsDQoJImV4cGVjdGVkIjoidGhlIGVuZCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5n IjoibmFtZSIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoidHdvIHZhbGlk IGlkcmVmcyBvbmUgd2l0aCBhbiBhcmlhLWxhYmVsIiwNCgkiZmlsZSI6InR3b192YWxpZF9pZHJl ZnNfb25lX3dpdGhfYW5fYXJpYWxhYmVsLmh0bWwiLA0KCSJleHBlY3RlZCI6ImJpZyBlbmQiDQog IH0sDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0 cmlidXRlcyI6InR3byB2YWxpZCBpZHJlZnMgb25lIHdpdGggYW4gYXJpYS1sYWJlbCBvbmUgd2l0 aCBhcmlhLWxhYmVsbGVkYnkiLA0KCSJmaWxlIjoidHdvX3ZhbGlkX2lkcmVmc19vbmVfd2l0aF9h bl9hcmlhbGFiZWxfb25lX3dpdGhfYXJpYWxhYmVsbGVkYnkuaHRtbCIsDQoJImV4cGVjdGVkIjoi YmlnIGZpbmlzaCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibmFtZSIsDQoJImVsZW1lbnQiOiJj aXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoib25lIHZhbGlkIGlkcmVmIGlkIHQxIGludmFsaWQiLA0K CSJmaWxlIjoib25lX3ZhbGlkX2lkcmVmX2lkX3QxX2ludmFsaWQuaHRtbCIsDQoJImV4cGVjdGVk IjoiZW5kIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImEiLA0K CSJhdHRyaWJ1dGVzIjoiYSBhcmlhLWxhYmVsIHhsaW5rIHRpdGxlIiwNCgkiZmlsZSI6ImFfYXJp YWxhYmVsX3hsaW5rX3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6ImJvb3RoIg0KICB9LA0KICB7 DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6ImEiLA0KCSJhdHRyaWJ1dGVzIjoiYSB4 bGluayB0aXRsZSBvbmx5IiwNCgkiZmlsZSI6ImFfeGxpbmtfdGl0bGVfb25seS5odG1sIiwNCgki ZXhwZWN0ZWQiOiJ0YWJsZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibmFtZSIsDQoJImVsZW1l bnQiOiJhIiwNCgkiYXR0cmlidXRlcyI6ImEgdGl0bGUgb25seSIsDQoJImZpbGUiOiJhX3RpdGxl X29ubHkuaHRtbCIsDQoJImV4cGVjdGVkIjoiY291bnRlciINCiAgfSwNCiAgew0KCSJ0ZXN0aW5n IjoibmFtZSIsDQoJImVsZW1lbnQiOiJhIiwNCgkiYXR0cmlidXRlcyI6ImEgdGl0bGUgYW5kIHhs aW5rIHRpdGxlIiwNCgkiZmlsZSI6ImFfdGl0bGVfYW5kX3hsaW5rX3RpdGxlLmh0bWwiLA0KCSJl eHBlY3RlZCI6ImNvdW50ZXIiDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJlbGVt ZW50IjoidXNlIiwNCgkiYXR0cmlidXRlcyI6InVzZSBhcmlhLWxhYmVsbGVkYnkgb24gdXNlIHRp dGxlIG9uIHJlZmVyZW5jZSIsDQoJImZpbGUiOiJ1c2VfYXJpYWxhYmVsbGVkYnlfb25fdXNlX3Rp dGxlX29uX3JlZmVyZW5jZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJib3VsZGVyIg0KICB9LA0KICB7 DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6InVzZSIsDQoJImF0dHJpYnV0ZXMiOiJ1 c2UgYXJpYS1sYWJlbCBvbiB1c2UgdGl0bGUgb24gcmVmZXJlbmNlIiwNCgkiZmlsZSI6InVzZV9h cmlhbGFiZWxfb25fdXNlX3RpdGxlX29uX3JlZmVyZW5jZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJz dG9uZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibmFtZSIsDQoJImVsZW1lbnQiOiJ1c2UiLA0K CSJhdHRyaWJ1dGVzIjoidXNlIHRpdGxlIG9uIHVzZSB0aXRsZSBvbiByZWZlcmVuY2UiLA0KCSJm aWxlIjoidXNlX3RpdGxlX29uX3VzZV90aXRsZV9vbl9yZWZlcmVuY2UuaHRtbCIsDQoJImV4cGVj dGVkIjoicGViYmxlIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJuYW1lIiwNCgkiZWxlbWVudCI6 InVzZSIsDQoJImF0dHJpYnV0ZXMiOiJ1c2UgdGl0bGUgb24gcmVmZXJlbmNlIHhsaW5rIGhyZWYi LA0KCSJmaWxlIjoidXNlX3RpdGxlX29uX3JlZmVyZW5jZV94bGlua19ocmVmLmh0bWwiLA0KCSJl eHBlY3RlZCI6InJvY2siDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5hbWUiLA0KCSJlbGVtZW50 IjoidXNlIiwNCgkiYXR0cmlidXRlcyI6InVzZSB0aXRsZSBvbiByZWZlcmVuY2UgaHJlZiIsDQoJ ImZpbGUiOiJ1c2VfdGl0bGVfb25fcmVmZXJlbmNlX2hyZWYuaHRtbCIsDQoJImV4cGVjdGVkIjoi cm9jayINCiAgfQ0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6InBhdGgiLA0K CSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFiZWwgdGl0bGUgZGVzYyIsDQoJ ImZpbGUiOiJhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfdGl0bGVfZGVzYy5odG1sIiwNCgkiZXhw ZWN0ZWQiOiIiDQogIH0sDQogIHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoicGF0 aCIsDQoJImF0dHJpYnV0ZXMiOiJhcmlhLWxhYmVsbGVkYnkgYXJpYS1sYWJlbCB0aXRsZSIsDQoJ ImZpbGUiOiJhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfdGl0bGUxLmh0bWwiLA0KCSJleHBlY3Rl ZCI6ImltZyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQiOiJwYXRo IiwNCgkiYXR0cmlidXRlcyI6ImFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIGRlc2MiLA0KCSJm aWxlIjoiYXJpYWxhYmVsbGVkYnlfYXJpYWxhYmVsX2Rlc2MuaHRtbCIsDQoJImV4cGVjdGVkIjoi aW1nIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6InBhdGgiLA0K CSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFiZWwiLA0KCSJmaWxlIjoiYXJp YWxhYmVsbGVkYnlfYXJpYWxhYmVsMS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJpbWciDQogIH0sDQog IHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoicGF0aCIsDQoJImF0dHJpYnV0ZXMi OiJhcmlhLWxhYmVsbGVkYnkgdGl0bGUiLA0KCSJmaWxlIjoiYXJpYWxhYmVsbGVkYnlfdGl0bGUx Lmh0bWwiLA0KCSJleHBlY3RlZCI6ImltZyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIs DQoJImVsZW1lbnQiOiJwYXRoIiwNCgkiYXR0cmlidXRlcyI6ImFyaWEtbGFiZWxsZWRieSBkZXNj IiwNCgkiZmlsZSI6ImFyaWFsYWJlbGxlZGJ5X2Rlc2MuaHRtbCIsDQoJImV4cGVjdGVkIjoiaW1n Ig0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6InBhdGgiLA0KCSJh dHRyaWJ1dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IG9ubHkiLA0KCSJmaWxlIjoiYXJpYWxhYmVsbGVk Ynlfb25seTEuaHRtbCIsDQoJImV4cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRlc3Rpbmci OiJyb2xlIiwNCgkiZWxlbWVudCI6InBhdGgiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbCB0 aXRsZSIsDQoJImZpbGUiOiJhcmlhbGFiZWxfdGl0bGUxLmh0bWwiLA0KCSJleHBlY3RlZCI6Imlt ZyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQiOiJwYXRoIiwNCgki YXR0cmlidXRlcyI6ImFyaWEtbGFiZWwgb25seSIsDQoJImZpbGUiOiJhcmlhbGFiZWxfb25seTEu aHRtbCIsDQoJImV4cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwN CgkiZWxlbWVudCI6InBhdGgiLA0KCSJhdHRyaWJ1dGVzIjoidGl0bGUgb25seSIsDQoJImZpbGUi OiJ0aXRsZV9vbmx5MS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJpbWciDQogIH0sDQogIHsNCgkidGVz dGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoicGF0aCIsDQoJImF0dHJpYnV0ZXMiOiJkZXNjIG9u bHkiLA0KCSJmaWxlIjoiZGVzY19vbmx5Lmh0bWwiLA0KCSJleHBlY3RlZCI6ImltZyINCiAgfSwN CiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1 dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFiZWwgdGl0bGUiLA0KCSJmaWxlIjoiYXJpYWxh YmVsbGVkYnlfYXJpYWxhYmVsX3RpdGxlMi5odG1sIiwNCgkiZXhwZWN0ZWQiOiJpbWciDQogIH0s DQogIHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmli dXRlcyI6ImFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIiwNCgkiZmlsZSI6ImFyaWFsYWJlbGxl ZGJ5X2FyaWFsYWJlbDIuaHRtbCIsDQoJImV4cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRl c3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJhcmlh LWxhYmVsbGVkYnkgdGl0bGUiLA0KCSJmaWxlIjoiYXJpYWxhYmVsbGVkYnlfdGl0bGUyLmh0bWwi LA0KCSJleHBlY3RlZCI6ImltZyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVs ZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IG9ubHkiLA0K CSJmaWxlIjoiYXJpYWxhYmVsbGVkYnlfb25seTIuaHRtbCIsDQoJImV4cGVjdGVkIjoiaW1nIg0K ICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0 dHJpYnV0ZXMiOiJhcmlhLWxhYmVsIHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFsYWJlbF90aXRsZTIu aHRtbCIsDQoJImV4cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwN CgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJhcmlhLWxhYmVsIG9ubHkiLA0K CSJmaWxlIjoiYXJpYWxhYmVsX29ubHkyLmh0bWwiLA0KCSJleHBlY3RlZCI6ImltZyINCiAgfSwN CiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1 dGVzIjoidGl0bGUgb25seSIsDQoJImZpbGUiOiJ0aXRsZV9vbmx5Mi5odG1sIiwNCgkiZXhwZWN0 ZWQiOiJpbWciDQogIH0sDQogIHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoicmVj dCIsDQoJImF0dHJpYnV0ZXMiOiJyZWN0IGFyaWEtbGFiZWwgb25seSIsDQoJImZpbGUiOiJyZWN0 X2FyaWFsYWJlbF9vbmx5Lmh0bWwiLA0KCSJleHBlY3RlZCI6ImltZyINCiAgfSwNCiAgew0KCSJ0 ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQiOiJlbGlwc2UiLA0KCSJhdHRyaWJ1dGVzIjoiZWxp cHNlIHRpdGxlIG9ubHkiLA0KCSJmaWxlIjoiZWxpcHNlX3RpdGxlX29ubHkuaHRtbCIsDQoJImV4 cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVudCI6 ImxpbmUiLA0KCSJhdHRyaWJ1dGVzIjoibGluZSBhcmlhLWxhYmVsIG9ubHkiLA0KCSJmaWxlIjoi bGluZV9hcmlhbGFiZWxfb25seS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJpbWciDQogIH0sDQogIHsN CgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50IjoiZm9yZWlnbk9iamVjdCIsDQoJImF0dHJp YnV0ZXMiOiJmb3JlaWduT2JqZWN0IiwNCgkiZmlsZSI6ImZvcmVpZ25PYmplY3QuaHRtbCIsDQoJ ImV4cGVjdGVkIjoiZ3JvdXAiDQogIH0sDQogIHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVt ZW50IjoiZyIsDQoJImF0dHJpYnV0ZXMiOiJnIiwNCgkiZmlsZSI6ImcuaHRtbCIsDQoJImV4cGVj dGVkIjoiZ3JvdXAiDQogIH0sDQogIHsNCgkidGVzdGluZyI6InJvbGUiLA0KCSJlbGVtZW50Ijoi aW1hZ2UiLA0KCSJhdHRyaWJ1dGVzIjoiaW1hZ2UiLA0KCSJmaWxlIjoiaW1hZ2UuaHRtbCIsDQoJ ImV4cGVjdGVkIjoiaW1nIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVu dCI6InN2ZyIsDQoJImF0dHJpYnV0ZXMiOiJzdmciLA0KCSJmaWxlIjoic3ZnLmh0bWwiLA0KCSJl eHBlY3RlZCI6Imdyb3VwIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJyb2xlIiwNCgkiZWxlbWVu dCI6InVzZSIsDQoJImF0dHJpYnV0ZXMiOiJ1c2UiLA0KCSJmaWxlIjoidXNlLmh0bWwiLA0KCSJl eHBlY3RlZCI6ImltZyINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1lbnQi OiJ0ZXh0IiwNCgkiYXR0cmlidXRlcyI6InRleHQiLA0KCSJmaWxlIjoidGV4dC5odG1sIiwNCgki ZXhwZWN0ZWQiOiJncm91cCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoicm9sZSIsDQoJImVsZW1l bnQiOiJ0ZXh0UGF0aCIsDQoJImF0dHJpYnV0ZXMiOiJ0ZXh0UGF0aCIsDQoJImZpbGUiOiJ0ZXh0 UGF0aC5odG1sIiwNCgkiZXhwZWN0ZWQiOiJncm91cCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoi cm9sZSIsDQoJImVsZW1lbnQiOiJ0c3BhbiIsDQoJImF0dHJpYnV0ZXMiOiJ0c3BhbiIsDQoJImZp bGUiOiJ0c3Bhbi5odG1sIiwNCgkiZXhwZWN0ZWQiOiJncm91cCINCiAgfQ0KICB7DQoJInRlc3Rp bmciOiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoi YXJpYS1kZXNjcmliZWRieSBkZXNjIHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFkZXNjcmliZWRieV9k ZXNjX3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6IjkwPmVuZDwvdGV4dD4gdGhlbiBhY2Nlc3Np YmxlIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJj aXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1kZXNjcmliZWRieSBkZXNjIiwNCgkiZmlsZSI6 ImFyaWFkZXNjcmliZWRieV9kZXNjLmh0bWwiLA0KCSJleHBlY3RlZCI6ImVuZCINCiAgfSwNCiAg ew0KCSJ0ZXN0aW5nIjoiZGVzY3JpcHRpb24iLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0 cmlidXRlcyI6ImFyaWEtZGVzY3JpYmVkYnkgdGl0bGUiLA0KCSJmaWxlIjoiYXJpYWRlc2NyaWJl ZGJ5X3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6ImVuZCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5n IjoiZGVzY3JpcHRpb24iLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6ImFy aWEtZGVzY3JpYmVkYnkgb25seSIsDQoJImZpbGUiOiJhcmlhZGVzY3JpYmVkYnlfb25seS5odG1s IiwNCgkiZXhwZWN0ZWQiOiJlbmQiDQogIH0sDQogIHsNCgkidGVzdGluZyI6ImRlc2NyaXB0aW9u IiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJkZXNjIHRpdGxlIiwNCgki ZmlsZSI6ImRlc2NfdGl0bGUuaHRtbCIsDQoJImV4cGVjdGVkIjoiMTU+PHRpdGxlPmFiYzwvdGl0 bGU+PGRlc2M+MTIzPC9kZXNjPjwvY2lyY2xlPiB0aGVuIg0KICB9LA0KICB7DQoJInRlc3Rpbmci OiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiZW1w dHkgYXJpYS1kZXNjcmliZWRieSBkZXNjIHRpdGxlIiwNCgkiZmlsZSI6ImVtcHR5X2FyaWFkZXNj cmliZWRieV9kZXNjX3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6IjEyMyINCiAgfSwNCiAgew0K CSJ0ZXN0aW5nIjoiZGVzY3JpcHRpb24iLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmli dXRlcyI6ImVtcHR5IGFyaWEtZGVzY3JpYmVkYnkgZGVzYyIsDQoJImZpbGUiOiJlbXB0eV9hcmlh ZGVzY3JpYmVkYnlfZGVzYy5odG1sIiwNCgkiZXhwZWN0ZWQiOiIxMjMiDQogIH0sDQogIHsNCgki dGVzdGluZyI6ImRlc2NyaXB0aW9uIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0 ZXMiOiJhcmlhLWRlc2NyaWJlZGJ5IHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFkZXNjcmliZWRieV90 aXRsZTEuaHRtbCIsDQoJImV4cGVjdGVkIjoiMTU+PHRpdGxlPmFiYzwvdGl0bGU+PC9jaXJjbGU+ IHRoZW4iDQogIH0sDQogIHsNCgkidGVzdGluZyI6ImRlc2NyaXB0aW9uIiwNCgkiZWxlbWVudCI6 ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJhcmlhLWRlc2NyaWJlZGJ5IG9ubHkiLA0KCSJmaWxl IjoiYXJpYWRlc2NyaWJlZGJ5X29ubHkxLmh0bWwiLA0KCSJleHBlY3RlZCI6Im51bGwgb3IgZW1w dHkiDQogIH0sDQogIHsNCgkidGVzdGluZyI6ImRlc2NyaXB0aW9uIiwNCgkiZWxlbWVudCI6ImNp cmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJ0d28gdmFsaWQgaWRyZWZzIiwNCgkiZmlsZSI6InR3b192 YWxpZF9pZHJlZnMxLmh0bWwiLA0KCSJleHBlY3RlZCI6InRoZSBlbmQiDQogIH0sDQogIHsNCgki dGVzdGluZyI6ImRlc2NyaXB0aW9uIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0 ZXMiOiJ0d28gdmFsaWQgaWRyZWZzIG9uZSB3aXRoIGFyaWEtZGVzY3JpYmVkYnkiLA0KCSJmaWxl IjoidHdvX3ZhbGlkX2lkcmVmc19vbmVfd2l0aF9hcmlhZGVzY3JpYmVkYnkuaHRtbCIsDQoJImV4 cGVjdGVkIjoidGhlIGZpbmlzaCINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoiZGVzY3JpcHRpb24i LA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6Im9uZSB2YWxpZCBpZHJlZiBp ZCB0MSBpbnZhbGlkIiwNCgkiZmlsZSI6Im9uZV92YWxpZF9pZHJlZl9pZF90MV9pbnZhbGlkMS5o dG1sIiwNCgkiZXhwZWN0ZWQiOiJlbmQiDQogIH0sDQogIHsNCgkidGVzdGluZyI6ImRlc2NyaXB0 aW9uIiwNCgkiZWxlbWVudCI6ImNpcmNsZSIsDQoJImF0dHJpYnV0ZXMiOiJkZXNjcmlwdGlvbiBh cmlhLWxhYmVsbGVkYnkgdGl0bGUiLA0KCSJmaWxlIjoiZGVzY3JpcHRpb25fYXJpYWxhYmVsbGVk YnlfdGl0bGUuaHRtbCIsDQoJImV4cGVjdGVkIjoiYWJjIg0KICB9LA0KICB7DQoJInRlc3Rpbmci OiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiZGVz Y3JpcHRpb24gYXJpYS1sYWJlbCB0aXRsZSIsDQoJImZpbGUiOiJkZXNjcmlwdGlvbl9hcmlhbGFi ZWxfdGl0bGUuaHRtbCIsDQoJImV4cGVjdGVkIjoiYWJjIg0KICB9LA0KICB7DQoJInRlc3Rpbmci OiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiYXJp YS1sYWJlbGxlZGJ5IHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFsYWJlbGxlZGJ5X3RpdGxlMy5odG1s IiwNCgkiZXhwZWN0ZWQiOiJudWxsIG9yIGVtcHR5Ig0KICB9LA0KICB7DQoJInRlc3RpbmciOiJk ZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJjaXJjbGUiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1s YWJlbCB0aXRsZSIsDQoJImZpbGUiOiJhcmlhbGFiZWxfdGl0bGUzLmh0bWwiLA0KCSJleHBlY3Rl ZCI6Im51bGwgb3IgZW1wdHkiDQogIH0sDQogIHsNCgkidGVzdGluZyI6ImRlc2NyaXB0aW9uIiwN CgkiZWxlbWVudCI6ImEiLA0KCSJhdHRyaWJ1dGVzIjoiYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFi ZWwgeGxpbmsgdGl0bGUiLA0KCSJmaWxlIjoiYXJpYWxhYmVsbGVkYnlfYXJpYWxhYmVsX3hsaW5r X3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6InRhYmxlIg0KICB9LA0KICB7DQoJInRlc3Rpbmci OiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJhIiwNCgkiYXR0cmlidXRlcyI6ImFyaWEtbGFi ZWxsZWRieSB4bGluayB0aXRsZSIsDQoJImZpbGUiOiJhcmlhbGFiZWxsZWRieV94bGlua190aXRs ZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJ0YWJsZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoiZGVz Y3JpcHRpb24iLA0KCSJlbGVtZW50IjoiYSIsDQoJImF0dHJpYnV0ZXMiOiJhcmlhLWxhYmVsIHhs aW5rIHRpdGxlIiwNCgkiZmlsZSI6ImFyaWFsYWJlbF94bGlua190aXRsZS5odG1sIiwNCgkiZXhw ZWN0ZWQiOiJ0YWJsZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoiZGVzY3JpcHRpb24iLA0KCSJl bGVtZW50IjoiYSIsDQoJImF0dHJpYnV0ZXMiOiJ0aXRsZSBhbmQgeGxpbmsgdGl0bGUiLA0KCSJm aWxlIjoidGl0bGVfYW5kX3hsaW5rX3RpdGxlLmh0bWwiLA0KCSJleHBlY3RlZCI6InRhYmxlIg0K ICB9LA0KICB7DQoJInRlc3RpbmciOiJkZXNjcmlwdGlvbiIsDQoJImVsZW1lbnQiOiJhIiwNCgki YXR0cmlidXRlcyI6InhsaW5rIHRpdGxlIG9ubHkiLA0KCSJmaWxlIjoieGxpbmtfdGl0bGVfb25s eS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJudWxsIG9yIGVtcHR5Ig0KICB9DQogIHsNCgkidGVzdGlu ZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0KCSJlbGVtZW50IjoiYW5pbWF0ZSIsDQoJ ImF0dHJpYnV0ZXMiOiJhbmltYXRlIiwNCgkiZmlsZSI6ImFuaW1hdGUuaHRtbCIsDQoJImV4cGVj dGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoi bm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIsDQoJImVsZW1lbnQiOiJhbmltYXRlTW90aW9uIiwN CgkiYXR0cmlidXRlcyI6ImFuaW1hdGVNb3Rpb24iLA0KCSJmaWxlIjoiYW5pbWF0ZU1vdGlvbi5o dG1sIiwNCgkiZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9LA0KICB7 DQoJInRlc3RpbmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVudCI6ImFu aW1hdGVUcmFuc2Zvcm0iLA0KCSJhdHRyaWJ1dGVzIjoiYW5pbWF0ZVRyYW5zZm9ybSIsDQoJImZp bGUiOiJhbmltYXRlVHJhbnNmb3JtLmh0bWwiLA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3Np YmlsaXR5IHRyZWUiDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5 IHRyZWUiLA0KCSJlbGVtZW50IjoiY3Vyc29yIiwNCgkiYXR0cmlidXRlcyI6ImN1cnNvciIsDQoJ ImZpbGUiOiJjdXJzb3IuaHRtbCIsDQoJImV4cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkg dHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIs DQoJImVsZW1lbnQiOiJkZWZzIiwNCgkiYXR0cmlidXRlcyI6ImRlZnMiLA0KCSJmaWxlIjoiZGVm cy5odG1sIiwNCgkiZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9LA0K ICB7DQoJInRlc3RpbmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVudCI6 ImRpc2NhcmQiLA0KCSJhdHRyaWJ1dGVzIjoiZGlzY2FyZCIsDQoJImZpbGUiOiJkaXNjYXJkLmh0 bWwiLA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiDQogIH0sDQogIHsN CgkidGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0KCSJlbGVtZW50IjoiaGF0 Y2giLA0KCSJhdHRyaWJ1dGVzIjoiaGF0Y2giLA0KCSJmaWxlIjoiaGF0Y2guaHRtbCIsDQoJImV4 cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5n Ijoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIsDQoJImVsZW1lbnQiOiJoYXRjaHBhdGgiLA0K CSJhdHRyaWJ1dGVzIjoiaGF0Y2hQYXRoIiwNCgkiZmlsZSI6ImhhdGNoUGF0aC5odG1sIiwNCgki ZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9LA0KICB7DQoJInRlc3Rp bmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVudCI6ImxpbmVhckdyYWRp ZW50IiwNCgkiYXR0cmlidXRlcyI6ImxpbmVhckdyYWRpZW50IiwNCgkiZmlsZSI6ImxpbmVhckdy YWRpZW50Lmh0bWwiLA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiDQog IH0sDQogIHsNCgkidGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0KCSJlbGVt ZW50IjoibWFya2VyIiwNCgkiYXR0cmlidXRlcyI6Im1hcmtlciIsDQoJImZpbGUiOiJtYXJrZXIu aHRtbCIsDQoJImV4cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSINCiAgfSwNCiAg ew0KCSJ0ZXN0aW5nIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIsDQoJImVsZW1lbnQiOiJw YXR0ZXJuIiwNCgkiYXR0cmlidXRlcyI6InBhdHRlcm4iLA0KCSJmaWxlIjoicGF0dGVybi5odG1s IiwNCgkiZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9LA0KICB7DQoJ InRlc3RpbmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVudCI6InJhZGlh bEdyYWRpZW50IiwNCgkiYXR0cmlidXRlcyI6InJhZGlhbEdyYWRpZW50IiwNCgkiZmlsZSI6InJh ZGlhbEdyYWRpZW50Lmh0bWwiLA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRy ZWUiDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0K CSJlbGVtZW50Ijoic29saWRDb2xvciIsDQoJImF0dHJpYnV0ZXMiOiJzb2xpZENvbG9yIiwNCgki ZmlsZSI6InNvbGlkQ29sb3IuaHRtbCIsDQoJImV4cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxp dHkgdHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJl ZSIsDQoJImVsZW1lbnQiOiJzdG9wIiwNCgkiYXR0cmlidXRlcyI6InN0b3AiLA0KCSJmaWxlIjoi c3RvcC5odG1sIiwNCgkiZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9 LA0KICB7DQoJInRlc3RpbmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVu dCI6InN0eWxlIiwNCgkiYXR0cmlidXRlcyI6InN0eWxlIiwNCgkiZmlsZSI6InN0eWxlLmh0bWwi LA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiDQogIH0sDQogIHsNCgki dGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0KCSJlbGVtZW50Ijoic3ltYm9s IiwNCgkiYXR0cmlidXRlcyI6InN5bWJvbCIsDQoJImZpbGUiOiJzeW1ib2wuaHRtbCIsDQoJImV4 cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5n Ijoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIsDQoJImVsZW1lbnQiOiJ0aXRsZSIsDQoJImF0 dHJpYnV0ZXMiOiJ0aXRsZSIsDQoJImZpbGUiOiJ0aXRsZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJu b3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0KICB9LA0KICB7DQoJInRlc3RpbmciOiJub3QgaW4g YWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxlbWVudCI6InJlY3QiLA0KCSJhdHRyaWJ1dGVzIjoi cmVjdCIsDQoJImZpbGUiOiJyZWN0Lmh0bWwiLA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3Np YmlsaXR5IHRyZWUiDQogIH0sDQogIHsNCgkidGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5 IHRyZWUiLA0KCSJlbGVtZW50IjoiY2lyY2xlIiwNCgkiYXR0cmlidXRlcyI6ImNpcmNsZSIsDQoJ ImZpbGUiOiJjaXJjbGUuaHRtbCIsDQoJImV4cGVjdGVkIjoibm90IGluIGFjY2Vzc2liaWxpdHkg dHJlZSINCiAgfSwNCiAgew0KCSJ0ZXN0aW5nIjoibm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSIs DQoJImVsZW1lbnQiOiJlbGlwc2UiLA0KCSJhdHRyaWJ1dGVzIjoiZWxpcHNlIiwNCgkiZmlsZSI6 ImVsaXBzZS5odG1sIiwNCgkiZXhwZWN0ZWQiOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIg0K ICB9LA0KICB7DQoJInRlc3RpbmciOiJub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlIiwNCgkiZWxl bWVudCI6ImxpbmUiLA0KCSJhdHRyaWJ1dGVzIjoibGluZSIsDQoJImZpbGUiOiJsaW5lLmh0bWwi LA0KCSJleHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiDQogIH0sDQogIHsNCgki dGVzdGluZyI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiLA0KCSJlbGVtZW50IjoiZWxpcHNl IiwNCgkiYXR0cmlidXRlcyI6ImVsaXBzZSIsDQoJImZpbGUiOiJlbGlwc2UxLmh0bWwiLA0KCSJl eHBlY3RlZCI6Im5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUiDQogIH0NCl0 --0__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A Content-type: application/octet-stream; name="svg_test.csv" Content-Disposition: attachment; filename="svg_test.csv" Content-ID: <2__ BBF58DDFD4283A8f9e8a93df938690918c0AB@> Content-Transfer-Encoding: base64 VEVTVElORyxFTEVNTkVOVCxBVFRSSUJVVEVTLEZJTEUsRVhQRUNURUQgVkFMVUUNCm5hbWUsY2ly Y2xlLGFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIHRpdGxlLGFyaWFsYWJlbGxlZGJ5X2FyaWFs YWJlbF90aXRsZS5odG1sLGVuZA0KbmFtZSxjaXJjbGUsYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFi ZWwsYXJpYWxhYmVsbGVkYnlfYXJpYWxhYmVsLmh0bWwsZW5kDQpuYW1lLGNpcmNsZSxhcmlhLWxh YmVsbGVkYnkgdGl0bGUsYXJpYWxhYmVsbGVkYnlfdGl0bGUuaHRtbCxlbmQNCm5hbWUsY2lyY2xl LGFyaWEtbGFiZWxsZWRieSBvbmx5LGFyaWFsYWJlbGxlZGJ5X29ubHkuaHRtbCxlbmQNCm5hbWUs Y2lyY2xlLGFyaWEtbGFiZWwgdGl0bGUsYXJpYWxhYmVsX3RpdGxlLmh0bWwsaGVsbG8NCm5hbWUs Y2lyY2xlLGFyaWEtbGFiZWwgb25seSxhcmlhbGFiZWxfb25seS5odG1sLGhlbGxvDQpuYW1lLGNp cmNsZSx0aXRsZSBvbmx5LHRpdGxlX29ubHkuaHRtbCxhYmMNCm5hbWUsY2lyY2xlLGVtcHR5IGFy aWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIHRpdGxlLGVtcHR5X2FyaWFsYWJlbGxlZGJ5X2FyaWFs YWJlbF90aXRsZS5odG1sLGJvYg0KbmFtZSxjaXJjbGUsZW1wdHkgYXJpYS1sYWJlbGxlZGJ5IGFy aWEtbGFiZWwsZW1wdHlfYXJpYWxhYmVsbGVkYnlfYXJpYWxhYmVsLmh0bWwsMTUvPiB0aGVuIGFj Y2Vzc2libGUNCm5hbWUsY2lyY2xlLGVtcHR5IGFyaWEtbGFiZWxsZWRieSB0aXRsZSxlbXB0eV9h cmlhbGFiZWxsZWRieV90aXRsZS5odG1sLDE1Pjx0aXRsZT5hYmM8L3RpdGxlPjwvY2lyY2xlPiB0 aGVuDQpuYW1lLGNpcmNsZSxlbXB0eSBhcmlhLWxhYmVsbGVkYnkgb25seSxlbXB0eV9hcmlhbGFi ZWxsZWRieV9vbmx5Lmh0bWwsbnVsbCBvciBlbXB0eQ0KbmFtZSxjaXJjbGUsdHdvIHZhbGlkIGlk cmVmcyx0d29fdmFsaWRfaWRyZWZzLmh0bWwsdGhlIGVuZA0KbmFtZSxjaXJjbGUsdHdvIHZhbGlk IGlkcmVmcyBvbmUgd2l0aCBhbiBhcmlhLWxhYmVsLHR3b192YWxpZF9pZHJlZnNfb25lX3dpdGhf YW5fYXJpYWxhYmVsLmh0bWwsYmlnIGVuZA0KbmFtZSxjaXJjbGUsdHdvIHZhbGlkIGlkcmVmcyBv bmUgd2l0aCBhbiBhcmlhLWxhYmVsIG9uZSB3aXRoIGFyaWEtbGFiZWxsZWRieSx0d29fdmFsaWRf aWRyZWZzX29uZV93aXRoX2FuX2FyaWFsYWJlbF9vbmVfd2l0aF9hcmlhbGFiZWxsZWRieS5odG1s LGJpZyBmaW5pc2gNCm5hbWUsY2lyY2xlLG9uZSB2YWxpZCBpZHJlZiBpZCB0MSBpbnZhbGlkLG9u ZV92YWxpZF9pZHJlZl9pZF90MV9pbnZhbGlkLmh0bWwsZW5kDQpuYW1lLGEsYSBhcmlhLWxhYmVs IHhsaW5rIHRpdGxlLGFfYXJpYWxhYmVsX3hsaW5rX3RpdGxlLmh0bWwsYm9vdGgNCm5hbWUsYSxh IHhsaW5rIHRpdGxlIG9ubHksYV94bGlua190aXRsZV9vbmx5Lmh0bWwsdGFibGUNCm5hbWUsYSxh IHRpdGxlIG9ubHksYV90aXRsZV9vbmx5Lmh0bWwsY291bnRlcg0KbmFtZSxhLGEgdGl0bGUgYW5k IHhsaW5rIHRpdGxlLGFfdGl0bGVfYW5kX3hsaW5rX3RpdGxlLmh0bWwsY291bnRlcg0KbmFtZSx1 c2UsdXNlIGFyaWEtbGFiZWxsZWRieSBvbiB1c2UgdGl0bGUgb24gcmVmZXJlbmNlLHVzZV9hcmlh bGFiZWxsZWRieV9vbl91c2VfdGl0bGVfb25fcmVmZXJlbmNlLmh0bWwsYm91bGRlcg0KbmFtZSx1 c2UsdXNlIGFyaWEtbGFiZWwgb24gdXNlIHRpdGxlIG9uIHJlZmVyZW5jZSx1c2VfYXJpYWxhYmVs X29uX3VzZV90aXRsZV9vbl9yZWZlcmVuY2UuaHRtbCxzdG9uZQ0KbmFtZSx1c2UsdXNlIHRpdGxl IG9uIHVzZSB0aXRsZSBvbiByZWZlcmVuY2UsdXNlX3RpdGxlX29uX3VzZV90aXRsZV9vbl9yZWZl cmVuY2UuaHRtbCxwZWJibGUNCm5hbWUsdXNlLHVzZSB0aXRsZSBvbiByZWZlcmVuY2UgeGxpbmsg aHJlZix1c2VfdGl0bGVfb25fcmVmZXJlbmNlX3hsaW5rX2hyZWYuaHRtbCxyb2NrDQpuYW1lLHVz ZSx1c2UgdGl0bGUgb24gcmVmZXJlbmNlIGhyZWYsdXNlX3RpdGxlX29uX3JlZmVyZW5jZV9ocmVm Lmh0bWwscm9jaw0Kcm9sZSxwYXRoLGFyaWEtbGFiZWxsZWRieSBhcmlhLWxhYmVsIHRpdGxlIGRl c2MsYXJpYWxhYmVsbGVkYnlfYXJpYWxhYmVsX3RpdGxlX2Rlc2MuaHRtbCwNCnJvbGUscGF0aCxh cmlhLWxhYmVsbGVkYnkgYXJpYS1sYWJlbCB0aXRsZSxhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxf dGl0bGUxLmh0bWwsaW1nDQpyb2xlLHBhdGgsYXJpYS1sYWJlbGxlZGJ5IGFyaWEtbGFiZWwgZGVz YyxhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfZGVzYy5odG1sLGltZw0Kcm9sZSxwYXRoLGFyaWEt bGFiZWxsZWRieSBhcmlhLWxhYmVsLGFyaWFsYWJlbGxlZGJ5X2FyaWFsYWJlbDEuaHRtbCxpbWcN CnJvbGUscGF0aCxhcmlhLWxhYmVsbGVkYnkgdGl0bGUsYXJpYWxhYmVsbGVkYnlfdGl0bGUxLmh0 bWwsaW1nDQpyb2xlLHBhdGgsYXJpYS1sYWJlbGxlZGJ5IGRlc2MsYXJpYWxhYmVsbGVkYnlfZGVz Yy5odG1sLGltZw0Kcm9sZSxwYXRoLGFyaWEtbGFiZWxsZWRieSBvbmx5LGFyaWFsYWJlbGxlZGJ5 X29ubHkxLmh0bWwsaW1nDQpyb2xlLHBhdGgsYXJpYS1sYWJlbCB0aXRsZSxhcmlhbGFiZWxfdGl0 bGUxLmh0bWwsaW1nDQpyb2xlLHBhdGgsYXJpYS1sYWJlbCBvbmx5LGFyaWFsYWJlbF9vbmx5MS5o dG1sLGltZw0Kcm9sZSxwYXRoLHRpdGxlIG9ubHksdGl0bGVfb25seTEuaHRtbCxpbWcNCnJvbGUs cGF0aCxkZXNjIG9ubHksZGVzY19vbmx5Lmh0bWwsaW1nDQpyb2xlLGNpcmNsZSxhcmlhLWxhYmVs bGVkYnkgYXJpYS1sYWJlbCB0aXRsZSxhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfdGl0bGUyLmh0 bWwsaW1nDQpyb2xlLGNpcmNsZSxhcmlhLWxhYmVsbGVkYnkgYXJpYS1sYWJlbCxhcmlhbGFiZWxs ZWRieV9hcmlhbGFiZWwyLmh0bWwsaW1nDQpyb2xlLGNpcmNsZSxhcmlhLWxhYmVsbGVkYnkgdGl0 bGUsYXJpYWxhYmVsbGVkYnlfdGl0bGUyLmh0bWwsaW1nDQpyb2xlLGNpcmNsZSxhcmlhLWxhYmVs bGVkYnkgb25seSxhcmlhbGFiZWxsZWRieV9vbmx5Mi5odG1sLGltZw0Kcm9sZSxjaXJjbGUsYXJp YS1sYWJlbCB0aXRsZSxhcmlhbGFiZWxfdGl0bGUyLmh0bWwsaW1nDQpyb2xlLGNpcmNsZSxhcmlh LWxhYmVsIG9ubHksYXJpYWxhYmVsX29ubHkyLmh0bWwsaW1nDQpyb2xlLGNpcmNsZSx0aXRsZSBv bmx5LHRpdGxlX29ubHkyLmh0bWwsaW1nDQpyb2xlLHJlY3QscmVjdCBhcmlhLWxhYmVsIG9ubHks cmVjdF9hcmlhbGFiZWxfb25seS5odG1sLGltZw0Kcm9sZSxlbGlwc2UsZWxpcHNlIHRpdGxlIG9u bHksZWxpcHNlX3RpdGxlX29ubHkuaHRtbCxpbWcNCnJvbGUsbGluZSxsaW5lIGFyaWEtbGFiZWwg b25seSxsaW5lX2FyaWFsYWJlbF9vbmx5Lmh0bWwsaW1nDQpyb2xlLGZvcmVpZ25PYmplY3QsZm9y ZWlnbk9iamVjdCxmb3JlaWduT2JqZWN0Lmh0bWwsZ3JvdXANCnJvbGUsZyxnLGcuaHRtbCxncm91 cA0Kcm9sZSxpbWFnZSxpbWFnZSxpbWFnZS5odG1sLGltZw0Kcm9sZSxzdmcsc3ZnLHN2Zy5odG1s LGdyb3VwDQpyb2xlLHVzZSx1c2UsdXNlLmh0bWwsaW1nDQpyb2xlLHRleHQsdGV4dCx0ZXh0Lmh0 bWwsZ3JvdXANCnJvbGUsdGV4dFBhdGgsdGV4dFBhdGgsdGV4dFBhdGguaHRtbCxncm91cA0Kcm9s ZSx0c3Bhbix0c3Bhbix0c3Bhbi5odG1sLGdyb3VwDQpkZXNjcmlwdGlvbixjaXJjbGUsYXJpYS1k ZXNjcmliZWRieSBkZXNjIHRpdGxlLGFyaWFkZXNjcmliZWRieV9kZXNjX3RpdGxlLmh0bWwsOTA+ ZW5kPC90ZXh0PiB0aGVuIGFjY2Vzc2libGUNCmRlc2NyaXB0aW9uLGNpcmNsZSxhcmlhLWRlc2Ny aWJlZGJ5IGRlc2MsYXJpYWRlc2NyaWJlZGJ5X2Rlc2MuaHRtbCxlbmQNCmRlc2NyaXB0aW9uLGNp cmNsZSxhcmlhLWRlc2NyaWJlZGJ5IHRpdGxlLGFyaWFkZXNjcmliZWRieV90aXRsZS5odG1sLGVu ZA0KZGVzY3JpcHRpb24sY2lyY2xlLGFyaWEtZGVzY3JpYmVkYnkgb25seSxhcmlhZGVzY3JpYmVk Ynlfb25seS5odG1sLGVuZA0KZGVzY3JpcHRpb24sY2lyY2xlLGRlc2MgdGl0bGUsZGVzY190aXRs ZS5odG1sLDE1Pjx0aXRsZT5hYmM8L3RpdGxlPjxkZXNjPjEyMzwvZGVzYz48L2NpcmNsZT4gdGhl bg0KZGVzY3JpcHRpb24sY2lyY2xlLGVtcHR5IGFyaWEtZGVzY3JpYmVkYnkgZGVzYyB0aXRsZSxl bXB0eV9hcmlhZGVzY3JpYmVkYnlfZGVzY190aXRsZS5odG1sLDEyMw0KZGVzY3JpcHRpb24sY2ly Y2xlLGVtcHR5IGFyaWEtZGVzY3JpYmVkYnkgZGVzYyxlbXB0eV9hcmlhZGVzY3JpYmVkYnlfZGVz Yy5odG1sLDEyMw0KZGVzY3JpcHRpb24sY2lyY2xlLGFyaWEtZGVzY3JpYmVkYnkgdGl0bGUsYXJp YWRlc2NyaWJlZGJ5X3RpdGxlMS5odG1sLDE1Pjx0aXRsZT5hYmM8L3RpdGxlPjwvY2lyY2xlPiB0 aGVuDQpkZXNjcmlwdGlvbixjaXJjbGUsYXJpYS1kZXNjcmliZWRieSBvbmx5LGFyaWFkZXNjcmli ZWRieV9vbmx5MS5odG1sLG51bGwgb3IgZW1wdHkNCmRlc2NyaXB0aW9uLGNpcmNsZSx0d28gdmFs aWQgaWRyZWZzLHR3b192YWxpZF9pZHJlZnMxLmh0bWwsdGhlIGVuZA0KZGVzY3JpcHRpb24sY2ly Y2xlLHR3byB2YWxpZCBpZHJlZnMgb25lIHdpdGggYXJpYS1kZXNjcmliZWRieSx0d29fdmFsaWRf aWRyZWZzX29uZV93aXRoX2FyaWFkZXNjcmliZWRieS5odG1sLHRoZSBmaW5pc2gNCmRlc2NyaXB0 aW9uLGNpcmNsZSxvbmUgdmFsaWQgaWRyZWYgaWQgdDEgaW52YWxpZCxvbmVfdmFsaWRfaWRyZWZf aWRfdDFfaW52YWxpZDEuaHRtbCxlbmQNCmRlc2NyaXB0aW9uLGNpcmNsZSxkZXNjcmlwdGlvbiBh cmlhLWxhYmVsbGVkYnkgdGl0bGUsZGVzY3JpcHRpb25fYXJpYWxhYmVsbGVkYnlfdGl0bGUuaHRt bCxhYmMNCmRlc2NyaXB0aW9uLGNpcmNsZSxkZXNjcmlwdGlvbiBhcmlhLWxhYmVsIHRpdGxlLGRl c2NyaXB0aW9uX2FyaWFsYWJlbF90aXRsZS5odG1sLGFiYw0KZGVzY3JpcHRpb24sY2lyY2xlLGFy aWEtbGFiZWxsZWRieSB0aXRsZSxhcmlhbGFiZWxsZWRieV90aXRsZTMuaHRtbCxudWxsIG9yIGVt cHR5DQpkZXNjcmlwdGlvbixjaXJjbGUsYXJpYS1sYWJlbCB0aXRsZSxhcmlhbGFiZWxfdGl0bGUz Lmh0bWwsbnVsbCBvciBlbXB0eQ0KZGVzY3JpcHRpb24sYSxhcmlhLWxhYmVsbGVkYnkgYXJpYS1s YWJlbCB4bGluayB0aXRsZSxhcmlhbGFiZWxsZWRieV9hcmlhbGFiZWxfeGxpbmtfdGl0bGUuaHRt bCx0YWJsZQ0KZGVzY3JpcHRpb24sYSxhcmlhLWxhYmVsbGVkYnkgeGxpbmsgdGl0bGUsYXJpYWxh YmVsbGVkYnlfeGxpbmtfdGl0bGUuaHRtbCx0YWJsZQ0KZGVzY3JpcHRpb24sYSxhcmlhLWxhYmVs IHhsaW5rIHRpdGxlLGFyaWFsYWJlbF94bGlua190aXRsZS5odG1sLHRhYmxlDQpkZXNjcmlwdGlv bixhLHRpdGxlIGFuZCB4bGluayB0aXRsZSx0aXRsZV9hbmRfeGxpbmtfdGl0bGUuaHRtbCx0YWJs ZQ0KZGVzY3JpcHRpb24sYSx4bGluayB0aXRsZSBvbmx5LHhsaW5rX3RpdGxlX29ubHkuaHRtbCxu dWxsIG9yIGVtcHR5DQpub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLGFuaW1hdGUsYW5pbWF0ZSxh bmltYXRlLmh0bWwsbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2liaWxp dHkgdHJlZSxhbmltYXRlTW90aW9uLGFuaW1hdGVNb3Rpb24sYW5pbWF0ZU1vdGlvbi5odG1sLG5v dCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCm5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUsYW5pbWF0 ZVRyYW5zZm9ybSxhbmltYXRlVHJhbnNmb3JtLGFuaW1hdGVUcmFuc2Zvcm0uaHRtbCxub3QgaW4g YWNjZXNzaWJpbGl0eSB0cmVlDQpub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLGN1cnNvcixjdXJz b3IsY3Vyc29yLmh0bWwsbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2li aWxpdHkgdHJlZSxkZWZzLGRlZnMsZGVmcy5odG1sLG5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUN Cm5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUsZGlzY2FyZCxkaXNjYXJkLGRpc2NhcmQuaHRtbCxu b3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlDQpub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLGhhdGNo LGhhdGNoLGhhdGNoLmh0bWwsbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vz c2liaWxpdHkgdHJlZSxoYXRjaHBhdGgsaGF0Y2hQYXRoLGhhdGNoUGF0aC5odG1sLG5vdCBpbiBh Y2Nlc3NpYmlsaXR5IHRyZWUNCm5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUsbGluZWFyR3JhZGll bnQsbGluZWFyR3JhZGllbnQsbGluZWFyR3JhZGllbnQuaHRtbCxub3QgaW4gYWNjZXNzaWJpbGl0 eSB0cmVlDQpub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLG1hcmtlcixtYXJrZXIsbWFya2VyLmh0 bWwsbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSxw YXR0ZXJuLHBhdHRlcm4scGF0dGVybi5odG1sLG5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCm5v dCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUscmFkaWFsR3JhZGllbnQscmFkaWFsR3JhZGllbnQscmFk aWFsR3JhZGllbnQuaHRtbCxub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlDQpub3QgaW4gYWNjZXNz aWJpbGl0eSB0cmVlLHNvbGlkQ29sb3Isc29saWRDb2xvcixzb2xpZENvbG9yLmh0bWwsbm90IGlu IGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSxzdG9wLHN0b3As c3RvcC5odG1sLG5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCm5vdCBpbiBhY2Nlc3NpYmlsaXR5 IHRyZWUsc3R5bGUsc3R5bGUsc3R5bGUuaHRtbCxub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlDQpu b3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLHN5bWJvbCxzeW1ib2wsc3ltYm9sLmh0bWwsbm90IGlu IGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSx0aXRsZSx0aXRs ZSx0aXRsZS5odG1sLG5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCm5vdCBpbiBhY2Nlc3NpYmls aXR5IHRyZWUscmVjdCxyZWN0LHJlY3QuaHRtbCxub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlDQpu b3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLGNpcmNsZSxjaXJjbGUsY2lyY2xlLmh0bWwsbm90IGlu IGFjY2Vzc2liaWxpdHkgdHJlZQ0Kbm90IGluIGFjY2Vzc2liaWxpdHkgdHJlZSxlbGlwc2UsZWxp cHNlLGVsaXBzZS5odG1sLG5vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCm5vdCBpbiBhY2Nlc3Np YmlsaXR5IHRyZWUsbGluZSxsaW5lLGxpbmUuaHRtbCxub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVl DQpub3QgaW4gYWNjZXNzaWJpbGl0eSB0cmVlLGVsaXBzZSxlbGlwc2UsZWxpcHNlMS5odG1sLG5v dCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUNCg= --0__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A Content-type: application/octet-stream; name="extract.pl" Content-Disposition: attachment; filename="extract.pl" Content-ID: <3__ BBF58DDFD4283A8f9e8a93df938690918c0AB@> Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9wZXJsDQoNCiMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQo9aGVhZDIgcG9wdWxh dGVfdGVzdF90ZW1wbGF0ZQ0KIA0KIFBhcmFtZXRlcnMgIDogdGVtcGxhdGUsIHRlc3RfZGVzY3Jp cHRpb24sIHRlc3RhYmxlX3N0YXRlbWVudA0KIFJldHVybnMgICAgIDogc3RyaW5nDQogRGVzY3Jp cHRpb24gOiBQb3B1bGF0ZXMgdGhlIHRlbXBsYXRlIHdpdGggdGhlIHRlc3QgZGVzY3JpcHRpb24g YW5kIHRlc3RhYmxlIHN0YXRlbWVudCANCiAJCQkgICBhbmQgcmV0dXJucyB0aGUgY29tcGxldGVk IHRlc3Qgc3RyaW5nLg0KIA0KPWN1dA0KDQpzdWIgcG9wdWxhdGVfdGVzdF90ZW1wbGF0ZSAoJCQk KSB7DQoJbXkgJHRlbXBsYXRlID0gJF9bMF07DQoNCgkjIE9ubHkgYWRkIHRoZSB4bGluayByZWZl cmVuY2Ugd2hlbiBuZWVkZWQsIG90aGVyaXNlIHJlbW92ZSBYTElOSyBmcm9tIHRoZSB0ZW1wbGF0 ZQ0KCWlmICggaW5kZXgoICRfWzJdLCAneGxpbmsnICkgPiAtMSApIHsNCgkJJHRlbXBsYXRlID1+ IHMvWExJTksveG1sbnM6eGxpbms9Imh0dHA6XC9cL3d3dy53My5vcmdcLzE5OTlcL3hsaW5rIiAv Ow0KCX0NCgllbHNlIHsNCgkJJHRlbXBsYXRlID1+IHMvWExJTksvLzsNCgl9DQoNCgkkdGVtcGxh dGUgPX4gcy9DT01NRU5ULyRfWzFdLzsNCgkkdGVtcGxhdGUgPX4gcy9URVNUQUJMRV9TVEFURU1F TlQvJF9bMl0vOw0KDQoJcmV0dXJuICR0ZW1wbGF0ZTsNCn0NCg0KIy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vDQoNCj1oZWFkMiB3cml0ZV90ZXN0ZmlsZQ0KIA0KIFBhcmFtZXRlcnMgIDogY29udGVudHMs IGRpcmVjdG9yeSwgdGVzdF9uYW1lLCBzdWZmaXgNCiBSZXR1cm5zICAgICA6IHRoZSBmaWxlbmFt ZSBvZiB0aGUgdGVzdCBmaWxlDQogRGVzY3JpcHRpb24gOiB3cml0ZXMgdGhlIGNvbnRlbnRzIHRv IGEgZmlsZSBpbiBkaXJlY3RvcnksIHRoZSBuYW1lIG9mIHRoZSBmaWxlDQoJCQkgICBpcyBkZXRl cm1pbmVkIGZyb20gdGVzdF9uYW1lIGFuZCBzdWZmaXggaXMgYWRkZWQNCiANCj1jdXQNCg0Kc3Vi IHdyaXRlX3Rlc3RmaWxlICgkJCQkKSB7DQoJbXkgJGNvbnRlbnRzID0gJF9bMF07DQoJY2hkaXIg JF9bMV07DQoJbXkgJGZpbGVuYW1lID0gY3JlYXRlX2ZpbGVuYW1lKCAkX1syXSwgJF9bM10gKTsN CglvcGVuKCBteSAkZmgsICI+OmVuY29kaW5nKFVURi04KSIsICRmaWxlbmFtZSApDQoJICB8fCBk aWUgImNhbid0IG9wZW4gVVRGLTggZW5jb2RlZCAkZmlsZW5hbWU6ICQhIjsNCglwcmludCAkZmgg JGNvbnRlbnRzOw0KCWNsb3NlICRmaDsNCglyZXR1cm4gJGZpbGVuYW1lOw0KfQ0KDQojLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8NCg0KPWhlYWQyIGNyZWF0ZV9maWxlbmFtZQ0KIA0KIFBhcmFtZXRlcnMg IDogdGVzdG5hbWUsIHN1ZmZpeA0KIFJldHVybnMgICAgIDogZmlsZW5hbWUgKHVudXNlZCBpbiBj d2QpDQogRGVzY3JpcHRpb24gOiB0cnlzIHRvIHVzZSB0aGUgZmlsZW5hbWUgKyBzdWZmaXgsIGlm IGl0IGV4aXN0cyBpdCBhZGRzIGludGVnZXJzIHRvDQoJCQkgICBmaWxlbmFtZSB1bnRpbCBhbiB1 bnVzZWQgZmlsZW5hbWUgaXMgZm91bmQuIA0KIA0KPWN1dA0KDQpzdWIgY3JlYXRlX2ZpbGVuYW1l KCQkKSB7DQoJbXkgJG5hbWUgICAgID0gY3JlYXRlX2ZpbGVuYW1lX2Zyb21fdGVzdG5hbWUoICRf WzBdICk7DQoJbXkgJGl0ZXIgICAgID0gMDsNCglteSAkZmlsZW5hbWUgPSAkbmFtZSAuICRfWzFd Ow0KDQoJIyB0ZXN0IHdoZXRoZXIgdGhlICRmaWxlbmFtZSBpcyB1bnVzZWQsIGlmIG5vdCBhZGQg YW4gaW50ZWdlciB0byB0aGUgZW5kIG9mIHRoZSBmaWxlbmFtZQ0KCXdoaWxlICggLWUgJGZpbGVu YW1lICkgew0KCQkkaXRlcisrOw0KCQkkZmlsZW5hbWUgPSAkbmFtZSAuICRpdGVyIC4gJF9bMV07 DQoJfQ0KDQoJcmV0dXJuICRmaWxlbmFtZTsNCn0NCg0KIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoN Cj1oZWFkMiB0ZXN0X3R5cGUNCiANCiBQYXJhbWV0ZXJzICA6IHdpa2kgaGVhZGVyIGxpbmUNCiBS ZXR1cm5zICAgICA6IHRlc3QgdHlwZSANCiBEZXNjcmlwdGlvbiA6IHB1bGxzIHRoZSB0ZXN0IHR5 cGUgYnkgZmluZGluZyB0aGUgd29yZCBhZnRlciBUZXN0YWJsZSBzdGF0ZW1lbnRzIGZvci4NCiAN Cj1jdXQNCg0Kc3ViIHRlc3RfdHlwZSgkKSB7DQoJaWYgKGluZGV4KCRfWzBdLCAnbm90IGluY2x1 ZGVkIGluIGFjY2Vzc2liaWxpdHkgdHJlZScpID4gLTEpIHsNCgkJcmV0dXJuICdub3QgaW4gYWNj ZXNzaWJpbGl0eSB0cmVlJzsNCgl9DQoJbXkgJGluZCA9IGluZGV4KCAkX1swXSwgJ2ZvcicgKTsN CglteSAkdHlwZSA9IHN1YnN0ciggJF9bMF0sICRpbmQgKyAzICk7DQoNCgkkaW5kID0gaW5kZXgo ICR0eXBlLCAiPT0iICk7DQoJaWYgKCAkaW5kID4gMCApIHsNCgkJJHR5cGUgPSBzdWJzdHIoICR0 eXBlLCAwLCAkaW5kICk7DQoJfQ0KCSR0eXBlID1+IHMvXlxzK3xccyskLy9nOw0KCXJldHVybiAk dHlwZTsNCn0NCg0KIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCj1oZWFkMiBjcmVhdGVfZmlsZW5h bWVfZnJvbV90ZXN0bmFtZQ0KIA0KIFBhcmFtZXRlcnMgIDogdGVzdG5hbWUNCiBSZXR1cm5zICAg ICA6IGZpbGVuYW1lDQogRGVzY3JpcHRpb24gOiBjb252ZXJ0cyBhIHRlc3RuYW1lIHRvIGEgZmls ZW5hbWUuDQogDQo9Y3V0DQoNCnN1YiBjcmVhdGVfZmlsZW5hbWVfZnJvbV90ZXN0bmFtZSgkKSB7 DQoJbXkgJHRlc3RfbmFtZSA9ICRfWzBdOw0KDQoJIyByZXBsYWNlIHdoaXRlc3BhY2Ugd2l0aCBz aW5nbGUgdW5kZXJzY29yZQ0KCSR0ZXN0X25hbWUgPX4gcy9ccytfKi9fL2c7DQoNCgkjIHJlbW92 ZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycw0KCSR0ZXN0X25hbWUgPX4gcy9cVy8vZzsNCg0KCSMg dGFraW5nIG91dCB3b3JkIGFjY2Vzc2libGUgdG8gbWFrZSBuYW1lcyBzaG9ydGVyDQoJJHRlc3Rf bmFtZSA9fiBzL18qYWNjZXNzaWJsZS8vOw0KDQoJIyB0YWtpbmcgb3V0IHdvcmQgZm9yIHRvIG1h a2UgbmFtZXMgc2hvcnRlcg0KCSR0ZXN0X25hbWUgPX4gcy9fK2Zvcl8rLyAvOw0KDQoJIyByZW1v dmUgYW55IHRyYWlsaW5nIHVuZGVyc2NvcmVzDQoJJHRlc3RfbmFtZSA9fiBzL18rJC8vOw0KDQoJ IyByZW1vdmUgYW55IGxlYWRpbmcgdW5kZXJzY29yZXMNCgkkdGVzdF9uYW1lID1+IHMvXl8rLy87 DQoJcmV0dXJuICR0ZXN0X25hbWU7DQp9DQoNCj1oZWFkMiByZWFkX3Rlc3RmaWxlDQogDQogUGFy YW1ldGVycyAgOiBmaWxlbmFtZQ0KIFJldHVybnMgICAgIDogaGFzaCBvZiBhcnJheSBvZiB0ZXN0 cywga2V5IGlzIHRlc3QgdHlwZSAocm9sZSwgbmFtZSwgZGVzY3JpcHRpb24pDQogRGVzY3JpcHRp b24gOiBnZXRzIHRoZSB0ZXN0cyBhcyBhIGRlc2NyaXB0aW9uIFswXSBhbmQgYSB0ZXN0YWJsZSBz dGF0ZW1lbnQgWzFdDQogDQo9Y3V0DQoNCnN1YiByZWFkX3Rlc3RmaWxlICgkKSB7DQoJb3Blbigg RkgsICc8OmVuY29kaW5nKFVURi04KScsICRfWzBdICkgb3IgZGllICJDb3VsZCBub3Qgb3BlbiBm aWxlICckX1swXScgJCEiOw0KCW15IEBsaW5lcyA9IDxGSD47DQoJY2xvc2UgRkggb3IgZGllICJD YW5ub3QgY2xvc2UgJF9bMF06ICQhIjsNCg0KCW15ICVhbGx0ZXN0czsNCglteSAkdGVzdHM7DQoJ bXkgJGNvdW50ZXIgPSAwOw0KCWZvciAoICRpID0gMCA7ICRpIDwgQGxpbmVzIDsgJGkrKyApIHsN CgkJaWYgKCAkbGluZXNbJGldID1+IC9eXHMqPT1ccysvICYmICRsaW5lc1skaV0gPX4gL1xzKz09 JC8gKSB7DQoJCQlteSAkdHlwZSA9IHRlc3RfdHlwZSggJGxpbmVzWyRpXSApOw0KIwkJCXByaW50 ICR0eXBlLiJcbiI7DQoJCQlteSBAdGVzdHR5cGUgPSAoKTsNCgkJCSRhbGx0ZXN0c3skdHlwZX0g PSBcQHRlc3R0eXBlOw0KCQkJJHRlc3RzID0gXEB0ZXN0dHlwZTsNCgkJCSRjb3VudGVyID0gMDsN CgkJfQ0KCQlpZiAoICRsaW5lc1skaV0gPX4gL147XHMqXC9cLy8gKSB7DQoJCQlpZiAoICRsaW5l c1sgJGkgKyAxIF0gPX4gL15ccyppZi8gKSB7DQoJCQkJbXkgJHRsaW5lcyA9ICRsaW5lc1sgJGkg KyAxIF07DQoJCQkJbXkgJGluZGV4ID0gJGkgKyAyOw0KCQkJCSMgaWYgdGVzdGxpbmUgaXMgbXVs dGlwbGUgbGluZXMsIGdhdGhlciB1cCBhbGwgbGluZXMgd2l0aCBTVkcNCgkJCQlpZiAoIGluZGV4 KCAkdGxpbmVzLCAndGhlbicgKSA9PSAtMSApIHsJCQkJCQ0KCQkJCQl3aGlsZSAoICRpbmRleCA8 IEBsaW5lcyAmJiBpbmRleCggJHRsaW5lcywgJ3RoZW4nICkgPT0gLTEgKSB7DQoJCQkJCQkkdGxp bmVzID0gJHRsaW5lcyAuICRsaW5lc1skaW5kZXhdOw0KCQkJCQkJJGluZGV4Kys7DQoJCQkJCX0N CgkJCQl9DQoJCQkJDQoJCQkJbXkgQHRlc3QgPSAoICRsaW5lc1skaV0sICR0bGluZXMgKTsNCgkJ CQlAJHRlc3RzWyRjb3VudGVyXSA9IFxAdGVzdDsNCgkJCQkkY291bnRlcisrOw0KCQkJfQ0KCQl9 DQoJfQ0KCXJldHVybiAlYWxsdGVzdHM7DQp9DQoNCj1oZWFkMiBnZXRfc3ZnDQogDQogUGFyYW1l dGVycyAgOiB0ZXN0YWJsZSBzdGF0ZW1lbnQNCiBSZXR1cm5zICAgICA6IHN2ZyAgDQogRGVzY3Jp cHRpb24gOiBnZXRzIHRoZSBzdmcgdG8gYmUgcGxhY2VkIGluIHRoZSB0ZW1wbGF0ZQ0KIA0KPWN1 dA0KDQpzdWIgZ2V0X3N2ZygkKSB7DQoJIyBzdWJzdHJpbmcgZnJvbSB0aGUgZmlyc3QgPCB0byB0 aGUgJ3RoZW4nIGNsYXVzZQ0KCW15ICRzdGFydCA9IGluZGV4KCAkX1swXSwgJzwnICk7DQoJbXkg JGVuZCA9IHJpbmRleCggJF9bMF0sICc+JyApICsgMTsNCglyZXR1cm4gc3Vic3RyKCAkX1swXSwg JHN0YXJ0LCAoICRlbmQgLSAkc3RhcnQgKSApOw0KfQ0KDQo9aGVhZDIgZ2V0X2VsZW1lbnQNCiAN CiBQYXJhbWV0ZXJzICA6IHN2Zw0KIFJldHVybnMgICAgIDogZWxlbWVudCAodHlwZSkgdXNlZCBp biB0ZXN0ICANCiBEZXNjcmlwdGlvbiA6IHJldHVybnMgdGhlIGVsZW1lbnQgdHlwZSB3aXRoIHRo ZSBpZD0idGVzdCINCiANCj1jdXQNCg0Kc3ViIGdldF9lbGVtZW50KCQpIHsNCgkjIGZpbmQgaWQ9 InRlc3QiDQoJbXkgJGlkID0gaW5kZXgoJF9bMF0sICdpZD0idGVzdCInKTsNCglpZiAoJGlkID09 IC0xKSB7DQoJCSMgbm90IGZvdW5kLCB0cnkgYSB3ZWFrZXIgdGVzdA0KCQkkaWQgPSBpbmRleCgk X1swXSwgJyJ0ZXN0IicpOw0KCX0NCgkNCglteSAkc3RhcnQgPSByaW5kZXgoJF9bMF0sICc8Jywg JGlkKSArIDE7DQoJbXkgJGVuZCA9IGluZGV4KCRfWzBdLCAiICIsICRzdGFydCk7CQ0KCXJldHVy biBzdWJzdHIoJF9bMF0sICRzdGFydCwgJGVuZCAtICRzdGFydCk7DQp9DQoNCj1oZWFkMiBnZXRf ZXhwZWN0ZWRfcmVzdWx0DQogDQogUGFyYW1ldGVycyAgOiB0ZXN0YWJsZSBzdGF0ZW1lbnQNCiBS ZXR1cm5zICAgICA6IGV4cGVjdGVkIHJlc3VsdCAgDQogRGVzY3JpcHRpb24gOiBnZXRzIHRoZSBl eHBlY3RlZCByZXN1bHQgb2YgdGhlIHRlc3RhYmxlIHN0YXRlbWVudA0KIA0KPWN1dA0KDQpzdWIg Z2V0X2V4cGVjdGVkX3Jlc3VsdCgkKSB7DQoJbXkgJHYgPSAkX1swXTsNCglpZiAoaW5kZXgoJF9b MF0sICdOT0FDJykgPiAtMSkgew0KCQlyZXR1cm4gJ25vdCBpbiBhY2Nlc3NpYmlsaXR5IHRyZWUn Ow0KCX0gDQoJDQoJaWYgKGluZGV4KCRfWzBdLCAnQkxBTksnKSA+IC0xKSB7DQoJCXJldHVybiAn bnVsbCBvciBlbXB0eSc7DQoJfSANCgkkc3RhcnQgICAgID0gcmluZGV4KCAkX1swXSwgJz0nICk7 DQoJJGFsdF9zdGFydCA9IHJpbmRleCggJF9bMF0sICcidGVzdCJccyonICk7DQoJJHN0YXJ0ID0g KCAkYWx0X3N0YXJ0ID4gJHN0YXJ0ICkgPyAkYWx0X3N0YXJ0IDogJHN0YXJ0Ow0KCXJldHVybiBz dWJzdHIoICRfWzBdLCAkc3RhcnQgKTsNCn0NCg0KPWhlYWQyIGNsZWFuX2Zvcl9vdXRwdXQNCiAN CiBQYXJhbWV0ZXJzICA6IHN0cmluZyB0byBjbGVhbg0KIFJldHVybnMgICAgIDogY2xlYW5lZCBz dHJpbmcNCiBEZXNjcmlwdGlvbiA6IGNsZWFucyBhIHN0cmluZyB0byBiZSBwdXQgaW50byBhIGNz diBmaWxlLg0KIA0KPWN1dA0KDQpzdWIgY2xlYW5fZm9yX291dHB1dCgkKSB7DQoJJHN0cmluZyA9 ICRfWzBdOw0KDQoJIyByZXBsYWNlIGNvbW1hIHdpdGggYSBzcGFjZQ0KCSRzdHJpbmcgPX4gcy8s Ky8gL29nOw0KDQoJIyByZW1vdmUgYW4gZXF1YWwgc2lnbg0KCSRzdHJpbmcgPX4gcy9ccyo9XHMq Ly9vZzsNCg0KCSMgcmVtb3ZlIHF1b3Rlcw0KCSRzdHJpbmcgPX4gcy9cIipcJyovL29nOw0KDQoJ IyByZW1vdmUgYSBuZXdsaW5lDQoJJHN0cmluZyA9fiBzL1xuKi8vb2c7DQoNCgkjIHJlbW92ZSBl eGNlc3Mgd2hpdGVzcGFjZQ0KCSRzdHJpbmcgPX4gcy9ccysvIC9vZzsNCgkkc3RyaW5nID1+IHMv XlxzLy9vOw0KCSRzdHJpbmcgPX4gcy9ccyQvL287DQoJcmV0dXJuICRzdHJpbmc7DQp9DQoNCj1o ZWFkMiBhZGRfY3N2X2xpbmUNCiANCiBQYXJhbWV0ZXJzICA6IGNzdmZpbGVoYW5kbGUsIGNvbHVt bnMNCiBSZXR1cm5zICAgICA6ICBub25lDQogRGVzY3JpcHRpb24gOiBnZXRzIHRoZSBleHBlY3Rl ZCByZXN1bHQgb2YgdGhlIHRlc3RhYmxlIHN0YXRlbWVudA0KIA0KPWN1dA0KDQpzdWIgYWRkX2Nz dl9saW5lKCQkJCQkJCkgew0KCW15ICRmaCAgICA9IHNoaWZ0Ow0KCW15ICRjb3VudCA9IDA7DQoJ bXkgJGZpcnN0ID0gc2hpZnQ7DQoJbXkgJGNsZWFuX3ZhbHVlID0gY2xlYW5fZm9yX291dHB1dCgk Zmlyc3QpOw0KCXByaW50ICRmaCAkY2xlYW5fdmFsdWU7DQoJZm9yZWFjaCAkdmFsdWUgKEBfKSB7 CQ0KCQkkY2xlYW5fdmFsdWUgPSBjbGVhbl9mb3Jfb3V0cHV0KCR2YWx1ZSk7CQkNCgkJcHJpbnQg JGZoICcsJyAuICRjbGVhbl92YWx1ZTsNCgl9DQoJcHJpbnQgJGZoICJcbiI7DQp9DQoNCj1oZWFk MiBhZGRfanNvbl90ZXN0X29iamVjdA0KIA0KIFBhcmFtZXRlcnMgIDogZmlsZWhhbmRsZSwNCiBS ZXR1cm5zICAgICA6ICBub25lDQogRGVzY3JpcHRpb24gOiBnZXRzIHRoZSBleHBlY3RlZCByZXN1 bHQgb2YgdGhlIHRlc3RhYmxlIHN0YXRlbWVudA0KIA0KPWN1dA0KDQpzdWIgYWRkX2pzb25fdGVz dF9vYmplY3QoJCQkJCQkKSB7DQoJbXkgJGZoICAgPSBzaGlmdDsNCglteSAkanNvbiA9ICJcbiAg e1xuXHRcInRlc3RpbmdcIjpcIiI7DQoJJGpzb24gLj0gY2xlYW5fZm9yX291dHB1dCggJF9bMF0g KTsNCgkkanNvbiAuPSAiXCIsXG5cdFwiZWxlbWVudFwiOlwiIjsNCgkkanNvbiAuPSBjbGVhbl9m b3Jfb3V0cHV0KCAkX1sxXSApOw0KCSRqc29uIC49ICJcIixcblx0XCJhdHRyaWJ1dGVzXCI6XCIi Ow0KCSRqc29uIC49IGNsZWFuX2Zvcl9vdXRwdXQoICRfWzJdICk7DQoJJGpzb24gLj0gIlwiLFxu XHRcImZpbGVcIjpcIiI7DQoJJGpzb24gLj0gY2xlYW5fZm9yX291dHB1dCggJF9bM10gKTsNCgkk anNvbiAuPSAiXCIsXG5cdFwiZXhwZWN0ZWRcIjpcIiI7DQoJJGpzb24gLj0gY2xlYW5fZm9yX291 dHB1dCggJF9bNF0gKTsNCgkkanNvbiAuPSAiXCJcbiAgfSI7DQoJcHJpbnQgJGZoICRqc29uOw0K fQ0KDQojIG1haW4gcHJvZ3JhbQ0KDQokdGVzdF9kaXIgICAgICA9ICJjOlxcdGVzdFxcIjsNCiRo dG1sX2RpciAgICAgID0gJHRlc3RfZGlyIC4gImh0bWxcXCI7DQokc3ZnX2RpciAgICAgICA9ICR0 ZXN0X2RpciAuICJzdmdcXCI7DQokY3N2X2ZpbGVuYW1lICA9ICR0ZXN0X2RpciAuICJzdmdfdGVz dC5jc3YiOw0KJGpzb25fZmlsZW5hbWUgPSAkdGVzdF9kaXIgLiAic3ZndGVzdC5qc29uIjsNCm1r ZGlyKCR0ZXN0X2RpcikgdW5sZXNzICggLWQgJHRlc3RfZGlyICk7DQpta2RpcigkaHRtbF9kaXIp IHVubGVzcyAoIC1kICRodG1sX2RpciApOw0KbWtkaXIoJHN2Z19kaXIpICB1bmxlc3MgKCAtZCAk c3ZnX2RpciApOw0KDQpteSAkZmlsZW5hbWUgPSAnYzpcXGJvYlxcd2lraS50eHQnOw0KbXkgJWFs bHRlc3RzID0gcmVhZF90ZXN0ZmlsZSgkZmlsZW5hbWUpOw0KDQpteSAkaHRtbF90ZW1wbGF0ZSA9 ICc8IURPQ1RZUEUgaHRtbD4NCjxodG1sPg0KICAgPGhlYWQ+DQogICAgICA8bWV0YSBodHRwLWVx dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQog ICAgICA8dGl0bGU+IENPTU1FTlQgPC90aXRsZT4NCiAgIDwvaGVhZD4NCiAgIDxib2R5Pg0KICAg PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIFhMSU5LID4NCiAgICAgVEVT VEFCTEVfU1RBVEVNRU5UDQogICA8L3N2Zz4NCiAgIDwvYm9keT4NCjwvaHRtbD4nOw0KDQpteSAk c3ZnX3RlbXBsYXRlID0gJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBY TElOSyA+DQoJVEVTVEFCTEVfU1RBVEVNRU5UDQo8L3N2Zz4nOw0KDQojb3BlbiB0aGUgZGF0YWJh c2Ugb2YgdGVzdHMgZmlsZXMgKGNzdiBhbmQganNvbikNCm9wZW4oIG15ICRjc3YsICI+OmVuY29k aW5nKFVURi04KSIsICRjc3ZfZmlsZW5hbWUgKQ0KICB8fCBkaWUgImNhbid0IG9wZW4gVVRGLTgg ZW5jb2RlZCAkY3N2X2ZpbGVuYW1lOiAkISI7DQpvcGVuKCBteSAkanNvbiwgIj46ZW5jb2Rpbmco VVRGLTgpIiwgJGpzb25fZmlsZW5hbWUgKQ0KICB8fCBkaWUgImNhbid0IG9wZW4gVVRGLTggZW5j b2RlZCAkanNvbl9maWxlbmFtZTogJCEiOw0KDQojIHNldHVwIHRoZSBjc3YgZmlsZSwgYWRkIGNv bHVtbiBoZWFkZXJzDQphZGRfY3N2X2xpbmUoICRjc3YsICJURVNUSU5HIiwgIkVMRU1ORU5UIiwg IkFUVFJJQlVURVMiLCAiRklMRSIsICJFWFBFQ1RFRCBWQUxVRSIgKTsNCg0KIyBzdGFydCB0aGUg anNvbiBmaWxlIChvcGVuIGFuIGFycmF5KQ0KcHJpbnQgJGpzb24gIltcbiI7DQoNCiMgbWFpbiBs b29wLCBidWlsZGluZyB0ZXN0IGZpbGVzIGFuZCBkYXRhYmFzZSBmaWxlcw0KZm9yZWFjaCBteSAk a2V5ICgga2V5cyAlYWxsdGVzdHMgKSB7DQoJbXkgJHRlc3RzID0gJGFsbHRlc3RzeyRrZXl9Ow0K CW15ICRjID0gMDsNCgkNCgkjIHNpbXBsaWZ5IHRoZSB0eXBlIGZvciBkYXRhYmFzZSBmaWxlcyAo ZGVzY3JpcHRpb24sIG5hbWUsIHJvbGUpDQoJbXkgJHR5cGUgPSAka2V5Ow0KCSR0eXBlID1+IHMv Y2FsY3VsYXRpb24vL287DQoJDQoJIyBtYWtlIHRoZSB0ZXN0ZmlsZXMgYW5kIHBvcHVsYXRlIHRo ZSBkYXRhYmFzZSBmaWxlcw0KCWZvcmVhY2ggbXkgJHRlc3QgKEB7JGFsbHRlc3RzeyRrZXl9fSkg ew0KICAgICAgIA0KCQlteSAkc3ZnID0gZ2V0X3N2ZyggJCR0ZXN0WzFdICk7CQ0KCQlteSAkZWxl bWVudCA9IGdldF9lbGVtZW50KCRzdmcpOwkNCgkJbXkgJGNvbW1lbnQgID0gJCR0ZXN0WzBdOw0K CQkkY29tbWVudCA9fiBzLztccypcL1wvLy87DQoJCQ0KCQkjIG1ha2UgdGhlIEhUTUwgdGVzdCBm aWxlDQoJCW15ICRoID0gcG9wdWxhdGVfdGVzdF90ZW1wbGF0ZSggJGh0bWxfdGVtcGxhdGUsICRj b21tZW50LCAkc3ZnICk7DQoJCW15ICRodG1sX2ZpbGVuYW1lID0gd3JpdGVfdGVzdGZpbGUoICRo LCAkaHRtbF9kaXIsICQkdGVzdFswXSwgIi5odG1sIiApOw0KCQkNCgkJIyBtYWtlIHRoZSBTVkcg dGVzdCBmaWxlDQoJCW15ICRzID0gcG9wdWxhdGVfdGVzdF90ZW1wbGF0ZSggJHN2Z190ZW1wbGF0 ZSwgJGNvbW1lbnQsICRzdmcgKTsNCgkJbXkgJGZpbGVuYW1lID0gd3JpdGVfdGVzdGZpbGUoICRz LCAkc3ZnX2RpciwgJCR0ZXN0WzBdLCAiLnN2ZyIgKTsNCgkJDQoJCSMgYWRkIHRoZSB0ZXN0IHRv IHRoZSBjc3YgKEhUTUwpIGRhdGFiYXNlIGZpbGUNCgkJbXkgJGV4cGVjdGVkID0gZ2V0X2V4cGVj dGVkX3Jlc3VsdCggJCR0ZXN0WzFdICk7DQoJCWFkZF9jc3ZfbGluZSggJGNzdiwgJHR5cGUsICRl bGVtZW50LCAkY29tbWVudCwgJGh0bWxfZmlsZW5hbWUsICRleHBlY3RlZCApOw0KDQoJCSMgYWRk IHRoZSB0ZXN0IHRvIHRoZSBKU09OIChIVE1MKSBkYXRhYmFzZSBmaWxlDQoJCWlmICggJGMgPiAw ICkgew0KCQkJcHJpbnQgJGpzb24gJywnOw0KCQl9DQoJCWFkZF9qc29uX3Rlc3Rfb2JqZWN0KCAk anNvbiwgJHR5cGUsICRlbGVtZW50LCAkY29tbWVudCwgJGh0bWxfZmlsZW5hbWUsICRleHBlY3Rl ZCApOw0KCQkkYyA9IDE7DQoJfQ0KfQ0KDQojIGZpbmlzaCBhbmQgY2xvc2UgdGhlIEpTT04gZGF0 YWJhc2UgZmlsZQ0KcHJpbnQgJGpzb24gIlxuXSI7DQpjbG9zZSAkanNvbjsNCiMgY2xvc2UgdGhl IGNzdiBkYXRhYmFzZSBmaWxlDQpjbG9zZSAkY3N2Ow0KDQpwcmludCAncHJvZ3JhbSBleGl0ZWQg bm9ybWFsbHknOw0K --0__ BBF58DDFD4283A8f9e8a93df938690918c0ABBF58DDFD4283A--
Received on Thursday, 17 December 2015 14:01:47 UTC