PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfZmNnaWQgLSBBcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuNTwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUgTW9kdWxlIG1vZF9mY2dpZDwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9mY2dpZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlByb3ZpZGVzIGZvciBleGVjdXRpb24gb2YgRmFzdENHSSBhcHBsaWNhdGlvbnM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+ZmNnaWRfbW9kdWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU291cmNlRmlsZSI+U291cmNloEZpbGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZC5jPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjQ29tcGF0aWJpbGl0eSI+Q29tcGF0aWJpbGl0eTo8L2E+PC90aD48dGQ+QXBhY2hlIDIuMCBhbmQgaGlnaGVyPC90ZD48L3RyPjwvdGFibGU+CjxoMz5TdW1tYXJ5PC9oMz4KCiAgICA8cD5BbnkgcHJvZ3JhbSBhc3NpZ25lZCB0byB0aGUgaGFuZGxlciA8Y29kZT5mY2dpZC1zY3JpcHQ8L2NvZGU+IGlzIHByb2Nlc3NlZAogICAgdXNpbmcgdGhlIEZhc3RDR0kgcHJvdG9jb2w7IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmNnaWQuaHRtbCI+bW9kX2ZjZ2lkPC9hPjwvY29kZT4gc3RhcnRzIGEgc3VmZmljaWVudAogICAgbnVtYmVyIGluc3RhbmNlcyBvZiB0aGUgcHJvZ3JhbSB0byBoYW5kbGUgY29uY3VycmVudCByZXF1ZXN0cywgYW5kIHRoZXNlCiAgICBwcm9ncmFtcyByZW1haW4gcnVubmluZyB0byBoYW5kbGUgZnVydGhlciBpbmNvbWluZyByZXF1ZXN0cy4gIFRoaXMgaXMKICAgIHNpZ25pZmljYW50bHkgZmFzdGVyIHRoYW4gdXNpbmcgdGhlIGRlZmF1bHQgCiAgICA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50L21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+IG9yCiAgICA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50L21vZC9tb2RfY2dpZC5odG1sIj5tb2RfY2dpZDwvYT4gCiAgICBtb2R1bGVzIHRvIGxhdW5jaCB0aGUgcHJvZ3JhbSB1cG9uIGVhY2ggcmVxdWVzdC4KICAgIEhvd2V2ZXIsIHRoZSBwcm9ncmFtcyBpbnZva2VkIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmNnaWQuaHRtbCI+bW9kX2ZjZ2lkPC9hPjwvY29kZT4gY29udGludWUgdG8KICAgIGNvbnN1bWUgcmVzb3VyY2VzLCBzbyB0aGUgYWRtaW5pc3RyYXRvciBtdXN0IHdlaWdoIHRoZSBpbXBhY3Qgb2YgaW52b2tpbmcKICAgIGEgcGFydGljdWxhciBwcm9ncmFtIG9uY2UgcGVyIHJlcXVlc3QgYWdhaW5zdCB0aGUgcmVzb3VyY2VzIHJlcXVpcmVkIHRvCiAgICBsZWF2ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGluc3RhbmNlcyBydW5uaW5nIGNvbnRpbnVvdXNseS48L3A+CgogICAgPHA+VGhlIHBvb2wgb2YgZmNnaWQtaW52b2tlZCBwcm9ncmFtcyBpcyBzaGFyZWQgYmV0d2VlbiBhbGwgaHR0cGQgd29ya2Vycy4KICAgIENvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBiZWxvdyBsZXQgdGhlIGFkbWluaXN0cmF0b3IgdHVuZSB0aGUgbnVtYmVyIG9mCiAgICBpbnN0YW5jZXMgb2YgdGhlIHByb2dyYW0gdGhhdCB3aWxsIHJ1biBjb25jdXJyZW50bHkuPC9wPgoKICAgIDxwPlNwZWNpZmljIGV4ZWN1dGFibGVzIGFyZSBhc3NpZ25lZCB0aGlzIGhhbmRsZXIgZWl0aGVyIGJ5IGhhdmluZyBhIG5hbWUKICAgIGNvbnRhaW5pbmcgYW4gZXh0ZW5zaW9uIGRlZmluZWQgYnkgdGhlCiAgICA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50L21vZC9tb2RfbWltZS5odG1sI2FkZGhhbmRsZXIiPkFkZEhhbmRsZXI8L2E+IAogICAgZGlyZWN0aXZlLCBvciB3aXRoIGFuIG92ZXJyaWRlIHVzaW5nIHRoZQogICAgPGEgaHJlZj0iLy9odHRwZC5hcGFjaGUub3JnL2RvY3MvY3VycmVudC9tb2QvbW9kX21pbWUuaHRtbCNzZXRoYW5kbGVyIj5TZXRIYW5kbGVyPC9hPgogICAgZGlyZWN0aXZlIChlLmcuLCBmb3IgYWxsIGZpbGVzIGluIGEgc3BlY2lmaWMgZGlyZWN0b3J5IHN1Y2ggYXMgY2dpLWJpbikuPC9wPgoKICAgIDxwPlNvbWUgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSBpbiB0aGUgQVNGIHJlbGVhc2Ugb2YgbW9kX2ZjZ2lkIHdoaWNoCiAgICBjYW4gYWZmZWN0IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLiAgQWxsIGRvY3VtZW50YXRpb24gcmVmZXJzIHRvIG5ldwogICAgbmFtZXMgZm9yIHRoZSBkaXJlY3RpdmVzLiAgKFRoZSBvbGQgbmFtZXMgc3RpbGwgd29yayBidXQgYXJlIG5vdwogICAgZGVwcmVjYXRlZC4pICBQbGVhc2UgcmVhZCB0aGUgPGEgaHJlZj0iI3VwZ3JhZGUiPlVwZ3JhZGUgTm90ZXM8L2E+IGZvcgogICAgZGV0YWlscy48L3A+CgogICAgPHA+Rm9yIGFuIGludHJvZHVjdGlvbiB0byB1c2luZyBDR0kgc2NyaXB0cyB3aXRoIEFwYWNoZSwgc2VlCiAgICB0aGUgZ2VuZXJpYyB0dXRvcmlhbCBvbiA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9ob3d0by9jZ2kuaHRtbCI+RHluYW1pYyBDb250ZW50CiAgICB3aXRoIENHSTwvYT4uPC9wPgoKICAgIDxwPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmNnaWQuaHRtbCI+bW9kX2ZjZ2lkPC9hPjwvY29kZT4gcmVxdWlyZXMgPGEgaHJlZj0iLy9odHRwZC5hcGFjaGUub3JnL2RvY3MvY3VycmVudC9tb2QvbW9kX3VuaXhkLmh0bWwiPm1vZF91bml4ZDwvYT4KICAgIHRvIGJlIGxvYWRlZCBiZWZvcmUgaXRzZWxmIGluIHRoZSBodHRwZCBjb25maWcuPC9wPgoKICA8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDM+VG9waWNzPC9oMz4KPHVsIGlkPSJ0b3BpY3MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN1cGdyYWRlIj5VcGdyYWRlIE5vdGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2Vycm9yZG9jdW1lbnRzIj5GY2dpZCBhbmQgQXBhY2hlIEVycm9yRG9jdW1lbnQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Byb2Nlc3MtbWdtdCI+UHJvY2VzcyBNYW5hZ2VtZW50PC9hPjwvbGk+CjwvdWw+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGFjY2Vzc2NoZWNrZXIiPkZjZ2lkQWNjZXNzQ2hlY2tlcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGFjY2Vzc2NoZWNrZXJhdXRob3JpdGF0aXZlIj5GY2dpZEFjY2Vzc0NoZWNrZXJBdXRob3JpdGF0aXZlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYXV0aGVudGljYXRvciI+RmNnaWRBdXRoZW50aWNhdG9yPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYXV0aGVudGljYXRvcmF1dGhvcml0YXRpdmUiPkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRhdXRob3JpemVyIj5GY2dpZEF1dGhvcml6ZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRhdXRob3JpemVyYXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGJ1c3lzY2FuaW50ZXJ2YWwiPkZjZ2lkQnVzeVNjYW5JbnRlcnZhbDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGJ1c3l0aW1lb3V0Ij5GY2dpZEJ1c3lUaW1lb3V0PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkY21kb3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkY29ubmVjdHRpbWVvdXQiPkZjZ2lkQ29ubmVjdFRpbWVvdXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRlcnJvcnNjYW5pbnRlcnZhbCI+RmNnaWRFcnJvclNjYW5JbnRlcnZhbDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGZpeHBhdGhpbmZvIj5GY2dpZEZpeFBhdGhpbmZvPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkaWRsZXNjYW5pbnRlcnZhbCI+RmNnaWRJZGxlU2NhbkludGVydmFsPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkaWRsZXRpbWVvdXQiPkZjZ2lkSWRsZVRpbWVvdXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRpb3RpbWVvdXQiPkZjZ2lkSU9UaW1lb3V0PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkaXBjZGlyIj5GY2dpZElQQ0RpcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG1heHByb2Nlc3NlcyI+RmNnaWRNYXhQcm9jZXNzZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRtYXhwcm9jZXNzZXNwZXJjbGFzcyI+RmNnaWRNYXhQcm9jZXNzZXNQZXJDbGFzczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3Rpbm1lbSI+RmNnaWRNYXhSZXF1ZXN0SW5NZW08L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRtYXhyZXF1ZXN0bGVuIj5GY2dpZE1heFJlcXVlc3RMZW48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRtYXhyZXF1ZXN0c3BlcnByb2Nlc3MiPkZjZ2lkTWF4UmVxdWVzdHNQZXJQcm9jZXNzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkbWlucHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRvdXRwdXRidWZmZXJzaXplIj5GY2dpZE91dHB1dEJ1ZmZlclNpemU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRwYXNzaGVhZGVyIj5GY2dpZFBhc3NIZWFkZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRwcm9jZXNzbGlmZXRpbWUiPkZjZ2lkUHJvY2Vzc0xpZmVUaW1lPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc3RhYmxlZmlsZSI+RmNnaWRQcm9jZXNzVGFibGVGaWxlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZSI+RmNnaWRTcGF3blNjb3JlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZXVwbGltaXQiPkZjZ2lkU3Bhd25TY29yZVVwTGltaXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWR0ZXJtaW5hdGlvbnNjb3JlIj5GY2dpZFRlcm1pbmF0aW9uU2NvcmU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWR0aW1lc2NvcmUiPkZjZ2lkVGltZVNjb3JlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkd2luMzJwcmV2ZW50b3JwaGFucyI+RmNnaWRXaW4zMlByZXZlbnRPcnBoYW5zPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkd3JhcHBlciI+RmNnaWRXcmFwcGVyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkem9tYmllc2NhbmludGVydmFsIj5GY2dpZFpvbWJpZVNjYW5JbnRlcnZhbDwvYT48L2xpPgo8L3VsPgo8aDM+U2VlIGFsc288L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGEgaHJlZj0iLy9odHRwZC5hcGFjaGUub3JnL2RvY3MvaG93dG8vY2dpLmh0bWwiPkR5bmFtaWMgQ29udGVudCBXaXRoIENHSTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9odHRwZC5hcGFjaGUub3JnL2RvY3MvbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9odHRwZC5hcGFjaGUub3JnL2RvY3MvbW9kL21vZF9jZ2lkLmh0bWwiPm1vZF9jZ2lkPC9hPjwvbGk+CjwvdWw+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idXBncmFkZSIgaWQ9InVwZ3JhZGUiPlVwZ3JhZGUgTm90ZXM8L2E+PC9oMj4KICAgIAogICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBBU0YgcmVsZWFzZSBvZiBtb2RfZmNnaWQKICAgIGFuZCBzaG91bGQgYmUgY29uc2lkZXJlZCB3aGVuIHVwZ3JhZGluZyBmcm9tIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIGJ5CiAgICBSeWFuIFBhbiAoUGFuIFFpbmdmZW5nKS48L3A+CiAgICA8dWw+CiAgICAgIDxsaT5BbGwgZGlyZWN0aXZlcyBoYXZlIGJlZW4gcmVuYW1lZCBpbiBvcmRlciB0byB1c2UgYSBjb21tb24gcHJlZml4ICJGY2dpZCIuCiAgICAgIFVuZGVyc2NvcmVzIGluIGRpcmVjdGl2ZSBuYW1lcyBoYXZlIGJlZW4gZWxpbWluYXRlZCBpbiBmYXZvciBvZgogICAgICBDYW1lbENhc2UuIFRoZSBvbGQgZGlyZWN0aXZlIG5hbWVzIHdpbGwgc3RpbGwgd29yayBidXQgYXJlIGRlcHJlY2F0ZWQuCiAgICAgIFRvIGZpeCB5b3VyIGNvbmZpZ3VyYXRpb24geW91IGNhbiB1c2UgdGhlIHNlZCBzY3JpcHQgYnVpbGQvZml4Y29uZi5zZWQuCiAgICAgIFRoZSBmb2xsb3dpbmcgdGFibGUgY29udGFpbnMgb2xkIGFuZCBuZXcgZGlyZWN0aXZlIG5hbWVzOgogICAgICA8dGFibGUgY2xhc3M9ImJvcmRlcmVkIj48dHIgY2xhc3M9ImhlYWRlciI+PHRoPk9sZCBOYW1lPC90aD48dGg+TmV3IE5hbWU8L3RoPjwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5CdXN5U2NhbkludGVydmFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYnVzeXNjYW5pbnRlcnZhbCI+RmNnaWRCdXN5U2NhbkludGVydmFsPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5CdXN5VGltZW91dDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGJ1c3l0aW1lb3V0Ij5GY2dpZEJ1c3lUaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5EZWZhdWx0SW5pdEVudjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGluaXRpYWxlbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RGVmYXVsdE1heENsYXNzUHJvY2Vzc0NvdW50PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkRlZmF1bHRNaW5DbGFzc1Byb2Nlc3NDb3VudDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1pbnByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5FcnJvclNjYW5JbnRlcnZhbDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGVycm9yc2NhbmludGVydmFsIj5GY2dpZEVycm9yU2NhbkludGVydmFsPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GYXN0Q2dpQWNjZXNzQ2hlY2tlcjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGFjY2Vzc2NoZWNrZXIiPkZjZ2lkQWNjZXNzQ2hlY2tlcjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmFzdENnaUFjY2Vzc0NoZWNrZXJBdXRob3JpdGF0aXZlPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYWNjZXNzY2hlY2tlcmF1dGhvcml0YXRpdmUiPkZjZ2lkQWNjZXNzQ2hlY2tlckF1dGhvcml0YXRpdmU8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZhc3RDZ2lBdXRoZW50aWNhdG9yPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYXV0aGVudGljYXRvciI+RmNnaWRBdXRoZW50aWNhdG9yPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GYXN0Q2dpQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmU8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRhdXRoZW50aWNhdG9yYXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmFzdENnaUF1dGhvcml6ZXI8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRhdXRob3JpemVyIj5GY2dpZEF1dGhvcml6ZXI8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZhc3RDZ2lBdXRob3JpemVyQXV0aG9yaXRhdGl2ZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGF1dGhvcml6ZXJhdXRob3JpdGF0aXZlIj5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GQ0dJV3JhcHBlcjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHdyYXBwZXIiPkZjZ2lkV3JhcHBlcjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+SWRsZVNjYW5JbnRlcnZhbDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGVzY2FuaW50ZXJ2YWwiPkZjZ2lkSWRsZVNjYW5JbnRlcnZhbDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+SWRsZVRpbWVvdXQ8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxldGltZW91dCI+RmNnaWRJZGxlVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+SVBDQ29tbVRpbWVvdXQ8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpb3RpbWVvdXQiPkZjZ2lkSU9UaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5JUENDb25uZWN0VGltZW91dDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNvbm5lY3R0aW1lb3V0Ij5GY2dpZENvbm5lY3RUaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5NYXhQcm9jZXNzQ291bnQ8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRtYXhwcm9jZXNzZXMiPkZjZ2lkTWF4UHJvY2Vzc2VzPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5NYXhSZXF1ZXN0SW5NZW08L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRtYXhyZXF1ZXN0aW5tZW0iPkZjZ2lkTWF4UmVxdWVzdEluTWVtPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5NYXhSZXF1ZXN0TGVuPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdGxlbiI+RmNnaWRNYXhSZXF1ZXN0TGVuPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5NYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRtYXhyZXF1ZXN0c3BlcnByb2Nlc3MiPkZjZ2lkTWF4UmVxdWVzdHNQZXJQcm9jZXNzPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5PdXRwdXRCdWZmZXJTaXplPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkb3V0cHV0YnVmZmVyc2l6ZSI+RmNnaWRPdXRwdXRCdWZmZXJTaXplPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5QYXNzSGVhZGVyPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcGFzc2hlYWRlciI+RmNnaWRQYXNzSGVhZGVyPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5QSFBfRml4X1BhdGhpbmZvX0VuYWJsZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGZpeHBhdGhpbmZvIj5GY2dpZEZpeFBhdGhpbmZvPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Qcm9jZXNzTGlmZVRpbWU8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRwcm9jZXNzbGlmZXRpbWUiPkZjZ2lkUHJvY2Vzc0xpZmVUaW1lPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TaGFyZW1lbVBhdGg8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRwcm9jZXNzdGFibGVmaWxlIj5GY2dpZFByb2Nlc3NUYWJsZUZpbGU8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlNvY2tldFBhdGg8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpcGNkaXIiPkZjZ2lkSVBDRGlyPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TcGF3blNjb3JlPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZSI+RmNnaWRTcGF3blNjb3JlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TcGF3blNjb3JlVXBMaW1pdDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5UZXJtaW5hdGlvblNjb3JlPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkdGVybWluYXRpb25zY29yZSI+RmNnaWRUZXJtaW5hdGlvblNjb3JlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5UaW1lU2NvcmU8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWR0aW1lc2NvcmUiPkZjZ2lkVGltZVNjb3JlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5ab21iaWVTY2FuSW50ZXJ2YWw8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWR6b21iaWVzY2FuaW50ZXJ2YWwiPkZjZ2lkWm9tYmllU2NhbkludGVydmFsPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+CjwvdGFibGU+CiAgICAgIDwvbGk+CiAgICA8L3VsPgoKICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJlcnJvcmRvY3VtZW50cyIgaWQ9ImVycm9yZG9jdW1lbnRzIj5GY2dpZCBhbmQgQXBhY2hlIEVycm9yRG9jdW1lbnQ8L2E+PC9oMj4KICAgIAogICAgPHA+VGhlIGNvcmUgZGlyZWN0aXZlIDxhIGhyZWY9Ii8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL2N1cnJlbnQvbW9kL2NvcmUuaHRtbCNlcnJvcmRvY3VtZW50Ij5FcnJvckRvY3VtZW50PC9hPiAKICAgICAgIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IGN1c3RvbSBlcnJvciBwYWdlcyBmb3Igc3BlY2lmaWMgSFRUUCBlcnJvciBjb2Rlcy4gCiAgICAgICBBbiBpbXBvcnRhbnQgbm90ZSBtdXN0IGJlIG1hZGU6IGlmIHRoZSBlcnJvciBwYWdlIGlzIGdlbmVyYXRlZCBieSB0aGUgZmFzdGNnaSBzY3JpcHQsIDxjb2RlPm1vZF9mY2dpZDwvY29kZT4gd2lsbAogICAgICAgcGFzcyB0aGUgcmVzcG9uc2UgZG93biB0byB0aGUgb3V0cHV0IGZpbHRlciBjaGFpbiBieXBhc3NpbmcgdGhlIEFwYWNoZSdzIAogICAgICAgRXJyb3JEb2N1bWVudHMuIENvbnZlcnNlbHksIGlmIHRoZSBlcnJvciBpcyBnZW5lcmF0ZWQgYnkgQXBhY2hlIGl0c2VsZiAoZm9yIGV4YW1wbGUsIGEgSFRUUCA0MDQKICAgICAgIGR1ZSB0byBhIG1pc3NpbmcgcmVzb3VyY2UpIHRoZW4gdGhlIEVycm9yRG9jdW1lbnQgc2V0IHdpbGwgYmUgdXNlZC4gCiAgICAgICBUaGlzIGJlaGF2aW91ciBpcyB0aGUgbW9zdCBjb25zZXJ2YXRpdmUgb25lIHRvIGludGVyZmVyZSBhcyBsaXR0bGUgYXMKICAgICAgIHBvc3NpYmxlIHdpdGggdGhlIGZhc3RjZ2kncyByZXNwb25zZSBnZW5lcmF0aW9uIGxvZ2ljLiA8Y29kZT5tb2RfcHJveHk8L2NvZGU+IHNob3dzIHRoZSBzYW1lIAogICAgICAgYmVoYXZpb3VyIGJ1dCBpdCBvZmZlcnMgCiAgICAgICA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50L21vZC9tb2RfcHJveHkuaHRtbCNwcm94eWVycm9yb3ZlcnJpZGUiPlByb3h5RXJyb3JPdmVycmlkZTwvYT4gCiAgICAgICB0byBmb3JjZSB0aGUgdXNlIG9mIEVycm9yRG9jdW1lbnRzLCBtZWFud2hpbGUgPGNvZGU+bW9kX2ZjZ2lkPC9jb2RlPiBkb2VzIG5vdC4gCiAgICAgICBBIGNvbW1vbiB3b3JrYXJvdW5kIGlzIHRvIGluc3RydWN0IHRoZSBmY2dpIHNjcmlwdCB0byBnZW5lcmF0ZSB0aGUgRXJyb3JEb2N1bWVudHMKICAgICAgIHRvIGhhdmUgZnVsbCBjb250cm9sIG9mIHRoZSByZXNwb25zZSBjb250ZW50LjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJleGFtcGxlcyIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvYT48L2gyPgogICAgCgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU8L2gzPgogICAgPHA+VGhlIGV4YW1wbGVzIGFzc3VtZSB0aGF0IG1vZF9mY2dpZCBhbmQgb3RoZXIgbmVjZXNzYXJ5CiAgICBtb2R1bGVzIGFyZSBsb2FkZWQgaW50byB0aGUgc2VydmVyIGFscmVhZHksIGVpdGhlciBidWlsdC1pbiBvcgogICAgdmlhIHRoZSA8YSBocmVmPSIvL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50L21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPgogICAgZGlyZWN0aXZlLjwvcD4KCiAgICA8cD5BZGRpdGlvbmFsbHksIHRoZSBleGFtcGxlIGNvbmZpZ3VyYXRpb25zIHByb3ZpZGUgZnVsbCBhY2Nlc3MKICAgIHRvIHRoZSBhcHBsaWNhdGlvbnMgdXNpbmcgYWNjZXNzIGNvbnRyb2wgZGlyZWN0aXZlcyB3aGljaCB3b3JrCiAgICB3aXRoIEFwYWNoZSAyLjAgYW5kIDIuMi4gIFRoZXNlIGRpcmVjdGl2ZXMgYXJlIG5vdCBhcHByb3ByaWF0ZQogICAgZm9yIGFsbCBlbnZpcm9ubWVudHMsIGFuZCB0aGV5IGRvIG5vdCB3b3JrIGZvciBkZXZlbG9wbWVudAogICAgbGV2ZWxzIG9mIEFwYWNoZSBIVFRQIFNlcnZlciAoU3VidmVyc2lvbiB0cnVuaykuPC9wPgogICAgPC9kaXY+CgogICAgPHA+VGhlIGZpcnN0IGV4YW1wbGUgaXMgYSB2ZXJ5IHNpbXBsZSBQZXJsIEZhc3RDR0kgYXBwbGljYXRpb24sCiAgICBhbmQgaXRzIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcy4gIFRoaXMgaXMgdHlwaWNhbCBmb3IgRmFzdENHSQogICAgYXBwbGljYXRpb25zIHdoaWNoIHJlcXVpcmUgbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UGVybCBGYXN0Q0dJIGFwcGxpY2F0aW9uIC0gL3Vzci9sb2NhbC9hcGFjaGUvZmNnaS1iaW4vZm9vLnBsPC9oMz48cD48Y29kZT4KICAgICMhL3Vzci9iaW4vcGVybDxiciAvPgogICAgdXNlIENHSTo6RmFzdDs8YnIgLz4KICAgIDxiciAvPgogICAgd2hpbGUgKG15ICRxID0gQ0dJOjpGYXN0LSZndDtuZXcpIHs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIHByaW50KCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cblxuIik7PGJyIC8+CiAgICAgICAgZm9yZWFjaCAkdmFyIChzb3J0KGtleXMoJUVOVikpKSB7PGJyIC8+CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgICAgICR2YWwgPSAkRU5WeyR2YXJ9OzxiciAvPgogICAgICAgICAgICAkdmFsID1+IHN8XG58XFxufGc7PGJyIC8+CiAgICAgICAgICAgICR2YWwgPX4gc3wifFxcInxnOzxiciAvPgogICAgICAgICAgICBwcmludCAiJHt2YXJ9PVwiJHt2YWx9XCJcbiI7PGJyIC8+CiAgICAgICAgPC9zcGFuPgogICAgICAgIH08YnIgLz4KICAgIDwvc3Bhbj4KICAgIH08YnIgLz4KICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPkNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlczwvaDM+PHA+PGNvZGU+CiAgICAmbHQ7RGlyZWN0b3J5IC91c3IvbG9jYWwvYXBhY2hlL2ZjZ2ktYmluLyZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICBTZXRIYW5kbGVyIGZjZ2lkLXNjcmlwdDxiciAvPgogICAgICBPcHRpb25zICtFeGVjQ0dJPGJyIC8+CiAgICAgIDxiciAvPgogICAgICAjIEN1c3RvbWl6ZSB0aGUgbmV4dCB0d28gZGlyZWN0aXZlcyBmb3IgeW91ciByZXF1aXJlbWVudHMuPGJyIC8+CiAgICAgIE9yZGVyIGFsbG93LGRlbnk8YnIgLz4KICAgICAgQWxsb3cgZnJvbSBhbGw8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvRGlyZWN0b3J5Jmd0OzxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5QSFAgYXBwbGljYXRpb25zIGFyZSB1c3VhbGx5IGNvbmZpZ3VyZWQgdXNpbmcgdGhlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWR3cmFwcGVyIj5GY2dpZFdyYXBwZXI8L2E+PC9jb2RlPiBkaXJlY3RpdmUKICAgIGFuZCBhIGNvcnJlc3BvbmRpbmcgd3JhcHBlciBzY3JpcHQuICBUaGUgd3JhcHBlciBzY3JpcHQgY2FuIGJlCiAgICBhbiBhcHByb3ByaWF0ZSBwbGFjZSB0byBkZWZpbmUgYW55IGVudmlyb25tZW50IHZhcmlhYmxlcyByZXF1aXJlZAogICAgYnkgdGhlIGFwcGxpY2F0aW9uLCBzdWNoIGFzIDxjb2RlPlBIUF9GQ0dJX01BWF9SRVFVRVNUUzwvY29kZT4KICAgIG9yIGFueXRoaW5nIGVsc2UuICAoRW52aXJvbm1lbnQgdmFyaWFibGVzIGNhbiBhbHNvIGJlIHNldCB3aXRoCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9jb2RlPiwKICAgIGJ1dCB0aGV5IHRoZW4gYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucy4pPC9wPgoKICAgIDxwPkhlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IHVzZXMgYSB3cmFwcGVyIHNjcmlwdCB0byBpbnZva2UgUEhQOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UEhQIGFwcGxpY2F0aW9uIC0gL3Vzci9sb2NhbC9waHBhcHAvcGhwaW5mby5waHA8L2gzPjxwPjxjb2RlPgogICAgJmx0Oz9waHA8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICBwaHBpbmZvKCk7PGJyIC8+CiAgICA8L3NwYW4+CiAgICA/Jmd0OzxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+Q29uZmlndXJhdGlvbiBkaXJlY3RpdmVzPC9oMz48cD48Y29kZT4KICAgICMgRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3Mgc2hvdWxkIGJlICZsdDs9IFBIUF9GQ0dJX01BWF9SRVFVRVNUUzxiciAvPgogICAgIyBUaGUgZXhhbXBsZSBQSFAgd3JhcHBlciBzY3JpcHQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IFBIUCBzZXR0aW5nLjxiciAvPgogICAgRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MgMTAwMDA8YnIgLz4KICAgIDxiciAvPgogICAgIyBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIGNnaS5maXhfcGF0aGluZm8gaXMgc2V0IHRvIDEgaW48YnIgLz4KICAgICMgcGhwLmluaTo8YnIgLz4KICAgICMgRmNnaWRGaXhQYXRoaW5mbyAxPGJyIC8+CiAgICA8YnIgLz4KICAgIEFsaWFzIC9waHBhcHAvIC91c3IvbG9jYWwvcGhwYXBwLzxiciAvPgogICAgJmx0O0xvY2F0aW9uIC9waHBhcHAvJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgIEFkZEhhbmRsZXIgZmNnaWQtc2NyaXB0IC5waHA8YnIgLz4KICAgICAgT3B0aW9ucyArRXhlY0NHSTxiciAvPgogICAgICBGY2dpZFdyYXBwZXIgL3Vzci9sb2NhbC9iaW4vcGhwLXdyYXBwZXIgLnBocDxiciAvPgogICAgICA8YnIgLz4KICAgICAgIyBDdXN0b21pemUgdGhlIG5leHQgdHdvIGRpcmVjdGl2ZXMgZm9yIHlvdXIgcmVxdWlyZW1lbnRzLjxiciAvPgogICAgICBPcmRlciBhbGxvdyxkZW55PGJyIC8+CiAgICAgIEFsbG93IGZyb20gYWxsPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L0xvY2F0aW9uJmd0OzxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UEhQIHdyYXBwZXIgc2NyaXB0IC0gL3Vzci9sb2NhbC9iaW4vcGhwLXdyYXBwZXI8L2gzPjxwPjxjb2RlPgogICAgIyEvYmluL3NoPGJyIC8+CiAgICAjIFNldCBkZXNpcmVkIFBIUF9GQ0dJXyogZW52aXJvbm1lbnQgdmFyaWFibGVzLjxiciAvPgogICAgIyBFeGFtcGxlOjxiciAvPgogICAgIyBQSFAgRmFzdENHSSBwcm9jZXNzZXMgZXhpdCBhZnRlciA1MDAgcmVxdWVzdHMgYnkgZGVmYXVsdC48YnIgLz4KICAgIFBIUF9GQ0dJX01BWF9SRVFVRVNUUz0xMDAwMDxiciAvPgogICAgZXhwb3J0IFBIUF9GQ0dJX01BWF9SRVFVRVNUUzxiciAvPgogICAgPGJyIC8+CiAgICAjIFJlcGxhY2Ugd2l0aCB0aGUgcGF0aCB0byB5b3VyIEZhc3RDR0ktZW5hYmxlZCBQSFAgZXhlY3V0YWJsZTxiciAvPgogICAgZXhlYyAvdXNyL2xvY2FsL2Jpbi9waHAtY2dpPGJyIC8+CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5TcGVjaWFsIFBIUCBjb25zaWRlcmF0aW9uczwvaDM+CiAgICA8cD5CeSBkZWZhdWx0LCBQSFAgRmFzdENHSSBwcm9jZXNzZXMgZXhpdCBhZnRlciBoYW5kbGluZyA1MDAKICAgIHJlcXVlc3RzLCBhbmQgdGhleSBtYXkgZXhpdCBhZnRlciB0aGlzIG1vZHVsZSBoYXMgYWxyZWFkeQogICAgY29ubmVjdGVkIHRvIHRoZSBhcHBsaWNhdGlvbiBhbmQgc2VudCB0aGUgbmV4dCByZXF1ZXN0LiAgV2hlbiB0aGF0CiAgICBvY2N1cnMsIGFuIGVycm9yIHdpbGwgYmUgbG9nZ2VkIGFuZCA8Y29kZT41MDAgSW50ZXJuYWwgU2VydmVyCiAgICBFcnJvcjwvY29kZT4gd2lsbCBiZSByZXR1cm5lZCB0byB0aGUgY2xpZW50LiAgVGhpcyBQSFAgYmVoYXZpb3IKICAgIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIDxjb2RlPlBIUF9GQ0dJX01BWF9SRVFVRVNUUzwvY29kZT4gdG8KICAgIDAsIGJ1dCB0aGF0IGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIFBIUCBhcHBsaWNhdGlvbiBsZWFrcwogICAgcmVzb3VyY2VzLiAgQWx0ZXJuYXRpdmVseSwgPGNvZGU+UEhQX0ZDR0lfTUFYX1JFUVVFU1RTPC9jb2RlPiBjYW4KICAgIGJlIHNldCB0byBhIG11Y2ggaGlnaGVyIHZhbHVlIHRoYW4gdGhlIGRlZmF1bHQgdG8gcmVkdWNlIHRoZQogICAgZnJlcXVlbmN5IG9mIHRoaXMgcHJvYmxlbS4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+PC9jb2RlPgogICAgY2FuIGJlIHNldCB0byBhIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwogICAgPGNvZGU+UEhQX0ZDR0lfTUFYX1JFUVVFU1RTPC9jb2RlPiB0byByZXNvbHZlIHRoZSBwcm9ibGVtLjwvcD4KCiAgICA8cD5QSFAgY2hpbGQgcHJvY2VzcyBtYW5hZ2VtZW50ICg8Y29kZT5QSFBfRkNHSV9DSElMRFJFTjwvY29kZT4pCiAgICBzaG91bGQgYWx3YXlzIGJlIGRpc2FibGVkIHdpdGggbW9kX2ZjZ2lkLCB3aGljaCB3aWxsIG9ubHkgcm91dGUKICAgIG9uZSByZXF1ZXN0IGF0IGEgdGltZSB0byBhcHBsaWNhdGlvbiBwcm9jZXNzZXMgaXQgaGFzIHNwYXduZWQ7CiAgICB0aHVzLCBhbnkgY2hpbGQgcHJvY2Vzc2VzIGNyZWF0ZWQgYnkgUEhQIHdpbGwgbm90IGJlIHVzZWQKICAgIGVmZmVjdGl2ZWx5LiAgKEFkZGl0aW9uYWxseSwgdGhlIFBIUCBjaGlsZCBwcm9jZXNzZXMgbWF5IG5vdCBiZQogICAgdGVybWluYXRlZCBwcm9wZXJseS4pIEJ5IGRlZmF1bHQsIGFuZCB3aXRoIHRoZSBlbnZpcm9ubWVudAogICAgdmFyaWFibGUgc2V0dGluZyA8Y29kZT5QSFBfRkNHSV9DSElMRFJFTj0wPC9jb2RlPiwgUEhQIGNoaWxkCiAgICBwcm9jZXNzIG1hbmFnZW1lbnQgaXMgZGlzYWJsZWQuPC9wPgoKICAgIDxwPlRoZSBwb3B1bGFyIEFQQyBvcGNvZGUgY2FjaGUgZm9yIFBIUCBjYW5ub3Qgc2hhcmUgYSBjYWNoZQogICAgYmV0d2VlbiBQSFAgRmFzdENHSSBwcm9jZXNzZXMgdW5sZXNzIFBIUCBtYW5hZ2VzIHRoZSBjaGlsZAogICAgcHJvY2Vzc2VzLiAgVGh1cywgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgdGhlIGNhY2hlIGlzIGxpbWl0ZWQgd2l0aAogICAgbW9kX2ZjZ2lkOyBjb25jdXJyZW50IFBIUCByZXF1ZXN0cyB3aWxsIHVzZSBkaWZmZXJlbnQgb3Bjb2RlCiAgICBjYWNoZXMuPC9wPgogICAgPC9kaXY+CgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb2Nlc3MtbWdtdCIgaWQ9InByb2Nlc3MtbWdtdCI+UHJvY2VzcyBNYW5hZ2VtZW50PC9hPjwvaDI+CiAgICAKCiAgICA8cD5tb2RfZmNnaWQgaGFzIHNldmVyYWwgdHlwZXMgb2YgY29udHJvbHMgd2hpY2ggYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgb2YgYWRkaXRpb25hbCBhcHBsaWNhdGlvbiBwcm9jZXNzZXM6PC9wPgoKICAgIDx0YWJsZSBjbGFzcz0iYm9yZGVyZWQiPjx0ciBjbGFzcz0iaGVhZGVyIj48dGg+VHlwZSBvZiBjb250cm9sPC90aD48dGg+RGlyZWN0aXZlPC90aD48L3RyPgo8dHI+CiAgICAgICAgPHRkPmdsb2JhbCBsaW1pdCBvbiBudW1iZXIgb2YgcHJvY2Vzc2VzPC90ZD4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT48L2NvZGU+PC90ZD4KICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgIDx0ZD5saW1pdCBvbiBudW1iZXIgb2YgcHJvY2Vzc2VzIHBlciBhcHBsaWNhdGlvbjwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvY29kZT48L3RkPgogICAgICA8L3RyPgo8dHI+CiAgICAgICAgPHRkPmxpbWl0IG9uIHJhdGUgb2Ygc3Bhd25pbmcgbmV3IGFwcGxpY2F0aW9uIHByb2Nlc3NlczwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT4gYW5kCiAgICAgICAgb3RoZXIgc2NvcmUtcmVsYXRlZCBkaXJlY3RpdmVzPC90ZD4KICAgICAgPC90cj4KPC90YWJsZT4KCiAgICA8cD5tb2RfZmNnaWQgaGFzIHNldmVyYWwgdHlwZXMgb2YgY29udHJvbHMgd2hpY2ggYWZmZWN0IHRoZSB0ZXJtaW5hdGlvbgogICAgb2YgZXhpc3RpbmcgYXBwbGljYXRpb24gcHJvY2Vzc2VzOjwvcD4KCiAgICA8dGFibGUgY2xhc3M9ImJvcmRlcmVkIj48dHIgY2xhc3M9ImhlYWRlciI+PHRoPlR5cGUgb2YgY29udHJvbDwvdGg+PHRoPkRpcmVjdGl2ZTwvdGg+PC90cj4KPHRyPgogICAgICAgIDx0ZD50ZXJtaW5hdGlvbiBhZnRlciBhbiBpZGxlIHBlcmlvZDwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgPHRkPnRlcm1pbmF0aW9uIGFmdGVyIGl0IGhhbmRsZXMgYSBjZXJ0YWluIG51bWJlciBvZiByZXF1ZXN0czwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgIDwvdHI+Cjx0cj4KICAgICAgICA8dGQ+dGVybWluYXRpb24gYWZ0ZXIgYSBjZXJ0YWluIGxpZmV0aW1lPC90ZD4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZldGltZTwvYT48L2NvZGU+PC90ZD4KICAgICAgPC90cj4KPC90YWJsZT4KCiAgICA8cD5TZXZlcmFsIG9mIHRoZSBkaXJlY3RpdmVzIGNvbnRyb2wgcHJvY2Vzc2luZyBmb3IgYSA8ZW0+cHJvY2VzcwogICAgY2xhc3M8L2VtPi4gIEEgcHJvY2VzcyBjbGFzcyBpcyB0aGUgc2V0IG9mIHByb2Nlc3NlcyB3aGljaCB3ZXJlIHN0YXJ0ZWQKICAgIHdpdGggdGhlIHNhbWUgZXhlY3V0YWJsZSBmaWxlIGFuZCBzaGFyZSBjZXJ0YWluIG90aGVyIGNoYXJhY3RlcmlzdGljcyBzdWNoCiAgICBhcyB2aXJ0dWFsIGhvc3QgYW5kIGlkZW50aXR5LiAgVHdvIGNvbW1hbmRzIHdoaWNoIGFyZSBsaW5rcyB0byBvciBvdGhlcndpc2UKICAgIHJlZmVyIHRvIHRoZSBzYW1lIGV4ZWN1dGFibGUgZmlsZSBzaGFyZSB0aGUgc2FtZSBwcm9jZXNzIGNsYXNzLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90ZTwvaDM+CiAgICA8cD5DZXJ0YWluIHNldHRpbmdzIG9yIG90aGVyIGNvbmNlcHRzIHRoYXQgZGVwZW5kIG9uIHRoZSB2aXJ0dWFsIGhvc3QsCiAgICBzdWNoIGFzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGluaXRpYWxlbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT48L2NvZGU+CiAgICBvciBwcm9jZXNzIGNsYXNzZXMsIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlydHVhbCBob3N0cyBvbmx5IGlmIHRoZXkKICAgIGhhdmUgZGlzdGluY3Qgc2VydmVyIG5hbWVzLiAgKFNlZSB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2VydmVyTmFtZTwvY29kZT4KICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uKSBJbiB0aGUgY2FzZSBvZgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW5pdGlhbGVudiI+RmNnaWRJbml0aWFsRW52PC9hPjwvY29kZT4sIGlmIHR3bwogICAgdmlydHVhbCBob3N0cyBoYXZlIHRoZSBzYW1lIHNlcnZlciBuYW1lIGJ1dCBkaWZmZXJlbnQgZW52aXJvbm1lbnRzIGFzCiAgICBkZWZpbmVkIGJ5CiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9jb2RlPiwgdGhlCiAgICBlbnZpcm9ubWVudCB1c2VkIGZvciBhIHBhcnRpY3VsYXIgcmVxdWVzdCB3aWxsIGJlIHRoYXQgZGVmaW5lZCBmb3IgdGhlCiAgICB2aXJ0dWFsIGhvc3Qgb2YgdGhlIHJlcXVlc3QgdGhhdCBjYXVzZWQgdGhlIEZhc3RDR0kgcHJvY2VzcyB0byBiZQogICAgc3RhcnRlZC48L3A+CiAgICA8L2Rpdj4KCiAgICA8cD5JbmZvcm1hdGlvbiBhYm91dCBlYWNoIHByb2Nlc3Mgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3N0YXR1cy5odG1sIj5tb2Rfc3RhdHVzPC9hPjwvY29kZT4gc2VydmVyLXN0YXR1cyBwYWdlLjwvcD4KICA8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRBY2Nlc3NDaGVja2VyIiBpZD0iRmNnaWRBY2Nlc3NDaGVja2VyIj5GY2dpZEFjY2Vzc0NoZWNrZXI8L2E+IDxhIG5hbWU9ImZjZ2lkYWNjZXNzY2hlY2tlciIgaWQ9ImZjZ2lkYWNjZXNzY2hlY2tlciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+ZnVsbCBwYXRoIHRvIEZhc3RDR0kgYWNjZXNzIGNoZWNrZXI8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBY2Nlc3NDaGVja2VyIDxlbT5jb21tYW5kPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+bm9uZTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5BY2Nlc3MgY2hlY2tpbmcgb3IsIG1vcmUgZm9ybWFsbHksIGFjY2VzcyBjb250cm9sLCBpcyBhIHByb2NlZHVyZQogICAgICB3aGljaCB2ZXJpZmllcyB0aGF0IHRoZSBjbGllbnQgaXMgYWxsb3dlZCB0byBhY2Nlc3MgYSByZXNvdXJjZSwgdXNpbmcKICAgICAgc29tZSBtZWNoYW5pc20gb3RoZXIgdGhhbiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbi48L3A+CgogICAgICA8cD5LZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gZm9yIGFjY2VzcwogICAgICBjaGVja2luZyBhcmU6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT5GQ0dJX0FQQUNIRV9ST0xFPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byA8Y29kZT5BQ0NFU1NfQ0hFQ0tFUjwvY29kZT47IGJ5IGNoZWNraW5nIHRoZSBjdXJyZW50IHJvbGUsCiAgICAgICAgdGhlIHNhbWUgRmFzdENHSSBhcHBsaWNhdGlvbiBjYW4gaGFuZGxlIG11bHRpcGxlIHN0YWdlcyBvZiByZXF1ZXN0CiAgICAgICAgcHJvY2Vzc2luZzwvZGQ+CiAgICAgIDwvZGw+CgogICAgICA8cD5UaGUgYXBwbGljYXRpb24gbXVzdCBvdXRwdXQgYSA8Y29kZT5TdGF0dXM8L2NvZGU+IGxpbmUgdG8gaW5kaWNhdGUKICAgICAgdGhlIHJlc3VsdCBvZiB0aGUgY2hlY2suPC9wPgoKICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPldhcm5pbmc8L2gzPgogICAgICA8cD5CZWZvcmUgMi4zLjYsIG9ubHkgb25lIEZhc3RDR0kgYXBwbGljYXRpb24gb2YgYW55IHR5cGUgKEFBQSBvciBoYW5kbGVyKQogICAgICBjYW4gYmUgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgVVJJLiAgT3RoZXJ3aXNlLCB0aGUgd3JvbmcgRmFzdENHSQogICAgICBhcHBsaWNhdGlvbiBtYXkgYmUgaW52b2tlZCBmb3Igb25lIG9yIG1vcmUgcGhhc2VzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZy48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEFjY2Vzc0NoZWNrZXJBdXRob3JpdGF0aXZlIiBpZD0iRmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSI+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iZmNnaWRhY2Nlc3NjaGVja2VyYXV0aG9yaXRhdGl2ZSIgaWQ9ImZjZ2lkYWNjZXNzY2hlY2tlcmF1dGhvcml0YXRpdmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCB0byAnb2ZmJyB0byBhbGxvdyBhY2Nlc3MgY29udHJvbCB0byBiZSBwYXNzZWQgYWxvbmcgdG8gbG93ZXIgbW9kdWxlcyB1cG9uIGZhaWx1cmU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSA8ZW0+T258T2ZmPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSBPbjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBvdGhlciBhY2Nlc3MgY2hlY2tlcnMKICAgICAgYXJlIGFsbG93ZWQgdG8gcnVuIHdoZW4gdGhpcyBtb2R1bGUgaGFzIGFuIGFjY2VzcyBjaGVja2VyIGNvbmZpZ3VyZWQKICAgICAgYW5kIGl0IGZhaWxzIGEgcmVxdWVzdC4gIElmIHRoaXMgZGlyZWN0aXZlIGlzIDxjb2RlPk9uPC9jb2RlPiAoZGVmYXVsdCkKICAgICAgYW5kIGEgRmFzdENHSSBhY2Nlc3MgY2hlY2tlciByZXR1cm5zIGEgZmFpbHVyZSBzdGF0dXMsIGEgZmFpbHVyZSBpcwogICAgICByZXR1cm5lZCB0byB0aGUgY2xpZW50IHdpdGhvdXQgZ2l2aW5nIG90aGVyIGFjY2VzcyBjaGVja2VycyBhIGNoYW5jZSB0bwogICAgICBhbGxvdyBhY2Nlc3MuICBJZiB0aGlzIGRpcmVjdGl2ZSBpcyA8Y29kZT5PZmY8L2NvZGU+LCBvdGhlciBhY2Nlc3MKICAgICAgY2hlY2tlcnMgd2lsbCBiZSBjYWxsZWQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEF1dGhlbnRpY2F0b3IiIGlkPSJGY2dpZEF1dGhlbnRpY2F0b3IiPkZjZ2lkQXV0aGVudGljYXRvcjwvYT4gPGEgbmFtZT0iZmNnaWRhdXRoZW50aWNhdG9yIiBpZD0iZmNnaWRhdXRoZW50aWNhdG9yIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5mdWxsIHBhdGggdG8gRmFzdENHSSBhdXRoZW50aWNhdG9yPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQXV0aGVudGljYXRvciA8ZW0+Y29tbWFuZDwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPm5vbmU8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QXV0aGVudGljYXRpb24gaXMgdGhlIHByb2NlZHVyZSB3aGljaCB2ZXJpZmllcyB0aGF0IHRoZSB1c2VyIGlzCiAgICAgIHdobyB0aGV5IGNsYWltIHRoZXkgYXJlLiAgVGhpcyBkaXJlY3RpdmUgc3BlY2lmaWVzIHRoZSBmdWxsIHBhdGggdG8KICAgICAgYSBGYXN0Q0dJIGFwcGxpY2F0aW9uIHdoaWNoIHdpbGwgaGFuZGxlIGF1dGhlbnRpY2F0aW9uIGZvciBhIHBhcnRpY3VsYXIKICAgICAgY29udGV4dCwgc3VjaCBhcyBhIGRpcmVjdG9yeS48L3A+CgogICAgICA8cD5LZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gb24gYXV0aGVudGljYXRpb24KICAgICAgYXJlOjwvcD4KCiAgICAgIDxkbD4KICAgICAgICA8ZHQ+PGNvZGU+UkVNT1RFX1VTRVI8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+c2V0IHRvIHRoZSB1c2VyIGlkIG9mIHRoZSBjbGllbnQ8L2RkPgoKICAgICAgICA8ZHQ+PGNvZGU+UkVNT1RFX1BBU1NXRDwvY29kZT48L2R0PgogICAgICAgIDxkZD5zZXQgdG8gdGhlIHBsYWluIHRleHQgcGFzc3dvcmQgcHJvdmlkZWQgYnkgdGhlIGNsaWVudDwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5GQ0dJX0FQQUNIRV9ST0xFPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byA8Y29kZT5BVVRIRU5USUNBVE9SPC9jb2RlPjsgYnkgY2hlY2tpbmcgdGhlIGN1cnJlbnQgcm9sZSwKICAgICAgICB0aGUgc2FtZSBGYXN0Q0dJIGFwcGxpY2F0aW9uIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3RhZ2VzIG9mIHJlcXVlc3QKICAgICAgICBwcm9jZXNzaW5nPC9kZD4KICAgICAgPC9kbD4KCiAgICAgIDxwPlRoZSBhcHBsaWNhdGlvbiBtdXN0IG91dHB1dCBhIDxjb2RlPlN0YXR1czwvY29kZT4gbGluZSB0byBpbmRpY2F0ZQogICAgICB0aGUgcmVzdWx0IG9mIGF1dGhlbnRpY2F0aW9uLjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9Indhcm5pbmciPjxoMz5XYXJuaW5nPC9oMz4KICAgICAgPHA+QmVmb3JlIDIuMy42LCBvbmx5IG9uZSBGYXN0Q0dJIGFwcGxpY2F0aW9uIG9mIGFueSB0eXBlIChBQUEgb3IgaGFuZGxlcikKICAgICAgY2FuIGJlIHVzZWQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IFVSSS4gIE90aGVyd2lzZSwgdGhlIHdyb25nIEZhc3RDR0kKICAgICAgYXBwbGljYXRpb24gbWF5IGJlIGludm9rZWQgZm9yIG9uZSBvciBtb3JlIHBoYXNlcyBvZiByZXF1ZXN0IHByb2Nlc3NpbmcuPC9wPgogICAgICA8L2Rpdj4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZSIgaWQ9IkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmUiPkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmU8L2E+IDxhIG5hbWU9ImZjZ2lkYXV0aGVudGljYXRvcmF1dGhvcml0YXRpdmUiIGlkPSJmY2dpZGF1dGhlbnRpY2F0b3JhdXRob3JpdGF0aXZlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZXQgdG8gJ29mZicgdG8gYWxsb3cgYXV0aGVudGljYXRpb24gdG8gYmUgcGFzc2VkIGFsb25nIHRvIGxvd2VyIG1vZHVsZXMgdXBvbiBmYWlsdXJlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmUgPGVtPk9ufE9mZjwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmUgT248L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBkaXJlY3RpdmUgY29udHJvbHMgd2hldGhlciBvciBub3Qgb3RoZXIgYXV0aGVudGljYXRvcnMKICAgICAgYXJlIGFsbG93ZWQgdG8gcnVuIHdoZW4gdGhpcyBtb2R1bGUgaGFzIGFuIGF1dGhlbnRpY2F0b3IgY29uZmlndXJlZAogICAgICBhbmQgaXQgZmFpbHMgYSByZXF1ZXN0LiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T248L2NvZGU+IChkZWZhdWx0KQogICAgICBhbmQgYSBGYXN0Q0dJIGF1dGhlbnRpY2F0b3IgcmV0dXJucyBhIGZhaWx1cmUgc3RhdHVzLCBhIGZhaWx1cmUgaXMKICAgICAgcmV0dXJuZWQgdG8gdGhlIGNsaWVudCB3aXRob3V0IGdpdmluZyBvdGhlciBhdXRoZW50aWNhdG9ycyBhIGNoYW5jZSB0bwogICAgICB2YWxpZGF0ZSB0aGUgY2xpZW50IGlkZW50aXR5LiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T2ZmPC9jb2RlPiwKICAgICAgb3RoZXIgYXV0aGVudGljYXRvcnMgd2lsbCBiZSBjYWxsZWQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEF1dGhvcml6ZXIiIGlkPSJGY2dpZEF1dGhvcml6ZXIiPkZjZ2lkQXV0aG9yaXplcjwvYT4gPGEgbmFtZT0iZmNnaWRhdXRob3JpemVyIiBpZD0iZmNnaWRhdXRob3JpemVyIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5mdWxsIHBhdGggdG8gRmFzdENHSSBhdXRob3JpemVyPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQXV0aG9yaXplciA8ZW0+Y29tbWFuZDwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPm5vbmU8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QXV0aG9yaXphdGlvbiBpcyB0aGUgcHJvY2VkdXJlIHdoaWNoIHZlcmlmaWVzIHRoYXQgdGhlIHVzZXIgaXMKICAgICAgYWxsb3dlZCB0byBhY2Nlc3MgYSBwYXJ0aWN1bGFyIHJlc291cmNlLiAgVGhpcyBkaXJlY3RpdmUgc3BlY2lmaWVzCiAgICAgIHRoZSBmdWxsIHBhdGggdG8gYSBGYXN0Q0dJIGFwcGxpY2F0aW9uIHdoaWNoIHdpbGwgaGFuZGxlIGF1dGhvcml6YXRpb24KICAgICAgZm9yIGEgcGFydGljdWxhciBjb250ZXh0LCBzdWNoIGFzIGEgZGlyZWN0b3J5LjwvcD4KCiAgICAgIDxwPktleSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFzc2VkIHRvIHRoZSBhcHBsaWNhdGlvbiBvbiBhdXRob3JpemF0aW9uCiAgICAgIGFyZTo8L3A+CgogICAgICA8ZGw+CiAgICAgICAgPGR0Pjxjb2RlPlJFTU9URV9VU0VSPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byB0aGUgdXNlciBpZCBvZiB0aGUgY2xpZW50LCB3aGljaCBoYXMgYWxyZWFkeSBiZWVuCiAgICAgICAgYXV0aGVudGljYXRlZDwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5GQ0dJX0FQQUNIRV9ST0xFPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byA8Y29kZT5BVVRIT1JJWkVSPC9jb2RlPjsgYnkgY2hlY2tpbmcgdGhlIGN1cnJlbnQgcm9sZSwgdGhlCiAgICAgICAgc2FtZSBGYXN0Q0dJIGFwcGxpY2F0aW9uIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3RhZ2VzIG9mIHJlcXVlc3QKICAgICAgICBwcm9jZXNzaW5nPC9kZD4KICAgICAgPC9kbD4KCiAgICAgIDxwPlRoZSBhcHBsaWNhdGlvbiBtdXN0IG91dHB1dCBhIDxjb2RlPlN0YXR1czwvY29kZT4gbGluZSB0byBpbmRpY2F0ZQogICAgICB0aGUgcmVzdWx0IG9mIGF1dGhvcml6YXRpb24uPC9wPgoKICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPldhcm5pbmc8L2gzPgogICAgICA8cD5CZWZvcmUgMi4zLjYsIG9ubHkgb25lIEZhc3RDR0kgYXBwbGljYXRpb24gb2YgYW55IHR5cGUgKEFBQSBvciBoYW5kbGVyKQogICAgICBjYW4gYmUgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgVVJJLiAgT3RoZXJ3aXNlLCB0aGUgd3JvbmcgRmFzdENHSQogICAgICBhcHBsaWNhdGlvbiBtYXkgYmUgaW52b2tlZCBmb3Igb25lIG9yIG1vcmUgcGhhc2VzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZy48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIiBpZD0iRmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iZmNnaWRhdXRob3JpemVyYXV0aG9yaXRhdGl2ZSIgaWQ9ImZjZ2lkYXV0aG9yaXplcmF1dGhvcml0YXRpdmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCB0byAnb2ZmJyB0byBhbGxvdyBhdXRob3JpemF0aW9uIHRvIGJlIHBhc3NlZCBhbG9uZyB0byBsb3dlciBtb2R1bGVzIHVwb24gZmFpbHVyZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIDxlbT5PbnxPZmY8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIE9uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5GaWxlSW5mbzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgZGlyZWN0aXZlIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IG90aGVyIGF1dGhvcml6ZXJzCiAgICAgIGFyZSBhbGxvd2VkIHRvIHJ1biB3aGVuIHRoaXMgbW9kdWxlIGhhcyBhbiBhdXRob3JpemVyIGNvbmZpZ3VyZWQKICAgICAgYW5kIGl0IGZhaWxzIGEgcmVxdWVzdC4gIElmIHRoaXMgZGlyZWN0aXZlIGlzIDxjb2RlPk9uPC9jb2RlPiAoZGVmYXVsdCkKICAgICAgYW5kIGEgRmFzdENHSSBhdXRob3JpemVyIHJldHVybnMgYSBmYWlsdXJlIHN0YXR1cywgYSBmYWlsdXJlIGlzCiAgICAgIHJldHVybmVkIHRvIHRoZSBjbGllbnQgd2l0aG91dCBnaXZpbmcgb3RoZXIgYXV0aG9yaXplciBhIGNoYW5jZSB0bwogICAgICBhY2Nlc3MgdGhlIHJlc291cmNlLiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T2ZmPC9jb2RlPiwgb3RoZXIKICAgICAgYXV0aG9yaXplcnMgd2lsbCBiZSBjYWxsZWQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEJ1c3lTY2FuSW50ZXJ2YWwiIGlkPSJGY2dpZEJ1c3lTY2FuSW50ZXJ2YWwiPkZjZ2lkQnVzeVNjYW5JbnRlcnZhbDwvYT4gPGEgbmFtZT0iZmNnaWRidXN5c2NhbmludGVydmFsIiBpZD0iZmNnaWRidXN5c2NhbmludGVydmFsIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5zY2FuIGludGVydmFsIGZvciBidXN5IHRpbWVvdXQgcHJvY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEJ1c3lTY2FuSW50ZXJ2YWwgPGVtPnNlY29uZHM8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEJ1c3lTY2FuSW50ZXJ2YWwgMTIwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGUgbW9kdWxlIHBlcmZvcm1zIHRoZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRidXN5dGltZW91dCI+RmNnaWRCdXN5VGltZW91dDwvYT48L2NvZGU+IGNoZWNrIGF0IHRoaXMKICAgICAgaW50ZXJ2YWwuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEJ1c3lUaW1lb3V0IiBpZD0iRmNnaWRCdXN5VGltZW91dCI+RmNnaWRCdXN5VGltZW91dDwvYT4gPGEgbmFtZT0iZmNnaWRidXN5dGltZW91dCIgaWQ9ImZjZ2lkYnVzeXRpbWVvdXQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmEgRmFzdENHSSBhcHBsaWNhdGlvbiB3aWxsIGJlIGtpbGxlZCBhZnRlciBoYW5kbGluZyBhIHJlcXVlc3QgZm9yIEZjZ2lkQnVzeVRpbWVvdXQ8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRCdXN5VGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQnVzeVRpbWVvdXQgMzAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIG1heGltdW0gdGltZSBsaW1pdCBmb3IgcmVxdWVzdCBoYW5kbGluZy4gIElmIGEgRmFzdENHSQogICAgICByZXF1ZXN0IGRvZXMgbm90IGNvbXBsZXRlIHdpdGhpbiBGY2dpZEJ1c3lUaW1lb3V0IHNlY29uZHMsIGl0IHdpbGwgYmUKICAgICAgc3ViamVjdCB0byB0ZXJtaW5hdGlvbi4gIEJlY2F1c2UgdGhlIGNoZWNrIGlzIHBlcmZvcm1lZCBhdCB0aGUKICAgICAgaW50ZXJ2YWwgZGVmaW5lZCBieSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRidXN5c2NhbmludGVydmFsIj5GY2dpZEJ1c3lTY2FuSW50ZXJ2YWw8L2E+PC9jb2RlPiwKICAgICAgcmVxdWVzdCBoYW5kbGluZyBtYXkgYmUgYWxsb3dlZCB0byBwcm9jZWVkIGZvciBhIGxvbmdlciBwZXJpb2Qgb2YgdGltZS48L3A+CgogICAgICA8cD5UaGUgcHVycG9zZSBvZiB0aGlzIGRpcmVjdGl2ZSBpcyB0byB0ZXJtaW5hdGUgaHVuZyBhcHBsaWNhdGlvbnMuCiAgICAgIFRoZSBkZWZhdWx0IHRpbWVvdXQgbWF5IG5lZWQgdG8gYmUgaW5jcmVhc2VkIGZvciBhcHBsaWNhdGlvbnMgdGhhdAogICAgICBjYW4gdGFrZSBsb25nZXIgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdC48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkQ21kT3B0aW9ucyIgaWQ9IkZjZ2lkQ21kT3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPiA8YSBuYW1lPSJmY2dpZGNtZG9wdGlvbnMiIGlkPSJmY2dpZGNtZG9wdGlvbnMiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCBwcm9jZXNzaW5nIG9wdGlvbnMgZm9yIGEgRmFzdENHSQogICAgY29tbWFuZDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZENtZE9wdGlvbnMgPGVtPmNvbW1hbmQ8L2VtPiA8ZW0+b3B0aW9uPC9lbT4KICAgIFs8ZW0+b3B0aW9uPC9lbT5dIC4uLjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBhbGxvd3MgcHJvY2Vzc2luZyBvcHRpb25zIHRvIGJlIHNwZWNpZmllZCBmb3IKICAgICAgYSBzcGVjaWZpYyBjb21tYW5kIHNwYXduZWQgYnkgbW9kX2ZjZ2lkLiAgRWFjaCBvcHRpb24gZm9yIHRoZQogICAgICBjb21tYW5kIGNvcnJlc3BvbmRzIHRvIGFub3RoZXIgZGlyZWN0aXZlIHRoYXQgbm9ybWFsbHkgYXBwbGllcyB0bwogICAgICBhbGwgY29tbWFuZHMgc3RhcnRlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyIGNvbnRleHQuICBJZiBhCiAgICAgIHBhcnRpY3VsYXIgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQgb24gdGhpcyBkaXJlY3RpdmUsIHRoZQogICAgICBkZWZhdWx0IHdpbGwgYmUgdXNlZC48L3A+CgogICAgICA8cD5UaGUgZm9sbG93aW5nIHRhYmxlIHByb3ZpZGVzIGEgbGlzdCBvZiBvcHRpb25zIGFuZAogICAgICBjb3JyZXNwb25kaW5nIGRpcmVjdGl2ZXM6PC9wPgoKICAgICAgPHRhYmxlIGNsYXNzPSJib3JkZXJlZCI+PHRyIGNsYXNzPSJoZWFkZXIiPjx0aD5PcHRpb24gbmFtZSBhbmQgc3ludGF4PC90aD48dGg+Q29ycmVzcG9uZGluZyBkaXJlY3RpdmU8L3RoPjwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZT5Db25uZWN0VGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY29ubmVjdHRpbWVvdXQiPkZjZ2lkQ29ubmVjdFRpbWVvdXQ8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPklkbGVUaW1lb3V0IDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxldGltZW91dCI+RmNnaWRJZGxlVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+SW5pdGlhbEVudiA8ZW0+bmFtZVs9dmFsdWVdPC9lbT48L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPklPVGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW90aW1lb3V0Ij5GY2dpZElPVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWF4UHJvY2Vzc2VzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPk1heFByb2Nlc3NMaWZlVGltZSA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWF4UmVxdWVzdHNQZXJQcm9jZXNzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdHNwZXJwcm9jZXNzIj5GY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzczwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWluUHJvY2Vzc2VzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWlucHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPC90YWJsZT4KCiAgICAgIDxwPk11bHRpcGxlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgZGVmaW5lZCBieSByZXBlYXRpbmcKICAgICAgdGhlIDxjb2RlPkluaXRpYWxFbnY8L2NvZGU+IG9wdGlvbi48L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+RXhhbXBsZTwvaDM+PHA+PGNvZGU+CiAgICAgIEZjZ2lkQ21kT3B0aW9ucyAvdXNyL2xvY2FsL2Jpbi93cmFwcGVyIFw8YnIgLz4KICAgICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgIEluaXRpYWxFbnYgTUFYX1JFUVVFU1RTPTIwMDAgXDxiciAvPgogICAgICBNYXhSZXF1ZXN0c1BlclByb2Nlc3MgMjAwMCBcPGJyIC8+CiAgICAgIElPVGltZW91dCA5MDxiciAvPgogICAgICA8L3NwYW4+CiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5XaGVuIDxjb2RlPi91c3IvbG9jYWwvYmluL3dyYXBwZXI8L2NvZGU+IGlzIHNwYXduZWQsIGl0cyBpbml0aWFsCiAgICAgIGVudmlyb25tZW50IGNvbnRhaW5zIHRoZSA8Y29kZT5NQVhfUkVRVUVTVFM9MjAwMDwvY29kZT4KICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0dGluZzsgYWRkaXRpb25hbGx5LCBtb2RfZmNnaWQgd2lsbAogICAgICB0ZXJtaW5hdGUgaXQgYWZ0ZXIgaXQgaGFzIGhhbmRsZWQgMjAwMCByZXF1ZXN0cywgYW5kIEkvTwogICAgICBvcGVyYXRpb25zIHdpbGwgdGltZSBvdXQgYWZ0ZXIgOTAgc2Vjb25kcy4gIERpcmVjdGl2ZXMKICAgICAgY29ycmVzcG9uZGluZyB0byBvdGhlciBvcHRpb25zLCBzdWNoIGFzCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT4gb3IKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+LAogICAgICB3aWxsIGJlIGlnbm9yZWQgZm9yIHRoaXMgY29tbWFuZDsgZGVmYXVsdHMgd2lsbCBiZSB1c2VkIGZvciBvcHRpb25zCiAgICAgIG5vdCBzcGVjaWZpZWQgb24gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmNnaWRDbWRPcHRpb25zPC9jb2RlPi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkQ29ubmVjdFRpbWVvdXQiIGlkPSJGY2dpZENvbm5lY3RUaW1lb3V0Ij5GY2dpZENvbm5lY3RUaW1lb3V0PC9hPiA8YSBuYW1lPSJmY2dpZGNvbm5lY3R0aW1lb3V0IiBpZD0iZmNnaWRjb25uZWN0dGltZW91dCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+Q29ubmVjdCB0aW1lb3V0IHRvIEZhc3RDR0kgc2VydmVyPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQ29ubmVjdFRpbWVvdXQgPGVtPnNlY29uZHM8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZENvbm5lY3RUaW1lb3V0IDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBpcyB0aGUgbWF4aW11bSBwZXJpb2Qgb2YgdGltZSB0aGUgbW9kdWxlIHdpbGwgd2FpdAogICAgICB3aGlsZSB0cnlpbmcgdG8gY29ubmVjdCB0byBhIEZhc3RDR0kgYXBwbGljYXRpb24gb24gV2luZG93cy4KICAgICAgKFRoaXMgZGlyZWN0aXZlIGlzIG5vdCByZXNwZWN0ZWQgb24gVW5peCwgd2hlcmUgQUZfVU5JWCBkZWZhdWx0cwogICAgICB3aWxsIGFwcGx5Lik8L3A+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRjbWRvcHRpb25zIj5GY2dpZENtZE9wdGlvbnM8L2E+PC9jb2RlPiB0byBhcHBseQogICAgICB0aGlzIHNldHRpbmcgdG8gYSBzaW5nbGUgYXBwbGljYXRpb24uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEVycm9yU2NhbkludGVydmFsIiBpZD0iRmNnaWRFcnJvclNjYW5JbnRlcnZhbCI+RmNnaWRFcnJvclNjYW5JbnRlcnZhbDwvYT4gPGEgbmFtZT0iZmNnaWRlcnJvcnNjYW5pbnRlcnZhbCIgaWQ9ImZjZ2lkZXJyb3JzY2FuaW50ZXJ2YWwiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPnNjYW4gaW50ZXJ2YWwgZm9yIGV4aXRlZCBwcm9jZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkRXJyb3JTY2FuSW50ZXJ2YWwgPGVtPnNlY29uZHM8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEVycm9yU2NhbkludGVydmFsIDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGludGVydmFsIGF0IHdoaWNoIHRoZSBtb2R1bGUgd2lsbCBoYW5kbGUKICAgICAgcGVuZGluZyBwcm9jZXNzIHRlcm1pbmF0aW9uLiAgVGVybWluYXRpb24gaXMgcGVuZGluZyBmb3IKICAgICAgYW55IHByb2Nlc3NlcyB3aGljaCBoYXZlIGV4Y2VlZGVkCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT4gb3IKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+LjwvcD4KCiAgICAgIDxwPlVuaXg6IG1vZF9mY2dpZCB3aWxsIHRlcm1pbmF0ZSBzdWNoIHByb2Nlc3NlcyB3aXRoIFNJR1RFUk07CiAgICAgIGlmIHRoZSBwcm9jZXNzIGlzIHN0aWxsIGFjdGl2ZSBkdXJpbmcgdGhlIG5leHQgc2NhbiwgdGhlIHByb2Nlc3MKICAgICAgd2lsbCBiZSB0ZXJtaW5hdGVkIHdpdGggU0lHS0lMTC4gIFRodXMsIHRoaXMgZGlyZWN0aXZlIGNvbnRyb2xzIHRoZQogICAgICBhbW91bnQgb2YgdGltZSBmb3Igb3JkZXJseSBwcm9jZXNzIHRlcm1pbmF0ZSBiZWZvcmUgYmVpbmcgZm9yY2libHkKICAgICAga2lsbGVkLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRGaXhQYXRoaW5mbyIgaWQ9IkZjZ2lkRml4UGF0aGluZm8iPkZjZ2lkRml4UGF0aGluZm88L2E+IDxhIG5hbWU9ImZjZ2lkZml4cGF0aGluZm8iIGlkPSJmY2dpZGZpeHBhdGhpbmZvIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5NaXJyb3IgdGhlIFBIUCA8Y29kZT5jZ2kuZml4X3BhdGhpbmZvPC9jb2RlPgogICAgc2V0dGluZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEZpeFBhdGhpbmZvIDE8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRGaXhQYXRoaW5mbyAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBlbmFibGVzIHNwZWNpYWwgPGNvZGU+U0NSSVBUX05BTUU8L2NvZGU+CiAgICAgIHByb2Nlc3Npbmcgd2hpY2ggYWxsb3dzIFBIUCB0byBwcm92aWRlIGFkZGl0aW9uYWwgcGF0aCBpbmZvcm1hdGlvbi4KICAgICAgVGhlIHNldHRpbmcgb2YgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmNnaWRGaXhQYXRoaW5mbzwvY29kZT4KICAgICAgc2hvdWxkIG1pcnJvciB0aGUgPGNvZGU+Y2dpLmZpeF9wYXRoaW5mbzwvY29kZT4gc2V0dGluZyBpbgogICAgICA8Y29kZT5waHAuaW5pPC9jb2RlPi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkSWRsZVNjYW5JbnRlcnZhbCIgaWQ9IkZjZ2lkSWRsZVNjYW5JbnRlcnZhbCI+RmNnaWRJZGxlU2NhbkludGVydmFsPC9hPiA8YSBuYW1lPSJmY2dpZGlkbGVzY2FuaW50ZXJ2YWwiIGlkPSJmY2dpZGlkbGVzY2FuaW50ZXJ2YWwiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPnNjYW4gaW50ZXJ2YWwgZm9yIGlkbGUgdGltZW91dCBwcm9jZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkSWRsZVNjYW5JbnRlcnZhbCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkSWRsZVNjYW5JbnRlcnZhbCAxMjA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGludGVydmFsIGF0IHdoaWNoIHRoZSBtb2R1bGUgd2lsbCBzZWFyY2ggZm9yCiAgICAgIHByb2Nlc3NlcyB3aGljaCBoYXZlIGV4Y2VlZGVkCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT4gb3IKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+LjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJZGxlVGltZW91dCIgaWQ9IkZjZ2lkSWRsZVRpbWVvdXQiPkZjZ2lkSWRsZVRpbWVvdXQ8L2E+IDxhIG5hbWU9ImZjZ2lkaWRsZXRpbWVvdXQiIGlkPSJmY2dpZGlkbGV0aW1lb3V0Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5BbiBpZGxlIEZhc3RDR0kgYXBwbGljYXRpb24gd2lsbCBiZSBraWxsZWQgYWZ0ZXIgRmNnaWRJZGxlVGltZW91dDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZElkbGVUaW1lb3V0IDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJZGxlVGltZW91dCAzMDA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QXBwbGljYXRpb24gcHJvY2Vzc2VzIHdoaWNoIGhhdmUgbm90IGhhbmRsZWQgYSByZXF1ZXN0IGZvciB0aGlzCiAgICAgIHBlcmlvZCBvZiB0aW1lIHdpbGwgYmUgdGVybWluYXRlZCwgaWYgdGhlIG51bWJlciBvZiBwcm9jZXNzc2VzIGZvciB0aGUKICAgICAgY2xhc3MgZXhjZWVkcwogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRtaW5wcm9jZXNzZXNwZXJjbGFzcyI+RmNnaWRNaW5Qcm9jZXNzZXNQZXJDbGFzczwvYT48L2NvZGU+LgogICAgICBBIHZhbHVlIG9mIDxjb2RlPjA8L2NvZGU+IGRpc2FibGVzIHRoZSBjaGVjay48L3A+CgogICAgICA8cD5UaGlzIGlkbGUgdGltZW91dCBjaGVjayBpcyBwZXJmb3JtZWQgYXQgdGhlIGZyZXF1ZW5jeSBvZiB0aGUgY29uZmlndXJlZAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxlc2NhbmludGVydmFsIj5GY2dpZElkbGVTY2FuSW50ZXJ2YWw8L2E+PC9jb2RlPi48L3A+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRjbWRvcHRpb25zIj5GY2dpZENtZE9wdGlvbnM8L2E+PC9jb2RlPiB0byBhcHBseQogICAgICB0aGlzIHNldHRpbmcgdG8gYSBzaW5nbGUgYXBwbGljYXRpb24uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEluaXRpYWxFbnYiIGlkPSJGY2dpZEluaXRpYWxFbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT4gPGEgbmFtZT0iZmNnaWRpbml0aWFsZW52IiBpZD0iZmNnaWRpbml0aWFsZW52Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5hbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGFuZCBvcHRpb25hbCB2YWx1ZSB0byBwYXNzIHRvIEZhc3RDR0kuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkSW5pdGlhbEVudiA8ZW0+bmFtZTwvZW0+IFsgPGVtPnZhbHVlPC9lbT4gXTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5ub25lPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlVzZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GY2dpZEluaXRpYWxFbnY8L2NvZGU+IHRvIGRlZmluZSBlbnZpcm9ubWVudAogICAgICB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgRmFzdENHSSBhcHBsaWNhdGlvbi4gIFRoaXMgZGlyZWN0aXZlIGNhbgogICAgICBiZSB1c2VkIG11bHRpcGxlIHRpbWVzLjwvcD4KCiAgICAgIDxwPlRoaXMgc2V0dGluZyB3aWxsIGFwcGx5IHRvIGFsbCBhcHBsaWNhdGlvbnMgc3Bhd25lZCBmb3IgdGhpcwogICAgICBzZXJ2ZXIgb3IgdmlydHVhbCBob3N0LiAgVXNlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkSU9UaW1lb3V0IiBpZD0iRmNnaWRJT1RpbWVvdXQiPkZjZ2lkSU9UaW1lb3V0PC9hPiA8YSBuYW1lPSJmY2dpZGlvdGltZW91dCIgaWQ9ImZjZ2lkaW90aW1lb3V0Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Db21tdW5pY2F0aW9uIHRpbWVvdXQgdG8gRmFzdENHSSBzZXJ2ZXI8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJT1RpbWVvdXQgPGVtPnNlY29uZHM8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZElPVGltZW91dCA0MDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGlzIHRoZSBtYXhpbXVtIHBlcmlvZCBvZiB0aW1lIHRoZSBtb2R1bGUgd2lsbCB3YWl0CiAgICAgIHdoaWxlIHRyeWluZyB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8gYSBGYXN0Q0dJIGFwcGxpY2F0aW9uLjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgICAgPHA+VGhlIEZhc3RDR0kgYXBwbGljYXRpb24gbXVzdCBiZWdpbiBnZW5lcmF0aW5nIHRoZSByZXNwb25zZSB3aXRoaW4KICAgICAgdGhpcyBwZXJpb2Qgb2YgdGltZS4gIEluY3JlYXNlIHRoaXMgZGlyZWN0aXZlIGFzIG5lY2Vzc2FyeSB0byBoYW5kbGUKICAgICAgYXBwbGljYXRpb25zIHdoaWNoIHRha2UgYSByZWxhdGl2ZWx5IGxvbmcgcGVyaW9kIG9mIHRpbWUgdG8gcmVzcG9uZC48L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHA+VGhpcyBzZXR0aW5nIHdpbGwgYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucyBzcGF3bmVkIGZvciB0aGlzCiAgICAgIHNlcnZlciBvciB2aXJ0dWFsIGhvc3QuICBVc2UKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY21kb3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPjwvY29kZT4gdG8gYXBwbHkKICAgICAgdGhpcyBzZXR0aW5nIHRvIGEgc2luZ2xlIGFwcGxpY2F0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJUENEaXIiIGlkPSJGY2dpZElQQ0RpciI+RmNnaWRJUENEaXI8L2E+IDxhIG5hbWU9ImZjZ2lkaXBjZGlyIiBpZD0iZmNnaWRpcGNkaXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSBmb3IgQUZfVU5JWCBzb2NrZXRzIChVbml4KSBvciBwaXBlcyAoV2luZG93cyk8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJUENEaXIgPGVtPnBhdGhuYW1lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJUENEaXIgbG9ncy9mY2dpZHNvY2s8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgbW9kdWxlIHVzZXMgQUZfVU5JWCBzb2NrZXRzIG9yIG5hbWVkIHBpcGVzLCBkZXBlbmRpbmcgb24gdGhlCiAgICAgIHBsYXRmb3JtLCB0byBjb21tdW5pY2F0ZSB3aXRoIEZhc3RDR0kgYXBwbGljYXRpb25zLiAgVGhpcyBkaXJlY3RpdmUKICAgICAgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhvc2Ugc29ja2V0cyBvciBuYW1lZCBwaXBlcyB3aWxsIGJlCiAgICAgIGNyZWF0ZWQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZE1heFByb2Nlc3NlcyIgaWQ9IkZjZ2lkTWF4UHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT4gPGEgbmFtZT0iZmNnaWRtYXhwcm9jZXNzZXMiIGlkPSJmY2dpZG1heHByb2Nlc3NlcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+bWF4aW11bSBudW1iZXIgb2YgRmFzdENHSSBhcHBsaWNhdGlvbiBwcm9jZXNzZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXMgPGVtPnZhbHVlPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXMgMTAwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBkaXJlY3RpdmUgc2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgRmFzdENHSSBhcHBsaWNhdGlvbgogICAgICBwcm9jZXNzZXMgd2hpY2ggY2FuIGJlIGFjdGl2ZSBhdCBvbmUgdGltZS48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3MiIGlkPSJGY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzIj5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzPC9hPiA8YSBuYW1lPSJmY2dpZG1heHByb2Nlc3Nlc3BlcmNsYXNzIiBpZD0iZmNnaWRtYXhwcm9jZXNzZXNwZXJjbGFzcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWF4IHByb2Nlc3MgY291bnQgb2Ygb25lIGNsYXNzIG9mIEZhc3RDR0kgYXBwbGljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXNQZXJDbGFzcyA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzIDEwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBzZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwcm9jZXNzZXMgdGhhdCBjYW4gYmUKICAgICAgc3RhcnRlZCBmb3IgZWFjaCBwcm9jZXNzIGNsYXNzLjwvcD4KCiAgICAgIDxwPlRoaXMgc2V0dGluZyB3aWxsIGFwcGx5IHRvIGFsbCBhcHBsaWNhdGlvbnMgc3Bhd25lZCBmb3IgdGhpcwogICAgICBzZXJ2ZXIgb3IgdmlydHVhbCBob3N0LiAgVXNlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWF4UmVxdWVzdEluTWVtIiBpZD0iRmNnaWRNYXhSZXF1ZXN0SW5NZW0iPkZjZ2lkTWF4UmVxdWVzdEluTWVtPC9hPiA8YSBuYW1lPSJmY2dpZG1heHJlcXVlc3Rpbm1lbSIgaWQ9ImZjZ2lkbWF4cmVxdWVzdGlubWVtIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5tYXhpbXVtIHNpemUgb2YgYSByZXF1ZXN0IHdoaWNoIHdpbGwgYmUgaGVsZCBpbiBtZW1vcnk8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0SW5NZW0gPGVtPmJ5dGVzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0SW5NZW0gNjU1MzY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBtb2R1bGUgcmVhZHMgdGhlIGVudGlyZSByZXF1ZXN0IGJvZHkgZnJvbSB0aGUgY2xpZW50CiAgICAgIGJlZm9yZSBzZW5kaW5nIGl0IHRvIHRoZSBhcHBsaWNhdGlvbi4gIE5vcm1hbGx5IHRoZSByZXF1ZXN0IGJvZHkKICAgICAgd2lsbCBiZSBzdG9yZWQgaW4gbWVtb3J5LiAgT25jZSB0aGUgYW1vdW50IG9mIHJlcXVlc3QgYm9keSByZWFkCiAgICAgIGZyb20gdGhlIGNsaWVudCBleGNlZWRzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZjZ2lkTWF4UmVxdWVzdEluTWVtPC9jb2RlPgogICAgICBieXRlcywgdGhlIHJlbWFpbmRlciBvZiB0aGUgcmVxdWVzdCBib2R5IHdpbGwgYmUgc3RvcmVkIGluIGEKICAgICAgdGVtcG9yYXJ5IGZpbGUuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZE1heFJlcXVlc3RMZW4iIGlkPSJGY2dpZE1heFJlcXVlc3RMZW4iPkZjZ2lkTWF4UmVxdWVzdExlbjwvYT4gPGEgbmFtZT0iZmNnaWRtYXhyZXF1ZXN0bGVuIiBpZD0iZmNnaWRtYXhyZXF1ZXN0bGVuIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5tYXhpbXVtIEhUVFAgcmVxdWVzdCBsZW5ndGg8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0TGVuIDxlbT5ieXRlczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkTWF4UmVxdWVzdExlbiAxMzEwNzI8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+SWYgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYm9keSBleGNlZWRzIHRoaXMgYW1vdW50LCB0aGUKICAgICAgcmVxdWVzdCB3aWxsIGZhaWwgd2l0aCA8Y29kZT41MDAgU2VydmVyIEVycm9yPC9jb2RlPi48L3A+CgogICAgICA8cD5BZG1pbmlzdHJhdG9ycyBzaG91bGQgY2hhbmdlIHRoaXMgdG8gYW4gYXBwcm9wcmlhdGUgdmFsdWUgZm9yIHRoZWlyIHNpdGUgYmFzZWQKICAgICAgb24gYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzLjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9Indhcm5pbmciPjxoMz5XYXJuaW5nPC9oMz4KICAgICAgPHA+QmVmb3JlIDIuMy42LCB0aGlzIGRlZmF1bHRlZCB0byAxR0IuICBNb3N0IHVzZXJzIG9mIGVhcmxpZXIgdmVyc2lvbnMgc2hvdWxkCiAgICAgIHVzZSB0aGlzIGRpcmVjdGl2ZSB0byBzZXQgYSBtb3JlIHJlYXNvbmFibGUgbGltaXQuPC9wPgogICAgICA8L2Rpdj4KICAgIAo8aDM+U2VlIGFsc288L2gzPgo8dWw+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRtYXhyZXF1ZXN0aW5tZW0iPkZjZ2lkTWF4UmVxdWVzdEluTWVtPC9hPjwvY29kZT48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MiIGlkPSJGY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+IDxhIG5hbWU9ImZjZ2lkbWF4cmVxdWVzdHNwZXJwcm9jZXNzIiBpZD0iZmNnaWRtYXhyZXF1ZXN0c3BlcnByb2Nlc3MiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPk1heCByZXF1ZXN0cyBoYW5kbGVkIGJ5IGVhY2ggRmFzdENHSSBhcHBsaWNhdGlvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzcyA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzcyAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkZhc3RDR0kgYXBwbGljYXRpb24gcHJvY2Vzc2VzIHdpbGwgYmUgdGVybWluYXRlZCBhZnRlciBoYW5kbGluZwogICAgICB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByZXF1ZXN0cy4gIEEgdmFsdWUgb2YgPGNvZGU+MDwvY29kZT4KICAgICAgZGlzYWJsZXMgdGhlIGNoZWNrLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU8L2gzPgogICAgICA8cD5BIHZhbHVlIG9mIDxjb2RlPi0xPC9jb2RlPiBpcyBjdXJyZW50bHkgYWNjZXB0ZWQgZm9yIGVhc2Ugb2YKICAgICAgbWlncmF0aW9uIGZvciBleGlzdGluZyBjb25maWd1cmF0aW9ucy4gIEl0IGlzIHRyZWF0ZWQgdGhlIHNhbWUgYXMKICAgICAgPGNvZGU+MDwvY29kZT4uPC9wPgogICAgICA8L2Rpdj4KICAgICAgPHA+Q2VydGFpbiBhcHBsaWNhdGlvbnMsIG5vdGFibHkgUEhQIGFzIEZhc3RDR0ksIGhhdmUgdGhlaXIgb3duCiAgICAgIGZhY2lsaXR5IGZvciB0ZXJtaW5hdGluZyBhZnRlciBoYW5kbGluZyBhIGNlcnRhaW4gbnVtYmVyIG9mCiAgICAgIHJlcXVlc3RzLiAgVGhpcyBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gYXZvaWQgc2VuZGluZwogICAgICBhZGRpdGlvbmFsIHJlcXVlc3RzIHRvIHRoZSBhcHBsaWNhdGlvbiBhZnRlciBpdCBoYXMgaGFuZGxlZCBpdHMKICAgICAgbGltaXQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90ZTwvaDM+CiAgICAgIDxwPklmIHRoaXMgaXMgc2V0IHN1Y2ggdGhhdCBmcmVxdWVudCBwcm9jZXNzIGNyZWF0aW9uIHdpbGwgYmUKICAgICAgcmVxdWlyZWQsIHlvdSB3aWxsIGxpa2VseSBuZWVkIHRvIGFkanVzdAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2NvZGU+CiAgICAgIG9yIG90aGVyIHNjb3JlLXJlbGF0ZWQgZGlyZWN0aXZlcyB0byBhbGxvdyBtb3JlIGZyZXF1ZW50IHByb2Nlc3MKICAgICAgY3JlYXRpb24uPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxwPlRoaXMgc2V0dGluZyB3aWxsIGFwcGx5IHRvIGFsbCBhcHBsaWNhdGlvbnMgc3Bhd25lZCBmb3IgdGhpcwogICAgICBzZXJ2ZXIgb3IgdmlydHVhbCBob3N0LiAgVXNlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3MiIGlkPSJGY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzIj5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzPC9hPiA8YSBuYW1lPSJmY2dpZG1pbnByb2Nlc3Nlc3BlcmNsYXNzIiBpZD0iZmNnaWRtaW5wcm9jZXNzZXNwZXJjbGFzcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWluIHByb2Nlc3MgY291bnQgb2Ygb25lIGNsYXNzIG9mIEZhc3RDR0kgYXBwbGljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNaW5Qcm9jZXNzZXNQZXJDbGFzcyA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzIDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBkaXJlY3RpdmUgc2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgcHJvY2Vzc2VzIHRoYXQgd2lsbCBiZQogICAgICByZXRhaW5lZCBpbiBhIHByb2Nlc3MgY2xhc3MgYWZ0ZXIgZmluaXNoaW5nIHJlcXVlc3RzLjwvcD4KCiAgICAgIDxwPlRoaXMgc2V0dGluZyB3aWxsIGFwcGx5IHRvIGFsbCBhcHBsaWNhdGlvbnMgc3Bhd25lZCBmb3IgdGhpcwogICAgICBzZXJ2ZXIgb3IgdmlydHVhbCBob3N0LiAgVXNlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkT3V0cHV0QnVmZmVyU2l6ZSIgaWQ9IkZjZ2lkT3V0cHV0QnVmZmVyU2l6ZSI+RmNnaWRPdXRwdXRCdWZmZXJTaXplPC9hPiA8YSBuYW1lPSJmY2dpZG91dHB1dGJ1ZmZlcnNpemUiIGlkPSJmY2dpZG91dHB1dGJ1ZmZlcnNpemUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkNHSSBvdXRwdXQgYnVmZmVyIHNpemU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRPdXRwdXRCdWZmZXJTaXplIDxlbT5ieXRlczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkT3V0cHV0QnVmZmVyU2l6ZSA2NTUzNjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGlzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiByZXNwb25zZSBkYXRhIHRoZSBtb2R1bGUgd2lsbCByZWFkCiAgICAgIGZyb20gdGhlIEZhc3RDR0kgYXBwbGljYXRpb24gYmVmb3JlIGZsdXNoaW5nIHRoZSBkYXRhIHRvIHRoZSBjbGllbnQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZFBhc3NIZWFkZXIiIGlkPSJGY2dpZFBhc3NIZWFkZXIiPkZjZ2lkUGFzc0hlYWRlcjwvYT4gPGEgbmFtZT0iZmNnaWRwYXNzaGVhZGVyIiBpZD0iZmNnaWRwYXNzaGVhZGVyIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5IZWFkZXIgbmFtZSB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBGYXN0Q0dJIGFzIGVudmlyb25tZW50IHZhcmlhYmxlLjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFBhc3NIZWFkZXIgPGVtPm5hbWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5ub25lPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgZGlyZWN0aXZlIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIHJlcXVlc3QgaGVhZGVyIHdoaWNoCiAgICAgIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBGYXN0Q0dJIGFwcGxpY2F0aW9uIGFzIGFuIGVudmlyb25tZW50CiAgICAgIHZhcmlhYmxlLiAgVGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGRlcml2ZWQgZnJvbQogICAgICB0aGUgdmFsdWUgc3BlY2lmaWVkIG9uIHRoaXMgZGlyZWN0aXZlLCBhcyBkaXNjdXNzZWQgYmVsb3c6PC9wPgoKICAgICAgPHA+VGhlIGxlZ2FjeSBiZWhhdmlvciBpcyB0byB1c2UgdGhlIHZhbHVlIHNwZWNpZmllZCBvbiB0aGlzIGRpcmVjdGl2ZQogICAgICBhcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSwgY29udmVydGluZyBoeXBoZW5zIHRvIHVuZGVyc2NvcmVzLgogICAgICBObyBjYXNlIGNvbnZlcnNpb24gaXMgcGVyZm9ybWVkLjwvcD4KCiAgICAgIDxwPkJlZ2lubmluZyB3aXRoIHJlbGVhc2UgMi4zLjYsIGFuIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGUKICAgICAgaXMgY3JlYXRlZC4gIFRoZSB2YWx1ZSBzcGVjaWZpZWQgb24gdGhpcyBkaXJlY3RpdmUgaXMgY29udmVydGVkIHRvCiAgICAgIHVwcGVyIGNhc2UsIHByZWZpeGVkIHdpdGggPGNvZGU+SFRUUF88L2NvZGU+LCBhbmQgaHlwaGVucyBhcmUKICAgICAgY29udmVydGVkIHRvIHVuZGVyc2NvcmVzLjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgICAgPHA+TW9zdCByZXF1ZXN0IGhlYWRlcnMgYXJlIGFscmVhZHkgYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbgogICAgICBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGFuZCBnZW5lcmFsbHkgYXJlIHByZWZpeGVkIHdpdGgKICAgICAgPGNvZGU+SFRUUF88L2NvZGU+LiAgKE5vdGFibGUgZXhjZXB0aW9ucyBhcmUgPGNvZGU+Q29udGVudC10eXBlPC9jb2RlPgogICAgICBhbmQgPGNvZGU+Q29udGVudC1sZW5ndGg8L2NvZGU+LCB3aGljaCBkbyBub3QgaGF2ZSB0aGUKICAgICAgPGNvZGU+SFRUUF88L2NvZGU+IHByZWZpeC4pICBUaHVzLCB0aGlzIGRpcmVjdGl2ZSBpcyBvbmx5IHJlcXVpcmVkCiAgICAgIGZvciByZXF1ZXN0IGhlYWRlcnMgdGhhdCBhcmUgcHVycG9zZWZ1bGx5IG9taXR0ZWQsIHN1Y2ggYXMKICAgICAgPGNvZGU+QXV0aG9yaXphdGlvbjwvY29kZT4gYW5kIDxjb2RlPlByb3h5LUF1dGhvcml6YXRpb248L2NvZGU+LgogICAgICBPbmx5IHBhc3MgdGhlc2UgcmVxdWVzdCBoZWFkZXJzIGlmIGFic29sdXRlbHkgcmVxdWlyZWQuPC9wPgogICAgICA8L2Rpdj4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRQcm9jZXNzTGlmZVRpbWUiIGlkPSJGY2dpZFByb2Nlc3NMaWZlVGltZSI+RmNnaWRQcm9jZXNzTGlmZVRpbWU8L2E+IDxhIG5hbWU9ImZjZ2lkcHJvY2Vzc2xpZmV0aW1lIiBpZD0iZmNnaWRwcm9jZXNzbGlmZXRpbWUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPm1heGltdW0gRmFzdENHSSBhcHBsaWNhdGlvbiBwcm9jZXNzIGxpZmV0aW1lPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkUHJvY2Vzc0xpZmVUaW1lIDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRQcm9jZXNzTGlmZVRpbWUgMzYwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5JZGxlIGFwcGxpY2F0aW9uIHByb2Nlc3NlcyB3aGljaCBoYXZlIGV4aXN0ZWQgZm9yIGdyZWF0ZXIKICAgICAgdGhhbiB0aGlzIHRpbWUgd2lsbCBiZSB0ZXJtaW5hdGVkLCBpZiB0aGUgbnVtYmVyIG9mIHByb2Nlc3NzZXMgZm9yIHRoZQogICAgICBjbGFzcyBleGNlZWRzCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1pbnByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvY29kZT4uCiAgICAgIEEgdmFsdWUgb2YgPGNvZGU+MDwvY29kZT4gZGlzYWJsZXMgdGhlIGNoZWNrLjwvcD4KCiAgICAgIDxwPlRoaXMgcHJvY2VzcyBsaWZldGltZSBjaGVjayBpcyBwZXJmb3JtZWQgYXQgdGhlIGZyZXF1ZW5jeSBvZiB0aGUgY29uZmlndXJlZAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxlc2NhbmludGVydmFsIj5GY2dpZElkbGVTY2FuSW50ZXJ2YWw8L2E+PC9jb2RlPi48L3A+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRjbWRvcHRpb25zIj5GY2dpZENtZE9wdGlvbnM8L2E+PC9jb2RlPiB0byBhcHBseQogICAgICB0aGlzIHNldHRpbmcgdG8gYSBzaW5nbGUgYXBwbGljYXRpb24uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZFByb2Nlc3NUYWJsZUZpbGUiIGlkPSJGY2dpZFByb2Nlc3NUYWJsZUZpbGUiPkZjZ2lkUHJvY2Vzc1RhYmxlRmlsZTwvYT4gPGEgbmFtZT0iZmNnaWRwcm9jZXNzdGFibGVmaWxlIiBpZD0iZmNnaWRwcm9jZXNzdGFibGVmaWxlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5zaGFyZWQgbWVtb3J5IGZpbGUgcGF0aDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFByb2Nlc3NUYWJsZUZpbGUgPGVtPnBhdGhuYW1lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRQcm9jZXNzVGFibGVGaWxlIGxvZ3MvZmNnaWRfc2htPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIG1vZHVsZSB1c2VzIHNoYXJlZCBtZW1vcnkgb24gVW5peCB0byBtYWludGFpbiBzdGF0ZSB3aGljaAogICAgICBpcyBzaGFyZWQgYmV0d2VlbiBodHRwZCBwcm9jZXNzZXMuICBUaGlzIGRpcmVjdGl2ZSBzcGVjaWZpZXMgdGhlCiAgICAgIG5hbWUgb2YgdGhlIHNoYXJlZCBtZW1vcnkgZmlsZS48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkU3Bhd25TY29yZSIgaWQ9IkZjZ2lkU3Bhd25TY29yZSI+RmNnaWRTcGF3blNjb3JlPC9hPiA8YSBuYW1lPSJmY2dpZHNwYXduc2NvcmUiIGlkPSJmY2dpZHNwYXduc2NvcmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkVhY2ggc3Bhd24gYWRkcyB0aGlzIHZhbHVlIHRvIHRoZSBwcm9jZXNzIGFjdGl2aXR5IHNjb3JlLjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFNwYXduU2NvcmUgPGVtPnZhbHVlPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRTcGF3blNjb3JlIDE8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkxvd2VyIHZhbHVlcyBvZiB0aGlzIGRpcmVjdGl2ZSBpbmNyZWFzZSB0aGUgYWxsb3dlZCBzcGF3biByYXRlLjwvcD4KCiAgICAgIDxwPlJlZmVyIHRvIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2NvZGU+CiAgICAgIGRpcmVjdGl2ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkU3Bhd25TY29yZVVwTGltaXQiIGlkPSJGY2dpZFNwYXduU2NvcmVVcExpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPiA8YSBuYW1lPSJmY2dpZHNwYXduc2NvcmV1cGxpbWl0IiBpZD0iZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWF4aW11bSB2YWx1ZSBvZiB0aGUgcHJvY2VzcyBhY3Rpdml0eSBzY29yZSB3aGljaCBhbGxvd3MKICAgIGEgc3Bhd24gdG8gb2NjdXI8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRTcGF3blNjb3JlVXBMaW1pdCA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFNwYXduU2NvcmVVcExpbWl0IDEwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5BIHByb2Nlc3MgYWN0aXZpdHkgc2NvcmUgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBGYXN0Q0dJIGFwcGxpY2F0aW9uOwogICAgICB0aGUgc2NvcmUgaXMgdXNlZCB0byBjb250cm9sIHRoZSByYXRlIG9mIHNwYXduaW5nIGluIG9yZGVyIHRvIGF2b2lkCiAgICAgIHBsYWNpbmcgdG9vIG11Y2ggbG9hZCBvbiB0aGUgc3lzdGVtLCBwYXJ0aWN1bGFybHkgZm9yIGFwcGxpY2F0aW9ucyB0aGF0CiAgICAgIGFyZSByZXBlYXRlZGx5IGV4aXRpbmcgYWJub3JtYWxseS48L3A+CgogICAgICA8cD5UaGUgdmFsdWUgb2YgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZSI+RmNnaWRTcGF3blNjb3JlPC9hPjwvY29kZT4KICAgICAgaXMgYWRkZWQgdG8gdGhlIHNjb3JlIGZvciBldmVyeSBzcGF3bmVkIGFwcGxpY2F0aW9uIHByb2Nlc3MuICBUaGUgdmFsdWUgb2YKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkdGVybWluYXRpb25zY29yZSI+RmNnaWRUZXJtaW5hdGlvblNjb3JlPC9hPjwvY29kZT4gaXMgYWRkZWQKICAgICAgdG8gdGhlIHNjb3JlIGZvciBldmVyeSB0ZXJtaW5hdGVkIGFwcGxpY2F0aW9uIHByb2Nlc3MuICBUaGUgdmFsdWUgb2YKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkdGltZXNjb3JlIj5GY2dpZFRpbWVTY29yZTwvYT48L2NvZGU+IGlzIHN1YnRyYWN0ZWQKICAgICAgZnJvbSB0aGUgc2NvcmUgZXZlcnkgc2Vjb25kLjwvcD4KCiAgICAgIDxwPldoZW4gdGhlIGN1cnJlbnQgc2NvcmUgaXMgaGlnaGVyIHRoYW4gdGhlIHZhbHVlIG9mCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZjZ2lkU3Bhd25TY29yZVVwTGltaXQ8L2NvZGU+LCBubyBhZGRpdGlvbmFsIGFwcGxpY2F0aW9uCiAgICAgIHByb2Nlc3NlcyB3aWxsIGJlIHNwYXduZWQ7IHN1YnNlcXVlbnQgcmVxdWVzdHMgbXVzdCB3YWl0IHVudGlsIGFuIGV4aXN0aW5nCiAgICAgIHByb2Nlc3MgaXMgZnJlZSBvciB1bnRpbCB0aGUgc2NvcmUgZGVjcmVhc2VzIGJlbG93IHRoZSBsaW1pdC48L3A+CgogICAgICA8cD5JZiB0aGUgbGltaXQgaXMgcmVhY2hlZCB1bmRlciBub3JtYWwgbG9hZCwgaXQgbWF5IG5vdCBiZSBzdWZmaWNpZW50IHRvCiAgICAgIHNpbXBseSBpbmNyZWFzZSB0aGUgbGltaXQsIGFzIHRoYXQgd291bGQgb25seSBkZWxheSB0aGUgYW1vdW50IG9mIHRpbWUKICAgICAgYmVmb3JlIHRoZSBsaW1pdCBpcyByZWFjaGVkIGFnYWluLiAgRGVjcmVhc2UgdGhlIHZhbHVlIG9mCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmUiPkZjZ2lkU3Bhd25TY29yZTwvYT48L2NvZGU+IGFuZC9vcgogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWR0ZXJtaW5hdGlvbnNjb3JlIj5GY2dpZFRlcm1pbmF0aW9uU2NvcmU8L2E+PC9jb2RlPiwgb3IKICAgICAgaW5jcmVhc2UgdGhlIHZhbHVlIG9mIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHRpbWVzY29yZSI+RmNnaWRUaW1lU2NvcmU8L2E+PC9jb2RlPiwKICAgICAgdG8gYWxsb3cgYSBoaWdoZXIgcmF0ZSBvZiBzcGF3bmluZy48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkVGVybWluYXRpb25TY29yZSIgaWQ9IkZjZ2lkVGVybWluYXRpb25TY29yZSI+RmNnaWRUZXJtaW5hdGlvblNjb3JlPC9hPiA8YSBuYW1lPSJmY2dpZHRlcm1pbmF0aW9uc2NvcmUiIGlkPSJmY2dpZHRlcm1pbmF0aW9uc2NvcmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkVhY2ggdGVybWluYXRlZCBwcm9jZXNzIGFkZHMgdGhpcyB2YWx1ZSB0byB0aGUgcHJvY2VzcyBhY3Rpdml0eQogICAgc2NvcmUuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkVGVybWluYXRpb25TY29yZSA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFRlcm1pbmF0aW9uU2NvcmUgMjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+TG93ZXIgdmFsdWVzIG9mIHRoaXMgZGlyZWN0aXZlIGluY3JlYXNlIHRoZSBhbGxvd2VkIHNwYXduIHJhdGUuICBOZWdhdGl2ZQogICAgICB2YWx1ZXMgY2FuIGJlIHVzZWZ1bCBpbiBzb21lIGNpcmN1bXN0YW5jZXMsIHN1Y2ggYXMgYWxsb3dpbmcgcHJvY2VzcwogICAgICByZXBsYWNlbWVudCB3aXRob3V0IGluY3JlYXNpbmcgdGhlIHNjb3JlLjwvcD4KCiAgICAgIDxwPlJlZmVyIHRvIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2NvZGU+CiAgICAgIGRpcmVjdGl2ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkVGltZVNjb3JlIiBpZD0iRmNnaWRUaW1lU2NvcmUiPkZjZ2lkVGltZVNjb3JlPC9hPiA8YSBuYW1lPSJmY2dpZHRpbWVzY29yZSIgaWQ9ImZjZ2lkdGltZXNjb3JlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5BbW91bnQgc3VidHJhY3RlZCBmcm9tIHByb2Nlc3MgYWN0aXZpdHkgc2NvcmUgZWFjaAogICAgc2Vjb25kPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkVGltZVNjb3JlIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkVGltZVNjb3JlIDE8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkhpZ2hlciB2YWx1ZXMgb2YgdGhpcyBkaXJlY3RpdmUgaW5jcmVhc2UgdGhlIGFsbG93ZWQgc3Bhd24gcmF0ZS48L3A+CgogICAgICA8cD5SZWZlciB0byB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZXVwbGltaXQiPkZjZ2lkU3Bhd25TY29yZVVwTGltaXQ8L2E+PC9jb2RlPgogICAgICBkaXJlY3RpdmUgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZFdpbjMyUHJldmVudE9ycGhhbnMiIGlkPSJGY2dpZFdpbjMyUHJldmVudE9ycGhhbnMiPkZjZ2lkV2luMzJQcmV2ZW50T3JwaGFuczwvYT4gPGEgbmFtZT0iZmNnaWR3aW4zMnByZXZlbnRvcnBoYW5zIiBpZD0iZmNnaWR3aW4zMnByZXZlbnRvcnBoYW5zIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Kb2IgQ29udHJvbCBvcnBoYW4gcHJldmVudGlvbiBmb3IgZmNnaSB3b3JrZXJzLjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFdpbjMyUHJldmVudE9ycGhhbnMgPGVtPk9ufE9mZjwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkV2luMzJQcmV2ZW50T3JwaGFucyBPZmY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlVzZXMgSm9iIENvbnRyb2wgT2JqZWN0cyBvbiBXaW5kb3dzLCBvbmx5LCB0byBlbmZvcmNlIHNodXRkb3duIG9mIGFsbAogICAgICBmY2dpIHByb2Nlc3NlcyBjcmVhdGVkIGJ5IHRoZSBodHRwZCB3b3JrZXIgd2hlbiB0aGUgaHR0cGQgd29ya2VyIGhhcyBiZWVuCiAgICAgIHRlcm1pbmF0ZWQuIFByb2Nlc3NlcyB0ZXJtaW5hdGVkIGluIHRoaXMgd2F5IGRvIG5vdCBoYXZlIHRoZSBvcHBvcnR1bml0eQogICAgICB0byBjbGVhbiB1cCBncmFjZWZ1bGx5LCBjb21wbGV0ZSBwZW5kaW5nIGRpc2sgd3JpdGVzLCBvciBzaW1pbGFyIGNsb3N1cmUKICAgICAgdHJhbnNhY3Rpb25zLCB0aGVyZWZvcmUgdGhpcyBiZWhhdmlvciBpcyBleHBlcmltZW50YWwgYW5kIGRpc2FibGVkLCBieQogICAgICBkZWZhdWx0LjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRXcmFwcGVyIiBpZD0iRmNnaWRXcmFwcGVyIj5GY2dpZFdyYXBwZXI8L2E+IDxhIG5hbWU9ImZjZ2lkd3JhcHBlciIgaWQ9ImZjZ2lkd3JhcHBlciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+VGhlIENHSSB3cmFwcGVyIHNldHRpbmc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRXcmFwcGVyIDxlbT5jb21tYW5kPC9lbT4gWyA8ZW0+c3VmZml4PC9lbT4gXSBbIHZpcnR1YWwgXTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5ub25lPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdCwgZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhlIGdpdmVuIGNvbW1hbmQgaXMgdXNlZCB0byBzcGF3biBGQ0dJIHNlcnZlciBwcm9jZXNzZXMuIElmIHRoaXMgZGlyZWN0aXZlCiAgICAgIGlzIG5vdCB1c2VkLCB0aGUgZmlsZSBwb2ludGVkIHRvIGJ5IHRoZSByZXF1ZXN0IFVSTCB3aWxsIGJlIHVzZWQgaW5zdGVhZC4KICAgICAgT3B0aW9ucyBmb3IgdGhlIGNvbW1hbmQgY2FuIGJlIGluY2x1ZGVkIHVzaW5nIHF1b3RhdGlvbiBtYXJrcyBzdXJyb3VuZGluZwogICAgICB0aGUgY29tbWFuZCBhbmQgb3B0aW9ucy48L3A+CiAgICAgIDxwPlRoZSBvcHRpb25hbCA8Y29kZT5zdWZmaXg8L2NvZGU+IGFyZ3VtZW50IHJlc3RyaWN0cyB0aGUgdXNlIG9mIHRoaXMgRkNHSQogICAgICBzZXJ2ZXIgdG8gYWxsIFVSTHMgd2l0aCB0aGUgZ2l2ZW4gZXhhY3QgcGF0aCBzdWZmaXguIEEgc3VmZml4IG5lZWRzIHRvIHN0YXJ0CiAgICAgIHdpdGggJzxjb2RlPi48L2NvZGU+Jy48L3A+CiAgICAgIDxwPlRoZSA8Y29kZT52aXJ0dWFsPC9jb2RlPiBmbGFnIHNpZ25hbHMgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIGNoZWNrCiAgICAgIHdoZXRoZXIgdGhlIHJlcXVlc3QgVVJMIGFjdHVhbGx5IHBvaW50cyB0byBhbiBleGlzdGluZyBmaWxlLiBUaGUgb25seQogICAgICBmaWxlIHdoaWNoIG5lZWRzIHRvIGV4aXN0IGlzIHRoZSB3cmFwcGVyIGl0c2VsZi48L3A+CiAgICAgIDxwPlRoZSBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMuIEEgd3JhcHBlciBkZWZpbmVkIHdpdGhvdXQgYSBzdWZmaXgKICAgICAgaXMgdXNlZCBhcyBhIGRlZmF1bHQgaW4gY2FzZSBubyBzdWZmaXggbWF0Y2hlcy48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkWm9tYmllU2NhbkludGVydmFsIiBpZD0iRmNnaWRab21iaWVTY2FuSW50ZXJ2YWwiPkZjZ2lkWm9tYmllU2NhbkludGVydmFsPC9hPiA8YSBuYW1lPSJmY2dpZHpvbWJpZXNjYW5pbnRlcnZhbCIgaWQ9ImZjZ2lkem9tYmllc2NhbmludGVydmFsIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5zY2FuIGludGVydmFsIGZvciB6b21iaWUgcHJvY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFpvbWJpZVNjYW5JbnRlcnZhbCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkWm9tYmllU2NhbkludGVydmFsIDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoZSBtb2R1bGUgY2hlY2tzIGZvciBleGl0ZWQgRmFzdENHSSBhcHBsaWNhdGlvbnMgYXQgdGhpcyBpbnRlcnZhbC4KICAgICAgRHVyaW5nIHRoaXMgcGVyaW9kIG9mIHRpbWUsIHRoZSBhcHBsaWNhdGlvbiBtYXkgZXhpc3QgaW4gdGhlIHByb2Nlc3MKICAgICAgdGFibGUgYXMgYSB6b21iaWUgKG9uIFVuaXgpLjwvcD4KICAgIAo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9mY2dpZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvdHJ1bmsvbW9kL21vZF9mY2dpZC5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAyMCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPgo=