PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iRVVDLUtSIj8+CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImtvIiB4bWw6bGFuZz0ia28iPjxoZWFkPgo8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9RVVDLUtSIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIC8+CjwhLS0KICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAgICAgICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSB4bWwgc291cmNlOiBETyBOT1QgRURJVAogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgIC0tPgo8dGl0bGU+aHRjYWNoZWNsZWFuIC0gtfC9usWpIMSzvay4piDDu7zSx9G02SAtIEFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNDwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4uL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj648LXiPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPsH2vcO+7rXpPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+v+u+7jwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPrvnwMzGrrjKPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi40PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuNDwvYT4gJmd0OyA8YSBocmVmPSIuLyI+UHJvZ3JhbXM8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPmh0Y2FjaGVjbGVhbiAtILXwvbrFqSDEs72suKYgw7u80sfRtNk8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+sKG0ycfRIL7wvu46IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9wcm9ncmFtcy9odGNhY2hlY2xlYW4uaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL3Byb2dyYW1zL2h0Y2FjaGVjbGVhbi5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbiYjMjMxO2FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vcHJvZ3JhbXMvaHRjYWNoZWNsZWFuLmh0bWwiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL3RyL3Byb2dyYW1zL2h0Y2FjaGVjbGVhbi5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVCYjMjUyO3JrJiMyMzE7ZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3V0b2ZkYXRlIj7AzCC5rryttMIgw9a9xcbHILn4v6rAzCC+xrTVtM+02S4KICAgICAgICAgICAgw9ax2b+hILqvsOa1yCCzu7/rwLogv7W+7iC5rrytuKYgwvyw7cfPvLy/5C48L2Rpdj4KCiAgICA8cD48Y29kZT5odGNhY2hlY2xlYW48L2NvZGU+wLogPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jYWNoZV9kaXNrLmh0bWwiPm1vZF9jYWNoZV9kaXNrPC9hPjwvY29kZT6woQogICAgu+e/68fPtMIgwPrA5bzSIL/rt67AuyDAz8GkIMfRtbW3ziDAr8H2x9G02S4gwMwgtbWxuLTCIMH3waIKICAgIL3Hx+DHz7DFs6ogtaW48yhkYWVtb24pwLi3ziC9x8fgx9IgvPYgwNa02S4gx8G3zrHXt6XAuyC1pbjzwLi3zgogICAgvcfH4MfPuOkguemx17bzv+615b+hvK0gwOHA2rDtIMDWtNmwoSDAz8GkIMHWseK3ziDEs72sCiAgICC18Le6xeS4rr+hvK0gwfa/7yCwzcDMIMDWtMLB9iCwy7vnx9G02S4gtaW487+hsNQgVEVSTcDMs6oKICAgIElOVCC9w7HXs87AuyC6uLO7uOkgvsjA/MfPsNQgwb634cfRtNkuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48YSBocmVmPSJodHRwczovL3d3dy5hcGFjaGUub3JnL2ZvdW5kYXRpb24vY29udHJpYnV0aW5nLmh0bWwiIGNsYXNzPSJiYWRnZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvaW1hZ2VzL1N1cHBvcnRBcGFjaGUtc21hbGwucG5nIiBhbHQ9IlN1cHBvcnQgQXBhY2hlISIgLz48L2E+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3N5bm9wc2lzIj6ws7/kPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI29wdGlvbnMiPr/JvMc8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXhpdCI+wb634cTateU8L2E+PC9saT4KPC91bD48aDM+wvyw7TwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jYWNoZV9kaXNrLmh0bWwiPm1vZF9jYWNoZV9kaXNrPC9hPjwvY29kZT48L2xpPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzeW5vcHNpcyIgaWQ9InN5bm9wc2lzIj6ws7/kPC9hPjwvaDI+CiAgICA8cD48Y29kZT48c3Ryb25nPmh0Y2FjaGVjbGVhbjwvc3Ryb25nPgogICAgWyAtPHN0cm9uZz5EPC9zdHJvbmc+IF0KICAgIFsgLTxzdHJvbmc+djwvc3Ryb25nPiBdCiAgICBbIC08c3Ryb25nPnI8L3N0cm9uZz4gXQogICAgWyAtPHN0cm9uZz5uPC9zdHJvbmc+IF0KICAgIC08c3Ryb25nPnA8L3N0cm9uZz48dmFyPnBhdGg8L3Zhcj4KICAgIC08c3Ryb25nPmw8L3N0cm9uZz48dmFyPmxpbWl0PC92YXI+PC9jb2RlPjwvcD4KCiAgICA8cD48Y29kZT48c3Ryb25nPmh0Y2FjaGVjbGVhbjwvc3Ryb25nPiAtPHN0cm9uZz5iPC9zdHJvbmc+CiAgICBbIC08c3Ryb25nPm48L3N0cm9uZz4gXQogICAgWyAtPHN0cm9uZz5pPC9zdHJvbmc+IF0KICAgIC08c3Ryb25nPmQ8L3N0cm9uZz48dmFyPmludGVydmFsPC92YXI+CiAgICAtPHN0cm9uZz5wPC9zdHJvbmc+PHZhcj5wYXRoPC92YXI+CiAgICAtPHN0cm9uZz5sPC9zdHJvbmc+PHZhcj5saW1pdDwvdmFyPjwvY29kZT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im9wdGlvbnMiIGlkPSJvcHRpb25zIj6/ybzHPC9hPjwvaDI+CiAgICA8ZGw+CiAgICA8ZHQ+PGNvZGU+LWQ8dmFyPmludGVydmFsPC92YXI+PC9jb2RlPjwvZHQ+CiAgICA8ZGQ+taW488C4t84gvcfH4MfPv6kgPHZhcj5pbnRlcnZhbDwvdmFyPiC60Li2tNkgxLO9rLimCiAgICDDu7zSx9G02S4gwMwgv8m8x8C6IDxjb2RlPi1EPC9jb2RlPiwgPGNvZGU+LXY8L2NvZGU+LAogICAgPGNvZGU+LXI8L2NvZGU+IL/JvMew+iDH1LKyILvnv+vH0iC89iC++LTZLiC1pbjzwLsgvsjA/MfPsNQKICAgIMG+t+HHz7fBuOkgtaW487+hsNQgPGNvZGU+U0lHVEVSTTwvY29kZT4gyKTAugogICAgPGNvZGU+U0lHSU5UPC9jb2RlPiC9w7HXs87AuyC6uLO7uOkgtci02S48L2RkPgoKICAgIDxkdD48Y29kZT4tRDwvY29kZT48L2R0PgogICAgPGRkPrDLu+e4uCDHz7DtIL3HwaYgvsa5q7DNtbUgwfa/7MH2IL7KtMK02S4gwMwgv8m8x8C6CiAgICA8Y29kZT4tZDwvY29kZT4gv8m8x7D6IMfUsrIgu+e/68fSILz2IL74tNkuPC9kZD4KCiAgICA8ZHQ+PGNvZGU+LXY8L2NvZGU+PC9kdD4KICAgIDxkZD7A2ry8x9Egxeuw6LimIMPit8LH0bTZLiDAzCC/ybzHwLogPGNvZGU+LWQ8L2NvZGU+IL/JvMew+gogICAgx9SysiC757/rx9IgvPYgvvi02S48L2RkPgoKICAgIDxkdD48Y29kZT4tcjwvY29kZT48L2R0PgogICAgPGRkPr/PwPzI9yDDu7zSx9G02S4gvsbGxMShIMClvK259rChILW/wNvHz8H2IL7KtMK02bDtILChwaTH0bTZCiAgICAouLi+4CC1v8Dbx9G02bjpIMSzvay/oSDAzLvzx9EgsKrAzCDA+sDltci02SkuIMDMIL/JvMfAugogICAgPGNvZGU+LWQ8L2NvZGU+IL/JvMew+iDH1LKyILvnv+vH0iC89iC++LTZLjwvZGQ+CgogICAgPGR0Pjxjb2RlPi1uPC9jb2RlPjwvZHQ+CiAgICA8ZGQ+xKPA/cfPsNQobmljZSkgtb/A28fRtNkuILTZuKUgx8G3zry8vbq4piDAp8fYILTAuK6w1AogICAgtb/A28fRtNkuIDxjb2RlPmh0Y2FjaGVjbGVhbjwvY29kZT6woSDA2sHWIMDhwLsgwNqw1LXHv6kKICAgICgxKSC18L26xakgwNTD4rfCwMwgwfa/rLXHsO0gKDIpILHXtb++yCDEv7POwLogtNm4pSDHwbfOvLy9urimCiAgICC9usTJwdnH0iC89iDA1rTZLjwvZGQ+CgogICAgPGR0Pjxjb2RlPi1wPHZhcj5wYXRoPC92YXI+PC9jb2RlPjwvZHQ+CiAgICA8ZGQ+PHZhcj5wYXRoPC92YXI+uKYgtfC9usWpIMSzvazAxyDD1rvzwKcgtfC3usXkuK63ziDB9sGkx9G02S4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2FjaGVfZGlzay5odG1sI2NhY2hlcm9vdCI+Q2FjaGVSb290PC9hPjwvY29kZT4KICAgIMH2vcO+7r+hILvnv+vH0SCwqrD6ILW/wM/H0SCwqsC7ILvnv+vH2L7fIMfRtNkuPC9kZD4KCiAgICA8ZHQ+PGNvZGU+LWw8dmFyPmxpbWl0PC92YXI+PC9jb2RlPjwvZHQ+CiAgICA8ZGQ+wPzDvCC18L26xakgxLO9rCC/67euIMGmx9HAuyA8dmFyPmxpbWl0PC92YXI+t84gwabH0cfRtNkuCiAgICCwqsC6ILHiurvA+8C4t84gKMikwLogvP3A2r+hIDxjb2RlPkI8L2NvZGU+uKYgutnAzLjpKSC52cDMxq4KICAgILTcwKfAzLTZLiDFs7fOudnAzMautMIgPGNvZGU+SzwvY29kZT64piwguN6wobnZwMzGrrTCCiAgICA8Y29kZT5NPC9jb2RlPsC7ILXav6EgutnAzrTZLjwvZGQ+CgogICAgPGR0Pjxjb2RlPi1pPC9jb2RlPjwvZHQ+CiAgICA8ZGQ+wfa0ycD7wLi3ziC18L26xakgxLO9rLChILqvsOa1yCCw5r/sv6G4uCC1v8Dbx9G02S4gwMwKICAgIL/JvMfAuiA8Y29kZT4tZDwvY29kZT4gv8m8x7D6IMfUsrK4uCC757/rx9IgvPYgwNa02S48L2RkPgogICAgPC9kbD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXhpdCIgaWQ9ImV4aXQiPsG+t+HE2rXlPC9hPjwvaDI+CiAgICA8cD48Y29kZT5odGNhY2hlY2xlYW48L2NvZGU+tMIguPC15yDA2773wMwgvLqw+MfRILDmv+y/oQogICAgKCLC/CIpIMG+t+HE2rXlIDDAuyC53civx8+w7SwgvcfG0MfRILDmv+y/obTCIDxjb2RlPjE8L2NvZGU+wLsKICAgILndyK/H0bTZLjwvcD4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj6wobTJx9EgvvC+7jogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL3Byb2dyYW1zL2h0Y2FjaGVjbGVhbi5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvcHJvZ3JhbXMvaHRjYWNoZWNsZWFuLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFuJiMyMzE7YWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9wcm9ncmFtcy9odGNhY2hlY2xlYW4uaHRtbCIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vdHIvcHJvZ3JhbXMvaHRjYWNoZWNsZWFuLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJUJiMyNTI7cmsmIzIzMTtlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi40L3Byb2dyYW1zL2h0Y2FjaGVjbGVhbi5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7IAogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMjEgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2Vuc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+uPC14jwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj7B9r3Dvu616TwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPr/rvu48L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj6758DMxq64yjwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=