PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPkNvbW1hbmQgbGluZSB1c2FnZSByZWNvbW1lbmRhdGlvbnM8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3N0eWxlL3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiPgo8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uLy4uL2luZGV4Lmh0bWwiIHRpdGxlPSJCb29zdCBUZXN0IExpYnJhcnkiPgo8bGluayByZWw9InVwIiBocmVmPSIuLi91c2FnZS1yZWNvbW1lbmRhdGlvbnMuaHRtbCIgdGl0bGU9IlRoZSB1bml0IHRlc3QgZnJhbWV3b3JrIHVzYWdlIHJlY29tbWVuZGF0aW9ucyI+CjxsaW5rIHJlbD0icHJldiIgaHJlZj0iZG90LW5ldC1zcGVjaWZpYy5odG1sIiB0aXRsZT0iTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gLk5FVCB1c2FnZSByZWNvbW1lbmRhdGlvbnMiPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0MS4yIiBzcmM9Ii4uLy4uLy4uL2pzL2Jvb3N0LXRlc3QuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+Cjx0ZCB3aWR0aD0iMTAlIj48YSBocmVmPSIuLi8uLi9pbmRleC5odG1sIj48aW1nIGFsdD0iSG9tZSIgd2lkdGg9IjIyOSIgaGVpZ2h0PSI2MSIgYm9yZGVyPSIwIiBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVzdC9kb2Nib29rL2ltZy9ib29zdC50ZXN0LmxvZ28ucG5nIj48L2E+PC90ZD4KPHRkIHZhbGlnbj0ibWlkZGxlIiBhbGlnbj0ibGVmdCI+ICZndDsgPGEgaHJlZj0iLi4vLi4vdXRmLmh0bWwiPlRoZSBVbml0IFRlc3QgRnJhbWV3b3JrPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uL3VzYWdlLXJlY29tbWVuZGF0aW9ucy5odG1sIj5Vc2FnZSByZWNvbW1lbmRhdGlvbnM8L2E+ICZndDsgPGI+Q29tbWFuZC1saW5lIChub24tR1VJKSB1c2VycyBzcGVjaWZpYzwvYj4KPC90ZD4KPHRkPjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPjxhIGhyZWY9ImRvdC1uZXQtc3BlY2lmaWMuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9InV0Zi51c2FnZS1yZWNvbW1lbmRhdGlvbnMuY29tbWFuZC1saW5lLXNwZWNpZmljIj48L2E+Q29tbWFuZCBsaW5lIHVzYWdlIHJlY29tbWVuZGF0aW9uczwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9InFhbmRhc2V0Ij4KPGRsPgo8ZHQ+IDxhIGhyZWY9ImNvbW1hbmQtbGluZS1zcGVjaWZpYy5odG1sI2lkNjYzODQxIj4KICAgICAgSWYgeW91IGdvdCBmYXRhbCBleGNlcHRpb24gc29tZXdoZXJlIHdpdGhpbiB0ZXN0IGNhc2UsIG1ha2UgcHJvZ3JhbSBnZW5lcmF0ZSBjb3JlZHVtcCBieSBhZGRpbmcgZXh0cmEgY29tbWFuZCAKICAgICAgbGluZSBhcmd1bWVudAogICAgIDwvYT4KPC9kdD4KPGR0PiA8YSBocmVmPSJjb21tYW5kLWxpbmUtc3BlY2lmaWMuaHRtbCNpZDY2Mzg3MiI+CiAgICAgIEhvdyB0byB1c2UgdGVzdCBtb2R1bGUgYnVpbGQgd2l0aCBCb29zdC5UZXN0IGZyYW1ld29yayB1bmRlciBtYW5hZ2VtZW50IG9mIGF1dG9tYXRlZCByZWdyZXNzaW9uIHRlc3QgZmFjaWxpdGllcz8KICAgICA8L2E+CjwvZHQ+CjwvZGw+Cjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9IlEgYW5kIEEgU2V0Ij4KPGNvbCBhbGlnbj0ibGVmdCIgd2lkdGg9IjElIj4KPHRib2R5Pgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImlkNjYzODQxIj48L2E+PGEgbmFtZT0iaWQ2NjM4NDMiPjwvYT4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGI+PHA+CiAgICAgIElmIHlvdSBnb3QgZmF0YWwgZXhjZXB0aW9uIHNvbWV3aGVyZSB3aXRoaW4gdGVzdCBjYXNlLCBtYWtlIHByb2dyYW0gZ2VuZXJhdGUgY29yZWR1bXAgYnkgYWRkaW5nIGV4dHJhIGNvbW1hbmQgCiAgICAgIGxpbmUgYXJndW1lbnQKICAgICA8L3A+PC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgICBJZiB5b3UgZ290ICJtZW1vcnkgYWNjZXNzIHZpb2xhdGlvbiIgbWVzc2FnZSAob3IgYW55IG90aGVyIG1lc3NhZ2UgaW5kaWNhdGlvbiBmYXRhbCBvciBzeXN0ZW0gZXJyb3IpIHdoZW4geW91IAogICAgICBydW4geW91IHRlc3QsIHRvIGdldCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvciBsb2NhdGlvbiBhZGQgLS1jYXRjaF9zeXN0ZW1fZXJyb3JzPW5vIHRvIHRoZSB0ZXN0IHJ1biAKICAgICAgY29tbWFuZCBsaW5lLiBOb3cgcnVuIHRoZSB0ZXN0IGFnYWluIGFuZCBpdCB3aWxsIGNyZWF0ZSBhIGNvcmVkdW1wIHlvdSBjb3VsZCBhbmFseXplIHVzaW5nIHlvdSBwcmVmZXJhYmxlIAogICAgICBkZWJ1Z2dlci4gT3IgcnVuIGl0IHVuZGVyIGRlYnVnZ2VyIGluIGEgZmlyc3QgcGxhY2UgYW5kIGl0IHdpbGwgYnJlYWsgYXQgdGhlIHBvaW50IG9mIGZhaWx1cmUuCiAgICAgPC9wPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0icXVlc3Rpb24iPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGEgbmFtZT0iaWQ2NjM4NzIiPjwvYT48YSBuYW1lPSJpZDY2Mzg3NCI+PC9hPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj48cD4KICAgICAgSG93IHRvIHVzZSB0ZXN0IG1vZHVsZSBidWlsZCB3aXRoIEJvb3N0LlRlc3QgZnJhbWV3b3JrIHVuZGVyIG1hbmFnZW1lbnQgb2YgYXV0b21hdGVkIHJlZ3Jlc3Npb24gdGVzdCBmYWNpbGl0aWVzPwogICAgIDwvcD48L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICAgIE15IGZpcnN0IHJlY29tbWVuZGF0aW9uIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0IGZyYW1ld29yayBjYXRjaGVzIGFsbCBmYXRhbCBlcnJvcnMgYnkgYWRkaW5nIGFyZ3VtZW50CiAgICAgIC0tY2F0Y2hfc3lzdGVtX2Vycm9yPXllcyB0byBhbGwgdGVzdCBtb2R1bGVzIGludm9jYXRpb25zLiBPdGhlcndpc2UgdGVzdCBwcm9ncmFtIG1heSBwcm9kdWNlIHVud2FudGVkIAogICAgICBkaWFsb2dzIChkZXBlbmRzIG9uIGNvbXBpbGVyIGFuZCBPUykgdGhhdCB3aWxsIGhhbHQgeW91IHJlZ3Jlc3Npb24gdGVzdHMgcnVuLiBUaGUgc2Vjb25kIHJlY29tbWVuZGF0aW9uIGlzIHRvIAogICAgICBzdXBwcmVzcyByZXN1bHQgcmVwb3J0IG91dHB1dCBieSBhZGRpbmcgLS1yZXBvcnRfbGV2ZWw9bm8gYXJndW1lbnQgYW5kIHRlc3QgbG9nIG91dHB1dCBieSBhZGRpbmcgCiAgICAgIC0tbG9nX2xldmVsPW5vdGhpbmcgYXJndW1lbnQsIHNvIHRoYXQgdGVzdCBtb2R1bGUgd29uJ3QgcHJvZHVjZSB1bmRlc2lyYWJsZSBvdXRwdXQgbm8gb25lIGlzIGdvaW5nIHRvIGxvb2sgYXQgCiAgICAgIGFueXdheS4gSSByZWNvbW1lbmQgcmVseWluZyBvbmx5IG9uIHJlc3VsdCBjb2RlIHRoYXQgd2lsbCBiZSBjb25zaXN0ZW50IGZvciBhbGwgdGVzdCBwcm9ncmFtcy4gQW4gCiAgICAgIGFsdGVybmF0aXZlIHRvIG15IHNlY29uZCByZWNvbW1lbmRhdGlvbiBpcyBkaXJlY3QgYm90aCBsb2cgYW5kIHJlcG9ydCB0byBzZXBhcmF0ZSBmaWxlIHlvdSBjb3VsZCBhbmFseXplIAogICAgICBsYXRlciBvbi4gTW9yZW92ZXIgeW91IGNhbiAgbWFrZSBCb29zdC5UZXN0IHRvIHByb2R1Y2UgdGhlbSBpbiBYTUwgZm9ybWF0IHVzaW5nIG91dHB1dF9mb3JtYXQ9WE1MIGFuZCB1c2Ugc29tZSAKICAgICAgYXV0b21hdGVkIHRvb2wgdGhhdCB3aWxsIGZvcm1hdCB0aGlzIGluZm9ybWF0aW9uIGFzIHlvdSBsaWtlLgogICAgIDwvcD48L3RkPgo8L3RyPgo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPC9kaXY+Cjx0YWJsZSB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgd2lkdGg9IjEwMCUiPjx0cj4KPHRkIGFsaWduPSJsZWZ0Ij48L3RkPgo8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgqSAyMDAxLTIwMDcgR2VubmFkaXkgUm96ZW50YWw8L2Rpdj48L3RkPgo8L3RyPjwvdGFibGU+Cjxocj4KPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+CjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZG90LW5ldC1zcGVjaWZpYy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL3VzYWdlLXJlY29tbWVuZGF0aW9ucy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K