PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5GaWNoaWVycyBqb3VybmF1eCAtIFNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNpb24gMi41PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5GaWNoaWVycyBqb3VybmF1eDwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9sb2dzLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2xvZ3MuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2xvZ3MuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2xvZ3MuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9sb2dzLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgogICAgPHA+UG91ciB26XJpdGFibGVtZW50IGfpcmVyIHVuIHNlcnZldXIgd2ViLAogICAgaWwgZXN0IG7pY2Vzc2FpcmUgZGUgZGlzcG9zZXIgZCd1bgogICAgcmV0b3VyIGQnaW5mb3JtYXRpb25zIOAgcHJvcG9zIGRlIGwnYWN0aXZpdOkgZXQgZGVzIHBlcmZvcm1hbmNlcyBkdQogICAgc2VydmV1ciwgYWluc2kgcXVlIGRlIHRvdXQgcHJvYmzobWUgcXVpIHBvdXJyYWl0IHN1cnZlbmlyLiBMZSBzZXJ2ZXVyIEhUVFAKICAgIEFwYWNoZSBwcm9wb3NlIGRlcyBmb25jdGlvbm5hbGl06XMgZGUgam91cm5hbGlzYXRpb24gc291cGxlcyBldCB0cuhzCiAgICBjb21wbOh0ZXMuIENlIGRvY3VtZW50IGTpY3JpdCBjb21tZW50IGNvbmZpZ3VyZXIgY2VzIGZvbmN0aW9ubmFsaXTpcyBkZQogICAgam91cm5hbGlzYXRpb24gZXQgaW50ZXJwcul0ZXIgbGUgY29udGVudSBkZXMgam91cm5hdXguPC9wPgogIDwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI292ZXJ2aWV3Ij5WdWUgZCdlbnNlbWJsZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NlY3VyaXR5Ij5BdmVydGlzc2VtZW50IOAgcHJvcG9zIGRlIGxhIHPpY3VyaXTpPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXJyb3Jsb2ciPkpvdXJuYWwgZGVzIGVycmV1cnM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwZXJtb2R1bGUiPkpvdXJuYWxpc2F0aW9uIHBhciBtb2R1bGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNhY2Nlc3Nsb2ciPkpvdXJuYWwgZGVzIGFjY+hzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcm90YXRpb24iPlJvdGF0aW9uIGRlcyBqb3VybmF1eDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3BpcGVkIj5Kb3VybmF1eCByZWRpcmln6XM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN2aXJ0dWFsaG9zdCI+SPR0ZXMgdmlydHVlbHM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNvdGhlciI+QXV0cmVzIGZpY2hpZXJzIGpvdXJuYXV4PC9hPjwvbGk+CjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im92ZXJ2aWV3IiBpZD0ib3ZlcnZpZXciPlZ1ZSBkJ2Vuc2VtYmxlPC9hPjwvaDI+CiAgICAKCiAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwiPm1vZF9sb2dfY29uZmlnPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2ZvcmVuc2ljLmh0bWwiPm1vZF9sb2dfZm9yZW5zaWM8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dpby5odG1sIj5tb2RfbG9naW88L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkIC8+PC90cj48L3RhYmxlPgoKICA8cD4KICBMZSBzZXJ2ZXVyIEhUVFAgQXBhY2hlIGZvdXJuaXQgdG91dGUgdW5lIHZhcmnpdOkgZGUgbeljYW5pc21lcwogIGRpZmbpcmVudHMgcG91ciBsYSBqb3VybmFsaXNhdGlvbiBkZSB0b3V0IGNlIHF1aSBwZXV0IHNlIHBhc3NlciBhdQogIHNlaW4gZGUgdm90cmUgc2VydmV1ciwgZGVwdWlzIGxhIHJlcXXqdGUgaW5pdGlhbGUsIGVuIHBhc3NhbnQgcGFyIGxlCiAgcHJvY2Vzc3VzIGRlIG1pc2UgZW4gY29ycmVzcG9uZGFuY2UgZGVzIFVSTHMsIGV0IGp1c3F1J+AgbGEgZmVybWV0dXJlCiAgZGUgbGEgY29ubmV4aW9uLCB5IGNvbXByaXMgdG91dGUgZXJyZXVyIHBvdXZhbnQgc3VydmVuaXIgYXUgY291cnMgZHUKICB0cmFpdGVtZW50LiBEZSBwbHVzLCBjZXJ0YWlucyBtb2R1bGVzIHRpZXJzIGZvdXJuaXNzZW50IGRlcwogIGZvbmN0aW9ubmFsaXTpcyBkZSBqb3VybmFsaXNhdGlvbiBvdSBpbnPocmVudCBkZXMgZW50cullcyBkYW5zIGxlcwogIGZpY2hpZXJzIGpvdXJuYXV4IGV4aXN0YW50cywgZXQgbGVzIGFwcGxpY2F0aW9ucyBjb21tZSBsZXMgcHJvZ3JhbW1lcwogIENHSSwgbGVzIHNjcmlwdHMgUEhQIG91IGF1dHJlcyBnZXN0aW9ubmFpcmVzIHBldXZlbnQgZW52b3llciBkZXMKICBtZXNzYWdlcyB2ZXJzIGxlIGpvdXJuYWwgZGVzIGVycmV1cnMgZHUgc2VydmV1ci4KICA8L3A+CgogIDxwPgogIENlIGRvY3VtZW50IGTpY3JpdCBsZSBmb25jdGlvbm5lbWVudCBkZXMgbW9kdWxlcyBkZSBqb3VybmFsaXNhdGlvbgogIGZvdXJuaXMgZW4gc3RhbmRhcmQgYXZlYyBsZSBzZXJ2ZXVyIGh0dHBkLgogIDwvcD4KCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzZWN1cml0eSIgaWQ9InNlY3VyaXR5Ij5BdmVydGlzc2VtZW50IOAgcHJvcG9zIGRlIGxhIHPpY3VyaXTpPC9hPjwvaDI+CiAgICAKCiAgICA8cD5Ub3V0IHV0aWxpc2F0ZXVyIHF1aSBhIGxlcyBkcm9pdHMgZW4g6WNyaXR1cmUgc3VyIGxlIHLpcGVydG9pcmUgZGFucwogICAgbGVxdWVsIEFwYWNoZSBodHRwZCDpY3JpdCBzZXMgam91cm5hdXggcG91cnJhIHF1YXNpCiAgICBjZXJ0YWluZW1lbnQgYXZvaXIgYWNj6HMg4CBsJ3VpZCBzb3VzIGxlcXVlbCBsZSBzZXJ2ZXVyIGVzdCBk6W1hcnLpLCBlbgogICAgbCdvY2N1cnJlbmNlIGhhYml0dWVsbGVtZW50IHJvb3QuIE4nYWNjb3JkZXogPGVtPlBBUzwvZW0+IGF1eCB1dGlsaXNhdGV1cnMKICAgIGwnYWNj6HMgZW4g6WNyaXR1cmUgYXUgculwZXJ0b2lyZSBkYW5zIGxlcXVlbCBsZXMgam91cm5hdXggc29udCBzdG9ja+lzCiAgICBzYW5zIHNhdm9pciBleGFjdGVtZW50IHF1ZWxsZXMgZW4gc2VyYWllbnQgbGVzIGNvbnPpcXVlbmNlcyA7IHZvaXIgbGUKICAgIGRvY3VtZW50IDxhIGhyZWY9Im1pc2Mvc2VjdXJpdHlfdGlwcy5odG1sIj5jb25zZWlscyBzdXIgbGEgc+ljdXJpdOk8L2E+CiAgICBwb3VyIHBsdXMgZGUgZOl0YWlscy48L3A+CgogICAgPHA+RW4gb3V0cmUsIGxlcyBqb3VybmF1eCBwZXV2ZW50IGNvbnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgZm91cm5pZXMKICAgIGRpcmVjdGVtZW50IHBhciB1biBjbGllbnQsIHNhbnMgY2FyYWN06HJlcyBkJ+ljaGFwcGVtZW50LiBEZXMgY2xpZW50cyBtYWwKICAgIGludGVudGlvbm7pcyBwZXV2ZW50IGRvbmMgaW5z6XJlciBkZXMgY2FyYWN06HJlcyBkZSBjb250cvRsZSBkYW5zIGxlcwogICAgam91cm5hdXgsIGV0IGlsIGNvbnZpZW50IHBhciBjb25z6XF1ZW50IGQn6nRyZSB0cuhzIHBydWRlbnQgbG9ycyBkZSBsYQogICAgbWFuaXB1bGF0aW9uIGRlcyBqb3VybmF1eCBicnV0cy48L3A+CiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJlcnJvcmxvZyIgaWQ9ImVycm9ybG9nIj5Kb3VybmFsIGRlcyBlcnJldXJzPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+TW9kdWxlcyBBcHBhcmVudOlzPC90aD48dGg+RGlyZWN0aXZlcyBBcHBhcmVudOllczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sIj5jb3JlPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZXJyb3Jsb2ciPkVycm9yTG9nPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9nbGV2ZWwiPkxvZ0xldmVsPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+TGUgam91cm5hbCBkZXMgZXJyZXVycyBkdSBzZXJ2ZXVyLCBkb250IGxlIG5vbSBldCBsYSBsb2NhbGlzYXRpb24gc29udAogICAgZOlmaW5pcyBwYXIgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNlcnJvcmxvZyI+RXJyb3JMb2c8L2E+PC9jb2RlPiwKICAgIGVzdCBsZSBqb3VybmFsIGxlIHBsdXMgaW1wb3J0YW50LiBDJ2VzdCBkYW5zIGNlbHVpLWNpCiAgICBxdWUgbGUgZOltb24gQXBhY2hlIGh0dHBkIHZhIGVudm95ZXIgbGVzIGluZm9ybWF0aW9ucyBkZSBkaWFnbm9zdGljIGV0CiAgICBlbnJlZ2lzdHJlciB0b3V0ZXMgbGVzIGVycmV1cnMgcXVpIHN1cnZpZW5uZW50IGxvcnMgZHUgdHJhaXRlbWVudCBkZXMKICAgIHJlcXXqdGVzLiBMb3JzcXUndW4gcHJvYmzobWUgc3VydmllbnQgYXUgZOltYXJyYWdlIGR1IHNlcnZldXIgb3UgcGVuZGFudAogICAgc29uIGZvbmN0aW9ubmVtZW50LCBsYSBwcmVtaehyZSBjaG9zZSDgIGZhaXJlIGVzdCBkZSByZWdhcmRlciBkYW5zIGNlCiAgICBqb3VybmFsLCBjYXIgaWwgdm91cyByZW5zZWlnbmVyYSBzb3V2ZW50IHN1ciBsZSBwcm9ibOhtZSByZW5jb250cukgZXQKICAgIGxhIG1hbmnocmUgZCd5IHJlbelkaWVyLjwvcD4KCiAgICA8cD5MZSBqb3VybmFsIGRlcyBlcnJldXJzIGVzdCBoYWJpdHVlbGxlbWVudCBlbnJlZ2lzdHLpIGRhbnMgdW4gZmljaGllcgogICAgKGVuIGfpbulyYWwgPGNvZGU+ZXJyb3JfbG9nPC9jb2RlPiBzdXIgbGVzIHN5c3TobWVzIGRlIHR5cGUgVW5peCBldAogICAgPGNvZGU+ZXJyb3IubG9nPC9jb2RlPiBzdXIgV2luZG93cyBldCBPUy8yKS4gU3VyIGxlcyBzeXN06G1lcyBkZSB0eXBlIFVuaXgsCiAgICBsZSBzZXJ2ZXVyIHBldXQgYXVzc2kgZW5yZWdpc3RyZXIgc2VzIGVycmV1cnMgZGFucwogICAgPGNvZGU+c3lzbG9nPC9jb2RlPiBvdSBsZXMKICAgIDxhIGhyZWY9IiNwaXBlZCI+cmVkaXJpZ2VyIHZlcnMgdW4gcHJvZ3JhbW1lPC9hPiBwYXIgbCdpbnRlcm3pZGlhaXJlIGQndW4KICAgIHR1YmUgZGUgY29tbXVuaWNhdGlvbiAocGlwZSkuPC9wPgoKICAgIDxwPkxlIGZvcm1hdCBwYXIgZOlmYXV0IGR1IGpvdXJuYWwgZGVzIGVycmV1cnMgZXN0IGRlc2NyaXB0aWYgZXQgZGUgZm9ybWUKICAgIHJlbGF0aXZlbWVudCBsaWJyZS4gQ2VydGFpbmVzIGluZm9ybWF0aW9ucyBhcHBhcmFpc3NlbnQgY2VwZW5kYW50IGRhbnMgbGEKICAgIHBsdXBhcnQgZGVzIGVudHLpZXMgZHUgam91cm5hbC4gVm9pY2kgdW4gbWVzc2FnZSB0eXBpcXVlCiAgICDgIHRpdHJlIGQnZXhlbXBsZSA6IDwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgW1dlZCBPY3QgMTEgMTQ6MzI6NTIgMjAwMF0gW2Vycm9yXSBbY2xpZW50IDEyNy4wLjAuMV0KICAgICAgY2xpZW50IGRlbmllZCBieSBzZXJ2ZXIgY29uZmlndXJhdGlvbjoKICAgICAgL2V4cG9ydC9ob21lL2xpdmUvYXAvaHRkb2NzL3Rlc3QKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+TGUgcHJlbWllciBjaGFtcCBkZSBsJ2VudHLpZSBkdSBqb3VybmFsIGVzdCBsYSBkYXRlIGV0IGwnaGV1cmUgZHUKICAgIG1lc3NhZ2UuIExlIHNlY29uZCBjaGFtcCBpbmRpcXVlIGxhIHPpdulyaXTpIGRlIGwnZXJyZXVyIHJhcHBvcnTpZS4gTGEKICAgIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9nbGV2ZWwiPkxvZ0xldmVsPC9hPjwvY29kZT4gcGVybWV0IGRlCiAgICByZXN0cmVpbmRyZSBsZSB0eXBlIGRlcyBlcnJldXJzIHF1aSBkb2l2ZW50IOp0cmUgZW5yZWdpc3Ry6WVzCiAgICBkYW5zIGxlIGpvdXJuYWwgZGVzIGVycmV1cnMgZW4gZOlmaW5pc3NhbnQgbGV1ciBuaXZlYXUgZGUgc+l26XJpdOkuIExlCiAgICB0cm9pc2nobWUgY2hhbXAgY29udGllbnQgbCdhZHJlc3NlIElQIGR1IGNsaWVudCBxdWkgYSBn6W7pcukgbCdlcnJldXIuCiAgICBWaWVudCBlbnN1aXRlIGxlIG1lc3NhZ2UgcHJvcHJlbWVudCBkaXQsIHF1aSBpbmRpcXVlIGRhbnMgY2UgY2FzIHF1ZSBsZQogICAgc2VydmV1ciBhIOl06SBjb25maWd1cukgcG91ciBpbnRlcmRpcmUgbCdhY2PocyBhdSBjbGllbnQuIExlIHNlcnZldXIKICAgIGluZGlxdWUgbGUgY2hlbWluIHN5c3TobWUgZHUgZG9jdW1lbnQgcmVxdWlzIChldCBub24KICAgIHNvbiBjaGVtaW4gd2ViKS48L3A+CgogICAgPHA+VW5lIGdyYW5kZSB2YXJp6XTpIGRlIG1lc3NhZ2VzIGRpZmbpcmVudHMgcGV1dmVudCBhcHBhcmHudHJlIGRhbnMgbGUKICAgIGpvdXJuYWwgZGVzIGVycmV1cnMuIExhIHBsdXBhcnQgZCdlbnRyZSBldXggc29udCBzaW1pbGFpcmVzIOAgbCdleGVtcGxlCiAgICBjaS1kZXNzdXMuIExlIGpvdXJuYWwgZGVzIGVycmV1cnMgcGV1dCBhdXNzaSBjb250ZW5pciBkZXMgaW5mb3JtYXRpb25zIGRlCiAgICBk6WJvZ2FnZSBlbiBwcm92ZW5hbmNlIGRlIHNjcmlwdHMgQ0dJLiBUb3V0ZSBpbmZvcm1hdGlvbiBxdSd1biBzY3JpcHQgQ0dJCiAgICDpY3JpdCBzdXIgbGEgc29ydGllIGQnZXJyZXVycyBzdGFuZGFyZCA8Y29kZT5zdGRlcnI8L2NvZGU+IHNlcmEgcmVjb3Bp6WUKICAgIHRlbGxlIHF1ZWxsZSBkYW5zIGxlIGpvdXJuYWwgZGVzIGVycmV1cnMuPC9wPgoKICAgIDxwPkxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZXJyb3Jsb2dmb3JtYXQiPkVycm9yTG9nRm9ybWF0PC9hPjwvY29kZT4KICAgIHZvdXMgcGVybWV0IGRlIHBlcnNvbm5hbGlzZXIgbGUgZm9ybWF0IGR1IGpvdXJuYWwgZGVzIGVycmV1cnMsIGV0IGRlCiAgICBk6WZpbmlyIGxlcyBpbmZvcm1hdGlvbnMg4CBqb3VybmFsaXNlci4gU2kKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF91bmlxdWVfaWQuaHRtbCI+bW9kX3VuaXF1ZV9pZDwvYT48L2NvZGU+IGVzdCBwculzZW50LCB2b3VzIHBvdXZleiB1dGlsaXNlciBsZQogICAgZHJhcGVhdSA8Y29kZT4lTDwvY29kZT4g4CBsYSBmb2lzIGRhbnMgbGUgam91cm5hbCBkZXMgZXJyZXVycyBldAogICAgZGFucyBsZQogICAgam91cm5hbCBkZXMgYWNj6HMsIGNlIHF1aSBhdXJhIHBvdXIgZWZmZXQgZGUgZ+lu6XJlciB1biBpZGVudGlmaWFudAogICAgZCdlbnRy6WUgcXVpIHZvdXMgcGVybWV0dHJhIGRlIGNvcnLpbGVyIGxlcyBlbnRy6WVzIGR1IGpvdXJuYWwgZGVzCiAgICBlcnJldXJzIGF2ZWMgY2VsbGVzIGR1IGpvdXJuYWwgZGVzIGFjY+hzLjwvcD4KCiAgICA8cD5QZW5kYW50IGxhIHBoYXNlIGRlIHRlc3QsIGlsIGVzdCBzb3V2ZW50IHV0aWxlIGRlIHZpc3VhbGlzZXIgZW4gY29udGludQogICAgbGUgam91cm5hbCBkZXMgZXJyZXVycyBhZmluIGRlIGTpdGVjdGVyIHRvdXQgcHJvYmzobWUg6XZlbnR1ZWwuIFN1ciBsZXMKICAgIHN5c3TobWVzIGRlIHR5cGUgVW5peCwgY2VjaSBzJ2VmZmVjdHVlIOAgbCdhaWRlIGRlIGxhIGNvbW1hbmRlIDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIHRhaWwgLWYgZXJyb3JfbG9nCiAgICA8L2NvZGU+PC9wPjwvZGl2PgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icGVybW9kdWxlIiBpZD0icGVybW9kdWxlIj5Kb3VybmFsaXNhdGlvbiBwYXIgbW9kdWxlPC9hPjwvaDI+CiAgICAKCiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvZ2xldmVsIj5Mb2dMZXZlbDwvYT48L2NvZGU+IHBlcm1ldAogICAgZGUgc3DpY2lmaWVyIHVuIG5pdmVhdSBkZSBz6Xbpcml06SBkZSBqb3VybmFsaXNhdGlvbiBwb3VyIGNoYXF1ZQogICAgbW9kdWxlLiBWb3VzIHBvdXZleiBhaW5zaSBy6XNvdWRyZSB1biBwcm9ibOhtZSBwcm9wcmUg4CB1biBtb2R1bGUgcGFydGljdWxpZXIKICAgIGVuIGF1Z21lbnRhbnQgc29uIHZvbHVtZSBkZSBqb3VybmFsaXNhdGlvbiBzYW5zIGF1Z21lbnRlciBjZSB2b2x1bWUKICAgIHBvdXIgbGVzIGF1dHJlcyBtb2R1bGVzLiBDZWNpIGVzdCBwYXJ0aWN1bGnocmVtZW50IHV0aWxlIGxvcnNxdWUKICAgIHZvdXMgdm91bGV6IG9idGVuaXIgZGVzIGTpdGFpbHMgc3VyIGxlIGZvbmN0aW9ubmVtZW50IGRlIG1vZHVsZXMKICAgIGNvbW1lIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9wcm94eS5odG1sIj5tb2RfcHJveHk8L2E+PC9jb2RlPiBvdSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfcmV3cml0ZS5odG1sIj5tb2RfcmV3cml0ZTwvYT48L2NvZGU+LjwvcD4KCiAgICA8cD5Qb3VyIGNlIGZhaXJlLCB2b3VzIGRldmV6IHNw6WNpZmllciBsZSBub20gZHUgbW9kdWxlIGRhbnMgdm90cmUKICAgIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Mb2dMZXZlbDwvY29kZT4gOjwvcD4KCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TG9nTGV2ZWwgaW5mbyByZXdyaXRlOnRyYWNlNTwvcHJlPgoKCiAgICA8cD5EYW5zIGNldCBleGVtcGxlLCBsZSBuaXZlYXUgZGUgam91cm5hbGlzYXRpb24gZ+lu6XJhbCBlc3QgZOlmaW5pCiAgICDgIGluZm8sIGV0IOAgPGNvZGU+dHJhY2U1PC9jb2RlPiBwb3VyIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4uPC9wPgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPkNldHRlIGRpcmVjdGl2ZSByZW1wbGFjZSBsZXMgZGlyZWN0aXZlcyBkZSBqb3VybmFsaXNhdGlvbiBwYXIKICAgIG1vZHVsZSBkZXMgdmVyc2lvbnMgcHLpY+lkZW50ZXMgZHUgc2VydmV1ciwgY29tbWUKICAgIDxjb2RlPlJld3JpdGVMb2c8L2NvZGU+LjwvZGl2PgogPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJhY2Nlc3Nsb2ciIGlkPSJhY2Nlc3Nsb2ciPkpvdXJuYWwgZGVzIGFjY+hzPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+TW9kdWxlcyBBcHBhcmVudOlzPC90aD48dGg+RGlyZWN0aXZlcyBBcHBhcmVudOllczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCI+bW9kX2xvZ19jb25maWc8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zZXRlbnZpZi5odG1sIj5tb2Rfc2V0ZW52aWY8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwjY3VzdG9tbG9nIj5DdXN0b21Mb2c8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwjbG9nZm9ybWF0Ij5Mb2dGb3JtYXQ8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zZXRlbnZpZi5odG1sI3NldGVudmlmIj5TZXRFbnZJZjwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPgoKICAgIDxwPkxlIGpvdXJuYWwgZGVzIGFjY+hzIGF1IHNlcnZldXIKICAgIGVucmVnaXN0cmUgdG91dGVzIGxlcyByZXF16nRlcyBxdWUgdHJhaXRlCiAgICBjZSBkZXJuaWVyLiBMYSBsb2NhbGlzYXRpb24gZXQgbGUgY29udGVudSBkdSBqb3VybmFsIGRlcyBhY2PocyBzb250IGTpZmluaXMKICAgIHBhciBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNjdXN0b21sb2ciPkN1c3RvbUxvZzwvYT48L2NvZGU+LgogICAgTGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwjbG9nZm9ybWF0Ij5Mb2dGb3JtYXQ8L2E+PC9jb2RlPgogICAgcGVybWV0IGRlIHNpbXBsaWZpZXIgbGEgc+lsZWN0aW9uIGR1IGNvbnRlbnUgZHUgam91cm5hbC4gQ2V0dGUgc2VjdGlvbgogICAgZOljcml0IGNvbW1lbnQgY29uZmlndXJlciBsZSBzZXJ2ZXVyIHBvdXIgbCdlbnJlZ2lzdHJlbWVudCBkZXMgaW5mb3JtYXRpb25zCiAgICBkYW5zIGxlIGpvdXJuYWwgZGVzIGFjY+hzLjwvcD4KCiAgICA8cD5CaWVuIOl2aWRlbW1lbnQsIGxlIHN0b2NrYWdlIGQnaW5mb3JtYXRpb25zIGRhbnMgbGUgam91cm5hbCBkZXMgYWNj6HMKICAgIG4nZXN0IHF1ZSBsZSBwb2ludCBkZSBk6XBhcnQgZGUgbGEgZ2VzdGlvbiBkZSBsYSBqb3VybmFsaXNhdGlvbi4gTCfpdGFwZQogICAgc3VpdmFudGUgY29uc2lzdGUg4CBhbmFseXNlciBjZXMgaW5mb3JtYXRpb25zIGRlIGZh529uIOAgcG91dm9pciBlbgogICAgZXh0cmFpcmUgZGVzIHN0YXRpc3RpcXVlcyB1dGlsZXMuIEwnYW5hbHlzZSBkZSBqb3VybmF1eCBlbiBn6W7pcmFsIGVzdCBlbgogICAgZGVob3JzIGR1IHN1amV0IGRlIGNlIGRvY3VtZW50IGV0IG5lIGZhaXQgcGFzIHZyYWltZW50IHBhcnRpZSBpbnTpZ3JhbnRlCiAgICBkdSB0cmF2YWlsIGR1IHNlcnZldXIgd2ViIGx1aS1t6m1lLiBQb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMg4CBwcm9wb3MgZGUgY2UKICAgIHN1amV0IGV0IGRlcyBhcHBsaWNhdGlvbnMgZOlkaellcyDgIGwnYW5hbHlzZSBkZSBqb3VybmF1eCwgdm91cyBwb3V2ZXogdm91cwogICAgculm6XJlciDgIDxhIGhyZWY9Imh0dHA6Ly9kbW96Lm9yZy9Db21wdXRlcnMvU29mdHdhcmUvSW50ZXJuZXQvICAgICBTaXRlX01hbmFnZW1lbnQvTG9nX2FuYWx5c2lzLyI+T3BlbiBEaXJlY3Rvcnk8L2E+LgogICAgPC9wPgoKICAgIDxwPkRpZmbpcmVudGVzIHZlcnNpb25zIGR1IGTpbW9uIEFwYWNoZSBodHRwZCB1dGlsaXNhaWVudCBkJ2F1dHJlcyBtb2R1bGVzCiAgICBldCBkaXJlY3RpdmVzIHBvdXIgY29udHL0bGVyIGxhIGpvdXJuYWxpc2F0aW9uIGRlcyBhY2Pocywg4CBsJ2luc3RhciBkZQogICAgbW9kX2xvZ19yZWZlcmVyLCBtb2RfbG9nX2FnZW50LCBldCBkZSBsYSBkaXJlY3RpdmUKICAgIDxjb2RlPlRyYW5zZmVyTG9nPC9jb2RlPi4gTGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2NvbmZpZy5odG1sI2N1c3RvbWxvZyI+Q3VzdG9tTG9nPC9hPjwvY29kZT4gcmFzc2VtYmxlCiAgICBk6XNvcm1haXMgbGVzIGZvbmN0aW9ubmFsaXTpcyBkZSB0b3V0ZXMgbGVzIGFuY2llbm5lcyBkaXJlY3RpdmVzLjwvcD4KCiAgICA8cD5MZSBmb3JtYXQgZHUgam91cm5hbCBkZXMgYWNj6HMgZXN0IGhhdXRlbWVudCBjb25maWd1cmFibGUuIElsIGVzdAogICAgZOlmaW5pIOAgbCdhaWRlIGQndW5lIGNoYe5uZSBkZSBmb3JtYXQgcXVpIHJlc3NlbWJsZSBzZW5zaWJsZW1lbnQg4CBsYQogICAgY2hh7m5lIGRlIGZvcm1hdCBkZSBzdHlsZSBsYW5nYWdlIEMgZGUgcHJpbnRmKDEpLiBWb3VzIHRyb3V2ZXJleiBxdWVscXVlcwogICAgZXhlbXBsZXMgZGFucyBsZXMgc2VjdGlvbnMgc3VpdmFudGVzLiBQb3VyIHVuZSBsaXN0ZSBleGhhdXN0aXZlIGRlIGNlIHF1ZQogICAgcGV1dCBjb250ZW5pciB1bmUgY2hh7m5lIGRlIGZvcm1hdCwgdm91cyBwb3V2ZXogdm91cyBy6WbpcmVyIGF1IGNoYXBpdHJlCiAgICA8YSBocmVmPSJtb2QvbW9kX2xvZ19jb25maWcuaHRtbCNmb3JtYXRzIj5jaGHubmVzIGRlIGZvcm1hdDwvYT4gZGUgbGEKICAgIGRvY3VtZW50YXRpb24gZHUgbW9kdWxlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwiPm1vZF9sb2dfY29uZmlnPC9hPjwvY29kZT4uPC9wPgoKICAgIDxoMz48YSBuYW1lPSJjb21tb24iIGlkPSJjb21tb24iPkZvcm1hdCBoYWJpdHVlbCBkdSBqb3VybmFsPC9hPjwvaDM+CiAgICAgIAoKICAgICAgPHA+Vm9pY2kgdW5lIGNvbmZpZ3VyYXRpb24gdHlwaXF1ZSBwb3VyIGxlIGpvdXJuYWwgZGVzIGFjY+hzIDo8L3A+CgogICAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJSZndDtzICViIiBjb21tb24KQ3VzdG9tTG9nICJsb2dzL2FjY2Vzc19sb2ciIGNvbW1vbjwvcHJlPgoKCiAgICAgIDxwPkljaSBlc3QgZOlmaW5pZSBsJzxlbT5pZGVudGl06TwvZW0+IDxjb2RlPmNvbW1vbjwvY29kZT4gcXVpIGVzdAogICAgICBlbnN1aXRlIGFzc29jaellIOAgdW5lIGNoYe5uZSBkZSBmb3JtYXQgZGUgam91cm5hbGlzYXRpb24gcGFydGljdWxp6HJlLgogICAgICBMYSBjaGHubmUgZGUgZm9ybWF0IGVzdCBjb25zdGl0dellIGRlIGRpcmVjdGl2ZXMgZOlidXRhbnQgcGFyIGxlCiAgICAgIGNhcmFjdOhyZSAlLCBjaGFjdW5lIGQnZW50cmUgZWxsZXMgaW5kaXF1YW50IGF1IHNlcnZldXIgZCdlbnJlZ2lzdHJlcgogICAgICB1biDpbOltZW50IHBhcnRpY3VsaWVyIGQnaW5mb3JtYXRpb24uIERlcyBjYXJhY3TocmVzIGxpdHTpcmF1eCBwZXV2ZW50CiAgICAgIGF1c3NpIOp0cmUgaW5z6XLpcyBkYW5zIGxhIGNoYe5uZSBkZSBmb3JtYXQgOyBpbCBzZXJvbnQgY29waelzIHRlbHMKICAgICAgcXVlbHMgZGFucyBsZSBmbHV4IGRlIHNvcnRpZSBkZXN0aW7pIOAgbGEgam91cm5hbGlzYXRpb24uCiAgICAgIExlcyBndWlsbGVtZXRzICg8Y29kZT4iPC9jb2RlPikgZG9pdmVudCDqdHJlIOljaGFwcOllcyBlbiBsZXMgZmFpc2FudAogICAgICBwculj6WRlciBkJ3VuIGFudGktc2xhc2ggKDxjb2RlPlw8L2NvZGU+KSBhZmluIHF1J2VsbGVzIG5lIHNvaWVudCBwYXMKICAgICAgaW50ZXJwcul06WVzIGNvbW1lIGxhIGZpbiBkZSBsYSBjaGHubmUgZGUgZm9ybWF0LiBMYSBjaGHubmUgZGUgZm9ybWF0CiAgICAgIHBldXQgYXVzc2kgY29udGVuaXIgbGVzIGNhcmFjdOhyZXMgZGUgY29udHL0bGUgc3DpY2lhdXgKICAgICAgIjxjb2RlPlxuPC9jb2RlPiIgZXQgIjxjb2RlPlx0PC9jb2RlPiIgcG91ciBpbnPpcmVyIHJlc3BlY3RpdmVtZW50CiAgICAgIHVuIHBhc3NhZ2Ug4CBsYSBsaWduZSBldCB1bmUgdGFidWxhdGlvbi48L3A+CgogICAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNjdXN0b21sb2ciPkN1c3RvbUxvZzwvYT48L2NvZGU+CiAgICAgIGTpZmluaXQgdW4gbm91dmVhdSBmaWNoaWVyIGpvdXJuYWwgZW4gbCdhc3NvY2lhbnQg4CBsJ2lkZW50aXTpCiAgICAgIHBy6WPpZGVtbWVudCBk6WZpbmllLiBMZSBjaGVtaW4gZHUgbm9tIGRlIGZpY2hpZXIgYXNzb2Np6SBhdSBqb3VybmFsCiAgICAgIGRlcyBhY2PocyBlc3QgcmVsYXRpZiBhdSBjaGVtaW4gZOlmaW5pIHBhciBsYSBkaXJlY3RpdmUKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NlcnZlcnJvb3QiPlNlcnZlclJvb3Q8L2E+PC9jb2RlPiwgc2F1ZiBzJ2lsCiAgICAgIGTpYnV0ZSBwYXIgdW4gc2xhc2guPC9wPgoKICAgICAgPHA+TGEgY29uZmlndXJhdGlvbiBjaS1kZXNzdXMgdmEgZW5yZWdpc3RyZXIgbGVzIGVudHLpZXMgZGUKICAgICAgam91cm5hbGlzYXRpb24gc2Vsb24gdW4gZm9ybWF0IGNvbm51IHNvdXMgbGUgbm9tIGRlCiAgICAgIENvbW1vbiBMb2cgRm9ybWF0IChDTEYpIHBvdXIgIkZvcm1hdCBkZSBqb3VybmFsaXNhdGlvbiBzdGFuZGFyZCIuCiAgICAgIENlIGZvcm1hdCBzdGFuZGFyZCBwZXV0IOp0cmUgcHJvZHVpdCBwYXIgZGUgbm9tYnJldXggc2VydmV1cnMgd2ViCiAgICAgIGRpZmbpcmVudHMgZXQgbHUgcGFyIGRlIG5vbWJyZXV4IHByb2dyYW1tZXMgZCdhbmFseXNlIGRlIGpvdXJuYXV4LgogICAgICBMZXMgZW50cullcyBkZSBmaWNoaWVyIGpvdXJuYWwgZ+lu6XLpZXMgc2Vsb24gbGUgZm9ybWF0IENMRgogICAgICByZXNzZW1ibGVudCDgIGNlY2kgOjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAgIDEyNy4wLjAuMSAtIGZyYW5rIFsxMC9PY3QvMjAwMDoxMzo1NTozNiAtMDcwMF0gIkdFVAogICAgICAgIC9hcGFjaGVfcGIuZ2lmIEhUVFAvMS4wIiAyMDAgMjMyNgogICAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgICAgPHA+Q2hhcXVlIHBhcnRpZSBkZSBjZXR0ZSBlbnRy6WUgZGUgam91cm5hbCBlc3QgZOljcml0ZQogICAgICBkYW5zIGNlIHF1aSBzdWl0LjwvcD4KCiAgICAgIDxkbD4KICAgICAgICA8ZHQ+PGNvZGU+MTI3LjAuMC4xPC9jb2RlPiAoPGNvZGU+JWg8L2NvZGU+KTwvZHQ+CgogICAgICAgIDxkZD5JbCBzJ2FnaXQgZGUgbCdhZHJlc3NlIElQIGR1IGNsaWVudCAobCdo9HRlIGRpc3RhbnQpIHF1aSBhIGVudm956QoJbGEgcmVxdep0ZSBhdSBzZXJ2ZXVyLiBTaSBsYSBkaXJlY3RpdmUKCTxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNob3N0bmFtZWxvb2t1cHMiPkhvc3RuYW1lTG9va3VwczwvYT48L2NvZGU+IGVzdCBwb3NpdGlvbm7pZSDgCgk8Y29kZT5PbjwvY29kZT4sIGxlIHNlcnZldXIgdmEgZXNzYXllciBkZSBk6XRlcm1pbmVyIGxlIG5vbSBkZSBsJ2j0dGUKCWV0IGRlIGwnZW5yZWdpc3RyZXIg4CBsYSBwbGFjZSBkZSBsJ2FkcmVzc2UgSVAuIENldHRlIGNvbmZpZ3VyYXRpb24KCW4nZXN0IGNlcGVuZGFudCBwYXMgcmVjb21tYW5k6WUgY2FyIGVsbGUgcGV1dCByYWxlbnRpciBsZSBzZXJ2ZXVyIGRlCgltYW5p6HJlIHNpZ25pZmljYXRpdmUuIElsIGVzdCBwYXIgY29uc+lxdWVudCBwculm6XJhYmxlIGQndXRpbGlzZXIgdW4KCXByb2Nlc3NldXIgZCdhbmFseXNlIGRlIGpvdXJuYXV4IGEgcG9zdGVyaW9yaQoJdGVsIHF1ZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9sb2dyZXNvbHZlLmh0bWwiPmxvZ3Jlc29sdmU8L2E+PC9jb2RlPgoJcG91ciBk6XRlcm1pbmVyIGxlcyBub21zIGQnaPR0ZS4gTCdhZHJlc3NlIElQIGluZGlxdellIGljaSBuJ2VzdCBwYXMKCW7pY2Vzc2FpcmVtZW50IGwnYWRyZXNzZSBJUCBkZSBsYSBtYWNoaW5lIGRldmFudCBsYXF1ZWxsZSBzZSB0cm91dmUKCWwndXRpbGlzYXRldXIuIFNpIHVuIHNlcnZldXIgbWFuZGF0YWlyZSBzJ2ludGVyY2FsZSBlbnRyZSBsZSBzZXJ2ZXVyCglldCBsJ3V0aWxpc2F0ZXVyLCBsJ2FkcmVzc2UgaW5kaXF16WUgc2VyYSBjZWxsZSBkdSBtYW5kYXRhaXJlIGV0IG5vbgoJY2VsbGUgZGUgbGEgbWFjaGluZSDgIGwnb3JpZ2luZSBkZSBsYSByZXF16nRlLjwvZGQ+CgogICAgICAgIDxkdD48Y29kZT4tPC9jb2RlPiAoPGNvZGU+JWw8L2NvZGU+KTwvZHQ+CgogICAgICAgIDxkZD5MZSAidHJhaXQgZCd1bmlvbiIgaW5kaXF1ZSBxdWUgbGEgcG9ydGlvbiBkJ2luZm9ybWF0aW9uCgljb3JyZXNwb25kYW50ZSBuJ2VzdCBwYXMgZGlzcG9uaWJsZS4gRGFucyBsZSBjYXMgcHLpc2VudCwgbCdpbmZvcm1hdGlvbgoJbm9uIGRpc3BvbmlibGUgZXN0IGwnaWRlbnRpdOkgKFJGQyAxNDEzKSBkdSBjbGllbnQgdGVsbGUgcXVlIGTpdGVybWlu6WUKCXBhciA8Y29kZT5pZGVudGQ8L2NvZGU+IHN1ciBsYSBtYWNoaW5lIGNsaWVudGUuIENldHRlIGluZm9ybWF0aW9uIGVzdAoJdHLocyBwZXUgZmlhYmxlIGV0IG5lIGRldnJhaXQgamFtYWlzIOp0cmUgdXRpbGlz6WUsIHNhdWYgZGFucyBsZSBjYXMKCWRlIHLpc2VhdXggaW50ZXJuZXMg6XRyb2l0ZW1lbnQgY29udHL0bOlzLiBMZSBk6W1vbiBodHRwZCBuZSBjaGVyY2hlcmEKCWQnYWlsbGV1cnMg4CBvYnRlbmlyIGNldHRlIGluZm9ybWF0aW9uIHF1ZSBzaSBsYSBkaXJlY3RpdmUKCTxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9pZGVudC5odG1sI2lkZW50aXR5Y2hlY2siPklkZW50aXR5Q2hlY2s8L2E+PC9jb2RlPiBlc3QgcG9zaXRpb25u6WUKCeAgPGNvZGU+T248L2NvZGU+LjwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5mcmFuazwvY29kZT4gKDxjb2RlPiV1PC9jb2RlPik8L2R0PgoKICAgICAgICA8ZGQ+SWwgcydhZ2l0IGRlIGwnaWRlbnRpZmlhbnQgdXRpbGlzYXRldXIgZGUgbGEgcGVyc29ubmUgcXVpIGEKCWRlbWFuZOkgbGUgZG9jdW1lbnQsIGlzc3UgZCd1bmUgYXV0aGVudGlmaWNhdGlvbiBIVFRQLgoJQ2UgbeptZSBpZGVudGlmaWFudCBlc3QgZW4gZ+lu6XJhbCBmb3VybmkgYXV4IHNjcmlwdHMgQ0dJIHBhcgoJbCdpbnRlcm3pZGlhaXJlIGRlIGxhIHZhbGV1ciBkZSBsYSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQKCTxjb2RlPlJFTU9URV9VU0VSPC9jb2RlPi4gU2kgbGUgc3RhdHV0IGRlIGxhIHJlcXXqdGUgKHZvaXIgcGx1cyBsb2luKQoJZXN0IDQwMSwgY2V0dGUgaWRlbnRpZmlhbnQgbidlc3QgcGFzIGZpYWJsZSBjYXIgbCd1dGlsaXNhdGV1ciBuJ2VzdAoJcGFzIGVuY29yZSBhdXRoZW50aWZp6S4gU2kgbGUgZG9jdW1lbnQgbidlc3QgcGFzIHByb3TpZ+kgcGFyCgltb3QgZGUgcGFzc2UsIGNldHRlIHBhcnRpZSBkJ2luZm9ybWF0aW9uIHNlcmEgcmVwculzZW506WUgcGFyCgkiPGNvZGU+LTwvY29kZT4iLCBjb21tZSBsYSBwYXJ0aWUgcHLpY+lkZW50ZS48L2RkPgoKICAgICAgICA8ZHQ+PGNvZGU+WzEwL09jdC8yMDAwOjEzOjU1OjM2IC0wNzAwXTwvY29kZT4KICAgICAgICAoPGNvZGU+JXQ8L2NvZGU+KTwvZHQ+CgogICAgICAgIDxkZD4KICAgICAgICAgIEwnaGV1cmUg4CBsYXF1ZWxsZSBsYSByZXF16nRlIGEg6XTpIHJl53VlLgogICAgICAgICAgTGUgZm9ybWF0IGVzdCBsZSBzdWl2YW50IDoKCiAgICAgICAgICA8cCBjbGFzcz0iaW5kZW50Ij4KICAgICAgICAgICAgPGNvZGU+W2pvdXIvbW9pcy9hbm7pZTpoZXVyZTptaW51dGVzOnNlY29uZGVzIHpvbmVdPGJyIC8+CiAgICAgICAgICAgICBqb3VyID0gMipjaGlmZnJlPGJyIC8+CiAgICAgICAgICAgICBtb2lzID0gMypsZXR0cmU8YnIgLz4KICAgICAgICAgICAgIGFubullID0gNCpjaGlmZnJlPGJyIC8+CiAgICAgICAgICAgICBoZXVyZSA9IDIqY2hpZmZyZTxiciAvPgogICAgICAgICAgICAgbWludXRlcyA9IDIqY2hpZmZyZTxiciAvPgogICAgICAgICAgICAgc2Vjb25kZXMgPSAyKmNoaWZmcmU8YnIgLz4KICAgICAgICAgICAgIHpvbmUgPSAoYCsnIHwgYC0nKSA0KmNoaWZmcmU8L2NvZGU+CiAgICAgICAgICA8L3A+SWwgZXN0IHBvc3NpYmxlIGRlIG1vZGlmaWVyIGxlIGZvcm1hdCBkJ2FmZmljaGFnZSBkZSBsJ2hldXJlCgkgIGVuIHNw6WNpZmlhbnQgPGNvZGU+JXtmb3JtYXR9dDwvY29kZT4gZGFucyBsYSBjaGHubmUgZGUgZm9ybWF0IGR1CgkgIGpvdXJuYWwsIG/5IDxjb2RlPmZvcm1hdDwvY29kZT4gZXN0IHVuZSBjaGHubmUgZGUgZm9ybWF0CgkgIGRlIGxhIGZvcm1lIGRlIGNlbGxlIGRlIGxhIGZvbmN0aW9uIDxjb2RlPnN0cmZ0aW1lKDMpPC9jb2RlPgoJICBkZSBsYSBiaWJsaW90aOhxdWUgQyBzdGFuZGFyZCwgb3UgY2hvaXNpZSBwYXJtaSBsZXMKCSAgZm9ybWF0cyBzcOljaWF1eCBzdXBwb3J06XMuIFBvdXIgcGx1cyBkZSBk6XRhaWxzLAoJICByZXBvcnRlei12b3VzIGF1eC4gPGEgaHJlZj0ibW9kL21vZF9sb2dfY29uZmlnLmh0bWwjZm9ybWF0cyI+Y2hh7m5lcyBkZSBmb3JtYXQ8L2E+CgkgIGRlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwiPm1vZF9sb2dfY29uZmlnPC9hPjwvY29kZT4uCiAgICAgICAgPC9kZD4KCiAgICAgICAgPGR0Pjxjb2RlPiJHRVQgL2FwYWNoZV9wYi5naWYgSFRUUC8xLjAiPC9jb2RlPgogICAgICAgICg8Y29kZT5cIiVyXCI8L2NvZGU+KTwvZHQ+CgogICAgICAgIDxkZD5MYSBsaWduZSBkZSBsYSByZXF16nRlIGR1IGNsaWVudCBlc3QgcGxhY+llIGVudHJlIGd1aWxsZW1ldHMuCglFbGxlIGNvbnRpZW50IGRlIG5vbWJyZXVzZXMgaW5mb3JtYXRpb25zIHV0aWxlcy4gVG91dCBkJ2Fib3JkLCBsYQoJbel0aG9kZSB1dGlsaXPpZSBwYXIgbGUgY2xpZW50IGVzdCA8Y29kZT5HRVQ8L2NvZGU+LiBFbnN1aXRlLCBsZQoJY2xpZW50IGEgZGVtYW5k6SBsYSByZXNzb3VyY2UgPGNvZGU+L2FwYWNoZV9wYi5naWY8L2NvZGU+LCBldCBlbmZpbiwKCWxlIGNsaWVudCBhIHV0aWxpc+kgbGUgcHJvdG9jb2xlIDxjb2RlPkhUVFAvMS4wPC9jb2RlPi4gSWwgZXN0IGF1c3NpCglwb3NzaWJsZSBkJ2VucmVnaXN0cmVyIHPpcGFy6W1lbnQgdW5lIG91IHBsdXNpZXVycyBwYXJ0aWVzIGRlIGxhCglyZXF16nRlLiBQYXIgZXhlbXBsZSwgbGEgY2hh7m5lIGRlIGZvcm1hdCAiPGNvZGU+JW0gJVUgJXEgJUg8L2NvZGU+IgoJdmEgZW5yZWdpc3RyZXIgbGEgbel0aG9kZSwgbGUgY2hlbWluLCBsYSBjaGHubmUgZGUgbGEgcmVxdep0ZSBldCBsZQoJcHJvdG9jb2xlLCBjZSBxdWkgZG9ubmVyYSBsZSBt6m1lIHLpc3VsdGF0IHF1ZQoJIjxjb2RlPiVyPC9jb2RlPiIuPC9kZD4KCiAgICAgICAgPGR0Pjxjb2RlPjIwMDwvY29kZT4gKDxjb2RlPiUmZ3Q7czwvY29kZT4pPC9kdD4KCiAgICAgICAgPGRkPkMnZXN0IGxlIGNvZGUgZGUgc3RhdHV0IHF1ZSBsZSBzZXJ2ZXVyIHJldG91cm5lIGF1IGNsaWVudC4gQ2V0dGUKCWluZm9ybWF0aW9uIGVzdCB0cuhzIGltcG9ydGFudGUgY2FyIGVsbGUgaW5kaXF1ZSBzaSBsYSByZXF16nRlIGEgZmFpdAoJbCdvYmpldCBkJ3VuZSBy6XBvbnNlIHBvc2l0aXZlIChjb2RlcyBjb21tZW7nYW50IHBhciAyKSwgdW5lCglyZWRpcmVjdGlvbiAoY29kZXMgY29tbWVu52FudCBwYXIgMyksIHVuZSBlcnJldXIgZHVlIGF1IGNsaWVudCAoY29kZXMKCWNvbW1lbudhbnQgcGFyIDQpLCBvdSB1bmUgZXJyZXVyIGR1ZSBhdSBzZXJ2ZXVyIChjb2RlcyBjb21tZW7nYW50CglwYXIgNSkuIFZvdXMgdHJvdXZlcmV6IGxhIGxpc3RlIGNvbXBs6HRlIGRlcyBjb2RlcyBkZSBzdGF0dXQgcG9zc2libGVzCglkYW5zIGxhIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2LyAgcmZjMjYxNi50eHQiPnNwZWNpZmljYXRpb24gSFRUUDwvYT4gKFJGQzI2MTYgc2VjdGlvbiAxMCkuPC9kZD4KCiAgICAgICAgPGR0Pjxjb2RlPjIzMjY8L2NvZGU+ICg8Y29kZT4lYjwvY29kZT4pPC9kdD4KCiAgICAgICAgPGRkPkxhIGRlcm5p6HJlIHBhcnRpZSBpbmRpcXVlIGxhIHRhaWxsZSBkZSBsJ29iamV0IHJldG91cm7pIGF1IGNsaWVudCwKCWVuLXTqdGVzIG5vbiBjb21wcmlzLiBTaSBhdWN1biBjb250ZW51IG4nYSDpdOkgcmV0b3VybukgYXUgY2xpZW50LCBjZXR0ZQoJcGFydGllIGNvbnRpZW5kcmEgIjxjb2RlPi08L2NvZGU+Ii4gUG91ciBpbmRpcXVlciBsJ2Fic2VuY2UgZGUgY29udGVudQoJcGFyICI8Y29kZT4wPC9jb2RlPiIsIHV0aWxpc2V6IDxjb2RlPiVCPC9jb2RlPiBhdSBsaWV1IGRlCgk8Y29kZT4lYjwvY29kZT4uPC9kZD4KICAgICAgPC9kbD4KICAgIAoKICAgIDxoMz48YSBuYW1lPSJjb21iaW5lZCIgaWQ9ImNvbWJpbmVkIj5Db21iaW5lZCBMb2cgRm9ybWF0IChGb3JtYXQgZGUgam91cm5hbGlzYXRpb24gY29tYmlu6Sk8L2E+PC9oMz4KICAgICAgCgogICAgICA8cD5VbmUgYXV0cmUgY2hh7m5lIGRlIGZvcm1hdCBjb3VyYW1tZW50IHV0aWxpc+llIGVzdCBsZQogICAgICAiQ29tYmluZWQgTG9nIEZvcm1hdCIgKEZvcm1hdCBkZSBqb3VybmFsaXNhdGlvbiBjb21iaW7pKS4gSWwgcyd1dGlsaXNlCiAgICAgIGNvbW1lIHN1aXQgOjwvcD4KCiAgICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Mb2dGb3JtYXQgIiVoICVsICV1ICV0IFwiJXJcIiAlJmd0O3MgJWIgXCIle1JlZmVyZXJ9aVwiIFwiJXtVc2VyLWFnZW50fWlcIiIgY29tYmluZWQKQ3VzdG9tTG9nICJsb2cvYWNjZXNzX2xvZyIgY29tYmluZWQ8L3ByZT4KCgogICAgICA8cD5DZSBmb3JtYXQgZXN0IGlkZW50aXF1ZSBhdSBDb21tb24gTG9nIEZvcm1hdCwgYXZlYyBkZXV4IGNoYW1wcwogICAgICBzdXBwbOltZW50YWlyZXMuIENoYWN1biBkZSBjZXMgZGV1eCBjaGFtcHMgdXRpbGlzZSBsYSBkaXJlY3RpdmUKICAgICAgY29tbWVu52FudCBwYXIgbGUgY2FyYWN06HJlICIlIiA8Y29kZT4lezxlbT5oZWFkZXI8L2VtPn1pPC9jb2RlPiwKICAgICAgb/kgPGVtPmhlYWRlcjwvZW0+IHBldXQg6nRyZSBuJ2ltcG9ydGUgcXVlbCBlbi106nRlIGRlIHJlcXXqdGUgSFRUUC4KICAgICAgQXZlYyBjZSBmb3JtYXQsIGxlIGpvdXJuYWwgZGVzIGFjY+hzIHNlIHBy6XNlbnRlcmEgY29tbWUgc3VpdCA6PC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgMTI3LjAuMC4xIC0gZnJhbmsgWzEwL09jdC8yMDAwOjEzOjU1OjM2IC0wNzAwXSAiR0VUCiAgICAgICAgL2FwYWNoZV9wYi5naWYgSFRUUC8xLjAiIDIwMCAyMzI2CiAgICAgICAgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vc3RhcnQuaHRtbCIgIk1vemlsbGEvNC4wOCBbZW5dCiAgICAgICAgKFdpbjk4OyBJIDtOYXYpIgogICAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgICAgPHA+TGVzIGNoYW1wcyBzdXBwbOltZW50YWlyZXMgc29udCA6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT4iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zdGFydC5odG1sIjwvY29kZT4KICAgICAgICAoPGNvZGU+XCIle1JlZmVyZXJ9aVwiPC9jb2RlPik8L2R0PgoKICAgICAgICA8ZGQ+TCdlbi106nRlICJSZWZlcmVyIiAoc2ljKSBkZSBsYSByZXF16nRlIEhUVFAuIElsIGluZGlxdWUgbGUgc2l0ZQoJZGVwdWlzIGxlcXVlbCBsZSBjbGllbnQgcHLpdGVuZCBhdm9pciBsYW5j6SBzYSByZXF16nRlLiAoQ2UgZG9pdCDqdHJlCglsYSBwYWdlIHF1aSBjb250aWVudCB1biBsaWVuIHZlcnMgPGNvZGU+L2FwYWNoZV9wYi5naWY8L2NvZGU+IG91CglpbmNsdXQgY2UgZGVybmllciBmaWNoaWVyKS48L2RkPgoKICAgICAgICA8ZHQ+PGNvZGU+Ik1vemlsbGEvNC4wOCBbZW5dIChXaW45ODsgSSA7TmF2KSI8L2NvZGU+CiAgICAgICAgKDxjb2RlPlwiJXtVc2VyLWFnZW50fWlcIjwvY29kZT4pPC9kdD4KCiAgICAgICAgPGRkPkwnZW4tdOp0ZSBVc2VyLUFnZW50IGRlIGxhIHJlcXXqdGUgSFRUUC4gQydlc3QgdW5lIGluZm9ybWF0aW9uCglkJ2lkZW50aWZpY2F0aW9uIHF1ZSBsZSBuYXZpZ2F0ZXVyIGR1IGNsaWVudCBlbnZvaWUg4CBwcm9wb3MKCWRlIGx1aS1t6m1lLjwvZGQ+CiAgICAgIDwvZGw+CiAgICAKCiAgICA8aDM+PGEgbmFtZT0ibXVsdGlwbGUiIGlkPSJtdWx0aXBsZSI+Sm91cm5hdXggZCdhY2PocyBtdWx0aXBsZXM8L2E+PC9oMz4KICAgICAgCgogICAgICA8cD5QbHVzaWV1cnMgam91cm5hdXggZCdhY2PocyBwZXV2ZW50IOp0cmUgY3Lp6XMgZW4gc3DpY2lmaWFudCB0b3V0CiAgICAgIHNpbXBsZW1lbnQgcGx1c2lldXJzIGRpcmVjdGl2ZXMKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNjdXN0b21sb2ciPkN1c3RvbUxvZzwvYT48L2NvZGU+IGRhbnMgbGUKICAgICAgZmljaGllciBkZSBjb25maWd1cmF0aW9uLiBQYXIgZXhlbXBsZSwgbGVzIGRpcmVjdGl2ZXMgc3VpdmFudGVzIHZvbnQKICAgICAgY3LpZXIgdHJvaXMgam91cm5hdXggZCdhY2Pocy4gTGUgcHJlbWllciBjb250aWVuZHJhIGxlcyBpbmZvcm1hdGlvbnMKICAgICAgZGUgYmFzZSBDTEYsIGxlIHNlY29uZCBsZXMgaW5mb3JtYXRpb25zIGR1IFJlZmVyZXIsIGV0IGxlIHRyb2lzaehtZQogICAgICBsZXMgaW5mb3JtYXRpb25zIHN1ciBsZSBuYXZpZ2F0ZXVyLiBMZXMgZGV1eCBkZXJuaehyZXMgZGlyZWN0aXZlcwogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2NvbmZpZy5odG1sI2N1c3RvbWxvZyI+Q3VzdG9tTG9nPC9hPjwvY29kZT4gbW9udHJlbnQKICAgICAgY29tbWVudCBzaW11bGVyIGxlcyBlZmZldHMgZGVzIGRpcmVjdGl2ZXMgPGNvZGU+UmVmZXJMb2c8L2NvZGU+IGV0CiAgICAgIDxjb2RlPkFnZW50TG9nPC9jb2RlPi48L3A+CgogICAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJSZndDtzICViIiBjb21tb24KQ3VzdG9tTG9nICJsb2dzL2FjY2Vzc19sb2ciIGNvbW1vbgpDdXN0b21Mb2cgImxvZ3MvcmVmZXJlcl9sb2ciICIle1JlZmVyZXJ9aSAtJmd0OyAlVSIKQ3VzdG9tTG9nICJsb2dzL2FnZW50X2xvZyIgIiV7VXNlci1hZ2VudH1pIjwvcHJlPgoKCiAgICAgIDxwPkNldCBleGVtcGxlIG1vbnRyZSBhdXNzaSBxdSdpbCBuJ2VzdCBwYXMgb2JsaWdhdG9pcmUgZCdhc3NvY2llcgogICAgICB1bmUgY2hh7m5lIGRlIGZvcm1hdCDgIHVuIGFsaWFzIGF1IG1veWVuIGRlIGxhIGRpcmVjdGl2ZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2NvbmZpZy5odG1sI2xvZ2Zvcm1hdCI+TG9nRm9ybWF0PC9hPjwvY29kZT4uIEVsbGUgcGV1dAogICAgICDqdHJlIGTpZmluaWUgZGlyZWN0ZW1lbnQgZGFucyBsYSBsaWduZSBkZSBsYSBkaXJlY3RpdmUKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNjdXN0b21sb2ciPkN1c3RvbUxvZzwvYT48L2NvZGU+LjwvcD4KICAgIAoKICAgIDxoMz48YSBuYW1lPSJjb25kaXRpb25hbCIgaWQ9ImNvbmRpdGlvbmFsIj5Kb3VybmFsaXNhdGlvbiBjb25kaXRpb25uZWxsZTwvYT48L2gzPgogICAgICAKCiAgICAgIDxwPklsIGVzdCBwYXJmb2lzIHNvdWhhaXRhYmxlIGQnZXhjbHVyZSBjZXJ0YWluZXMgZW50cullcyBkZXMgam91cm5hdXgKICAgICAgZCdhY2PocyBlbiBmb25jdGlvbiBkZXMgY2FyYWN06XJpc3RpcXVlcyBkZSBsYSByZXF16nRlIGR1IGNsaWVudC4gT24KICAgICAgcGV1dCBhaXPpbWVudCBhY2NvbXBsaXIgY2VjaSDgIGwnYWlkZSBkZXMKICAgICAgPGEgaHJlZj0iZW52Lmh0bWwiPnZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQ8L2E+LiBUb3V0IGQnYWJvcmQsIHVuZQogICAgICB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQgZG9pdCDqdHJlIGTpZmluaWUgcG91ciBpbmRpcXVlciBxdWUgbGEKICAgICAgcmVxdep0ZSByZW1wbGl0IGNlcnRhaW5lcyBjb25kaXRpb25zLiBQb3VyIGNlY2ksIG9uIHV0aWxpc2UgZW4gZ+lu6XJhbAogICAgICBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3NldGVudmlmLmh0bWwjc2V0ZW52aWYiPlNldEVudklmPC9hPjwvY29kZT4sCiAgICAgIHB1aXMgbGEgY2xhdXNlIDxjb2RlPmVudj08L2NvZGU+IGRlIGxhIGRpcmVjdGl2ZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2NvbmZpZy5odG1sI2N1c3RvbWxvZyI+Q3VzdG9tTG9nPC9hPjwvY29kZT4gcG91ciBpbmNsdXJlCiAgICAgIG91IGV4Y2x1cmUgbGVzIHJlcXXqdGVzIHBvdXIgbGVzcXVlbGxlcwogICAgICBsYSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQgZXN0IGTpZmluaWUuCiAgICAgIFF1ZWxxdWVzIGV4ZW1wbGVzIDo8L3A+CgogICAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+IyBNYXJxdWUgbGVzIHJlcXXqdGVzIGVuIHByb3ZlbmFuY2UgZGUgbCdpbnRlcmZhY2UgbG9vcC1iYWNrClNldEVudklmIFJlbW90ZV9BZGRyICIxMjdcLjBcLjBcLjEiIGRvbnRsb2cKIyBNYXJxdWUgbGVzIHJlcXXqdGVzIHBvdXIgbGUgZmljaGllciByb2JvdHMudHh0ClNldEVudklmIFJlcXVlc3RfVVJJICJeL3JvYm90c1wudHh0JCIgZG9udGxvZwojIEpvdXJuYWxpc2UgdG91dGVzIGxlcyBhdXRyZXMgcmVxdep0ZXMKQ3VzdG9tTG9nICJsb2dzL2FjY2Vzc19sb2ciIGNvbW1vbiBlbnY9IWRvbnRsb2c8L3ByZT4KCgogICAgICA8cD5BdXRyZSBleGVtcGxlLCBpbWFnaW5vbnMgbCdlbnJlZ2lzdHJlbWVudCBkZXMgcmVxdep0ZXMgZW4gcHJvdmVuYW5jZQogICAgICBkJ3V0aWxpc2F0ZXVycyBkZSBsYW5ndWUgYW5nbGFpc2UgZGFucyB1biBqb3VybmFsLCBldCBjZWxsZXMgZGVzIGF1dHJlcwogICAgICB1dGlsaXNhdGV1cnMgZGFucyB1biBhdXRyZSBqb3VybmFsLjwvcD4KCiAgICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4gICAgICAgIFNldEVudklmIEFjY2VwdC1MYW5ndWFnZSAiZW4iIGVuZ2xpc2gKICAgICAgICBDdXN0b21Mb2cgImxvZ3MvZW5nbGlzaF9sb2ciIGNvbW1vbiBlbnY9ZW5nbGlzaAogICAgICAgIEN1c3RvbUxvZyAibG9ncy9ub25fZW5nbGlzaF9sb2ciIGNvbW1vbiBlbnY9IWVuZ2xpc2g8L3ByZT4KCgoJPHA+RGFucyBsZSBjb250ZXh0ZSBkJ3VuZSBtaXNlIGVuIGNhY2hlLCBpbCBwZXV0IOp0cmUKCWludOlyZXNzYW50IGRlIGNvbm5h7nRyZSBsJ2VmZmljYWNpdOkgZHUgY2FjaGUuIFBvdXIgeSBwYXJ2ZW5pciwKCW9uIHBvdXJyYWl0IHV0aWxpc2VyIGNldHRlIG3pdGhvZGUgc2ltcGxlIDo8L3A+CgogICAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+U2V0RW52IENBQ0hFX01JU1MgMQpMb2dGb3JtYXQgIiVoICVsICV1ICV0ICIlciAiICUmZ3Q7cyAlYiAle0NBQ0hFX01JU1N9ZSIgY29tbW9uLWNhY2hlCkN1c3RvbUxvZyAibG9ncy9hY2Nlc3NfbG9nIiBjb21tb24tY2FjaGU8L3ByZT4KCgogICAgICA8cD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfY2FjaGUuaHRtbCI+bW9kX2NhY2hlPC9hPjwvY29kZT4gdmEgcydleOljdXRlciBhdmFudAogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfZW52Lmh0bWwiPm1vZF9lbnY8L2E+PC9jb2RlPiwgZXQgc2kgc29uIGFjdGlvbiBlc3QgY291cm9ubullIGRlCiAgICAgIHN1Y2PocywgaWwgZOlsaXZyZXJhIGxlIGNvbnRlbnUgc2FucyBmYWlyZSBhcHBlbCDgIGNlIGRlcm5pZXIuIFNpCiAgICAgIGwnVVJMIHNlIHRyb3V2ZSBkYW5zIGxlIGNhY2hlLCBsYSB2YWxldXIgam91cm5hbGlz6WUgc2VyYSBhbG9ycwogICAgICA8Y29kZT4tPC9jb2RlPiwgdGFuZGlzIHF1ZSBkYW5zIGxlIGNhcyBjb250cmFpcmUgZWxsZSBzZXJhCiAgICAgIDxjb2RlPjE8L2NvZGU+LjwvcD4KCiAgICAgIDxwPkVuIHBsdXMgZGUgbGEgc3ludGF4ZSA8Y29kZT5lbnY9PC9jb2RlPiwgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwjbG9nZm9ybWF0Ij5Mb2dGb3JtYXQ8L2E+PC9jb2RlPiBzdXBwb3J0ZSBsZXMKICAgICAgdmFsZXVycyBkZSBqb3VybmFsaXNhdGlvbiBjb25kaXRpb25uZWxsZXMgYmFz6WVzIHN1ciBsZSBjb2RlIGRlIGxhCiAgICAgIHLpcG9uc2UgSFRUUCA6PC9wPgoKICAgICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxvZ0Zvcm1hdCAiJTQwMCw1MDF7VXNlci1hZ2VudH1pIiBicm93c2VybG9nCkxvZ0Zvcm1hdCAiJSEyMDAsMzA0LDMwMntSZWZlcmVyfWkiIHJlZmVyZXJsb2c8L3ByZT4KCgogICAgICA8cD5EYW5zIGxlIHByZW1pZXIgZXhlbXBsZSwgbGUgPGNvZGU+VXNlci1hZ2VudDwvY29kZT4gc2VyYQogICAgICBlbnJlZ2lzdHLpIHNpIGxlIGNvZGUgZCfpdGF0IEhUVFAgZXN0IDQwMCBvdSA1MDEuIERhbnMgbGUgY2FzCiAgICAgIGNvbnRyYWlyZSwgYydlc3QgdW4gY2FyYWN06HJlICItIiBxdWkgc2VyYSBlbnJlZ2lzdHLpIOAgbGEgcGxhY2UuCiAgICAgIERhbnMgbGUgc2Vjb25kIGV4ZW1wbGUsIGxlIDxjb2RlPlJlZmVyZXI8L2NvZGU+IHNlcmEgZW5yZWdpc3Ry6SBzaQogICAgICBsZSBjb2RlIGQn6XRhdCBIVFRQIG4nZXN0IDxzdHJvbmc+cGFzPC9zdHJvbmc+IDIwMCwgMjA0LCBvdSAzMDIKICAgICAgKHJlbWFycXVleiBsZSBjYXJhY3TocmUgIiEiIGF2YW50IGxlcyBjb2RlcyBkJ+l0YXQpLjwvcD4KCiAgICAgIDxwPkJpZW4gcXVlIG5vdXMgdmVuaW9ucyBkZSBtb250cmVyIHF1ZSBsYSBqb3VybmFsaXNhdGlvbiBjb25kaXRpb25uZWxsZQogICAgICBlc3Qgc291cGxlIGV0IHRy6HMgcHVpc3NhbnRlLCBjZXR0ZSBt6XRob2RlIGRlIGNvbnRy9GxlIGR1IGNvbnRlbnUgZGVzCiAgICAgIGpvdXJuYXV4IG4nZXN0IHBhcyBsYSBzZXVsZS4gTGVzIGZpY2hpZXJzIGpvdXJuYXV4IHNvbnQgcGx1cyB1dGlsZXMKICAgICAgcXVhbmQgaWxzIGNvbnRpZW5uZW50IHVuIGVucmVnaXN0cmVtZW50IGNvbXBsZXQgZGUgbCdhY3Rpdml06SBkdSBzZXJ2ZXVyLAogICAgICBldCBpbCBlc3Qgc291dmVudCBwbHVzIGFpc+kgZGUgc2ltcGxlbWVudCB0cmFpdGVyIOAgcG9zdGVyaW9yaSBsZXMgZmljaGllcnMKICAgICAgam91cm5hdXggcG91ciBzdXBwcmltZXIgbGVzIHJlcXXqdGVzIHF1ZSB2b3VzIG5lIHZvdWxleiBwYXMgeSB2b2lyCiAgICAgIGFwcGFyYe50cmUuPC9wPgogICAgCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJyb3RhdGlvbiIgaWQ9InJvdGF0aW9uIj5Sb3RhdGlvbiBkZXMgam91cm5hdXg8L2E+PC9oMj4KICAgIAoKICAgIDxwPk3qbWUgZGFucyBsZSBjYXMgZCd1biBzZXJ2ZXVyIG1vZOly6W1lbnQgc29sbGljaXTpLCBsYSBxdWFudGl06QogICAgZCdpbmZvcm1hdGlvbnMgc3RvY2vpZXMgZGFucyBsZXMgZmljaGllcnMgam91cm5hdXggZXN0IHRy6HMgaW1wb3J0YW50ZS4KICAgIExlIGZpY2hpZXIgam91cm5hbCBkZXMgYWNj6HMgZ3Jvc3NpdCBlbiBn6W7pcmFsIGQnMSBNbyBvdSBwbHVzIHRvdXRlcwogICAgbGVzIDEwMDAwIHJlcXXqdGVzLiBJbCBlc3QgcGFyIGNvbnPpcXVlbnQgbuljZXNzYWlyZSBkJ2VmZmVjdHVlcgogICAgcOlyaW9kaXF1ZW1lbnQgbGEgcm90YXRpb24gZGVzIGpvdXJuYXV4IGVuIGTpcGxh52FudCBvdSBzdXBwcmltYW50IGxlcwogICAgZmljaGllcnMgY29ycmVzcG9uZGFudHMuIE9uIG5lIHBldXQgcGFzIGxlIGZhaXJlIHBlbmRhbnQgcXVlIGxlIHNlcnZldXIKICAgIGVzdCBlbiBjb3VycyBkJ2V46WN1dGlvbiwgY2FyIEFwYWNoZSBodHRwZCB2YSBjb250aW51ZXIg4CDpY3JpcmUgZGFucyBsJ2FuY2llbgogICAgZmljaGllciBqb3VybmFsIGF1c3NpIGxvbmd0ZW1wcyBxdSdpbCBsZSBtYWludGllbmRyYSBvdXZlcnQuCiAgICBDJ2VzdCBwb3VycXVvaSBsZSBzZXJ2ZXVyIGRvaXQg6nRyZQogICAgPGEgaHJlZj0ic3RvcHBpbmcuaHRtbCI+cmVk6W1hcnLpPC9hPiBhcHLocyBsZSBk6XBsYWNlbWVudCBvdSBsYQogICAgc3VwcHJlc3Npb24gZGVzIGZpY2hpZXJzIGpvdXJuYXV4IGRlIGZh529uIOAgY2UgcXUnaWwgZW4gb3V2cmUKICAgIGRlIG5vdXZlYXV4LjwvcD4KCiAgICA8cD5BdmVjIHVuIHJlZOltYXJyYWdlIDxlbT5ncmFjZWZ1bDwvZW0+LCBvbiBwZXV0IGZhaXJlIGVuIHNvcnRlIHF1ZSBsZQogICAgc2VydmV1ciBvdXZyZSBkZSBub3V2ZWF1eCBmaWNoaWVycyBqb3VybmF1eCBzYW5zIHBlcmRyZSBkZSBjb25uZXhpb25zCiAgICBleGlzdGFudGVzIG91IGVuIGNvdXJzIGF2ZWMgbGVzIGNsaWVudHMuIENlcGVuZGFudCwgcG91ciBxdWUgY2VjaSBzb2l0CiAgICBwb3NzaWJsZSwgbGUgc2VydmV1ciBkb2l0IGNvbnRpbnVlciDgIOljcmlyZSBkYW5zIGxlcyBhbmNpZW5zIGZpY2hpZXJzCiAgICBqb3VybmF1eCBwZW5kYW50IHF1J2lsIHRlcm1pbmUgbGUgdHJhaXRlbWVudCBkZXMgcmVxdep0ZXMgZW4gY291cnMuCiAgICBJbCBlc3QgZG9uYyBu6WNlc3NhaXJlIGQnYXR0ZW5kcmUgdW4gY2VydGFpbiB0ZW1wcyBhcHLocyBsZSBy6WTpbWFycmFnZQogICAgYXZhbnQgZCdlZmZlY3R1ZXIgdG91dCB0cmFpdGVtZW50IHN1ciBsZXMgZmljaGllcnMgam91cm5hdXguIFZvaWNpIHVuCiAgICBzY+luYXJpbyB0eXBpcXVlIGRhbnMgbGVxdWVsIG9uIGVmZmVjdHVlIHVuZSBzaW1wbGUgcm90YXRpb24gZGVzCiAgICBqb3VybmF1eCBlbiBjb21wcmVzc2FudCBsZXMgYW5jaWVucyBmaWNoaWVycyBjb3JyZXNwb25kYW50cyBhZmluCiAgICBkZSBnYWduZXIgZGUgbCdlc3BhY2UgZGlzcXVlIDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIG12IGFjY2Vzc19sb2cgYWNjZXNzX2xvZy5vbGQ8YnIgLz4KICAgICAgbXYgZXJyb3JfbG9nIGVycm9yX2xvZy5vbGQ8YnIgLz4KICAgICAgYXBhY2hlY3RsIGdyYWNlZnVsPGJyIC8+CiAgICAgIHNsZWVwIDYwMDxiciAvPgogICAgICBnemlwIGFjY2Vzc19sb2cub2xkIGVycm9yX2xvZy5vbGQKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+TGEgc2VjdGlvbiBzdWl2YW50ZSBwculzZW50ZSB1bmUgYXV0cmUgbel0aG9kZSBkZSByb3RhdGlvbiBkZXMgam91cm5hdXgKICAgIHF1aSBjb25zaXN0ZSDgIHV0aWxpc2VyIGxlcwogICAgPGEgaHJlZj0iI3BpcGVkIj5qb3VybmF1eCByZWRpcmln6XM8L2E+LjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InBpcGVkIiBpZD0icGlwZWQiPkpvdXJuYXV4IHJlZGlyaWfpczwvYT48L2gyPgogICAgCgogICAgPHA+Tm91cyBhdm9ucyB2dSBxdWUgbGUgZOltb24gaHR0cGQg6WNyaXZhaXQgbGVzIGluZm9ybWF0aW9ucyBkZQogICAgam91cm5hbGlzYXRpb24gZGVzIGVycmV1cnMgZXQgZGVzIGFjY+hzIGRhbnMgdW4gZmljaGllciBqb3VybmFsIDsKICAgIGlsIHBldXQgYXVzc2kKICAgIHJlZGlyaWdlciBjZXMgaW5mb3JtYXRpb25zIHZlcnMgdW4gYXV0cmUgcHJvY2Vzc3VzIHBhciBsJ2ludGVybelkaWFpcmUgZCd1bgogICAgdHViZSBkZSBjb21tdW5pY2F0aW9uIChwaXBlKS4gQ2V0dGUgZm9uY3Rpb25uYWxpdOkgYW3pbGlvcmUKICAgIGNvbnNpZOlyYWJsZW1lbnQgbGEgc291cGxlc3NlIGRlIGxhIGpvdXJuYWxpc2F0aW9uLCBzYW5zIGFqb3V0ZXIgZGUgY29kZQogICAgYXUgc2VydmV1ciBwcmluY2lwYWwuIFBvdXIgcmVkaXJpZ2VyIGxlcyBpbmZvcm1hdGlvbnMgZGUgam91cm5hbGlzYXRpb24KICAgIHZlcnMgdW4gdHViZSBkZSBjb21tdW5pY2F0aW9uLCByZW1wbGFjZXogc2ltcGxlbWVudCBsZSBub20gZGUgZmljaGllcgogICAgam91cm5hbCBwYXIKICAgIGxlIGNhcmFjdOhyZSBwaXBlICI8Y29kZT58PC9jb2RlPiIsIHN1aXZpIGR1IG5vbSBkZSBsJ2V46WN1dGFibGUgcXVpIHZhCiAgICByZWN1ZWlsbGlyIGxlcyBlbnRy6WVzIGRlIGpvdXJuYWwgc3VyIHNvbiBlbnRy6WUKICAgIHN0YW5kYXJkLiBMZSBzZXJ2ZXVyIHZhCiAgICBsYW5jZXIgbGUgcHJvY2Vzc3VzIGRlIHJlZGlyZWN0aW9uIGRlcyBqb3VybmF1eCBhdSBtb21lbnQgZHUgZOltYXJyYWdlIGR1CiAgICBzZXJ2ZXVyLCBldCBsZSByZWxhbmNlcmEgcydpbCBjZXNzZSBkZSBmb25jdGlvbm5lcgogICAgcGVuZGFudCBsJ2V46WN1dGlvbiBkdSBzZXJ2ZXVyLgogICAgKE5vdXMgZOlub21tb25zIGNldHRlIHRlY2huaXF1ZSAiam91cm5hbGlzYXRpb24KICAgIHJlZGlyaWfpZSBmaWFibGUiIGdy4mNlIOAgY2V0dGUgZGVybmnocmUgZm9uY3Rpb25uYWxpdOkuKTwvcD4KCiAgICA8cD5MZXMgcHJvY2Vzc3VzIGRlIGpvdXJuYWxpc2F0aW9uIHJlZGlyaWfpZSBzb250IGxhbmPpcyBwYXIgbGUgcHJvY2Vzc3VzCiAgICBodHRwZCBwYXJlbnQsIGV0IGjpcml0ZW50IGRlIGwnVUlEIGRlIGNlIGRlcm5pZXIuIENlbGEgc2lnbmlmaWUgcXVlIGxlcwogICAgcHJvZ3JhbW1lcyBkZSBqb3VybmFsaXNhdGlvbiBkaXJpZ+llIHMnZXjpY3V0ZW50IGfpbulyYWxlbWVudCBlbiB0YW50IHF1ZQogICAgcm9vdC4gSWwgZXN0IGRvbmMgdHLocyBpbXBvcnRhbnQgcXVlIGNlcyBwcm9ncmFtbWVzIHNvaWVudCBzaW1wbGVzIGV0CiAgICBz6WN1cmlz6XMuPC9wPgoKICAgIDxwPlVuIGRlcyBncmFuZHMgYXZhbnRhZ2VzIGRlIGxhIGpvdXJuYWxpc2F0aW9uIHJlZGlyaWfpZSBlc3QgbGEgcG9zc2liaWxpdOkKICAgIGQnZWZmZWN0dWVyIGxhIHJvdGF0aW9uIGRlcyBqb3VybmF1eCBzYW5zIGF2b2lyIOAgcmVk6W1hcnJlciBsZSBzZXJ2ZXVyLiBQb3VyCiAgICBhY2NvbXBsaXIgY2V0dGUgdOJjaGUsIGxlIHNlcnZldXIgSFRUUCBBcGFjaGUgZm91cm5pdCB1biBwcm9ncmFtbWUgc2ltcGxlCiAgICBhcHBlbOkgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvcm90YXRlbG9ncy5odG1sIj5yb3RhdGVsb2dzPC9hPjwvY29kZT4uIFBhciBleGVtcGxlLCBwb3VyIHVuZSByb3RhdGlvbiBkZXMKICAgIGpvdXJuYXV4IHRvdXRlcyBsZXMgMjQgaGV1cmVzLCBham91dGV6IGNlcyBsaWduZXMgOjwvcD4KCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Q3VzdG9tTG9nICJ8L3Vzci9sb2NhbC9hcGFjaGUvYmluL3JvdGF0ZWxvZ3MgL3Zhci9sb2cvYWNjZXNzX2xvZyA4NjQwMCIgY29tbW9uPC9wcmU+CgoKICAgIDxwPk5vdGV6IHF1ZSBsJ2Vuc2VtYmxlIGRlIGxhIGNvbW1hbmRlIHF1aSBzZXJhIGFwcGVs6WUgcGFyIGxlIHR1YmUgZGUKICAgIGNvbW11bmljYXRpb24gYSDpdOkgcGxhY+llIGVudHJlIGd1aWxsZW1ldHMuIEJpZW4gcXVlIGNldCBleGVtcGxlCiAgICBjb25jZXJuZSBsZSBqb3VybmFsIGRlcyBhY2PocywgbGEgbeptZSB0ZWNobmlxdWUgcGV1dCDqdHJlIHV0aWxpc+llCiAgICBwb3VyIGxlIGpvdXJuYWwgZGVzIGVycmV1cnMuPC9wPgoKICAgIDxwPkNvbW1lIGxhIGpvdXJuYWxpc2F0aW9uIGNvbmRpdGlvbm5lbGxlLCBsYSBqb3VybmFsaXNhdGlvbiByZWRpcmln6WUgZXN0CiAgICB1biBvdXRpbCB0cuhzIHB1aXNzYW50LCBtYWlzIHNpIGVsbGUgZXhpc3RlLCBpbCBlc3QgcHLpZulyYWJsZSBkJ3V0aWxpc2VyCiAgICB1bmUgc29sdXRpb24gcGx1cyBzaW1wbGUgY29tbWUgbGUgdHJhaXRlbWVudCDgIHBvc3RlcmlvcmkgaG9ycyBsaWduZS48L3A+CgoKICA8cD5QYXIgZOlmYXV0LCBsZSBwcm9jZXNzdXMgZGUgcmVkaXJlY3Rpb24gZHUgam91cm5hbCBlc3QgbGFuY+kgc2FucwogIGludm9xdWVyIHVuIHNoZWxsLiBQb3VyIGludm9xdWVyIHVuIHNoZWxsLCB1dGlsaXNleiAiPGNvZGU+fCQ8L2NvZGU+IgogIGF1IGxpZXUgZGUgIjxjb2RlPnw8L2NvZGU+IiAoZW4gZ+lu6XJhbCBhdmVjIDxjb2RlPi9iaW4vc2ggLWM8L2NvZGU+KQogIDo8L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiMgSW52b2NhdGlvbiBkZSAicm90YXRlbG9ncyIgZW4gdXRpbGlzYW50IHVuIHNoZWxsCkN1c3RvbUxvZyAifCQvdXNyL2xvY2FsL2FwYWNoZS9iaW4vcm90YXRlbG9ncyAgIC92YXIvbG9nL2FjY2Vzc19sb2cgODY0MDAiIGNvbW1vbjwvcHJlPgoKCgogICAgPHA+SWwgcydhZ2lzc2FpdCBkdSBjb21wb3J0ZW1lbnQgcGFyIGTpZmF1dCBzb3VzIEFwYWNoZSAyLjIuIFNlbG9uCiAgICBsZXMgc3DpY2lmaWNpdOlzIGR1IHNoZWxsLCBjZWNpIHBldXQgZ+lu6XJlciB1biBwcm9jZXNzdXMgc2hlbGwKICAgIHN1cHBs6W1lbnRhaXJlIHBvdXIgdG91dGUgbGEgZHVy6WUgZHUgcHJvZ3JhbW1lIGRlIHJlZGlyZWN0aW9uIGR1CiAgICBqb3VybmFsLCBldCBpbmR1aXJlIGRlcyBwcm9ibOhtZXMgZGUgZ2VzdGlvbiBkZSBzaWduYXV4IGF1IGNvdXJzIGR1CiAgICByZWTpbWFycmFnZS4gTGEgbm90YXRpb24gIjxjb2RlPnx8PC9jb2RlPiIgZXN0IGF1c3NpIHN1cHBvcnTpZSBwb3VyCiAgICBkZXMgcmFpc29ucyBkZSBjb21wYXRpYmlsaXTpIGF2ZWMgQXBhY2hlIDIuMiBldCBlc3Qg6XF1aXZhbGVudGUg4AogICAgIjxjb2RlPnw8L2NvZGU+Ii48L3A+CgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGUg4CBwcm9wb3MgZGUgbGEgcGxhdGVmb3JtZSBXaW5kb3dzPC9oMz4KICAgIDxwPk5vdGV6IHF1ZSBzb3VzIFdpbmRvd3MsIGxhIG3pbW9pcmUgYWxsb3XpZSBhdSBidXJlYXUgKGRlc2t0b3AKICAgIGhlYXApIHBldXQgZGV2ZW5pciBpbnN1ZmZpc2FudGUgc2kgdm91cyB1dGlsaXNleiBkZSBub21icmV1eAogICAgcHJvY2Vzc3VzIHZlcnMgbGVzcXVlbHMgc29udCByZWRpcmln6XMgZGVzIGpvdXJuYXV4IHZpYSB1biBwaXBlLCBldAogICAgY2VjaSBwYXJ0aWN1bGnocmVtZW50IHNpIGh0dHBkIHMnZXjpY3V0ZSBlbiB0YW50IHF1ZSBzZXJ2aWNlLiBMYQogICAgcXVhbnRpdOkgZGUgbeltb2lyZSBkdSBidXJlYXUgYWxsb3XpZSDgIGNoYXF1ZSBzZXJ2aWNlIGVzdCBzcOljaWZp6WUKICAgIGRhbnMgbGUgdHJvaXNp6G1lIGFyZ3VtZW50IGR1IHBhcmFt6HRyZSA8Y29kZT5TaGFyZWRTZWN0aW9uPC9jb2RlPgogICAgZGUgbGEgY2zpIGRlIHJlZ2lzdHJlCiAgICBIS0VZX0xPQ0FMX01BQ0hJTkVcU3lzdGVtXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcU2Vzc2lvbk1hbmFnZXJcU3ViU3lzdGVtc1xXaW5kb3dzLgogICAgPHN0cm9uZz5Nb2RpZmlleiBjZXR0ZSB2YWxldXIgYXZlYyBwcnVkZW5jZTwvc3Ryb25nPiA7IGxlcwogICAgcHLpY2F1dGlvbnMgZCd1c2FnZSBzJ2ltcG9zZW50IGxvcnNxdSdvbiBtb2RpZmllIGxhIGJhc2UgZGUgcmVnaXN0cmUsCiAgICBtYWlzIHZvdXMgcG91dmV6IGF1c3NpIHNhdHVyZXIgbGEgbeltb2lyZSBkdSBidXJlYXUgc2kgdm91cwogICAgc3DpY2lmaWV6IHVuZSB2YWxldXIgdHJvcCDpbGV26WUuPC9wPgogICAgPC9kaXY+CiAgICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InZpcnR1YWxob3N0IiBpZD0idmlydHVhbGhvc3QiPkj0dGVzIHZpcnR1ZWxzPC9hPjwvaDI+CiAgICAKCiAgICA8cD5Mb3JzcXUndW4gc2VydmV1ciBwb3Nz6GRlIHBsdXNpZXVycyA8YSBocmVmPSJ2aG9zdHMvIj5o9HRlcyB2aXJ0dWVsczwvYT4sIGlsIGV4aXN0ZSBkZSBub21icmV1c2VzIHNvbHV0aW9ucyBwb3VyIGfpcmVyCiAgICBsZXMgZmljaGllcnMgam91cm5hdXguIFBhciBleGVtcGxlLCBvbiBwZXV0IHV0aWxpc2VyIGxlcyBqb3VybmF1eCBjb21tZQogICAgcydpbCBzJ2FnaXNzYWl0IGQndW4gc2VydmV1ciBhdmVjIHVuIHNldWwgaPR0ZS4gSWwgc3VmZml0IHBvdXIgY2VsYSBkZQogICAgcGxhY2VyIGxlcyBkaXJlY3RpdmVzIGRlIGpvdXJuYWxpc2F0aW9uIGVuIGRlaG9ycyBkZXMgc2VjdGlvbnMKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+IGF1IG5pdmVhdQogICAgZHUgc2VydmV1ciBwcmluY2lwYWwsIGNlIHF1aSBhIHBvdXIgZWZmZXQgZGUgam91cm5hbGlzZXIgdG91dGVzIGxlcwogICAgcmVxdep0ZXMgZGFucyBsZSBt6m1lIGpvdXJuYWwgZGVzIGFjY+hzIGV0IGRlcyBlcnJldXJzLiBDZXR0ZSB0ZWNobmlxdWUKICAgIGVzdCBjZXBlbmRhbnQgaW5hcHByb3ByaellIHBvdXIgcmVjdWVpbGxpciBkZXMgc3RhdGlzdGlxdWVzIHN1ciBjaGFxdWUKICAgIGj0dGUgdmlydHVlbCBpbmRpdmlkdWVsbGVtZW50LjwvcD4KCiAgICA8cD5TaSBkZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2NvbmZpZy5odG1sI2N1c3RvbWxvZyI+Q3VzdG9tTG9nPC9hPjwvY29kZT4gb3UKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNlcnJvcmxvZyI+RXJyb3JMb2c8L2E+PC9jb2RlPiBzb250IHBsYWPpZXMgZGFucyB1bmUgc2VjdGlvbgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9hPjwvY29kZT4sIHRvdXRlcyBsZXMKICAgIHJlcXXqdGVzIG91IGVycmV1cnMgcG91ciBjZXQgaPR0ZSB2aXJ0dWVsIG5lIHNlcm9udCBlbnJlZ2lzdHLpZXMgcXVlIGRhbnMKICAgIGxlIGZpY2hpZXIgc3DpY2lmaekuIFRvdXQgaPR0ZSB2aXJ0dWVsIHF1aSBuZSBwb3Nz6GRlIHBhcyBkZSBkaXJlY3RpdmVzIGRlCiAgICBqb3VybmFsaXNhdGlvbiB2ZXJyYSBzZXMgcmVxdep0ZXMgZW5yZWdpc3Ry6WVzIGRhbnMgbGUgam91cm5hbCBkdSBzZXJ2ZXVyCiAgICBwcmluY2lwYWwuIENldHRlIHRlY2huaXF1ZSBlc3QgYXBwcm9wcmnpZSBwb3VyIHVuIHBldGl0IG5vbWJyZSBkJ2j0dGVzCiAgICB2aXJ0dWVscywgbWFpcyBzaSBjZSBub21icmUgZXN0IGltcG9ydGFudCwgZWxsZSBwZXV0IGRldmVuaXIgY29tcGxpcXXpZSDgCiAgICBn6XJlci4gRW4gb3V0cmUsIGRlcyBwcm9ibOhtZXMgZGUgPGEgaHJlZj0idmhvc3RzL2ZkLWxpbWl0cy5odG1sIj5ub21icmUgZGUgZGVzY3JpcHRldXJzCiAgICBkZSBmaWNoaWVycyBpbnN1ZmZpc2FudDwvYT4gcGV1dmVudCByYXBpZGVtZW50IGFwcGFyYe50cmUuPC9wPgoKICAgIDxwPklsIGV4aXN0ZSB1biB0cuhzIGJvbiBjb21wcm9taXMgcG91ciBsZSBqb3VybmFsIGRlcyBhY2Pocy4gRW4gaW506WdyYW50CiAgICBsZXMgaW5mb3JtYXRpb25zIOAgcHJvcG9zIGRlIGwnaPR0ZSB2aXJ0dWVsIOAgbGEgY2hh7m5lIGRlIGZvcm1hdCBkdQogICAgam91cm5hbCwgaWwgZXN0IHBvc3NpYmxlIGRlIGpvdXJuYWxpc2VyIHRvdXMgbGVzIGj0dGVzIGRhbnMgbGUgbeptZQogICAgam91cm5hbCwgcHVpcyBkZSBz6XBhcmVyIHVsdOlyaWV1cmVtZW50IGxlIGpvdXJuYWwgZW4gcGx1c2lldXJzIGpvdXJuYXV4CiAgICBpbmRpdmlkdWVscy4gQ29uc2lk6XJvbnMgcGFyIGV4ZW1wbGUgbGVzIGRpcmVjdGl2ZXMgc3VpdmFudGVzIDo8L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxvZ0Zvcm1hdCAiJXYgJWwgJXUgJXQgXCIlclwiICUmZ3Q7cyAlYiIgY29tb252aG9zdApDdXN0b21Mb2cgImxvZ3MvYWNjZXNzX2xvZyIgY29tb252aG9zdDwvcHJlPgoKCiAgICA8cD5MZSBjaGFtcCA8Y29kZT4ldjwvY29kZT4gc2VydCDgIGVucmVnaXN0cmVyIGxlIG5vbSBkZSBsJ2j0dGUgdmlydHVlbCBxdWkKICAgIHRyYWl0ZSBsYSByZXF16nRlLiBVbiBwcm9ncmFtbWUgdGVsIHF1ZSA8YSBocmVmPSJwcm9ncmFtcy9zcGxpdC1sb2dmaWxlLmh0bWwiPnNwbGl0LWxvZ2ZpbGU8L2E+IHBldXQgZW5zdWl0ZSDqdHJlIHV0aWxpc+kKICAgIHBvdXIgZ+lu6XJlciAi4CBmcm9pZCIgYXV0YW50IGRlIGpvdXJuYXV4IHF1ZSBkJ2j0dGVzIHZpcnR1ZWxzLjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im90aGVyIiBpZD0ib3RoZXIiPkF1dHJlcyBmaWNoaWVycyBqb3VybmF1eDwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dpby5odG1sIj5tb2RfbG9naW88L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwiPm1vZF9sb2dfY29uZmlnPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbG9nX2ZvcmVuc2ljLmh0bWwiPm1vZF9sb2dfZm9yZW5zaWM8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNsb2dmb3JtYXQiPkxvZ0Zvcm1hdDwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNidWZmZXJlZGxvZ3MiPkJ1ZmZlcmVkTG9nczwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xvZ19mb3JlbnNpYy5odG1sI2ZvcmVuc2ljbG9nIj5Gb3JlbnNpY0xvZzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI3BpZGZpbGUiPlBpZEZpbGU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2kuaHRtbCNzY3JpcHRsb2ciPlNjcmlwdExvZzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2NnaS5odG1sI3NjcmlwdGxvZ2J1ZmZlciI+U2NyaXB0TG9nQnVmZmVyPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfY2dpLmh0bWwjc2NyaXB0bG9nbGVuZ3RoIj5TY3JpcHRMb2dMZW5ndGg8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCiAgICA8aDM+RW5yZWdpc3RyZW1lbnQgZHUgbm9tYnJlIHLpZWwgZCdvY3RldHMgZW52b3npcyBldCByZed1czwvaDM+CiAgICAgIAoKICAgICAgPHA+TGUgbW9kdWxlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dpby5odG1sIj5tb2RfbG9naW88L2E+PC9jb2RlPiBmb3Vybml0IGRldXggY2hhbXBzCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfY29uZmlnLmh0bWwjbG9nZm9ybWF0Ij5Mb2dGb3JtYXQ8L2E+PC9jb2RlPiBzdXBwbOltZW50YWlyZXMKICAgICAgKCVJIGV0ICVPKSBxdWkgcGVybWV0dGVudCBkJ2VucmVnaXN0cmVyIGxlIG5vbWJyZSBy6WVsIGQnb2N0ZXRzIHJl53VzIGV0CiAgICAgIGVudm956XMgc3VyIGxlIHLpc2VhdS48L3A+CiAgICAKCiAgICA8aDM+Sm91cm5hbGlzYXRpb24gZGUgc3R5bGUgaW52ZXN0aWdhdGlvbiBqdWRpY2lhaXJlIChmb3JlbnNpYyBsb2dnaW5nKTwvaDM+CiAgICAgIAoKICAgICAgPHA+TGUgbW9kdWxlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sb2dfZm9yZW5zaWMuaHRtbCI+bW9kX2xvZ19mb3JlbnNpYzwvYT48L2NvZGU+IHBlcm1ldCBsYSBqb3VybmFsaXNhdGlvbgogICAgICDgIGRlcyBmaW5zIGQnaW52ZXN0aWdhdGlvbiBqdWRpY2lhaXJlIGRlcyByZXF16nRlcyBkZXMgY2xpZW50cy4gTGEKICAgICAgam91cm5hbGlzYXRpb24gZXN0IGVmZmVjdHXpZSBhdmFudCBldCBhcHLocyBsZSB0cmFpdGVtZW50IGRlIGxhIHJlcXXqdGUsCiAgICAgIHF1aSBmYWl0IGRvbmMgbCdvYmpldCBkZSBkZXV4IGVudHLpZXMgZGFucyBsZSBqb3VybmFsLiBMZSBn6W7pcmF0ZXVyIGRlCiAgICAgIGpvdXJuYXV4IGQnaW52ZXN0aWdhdGlvbiBlc3QgdHLocyBzdHJpY3QgZXQgbmUgcGVybWV0IGF1Y3VuZQogICAgICBwZXJzb25uYWxpc2F0aW9uLiBDJ2VzdCB1biBpbmVzdGltYWJsZSBvdXRpbCBkZSBk6WJvZ2FnZSBldCBkZSBz6WN1cml06S48L3A+CiAgICAKCiAgICA8aDM+PGEgbmFtZT0icGlkZmlsZSIgaWQ9InBpZGZpbGUiPkZpY2hpZXIgUElEPC9hPjwvaDM+CiAgICAgIAoKICAgICAgPHA+QXUgZOltYXJyYWdlLCBsZSBk6W1vbiBodHRwZCBBcGFjaGUgZW5yZWdpc3RyZSBsJ2lkZW50aWZpYW50IGR1CiAgICAgIHByb2Nlc3N1cyBodHRwZCBwYXJlbnQgZGFucyBsZSBmaWNoaWVyIDxjb2RlPmxvZ3MvaHR0cGQucGlkPC9jb2RlPi4KICAgICAgTGUgbm9tIGRlIGNlIGZpY2hpZXIgcGV1dCDqdHJlIG1vZGlmaekg4CBsJ2FpZGUgZGUgbGEgZGlyZWN0aXZlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNwaWRmaWxlIj5QaWRGaWxlPC9hPjwvY29kZT4uIENldCBpZGVudGlmaWFudAogICAgICBwZXJtZXQg4CBsJ2FkbWluaXN0cmF0ZXVyIGRlIHJlZOltYXJyZXIgZXQgYXJy6nRlciBsZSBk6W1vbiBlbgogICAgICBlbnZveWFudCBkZXMgc2lnbmF1eCBhdSBwcm9jZXNzdXMgcGFyZW50IDsgc291cyBXaW5kb3dzLCB2b3VzIGRldmV6CiAgICAgIHV0aWxpc2VyIGwnb3B0aW9uIGRlIGxpZ25lIGRlIGNvbW1hbmRlIC1rLiBQb3VyIHBsdXMgZGUgZOl0YWlscywKICAgICAgY29uc3VsdGVyIGxhIHBhZ2UgPGEgaHJlZj0ic3RvcHBpbmcuaHRtbCI+QXJy6nQgZXQgcmVk6W1hcnJhZ2U8L2E+LjwvcD4KICAgIAoKICAgIDxoMz48YSBuYW1lPSJzY3JpcHRsb2ciIGlkPSJzY3JpcHRsb2ciPkpvdXJuYWwgZGVzIHNjcmlwdHM8L2E+PC9oMz4KICAgICAgCgogICAgICA8cD5BZmluIGRlIGZhY2lsaXRlciBsZSBk6WJvZ2FnZSwgbGEgZGlyZWN0aXZlCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2kuaHRtbCNzY3JpcHRsb2ciPlNjcmlwdExvZzwvYT48L2NvZGU+IHZvdXMgcGVybWV0CiAgICAgIGQnZW5yZWdpc3RyZXIgbGVzIGVudHLpZXMgZXQgc29ydGllcyBkZXMgc2NyaXB0cyBDR0kuIEVsbGUgbmUgZG9pdCDqdHJlCiAgICAgIHV0aWxpc+llIHF1ZSBwZW5kYW50IGxhIHBoYXNlIGRlIHRlc3QsIGV0IGVuIGF1Y3VuIGNhcyBzdXIgdW4KICAgICAgc2VydmV1ciBlbiBwcm9kdWN0aW9uLiBWb3VzIHRyb3V2ZXJleiBwbHVzIGQnaW5mb3JtYXRpb25zIGRhbnMgbGEKICAgICAgZG9jdW1lbnRhdGlvbiBkdSBtb2R1bGUgPGEgaHJlZj0ibW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT4uPC9wPgogICAgCiAgICAKICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2xvZ3MuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvbG9ncy5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvbG9ncy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vbG9ncy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2xvZ3MuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvdHJ1bmsvbG9ncy5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==