PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlRoZSBVVEYgY29tcGlsYXRpb24gdmFyaWFudHMgYW5kIHByb2NlZHVyZXM8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3N0eWxlL3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiPgo8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJCb29zdCBUZXN0IExpYnJhcnkiPgo8bGluayByZWw9InVwIiBocmVmPSIuLi91dGYuaHRtbCIgdGl0bGU9IlBhcnSgSVYuoEJvb3N0IFRlc3QgTGlicmFyeTogVGhlIFVuaXQgVGVzdCBGcmFtZXdvcmsiPgo8bGluayByZWw9InByZXYiIGhyZWY9Ii4uL3R1dG9yaWFscy9uZXcteWVhci1yZXNvbHV0aW9uLmh0bWwiIHRpdGxlPSdCb29zdC5UZXN0IGRyaXZlbiBkZXZlbG9wbWVudCBvciAiZ2V0dGluZyBzdGFydGVkIiBmb3IgVEREIGZvbGxvd2Vycyc+CjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iY29tcGlsYXRpb24vc3RhbmRhbG9uZS5odG1sIiB0aXRsZT0iU3RhbmRhbG9uZSBsaWJyYXJ5IGNvbXBpbGF0aW9uIj4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdDEuMiIgc3JjPSIuLi8uLi9qcy9ib29zdC10ZXN0LmpzIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cjx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgd2lkdGg9IjEwJSI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBhbHQ9IkhvbWUiIHdpZHRoPSIyMjkiIGhlaWdodD0iNjEiIGJvcmRlcj0iMCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9saWJzL3Rlc3QvZG9jYm9vay9pbWcvYm9vc3QudGVzdC5sb2dvLnBuZyI+PC9hPjwvdGQ+Cjx0ZCB2YWxpZ249Im1pZGRsZSIgYWxpZ249ImxlZnQiPiAmZ3Q7IDxhIGhyZWY9Ii4uL3V0Zi5odG1sIj5UaGUgVW5pdCBUZXN0IEZyYW1ld29yazwvYT4gJmd0OyA8Yj5Db21waWxhdGlvbjwvYj48YSBocmVmPSJ1c2VyLWd1aWRlLmh0bWwiPgogICAgICAmZ3Q7CiAgICAgIDwvYT4KPC90ZD4KPHRkPjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBocmVmPSIuLi90dXRvcmlhbHMvbmV3LXllYXItcmVzb2x1dGlvbi5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBocmVmPSJjb21waWxhdGlvbi9zdGFuZGFsb25lLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgo8L2Rpdj48L3RkPgo8L3RyPjwvdGFibGU+Cjxocj4KPGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0idXRmLmNvbXBpbGF0aW9uIj48L2E+VGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGNvbXBpbGF0aW9uIHZhcmlhbnRzIGFuZCBwcm9jZWR1cmVzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0idG9jIj4KPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgo8ZGw+CjxkdD48YSBocmVmPSJjb21waWxhdGlvbi9zdGFuZGFsb25lLmh0bWwiPlN0YW5kYWxvbmUgbGlicmFyeSBjb21waWxhdGlvbjwvYT48L2R0Pgo8ZHQ+PGEgaHJlZj0iY29tcGlsYXRpb24vYXV0by1saW5raW5nLmh0bWwiPkF1dG8tbGlua2luZyBzdXBwb3J0PC9hPjwvZHQ+CjxkdD48YSBocmVmPSJjb21waWxhdGlvbi9kaXJlY3QtaW5jbHVkZS5odG1sIj5EaXJlY3QgaW5jbHVkZTwvYT48L2R0Pgo8L2RsPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJ1dGYuY29tcGlsYXRpb24uaW1wbCI+PC9hPjwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIFRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBpcyBjb21wYXJhdGl2ZWx5IGNvbXBsaWNhdGVkIGNvbXBvbmVudCBhbmQgaXMgaW1wbGVtZW50ZWQgaW4gY2xvc2UgdG8gaHVuZHJlZCBoZWFkZXIgYW5kIHNvdXJjZSBmaWxlcywKICAgIHNvIGZvciBsb25nIHRlcm0gdXNhZ2UgdGhlIHByZWZlcmFibGUgc29sdXRpb24gaXMgdG8gYnVpbGQgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGFzIGEgcmV1c2FibGUgc3RhbmRhbG9uZSBsaWJyYXJ5LgogICAgRGVwZW5kaW5nIG9uIHlvdXIgcGxhdGZvcm0gdGhpcyBtYXkgc2F2ZSB5b3UgYSBzaWduaWZpY2FudCB0aW1lIGR1cmluZyB0ZXN0IG1vZHVsZSBjb21waWxhdGlvbiBhbmQgZG9lc24ndAogICAgcmVhbGx5IHJlcXVpcmUgdGhhdCBtdWNoIGVmZm9ydC4gCiAgICA8YSBocmVmPSJodHRwOi8vYm9vc3Qub3JnL21vcmUvZ2V0dGluZ19zdGFydGVkL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+Qm9vc3QgR2V0dGluZyBzdGFydGVkPC9hPiB0ZWxscyB5b3UgaG93IHRvIGdldCAKICAgIHByZS1idWlsdCBsaWJyYXJpZXMgZm9yIHNvbWUgcGxhdGZvcm1zLiBJZiBhdmFpbGFibGUsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uIGFuZCB5b3UgY2FuIGlnbm9yZSBzdGFuZGFsb25lIAogICAgbGlicmFyeSBjb21waWxhdGlvbiBpbnN0cnVjdGlvbnMgYmVsb3cuCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgRm9sbG93aW5nIGZpbGVzIGNvbnN0aXR1dGUgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGltcGxlbWVudGF0aW9uOiAKICAgPC9wPgo8ZGl2IHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0iZmlsZXMtbGlzdCI+PHVsIHR5cGU9ImRpc2MiPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL2RlYnVnLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRlYnVnLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC9jb21waWxlcl9sb2dfZm9ybWF0dGVyLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmNvbXBpbGVyX2xvZ19mb3JtYXR0ZXIuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL2V4Y2VwdGlvbl9zYWZldHkuaXBwIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZXhjZXB0aW9uX3NhZmV0eS5jcHA8L2NvZGU+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9ib29zdC90ZXN0L2ltcGwvZXhlY3V0aW9uX21vbml0b3IuaXBwIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZXhlY3V0aW9uX21vbml0b3IuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL2ZyYW1ld29yay5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mcmFtZXdvcmsuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL2ludGVyYWN0aW9uX2Jhc2VkLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmludGVyYWN0aW9uX2Jhc2VkLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC9sb2dnZWRfZXhwZWN0YXRpb25zLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxvZ2dlZF9leHBlY3RhdGlvbnMuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaXBwIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+cGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5jcHA8L2NvZGU+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9ib29zdC90ZXN0L2ltcGwvcHJvZ3Jlc3NfbW9uaXRvci5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5wcm9ncmVzc19tb25pdG9yLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC9yZXN1bHRzX2NvbGxlY3Rvci5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5yZXN1bHRzX2NvbGxlY3Rvci5jcHA8L2NvZGU+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19yZXBvcnRlci5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5yZXN1bHRzX3JlcG9ydGVyLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfbG9nLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnVuaXRfdGVzdF9sb2cuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tYWluLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnVuaXRfdGVzdF9tYWluLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfbW9uaXRvci5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj51bml0X3Rlc3RfbW9uaXRvci5jcHA8L2NvZGU+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaXBwIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dW5pdF90ZXN0X3BhcmFtZXRlcnMuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9zdWl0ZS5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj51bml0X3Rlc3Rfc3VpdGUuY3BwPC9jb2RlPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9pbXBsL3htbF9sb2dfZm9ybWF0dGVyLmlwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnhtbF9sb2dfZm9ybWF0dGVyLmNwcDwvY29kZT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L3Rlc3QvaW1wbC94bWxfcmVwb3J0X2Zvcm1hdHRlci5pcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj54bWxfcmVwb3J0X2Zvcm1hdHRlci5jcHA8L2NvZGU+PC9hPjwvbGk+CjwvdWw+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJ1dGYuY29tcGlsYXRpb24ucHJvY2VkdXJlZCI+PC9hPkNvbXBpbGF0aW9uIHByb2NlZHVyZXM8L2g0PjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBJbiBjb21wYXJpc29uIHdpdGggbWFueSBvdGhlciBib29zdCBsaWJyYXJpZXMsIHdoaWNoIGFyZSBjb21wbGV0ZWx5IGltcGxlbWVudGVkIGluIGhlYWRlciBmaWxlcywgY29tcGlsYXRpb24gYW5kCiAgICBsaW5raW5nIHdpdGggdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IG1heSByZXF1aXJlIGFkZGl0aW9uYWwgc3RlcHMuIFRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBwcmVzZW50cyB5b3Ugd2l0aCBvcHRpb25zIHRvIGVpdGhlcgogICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImNvbXBpbGF0aW9uL3N0YW5kYWxvbmUuaHRtbCIgdGl0bGU9IlN0YW5kYWxvbmUgbGlicmFyeSBjb21waWxhdGlvbiI+YnVpbHQgYW5kIGxpbmsgd2l0aCBhIHN0YW5kYWxvbmUgbGlicmFyeTwvYT4gb3IKICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb21waWxhdGlvbi9kaXJlY3QtaW5jbHVkZS5odG1sIiB0aXRsZT0iSW5jbHVkaW5nIHRoZSBVVEYgZGlyZWN0bHkgaW50byB5b3VyIHRlc3QgbW9kdWxlIj5pbmNsdWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBkaXJlY3RseTwvYT4gaW50byBhIHRlc3QgbW9kdWxlLgogICAgSWYgeW91IG9wdCB0byB1c2UgdGhlIGxpYnJhcnkgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGhlYWRlcnMgaW1wbGVtZW50IHRoZSAKICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb21waWxhdGlvbi9hdXRvLWxpbmtpbmcuaHRtbCIgdGl0bGU9IlN1cHBvcnQgb2YgdGhlIGF1dG8tbGlua2luZyBmZWF0dXJlIj5hdXRvLWxpbmtpbmcgc3VwcG9ydDwvYT4uIFRoZSBjb21waWxhdGlvbiBvZiB0aGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4gbGlicmFyeSBhbmQKICAgIGEgdGVzdCBtb2R1bGUgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21waWxhdGlvbiBmbGFncy4KICAgPC9wPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxhIG5hbWU9InV0Zi5jb21waWxhdGlvbi5mbGFncyI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+VGFibGWgMy6gVGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGNvbXBpbGF0aW9uIGZsYWdzPC9iPjwvcD4KPGRpdiBjbGFzcz0idGFibGUtY29udGVudHMiPjx0YWJsZSBjbGFzcz0idGFibGUiIHN1bW1hcnk9IlRoZSBVVEYgY29tcGlsYXRpb24gZmxhZ3MiPgo8Y29sZ3JvdXA+Cjxjb2w+Cjxjb2w+CjwvY29sZ3JvdXA+Cjx0aGVhZD48dHI+Cjx0aD5GbGFnPC90aD4KPHRoPlVzYWdlPC90aD4KPC90cj48L3RoZWFkPgo8dGJvZHk+Cjx0cj4KPHRkPgo8YSBuYW1lPSJ1dGYuZmxhZy5keW4tbGluayI+PC9hPkJPT1NUX1RFU1RfRFlOX0xJTks8L3RkPgo8dGQ+RGVmaW5lIHRoaXMgZmxhZyB0byBidWlsZC91c2UgZHluYW1pYyBsaWJyYXJ5LjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgo8YSBuYW1lPSJ1dGYuZmxhZy5uby1saWIiPjwvYT5CT09TVF9URVNUX05PX0xJQjwvdGQ+Cjx0ZD5EZWZpbmUgdGhpcyBmbGFnIHRvIHByZXZlbnQgYXV0by1saW5raW5nLjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgo8YSBuYW1lPSJ1dGYuZmxhZy5uby1tYWluIj48L2E+Qk9PU1RfVEVTVF9OT19NQUlOPC90ZD4KPHRkPkRlZmluZSB0aGlzIGZsYWcgdG8gcHJldmVudCBmdW5jdGlvbiBtYWluKCkgaW1wbGVtZW50YXRpb24gZ2VuZXJhdGlvbi48L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPGEgbmFtZT0idXRmLmZsYWcubWFpbiI+PC9hPkJPT1NUX1RFU1RfTUFJTjwvdGQ+Cjx0ZD4KICAgICAgICBEZWZpbmUgdGhpcyBmbGFnIHRvIGdlbmVyYXRlIGFuIGVtcHR5IHRlc3QgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGFuZCBpbiBjYXNlIG9mIAogICAgICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJ1c2VyLWd1aWRlL3Rlc3QtcnVubmVycy5odG1sI3V0Zi51c2VyLWd1aWRlLmR5bmFtaWMtbGliLXJ1bm5lciIgdGl0bGU9IkR5bmFtaWMgbGlicmFyeSB2YXJpYW50IG9mIHRoZSBVVEYiPmR5bmFtaWMgbGlicmFyeSB2YXJpYW50PC9hPiBkZWZhdWx0IGZ1bmN0aW9uIG1haW4oKSAKICAgICAgICBpbXBsZW1lbnRhdGlvbiBhcyB3ZWxsLgogICAgICAgPC90ZD4KPC90cj4KPHRyPgo8dGQ+CjxhIG5hbWU9InV0Zi5mbGFnLm1vZHVsZSI+PC9hPkJPT1NUX1RFU1RfTU9EVUxFPC90ZD4KPHRkPgogICAgICAgIERlZmluZSB0aGlzIGZsYWcgdG8gZ2VuZXJhdGUgdGhlIHRlc3QgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB3aGljaCB1c2VzIHRoZSBkZWZpbmVkIHZhbHVlIHRvIG5hbWUKICAgICAgICB0aGUgbWFzdGVyIHRlc3Qgc3VpdGUuIEluIGNhc2Ugb2YgPGEgY2xhc3M9ImxpbmsiIGhyZWY9InVzZXItZ3VpZGUvdGVzdC1ydW5uZXJzLmh0bWwjdXRmLnVzZXItZ3VpZGUuZHluYW1pYy1saWItcnVubmVyIiB0aXRsZT0iRHluYW1pYyBsaWJyYXJ5IHZhcmlhbnQgb2YgdGhlIFVURiI+ZHluYW1pYyBsaWJyYXJ5IHZhcmlhbnQ8L2E+IAogICAgICAgIGRlZmF1bHQgZnVuY3Rpb24gbWFpbigpIGltcGxlbWVudGF0aW9uIGlzIGdlbmVyYXRlZCBhcyB3ZWxsCiAgICAgICA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KPGEgbmFtZT0idXRmLmZsYWcuYWx0LWluaXQtYXBpIj48L2E+Qk9PU1RfVEVTVF9BTFRFUk5BVElWRV9JTklUX0FQSTwvdGQ+Cjx0ZD4KICAgICAgICBEZWZpbmUgdGhpcyBmbGFnIHRvIGdlbmVyYXRlIHRoZSBzd2l0Y2ggdG8gdGhlIGFsdGVybmF0aXZlIHRlc3QgbW9kdWxlIGluaXRpYWxpemF0aW9uIEFQSS4KICAgICAgIDwvdGQ+CjwvdHI+CjwvdGJvZHk+CjwvdGFibGU+PC9kaXY+CjwvZGl2Pgo8YnIgY2xhc3M9InRhYmxlLWJyZWFrIj48cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBGdXJ0aGVyIGluIGRvY3VtZW50YXRpb24geW91IGFyZSBnb2luZyB0byBzZWUgaW4gZGV0YWlscyB3aGVuIGFuZCBob3cgdGhlc2UgZmxhZ3Mgc2hvdWxkIGJlIHVzZWQuCiAgIDwvcD4KPC9kaXY+CjwvZGl2Pgo8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cjx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KPHRkIGFsaWduPSJyaWdodCI+PGRpdiBjbGFzcz0iY29weXJpZ2h0LWZvb3RlciI+Q29weXJpZ2h0IKkgMjAwMS0yMDA3IEdlbm5hZGl5IFJvemVudGFsPC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Ii4uL3R1dG9yaWFscy9uZXcteWVhci1yZXNvbHV0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vdXRmLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImNvbXBpbGF0aW9uL3N0YW5kYWxvbmUuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K