PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlRlc3QgT3V0cHV0IG9yIGxldCdzIHNlZSB3aGF0IHlvdSBnb3QgZm9yIHlvdXIgbW9uZXk8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3N0eWxlL3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiPgo8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uLy4uL2luZGV4Lmh0bWwiIHRpdGxlPSJCb29zdCBUZXN0IExpYnJhcnkiPgo8bGluayByZWw9InVwIiBocmVmPSIuLi91c2VyLWd1aWRlLmh0bWwiIHRpdGxlPSJVbml0IFRlc3QgRnJhbWV3b3JrOiBVc2VyJ3MgZ3VpZGUiPgo8bGluayByZWw9InByZXYiIGhyZWY9ImZpeHR1cmUvZ2xvYmFsLmh0bWwiIHRpdGxlPSJHbG9iYWwgZml4dHVyZSI+CjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0idGVzdC1vdXRwdXQvdGVzdC1sb2cuaHRtbCIgdGl0bGU9IlRlc3QgbG9nIG91dHB1dCI+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjIiIHNyYz0iLi4vLi4vLi4vanMvYm9vc3QtdGVzdC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgo8dGFibGUgd2lkdGg9IjEwMCUiPjx0cj4KPHRkIHdpZHRoPSIxMCUiPjxhIGhyZWY9Ii4uLy4uL2luZGV4Lmh0bWwiPjxpbWcgYWx0PSJIb21lIiB3aWR0aD0iMjI5IiBoZWlnaHQ9IjYxIiBib3JkZXI9IjAiIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZXN0L2RvY2Jvb2svaW1nL2Jvb3N0LnRlc3QubG9nby5wbmciPjwvYT48L3RkPgo8dGQgdmFsaWduPSJtaWRkbGUiIGFsaWduPSJsZWZ0Ij4gJmd0OyA8YSBocmVmPSIuLi8uLi91dGYuaHRtbCI+VGhlIFVuaXQgVGVzdCBGcmFtZXdvcms8L2E+ICZndDsgPGEgaHJlZj0iLi4vdXNlci1ndWlkZS5odG1sIj5Vc2VyJ3MgZ3VpZGU8L2E+PGEgaHJlZj0iLi4vdGVzdGluZy10b29scy5odG1sIj4KICAgICAgJmd0OwogICAgICA8L2E+PGI+VGVzdCBPdXRwdXQgPC9iPjxhIGhyZWY9InJ1bnRpbWUtY29uZmlnLmh0bWwiPgogICAgICAmZ3Q7CiAgICAgIDwvYT4KPC90ZD4KPHRkPjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBocmVmPSJmaXh0dXJlL2dsb2JhbC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBocmVmPSJ0ZXN0LW91dHB1dC90ZXN0LWxvZy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KPC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9InV0Zi51c2VyLWd1aWRlLnRlc3Qtb3V0cHV0Ij48L2E+VGVzdCBPdXRwdXQgIG9yIGxldCdzIHNlZSB3aGF0IHlvdSBnb3QgZm9yIHlvdXIgbW9uZXk8L2g0PjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgVGhlIG91dHB1dCBwcm9kdWNlZCBieSBhIHRlc3QgbW9kdWxlIGlzIG9uZSBvZiB0aGUgbWFqb3IgYXNzZXRzIHRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBicmluZ3MgdG8gdXNlcnMuIEluIGNvbXBhcmlzb24gd2l0aCBhbnkKICBraW5kIG9mIG1hbnVhbC9hc3NlcnQgYmFzZWQgc29sdXRpb24gdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IHByb3ZpZGUgZm9sbG93aW5nIHNlcnZpY2VzOgogPC9wPgo8ZGl2IHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+CjxsaT4KPHA+QWxsIHRlc3QgZXJyb3JzIGFyZSByZXBvcnRlZCB1bmlmb3JtbHk8L3A+CjxwPgogICAgVGhlIHRlc3QgZXhlY3V0aW9uIG1vbml0b3IgYWxvbmcgd2l0aCBzdGFuZGFyZGl6ZWQgb3V0cHV0IGZyb20gYWxsIGluY2x1ZGVkCiAgICA8YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vdGVzdGluZy10b29scy5odG1sIiB0aXRsZT0iVGhlIFVURiB0ZXN0aW5nIHRvb2xzIG9yIHRlc3RlcidzIHRvb2xib3ggZm9yIGFsbCBvY2Nhc2lvbnMiPnRlc3RpbmcgdG9vbHM8L2E+IHByb3ZpZGVzIHVuaWZvcm0gcmVwb3J0aW5nIGZvciBhbGwgZXJyb3JzIGluY2x1ZGluZyBmYXRhbAogICAgZXJyb3JzLCBsaWtlIG1lbW9yeSBhc3Nlc3MgdmlvbGF0aW9uIGFuZCB1bmNhdWdodCBleGNlcHRpb25zLgogICA8L3A+CjwvbGk+CjxsaT4KPHA+RGV0YWlsZWQgaW5mb3JtYXRpb24gb24gdGhlIHNvdXJjZSBvZiBhbiBlcnJvcjwvcD4KPHA+CiAgICBUaGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4gdGVzdCB0b29sJ3MgYmFzZWQgYXNzZXJ0aW9uIHByb3ZpZGVzIGFzIG11Y2ggaW5mb3JtYXRpb24gYXMgcG9zc2libGUgYWJvdXQgY2F1c2Ugb2YgZXJyb3IsCiAgICB1c3VhbGx5ICBhbGxvd2luZyB5b3UgdG8gZGVkdWNlIHdoYXQgaXMgd3Jvbmcgd2l0aG91dCBlbnRlcmluZyB0aGUgZGVidWdnZXIgb3IgY29yZSBhbmFseXNpcy4KICAgPC9wPgo8L2xpPgo8bGk+CjxwPgogICAgU2VwYXJhdGlvbiBvZiB0aGUgdGVzdCBlcnJvcnMgZGVzY3JpcHRpb24gKHRlc3QgbG9nKSBmcm9tIHRoZSByZXN1bHRzIHJlcG9ydCBzdW1tYXJ5ICh0ZXN0IHJlc3VsdHMgcmVwb3J0KQogICA8L3A+CjxwPgogICAgVGhlIGluZm9ybWF0aW9uIHByb2R1Y2VkIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbiwgaW5jbHVkaW5nIGFsbCBlcnJvciwgd2FybmluZyBhbmQgaW5mbyBtZXNzYWdlcyBmcm9tIHRoZSB0ZXN0CiAgICB0b29scywgZXhlY3V0ZWQgdGVzdCB1bml0cyBub3RpZmljYXRpb24gY29uc3RpdHV0ZSB0aGUgdGVzdCBsb2cuIEJ5IGRlZmF1bHQgYWxsIGVudHJpZXMgaW4gdGhlIHRlc3QgbG9nIGFyZQogICAgZGlyZWN0ZWQgdG8gdGhlIHN0YW5kYXJkIG91dHB1dC4gT25jZSB0ZXN0aW5nIGlzIGNvbXBsZXRlZCB0aGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4gbWF5IHByb2R1Y2UgYSBzdW1tYXJ5IHRlc3QgcmVwb3J0IHdpdGgKICAgIGRpZmZlcmVudCBsZXZlbHMgb2YgZGV0YWlsLiBUaGUgdGVzdCByZXBvcnQgaXMgYnkgZGVmYXVsdCBkaXJlY3RlZCB0byB0aGUgc3RhbmRhcmQgZXJyb3Igb3V0cHV0LgogICA8L3A+CjwvbGk+CjxsaT4KPHA+RmxleGliaWxpdHkgaW4gd2hhdCBpcyBzaG93biBpbiB0aGUgb3V0cHV0PC9wPgo8cD4KICAgIFRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgd2hhdCBpZiBzaG93biBpbiBib3RoIHRoZSB0ZXN0IGxvZyBhbmQgdGhlIHRlc3QgcmVwb3J0LiBUaGUKICAgIGNvbmZpZ3VyYXRpb24gaXMgc3VwcG9ydGVkIGJvdGggYXQgcnVudGltZSwgZHVyaW5nIHRlc3QgbW9kdWxlIGludm9jYXRpb24gYW5kIGF0IGNvbXBpbGUgdGltZSBmcm9tIHdpdGhpbiBhCiAgICB0ZXN0IG1vZHVsZS4KICAgPC9wPgo8L2xpPgo8bGk+CjxwPkZsZXhpYmlsaXR5IGluIGhvdyBvdXRwdXQgaXMgZm9ybWF0dGVkPC9wPgo8cD4KICAgIFRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgdGhlIGZvcm1hdCBvZiB0aGUgdGVzdCBtb2R1bGUgb3V0cHV0LiBBdCB0aGUgbW9tZW50IG9ubHkgMiBmb3JtYXRzCiAgICBhcmUgc3VwcG9ydGVkIGJ5IHRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBpdHNlbGYsIHRoZSB3ZWxsIGRlZmluZWQgcHVibGljIGludGVyZmFjZSBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhbiBvdXRwdXQgZm9yCiAgICB5b3VyIHB1cnBvc2VzIGFsbW9zdCBhbnkgd2F5IHlvdSB3YW50LgogICA8L3A+CjwvbGk+CjwvdWw+PC9kaXY+CjwvZGl2Pgo8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cjx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KPHRkIGFsaWduPSJyaWdodCI+PGRpdiBjbGFzcz0iY29weXJpZ2h0LWZvb3RlciI+Q29weXJpZ2h0IKkgMjAwMS0yMDA3IEdlbm5hZGl5IFJvemVudGFsPC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImZpeHR1cmUvZ2xvYmFsLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vdXNlci1ndWlkZS5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJ0ZXN0LW91dHB1dC90ZXN0LWxvZy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=