PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPG1ldGEgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciIG5hbWU9InJvYm90cyIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfZXhhbXBsZSAtIEFwYWNoZSBIVFRQIFNlcnZlcjwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+CjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjxsaW5rIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvY3VycmVudC9tb2QvbW9kX2V4YW1wbGUuaHRtbCIgcmVsPSJjYW5vbmljYWwiIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4uL2ZhcS8iPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5BcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjA8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIuZ2lmIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi4wPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5Nb2R1bGVzPC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPgo8ZGl2IGNsYXNzPSJyZXRpcmVkIj48aDQ+UGxlYXNlIG5vdGU8L2g0PgogICAgICAgICAgICA8cD5UaGlzIGRvY3VtZW50IHJlZmVycyB0byB0aGUgPHN0cm9uZz4yLjA8L3N0cm9uZz4gdmVyc2lvbiBvZiBBcGFjaGUgaHR0cGQsIHdoaWNoIDxzdHJvbmc+aXMgbm8gbG9uZ2VyIG1haW50YWluZWQ8L3N0cm9uZz4uIFVwZ3JhZGUsIGFuZCByZWZlciB0byB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIGh0dHBkIGluc3RlYWQsIGRvY3VtZW50ZWQgYXQ6PC9wPgogICAgICAgIDx1bD48bGk+PGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50LyI+Q3VycmVudCByZWxlYXNlIHZlcnNpb24gb2YgQXBhY2hlIEhUVFAgU2VydmVyIGRvY3VtZW50YXRpb248L2E+PC9saT48L3VsPjxwPllvdSBtYXkgZm9sbG93IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvY3VycmVudC9tb2QvbW9kX2V4YW1wbGUuaHRtbCI+dGhpcyBsaW5rPC9hPiB0byBnbyB0byB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoaXMgZG9jdW1lbnQuPC9wPjwvZGl2PjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QXBhY2hlIE1vZHVsZSBtb2RfZXhhbXBsZTwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9leGFtcGxlLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2V4YW1wbGUuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPklsbHVzdHJhdGVzIHRoZSBBcGFjaGUgbW9kdWxlIEFQSTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHBlcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+ZXhhbXBsZV9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5Tb3VyY2WgRmlsZTo8L2E+PC90aD48dGQ+bW9kX2V4YW1wbGUuYzwvdGQ+PC90cj48L3RhYmxlPgo8aDM+U3VtbWFyeTwvaDM+Cgo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4KICAgICAgVGhpcyBkb2N1bWVudCBoYXMgbm90IGJlZW4gdXBkYXRlZAogICAgICB0byB0YWtlIGludG8gYWNjb3VudCBjaGFuZ2VzIG1hZGUgaW4gdGhlIDIuMCB2ZXJzaW9uIG9mIHRoZQogICAgICBBcGFjaGUgSFRUUCBTZXJ2ZXIuIFNvbWUgb2YgdGhlIGluZm9ybWF0aW9uIG1heSBzdGlsbCBiZQogICAgICByZWxldmFudCwgYnV0IHBsZWFzZSB1c2UgaXQgd2l0aCBjYXJlLgo8L2Rpdj4KCiAgICA8cD5UaGUgZmlsZXMgaW4gdGhlIDxjb2RlPnNyYy9tb2R1bGVzL2V4YW1wbGUgZGlyZWN0b3J5PC9jb2RlPgogICAgdW5kZXIgdGhlIEFwYWNoZSBkaXN0cmlidXRpb24gZGlyZWN0b3J5IHRyZWUgYXJlIHByb3ZpZGVkIGFzIGFuCiAgICBleGFtcGxlIHRvIHRob3NlIHRoYXQgd2lzaCB0byB3cml0ZSBtb2R1bGVzIHRoYXQgdXNlIHRoZSBBcGFjaGUKICAgIEFQSS48L3A+CgogICAgPHA+VGhlIG1haW4gZmlsZSBpcyA8Y29kZT5tb2RfZXhhbXBsZS5jPC9jb2RlPiwgd2hpY2gKICAgIGlsbHVzdHJhdGVzIGFsbCB0aGUgZGlmZmVyZW50IGNhbGxiYWNrIG1lY2hhbmlzbXMgYW5kIGNhbGwKICAgIHN5bnRheGVzLiBCeSBubyBtZWFucyBkb2VzIGFuIGFkZC1vbiBtb2R1bGUgbmVlZCB0byBpbmNsdWRlCiAgICByb3V0aW5lcyBmb3IgYWxsIG9mIHRoZSBjYWxsYmFja3MgLSBxdWl0ZSB0aGUgY29udHJhcnkhPC9wPgoKICAgIDxwPlRoZSBleGFtcGxlIG1vZHVsZSBpcyBhbiBhY3R1YWwgd29ya2luZyBtb2R1bGUuIElmIHlvdSBsaW5rCiAgICBpdCBpbnRvIHlvdXIgc2VydmVyLCBlbmFibGUgdGhlICJleGFtcGxlLWhhbmRsZXIiIGhhbmRsZXIgZm9yIGEKICAgIGxvY2F0aW9uLCBhbmQgdGhlbiBicm93c2UgdG8gdGhhdCBsb2NhdGlvbiwgeW91IHdpbGwgc2VlIGEKICAgIGRpc3BsYXkgb2Ygc29tZSBvZiB0aGUgdHJhY2luZyB0aGUgZXhhbXBsZSBtb2R1bGUgZGlkIGFzIHRoZQogICAgdmFyaW91cyBjYWxsYmFja3Mgd2VyZSBtYWRlLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNleGFtcGxlIj5FeGFtcGxlPC9hPjwvbGk+CjwvdWw+CjxoMz5Ub3BpY3M8L2gzPgo8dWwgaWQ9InRvcGljcyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NvbXBpbGluZyI+Q29tcGlsaW5nIHRoZSBleGFtcGxlIG1vZHVsZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN1c2luZyI+VXNpbmcgdGhlIDxjb2RlPm1vZF9leGFtcGxlPC9jb2RlPiBNb2R1bGU8L2E+PC9saT4KPC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY29tcGlsaW5nIiBpZD0iY29tcGlsaW5nIj5Db21waWxpbmcgdGhlIGV4YW1wbGUgbW9kdWxlPC9hPjwvaDI+CgogICAgPHA+VG8gaW5jbHVkZSB0aGUgZXhhbXBsZSBtb2R1bGUgaW4geW91ciBzZXJ2ZXIsIGZvbGxvdyB0aGUKICAgIHN0ZXBzIGJlbG93OjwvcD4KCiAgICA8b2w+CiAgICAgIDxsaT4KICAgICAgICBVbmNvbW1lbnQgdGhlICJBZGRNb2R1bGUgbW9kdWxlcy9leGFtcGxlL21vZF9leGFtcGxlIiBsaW5lCiAgICAgICAgbmVhciB0aGUgYm90dG9tIG9mIHRoZSA8Y29kZT5zcmMvQ29uZmlndXJhdGlvbjwvY29kZT4gZmlsZS4KICAgICAgICBJZiB0aGVyZSBpc24ndCBvbmUsIGFkZCBpdDsgaXQgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOiAKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgQWRkTW9kdWxlIG1vZHVsZXMvZXhhbXBsZS9tb2RfZXhhbXBsZS5vCjwvY29kZT48L3A+PC9kaXY+CiAgICAgIDwvbGk+CgogICAgICA8bGk+UnVuIHRoZSA8Y29kZT5zcmMvQ29uZmlndXJlPC9jb2RlPiBzY3JpcHQKICAgICAgKCI8Y29kZT5jZCZuYnNwO3NyYzsmbmJzcDsuL0NvbmZpZ3VyZTwvY29kZT4iKS4gVGhpcyB3aWxsCiAgICAgIGJ1aWxkIHRoZSBNYWtlZmlsZSBmb3IgdGhlIHNlcnZlciBpdHNlbGYsIGFuZCB1cGRhdGUgdGhlCiAgICAgIDxjb2RlPnNyYy9tb2R1bGVzL01ha2VmaWxlPC9jb2RlPiBmb3IgYW55IGFkZGl0aW9uYWwgbW9kdWxlcwogICAgICB5b3UgaGF2ZSByZXF1ZXN0ZWQgZnJvbSBiZW5lYXRoIHRoYXQgc3ViZGlyZWN0b3J5LjwvbGk+CgogICAgICA8bGk+TWFrZSB0aGUgc2VydmVyIChydW4gIjxjb2RlPm1ha2U8L2NvZGU+IiBpbiB0aGUKICAgICAgPGNvZGU+c3JjPC9jb2RlPiBkaXJlY3RvcnkpLjwvbGk+CiAgICA8L29sPgoKICAgIDxwPlRvIGFkZCBhbm90aGVyIG1vZHVsZSBvZiB5b3VyIG93bjo8L3A+CgogICAgPG9sIGNsYXNzPSJ1cC1BIj4KICAgICAgPGxpPjxjb2RlPm1rZGlyIHNyYy9tb2R1bGVzLzxlbT5teW1vZHVsZTwvZW0+PC9jb2RlPjwvbGk+CgogICAgICA8bGk+PGNvZGU+Y3Agc3JjL21vZHVsZXMvZXhhbXBsZS8qCiAgICAgIHNyYy9tb2R1bGVzLzxlbT5teW1vZHVsZTwvZW0+PC9jb2RlPjwvbGk+CgogICAgICA8bGk+TW9kaWZ5IHRoZSBmaWxlcyBpbiB0aGUgbmV3IGRpcmVjdG9yeS48L2xpPgoKICAgICAgPGxpPkZvbGxvdyBzdGVwcyBbMV0gdGhyb3VnaCBbM10gYWJvdmUsIHdpdGggYXBwcm9wcmlhdGUKICAgICAgY2hhbmdlcy48L2xpPgogICAgPC9vbD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idXNpbmciIGlkPSJ1c2luZyI+VXNpbmcgdGhlIDxjb2RlPm1vZF9leGFtcGxlPC9jb2RlPiBNb2R1bGU8L2E+PC9oMj4KCiAgICA8cD5UbyBhY3RpdmF0ZSB0aGUgZXhhbXBsZSBtb2R1bGUsIGluY2x1ZGUgYSBibG9jayBzaW1pbGFyIHRvCiAgICB0aGUgZm9sbG93aW5nIGluIHlvdXIgPGNvZGU+c3JtLmNvbmY8L2NvZGU+IGZpbGU6PC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgJmx0O0xvY2F0aW9uIC9leGFtcGxlLWluZm8mZ3Q7PGJyIC8+CiAgICAgICBTZXRIYW5kbGVyIGV4YW1wbGUtaGFuZGxlcjxiciAvPgogICAmbHQ7L0xvY2F0aW9uJmd0Owo8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkFzIGFuIGFsdGVybmF0aXZlLCB5b3UgY2FuIHB1dCB0aGUgZm9sbG93aW5nIGludG8gYSA8YSBocmVmPSJjb3JlLmh0bWwjYWNjZXNzZmlsZW5hbWUiPjxjb2RlPi5odGFjY2VzczwvY29kZT48L2E+IGZpbGUKICAgIGFuZCB0aGVuIHJlcXVlc3QgdGhlIGZpbGUgInRlc3QuZXhhbXBsZSIgZnJvbSB0aGF0IGxvY2F0aW9uOjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgIEFkZEhhbmRsZXIgZXhhbXBsZS1oYW5kbGVyIC5leGFtcGxlCjwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+QWZ0ZXIgcmVsb2FkaW5nL3Jlc3RhcnRpbmcgeW91ciBzZXJ2ZXIsIHlvdSBzaG91bGQgYmUgYWJsZQogICAgdG8gYnJvd3NlIHRvIHRoaXMgbG9jYXRpb24gYW5kIHNlZSB0aGUgYnJpZWYgZGlzcGxheSBtZW50aW9uZWQKICAgIGVhcmxpZXIuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRXhhbXBsZSIgaWQ9IkV4YW1wbGUiPkV4YW1wbGU8L2E+IDxhIG5hbWU9ImV4YW1wbGUiIGlkPSJleGFtcGxlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5EZW1vbnN0cmF0aW9uIGRpcmVjdGl2ZSB0byBpbGx1c3RyYXRlIHRoZSBBcGFjaGUgbW9kdWxlCkFQSTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5FeGFtcGxlPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdCwgZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXhwZXJpbWVudGFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9leGFtcGxlPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkV4YW1wbGU8L2NvZGU+IGRpcmVjdGl2ZSBqdXN0IHNldHMgYSBkZW1vbnN0cmF0aW9uCiAgICBmbGFnIHdoaWNoIHRoZSBleGFtcGxlIG1vZHVsZSdzIGNvbnRlbnQgaGFuZGxlciBkaXNwbGF5cy4gSXQKICAgIHRha2VzIG5vIGFyZ3VtZW50cy4gSWYgeW91IGJyb3dzZSB0byBhbiBVUkwgdG8gd2hpY2ggdGhlCiAgICBleGFtcGxlIGNvbnRlbnQtaGFuZGxlciBhcHBsaWVzLCB5b3Ugd2lsbCBnZXQgYSBkaXNwbGF5IG9mIHRoZQogICAgcm91dGluZXMgd2l0aGluIHRoZSBtb2R1bGUgYW5kIGhvdyBhbmQgaW4gd2hhdCBvcmRlciB0aGV5IHdlcmUKICAgIGNhbGxlZCB0byBzZXJ2aWNlIHRoZSBkb2N1bWVudCByZXF1ZXN0LiBUaGUgZWZmZWN0IG9mIHRoaXMKICAgIGRpcmVjdGl2ZSBvbmUgY2FuIG9ic2VydmUgdW5kZXIgdGhlIHBvaW50ICI8Y29kZT5FeGFtcGxlCiAgICBkaXJlY3RpdmUgZGVjbGFyZWQgaGVyZTogWUVTL05PPC9jb2RlPiIuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfZXhhbXBsZS5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vbW9kL21vZF9leGFtcGxlLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTMgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2Vuc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4uL2ZhcS8iPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPjwvZGl2Pgo8L2JvZHk+PC9odG1sPg==