PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPjIuoFdyaXRpbmcgYSBOZXcgVmFsZ3JpbmQgVG9vbDwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+CjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzkuMSI+CjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgo8bGluayByZWw9InVwIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uIj4KPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkZXNpZ24taW1wbC5odG1sIiB0aXRsZT0iMS6gVGhlIERlc2lnbiBhbmQgSW1wbGVtZW50YXRpb24gb2YgVmFsZ3JpbmQiPgo8bGluayByZWw9Im5leHQiIGhyZWY9ImNsLWZvcm1hdC5odG1sIiB0aXRsZT0iMy6gQ2FsbGdyaW5kIEZvcm1hdCBTcGVjaWZpY2F0aW9uIj4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CjxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkZXNpZ24taW1wbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cjx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb248L3RoPgo8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImNsLWZvcm1hdC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KPC90cj48L3RhYmxlPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzIj48L2E+Mi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0idG9jIj4KPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgo8ZGwgY2xhc3M9InRvYyI+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW50cm8iPjIuMS4gSW50cm9kdWN0aW9uPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLndyaXRpbmdhdG9vbCI+Mi4yLiBCYXNpY3M8L2E+PC9zcGFuPjwvZHQ+CjxkZD48ZGw+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaG93dG9vbHN3b3JrIj4yLjIuMS4gSG93IHRvb2xzIHdvcms8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZ2V0dGluZ2NvZGUiPjIuMi4yLiBHZXR0aW5nIHRoZSBjb2RlPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLmdldHRpbmdzdGFydGVkIj4yLjIuMy4gR2V0dGluZyBzdGFydGVkPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLndyaXRpbmdjb2RlIj4yLjIuNC4gV3JpdGluZyB0aGUgY29kZTwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5pbml0Ij4yLjIuNS4gSW5pdGlhbGlzYXRpb248L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW5zdHIiPjIuMi42LiBJbnN0cnVtZW50YXRpb248L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZmluaSI+Mi4yLjcuIEZpbmFsaXNhdGlvbjwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5vdGhlcmluZm8iPjIuMi44LiBPdGhlciBJbXBvcnRhbnQgSW5mb3JtYXRpb248L2E+PC9zcGFuPjwvZHQ+CjwvZGw+PC9kZD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5hZHZ0b3BpY3MiPjIuMy4gQWR2YW5jZWQgVG9waWNzPC9hPjwvc3Bhbj48L2R0Pgo8ZGQ+PGRsPgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLmFkdmljZSI+Mi4zLjEuIERlYnVnZ2luZyBUaXBzPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLnN1cHByZXNzaW9ucyI+Mi4zLjIuIFN1cHByZXNzaW9uczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5kb2NzIj4yLjMuMy4gRG9jdW1lbnRhdGlvbjwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5yZWd0ZXN0cyI+Mi4zLjQuIFJlZ3Jlc3Npb24gVGVzdHM8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMucHJvZmlsaW5nIj4yLjMuNS4gUHJvZmlsaW5nPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLm1raGFja2VyeSI+Mi4zLjYuIE90aGVyIE1ha2VmaWxlIEhhY2tlcnk8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaWZhY2V2ZXIiPjIuMy43LiBUaGUgQ29yZS90b29sIEludGVyZmFjZTwvYT48L3NwYW4+PC9kdD4KPC9kbD48L2RkPgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLmZpbmFsd29yZHMiPjIuNC4gRmluYWwgV29yZHM8L2E+PC9zcGFuPjwvZHQ+CjwvZGw+CjwvZGl2PgoKU28geW91IHdhbnQgdG8gd3JpdGUgYSBWYWxncmluZCB0b29sPyAgSGVyZSBhcmUgc29tZSBpbnN0cnVjdGlvbnMgdGhhdCBtYXkKaGVscC4KCjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuaW50cm8iPjwvYT4yLjEuoEludHJvZHVjdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPlRoZSBrZXkgaWRlYSBiZWhpbmQgVmFsZ3JpbmQncyBhcmNoaXRlY3R1cmUgaXMgdGhlIGRpdmlzaW9uCmJldHdlZW4gaXRzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmNvcmU8L2VtPjwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnRvb2xzPC9lbT48L3NwYW4+LjwvcD4KPHA+VGhlIGNvcmUgcHJvdmlkZXMgdGhlIGNvbW1vbiBsb3ctbGV2ZWwgaW5mcmFzdHJ1Y3R1cmUgdG8Kc3VwcG9ydCBwcm9ncmFtIGluc3RydW1lbnRhdGlvbiwgaW5jbHVkaW5nIHRoZSBKSVQKY29tcGlsZXIsIGxvdy1sZXZlbCBtZW1vcnkgbWFuYWdlciwgc2lnbmFsIGhhbmRsaW5nIGFuZCBhCnRocmVhZCBzY2hlZHVsZXIuICBJdCBhbHNvIHByb3ZpZGVzIGNlcnRhaW4gc2VydmljZXMgdGhhdAphcmUgdXNlZnVsIHRvIHNvbWUgYnV0IG5vdCBhbGwgdG9vbHMsIHN1Y2ggYXMgc3VwcG9ydCBmb3IgZXJyb3IKcmVjb3JkaW5nLCBhbmQgc3VwcG9ydCBmb3IgcmVwbGFjaW5nIGhlYXAgYWxsb2NhdGlvbiBmdW5jdGlvbnMgc3VjaCBhcwo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4uPC9wPgo8cD5CdXQgdGhlIGNvcmUgbGVhdmVzIGNlcnRhaW4gb3BlcmF0aW9ucyB1bmRlZmluZWQsIHdoaWNoCm11c3QgYmUgZmlsbGVkIGJ5IHRvb2xzLiAgTW9zdCBub3RhYmx5LCB0b29scyBkZWZpbmUgaG93IHByb2dyYW0KY29kZSBzaG91bGQgYmUgaW5zdHJ1bWVudGVkLiAgVGhleSBjYW4gYWxzbyBjYWxsIGNlcnRhaW4KZnVuY3Rpb25zIHRvIGluZGljYXRlIHRvIHRoZSBjb3JlIHRoYXQgdGhleSB3b3VsZCBsaWtlIHRvIHVzZQpjZXJ0YWluIHNlcnZpY2VzLCBvciBiZSBub3RpZmllZCB3aGVuIGNlcnRhaW4gaW50ZXJlc3RpbmcgZXZlbnRzCm9jY3VyLiAgQnV0IHRoZSBjb3JlIHRha2VzIGNhcmUgb2YgYWxsIHRoZSBoYXJkIHdvcmsuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDEiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy53cml0aW5nYXRvb2wiPjwvYT4yLjIuoEJhc2ljczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmhvd3Rvb2xzd29yayI+PC9hPjIuMi4xLqBIb3cgdG9vbHMgd29yazwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPlRvb2xzIG11c3QgZGVmaW5lIHZhcmlvdXMgZnVuY3Rpb25zIGZvciBpbnN0cnVtZW50aW5nIHByb2dyYW1zCnRoYXQgYXJlIGNhbGxlZCBieSBWYWxncmluZCdzIGNvcmUuIFRoZXkgYXJlIHRoZW4gbGlua2VkIGFnYWluc3QKVmFsZ3JpbmQncyBjb3JlIHRvIGRlZmluZSBhIGNvbXBsZXRlIFZhbGdyaW5kIHRvb2wgd2hpY2ggd2lsbCBiZSB1c2VkCndoZW4gdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbDwvY29kZT4gb3B0aW9uIGlzIHVzZWQgdG8gc2VsZWN0IGl0LjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmdldHRpbmdjb2RlIj48L2E+Mi4yLjIuoEdldHRpbmcgdGhlIGNvZGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5UbyB3cml0ZSB5b3VyIG93biB0b29sLCB5b3UnbGwgbmVlZCB0aGUgVmFsZ3JpbmQgc291cmNlIGNvZGUuICBZb3UnbGwKbmVlZCBhIGNoZWNrLW91dCBvZiB0aGUgU3VidmVyc2lvbiByZXBvc2l0b3J5IGZvciB0aGUgYXV0b21ha2UvYXV0b2NvbmYKYnVpbGQgaW5zdHJ1Y3Rpb25zIHRvIHdvcmsuICBTZWUgdGhlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byBkbyBjaGVjay1vdXQKZnJvbSB0aGUgcmVwb3NpdG9yeSBhdCA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL2Rvd25sb2Fkcy9yZXBvc2l0b3J5Lmh0bWwiIHRhcmdldD0iX3RvcCI+dGhlIFZhbGdyaW5kCndlYnNpdGU8L2E+LjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmdldHRpbmdzdGFydGVkIj48L2E+Mi4yLjMuoEdldHRpbmcgc3RhcnRlZDwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPlZhbGdyaW5kIHVzZXMgR05VIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YXV0b21ha2U8L2NvZGU+IGFuZAo8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmF1dG9jb25mPC9jb2RlPiBmb3IgdGhlIGNyZWF0aW9uIG9mIE1ha2VmaWxlcwphbmQgY29uZmlndXJhdGlvbi4gIEJ1dCBkb24ndCB3b3JyeSwgdGhlc2UgaW5zdHJ1Y3Rpb25zIHNob3VsZCBiZSBlbm91Z2gKdG8gZ2V0IHlvdSBzdGFydGVkIGV2ZW4gaWYgeW91IGtub3cgbm90aGluZyBhYm91dCB0aG9zZSB0b29scy48L3A+CjxwPkluIHdoYXQgZm9sbG93cywgYWxsIGZpbGVuYW1lcyBhcmUgcmVsYXRpdmUgdG8gVmFsZ3JpbmQncwp0b3AtbGV2ZWwgZGlyZWN0b3J5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFsZ3JpbmQvPC9jb2RlPi48L3A+CjxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Q2hvb3NlIGEgbmFtZSBmb3IgdGhlIHRvb2wsIGFuZCBhIHR3by1sZXR0ZXIgYWJicmV2aWF0aW9uIHRoYXQgY2FuCiAgYmUgdXNlZCBhcyBhIHNob3J0IHByZWZpeC4gIFdlJ2xsIHVzZQogIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyPC9jb2RlPiBhbmQKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZiPC9jb2RlPiBhcyBhbiBleGFtcGxlLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5NYWtlIHRocmVlIG5ldyBkaXJlY3RvcmllcyA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci88L2NvZGU+LAogIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL2RvY3MvPC9jb2RlPiBhbmQKICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci90ZXN0cy88L2NvZGU+LgogIDwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5DcmVhdGUgYW4gZW1wdHkgZmlsZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci90ZXN0cy9NYWtlZmlsZS5hbTwvY29kZT4uCiAgPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvcHkgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ub25lL01ha2VmaWxlLmFtPC9jb2RlPiBpbnRvCiAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvPC9jb2RlPi4gIEVkaXQgaXQgYnkgcmVwbGFjaW5nIGFsbAogIG9jY3VycmVuY2VzIG9mIHRoZSBzdHJpbmdzCiAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4ibm9uZSI8L2NvZGU+LAogIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Im5sXyI8L2NvZGU+IGFuZAogIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Im5sLSI8L2NvZGU+IHdpdGgKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJmb29iYXIiPC9jb2RlPiwKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJmYl8iPC9jb2RlPiBhbmQKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJmYi0iPC9jb2RlPiByZXNwZWN0aXZlbHkuPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvcHkgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ub25lL25sX21haW4uYzwvY29kZT4gaW50bwogIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyLzwvY29kZT4sIHJlbmFtaW5nIGl0IGFzCiAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mYl9tYWluLmM8L2NvZGU+LiAgRWRpdCBpdCBieSBjaGFuZ2luZyB0aGUKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRldGFpbHM8L2NvZGU+IGxpbmVzIGluCiAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5ubF9wcmVfY2xvX2luaXQ8L2NvZGU+IHRvIHNvbWV0aGluZyBhcHByb3ByaWF0ZSBmb3IgdGhlCiAgdG9vbC4gIFRoZXNlIGZpZWxkcyBhcmUgdXNlZCBpbiB0aGUgc3RhcnR1cCBtZXNzYWdlLCBleGNlcHQgZm9yCiAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5idWdfcmVwb3J0c190bzwvY29kZT4gd2hpY2ggaXMgdXNlZCBpZiBhCiAgdG9vbCBhc3NlcnRpb24gZmFpbHMuICBBbHNvLCByZXBsYWNlIHRoZSBzdHJpbmcKICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJubF8iPC9jb2RlPiB0aHJvdWdob3V0IHdpdGggIAogIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ImZiXyI8L2NvZGU+IGFnYWluLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5FZGl0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+TWFrZWZpbGUuYW08L2NvZGU+LCBhZGRpbmcgdGhlIG5ldyBkaXJlY3RvcnkKICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXI8L2NvZGU+IHRvIHRoZQogICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlRPT0xTPC9jb2RlPiBvcgogICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkVYUF9UT09MUzwvY29kZT4gdmFyaWFibGVzLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5FZGl0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y29uZmlndXJlLmluPC9jb2RlPiwgYWRkaW5nCiAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL01ha2VmaWxlPC9jb2RlPiBhbmQKICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvdGVzdHMvTWFrZWZpbGU8L2NvZGU+IHRvIHRoZQogICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkFDX09VVFBVVDwvY29kZT4gbGlzdC48L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPlJ1bjo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KICBhdXRvZ2VuLnNoCiAgLi9jb25maWd1cmUgLS1wcmVmaXg9YHB3ZGAvaW5zdAogIG1ha2UKICBtYWtlIGluc3RhbGw8L3ByZT4KPHA+SXQgc2hvdWxkIGF1dG9tYWtlLCBjb25maWd1cmUgYW5kIGNvbXBpbGUgd2l0aG91dCBlcnJvcnMsCiAgIHB1dHRpbmcgY29waWVzIG9mIHRoZSB0b29sIGluCiAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyLzwvY29kZT4gYW5kCiAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+aW5zdC9saWIvdmFsZ3JpbmQvPC9jb2RlPi48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5Zb3UgY2FuIHRlc3QgaXQgd2l0aCBhIGNvbW1hbmQgbGlrZTo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KICBpbnN0L2Jpbi92YWxncmluZCAtLXRvb2w9Zm9vYmFyIGRhdGU8L3ByZT4KPHA+KGFsbW9zdCBhbnkgcHJvZ3JhbSBzaG91bGQgd29yazsKICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kYXRlPC9jb2RlPiBpcyBqdXN0IGFuIGV4YW1wbGUpLgogICBUaGUgb3V0cHV0IHNob3VsZCBiZSBzb21ldGhpbmcgbGlrZSB0aGlzOjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgogID09NzM4PT0gZm9vYmFyLTAuMC4xLCBhIGZvb2JhcnJpbmcgdG9vbC4KICA9PTczOD09IENvcHlyaWdodCAoQykgMjAwMi0yMDE3LCBhbmQgR05VIEdQTCdkLCBieSBKLiBQcm9ncmFtbWVyLgogID09NzM4PT0gVXNpbmcgVmFsZ3JpbmQtMy4xMy4wLlNWTiBhbmQgTGliVkVYOyByZXJ1biB3aXRoIC1oIGZvciBjb3B5cmlnaHQgaW5mbwogID09NzM4PT0gQ29tbWFuZDogZGF0ZQogID09NzM4PT0KICBUdWUgTm92IDI3IDEyOjQwOjQ5IEVTVCAyMDA3CiAgPT03Mzg9PTwvcHJlPgo8cD5UaGUgdG9vbCBkb2VzIG5vdGhpbmcgZXhjZXB0IHJ1biB0aGUgcHJvZ3JhbSB1bmluc3RydW1lbnRlZC48L3A+CjwvbGk+Cjwvb2w+PC9kaXY+CjxwPlRoZXNlIHN0ZXBzIGRvbid0IGhhdmUgdG8gYmUgZm9sbG93ZWQgZXhhY3RseSAtLSB5b3UgY2FuIGNob29zZQpkaWZmZXJlbnQgbmFtZXMgZm9yIHlvdXIgc291cmNlIGZpbGVzLCBhbmQgdXNlIGEgZGlmZmVyZW50Cjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcHJlZml4PC9jb2RlPiBmb3IKPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uL2NvbmZpZ3VyZTwvY29kZT4uPC9wPgo8cD5Ob3cgdGhhdCB3ZSd2ZSBzZXR1cCwgYnVpbHQgYW5kIHRlc3RlZCB0aGUgc2ltcGxlc3QgcG9zc2libGUgdG9vbCwKb250byB0aGUgaW50ZXJlc3Rpbmcgc3R1ZmYuLi48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy53cml0aW5nY29kZSI+PC9hPjIuMi40LqBXcml0aW5nIHRoZSBjb2RlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+QSB0b29sIG11c3QgZGVmaW5lIGF0IGxlYXN0IHRoZXNlIGZvdXIgZnVuY3Rpb25zOjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgogIHByZV9jbG9faW5pdCgpCiAgcG9zdF9jbG9faW5pdCgpCiAgaW5zdHJ1bWVudCgpCiAgZmluaSgpPC9wcmU+CjxwPlRoZSBuYW1lcyBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSBhYm92ZSwgYnV0IHRoZXNlIGFyZSB0aGUgdXN1YWwKbmFtZXMuICBUaGUgZmlyc3Qgb25lIGlzIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIG1hY3JvCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfREVURVJNSU5FX0lOVEVSRkFDRV9WRVJTSU9OPC9jb2RlPi4KVGhlIGxhc3QgdGhyZWUgYXJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfKGJhc2ljX3Rvb2xfZnVuY3MpPC9jb2RlPiBmdW5jdGlvbi48L3A+CjxwPkluIGFkZGl0aW9uLCBpZiBhIHRvb2wgd2FudHMgdG8gdXNlIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHNlcnZpY2VzCnByb3ZpZGVkIGJ5IHRoZSBjb3JlLCBpdCBtYXkgaGF2ZSB0byBkZWZpbmUgb3RoZXIgZnVuY3Rpb25zIGFuZCB0ZWxsIHRoZQpjb3JlIGFib3V0IHRoZW0uPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuaW5pdCI+PC9hPjIuMi41LqBJbml0aWFsaXNhdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPk1vc3Qgb2YgdGhlIGluaXRpYWxpc2F0aW9uIHNob3VsZCBiZSBkb25lIGluCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHJlX2Nsb19pbml0PC9jb2RlPi4gIE9ubHkgdXNlCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cG9zdF9jbG9faW5pdDwvY29kZT4gaWYgYSB0b29sIHByb3ZpZGVzIGNvbW1hbmQgbGluZQpvcHRpb25zIGFuZCBtdXN0IGRvIHNvbWUgaW5pdGlhbGlzYXRpb24gYWZ0ZXIgb3B0aW9uIHByb2Nlc3NpbmcgdGFrZXMKcGxhY2UgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ImNsbyI8L2NvZGU+IHN0YW5kcyBmb3IgImNvbW1hbmQgbGluZQpvcHRpb25zIikuPC9wPgo8cD5GaXJzdCBvZiBhbGwsIHZhcmlvdXMgImRldGFpbHMiIG5lZWQgdG8gYmUgc2V0IGZvciBhIHRvb2wsIHVzaW5nCnRoZSBmdW5jdGlvbnMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18oZGV0YWlsc18qKTwvY29kZT4uICBTb21lIGFyZSBhbGwKY29tcHVsc29yeSwgc29tZSBhcmVuJ3QuICBTb21lIGFyZSB1c2VkIHdoZW4gY29uc3RydWN0aW5nIHRoZSBzdGFydHVwCm1lc3NhZ2UsIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZGV0YWlsX2J1Z19yZXBvcnRzX3RvPC9jb2RlPiBpcyB1c2VkCmlmIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfKHRvb2xfcGFuaWMpPC9jb2RlPiBpcyBldmVyIGNhbGxlZCwgb3IKYSB0b29sIGFzc2VydGlvbiBmYWlscy4gIE90aGVycyBoYXZlIG90aGVyIHVzZXMuPC9wPgo8cD5TZWNvbmQsIHZhcmlvdXMgIm5lZWRzIiBjYW4gYmUgc2V0IGZvciBhIHRvb2wsIHVzaW5nIHRoZSBmdW5jdGlvbnMKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18obmVlZHNfKik8L2NvZGU+LiAgVGhleSBhcmUgbW9zdGx5IGJvb2xlYW5zLCBhbmQgY2FuCmJlIGxlZnQgdW50b3VjaGVkICh0aGV5IGRlZmF1bHQgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPkZhbHNlPC9jb2RlPikuICBUaGV5CmRldGVybWluZSB3aGV0aGVyIGEgdG9vbCBjYW4gZG8gdmFyaW91cyB0aGluZ3Mgc3VjaCBhczogcmVjb3JkLCByZXBvcnQKYW5kIHN1cHByZXNzIGVycm9yczsgcHJvY2VzcyBjb21tYW5kIGxpbmUgb3B0aW9uczsgd3JhcCBzeXN0ZW0gY2FsbHM7CnJlY29yZCBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCBoZWFwIGJsb2NrczsgZXRjLjwvcD4KPHA+Rm9yIGV4YW1wbGUsIGlmIGEgdG9vbCB3YW50cyB0aGUgY29yZSdzIGhlbHAgaW4gcmVjb3JkaW5nIGFuZApyZXBvcnRpbmcgZXJyb3JzLCBpdCBtdXN0IGNhbGwKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18obmVlZHNfdG9vbF9lcnJvcnMpPC9jb2RlPiBhbmQgcHJvdmlkZSBkZWZpbml0aW9ucyBvZgplaWdodCBmdW5jdGlvbnMgZm9yIGNvbXBhcmluZyBlcnJvcnMsIHByaW50aW5nIG91dCBlcnJvcnMsIHJlYWRpbmcKc3VwcHJlc3Npb25zIGZyb20gYSBzdXBwcmVzc2lvbnMgZmlsZSwgZXRjLiAgV2hpbGUgd3JpdGluZyB0aGVzZQpmdW5jdGlvbnMgcmVxdWlyZXMgc29tZSB3b3JrLCBpdCdzIG11Y2ggbGVzcyB0aGFuIGRvaW5nIGVycm9yIGhhbmRsaW5nCmZyb20gc2NyYXRjaCBiZWNhdXNlIHRoZSBjb3JlIGlzIGRvaW5nIG1vc3Qgb2YgdGhlIHdvcmsuCjwvcD4KPHA+VGhpcmQsIHRoZSB0b29sIGNhbiBpbmRpY2F0ZSB3aGljaCBldmVudHMgaW4gY29yZSBpdCB3YW50cyB0byBiZQpub3RpZmllZCBhYm91dCwgdXNpbmcgdGhlIGZ1bmN0aW9ucyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZHXyh0cmFja18qKTwvY29kZT4uClRoZXNlIGluY2x1ZGUgdGhpbmdzIHN1Y2ggYXMgaGVhcCBibG9ja3MgYmVpbmcgYWxsb2NhdGVkLCB0aGUgc3RhY2sKcG9pbnRlciBjaGFuZ2luZywgYSBtdXRleCBiZWluZyBsb2NrZWQsIGV0Yy4gIElmIGEgdG9vbCB3YW50cyB0byBrbm93CmFib3V0IHRoaXMsIGl0IHNob3VsZCBwcm92aWRlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uLCB3aGljaCB3aWxsIGJlCmNhbGxlZCB3aGVuIHRoYXQgZXZlbnQgaGFwcGVucy48L3A+CjxwPkZvciBleGFtcGxlLCBpZiB0aGUgdG9vbCB3YW50IHRvIGJlIG5vdGlmaWVkIHdoZW4gYSBuZXcgaGVhcCBibG9jawppcyBhbGxvY2F0ZWQsIGl0IHNob3VsZCBjYWxsCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+VkdfKHRyYWNrX25ld19tZW1faGVhcCk8L2NvZGU+IHdpdGggYW4gYXBwcm9wcmlhdGUKZnVuY3Rpb24gcG9pbnRlciwgYW5kIHRoZSBhc3NpZ25lZCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBlYWNoIHRpbWUKdGhpcyBoYXBwZW5zLjwvcD4KPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCAiZGV0YWlscyIsICJuZWVkcyIgYW5kICJ0cmFja2FibGUgZXZlbnRzIgpjYW4gYmUgZm91bmQgaW4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbmNsdWRlL3B1Yl90b29sX3Rvb2xpZmFjZS5oPC9jb2RlPi48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5pbnN0ciI+PC9hPjIuMi42LqBJbnN0cnVtZW50YXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmluc3RydW1lbnQ8L2NvZGU+IGlzIHRoZSBpbnRlcmVzdGluZyBvbmUuICBJdAphbGxvd3MgeW91IHRvIGluc3RydW1lbnQgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+VkVYIElSPC9lbT48L3NwYW4+LCB3aGljaCBpcwpWYWxncmluZCdzIFJJU0MtbGlrZSBpbnRlcm1lZGlhdGUgbGFuZ3VhZ2UuICBWRVggSVIgaXMgZGVzY3JpYmVkCmluIHRoZSBjb21tZW50cyBvZiB0aGUgaGVhZGVyIGZpbGUKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5WRVgvcHViL2xpYnZleF9pci5oPC9jb2RlPi48L3A+CjxwPlRoZSBlYXNpZXN0IHdheSB0byBpbnN0cnVtZW50IFZFWCBJUiBpcyB0byBpbnNlcnQgY2FsbHMgdG8gQwpmdW5jdGlvbnMgd2hlbiBpbnRlcmVzdGluZyB0aGluZ3MgaGFwcGVuLiAgU2VlIHRoZSB0b29sICJMYWNrZXkiCig8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxhY2tleS9sa19tYWluLmM8L2NvZGU+KSBmb3IgYSBzaW1wbGUgZXhhbXBsZSBvZiB0aGlzLCBvcgpDYWNoZWdyaW5kICg8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmNhY2hlZ3JpbmQvY2dfbWFpbi5jPC9jb2RlPikgZm9yIGEgbW9yZQpjb21wbGV4IGV4YW1wbGUuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuZmluaSI+PC9hPjIuMi43LqBGaW5hbGlzYXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBjYW4gcHJlc2VudCB0aGUgZmluYWwgcmVzdWx0cywgc3VjaCBhcyBhIHN1bW1hcnkKb2YgdGhlIGluZm9ybWF0aW9uIGNvbGxlY3RlZC4gIEFueSBsb2cgZmlsZXMgc2hvdWxkIGJlIHdyaXR0ZW4gb3V0IGF0CnRoaXMgcG9pbnQuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMub3RoZXJpbmZvIj48L2E+Mi4yLjguoE90aGVyIEltcG9ydGFudCBJbmZvcm1hdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPlBsZWFzZSBub3RlIHRoYXQgdGhlIGNvcmUvdG9vbCBzcGxpdCBpbmZyYXN0cnVjdHVyZSBpcyBxdWl0ZQpjb21wbGV4IGFuZCBub3QgYnJpbGxpYW50bHkgZG9jdW1lbnRlZC4gIEhlcmUgYXJlIHNvbWUgaW1wb3J0YW50IHBvaW50cywKYnV0IHRoZXJlIGFyZSB1bmRvdWJ0ZWRseSBtYW55IG90aGVycyB0aGF0IEkgc2hvdWxkIG5vdGUgYnV0IGhhdmVuJ3QKdGhvdWdodCBvZi48L3A+CjxwPlRoZSBmaWxlcyA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmluY2x1ZGUvcHViX3Rvb2xfKi5oPC9jb2RlPiBjb250YWluIGFsbCB0aGUKdHlwZXMsIG1hY3JvcywgZnVuY3Rpb25zLCBldGMuIHRoYXQgYSB0b29sIHNob3VsZCAoaG9wZWZ1bGx5KSBuZWVkLCBhbmQgYXJlCnRoZSBvbmx5IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Lmg8L2NvZGU+IGZpbGVzIGEgdG9vbCBzaG91bGQgbmVlZCB0bwo8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiNpbmNsdWRlPC9jb2RlPi4gIFRoZXkgaGF2ZSBhIHJlYXNvbmFibGUgYW1vdW50IG9mCmRvY3VtZW50YXRpb24gaW4gaXQgdGhhdCBzaG91bGQgaG9wZWZ1bGx5IGJlIGVub3VnaCB0byBnZXQgeW91IGdvaW5nLjwvcD4KPHA+Tm90ZSB0aGF0IHlvdSBjYW4ndCB1c2UgYW55dGhpbmcgZnJvbSB0aGUgQyBsaWJyYXJ5ICh0aGVyZQphcmUgZGVlcCByZWFzb25zIGZvciB0aGlzLCB0cnVzdCB1cykuICBWYWxncmluZCBwcm92aWRlcyBhbgppbXBsZW1lbnRhdGlvbiBvZiBhIHJlYXNvbmFibGUgc3Vic2V0IG9mIHRoZSBDIGxpYnJhcnksIGRldGFpbHMgb2Ygd2hpY2gKYXJlIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+cHViX3Rvb2xfbGliYyouaDwvY29kZT4uPC9wPgo8cD5XaGVuIHdyaXRpbmcgYSB0b29sLCBpbiB0aGVvcnkgeW91IHNob3VsZG4ndCBuZWVkIHRvIGxvb2sgYXQgYW55IG9mCnRoZSBjb2RlIGluIFZhbGdyaW5kJ3MgY29yZSwgYnV0IGluIHByYWN0aWNlIGl0IG1pZ2h0IGJlIHVzZWZ1bCBzb21ldGltZXMgdG8KaGVscCB1bmRlcnN0YW5kIHNvbWV0aGluZy48L3A+CjxwPlRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmluY2x1ZGUvcHViX3Rvb2xfYmFzaWNzLmg8L2NvZGU+IGFuZAo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPlZFWC9wdWIvbGlidmV4X2Jhc2ljdHlwZXMuaDwvY29kZT4gZmlsZXMgaGF2ZSBzb21lIGJhc2ljCnR5cGVzIHRoYXQgYXJlIHdpZGVseSB1c2VkLjwvcD4KPHA+VWx0aW1hdGVseSwgdGhlIHRvb2xzIGRpc3RyaWJ1dGVkIChNZW1jaGVjaywgQ2FjaGVncmluZCwgTGFja2V5LCBldGMuKQphcmUgcHJvYmFibHkgdGhlIGJlc3QgZG9jdW1lbnRhdGlvbiBvZiBhbGwsIGZvciB0aGUgbW9tZW50LjwvcD4KPHA+VGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfPC9jb2RlPiBtYWNybyBpcyB1c2VkCmhlYXZpbHkuICBUaGlzIGp1c3QgcHJlcGVuZHMgYSBsb25nZXIgc3RyaW5nIGluIGZyb250IG9mIG5hbWVzIHRvIGF2b2lkCnBvdGVudGlhbCBuYW1lc3BhY2UgY2xhc2hlcy4gIEl0IGlzIGRlZmluZWQgaW4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oPC9jb2RlPi48L3A+CjxwPlRoZXJlIGFyZSBzb21lIGFzc29ydGVkIG5vdGVzIGFib3V0IHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUKaW1wbGVtZW50YXRpb24gaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL2ludGVybmFscy88L2NvZGU+LiAgTXVjaCBvZiBpdAppc24ndCB0aGF0IHJlbGV2YW50IHRvIHRvb2wtd3JpdGVycywgaG93ZXZlci48L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDEiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5hZHZ0b3BpY3MiPjwvYT4yLjMuoEFkdmFuY2VkIFRvcGljczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPk9uY2UgYSB0b29sIGJlY29tZXMgbW9yZSBjb21wbGljYXRlZCwgdGhlcmUgYXJlIHNvbWUgZXh0cmEKdGhpbmdzIHlvdSBtYXkgd2FudC9uZWVkIHRvIGRvLjwvcD4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuYWR2aWNlIj48L2E+Mi4zLjEuoERlYnVnZ2luZyBUaXBzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+V3JpdGluZyBhbmQgZGVidWdnaW5nIHRvb2xzIGlzIG5vdCB0cml2aWFsLiAgSGVyZSBhcmUgc29tZQpzdWdnZXN0aW9ucyBmb3Igc29sdmluZyBjb21tb24gcHJvYmxlbXMuPC9wPgo8cD5JZiB5b3UgYXJlIGdldHRpbmcgc2VnbWVudGF0aW9uIGZhdWx0cyBpbiBDIGZ1bmN0aW9ucyB1c2VkIGJ5IHlvdXIKdG9vbCwgdGhlIHVzdWFsIEdEQiBjb21tYW5kOjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj4KICBnZGIgJmx0O3Byb2cmZ3Q7IGNvcmU8L3ByZT4KPHA+dXN1YWxseSBnaXZlcyB0aGUgbG9jYXRpb24gb2YgdGhlIHNlZ21lbnRhdGlvbiBmYXVsdC48L3A+CjxwPklmIHlvdSB3YW50IHRvIGRlYnVnIEMgZnVuY3Rpb25zIHVzZWQgYnkgeW91ciB0b29sLCB0aGVyZSBhcmUKaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBkbyBzbyBpbiB0aGUgZmlsZQo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPlJFQURNRV9ERVZFTE9QRVJTPC9jb2RlPi48L3A+CjxwPklmIHlvdSBhcmUgaGF2aW5nIHByb2JsZW1zIHdpdGggeW91ciBWRVggSVIgaW5zdHJ1bWVudGF0aW9uLCBpdCdzCmxpa2VseSB0aGF0IEdEQiB3b24ndCBiZSBhYmxlIHRvIGhlbHAgYXQgYWxsLiAgSW4gdGhpcyBjYXNlLCBWYWxncmluZCdzCjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtZmxhZ3M8L2NvZGU+IG9wdGlvbiBpcyBpbnZhbHVhYmxlIGZvciBvYnNlcnZpbmcgdGhlCnJlc3VsdHMgb2YgaW5zdHJ1bWVudGF0aW9uLjwvcD4KPHA+SWYgeW91IGp1c3Qgd2FudCB0byBrbm93IHdoZXRoZXIgYSBwcm9ncmFtIHBvaW50IGhhcyBiZWVuIHJlYWNoZWQsCnVzaW5nIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk9JTks8L2NvZGU+IG1hY3JvIChpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmluY2x1ZGUvcHViX3Rvb2xfbGliY3ByaW50Lmg8L2NvZGU+KSBjYW4gYmUgZWFzaWVyIHRoYW4KdXNpbmcgR0RCLjwvcD4KPHA+VGhlIG90aGVyIGRlYnVnZ2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucyBjYW4gYmUgdXNlZnVsIHRvbyAocnVuCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFsZ3JpbmQgLS1oZWxwLWRlYnVnPC9jb2RlPiBmb3IgdGhlCmxpc3QpLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLnN1cHByZXNzaW9ucyI+PC9hPjIuMy4yLqBTdXBwcmVzc2lvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5JZiB5b3VyIHRvb2wgcmVwb3J0cyBlcnJvcnMgYW5kIHlvdSB3YW50IHRvIHN1cHByZXNzIHNvbWUgY29tbW9uCm9uZXMsIHlvdSBjYW4gYWRkIHN1cHByZXNzaW9ucyB0byB0aGUgc3VwcHJlc3Npb24gZmlsZXMuICBUaGUgcmVsZXZhbnQKZmlsZXMgYXJlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Ki5zdXBwPC9jb2RlPjsgdGhlIGZpbmFsIHN1cHByZXNzaW9uCmZpbGUgaXMgYWdncmVnYXRlZCBmcm9tIHRoZXNlIGZpbGVzIGJ5IGNvbWJpbmluZyB0aGUgcmVsZXZhbnQKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4uc3VwcDwvY29kZT4gZmlsZXMgZGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9ucyBvZiBsaW51eCwgWAphbmQgZ2xpYmMgb24gYSBzeXN0ZW0uPC9wPgo8cD5TdXBwcmVzc2lvbiB0eXBlcyBoYXZlIHRoZSBmb3JtCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dG9vbF9uYW1lOnN1cHByZXNzaW9uX25hbWU8L2NvZGU+LiAgVGhlCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dG9vbF9uYW1lPC9jb2RlPiBoZXJlIGlzIHRoZSBuYW1lIHlvdSBzcGVjaWZ5CmZvciB0aGUgdG9vbCBkdXJpbmcgaW5pdGlhbGlzYXRpb24gd2l0aAo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZHXyhkZXRhaWxzX25hbWUpPC9jb2RlPi48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5kb2NzIj48L2E+Mi4zLjMuoERvY3VtZW50YXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5JZiB5b3UgYXJlIGZlZWxpbmcgY29uc2NpZW50aW91cyBhbmQgd2FudCB0byB3cml0ZSBzb21lCmRvY3VtZW50YXRpb24gZm9yIHlvdXIgdG9vbCwgcGxlYXNlIHVzZSBYTUwgYXMgdGhlIHJlc3Qgb2YgVmFsZ3JpbmQgZG9lcy4KVGhlIGZpbGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL1JFQURNRTwvY29kZT4gaGFzIG1vcmUgZGV0YWlscyBvbiBnZXR0aW5nCnRoZSBYTUwgdG9vbGNoYWluIHRvIHdvcms7ICB0aGlzIGNhbiBiZSBkaWZmaWN1bHQsIHVuZm9ydHVuYXRlbHkuPC9wPgo8cD5UbyB3cml0ZSB0aGUgZG9jdW1lbnRhdGlvbiwgZm9sbG93IHRoZXNlIHN0ZXBzICh1c2luZwo8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZvb2JhcjwvY29kZT4gYXMgdGhlIGV4YW1wbGUgdG9vbCBuYW1lCmFnYWluKTo8L3A+CjxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIGRvY3MgZ28gaW4KICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvZG9jcy88L2NvZGU+LCB3aGljaCB5b3Ugd2lsbAogICBoYXZlIGNyZWF0ZWQgd2hlbiB5b3Ugc3RhcnRlZCB3cml0aW5nIHRoZSB0b29sLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+Q29weSB0aGUgWE1MIGRvY3VtZW50YXRpb24gZmlsZSBmb3IgdGhlIHRvb2wgTnVsZ3JpbmQgZnJvbQogICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ub25lL2RvY3MvbmwtbWFudWFsLnhtbDwvY29kZT4gdG8KICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyL2RvY3MvPC9jb2RlPiwgYW5kIHJlbmFtZSBpdCB0bwogICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvZG9jcy9mYi1tYW51YWwueG1sPC9jb2RlPi48L3A+CjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPk5vdGU8L3N0cm9uZz48L3NwYW4+OiB0aGVyZSBpcyBhIHRldGV4IGJ1ZwogICAgaW52b2x2aW5nIHVuZGVyc2NvcmVzIGluIGZpbGVuYW1lcywgc28gZG9uJ3QgdXNlICdfJy48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPldyaXRlIHRoZSBkb2N1bWVudGF0aW9uLiBUaGVyZSBhcmUgc29tZSBoZWxwZnVsIGJpdHMgYW5kCiAgICBwaWVjZXMgb24gdXNpbmcgWE1MIG1hcmt1cCBpbgogICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL3htbC94bWxfaGVscC50eHQ8L2NvZGU+LjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JbmNsdWRlIGl0IGluIHRoZSBVc2VyIE1hbnVhbCBieSBhZGRpbmcgdGhlIHJlbGV2YW50IGVudHJ5IHRvCiAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRvY3MveG1sL21hbnVhbC54bWw8L2NvZGU+LiAgQ29weSBhbmQgZWRpdCBhbgogICAgZXhpc3RpbmcgZW50cnkuPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkluY2x1ZGUgaXQgaW4gdGhlIG1hbiBwYWdlIGJ5IGFkZGluZyB0aGUgcmVsZXZhbnQgZW50cnkgdG8KICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy94bWwvdmFsZ3JpbmQtbWFucGFnZS54bWw8L2NvZGU+LiAgQ29weSBhbmQKICAgIGVkaXQgYW4gZXhpc3RpbmcgZW50cnkuPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5WYWxpZGF0ZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci9kb2NzL2ZiLW1hbnVhbC54bWw8L2NvZGU+IHVzaW5nCiAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQgZnJvbSB3aXRoaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzLzwvY29kZT46CiAgPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPgptYWtlIHZhbGlkCjwvcHJlPgo8cD5Zb3UgbWF5IGdldCBlcnJvcnMgdGhhdCBsb29rIGxpa2UgdGhpczo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Ci4veG1sL2luZGV4LnhtbDo1OiBlbGVtZW50IGNoYXB0ZXI6IHZhbGlkaXR5IGVycm9yIDogTm8gZGVjbGFyYXRpb24gZm9yCmF0dHJpYnV0ZSBiYXNlIG9mIGVsZW1lbnQgY2hhcHRlcgo8L3ByZT4KPHA+SWdub3JlIChvbmx5KSB0aGVzZSAtLSB0aGV5J3JlIG5vdCBpbXBvcnRhbnQuPC9wPgo8cD5CZWNhdXNlIHRoZSBYTUwgdG9vbGNoYWluIGlzIGZyYWdpbGUsIGl0IGlzIGltcG9ydGFudCB0byBlbnN1cmUKICAgdGhhdCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZiLW1hbnVhbC54bWw8L2NvZGU+IHdvbid0IGJyZWFrIHRoZSBkb2N1bWVudGF0aW9uCiAgIHNldCBidWlsZC4gIE5vdGUgdGhhdCBqdXN0IGJlY2F1c2UgYW4gWE1MIGZpbGUgaGFwcGlseSB0cmFuc2Zvcm1zIHRvCiAgIGh0bWwgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0aGUgc2FtZSBob2xkcyB0cnVlIGZvciBwZGYvcHMuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+WW91IGNhbiAocmUtKWdlbmVyYXRlIHRoZSBIVE1MIGRvY3Mgd2hpbGUgeW91IGFyZSB3cml0aW5nCiAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZiLW1hbnVhbC54bWw8L2NvZGU+IHRvIGhlbHAgeW91IHNlZSBob3cgaXQncyBsb29raW5nLgogICAgVGhlIGdlbmVyYXRlZCBmaWxlcyBlbmQgdXAgaW4KICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy9odG1sLzwvY29kZT4uICBVc2UgdGhlIGZvbGxvd2luZwogICAgY29tbWFuZCwgd2l0aGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy88L2NvZGU+OjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj4KbWFrZSBodG1sLWRvY3MKPC9wcmU+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5XaGVuIHlvdSBoYXZlIGZpbmlzaGVkLCB0cnkgdG8gZ2VuZXJhdGUgUERGIGFuZCBQb3N0U2NyaXB0IG91dHB1dCB0bwogICAgY2hlY2sgYWxsIGlzIHdlbGwsIGZyb20gd2l0aGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy88L2NvZGU+OgogIDwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj4KbWFrZSBwcmludC1kb2NzCjwvcHJlPgo8cD5DaGVjayB0aGUgb3V0cHV0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LnBkZjwvY29kZT4gYW5kCiAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi5wczwvY29kZT4gZmlsZXMgaW4KICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZG9jcy9wcmludC88L2NvZGU+LjwvcD4KPHA+Tm90ZSB0aGF0IHRoZSB0b29sY2hhaW4gaXMgZXZlbiBtb3JlIGZyYWdpbGUgZm9yIHRoZSBwcmludCBkb2NzLAogICAgc28gZG9uJ3QgZmVlbCB0b28gYmFkIGlmIHlvdSBjYW4ndCBnZXQgaXQgd29ya2luZy48L3A+CjwvbGk+Cjwvb2w+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5yZWd0ZXN0cyI+PC9hPjIuMy40LqBSZWdyZXNzaW9uIFRlc3RzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VmFsZ3JpbmQgaGFzIHNvbWUgc3VwcG9ydCBmb3IgcmVncmVzc2lvbiB0ZXN0cy4gIElmIHlvdSB3YW50IHRvCndyaXRlIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIHlvdXIgdG9vbDo8L3A+CjxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIHRlc3RzIGdvIGluIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyL3Rlc3RzLzwvY29kZT4sCiAgICB3aGljaCB5b3Ugd2lsbCBoYXZlIGNyZWF0ZWQgd2hlbiB5b3Ugc3RhcnRlZCB3cml0aW5nIHRoZSB0b29sLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Xcml0ZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci90ZXN0cy9NYWtlZmlsZS5hbTwvY29kZT4uICBVc2UKICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bWVtY2hlY2svdGVzdHMvTWFrZWZpbGUuYW08L2NvZGU+IGFzIGFuCiAgICBleGFtcGxlLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Xcml0ZSB0aGUgdGVzdHMsIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LnZndGVzdDwvY29kZT4gdGVzdAogICAgZGVzY3JpcHRpb24gZmlsZXMsIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LnN0ZG91dC5leHA8L2NvZGU+IGFuZAogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uc3RkZXJyLmV4cDwvY29kZT4gZXhwZWN0ZWQgb3V0cHV0IGZpbGVzLgogICAgKE5vdGUgdGhhdCBWYWxncmluZCdzIG91dHB1dCBnb2VzIHRvIHN0ZGVyci4pICBTb21lIGRldGFpbHMgb24KICAgIHdyaXRpbmcgYW5kIHJ1bm5pbmcgdGVzdHMgYXJlIGdpdmVuIGluIHRoZSBjb21tZW50cyBhdCB0aGUgdG9wIG9mCiAgICB0aGUgdGVzdGluZyBzY3JpcHQKICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dGVzdHMvdmdfcmVndGVzdDwvY29kZT4uPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPldyaXRlIGEgZmlsdGVyIGZvciBzdGRlcnIgcmVzdWx0cwogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvdGVzdHMvZmlsdGVyX3N0ZGVycjwvY29kZT4uICBJdCBjYW4KICAgIGNhbGwgdGhlIGV4aXN0aW5nIGZpbHRlcnMgaW4KICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dGVzdHMvPC9jb2RlPi4gIFNlZQogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tZW1jaGVjay90ZXN0cy9maWx0ZXJfc3RkZXJyPC9jb2RlPiBmb3IgYW4KICAgIGV4YW1wbGU7IGluIHBhcnRpY3VsYXIgbm90ZSB0aGUKICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+JGRpcjwvY29kZT4gdHJpY2sgdGhhdCBlbnN1cmVzIHRoZSBmaWx0ZXIKICAgIHdvcmtzIGNvcnJlY3RseSBmcm9tIGFueSBkaXJlY3RvcnkuPC9wPjwvbGk+Cjwvb2w+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5wcm9maWxpbmciPjwvYT4yLjMuNS6gUHJvZmlsaW5nPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+TG90cyBvZiBwcm9maWxpbmcgdG9vbHMgaGF2ZSB0cm91YmxlIHJ1bm5pbmcgVmFsZ3JpbmQuICBGb3IgZXhhbXBsZSwKdHJ5aW5nIHRvIHVzZSBncHJvZiBpcyBob3BlbGVzcy48L3A+CjxwPlByb2JhYmx5IHRoZSBiZXN0IHdheSB0byBwcm9maWxlIGEgdG9vbCBpcyB3aXRoIE9Qcm9maWxlIG9uIExpbnV4LjwvcD4KPHA+WW91IGNhbiBhbHNvIHVzZSBDYWNoZWdyaW5kIG9uIGl0LiAgUmVhZAo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPlJFQURNRV9ERVZFTE9QRVJTPC9jb2RlPiBmb3IgZGV0YWlscyBvbiBydW5uaW5nIFZhbGdyaW5kIHVuZGVyClZhbGdyaW5kOyAgaXQncyBhIGJpdCBmcmFnaWxlIGJ1dCBjYW4gdXN1YWxseSBiZSBtYWRlIHRvIHdvcmsuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMubWtoYWNrZXJ5Ij48L2E+Mi4zLjYuoE90aGVyIE1ha2VmaWxlIEhhY2tlcnk8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5JZiB5b3UgYWRkIGFueSBkaXJlY3RvcmllcyB1bmRlcgo8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZvb2Jhci88L2NvZGU+LCB5b3Ugd2lsbCBuZWVkIHRvIGFkZAphbiBhcHByb3ByaWF0ZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPk1ha2VmaWxlLmFtPC9jb2RlPiB0byBpdCwgYW5kIGFkZCBhCmNvcnJlc3BvbmRpbmcgZW50cnkgdG8gdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QUNfT1VUUFVUPC9jb2RlPgpsaXN0IGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y29uZmlndXJlLmluPC9jb2RlPi48L3A+CjxwPklmIHlvdSBhZGQgYW55IHNjcmlwdHMgdG8geW91ciB0b29sIChzZWUgQ2FjaGVncmluZCBmb3IgYW4KZXhhbXBsZSkgeW91IG5lZWQgdG8gYWRkIHRoZW0gdG8gdGhlCjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YmluX1NDUklQVFM8L2NvZGU+IHZhcmlhYmxlIGluCjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL01ha2VmaWxlLmFtPC9jb2RlPiBhbmQgcG9zc2libGUgYWxzbyB0byB0aGUKPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5BQ19PVVRQVVQ8L2NvZGU+IGxpc3QgaW4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jb25maWd1cmUuaW48L2NvZGU+LjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmlmYWNldmVyIj48L2E+Mi4zLjcuoFRoZSBDb3JlL3Rvb2wgSW50ZXJmYWNlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VGhlIGNvcmUvdG9vbCBpbnRlcmZhY2UgZXZvbHZlcyBvdmVyIHRpbWUsIGJ1dCBpdCdzIHByZXR0eSBzdGFibGUuCldlIGRlbGliZXJhdGVseSBkbyBub3QgcHJvdmlkZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGludGVyZmFjZXMsCmJlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCBhbmQgdG9vIHJlc3RyaWN0aXZlLiAgV2UgdmlldyB0aGlzIGFzIGEgZ29vZAp0aGluZyAtLSBpZiB3ZSBoYWQgdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMsIG1hbnkKaW1wcm92ZW1lbnRzIG5vdyBpbiB0aGUgc3lzdGVtIGNvdWxkIG5vdCBoYXZlIGJlZW4gYWRkZWQuPC9wPgo8cD5CZWNhdXNlIHRvb2xzIGFyZSBzdGF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBjb3JlLCBpZiBhIHRvb2wgY29tcGlsZXMKc3VjY2Vzc2Z1bGx5IHRoZW4gaXQgc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgY29yZS4gIFdlIHdvdWxkIG5vdApkZWxpYmVyYXRlbHkgdmlvbGF0ZSB0aGlzIHByb3BlcnR5IGJ5LCBmb3IgZXhhbXBsZSwgY2hhbmdpbmcgdGhlIGJlaGF2aW91cgpvZiBhIGNvcmUgZnVuY3Rpb24gd2l0aG91dCBjaGFuZ2luZyBpdHMgcHJvdG90eXBlLjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmZpbmFsd29yZHMiPjwvYT4yLjQuoEZpbmFsIFdvcmRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+V3JpdGluZyBhIG5ldyBWYWxncmluZCB0b29sIGlzIG5vdCBlYXN5LCBidXQgdGhlIHRvb2xzIHlvdSBjYW4gd3JpdGUKd2l0aCBWYWxncmluZCBhcmUgYW1vbmcgdGhlIG1vc3QgcG93ZXJmdWwgcHJvZ3JhbW1pbmcgdG9vbHMgdGhlcmUgYXJlLgpIYXBweSBwcm9ncmFtbWluZyE8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KPHRyPgo8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRlc2lnbi1pbXBsLmh0bWwiPiZsdDsmbHQ7oDEuoFRoZSBEZXNpZ24gYW5kIEltcGxlbWVudGF0aW9uIG9mIFZhbGdyaW5kPC9hPqA8L3RkPgo8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+VXA8L2E+PC90ZD4KPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iY2wtZm9ybWF0Lmh0bWwiPjMuoENhbGxncmluZCBGb3JtYXQgU3BlY2lmaWNhdGlvbqAmZ3Q7Jmd0OzwvYT4KPC90ZD4KPC90cj4KPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgo8L3RhYmxlPgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==