ZGlmZiAtLWdpdCBhL2RvYy9ET00uaHRtbCBiL2RvYy9ET00uaHRtbAppbmRleCA5MzQ3MWVkLi5kOGZlMTY2IDEwMDY0NAotLS0gYS9kb2MvRE9NLmh0bWwKKysrIGIvZG9jL0RPTS5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5ET00gUHJpbmNpcGxlczwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL0ZBUS5odG1sIGIvZG9jL0ZBUS5odG1sCmluZGV4IGE0NzMxNGUuLjRlMWFjZTIgMTAwNjQ0Ci0tLSBhL2RvYy9GQVEuaHRtbAorKysgYi9kb2MvRkFRLmh0bWwKQEAgLTEsMjk0ICsxLDM0NiBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KIDxodG1sPgogPGhlYWQ+Ci0gIDx0aXRsZT5MaWJ4bWwgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnM8L3RpdGxlPgotICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9ImFtYXlhIFY1LjAiPgotICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbCI+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCEtLQorVEQge2ZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDVwdDsgbWFyZ2luLWxlZnQ6IDBwdDsgbWFyZ2luLXJpZ2h0OiAwcHR9CitIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CistLT48L3N0eWxlPgorPHRpdGxlPkZBUTwvdGl0bGU+CiA8L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGgxIGFsaWduPSJjZW50ZXIiPkxpYnhtbCBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvaDE+Ci0KLTxwPkxvY2F0aW9uOiA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL0ZBUS5odG1sIj5odHRwOi8veG1sc29mdC5vcmcvRkFRLmh0bWw8L2E+PC9wPgotCi08cD5MaWJ4bWwgaG9tZSBwYWdlOiA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj5odHRwOi8veG1sc29mdC5vcmcvPC9hPjwvcD4KLQotPHA+TWFpbGluZy1saXN0IGFyY2hpdmU6ICA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLyI+aHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzwvYT48L3A+Ci0KLTxwPlZlcnNpb246ICRSZXZpc2lvbiQ8L3A+Ci0KKzxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiMwMDAwMDAiIHZsaW5rPSIjMDAwMDAwIj4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMTgwIj4KKzxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9InNtYWxsZm9vdG9ubHkuZ2lmIiBhbHQ9Ikdub21lIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIj48L2E+Cis8L3RkPgorPHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPgorPGgxPlRoZSBYTUwgQyBsaWJyYXJ5IGZvciBHbm9tZTwvaDE+Cis8aDI+RkFRPC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3BhZ2VzLmVpZG9zbmV0LmNvLnVrL35nYXJ5cGVuL2xpYnhtbC8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPgogPHA+VGFibGUgb2YgQ29udGVudDo8L3A+CiA8dWw+Ci0gIDxsaT48YSBocmVmPSIjTGljZW5jZSI+TGljZW5jZShzKTwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI0luc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI0NvbXBpbGF0aW8iPkNvbXBpbGF0aW9uPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjRGV2ZWxvcGVyIj5EZXZlbG9wZXIgY29ybmVyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwjTGljZW5jZSI+TGljZW5jZShzKTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sI0luc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sI0NvbXBpbGF0aW8iPkNvbXBpbGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwjRGV2ZWxvcGVyIj5EZXZlbG9wZXIgY29ybmVyPC9hPjwvbGk+CiA8L3VsPgotCi08aDI+PGEgbmFtZT0iTGljZW5jZSI+TGljZW5jZTwvYT4ocyk8L2gyPgorPGgzPgorPGEgbmFtZT0iTGljZW5jZSI+TGljZW5jZTwvYT4ocyk8L2gzPgogPG9sPgotICA8bGk+PGVtPkxpY2Vuc2luZyBUZXJtcyBmb3IgbGlieG1sPC9lbT4KKzxsaT4KKzxlbT5MaWNlbnNpbmcgVGVybXMgZm9yIGxpYnhtbDwvZW0+CiAgICAgPHA+bGlieG1sIGlzIHJlbGVhc2VkIHVuZGVyIDIgKGNvbXBhdGlibGUpIGxpY2VuY2VzOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+dGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9sZ3BsLmh0bWwiPkxHUEw8L2E+OiBHTlUKKzx1bD4KKzxsaT50aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xncGwuaHRtbCI+TEdQTDwvYT46IEdOVQogICAgICAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2xpPgotICAgICAgPGxpPnRoZSA8YQotICAgICAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZS0xOTk4MDcyMC5odG1sIj5XM0MKKzxsaT50aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9jb3B5cmlnaHQtc29mdHdhcmUtMTk5ODA3MjAuaHRtbCI+VzNDCiAgICAgICAgIElQUjwvYT46IHZlcnkgc2ltaWxhciB0byB0aGUgWFdpbmRvdyBsaWNlbmNlPC9saT4KLSAgICA8L3VsPgotICA8L2xpPgotICA8bGk+PGVtPkNhbiBJIGVtYmVkIGxpYnhtbCBpbiBhIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9uID88L2VtPgorPC91bD4KKzwvbGk+Cis8bGk+Cis8ZW0+Q2FuIEkgZW1iZWQgbGlieG1sIGluIGEgcHJvcHJpZXRhcnkgYXBwbGljYXRpb24gPzwvZW0+CiAgICAgPHA+WWVzLiBUaGUgVzNDIElQUiBhbGxvd3MgeW91IHRvIGFsc28ga2VlcCBwcm9wcmlldGFyeSB0aGUgY2hhbmdlcyB5b3UKICAgICBtYWRlIHRvIGxpYnhtbCwgYnV0IGl0IHdvdWxkIGJlIGdyYWNlZnVsIHRvIHByb3ZpZGUgYmFjayBidWdmaXhlcyBhbmQKICAgICBpbXByb3ZlbWVudHMgYXMgcGF0Y2hlcyBmb3IgcG9zc2libGUgaW5jb3Jwb3JhdGlvbiBpbiB0aGUgbWFpbgogICAgIGRldmVsb3BtZW50IHRyZWU8L3A+Ci0gIDwvbGk+Cis8L2xpPgogPC9vbD4KLQotPGgyPjxhIG5hbWU9Ikluc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2gyPgorPGgzPjxhIG5hbWU9Ikluc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2gzPgogPG9sPgotICA8bGk+VW5sZXNzIHlvdSBhcmUgZm9yY2VkIHRvIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBsaW5rcyB3aXRoIGEgR25vbWUKKzxsaT5Vbmxlc3MgeW91IGFyZSBmb3JjZWQgdG8gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGxpbmtzIHdpdGggYSBHbm9tZQogICAgIGxpYnJhcnkgcmVxdWlyaW5nIGl0LCAgPHN0cm9uZz48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+RG8KICAgICBOb3QgVXNlIGxpYnhtbDE8L3NwYW4+PC9zdHJvbmc+LCB1c2UgbGlieG1sMjwvbGk+Ci0gIDxsaT48ZW0+V2hlcmUgY2FuIEkgZ2V0IGxpYnhtbDwvZW0+Cis8bGk+Cis8ZW0+V2hlcmUgY2FuIEkgZ2V0IGxpYnhtbDwvZW0+CiAgICAgID8KLSAgICA8cD5UaGUgb3JpZ2luYWwgZGlzdHJpYnV0aW9uIGNvbWVzIGZyb20gPGEKLSAgICBocmVmPSJmdHA6Ly9ycG1maW5kLm5ldC9wdWIvbGlieG1sLyI+cnBtZmluZC5uZXQ8L2E+IG9yIDxhCi0gICAgaHJlZj0iZnRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc3RhYmxlL3NvdXJjZXMvbGlieG1sLyI+Z25vbWUub3JnPC9hPjwvcD4KLSAgICA8cD5Nb3N0IGxpbnV4IGFuZCBCc2QgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGxpYnhtbCwgdGhpcyBpcyBwcm9iYWJseSB0aGUKKyAgICA8cD5UaGUgb3JpZ2luYWwgZGlzdHJpYnV0aW9uIGNvbWVzIGZyb20gPGEgaHJlZj0iZnRwOi8vcnBtZmluZC5uZXQvcHViL2xpYnhtbC8iPnJwbWZpbmQubmV0PC9hPiBvciA8YSBocmVmPSJmdHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zdGFibGUvc291cmNlcy9saWJ4bWwvIj5nbm9tZS5vcmc8L2E+Cis8L3A+Cis8cD5Nb3N0IGxpbnV4IGFuZCBCc2QgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGxpYnhtbCwgdGhpcyBpcyBwcm9iYWJseSB0aGUKICAgICBzYWZlciB3YXkgZm9yIGVuZC11c2VyczwvcD4KLSAgICA8cD5EYXZpZCBEb29saW4gcHJvdmlkZXMgcHJlY29tcGlsZWQgV2luZG93cyB2ZXJzaW9ucyBhdCA8YQotICAgIGhyZWY9Imh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi8gICAgICAgICAiPmh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi88L2E+PC9wPgotICA8L2xpPgotICA8bGk+PGVtPkkgc2VlIGxpYnhtbCBhbmQgbGlieG1sMiByZWxlYXNlcywgd2hpY2ggb25lIHNob3VsZCBJIGluc3RhbGwgPzwvZW0+Cis8cD5EYXZpZCBEb29saW4gcHJvdmlkZXMgcHJlY29tcGlsZWQgV2luZG93cyB2ZXJzaW9ucyBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmNlLmJlcmtlbGV5LmVkdS9+ZG9vbGluL2NvZGUvbGlieG1sd2luMzIvICAgICAgICAgIj5odHRwOi8vd3d3LmNlLmJlcmtlbGV5LmVkdS9+ZG9vbGluL2NvZGUvbGlieG1sd2luMzIvPC9hPgorPC9wPgorPC9saT4KKzxsaT4KKzxlbT5JIHNlZSBsaWJ4bWwgYW5kIGxpYnhtbDIgcmVsZWFzZXMsIHdoaWNoIG9uZSBzaG91bGQgSSBpbnN0YWxsID88L2VtPgogICAgIDx1bD4KLSAgICAgIDxsaT5JZiB5b3UgYXJlIG5vdCBjb25jZXJuZWQgYnkgYW55IGV4aXN0aW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKzxsaT5JZiB5b3UgYXJlIG5vdCBjb25jZXJuZWQgYnkgYW55IGV4aXN0aW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgICAgICAgd2l0aCBleGlzdGluZyBhcHBsaWNhdGlvbiwgaW5zdGFsbCBsaWJ4bWwyIG9ubHk8L2xpPgotICAgICAgPGxpPklmIHlvdSBhcmUgbm90IGRvaW5nIGRldmVsb3BtZW50LCB5b3UgY2FuIHNhZmVseSBpbnN0YWxsIGJvdGguCi0gICAgICAgIHVzdWFsbHkgdGhlIHBhY2thZ2VzIDxhCi0gICAgICAgIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sLmh0bWwiPmxpYnhtbDwvYT4gYW5kIDxhCi0gICAgICAgIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sMi5odG1sIj5saWJ4bWwyPC9hPiBhcmUKKzxsaT5JZiB5b3UgYXJlIG5vdCBkb2luZyBkZXZlbG9wbWVudCwgeW91IGNhbiBzYWZlbHkgaW5zdGFsbCBib3RoLgorICAgICAgICB1c3VhbGx5IHRoZSBwYWNrYWdlcyA8YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbC5odG1sIj5saWJ4bWw8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbDIuaHRtbCI+bGlieG1sMjwvYT4gYXJlCiAgICAgICAgIGNvbXBhdGlibGUgKHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBkZXZlbG9wbWVudCBwYWNrYWdlcyk8L2xpPgotICAgICAgPGxpPklmIHlvdSBhcmUgYSBkZXZlbG9wZXIgYW5kIHlvdXIgc3lzdGVtIHByb3ZpZGVzIHNlcGFyYXRlIHBhY2thZ2luZworPGxpPklmIHlvdSBhcmUgYSBkZXZlbG9wZXIgYW5kIHlvdXIgc3lzdGVtIHByb3ZpZGVzIHNlcGFyYXRlIHBhY2thZ2luZwogICAgICAgICBmb3Igc2hhcmVkIGxpYnJhcmllcyBhbmQgdGhlIGRldmVsb3BtZW50IGNvbXBvbmVudHMsIGl0IGlzIHBvc3NpYmxlCi0gICAgICAgIHRvIGluc3RhbGwgbGlieG1sIGFuZCBsaWJ4bWwyLCBhbmQgYWxzbyA8YQotICAgICAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbC1kZXZlbC5odG1sIj5saWJ4bWwtZGV2ZWw8L2E+Ci0gICAgICAgIGFuZCA8YQotICAgICAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbDItZGV2ZWwuaHRtbCI+bGlieG1sMi1kZXZlbDwvYT4KKyAgICAgICAgdG8gaW5zdGFsbCBsaWJ4bWwgYW5kIGxpYnhtbDIsIGFuZCBhbHNvIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sLWRldmVsLmh0bWwiPmxpYnhtbC1kZXZlbDwvYT4KKyAgICAgICAgYW5kIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sMi1kZXZlbC5odG1sIj5saWJ4bWwyLWRldmVsPC9hPgogICAgICAgICB0b28gZm9yIGxpYnhtbDIgJmd0Oz0gMi4zLjA8L2xpPgotICAgICAgPGxpPklmIHlvdSBhcmUgZGV2ZWxvcGluZyBhIG5ldyBhcHBsaWNhdGlvbiwgcGxlYXNlIGRldmVsb3AgYWdhaW5zdAorPGxpPklmIHlvdSBhcmUgZGV2ZWxvcGluZyBhIG5ldyBhcHBsaWNhdGlvbiwgcGxlYXNlIGRldmVsb3AgYWdhaW5zdAogICAgICAgICBsaWJ4bWwyKC1kZXZlbCk8L2xpPgotICAgIDwvdWw+Ci0gIDwvbGk+Ci0gIDxsaT48ZW0+SSBjYW4ndCBpbnN0YWxsIHRoZSBsaWJ4bWwgcGFja2FnZSBpdCBjb25mbGljdHMgd2l0aCBsaWJ4bWwwPC9lbT4KKzwvdWw+Cis8L2xpPgorPGxpPgorPGVtPkkgY2FuJ3QgaW5zdGFsbCB0aGUgbGlieG1sIHBhY2thZ2UgaXQgY29uZmxpY3RzIHdpdGggbGlieG1sMDwvZW0+CiAgICAgPHA+WW91IHByb2JhYmx5IGhhdmUgYW4gb2xkIGxpYnhtbDAgcGFja2FnZSB1c2VkIHRvIHByb3ZpZGUgdGhlIHNoYXJlZAogICAgIGxpYnJhcnkgZm9yIGxpYnhtbC5zby4wLCB5b3UgY2FuIHByb2JhYmx5IHNhZmVseSByZW1vdmUgaXQuIEFueXdheSB0aGUKLSAgICBsaWJ4bWwgcGFja2FnZXMgcHJvdmlkZWQgb24gPGEKLSAgICBocmVmPSJmdHA6Ly9ycG1maW5kLm5ldC9wdWIvbGlieG1sLyI+cnBtZmluZC5uZXQ8L2E+IHByb3ZpZGVzCisgICAgbGlieG1sIHBhY2thZ2VzIHByb3ZpZGVkIG9uIDxhIGhyZWY9ImZ0cDovL3JwbWZpbmQubmV0L3B1Yi9saWJ4bWwvIj5ycG1maW5kLm5ldDwvYT4gcHJvdmlkZXMKICAgICBsaWJ4bWwuc28uMDwvcD4KLSAgPC9saT4KLSAgPGxpPjxlbT5JIGNhbid0IGluc3RhbGwgdGhlIGxpYnhtbCgyKSBSUE0gcGFja2FnZSBkdWUgdG8gZmFpbGVkCis8L2xpPgorPGxpPgorPGVtPkkgY2FuJ3QgaW5zdGFsbCB0aGUgbGlieG1sKDIpIFJQTSBwYWNrYWdlIGR1ZSB0byBmYWlsZWQKICAgICBkZXBlbmRhbmNpZXM8L2VtPgogICAgIDxwPlRoZSBtb3N0IGdlbmVyaWMgc29sdXRpb24gaXMgdG8gcmVmZXRjaCB0aGUgbGF0ZXN0IHNyYy5ycG0gLCBhbmQKICAgICByZWJ1aWxkIGl0IGxvY2FsbHkgd2l0aDwvcD4KLSAgICA8cD48Y29kZT5ycG0gLS1yZWJ1aWxkIGxpYnhtbCgyKS14eHguc3JjLnJwbTwvY29kZT48L3A+Ci0gICAgPHA+aWYgZXZlcnl0aGluZyBnb2VzIHdlbGwgaXQgd2lsbCBnZW5lcmF0ZSB0d28gYmluYXJ5IHJwbSAob25lIHByb3ZpZGluZworPHA+PGNvZGU+cnBtIC0tcmVidWlsZCBsaWJ4bWwoMikteHh4LnNyYy5ycG08L2NvZGU+PC9wPgorPHA+aWYgZXZlcnl0aGluZyBnb2VzIHdlbGwgaXQgd2lsbCBnZW5lcmF0ZSB0d28gYmluYXJ5IHJwbSAob25lIHByb3ZpZGluZwogICAgIHRoZSBzaGFyZWQgbGlicyBhbmQgeG1sbGludCwgYW5kIHRoZSBvdGhlciBvbmUsIHRoZSAtZGV2ZWwgcGFja2FnZQogICAgIHByb3ZpZGluZyBpbmNsdWRlcywgc3RhdGljIGxpYnJhcmllcyBhbmQgc2NyaXB0cyBuZWVkZWQgdG8gYnVpbGQKICAgICBhcHBsaWNhdGlvbnMgd2l0aCBsaWJ4bWwoMikpIHRoYXQgeW91IGNhbiBpbnN0YWxsIGxvY2FsbHkuPC9wPgotICA8L2xpPgorPC9saT4KIDwvb2w+Ci0KLTxoMj48YSBuYW1lPSJDb21waWxhdGlvIj5Db21waWxhdGlvbjwvYT48L2gyPgorPGgzPjxhIG5hbWU9IkNvbXBpbGF0aW8iPkNvbXBpbGF0aW9uPC9hPjwvaDM+CiA8b2w+Ci0gIDxsaT48ZW0+V2hhdCBpcyB0aGUgcHJvY2VzcyB0byBjb21waWxlIGxpYnhtbCA/PC9lbT4KLSAgICA8cD5BcyBtb3N0IFVOSVggbGlicmFyaWVzIGxpYnhtbCBmb2xsb3dzIHRoZSAic3RhbmRhcmQiOjwvcD4KLSAgICA8cD48Y29kZT5ndW56aXAgLWMgeHh4LnRhci5neiB8IHRhciB4dmYgLTwvY29kZT48L3A+Ci0gICAgPHA+PGNvZGU+Y2QgbGlieG1sLXh4eHg8L2NvZGU+PC9wPgotICAgIDxwPjxjb2RlPi4vY29uZmlndXJlIC0taGVscDwvY29kZT48L3A+Ci0gICAgPHA+dG8gc2VlIHRoZSBvcHRpb25zLCB0aGVuIHRoZSBjb21waWxhdGlvbi9pbnN0YWxsYXRpb24gcHJvcGVyPC9wPgotICAgIDxwPjxjb2RlPi4vY29uZmlndXJlIFtwb3NzaWJsZSBvcHRpb25zXTwvY29kZT48L3A+Ci0gICAgPHA+PGNvZGU+bWFrZTwvY29kZT48L3A+Ci0gICAgPHA+PGNvZGU+bWFrZSBpbnN0YWxsPC9jb2RlPjwvcD4KLSAgICA8cD5BdCB0aGF0IHBvaW50IHlvdSBtYXkgaGF2ZSB0byByZXJ1biBsZGNvbmZpZyBvciBzaW1pbGFyIHV0aWxpdHkgdG8KKzxsaT4KKzxlbT5XaGF0IGlzIHRoZSBwcm9jZXNzIHRvIGNvbXBpbGUgbGlieG1sID88L2VtPgorICAgIDxwPkFzIG1vc3QgVU5JWCBsaWJyYXJpZXMgbGlieG1sIGZvbGxvd3MgdGhlICZxdW90O3N0YW5kYXJkJnF1b3Q7OjwvcD4KKzxwPjxjb2RlPmd1bnppcCAtYyB4eHgudGFyLmd6IHwgdGFyIHh2ZiAtPC9jb2RlPjwvcD4KKzxwPjxjb2RlPmNkIGxpYnhtbC14eHh4PC9jb2RlPjwvcD4KKzxwPjxjb2RlPi4vY29uZmlndXJlIC0taGVscDwvY29kZT48L3A+Cis8cD50byBzZWUgdGhlIG9wdGlvbnMsIHRoZW4gdGhlIGNvbXBpbGF0aW9uL2luc3RhbGxhdGlvbiBwcm9wZXI8L3A+Cis8cD48Y29kZT4uL2NvbmZpZ3VyZSBbcG9zc2libGUgb3B0aW9uc108L2NvZGU+PC9wPgorPHA+PGNvZGU+bWFrZTwvY29kZT48L3A+Cis8cD48Y29kZT5tYWtlIGluc3RhbGw8L2NvZGU+PC9wPgorPHA+QXQgdGhhdCBwb2ludCB5b3UgbWF5IGhhdmUgdG8gcmVydW4gbGRjb25maWcgb3Igc2ltaWxhciB1dGlsaXR5IHRvCiAgICAgdXBkYXRlIHlvdXIgbGlzdCBvZiBpbnN0YWxsZWQgc2hhcmVkIGxpYnMuPC9wPgotICA8L2xpPgotICA8bGk+PGVtPldoYXQgb3RoZXIgbGlicmFyaWVzIGFyZSBuZWVkZWQgdG8gY29tcGlsZS9pbnN0YWxsIGxpYnhtbCA/PC9lbT4KKzwvbGk+Cis8bGk+Cis8ZW0+V2hhdCBvdGhlciBsaWJyYXJpZXMgYXJlIG5lZWRlZCB0byBjb21waWxlL2luc3RhbGwgbGlieG1sID88L2VtPgogICAgIDxwPkxpYnhtbCBkb2VzIG5vdCByZXF1aXJlcyBhbnkgb3RoZXIgbGlicmFyeSwgdGhlIG5vcm1hbCBDIEFOU0kgQVBJCiAgICAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgKHBsZWFzZSByZXBvcnQgYW55IHZpb2xhdGlvbiB0byB0aGlzIHJ1bGUgeW91IG1heQogICAgIGZpbmQpLjwvcD4KLSAgICA8cD5Ib3dldmVyIGlmIGZvdW5kIGF0IGNvbmZpZ3VyYXRpb24gdGltZSBsaWJ4bWwgd2lsbCBkZXRlY3QgYW5kIHVzZSB0aGUKKzxwPkhvd2V2ZXIgaWYgZm91bmQgYXQgY29uZmlndXJhdGlvbiB0aW1lIGxpYnhtbCB3aWxsIGRldGVjdCBhbmQgdXNlIHRoZQogICAgIGZvbGxvd2luZyBsaWJzOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5pbmZvLXppcC5vcmcvcHViL2luZm96aXAvemxpYi8iPmxpYno8L2E+Cis8dWw+Cis8bGk+Cis8YSBocmVmPSJodHRwOi8vd3d3LmluZm8temlwLm9yZy9wdWIvaW5mb3ppcC96bGliLyI+bGliejwvYT4KICAgICAgICAgIDogYSBoaWdobHkgcG9ydGFibGUgYW5kIGF2YWlsYWJsZSB3aWRlbHkgY29tcHJlc3Npb24gbGlicmFyeTwvbGk+Ci0gICAgICA8bGk+aWNvbnY6IGEgcG93ZXJmdWwgY2hhcmFjdGVyIGVuY29kaW5nIGNvbnZlcnNpb24gbGlicmFyeS4gSXQncworPGxpPmljb252OiBhIHBvd2VyZnVsIGNoYXJhY3RlciBlbmNvZGluZyBjb252ZXJzaW9uIGxpYnJhcnkuIEl0J3MKICAgICAgICAgaW5jbHVkZWQgYnkgZGVmYXVsdCBvbiByZWNlbnQgZ2xpYmMgbGlicmFyaWVzLCBzbyBpdCBkb2Vzbid0IG5lZWQgdG8KLSAgICAgICAgYmUgaW5zdGFsbGVkIHNwZWNpZmljYWxseSBvbiBsaW51eC4gSXQgc2VlbXMgaXQncyBub3cgPGEKLSAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5vcGVubmMub3JnL29ubGluZXB1YnMvNzkwODc5OS94c2gvaWNvbnYuaHRtbCI+cGFydAotICAgICAgICBvZiB0aGUgb2ZmaWNpYWwgVU5JWDwvYT4gc3BlY2lmaWNhdGlvbi4gSGVyZSBpcyBvbmUgPGEKLSAgICAgICAgaHJlZj0iaHR0cDovL2NsaXNwLmNvbnMub3JnL35oYWlibGUvcGFja2FnZXMtbGliaWNvbnYuaHRtbCI+aW1wbGVtZW50YXRpb24KLSAgICAgICAgb2YgdGhlIGxpYnJhcnk8L2E+IHdoaWNoIHNvdXJjZSBjYW4gYmUgZm91bmQgPGEKLSAgICAgICAgaHJlZj0iZnRwOi8vZnRwLmlsb2cuZnIvcHViL1VzZXJzL2hhaWJsZS9nbnUvIj5oZXJlPC9hPi48L2xpPgotICAgIDwvdWw+Ci0gIDwvbGk+Ci0gIDxsaT48ZW0+bGlieG1sIGRvZXMgbm90IGNvbXBpbGUgd2l0aCBIUC1VWCdzIG9wdGlvbmFsIEFOU0ktQyBjb21waWxlcjwvZW0+Ci0gICAgPHA+dGhpcyBpcyBkdWUgdG8gbWFjcm8gbGltaXRhdGlvbnMuIFRyeSB0byBhZGQgIiAtV3AsLUgxNjgwMCAtQWUiIHRvIHRoZQorICAgICAgICBiZSBpbnN0YWxsZWQgc3BlY2lmaWNhbGx5IG9uIGxpbnV4LiBJdCBzZWVtcyBpdCdzIG5vdyA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5uYy5vcmcvb25saW5lcHVicy83OTA4Nzk5L3hzaC9pY29udi5odG1sIj5wYXJ0CisgICAgICAgIG9mIHRoZSBvZmZpY2lhbCBVTklYPC9hPiBzcGVjaWZpY2F0aW9uLiBIZXJlIGlzIG9uZSA8YSBocmVmPSJodHRwOi8vY2xpc3AuY29ucy5vcmcvfmhhaWJsZS9wYWNrYWdlcy1saWJpY29udi5odG1sIj5pbXBsZW1lbnRhdGlvbgorICAgICAgICBvZiB0aGUgbGlicmFyeTwvYT4gd2hpY2ggc291cmNlIGNhbiBiZSBmb3VuZCA8YSBocmVmPSJmdHA6Ly9mdHAuaWxvZy5mci9wdWIvVXNlcnMvaGFpYmxlL2dudS8iPmhlcmU8L2E+LjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT4KKzxlbT5saWJ4bWwgZG9lcyBub3QgY29tcGlsZSB3aXRoIEhQLVVYJ3Mgb3B0aW9uYWwgQU5TSS1DIGNvbXBpbGVyPC9lbT4KKyAgICA8cD50aGlzIGlzIGR1ZSB0byBtYWNybyBsaW1pdGF0aW9ucy4gVHJ5IHRvIGFkZCAmcXVvdDsgLVdwLC1IMTY4MDAgLUFlJnF1b3Q7IHRvIHRoZQogICAgIENGTEFHUzwvcD4KLSAgICA8cD55b3UgY2FuIGFsc28gaW5zdGFsbCBhbmQgdXNlIGdjYyBpbnN0ZWFkIG9yIHVzZSBhIHByZWNvbXBpbGVkIHZlcnNpb24KLSAgICBvZiBsaWJ4bWwsIGJvdGggYXZhaWxhYmxlIGZyb20gdGhlIDxhCi0gICAgaHJlZj0iaHR0cDovL2hwdXguY2FlLndpc2MuZWR1L2hwcGQvYXV0by9zdW1tYXJ5X2FsbC5odG1sIj5IUC1VWCBQb3J0aW5nCi0gICAgYW5kIEFyY2hpdmUgQ2VudHJlPC9hPjwvcD4KLSAgPC9saT4KLSAgPGxpPjxlbT5tYWtlIGNoZWNrIGZhaWxzIG9uIHNvbWUgcGxhdGZvcm1zPC9lbT4KKzxwPnlvdSBjYW4gYWxzbyBpbnN0YWxsIGFuZCB1c2UgZ2NjIGluc3RlYWQgb3IgdXNlIGEgcHJlY29tcGlsZWQgdmVyc2lvbgorICAgIG9mIGxpYnhtbCwgYm90aCBhdmFpbGFibGUgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cDovL2hwdXguY2FlLndpc2MuZWR1L2hwcGQvYXV0by9zdW1tYXJ5X2FsbC5odG1sIj5IUC1VWCBQb3J0aW5nCisgICAgYW5kIEFyY2hpdmUgQ2VudHJlPC9hPgorPC9wPgorPC9saT4KKzxsaT4KKzxlbT5tYWtlIGNoZWNrIGZhaWxzIG9uIHNvbWUgcGxhdGZvcm1zPC9lbT4KICAgICA8cD5Tb21ldGltZSB0aGUgcmVncmVzc2lvbiB0ZXN0cyByZXN1bHRzIGRvbid0IGNvbXBsZXRlbHkgbWF0Y2ggdGhlIHZhbHVlCiAgICAgcHJvZHVjZWQgYnkgdGhlIHBhcnNlciwgYW5kIHRoZSBtYWtlZmlsZSB1c2VzIGRpZmYgdG8gcHJpbnQgdGhlIGRlbHRhLiBPbgogICAgIHNvbWUgcGxhdGZvcm1zIHRoZSBkaWZmIHJldHVybiBicmVha3MgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MsIGlmIHRoZQogICAgIGRpZmYgaXMgc21hbGwgdGhpcyBpcyBwcm9iYWJseSBub3QgYSBzZXJpb3VzIHByb2JsZW08L3A+Ci0gIDwvbGk+Ci0gIDxsaT48ZW0+SSB1c2UgdGhlIENWUyB2ZXJzaW9uIGFuZCB0aGVyZSBpcyBubyBjb25maWd1cmUgc2NyaXB0PC9lbT4KKzwvbGk+Cis8bGk+Cis8ZW0+SSB1c2UgdGhlIENWUyB2ZXJzaW9uIGFuZCB0aGVyZSBpcyBubyBjb25maWd1cmUgc2NyaXB0PC9lbT4KICAgICA8cD5UaGUgY29uZmlndXJlIChhbmQgb3RoZXIgTWFrZWZpbGVzKSBhcmUgZ2VuZXJhdGVkLiBVc2UgdGhlIGF1dG9nZW4uc2gKICAgICBzY3JpcHQgdG8gcmVnZW5lcmF0ZSB0aGUgY29uZmlndXJlIGFuZCBNYWtlZmlsZXMsIGxpa2U6PC9wPgotICAgIDxwPjxjb2RlPi4vYXV0b2dlbi5zaCAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1zaGFyZWQ8L2NvZGU+PC9wPgotICA8L2xpPgotICA8bGk+PGVtPkkgaGF2ZSB0cm91YmxlcyB3aGVuIHJ1bm5pbmcgbWFrZSB0ZXN0cyB3aXRoIGdjYy0zLjA8L2VtPgorPHA+PGNvZGU+Li9hdXRvZ2VuLnNoIC0tcHJlZml4PS91c3IgLS1kaXNhYmxlLXNoYXJlZDwvY29kZT48L3A+Cis8L2xpPgorPGxpPgorPGVtPkkgaGF2ZSB0cm91YmxlcyB3aGVuIHJ1bm5pbmcgbWFrZSB0ZXN0cyB3aXRoIGdjYy0zLjA8L2VtPgogICAgIDxwPkl0IHNlZW1zIHRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgZ2NjLTMuMCBoYXMgYSBwcm9ibGVtIHdpdGggdGhlCiAgICAgb3B0aW1pemVyIHdoaWNoIG1pc2NvbXBpbGVzIHRoZSBVUkkgbW9kdWxlLiBQbGVhc2UgdXNlIGFub3RoZXIKICAgICBjb21waWxlcjwvcD4KLSAgPC9saT4KKzwvbGk+CiA8L29sPgotCi08aDI+PGEgbmFtZT0iRGV2ZWxvcGVyIj5EZXZlbG9wZXI8L2E+IGNvcm5lcjwvaDI+Cis8aDM+Cis8YSBuYW1lPSJEZXZlbG9wZXIiPkRldmVsb3BlcjwvYT4gY29ybmVyPC9oMz4KIDxvbD4KLSAgPGxpPjxlbT54bWxEb2NEdW1wKCkgZ2VuZXJhdGVzIG91dHB1dCBvbiBvbmUgbGluZTwvZW0+Cis8bGk+Cis8ZW0+eG1sRG9jRHVtcCgpIGdlbmVyYXRlcyBvdXRwdXQgb24gb25lIGxpbmU8L2VtPgogICAgIDxwPmxpYnhtbCB3aWxsIG5vdCA8c3Ryb25nPmludmVudDwvc3Ryb25nPiBzcGFjZXMgaW4gdGhlIGNvbnRlbnQgb2YgYQogICAgIGRvY3VtZW50IHNpbmNlIDxzdHJvbmc+YWxsIHNwYWNlcyBpbiB0aGUgY29udGVudCBvZiBhIGRvY3VtZW50IGFyZQogICAgIHNpZ25pZmljYW50PC9zdHJvbmc+LiBJZiB5b3UgYnVpbGQgYSB0cmVlIGZyb20gdGhlIEFQSSBhbmQgd2FudAogICAgIGluZGVudGF0aW9uOjwvcD4KLSAgICA8b2w+Ci0gICAgICA8bGk+dGhlIGNvcnJlY3Qgd2F5IGlzIHRvIGdlbmVyYXRlIHRob3NlIHlvdXJzZWxmIHRvbzwvbGk+Ci0gICAgICA8bGk+dGhlIGRhbmdlcm91cyB3YXkgaXMgdG8gYXNrIGxpYnhtbCB0byBhZGQgdGhvc2UgYmxhbmtzIHRvIHlvdXIKKzxvbD4KKzxsaT50aGUgY29ycmVjdCB3YXkgaXMgdG8gZ2VuZXJhdGUgdGhvc2UgeW91cnNlbGYgdG9vPC9saT4KKzxsaT50aGUgZGFuZ2Vyb3VzIHdheSBpcyB0byBhc2sgbGlieG1sIHRvIGFkZCB0aG9zZSBibGFua3MgdG8geW91cgogICAgICAgICBjb250ZW50IDxzdHJvbmc+bW9kaWZ5aW5nIHRoZSBjb250ZW50IG9mIHlvdXIgZG9jdW1lbnQgaW4gdGhlCiAgICAgICAgIHByb2Nlc3M8L3N0cm9uZz4uIFRoZSByZXN1bHQgbWF5IG5vdCBiZSB3aGF0IHlvdSBleHBlY3QuIFRoZXJlIGlzCiAgICAgICAgIDxzdHJvbmc+Tk88L3N0cm9uZz4gd2F5IHRvIGd1YXJhbnRlZSB0aGF0IHN1Y2ggYSBtb2RpZmljYXRpb24gd29uJ3QKLSAgICAgICAgaW1wYWN0IG90aGVyIHBhcnQgb2YgdGhlIGNvbnRlbnQgb2YgeW91ciBkb2N1bWVudC4gU2VlIDxhCi0gICAgICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxLRUVQQkxBTktTREVGQVVMVCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQKLSAgICAgICAgKCk8L2E+IGFuZCA8YQotICAgICAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTFNBVkVGT1JNQVRGSUxFIj54bWxTYXZlRm9ybWF0RmlsZQotICAgICAgICAoKTwvYT48L2xpPgotICAgIDwvb2w+Ci0gIDwvbGk+Ci0gIDxsaT5FeHRyYSBub2RlcyBpbiB0aGUgZG9jdW1lbnQ6CisgICAgICAgIGltcGFjdCBvdGhlciBwYXJ0IG9mIHRoZSBjb250ZW50IG9mIHlvdXIgZG9jdW1lbnQuIFNlZSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MS0VFUEJMQU5LU0RFRkFVTFQiPnhtbEtlZXBCbGFua3NEZWZhdWx0CisgICAgICAgICgpPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxTQVZFRk9STUFURklMRSI+eG1sU2F2ZUZvcm1hdEZpbGUKKyAgICAgICAgKCk8L2E+Cis8L2xpPgorPC9vbD4KKzwvbGk+Cis8bGk+RXh0cmEgbm9kZXMgaW4gdGhlIGRvY3VtZW50OgogICAgIDxwPjxlbT5Gb3IgYSBYTUwgZmlsZSBhcyBiZWxvdzo8L2VtPjwvcD4KLSAgICA8cHJlPiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OwotJmx0O1BMQU4geG1sbnM9Imh0dHA6Ly93d3cuYXJndXMuY2EvYXV0b3Rlc3QvMS4wLyImZ3Q7Ci0mbHQ7Tk9ERSBDb21tRmxhZz0iMCIvJmd0OwotJmx0O05PREUgQ29tbUZsYWc9IjEiLyZndDsKKzxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDs/Jmd0OworJmx0O1BMQU4geG1sbnM9JnF1b3Q7aHR0cDovL3d3dy5hcmd1cy5jYS9hdXRvdGVzdC8xLjAvJnF1b3Q7Jmd0OworJmx0O05PREUgQ29tbUZsYWc9JnF1b3Q7MCZxdW90Oy8mZ3Q7CismbHQ7Tk9ERSBDb21tRmxhZz0mcXVvdDsxJnF1b3Q7LyZndDsKICZsdDsvUExBTiZndDs8L3ByZT4KLSAgICA8cD48ZW0+YWZ0ZXIgcGFyc2luZyBpdCB3aXRoIHRoZSBmdW5jdGlvbgorPHA+PGVtPmFmdGVyIHBhcnNpbmcgaXQgd2l0aCB0aGUgZnVuY3Rpb24KICAgICBweG1sRG9jPXhtbFBhcnNlRmlsZSguLi4pOzwvZW0+PC9wPgotICAgIDxwPjxlbT5JIHdhbnQgdG8gdGhlIGdldCB0aGUgY29udGVudCBvZiB0aGUgZmlyc3Qgbm9kZSAobm9kZSB3aXRoIHRoZQotICAgIENvbW1GbGFnPSIwIik8L2VtPjwvcD4KLSAgICA8cD48ZW0+c28gSSBkaWQgaXQgYXMgZm9sbG93aW5nOzwvZW0+PC9wPgotICAgIDxwcmU+eG1sTm9kZVB0ciBwb2RlOworPHA+PGVtPkkgd2FudCB0byB0aGUgZ2V0IHRoZSBjb250ZW50IG9mIHRoZSBmaXJzdCBub2RlIChub2RlIHdpdGggdGhlCisgICAgQ29tbUZsYWc9JnF1b3Q7MCZxdW90Oyk8L2VtPjwvcD4KKzxwPjxlbT5zbyBJIGRpZCBpdCBhcyBmb2xsb3dpbmc7PC9lbT48L3A+Cis8cHJlPnhtbE5vZGVQdHIgcG9kZTsKIHBub2RlPXB4bWxEb2MtJmd0O2NoaWxkcmVuLSZndDtjaGlsZHJlbjs8L3ByZT4KLSAgICA8cD48ZW0+YnV0IGl0IGRvZXMgbm90IHdvcmsuIElmIEkgY2hhbmdlIGl0IHRvPC9lbT48L3A+Ci0gICAgPHByZT5wbm9kZT1weG1sRG9jLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW4tJmd0O25leHQ7PC9wcmU+Ci0gICAgPHA+PGVtPnRoZW4gaXQgd29ya3MuICBDYW4gc29tZW9uZSBleHBsYWluIGl0IHRvIG1lLjwvZW0+PC9wPgotICAgIDxwPjwvcD4KLSAgICA8cD5JbiBYTUwgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50IGFyZSBzaWduaWZpY2FudAorPHA+PGVtPmJ1dCBpdCBkb2VzIG5vdCB3b3JrLiBJZiBJIGNoYW5nZSBpdCB0bzwvZW0+PC9wPgorPHByZT5wbm9kZT1weG1sRG9jLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW4tJmd0O25leHQ7PC9wcmU+Cis8cD48ZW0+dGhlbiBpdCB3b3Jrcy4gIENhbiBzb21lb25lIGV4cGxhaW4gaXQgdG8gbWUuPC9lbT48L3A+Cis8cD4KKzxwPkluIFhNTCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29udGVudCBvZiB0aGUgZG9jdW1lbnQgYXJlIHNpZ25pZmljYW50CiAgICAgPHN0cm9uZz5pbmNsdWRpbmcgYmxhbmtzIGFuZCBmb3JtYXR0aW5nIGxpbmUgYnJlYWtzPC9zdHJvbmc+LjwvcD4KLSAgICA8cD5UaGUgZXh0cmEgbm9kZXMgeW91IGFyZSB3b25kZXJpbmcgYWJvdXQgYXJlIGp1c3QgdGhhdCwgdGV4dCBub2RlcyB3aXRoCis8cD5UaGUgZXh0cmEgbm9kZXMgeW91IGFyZSB3b25kZXJpbmcgYWJvdXQgYXJlIGp1c3QgdGhhdCwgdGV4dCBub2RlcyB3aXRoCiAgICAgdGhlIGZvcm1hdHRpbmcgc3BhY2VzIHdpY2ggYXJlIHBhcnQgb2YgdGhlIGRvY3VtZW50IGJ1dCB0aGF0IHBlb3BsZSB0ZW5kCi0gICAgdG8gZm9yZ2V0LiBUaGVyZSBpcyBhIGZ1bmN0aW9uIDxhCi0gICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxLZWVwQmxhbmtzRGVmYXVsdAorICAgIHRvIGZvcmdldC4gVGhlcmUgaXMgYSBmdW5jdGlvbiA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbEtlZXBCbGFua3NEZWZhdWx0CiAgICAgKCk8L2E+ICB0byByZW1vdmUgdGhvc2UgYXQgcGFyc2UgdGltZSwgYnV0IHRoYXQncyBhbiBoZXVyaXN0aWMsIGFuZCBpdHMKICAgICB1c2Ugc2hvdWxkIGJlIGxpbWl0ZWQgdG8gY2FzZSB3aGVyZSB5b3UgYXJlIHN1cmUgdGhlcmUgaXMgbm8KICAgICBtaXhlZC1jb250ZW50IGluIHRoZSBkb2N1bWVudC48L3A+Ci0gIDwvbGk+Ci0gIDxsaT48ZW0+SSBnZXQgY29tcGlsYXRpb24gZXJyb3JzIG9mIGV4aXN0aW5nIGNvZGUgbGlrZSB3aGVuIGFjY2Vzc2luZworPC9saT4KKzxsaT4KKzxlbT5JIGdldCBjb21waWxhdGlvbiBlcnJvcnMgb2YgZXhpc3RpbmcgY29kZSBsaWtlIHdoZW4gYWNjZXNzaW5nCiAgICAgPHN0cm9uZz5yb290PC9zdHJvbmc+IG9yIDxzdHJvbmc+Y2hpbGRzIGZpZWxkczwvc3Ryb25nPiBvZiBub2RlczwvZW0+CiAgICAgPHA+WW91IGFyZSBjb21waWxpbmcgY29kZSBkZXZlbG9wZWQgZm9yIGxpYnhtbCB2ZXJzaW9uIDEgYW5kIHVzaW5nIGEKICAgICBsaWJ4bWwyIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBFaXRoZXIgc3dpdGNoIGJhY2sgdG8gbGlieG1sIHYxIGRldmVsIG9yCi0gICAgZXZlbiBiZXR0ZXIgZml4IHRoZSBjb2RlIHRvIGNvbXBpbGUgd2l0aCBsaWJ4bWwyIChvciBib3RoKSBieSA8YQotICAgIGhyZWY9InVwZ3JhZGUuaHRtbCI+Zm9sbG93aW5nIHRoZSBpbnN0cnVjdGlvbnM8L2E+LjwvcD4KLSAgPC9saT4KLSAgPGxpPjxlbT5JIGdldCBjb21waWxhdGlvbiBlcnJvcnMgYWJvdXQgbm9uIGV4aXN0aW5nCisgICAgZXZlbiBiZXR0ZXIgZml4IHRoZSBjb2RlIHRvIGNvbXBpbGUgd2l0aCBsaWJ4bWwyIChvciBib3RoKSBieSA8YSBocmVmPSJ1cGdyYWRlLmh0bWwiPmZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zPC9hPi48L3A+Cis8L2xpPgorPGxpPgorPGVtPkkgZ2V0IGNvbXBpbGF0aW9uIGVycm9ycyBhYm91dCBub24gZXhpc3RpbmcKICAgICA8c3Ryb25nPnhtbFJvb3ROb2RlPC9zdHJvbmc+IG9yIDxzdHJvbmc+eG1sQ2hpbGRyZW5Ob2RlPC9zdHJvbmc+CiAgICAgZmllbGRzPC9lbT4KLSAgICA8cD5UaGUgc291cmNlIGNvZGUgeW91IGFyZSB1c2luZyBoYXMgYmVlbiA8YQotICAgIGhyZWY9InVwZ3JhZGUuaHRtbCI+dXBncmFkZWQ8L2E+IHRvIGJlIGFibGUgdG8gY29tcGlsZSB3aXRoIGJvdGggbGlieG1sCisgICAgPHA+VGhlIHNvdXJjZSBjb2RlIHlvdSBhcmUgdXNpbmcgaGFzIGJlZW4gPGEgaHJlZj0idXBncmFkZS5odG1sIj51cGdyYWRlZDwvYT4gdG8gYmUgYWJsZSB0byBjb21waWxlIHdpdGggYm90aCBsaWJ4bWwKICAgICBhbmQgbGlieG1sMiwgYnV0IHlvdSBuZWVkIHRvIGluc3RhbGwgYSBtb3JlIHJlY2VudCB2ZXJzaW9uOgogICAgIGxpYnhtbCgtZGV2ZWwpICZndDs9IDEuOC44IG9yIGxpYnhtbDIoLWRldmVsKSAmZ3Q7PSAyLjEuMDwvcD4KLSAgPC9saT4KLSAgPGxpPjxlbT5YUGF0aCBpbXBsZW1lbnRhdGlvbiBsb29rcyBzZXJpb3VzbHkgYnJva2VuPC9lbT4KKzwvbGk+Cis8bGk+Cis8ZW0+WFBhdGggaW1wbGVtZW50YXRpb24gbG9va3Mgc2VyaW91c2x5IGJyb2tlbjwvZW0+CiAgICAgPHA+WFBhdGggaW1wbGVtZW50YXRpb24gcHJpb3IgdG8gMi4zLjAgd2FzIHJlYWxseSBpbmNvbXBsZXRlLCB1cGdyYWRlIHRvCiAgICAgYSByZWNlbnQgdmVyc2lvbiwgdGhlIGltcGxlbWVudGF0aW9uIGFuZCBkZWJ1ZyBvZiBsaWJ4c2x0IGdlbmVyYXRlZCBmaXhlcwogICAgIGZvciBtb3N0IG9idmlvdXMgcHJvYmxlbXMuPC9wPgotICA8L2xpPgotICA8bGk+PGVtPlRoZSBleGFtcGxlIHByb3ZpZGVkIGluIHRoZSB3ZWIgcGFnZSBkb2VzIG5vdCBjb21waWxlPC9lbT4KKzwvbGk+Cis8bGk+Cis8ZW0+VGhlIGV4YW1wbGUgcHJvdmlkZWQgaW4gdGhlIHdlYiBwYWdlIGRvZXMgbm90IGNvbXBpbGU8L2VtPgogICAgIDxwPkl0J3MgaGFyZCB0byBtYWludGFpbiB0aGUgZG9jdW1lbnRhdGlvbiBpbiBzeW5jIHdpdGggdGhlIGNvZGUKICAgICAmbHQ7Z3Jpbi8mZ3Q7IC4uLjwvcD4KLSAgICA8cD5DaGVjayB0aGUgcHJldmlvdXMgcG9pbnRzIDEvIGFuZCAyLyByYWlzZWQgYmVmb3JlLCBhbmQgc2VuZAorPHA+Q2hlY2sgdGhlIHByZXZpb3VzIHBvaW50cyAxLyBhbmQgMi8gcmFpc2VkIGJlZm9yZSwgYW5kIHNlbmQKICAgICBwYXRjaGVzLjwvcD4KLSAgPC9saT4KLSAgPGxpPjxlbT5XaGVyZSBjYW4gSSBnZXQgbW9yZSBleGFtcGxlcyBhbmQgaW5mb3JtYXRpb25zIHRoYW4gaW4gdGhlIHdlYgorPC9saT4KKzxsaT4KKzxlbT5XaGVyZSBjYW4gSSBnZXQgbW9yZSBleGFtcGxlcyBhbmQgaW5mb3JtYXRpb25zIHRoYW4gaW4gdGhlIHdlYgogICAgIHBhZ2U8L2VtPgogICAgIDxwPklkZWFsbHkgYSBsaWJ4bWwgYm9vayB3b3VsZCBiZSBuaWNlLiBJIGhhdmUgbm8gc3VjaCBwbGFuIC4uLiBCdXQgeW91CiAgICAgY2FuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+Y2hlY2sgbW9yZSBkZWVwbHkgdGhlIDxhIGhyZWY9Imh0bWwvbGlieG1sLWxpYi5odG1sIj5leGlzdGluZwotICAgICAgICBnZW5lcmF0ZWQgZG9jPC9hPjwvbGk+Ci0gICAgICA8bGk+bG9va3MgZm9yIGV4YW1wbGVzIG9mIHVzZSBmb3IgbGlieG1sIGZ1bmN0aW9uIHVzaW5nIHRoZSBHbm9tZSBjb2RlCis8dWw+Cis8bGk+Y2hlY2sgbW9yZSBkZWVwbHkgdGhlIDxhIGhyZWY9Imh0bWwvbGlieG1sLWxpYi5odG1sIj5leGlzdGluZworICAgICAgICBnZW5lcmF0ZWQgZG9jPC9hPgorPC9saT4KKzxsaT5sb29rcyBmb3IgZXhhbXBsZXMgb2YgdXNlIGZvciBsaWJ4bWwgZnVuY3Rpb24gdXNpbmcgdGhlIEdub21lIGNvZGUKICAgICAgICAgZm9yIGV4YW1wbGUgdGhlIGZvbGxvd2luZyB3aWxsIHF1ZXJ5IHRoZSBmdWxsIEdub21lIENWcyBiYXNlIGZvciB0aGUKICAgICAgICAgdXNlIG9mIHRoZSA8c3Ryb25nPnhtbEFkZENoaWxkKCk8L3N0cm9uZz4gZnVuY3Rpb246Ci0gICAgICAgIDxwPjxhCi0gICAgICAgIGhyZWY9Imh0dHA6Ly9jdnMuZ25vbWUub3JnL2x4ci9zZWFyY2g/c3RyaW5nPXhtbEFkZENoaWxkIj5odHRwOi8vY3ZzLmdub21lLm9yZy9seHIvc2VhcmNoP3N0cmluZz14bWxBZGRDaGlsZDwvYT48L3A+Ci0gICAgICAgIDxwPlRoaXMgbWF5IGJlIHNsb3csIGEgbGFyZ2UgaGFyZHdhcmUgZG9uYXRpb24gdG8gdGhlIGdub21lIHByb2plY3QKKyAgICAgICAgPHA+PGEgaHJlZj0iaHR0cDovL2N2cy5nbm9tZS5vcmcvbHhyL3NlYXJjaD9zdHJpbmc9eG1sQWRkQ2hpbGQiPmh0dHA6Ly9jdnMuZ25vbWUub3JnL2x4ci9zZWFyY2g/c3RyaW5nPXhtbEFkZENoaWxkPC9hPjwvcD4KKzxwPlRoaXMgbWF5IGJlIHNsb3csIGEgbGFyZ2UgaGFyZHdhcmUgZG9uYXRpb24gdG8gdGhlIGdub21lIHByb2plY3QKICAgICAgICAgY291bGQgY3VyZSB0aGlzIDotKTwvcD4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+PGEKLSAgICAgICAgaHJlZj0iaHR0cDovL2N2cy5nbm9tZS5vcmcvYm9uc2FpL3J2aWV3LmNnaT9jdnNyb290PS9jdnMvZ25vbWUmYW1wO2Rpcj1nbm9tZS14bWwiPkJyb3dzZQorPC9saT4KKzxsaT4KKzxhIGhyZWY9Imh0dHA6Ly9jdnMuZ25vbWUub3JnL2JvbnNhaS9ydmlldy5jZ2k/Y3Zzcm9vdD0vY3ZzL2dub21lJmFtcDtkaXI9Z25vbWUteG1sIj5Ccm93c2UKICAgICAgICAgdGhlIGxpYnhtbCBzb3VyY2U8L2E+CiAgICAgICAgICAsIEkgdHJ5IHRvIHdyaXRlIGNvZGUgYXMgY2xlYW4gYW5kIGRvY3VtZW50ZWQgYXMgcG9zc2libGUsIHNvCiAgICAgICAgIGxvb2tpbmcgYXQgaXQgbWF5IGJlIGhlbHBmdWw8L2xpPgotICAgIDwvdWw+Ci0gIDwvbGk+Ci0gIDxsaT5XaGF0IGFib3V0IEMrKyA/Cis8L3VsPgorPC9saT4KKzxsaT5XaGF0IGFib3V0IEMrKyA/CiAgICAgPHA+bGlieG1sIGlzIHdyaXR0ZW4gaW4gcHVyZSBDIGluIG9yZGVyIHRvIGFsbG93IGVhc3kgcmV1c2Ugb24gYSBudW1iZXIKICAgICBvZiBwbGF0Zm9ybXMsIGluY2x1ZGluZyBlbWJlZGRlZCBzeXN0ZW1zLiBJIGRvbid0IGludGVuZCB0byBjb252ZXJ0IHRvCiAgICAgQysrLjwvcD4KLSAgICA8cD5UaGVyZSBpcyBob3dldmVyIGEgQysrIHdyYXBwZXIgcHJvdmlkZWQgYnkgQXJpIEpvaG5zb24KKzxwPlRoZXJlIGlzIGhvd2V2ZXIgYSBDKysgd3JhcHBlciBwcm92aWRlZCBieSBBcmkgSm9obnNvbgogICAgICZsdDthcmlAYnRpZ2F0ZS5jb20mZ3Q7IHdoaWNoIG1heSBmdWxsZmlsbCB5b3VyIG5lZWRzOjwvcD4KLSAgICA8cD5XZWJzaXRlOiA8YQotICAgIGhyZWY9Imh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy8iPmh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy88L2E+PC9wPgotICAgIDxwPkRvd25sb2FkOiA8YQotICAgIGhyZWY9Imh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy9saWJ4bWwrKy50YXIuZ3oiPmh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy9saWJ4bWwrKy50YXIuZ3o8L2E+PC9wPgotICA8L2xpPgotICA8bGk+SG93IHRvIHZhbGlkYXRlIGEgZG9jdW1lbnQgYSBwb3N0ZXJpb3JpID8KKzxwPldlYnNpdGU6IDxhIGhyZWY9Imh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy8iPmh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy88L2E+Cis8L3A+Cis8cD5Eb3dubG9hZDogPGEgaHJlZj0iaHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrL2xpYnhtbCsrLnRhci5neiI+aHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrL2xpYnhtbCsrLnRhci5nejwvYT4KKzwvcD4KKzwvbGk+Cis8bGk+SG93IHRvIHZhbGlkYXRlIGEgZG9jdW1lbnQgYSBwb3N0ZXJpb3JpID8KICAgICA8cD5JdCBpcyBwb3NzaWJsZSB0byB2YWxpZGF0ZSBkb2N1bWVudHMgd2hpY2ggaGFkIG5vdCBiZWVuIHZhbGlkYXRlZCBhdAogICAgIGluaXRpYWwgcGFyc2luZyB0aW1lIG9yIGRvY3VtZW50cyB3aG8gaGF2ZSBiZWVuIGJ1aWx0IGZyb20gc2NyYXRjaCB1c2luZwotICAgIHRoZSBBUEkuIFVzZSB0aGUgPGEKLSAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxWQUxJREFURURURCI+eG1sVmFsaWRhdGVEdGQoKTwvYT4KKyAgICB0aGUgQVBJLiBVc2UgdGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC12YWxpZC5odG1sI1hNTFZBTElEQVRFRFREIj54bWxWYWxpZGF0ZUR0ZCgpPC9hPgogICAgIGZ1bmN0aW9uLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNpbXBseSBhZGQgYSBEdGQgdG8gYW4gZXhpc3RpbmcKICAgICBkb2N1bWVudDo8L3A+Ci0gICAgPHByZT54bWxEb2NQdHIgZG9jOyAvKiB5b3VyIGV4aXN0aW5nIGRvY3VtZW50ICovCis8cHJlPnhtbERvY1B0ciBkb2M7IC8qIHlvdXIgZXhpc3RpbmcgZG9jdW1lbnQgKi8KICAgICAgICAgeG1sRHRkUHRyIGR0ZCA9IHhtbFBhcnNlRFREKE5VTEwsIGZpbGVuYW1lX29mX2R0ZCk7IC8qIHBhcnNlIHRoZSBEVEQgKi8KLSAgICAgICAgZHRkLSZndDtuYW1lID0geG1sU3RyRHVwKCh4bWxDaGFyKikicm9vdF9uYW1lIik7IC8qIHVzZSB0aGUgZ2l2ZW4gcm9vdCAqLworICAgICAgICBkdGQtJmd0O25hbWUgPSB4bWxTdHJEdXAoKHhtbENoYXIqKSZxdW90O3Jvb3RfbmFtZSZxdW90Oyk7IC8qIHVzZSB0aGUgZ2l2ZW4gcm9vdCAqLwogCiAgICAgICAgIGRvYy0mZ3Q7aW50U3Vic2V0ID0gZHRkOwogICAgICAgICBpZiAoZG9jLSZndDtjaGlsZHJlbiA9PSBOVUxMKSB4bWxBZGRDaGlsZCgoeG1sTm9kZVB0cilkb2MsICh4bWxOb2RlUHRyKWR0ZCk7CiAgICAgICAgIGVsc2UgeG1sQWRkUHJldlNpYmxpbmcoZG9jLSZndDtjaGlsZHJlbiwgKHhtbE5vZGVQdHIpZHRkKTsKICAgICAgICAgICA8L3ByZT4KLSAgPC9saT4KLSAgPGxpPmV0YyAuLi48L2xpPgorPC9saT4KKzxsaT5ldGMgLi4uPC9saT4KIDwvb2w+Ci0KKzxwPgogPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci0KLTxwPiRJZCQ8L3A+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL01ha2VmaWxlLmFtIGIvZG9jL01ha2VmaWxlLmFtCmluZGV4IDc5OWEyYTcuLjY1MGQwZTAgMTAwNjQ0Ci0tLSBhL2RvYy9NYWtlZmlsZS5hbQorKysgYi9kb2MvTWFrZWZpbGUuYW0KQEAgLTE1LDcgKzE1LDcgQEAKIFBBR0VTPSBhcmNoaXRlY3R1cmUuaHRtbCBidWdzLmh0bWwgY29udHJpYnMuaHRtbCBkb2NzLmh0bWwgRE9NLmh0bWwgXAogICAgIGRvd25sb2Fkcy5odG1sIGVudGl0aWVzLmh0bWwgZXhhbXBsZS5odG1sIGhlbHAuaHRtbCBpbmRleC5odG1sIFwKICAgICBpbnRlcmZhY2UuaHRtbCBpbnRyby5odG1sIGxpYnJhcnkuaHRtbCBuYW1lc3BhY2VzLmh0bWwgbmV3cy5odG1sIFwKLSAgICB0cmVlLmh0bWwgdmFsaWQuaHRtbCBYTUwuaHRtbCBYU0xULmh0bWwKKyAgICB0cmVlLmh0bWwgeG1sZHRkLmh0bWwgWE1MLmh0bWwgWFNMVC5odG1sCiAKIG1hbl9NQU5TID0geG1sY2F0YWxvZy4xCiAKZGlmZiAtLWdpdCBhL2RvYy9YTUwuaHRtbCBiL2RvYy9YTUwuaHRtbAppbmRleCA0ZDQ4NmQ1Li4yYzI1NmJkIDEwMDY0NAotLS0gYS9kb2MvWE1MLmh0bWwKKysrIGIvZG9jL1hNTC5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5YTUw8L3RpdGxlPgogPC9oZWFkPgpAQCAtMjcsOCArMjgsOCBAQAogPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+CiA8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgogPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KLTxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KQEAgLTM2LDIxICszNywyMSBAQAogPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KLTxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBYTUwgbGlicmFyeSBpbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ2YWxpZC5odG1sIj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2dzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5EVEQgc3VwcG9ydDwvYT48L2xpPgogPGxpPgogPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgogPC9saT4KZGlmZiAtLWdpdCBhL2RvYy9YU0xULmh0bWwgYi9kb2MvWFNMVC5odG1sCmluZGV4IGFiOWJkNTcuLjU1Nzg4MzggMTAwNjQ0Ci0tLSBhL2RvYy9YU0xULmh0bWwKKysrIGIvZG9jL1hTTFQuaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+WFNMVDwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2FyY2hpdGVjdHVyZS5odG1sIGIvZG9jL2FyY2hpdGVjdHVyZS5odG1sCmluZGV4IDdmZmVjYzUuLjcwN2EwMDggMTAwNjQ0Ci0tLSBhL2RvYy9hcmNoaXRlY3R1cmUuaHRtbAorKysgYi9kb2MvYXJjaGl0ZWN0dXJlLmh0bWwKQEAgLTgsOCArOCw5IEBACiBIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CiAtLT48L3N0eWxlPgotPHRpdGxlPkFuIG92ZXJ2aWV3IG9mIGxpYnhtbCBhcmNoaXRlY3R1cmU8L3RpdGxlPgorPHRpdGxlPmxpYnhtbCBhcmNoaXRlY3R1cmU8L3RpdGxlPgogPC9oZWFkPgogPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiPgogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPgpAQCAtMTgsNyArMTksNyBAQAogPC90ZD4KIDx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj4KIDxoMT5UaGUgWE1MIEMgbGlicmFyeSBmb3IgR25vbWU8L2gxPgotPGgyPkFuIG92ZXJ2aWV3IG9mIGxpYnhtbCBhcmNoaXRlY3R1cmU8L2gyPgorPGgyPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2gyPgogPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD4KIDwvdHI+PC90YWJsZT4KIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgpAQCAtMjcsOCArMjgsOCBAQAogPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+CiA8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgogPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KLTxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KQEAgLTM2LDIxICszNywyMSBAQAogPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KLTxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBYTUwgbGlicmFyeSBpbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ2YWxpZC5odG1sIj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2dzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5EVEQgc3VwcG9ydDwvYT48L2xpPgogPGxpPgogPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgogPC9saT4KZGlmZiAtLWdpdCBhL2RvYy9idWdzLmh0bWwgYi9kb2MvYnVncy5odG1sCmluZGV4IDYzMTMwMjEuLmM0NzBiMTUgMTAwNjQ0Ci0tLSBhL2RvYy9idWdzLmh0bWwKKysrIGIvZG9jL2J1Z3MuaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2NhdGFsb2cuaHRtbCBiL2RvYy9jYXRhbG9nLmh0bWwKaW5kZXggMTRjNDljMi4uYWY3ZWE2OSAxMDA2NDQKLS0tIGEvZG9jL2NhdGFsb2cuaHRtbAorKysgYi9kb2MvY2F0YWxvZy5odG1sCkBAIC0xLDEzNyArMSwxNzQgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+CiA8aHRtbD4KIDxoZWFkPgotICA8dGl0bGU+TGlieG1sIENhdGFsb2cgc3VwcG9ydDwvdGl0bGU+Ci0gIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iYW1heWEgVjUuMCI+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KKzxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tCitURCB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogNXB0OyBtYXJnaW4tbGVmdDogMHB0OyBtYXJnaW4tcmlnaHQ6IDBwdH0KK0gxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKy0tPjwvc3R5bGU+Cis8dGl0bGU+Q2F0YWxvZyBzdXBwb3J0PC90aXRsZT4KIDwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08aDEgYWxpZ249ImNlbnRlciI+TGlieG1sIENhdGFsb2cgc3VwcG9ydDwvaDE+Ci0KLTxwPkxvY2F0aW9uOiA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2NhdGFsb2cuaHRtbCI+aHR0cDovL3htbHNvZnQub3JnL2NhdGFsb2cuaHRtbDwvYT48L3A+Ci0KLTxwPkxpYnhtbCBob21lIHBhZ2U6IDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPmh0dHA6Ly94bWxzb2Z0Lm9yZy88L2E+PC9wPgotCi08cD5NYWlsaW5nLWxpc3QgYXJjaGl2ZTogIDxhCi1ocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+aHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC88L2E+PC9wPgotCi08cD5WZXJzaW9uOiAkUmV2aXNpb246IDEuNCAkPC9wPgotCis8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDAwMDAwIiB2bGluaz0iIzAwMDAwMCI+Cis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+Cis8dGQgd2lkdGg9IjE4MCI+Cis8YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJzbWFsbGZvb3Rvbmx5LmdpZiIgYWx0PSJHbm9tZSBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyI+PC9hPgorPC90ZD4KKzx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj4KKzxoMT5UaGUgWE1MIEMgbGlicmFyeSBmb3IgR25vbWU8L2gxPgorPGgyPkNhdGFsb2cgc3VwcG9ydDwvaDI+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPgorPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+Cis8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKzx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb3dubG9hZHMuaHRtbCI+RG93bmxvYWRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KKzxsaT4KKzxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT4KKzwvbGk+Cis8L3VsPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKzx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+Cis8bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy51bmliby5pdC9+Y2FzYXJpbmkvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5maC1mcmFua2Z1cnQuZGUvfmlnb3IvcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9wYWdlcy5laWRvc25ldC5jby51ay9+Z2FyeXBlbi9saWJ4bWwvIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+Cis8L3VsPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KIDxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgogPG9sPgotICA8bGk+PGEgaHJlZj0iI0dlbmVyYWwiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbjwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI1NpbXBsZSI+VXNpbmcgY2F0YWxvZ3M8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjcmVmZXJlbmNlIj5Ib3cgdG8gdHVuZSAgY2F0YWxvZyB1c2FnZTwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI3ZhbGlkYXRlIj5Ib3cgdG8gZGVidWcgY2F0YWxvZyBwcm9jZXNzaW5nPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbiBjYXRhbG9nczwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI2ltcGxlbWVudG8iPlRoZSBpbXBsZW1lbnRvciBjb3JuZXIgcXVpY2sgcmV2aWV3IG9mIHRoZQorPGxpPjxhIGhyZWY9IkdlbmVyYWwyIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI1NpbXBsZSI+VXNpbmcgY2F0YWxvZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjU29tZSI+U29tZSBleGFtcGxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2UiPkhvdyB0byB0dW5lICBjYXRhbG9nIHVzYWdlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3ZhbGlkYXRlIj5Ib3cgdG8gZGVidWcgY2F0YWxvZyBwcm9jZXNzaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI0RlY2xhcmluZyI+SG93IHRvIGNyZWF0ZSBhbmQgbWFpbnRhaW4gY2F0YWxvZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjaW1wbGVtZW50byI+VGhlIGltcGxlbWVudG9yIGNvcm5lciBxdWljayByZXZpZXcgb2YgdGhlCiAgIEFQSTwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI090aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjT3RoZXIiPk90aGVyIHJlc291cmNlczwvYT48L2xpPgogPC9vbD4KLQotPGgyPjxhIG5hbWU9IkdlbmVyYWwiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMj4KLQotPHA+V2hhdCBpcyBhIGNhdGFsb2c/IEJhc2ljYWxseSBpdCdzIGEgbG9va3VwIG1lY2hhbmlzbSB1c2VkIHdoZW4KLWFuIGVudGl0eSAoYSBmaWxlIG9yIGEgcmVtb3RlIHJlc291cmNlKSByZWZlcmVuY2VzIGFub3RoZXIgZW50aXR5LiBUaGUgY2F0YWxvZwotbG9va3VwIGlzIGluc2VydGVkIGJldHdlZW4gdGhlIG1vbWVudCB0aGUgcmVmZXJlbmNlIGlzIHJlY29nbml6ZWQgYnkgdGhlCi1zb2Z0d2FyZSAoWE1MIHBhcnNlciwgc3R5bGVzaGVldCBwcm9jZXNzaW5nLCBvciBldmVuIGltYWdlcyByZWZlcmVuY2VkIGZvcgotaW5jbHVzaW9uIGluIGEgcmVuZGVyaW5nKSBhbmQgdGhlIHRpbWUgd2hlcmUgbG9hZGluZyB0aGF0IHJlc291cmNlIGlzCi1hY3R1YWxseSBzdGFydGVkLjwvcD4KLQorPGgzPjxhIG5hbWU9IkdlbmVyYWwyIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+Cis8cD5XaGF0IGlzIGEgY2F0YWxvZz8gQmFzaWNhbGx5IGl0J3MgYSBsb29rdXAgbWVjaGFuaXNtIHVzZWQgd2hlbiBhbiBlbnRpdHkKKyhhIGZpbGUgb3IgYSByZW1vdGUgcmVzb3VyY2UpIHJlZmVyZW5jZXMgYW5vdGhlciBlbnRpdHkuIFRoZSBjYXRhbG9nIGxvb2t1cAoraXMgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgbW9tZW50IHRoZSByZWZlcmVuY2UgaXMgcmVjb2duaXplZCBieSB0aGUgc29mdHdhcmUKKyhYTUwgcGFyc2VyLCBzdHlsZXNoZWV0IHByb2Nlc3NpbmcsIG9yIGV2ZW4gaW1hZ2VzIHJlZmVyZW5jZWQgZm9yIGluY2x1c2lvbgoraW4gYSByZW5kZXJpbmcpIGFuZCB0aGUgdGltZSB3aGVyZSBsb2FkaW5nIHRoYXQgcmVzb3VyY2UgaXMgYWN0dWFsbHkKK3N0YXJ0ZWQuPC9wPgogPHA+SXQgaXMgYmFzaWNhbGx5IHVzZWQgZm9yIDMgdGhpbmdzOjwvcD4KIDx1bD4KLSAgPGxpPm1hcHBpbmcgZnJvbSAibG9naWNhbCIgbmFtZXMsIHRoZSBwdWJsaWMgaWRlbnRpZmllcnMgYW5kIGEgbW9yZQorPGxpPm1hcHBpbmcgZnJvbSAmcXVvdDtsb2dpY2FsJnF1b3Q7IG5hbWVzLCB0aGUgcHVibGljIGlkZW50aWZpZXJzIGFuZCBhIG1vcmUKICAgICBjb25jcmV0ZSBuYW1lIHVzYWJsZSBmb3IgZG93bmxvYWQgKGFuZCBVUkkpLiBGb3IgZXhhbXBsZSBpdCBjYW4gYXNzb2NpYXRlCiAgICAgdGhlIGxvZ2ljYWwgbmFtZQotICAgIDxwPiItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iPC9wPgotICAgIDxwPm9mIHRoZSBEb2NCb29rIDQuMS4yIFhNTCBEVEQgd2l0aCB0aGUgYWN0dWFsIFVSTCB3aGVyZSBpdCBjYW4gYmUKKyAgICA8cD4mcXVvdDstLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4mcXVvdDs8L3A+Cis8cD5vZiB0aGUgRG9jQm9vayA0LjEuMiBYTUwgRFREIHdpdGggdGhlIGFjdHVhbCBVUkwgd2hlcmUgaXQgY2FuIGJlCiAgICAgZG93bmxvYWRlZDwvcD4KLSAgICA8cD5odHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZDwvcD4KLSAgPC9saT4KLSAgPGxpPnJlbWFwcGluZyBmcm9tIGEgZ2l2ZW4gVVJMIHRvIGFub3RoZXIgb25lLCBsaWtlIGFuIEhUVFAgaW5kaXJlY3Rpb24KKzxwPmh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkPC9wPgorPC9saT4KKzxsaT5yZW1hcHBpbmcgZnJvbSBhIGdpdmVuIFVSTCB0byBhbm90aGVyIG9uZSwgbGlrZSBhbiBIVFRQIGluZGlyZWN0aW9uCiAgICAgc2F5aW5nIHRoYXQKLSAgICA8cD4iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvdHIueHNsIjwvcD4KLSAgICA8cD5zaG91bGQgcmVhbGx5IGJlIGxvb2tlZCBhdDwvcD4KLSAgICA8cD4iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvZW50aXR5L3N0eWxlc2hlZXRzL2Jhc2UvdHIueHNsIjwvcD4KLSAgPC9saT4KLSAgPGxpPnByb3ZpZGluZyBhIGxvY2FsIGNhY2hlIG1lY2hhbmlzbSBhbGxvd2luZyB0byBsb2FkIHRoZSBlbnRpdGllcworICAgIDxwPiZxdW90O2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVzL3RyLnhzbCZxdW90OzwvcD4KKzxwPnNob3VsZCByZWFsbHkgYmUgbG9va2VkIGF0PC9wPgorPHA+JnF1b3Q7aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvZW50aXR5L3N0eWxlc2hlZXRzL2Jhc2UvdHIueHNsJnF1b3Q7PC9wPgorPC9saT4KKzxsaT5wcm92aWRpbmcgYSBsb2NhbCBjYWNoZSBtZWNoYW5pc20gYWxsb3dpbmcgdG8gbG9hZCB0aGUgZW50aXRpZXMKICAgICBhc3NvY2lhdGVkIHRvIHB1YmxpYyBpZGVudGlmaWVycyBvciByZW1vdGUgcmVzb3VyY2VzLCB0aGlzIGlzIGEgcmVhbGx5CiAgICAgaW1wb3J0YW50IGZlYXR1cmUgZm9yIGFueSBzaWduaWZpY2FudCBkZXBsb3ltZW50IG9mIFhNTCBvciBTR01MIHNpbmNlIGl0CiAgICAgYWxsb3dzIHRvIGF2b2lkIHRoZSBhbGVhcyBhbmQgZGVsYXlzIGFzc29jaWF0ZWQgdG8gZmV0Y2hpbmcgcmVtb3RlCiAgICAgcmVzb3VyY2VzLjwvbGk+CiA8L3VsPgotCi08aDI+PGEgbmFtZT0iZGVmaW5pdGlvbiI+VGhlIGRlZmluaXRpb25zPC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbnM8L2E+PC9oMz4KIDxwPkxpYnhtbCwgYXMgb2YgMi40LjMgaW1wbGVtZW50cyAyIGtpbmQgb2YgY2F0YWxvZ3M6PC9wPgogPHVsPgotICA8bGk+dGhlIG9sZGVyIFNHTUwgY2F0YWxvZ3MsIHRoZSBvZmZpY2lhbCBzcGVjIGlzICBTR01MIE9wZW4gVGVjaG5pY2FsCi0gICAgUmVzb2x1dGlvbiBUUjk0MDE6MTk5NywgYnV0IGlzIGJldHRlciB1bmRlcnN0b29kIGJ5IHJlYWRpbmcgPGEKLSAgICBocmVmPSJodHRwOi8vd3d3LmpjbGFyay5jb20vc3AvY2F0YWxvZy5odG0iPnRoZSBTUCBDYXRhbG9nIHBhZ2U8L2E+IGZyb20KKzxsaT50aGUgb2xkZXIgU0dNTCBjYXRhbG9ncywgdGhlIG9mZmljaWFsIHNwZWMgaXMgIFNHTUwgT3BlbiBUZWNobmljYWwKKyAgICBSZXNvbHV0aW9uIFRSOTQwMToxOTk3LCBidXQgaXMgYmV0dGVyIHVuZGVyc3Rvb2QgYnkgcmVhZGluZyA8YSBocmVmPSJodHRwOi8vd3d3LmpjbGFyay5jb20vc3AvY2F0YWxvZy5odG0iPnRoZSBTUCBDYXRhbG9nIHBhZ2U8L2E+IGZyb20KICAgICBKYW1lcyBDbGFyay4gVGhpcyBpcyByZWxhdGl2ZWx5IG9sZCBhbmQgbm90IHRoZSBwcmVmZXJyZWQgbW9kZSBvZgogICAgIG9wZXJhdGlvbiBvZiBsaWJ4bWwuPC9saT4KLSAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy5odG1sIj5YTUwKKzxsaT4KKzxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy5odG1sIj5YTUwKICAgICBDYXRhbG9nczwvYT4KICAgICAgaXMgZmFyIG1vcmUgZmxleGlibGUsIG1vcmUgcmVjZW50LCB1c2VzIGFuIFhNTCBzeW50YXggYW5kIHNob3VsZCBzY2FsZQogICAgIHF1aXRlIGJldHRlci4gVGhpcyBpcyB0aGUgZGVmYXVsdCBvcHRpb24gb2YgbGlieG1sLjwvbGk+CiA8L3VsPgotCi08cD48L3A+Ci0KLTxoMj48YSBuYW1lPSJTaW1wbGUiPlVzaW5nIGNhdGFsb2c8L2E+PC9oMj4KLQorPHA+Cis8aDM+PGEgbmFtZT0iU2ltcGxlIj5Vc2luZyBjYXRhbG9nPC9hPjwvaDM+CiA8cD5JbiBhIG5vcm1hbCBlbnZpcm9ubWVudCBsaWJ4bWwgd2lsbCBieSBkZWZhdWx0IGNoZWNrIHRoZSBwcmVzZW5jZSBvZiBhCiBjYXRhbG9nIGluIC9ldGMveG1sL2NhdGFsb2csIGFuZCBhc3N1bWluZyBpdCBoYXMgYmVlbiBjb3JyZWN0bHkgcG9wdWxhdGVkLAogdGhlIHByb2Nlc3NpbmcgaXMgY29tcGxldGVseSB0cmFuc3BhcmVudCB0byB0aGUgZG9jdW1lbnQgdXNlci4gVG8gdGFrZSBhCiBjb25jcmV0ZSBleGFtcGxlLCBzdXBwb3NlIHlvdSBhcmUgYXV0aG9yaW5nIGEgRG9jQm9vayBkb2N1bWVudCwgdGhpcyBvbmUKIHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgRE9DVFlQRSBkZWZpbml0aW9uOjwvcD4KIDxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0nMS4wJz8mZ3Q7Ci0mbHQ7IURPQ1RZUEUgYm9vayBQVUJMSUMgIi0vL05vcm1hbiBXYWxzaC8vRFREIERvY0JrIFhNTCBWMy4xLjQvL0VOIgotICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vbndhbHNoLmNvbS9kb2Nib29rL3htbC8zLjEuNC9kYjN4bWwuZHRkIiZndDs8L3ByZT4KLQorJmx0OyFET0NUWVBFIGJvb2sgUFVCTElDICZxdW90Oy0vL05vcm1hbiBXYWxzaC8vRFREIERvY0JrIFhNTCBWMy4xLjQvL0VOJnF1b3Q7CisgICAgICAgICAgJnF1b3Q7aHR0cDovL253YWxzaC5jb20vZG9jYm9vay94bWwvMy4xLjQvZGIzeG1sLmR0ZCZxdW90OyZndDs8L3ByZT4KIDxwPldoZW4gdmFsaWRhdGluZyB0aGUgZG9jdW1lbnQgd2l0aCBsaWJ4bWwsIHRoZSBjYXRhbG9nIHdpbGwgYmUKLWF1dG9tYXRpY2FsbHkgY29uc3VsdGVkIHRvIGxvb2t1cCB0aGUgcHVibGljIGlkZW50aWZpZXIgIi0vL05vcm1hbiBXYWxzaC8vRFRECi1Eb2NCayBYTUwgVjMuMS40Ly9FTiIgYW5kIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgotImh0dHA6Ly9ud2Fsc2guY29tL2RvY2Jvb2sveG1sLzMuMS40L2RiM3htbC5kdGQiLCBhbmQgaWYgdGhlc2UgZW50aXRpZXMgaGF2ZQorYXV0b21hdGljYWxseSBjb25zdWx0ZWQgdG8gbG9va3VwIHRoZSBwdWJsaWMgaWRlbnRpZmllciAmcXVvdDstLy9Ob3JtYW4gV2Fsc2gvL0RURAorRG9jQmsgWE1MIFYzLjEuNC8vRU4mcXVvdDsgYW5kIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgorJnF1b3Q7aHR0cDovL253YWxzaC5jb20vZG9jYm9vay94bWwvMy4xLjQvZGIzeG1sLmR0ZCZxdW90OywgYW5kIGlmIHRoZXNlIGVudGl0aWVzIGhhdmUKIGJlZW4gaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtIGFuZCB0aGUgY2F0YWxvZ3MgYWN0dWFsbHkgcG9pbnQgdG8gdGhlbSwgbGlieG1sCiB3aWxsIGZldGNoIHRoZW0gZnJvbSB0aGUgbG9jYWwgZGlzay48L3A+Ci0KLTxwIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogUmVhbGx5IGRvbid0IHVzZSB0aGlzCis8cCBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4KKzxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogUmVhbGx5IGRvbid0IHVzZSB0aGlzCiBET0NUWVBFIGV4YW1wbGUgaXQncyBhIHJlYWxseSBvbGQgdmVyc2lvbiwgYnV0IGlzIGZpbmUgYXMgYW4gZXhhbXBsZS48L3A+Ci0KIDxwPkxpYnhtbCB3aWxsIGNoZWNrIHRoZSBjYXRhbG9nIGVhY2ggdGltZSB0aGF0IGl0IGlzIHJlcXVlc3RlZCB0byBsb2FkIGFuCiBlbnRpdHksIHRoaXMgaW5jbHVkZXMgRFRELCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIHN0eWxlc2hlZXRzLCBldGMgLi4uIElmCiB5b3VyIHN5c3RlbSBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBhbGwgdGhlIGF1dGhvcmluZyBwaGFzZSBhbmQgcHJvY2Vzc2luZwogc2hvdWxkIHVzZSBvbmx5IGxvY2FsIGZpbGVzLCBldmVuIGlmIHlvdXIgZG9jdW1lbnQgc3RheXMgcG9ydGFibGUgYmVjYXVzZSBpdAogdXNlcyB0aGUgY2Fub25pY2FsIHB1YmxpYyBhbmQgc3lzdGVtIElELCByZWZlcmVuY2luZyB0aGUgcmVtb3RlIGRvY3VtZW50LjwvcD4KLQotPGgyPjxhIG5hbWU9IlNvbWUiPlNvbWUgZXhhbXBsZXM6PC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJTb21lIj5Tb21lIGV4YW1wbGVzOjwvYT48L2gzPgogPHA+SGVyZSBpcyBhIGNvdXBsZSBvZiBmcmFnbWVudHMgZnJvbSBYTUwgQ2F0YWxvZ3MgdXNlZCBpbiBsaWJ4bWwgZWFybHkKIHJlZ3Jlc3Npb24gdGVzdHMgaW4gPGNvZGU+dGVzdC9jYXRhbG9nczwvY29kZT4gOjwvcD4KLTxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7Ci0mbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iCi0gICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OwotJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OwotICAgICZsdDtwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKLSAgICAgICAgICAgIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiLyZndDsKKzxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDs/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDIAorICAgJnF1b3Q7LS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiZxdW90OworICAgJnF1b3Q7aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCZxdW90OyZndDsKKyZsdDtjYXRhbG9nIHhtbG5zPSZxdW90O3VybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2cmcXVvdDsmZ3Q7CisgICZsdDtwdWJsaWMgcHVibGljSWQ9JnF1b3Q7LS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOJnF1b3Q7CisgICB1cmk9JnF1b3Q7aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQmcXVvdDsvJmd0OwogLi4uPC9wcmU+Ci0KIDxwPlRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhIGNhdGFsb2cgZm9yIERvY0Jvb2sgNC4xLjIsIFhNTCBDYXRhbG9ncyBhcmUKIHdyaXR0ZW4gaW4gWE1MLCAgdGhlcmUgaXMgYSBzcGVjaWZpYyBuYW1lc3BhY2UgZm9yIGNhdGFsb2cgZWxlbWVudHMKLSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIi4gVGhlIGZpcnN0IGVudHJ5IGluIHRoaXMKKyZxdW90O3VybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2cmcXVvdDsuIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGlzCiBjYXRhbG9nIGlzIGEgPGNvZGU+cHVibGljPC9jb2RlPiBtYXBwaW5nIGl0IGFsbG93cyB0byBhc3NvY2lhdGUgYSBQdWJsaWMKIElkZW50aWZpZXIgd2l0aCBhbiBVUkkuPC9wPgogPHByZT4uLi4KLSAgICAmbHQ7cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svIgotICAgICAgICAgICAgICAgICAgIHJld3JpdGVQcmVmaXg9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLyIvJmd0OworICAgICZsdDtyZXdyaXRlU3lzdGVtIHN5c3RlbUlkU3RhcnRTdHJpbmc9JnF1b3Q7aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyZxdW90OworICAgICAgICAgICAgICAgICAgIHJld3JpdGVQcmVmaXg9JnF1b3Q7ZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2svJnF1b3Q7LyZndDsKIC4uLjwvcHJlPgotCiA8cD5BIDxjb2RlPnJld3JpdGVTeXN0ZW08L2NvZGU+IGlzIGEgdmVyeSBwb3dlcmZ1bCBpbnN0cnVjdGlvbiwgaXQgc2F5cyB0aGF0CiBhbnkgVVJJIHN0YXJ0aW5nIHdpdGggYSBnaXZlbiBwcmVmaXggc2hvdWxkIGJlIGxvb2tlZCBhdCBhbm90aGVyICBVUkkKIGNvbnN0cnVjdGVkIGJ5IHJlcGxhY2luZyB0aGUgcHJlZml4IHdpdGggYW4gbmV3IG9uZS4gSW4gZWZmZWN0IHRoaXMgYWN0cyBsaWtlCkBAIC0xMzksODAgKzE3Niw3MiBAQAogd2l0aCBhIGZpbGUgcHJlZml4IGlmIHlvdSBoYXZlIGluc3RhbGxlZCBhIGNvcHkgb2YgdGhvc2UgcmVzb3VyY2VzIG9uIHlvdXIKIGxvY2FsIHN5c3RlbS48L3A+CiA8cHJlPi4uLgotJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgWE1MIENhdGFsb2cgLy8iCi0gICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7Ci0mbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vT0FTSVMvL0VOVElUSUVTIERvY0Jvb2sgWE1MIgotICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCIvJmd0OwotJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwiCi0gICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7Ci0mbHQ7ZGVsZWdhdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKLSAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKLSZsdDtkZWxlZ2F0ZVVSSSB1cmlTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKLSAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKyZsdDtkZWxlZ2F0ZVB1YmxpYyBwdWJsaWNJZFN0YXJ0U3RyaW5nPSZxdW90Oy0vL09BU0lTLy9EVEQgWE1MIENhdGFsb2cgLy8mcXVvdDsKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSZxdW90O2ZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCZxdW90Oy8mZ3Q7CismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0mcXVvdDstLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwmcXVvdDsKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSZxdW90O2ZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCZxdW90Oy8mZ3Q7CismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0mcXVvdDstLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MJnF1b3Q7CisgICAgICAgICAgICAgICAgY2F0YWxvZz0mcXVvdDtmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwmcXVvdDsvJmd0OworJmx0O2RlbGVnYXRlU3lzdGVtIHN5c3RlbUlkU3RhcnRTdHJpbmc9JnF1b3Q7aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyZxdW90OworICAgICAgICAgICAgICAgIGNhdGFsb2c9JnF1b3Q7ZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sJnF1b3Q7LyZndDsKKyZsdDtkZWxlZ2F0ZVVSSSB1cmlTdGFydFN0cmluZz0mcXVvdDtodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svJnF1b3Q7CisgICAgICAgICAgICAgICAgY2F0YWxvZz0mcXVvdDtmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwmcXVvdDsvJmd0OwogLi4uPC9wcmU+Ci0KIDxwPkRlbGVnYXRpb24gaXMgdGhlIGNvcmUgZmVhdHVyZXMgd2hpY2ggYWxsb3dzIHRvIGJ1aWxkIGEgdHJlZSBvZiBjYXRhbG9ncywKIGVhc2llciB0byBtYWludGFpbiB0aGFuIGEgc2luZ2xlIGNhdGFsb2csIGJhc2VkIG9uIFB1YmxpYyBJZGVudGlmaWVyLCBTeXN0ZW0KLUlkZW50aWZpZXIgb3IgVVJJIHByZWZpeGVzIGl0IGluc3RydWN0cyB0aGUgY2F0YWxvZyBzb2Z0d2FyZSB0byBsb29rIHVwIGVudHJpZXMKLWluIGFub3RoZXIgcmVzb3VyY2UuIFRoaXMgZmVhdHVyZSBhbGxvdyB0byBidWlsZCBoaWVyYXJjaGllcyBvZiBjYXRhbG9ncywgdGhlCi1zZXQgb2YgZW50cmllcyBwcmVzZW50ZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVkaXJlY3QgdGhlIHJlc29sdXRpb24gb2YKLWFsbCBEb2NCb29rIHJlZmVyZW5jZXMgdG8gdGhlIHNwZWNpZmljIGNhdGFsb2cgaW4KK0lkZW50aWZpZXIgb3IgVVJJIHByZWZpeGVzIGl0IGluc3RydWN0cyB0aGUgY2F0YWxvZyBzb2Z0d2FyZSB0byBsb29rIHVwCitlbnRyaWVzIGluIGFub3RoZXIgcmVzb3VyY2UuIFRoaXMgZmVhdHVyZSBhbGxvdyB0byBidWlsZCBoaWVyYXJjaGllcyBvZgorY2F0YWxvZ3MsIHRoZSBzZXQgb2YgZW50cmllcyBwcmVzZW50ZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVkaXJlY3QgdGhlCityZXNvbHV0aW9uIG9mIGFsbCBEb2NCb29rIHJlZmVyZW5jZXMgdG8gdGhlIHNwZWNpZmljIGNhdGFsb2cgaW4KIDxjb2RlPi91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sPC9jb2RlPiB0aGlzIG9uZSBpbiB0dXJuIGNvdWxkIGRlbGVnYXRlIGFsbAogcmVmZXJlbmNlcyBmb3IgRG9jQm9vayA0LjIuMSB0byBhIHNwZWNpZmljIGNhdGFsb2cgaW5zdGFsbGVkIGF0IHRoZSBzYW1lIHRpbWUKIGFzIHRoZSBEb2NCb29rIHJlc291cmNlcyBvbiB0aGUgbG9jYWwgbWFjaGluZS48L3A+Ci0KLTxoMj48YSBuYW1lPSJyZWZlcmVuY2UiPkhvdyB0byB0dW5lIGNhdGFsb2cgdXNhZ2U6PC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJyZWZlcmVuY2UiPkhvdyB0byB0dW5lIGNhdGFsb2cgdXNhZ2U6PC9hPjwvaDM+CiA8cD5UaGUgdXNlciBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGNhdGFsb2cgYmVoYXZpb3VyIGJ5IHJlZGlyZWN0aW5nIHF1ZXJpZXMKIHRvIGl0cyBvd24gc2V0IG9mIGNhdGFsb2dzLCB0aGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCiA8Y29kZT5YTUxfQ0FUQUxPR19GSUxFUzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBsaXN0IG9mIGNhdGFsb2dzLCBhbgotZW1wdHkgb25lIHNob3VsZCBkZWFjdGl2YXRlIGxvYWRpbmcgdGhlIGRlZmF1bHQKLTxjb2RlPi9ldGMveG1sL2NhdGFsb2c8L2NvZGU+IGRlZmF1bHQgY2F0YWxvZy48L3A+Ci0KLTxwPkBATW9yZSBvcHRpb25zIGFyZSBsaWtlbHkgdG8gYmUgcHJvdmlkZWQgaW4gdGhlIGZ1dHVyZUBAPC9wPgotCi08aDI+PGEgbmFtZT0idmFsaWRhdGUiPkhvdyB0byBkZWJ1ZyBjYXRhbG9nIHByb2Nlc3Npbmc6PC9hPjwvaDI+Ci0KK2VtcHR5IG9uZSBzaG91bGQgZGVhY3RpdmF0ZSBsb2FkaW5nIHRoZSBkZWZhdWx0IDxjb2RlPi9ldGMveG1sL2NhdGFsb2c8L2NvZGU+CitkZWZhdWx0IGNhdGFsb2c8L3A+Cis8aDM+PGEgbmFtZT0idmFsaWRhdGUiPkhvdyB0byBkZWJ1ZyBjYXRhbG9nIHByb2Nlc3Npbmc6PC9hPjwvaDM+CiA8cD5TZXR0aW5nIHVwIHRoZSA8Y29kZT5YTUxfREVCVUdfQ0FUQUxPRzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbAogbWFrZSBsaWJ4bWwgb3V0cHV0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbnMgZm9yIGVhY2ggY2F0YWxvZyBvcGVyYXRpb25zLCBmb3IKIGV4YW1wbGU6PC9wPgogPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgeG1sbGludCAtLW1lbW9yeSAtLW5vb3V0IHRlc3QvZW50Mgotd2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJ0aXRsZS54bWwiCit3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgJnF1b3Q7dGl0bGUueG1sJnF1b3Q7CiBvcmNoaXM6fi9YTUwgLSZndDsgZXhwb3J0IFhNTF9ERUJVR19DQVRBTE9HPQogb3JjaGlzOn4vWE1MIC0mZ3Q7IHhtbGxpbnQgLS1tZW1vcnkgLS1ub291dCB0ZXN0L2VudDIKIEZhaWxlZCB0byBwYXJzZSBjYXRhbG9nIC9ldGMveG1sL2NhdGFsb2cKIEZhaWxlZCB0byBwYXJzZSBjYXRhbG9nIC9ldGMveG1sL2NhdGFsb2cKLXdhcm5pbmc6IGZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAidGl0bGUueG1sIgord2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICZxdW90O3RpdGxlLnhtbCZxdW90OwogQ2F0YWxvZ3MgY2xlYW51cAogb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgotCiA8cD5UaGUgdGVzdC9lbnQyIHJlZmVyZW5jZXMgYW4gZW50aXR5LCBydW5uaW5nIHRoZSBwYXJzZXIgZnJvbSBtZW1vcnkgbWFrZXMKLXRoZSBiYXNlIFVSSSB1bmF2YWlsYWJsZSBhbmQgdGhlIHRoZSAidGl0bGUueG1sIiBlbnRpdHkgY2Fubm90IGJlIGxvYWRlZC4KK3RoZSBiYXNlIFVSSSB1bmF2YWlsYWJsZSBhbmQgdGhlIHRoZSAmcXVvdDt0aXRsZS54bWwmcXVvdDsgZW50aXR5IGNhbm5vdCBiZSBsb2FkZWQuCiBTZXR0aW5nIHVwIHRoZSBkZWJ1ZyBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbGxvd3MgdG8gZGV0ZWN0IHRoYXQgYW4gYXR0ZW1wdCBpcwogbWFkZSB0byBsb2FkIHRoZSA8Y29kZT4vZXRjL3htbC9jYXRhbG9nPC9jb2RlPiBidXQgc2luY2UgaXQncyBub3QgcHJlc2VudCB0aGUKIHJlc29sdXRpb24gZmFpbHMuPC9wPgotCiA8cD5CdXQgdGhlIG1vc3QgYWR2YW5jZWQgd2F5IHRvIGRlYnVnIFhNTCBjYXRhbG9nIHByb2Nlc3NpbmcgaXMgdG8gdXNlIHRoZQogPHN0cm9uZz54bWxjYXRhbG9nPC9zdHJvbmc+IGNvbW1hbmQgc2hpcHBlZCB3aXRoIGxpYnhtbDIsIGl0IGFsbG93cyB0byBsb2FkCiBjYXRhbG9ncyBhbmQgbWFrZSByZXNvbHV0aW9uIHF1ZXJpZXMgdG8gc2VlIHdoYXQgaXMgZ29pbmcgb24uIFRoaXMgaXMgYWxzbwogdXNlZCBmb3IgdGhlIHJlZ3Jlc3Npb24gdGVzdHM6PC9wPgotPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sIFwKKyAgICAgICAgICAgICAgICAgICAmcXVvdDstLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4mcXVvdDsKIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCiBvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+Ci0KIDxwPkZvciBkZWJ1Z2dpbmcgd2hhdCBpcyBnb2luZyBvbiwgYWRkaW5nIG9uZSAtdiBmbGFncyBpbmNyZWFzZSB0aGUgdmVyYm9zaXR5CiBsZXZlbCB0byBpbmRpY2F0ZSB0aGUgcHJvY2Vzc2luZyBkb25lIChhZGRpbmcgYSBzZWNvbmQgZmxhZyBhbHNvIGluZGljYXRlCiB3aGF0IGVsZW1lbnRzIGFyZSByZWNvZ25pemVkIGF0IHBhcnNpbmcpOjwvcD4KLTxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtdiB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLXYgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCBcCisgICAgICAgICAgICAgICAgICAgJnF1b3Q7LS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOJnF1b3Q7CiBQYXJzaW5nIGNhdGFsb2cgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCdzIGNvbnRlbnQKIEZvdW5kIHB1YmxpYyBtYXRjaCAtLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4KIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCiBDYXRhbG9ncyBjbGVhbnVwCiBvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+Ci0KIDxwPkEgc2hlbGwgaW50ZXJmYWNlIGlzIGFsc28gYXZhaWxhYmxlIHRvIGRlYnVnIGFuZCBwcm9jZXNzIG11bHRpcGxlIHF1ZXJpZXMKIChhbmQgZm9yIHJlZ3Jlc3Npb24gdGVzdHMpOjwvcD4KLTxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtc2hlbGwgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgorPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC1zaGVsbCB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sIFwKKyAgICAgICAgICAgICAgICAgICAmcXVvdDstLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4mcXVvdDsKICZndDsgaGVscCAgIAogQ29tbWFuZHMgYXZhaWxhYmxlOgogcHVibGljIFB1YmxpY0lEOiBtYWtlIGEgUFVCTElDIGlkZW50aWZpZXIgbG9va3VwCkBAIC0yMjQsMTc1ICsyNTMsMTQ1IEBACiBkZWJ1ZzogaW5jcmVhc2UgdGhlIHZlcmJvc2l0eSBsZXZlbAogcXVpZXQ6IGRlY3JlYXNlIHRoZSB2ZXJib3NpdHkgbGV2ZWwKIGV4aXQ6ICBxdWl0IHRoZSBzaGVsbAotJmd0OyBwdWJsaWMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKyZndDsgcHVibGljICZxdW90Oy0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiZxdW90OwogaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKICZndDsgcXVpdAogb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgotCiA8cD5UaGlzIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBtb3N0IGRlYnVnZ2luZyBwdXJwb3NlLCB0aGlzIHdhcyBhY3R1YWxseQogdXNlZCBoZWF2aWx5IHRvIGRlYnVnIHRoZSBYTUwgQ2F0YWxvZyBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuPC9wPgotCi08aDI+PGEgbmFtZT0iRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbjwvYT4gY2F0YWxvZ3M6PC9oMj4KLQorPGgzPgorPGEgbmFtZT0iRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbjwvYT4gY2F0YWxvZ3M6PC9oMz4KIDxwPkJhc2ljYWxseSBYTUwgQ2F0YWxvZ3MgYXJlIFhNTCBmaWxlcywgeW91IGNhbiBlaXRoZXIgdXNlIFhNTCB0b29scyB0bwogbWFuYWdlIHRoZW0gb3IgdXNlICA8c3Ryb25nPnhtbGNhdGFsb2c8L3N0cm9uZz4gZm9yIHRoaXMuIFRoZSBiYXNpYyBzdGVwIGlzCiB0byBjcmVhdGUgYSBjYXRhbG9nIHRoZSAtY3JlYXRlIG9wdGlvbiBwcm92aWRlIHRoaXMgZmFjaWxpdHk6PC9wPgogPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tY3JlYXRlIHRzdC54bWwKLSZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OwotJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgotICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OwotJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciLyZndDsKKyZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7PyZndDsKKyZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAmcXVvdDstLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOJnF1b3Q7CisgICAgICAgICAmcXVvdDtodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkJnF1b3Q7Jmd0OworJmx0O2NhdGFsb2cgeG1sbnM9JnF1b3Q7dXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyZxdW90Oy8mZ3Q7CiBvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+Ci0KIDxwPkJ5IGRlZmF1bHQgeG1sY2F0YWxvZyBkb2VzIG5vdCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGNhdGFsb2cgYW5kIHNhdmUgdGhlCiByZXN1bHQgb24gdGhlIHN0YW5kYXJkIG91dHB1dCwgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgLW5vb3V0CiBvcHRpb24uIFRoZSA8Y29kZT4tYWRkPC9jb2RlPiBjb21tYW5kIGFsbG93cyB0byBhZGQgZW50cmllcyBpbiB0aGUKIGNhdGFsb2c6PC9wPgotPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tbm9vdXQgLS1jcmVhdGUgLS1hZGQgInB1YmxpYyIgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQgdHN0LnhtbAorPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tbm9vdXQgLS1jcmVhdGUgLS1hZGQgJnF1b3Q7cHVibGljJnF1b3Q7IFwKKyAgJnF1b3Q7LS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOJnF1b3Q7IFwKKyAgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQgdHN0LnhtbAogb3JjaGlzOn4vWE1MIC0mZ3Q7IGNhdCB0c3QueG1sCi0mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKLSZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OwotJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OwotJmx0O3B1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgotICAgICAgICB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIi8mZ3Q7CismbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90Oz8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgJnF1b3Q7LS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiZxdW90OyBcCisgICZxdW90O2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQmcXVvdDsmZ3Q7CismbHQ7Y2F0YWxvZyB4bWxucz0mcXVvdDt1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nJnF1b3Q7Jmd0OworJmx0O3B1YmxpYyBwdWJsaWNJZD0mcXVvdDstLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4mcXVvdDsKKyAgICAgICAgdXJpPSZxdW90O2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkJnF1b3Q7LyZndDsKICZsdDsvY2F0YWxvZyZndDsKIG9yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT4KLQogPHA+VGhlIDxjb2RlPi1hZGQ8L2NvZGU+IG9wdGlvbiB3aWxsIGFsd2F5cyB0YWtlIDMgcGFyYW1ldGVycyBldmVuIGlmIHNvbWUgb2YKIHRoZSBYTUwgQ2F0YWxvZyBjb25zdHJ1Y3RzIChsaWtlIG5leHRDYXRhbG9nKSB3aWxsIGhhdmUgb25seSBhIHNpbmdsZQogYXJndW1lbnQsIGp1c3QgcGFzcyBhIHRoaXJkIGVtcHR5IHN0cmluZywgaXQgd2lsbCBiZSBpZ25vcmVkLjwvcD4KLQogPHA+U2ltaWxhcmx5IHRoZSA8Y29kZT4tZGVsPC9jb2RlPiBvcHRpb24gcmVtb3ZlIG1hdGNoaW5nIGVudHJpZXMgZnJvbSB0aGUKIGNhdGFsb2c6PC9wPgotPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tZGVsICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIgdHN0LnhtbAotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7Ci0mbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIiZndDsKLSZsdDtjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIi8mZ3Q7Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLS1kZWwgXAorICAmcXVvdDtodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCZxdW90OyB0c3QueG1sCismbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90Oz8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgJnF1b3Q7LS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiZxdW90OworICAgICZxdW90O2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQmcXVvdDsmZ3Q7CismbHQ7Y2F0YWxvZyB4bWxucz0mcXVvdDt1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nJnF1b3Q7LyZndDsKIG9yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT4KLQogPHA+VGhlIGNhdGFsb2cgaXMgbm93IGVtcHR5LiBOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIG9mIDxjb2RlPi1kZWw8L2NvZGU+IGlzCiBleGFjdCBhbmQgd291bGQgaGF2ZSB3b3JrZWQgaW4gYSBzaW1pbGFyIGZhc2hpb24gd2l0aCB0aGUgUHVibGljIElECiBzdHJpbmcuPC9wPgotCiA8cD5UaGlzIGlzIHJ1ZGltZW50YXJ5IGJ1dCBzaG91bGQgYmUgc3VmZmljaWVudCB0byBtYW5hZ2UgYSBub3QgdG9vIGNvbXBsZXgKIGNhdGFsb2cgdHJlZSBvZiByZXNvdXJjZXMuPC9wPgotCi08aDI+PGEgbmFtZT0iaW1wbGVtZW50byI+VGhlIGltcGxlbWVudG9yIGNvcm5lciBxdWljayByZXZpZXcgb2YgdGhlCi1BUEk6PC9hPjwvaDI+Ci0KLTxwPkZpcnN0LCBhbmQgbGlrZSBmb3IgZXZlcnkgb3RoZXIgbW9kdWxlIG9mIGxpYnhtbCwgdGhlcmUgaXMgYW4gYXV0b21hdGljYWxseQotZ2VuZXJhdGVkIDxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCI+QVBJIHBhZ2UgZm9yIGNhdGFsb2cKLXN1cHBvcnQ8L2E+LjwvcD4KLQorPGgzPjxhIG5hbWU9ImltcGxlbWVudG8iPlRoZSBpbXBsZW1lbnRvciBjb3JuZXIgcXVpY2sgcmV2aWV3IG9mIHRoZQorQVBJOjwvYT48L2gzPgorPHA+Rmlyc3QsIGFuZCBsaWtlIGZvciBldmVyeSBvdGhlciBtb2R1bGUgb2YgbGlieG1sLCB0aGVyZSBpcyBhbgorYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sIj5BUEkgcGFnZSBmb3IKK2NhdGFsb2cgc3VwcG9ydDwvYT4uPC9wPgogPHA+VGhlIGhlYWRlciBmb3IgdGhlIGNhdGFsb2cgaW50ZXJmYWNlcyBzaG91bGQgYmUgaW5jbHVkZWQgYXM6PC9wPgogPHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL2NhdGFsb2cuaCZndDs8L3ByZT4KLQogPHA+VGhlIEFQSSBpcyB2b2x1bnRhcmlseSBrZXB0IHZlcnkgc2ltcGxlLiBGaXJzdCBpdCBpcyBub3Qgb2J2aW91cyB0aGF0CiBhcHBsaWNhdGlvbnMgcmVhbGx5IG5lZWQgYWNjZXNzIHRvIGl0IHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZgogbGlieG1sIChOb3RlOiBpdCBpcyBwb3NzaWJsZSB0byBjb21wbGV0ZWx5IG92ZXJyaWRlIGxpYnhtbCBkZWZhdWx0IGNhdGFsb2cgYnkKIHVzaW5nIDxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4gdG8KIHBsdWcgYW4gYXBwbGljYXRpb24gc3BlY2lmaWMgcmVzb2x2ZXIpLjwvcD4KLQogPHA+QmFzaWNhbGx5IGxpYnhtbCBzdXBwb3J0IDIgY2F0YWxvZyBsaXN0czo8L3A+CiA8dWw+Ci0gIDxsaT50aGUgZGVmYXVsdCBvbmUsIGdsb2JhbCBzaGFyZWQgYnkgYWxsIHRoZSBhcHBsaWNhdGlvbjwvbGk+Ci0gIDxsaT5hIHBlci1kb2N1bWVudCBjYXRhbG9nLCB0aGlzIG9uZSBpcyBidWlsdCBpZiB0aGUgZG9jdW1lbnQgdXNlcyB0aGUKKzxsaT50aGUgZGVmYXVsdCBvbmUsIGdsb2JhbCBzaGFyZWQgYnkgYWxsIHRoZSBhcHBsaWNhdGlvbjwvbGk+Cis8bGk+YSBwZXItZG9jdW1lbnQgY2F0YWxvZywgdGhpcyBvbmUgaXMgYnVpbHQgaWYgdGhlIGRvY3VtZW50IHVzZXMgdGhlCiAgICAgPGNvZGU+b2FzaXMteG1sLWNhdGFsb2c8L2NvZGU+IFBJcyB0byBzcGVjaWZ5IGl0cyBvd24gY2F0YWxvZyBsaXN0LCBpdCBpcwogICAgIGFzc29jaWF0ZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0IGFuZCBkZXN0cm95ZWQgd2hlbiB0aGUgcGFyc2luZyBjb250ZXh0CiAgICAgaXMgZGVzdHJveWVkLjwvbGk+CiA8L3VsPgotCiA8cD50aGUgZG9jdW1lbnQgb25lIHdpbGwgYmUgdXNlZCBmaXJzdCBpZiBpdCBleGlzdHMuPC9wPgotCi08aDM+SW5pdGlhbGl6YXRpb24gcm91dGluZXM6PC9oMz4KLQorPGg0PkluaXRpYWxpemF0aW9uIHJvdXRpbmVzOjwvaDQ+CiA8cD54bWxJbml0aWFsaXplQ2F0YWxvZygpLCB4bWxMb2FkQ2F0YWxvZygpIGFuZCB4bWxMb2FkQ2F0YWxvZ3MoKSBzaG91bGQgYmUKIHVzZWQgYXQgc3RhcnR1cCB0byBpbml0aWFsaXplIHRoZSBjYXRhbG9nLCBpZiB0aGUgY2F0YWxvZyBzaG91bGQgYmUKIGluaXRpYWxpemVkIHdpdGggc3BlY2lmaWMgdmFsdWVzIHhtbExvYWRDYXRhbG9nKCkgIG9yIHhtbExvYWRDYXRhbG9ncygpCiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSB4bWxJbml0aWFsaXplQ2F0YWxvZygpIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBkbyBhCiBkZWZhdWx0IGluaXRpYWxpemF0aW9uIGZpcnN0LjwvcD4KLQogPHA+VGhlIHhtbENhdGFsb2dBZGRMb2NhbCgpIGNhbGwgaXMgdXNlZCBieSB0aGUgcGFyc2VyIHRvIGdyb3cgdGhlIGRvY3VtZW50CiBvd24gY2F0YWxvZyBsaXN0IGlmIG5lZWRlZC48L3A+Ci0KLTxoMz5QcmVmZXJlbmNlcyBzZXR1cDo8L2gzPgotCis8aDQ+UHJlZmVyZW5jZXMgc2V0dXA6PC9oND4KIDxwPlRoZSBYTUwgQ2F0YWxvZyBzcGVjIHJlcXVpcmVzIHRoZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgZGVmYXVsdAogcHJlZmVyZW5jZXMgYmV0d2VlbiAgcHVibGljIGFuZCBzeXN0ZW0gZGVsZWdhdGlvbiwKIHhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyKCkgYWxsb3dzIHRoaXMsIHhtbENhdGFsb2dTZXREZWZhdWx0cygpIGFuZAogeG1sQ2F0YWxvZ0dldERlZmF1bHRzKCkgYWxsb3cgdG8gY29udHJvbCAgaWYgWE1MIENhdGFsb2dzIHJlc29sdXRpb24gc2hvdWxkCiBiZSBmb3JiaWRkZW4sIGFsbG93ZWQgZm9yIGdsb2JhbCBjYXRhbG9nLCBmb3IgZG9jdW1lbnQgY2F0YWxvZyBvciBib3RoLCB0aGUKIGRlZmF1bHQgaXMgdG8gYWxsb3cgYm90aC48L3A+Ci0KIDxwPkFuZCBvZiBjb3Vyc2UgeG1sQ2F0YWxvZ1NldERlYnVnKCkgYWxsb3dzIHRvIGdlbmVyYXRlIGRlYnVnIG1lc3NhZ2VzCiAodGhyb3VnaCB0aGUgeG1sR2VuZXJpY0Vycm9yKCkgbWVjaGFuaXNtKS48L3A+Ci0KLTxoMz5RdWVyeWluZyByb3V0aW5lczo8L2gzPgotCis8aDQ+UXVlcnlpbmcgcm91dGluZXM6PC9oND4KIDxwPnhtbENhdGFsb2dSZXNvbHZlKCksIHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKCksIHhtbENhdGFsb2dSZXNvbHZlUHVibGljKCkKIGFuZCB4bWxDYXRhbG9nUmVzb2x2ZVVSSSgpIGFyZSByZWxhdGl2ZWx5IGV4cGxpY2l0IGlmIHlvdSByZWFkIHRoZSBYTUwKIENhdGFsb2cgc3BlY2lmaWNhdGlvbiB0aGV5IGNvcnJlc3BvbmQgdG8gc2VjdGlvbiA3IGFsZ29yaXRobXMsIHRoZXkgc2hvdWxkCiBhbHNvIHdvcmsgaWYgeW91IGhhdmUgbG9hZGVkIGFuIFNHTUwgY2F0YWxvZyB3aXRoIGEgc2ltcGxpZmllZCBzZW1hbnRpYy48L3A+Ci0KIDxwPnhtbENhdGFsb2dMb2NhbFJlc29sdmUoKSBhbmQgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSgpIGFyZSB0aGUgc2FtZSBidXQKIG9wZXJhdGUgb24gdGhlIGRvY3VtZW50IGNhdGFsb2cgbGlzdDwvcD4KLQotPGgzPkNsZWFudXAgYW5kIE1pc2NlbGxhbmVvdXM6PC9oMz4KLQorPGg0PkNsZWFudXAgYW5kIE1pc2NlbGxhbmVvdXM6PC9oND4KIDxwPnhtbENhdGFsb2dDbGVhbnVwKCkgZnJlZS11cCB0aGUgZ2xvYmFsIGNhdGFsb2csIHhtbENhdGFsb2dGcmVlTG9jYWwoKSBpcwogdGhlIHBlci1kb2N1bWVudCBlcXVpdmFsZW50LjwvcD4KLQogPHA+eG1sQ2F0YWxvZ0FkZCgpIGFuZCB4bWxDYXRhbG9nUmVtb3ZlKCkgYXJlIHVzZWQgdG8gZHluYW1pY2FsbHkgbW9kaWZ5IHRoZQogZmlyc3QgY2F0YWxvZyBpbiB0aGUgZ2xvYmFsIGxpc3QsIGFuZCB4bWxDYXRhbG9nRHVtcCgpIGFsbG93cyB0byBkdW1wIGEKIGNhdGFsb2cgc3RhdGUsIHRob3NlIHJvdXRpbmVzIGFyZSBwcmltYXJpbHkgZGVzaWduZWQgZm9yIHhtbGNhdGFsb2csIEknbSBub3QKIHN1cmUgdGhhdCBleHBvc2luZyBtb3JlIGNvbXBsZXggaW50ZXJmYWNlcyAobGlrZSBuYXZpZ2F0aW9uIG9uZXMpIHdvdWxkIGJlCiByZWFsbHkgdXNlZnVsLjwvcD4KLQogPHA+VGhlIHhtbFBhcnNlQ2F0YWxvZ0ZpbGUoKSBpcyBhIGZ1bmN0aW9uIHVzZWQgdG8gbG9hZCBYTUwgQ2F0YWxvZyBmaWxlcywKIGl0J3Mgc2ltaWxhciBhcyB4bWxQYXJzZUZpbGUoKSBleGNlcHQgaXQgYnlwYXNzIGFsbCBjYXRhbG9nIGxvb2t1cHMsIGl0J3MKIHByb3ZpZGVkIGJlY2F1c2UgdGhpcyBmdW5jdGlvbmFsaXR5IG1heSBiZSB1c2VmdWwgZm9yIGNsaWVudCB0b29scy48L3A+Ci0KLTxoMz50aHJlYWRlZCBlbnZpcm9ubWVudHM6PC9oMz4KLQorPGg0PnRocmVhZGVkIGVudmlyb25tZW50czo8L2g0PgogPHA+U2luY2UgdGhlIGNhdGFsb2cgdHJlZSBpcyBidWlsdCBwcm9ncmVzc2l2ZWx5LCBzb21lIGNhcmUgaGFzIGJlZW4gdGFrZW4gdG8KLXRyeSB0byBhdm9pZCB0cm91YmxlcyBpbiBtdWx0aXRocmVhZGVkIGVudmlyb25tZW50cyBidXQgd2l0aG91dCBhCi10ZXN0LWFuZC1zZXQgcm91dGluZSBhY2Nlc3NpYmxlIGZyb20gQyB0aGlzIGNhbid0IGJlIGZ1bGx5IGd1YXJhbnRlZWQsIHNvIHRoZQotYmVzdCBpcyB0byB1c2UgeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgYW5kIHNldCB0aGUgZW50aXR5IGxvYWRlciByb3V0aW5lcwotdG8gb25lIG9mIHlvdXIgY29kZSBkb2luZyB0aGUgc3luY2hyb25pemF0aW9uLjwvcD4KLQotPHA+PC9wPgotCi08aDI+PGEgbmFtZT0iT3RoZXIiPk90aGVyIHJlc291cmNlczwvYT48L2gyPgotCit0cnkgdG8gYXZvaWQgdHJvdWJsZXMgaW4gbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudHMuIFRoZSBjb2RlIGlzIG5vdyB0aHJlYWQKK3NhZmUgYXNzdW1pbmcgdGhhdCB0aGUgbGlieG1sIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRzCitzdXBwb3J0LjwvcD4KKzxwPgorPGgzPjxhIG5hbWU9Ik90aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9oMz4KIDxwPlRoZSBYTUwgQ2F0YWxvZyBzcGVjaWZpY2F0aW9uIGlzIHJlbGF0aXZlbHkgcmVjZW50IHNvIHRoZXJlIGlzbid0IG11Y2gKIGxpdGVyYXR1cmUgdG8gcG9pbnQgYXQ6PC9wPgogPHVsPgotICA8bGk+WW91IGNhbiBmaW5kIGFuIGdvb2QgcmFudCBmcm9tIE5vcm0gV2Fsc2ggYWJvdXQgPGEKLSAgICBocmVmPSJodHRwOi8vd3d3LmFyYm9ydGV4dC5jb20vVGhpbmtfVGFuay9YTUxfUmVzb3VyY2VzL0lzc3VlX1RocmVlL2lzc3VlX3RocmVlLmh0bWwiPnRoZQorPGxpPllvdSBjYW4gZmluZCBhbiBnb29kIHJhbnQgZnJvbSBOb3JtIFdhbHNoIGFib3V0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXJib3J0ZXh0LmNvbS9UaGlua19UYW5rL1hNTF9SZXNvdXJjZXMvSXNzdWVfVGhyZWUvaXNzdWVfdGhyZWUuaHRtbCI+dGhlCiAgICAgbmVlZCBmb3IgY2F0YWxvZ3M8L2E+LCBpdCBwcm92aWRlcyBhIGxvdCBvZiBjb250ZXh0IGluZm9ybWF0aW9ucyBldmVuIGlmCiAgICAgSSBkb24ndCBhZ3JlZSB3aXRoIGV2ZXJ5dGhpbmcgcHJlc2VudGVkLjwvbGk+Ci0gIDxsaT5BbiA8YSBocmVmPSJodHRwOi8vaG9tZS5jY2lsLm9yZy9+Y293YW4vWE1ML1hDYXRhbG9nLmh0bWwiPm9sZCBYTUwKKzxsaT5BbiA8YSBocmVmPSJodHRwOi8vaG9tZS5jY2lsLm9yZy9+Y293YW4vWE1ML1hDYXRhbG9nLmh0bWwiPm9sZCBYTUwKICAgICBjYXRhbG9nIHByb3Bvc2FsPC9hPiBmcm9tIEpvaG4gQ293YW48L2xpPgotICA8bGk+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cucmRkbC5vcmcvIj5SZXNvdXJjZSBEaXJlY3RvcnkgRGVzY3JpcHRpb24KKzxsaT5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5yZGRsLm9yZy8iPlJlc291cmNlIERpcmVjdG9yeSBEZXNjcmlwdGlvbgogICAgIExhbmd1YWdlPC9hPiAoUkRETCkgYW5vdGhlciBjYXRhbG9nIHN5c3RlbSBidXQgbW9yZSBvcmllbnRlZCB0b3dhcmQKICAgICBwcm92aWRpbmcgbWV0YWRhdGEgZm9yIFhNTCBuYW1lc3BhY2VzLjwvbGk+Ci0gIDxsaT50aGUgcGFnZSBmcm9tIHRoZSBPQVNJUyBUZWNobmljYWwgPGEKLSAgICBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5LyI+Q29tbWl0dGVlIG9uIEVudGl0eQorPGxpPnRoZSBwYWdlIGZyb20gdGhlIE9BU0lTIFRlY2huaWNhbCA8YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5LyI+Q29tbWl0dGVlIG9uIEVudGl0eQogICAgIFJlc29sdXRpb248L2E+IHdobyBtYWludGFpbnMgWE1MIENhdGFsb2csIHlvdSB3aWxsIGZpbmQgcG9pbnRlcnMgdG8gdGhlCiAgICAgc3BlY2lmaWNhdGlvbiB1cGRhdGUsIHNvbWUgYmFja2dyb3VuZCBhbmQgcG9pbnRlcnMgdG8gb3RoZXJzIHRvb2xzCiAgICAgcHJvdmlkaW5nIFhNTCBDYXRhbG9nIHN1cHBvcnQ8L2xpPgotICA8bGk+SSBoYXZlIHVwbG9hZGVkIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL3Rlc3QvZGJrNDEyY2F0YWxvZy50YXIuZ3oiPmEKKzxsaT5JIGhhdmUgdXBsb2FkZWQgPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvdGVzdC9kYms0MTJjYXRhbG9nLnRhci5neiI+YQogICAgIG1hbGwgdGFyYmFsbDwvYT4gY29udGFpbmluZyBYTUwgQ2F0YWxvZ3MgZm9yIERvY0Jvb2sgNC4xLjIgd2hpY2ggc2VlbXMgdG8KICAgICB3b3JrIGZpbmUgZm9yIG1lPC9saT4KLSAgPGxpPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnhtbHNvZnQub3JnL3htbGNhdGFsb2dfbWFuLmh0bWwiPnhtbGNhdGFsb2cgbWFudWFsIHBhZ2U8L2E+PC9saT4KLQorPGxpPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnhtbHNvZnQub3JnL3htbGNhdGFsb2dfbWFuLmh0bWwiPnhtbGNhdGFsb2cKKyAgICBtYW51YWwgcGFnZTwvYT4KKzwvbGk+CiA8L3VsPgotCiA8cD5JZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBmb3IgY29ycmVjdGlvbnMgb3IgYWRkaXRpb25zLCBzaW1wbHkgY29udGFjdAogbWU6PC9wPgotCiA8cD48YSBocmVmPSJtYWlsdG86ZGFuaWVsQHZlaWxsYXJkLmNvbSI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KLQotPHA+JElkOiBjYXRhbG9nLmh0bWwsdiAxLjQgMjAwMS8wOC8yNCAxMjoxNDo1NSB2ZWlsbGFyZCBFeHAgJDwvcD4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvY29udHJpYnMuaHRtbCBiL2RvYy9jb250cmlicy5odG1sCmluZGV4IGYxZWZmYWYuLjI3YTVhYmIgMTAwNjQ0Ci0tLSBhL2RvYy9jb250cmlicy5odG1sCisrKyBiL2RvYy9jb250cmlicy5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5Db250cmlidXRpb25zPC90aXRsZT4KIDwvaGVhZD4KQEAgLTI3LDggKzI4LDggQEAKIDx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgogPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KIDxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KIDxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT4KIDxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+CkBAIC0zNiwyMSArMzcsMjEgQEAKIDxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPkFuIG92ZXJ2aWV3IG9mIGxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0idmFsaWQuaHRtbCI+VmFsaWRhdGlvbiwgb3IgYXJlIHlvdSBhZnJhaWQgb2YgRFREcyA/PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+RFREIHN1cHBvcnQ8L2E+PC9saT4KIDxsaT4KIDxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT4KIDwvbGk+CkBAIC03MCw4ICs3MSwxMiBAQAogPC90ZD48L3RyPjwvdGFibGU+PC90ZD4KIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CiA8dWw+Cis8bGk+Qmpvcm4gUmVlc2UsIFdpbGxpYW0gQnJhY2sgYW5kIFRob21hcyBCcm95ZXIgaGF2ZSBwcm92aWRlZCBhIG51bWJlciBvZgorICAgIHBhdGNoZXMsIEdhcnkgUGVubmluZ3RvbiB3b3JrZWQgb24gdGhlIHZhbGlkYXRpb24gQVBJLCB0aHJlYWRpbmcgc3VwcG9ydAorICAgIGFuZCBTb2xhcmlzIHBvcnQuPC9saT4KKzxsaT5Kb2huIEZsZWNrIGhlbHBzIG1haW50YWluaW5nIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBtYW4gcGFnZXMuPC9saT4KIDxsaT4KLTxhIGhyZWY9Im1haWx0bzphcmlAbHVzaXMub3JnIj5BcmkgSm9obnNvbjwvYT4KKzxwPjxhIGhyZWY9Im1haWx0bzphcmlAbHVzaXMub3JnIj5BcmkgSm9obnNvbjwvYT48L3A+CiAgICAgIHByb3ZpZGVzIGEgIEMrKyB3cmFwcGVyIGZvciBsaWJ4bWw6CiAgICAgPHA+V2Vic2l0ZTogPGEgaHJlZj0iaHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrLyI+aHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrLzwvYT4KIDwvcD4KZGlmZiAtLWdpdCBhL2RvYy9kb2NzLmh0bWwgYi9kb2MvZG9jcy5odG1sCmluZGV4IGRlMDY3MTkuLjZiYTA4OWYgMTAwNjQ0Ci0tLSBhL2RvYy9kb2NzLmh0bWwKKysrIGIvZG9jL2RvY3MuaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+RG9jdW1lbnRhdGlvbjwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2Rvd25sb2Fkcy5odG1sIGIvZG9jL2Rvd25sb2Fkcy5odG1sCmluZGV4IDc5ZWU5ZjkuLjlkYzAzOGYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3dubG9hZHMuaHRtbAorKysgYi9kb2MvZG93bmxvYWRzLmh0bWwKQEAgLTgsNiArOCw3IEBACiBIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CiAtLT48L3N0eWxlPgogPHRpdGxlPkRvd25sb2FkczwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2VuY29kaW5nLmh0bWwgYi9kb2MvZW5jb2RpbmcuaHRtbAppbmRleCAyNDU3M2UzLi40MTc5MGFjIDEwMDY0NAotLS0gYS9kb2MvZW5jb2RpbmcuaHRtbAorKysgYi9kb2MvZW5jb2RpbmcuaHRtbApAQCAtMSwxMDAgKzEsMTQ2IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iCi0gICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KIDxodG1sPgogPGhlYWQ+Ci0gIDx0aXRsZT5MaWJ4bWwgSW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydDwvdGl0bGU+Ci0gIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iYW1heWEgVjMuMiI+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KKzxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tCitURCB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogNXB0OyBtYXJnaW4tbGVmdDogMHB0OyBtYXJnaW4tcmlnaHQ6IDBwdH0KK0gxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKy0tPjwvc3R5bGU+Cis8dGl0bGU+RW5jb2RpbmdzIHN1cHBvcnQ8L3RpdGxlPgogPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxoMSBhbGlnbj0iY2VudGVyIj5MaWJ4bWwgSW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydDwvaDE+Ci0KLTxwPkxvY2F0aW9uOiA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2VuY29kaW5nLmh0bWwiPmh0dHA6Ly94bWxzb2Z0Lm9yZy9lbmNvZGluZy5odG1sPC9hPjwvcD4KLQotPHA+TGlieG1sIGhvbWUgcGFnZTogPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+aHR0cDovL3htbHNvZnQub3JnLzwvYT48L3A+Ci0KLTxwPk1haWxpbmctbGlzdCBhcmNoaXZlOiAgPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8iPmh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy88L2E+PC9wPgotCi08cD5WZXJzaW9uOiAkUmV2aXNpb24kPC9wPgotCis8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDAwMDAwIiB2bGluaz0iIzAwMDAwMCI+Cis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+Cis8dGQgd2lkdGg9IjE4MCI+Cis8YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJzbWFsbGZvb3Rvbmx5LmdpZiIgYWx0PSJHbm9tZSBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyI+PC9hPgorPC90ZD4KKzx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj4KKzxoMT5UaGUgWE1MIEMgbGlicmFyeSBmb3IgR25vbWU8L2gxPgorPGgyPkVuY29kaW5ncyBzdXBwb3J0PC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3BhZ2VzLmVpZG9zbmV0LmNvLnVrL35nYXJ5cGVuL2xpYnhtbC8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPgogPHA+VGFibGUgb2YgQ29udGVudDo8L3A+CiA8b2w+Ci0gIDxsaT48YSBocmVmPSIjV2hhdCI+V2hhdCBkb2VzIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQgbWVhbiA/PC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZCB3aHk8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNpbXBsZW1lbnRlIj5Ib3cgaXMgaXQgaW1wbGVtZW50ZWQgPzwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI0RlZmF1bHQiPkRlZmF1bHQgc3VwcG9ydGVkIGVuY29kaW5nczwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI2V4dGVuZCI+SG93IHRvIGV4dGVuZCB0aGUgZXhpc3Rpbmcgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjV2hhdCI+V2hhdCBkb2VzIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQKKyAgICBtZWFuID88L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI2ludGVybmFsIj5UaGUgaW50ZXJuYWwgZW5jb2RpbmcsIGhvdyBhbmQKKyAgd2h5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNpbXBsZW1lbnRlIj5Ib3cgaXMgaXQgaW1wbGVtZW50ZWQgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjRGVmYXVsdCI+RGVmYXVsdCBzdXBwb3J0ZWQgZW5jb2RpbmdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNleHRlbmQiPkhvdyB0byBleHRlbmQgdGhlIGV4aXN0aW5nCisgIHN1cHBvcnQ8L2E+PC9saT4KIDwvb2w+Ci0KLTxoMj48YSBuYW1lPSJXaGF0Ij5XaGF0IGRvZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCBtZWFuID88L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9IldoYXQiPldoYXQgZG9lcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0IG1lYW4gPzwvYT48L2gzPgogPHA+WE1MIHdhcyBkZXNpZ25lZCBmcm9tIHRoZSBzdGFydCB0byBhbGxvdyB0aGUgc3VwcG9ydCBvZiBhbnkgY2hhcmFjdGVyIHNldAogYnkgdXNpbmcgVW5pY29kZS4gQW55IGNvbmZvcm1hbnQgWE1MIHBhcnNlciBoYXMgdG8gc3VwcG9ydCB0aGUgVVRGLTggYW5kCiBVVEYtMTYgZGVmYXVsdCBlbmNvZGluZ3Mgd2hpY2ggY2FuIGJvdGggZXhwcmVzcyB0aGUgZnVsbCB1bmljb2RlIHJhbmdlcy4gVVRGOAogaXMgYSB2YXJpYWJsZSBsZW5ndGggZW5jb2Rpbmcgd2hvc2UgZ3JlYXRlc3QgcG9pbnQgYXJlIHRvIHJlc3VzZSB0aGUgc2FtZQogZW1jb2RpbmcgZm9yIEFTQ0lJIGFuZCB0byBzYXZlIHNwYWNlIGZvciBXZXN0ZXJuIGVuY29kaW5ncywgYnV0IGl0IGlzIGEgYml0CiBtb3JlIGNvbXBsZXggdG8gaGFuZGxlIGluIHByYWN0aWNlLiBVVEYtMTYgdXNlIDIgYnl0ZXMgcGVyIGNoYXJhY3RlcnMgKGFuZAotc29tZXRpbWVzIGNvbWJpbmVzIHR3byBwYWlycyksIGl0IG1ha2VzIGltcGxlbWVudGF0aW9uIGVhc2llciwgYnV0IGxvb2tzIGEgYml0Ci1vdmVya2lsbCBmb3IgV2VzdGVybiBsYW5ndWFnZXMgZW5jb2RpbmcuIE1vcmVvdmVyIHRoZSBYTUwgc3BlY2lmaWNhdGlvbiBhbGxvd3MKLWRvY3VtZW50IHRvIGJlIGVuY29kZWQgaW4gb3RoZXIgZW5jb2RpbmdzIGF0IHRoZSBjb25kaXRpb24gdGhhdCB0aGV5IGFyZQotY2xlYXJseSBsYWJlbGxlZCBhcyBzdWNoLiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIGlzIGEgd2VsbGZvcm1lZCBYTUwKK3NvbWV0aW1lcyBjb21iaW5lcyB0d28gcGFpcnMpLCBpdCBtYWtlcyBpbXBsZW1lbnRhdGlvbiBlYXNpZXIsIGJ1dCBsb29rcyBhCitiaXQgb3ZlcmtpbGwgZm9yIFdlc3Rlcm4gbGFuZ3VhZ2VzIGVuY29kaW5nLiBNb3Jlb3ZlciB0aGUgWE1MIHNwZWNpZmljYXRpb24KK2FsbG93cyBkb2N1bWVudCB0byBiZSBlbmNvZGVkIGluIG90aGVyIGVuY29kaW5ncyBhdCB0aGUgY29uZGl0aW9uIHRoYXQgdGhleQorYXJlIGNsZWFybHkgbGFiZWxsZWQgYXMgc3VjaC4gRm9yIGV4YW1wbGUgdGhlIGZvbGxvd2luZyBpcyBhIHdlbGxmb3JtZWQgWE1MCiBkb2N1bWVudCBlbmNvZGVkIGluIElTTy04ODU5IDEgYW5kIHVzaW5nIGFjY2VudHVhdGVkIGxldHRlciB0aGF0IHdlIEZyZW5jaAogbGlrZXMgZm9yIGJvdGggbWFya3VwIGFuZCBjb250ZW50OjwvcD4KLTxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Jmd0OworPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtJU08tODg1OS0xJnF1b3Q7PyZndDsKICZsdDt0cuhzJmd0O2zgJmx0Oy90cuhzJmd0OzwvcHJlPgotCiA8cD5IYXZpbmcgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCBpbiBsaWJ4bWwgbWVhbnMgdGhlIGZvb2xvd2luZzo8L3A+CiA8dWw+Ci0gIDxsaT50aGUgZG9jdW1lbnQgaXMgcHJvcGVybHkgcGFyc2VkPC9saT4KLSAgPGxpPmluZm9ybWF0aW9ucyBhYm91dCBpdCdzIGVuY29kaW5nIGFyZSBzYXZlZDwvbGk+Ci0gIDxsaT5pdCBjYW4gYmUgbW9kaWZpZWQ8L2xpPgotICA8bGk+aXQgY2FuIGJlIHNhdmVkIGluIGl0cyBvcmlnaW5hbCBlbmNvZGluZzwvbGk+Ci0gIDxsaT5pdCBjYW4gYWxzbyBiZSBzYXZlZCBpbiBhbm90aGVyIGVuY29kaW5nIHN1cHBvcnRlZCBieSBsaWJ4bWwgKGZvcgorPGxpPnRoZSBkb2N1bWVudCBpcyBwcm9wZXJseSBwYXJzZWQ8L2xpPgorPGxpPmluZm9ybWF0aW9ucyBhYm91dCBpdCdzIGVuY29kaW5nIGFyZSBzYXZlZDwvbGk+Cis8bGk+aXQgY2FuIGJlIG1vZGlmaWVkPC9saT4KKzxsaT5pdCBjYW4gYmUgc2F2ZWQgaW4gaXRzIG9yaWdpbmFsIGVuY29kaW5nPC9saT4KKzxsaT5pdCBjYW4gYWxzbyBiZSBzYXZlZCBpbiBhbm90aGVyIGVuY29kaW5nIHN1cHBvcnRlZCBieSBsaWJ4bWwgKGZvcgogICAgIGV4YW1wbGUgc3RyYWlnaHQgVVRGOCBvciBldmVuIGFuIEFTQ0lJIGZvcm0pPC9saT4KIDwvdWw+Ci0KIDxwPkFub3RoZXIgdmVyeSBpbXBvcnRhbnQgcG9pbnQgaXMgdGhhdCB0aGUgd2hvbGUgbGlieG1sIEFQSSwgd2l0aCB0aGUKIGV4Y2VwdGlvbiBvZiBhIGZldyByb3V0aW5lcyB0byByZWFkIHdpdGggYSBzcGVjaWZpYyBlbmNvZGluZyBvciBzYXZlIHRvIGEKIHNwZWNpZmljIGVuY29kaW5nLCBpcyBjb21wbGV0ZWx5IGFnbm9zdGljIGFib3V0IHRoZSBvcmlnaW5hbCBlbmNvZGluZyBvZiB0aGUKIGRvY3VtZW50LjwvcD4KLQogPHA+SXQgc2hvdWxkIGJlIG5vdGVkIHRvbyB0aGF0IHRoZSBIVE1MIHBhcnNlciBlbWJlZGRlZCBpbiBsaWJ4bWwgbm93IG9iYmV5CiB0aGUgc2FtZSBydWxlcyB0b28sIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnQgd2lsbCBiZSAoYXMgb2YgMi4yLjIpIGhhbmRsZWQgIGluCiBhbiBpbnRlcm5hdGlvbmFsaXplZCBmYXNoaW9uIGJ5IGxpYnhtbCB0b286PC9wPgotPHByZT4mbHQ7IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iCi0gICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIiZndDsKLSZsdDtodG1sIGxhbmc9ImZyIiZndDsKKzxwcmU+Jmx0OyFET0NUWVBFIEhUTUwgUFVCTElDICZxdW90Oy0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4mcXVvdDsKKyAgICAgICAgICAgICAgICAgICAgICAmcXVvdDtodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCZxdW90OyZndDsKKyZsdDtodG1sIGxhbmc9JnF1b3Q7ZnImcXVvdDsmZ3Q7CiAmbHQ7aGVhZCZndDsKLSAgJmx0O01FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSImZ3Q7CisgICZsdDtNRVRBIEhUVFAtRVFVSVY9JnF1b3Q7Q29udGVudC1UeXBlJnF1b3Q7IENPTlRFTlQ9JnF1b3Q7dGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEmcXVvdDsmZ3Q7CiAmbHQ7L2hlYWQmZ3Q7CiAmbHQ7Ym9keSZndDsKICZsdDtwJmd0O1czQyBjcullIGRlcyBzdGFuZGFyZHMgcG91ciBsZSBXZWIuJmx0Oy9ib2R5Jmd0OwogJmx0Oy9odG1sJmd0OzwvcHJlPgotCi08aDI+PGEgbmFtZT0iaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZCB3aHk8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9ImludGVybmFsIj5UaGUgaW50ZXJuYWwgZW5jb2RpbmcsIGhvdyBhbmQgd2h5PC9hPjwvaDM+CiA8cD5PbmUgb2YgdGhlIGNvcmUgZGVjaXNpb24gd2FzIHRvIGZvcmNlIGFsbCBkb2N1bWVudHMgdG8gYmUgY29udmVydGVkIHRvIGEKIGRlZmF1bHQgaW50ZXJuYWwgZW5jb2RpbmcsIGFuZCB0aGF0IGVuY29kaW5nIHRvIGJlIFVURi04LCBoZXJlIGFyZSB0aGUKIHJhdGlvbmFsZSBmb3IgdGhvc2UgY2hvaWNlczo8L3A+CiA8dWw+Ci0gIDxsaT5rZWVwaW5nIHRoZSBuYXRpdmUgZW5jb2RpbmcgaW4gdGhlIGludGVybmFsIGZvcm0gd291bGQgZm9yY2UgdGhlIGxpYnhtbAorPGxpPmtlZXBpbmcgdGhlIG5hdGl2ZSBlbmNvZGluZyBpbiB0aGUgaW50ZXJuYWwgZm9ybSB3b3VsZCBmb3JjZSB0aGUgbGlieG1sCiAgICAgdXNlcnMgKG9yIHRoZSBjb2RlIGFzc29jaWF0ZWQpIHRvIGJlIGZ1bGx5IGF3YXJlIG9mIHRoZSBlbmNvZGluZyBvZiB0aGUKLSAgICBvcmlnaW5hbCBkb2N1bWVudCwgZm9yIGV4YW1wbGVzIHdoZW4gYWRkaW5nIGEgdGV4dCBub2RlIHRvIGEgZG9jdW1lbnQsIHRoZQotICAgIGNvbnRlbnQgd291bGQgaGF2ZSB0byBiZSBwcm92aWRlZCBpbiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIGkuZS4gdGhlCisgICAgb3JpZ2luYWwgZG9jdW1lbnQsIGZvciBleGFtcGxlcyB3aGVuIGFkZGluZyBhIHRleHQgbm9kZSB0byBhIGRvY3VtZW50LAorICAgIHRoZSBjb250ZW50IHdvdWxkIGhhdmUgdG8gYmUgcHJvdmlkZWQgaW4gdGhlIGRvY3VtZW50IGVuY29kaW5nLCBpLmUuIHRoZQogICAgIGNsaWVudCBjb2RlIHdvdWxkIGhhdmUgdG8gY2hlY2sgaXQgYmVmb3JlIGhhbmQsIG1ha2Ugc3VyZSBpdCdzIGNvbmZvcm1hbnQKICAgICB0byB0aGUgZW5jb2RpbmcsIGV0YyAuLi4gVmVyeSBoYXJkIGluIHByYWN0aWNlLCB0aG91Z2ggaW4gc29tZSBzcGVjaWZpYwogICAgIGNhc2VzIHRoaXMgbWF5IG1ha2Ugc2Vuc2UuPC9saT4KLSAgPGxpPnRoZSBzZWNvbmQgZGVjaXNpb24gd2FzIHdoaWNoIGVuY29kaW5nLiBGcm9tIHRoZSBYTUwgc3BlYyBvbmx5IFVURjggYW5kCis8bGk+dGhlIHNlY29uZCBkZWNpc2lvbiB3YXMgd2hpY2ggZW5jb2RpbmcuIEZyb20gdGhlIFhNTCBzcGVjIG9ubHkgVVRGOCBhbmQKICAgICBVVEYxNiByZWFsbHkgbWFrZXMgc2Vuc2UgYXMgYmVpbmcgdGhlIHR3byBvbmx5IGVuY29kaW5ncyBmb3Igd2hpY2ggdGhlcmUKICAgICBpcyBhbW5kYXRvcnkgc3VwcG9ydC4gVUNTLTQgKDMyIGJpdHMgZml4ZWQgc2l6ZSBlbmNvZGluZykgY291bGQgYmUKICAgICBjb25zaWRlcmVkIGFuIGludGVsbGlnZW50IGNob2ljZSB0b28gc2luY2UgaXQncyBhIGRpcmVjdCBVbmljb2RlIG1hcHBpbmcKICAgICBzdXBwb3J0LiBJIHNlbGVjdGVkIFVURi04IG9uIHRoZSBiYXNpcyBvZiBlZmZpY2llbmN5IGFuZCBjb21wYXRpYmlsaXR5CiAgICAgd2l0aCBzdXJyb3VuZGluZyBzb2Z0d2FyZToKICAgICA8dWw+Ci0gICAgICA8bGk+VVRGLTggd2hpbGUgYSBiaXQgbW9yZSBjb21wbGV4IHRvIGNvbnZlcnQgZnJvbS90byAoaS5lLiBzbGlnaHRseQorPGxpPlVURi04IHdoaWxlIGEgYml0IG1vcmUgY29tcGxleCB0byBjb252ZXJ0IGZyb20vdG8gKGkuZS4gc2xpZ2h0bHkKICAgICAgICAgbW9yZSBjb3N0bHkgdG8gaW1wb3J0IGFuZCBleHBvcnQgQ1BVIHdpc2UpIGlzIGFsc28gZmFyIG1vcmUgY29tcGFjdAogICAgICAgICB0aGFuIFVURi0xNiAoYW5kIFVDUy00KSBmb3IgYSBtYWpvcml0eSBvZiB0aGUgZG9jdW1lbnRzIEkgc2VlIGl0IHVzZWQKICAgICAgICAgZm9yIHJpZ2h0IG5vdyAoUlBNIFJERiBjYXRhbG9ncywgYWR2b2dhdG8gZGF0YSwgdmFyaW91cyBjb25maWd1cmF0aW9uCkBAIC0xMDQsNDIgKzE1MCwzOSBAQAogICAgICAgICBjYWNoZXMgKG1haW4gbWVtb3J5L2V4dGVybmFsIGNhY2hlcy9pbnRlcm5hbCBjYWNoZXMpIGFuZCBteSB0YWtlIGlzCiAgICAgICAgIHRoYXQgdGhpcyBoYXJtcyB0aGUgc3lzdGVtIGZhciBtb3JlIHRoYW4gdGhlIENQVSByZXF1aXJlbWVudHMgbmVlZGVkCiAgICAgICAgIGZvciB0aGUgY29udmVyc2lvbiB0byBVVEYtODwvbGk+Ci0gICAgICA8bGk+TW9zdCBvZiBsaWJ4bWwgdmVyc2lvbiAxIHVzZXJzIHdlcmUgdXNpbmcgaXQgd2l0aCBzdHJhaWdodCBBU0NJSQorPGxpPk1vc3Qgb2YgbGlieG1sIHZlcnNpb24gMSB1c2VycyB3ZXJlIHVzaW5nIGl0IHdpdGggc3RyYWlnaHQgQVNDSUkKICAgICAgICAgbW9zdCBvZiB0aGUgdGltZSwgZG9pbmcgdGhlIGNvbnZlcnNpb24gd2l0aCBhbiBpbnRlcm5hbCBlbmNvZGluZwogICAgICAgICByZXF1aXJpbmcgYWxsIHRoZWlyIGNvZGUgdG8gYmUgcmV3cml0dGVuIHdhcyBhIHNlcmlvdXMgc2hvdy1zdG9wcGVyCiAgICAgICAgIGZvciB1c2luZyBVVEYtMTYgb3IgVUNTLTQuPC9saT4KLSAgICAgIDxsaT5VVEYtOCBpcyBiZWluZyB1c2VkIGFzIHRoZSBkZS1mYWN0byBpbnRlcm5hbCBlbmNvZGluZyBzdGFuZGFyZCBmb3IKKzxsaT5VVEYtOCBpcyBiZWluZyB1c2VkIGFzIHRoZSBkZS1mYWN0byBpbnRlcm5hbCBlbmNvZGluZyBzdGFuZGFyZCBmb3IKICAgICAgICAgcmVsYXRlZCBjb2RlIGxpa2UgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGFuZ28ub3JnLyI+cGFuZ288L2E+CiAgICAgICAgIHVwY29taW5nIEdub21lIHRleHQgd2lkZ2V0LCBhbmQgYSBsb3Qgb2YgVW5peCBjb2RlICh5ZXAgYW5vdGhlciBwbGFjZQotICAgICAgICB3aGVyZSBVbml4IHByb2dyYW1tZXIgYmFzZSB0YWtlcyBhIGRpZmZlcmVudCBhcHByb2FjaCBmcm9tIE1pY3Jvc29mdCAtCi0gICAgICAgIHRoZXkgYXJlIHVzaW5nIFVURi0xNik8L2xpPgotICAgIDwvdWw+Ci0gIDwvbGk+CisgICAgICAgIHdoZXJlIFVuaXggcHJvZ3JhbW1lciBiYXNlIHRha2VzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGZyb20gTWljcm9zb2Z0CisgICAgICAgIC0gdGhleSBhcmUgdXNpbmcgVVRGLTE2KTwvbGk+CiA8L3VsPgotCis8L2xpPgorPC91bD4KIDxwPldoYXQgZG9lcyB0aGlzIG1lYW4gaW4gcHJhY3RpY2UgZm9yIHRoZSBsaWJ4bWwgdXNlcjo8L3A+CiA8dWw+Ci0gIDxsaT54bWxDaGFyLCB0aGUgbGlieG1sIGRhdGEgdHlwZSBpcyBhIGJ5dGUsIHRob3NlIGJ5dGVzIG11c3QgYmUgYXNzZW1ibGVkCi0gICAgYXMgVVRGLTggdmFsaWQgc3RyaW5ncy4gVGhlIHByb3BlciB3YXkgdG8gdGVybWluYXRlIGFuIHhtbENoYXIgKiBzdHJpbmcgaXMKLSAgICBzaW1wbHkgdG8gYXBwZW5kIDAgYnl0ZSwgYXMgdXN1YWwuPC9saT4KLSAgPGxpPk9uZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB1c2luZyBjaGFycyBvdXRzaWRlIHRoZSBBU0NJSSBzZXQsCis8bGk+eG1sQ2hhciwgdGhlIGxpYnhtbCBkYXRhIHR5cGUgaXMgYSBieXRlLCB0aG9zZSBieXRlcyBtdXN0IGJlIGFzc2VtYmxlZAorICAgIGFzIFVURi04IHZhbGlkIHN0cmluZ3MuIFRoZSBwcm9wZXIgd2F5IHRvIHRlcm1pbmF0ZSBhbiB4bWxDaGFyICogc3RyaW5nCisgICAgaXMgc2ltcGx5IHRvIGFwcGVuZCAwIGJ5dGUsIGFzIHVzdWFsLjwvbGk+Cis8bGk+T25lIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3aGVuIHVzaW5nIGNoYXJzIG91dHNpZGUgdGhlIEFTQ0lJIHNldCwKICAgICB0aGUgdmFsdWVzIGhhcyBiZWVuIHByb3Blcmx5IGNvbnZlcnRlZCB0byBVVEYtODwvbGk+CiA8L3VsPgotCi08aDI+PGEgbmFtZT0iaW1wbGVtZW50ZSI+SG93IGlzIGl0IGltcGxlbWVudGVkID88L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9ImltcGxlbWVudGUiPkhvdyBpcyBpdCBpbXBsZW1lbnRlZCA/PC9hPjwvaDM+CiA8cD5MZXQncyBkZXNjcmliZSBob3cgYWxsIHRoaXMgd29ya3Mgd2l0aGluIGxpYnhtbCwgYmFzaWNhbGx5IHRoZSBJMThOCiAoaW50ZXJuYXRpb25hbGl6YXRpb24pIHN1cHBvcnQgZ2V0IHRyaWdnZXJlZCBvbmx5IGR1cmluZyBJL08gb3BlcmF0aW9uLCBpLmUuCiB3aGVuIHJlYWRpbmcgYSBkb2N1bWVudCBvciBzYXZpbmcgb25lLiBMZXQncyBsb29rIGZpcnN0IGF0IHRoZSByZWFkaW5nCiBzZXF1ZW5jZTo8L3A+CiA8b2w+Ci0gIDxsaT53aGVuIGEgZG9jdW1lbnQgaXMgcHJvY2Vzc2VkLCB3ZSB1c3VhbGx5IGRvbid0IGtub3cgdGhlIGVuY29kaW5nLCBhCis8bGk+d2hlbiBhIGRvY3VtZW50IGlzIHByb2Nlc3NlZCwgd2UgdXN1YWxseSBkb24ndCBrbm93IHRoZSBlbmNvZGluZywgYQogICAgIHNpbXBsZSBoZXVyaXN0aWMgYWxsb3dzIHRvIGRldGVjdCBVVEYtMTggYW5kIFVDUy00IGZyb20gd2hvc2Ugd2hlcmUgdGhlCiAgICAgQVNDSUkgcmFuZ2UgKDAtMHg3RikgbWFwcyB3aXRoIEFTQ0lJPC9saT4KLSAgPGxpPnRoZSB4bWwgZGVjbGFyYXRpb24gaWYgYXZhaWxhYmxlIGlzIHBhcnNlZCwgaW5jbHVkaW5nIHRoZSBlbmNvZGluZwotICAgIGRlY2xhcmF0aW9uLiBBdCB0aGF0IHBvaW50LCBpZiB0aGUgYXV0b2RldGVjdGVkIGVuY29kaW5nIGlzIGRpZmZlcmVudCBmcm9tCi0gICAgdGhlIG9uZSBkZWNsYXJlZCBhIGNhbGwgdG8geG1sU3dpdGNoRW5jb2RpbmcoKSBpcyBpc3N1ZWQuPC9saT4KLSAgPGxpPklmIHRoZXJlIGlzIG5vIGVuY29kaW5nIGRlY2xhcmF0aW9uLCB0aGVuIHRoZSBpbnB1dCBoYXMgdG8gYmUgaW4gZWl0aGVyCis8bGk+dGhlIHhtbCBkZWNsYXJhdGlvbiBpZiBhdmFpbGFibGUgaXMgcGFyc2VkLCBpbmNsdWRpbmcgdGhlIGVuY29kaW5nCisgICAgZGVjbGFyYXRpb24uIEF0IHRoYXQgcG9pbnQsIGlmIHRoZSBhdXRvZGV0ZWN0ZWQgZW5jb2RpbmcgaXMgZGlmZmVyZW50CisgICAgZnJvbSB0aGUgb25lIGRlY2xhcmVkIGEgY2FsbCB0byB4bWxTd2l0Y2hFbmNvZGluZygpIGlzIGlzc3VlZC48L2xpPgorPGxpPklmIHRoZXJlIGlzIG5vIGVuY29kaW5nIGRlY2xhcmF0aW9uLCB0aGVuIHRoZSBpbnB1dCBoYXMgdG8gYmUgaW4gZWl0aGVyCiAgICAgVVRGLTggb3IgVVRGLTE2LCBpZiBpdCBpcyBub3QgdGhlbiBhdCBzb21lIHBvaW50IHdoZW4gcHJvY2Vzc2luZyB0aGUKICAgICBpbnB1dCwgdGhlIGNvbnZlcnRlci9jaGVja2VyIG9mIFVURi04IGZvcm0gd2lsbCByYWlzZSBhbiBlbmNvZGluZyBlcnJvci4KICAgICBZb3UgbWF5IGVuZC11cCB3aXRoIGEgZ2FyYmxlZCBkb2N1bWVudCwgb3Igbm8gZG9jdW1lbnQgYXQgYWxsICEgRXhhbXBsZToKQEAgLTE1MCwxMTQgKzE5MywxMDQgQEAKIGVyci54bWw6MTogZXJyb3I6IEJ5dGVzOiAweEU4IDB4NzMgMHgzRSAweDZDCiAmbHQ7dHLocyZndDts4CZsdDsvdHLocyZndDsKICAgIF48L3ByZT4KLSAgPC9saT4KLSAgPGxpPnhtbFN3aXRjaEVuY29kaW5nKCkgZG9lcyBhbiBlbmNvZGluZyBuYW1lIGxvb2t1cCwgY2Fub25hbGl6ZSBpdCwgYW5kCis8L2xpPgorPGxpPnhtbFN3aXRjaEVuY29kaW5nKCkgZG9lcyBhbiBlbmNvZGluZyBuYW1lIGxvb2t1cCwgY2Fub25hbGl6ZSBpdCwgYW5kCiAgICAgdGhlbiBzZWFyY2ggdGhlIGRlZmF1bHQgcmVnaXN0ZXJlZCBlbmNvZGluZyBjb252ZXJ0ZXJzIGZvciB0aGF0IGVuY29kaW5nLgogICAgIElmIGl0J3Mgbm90IHdpdGhpbiB0aGUgZGVmYXVsdCBzZXQgYW5kIGljb252KCkgc3VwcG9ydCBoYXMgYmVlbiBjb21waWxlZAogICAgIGl0LCBpdCB3aWxsIGFzayBpY29udiBmb3Igc3VjaCBhbiBlbmNvZGVyLiBJZiB0aGlzIGZhaWxzIHRoZW4gdGhlIHBhcnNlcgogICAgIHdpbGwgcmVwb3J0IGFuIGVycm9yIGFuZCBzdG9wcyBwcm9jZXNzaW5nOgogICAgIDxwcmU+fi9YTUwgLSZndDsgLi94bWxsaW50IGVycjIueG1sIAogZXJyMi54bWw6MTogZXJyb3I6IFVuc3VwcG9ydGVkIGVuY29kaW5nIFVuc3VwcG9ydGVkRW5jCi0mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVbnN1cHBvcnRlZEVuYyI/Jmd0OworJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VW5zdXBwb3J0ZWRFbmMmcXVvdDs/Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXjwvcHJlPgotICA8L2xpPgotICA8bGk+RnJvbSB0aGF0IHBvaW50IHRoZSBlbmNvZGVyIHByb2Nlc3MgcHJvZ3Jlc3NpbmdseSB0aGUgaW5wdXQgKGl0IGlzCi0gICAgcGx1Z2dlZCBhcyBhIGZyb250LWVuZCB0byB0aGUgSS9PIG1vZHVsZSkgZm9yIHRoYXQgZW50aXR5LiBJdCBjYXB0dXJlcyBhbmQKLSAgICBjb252ZXJ0IG9uLXRoZS1mbHkgdGhlIGRvY3VtZW50IHRvIGJlIHBhcnNlZCB0byBVVEYtOC4gVGhlIHBhcnNlciBpdHNlbGYKLSAgICBqdXN0IGRvZXMgVVRGLTggY2hlY2tpbmcgb2YgdGhpcyBpbnB1dCBhbmQgcHJvY2VzcyBpdCB0cmFuc3BhcmVudGx5LiBUaGUKLSAgICBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgZW5jb2RpbmcgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQgdG8gdGhlCi0gICAgcGFyc2luZyBjb250ZXh0IChtb3JlIHByZWNpc2VseSB0byB0aGUgaW5wdXQgY29ycmVzcG9uZGluZyB0byB0aGlzCi0gICAgZW50aXR5KS48L2xpPgotICA8bGk+VGhlIHJlc3VsdCAod2hlbiB1c2luZyBET00pIGlzIGFuIGludGVybmFsIGZvcm0gY29tcGxldGVseSBpbiBVVEYtOCB3aXRoCi0gICAganVzdCBhbiBlbmNvZGluZyBpbmZvcm1hdGlvbiBvbiB0aGUgZG9jdW1lbnQgbm9kZS48L2xpPgorPC9saT4KKzxsaT5Gcm9tIHRoYXQgcG9pbnQgdGhlIGVuY29kZXIgcHJvY2VzcyBwcm9ncmVzc2luZ2x5IHRoZSBpbnB1dCAoaXQgaXMKKyAgICBwbHVnZ2VkIGFzIGEgZnJvbnQtZW5kIHRvIHRoZSBJL08gbW9kdWxlKSBmb3IgdGhhdCBlbnRpdHkuIEl0IGNhcHR1cmVzCisgICAgYW5kIGNvbnZlcnQgb24tdGhlLWZseSB0aGUgZG9jdW1lbnQgdG8gYmUgcGFyc2VkIHRvIFVURi04LiBUaGUgcGFyc2VyCisgICAgaXRzZWxmIGp1c3QgZG9lcyBVVEYtOCBjaGVja2luZyBvZiB0aGlzIGlucHV0IGFuZCBwcm9jZXNzIGl0CisgICAgdHJhbnNwYXJlbnRseS4gVGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBlbmNvZGluZyBpbmZvcm1hdGlvbiBoYXMKKyAgICBiZWVuIGFkZGVkIHRvIHRoZSBwYXJzaW5nIGNvbnRleHQgKG1vcmUgcHJlY2lzZWx5IHRvIHRoZSBpbnB1dAorICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBlbnRpdHkpLjwvbGk+Cis8bGk+VGhlIHJlc3VsdCAod2hlbiB1c2luZyBET00pIGlzIGFuIGludGVybmFsIGZvcm0gY29tcGxldGVseSBpbiBVVEYtOAorICAgIHdpdGgganVzdCBhbiBlbmNvZGluZyBpbmZvcm1hdGlvbiBvbiB0aGUgZG9jdW1lbnQgbm9kZS48L2xpPgogPC9vbD4KLQogPHA+T2sgdGhlbiB3aGF0J3MgaGFwcGVuIHdoZW4gc2F2aW5nIHRoZSBkb2N1bWVudCAoYXNzdW1pbmcgeW91CiBjb2xsbGVjdGVkL2J1aWx0IGFuIHhtbERvYyBET00gbGlrZSBzdHJ1Y3R1cmUpID8gSXQgZGVwZW5kcyBvbiB0aGUgZnVuY3Rpb24KIGNhbGxlZCwgeG1sU2F2ZUZpbGUoKSB3aWxsIGp1c3QgdHJ5IHRvIHNhdmUgaW4gdGhlIG9yaWdpbmFsIGVuY29kaW5nLCB3aGlsZQogeG1sU2F2ZUZpbGVUbygpIGFuZCB4bWxTYXZlRmlsZUVuYygpIGNhbiBvcHRpb25hbGx5IHNhdmUgdG8gYSBnaXZlbgogZW5jb2Rpbmc6PC9wPgogPG9sPgotICA8bGk+aWYgbm8gZW5jb2RpbmcgaXMgZ2l2ZW4sIGxpYnhtbCB3aWxsIGxvb2sgZm9yIGFuIGVuY29kaW5nIHZhbHVlCis8bGk+aWYgbm8gZW5jb2RpbmcgaXMgZ2l2ZW4sIGxpYnhtbCB3aWxsIGxvb2sgZm9yIGFuIGVuY29kaW5nIHZhbHVlCiAgICAgYXNzb2NpYXRlZCB0byB0aGUgZG9jdW1lbnQgYW5kIGlmIGl0IGV4aXN0cyB3aWxsIHRyeSB0byBzYXZlIHRvIHRoYXQKICAgICBlbmNvZGluZywKICAgICA8cD5vdGhlcndpc2UgZXZlcnl0aGluZyBpcyB3cml0dGVuIGluIHRoZSBpbnRlcm5hbCBmb3JtLCBpLmUuIFVURi04PC9wPgotICA8L2xpPgotICA8bGk+c28gaWYgYW4gZW5jb2Rpbmcgd2FzIHNwZWNpZmllZCwgZWl0aGVyIGF0IHRoZSBBUEkgbGV2ZWwgb3Igb24gdGhlCis8L2xpPgorPGxpPnNvIGlmIGFuIGVuY29kaW5nIHdhcyBzcGVjaWZpZWQsIGVpdGhlciBhdCB0aGUgQVBJIGxldmVsIG9yIG9uIHRoZQogICAgIGRvY3VtZW50LCBsaWJ4bWwgd2lsbCBhZ2FpbiBjYW5vbmFsaXplIHRoZSBlbmNvZGluZyBuYW1lLCBsb29rdXAgZm9yIGEKICAgICBjb252ZXJ0ZXIgaW4gdGhlIHJlZ2lzdGVyZWQgc2V0IG9yIHRocm91Z2ggaWNvbnYuIElmIG5vdCBmb3VuZCB0aGUKICAgICBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBlcnJvciBjb2RlPC9saT4KLSAgPGxpPnRoZSBjb252ZXJ0ZXIgaXMgcGxhY2VkIGJlZm9yZSB0aGUgSS9PIGJ1ZmZlciBsYXllciwgYXMgYW5vdGhlciBraW5kIG9mCis8bGk+dGhlIGNvbnZlcnRlciBpcyBwbGFjZWQgYmVmb3JlIHRoZSBJL08gYnVmZmVyIGxheWVyLCBhcyBhbm90aGVyIGtpbmQgb2YKICAgICBidWZmZXIsIHRoZW4gbGlieG1sIHdpbGwgc2ltcGx5IHB1c2ggdGhlIFVURi04IHNlcmlhbGl6YXRpb24gdG8gdGhyb3VnaAogICAgIHRoYXQgYnVmZmVyLCB3aGljaCB3aWxsIHRoZW4gcHJvZ3Jlc3NpdmVseSBiZSBjb252ZXJ0ZWQgYW5kIHB1c2hlZCBvbnRvCiAgICAgdGhlIEkvTyBsYXllci48L2xpPgotICA8bGk+SXQgaXMgcG9zc2libGUgdGhhdCB0aGUgY29udmVydGVyIGNvZGUgZmFpbHMgb24gc29tZSBpbnB1dCwgZm9yIGV4YW1wbGUKKzxsaT5JdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBjb252ZXJ0ZXIgY29kZSBmYWlscyBvbiBzb21lIGlucHV0LCBmb3IgZXhhbXBsZQogICAgIHRyeWluZyB0byBwdXNoIGFuIFVURi04IGVuY29kZWQgY2hpbmVzZSBjaGFyYWN0ZXIgdGhyb3VnaCB0aGUgVVRGLTggdG8KICAgICBJU08tODg1OS0xIGNvbnZlcnRlciB3b24ndCB3b3JrLiBTaW5jZSB0aGUgZW5jb2RlcnMgYXJlIHByb2dyZXNzaXZlIHRoZXkKICAgICB3aWxsIGp1c3QgcmVwb3J0IHRoZSBlcnJvciBhbmQgdGhlIG51bWJlciBvZiBieXRlcyBjb252ZXJ0ZWQsIGF0IHRoYXQKICAgICBwb2ludCBsaWJ4bWwgd2lsbCBkZWNvZGUgdGhlIG9mZmVuZGluZyBjaGFyYWN0ZXIsIHJlbW92ZSBpdCBmcm9tIHRoZQogICAgIGJ1ZmZlciBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBhc3NvY2lhdGVkIGNoYXJSZWYgZW5jb2RpbmcgJmFtcDsjMTIzOyBhbmQKICAgICByZXN1bWUgdGhlIGNvbnZlcnRpb24uIFRoaXMgZ3VhcmFudGUgdGhhdCBhbnkgZG9jdW1lbnQgd2lsbCBiZSBzYXZlZAotICAgIHdpdGhvdXQgbG9zc2VzIChleGNlcHQgZm9yIG1hcmt1cCBuYW1lcyB3aGVyZSB0aGlzIGlzIG5vdCBsZWdhbCwgdGhpcyBpcyBhCi0gICAgcHJvYmxlbSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLCBpbiBwYWN0aWNlIGF2b2lkIHVzaW5nIG5vbi1hc2NjaQotICAgIGNoYXJhY3RlcnMgZm9yIHRhZ3Mgb3IgYXR0cmlidXRlcyBuYW1lcyAgQEApLiBBIHNwZWNpYWwgImFzY2lpIiBlbmNvZGluZworICAgIHdpdGhvdXQgbG9zc2VzIChleGNlcHQgZm9yIG1hcmt1cCBuYW1lcyB3aGVyZSB0aGlzIGlzIG5vdCBsZWdhbCwgdGhpcyBpcworICAgIGEgcHJvYmxlbSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLCBpbiBwYWN0aWNlIGF2b2lkIHVzaW5nIG5vbi1hc2NjaQorICAgIGNoYXJhY3RlcnMgZm9yIHRhZ3Mgb3IgYXR0cmlidXRlcyBuYW1lcyAgQEApLiBBIHNwZWNpYWwgJnF1b3Q7YXNjaWkmcXVvdDsgZW5jb2RpbmcKICAgICBuYW1lIGlzIHVzZWQgdG8gc2F2ZSBkb2N1bWVudHMgdG8gYSBwdXJlIGFzY2lpIGZvcm0gY2FuIGJlIHVzZWQgd2hlbgogICAgIHBvcnRhYmlsaXR5IGlzIHJlYWxseSBjcnVjaWFsPC9saT4KIDwvb2w+Ci0KIDxwPkhlcmUgaXMgYSBmZXcgZXhhbXBsZXMgYmFzZWQgb24gdGhlIHNhbWUgdGVzdCBkb2N1bWVudDo8L3A+CiA8cHJlPn4vWE1MIC0mZ3Q7IC4veG1sbGludCBpc29sYXQxIAotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Jmd0OworJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7SVNPLTg4NTktMSZxdW90Oz8mZ3Q7CiAmbHQ7dHLocyZndDts4CZsdDsvdHLocyZndDsKIH4vWE1MIC0mZ3Q7IC4veG1sbGludCAtLWVuY29kZSBVVEYtOCBpc29sYXQxIAotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPyZndDsKKyZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsKICZsdDt0csOocyZndDtswyCgJmx0Oy90csOocyZndDsKIH4vWE1MIC0mZ3Q7IDwvcHJlPgotCiA8cD5UaGUgc2FtZSBwcm9jZXNzaW5nIGlzIGFwcGxpZWQgKGFuZCByZXVzZSBtb3N0IG9mIHRoZSBjb2RlKSBmb3IgSFRNTCBJMThOCiBwcm9jZXNzaW5nLiBMb29raW5nIHVwIGFuZCBtb2RpZnlpbmcgdGhlIGNvbnRlbnQgZW5jb2RpbmcgaXMgYSBiaXQgbW9yZQotZGlmZmljdWx0IHNpbmNlIGl0IGlzIGxvY2F0ZWQgaW4gYSAmbHQ7bWV0YSZndDsgdGFnIHVuZGVyIHRoZSAmbHQ7aGVhZCZndDssIHNvCi1hIGNvdXBsZSBvZiBmdW5jdGlvbnMgaHRtbEdldE1ldGFFbmNvZGluZygpIGFuZCBodG1sU2V0TWV0YUVuY29kaW5nKCkgaGF2ZQorZGlmZmljdWx0IHNpbmNlIGl0IGlzIGxvY2F0ZWQgaW4gYSAmbHQ7bWV0YSZndDsgdGFnIHVuZGVyIHRoZSAmbHQ7aGVhZCZndDssCitzbyBhIGNvdXBsZSBvZiBmdW5jdGlvbnMgaHRtbEdldE1ldGFFbmNvZGluZygpIGFuZCBodG1sU2V0TWV0YUVuY29kaW5nKCkgaGF2ZQogYmVlbiBwcm92aWRlZC4gVGhlIHBhcnNlciBhbHNvIGF0dGVtcHRzIHRvIHN3aXRjaCBlbmNvZGluZyBvbiB0aGUgZmx5IHdoZW4KLWRldGVjdGluZyBzdWNoIGEgdGFnIG9uIGlucHV0LiBFeGNlcHQgZm9yIHRoYXQgdGhlIHByb2Nlc3NpbmcgaXMgdGhlIHNhbWUgKGFuZAotYWdhaW4gcmV1c2VzIHRoZSBzYW1lIGNvZGUpLjwvcD4KLQotPGgyPjxhIG5hbWU9IkRlZmF1bHQiPkRlZmF1bHQgc3VwcG9ydGVkIGVuY29kaW5nczwvYT48L2gyPgotCi08cD5saWJ4bWwgaGFzIGEgc2V0IG9mIGRlZmF1bHQgY29udmVydGVycyBmb3IgdGhlIGZvbGxvd2luZyBlbmNvZGluZ3MgKGxvY2F0ZWQKLWluIGVuY29kaW5nLmMpOjwvcD4KK2RldGVjdGluZyBzdWNoIGEgdGFnIG9uIGlucHV0LiBFeGNlcHQgZm9yIHRoYXQgdGhlIHByb2Nlc3NpbmcgaXMgdGhlIHNhbWUKKyhhbmQgYWdhaW4gcmV1c2VzIHRoZSBzYW1lIGNvZGUpLjwvcD4KKzxoMz48YSBuYW1lPSJEZWZhdWx0Ij5EZWZhdWx0IHN1cHBvcnRlZCBlbmNvZGluZ3M8L2E+PC9oMz4KKzxwPmxpYnhtbCBoYXMgYSBzZXQgb2YgZGVmYXVsdCBjb252ZXJ0ZXJzIGZvciB0aGUgZm9sbG93aW5nIGVuY29kaW5ncworKGxvY2F0ZWQgaW4gZW5jb2RpbmcuYyk6PC9wPgogPG9sPgotICA8bGk+VVRGLTggaXMgc3VwcG9ydGVkIGJ5IGRlZmF1bHQgKG51bGwgaGFuZGxlcnMpPC9saT4KLSAgPGxpPlVURi0xNiwgYm90aCBsaXR0bGUgYW5kIGJpZyBlbmRpYW48L2xpPgotICA8bGk+SVNPLUxhdGluLTEgKElTTy04ODU5LTEpIGNvdmVyaW5nIG1vc3Qgd2VzdGVybiBsYW5ndWFnZXM8L2xpPgotICA8bGk+QVNDSUksIHVzZWZ1bCBtb3N0bHkgZm9yIHNhdmluZzwvbGk+Ci0gIDxsaT5IVE1MLCBhIHNwZWNpZmljIGhhbmRsZXIgZm9yIHRoZSBjb252ZXJzaW9uIG9mIFVURi04IHRvIEFTQ0lJIHdpdGggSFRNTAorPGxpPlVURi04IGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0IChudWxsIGhhbmRsZXJzKTwvbGk+Cis8bGk+VVRGLTE2LCBib3RoIGxpdHRsZSBhbmQgYmlnIGVuZGlhbjwvbGk+Cis8bGk+SVNPLUxhdGluLTEgKElTTy04ODU5LTEpIGNvdmVyaW5nIG1vc3Qgd2VzdGVybiBsYW5ndWFnZXM8L2xpPgorPGxpPkFTQ0lJLCB1c2VmdWwgbW9zdGx5IGZvciBzYXZpbmc8L2xpPgorPGxpPkhUTUwsIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgdGhlIGNvbnZlcnNpb24gb2YgVVRGLTggdG8gQVNDSUkgd2l0aCBIVE1MCiAgICAgcHJlZGVmaW5lZCBlbnRpdGllcyBsaWtlICZhbXA7Y29weTsgZm9yIHRoZSBDb3B5cmlnaHQgc2lnbi48L2xpPgogPC9vbD4KLQogPHA+TW9yZSBvdmVyIHdoZW4gY29tcGlsZWQgb24gYW4gVW5peCBwbGF0Zm9yIHdpdGggaWNvbnYgc3VwcG9ydCB0aGUgZnVsbCBzZXQKLW9mIGVuY29kaW5ncyBzdXBwb3J0ZWQgYnkgaWNvbnYgY2FuIGJlIGluc3RhbnRseSBiZSB1c2VkIGJ5IGxpYnhtbC4gT24gYSBsaW51eAotbWFjaGluZSB3aXRoIGdsaWJjLTIuMSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZW5jb2RpbmdzIGFuZCBhbGlhc2VzIGZpbGwgMyBmdWxsCi1wYWdlcywgYW5kIGluY2x1ZGUgVUNTLTQsIHRoZSBmdWxsIHNldCBvZiBJU08tTGF0aW4gZW5jb2RpbmdzLCBhbmQgdGhlIHZhcmlvdXMKLUphcGFuZXNlIG9uZXMuPC9wPgotCi08aDM+RW5jb2RpbmcgYWxpYXNlczwvaDM+Ci0KLTxwPkZyb20gMi4yLjMsIGxpYnhtbCBoYXMgc3VwcG9ydCB0byByZWdpc3RlciBlbmNvZGluZyBuYW1lcyBhbGlhc2VzLiBUaGUgZ29hbAotaXMgdG8gYmUgYWJsZSB0byBwYXJzZSBkb2N1bWVudCB3aG9zZSBlbmNvZGluZyBpcyBzdXBwb3J0ZWQgYnV0IHdoZXJlIHRoZSBuYW1lCi1kaWZmZXJzIChmb3IgZXhhbXBsZSBmcm9tIHRoZSBkZWZhdWx0IHNldCBvZiBuYW1lcyBhY2NlcHRlZCBieSBpY29udikuIFRoZQotZm9sbG93aW5nIGZ1bmN0aW9ucyBhbGxvdyB0byByZWdpc3RlciBhbmQgaGFuZGxlIG5ldyBhbGlhc2VzIGZvciBleGlzdGluZwotZW5jb2RpbmdzLiBPbmNlIHJlZ2lzdGVyZWQgbGlieG1sIHdpbGwgYXV0b21hdGljYWxseSBsb29rdXAgdGhlIGFsaWFzZXMgd2hlbgotaGFuZGxpbmcgYSBkb2N1bWVudDo8L3A+CitvZiBlbmNvZGluZ3Mgc3VwcG9ydGVkIGJ5IGljb252IGNhbiBiZSBpbnN0YW50bHkgYmUgdXNlZCBieSBsaWJ4bWwuIE9uIGEKK2xpbnV4IG1hY2hpbmUgd2l0aCBnbGliYy0yLjEgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGVuY29kaW5ncyBhbmQgYWxpYXNlcyBmaWxsCiszIGZ1bGwgcGFnZXMsIGFuZCBpbmNsdWRlIFVDUy00LCB0aGUgZnVsbCBzZXQgb2YgSVNPLUxhdGluIGVuY29kaW5ncywgYW5kIHRoZQordmFyaW91cyBKYXBhbmVzZSBvbmVzLjwvcD4KKzxoND5FbmNvZGluZyBhbGlhc2VzPC9oND4KKzxwPkZyb20gMi4yLjMsIGxpYnhtbCBoYXMgc3VwcG9ydCB0byByZWdpc3RlciBlbmNvZGluZyBuYW1lcyBhbGlhc2VzLiBUaGUKK2dvYWwgaXMgdG8gYmUgYWJsZSB0byBwYXJzZSBkb2N1bWVudCB3aG9zZSBlbmNvZGluZyBpcyBzdXBwb3J0ZWQgYnV0IHdoZXJlCit0aGUgbmFtZSBkaWZmZXJzIChmb3IgZXhhbXBsZSBmcm9tIHRoZSBkZWZhdWx0IHNldCBvZiBuYW1lcyBhY2NlcHRlZCBieQoraWNvbnYpLiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhbGxvdyB0byByZWdpc3RlciBhbmQgaGFuZGxlIG5ldyBhbGlhc2VzIGZvcgorZXhpc3RpbmcgZW5jb2RpbmdzLiBPbmNlIHJlZ2lzdGVyZWQgbGlieG1sIHdpbGwgYXV0b21hdGljYWxseSBsb29rdXAgdGhlCithbGlhc2VzIHdoZW4gaGFuZGxpbmcgYSBkb2N1bWVudDo8L3A+CiA8dWw+Ci0gIDxsaT5pbnQgeG1sQWRkRW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICphbGlhcyk7PC9saT4KLSAgPGxpPmludCB4bWxEZWxFbmNvZGluZ0FsaWFzKGNvbnN0IGNoYXIgKmFsaWFzKTs8L2xpPgotICA8bGk+Y29uc3QgY2hhciAqIHhtbEdldEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqYWxpYXMpOzwvbGk+Ci0gIDxsaT52b2lkIHhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXModm9pZCk7PC9saT4KKzxsaT5pbnQgeG1sQWRkRW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKzxsaT5pbnQgeG1sRGVsRW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKzxsaT5jb25zdCBjaGFyICogeG1sR2V0RW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKzxsaT52b2lkIHhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXModm9pZCk7PC9saT4KIDwvdWw+Ci0KLTxoMj48YSBuYW1lPSJleHRlbmQiPkhvdyB0byBleHRlbmQgdGhlIGV4aXN0aW5nIHN1cHBvcnQ8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9ImV4dGVuZCI+SG93IHRvIGV4dGVuZCB0aGUgZXhpc3Rpbmcgc3VwcG9ydDwvYT48L2gzPgogPHA+V2VsbCBhZGRpbmcgc3VwcG9ydCBmb3IgbmV3IGVuY29kaW5nLCBvciBvdmVycmlkaW5nIG9uZSBvZiB0aGUgZW5jb2RlcnMKIChhc3N1bWluZyBpdCBpcyBidWdneSkgc2hvdWxkIG5vdCBiZSBoYXJkLCBqdXN0IHdyaXRlIGFuIGlucHV0IGFuZCBvdXRwdXQKIGNvbnZlcnNpb24gcm91dGluZXMgdG8vZnJvbSBVVEYtOCwgYW5kIHJlZ2lzdGVyIHRoZW0gdXNpbmcKQEAgLTI2NiwyMyArMjk5LDIxIEBACiAocmVnaXN0ZXIgaXQgdXBwZXJjYXNlLCB0aGlzIHdpbGwgaGVscCkuIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZW5jb2RlcnMsCiB0aGVpciBhcmd1bWVudHMgYW5kIGV4cGVjdGVkIHJldHVybiB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZW5jb2RpbmcuaAogaGVhZGVyLjwvcD4KLQogPHA+QSBxdWljayBub3RlIG9uIHRoZSB0b3BpYyBvZiBzdWJ2ZXJ0aW5nIHRoZSBwYXJzZXIgdG8gdXNlIGEgZGlmZmVyZW50Ci1pbnRlcm5hbCBlbmNvZGluZyB0aGFuIFVURi04LCBpbiBzb21lIGNhc2UgcGVvcGxlIHdpbGwgYWJzb2x1dGVseSB3YW50IHRvIGtlZXAKLXRoZSBpbnRlcm5hbCBlbmNvZGluZyBkaWZmZXJlbnQsIEkgdGhpbmsgaXQncyBzdGlsbCBwb3NzaWJsZSAoYnV0IHRoZSBlbmNvZGluZwotbXVzdCBiZSBjb21wbGlhbnQgd2l0aCBBU0NJSSBvbiB0aGUgc2FtZSBzdWJyYW5nZSkgdGhvdWdoIEkgZGlkbid0IHRyaWVkIGl0LgotVGhlIGtleSBpcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb252ZXJzaW9uIHJvdXRpbmVzIChieSByZWdpc3RlcmluZyBudWxsCi1lbmNvZGVycy9kZWNvZGVycyBmb3IgeW91ciBjaGFyc2V0cyksIGFuZCBieXBhc3MgdGhlIFVURi04IGNoZWNraW5nIG9mIHRoZQotcGFyc2VyIGJ5IHNldHRpbmcgdGhlIHBhcnNlciBjb250ZXh0IGNoYXJzZXQgKGN0eHQtJmd0O2NoYXJzZXQpIHRvIHNvbWV0aGluZwotZGlmZmVyZW50IHRoYW4gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCwgYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0YWh0IHRoaXMKLXdpbGwgd29yay4gWW91IG1heSBhbHNvIGhhdmUgc29tZSB0cm91YmxlcyBzYXZpbmcgYmFjay48L3A+Ci0KK2ludGVybmFsIGVuY29kaW5nIHRoYW4gVVRGLTgsIGluIHNvbWUgY2FzZSBwZW9wbGUgd2lsbCBhYnNvbHV0ZWx5IHdhbnQgdG8KK2tlZXAgdGhlIGludGVybmFsIGVuY29kaW5nIGRpZmZlcmVudCwgSSB0aGluayBpdCdzIHN0aWxsIHBvc3NpYmxlIChidXQgdGhlCitlbmNvZGluZyBtdXN0IGJlIGNvbXBsaWFudCB3aXRoIEFTQ0lJIG9uIHRoZSBzYW1lIHN1YnJhbmdlKSB0aG91Z2ggSSBkaWRuJ3QKK3RyaWVkIGl0LiBUaGUga2V5IGlzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbnZlcnNpb24gcm91dGluZXMgKGJ5CityZWdpc3RlcmluZyBudWxsIGVuY29kZXJzL2RlY29kZXJzIGZvciB5b3VyIGNoYXJzZXRzKSwgYW5kIGJ5cGFzcyB0aGUgVVRGLTgKK2NoZWNraW5nIG9mIHRoZSBwYXJzZXIgYnkgc2V0dGluZyB0aGUgcGFyc2VyIGNvbnRleHQgY2hhcnNldAorKGN0eHQtJmd0O2NoYXJzZXQpIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBYTUxfQ0hBUl9FTkNPRElOR19VVEY4LCBidXQKK3RoZXJlIGlzIG5vIGd1YXJhbnRlZSB0YWh0IHRoaXMgd2lsbCB3b3JrLiBZb3UgbWF5IGFsc28gaGF2ZSBzb21lIHRyb3VibGVzCitzYXZpbmcgYmFjay48L3A+CiA8cD5CYXNpY2FsbHkgcHJvcGVyIEkxOE4gc3VwcG9ydCBpcyBpbXBvcnRhbnQsIHRoaXMgcmVxdWlyZXMgYXQgbGVhc3QKIGxpYnhtbC0yLjAuMCwgYnV0IGEgbG90IG9mIGZlYXR1cmVzIGFuZCBjb3JyZWN0aW9ucyBhcmUgcmVhbGx5IGF2YWlsYWJsZSBvbmx5CiBzdGFydGluZyAyLjIuPC9wPgotCiA8cD48YSBocmVmPSJtYWlsdG86ZGFuaWVsQHZlaWxsYXJkLmNvbSI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KLQotPHA+JElkJDwvcD4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvZW50aXRpZXMuaHRtbCBiL2RvYy9lbnRpdGllcy5odG1sCmluZGV4IDY0YWUxZmEuLjM3MDkxMzYgMTAwNjQ0Ci0tLSBhL2RvYy9lbnRpdGllcy5odG1sCisrKyBiL2RvYy9lbnRpdGllcy5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5FbnRpdGllcyBvciBubyBlbnRpdGllczwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2V4YW1wbGUuaHRtbCBiL2RvYy9leGFtcGxlLmh0bWwKaW5kZXggMTRjY2FhMS4uMmNmNzc2MyAxMDA2NDQKLS0tIGEvZG9jL2V4YW1wbGUuaHRtbAorKysgYi9kb2MvZXhhbXBsZS5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5BIHJlYWwgZXhhbXBsZTwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2hlbHAuaHRtbCBiL2RvYy9oZWxwLmh0bWwKaW5kZXggMmQwZmIzMS4uMjY2ZGY2OSAxMDA2NDQKLS0tIGEvZG9jL2hlbHAuaHRtbAorKysgYi9kb2MvaGVscC5odG1sCkBAIC04LDYgKzgsNyBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KIDx0aXRsZT5Ib3cgdG8gaGVscDwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2luZGV4Lmh0bWwgYi9kb2MvaW5kZXguaHRtbAppbmRleCBkMzQxZWViLi5lMTM0ODBkIDEwMDY0NAotLS0gYS9kb2MvaW5kZXguaHRtbAorKysgYi9kb2MvaW5kZXguaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC90aXRsZT4KIDwvaGVhZD4KQEAgLTI3LDggKzI4LDggQEAKIDx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgogPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KIDxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KIDxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT4KIDxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+CkBAIC0zNiwyMSArMzcsMjEgQEAKIDxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPkFuIG92ZXJ2aWV3IG9mIGxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0idmFsaWQuaHRtbCI+VmFsaWRhdGlvbiwgb3IgYXJlIHlvdSBhZnJhaWQgb2YgRFREcyA/PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+RFREIHN1cHBvcnQ8L2E+PC9saT4KIDxsaT4KIDxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT4KIDwvbGk+CkBAIC04NCwyMSArODUsMTMgQEAKIDxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBYTUwgbGlicmFyeSBpbnRlcmZhY2VzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ2YWxpZC5odG1sIj5WYWxpZGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb248L2E+PC9saT4KIDxsaT48YSBocmVmPSIjUHJpbmNpcGxlcyI+RE9NIHByaW5jaXBsZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSIjcmVhbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+CiA8L3VsPgogPHA+U2VwYXJhdGUgZG9jdW1lbnRzOjwvcD4KIDx1bD4KLTxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPnVwZ3JhZGUgaW5zdHJ1Y3Rpb25zIGZvciBtaWdyYXRpbmcgdG8KLSAgbGlieG1sMjwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPmxpYnhtbCBJbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+bGlieG1sIElucHV0L091dHB1dCBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPmxpYnhtbCBNZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+bGlieG1sIENhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5hIHNob3J0IGludHJvZHVjdGlvbiBhYm91dCBEVERzIGFuZAotICBsaWJ4bWw8L2E+PC9saT4KIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPnRoZSBsaWJ4c2x0IHBhZ2U8L2E+PC9saT4KIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj50aGUgZ2RvbWUyIHBhZ2U6IGEKICAgICBzdGFuZGFyZCBET00gaW50ZXJmYWNlIGZvciBsaWJ4bWwyPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvaW50ZXJmYWNlLmh0bWwgYi9kb2MvaW50ZXJmYWNlLmh0bWwKaW5kZXggZWJhMTljYi4uNjRlMzJlOSAxMDA2NDQKLS0tIGEvZG9jL2ludGVyZmFjZS5odG1sCisrKyBiL2RvYy9pbnRlcmZhY2UuaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+VGhlIFNBWCBpbnRlcmZhY2U8L3RpdGxlPgogPC9oZWFkPgpAQCAtMjcsOCArMjgsOCBAQAogPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+CiA8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgogPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KLTxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KQEAgLTM2LDIxICszNywyMSBAQAogPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KLTxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBYTUwgbGlicmFyeSBpbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ2YWxpZC5odG1sIj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2dzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5EVEQgc3VwcG9ydDwvYT48L2xpPgogPGxpPgogPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgogPC9saT4KZGlmZiAtLWdpdCBhL2RvYy9pbnRyby5odG1sIGIvZG9jL2ludHJvLmh0bWwKaW5kZXggNmE1OWM5Mi4uNGM3ZGVjNSAxMDA2NDQKLS0tIGEvZG9jL2ludHJvLmh0bWwKKysrIGIvZG9jL2ludHJvLmh0bWwKQEAgLTgsNiArOCw3IEBACiBIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CiAtLT48L3N0eWxlPgogPHRpdGxlPkludHJvZHVjdGlvbjwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2xpYnJhcnkuaHRtbCBiL2RvYy9saWJyYXJ5Lmh0bWwKaW5kZXggZmMyZGQ1MC4uZTkzYzA5OCAxMDA2NDQKLS0tIGEvZG9jL2xpYnJhcnkuaHRtbAorKysgYi9kb2MvbGlicmFyeS5odG1sCkBAIC04LDggKzgsOSBAQAogSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQogSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQogLS0+PC9zdHlsZT4KLTx0aXRsZT5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvdGl0bGU+Cis8dGl0bGU+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC90aXRsZT4KIDwvaGVhZD4KIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiMwMDAwMDAiIHZsaW5rPSIjMDAwMDAwIj4KIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj4KQEAgLTE4LDcgKzE5LDcgQEAKIDwvdGQ+CiA8dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+CiA8aDE+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC9oMT4KLTxoMj5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvaDI+Cis8aDI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9oMj4KIDwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+CiA8L3RyPjwvdGFibGU+CiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KQEAgLTI3LDggKzI4LDggQEAKIDx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgogPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KIDxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KIDxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT4KIDxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+CkBAIC0zNiwyMSArMzcsMjEgQEAKIDxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPkFuIG92ZXJ2aWV3IG9mIGxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0idmFsaWQuaHRtbCI+VmFsaWRhdGlvbiwgb3IgYXJlIHlvdSBhZnJhaWQgb2YgRFREcyA/PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9ncyBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IGludGVyZmFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+RFREIHN1cHBvcnQ8L2E+PC9saT4KIDxsaT4KIDxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT4KIDwvbGk+CmRpZmYgLS1naXQgYS9kb2MvbmFtZXNwYWNlcy5odG1sIGIvZG9jL25hbWVzcGFjZXMuaHRtbAppbmRleCA1MmQ3ZDViLi5hMzQ5NTQwIDEwMDY0NAotLS0gYS9kb2MvbmFtZXNwYWNlcy5odG1sCisrKyBiL2RvYy9uYW1lc3BhY2VzLmh0bWwKQEAgLTgsNiArOCw3IEBACiBIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CiAtLT48L3N0eWxlPgogPHRpdGxlPk5hbWVzcGFjZXM8L3RpdGxlPgogPC9oZWFkPgpAQCAtMjcsOCArMjgsOCBAQAogPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+CiA8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgogPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KLTxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KQEAgLTM2LDIxICszNywyMSBAQAogPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KIDxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KLTxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBYTUwgbGlicmFyeSBpbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ2YWxpZC5odG1sIj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2dzIHN1cHBvcnQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5EVEQgc3VwcG9ydDwvYT48L2xpPgogPGxpPgogPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgogPC9saT4KZGlmZiAtLWdpdCBhL2RvYy9uZXdzLmh0bWwgYi9kb2MvbmV3cy5odG1sCmluZGV4IGY1YzhiYzIuLmRiY2I2NjMgMTAwNjQ0Ci0tLSBhL2RvYy9uZXdzLmh0bWwKKysrIGIvZG9jL25ld3MuaHRtbApAQCAtOCw2ICs4LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIC0tPjwvc3R5bGU+CiA8dGl0bGU+TmV3czwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL3NpdGUueHNsIGIvZG9jL3NpdGUueHNsCmluZGV4IDY3Zjk3YjZhLi4yZDc5NDY0IDEwMDY0NAotLS0gYS9kb2Mvc2l0ZS54c2wKKysrIGIvZG9jL3NpdGUueHNsCkBAIC0xLDkgKzEsMTA0IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiPz4KIDx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIj4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiB2ZXJzaW9uPSI0LjAxIiBlbmNvZGluZz0iSVNPLTg4NTktMSIvPgorPCEtLQorIC0gcmV0dXJucyB0aGUgZmlsZW5hbWUgYXNzb2NpYXRlZCB0byBhbiBJRCBpbiB0aGUgb3JpZ2luYWwgZmlsZQorIC0tPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9ImZpbGVuYW1lIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBocmVmKSIvPgorICAgIDx4c2w6Y2hvb3NlPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNJbnRyb2R1Y3RpJyI+CisgICAgICAgIDx4c2w6dGV4dD5pbnRyby5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RvY3VtZW50YXQnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmRvY3MuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNSZXBvcnRpbmcnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmJ1Z3MuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNoZWxwJyI+CisgICAgICAgIDx4c2w6dGV4dD5oZWxwLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSGVscCciPgorICAgICAgICA8eHNsOnRleHQ+aGVscC5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0Rvd25sb2FkcyciPgorICAgICAgICA8eHNsOnRleHQ+ZG93bmxvYWRzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmV3cyciPgorICAgICAgICA8eHNsOnRleHQ+bmV3cy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0NvbnRyaWJ1dGknIj4KKyAgICAgICAgPHhzbDp0ZXh0PmNvbnRyaWJzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjeHNsdHByb2MnIj4KKyAgICAgICAgPHhzbDp0ZXh0PnhzbHRwcm9jMi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0FQSSciPgorICAgICAgICA8eHNsOnRleHQ+QVBJLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjWFNMVCciPgorICAgICAgICA8eHNsOnRleHQ+WFNMVC5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1hNTCciPgorICAgICAgICA8eHNsOnRleHQ+WE1MLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjVmFsaWRhdGlvbiciPgorICAgICAgICA8eHNsOnRleHQ+eG1sZHRkLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjdHJlZSciPgorICAgICAgICA8eHNsOnRleHQ+dHJlZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2xpYnJhcnknIj4KKyAgICAgICAgPHhzbDp0ZXh0PmxpYnJhcnkuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNpbnRlcmZhY2UnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmludGVyZmFjZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0V4YW1wbGUnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmV4YW1wbGUuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNFbnRpdGllcyciPgorICAgICAgICA8eHNsOnRleHQ+ZW50aXRpZXMuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNhcmNoaXRlY3R1cmUnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmFyY2hpdGVjdHVyZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI05hbWVzcGFjZXMnIj4KKyAgICAgICAgPHhzbDp0ZXh0Pm5hbWVzcGFjZXMuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNET00nIj4KKyAgICAgICAgPHhzbDp0ZXh0PkRPTS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0NhdGFsb2cnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmNhdGFsb2cuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNVcGdyYWRpbmcnIj4KKyAgICAgICAgPHhzbDp0ZXh0PnVwZ3JhZGUuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNFbmNvZGluZ3MnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmVuY29kaW5nLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSU8nIj4KKyAgICAgICAgPHhzbDp0ZXh0PnhtbGlvLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTWVtb3J5JyI+CisgICAgICAgIDx4c2w6dGV4dD54bWxtZW0uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNGQVEnIj4KKyAgICAgICAgPHhzbDp0ZXh0PkZBUS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnJyI+CisgICAgICAgIDx4c2w6dGV4dD51bmtub3duLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6b3RoZXJ3aXNlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgIDwveHNsOm90aGVyd2lzZT4KKyAgICA8L3hzbDpjaG9vc2U+CisgIDwveHNsOnRlbXBsYXRlPgogPCEtLQogIC0gVGhlIGdsb2JhbCB0aXRsZQogIC0tPgotICA8eHNsOm91dHB1dCBtZXRob2Q9Imh0bWwiIHZlcnNpb249IjQuMDEiIGVuY29kaW5nPSJJU08tODg1OS0xIi8+CiAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZ2xvYmFsdGl0bGUiIHNlbGVjdD0ic3RyaW5nKC9odG1sL2JvZHkvaDFbMV0pIi8+CiA8IS0tCiAgLSBUaGUgdGFibGUgb2YgY29udGVudApAQCAtMTEsNyArMTA2LDYgQEAKICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0b2MiPgogICAgIDx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgogICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KLSAgICAgIDxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2h0bWwvYm9keS9oMiI+CiAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZmlsZW5hbWUiPgogICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJmaWxlbmFtZSI+CkBAIC0yNywxMSArMTIxLDYgQEAKICAgICAgICAgICA8L3hzbDplbGVtZW50PgogICAgICAgICA8L2xpPgogICAgICAgPC94c2w6Zm9yLWVhY2g+Ci0gICAgICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KLSAgICAgIDxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2dzIHN1cHBvcnQ8L2E+PC9saT4KLSAgICAgIDxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gaW50ZXJmYWNlczwvYT48L2xpPgotICAgICAgPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotICAgICAgPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5EVEQgc3VwcG9ydDwvYT48L2xpPgogICAgICAgPGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPgogICAgIDwvdWw+CiAgIDwveHNsOnZhcmlhYmxlPgpAQCAtOTgsNiArMTg3LDcgQEAKIEgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KIEgzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KIDx4c2w6dGV4dCBkaXNhYmxlLW91dHB1dC1lc2NhcGluZz0ieWVzIj4tLSZndDs8L3hzbDp0ZXh0Pjwvc3R5bGU+CiAgIDwveHNsOnRlbXBsYXRlPgogPCEtLQpAQCAtMTM2LDgzICsyMjYsNiBAQAogICAgIDwvdGFibGU+CiAgIDwveHNsOnRlbXBsYXRlPgogPCEtLQotIC0gcmV0dXJucyB0aGUgZmlsZW5hbWUgYXNzb2NpYXRlZCB0byBhbiBJRCBpbiB0aGUgb3JpZ2luYWwgZmlsZQotIC0tPgotICA8eHNsOnRlbXBsYXRlIG5hbWU9ImZpbGVuYW1lIj4KLSAgICA8eHNsOnBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBocmVmKSIvPgotICAgIDx4c2w6Y2hvb3NlPgotICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNJbnRyb2R1Y3RpJyI+Ci0gICAgICAgIDx4c2w6dGV4dD5pbnRyby5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RvY3VtZW50YXQnIj4KLSAgICAgICAgPHhzbDp0ZXh0PmRvY3MuaHRtbDwveHNsOnRleHQ+Ci0gICAgICA8L3hzbDp3aGVuPgotICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNSZXBvcnRpbmcnIj4KLSAgICAgICAgPHhzbDp0ZXh0PmJ1Z3MuaHRtbDwveHNsOnRleHQ+Ci0gICAgICA8L3hzbDp3aGVuPgotICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNoZWxwJyI+Ci0gICAgICAgIDx4c2w6dGV4dD5oZWxwLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSGVscCciPgotICAgICAgICA8eHNsOnRleHQ+aGVscC5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0Rvd25sb2FkcyciPgotICAgICAgICA8eHNsOnRleHQ+ZG93bmxvYWRzLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmV3cyciPgotICAgICAgICA8eHNsOnRleHQ+bmV3cy5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0NvbnRyaWJ1dGknIj4KLSAgICAgICAgPHhzbDp0ZXh0PmNvbnRyaWJzLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjeHNsdHByb2MnIj4KLSAgICAgICAgPHhzbDp0ZXh0PnhzbHRwcm9jMi5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0FQSSciPgotICAgICAgICA8eHNsOnRleHQ+QVBJLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjWFNMVCciPgotICAgICAgICA8eHNsOnRleHQ+WFNMVC5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1hNTCciPgotICAgICAgICA8eHNsOnRleHQ+WE1MLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjVmFsaWRhdGlvbiciPgotICAgICAgICA8eHNsOnRleHQ+dmFsaWQuaHRtbDwveHNsOnRleHQ+Ci0gICAgICA8L3hzbDp3aGVuPgotICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyN0cmVlJyI+Ci0gICAgICAgIDx4c2w6dGV4dD50cmVlLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjbGlicmFyeSciPgotICAgICAgICA8eHNsOnRleHQ+bGlicmFyeS5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2ludGVyZmFjZSciPgotICAgICAgICA8eHNsOnRleHQ+aW50ZXJmYWNlLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRXhhbXBsZSciPgotICAgICAgICA8eHNsOnRleHQ+ZXhhbXBsZS5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0VudGl0aWVzJyI+Ci0gICAgICAgIDx4c2w6dGV4dD5lbnRpdGllcy5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2FyY2hpdGVjdHVyZSciPgotICAgICAgICA8eHNsOnRleHQ+YXJjaGl0ZWN0dXJlLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmFtZXNwYWNlcyciPgotICAgICAgICA8eHNsOnRleHQ+bmFtZXNwYWNlcy5odG1sPC94c2w6dGV4dD4KLSAgICAgIDwveHNsOndoZW4+Ci0gICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RPTSciPgotICAgICAgICA8eHNsOnRleHQ+RE9NLmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6d2hlbj4KLSAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcnIj4KLSAgICAgICAgPHhzbDp0ZXh0PnVua25vd24uaHRtbDwveHNsOnRleHQ+Ci0gICAgICA8L3hzbDp3aGVuPgotICAgICAgPHhzbDpvdGhlcndpc2U+Ci0gICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPgotICAgICAgPC94c2w6b3RoZXJ3aXNlPgotICAgIDwveHNsOmNob29zZT4KLSAgPC94c2w6dGVtcGxhdGU+Ci08IS0tCiAgLSBIYW5kbGluZyBvZiBub2RlcyBpbiB0aGUgYm9keSBiZWZvcmUgdGhlIGZpcnN0IEgyLCB0YWJsZSBvZiBjb250ZW50CiAgLSBFdmVyeXRoaW5nIGlzIGp1c3QgY29waWVkIG92ZXIsIGV4Y2VwdCBocmVmIHdoaWNoIG1heSBnZXQgcmV3cml0dGVuCiAgLSBhbmQgaDEvaDIvYSBhdCB0aGUgdG9wIGxldmVsCmRpZmYgLS1naXQgYS9kb2MvdHJlZS5odG1sIGIvZG9jL3RyZWUuaHRtbAppbmRleCA0YWY5MDdmLi5mYjcxY2YyIDEwMDY0NAotLS0gYS9kb2MvdHJlZS5odG1sCisrKyBiL2RvYy90cmVlLmh0bWwKQEAgLTgsNiArOCw3IEBACiBIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CiBIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CiAtLT48L3N0eWxlPgogPHRpdGxlPlRoZSB0cmVlIG91dHB1dDwvdGl0bGU+CiA8L2hlYWQ+CkBAIC0yNyw4ICsyOCw4IEBACiA8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KIDx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+CiA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KIDxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgpAQCAtMzYsMjEgKzM3LDIxIEBACiA8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iWE1MLmh0bWwiPlhNTDwvYT48L2xpPgogPGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5BbiBvdmVydmlldyBvZiBsaWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KIDxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIFhNTCBsaWJyYXJ5IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KIDxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgogPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9InZhbGlkLmh0bWwiPlZhbGlkYXRpb24sIG9yIGFyZSB5b3UgYWZyYWlkIG9mIERURHMgPzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgogPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+CiA8bGk+CiA8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CiA8L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL3VwZ3JhZGUuaHRtbCBiL2RvYy91cGdyYWRlLmh0bWwKaW5kZXggNzIxMzM0YS4uZjE0YTg2NCAxMDA2NDQKLS0tIGEvZG9jL3VwZ3JhZGUuaHRtbAorKysgYi9kb2MvdXBncmFkZS5odG1sCkBAIC0xLDQ5ICsxLDEwNiBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KIDxodG1sPgogPGhlYWQ+Ci0gIDx0aXRsZT5VcGdyYWRpbmcgbGlieG1sIGNsaWVudCBjb2RlIGZyb20gMS54IHRvIDIueDwvdGl0bGU+Ci0gIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iYW1heWEgVjUuMCI+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KKzxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tCitURCB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogNXB0OyBtYXJnaW4tbGVmdDogMHB0OyBtYXJnaW4tcmlnaHQ6IDBwdH0KK0gxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKy0tPjwvc3R5bGU+Cis8dGl0bGU+VXBncmFkaW5nIDEueCBjb2RlPC90aXRsZT4KIDwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08aDEgYWxpZ249ImNlbnRlciI+VXBncmFkaW5nIGxpYnhtbCBjbGllbnQgY29kZSBmcm9tIDEueCB0byAyLng8L2gxPgotCi08aDI+SW5jb21wYXRpYmxlIGNoYW5nZXM6PC9oMj4KLQorPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPgorPHRkIHdpZHRoPSIxODAiPgorPGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0ic21hbGxmb290b25seS5naWYiIGFsdD0iR25vbWUgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iPjwvYT4KKzwvdGQ+Cis8dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+Cis8aDE+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC9oMT4KKzxoMj5VcGdyYWRpbmcgMS54IGNvZGU8L2gyPgorPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgorPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPgorPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+Cis8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+Cis8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgorPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+Cis8bGk+Cis8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+Cis8L2xpPgorPC91bD48L3RkPjwvdHI+Cis8L3RhYmxlPgorPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+Cis8dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudW5pYm8uaXQvfmNhc2FyaW5pL2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZmgtZnJhbmtmdXJ0LmRlL35pZ29yL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vcGFnZXMuZWlkb3NuZXQuY28udWsvfmdhcnlwZW4vbGlieG1sLyI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPgorPC91bD48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC90ZD48L3RyPjwvdGFibGU+PC90ZD4KKzx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+Cis8cD5JbmNvbXBhdGlibGUgY2hhbmdlczo8L3A+CiA8cD5WZXJzaW9uIDIgb2YgbGlieG1sIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIGludHJvZHVjaW5nIHNlcmlvdXMgYmFja3dhcmQKIGluY29tcGF0aWJsZSBjaGFuZ2VzLiBUaGUgbWFpbiBnb2FscyB3ZXJlOjwvcD4KIDx1bD4KLSAgPGxpPmEgZ2VuZXJhbCBjbGVhbnVwLiBBIG51bWJlciBvZiBtaXN0YWtlcyBpbmhlcml0ZWQgZnJvbSB0aGUgdmVyeSBlYXJseQorPGxpPmEgZ2VuZXJhbCBjbGVhbnVwLiBBIG51bWJlciBvZiBtaXN0YWtlcyBpbmhlcml0ZWQgZnJvbSB0aGUgdmVyeSBlYXJseQogICAgIHZlcnNpb25zIGNvdWxkbid0IGJlIGNoYW5nZWQgZHVlIHRvIGNvbXBhdGliaWxpdHkgY29uc3RyYWludHMuIEV4YW1wbGUKLSAgICB0aGUgImNoaWxkcyIgZWxlbWVudCBpbiB0aGUgbm9kZXMuPC9saT4KLSAgPGxpPlVuaWZvcm1pemF0aW9uIG9mIHRoZSB2YXJpb3VzIG5vZGVzLCBhdCBsZWFzdCBmb3IgdGhlaXIgaGVhZGVyIGFuZCBsaW5rCisgICAgdGhlICZxdW90O2NoaWxkcyZxdW90OyBlbGVtZW50IGluIHRoZSBub2Rlcy48L2xpPgorPGxpPlVuaWZvcm1pemF0aW9uIG9mIHRoZSB2YXJpb3VzIG5vZGVzLCBhdCBsZWFzdCBmb3IgdGhlaXIgaGVhZGVyIGFuZCBsaW5rCiAgICAgcGFydHMgKGRvYywgcGFyZW50LCBjaGlsZHJlbiwgcHJldiwgbmV4dCksIHRoZSBnb2FsIGlzIGEgc2ltcGxlcgogICAgIHByb2dyYW1taW5nIG1vZGVsIGFuZCBzaW1wbGlmeWluZyB0aGUgdGFzayBvZiB0aGUgRE9NIGltcGxlbWVudG9ycy48L2xpPgotICA8bGk+YmV0dGVyIGNvbmZvcm1hbmNlcyB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24sIGZvciBleGFtcGxlIHZlcnNpb24gMS54Cis8bGk+YmV0dGVyIGNvbmZvcm1hbmNlcyB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24sIGZvciBleGFtcGxlIHZlcnNpb24gMS54CiAgICAgaGFkIGFuIGhldXJpc3RpYyB0byB0cnkgdG8gZGV0ZWN0IGlnbm9yYWJsZSB3aGl0ZSBzcGFjZXMuIEFzIGEgcmVzdWx0IHRoZQogICAgIFNBWCBldmVudCBnZW5lcmF0ZWQgd2VyZSBpZ25vcmFibGVXaGl0ZXNwYWNlKCkgd2hpbGUgdGhlIHNwZWMgcmVxdWlyZXMKICAgICBjaGFyYWN0ZXIoKSBpbiB0aGF0IGNhc2UuIFRoaXMgYWxzbyBtZWFuIHRoYXQgYSBudW1iZXIgb2YgRE9NIG5vZGUKICAgICBjb250YWluaW5nIGJsYW5rIHRleHQgbWF5IHBvcHVsYXRlIHRoZSBET00gdHJlZSB3aGljaCB3ZXJlIG5vdCBwcmVzZW50CiAgICAgYmVmb3JlLjwvbGk+CiA8L3VsPgotCi08aDI+SG93IHRvIGZpeCBsaWJ4bWwtMS54IGNvZGU6PC9oMj4KLQorPGgzPkhvdyB0byBmaXggbGlieG1sLTEueCBjb2RlOjwvaDM+CiA8cD5TbyBjbGllbnQgY29kZSBvZiBsaWJ4bWwgZGVzaWduZWQgdG8gcnVuIHdpdGggdmVyc2lvbiAxLnggbWF5IGhhdmUgdG8gYmUKIGNoYW5nZWQgdG8gY29tcGlsZSBhZ2FpbnN0IHZlcnNpb24gMi54IG9mIGxpYnhtbC4gSGVyZSBpcyBhIGxpc3Qgb2YgY2hhbmdlcwogdGhhdCBJIGhhdmUgY29sbGVjdGVkLCB0aGV5IG1heSBub3QgYmUgc3VmZmljaWVudCwgc28gaW4gY2FzZSB5b3UgZmluZCBvdGhlcgogY2hhbmdlIHdoaWNoIGFyZSByZXF1aXJlZCwgPGEgaHJlZj0ibWFpbHRvOkRhbmllbC7PZWlsbGFyZHczLm9yZyI+ZHJvcCBtZSBhCiBtYWlsPC9hPjo8L3A+CiA8b2w+Ci0gIDxsaT5UaGUgcGFja2FnZSBuYW1lIGhhdmUgY2hhbmdlZCBmcm9tIGxpYnhtbCB0byBsaWJ4bWwyLCB0aGUgbGlicmFyeSBuYW1lCis8bGk+VGhlIHBhY2thZ2UgbmFtZSBoYXZlIGNoYW5nZWQgZnJvbSBsaWJ4bWwgdG8gbGlieG1sMiwgdGhlIGxpYnJhcnkgbmFtZQogICAgIGlzIG5vdyAtbHhtbDIgLiBUaGVyZSBpcyBhIG5ldyB4bWwyLWNvbmZpZyBzY3JpcHQgd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8KICAgICBzZWxlY3QgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgbGlieG1sMjwvbGk+Ci0gIDxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKKzxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKICAgICA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IHNvIHMvY2hpbGRzL2NoaWxkcmVuL2cgc2hvdWxkIGJlICBhcHBsaWVkCi0gICAgKHByb2JhYmxpbGl0eSBvZiBoYXZpbmcgImNoaWxkcyIgYW55d2VyZSBlbHNlIGlzIGNsb3NlIHRvIDArPC9saT4KLSAgPGxpPlRoZSBkb2N1bWVudCBkb24ndCBoYXZlIGFueW1vcmUgYSA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZWxlbWVudCBpdCBoYXMKKyAgICAocHJvYmFibGlsaXR5IG9mIGhhdmluZyAmcXVvdDtjaGlsZHMmcXVvdDsgYW55d2VyZSBlbHNlIGlzIGNsb3NlIHRvIDArPC9saT4KKzxsaT5UaGUgZG9jdW1lbnQgZG9uJ3QgaGF2ZSBhbnltb3JlIGEgPHN0cm9uZz5yb290PC9zdHJvbmc+IGVsZW1lbnQgaXQgaGFzCiAgICAgYmVlbiByZXBsYWNlZCBieSA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IGFuZCB1c3VhbGx5IHlvdSB3aWxsIGdldCBhCiAgICAgbGlzdCBvZiBlbGVtZW50IGhlcmUuIEZvciBleGFtcGxlIGEgRHRkIGVsZW1lbnQgZm9yIHRoZSBpbnRlcm5hbCBzdWJzZXQKICAgICBhbmQgaXQncyBkZWNsYXJhdGlvbiBtYXkgYmUgZm91bmQgaW4gdGhhdCBsaXN0LCBhcyB3ZWxsIGFzIHByb2Nlc3NpbmcKQEAgLTUyLDg5ICsxMDksODYgQEAKICAgICBhIGRvY3VtZW50LiBBbHRlcm5hdGl2ZWx5IGlmIHlvdSBhcmUgc3VyZSB0byBub3QgcmVmZXJlbmNlIER0ZHMgbm9yIGhhdmUKICAgICBQSXMgb3IgY29tbWVudHMgYmVmb3JlIG9yIGFmdGVyIHRoZSByb290IGVsZW1lbnQKICAgICBzLy0mZ3Q7cm9vdC8tJmd0O2NoaWxkcmVuL2cgd2lsbCBwcm9iYWJseSBkbyBpdC48L2xpPgotICA8bGk+VGhlIHdoaXRlIHNwYWNlIGlzc3VlLCB0aGlzIG9uZSBpcyBtb3JlIGNvbXBsZXgsIHVubGVzcyBzcGVjaWFsIGNhc2Ugb2YKKzxsaT5UaGUgd2hpdGUgc3BhY2UgaXNzdWUsIHRoaXMgb25lIGlzIG1vcmUgY29tcGxleCwgdW5sZXNzIHNwZWNpYWwgY2FzZSBvZgogICAgIHZhbGlkYXRpbmcgcGFyc2luZywgdGhlIGxpbmUgYnJlYWtzIGFuZCBzcGFjZXMgdXN1YWxseSB1c2VkIGZvciBpbmRlbnRpbmcKICAgICBhbmQgZm9ybWF0dGluZyB0aGUgZG9jdW1lbnQgY29udGVudCBiZWNvbWVzIHNpZ25pZmljYW50LiBTbyB0aGV5IGFyZQogICAgIHJlcG9ydGVkIGJ5IFNBWCBhbmQgaWYgeW91ciB1c2luZyB0aGUgRE9NIHRyZWUsIGNvcnJlc3BvbmRpbmcgbm9kZXMgYXJlCiAgICAgZ2VuZXJhdGVkLiBUb28gYXBwcm9hY2ggY2FuIGJlIHRha2VuOgogICAgIDxvbD4KLSAgICAgIDxsaT5sYXp5IG9uZSwgdXNlIHRoZSBjb21wYXRpYmlsaXR5IGNhbGwKKzxsaT5sYXp5IG9uZSwgdXNlIHRoZSBjb21wYXRpYmlsaXR5IGNhbGwKICAgICAgICAgPHN0cm9uZz54bWxLZWVwQmxhbmtzRGVmYXVsdCgwKTwvc3Ryb25nPiBidXQgYmUgYXdhcmUgdGhhdCB5b3UgYXJlCiAgICAgICAgIHJlbHlpbmcgb24gYSBzcGVjaWFsIChhbmQgcG9zc2libHkgYnJva2VuKSBzZXQgb2YgaGV1cmlzdGljcyBvZgogICAgICAgICBsaWJ4bWwgdG8gZGV0ZWN0IGlnbm9yYWJsZSBibGFua3MuIERvbid0IGNvbXBsYWluIGlmIGl0IGJyZWFrcyBvcgogICAgICAgICBtYWtlIHlvdXIgYXBwbGljYXRpb24gbm90IDEwMCUgY2xlYW4gdy5yLnQuIHRvIGl0J3MgaW5wdXQuPC9saT4KLSAgICAgIDxsaT50aGUgUmlnaHQgV2F5OiBjaGFuZ2UgeW91IGNvZGUgdG8gYWNjZXB0IHBvc3NpYmx5IHVuc2lnbmlmaWNhbnQKKzxsaT50aGUgUmlnaHQgV2F5OiBjaGFuZ2UgeW91IGNvZGUgdG8gYWNjZXB0IHBvc3NpYmx5IHVuc2lnbmlmaWNhbnQKICAgICAgICAgYmxhbmtzIGNoYXJhY3RlcnMsIG9yIGhhdmUgeW91ciB0cmVlIHBvcHVsYXRlZCB3aXRoIHdlaXJkIGJsYW5rIHRleHQKICAgICAgICAgbm9kZXMuIFlvdSBjYW4gc3BvdCB0aGVtIHVzaW5nIHRoZSBjb21vZGl0eSBmdW5jdGlvbgogICAgICAgICA8c3Ryb25nPnhtbElzQmxhbmtOb2RlKG5vZGUpPC9zdHJvbmc+IHJldHVybmluZyAxIGZvciBzdWNoIGJsYW5rCiAgICAgICAgIG5vZGVzLjwvbGk+Ci0gICAgPC9vbD4KLSAgICA8cD5Ob3RlIGFsc28gdGhhdCB3aXRoIHRoZSBuZXcgZGVmYXVsdCB0aGUgb3V0cHV0IGZ1bmN0aW9ucyBkb24ndCBhZGQgYW55Cis8L29sPgorPHA+Tm90ZSBhbHNvIHRoYXQgd2l0aCB0aGUgbmV3IGRlZmF1bHQgdGhlIG91dHB1dCBmdW5jdGlvbnMgZG9uJ3QgYWRkIGFueQogICAgIGV4dHJhIGluZGVudGF0aW9uIHdoZW4gc2F2aW5nIGEgdHJlZSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHJvdW5kIHRyaXAKICAgICAocmVhZCBhbmQgc2F2ZSkgd2l0aG91dCBpbmZsYXRpbmcgdGhlIGRvY3VtZW50IHdpdGggZXh0cmEgZm9ybWF0dGluZwogICAgIGNoYXJzLjwvcD4KLSAgPC9saT4KLSAgPGxpPlRoZSBpbmNsdWRlIHBhdGggaGFzIGNoYW5nZWQgdG8gJHByZWZpeC9saWJ4bWwvIGFuZCB0aGUgaW5jbHVkZXMKKzwvbGk+Cis8bGk+VGhlIGluY2x1ZGUgcGF0aCBoYXMgY2hhbmdlZCB0byAkcHJlZml4L2xpYnhtbC8gYW5kIHRoZSBpbmNsdWRlcwogICAgIHRoZW1zZWx2ZXMgdXNlcyB0aGlzIG5ldyBwcmVmaXggaW4gaW5jbHVkZXMgaW5zdHJ1Y3Rpb25zLi4uIElmIHlvdSBhcmUKICAgICB1c2luZyAoYXMgZXhwZWN0ZWQpIHRoZQogICAgIDxwcmU+eG1sMi1jb25maWcgLS1jZmxhZ3M8L3ByZT4KLSAgICA8cD5vdXRwdXQgdG8gZ2VuZXJhdGUgeW91IGNvbXBpbGUgY29tbWFuZHMgdGhpcyB3aWxsIHByb2JhYmx5IHdvcmsgb3V0IG9mCis8cD5vdXRwdXQgdG8gZ2VuZXJhdGUgeW91IGNvbXBpbGUgY29tbWFuZHMgdGhpcyB3aWxsIHByb2JhYmx5IHdvcmsgb3V0IG9mCiAgICAgdGhlIGJveDwvcD4KLSAgPC9saT4KLSAgPGxpPnhtbERldGVjdENoYXJFbmNvZGluZyB0YWtlcyBhbiBleHRyYSBhcmd1bWVudCBpbmRpY2F0aW5nIHRoZSBsZW5naHQgaW4KKzwvbGk+Cis8bGk+eG1sRGV0ZWN0Q2hhckVuY29kaW5nIHRha2VzIGFuIGV4dHJhIGFyZ3VtZW50IGluZGljYXRpbmcgdGhlIGxlbmdodCBpbgogICAgIGJ5dGUgb2YgdGhlIGhlYWQgb2YgdGhlIGRvY3VtZW50IGF2YWlsYWJsZSBmb3IgY2hhcmFjdGVyIGRldGVjdGlvbi48L2xpPgogPC9vbD4KLQotPGgyPkVuc3VyaW5nIGJvdGggbGlieG1sLTEueCBhbmQgbGlieG1sLTIueCBjb21wYXRpYmlsaXR5PC9oMj4KLQorPGgzPkVuc3VyaW5nIGJvdGggbGlieG1sLTEueCBhbmQgbGlieG1sLTIueCBjb21wYXRpYmlsaXR5PC9oMz4KIDxwPlR3byBuZXcgdmVyc2lvbiBvZiBsaWJ4bWwgKDEuOC4xMSkgYW5kIGxpYnhtbDIgKDIuMy40KSBoYXZlIGJlZW4gcmVsZWFzZWQKIHRvIGFsbG93IHNtb3RoIHVwZ3JhZGUgb2YgZXhpc3RpbmcgbGlieG1sIHYxY29kZSB3aGlsZSByZXRhaW5pbmcKIGNvbXBhdGliaWxpdHkuIFRoZXkgb2ZmZXJzIHRoZSBmb2xsb3dpbmc6PC9wPgogPG9sPgotICA8bGk+c2ltaWxhciBpbmNsdWRlIG5hbWluZywgb25lIHNob3VsZCB1c2UKKzxsaT5zaW1pbGFyIGluY2x1ZGUgbmFtaW5nLCBvbmUgc2hvdWxkIHVzZQogICAgIDxzdHJvbmc+I2luY2x1ZGUmbHQ7bGlieG1sLy4uLiZndDs8L3N0cm9uZz4gaW4gYm90aCBjYXNlcy48L2xpPgotICA8bGk+c2ltaWxhciBpZGVudGlmaWVycyBkZWZpbmVkIHZpYSBtYWNyb3MgZm9yIHRoZSBjaGlsZCBhbmQgcm9vdCBmaWVsZHM6Cis8bGk+c2ltaWxhciBpZGVudGlmaWVycyBkZWZpbmVkIHZpYSBtYWNyb3MgZm9yIHRoZSBjaGlsZCBhbmQgcm9vdCBmaWVsZHM6CiAgICAgcmVzcGVjdGl2ZWx5IDxzdHJvbmc+eG1sQ2hpbGRyZW5Ob2RlPC9zdHJvbmc+IGFuZAotICAgIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz48L2xpPgotICA8bGk+YSBuZXcgbWFjcm8gPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IHdoaWNoIHNob3VsZCBiZQorICAgIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz4KKzwvbGk+Cis8bGk+YSBuZXcgbWFjcm8gPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IHdoaWNoIHNob3VsZCBiZQogICAgIGluc2VydGVkIG9uY2UgaW4gdGhlIGNsaWVudCBjb2RlPC9saT4KIDwvb2w+Ci0KIDxwPlNvIHRoZSByb2FkbWFwIHRvIHVwZ3JhZGUgeW91ciBleGlzdGluZyBsaWJ4bWwgYXBwbGljYXRpb25zIGlzIHRoZQogZm9sbG93aW5nOjwvcD4KIDxvbD4KLSAgPGxpPmluc3RhbGwgdGhlICBsaWJ4bWwtMS44LjggKGFuZCBsaWJ4bWwtZGV2ZWwtMS44LjgpIHBhY2thZ2VzPC9saT4KLSAgPGxpPmZpbmQgYWxsIG9jY3VyZW5jZXMgd2hlcmUgdGhlIHhtbERvYyA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZmllbGQgaXMKLSAgICB1c2VkIGFuZCBjaGFuZ2UgaXQgdG8gPHN0cm9uZz54bWxSb290Tm9kZTwvc3Ryb25nPjwvbGk+Ci0gIDxsaT5zaW1pbGFyeSBmaW5kIGFsbCBvY2N1cmVuY2VzIHdoZXJlIHRoZSB4bWxOb2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+Ci0gICAgZmllbGQgaXMgdXNlZCBhbmQgY2hhbmdlIGl0IHRvIDxzdHJvbmc+eG1sQ2hpbGRyZW5Ob2RlPC9zdHJvbmc+PC9saT4KLSAgPGxpPmFkZCBhIDxzdHJvbmc+TElCWE1MX1RFU1RfVkVSU0lPTjwvc3Ryb25nPiBtYWNybyBzb21ld2hlcmUgaW4geW91cgorPGxpPmluc3RhbGwgdGhlICBsaWJ4bWwtMS44LjggKGFuZCBsaWJ4bWwtZGV2ZWwtMS44LjgpIHBhY2thZ2VzPC9saT4KKzxsaT5maW5kIGFsbCBvY2N1cmVuY2VzIHdoZXJlIHRoZSB4bWxEb2MgPHN0cm9uZz5yb290PC9zdHJvbmc+IGZpZWxkIGlzCisgICAgdXNlZCBhbmQgY2hhbmdlIGl0IHRvIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz4KKzwvbGk+Cis8bGk+c2ltaWxhcnkgZmluZCBhbGwgb2NjdXJlbmNlcyB3aGVyZSB0aGUgeG1sTm9kZSA8c3Ryb25nPmNoaWxkczwvc3Ryb25nPgorICAgIGZpZWxkIGlzIHVzZWQgYW5kIGNoYW5nZSBpdCB0byA8c3Ryb25nPnhtbENoaWxkcmVuTm9kZTwvc3Ryb25nPgorPC9saT4KKzxsaT5hZGQgYSA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gbWFjcm8gc29tZXdoZXJlIGluIHlvdXIKICAgICA8c3Ryb25nPm1haW4oKTwvc3Ryb25nPiBvciBpbiB0aGUgbGlicmFyeSBpbml0IGVudHJ5IHBvaW50PC9saT4KLSAgPGxpPlJlY29tcGlsZSwgY2hlY2sgY29tcGF0aWJpbGl0eSwgaXQgc2hvdWxkIHN0aWxsIHdvcms8L2xpPgotICA8bGk+Q2hhbmdlIHlvdXIgY29uZmlndXJlIHNjcmlwdCB0byBsb29rIGZpcnN0IGZvciB4bWwyLWNvbmZpZyBhbmQgZmFsbGJhY2sKKzxsaT5SZWNvbXBpbGUsIGNoZWNrIGNvbXBhdGliaWxpdHksIGl0IHNob3VsZCBzdGlsbCB3b3JrPC9saT4KKzxsaT5DaGFuZ2UgeW91ciBjb25maWd1cmUgc2NyaXB0IHRvIGxvb2sgZmlyc3QgZm9yIHhtbDItY29uZmlnIGFuZCBmYWxsYmFjawogICAgIHVzaW5nIHhtbC1jb25maWcgLiBVc2UgdGhlIC0tY2ZsYWdzIGFuZCAtLWxpYnMgb3VwdHV0IG9mIHRoZSBjb21tYW5kIGFzCiAgICAgdGhlIEluY2x1ZGUgYW5kIExpbmtpbmcgcGFyYW1ldGVycyBuZWVkZWQgdG8gdXNlIGxpYnhtbC48L2xpPgotICA8bGk+aW5zdGFsbCBsaWJ4bWwyLTIuMy54IGFuZCAgbGlieG1sMi1kZXZlbC0yLjMueCAobGlieG1sLTEuOC55IGFuZAorPGxpPmluc3RhbGwgbGlieG1sMi0yLjMueCBhbmQgIGxpYnhtbDItZGV2ZWwtMi4zLnggKGxpYnhtbC0xLjgueSBhbmQKICAgICBsaWJ4bWwtZGV2ZWwtMS44LnkgY2FuIGJlIGtlcHQgc2ltdWx0YW5lb3VzbHkpPC9saT4KLSAgPGxpPnJlbW92ZSB5b3VyIGNvbmZpZy5jYWNoZSwgcmVsYXVuY2ggeW91ciBjb25maWd1cmF0aW9uIG1lY2hhbmlzbSwgYW5kCis8bGk+cmVtb3ZlIHlvdXIgY29uZmlnLmNhY2hlLCByZWxhdW5jaCB5b3VyIGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtLCBhbmQKICAgICByZWNvbXBpbGUsIGlmIHN0ZXBzIDIgYW5kIDMgd2VyZSBkb25lIHJpZ2h0IGl0IHNob3VsZCBjb21waWxlIGFzLWlzPC9saT4KLSAgPGxpPlRlc3QgdGhhdCB5b3VyIGFwcGxpY2F0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgY29ycmVjdGx5LCBpZiBub3QgdGhpcyBtYXkKKzxsaT5UZXN0IHRoYXQgeW91ciBhcHBsaWNhdGlvbiBpcyBzdGlsbCBydW5uaW5nIGNvcnJlY3RseSwgaWYgbm90IHRoaXMgbWF5CiAgICAgYmUgZHVlIHRvIGV4dHJhIGVtcHR5IG5vZGVzIGR1ZSB0byBmb3JtYXRpbmcgc3BhY2VzIGJlaW5nIGtlcHQgaW4gbGlieG1sMgogICAgIGNvbnRyYXJ5IHRvIGxpYnhtbDEsIGluIHRoYXQgY2FzZSBpbnNlcnQgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMSkgaW4geW91cgogICAgIGNvZGUgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciAobmV4dCB0bwogICAgIDxzdHJvbmc+TElCWE1MX1RFU1RfVkVSU0lPTjwvc3Ryb25nPiBpcyBhIGZpbmUgcGxhY2UpLjwvbGk+CiA8L29sPgotCiA8cD5Gb2xsb3dpbmcgdGhvc2Ugc3RlcHMgc2hvdWxkIHdvcmsuIEl0IHdvcmtlZCBmb3Igc29tZSBvZiBteSBvd24gY29kZS48L3A+Ci0KIDxwPkxldCBtZSBwdXQgc29tZSBlbXBoYXNpcyBvbiB0aGUgZmFjdCB0aGF0IHRoZXJlIGlzIGZhciBtb3JlIGNoYW5nZXMgZnJvbQogbGlieG1sIDEueCB0byAyLnggdGhhbiB0aGUgb25lcyB5b3UgbWF5IGhhdmUgdG8gcGF0Y2ggZm9yLiBUaGUgb3ZlcmFsbCBjb2RlCi1oYXMgYmVlbiBjb25zaWRlcmFibHkgaW1wcm92ZWQgYW5kIHRoZSBjb25mb3JtYW5jZSB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24KLWhhcyBiZWVuIGRyYXN0aWNhbGx5IGltcHJvdmUuIERvbid0IHRha2UgdGhvc2UgY2hhbmdlcyBhcyBhbiBleGN1c2UgdG8gbm90Ci11cGdyYWRlLCBpdCBtYXkgY29zdCBhIGxvdCBvbiB0aGUgbG9uZyB0ZXJtIC4uLjwvcD4KLQoraGFzIGJlZW4gY29uc2lkZXJhYmx5IGNsZWFuZWQgdXAgYW5kIHRoZSBjb25mb3JtYW5jZSB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24KK2hhcyBiZWVuIGRyYXN0aWNhbGx5IGltcHJvdmVkIHRvby4gRG9uJ3QgdGFrZSB0aG9zZSBjaGFuZ2VzIGFzIGFuIGV4Y3VzZSB0bworbm90IHVwZ3JhZGUsIGl0IG1heSBjb3N0IGEgbG90IG9uIHRoZSBsb25nIHRlcm0gLi4uPC9wPgogPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci0KLTxwPiRJZDogdXBncmFkZS5odG1sLHYgMS45IDIwMDEvMDYvMjQgMTI6MTM6MjEgdmVpbGxhcmQgRXhwICQ8L3A+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL3ZhbGlkLmh0bWwgYi9kb2MvdmFsaWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ2MWUzMi4uMDAwMDAwMAotLS0gYS9kb2MvdmFsaWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhLS0KLVREIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KLUJPRFkge2ZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiA1cHQ7IG1hcmdpbi1sZWZ0OiAwcHQ7IG1hcmdpbi1yaWdodDogMHB0fQotSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQotSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQotSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQotLS0+PC9zdHlsZT4KLTx0aXRsZT5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiPgotPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPgotPHRkIHdpZHRoPSIxODAiPgotPGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0ic21hbGxmb290b25seS5naWYiIGFsdD0iR25vbWUgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iPjwvYT4KLTwvdGQ+Ci08dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+Ci08aDE+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC9oMT4KLTxoMj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2gyPgotPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD4KLTwvdHI+PC90YWJsZT4KLTx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgotPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPgotPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+Ci08dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KLTx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsIHN0eWxlPSJtYXJnaW4tbGVmdDogLTJwdCI+Ci08bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT4KLTxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KLTxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KLTxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT4KLTxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPgotPGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+TmV3czwvYT48L2xpPgotPGxpPjxhIGhyZWY9IlhNTC5odG1sIj5YTUw8L2E+PC9saT4KLTxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KLTxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0idmFsaWQuaHRtbCI+VmFsaWRhdGlvbiwgb3IgYXJlIHlvdSBhZnJhaWQgb2YgRFREcyA/PC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZ3Mgc3VwcG9ydDwvYT48L2xpPgotPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBpbnRlcmZhY2VzPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPkRURCBzdXBwb3J0PC9hPjwvbGk+Ci08bGk+Ci08YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+Ci08L2xpPgotPC91bD48L3RkPjwvdHI+Ci08L3RhYmxlPgotPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+Ci08dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+Ci08dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgotPGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT4KLTxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPgotPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudW5pYm8uaXQvfmNhc2FyaW5pL2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT4KLTxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPgotPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZmgtZnJhbmtmdXJ0LmRlL35pZ29yL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT4KLTxsaT48YSBocmVmPSJodHRwOi8vcGFnZXMuZWlkb3NuZXQuY28udWsvfmdhcnlwZW4vbGlieG1sLyI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPgotPC91bD48L3RkPjwvdHI+Ci08L3RhYmxlPgotPC90ZD48L3RyPjwvdGFibGU+PC90ZD4KLTx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+Ci08cD5XZWxsIHdoYXQgaXMgdmFsaWRhdGlvbiBhbmQgd2hhdCBpcyBhIERURCA/PC9wPgotPHA+VmFsaWRhdGlvbiBpcyB0aGUgcHJvY2VzcyBvZiBjaGVja2luZyBhIGRvY3VtZW50IGFnYWluc3QgYSBzZXQgb2YKLWNvbnN0cnVjdGlvbiBydWxlczsgYSA8c3Ryb25nPkRURDwvc3Ryb25nPiAoRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uKSBpcyBzdWNoCi1hIHNldCBvZiBydWxlcy48L3A+Ci08cD5UaGUgdmFsaWRhdGlvbiBwcm9jZXNzIGFuZCBidWlsZGluZyBEVERzIGFyZSB0aGUgdHdvIG1vc3QgZGlmZmljdWx0IHBhcnRzCi1vZiB0aGUgWE1MIGxpZmUgY3ljbGUuIEJyaWVmbHkgYSBEVEQgZGVmaW5lcyBhbGwgdGhlIHBvc3NpYmxlcyBlbGVtZW50IHRvIGJlCi1mb3VuZCB3aXRoaW4geW91ciBkb2N1bWVudCwgd2hhdCBpcyB0aGUgZm9ybWFsIHNoYXBlIG9mIHlvdXIgZG9jdW1lbnQgdHJlZQotKGJ5IGRlZmluaW5nIHRoZSBhbGxvd2VkIGNvbnRlbnQgb2YgYW4gZWxlbWVudCwgZWl0aGVyIHRleHQsIGEgcmVndWxhcgotZXhwcmVzc2lvbiBmb3IgdGhlIGFsbG93ZWQgbGlzdCBvZiBjaGlsZHJlbiwgb3IgbWl4ZWQgY29udGVudCBpLmUuIGJvdGggdGV4dAotYW5kIGNoaWxkcmVuKS4gVGhlIERURCBhbHNvIGRlZmluZXMgdGhlIGFsbG93ZWQgYXR0cmlidXRlcyBmb3IgYWxsIGVsZW1lbnRzCi1hbmQgdGhlIHR5cGVzIG9mIHRoZSBhdHRyaWJ1dGVzLiBGb3IgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgSSBzdWdnZXN0Ci10aGF0IHlvdSByZWFkIHRoZSByZWxhdGVkIHBhcnRzIG9mIHRoZSBYTUwgc3BlY2lmaWNhdGlvbiwgdGhlIGV4YW1wbGVzIGZvdW5kCi11bmRlciBnbm9tZS14bWwvdGVzdC92YWxpZC9kdGQgYW5kIGFueSBvZiB0aGUgbGFyZ2UgbnVtYmVyIG9mIGJvb2tzIGF2YWlsYWJsZQotb24gWE1MLiBUaGUgZGlhIGV4YW1wbGUgaW4gZ25vbWUteG1sL3Rlc3QvdmFsaWQgc2hvdWxkIGJlIGJvdGggc2ltcGxlIGFuZAotY29tcGxldGUgZW5vdWdoIHRvIGFsbG93IHlvdSB0byBidWlsZCB5b3VyIG93bi48L3A+Ci08cD5BIHdvcmQgb2Ygd2FybmluZywgYnVpbGRpbmcgYSBnb29kIERURCB3aGljaCB3aWxsIGZpdCB0aGUgbmVlZHMgb2YgeW91cgotYXBwbGljYXRpb24gaW4gdGhlIGxvbmctdGVybSBpcyBmYXIgZnJvbSB0cml2aWFsOyBob3dldmVyLCB0aGUgZXh0cmEgbGV2ZWwgb2YKLXF1YWxpdHkgaXQgY2FuIGVuc3VyZSBpcyB3ZWxsIHdvcnRoIHRoZSBwcmljZSBmb3Igc29tZSBzZXRzIG9mIGFwcGxpY2F0aW9ucwotb3IgaWYgeW91IGFscmVhZHkgaGF2ZSBhbHJlYWR5IGEgRFREIGRlZmluZWQgZm9yIHlvdXIgYXBwbGljYXRpb24gZmllbGQuPC9wPgotPHA+VGhlIHZhbGlkYXRpb24gaXMgbm90IGNvbXBsZXRlbHkgZmluaXNoZWQgYnV0IGluIGEgKHZlcnkgSU1ITykgdXNhYmxlCi1zdGF0ZS4gVW50aWwgYSByZWFsIHZhbGlkYXRpb24gaW50ZXJmYWNlIGlzIGRlZmluZWQgdGhlIHdheSB0byBkbyBpdCBpcyB0bwotZGVmaW5lIGFuZCBzZXQgdGhlIDxzdHJvbmc+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlPC9zdHJvbmc+Ci1leHRlcm5hbCB2YXJpYWJsZSB0byAxLCB0aGlzIHdpbGwgb2YgY291cnNlIGJlIGNoYW5nZWQgYXQgc29tZSBwb2ludDo8L3A+Ci08cD5leHRlcm4gaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTs8L3A+Ci08cD4uLi48L3A+Ci08cD54bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAxOzwvcD4KLTxwPgotPHA+VG8gaGFuZGxlIGV4dGVybmFsIGVudGl0aWVzLCB1c2UgdGhlIGZ1bmN0aW9uCi08c3Ryb25nPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9zdHJvbmc+KHhtbEV4dGVybmFsRW50aXR5TG9hZGVyIGYpOyB0bwotbGluayBpbiB5b3UgSFRUUC9GVFAvRW50aXRpZXMgZGF0YWJhc2UgbGlicmFyeSB0byB0aGUgc3RhbmRhcmQgbGlieG1sCi1jb3JlLjwvcD4KLTxwPkBAaW50ZXJmYWNlc0BAPC9wPgotPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci08L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgotPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL3htbC5odG1sIGIvZG9jL3htbC5odG1sCmluZGV4IDE5ZjNkZTguLmRlM2Y0MDQgMTAwNjQ0Ci0tLSBhL2RvYy94bWwuaHRtbAorKysgYi9kb2MveG1sLmh0bWwKQEAgLTM1LDE0ICszNSw2IEBACiAKIDxwPlNlcGFyYXRlIGRvY3VtZW50czo8L3A+CiA8dWw+Ci0gIDxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPnVwZ3JhZGUgaW5zdHJ1Y3Rpb25zIGZvciBtaWdyYXRpbmcgdG8KLSAgbGlieG1sMjwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+bGlieG1sIEludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQ8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPmxpYnhtbCBJbnB1dC9PdXRwdXQgaW50ZXJmYWNlczwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPmxpYnhtbCBNZW1vcnkgaW50ZXJmYWNlczwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5saWJ4bWwgQ2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+YSBzaG9ydCBpbnRyb2R1Y3Rpb24gYWJvdXQgRFREcyBhbmQKLSAgbGlieG1sPC9hPjwvbGk+CiAgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPnRoZSBsaWJ4c2x0IHBhZ2U8L2E+PC9saT4KICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudW5pYm8uaXQvfmNhc2FyaW5pL2dkb21lMi8iPnRoZSBnZG9tZTIgcGFnZTogYQogICAgIHN0YW5kYXJkIERPTSBpbnRlcmZhY2UgZm9yIGxpYnhtbDI8L2E+PC9saT4KQEAgLTg5LDYgKzgxLDI3NyBAQAogc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNGRjAwMDAiPkRvIE5vdCBVc2UgbGlieG1sMTwvc3Bhbj48L3N0cm9uZz4sIHVzZQogbGlieG1sMjwvcD4KIAorPGgyPjxhIG5hbWU9IkZBUSI+RkFRPC9hPjwvaDI+CisKKzxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjTGljZW5jZSI+TGljZW5jZShzKTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjSW5zdGFsbGF0aSI+SW5zdGFsbGF0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJGQVEuaHRtbCNDb21waWxhdGlvIj5Db21waWxhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjRGV2ZWxvcGVyIj5EZXZlbG9wZXIgY29ybmVyPC9hPjwvbGk+Cis8L3VsPgorCis8aDM+PGEgbmFtZT0iTGljZW5jZSI+TGljZW5jZTwvYT4ocyk8L2gzPgorPG9sPgorICA8bGk+PGVtPkxpY2Vuc2luZyBUZXJtcyBmb3IgbGlieG1sPC9lbT4KKyAgICA8cD5saWJ4bWwgaXMgcmVsZWFzZWQgdW5kZXIgMiAoY29tcGF0aWJsZSkgbGljZW5jZXM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT50aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xncGwuaHRtbCI+TEdQTDwvYT46IEdOVQorICAgICAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2xpPgorICAgICAgPGxpPnRoZSA8YQorICAgICAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZS0xOTk4MDcyMC5odG1sIj5XM0MKKyAgICAgICAgSVBSPC9hPjogdmVyeSBzaW1pbGFyIHRvIHRoZSBYV2luZG93IGxpY2VuY2U8L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48ZW0+Q2FuIEkgZW1iZWQgbGlieG1sIGluIGEgcHJvcHJpZXRhcnkgYXBwbGljYXRpb24gPzwvZW0+CisgICAgPHA+WWVzLiBUaGUgVzNDIElQUiBhbGxvd3MgeW91IHRvIGFsc28ga2VlcCBwcm9wcmlldGFyeSB0aGUgY2hhbmdlcyB5b3UKKyAgICBtYWRlIHRvIGxpYnhtbCwgYnV0IGl0IHdvdWxkIGJlIGdyYWNlZnVsIHRvIHByb3ZpZGUgYmFjayBidWdmaXhlcyBhbmQKKyAgICBpbXByb3ZlbWVudHMgYXMgcGF0Y2hlcyBmb3IgcG9zc2libGUgaW5jb3Jwb3JhdGlvbiBpbiB0aGUgbWFpbgorICAgIGRldmVsb3BtZW50IHRyZWU8L3A+CisgIDwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iSW5zdGFsbGF0aSI+SW5zdGFsbGF0aW9uPC9hPjwvaDM+Cis8b2w+CisgIDxsaT5Vbmxlc3MgeW91IGFyZSBmb3JjZWQgdG8gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGxpbmtzIHdpdGggYSBHbm9tZQorICAgIGxpYnJhcnkgcmVxdWlyaW5nIGl0LCAgPHN0cm9uZz48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+RG8KKyAgICBOb3QgVXNlIGxpYnhtbDE8L3NwYW4+PC9zdHJvbmc+LCB1c2UgbGlieG1sMjwvbGk+CisgIDxsaT48ZW0+V2hlcmUgY2FuIEkgZ2V0IGxpYnhtbDwvZW0+CisgICAgID8KKyAgICA8cD5UaGUgb3JpZ2luYWwgZGlzdHJpYnV0aW9uIGNvbWVzIGZyb20gPGEKKyAgICBocmVmPSJmdHA6Ly9ycG1maW5kLm5ldC9wdWIvbGlieG1sLyI+cnBtZmluZC5uZXQ8L2E+IG9yIDxhCisgICAgaHJlZj0iZnRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc3RhYmxlL3NvdXJjZXMvbGlieG1sLyI+Z25vbWUub3JnPC9hPjwvcD4KKyAgICA8cD5Nb3N0IGxpbnV4IGFuZCBCc2QgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGxpYnhtbCwgdGhpcyBpcyBwcm9iYWJseSB0aGUKKyAgICBzYWZlciB3YXkgZm9yIGVuZC11c2VyczwvcD4KKyAgICA8cD5EYXZpZCBEb29saW4gcHJvdmlkZXMgcHJlY29tcGlsZWQgV2luZG93cyB2ZXJzaW9ucyBhdCA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi8gICAgICAgICAiPmh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi88L2E+PC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgc2VlIGxpYnhtbCBhbmQgbGlieG1sMiByZWxlYXNlcywgd2hpY2ggb25lIHNob3VsZCBJIGluc3RhbGwgPzwvZW0+CisgICAgPHVsPgorICAgICAgPGxpPklmIHlvdSBhcmUgbm90IGNvbmNlcm5lZCBieSBhbnkgZXhpc3RpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgICAgICB3aXRoIGV4aXN0aW5nIGFwcGxpY2F0aW9uLCBpbnN0YWxsIGxpYnhtbDIgb25seTwvbGk+CisgICAgICA8bGk+SWYgeW91IGFyZSBub3QgZG9pbmcgZGV2ZWxvcG1lbnQsIHlvdSBjYW4gc2FmZWx5IGluc3RhbGwgYm90aC4KKyAgICAgICAgdXN1YWxseSB0aGUgcGFja2FnZXMgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwuaHRtbCI+bGlieG1sPC9hPiBhbmQgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwyLmh0bWwiPmxpYnhtbDI8L2E+IGFyZQorICAgICAgICBjb21wYXRpYmxlICh0aGlzIGlzIG5vdCB0aGUgY2FzZSBmb3IgZGV2ZWxvcG1lbnQgcGFja2FnZXMpPC9saT4KKyAgICAgIDxsaT5JZiB5b3UgYXJlIGEgZGV2ZWxvcGVyIGFuZCB5b3VyIHN5c3RlbSBwcm92aWRlcyBzZXBhcmF0ZSBwYWNrYWdpbmcKKyAgICAgICAgZm9yIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHRoZSBkZXZlbG9wbWVudCBjb21wb25lbnRzLCBpdCBpcyBwb3NzaWJsZQorICAgICAgICB0byBpbnN0YWxsIGxpYnhtbCBhbmQgbGlieG1sMiwgYW5kIGFsc28gPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwtZGV2ZWwuaHRtbCI+bGlieG1sLWRldmVsPC9hPgorICAgICAgICBhbmQgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwyLWRldmVsLmh0bWwiPmxpYnhtbDItZGV2ZWw8L2E+CisgICAgICAgIHRvbyBmb3IgbGlieG1sMiAmZ3Q7PSAyLjMuMDwvbGk+CisgICAgICA8bGk+SWYgeW91IGFyZSBkZXZlbG9waW5nIGEgbmV3IGFwcGxpY2F0aW9uLCBwbGVhc2UgZGV2ZWxvcCBhZ2FpbnN0CisgICAgICAgIGxpYnhtbDIoLWRldmVsKTwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIGNhbid0IGluc3RhbGwgdGhlIGxpYnhtbCBwYWNrYWdlIGl0IGNvbmZsaWN0cyB3aXRoIGxpYnhtbDA8L2VtPgorICAgIDxwPllvdSBwcm9iYWJseSBoYXZlIGFuIG9sZCBsaWJ4bWwwIHBhY2thZ2UgdXNlZCB0byBwcm92aWRlIHRoZSBzaGFyZWQKKyAgICBsaWJyYXJ5IGZvciBsaWJ4bWwuc28uMCwgeW91IGNhbiBwcm9iYWJseSBzYWZlbHkgcmVtb3ZlIGl0LiBBbnl3YXkgdGhlCisgICAgbGlieG1sIHBhY2thZ2VzIHByb3ZpZGVkIG9uIDxhCisgICAgaHJlZj0iZnRwOi8vcnBtZmluZC5uZXQvcHViL2xpYnhtbC8iPnJwbWZpbmQubmV0PC9hPiBwcm92aWRlcworICAgIGxpYnhtbC5zby4wPC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgY2FuJ3QgaW5zdGFsbCB0aGUgbGlieG1sKDIpIFJQTSBwYWNrYWdlIGR1ZSB0byBmYWlsZWQKKyAgICBkZXBlbmRhbmNpZXM8L2VtPgorICAgIDxwPlRoZSBtb3N0IGdlbmVyaWMgc29sdXRpb24gaXMgdG8gcmVmZXRjaCB0aGUgbGF0ZXN0IHNyYy5ycG0gLCBhbmQKKyAgICByZWJ1aWxkIGl0IGxvY2FsbHkgd2l0aDwvcD4KKyAgICA8cD48Y29kZT5ycG0gLS1yZWJ1aWxkIGxpYnhtbCgyKS14eHguc3JjLnJwbTwvY29kZT48L3A+CisgICAgPHA+aWYgZXZlcnl0aGluZyBnb2VzIHdlbGwgaXQgd2lsbCBnZW5lcmF0ZSB0d28gYmluYXJ5IHJwbSAob25lIHByb3ZpZGluZworICAgIHRoZSBzaGFyZWQgbGlicyBhbmQgeG1sbGludCwgYW5kIHRoZSBvdGhlciBvbmUsIHRoZSAtZGV2ZWwgcGFja2FnZQorICAgIHByb3ZpZGluZyBpbmNsdWRlcywgc3RhdGljIGxpYnJhcmllcyBhbmQgc2NyaXB0cyBuZWVkZWQgdG8gYnVpbGQKKyAgICBhcHBsaWNhdGlvbnMgd2l0aCBsaWJ4bWwoMikpIHRoYXQgeW91IGNhbiBpbnN0YWxsIGxvY2FsbHkuPC9wPgorICA8L2xpPgorPC9vbD4KKworPGgzPjxhIG5hbWU9IkNvbXBpbGF0aW8iPkNvbXBpbGF0aW9uPC9hPjwvaDM+Cis8b2w+CisgIDxsaT48ZW0+V2hhdCBpcyB0aGUgcHJvY2VzcyB0byBjb21waWxlIGxpYnhtbCA/PC9lbT4KKyAgICA8cD5BcyBtb3N0IFVOSVggbGlicmFyaWVzIGxpYnhtbCBmb2xsb3dzIHRoZSAic3RhbmRhcmQiOjwvcD4KKyAgICA8cD48Y29kZT5ndW56aXAgLWMgeHh4LnRhci5neiB8IHRhciB4dmYgLTwvY29kZT48L3A+CisgICAgPHA+PGNvZGU+Y2QgbGlieG1sLXh4eHg8L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPi4vY29uZmlndXJlIC0taGVscDwvY29kZT48L3A+CisgICAgPHA+dG8gc2VlIHRoZSBvcHRpb25zLCB0aGVuIHRoZSBjb21waWxhdGlvbi9pbnN0YWxsYXRpb24gcHJvcGVyPC9wPgorICAgIDxwPjxjb2RlPi4vY29uZmlndXJlIFtwb3NzaWJsZSBvcHRpb25zXTwvY29kZT48L3A+CisgICAgPHA+PGNvZGU+bWFrZTwvY29kZT48L3A+CisgICAgPHA+PGNvZGU+bWFrZSBpbnN0YWxsPC9jb2RlPjwvcD4KKyAgICA8cD5BdCB0aGF0IHBvaW50IHlvdSBtYXkgaGF2ZSB0byByZXJ1biBsZGNvbmZpZyBvciBzaW1pbGFyIHV0aWxpdHkgdG8KKyAgICB1cGRhdGUgeW91ciBsaXN0IG9mIGluc3RhbGxlZCBzaGFyZWQgbGlicy48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+V2hhdCBvdGhlciBsaWJyYXJpZXMgYXJlIG5lZWRlZCB0byBjb21waWxlL2luc3RhbGwgbGlieG1sID88L2VtPgorICAgIDxwPkxpYnhtbCBkb2VzIG5vdCByZXF1aXJlcyBhbnkgb3RoZXIgbGlicmFyeSwgdGhlIG5vcm1hbCBDIEFOU0kgQVBJCisgICAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgKHBsZWFzZSByZXBvcnQgYW55IHZpb2xhdGlvbiB0byB0aGlzIHJ1bGUgeW91IG1heQorICAgIGZpbmQpLjwvcD4KKyAgICA8cD5Ib3dldmVyIGlmIGZvdW5kIGF0IGNvbmZpZ3VyYXRpb24gdGltZSBsaWJ4bWwgd2lsbCBkZXRlY3QgYW5kIHVzZSB0aGUKKyAgICBmb2xsb3dpbmcgbGliczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuaW5mby16aXAub3JnL3B1Yi9pbmZvemlwL3psaWIvIj5saWJ6PC9hPgorICAgICAgICAgOiBhIGhpZ2hseSBwb3J0YWJsZSBhbmQgYXZhaWxhYmxlIHdpZGVseSBjb21wcmVzc2lvbiBsaWJyYXJ5PC9saT4KKyAgICAgIDxsaT5pY29udjogYSBwb3dlcmZ1bCBjaGFyYWN0ZXIgZW5jb2RpbmcgY29udmVyc2lvbiBsaWJyYXJ5LiBJdCdzCisgICAgICAgIGluY2x1ZGVkIGJ5IGRlZmF1bHQgb24gcmVjZW50IGdsaWJjIGxpYnJhcmllcywgc28gaXQgZG9lc24ndCBuZWVkIHRvCisgICAgICAgIGJlIGluc3RhbGxlZCBzcGVjaWZpY2FsbHkgb24gbGludXguIEl0IHNlZW1zIGl0J3Mgbm93IDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cub3Blbm5jLm9yZy9vbmxpbmVwdWJzLzc5MDg3OTkveHNoL2ljb252Lmh0bWwiPnBhcnQKKyAgICAgICAgb2YgdGhlIG9mZmljaWFsIFVOSVg8L2E+IHNwZWNpZmljYXRpb24uIEhlcmUgaXMgb25lIDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly9jbGlzcC5jb25zLm9yZy9+aGFpYmxlL3BhY2thZ2VzLWxpYmljb252Lmh0bWwiPmltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIHRoZSBsaWJyYXJ5PC9hPiB3aGljaCBzb3VyY2UgY2FuIGJlIGZvdW5kIDxhCisgICAgICAgIGhyZWY9ImZ0cDovL2Z0cC5pbG9nLmZyL3B1Yi9Vc2Vycy9oYWlibGUvZ251LyI+aGVyZTwvYT4uPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGVtPmxpYnhtbCBkb2VzIG5vdCBjb21waWxlIHdpdGggSFAtVVgncyBvcHRpb25hbCBBTlNJLUMgY29tcGlsZXI8L2VtPgorICAgIDxwPnRoaXMgaXMgZHVlIHRvIG1hY3JvIGxpbWl0YXRpb25zLiBUcnkgdG8gYWRkICIgLVdwLC1IMTY4MDAgLUFlIiB0byB0aGUKKyAgICBDRkxBR1M8L3A+CisgICAgPHA+eW91IGNhbiBhbHNvIGluc3RhbGwgYW5kIHVzZSBnY2MgaW5zdGVhZCBvciB1c2UgYSBwcmVjb21waWxlZCB2ZXJzaW9uCisgICAgb2YgbGlieG1sLCBib3RoIGF2YWlsYWJsZSBmcm9tIHRoZSA8YQorICAgIGhyZWY9Imh0dHA6Ly9ocHV4LmNhZS53aXNjLmVkdS9ocHBkL2F1dG8vc3VtbWFyeV9hbGwuaHRtbCI+SFAtVVggUG9ydGluZworICAgIGFuZCBBcmNoaXZlIENlbnRyZTwvYT48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+bWFrZSBjaGVjayBmYWlscyBvbiBzb21lIHBsYXRmb3JtczwvZW0+CisgICAgPHA+U29tZXRpbWUgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgcmVzdWx0cyBkb24ndCBjb21wbGV0ZWx5IG1hdGNoIHRoZSB2YWx1ZQorICAgIHByb2R1Y2VkIGJ5IHRoZSBwYXJzZXIsIGFuZCB0aGUgbWFrZWZpbGUgdXNlcyBkaWZmIHRvIHByaW50IHRoZSBkZWx0YS4gT24KKyAgICBzb21lIHBsYXRmb3JtcyB0aGUgZGlmZiByZXR1cm4gYnJlYWtzIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzLCBpZiB0aGUKKyAgICBkaWZmIGlzIHNtYWxsIHRoaXMgaXMgcHJvYmFibHkgbm90IGEgc2VyaW91cyBwcm9ibGVtPC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgdXNlIHRoZSBDVlMgdmVyc2lvbiBhbmQgdGhlcmUgaXMgbm8gY29uZmlndXJlIHNjcmlwdDwvZW0+CisgICAgPHA+VGhlIGNvbmZpZ3VyZSAoYW5kIG90aGVyIE1ha2VmaWxlcykgYXJlIGdlbmVyYXRlZC4gVXNlIHRoZSBhdXRvZ2VuLnNoCisgICAgc2NyaXB0IHRvIHJlZ2VuZXJhdGUgdGhlIGNvbmZpZ3VyZSBhbmQgTWFrZWZpbGVzLCBsaWtlOjwvcD4KKyAgICA8cD48Y29kZT4uL2F1dG9nZW4uc2ggLS1wcmVmaXg9L3VzciAtLWRpc2FibGUtc2hhcmVkPC9jb2RlPjwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIGhhdmUgdHJvdWJsZXMgd2hlbiBydW5uaW5nIG1ha2UgdGVzdHMgd2l0aCBnY2MtMy4wPC9lbT4KKyAgICA8cD5JdCBzZWVtcyB0aGUgaW5pdGlhbCByZWxlYXNlIG9mIGdjYy0zLjAgaGFzIGEgcHJvYmxlbSB3aXRoIHRoZQorICAgIG9wdGltaXplciB3aGljaCBtaXNjb21waWxlcyB0aGUgVVJJIG1vZHVsZS4gUGxlYXNlIHVzZSBhbm90aGVyCisgICAgY29tcGlsZXI8L3A+CisgIDwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iRGV2ZWxvcGVyIj5EZXZlbG9wZXI8L2E+IGNvcm5lcjwvaDM+Cis8b2w+CisgIDxsaT48ZW0+eG1sRG9jRHVtcCgpIGdlbmVyYXRlcyBvdXRwdXQgb24gb25lIGxpbmU8L2VtPgorICAgIDxwPmxpYnhtbCB3aWxsIG5vdCA8c3Ryb25nPmludmVudDwvc3Ryb25nPiBzcGFjZXMgaW4gdGhlIGNvbnRlbnQgb2YgYQorICAgIGRvY3VtZW50IHNpbmNlIDxzdHJvbmc+YWxsIHNwYWNlcyBpbiB0aGUgY29udGVudCBvZiBhIGRvY3VtZW50IGFyZQorICAgIHNpZ25pZmljYW50PC9zdHJvbmc+LiBJZiB5b3UgYnVpbGQgYSB0cmVlIGZyb20gdGhlIEFQSSBhbmQgd2FudAorICAgIGluZGVudGF0aW9uOjwvcD4KKyAgICA8b2w+CisgICAgICA8bGk+dGhlIGNvcnJlY3Qgd2F5IGlzIHRvIGdlbmVyYXRlIHRob3NlIHlvdXJzZWxmIHRvbzwvbGk+CisgICAgICA8bGk+dGhlIGRhbmdlcm91cyB3YXkgaXMgdG8gYXNrIGxpYnhtbCB0byBhZGQgdGhvc2UgYmxhbmtzIHRvIHlvdXIKKyAgICAgICAgY29udGVudCA8c3Ryb25nPm1vZGlmeWluZyB0aGUgY29udGVudCBvZiB5b3VyIGRvY3VtZW50IGluIHRoZQorICAgICAgICBwcm9jZXNzPC9zdHJvbmc+LiBUaGUgcmVzdWx0IG1heSBub3QgYmUgd2hhdCB5b3UgZXhwZWN0LiBUaGVyZSBpcworICAgICAgICA8c3Ryb25nPk5PPC9zdHJvbmc+IHdheSB0byBndWFyYW50ZWUgdGhhdCBzdWNoIGEgbW9kaWZpY2F0aW9uIHdvbid0CisgICAgICAgIGltcGFjdCBvdGhlciBwYXJ0IG9mIHRoZSBjb250ZW50IG9mIHlvdXIgZG9jdW1lbnQuIFNlZSA8YQorICAgICAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MS0VFUEJMQU5LU0RFRkFVTFQiPnhtbEtlZXBCbGFua3NEZWZhdWx0CisgICAgICAgICgpPC9hPiBhbmQgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxTQVZFRk9STUFURklMRSI+eG1sU2F2ZUZvcm1hdEZpbGUKKyAgICAgICAgKCk8L2E+PC9saT4KKyAgICA8L29sPgorICA8L2xpPgorICA8bGk+RXh0cmEgbm9kZXMgaW4gdGhlIGRvY3VtZW50OgorICAgIDxwPjxlbT5Gb3IgYSBYTUwgZmlsZSBhcyBiZWxvdzo8L2VtPjwvcD4KKyAgICA8cHJlPiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0O1BMQU4geG1sbnM9Imh0dHA6Ly93d3cuYXJndXMuY2EvYXV0b3Rlc3QvMS4wLyImZ3Q7CismbHQ7Tk9ERSBDb21tRmxhZz0iMCIvJmd0OworJmx0O05PREUgQ29tbUZsYWc9IjEiLyZndDsKKyZsdDsvUExBTiZndDs8L3ByZT4KKyAgICA8cD48ZW0+YWZ0ZXIgcGFyc2luZyBpdCB3aXRoIHRoZSBmdW5jdGlvbgorICAgIHB4bWxEb2M9eG1sUGFyc2VGaWxlKC4uLik7PC9lbT48L3A+CisgICAgPHA+PGVtPkkgd2FudCB0byB0aGUgZ2V0IHRoZSBjb250ZW50IG9mIHRoZSBmaXJzdCBub2RlIChub2RlIHdpdGggdGhlCisgICAgQ29tbUZsYWc9IjAiKTwvZW0+PC9wPgorICAgIDxwPjxlbT5zbyBJIGRpZCBpdCBhcyBmb2xsb3dpbmc7PC9lbT48L3A+CisgICAgPHByZT54bWxOb2RlUHRyIHBvZGU7Citwbm9kZT1weG1sRG9jLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW47PC9wcmU+CisgICAgPHA+PGVtPmJ1dCBpdCBkb2VzIG5vdCB3b3JrLiBJZiBJIGNoYW5nZSBpdCB0bzwvZW0+PC9wPgorICAgIDxwcmU+cG5vZGU9cHhtbERvYy0mZ3Q7Y2hpbGRyZW4tJmd0O2NoaWxkcmVuLSZndDtuZXh0OzwvcHJlPgorICAgIDxwPjxlbT50aGVuIGl0IHdvcmtzLiAgQ2FuIHNvbWVvbmUgZXhwbGFpbiBpdCB0byBtZS48L2VtPjwvcD4KKyAgICA8cD48L3A+CisgICAgPHA+SW4gWE1MIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudCBhcmUgc2lnbmlmaWNhbnQKKyAgICA8c3Ryb25nPmluY2x1ZGluZyBibGFua3MgYW5kIGZvcm1hdHRpbmcgbGluZSBicmVha3M8L3N0cm9uZz4uPC9wPgorICAgIDxwPlRoZSBleHRyYSBub2RlcyB5b3UgYXJlIHdvbmRlcmluZyBhYm91dCBhcmUganVzdCB0aGF0LCB0ZXh0IG5vZGVzIHdpdGgKKyAgICB0aGUgZm9ybWF0dGluZyBzcGFjZXMgd2ljaCBhcmUgcGFydCBvZiB0aGUgZG9jdW1lbnQgYnV0IHRoYXQgcGVvcGxlIHRlbmQKKyAgICB0byBmb3JnZXQuIFRoZXJlIGlzIGEgZnVuY3Rpb24gPGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbEtlZXBCbGFua3NEZWZhdWx0CisgICAgKCk8L2E+ICB0byByZW1vdmUgdGhvc2UgYXQgcGFyc2UgdGltZSwgYnV0IHRoYXQncyBhbiBoZXVyaXN0aWMsIGFuZCBpdHMKKyAgICB1c2Ugc2hvdWxkIGJlIGxpbWl0ZWQgdG8gY2FzZSB3aGVyZSB5b3UgYXJlIHN1cmUgdGhlcmUgaXMgbm8KKyAgICBtaXhlZC1jb250ZW50IGluIHRoZSBkb2N1bWVudC48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+SSBnZXQgY29tcGlsYXRpb24gZXJyb3JzIG9mIGV4aXN0aW5nIGNvZGUgbGlrZSB3aGVuIGFjY2Vzc2luZworICAgIDxzdHJvbmc+cm9vdDwvc3Ryb25nPiBvciA8c3Ryb25nPmNoaWxkcyBmaWVsZHM8L3N0cm9uZz4gb2Ygbm9kZXM8L2VtPgorICAgIDxwPllvdSBhcmUgY29tcGlsaW5nIGNvZGUgZGV2ZWxvcGVkIGZvciBsaWJ4bWwgdmVyc2lvbiAxIGFuZCB1c2luZyBhCisgICAgbGlieG1sMiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4gRWl0aGVyIHN3aXRjaCBiYWNrIHRvIGxpYnhtbCB2MSBkZXZlbCBvcgorICAgIGV2ZW4gYmV0dGVyIGZpeCB0aGUgY29kZSB0byBjb21waWxlIHdpdGggbGlieG1sMiAob3IgYm90aCkgYnkgPGEKKyAgICBocmVmPSJ1cGdyYWRlLmh0bWwiPmZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zPC9hPi48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+SSBnZXQgY29tcGlsYXRpb24gZXJyb3JzIGFib3V0IG5vbiBleGlzdGluZworICAgIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz4gb3IgPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz4KKyAgICBmaWVsZHM8L2VtPgorICAgIDxwPlRoZSBzb3VyY2UgY29kZSB5b3UgYXJlIHVzaW5nIGhhcyBiZWVuIDxhCisgICAgaHJlZj0idXBncmFkZS5odG1sIj51cGdyYWRlZDwvYT4gdG8gYmUgYWJsZSB0byBjb21waWxlIHdpdGggYm90aCBsaWJ4bWwKKyAgICBhbmQgbGlieG1sMiwgYnV0IHlvdSBuZWVkIHRvIGluc3RhbGwgYSBtb3JlIHJlY2VudCB2ZXJzaW9uOgorICAgIGxpYnhtbCgtZGV2ZWwpICZndDs9IDEuOC44IG9yIGxpYnhtbDIoLWRldmVsKSAmZ3Q7PSAyLjEuMDwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5YUGF0aCBpbXBsZW1lbnRhdGlvbiBsb29rcyBzZXJpb3VzbHkgYnJva2VuPC9lbT4KKyAgICA8cD5YUGF0aCBpbXBsZW1lbnRhdGlvbiBwcmlvciB0byAyLjMuMCB3YXMgcmVhbGx5IGluY29tcGxldGUsIHVwZ3JhZGUgdG8KKyAgICBhIHJlY2VudCB2ZXJzaW9uLCB0aGUgaW1wbGVtZW50YXRpb24gYW5kIGRlYnVnIG9mIGxpYnhzbHQgZ2VuZXJhdGVkIGZpeGVzCisgICAgZm9yIG1vc3Qgb2J2aW91cyBwcm9ibGVtcy48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+VGhlIGV4YW1wbGUgcHJvdmlkZWQgaW4gdGhlIHdlYiBwYWdlIGRvZXMgbm90IGNvbXBpbGU8L2VtPgorICAgIDxwPkl0J3MgaGFyZCB0byBtYWludGFpbiB0aGUgZG9jdW1lbnRhdGlvbiBpbiBzeW5jIHdpdGggdGhlIGNvZGUKKyAgICAmbHQ7Z3Jpbi8mZ3Q7IC4uLjwvcD4KKyAgICA8cD5DaGVjayB0aGUgcHJldmlvdXMgcG9pbnRzIDEvIGFuZCAyLyByYWlzZWQgYmVmb3JlLCBhbmQgc2VuZAorICAgIHBhdGNoZXMuPC9wPgorICA8L2xpPgorICA8bGk+PGVtPldoZXJlIGNhbiBJIGdldCBtb3JlIGV4YW1wbGVzIGFuZCBpbmZvcm1hdGlvbnMgdGhhbiBpbiB0aGUgd2ViCisgICAgcGFnZTwvZW0+CisgICAgPHA+SWRlYWxseSBhIGxpYnhtbCBib29rIHdvdWxkIGJlIG5pY2UuIEkgaGF2ZSBubyBzdWNoIHBsYW4gLi4uIEJ1dCB5b3UKKyAgICBjYW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5jaGVjayBtb3JlIGRlZXBseSB0aGUgPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGliLmh0bWwiPmV4aXN0aW5nCisgICAgICAgIGdlbmVyYXRlZCBkb2M8L2E+PC9saT4KKyAgICAgIDxsaT5sb29rcyBmb3IgZXhhbXBsZXMgb2YgdXNlIGZvciBsaWJ4bWwgZnVuY3Rpb24gdXNpbmcgdGhlIEdub21lIGNvZGUKKyAgICAgICAgZm9yIGV4YW1wbGUgdGhlIGZvbGxvd2luZyB3aWxsIHF1ZXJ5IHRoZSBmdWxsIEdub21lIENWcyBiYXNlIGZvciB0aGUKKyAgICAgICAgdXNlIG9mIHRoZSA8c3Ryb25nPnhtbEFkZENoaWxkKCk8L3N0cm9uZz4gZnVuY3Rpb246CisgICAgICAgIDxwPjxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly9jdnMuZ25vbWUub3JnL2x4ci9zZWFyY2g/c3RyaW5nPXhtbEFkZENoaWxkIj5odHRwOi8vY3ZzLmdub21lLm9yZy9seHIvc2VhcmNoP3N0cmluZz14bWxBZGRDaGlsZDwvYT48L3A+CisgICAgICAgIDxwPlRoaXMgbWF5IGJlIHNsb3csIGEgbGFyZ2UgaGFyZHdhcmUgZG9uYXRpb24gdG8gdGhlIGdub21lIHByb2plY3QKKyAgICAgICAgY291bGQgY3VyZSB0aGlzIDotKTwvcD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+PGEKKyAgICAgICAgaHJlZj0iaHR0cDovL2N2cy5nbm9tZS5vcmcvYm9uc2FpL3J2aWV3LmNnaT9jdnNyb290PS9jdnMvZ25vbWUmYW1wO2Rpcj1nbm9tZS14bWwiPkJyb3dzZQorICAgICAgICB0aGUgbGlieG1sIHNvdXJjZTwvYT4KKyAgICAgICAgICwgSSB0cnkgdG8gd3JpdGUgY29kZSBhcyBjbGVhbiBhbmQgZG9jdW1lbnRlZCBhcyBwb3NzaWJsZSwgc28KKyAgICAgICAgbG9va2luZyBhdCBpdCBtYXkgYmUgaGVscGZ1bDwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPldoYXQgYWJvdXQgQysrID8KKyAgICA8cD5saWJ4bWwgaXMgd3JpdHRlbiBpbiBwdXJlIEMgaW4gb3JkZXIgdG8gYWxsb3cgZWFzeSByZXVzZSBvbiBhIG51bWJlcgorICAgIG9mIHBsYXRmb3JtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHN5c3RlbXMuIEkgZG9uJ3QgaW50ZW5kIHRvIGNvbnZlcnQgdG8KKyAgICBDKysuPC9wPgorICAgIDxwPlRoZXJlIGlzIGhvd2V2ZXIgYSBDKysgd3JhcHBlciBwcm92aWRlZCBieSBBcmkgSm9obnNvbgorICAgICZsdDthcmlAYnRpZ2F0ZS5jb20mZ3Q7IHdoaWNoIG1heSBmdWxsZmlsbCB5b3VyIG5lZWRzOjwvcD4KKyAgICA8cD5XZWJzaXRlOiA8YQorICAgIGhyZWY9Imh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy8iPmh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy88L2E+PC9wPgorICAgIDxwPkRvd25sb2FkOiA8YQorICAgIGhyZWY9Imh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy9saWJ4bWwrKy50YXIuZ3oiPmh0dHA6Ly9sdXNpcy5vcmcvfmFyaS94bWwrKy9saWJ4bWwrKy50YXIuZ3o8L2E+PC9wPgorICA8L2xpPgorICA8bGk+SG93IHRvIHZhbGlkYXRlIGEgZG9jdW1lbnQgYSBwb3N0ZXJpb3JpID8KKyAgICA8cD5JdCBpcyBwb3NzaWJsZSB0byB2YWxpZGF0ZSBkb2N1bWVudHMgd2hpY2ggaGFkIG5vdCBiZWVuIHZhbGlkYXRlZCBhdAorICAgIGluaXRpYWwgcGFyc2luZyB0aW1lIG9yIGRvY3VtZW50cyB3aG8gaGF2ZSBiZWVuIGJ1aWx0IGZyb20gc2NyYXRjaCB1c2luZworICAgIHRoZSBBUEkuIFVzZSB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxWQUxJREFURURURCI+eG1sVmFsaWRhdGVEdGQoKTwvYT4KKyAgICBmdW5jdGlvbi4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzaW1wbHkgYWRkIGEgRHRkIHRvIGFuIGV4aXN0aW5nCisgICAgZG9jdW1lbnQ6PC9wPgorICAgIDxwcmU+eG1sRG9jUHRyIGRvYzsgLyogeW91ciBleGlzdGluZyBkb2N1bWVudCAqLworICAgICAgICB4bWxEdGRQdHIgZHRkID0geG1sUGFyc2VEVEQoTlVMTCwgZmlsZW5hbWVfb2ZfZHRkKTsgLyogcGFyc2UgdGhlIERURCAqLworICAgICAgICBkdGQtJmd0O25hbWUgPSB4bWxTdHJEdXAoKHhtbENoYXIqKSJyb290X25hbWUiKTsgLyogdXNlIHRoZSBnaXZlbiByb290ICovCisKKyAgICAgICAgZG9jLSZndDtpbnRTdWJzZXQgPSBkdGQ7CisgICAgICAgIGlmIChkb2MtJmd0O2NoaWxkcmVuID09IE5VTEwpIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKWRvYywgKHhtbE5vZGVQdHIpZHRkKTsKKyAgICAgICAgZWxzZSB4bWxBZGRQcmV2U2libGluZyhkb2MtJmd0O2NoaWxkcmVuLCAoeG1sTm9kZVB0cilkdGQpOworICAgICAgICAgIDwvcHJlPgorICA8L2xpPgorICA8bGk+ZXRjIC4uLjwvbGk+Cis8L29sPgorCis8cD48L3A+CisKIDxoMj48YSBuYW1lPSJEb2N1bWVudGF0Ij5Eb2N1bWVudGF0aW9uPC9hPjwvaDI+CiAKIDxwPlRoZXJlIGFyZSBzb21lIG9uLWxpbmUgcmVzb3VyY2VzIGFib3V0IHVzaW5nIGxpYnhtbDo8L3A+CkBAIC05MDksNyArMTE3Miw3IEBACiBzdXBwb3J0ZWQgYW5kIHRoZSBwcm9ncmVzc2VzIG9uIHRoZSA8YQogaHJlZj0iaHR0cDovL2N2cy5nbm9tZS5vcmcvbHhyL3NvdXJjZS9saWJ4c2x0L0NoYW5nZUxvZyI+Q2hhbmdlbG9nPC9hPjwvcD4KIAotPGgyPjxhIG5hbWU9ImFyY2hpdGVjdHVyZSI+QW4gb3ZlcnZpZXcgb2YgbGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2gyPgorPGgyPjxhIG5hbWU9ImFyY2hpdGVjdHVyZSI+bGlieG1sIGFyY2hpdGVjdHVyZTwvYT48L2gyPgogCiA8cD5MaWJ4bWwgaXMgbWFkZSBvZiBtdWx0aXBsZSBjb21wb25lbnRzOyBzb21lIG9mIHRoZW0gYXJlIG9wdGlvbmFsLCBhbmQgbW9zdAogb2YgdGhlIGJsb2NrIGludGVyZmFjZXMgYXJlIHB1YmxpYy4gVGhlIG1haW4gY29tcG9uZW50cyBhcmU6PC9wPgpAQCAtMTA1MSw3ICsxMzE0LDExNzAgQEAKIGEgc2V0IG9mIHJlZ2lzdGVyZWQgZGVmYXVsdCBjYWxsYmFja3MsIHdpdGhvdXQgaW50ZXJuYWwgc3BlY2lmaWMKIGludGVyZmFjZS48L3A+CiAKLTxoMj48YSBuYW1lPSJsaWJyYXJ5Ij5UaGUgWE1MIGxpYnJhcnkgaW50ZXJmYWNlczwvYT48L2gyPgorPGgyPjxhIG5hbWU9IlZhbGlkYXRpb24iPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2gyPgorCis8cD5UYWJsZSBvZiBDb250ZW50OjwvcD4KKzxvbD4KKyAgPGxpPjxhIGhyZWY9IiNHZW5lcmFsNSI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2RlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjU2ltcGxlIj5TaW1wbGUgcnVsZXM8L2E+CisgICAgPG9sPgorICAgICAgPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2UiPkhvdyB0byByZWZlcmVuY2UgYSBEVEQgZnJvbSBhCisgICAgICAgIGRvY3VtZW50PC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iI0RlY2xhcmluZyI+RGVjbGFyaW5nIGVsZW1lbnRzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iI0RlY2xhcmluZzEiPkRlY2xhcmluZyBhdHRyaWJ1dGVzPC9hPjwvbGk+CisgICAgPC9vbD4KKyAgPC9saT4KKyAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjdmFsaWRhdGUiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI090aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9saT4KKzwvb2w+CisKKzxoMz48YSBuYW1lPSJHZW5lcmFsNSI+R2VuZXJhbCBvdmVydmlldzwvYT48L2gzPgorCis8cD5XZWxsIHdoYXQgaXMgdmFsaWRhdGlvbiBhbmQgd2hhdCBpcyBhIERURCA/PC9wPgorCis8cD5EVEQgaXMgdGhlIGFjcm9ueW0gZm9yIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbi4gVGhpcyBpcyBhIGRlc2NyaXB0aW9uIG9mCit0aGUgY29udGVudCBmb3IgYSBmYW1pbGx5IG9mIFhNTCBmaWxlcy4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBYTUwgMS4wCitzcGVjaWZpY2F0aW9uLCBhbmQgYWxvd3MgdG8gZGVzY3JpYmUgYW5kIGNoZWNrIHRoYXQgYSBnaXZlbiBkb2N1bWVudCBpbnN0YW5jZQorY29uZm9ybXMgdG8gYSBzZXQgb2YgcnVsZXMgZGV0YWlsaW5nIGl0cyBzdHJ1Y3R1cmUgYW5kIGNvbnRlbnQuPC9wPgorCis8cD5WYWxpZGF0aW9uIGlzIHRoZSBwcm9jZXNzIG9mIGNoZWNraW5nIGEgZG9jdW1lbnQgYWdhaW5zdCBhIERURCAobW9yZQorZ2VuZXJhbGx5IGFnYWluc3QgYSBzZXQgb2YgY29uc3RydWN0aW9uIHJ1bGVzKS48L3A+CisKKzxwPlRoZSB2YWxpZGF0aW9uIHByb2Nlc3MgYW5kIGJ1aWxkaW5nIERURHMgYXJlIHRoZSB0d28gbW9zdCBkaWZmaWN1bHQgcGFydHMKK29mIHRoZSBYTUwgbGlmZSBjeWNsZS4gQnJpZWZseSBhIERURCBkZWZpbmVzIGFsbCB0aGUgcG9zc2libGVzIGVsZW1lbnQgdG8gYmUKK2ZvdW5kIHdpdGhpbiB5b3VyIGRvY3VtZW50LCB3aGF0IGlzIHRoZSBmb3JtYWwgc2hhcGUgb2YgeW91ciBkb2N1bWVudCB0cmVlCisoYnkgZGVmaW5pbmcgdGhlIGFsbG93ZWQgY29udGVudCBvZiBhbiBlbGVtZW50LCBlaXRoZXIgdGV4dCwgYSByZWd1bGFyCitleHByZXNzaW9uIGZvciB0aGUgYWxsb3dlZCBsaXN0IG9mIGNoaWxkcmVuLCBvciBtaXhlZCBjb250ZW50IGkuZS4gYm90aCB0ZXh0CithbmQgY2hpbGRyZW4pLiBUaGUgRFREIGFsc28gZGVmaW5lcyB0aGUgYWxsb3dlZCBhdHRyaWJ1dGVzIGZvciBhbGwgZWxlbWVudHMKK2FuZCB0aGUgdHlwZXMgb2YgdGhlIGF0dHJpYnV0ZXMuPC9wPgorCis8aDM+PGEgbmFtZT0iZGVmaW5pdGlvbjEiPlRoZSBkZWZpbml0aW9uPC9hPjwvaDM+CisKKzxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj5XM0MgWE1MIFJlY29tbWVuZGF0aW9uPC9hPiAoPGEKK2hyZWY9Imh0dHA6Ly93d3cueG1sLmNvbS9heG1sL2F4bWwuaHRtbCI+VGltIEJyYXkncyBhbm5vdGF0ZWQgdmVyc2lvbiBvZgorUmV2MTwvYT4pOjwvcD4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZWxlbWRlY2xzIj5EZWNsYXJpbmcKKyAgZWxlbWVudHM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjYXR0ZGVjbHMiPkRlY2xhcmluZworICBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8L3VsPgorCis8cD4odW5mb3J0dW5hdGVseSkgYWxsIHRoaXMgaXMgaW5oZXJpdGVkIGZyb20gdGhlIFNHTUwgd29ybGQsIHRoZSBzeW50YXggaXMKK2FuY2llbnQuLi48L3A+CisKKzxoMz48YSBuYW1lPSJTaW1wbGUxIj5TaW1wbGUgcnVsZXM8L2E+PC9oMz4KKworPHA+V3JpdGluZyBEVEQgY2FuIGJlIGRvbmUgaW4gbXVsdGlwbGUgd2F5cywgdGhlIHJ1bGVzIHRvIGJ1aWxkIHRoZW0gaWYgeW91CituZWVkIHNvbWV0aGluZyBmaXhlZCBvciBzb21ldGhpbmcgd2hpY2ggY2FuIGV2b2x2ZSBvdmVyIHRpbWUgY2FuIGJlIHJhZGljYWxseQorZGlmZmVyZW50LiBSZWFsbHkgY29tcGxleCBEVEQgbGlrZSBEb2Nib29rIG9uZXMgYXJlIGZsZXhpYmxlIGJ1dCBxdWl0ZSBoYXJkZXIKK3RvIGRlc2lnbi4gSSB3aWxsIGp1c3QgZm9jdXNlIG9uIERURHMgZm9yIGEgZm9ybWF0cyB3aXRoIGEgZml4ZWQgc2ltcGxlCitzdHJ1Y3R1cmUuIEl0IGlzIGp1c3QgYSBzZXQgb2YgYmFzaWMgcnVsZXMsIGFuZCBkZWZpbml0ZWx5IG5vdCBleGhhdXN0aXZlIG5vcgordXNlYWJsZSBmb3IgY29tcGxleCBEVEQgZGVzaWduLjwvcD4KKworPGg0PjxhIG5hbWU9InJlZmVyZW5jZTEiPkhvdyB0byByZWZlcmVuY2UgYSBEVEQgZnJvbSBhIGRvY3VtZW50PC9hPjo8L2g0PgorCis8cD5Bc3N1bWluZyB0aGUgdG9wIGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IGlzIDxjb2RlPnNwZWM8L2NvZGU+IGFuZCB0aGUgZHRkCitpcyBwbGFjZWQgaW4gdGhlIGZpbGUgPGNvZGU+bXlkdGQ8L2NvZGU+IGluIHRoZSBzdWJkaXJlY3RvcnkKKzxjb2RlPmR0ZHM8L2NvZGU+IG9mIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGVyZSB0aGUgZG9jdW1lbnQgd2VyZSBsb2FkZWQ6PC9wPgorCis8cD48Y29kZT4mbHQ7IURPQ1RZUEUgc3BlYyBTWVNURU0gImR0ZHMvbXlkdGQiJmd0OzwvY29kZT48L3A+CisKKzxwPk5vdGVzOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBzeXN0ZW0gc3RyaW5nIGlzIGFjdHVhbGx5IGFuIFVSSS1SZWZlcmVuY2UgKGFzIGRlZmluZWQgaW4gPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+UkZDIDIzOTY8L2E+KSBzbyB5b3UgY2FuIHVzZSBhCisgICAgZnVsbCBVUkwgc3RyaW5nIGluZGljYXRpbmcgdGhlIGxvY2F0aW9uIG9mIHlvdXIgRFREIG9uIHRoZSBXZWIsIHRoaXMgaXMgYQorICAgIHJlYWxseSBnb29kIHRoaW5nIHRvIGRvIGlmIHlvdSB3YW50IG90aGVycyB0byB2YWxpZGF0ZSB5b3VyIGRvY3VtZW50PC9saT4KKyAgPGxpPml0IGlzIGFsc28gcG9zc2libGUgdG8gYXNzb2NpYXRlIGEgPGNvZGU+UFVCTElDPC9jb2RlPiBpZGVudGlmaWVyIChhCisgICAgbWFnaWMgc3RyaW5nKSBzbyB0aGF0IHRoZSBEVGQgaXMgbG9va2VkIHVwIGluIGNhdGFsb2dzIG9uIHRoZSBjbGllbnQgc2lkZQorICAgIHdpdGhvdXQgaGF2aW5nIHRvIGxvY2F0ZSBpdCBvbiB0aGUgd2ViPC9saT4KKyAgPGxpPmEgZHRkIGNvbnRhaW5zIGEgc2V0IG9mIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGRlY2xhcmF0aW9ucywgYnV0IHRoZXkKKyAgICBkb24ndCBkZWZpbmUgd2hhdCB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQgc2hvdWxkIGJlLiBUaGlzIGlzIGV4cGxpY2l0ZWx5CisgICAgdG9sZCB0byB0aGUgcGFyc2VyL3ZhbGlkYXRvciBhcyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKKyAgICA8Y29kZT5ET0NUWVBFPC9jb2RlPiBkZWNsYXJhdGlvbi48L2xpPgorPC91bD4KKworPGg0PjxhIG5hbWU9IkRlY2xhcmluZzIiPkRlY2xhcmluZyBlbGVtZW50czwvYT46PC9oND4KKworPHA+VGhlIGZvbGxvd2luZyBkZWNsYXJlcyBhbiBlbGVtZW50IDxjb2RlPnNwZWM8L2NvZGU+OjwvcD4KKworPHA+PGNvZGU+Jmx0OyFFTEVNRU5UIHNwZWMgKGZyb250LCBib2R5LCBiYWNrPykmZ3Q7PC9jb2RlPjwvcD4KKworPHA+aXQgYWxzbyBleHByZXNzZXMgdGhhdCB0aGUgc3BlYyBlbGVtZW50IGNvbnRhaW5zIG9uZSA8Y29kZT5mcm9udDwvY29kZT4sCitvbmUgPGNvZGU+Ym9keTwvY29kZT4gYW5kIG9uZSBvcHRpb25uYWwgPGNvZGU+YmFjazwvY29kZT4gY2hpbGRyZW4gZWxlbWVudHMKK2luIHRoaXMgb3JkZXIuIFRoZSBkZWNsYXJhdGlvbiBvZiBvbmUgZWxlbWVudCBvZiB0aGUgc3RydWN0dXJlIGFuZCBpdHMKK2NvbnRlbnQgYXJlIGRvbmUgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uIFNpbWlsYXJ5IHRoZSBmb2xsb3dpbmcgZGVjbGFyZXMKKzxjb2RlPmRpdjE8L2NvZGU+IGVsZW1lbnRzOjwvcD4KKworPHA+PGNvZGU+Jmx0OyFFTEVNRU5UIGRpdjEgKGhlYWQsIChwIHwgbGlzdCB8IG5vdGUpKiwgZGl2MiopJmd0OzwvY29kZT48L3A+CisKKzxwPm1lYW5zIGRpdjEgY29udGFpbnMgb25lIDxjb2RlPmhlYWQ8L2NvZGU+IHRoZW4gYSBzZXJpZXMgb2Ygb3B0aW9uYWwKKzxjb2RlPnA8L2NvZGU+LCA8Y29kZT5saXN0PC9jb2RlPnMgYW5kIDxjb2RlPm5vdGU8L2NvZGU+cyBhbmQgdGhlbiBhbgorb3B0aW9uYWwgPGNvZGU+ZGl2MjwvY29kZT4uIEFuZCBsYXN0IGJ1dCBub3QgbGVhc3QgYW4gZWxlbWVudCBjYW4gY29udGFpbgordGV4dDo8L3A+CisKKzxwPjxjb2RlPiZsdDshRUxFTUVOVCBiICgjUENEQVRBKSZndDs8L2NvZGU+PC9wPgorCis8cD48Y29kZT5iPC9jb2RlPiBjb250YWlucyB0ZXh0IG9yIGJlaW5nIG9mIG1peGVkIGNvbnRlbnQgKHRleHQgYW5kIGVsZW1lbnRzCitpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKTo8L3A+CisKKzxwPjxjb2RlPiZsdDshRUxFTUVOVCBwICgjUENEQVRBfGF8dWx8YnxpfGVtKSomZ3Q7PC9jb2RlPjwvcD4KKworPHA+PGNvZGU+cCA8L2NvZGU+Y2FuIGNvbnRhaW4gdGV4dCBvciA8Y29kZT5hPC9jb2RlPiwgPGNvZGU+dWw8L2NvZGU+LAorPGNvZGU+YjwvY29kZT4sIDxjb2RlPmkgPC9jb2RlPm9yIDxjb2RlPmVtPC9jb2RlPiBlbGVtZW50cyBpbiBubyBwYXJ0aWN1bGFyCitvcmRlci48L3A+CisKKzxoND48YSBuYW1lPSJEZWNsYXJpbmcxIj5EZWNsYXJpbmcgYXR0cmlidXRlczwvYT46PC9oND4KKworPHA+YWdhaW4gdGhlIGF0dHJpYnV0ZXMgZGVjbGFyYXRpb24gaW5jbHVkZXMgdGhlaXIgY29udGVudCBkZWZpbml0aW9uOjwvcD4KKworPHA+PGNvZGU+Jmx0OyFBVFRMSVNUIHRlcm1kZWYgbmFtZSBDREFUQSAjSU1QTElFRCZndDs8L2NvZGU+PC9wPgorCis8cD5tZWFucyB0aGF0IHRoZSBlbGVtZW50IDxjb2RlPnRlcm1kZWY8L2NvZGU+IGNhbiBoYXZlIGEgPGNvZGU+bmFtZTwvY29kZT4KK2F0dHJpYnV0ZSBjb250YWluaW5nIHRleHQgKDxjb2RlPkNEQVRBPC9jb2RlPikgYW5kIHdoaWNoIGlzIG9wdGlvbm5hbAorKDxjb2RlPiNJTVBMSUVEPC9jb2RlPikuIFRoZSBhdHRyaWJ1dGUgdmFsdWUgY2FuIGFsc28gYmUgZGVmaW5lZCB3aXRoaW4gYQorc2V0OjwvcD4KKworPHA+PGNvZGU+Jmx0OyFBVFRMSVNUIGxpc3QgdHlwZSAoYnVsbGV0c3xvcmRlcmVkfGdsb3NzYXJ5KQorIm9yZGVyZWQiJmd0OzwvY29kZT48L3A+CisKKzxwPm1lYW5zIDxjb2RlPmxpc3Q8L2NvZGU+IGVsZW1lbnQgaGF2ZSBhIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZSB3aXRoIDMKK2FsbG93ZWQgdmFsdWVzICJidWxsZXRzIiwgIm9yZGVyZWQiIG9yICJnbG9zc2FyeSIgYW5kIHdoaWNoIGRlZmF1bHQgdG8KKyJvcmRlcmVkIiBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBleHBsaWNpdGVseSBzcGVjaWZpZWQuPC9wPgorCis8cD5UaGUgY29udGVudCB0eXBlIG9mIGFuIGF0dHJpYnV0ZSBjYW4gYmUgdGV4dCAoPGNvZGU+Q0RBVEE8L2NvZGU+KSwKK2FuY2hvci9yZWZlcmVuY2UvcmVmZXJlbmNlcworKDxjb2RlPklEPC9jb2RlPi88Y29kZT5JRFJFRjwvY29kZT4vPGNvZGU+SURSRUZTPC9jb2RlPiksIGVudGl0eShpZXMpCisoPGNvZGU+RU5USVRZPC9jb2RlPi88Y29kZT5FTlRJVElFUzwvY29kZT4pIG9yIG5hbWUocykKKyg8Y29kZT5OTVRPS0VOPC9jb2RlPi88Y29kZT5OTVRPS0VOUzwvY29kZT4pLiBUaGUgZm9sbG93aW5nIGRlZmluZXMgdGhhdCBhCis8Y29kZT5jaGFwdGVyPC9jb2RlPiBlbGVtZW50IGNhbiBoYXZlIGFuIG9wdGlvbmFsIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUKK29mIHR5cGUgPGNvZGU+SUQ8L2NvZGU+LCB1c2FibGUgZm9yIHJlZmVyZW5jZSBmcm9tIGF0dHJpYnV0ZSBvZiB0eXBlCitJRFJFRjo8L3A+CisKKzxwPjxjb2RlPiZsdDshQVRUTElTVCBjaGFwdGVyIGlkIElEICNJTVBMSUVEJmd0OzwvY29kZT48L3A+CisKKzxwPlRoZSBsYXN0IHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNhbiBiZSA8Y29kZT4jUkVRVUlSRUQKKzwvY29kZT5tZWFuaW5nIHRoYXQgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgZ2l2ZW4sIDxjb2RlPiNJTVBMSUVEPC9jb2RlPgorbWVhbmluZyB0aGF0IGl0IGlzIG9wdGlvbmFsLCBvciB0aGUgZGVmYXVsdCB2YWx1ZSAocG9zc2libHkgcHJlZml4ZWQgYnkKKzxjb2RlPiNGSVhFRDwvY29kZT4gaWYgaXQgaXMgdGhlIG9ubHkgYWxsb3dlZCkuPC9wPgorCis8cD5Ob3Rlczo8L3A+Cis8dWw+CisgIDxsaT51c3VhbGx5IHRoZSBhdHRyaWJ1dGVzIHBlcnRhaW5pbmcgdG8gYSBnaXZlbiBlbGVtZW50IGFyZSBkZWNsYXJlZCBpbiBhCisgICAgc2luZ2xlIGV4cHJlc3Npb24sIGJ1dCBpdCBpcyBqdXN0IGEgY29udmVudGlvbiBhZG9wdGVkIGJ5IGEgbG90IG9mIERURAorICAgIHdyaXRlcnM6CisgICAgPHByZT4mbHQ7IUFUVExJU1QgdGVybWRlZgorICAgICAgICAgIGlkICAgICAgSUQgICAgICAjUkVRVUlSRUQKKyAgICAgICAgICBuYW1lICAgIENEQVRBICAgI0lNUExJRUQmZ3Q7PC9wcmU+CisgICAgPHA+VGhlIHByZXZpb3VzIGNvbnN0cnVjdCBkZWZpbmVzIGJvdGggPGNvZGU+aWQ8L2NvZGU+IGFuZAorICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50IDxjb2RlPnRlcm1kZWY8L2NvZGU+PC9wPgorICA8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9IlNvbWUxIj5Tb21lIGV4YW1wbGVzPC9hPjwvaDM+CisKKzxwPlRoZSBkaXJlY3RvcnkgPGNvZGU+dGVzdC92YWxpZC9kdGRzLzwvY29kZT4gaW4gdGhlIGxpYnhtbCBkaXN0cmlidXRpb24KK2NvbnRhaW5zIHNvbWUgY29tcGxleCBEVEQgZXhhbXBsZXMuIFRoZSAgPGNvZGU+dGVzdC92YWxpZC9kaWEueG1sPC9jb2RlPgorZXhhbXBsZSBzaG93cyBhbiBYTUwgZmlsZSB3aGVyZSB0aGUgc2ltcGxlIERURCBpcyBkaXJlY3RseSBpbmNsdWRlZCB3aXRoaW4KK3RoZSBkb2N1bWVudC48L3A+CisKKzxoMz48YSBuYW1lPSJ2YWxpZGF0ZTEiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2gzPgorCis8cD5UaGUgc2ltcGxlc3QgaXMgdG8gdXNlIHRoZSB4bWxsaW50IHByb2dyYW0gY29tbWluZyB3aXRoIGxpYnhtbC4gVGhlCis8Y29kZT4tLXZhbGlkPC9jb2RlPiBvcHRpb24gdHVybiBvbiB2YWxpZGF0aW9uIG9mIHRoZSBmaWxlcyBnaXZlbiBhcyBpbnB1dCwKK2ZvciBleGFtcGxlIHRoZSBmb2xsb3dpbmcgdmFsaWRhdGVzIGEgY29weSBvZiB0aGUgZmlyc3QgcmV2aXNpb24gb2YgdGhlIFhNTAorMS4wIHNwZWNpZmljYXRpb246PC9wPgorCis8cD48Y29kZT54bWxsaW50IC0tdmFsaWQgLS1ub291dCB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sPC9jb2RlPjwvcD4KKworPHA+dGhlIC0tIG5vb3V0IGlzIHVzZWQgdG8gbm90IG91dHB1dCB0aGUgcmVzdWx0aW5nIHRyZWUuPC9wPgorCis8cD5UaGUgPGNvZGU+LS1kdGR2YWxpZCBkdGQ8L2NvZGU+IGFsbG93cyB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQocykgYWdhaW5zdAorYSBnaXZlbiBEVEQuPC9wPgorCis8cD5MaWJ4bWwgZXhwb3J0cyBhbiBBUEkgdG8gaGFuZGxlIERURHMgYW5kIHZhbGlkYXRpb24sIGNoZWNrIHRoZSA8YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXZhbGlkLmh0bWwiPmFzc29jaWF0ZWQKK2Rlc2NyaXB0aW9uPC9hPi48L3A+CisKKzxoMz48YSBuYW1lPSJPdGhlcjEiPk90aGVyIHJlc291cmNlczwvYT48L2gzPgorCis8cD5EVERzIGFyZSBhcyBvbGQgYXMgU0dNTC4gU28gdGhlcmUgbWF5IGJlIGEgbnVtYmVyIG9mIGV4YW1wbGVzIG9uLWxpbmUsIEkKK3dpbGwganVzdCBsaXN0IG9uZSBmb3Igbm93LCBvdGhlcnMgcG9pbnRlcnMgd2VsY29tZTo8L3A+Cis8dWw+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnhtbDEwMS5jb206ODA4MS9kdGQvIj5YTUwtMTAxIERURDwvYT48L2xpPgorPC91bD4KKworPHA+SSBzdWdnZXN0IGxvb2tpbmcgYXQgdGhlIGV4YW1wbGVzIGZvdW5kIHVuZGVyIHRlc3QvdmFsaWQvZHRkIGFuZCBhbnkgb2YKK3RoZSBsYXJnZSBudW1iZXIgb2YgYm9va3MgYXZhaWxhYmxlIG9uIFhNTC4gVGhlIGRpYSBleGFtcGxlIGluIHRlc3QvdmFsaWQKK3Nob3VsZCBiZSBib3RoIHNpbXBsZSBhbmQgY29tcGxldGUgZW5vdWdoIHRvIGFsbG93IHlvdSB0byBidWlsZCB5b3VyIG93bi48L3A+CisKKzxwPjwvcD4KKworPGgyPjxhIG5hbWU9Ik1lbW9yeSI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9oMj4KKworPHA+VGFibGUgb2YgQ29udGVudDo8L3A+Cis8b2w+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDMiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNzZXR0aW5nIj5TZXR0aW5nIGxpYnhtbCBzZXQgb2YgbWVtb3J5CisgIHJvdXRpbmVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjY2xlYW51cCI+Q2xlYW5pbmcgdXAgYWZ0ZXIgcGFyc2luZzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0RlYnVnZ2luZyI+RGVidWdnaW5nIHJvdXRpbmVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDQiPkdlbmVyYWwgbWVtb3J5IHJlcXVpcmVtZW50czwvYT48L2xpPgorPC9vbD4KKworPGgzPjxhIG5hbWU9IkdlbmVyYWwzIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+CisKKzxwPlRoZSBtb2R1bGUgPGNvZGU+PGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5Lmg8L2E+PC9jb2RlPgorcHJvdmlkZXMgdGhlIGludGVyZmFjZXMgdG8gdGhlIGxpYnhtbCBtZW1vcnkgc3lzdGVtOjwvcD4KKzx1bD4KKyAgPGxpPmxpYnhtbCBkb2VzIG5vdCB1c2UgdGhlIGxpYmMgbWVtb3J5IGFsbG9jYXRvciBkaXJlY3RseSBidXQgeG1sRnJlZSgpLAorICAgIHhtbE1hbGxvYygpIGFuZCB4bWxSZWFsbG9jKCk8L2xpPgorICA8bGk+dGhvc2Ugcm91dGluZXMgY2FuIGJlIHJlYWxsb2NhdGVkIHRvIGEgc3BlY2lmaWMgc2V0IG9mIHJvdXRpbmUsIGJ5CisgICAgZGVmYXVsdCB0aGUgbGliYyBvbmVzIGkuZS4gZnJlZSgpLCBtYWxsb2MoKSBhbmQgcmVhbGxvYygpPC9saT4KKyAgPGxpPnRoZSB4bWxtZW1vcnkuYyBtb2R1bGUgaW5jbHVkZXMgYSBzZXQgb2YgZGVidWdnaW5nIHJvdXRpbmU8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9InNldHRpbmciPlNldHRpbmcgbGlieG1sIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9oMz4KKworPHA+SXQgaXMgc29tZXRpbWVzIHVzZWZ1bCB0byBub3QgdXNlIHRoZSBkZWZhdWx0IG1lbW9yeSBhbGxvY2F0b3IsIGVpdGhlciBmb3IKK2RlYnVnZ2luZywgYW5hbHlzaXMgb3IgdG8gaW1wbGVtZW50IGEgc3BlY2lmaWMgYmVoYXZpb3VyIG9uIG1lbW9yeSBtYW5hZ2VtZW50CisobGlrZSBvbiBlbWJlZGRlZCBzeXN0ZW1zKS4gVHdvIGZ1bmN0aW9uIGNhbGxzIGFyZSBhdmFpbGFibGUgdG8gZG8gc286PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1HZXQgKCk8L2E+CisgICAgIHdoaWNoIHJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgZnVuY3Rpb25zIGluIHVzZSBieSB0aGUgcGFyc2VyPC9saT4KKyAgPGxpPjxhCisgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1TZXR1cCgpPC9hPgorICAgICB3aGljaCBhbGxvdyB0byBzZXQgdXAgYSBuZXcgc2V0IG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9uczwvbGk+Cis8L3VsPgorCis8cD5PZiBjb3Vyc2UgYSBjYWxsIHRvIHhtbE1lbVNldHVwKCkgc2hvdWxkIHByb2JhYmx5IGJlIGRvbmUgYmVmb3JlIGNhbGxpbmcKK2FueSBvdGhlciBsaWJ4bWwgcm91dGluZXMgKHVubGVzcyB5b3UgYXJlIHN1cmUgeW91ciBhbGxvY2F0aW9ucyByb3V0aW5lcyBhcmUKK2NvbXBhdGlibGVzKS48L3A+CisKKzxoMz48YSBuYW1lPSJjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciBwYXJzaW5nPC9hPjwvaDM+CisKKzxwPkxpYnhtbCBpcyBub3Qgc3RhdGVsZXNzLCB0aGVyZSBpcyBhIGZldyBzZXQgb2YgbWVtb3J5IHN0cnVjdHVyZXMgbmVlZGluZworYWxsb2NhdGlvbiBiZWZvcmUgdGhlIHBhcnNlciBpcyBmdWxseSBmdW5jdGlvbm5hbCAoc29tZSBlbmNvZGluZyBzdHJ1Y3R1cmVzCitmb3IgZXhhbXBsZSkuIFRoaXMgYWxzbyBtZWFuIHRoYXQgb25jZSBwYXJzaW5nIGlzIGZpbmlzaGVkIHRoZXJlIGlzIGEgdGlueQorYW1vdW50IG9mIG1lbW9yeSAoYSBmZXcgaHVuZHJlZCBieXRlcykgd2hpY2ggY2FuIGJlIHJlY29sbGVjdGVkIGlmIHlvdSBkb24ndAorcmV1c2UgdGhlIHBhcnNlciBpbW1lZGlhdGVseTo8L3A+Cis8dWw+CisgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbENsZWFudXBQYXJzZXIKKyAgICAoKTwvYT4KKyAgICAgaXMgYSBjZW50cmFsaXplZCByb3V0aW5lIHRvIGZyZWUgdGhlIHBhcnNpbmcgc3RhdGVzLiBOb3RlIHRoYXQgaXQgd29uJ3QKKyAgICBkZWFsbG9jYXRlIGFueSBwcm9kdWNlZCB0cmVlIGlmIGFueSAodXNlIHRoZSB4bWxGcmVlRG9jKCkgYW5kIHJlbGF0ZWQKKyAgICByb3V0aW5lcyBmb3IgdGhpcykuPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCI+eG1sSW5pdFBhcnNlcgorICAgICgpPC9hPgorICAgICBpcyB0aGUgZHVhbCByb3V0aW5lIGFsbG93aW5nIHRvIHByZWFsbG9jYXRlIHRoZSBwYXJzaW5nIHN0YXRlIHdoaWNoIGNhbgorICAgIGJlIHVzZWZ1bCBmb3IgZXhhbXBsZSB0byBhdm9pZCBpbml0aWFsaXphdGlvbiByZWVudHJhbmN5IHByb2JsZW1zIHdoZW4KKyAgICB1c2luZyBsaWJ4bWwgaW4gbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbnM8L2xpPgorPC91bD4KKworPHA+R2VuZXJhbGx5IHhtbENsZWFudXBQYXJzZXIoKSBpcyBzYWZlLCBpZiBuZWVkZWQgdGhlIHN0YXRlIHdpbGwgYmUgcmVidWlsZAorYXQgdGhlIG5leHQgaW52b2NhdGlvbiBvZiBwYXJzZXIgcm91dGluZXMsIGJ1dCBiZSBjYXJlZnVsIG9mIHRoZSBjb25zZXF1ZW5jZXMKK2luIG11bHRpdGhyZWFkZWQgYXBwbGljYXRpb25zLjwvcD4KKworPGgzPjxhIG5hbWU9IkRlYnVnZ2luZyI+RGVidWdnaW5nIHJvdXRpbmVzPC9hPjwvaDM+CisKKzxwPldoZW4gY29uZmlndXJlZCB1c2luZyAtLXdpdGgtbWVtLWRlYnVnIGZsYWcgKG9mZiBieSBkZWZhdWx0KSwgbGlieG1sIHVzZXMKK2Egc2V0IG9mIG1lbW9yeSBhbGxvY2F0aW9uIGRlYnVnZ2luZyByb3V0aW5lc2tlZXBpbmcgdHJhY2sgb2YgYWxsIGFsbG9jYXRlZAorYmxvY2tzIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUgd2hlcmUgdGhlIHJvdXRpbmUgd2FzIGNhbGxlZC4gQSBjb3VwbGUgb2YKK290aGVyIGRlYnVnZ2luZyByb3V0aW5lcyBhbGxvdyB0byBkdW1wIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGluZm9zIHRvIGEgZmlsZQorb3IgY2FsbCBhIHNwZWNpZmljIHJvdXRpbmUgd2hlbiBhIGdpdmVuIGJsb2NrIG51bWJlciBpcyBhbGxvY2F0ZWQ6PC9wPgorPHVsPgorICA8bGk+PGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1hbGxvY0xvYygpPC9hPgorICAgICA8YQorICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sUmVhbGxvY0xvYygpPC9hPgorICAgIGFuZCA8YQorICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWVtU3RyZHVwTG9jKCk8L2E+CisgICAgYXJlIHRoZSBtZW1vcnkgZGVidWdnaW5nIHJlcGxhY2VtZW50IGFsbG9jYXRpb24gcm91dGluZXM8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1vcnlEdW1wCisgICAgKCk8L2E+CisgICAgIGR1bXBzIGFsbCB0aGUgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGJsb2NrIGxlZnRzIGluIHRoZQorICAgIDxjb2RlPi5tZW1kdW1wPC9jb2RlPiBmaWxlPC9saT4KKzwvdWw+CisKKzxwPldoZW4gZGV2ZWxvcHBpbmcgbGlieG1sIG1lbW9yeSBkZWJ1ZyBpcyBlbmFibGVkLCB0aGUgdGVzdHMgcHJvZ3JhbXMgY2FsbAoreG1sTWVtb3J5RHVtcCAoKSBhbmQgdGhlICJtYWtlIHRlc3QiIHJlZ3Jlc3Npb24gdGVzdHMgd2lsbCBjaGVjayBmb3IgYW55CittZW1vcnkgbGVhayBkdXJpbmcgdGhlIGZ1bGwgcmVncmVzc2lvbiB0ZXN0IHNlcXVlbmNlLCB0aGlzIGhlbHBzIGEgbG90CitlbnN1cmluZyB0aGF0IGxpYnhtbCAgZG9lcyBub3QgbGVhayBtZW1vcnkgYW5kIGJ1bGxldCBwcm9vZiBtZW1vcnkKK2FsbG9jYXRpb25zIHVzZSAoc29tZSBsaWJjIGltcGxlbWVudGF0aW9ucyBhcmUga25vd24gdG8gYmUgZmFyIHRvbyBwZXJtaXNzaXZlCityZXN1bHRpbmcgaW4gbWFqb3IgcG9ydGFiaWxpdHkgcHJvYmxlbXMhKS48L3A+CisKKzxwPklmIHRoZSAubWVtZHVtcCByZXBvcnRzIGEgbGVhaywgaXQgZGlzcGxheXMgdGhlIGFsbG9jYXRpb24gZnVuY3Rpb24gYW5kCithbHNvIHRyaWVzIHRvIGdpdmUgc29tZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGNvbnRlbnQgYW5kIHN0cnVjdHVyZSBvZiB0aGUKK2FsbG9jYXRlZCBibG9ja3MgbGVmdC4gVGhpcyBpcyBzdWZmaWNpZW50IGluIG1vc3QgY2FzZXMgdG8gZmluZCB0aGUgY3VscHJpdCwKK2J1dCBub3QgYWx3YXlzLiBBc3N1bWluZyB0aGUgYWxsb2NhdGlvbiBwcm9ibGVtIGlzIHJlcHJvZHVjdGlibGUsIGl0IGlzCitwb3NzaWJsZSB0byBmaW5kIG1vcmUgZWFzaWxseTo8L3A+Cis8b2w+CisgIDxsaT53cml0ZSBkb3duIHRoZSBibG9jayBudW1iZXIgeHh4eCBub3QgYWxsb2NhdGVkPC9saT4KKyAgPGxpPmV4cG9ydCB0aGUgZW52aXJvbmVtZW50IHZhcmlhYmxlIFhNTF9NRU1fQlJFQUtQT0lOVD14eHh4PC9saT4KKyAgPGxpPnJ1biB0aGUgcHJvZ3JhbSB1bmRlciBhIGRlYnVnZ2VyIGFuZCBzZXQgYSBicmVha3BvaW50IG9uCisgICAgeG1sTWFsbG9jQnJlYWtwb2ludCgpIGEgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhpcyBwcmVjaXNlIGJsb2NrCisgICAgaXMgYWxsb2NhdGVkPC9saT4KKyAgPGxpPndoZW4gdGhlIGJyZWFrcG9pbnQgaXMgcmVhY2hlZCB5b3UgY2FuIHRoZW4gZG8gYSBmaW5lIGFuYWx5c2lzIG9mIHRoZQorICAgIGFsbG9jYXRpb24gYW4gc3RlcCAgdG8gc2VlIHRoZSBjb25kaXRpb24gcmVzdWx0aW5nIGluIHRoZSBtaXNzaW5nCisgICAgZGVhbGxvY2F0aW9uLjwvbGk+Cis8L29sPgorCis8cD5JIHVzZWQgdG8gdXNlIGEgY29tbWVyY2lhbCB0b29sIHRvIGRlYnVnIGxpYnhtbCBtZW1vcnkgcHJvYmxlbXMgYnV0IGFmdGVyCitub3RpY2luZyB0aGF0IGl0IHdhcyBub3QgZGV0ZWN0aW5nIG1lbW9yeSBsZWFrcyB0aGF0IHNpbXBsZSBtZWNoYW5pc20gd2FzCit1c2VkIGFuZCBwcm92ZWQgZXh0cmVtZWx5IGVmZmljaWVudCB1bnRpbCBub3cuPC9wPgorCis8aDM+PGEgbmFtZT0iR2VuZXJhbDQiPkdlbmVyYWwgbWVtb3J5IHJlcXVpcmVtZW50czwvYT48L2gzPgorCis8cD5Ib3cgbXVjaCBsaWJ4bWwgbWVtb3J5IHJlcXVpcmUgPyBJdCdzIGhhcmQgdG8gdGVsbCBpbiBhdmVyYWdlIGl0IGRlcGVuZHMKK29mIGEgbnVtYmVyIG9mIHRoaW5nczo8L3A+Cis8dWw+CisgIDxsaT50aGUgcGFyc2VyIGl0c2VsZiBzaG91bGQgd29yayAgaW4gYSBmaXhlZCBhbW91dCBvZiBtZW1vcnksIGV4Y2VwdCBmb3IKKyAgICBpbmZvcm1hdGlvbiBtYWludGFpbmVkIGFib3V0IHRoZSBzdGFja3Mgb2YgbmFtZXMgYW5kICBlbnRpdGllcyBsb2NhdGlvbnMuCisgICAgVGhlIEkvTyBhbmQgZW5jb2RpbmcgaGFuZGxlcnMgd2lsbCBwcm9iYWJseSBhY2NvdW50IGZvciBhIGZldyBLQnl0ZXMuCisgICAgVGhpcyBpcyB0cnVlIGZvciBib3RoIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyICh0aG91Z2ggdGhlIEhUTUwgcGFyc2VyCisgICAgbmVlZCBtb3JlIHN0YXRlKS48L2xpPgorICA8bGk+SWYgeW91IGFyZSBnZW5lcmF0aW5nIHRoZSBET00gdHJlZSB0aGVuIG1lbW9yeSByZXF1aXJlbWVudHMgd2lsbCBncm93CisgICAgbmVhcmx5IGxpbmVhcnkgd2l0aCB0aGUgc2l6ZSBvZiB0aGUgZGF0YS4gSW4gZ2VuZXJhbCBmb3IgYSBiYWxhbmNlZAorICAgIHRleHR1YWwgZG9jdW1lbnQgdGhlIGludGVybmFsIG1lbW9yeSByZXF1aXJlbWVudCBpcyBhYm91dCA0IHRpbWVzIHRoZQorICAgIHNpemUgb2YgdGhlIFVURjggc2VyaWFsaXphdGlvbiBvZiB0aGlzIGRvY3VtZW50IChleG1wbGUgdGhlIFhNTC0xLjAKKyAgICByZWNvbW1lbmRhdGlvbiBpcyBhIGJpdCBtb3JlIG9mIDE1MEtCeXRlcyBhbmQgdGFrZXMgNjUwS0J5dGVzIG9mIG1haW4KKyAgICBtZW1vcnkgd2hlbiBwYXJzZWQpLiBWYWxpZGF0aW9uIHdpbGwgYWRkIGEgYW1vdW50IG9mIG1lbW9yeSByZXF1aXJlZCBmb3IKKyAgICBtYWludGFpbmluZyB0aGUgZXh0ZXJuYWwgRHRkIHN0YXRlIHdoaWNoIHNob3VsZCBiZSBsaW5lYXIgd2l0aCB0aGUKKyAgICBjb21wbGV4aXR5IG9mIHRoZSBjb250ZW50IG1vZGVsIGRlZmluZWQgYnkgdGhlIER0ZDwvbGk+CisgIDxsaT5JZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgYWR2YW5jZWQgZmVhdHVyZXMgb2YgbGlieG1sIGxpa2UKKyAgICB2YWxpZGF0aW9uLCBET00sIFhQYXRoIG9yIFhQb2ludGVyLCBidXQgcmVhbGx5IG5lZWQgdG8gd29yayBmaXhlZCBtZW1vcnkKKyAgICByZXF1aXJlbWVudHMsIHRoZW4gdGhlIFNBWCBpbnRlcmZhY2Ugc2hvdWxkIGJlIHVzZWQuPC9saT4KKzwvdWw+CisKKzxwPjwvcD4KKworPGgyPjxhIG5hbWU9IkVuY29kaW5ncyI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9oMj4KKworPHA+VGFibGUgb2YgQ29udGVudDo8L3A+Cis8b2w+CisgIDxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI1doYXQiPldoYXQgZG9lcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0CisgICAgbWVhbiA/PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI2ludGVybmFsIj5UaGUgaW50ZXJuYWwgZW5jb2RpbmcsIGhvdyBhbmQKKyAgd2h5PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI2ltcGxlbWVudGUiPkhvdyBpcyBpdCBpbXBsZW1lbnRlZCA/PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI0RlZmF1bHQiPkRlZmF1bHQgc3VwcG9ydGVkIGVuY29kaW5nczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNleHRlbmQiPkhvdyB0byBleHRlbmQgdGhlIGV4aXN0aW5nCisgIHN1cHBvcnQ8L2E+PC9saT4KKzwvb2w+CisKKzxoMz48YSBuYW1lPSJXaGF0Ij5XaGF0IGRvZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCBtZWFuID88L2E+PC9oMz4KKworPHA+WE1MIHdhcyBkZXNpZ25lZCBmcm9tIHRoZSBzdGFydCB0byBhbGxvdyB0aGUgc3VwcG9ydCBvZiBhbnkgY2hhcmFjdGVyIHNldAorYnkgdXNpbmcgVW5pY29kZS4gQW55IGNvbmZvcm1hbnQgWE1MIHBhcnNlciBoYXMgdG8gc3VwcG9ydCB0aGUgVVRGLTggYW5kCitVVEYtMTYgZGVmYXVsdCBlbmNvZGluZ3Mgd2hpY2ggY2FuIGJvdGggZXhwcmVzcyB0aGUgZnVsbCB1bmljb2RlIHJhbmdlcy4gVVRGOAoraXMgYSB2YXJpYWJsZSBsZW5ndGggZW5jb2Rpbmcgd2hvc2UgZ3JlYXRlc3QgcG9pbnQgYXJlIHRvIHJlc3VzZSB0aGUgc2FtZQorZW1jb2RpbmcgZm9yIEFTQ0lJIGFuZCB0byBzYXZlIHNwYWNlIGZvciBXZXN0ZXJuIGVuY29kaW5ncywgYnV0IGl0IGlzIGEgYml0Cittb3JlIGNvbXBsZXggdG8gaGFuZGxlIGluIHByYWN0aWNlLiBVVEYtMTYgdXNlIDIgYnl0ZXMgcGVyIGNoYXJhY3RlcnMgKGFuZAorc29tZXRpbWVzIGNvbWJpbmVzIHR3byBwYWlycyksIGl0IG1ha2VzIGltcGxlbWVudGF0aW9uIGVhc2llciwgYnV0IGxvb2tzIGEKK2JpdCBvdmVya2lsbCBmb3IgV2VzdGVybiBsYW5ndWFnZXMgZW5jb2RpbmcuIE1vcmVvdmVyIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorYWxsb3dzIGRvY3VtZW50IHRvIGJlIGVuY29kZWQgaW4gb3RoZXIgZW5jb2RpbmdzIGF0IHRoZSBjb25kaXRpb24gdGhhdCB0aGV5CithcmUgY2xlYXJseSBsYWJlbGxlZCBhcyBzdWNoLiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIGlzIGEgd2VsbGZvcm1lZCBYTUwKK2RvY3VtZW50IGVuY29kZWQgaW4gSVNPLTg4NTkgMSBhbmQgdXNpbmcgYWNjZW50dWF0ZWQgbGV0dGVyIHRoYXQgd2UgRnJlbmNoCitsaWtlcyBmb3IgYm90aCBtYXJrdXAgYW5kIGNvbnRlbnQ6PC9wPgorPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8mZ3Q7CismbHQ7dHLocyZndDts4CZsdDsvdHLocyZndDs8L3ByZT4KKworPHA+SGF2aW5nIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQgaW4gbGlieG1sIG1lYW5zIHRoZSBmb29sb3dpbmc6PC9wPgorPHVsPgorICA8bGk+dGhlIGRvY3VtZW50IGlzIHByb3Blcmx5IHBhcnNlZDwvbGk+CisgIDxsaT5pbmZvcm1hdGlvbnMgYWJvdXQgaXQncyBlbmNvZGluZyBhcmUgc2F2ZWQ8L2xpPgorICA8bGk+aXQgY2FuIGJlIG1vZGlmaWVkPC9saT4KKyAgPGxpPml0IGNhbiBiZSBzYXZlZCBpbiBpdHMgb3JpZ2luYWwgZW5jb2Rpbmc8L2xpPgorICA8bGk+aXQgY2FuIGFsc28gYmUgc2F2ZWQgaW4gYW5vdGhlciBlbmNvZGluZyBzdXBwb3J0ZWQgYnkgbGlieG1sIChmb3IKKyAgICBleGFtcGxlIHN0cmFpZ2h0IFVURjggb3IgZXZlbiBhbiBBU0NJSSBmb3JtKTwvbGk+Cis8L3VsPgorCis8cD5Bbm90aGVyIHZlcnkgaW1wb3J0YW50IHBvaW50IGlzIHRoYXQgdGhlIHdob2xlIGxpYnhtbCBBUEksIHdpdGggdGhlCitleGNlcHRpb24gb2YgYSBmZXcgcm91dGluZXMgdG8gcmVhZCB3aXRoIGEgc3BlY2lmaWMgZW5jb2Rpbmcgb3Igc2F2ZSB0byBhCitzcGVjaWZpYyBlbmNvZGluZywgaXMgY29tcGxldGVseSBhZ25vc3RpYyBhYm91dCB0aGUgb3JpZ2luYWwgZW5jb2Rpbmcgb2YgdGhlCitkb2N1bWVudC48L3A+CisKKzxwPkl0IHNob3VsZCBiZSBub3RlZCB0b28gdGhhdCB0aGUgSFRNTCBwYXJzZXIgZW1iZWRkZWQgaW4gbGlieG1sIG5vdyBvYmJleQordGhlIHNhbWUgcnVsZXMgdG9vLCB0aGUgZm9sbG93aW5nIGRvY3VtZW50IHdpbGwgYmUgKGFzIG9mIDIuMi4yKSBoYW5kbGVkICBpbgorYW4gaW50ZXJuYXRpb25hbGl6ZWQgZmFzaGlvbiBieSBsaWJ4bWwgdG9vOjwvcD4KKzxwcmU+Jmx0OyFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCImZ3Q7CismbHQ7aHRtbCBsYW5nPSJmciImZ3Q7CismbHQ7aGVhZCZndDsKKyAgJmx0O01FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSImZ3Q7CismbHQ7L2hlYWQmZ3Q7CismbHQ7Ym9keSZndDsKKyZsdDtwJmd0O1czQyBjcullIGRlcyBzdGFuZGFyZHMgcG91ciBsZSBXZWIuJmx0Oy9ib2R5Jmd0OworJmx0Oy9odG1sJmd0OzwvcHJlPgorCis8aDM+PGEgbmFtZT0iaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZCB3aHk8L2E+PC9oMz4KKworPHA+T25lIG9mIHRoZSBjb3JlIGRlY2lzaW9uIHdhcyB0byBmb3JjZSBhbGwgZG9jdW1lbnRzIHRvIGJlIGNvbnZlcnRlZCB0byBhCitkZWZhdWx0IGludGVybmFsIGVuY29kaW5nLCBhbmQgdGhhdCBlbmNvZGluZyB0byBiZSBVVEYtOCwgaGVyZSBhcmUgdGhlCityYXRpb25hbGUgZm9yIHRob3NlIGNob2ljZXM6PC9wPgorPHVsPgorICA8bGk+a2VlcGluZyB0aGUgbmF0aXZlIGVuY29kaW5nIGluIHRoZSBpbnRlcm5hbCBmb3JtIHdvdWxkIGZvcmNlIHRoZSBsaWJ4bWwKKyAgICB1c2VycyAob3IgdGhlIGNvZGUgYXNzb2NpYXRlZCkgdG8gYmUgZnVsbHkgYXdhcmUgb2YgdGhlIGVuY29kaW5nIG9mIHRoZQorICAgIG9yaWdpbmFsIGRvY3VtZW50LCBmb3IgZXhhbXBsZXMgd2hlbiBhZGRpbmcgYSB0ZXh0IG5vZGUgdG8gYSBkb2N1bWVudCwKKyAgICB0aGUgY29udGVudCB3b3VsZCBoYXZlIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBkb2N1bWVudCBlbmNvZGluZywgaS5lLiB0aGUKKyAgICBjbGllbnQgY29kZSB3b3VsZCBoYXZlIHRvIGNoZWNrIGl0IGJlZm9yZSBoYW5kLCBtYWtlIHN1cmUgaXQncyBjb25mb3JtYW50CisgICAgdG8gdGhlIGVuY29kaW5nLCBldGMgLi4uIFZlcnkgaGFyZCBpbiBwcmFjdGljZSwgdGhvdWdoIGluIHNvbWUgc3BlY2lmaWMKKyAgICBjYXNlcyB0aGlzIG1heSBtYWtlIHNlbnNlLjwvbGk+CisgIDxsaT50aGUgc2Vjb25kIGRlY2lzaW9uIHdhcyB3aGljaCBlbmNvZGluZy4gRnJvbSB0aGUgWE1MIHNwZWMgb25seSBVVEY4IGFuZAorICAgIFVURjE2IHJlYWxseSBtYWtlcyBzZW5zZSBhcyBiZWluZyB0aGUgdHdvIG9ubHkgZW5jb2RpbmdzIGZvciB3aGljaCB0aGVyZQorICAgIGlzIGFtbmRhdG9yeSBzdXBwb3J0LiBVQ1MtNCAoMzIgYml0cyBmaXhlZCBzaXplIGVuY29kaW5nKSBjb3VsZCBiZQorICAgIGNvbnNpZGVyZWQgYW4gaW50ZWxsaWdlbnQgY2hvaWNlIHRvbyBzaW5jZSBpdCdzIGEgZGlyZWN0IFVuaWNvZGUgbWFwcGluZworICAgIHN1cHBvcnQuIEkgc2VsZWN0ZWQgVVRGLTggb24gdGhlIGJhc2lzIG9mIGVmZmljaWVuY3kgYW5kIGNvbXBhdGliaWxpdHkKKyAgICB3aXRoIHN1cnJvdW5kaW5nIHNvZnR3YXJlOgorICAgIDx1bD4KKyAgICAgIDxsaT5VVEYtOCB3aGlsZSBhIGJpdCBtb3JlIGNvbXBsZXggdG8gY29udmVydCBmcm9tL3RvIChpLmUuIHNsaWdodGx5CisgICAgICAgIG1vcmUgY29zdGx5IHRvIGltcG9ydCBhbmQgZXhwb3J0IENQVSB3aXNlKSBpcyBhbHNvIGZhciBtb3JlIGNvbXBhY3QKKyAgICAgICAgdGhhbiBVVEYtMTYgKGFuZCBVQ1MtNCkgZm9yIGEgbWFqb3JpdHkgb2YgdGhlIGRvY3VtZW50cyBJIHNlZSBpdCB1c2VkCisgICAgICAgIGZvciByaWdodCBub3cgKFJQTSBSREYgY2F0YWxvZ3MsIGFkdm9nYXRvIGRhdGEsIHZhcmlvdXMgY29uZmlndXJhdGlvbgorICAgICAgICBmaWxlIGZvcm1hdHMsIGV0Yy4pIGFuZCB0aGUga2V5IHBvaW50IGZvciB0b2RheSdzIGNvbXB1dGVyCisgICAgICAgIGFyY2hpdGVjdHVyZSBpcyBlZmZpY2llbnQgdXNlcyBvZiBjYWNoZXMuIElmIG9uZSBuZWFybHkgZG91YmxlIHRoZQorICAgICAgICBtZW1vcnkgcmVxdWlyZW1lbnQgdG8gc3RvcmUgdGhlIHNhbWUgYW1vdW50IG9mIGRhdGEsIHRoaXMgd2lsbCB0cmFzaAorICAgICAgICBjYWNoZXMgKG1haW4gbWVtb3J5L2V4dGVybmFsIGNhY2hlcy9pbnRlcm5hbCBjYWNoZXMpIGFuZCBteSB0YWtlIGlzCisgICAgICAgIHRoYXQgdGhpcyBoYXJtcyB0aGUgc3lzdGVtIGZhciBtb3JlIHRoYW4gdGhlIENQVSByZXF1aXJlbWVudHMgbmVlZGVkCisgICAgICAgIGZvciB0aGUgY29udmVyc2lvbiB0byBVVEYtODwvbGk+CisgICAgICA8bGk+TW9zdCBvZiBsaWJ4bWwgdmVyc2lvbiAxIHVzZXJzIHdlcmUgdXNpbmcgaXQgd2l0aCBzdHJhaWdodCBBU0NJSQorICAgICAgICBtb3N0IG9mIHRoZSB0aW1lLCBkb2luZyB0aGUgY29udmVyc2lvbiB3aXRoIGFuIGludGVybmFsIGVuY29kaW5nCisgICAgICAgIHJlcXVpcmluZyBhbGwgdGhlaXIgY29kZSB0byBiZSByZXdyaXR0ZW4gd2FzIGEgc2VyaW91cyBzaG93LXN0b3BwZXIKKyAgICAgICAgZm9yIHVzaW5nIFVURi0xNiBvciBVQ1MtNC48L2xpPgorICAgICAgPGxpPlVURi04IGlzIGJlaW5nIHVzZWQgYXMgdGhlIGRlLWZhY3RvIGludGVybmFsIGVuY29kaW5nIHN0YW5kYXJkIGZvcgorICAgICAgICByZWxhdGVkIGNvZGUgbGlrZSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5wYW5nby5vcmcvIj5wYW5nbzwvYT4KKyAgICAgICAgdXBjb21pbmcgR25vbWUgdGV4dCB3aWRnZXQsIGFuZCBhIGxvdCBvZiBVbml4IGNvZGUgKHllcCBhbm90aGVyIHBsYWNlCisgICAgICAgIHdoZXJlIFVuaXggcHJvZ3JhbW1lciBiYXNlIHRha2VzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGZyb20gTWljcm9zb2Z0CisgICAgICAgIC0gdGhleSBhcmUgdXNpbmcgVVRGLTE2KTwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKzwvdWw+CisKKzxwPldoYXQgZG9lcyB0aGlzIG1lYW4gaW4gcHJhY3RpY2UgZm9yIHRoZSBsaWJ4bWwgdXNlcjo8L3A+Cis8dWw+CisgIDxsaT54bWxDaGFyLCB0aGUgbGlieG1sIGRhdGEgdHlwZSBpcyBhIGJ5dGUsIHRob3NlIGJ5dGVzIG11c3QgYmUgYXNzZW1ibGVkCisgICAgYXMgVVRGLTggdmFsaWQgc3RyaW5ncy4gVGhlIHByb3BlciB3YXkgdG8gdGVybWluYXRlIGFuIHhtbENoYXIgKiBzdHJpbmcKKyAgICBpcyBzaW1wbHkgdG8gYXBwZW5kIDAgYnl0ZSwgYXMgdXN1YWwuPC9saT4KKyAgPGxpPk9uZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB1c2luZyBjaGFycyBvdXRzaWRlIHRoZSBBU0NJSSBzZXQsCisgICAgdGhlIHZhbHVlcyBoYXMgYmVlbiBwcm9wZXJseSBjb252ZXJ0ZWQgdG8gVVRGLTg8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9ImltcGxlbWVudGUiPkhvdyBpcyBpdCBpbXBsZW1lbnRlZCA/PC9hPjwvaDM+CisKKzxwPkxldCdzIGRlc2NyaWJlIGhvdyBhbGwgdGhpcyB3b3JrcyB3aXRoaW4gbGlieG1sLCBiYXNpY2FsbHkgdGhlIEkxOE4KKyhpbnRlcm5hdGlvbmFsaXphdGlvbikgc3VwcG9ydCBnZXQgdHJpZ2dlcmVkIG9ubHkgZHVyaW5nIEkvTyBvcGVyYXRpb24sIGkuZS4KK3doZW4gcmVhZGluZyBhIGRvY3VtZW50IG9yIHNhdmluZyBvbmUuIExldCdzIGxvb2sgZmlyc3QgYXQgdGhlIHJlYWRpbmcKK3NlcXVlbmNlOjwvcD4KKzxvbD4KKyAgPGxpPndoZW4gYSBkb2N1bWVudCBpcyBwcm9jZXNzZWQsIHdlIHVzdWFsbHkgZG9uJ3Qga25vdyB0aGUgZW5jb2RpbmcsIGEKKyAgICBzaW1wbGUgaGV1cmlzdGljIGFsbG93cyB0byBkZXRlY3QgVVRGLTE4IGFuZCBVQ1MtNCBmcm9tIHdob3NlIHdoZXJlIHRoZQorICAgIEFTQ0lJIHJhbmdlICgwLTB4N0YpIG1hcHMgd2l0aCBBU0NJSTwvbGk+CisgIDxsaT50aGUgeG1sIGRlY2xhcmF0aW9uIGlmIGF2YWlsYWJsZSBpcyBwYXJzZWQsIGluY2x1ZGluZyB0aGUgZW5jb2RpbmcKKyAgICBkZWNsYXJhdGlvbi4gQXQgdGhhdCBwb2ludCwgaWYgdGhlIGF1dG9kZXRlY3RlZCBlbmNvZGluZyBpcyBkaWZmZXJlbnQKKyAgICBmcm9tIHRoZSBvbmUgZGVjbGFyZWQgYSBjYWxsIHRvIHhtbFN3aXRjaEVuY29kaW5nKCkgaXMgaXNzdWVkLjwvbGk+CisgIDxsaT5JZiB0aGVyZSBpcyBubyBlbmNvZGluZyBkZWNsYXJhdGlvbiwgdGhlbiB0aGUgaW5wdXQgaGFzIHRvIGJlIGluIGVpdGhlcgorICAgIFVURi04IG9yIFVURi0xNiwgaWYgaXQgaXMgbm90IHRoZW4gYXQgc29tZSBwb2ludCB3aGVuIHByb2Nlc3NpbmcgdGhlCisgICAgaW5wdXQsIHRoZSBjb252ZXJ0ZXIvY2hlY2tlciBvZiBVVEYtOCBmb3JtIHdpbGwgcmFpc2UgYW4gZW5jb2RpbmcgZXJyb3IuCisgICAgWW91IG1heSBlbmQtdXAgd2l0aCBhIGdhcmJsZWQgZG9jdW1lbnQsIG9yIG5vIGRvY3VtZW50IGF0IGFsbCAhIEV4YW1wbGU6CisgICAgPHByZT5+L1hNTCAtJmd0OyAuL3htbGxpbnQgZXJyLnhtbCAKK2Vyci54bWw6MTogZXJyb3I6IElucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICEKKyZsdDt0cuhzJmd0O2zgJmx0Oy90cuhzJmd0OworICAgXgorZXJyLnhtbDoxOiBlcnJvcjogQnl0ZXM6IDB4RTggMHg3MyAweDNFIDB4NkMKKyZsdDt0cuhzJmd0O2zgJmx0Oy90cuhzJmd0OworICAgXjwvcHJlPgorICA8L2xpPgorICA8bGk+eG1sU3dpdGNoRW5jb2RpbmcoKSBkb2VzIGFuIGVuY29kaW5nIG5hbWUgbG9va3VwLCBjYW5vbmFsaXplIGl0LCBhbmQKKyAgICB0aGVuIHNlYXJjaCB0aGUgZGVmYXVsdCByZWdpc3RlcmVkIGVuY29kaW5nIGNvbnZlcnRlcnMgZm9yIHRoYXQgZW5jb2RpbmcuCisgICAgSWYgaXQncyBub3Qgd2l0aGluIHRoZSBkZWZhdWx0IHNldCBhbmQgaWNvbnYoKSBzdXBwb3J0IGhhcyBiZWVuIGNvbXBpbGVkCisgICAgaXQsIGl0IHdpbGwgYXNrIGljb252IGZvciBzdWNoIGFuIGVuY29kZXIuIElmIHRoaXMgZmFpbHMgdGhlbiB0aGUgcGFyc2VyCisgICAgd2lsbCByZXBvcnQgYW4gZXJyb3IgYW5kIHN0b3BzIHByb2Nlc3Npbmc6CisgICAgPHByZT5+L1hNTCAtJmd0OyAuL3htbGxpbnQgZXJyMi54bWwgCitlcnIyLnhtbDoxOiBlcnJvcjogVW5zdXBwb3J0ZWQgZW5jb2RpbmcgVW5zdXBwb3J0ZWRFbmMKKyZsdDs/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVuc3VwcG9ydGVkRW5jIj8mZ3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBePC9wcmU+CisgIDwvbGk+CisgIDxsaT5Gcm9tIHRoYXQgcG9pbnQgdGhlIGVuY29kZXIgcHJvY2VzcyBwcm9ncmVzc2luZ2x5IHRoZSBpbnB1dCAoaXQgaXMKKyAgICBwbHVnZ2VkIGFzIGEgZnJvbnQtZW5kIHRvIHRoZSBJL08gbW9kdWxlKSBmb3IgdGhhdCBlbnRpdHkuIEl0IGNhcHR1cmVzCisgICAgYW5kIGNvbnZlcnQgb24tdGhlLWZseSB0aGUgZG9jdW1lbnQgdG8gYmUgcGFyc2VkIHRvIFVURi04LiBUaGUgcGFyc2VyCisgICAgaXRzZWxmIGp1c3QgZG9lcyBVVEYtOCBjaGVja2luZyBvZiB0aGlzIGlucHV0IGFuZCBwcm9jZXNzIGl0CisgICAgdHJhbnNwYXJlbnRseS4gVGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBlbmNvZGluZyBpbmZvcm1hdGlvbiBoYXMKKyAgICBiZWVuIGFkZGVkIHRvIHRoZSBwYXJzaW5nIGNvbnRleHQgKG1vcmUgcHJlY2lzZWx5IHRvIHRoZSBpbnB1dAorICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBlbnRpdHkpLjwvbGk+CisgIDxsaT5UaGUgcmVzdWx0ICh3aGVuIHVzaW5nIERPTSkgaXMgYW4gaW50ZXJuYWwgZm9ybSBjb21wbGV0ZWx5IGluIFVURi04CisgICAgd2l0aCBqdXN0IGFuIGVuY29kaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBkb2N1bWVudCBub2RlLjwvbGk+Cis8L29sPgorCis8cD5PayB0aGVuIHdoYXQncyBoYXBwZW4gd2hlbiBzYXZpbmcgdGhlIGRvY3VtZW50IChhc3N1bWluZyB5b3UKK2NvbGxsZWN0ZWQvYnVpbHQgYW4geG1sRG9jIERPTSBsaWtlIHN0cnVjdHVyZSkgPyBJdCBkZXBlbmRzIG9uIHRoZSBmdW5jdGlvbgorY2FsbGVkLCB4bWxTYXZlRmlsZSgpIHdpbGwganVzdCB0cnkgdG8gc2F2ZSBpbiB0aGUgb3JpZ2luYWwgZW5jb2RpbmcsIHdoaWxlCit4bWxTYXZlRmlsZVRvKCkgYW5kIHhtbFNhdmVGaWxlRW5jKCkgY2FuIG9wdGlvbmFsbHkgc2F2ZSB0byBhIGdpdmVuCitlbmNvZGluZzo8L3A+Cis8b2w+CisgIDxsaT5pZiBubyBlbmNvZGluZyBpcyBnaXZlbiwgbGlieG1sIHdpbGwgbG9vayBmb3IgYW4gZW5jb2RpbmcgdmFsdWUKKyAgICBhc3NvY2lhdGVkIHRvIHRoZSBkb2N1bWVudCBhbmQgaWYgaXQgZXhpc3RzIHdpbGwgdHJ5IHRvIHNhdmUgdG8gdGhhdAorICAgIGVuY29kaW5nLAorICAgIDxwPm90aGVyd2lzZSBldmVyeXRoaW5nIGlzIHdyaXR0ZW4gaW4gdGhlIGludGVybmFsIGZvcm0sIGkuZS4gVVRGLTg8L3A+CisgIDwvbGk+CisgIDxsaT5zbyBpZiBhbiBlbmNvZGluZyB3YXMgc3BlY2lmaWVkLCBlaXRoZXIgYXQgdGhlIEFQSSBsZXZlbCBvciBvbiB0aGUKKyAgICBkb2N1bWVudCwgbGlieG1sIHdpbGwgYWdhaW4gY2Fub25hbGl6ZSB0aGUgZW5jb2RpbmcgbmFtZSwgbG9va3VwIGZvciBhCisgICAgY29udmVydGVyIGluIHRoZSByZWdpc3RlcmVkIHNldCBvciB0aHJvdWdoIGljb252LiBJZiBub3QgZm91bmQgdGhlCisgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgY29kZTwvbGk+CisgIDxsaT50aGUgY29udmVydGVyIGlzIHBsYWNlZCBiZWZvcmUgdGhlIEkvTyBidWZmZXIgbGF5ZXIsIGFzIGFub3RoZXIga2luZCBvZgorICAgIGJ1ZmZlciwgdGhlbiBsaWJ4bWwgd2lsbCBzaW1wbHkgcHVzaCB0aGUgVVRGLTggc2VyaWFsaXphdGlvbiB0byB0aHJvdWdoCisgICAgdGhhdCBidWZmZXIsIHdoaWNoIHdpbGwgdGhlbiBwcm9ncmVzc2l2ZWx5IGJlIGNvbnZlcnRlZCBhbmQgcHVzaGVkIG9udG8KKyAgICB0aGUgSS9PIGxheWVyLjwvbGk+CisgIDxsaT5JdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBjb252ZXJ0ZXIgY29kZSBmYWlscyBvbiBzb21lIGlucHV0LCBmb3IgZXhhbXBsZQorICAgIHRyeWluZyB0byBwdXNoIGFuIFVURi04IGVuY29kZWQgY2hpbmVzZSBjaGFyYWN0ZXIgdGhyb3VnaCB0aGUgVVRGLTggdG8KKyAgICBJU08tODg1OS0xIGNvbnZlcnRlciB3b24ndCB3b3JrLiBTaW5jZSB0aGUgZW5jb2RlcnMgYXJlIHByb2dyZXNzaXZlIHRoZXkKKyAgICB3aWxsIGp1c3QgcmVwb3J0IHRoZSBlcnJvciBhbmQgdGhlIG51bWJlciBvZiBieXRlcyBjb252ZXJ0ZWQsIGF0IHRoYXQKKyAgICBwb2ludCBsaWJ4bWwgd2lsbCBkZWNvZGUgdGhlIG9mZmVuZGluZyBjaGFyYWN0ZXIsIHJlbW92ZSBpdCBmcm9tIHRoZQorICAgIGJ1ZmZlciBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBhc3NvY2lhdGVkIGNoYXJSZWYgZW5jb2RpbmcgJmFtcDsjMTIzOyBhbmQKKyAgICByZXN1bWUgdGhlIGNvbnZlcnRpb24uIFRoaXMgZ3VhcmFudGUgdGhhdCBhbnkgZG9jdW1lbnQgd2lsbCBiZSBzYXZlZAorICAgIHdpdGhvdXQgbG9zc2VzIChleGNlcHQgZm9yIG1hcmt1cCBuYW1lcyB3aGVyZSB0aGlzIGlzIG5vdCBsZWdhbCwgdGhpcyBpcworICAgIGEgcHJvYmxlbSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLCBpbiBwYWN0aWNlIGF2b2lkIHVzaW5nIG5vbi1hc2NjaQorICAgIGNoYXJhY3RlcnMgZm9yIHRhZ3Mgb3IgYXR0cmlidXRlcyBuYW1lcyAgQEApLiBBIHNwZWNpYWwgImFzY2lpIiBlbmNvZGluZworICAgIG5hbWUgaXMgdXNlZCB0byBzYXZlIGRvY3VtZW50cyB0byBhIHB1cmUgYXNjaWkgZm9ybSBjYW4gYmUgdXNlZCB3aGVuCisgICAgcG9ydGFiaWxpdHkgaXMgcmVhbGx5IGNydWNpYWw8L2xpPgorPC9vbD4KKworPHA+SGVyZSBpcyBhIGZldyBleGFtcGxlcyBiYXNlZCBvbiB0aGUgc2FtZSB0ZXN0IGRvY3VtZW50OjwvcD4KKzxwcmU+fi9YTUwgLSZndDsgLi94bWxsaW50IGlzb2xhdDEgCismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8mZ3Q7CismbHQ7dHLocyZndDts4CZsdDsvdHLocyZndDsKK34vWE1MIC0mZ3Q7IC4veG1sbGludCAtLWVuY29kZSBVVEYtOCBpc29sYXQxIAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPyZndDsKKyZsdDt0csOocyZndDtswyCgJmx0Oy90csOocyZndDsKK34vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5UaGUgc2FtZSBwcm9jZXNzaW5nIGlzIGFwcGxpZWQgKGFuZCByZXVzZSBtb3N0IG9mIHRoZSBjb2RlKSBmb3IgSFRNTCBJMThOCitwcm9jZXNzaW5nLiBMb29raW5nIHVwIGFuZCBtb2RpZnlpbmcgdGhlIGNvbnRlbnQgZW5jb2RpbmcgaXMgYSBiaXQgbW9yZQorZGlmZmljdWx0IHNpbmNlIGl0IGlzIGxvY2F0ZWQgaW4gYSAmbHQ7bWV0YSZndDsgdGFnIHVuZGVyIHRoZSAmbHQ7aGVhZCZndDssCitzbyBhIGNvdXBsZSBvZiBmdW5jdGlvbnMgaHRtbEdldE1ldGFFbmNvZGluZygpIGFuZCBodG1sU2V0TWV0YUVuY29kaW5nKCkgaGF2ZQorYmVlbiBwcm92aWRlZC4gVGhlIHBhcnNlciBhbHNvIGF0dGVtcHRzIHRvIHN3aXRjaCBlbmNvZGluZyBvbiB0aGUgZmx5IHdoZW4KK2RldGVjdGluZyBzdWNoIGEgdGFnIG9uIGlucHV0LiBFeGNlcHQgZm9yIHRoYXQgdGhlIHByb2Nlc3NpbmcgaXMgdGhlIHNhbWUKKyhhbmQgYWdhaW4gcmV1c2VzIHRoZSBzYW1lIGNvZGUpLjwvcD4KKworPGgzPjxhIG5hbWU9IkRlZmF1bHQiPkRlZmF1bHQgc3VwcG9ydGVkIGVuY29kaW5nczwvYT48L2gzPgorCis8cD5saWJ4bWwgaGFzIGEgc2V0IG9mIGRlZmF1bHQgY29udmVydGVycyBmb3IgdGhlIGZvbGxvd2luZyBlbmNvZGluZ3MKKyhsb2NhdGVkIGluIGVuY29kaW5nLmMpOjwvcD4KKzxvbD4KKyAgPGxpPlVURi04IGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0IChudWxsIGhhbmRsZXJzKTwvbGk+CisgIDxsaT5VVEYtMTYsIGJvdGggbGl0dGxlIGFuZCBiaWcgZW5kaWFuPC9saT4KKyAgPGxpPklTTy1MYXRpbi0xIChJU08tODg1OS0xKSBjb3ZlcmluZyBtb3N0IHdlc3Rlcm4gbGFuZ3VhZ2VzPC9saT4KKyAgPGxpPkFTQ0lJLCB1c2VmdWwgbW9zdGx5IGZvciBzYXZpbmc8L2xpPgorICA8bGk+SFRNTCwgYSBzcGVjaWZpYyBoYW5kbGVyIGZvciB0aGUgY29udmVyc2lvbiBvZiBVVEYtOCB0byBBU0NJSSB3aXRoIEhUTUwKKyAgICBwcmVkZWZpbmVkIGVudGl0aWVzIGxpa2UgJmFtcDtjb3B5OyBmb3IgdGhlIENvcHlyaWdodCBzaWduLjwvbGk+Cis8L29sPgorCis8cD5Nb3JlIG92ZXIgd2hlbiBjb21waWxlZCBvbiBhbiBVbml4IHBsYXRmb3Igd2l0aCBpY29udiBzdXBwb3J0IHRoZSBmdWxsIHNldAorb2YgZW5jb2RpbmdzIHN1cHBvcnRlZCBieSBpY29udiBjYW4gYmUgaW5zdGFudGx5IGJlIHVzZWQgYnkgbGlieG1sLiBPbiBhCitsaW51eCBtYWNoaW5lIHdpdGggZ2xpYmMtMi4xIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBlbmNvZGluZ3MgYW5kIGFsaWFzZXMgZmlsbAorMyBmdWxsIHBhZ2VzLCBhbmQgaW5jbHVkZSBVQ1MtNCwgdGhlIGZ1bGwgc2V0IG9mIElTTy1MYXRpbiBlbmNvZGluZ3MsIGFuZCB0aGUKK3ZhcmlvdXMgSmFwYW5lc2Ugb25lcy48L3A+CisKKzxoND5FbmNvZGluZyBhbGlhc2VzPC9oND4KKworPHA+RnJvbSAyLjIuMywgbGlieG1sIGhhcyBzdXBwb3J0IHRvIHJlZ2lzdGVyIGVuY29kaW5nIG5hbWVzIGFsaWFzZXMuIFRoZQorZ29hbCBpcyB0byBiZSBhYmxlIHRvIHBhcnNlIGRvY3VtZW50IHdob3NlIGVuY29kaW5nIGlzIHN1cHBvcnRlZCBidXQgd2hlcmUKK3RoZSBuYW1lIGRpZmZlcnMgKGZvciBleGFtcGxlIGZyb20gdGhlIGRlZmF1bHQgc2V0IG9mIG5hbWVzIGFjY2VwdGVkIGJ5CitpY29udikuIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFsbG93IHRvIHJlZ2lzdGVyIGFuZCBoYW5kbGUgbmV3IGFsaWFzZXMgZm9yCitleGlzdGluZyBlbmNvZGluZ3MuIE9uY2UgcmVnaXN0ZXJlZCBsaWJ4bWwgd2lsbCBhdXRvbWF0aWNhbGx5IGxvb2t1cCB0aGUKK2FsaWFzZXMgd2hlbiBoYW5kbGluZyBhIGRvY3VtZW50OjwvcD4KKzx1bD4KKyAgPGxpPmludCB4bWxBZGRFbmNvZGluZ0FsaWFzKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmFsaWFzKTs8L2xpPgorICA8bGk+aW50IHhtbERlbEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqYWxpYXMpOzwvbGk+CisgIDxsaT5jb25zdCBjaGFyICogeG1sR2V0RW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKyAgPGxpPnZvaWQgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyh2b2lkKTs8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9ImV4dGVuZCI+SG93IHRvIGV4dGVuZCB0aGUgZXhpc3Rpbmcgc3VwcG9ydDwvYT48L2gzPgorCis8cD5XZWxsIGFkZGluZyBzdXBwb3J0IGZvciBuZXcgZW5jb2RpbmcsIG9yIG92ZXJyaWRpbmcgb25lIG9mIHRoZSBlbmNvZGVycworKGFzc3VtaW5nIGl0IGlzIGJ1Z2d5KSBzaG91bGQgbm90IGJlIGhhcmQsIGp1c3Qgd3JpdGUgYW4gaW5wdXQgYW5kIG91dHB1dAorY29udmVyc2lvbiByb3V0aW5lcyB0by9mcm9tIFVURi04LCBhbmQgcmVnaXN0ZXIgdGhlbSB1c2luZworeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcihuYW1lLCB4eHhUb1VURjgsIFVURjhUb3h4eCksICBhbmQgdGhleSB3aWxsIGJlCitjYWxsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgcGFyc2VyKHMpIGVuY291bnRlciBzdWNoIGFuIGVuY29kaW5nIG5hbWUKKyhyZWdpc3RlciBpdCB1cHBlcmNhc2UsIHRoaXMgd2lsbCBoZWxwKS4gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBlbmNvZGVycywKK3RoZWlyIGFyZ3VtZW50cyBhbmQgZXhwZWN0ZWQgcmV0dXJuIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIHRoZSBlbmNvZGluZy5oCitoZWFkZXIuPC9wPgorCis8cD5BIHF1aWNrIG5vdGUgb24gdGhlIHRvcGljIG9mIHN1YnZlcnRpbmcgdGhlIHBhcnNlciB0byB1c2UgYSBkaWZmZXJlbnQKK2ludGVybmFsIGVuY29kaW5nIHRoYW4gVVRGLTgsIGluIHNvbWUgY2FzZSBwZW9wbGUgd2lsbCBhYnNvbHV0ZWx5IHdhbnQgdG8KK2tlZXAgdGhlIGludGVybmFsIGVuY29kaW5nIGRpZmZlcmVudCwgSSB0aGluayBpdCdzIHN0aWxsIHBvc3NpYmxlIChidXQgdGhlCitlbmNvZGluZyBtdXN0IGJlIGNvbXBsaWFudCB3aXRoIEFTQ0lJIG9uIHRoZSBzYW1lIHN1YnJhbmdlKSB0aG91Z2ggSSBkaWRuJ3QKK3RyaWVkIGl0LiBUaGUga2V5IGlzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbnZlcnNpb24gcm91dGluZXMgKGJ5CityZWdpc3RlcmluZyBudWxsIGVuY29kZXJzL2RlY29kZXJzIGZvciB5b3VyIGNoYXJzZXRzKSwgYW5kIGJ5cGFzcyB0aGUgVVRGLTgKK2NoZWNraW5nIG9mIHRoZSBwYXJzZXIgYnkgc2V0dGluZyB0aGUgcGFyc2VyIGNvbnRleHQgY2hhcnNldAorKGN0eHQtJmd0O2NoYXJzZXQpIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBYTUxfQ0hBUl9FTkNPRElOR19VVEY4LCBidXQKK3RoZXJlIGlzIG5vIGd1YXJhbnRlZSB0YWh0IHRoaXMgd2lsbCB3b3JrLiBZb3UgbWF5IGFsc28gaGF2ZSBzb21lIHRyb3VibGVzCitzYXZpbmcgYmFjay48L3A+CisKKzxwPkJhc2ljYWxseSBwcm9wZXIgSTE4TiBzdXBwb3J0IGlzIGltcG9ydGFudCwgdGhpcyByZXF1aXJlcyBhdCBsZWFzdAorbGlieG1sLTIuMC4wLCBidXQgYSBsb3Qgb2YgZmVhdHVyZXMgYW5kIGNvcnJlY3Rpb25zIGFyZSByZWFsbHkgYXZhaWxhYmxlIG9ubHkKK3N0YXJ0aW5nIDIuMi48L3A+CisKKzxoMj48YSBuYW1lPSJJTyI+SS9PIEludGVyZmFjZXM8L2E+PC9oMj4KKworPHA+VGFibGUgb2YgQ29udGVudDo8L3A+Cis8b2w+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDEiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNiYXNpYyI+VGhlIGJhc2ljIGJ1ZmZlciB0eXBlPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjSW5wdXQiPklucHV0IEkvTyBoYW5kbGVyczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI091dHB1dCI+T3V0cHV0IEkvTyBoYW5kbGVyczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2VudGl0aWVzIj5UaGUgZW50aXRpZXMgbG9hZGVyPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjRXhhbXBsZTIiPkV4YW1wbGUgb2YgY3VzdG9taXplZCBJL088L2E+PC9saT4KKzwvb2w+CisKKzxoMz48YSBuYW1lPSJHZW5lcmFsMSI+R2VuZXJhbCBvdmVydmlldzwvYT48L2gzPgorCis8cD5UaGUgbW9kdWxlIDxjb2RlPjxhCitocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1saW8uaHRtbCI+eG1sSU8uaDwvYT48L2NvZGU+IHByb3ZpZGVzCit0aGUgaW50ZXJmYWNlcyB0byB0aGUgbGlieG1sIEkvTyBzeXN0ZW0uIFRoaXMgY29uc2lzdHMgb2YgNCBtYWluIHBhcnRzOjwvcD4KKzx1bD4KKyAgPGxpPkVudGl0aWVzIGxvYWRlciwgdGhpcyBpcyBhIHJvdXRpbmUgd2hpY2ggdHJpZXMgdG8gZmV0Y2ggdGhlIGVudGl0aWVzCisgICAgKGZpbGVzKSBiYXNlZCBvbiB0aGVpciBQVUJMSUMgYW5kIFNZU1RFTSBpZGVudGlmaWVycy4gVGhlIGRlZmF1bHQgbG9hZGVyCisgICAgZG9uJ3QgbG9vayBhdCB0aGUgcHVibGljIGlkZW50aWZpZXIgc2luY2UgbGlieG1sIGRvIG5vdCBtYWludGFpbiBhCisgICAgY2F0YWxvZy4gWW91IGNhbiByZWRlZmluZSB5b3Ugb3duIGVudGl0eSBsb2FkZXIgYnkgdXNpbmcKKyAgICA8Y29kZT54bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpPC9jb2RlPiBhbmQKKyAgICA8Y29kZT54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpPC9jb2RlPi4gPGEKKyAgICBocmVmPSIjZW50aXRpZXMiPkNoZWNrIHRoZSBleGFtcGxlPC9hPi48L2xpPgorICA8bGk+SW5wdXQgSS9PIGJ1ZmZlcnMgd2hpY2ggYXJlIGEgY29tbW9kaXR5IHN0cnVjdHVyZSB1c2VkIGJ5IHRoZSBwYXJzZXIocykKKyAgICBpbnB1dCBsYXllciB0byBoYW5kbGUgZmV0Y2hpbmcgdGhlIGluZm9ybWF0aW9ucyB0byBmZWVkIHRoZSBwYXJzZXIuIFRoaXMKKyAgICBwcm92aWRlcyBidWZmZXJpbmcgYW5kIGlzIGFsc28gYSBwbGFjZWhvbGRlciB3aGVyZSB0aGUgZW5jb2RpbmcKKyAgICBjb252ZXJ0b3JzIHRvIFVURjggYXJlIHBpZ2d5LWJhY2tlZC48L2xpPgorICA8bGk+T3V0cHV0IEkvTyBidWZmZXJzIGFyZSBzaW1pbGFyIHRvIHRoZSBJbnB1dCBvbmVzIGFuZCBmdWxmaWxsIHNpbWlsYXIKKyAgICB0YXNrIGJ1dCB3aGVuIGdlbmVyYXRpbmcgYSBzZXJpYWxpemF0aW9uIGZyb20gYSB0cmVlLjwvbGk+CisgIDxsaT5BIG1lY2hhbmlzbSB0byByZWdpc3RlciBzZXRzIG9mIEkvTyBjYWxsYmFja3MgYW5kIGFzc29jaWF0ZSB0aGVtIHdpdGgKKyAgICBzcGVjaWZpYyBuYW1pbmcgc2NoZW1lcyBsaWtlIHRoZSBwcm90b2NvbCBwYXJ0IG9mIHRoZSBVUklzLgorICAgIDxwPlRoaXMgYWZmZWN0IHRoZSBkZWZhdWx0IEkvTyBvcGVyYXRpb25zIGFuZCBhbGxvd3MgdG8gdXNlIHNwZWNpZmljIEkvTworICAgIGhhbmRsZXJzIGZvciBjZXJ0YWluIG5hbWVzLjwvcD4KKyAgPC9saT4KKzwvdWw+CisKKzxwPlRoZSBnZW5lcmFsIG1lY2hhbmlzbSB1c2VkIHdoZW4gbG9hZGluZyBodHRwOi8vcnBtZmluZC5uZXQveG1sLmh0bWwgZm9yCitleGFtcGxlIGluIHRoZSBIVE1MIHBhcnNlciBpcyB0aGUgZm9sbG93aW5nOjwvcD4KKzxvbD4KKyAgPGxpPlRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIgY2FsbHMgPGNvZGU+eG1sTmV3SW5wdXRGcm9tRmlsZSgpPC9jb2RlPiB3aXRoCisgICAgdGhlIHBhcnNpbmcgY29udGV4dCBhbmQgdGhlIFVSSSBzdHJpbmcuPC9saT4KKyAgPGxpPnRoZSBVUkkgc3RyaW5nIGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcgcmVnaXN0ZXJlZCBoYW5kbGVycworICAgIHVzaW5nIHRoZWlyIG1hdGNoKCkgY2FsbGJhY2sgZnVuY3Rpb24sIGlmIHRoZSBIVFRQIG1vZHVsZSB3YXMgY29tcGlsZWQKKyAgICBpbiwgaXQgaXMgcmVnaXN0ZXJlZCBhbmQgaXRzIG1hdGNoKCkgZnVuY3Rpb24gd2lsbCBzdWNjZWVkczwvbGk+CisgIDxsaT50aGUgb3BlbigpIGZ1bmN0aW9uIG9mIHRoZSBoYW5kbGVyIGlzIGNhbGxlZCBhbmQgaWYgc3VjY2Vzc2Z1bCB3aWxsCisgICAgcmV0dXJuIGFuIEkvTyBJbnB1dCBidWZmZXI8L2xpPgorICA8bGk+dGhlIHBhcnNlciB3aWxsIHRoZSBzdGFydCByZWFkaW5nIGZyb20gdGhpcyBidWZmZXIgYW5kIHByb2dyZXNzaXZlbHkKKyAgICBmZXRjaCBpbmZvcm1hdGlvbiBmcm9tIHRoZSByZXNvdXJjZSwgY2FsbGluZyB0aGUgcmVhZCgpIGZ1bmN0aW9uIG9mIHRoZQorICAgIGhhbmRsZXIgdW50aWwgdGhlIHJlc291cmNlIGlzIGV4aGF1c3RlZDwvbGk+CisgIDxsaT5pZiBhbiBlbmNvZGluZyBjaGFuZ2UgaXMgZGV0ZWN0ZWQgaXQgd2lsbCBiZSBpbnN0YWxsZWQgb24gdGhlIGlucHV0CisgICAgYnVmZmVyLCBwcm92aWRpbmcgYnVmZmVyaW5nIGFuZCBlZmZpY2llbnQgdXNlIG9mIHRoZSBjb252ZXJzaW9uCisgIHJvdXRpbmVzPC9saT4KKyAgPGxpPm9uY2UgdGhlIHBhcnNlciBoYXMgZmluaXNoZWQsIHRoZSBjbG9zZSgpIGZ1bmN0aW9uIG9mIHRoZSBoYW5kbGVyIGlzCisgICAgY2FsbGVkIG9uY2UgYW5kIHRoZSBJbnB1dCBidWZmZXIgYW5kIGFzc29jaWVkIHJlc291cmNlcyBhcmUKKyAgZGVhbGxvY2F0ZWQuPC9saT4KKzwvb2w+CisKKzxwPlRoZSB1c2VyIGRlZmluZWQgY2FsbGJhY2tzIGFyZSBjaGVja2VkIGZpcnN0IHRvIGFsbG93IG92ZXJyaWRpbmcgb2YgdGhlCitkZWZhdWx0IGxpYnhtbCBJL08gcm91dGluZXMuPC9wPgorCis8aDM+PGEgbmFtZT0iYmFzaWMiPlRoZSBiYXNpYyBidWZmZXIgdHlwZTwvYT48L2gzPgorCis8cD5BbGwgdGhlIGJ1ZmZlciBtYW5pcHVsYXRpb24gaGFuZGxpbmcgaXMgZG9uZSB1c2luZyB0aGUKKzxjb2RlPnhtbEJ1ZmZlcjwvY29kZT4gdHlwZSBkZWZpbmUgaW4gPGNvZGU+PGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwiPnRyZWUuaDwvYT4gPC9jb2RlPndoaWNoIGlzIGEKK3Jlc2l6YWJsZSBtZW1vcnkgYnVmZmVyLiBUaGUgYnVmZmVyIGFsbG9jYXRpb24gc3RyYXRlZ3kgY2FuIGJlIHNlbGVjdGVkIHRvIGJlCitlaXRoZXIgYmVzdC1maXQgb3IgdXNlIGFuIGV4cG9uZW50aWFsIGRvdWJsaW5nIG9uZSAoQ1BVIHZzLiBtZW1vcnkgdXNlCit0cmFkZW9mZikuIFRoZSB2YWx1ZXMgYXJlIDxjb2RlPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2NvZGU+IGFuZAorPGNvZGU+WE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVDwvY29kZT4sIGFuZCBjYW4gYmUgc2V0IGluZGl2aWR1YWxseSBvciBvbiBhCitzeXN0ZW0gd2lkZSBiYXNpcyB1c2luZyA8Y29kZT54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lKCk8L2NvZGU+LiBBIG51bWJlcgorb2YgZnVuY3Rpb25zIGFsbG93cyB0byBtYW5pcHVsYXRlIGJ1ZmZlcnMgd2l0aCBuYW1lcyBzdGFydGluZyB3aXRoIHRoZQorPGNvZGU+eG1sQnVmZmVyLi4uPC9jb2RlPiBwcmVmaXguPC9wPgorCis8aDM+PGEgbmFtZT0iSW5wdXQiPklucHV0IEkvTyBoYW5kbGVyczwvYT48L2gzPgorCis8cD5BbiBJbnB1dCBJL08gaGFuZGxlciBpcyBhIHNpbXBsZSBzdHJ1Y3R1cmUKKzxjb2RlPnhtbFBhcnNlcklucHV0QnVmZmVyPC9jb2RlPiBjb250YWluaW5nIGEgY29udGV4dCBhc3NvY2lhdGVkIHRvIHRoZQorcmVzb3VyY2UgKGZpbGUgZGVzY3JpcHRvciwgb3IgcG9pbnRlciB0byBhIHByb3RvY29sIGhhbmRsZXIpLCB0aGUgcmVhZCgpIGFuZAorY2xvc2UoKSBjYWxsYmFja3MgdG8gdXNlIGFuZCBhbiB4bWxCdWZmZXIuIEFuZCBleHRyYSB4bWxCdWZmZXIgYW5kIGEgY2hhcnNldAorZW5jb2RpbmcgaGFuZGxlciBhcmUgYWxzbyBwcmVzZW50IHRvIHN1cHBvcnQgY2hhcnNldCBjb252ZXJzaW9uIHdoZW4KK25lZWRlZC48L3A+CisKKzxoMz48YSBuYW1lPSJPdXRwdXQiPk91dHB1dCBJL08gaGFuZGxlcnM8L2E+PC9oMz4KKworPHA+QW4gT3V0cHV0IGhhbmRsZXIgPGNvZGU+eG1sT3V0cHV0QnVmZmVyPC9jb2RlPiBpcyBjb21wbGV0ZWx5IHNpbWlsYXIgdG8gYW4KK0lucHV0IG9uZSBleGNlcHQgdGhlIGNhbGxiYWNrcyBhcmUgd3JpdGUoKSBhbmQgY2xvc2UoKS48L3A+CisKKzxoMz48YSBuYW1lPSJlbnRpdGllcyI+VGhlIGVudGl0aWVzIGxvYWRlcjwvYT48L2gzPgorCis8cD5UaGUgZW50aXR5IGxvYWRlciByZXNvbHZlcyByZXF1ZXN0cyBmb3IgbmV3IGVudGl0aWVzIGFuZCBjcmVhdGUgaW5wdXRzIGZvcgordGhlIHBhcnNlci4gQ3JlYXRpbmcgYW4gaW5wdXQgZnJvbSBhIGZpbGVuYW1lIG9yIGFuIFVSSSBzdHJpbmcgaXMgZG9uZQordGhyb3VnaCB0aGUgeG1sTmV3SW5wdXRGcm9tRmlsZSgpIHJvdXRpbmUuICBUaGUgZGVmYXVsdCBlbnRpdHkgbG9hZGVyIGRvIG5vdAoraGFuZGxlIHRoZSBQVUJMSUMgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggYW4gZW50aXR5IChpZiBhbnkpLiBTbyBpdCBqdXN0CitjYWxscyB4bWxOZXdJbnB1dEZyb21GaWxlKCkgd2l0aCB0aGUgU1lTVEVNIGlkZW50aWZpZXIgKHdoaWNoIGlzIG1hbmRhdG9yeSBpbgorWE1MKS48L3A+CisKKzxwPklmIHlvdSB3YW50IHRvIGhvb2sgdXAgYSBjYXRhbG9nIG1lY2hhbmlzbSB0aGVuIHlvdSBzaW1wbHkgbmVlZCB0bworb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciwgaGVyZSBpcyBhbiBleGFtcGxlOjwvcD4KKzxwcmU+I2luY2x1ZGUgJmx0O2xpYnhtbC94bWxJTy5oJmd0OworCit4bWxFeHRlcm5hbEVudGl0eUxvYWRlciBkZWZhdWx0TG9hZGVyID0gTlVMTDsKKworeG1sUGFyc2VySW5wdXRQdHIKK3htbE15RXh0ZXJuYWxFbnRpdHlMb2FkZXIoY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICpJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisgICAgY29uc3QgY2hhciAqZmlsZUlEID0gTlVMTDsKKyAgICAvKiBsb29rdXAgZm9yIHRoZSBmaWxlSUQgZGVwZW5kaW5nIG9uIElEICovCisKKyAgICByZXQgPSB4bWxOZXdJbnB1dEZyb21GaWxlKGN0eHQsIGZpbGVJRCk7CisgICAgaWYgKHJldCAhPSBOVUxMKQorICAgICAgICByZXR1cm4ocmV0KTsKKyAgICBpZiAoZGVmYXVsdExvYWRlciAhPSBOVUxMKQorICAgICAgICByZXQgPSBkZWZhdWx0TG9hZGVyKFVSTCwgSUQsIGN0eHQpOworICAgIHJldHVybihyZXQpOworfQorCitpbnQgbWFpbiguLikgeworICAgIC4uLgorCisgICAgLyoKKyAgICAgKiBJbnN0YWxsIG91ciBvd24gZW50aXR5IGxvYWRlcgorICAgICAqLworICAgIGRlZmF1bHRMb2FkZXIgPSB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpOworICAgIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHhtbE15RXh0ZXJuYWxFbnRpdHlMb2FkZXIpOworCisgICAgLi4uCit9PC9wcmU+CisKKzxoMz48YSBuYW1lPSJFeGFtcGxlMiI+RXhhbXBsZSBvZiBjdXN0b21pemVkIEkvTzwvYT48L2gzPgorCis8cD5UaGlzIGV4YW1wbGUgY29tZSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNzA4Lmh0bWwiPmEKK3JlYWwgdXNlIGNhc2U8L2E+LCAgeG1sRG9jRHVtcCgpIGNsb3NlcyB0aGUgRklMRSAqIHBhc3NlZCBieSB0aGUgYXBwbGljYXRpb24KK2FuZCB0aGlzIHdhcyBhIHByb2JsZW0uIFRoZSA8YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzA3MTEuaHRtbCI+c29sdXRpb248L2E+IHdhcyB0byByZWRlZmluZSBhCituZXcgb3V0cHV0IGhhbmRsZXIgd2l0aCB0aGUgY2xvc2luZyBjYWxsIGRlYWN0aXZhdGVkOjwvcD4KKzxvbD4KKyAgPGxpPkZpcnN0IGRlZmluZSBhIG5ldyBJL08gb3VwdXQgYWxsb2NhdG9yIHdoZXJlIHRoZSBvdXRwdXQgZG9uJ3QgY2xvc2UgdGhlCisgICAgZmlsZToKKyAgICA8cHJlPnhtbE91dHB1dEJ1ZmZlclB0cgoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlT3duKEZJTEUgKmZpbGUsIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlcikgeworoKCgoHhtbE91dHB1dEJ1ZmZlclB0ciByZXQ7CiugoKCgCiugoKCgaWYgKHhtbE91dHB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPT0gMCkKK6CgoKCgoKCgeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzKCk7CisKK6CgoKBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CiugoKCgcmV0ID0geG1sQWxsb2NPdXRwdXRCdWZmZXIoZW5jb2Rlcik7CiugoKCgaWYgKHJldCAhPSBOVUxMKSB7CiugoKCgoKCgoHJldC0mZ3Q7Y29udGV4dCA9IGZpbGU7CiugoKCgoKCgoHJldC0mZ3Q7d3JpdGVjYWxsYmFjayA9IHhtbEZpbGVXcml0ZTsKK6CgoKCgoKCgcmV0LSZndDtjbG9zZWNhbGxiYWNrID0gTlVMTDsgIC8qIE5vIGNsb3NlIGNhbGxiYWNrICovCiugoKCgfQoroKCgoHJldHVybihyZXQpOyA8YnI+CisKKworCit9IDwvcHJlPgorICA8L2xpPgorICA8bGk+QW5kIHRoZW4gdXNlIGl0IHRvIHNhdmUgdGhlIGRvY3VtZW50OgorICAgIDxwcmU+RklMRSAqZjsKK3htbE91dHB1dEJ1ZmZlclB0ciBvdXRwdXQ7Cit4bWxEb2NQdHIgZG9jOworaW50IHJlczsKKworZiA9IC4uLgorZG9jID0gLi4uLgorCitvdXRwdXQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVPd24oZiwgTlVMTCk7CityZXMgPSB4bWxTYXZlRmlsZVRvKG91dHB1dCwgZG9jLCBOVUxMKTsKKyAgICA8L3ByZT4KKyAgPC9saT4KKzwvb2w+CisKKzxoMj48YSBuYW1lPSJDYXRhbG9nIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9oMj4KKworPHA+VGFibGUgb2YgQ29udGVudDo8L3A+Cis8b2w+CisgIDxsaT48YSBocmVmPSJHZW5lcmFsMiI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2RlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjU2ltcGxlIj5Vc2luZyBjYXRhbG9nczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1NvbWUiPlNvbWUgZXhhbXBsZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2UiPkhvdyB0byB0dW5lICBjYXRhbG9nIHVzYWdlPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjdmFsaWRhdGUiPkhvdyB0byBkZWJ1ZyBjYXRhbG9nIHByb2Nlc3Npbmc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNEZWNsYXJpbmciPkhvdyB0byBjcmVhdGUgYW5kIG1haW50YWluIGNhdGFsb2dzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjaW1wbGVtZW50byI+VGhlIGltcGxlbWVudG9yIGNvcm5lciBxdWljayByZXZpZXcgb2YgdGhlCisgIEFQSTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI090aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9saT4KKzwvb2w+CisKKzxoMz48YSBuYW1lPSJHZW5lcmFsMiI+R2VuZXJhbCBvdmVydmlldzwvYT48L2gzPgorCis8cD5XaGF0IGlzIGEgY2F0YWxvZz8gQmFzaWNhbGx5IGl0J3MgYSBsb29rdXAgbWVjaGFuaXNtIHVzZWQgd2hlbiBhbiBlbnRpdHkKKyhhIGZpbGUgb3IgYSByZW1vdGUgcmVzb3VyY2UpIHJlZmVyZW5jZXMgYW5vdGhlciBlbnRpdHkuIFRoZSBjYXRhbG9nIGxvb2t1cAoraXMgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgbW9tZW50IHRoZSByZWZlcmVuY2UgaXMgcmVjb2duaXplZCBieSB0aGUgc29mdHdhcmUKKyhYTUwgcGFyc2VyLCBzdHlsZXNoZWV0IHByb2Nlc3NpbmcsIG9yIGV2ZW4gaW1hZ2VzIHJlZmVyZW5jZWQgZm9yIGluY2x1c2lvbgoraW4gYSByZW5kZXJpbmcpIGFuZCB0aGUgdGltZSB3aGVyZSBsb2FkaW5nIHRoYXQgcmVzb3VyY2UgaXMgYWN0dWFsbHkKK3N0YXJ0ZWQuPC9wPgorCis8cD5JdCBpcyBiYXNpY2FsbHkgdXNlZCBmb3IgMyB0aGluZ3M6PC9wPgorPHVsPgorICA8bGk+bWFwcGluZyBmcm9tICJsb2dpY2FsIiBuYW1lcywgdGhlIHB1YmxpYyBpZGVudGlmaWVycyBhbmQgYSBtb3JlCisgICAgY29uY3JldGUgbmFtZSB1c2FibGUgZm9yIGRvd25sb2FkIChhbmQgVVJJKS4gRm9yIGV4YW1wbGUgaXQgY2FuIGFzc29jaWF0ZQorICAgIHRoZSBsb2dpY2FsIG5hbWUKKyAgICA8cD4iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIjwvcD4KKyAgICA8cD5vZiB0aGUgRG9jQm9vayA0LjEuMiBYTUwgRFREIHdpdGggdGhlIGFjdHVhbCBVUkwgd2hlcmUgaXQgY2FuIGJlCisgICAgZG93bmxvYWRlZDwvcD4KKyAgICA8cD5odHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZDwvcD4KKyAgPC9saT4KKyAgPGxpPnJlbWFwcGluZyBmcm9tIGEgZ2l2ZW4gVVJMIHRvIGFub3RoZXIgb25lLCBsaWtlIGFuIEhUVFAgaW5kaXJlY3Rpb24KKyAgICBzYXlpbmcgdGhhdAorICAgIDxwPiJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlcy90ci54c2wiPC9wPgorICAgIDxwPnNob3VsZCByZWFsbHkgYmUgbG9va2VkIGF0PC9wPgorICAgIDxwPiJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlcy9lbnRpdHkvc3R5bGVzaGVldHMvYmFzZS90ci54c2wiPC9wPgorICA8L2xpPgorICA8bGk+cHJvdmlkaW5nIGEgbG9jYWwgY2FjaGUgbWVjaGFuaXNtIGFsbG93aW5nIHRvIGxvYWQgdGhlIGVudGl0aWVzCisgICAgYXNzb2NpYXRlZCB0byBwdWJsaWMgaWRlbnRpZmllcnMgb3IgcmVtb3RlIHJlc291cmNlcywgdGhpcyBpcyBhIHJlYWxseQorICAgIGltcG9ydGFudCBmZWF0dXJlIGZvciBhbnkgc2lnbmlmaWNhbnQgZGVwbG95bWVudCBvZiBYTUwgb3IgU0dNTCBzaW5jZSBpdAorICAgIGFsbG93cyB0byBhdm9pZCB0aGUgYWxlYXMgYW5kIGRlbGF5cyBhc3NvY2lhdGVkIHRvIGZldGNoaW5nIHJlbW90ZQorICAgIHJlc291cmNlcy48L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9ImRlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uczwvYT48L2gzPgorCis8cD5MaWJ4bWwsIGFzIG9mIDIuNC4zIGltcGxlbWVudHMgMiBraW5kIG9mIGNhdGFsb2dzOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBvbGRlciBTR01MIGNhdGFsb2dzLCB0aGUgb2ZmaWNpYWwgc3BlYyBpcyAgU0dNTCBPcGVuIFRlY2huaWNhbAorICAgIFJlc29sdXRpb24gVFI5NDAxOjE5OTcsIGJ1dCBpcyBiZXR0ZXIgdW5kZXJzdG9vZCBieSByZWFkaW5nIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5qY2xhcmsuY29tL3NwL2NhdGFsb2cuaHRtIj50aGUgU1AgQ2F0YWxvZyBwYWdlPC9hPiBmcm9tCisgICAgSmFtZXMgQ2xhcmsuIFRoaXMgaXMgcmVsYXRpdmVseSBvbGQgYW5kIG5vdCB0aGUgcHJlZmVycmVkIG1vZGUgb2YKKyAgICBvcGVyYXRpb24gb2YgbGlieG1sLjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMuaHRtbCI+WE1MCisgICAgQ2F0YWxvZ3M8L2E+CisgICAgIGlzIGZhciBtb3JlIGZsZXhpYmxlLCBtb3JlIHJlY2VudCwgdXNlcyBhbiBYTUwgc3ludGF4IGFuZCBzaG91bGQgc2NhbGUKKyAgICBxdWl0ZSBiZXR0ZXIuIFRoaXMgaXMgdGhlIGRlZmF1bHQgb3B0aW9uIG9mIGxpYnhtbC48L2xpPgorPC91bD4KKworPHA+PC9wPgorCis8aDM+PGEgbmFtZT0iU2ltcGxlIj5Vc2luZyBjYXRhbG9nPC9hPjwvaDM+CisKKzxwPkluIGEgbm9ybWFsIGVudmlyb25tZW50IGxpYnhtbCB3aWxsIGJ5IGRlZmF1bHQgY2hlY2sgdGhlIHByZXNlbmNlIG9mIGEKK2NhdGFsb2cgaW4gL2V0Yy94bWwvY2F0YWxvZywgYW5kIGFzc3VtaW5nIGl0IGhhcyBiZWVuIGNvcnJlY3RseSBwb3B1bGF0ZWQsCit0aGUgcHJvY2Vzc2luZyBpcyBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IHRvIHRoZSBkb2N1bWVudCB1c2VyLiBUbyB0YWtlIGEKK2NvbmNyZXRlIGV4YW1wbGUsIHN1cHBvc2UgeW91IGFyZSBhdXRob3JpbmcgYSBEb2NCb29rIGRvY3VtZW50LCB0aGlzIG9uZQorc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBET0NUWVBFIGRlZmluaXRpb246PC9wPgorPHByZT4mbHQ7P3htbCB2ZXJzaW9uPScxLjAnPyZndDsKKyZsdDshRE9DVFlQRSBib29rIFBVQkxJQyAiLS8vTm9ybWFuIFdhbHNoLy9EVEQgRG9jQmsgWE1MIFYzLjEuNC8vRU4iCisgICAgICAgICAgImh0dHA6Ly9ud2Fsc2guY29tL2RvY2Jvb2sveG1sLzMuMS40L2RiM3htbC5kdGQiJmd0OzwvcHJlPgorCis8cD5XaGVuIHZhbGlkYXRpbmcgdGhlIGRvY3VtZW50IHdpdGggbGlieG1sLCB0aGUgY2F0YWxvZyB3aWxsIGJlCithdXRvbWF0aWNhbGx5IGNvbnN1bHRlZCB0byBsb29rdXAgdGhlIHB1YmxpYyBpZGVudGlmaWVyICItLy9Ob3JtYW4gV2Fsc2gvL0RURAorRG9jQmsgWE1MIFYzLjEuNC8vRU4iIGFuZCB0aGUgc3lzdGVtIGlkZW50aWZpZXIKKyJodHRwOi8vbndhbHNoLmNvbS9kb2Nib29rL3htbC8zLjEuNC9kYjN4bWwuZHRkIiwgYW5kIGlmIHRoZXNlIGVudGl0aWVzIGhhdmUKK2JlZW4gaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtIGFuZCB0aGUgY2F0YWxvZ3MgYWN0dWFsbHkgcG9pbnQgdG8gdGhlbSwgbGlieG1sCit3aWxsIGZldGNoIHRoZW0gZnJvbSB0aGUgbG9jYWwgZGlzay48L3A+CisKKzxwIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogUmVhbGx5IGRvbid0IHVzZSB0aGlzCitET0NUWVBFIGV4YW1wbGUgaXQncyBhIHJlYWxseSBvbGQgdmVyc2lvbiwgYnV0IGlzIGZpbmUgYXMgYW4gZXhhbXBsZS48L3A+CisKKzxwPkxpYnhtbCB3aWxsIGNoZWNrIHRoZSBjYXRhbG9nIGVhY2ggdGltZSB0aGF0IGl0IGlzIHJlcXVlc3RlZCB0byBsb2FkIGFuCitlbnRpdHksIHRoaXMgaW5jbHVkZXMgRFRELCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIHN0eWxlc2hlZXRzLCBldGMgLi4uIElmCit5b3VyIHN5c3RlbSBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBhbGwgdGhlIGF1dGhvcmluZyBwaGFzZSBhbmQgcHJvY2Vzc2luZworc2hvdWxkIHVzZSBvbmx5IGxvY2FsIGZpbGVzLCBldmVuIGlmIHlvdXIgZG9jdW1lbnQgc3RheXMgcG9ydGFibGUgYmVjYXVzZSBpdAordXNlcyB0aGUgY2Fub25pY2FsIHB1YmxpYyBhbmQgc3lzdGVtIElELCByZWZlcmVuY2luZyB0aGUgcmVtb3RlIGRvY3VtZW50LjwvcD4KKworPGgzPjxhIG5hbWU9IlNvbWUiPlNvbWUgZXhhbXBsZXM6PC9hPjwvaDM+CisKKzxwPkhlcmUgaXMgYSBjb3VwbGUgb2YgZnJhZ21lbnRzIGZyb20gWE1MIENhdGFsb2dzIHVzZWQgaW4gbGlieG1sIGVhcmx5CityZWdyZXNzaW9uIHRlc3RzIGluIDxjb2RlPnRlc3QvY2F0YWxvZ3M8L2NvZGU+IDo8L3A+Cis8cHJlPiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDIAorICAgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iCisgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCImZ3Q7CismbHQ7Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyImZ3Q7CisgICZsdDtwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKyAgIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiLyZndDsKKy4uLjwvcHJlPgorCis8cD5UaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgYSBjYXRhbG9nIGZvciBEb2NCb29rIDQuMS4yLCBYTUwgQ2F0YWxvZ3MgYXJlCit3cml0dGVuIGluIFhNTCwgIHRoZXJlIGlzIGEgc3BlY2lmaWMgbmFtZXNwYWNlIGZvciBjYXRhbG9nIGVsZW1lbnRzCisidXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyIuIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGlzCitjYXRhbG9nIGlzIGEgPGNvZGU+cHVibGljPC9jb2RlPiBtYXBwaW5nIGl0IGFsbG93cyB0byBhc3NvY2lhdGUgYSBQdWJsaWMKK0lkZW50aWZpZXIgd2l0aCBhbiBVUkkuPC9wPgorPHByZT4uLi4KKyAgICAmbHQ7cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svIgorICAgICAgICAgICAgICAgICAgIHJld3JpdGVQcmVmaXg9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLyIvJmd0OworLi4uPC9wcmU+CisKKzxwPkEgPGNvZGU+cmV3cml0ZVN5c3RlbTwvY29kZT4gaXMgYSB2ZXJ5IHBvd2VyZnVsIGluc3RydWN0aW9uLCBpdCBzYXlzIHRoYXQKK2FueSBVUkkgc3RhcnRpbmcgd2l0aCBhIGdpdmVuIHByZWZpeCBzaG91bGQgYmUgbG9va2VkIGF0IGFub3RoZXIgIFVSSQorY29uc3RydWN0ZWQgYnkgcmVwbGFjaW5nIHRoZSBwcmVmaXggd2l0aCBhbiBuZXcgb25lLiBJbiBlZmZlY3QgdGhpcyBhY3RzIGxpa2UKK2EgY2FjaGUgc3lzdGVtIGZvciBhIGZ1bGwgYXJlYSBvZiB0aGUgV2ViLiBJbiBwcmFjdGljZSBpdCBpcyBleHRyZW1lbHkgdXNlZnVsCit3aXRoIGEgZmlsZSBwcmVmaXggaWYgeW91IGhhdmUgaW5zdGFsbGVkIGEgY29weSBvZiB0aG9zZSByZXNvdXJjZXMgb24geW91cgorbG9jYWwgc3lzdGVtLjwvcD4KKzxwcmU+Li4uCismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vT0FTSVMvL0RURCBYTUwgQ2F0YWxvZyAvLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKyZsdDtkZWxlZ2F0ZVB1YmxpYyBwdWJsaWNJZFN0YXJ0U3RyaW5nPSItLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwiCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7CismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKyZsdDtkZWxlZ2F0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svIgorICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCIvJmd0OworJmx0O2RlbGVnYXRlVVJJIHVyaVN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svIgorICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCIvJmd0OworLi4uPC9wcmU+CisKKzxwPkRlbGVnYXRpb24gaXMgdGhlIGNvcmUgZmVhdHVyZXMgd2hpY2ggYWxsb3dzIHRvIGJ1aWxkIGEgdHJlZSBvZiBjYXRhbG9ncywKK2Vhc2llciB0byBtYWludGFpbiB0aGFuIGEgc2luZ2xlIGNhdGFsb2csIGJhc2VkIG9uIFB1YmxpYyBJZGVudGlmaWVyLCBTeXN0ZW0KK0lkZW50aWZpZXIgb3IgVVJJIHByZWZpeGVzIGl0IGluc3RydWN0cyB0aGUgY2F0YWxvZyBzb2Z0d2FyZSB0byBsb29rIHVwCitlbnRyaWVzIGluIGFub3RoZXIgcmVzb3VyY2UuIFRoaXMgZmVhdHVyZSBhbGxvdyB0byBidWlsZCBoaWVyYXJjaGllcyBvZgorY2F0YWxvZ3MsIHRoZSBzZXQgb2YgZW50cmllcyBwcmVzZW50ZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVkaXJlY3QgdGhlCityZXNvbHV0aW9uIG9mIGFsbCBEb2NCb29rIHJlZmVyZW5jZXMgdG8gdGhlIHNwZWNpZmljIGNhdGFsb2cgaW4KKzxjb2RlPi91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sPC9jb2RlPiB0aGlzIG9uZSBpbiB0dXJuIGNvdWxkIGRlbGVnYXRlIGFsbAorcmVmZXJlbmNlcyBmb3IgRG9jQm9vayA0LjIuMSB0byBhIHNwZWNpZmljIGNhdGFsb2cgaW5zdGFsbGVkIGF0IHRoZSBzYW1lIHRpbWUKK2FzIHRoZSBEb2NCb29rIHJlc291cmNlcyBvbiB0aGUgbG9jYWwgbWFjaGluZS48L3A+CisKKzxoMz48YSBuYW1lPSJyZWZlcmVuY2UiPkhvdyB0byB0dW5lIGNhdGFsb2cgdXNhZ2U6PC9hPjwvaDM+CisKKzxwPlRoZSB1c2VyIGNhbiBjaGFuZ2UgdGhlIGRlZmF1bHQgY2F0YWxvZyBiZWhhdmlvdXIgYnkgcmVkaXJlY3RpbmcgcXVlcmllcwordG8gaXRzIG93biBzZXQgb2YgY2F0YWxvZ3MsIHRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZyB0aGUKKzxjb2RlPlhNTF9DQVRBTE9HX0ZJTEVTPC9jb2RlPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3Qgb2YgY2F0YWxvZ3MsIGFuCitlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUgZGVmYXVsdCA8Y29kZT4vZXRjL3htbC9jYXRhbG9nPC9jb2RlPgorZGVmYXVsdCBjYXRhbG9nPC9wPgorCis8aDM+PGEgbmFtZT0idmFsaWRhdGUiPkhvdyB0byBkZWJ1ZyBjYXRhbG9nIHByb2Nlc3Npbmc6PC9hPjwvaDM+CisKKzxwPlNldHRpbmcgdXAgdGhlIDxjb2RlPlhNTF9ERUJVR19DQVRBTE9HPC9jb2RlPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsCittYWtlIGxpYnhtbCBvdXRwdXQgZGVidWdnaW5nIGluZm9ybWF0aW9ucyBmb3IgZWFjaCBjYXRhbG9nIG9wZXJhdGlvbnMsIGZvcgorZXhhbXBsZTo8L3A+Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyB4bWxsaW50IC0tbWVtb3J5IC0tbm9vdXQgdGVzdC9lbnQyCit3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgInRpdGxlLnhtbCIKK29yY2hpczp+L1hNTCAtJmd0OyBleHBvcnQgWE1MX0RFQlVHX0NBVEFMT0c9CitvcmNoaXM6fi9YTUwgLSZndDsgeG1sbGludCAtLW1lbW9yeSAtLW5vb3V0IHRlc3QvZW50MgorRmFpbGVkIHRvIHBhcnNlIGNhdGFsb2cgL2V0Yy94bWwvY2F0YWxvZworRmFpbGVkIHRvIHBhcnNlIGNhdGFsb2cgL2V0Yy94bWwvY2F0YWxvZword2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJ0aXRsZS54bWwiCitDYXRhbG9ncyBjbGVhbnVwCitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPlRoZSB0ZXN0L2VudDIgcmVmZXJlbmNlcyBhbiBlbnRpdHksIHJ1bm5pbmcgdGhlIHBhcnNlciBmcm9tIG1lbW9yeSBtYWtlcwordGhlIGJhc2UgVVJJIHVuYXZhaWxhYmxlIGFuZCB0aGUgdGhlICJ0aXRsZS54bWwiIGVudGl0eSBjYW5ub3QgYmUgbG9hZGVkLgorU2V0dGluZyB1cCB0aGUgZGVidWcgZW52aXJvbm1lbnQgdmFyaWFibGUgYWxsb3dzIHRvIGRldGVjdCB0aGF0IGFuIGF0dGVtcHQgaXMKK21hZGUgdG8gbG9hZCB0aGUgPGNvZGU+L2V0Yy94bWwvY2F0YWxvZzwvY29kZT4gYnV0IHNpbmNlIGl0J3Mgbm90IHByZXNlbnQgdGhlCityZXNvbHV0aW9uIGZhaWxzLjwvcD4KKworPHA+QnV0IHRoZSBtb3N0IGFkdmFuY2VkIHdheSB0byBkZWJ1ZyBYTUwgY2F0YWxvZyBwcm9jZXNzaW5nIGlzIHRvIHVzZSB0aGUKKzxzdHJvbmc+eG1sY2F0YWxvZzwvc3Ryb25nPiBjb21tYW5kIHNoaXBwZWQgd2l0aCBsaWJ4bWwyLCBpdCBhbGxvd3MgdG8gbG9hZAorY2F0YWxvZ3MgYW5kIG1ha2UgcmVzb2x1dGlvbiBxdWVyaWVzIHRvIHNlZSB3aGF0IGlzIGdvaW5nIG9uLiBUaGlzIGlzIGFsc28KK3VzZWQgZm9yIHRoZSByZWdyZXNzaW9uIHRlc3RzOjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sIFwKKyAgICAgICAgICAgICAgICAgICAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgoraHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKK29yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT4KKworPHA+Rm9yIGRlYnVnZ2luZyB3aGF0IGlzIGdvaW5nIG9uLCBhZGRpbmcgb25lIC12IGZsYWdzIGluY3JlYXNlIHRoZSB2ZXJib3NpdHkKK2xldmVsIHRvIGluZGljYXRlIHRoZSBwcm9jZXNzaW5nIGRvbmUgKGFkZGluZyBhIHNlY29uZCBmbGFnIGFsc28gaW5kaWNhdGUKK3doYXQgZWxlbWVudHMgYXJlIHJlY29nbml6ZWQgYXQgcGFyc2luZyk6PC9wPgorPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC12IHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwgXAorICAgICAgICAgICAgICAgICAgICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCitQYXJzaW5nIGNhdGFsb2cgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCdzIGNvbnRlbnQKK0ZvdW5kIHB1YmxpYyBtYXRjaCAtLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4KK2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCitDYXRhbG9ncyBjbGVhbnVwCitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPkEgc2hlbGwgaW50ZXJmYWNlIGlzIGFsc28gYXZhaWxhYmxlIHRvIGRlYnVnIGFuZCBwcm9jZXNzIG11bHRpcGxlIHF1ZXJpZXMKKyhhbmQgZm9yIHJlZ3Jlc3Npb24gdGVzdHMpOjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtc2hlbGwgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCBcCisgICAgICAgICAgICAgICAgICAgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKyZndDsgaGVscCAgIAorQ29tbWFuZHMgYXZhaWxhYmxlOgorcHVibGljIFB1YmxpY0lEOiBtYWtlIGEgUFVCTElDIGlkZW50aWZpZXIgbG9va3VwCitzeXN0ZW0gU3lzdGVtSUQ6IG1ha2UgYSBTWVNURU0gaWRlbnRpZmllciBsb29rdXAKK3Jlc29sdmUgUHVibGljSUQgU3lzdGVtSUQ6IGRvIGEgZnVsbCByZXNvbHZlciBsb29rdXAKK2FkZCAndHlwZScgJ29yaWcnICdyZXBsYWNlJyA6IGFkZCBhbiBlbnRyeQorZGVsICd2YWx1ZXMnIDogcmVtb3ZlIHZhbHVlcworZHVtcDogcHJpbnQgdGhlIGN1cnJlbnQgY2F0YWxvZyBzdGF0ZQorZGVidWc6IGluY3JlYXNlIHRoZSB2ZXJib3NpdHkgbGV2ZWwKK3F1aWV0OiBkZWNyZWFzZSB0aGUgdmVyYm9zaXR5IGxldmVsCitleGl0OiAgcXVpdCB0aGUgc2hlbGwKKyZndDsgcHVibGljICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCitodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorJmd0OyBxdWl0CitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPlRoaXMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG1vc3QgZGVidWdnaW5nIHB1cnBvc2UsIHRoaXMgd2FzIGFjdHVhbGx5Cit1c2VkIGhlYXZpbHkgdG8gZGVidWcgdGhlIFhNTCBDYXRhbG9nIGltcGxlbWVudGF0aW9uIGl0c2VsZi48L3A+CisKKzxoMz48YSBuYW1lPSJEZWNsYXJpbmciPkhvdyB0byBjcmVhdGUgYW5kIG1haW50YWluPC9hPiBjYXRhbG9nczo8L2gzPgorCis8cD5CYXNpY2FsbHkgWE1MIENhdGFsb2dzIGFyZSBYTUwgZmlsZXMsIHlvdSBjYW4gZWl0aGVyIHVzZSBYTUwgdG9vbHMgdG8KK21hbmFnZSB0aGVtIG9yIHVzZSAgPHN0cm9uZz54bWxjYXRhbG9nPC9zdHJvbmc+IGZvciB0aGlzLiBUaGUgYmFzaWMgc3RlcCBpcwordG8gY3JlYXRlIGEgY2F0YWxvZyB0aGUgLWNyZWF0ZSBvcHRpb24gcHJvdmlkZSB0aGlzIGZhY2lsaXR5OjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtLWNyZWF0ZSB0c3QueG1sCismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIKKyAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIiZndDsKKyZsdDtjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIi8mZ3Q7CitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPkJ5IGRlZmF1bHQgeG1sY2F0YWxvZyBkb2VzIG5vdCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGNhdGFsb2cgYW5kIHNhdmUgdGhlCityZXN1bHQgb24gdGhlIHN0YW5kYXJkIG91dHB1dCwgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgLW5vb3V0CitvcHRpb24uIFRoZSA8Y29kZT4tYWRkPC9jb2RlPiBjb21tYW5kIGFsbG93cyB0byBhZGQgZW50cmllcyBpbiB0aGUKK2NhdGFsb2c6PC9wPgorPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tbm9vdXQgLS1jcmVhdGUgLS1hZGQgInB1YmxpYyIgXAorICAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIiBcCisgIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIHRzdC54bWwKK29yY2hpczp+L1hNTCAtJmd0OyBjYXQgdHN0LnhtbAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iIFwKKyAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OworJmx0O3B1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgorICAgICAgICB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIi8mZ3Q7CismbHQ7L2NhdGFsb2cmZ3Q7CitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPlRoZSA8Y29kZT4tYWRkPC9jb2RlPiBvcHRpb24gd2lsbCBhbHdheXMgdGFrZSAzIHBhcmFtZXRlcnMgZXZlbiBpZiBzb21lIG9mCit0aGUgWE1MIENhdGFsb2cgY29uc3RydWN0cyAobGlrZSBuZXh0Q2F0YWxvZykgd2lsbCBoYXZlIG9ubHkgYSBzaW5nbGUKK2FyZ3VtZW50LCBqdXN0IHBhc3MgYSB0aGlyZCBlbXB0eSBzdHJpbmcsIGl0IHdpbGwgYmUgaWdub3JlZC48L3A+CisKKzxwPlNpbWlsYXJseSB0aGUgPGNvZGU+LWRlbDwvY29kZT4gb3B0aW9uIHJlbW92ZSBtYXRjaGluZyBlbnRyaWVzIGZyb20gdGhlCitjYXRhbG9nOjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtLWRlbCBcCisgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIgdHN0LnhtbAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iCisgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciLyZndDsKK29yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT4KKworPHA+VGhlIGNhdGFsb2cgaXMgbm93IGVtcHR5LiBOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIG9mIDxjb2RlPi1kZWw8L2NvZGU+IGlzCitleGFjdCBhbmQgd291bGQgaGF2ZSB3b3JrZWQgaW4gYSBzaW1pbGFyIGZhc2hpb24gd2l0aCB0aGUgUHVibGljIElECitzdHJpbmcuPC9wPgorCis8cD5UaGlzIGlzIHJ1ZGltZW50YXJ5IGJ1dCBzaG91bGQgYmUgc3VmZmljaWVudCB0byBtYW5hZ2UgYSBub3QgdG9vIGNvbXBsZXgKK2NhdGFsb2cgdHJlZSBvZiByZXNvdXJjZXMuPC9wPgorCis8aDM+PGEgbmFtZT0iaW1wbGVtZW50byI+VGhlIGltcGxlbWVudG9yIGNvcm5lciBxdWljayByZXZpZXcgb2YgdGhlCitBUEk6PC9hPjwvaDM+CisKKzxwPkZpcnN0LCBhbmQgbGlrZSBmb3IgZXZlcnkgb3RoZXIgbW9kdWxlIG9mIGxpYnhtbCwgdGhlcmUgaXMgYW4KK2F1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIDxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCI+QVBJIHBhZ2UgZm9yCitjYXRhbG9nIHN1cHBvcnQ8L2E+LjwvcD4KKworPHA+VGhlIGhlYWRlciBmb3IgdGhlIGNhdGFsb2cgaW50ZXJmYWNlcyBzaG91bGQgYmUgaW5jbHVkZWQgYXM6PC9wPgorPHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL2NhdGFsb2cuaCZndDs8L3ByZT4KKworPHA+VGhlIEFQSSBpcyB2b2x1bnRhcmlseSBrZXB0IHZlcnkgc2ltcGxlLiBGaXJzdCBpdCBpcyBub3Qgb2J2aW91cyB0aGF0CithcHBsaWNhdGlvbnMgcmVhbGx5IG5lZWQgYWNjZXNzIHRvIGl0IHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZgorbGlieG1sIChOb3RlOiBpdCBpcyBwb3NzaWJsZSB0byBjb21wbGV0ZWx5IG92ZXJyaWRlIGxpYnhtbCBkZWZhdWx0IGNhdGFsb2cgYnkKK3VzaW5nIDxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4gdG8KK3BsdWcgYW4gYXBwbGljYXRpb24gc3BlY2lmaWMgcmVzb2x2ZXIpLjwvcD4KKworPHA+QmFzaWNhbGx5IGxpYnhtbCBzdXBwb3J0IDIgY2F0YWxvZyBsaXN0czo8L3A+Cis8dWw+CisgIDxsaT50aGUgZGVmYXVsdCBvbmUsIGdsb2JhbCBzaGFyZWQgYnkgYWxsIHRoZSBhcHBsaWNhdGlvbjwvbGk+CisgIDxsaT5hIHBlci1kb2N1bWVudCBjYXRhbG9nLCB0aGlzIG9uZSBpcyBidWlsdCBpZiB0aGUgZG9jdW1lbnQgdXNlcyB0aGUKKyAgICA8Y29kZT5vYXNpcy14bWwtY2F0YWxvZzwvY29kZT4gUElzIHRvIHNwZWNpZnkgaXRzIG93biBjYXRhbG9nIGxpc3QsIGl0IGlzCisgICAgYXNzb2NpYXRlZCB0byB0aGUgcGFyc2VyIGNvbnRleHQgYW5kIGRlc3Ryb3llZCB3aGVuIHRoZSBwYXJzaW5nIGNvbnRleHQKKyAgICBpcyBkZXN0cm95ZWQuPC9saT4KKzwvdWw+CisKKzxwPnRoZSBkb2N1bWVudCBvbmUgd2lsbCBiZSB1c2VkIGZpcnN0IGlmIGl0IGV4aXN0cy48L3A+CisKKzxoND5Jbml0aWFsaXphdGlvbiByb3V0aW5lczo8L2g0PgorCis8cD54bWxJbml0aWFsaXplQ2F0YWxvZygpLCB4bWxMb2FkQ2F0YWxvZygpIGFuZCB4bWxMb2FkQ2F0YWxvZ3MoKSBzaG91bGQgYmUKK3VzZWQgYXQgc3RhcnR1cCB0byBpbml0aWFsaXplIHRoZSBjYXRhbG9nLCBpZiB0aGUgY2F0YWxvZyBzaG91bGQgYmUKK2luaXRpYWxpemVkIHdpdGggc3BlY2lmaWMgdmFsdWVzIHhtbExvYWRDYXRhbG9nKCkgIG9yIHhtbExvYWRDYXRhbG9ncygpCitzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSB4bWxJbml0aWFsaXplQ2F0YWxvZygpIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBkbyBhCitkZWZhdWx0IGluaXRpYWxpemF0aW9uIGZpcnN0LjwvcD4KKworPHA+VGhlIHhtbENhdGFsb2dBZGRMb2NhbCgpIGNhbGwgaXMgdXNlZCBieSB0aGUgcGFyc2VyIHRvIGdyb3cgdGhlIGRvY3VtZW50Citvd24gY2F0YWxvZyBsaXN0IGlmIG5lZWRlZC48L3A+CisKKzxoND5QcmVmZXJlbmNlcyBzZXR1cDo8L2g0PgorCis8cD5UaGUgWE1MIENhdGFsb2cgc3BlYyByZXF1aXJlcyB0aGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IGRlZmF1bHQKK3ByZWZlcmVuY2VzIGJldHdlZW4gIHB1YmxpYyBhbmQgc3lzdGVtIGRlbGVnYXRpb24sCit4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcigpIGFsbG93cyB0aGlzLCB4bWxDYXRhbG9nU2V0RGVmYXVsdHMoKSBhbmQKK3htbENhdGFsb2dHZXREZWZhdWx0cygpIGFsbG93IHRvIGNvbnRyb2wgIGlmIFhNTCBDYXRhbG9ncyByZXNvbHV0aW9uIHNob3VsZAorYmUgZm9yYmlkZGVuLCBhbGxvd2VkIGZvciBnbG9iYWwgY2F0YWxvZywgZm9yIGRvY3VtZW50IGNhdGFsb2cgb3IgYm90aCwgdGhlCitkZWZhdWx0IGlzIHRvIGFsbG93IGJvdGguPC9wPgorCis8cD5BbmQgb2YgY291cnNlIHhtbENhdGFsb2dTZXREZWJ1ZygpIGFsbG93cyB0byBnZW5lcmF0ZSBkZWJ1ZyBtZXNzYWdlcworKHRocm91Z2ggdGhlIHhtbEdlbmVyaWNFcnJvcigpIG1lY2hhbmlzbSkuPC9wPgorCis8aDQ+UXVlcnlpbmcgcm91dGluZXM6PC9oND4KKworPHA+eG1sQ2F0YWxvZ1Jlc29sdmUoKSwgeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oKSwgeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoKQorYW5kIHhtbENhdGFsb2dSZXNvbHZlVVJJKCkgYXJlIHJlbGF0aXZlbHkgZXhwbGljaXQgaWYgeW91IHJlYWQgdGhlIFhNTAorQ2F0YWxvZyBzcGVjaWZpY2F0aW9uIHRoZXkgY29ycmVzcG9uZCB0byBzZWN0aW9uIDcgYWxnb3JpdGhtcywgdGhleSBzaG91bGQKK2Fsc28gd29yayBpZiB5b3UgaGF2ZSBsb2FkZWQgYW4gU0dNTCBjYXRhbG9nIHdpdGggYSBzaW1wbGlmaWVkIHNlbWFudGljLjwvcD4KKworPHA+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSgpIGFuZCB4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJKCkgYXJlIHRoZSBzYW1lIGJ1dAorb3BlcmF0ZSBvbiB0aGUgZG9jdW1lbnQgY2F0YWxvZyBsaXN0PC9wPgorCis8aDQ+Q2xlYW51cCBhbmQgTWlzY2VsbGFuZW91czo8L2g0PgorCis8cD54bWxDYXRhbG9nQ2xlYW51cCgpIGZyZWUtdXAgdGhlIGdsb2JhbCBjYXRhbG9nLCB4bWxDYXRhbG9nRnJlZUxvY2FsKCkgaXMKK3RoZSBwZXItZG9jdW1lbnQgZXF1aXZhbGVudC48L3A+CisKKzxwPnhtbENhdGFsb2dBZGQoKSBhbmQgeG1sQ2F0YWxvZ1JlbW92ZSgpIGFyZSB1c2VkIHRvIGR5bmFtaWNhbGx5IG1vZGlmeSB0aGUKK2ZpcnN0IGNhdGFsb2cgaW4gdGhlIGdsb2JhbCBsaXN0LCBhbmQgeG1sQ2F0YWxvZ0R1bXAoKSBhbGxvd3MgdG8gZHVtcCBhCitjYXRhbG9nIHN0YXRlLCB0aG9zZSByb3V0aW5lcyBhcmUgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciB4bWxjYXRhbG9nLCBJJ20gbm90CitzdXJlIHRoYXQgZXhwb3NpbmcgbW9yZSBjb21wbGV4IGludGVyZmFjZXMgKGxpa2UgbmF2aWdhdGlvbiBvbmVzKSB3b3VsZCBiZQorcmVhbGx5IHVzZWZ1bC48L3A+CisKKzxwPlRoZSB4bWxQYXJzZUNhdGFsb2dGaWxlKCkgaXMgYSBmdW5jdGlvbiB1c2VkIHRvIGxvYWQgWE1MIENhdGFsb2cgZmlsZXMsCitpdCdzIHNpbWlsYXIgYXMgeG1sUGFyc2VGaWxlKCkgZXhjZXB0IGl0IGJ5cGFzcyBhbGwgY2F0YWxvZyBsb29rdXBzLCBpdCdzCitwcm92aWRlZCBiZWNhdXNlIHRoaXMgZnVuY3Rpb25hbGl0eSBtYXkgYmUgdXNlZnVsIGZvciBjbGllbnQgdG9vbHMuPC9wPgorCis8aDQ+dGhyZWFkZWQgZW52aXJvbm1lbnRzOjwvaDQ+CisKKzxwPlNpbmNlIHRoZSBjYXRhbG9nIHRyZWUgaXMgYnVpbHQgcHJvZ3Jlc3NpdmVseSwgc29tZSBjYXJlIGhhcyBiZWVuIHRha2VuIHRvCit0cnkgdG8gYXZvaWQgdHJvdWJsZXMgaW4gbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudHMuIFRoZSBjb2RlIGlzIG5vdyB0aHJlYWQKK3NhZmUgYXNzdW1pbmcgdGhhdCB0aGUgbGlieG1sIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRzCitzdXBwb3J0LjwvcD4KKworPHA+PC9wPgorCis8aDM+PGEgbmFtZT0iT3RoZXIiPk90aGVyIHJlc291cmNlczwvYT48L2gzPgorCis8cD5UaGUgWE1MIENhdGFsb2cgc3BlY2lmaWNhdGlvbiBpcyByZWxhdGl2ZWx5IHJlY2VudCBzbyB0aGVyZSBpc24ndCBtdWNoCitsaXRlcmF0dXJlIHRvIHBvaW50IGF0OjwvcD4KKzx1bD4KKyAgPGxpPllvdSBjYW4gZmluZCBhbiBnb29kIHJhbnQgZnJvbSBOb3JtIFdhbHNoIGFib3V0IDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5hcmJvcnRleHQuY29tL1RoaW5rX1RhbmsvWE1MX1Jlc291cmNlcy9Jc3N1ZV9UaHJlZS9pc3N1ZV90aHJlZS5odG1sIj50aGUKKyAgICBuZWVkIGZvciBjYXRhbG9nczwvYT4sIGl0IHByb3ZpZGVzIGEgbG90IG9mIGNvbnRleHQgaW5mb3JtYXRpb25zIGV2ZW4gaWYKKyAgICBJIGRvbid0IGFncmVlIHdpdGggZXZlcnl0aGluZyBwcmVzZW50ZWQuPC9saT4KKyAgPGxpPkFuIDxhIGhyZWY9Imh0dHA6Ly9ob21lLmNjaWwub3JnL35jb3dhbi9YTUwvWENhdGFsb2cuaHRtbCI+b2xkIFhNTAorICAgIGNhdGFsb2cgcHJvcG9zYWw8L2E+IGZyb20gSm9obiBDb3dhbjwvbGk+CisgIDxsaT5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5yZGRsLm9yZy8iPlJlc291cmNlIERpcmVjdG9yeSBEZXNjcmlwdGlvbgorICAgIExhbmd1YWdlPC9hPiAoUkRETCkgYW5vdGhlciBjYXRhbG9nIHN5c3RlbSBidXQgbW9yZSBvcmllbnRlZCB0b3dhcmQKKyAgICBwcm92aWRpbmcgbWV0YWRhdGEgZm9yIFhNTCBuYW1lc3BhY2VzLjwvbGk+CisgIDxsaT50aGUgcGFnZSBmcm9tIHRoZSBPQVNJUyBUZWNobmljYWwgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5LyI+Q29tbWl0dGVlIG9uIEVudGl0eQorICAgIFJlc29sdXRpb248L2E+IHdobyBtYWludGFpbnMgWE1MIENhdGFsb2csIHlvdSB3aWxsIGZpbmQgcG9pbnRlcnMgdG8gdGhlCisgICAgc3BlY2lmaWNhdGlvbiB1cGRhdGUsIHNvbWUgYmFja2dyb3VuZCBhbmQgcG9pbnRlcnMgdG8gb3RoZXJzIHRvb2xzCisgICAgcHJvdmlkaW5nIFhNTCBDYXRhbG9nIHN1cHBvcnQ8L2xpPgorICA8bGk+SSBoYXZlIHVwbG9hZGVkIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL3Rlc3QvZGJrNDEyY2F0YWxvZy50YXIuZ3oiPmEKKyAgICBtYWxsIHRhcmJhbGw8L2E+IGNvbnRhaW5pbmcgWE1MIENhdGFsb2dzIGZvciBEb2NCb29rIDQuMS4yIHdoaWNoIHNlZW1zIHRvCisgICAgd29yayBmaW5lIGZvciBtZTwvbGk+CisgIDxsaT5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy94bWxjYXRhbG9nX21hbi5odG1sIj54bWxjYXRhbG9nCisgICAgbWFudWFsIHBhZ2U8L2E+PC9saT4KKzwvdWw+CisKKzxwPklmIHlvdSBoYXZlIHN1Z2dlc3Rpb25zIGZvciBjb3JyZWN0aW9ucyBvciBhZGRpdGlvbnMsIHNpbXBseSBjb250YWN0CittZTo8L3A+CisKKzxoMj48YSBuYW1lPSJsaWJyYXJ5Ij5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9oMj4KIAogPHA+VGhpcyBzZWN0aW9uIGlzIGRpcmVjdGx5IGludGVuZGVkIHRvIGhlbHAgcHJvZ3JhbW1lcnMgZ2V0dGluZyBib290c3RyYXBwZWQKIHVzaW5nIHRoZSBYTUwgbGlicmFyeSBmcm9tIHRoZSBDIGxhbmd1YWdlLiBJdCBpcyBub3QgaW50ZW5kZWQgdG8gYmUKQEAgLTE0MDAsNTAgKzI4MjYsMTMwIEBACiB0cnkgdG8gcHJvdmlkZSB3YXlzIHRvIGRvIHRoaXMsIGJ1dCB0aGlzIG1heSBub3QgYmUgcG9ydGFibGUgb3IKIHN0YW5kYXJkaXplZC48L3A+CiAKLTxoMj48YSBuYW1lPSJWYWxpZGF0aW9uIj5WYWxpZGF0aW9uLCBvciBhcmUgeW91IGFmcmFpZCBvZiBEVERzID88L2E+PC9oMj4KKzxoMj48YSBuYW1lPSJVcGdyYWRpbmciPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2gyPgogCi08cD5XZWxsIHdoYXQgaXMgdmFsaWRhdGlvbiBhbmQgd2hhdCBpcyBhIERURCA/PC9wPgorPHA+SW5jb21wYXRpYmxlIGNoYW5nZXM6PC9wPgogCi08cD5WYWxpZGF0aW9uIGlzIHRoZSBwcm9jZXNzIG9mIGNoZWNraW5nIGEgZG9jdW1lbnQgYWdhaW5zdCBhIHNldCBvZgotY29uc3RydWN0aW9uIHJ1bGVzOyBhIDxzdHJvbmc+RFREPC9zdHJvbmc+IChEb2N1bWVudCBUeXBlIERlZmluaXRpb24pIGlzIHN1Y2gKLWEgc2V0IG9mIHJ1bGVzLjwvcD4KKzxwPlZlcnNpb24gMiBvZiBsaWJ4bWwgaXMgdGhlIGZpcnN0IHZlcnNpb24gaW50cm9kdWNpbmcgc2VyaW91cyBiYWNrd2FyZAoraW5jb21wYXRpYmxlIGNoYW5nZXMuIFRoZSBtYWluIGdvYWxzIHdlcmU6PC9wPgorPHVsPgorICA8bGk+YSBnZW5lcmFsIGNsZWFudXAuIEEgbnVtYmVyIG9mIG1pc3Rha2VzIGluaGVyaXRlZCBmcm9tIHRoZSB2ZXJ5IGVhcmx5CisgICAgdmVyc2lvbnMgY291bGRuJ3QgYmUgY2hhbmdlZCBkdWUgdG8gY29tcGF0aWJpbGl0eSBjb25zdHJhaW50cy4gRXhhbXBsZQorICAgIHRoZSAiY2hpbGRzIiBlbGVtZW50IGluIHRoZSBub2Rlcy48L2xpPgorICA8bGk+VW5pZm9ybWl6YXRpb24gb2YgdGhlIHZhcmlvdXMgbm9kZXMsIGF0IGxlYXN0IGZvciB0aGVpciBoZWFkZXIgYW5kIGxpbmsKKyAgICBwYXJ0cyAoZG9jLCBwYXJlbnQsIGNoaWxkcmVuLCBwcmV2LCBuZXh0KSwgdGhlIGdvYWwgaXMgYSBzaW1wbGVyCisgICAgcHJvZ3JhbW1pbmcgbW9kZWwgYW5kIHNpbXBsaWZ5aW5nIHRoZSB0YXNrIG9mIHRoZSBET00gaW1wbGVtZW50b3JzLjwvbGk+CisgIDxsaT5iZXR0ZXIgY29uZm9ybWFuY2VzIHRvIHRoZSBYTUwgc3BlY2lmaWNhdGlvbiwgZm9yIGV4YW1wbGUgdmVyc2lvbiAxLngKKyAgICBoYWQgYW4gaGV1cmlzdGljIHRvIHRyeSB0byBkZXRlY3QgaWdub3JhYmxlIHdoaXRlIHNwYWNlcy4gQXMgYSByZXN1bHQgdGhlCisgICAgU0FYIGV2ZW50IGdlbmVyYXRlZCB3ZXJlIGlnbm9yYWJsZVdoaXRlc3BhY2UoKSB3aGlsZSB0aGUgc3BlYyByZXF1aXJlcworICAgIGNoYXJhY3RlcigpIGluIHRoYXQgY2FzZS4gVGhpcyBhbHNvIG1lYW4gdGhhdCBhIG51bWJlciBvZiBET00gbm9kZQorICAgIGNvbnRhaW5pbmcgYmxhbmsgdGV4dCBtYXkgcG9wdWxhdGUgdGhlIERPTSB0cmVlIHdoaWNoIHdlcmUgbm90IHByZXNlbnQKKyAgICBiZWZvcmUuPC9saT4KKzwvdWw+CiAKLTxwPlRoZSB2YWxpZGF0aW9uIHByb2Nlc3MgYW5kIGJ1aWxkaW5nIERURHMgYXJlIHRoZSB0d28gbW9zdCBkaWZmaWN1bHQgcGFydHMKLW9mIHRoZSBYTUwgbGlmZSBjeWNsZS4gQnJpZWZseSBhIERURCBkZWZpbmVzIGFsbCB0aGUgcG9zc2libGVzIGVsZW1lbnQgdG8gYmUKLWZvdW5kIHdpdGhpbiB5b3VyIGRvY3VtZW50LCB3aGF0IGlzIHRoZSBmb3JtYWwgc2hhcGUgb2YgeW91ciBkb2N1bWVudCB0cmVlCi0oYnkgZGVmaW5pbmcgdGhlIGFsbG93ZWQgY29udGVudCBvZiBhbiBlbGVtZW50LCBlaXRoZXIgdGV4dCwgYSByZWd1bGFyCi1leHByZXNzaW9uIGZvciB0aGUgYWxsb3dlZCBsaXN0IG9mIGNoaWxkcmVuLCBvciBtaXhlZCBjb250ZW50IGkuZS4gYm90aCB0ZXh0Ci1hbmQgY2hpbGRyZW4pLiBUaGUgRFREIGFsc28gZGVmaW5lcyB0aGUgYWxsb3dlZCBhdHRyaWJ1dGVzIGZvciBhbGwgZWxlbWVudHMKLWFuZCB0aGUgdHlwZXMgb2YgdGhlIGF0dHJpYnV0ZXMuIEZvciBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCBJIHN1Z2dlc3QKLXRoYXQgeW91IHJlYWQgdGhlIHJlbGF0ZWQgcGFydHMgb2YgdGhlIFhNTCBzcGVjaWZpY2F0aW9uLCB0aGUgZXhhbXBsZXMgZm91bmQKLXVuZGVyIGdub21lLXhtbC90ZXN0L3ZhbGlkL2R0ZCBhbmQgYW55IG9mIHRoZSBsYXJnZSBudW1iZXIgb2YgYm9va3MgYXZhaWxhYmxlCi1vbiBYTUwuIFRoZSBkaWEgZXhhbXBsZSBpbiBnbm9tZS14bWwvdGVzdC92YWxpZCBzaG91bGQgYmUgYm90aCBzaW1wbGUgYW5kCi1jb21wbGV0ZSBlbm91Z2ggdG8gYWxsb3cgeW91IHRvIGJ1aWxkIHlvdXIgb3duLjwvcD4KKzxoMz5Ib3cgdG8gZml4IGxpYnhtbC0xLnggY29kZTo8L2gzPgogCi08cD5BIHdvcmQgb2Ygd2FybmluZywgYnVpbGRpbmcgYSBnb29kIERURCB3aGljaCB3aWxsIGZpdCB0aGUgbmVlZHMgb2YgeW91cgotYXBwbGljYXRpb24gaW4gdGhlIGxvbmctdGVybSBpcyBmYXIgZnJvbSB0cml2aWFsOyBob3dldmVyLCB0aGUgZXh0cmEgbGV2ZWwgb2YKLXF1YWxpdHkgaXQgY2FuIGVuc3VyZSBpcyB3ZWxsIHdvcnRoIHRoZSBwcmljZSBmb3Igc29tZSBzZXRzIG9mIGFwcGxpY2F0aW9ucwotb3IgaWYgeW91IGFscmVhZHkgaGF2ZSBhbHJlYWR5IGEgRFREIGRlZmluZWQgZm9yIHlvdXIgYXBwbGljYXRpb24gZmllbGQuPC9wPgorPHA+U28gY2xpZW50IGNvZGUgb2YgbGlieG1sIGRlc2lnbmVkIHRvIHJ1biB3aXRoIHZlcnNpb24gMS54IG1heSBoYXZlIHRvIGJlCitjaGFuZ2VkIHRvIGNvbXBpbGUgYWdhaW5zdCB2ZXJzaW9uIDIueCBvZiBsaWJ4bWwuIEhlcmUgaXMgYSBsaXN0IG9mIGNoYW5nZXMKK3RoYXQgSSBoYXZlIGNvbGxlY3RlZCwgdGhleSBtYXkgbm90IGJlIHN1ZmZpY2llbnQsIHNvIGluIGNhc2UgeW91IGZpbmQgb3RoZXIKK2NoYW5nZSB3aGljaCBhcmUgcmVxdWlyZWQsIDxhIGhyZWY9Im1haWx0bzpEYW5pZWwuz2VpbGxhcmR3My5vcmciPmRyb3AgbWUgYQorbWFpbDwvYT46PC9wPgorPG9sPgorICA8bGk+VGhlIHBhY2thZ2UgbmFtZSBoYXZlIGNoYW5nZWQgZnJvbSBsaWJ4bWwgdG8gbGlieG1sMiwgdGhlIGxpYnJhcnkgbmFtZQorICAgIGlzIG5vdyAtbHhtbDIgLiBUaGVyZSBpcyBhIG5ldyB4bWwyLWNvbmZpZyBzY3JpcHQgd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8KKyAgICBzZWxlY3QgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgbGlieG1sMjwvbGk+CisgIDxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKKyAgICA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IHNvIHMvY2hpbGRzL2NoaWxkcmVuL2cgc2hvdWxkIGJlICBhcHBsaWVkCisgICAgKHByb2JhYmxpbGl0eSBvZiBoYXZpbmcgImNoaWxkcyIgYW55d2VyZSBlbHNlIGlzIGNsb3NlIHRvIDArPC9saT4KKyAgPGxpPlRoZSBkb2N1bWVudCBkb24ndCBoYXZlIGFueW1vcmUgYSA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZWxlbWVudCBpdCBoYXMKKyAgICBiZWVuIHJlcGxhY2VkIGJ5IDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gYW5kIHVzdWFsbHkgeW91IHdpbGwgZ2V0IGEKKyAgICBsaXN0IG9mIGVsZW1lbnQgaGVyZS4gRm9yIGV4YW1wbGUgYSBEdGQgZWxlbWVudCBmb3IgdGhlIGludGVybmFsIHN1YnNldAorICAgIGFuZCBpdCdzIGRlY2xhcmF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGF0IGxpc3QsIGFzIHdlbGwgYXMgcHJvY2Vzc2luZworICAgIGluc3RydWN0aW9ucyBvciBjb21tZW50cyBmb3VuZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGRvY3VtZW50IHJvb3QgZWxlbWVudC4KKyAgICBVc2UgPHN0cm9uZz54bWxEb2NHZXRSb290RWxlbWVudChkb2MpPC9zdHJvbmc+IHRvIGdldCB0aGUgcm9vdCBlbGVtZW50IG9mCisgICAgYSBkb2N1bWVudC4gQWx0ZXJuYXRpdmVseSBpZiB5b3UgYXJlIHN1cmUgdG8gbm90IHJlZmVyZW5jZSBEdGRzIG5vciBoYXZlCisgICAgUElzIG9yIGNvbW1lbnRzIGJlZm9yZSBvciBhZnRlciB0aGUgcm9vdCBlbGVtZW50CisgICAgcy8tJmd0O3Jvb3QvLSZndDtjaGlsZHJlbi9nIHdpbGwgcHJvYmFibHkgZG8gaXQuPC9saT4KKyAgPGxpPlRoZSB3aGl0ZSBzcGFjZSBpc3N1ZSwgdGhpcyBvbmUgaXMgbW9yZSBjb21wbGV4LCB1bmxlc3Mgc3BlY2lhbCBjYXNlIG9mCisgICAgdmFsaWRhdGluZyBwYXJzaW5nLCB0aGUgbGluZSBicmVha3MgYW5kIHNwYWNlcyB1c3VhbGx5IHVzZWQgZm9yIGluZGVudGluZworICAgIGFuZCBmb3JtYXR0aW5nIHRoZSBkb2N1bWVudCBjb250ZW50IGJlY29tZXMgc2lnbmlmaWNhbnQuIFNvIHRoZXkgYXJlCisgICAgcmVwb3J0ZWQgYnkgU0FYIGFuZCBpZiB5b3VyIHVzaW5nIHRoZSBET00gdHJlZSwgY29ycmVzcG9uZGluZyBub2RlcyBhcmUKKyAgICBnZW5lcmF0ZWQuIFRvbyBhcHByb2FjaCBjYW4gYmUgdGFrZW46CisgICAgPG9sPgorICAgICAgPGxpPmxhenkgb25lLCB1c2UgdGhlIGNvbXBhdGliaWxpdHkgY2FsbAorICAgICAgICA8c3Ryb25nPnhtbEtlZXBCbGFua3NEZWZhdWx0KDApPC9zdHJvbmc+IGJ1dCBiZSBhd2FyZSB0aGF0IHlvdSBhcmUKKyAgICAgICAgcmVseWluZyBvbiBhIHNwZWNpYWwgKGFuZCBwb3NzaWJseSBicm9rZW4pIHNldCBvZiBoZXVyaXN0aWNzIG9mCisgICAgICAgIGxpYnhtbCB0byBkZXRlY3QgaWdub3JhYmxlIGJsYW5rcy4gRG9uJ3QgY29tcGxhaW4gaWYgaXQgYnJlYWtzIG9yCisgICAgICAgIG1ha2UgeW91ciBhcHBsaWNhdGlvbiBub3QgMTAwJSBjbGVhbiB3LnIudC4gdG8gaXQncyBpbnB1dC48L2xpPgorICAgICAgPGxpPnRoZSBSaWdodCBXYXk6IGNoYW5nZSB5b3UgY29kZSB0byBhY2NlcHQgcG9zc2libHkgdW5zaWduaWZpY2FudAorICAgICAgICBibGFua3MgY2hhcmFjdGVycywgb3IgaGF2ZSB5b3VyIHRyZWUgcG9wdWxhdGVkIHdpdGggd2VpcmQgYmxhbmsgdGV4dAorICAgICAgICBub2Rlcy4gWW91IGNhbiBzcG90IHRoZW0gdXNpbmcgdGhlIGNvbW9kaXR5IGZ1bmN0aW9uCisgICAgICAgIDxzdHJvbmc+eG1sSXNCbGFua05vZGUobm9kZSk8L3N0cm9uZz4gcmV0dXJuaW5nIDEgZm9yIHN1Y2ggYmxhbmsKKyAgICAgICAgbm9kZXMuPC9saT4KKyAgICA8L29sPgorICAgIDxwPk5vdGUgYWxzbyB0aGF0IHdpdGggdGhlIG5ldyBkZWZhdWx0IHRoZSBvdXRwdXQgZnVuY3Rpb25zIGRvbid0IGFkZCBhbnkKKyAgICBleHRyYSBpbmRlbnRhdGlvbiB3aGVuIHNhdmluZyBhIHRyZWUgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByb3VuZCB0cmlwCisgICAgKHJlYWQgYW5kIHNhdmUpIHdpdGhvdXQgaW5mbGF0aW5nIHRoZSBkb2N1bWVudCB3aXRoIGV4dHJhIGZvcm1hdHRpbmcKKyAgICBjaGFycy48L3A+CisgIDwvbGk+CisgIDxsaT5UaGUgaW5jbHVkZSBwYXRoIGhhcyBjaGFuZ2VkIHRvICRwcmVmaXgvbGlieG1sLyBhbmQgdGhlIGluY2x1ZGVzCisgICAgdGhlbXNlbHZlcyB1c2VzIHRoaXMgbmV3IHByZWZpeCBpbiBpbmNsdWRlcyBpbnN0cnVjdGlvbnMuLi4gSWYgeW91IGFyZQorICAgIHVzaW5nIChhcyBleHBlY3RlZCkgdGhlCisgICAgPHByZT54bWwyLWNvbmZpZyAtLWNmbGFnczwvcHJlPgorICAgIDxwPm91dHB1dCB0byBnZW5lcmF0ZSB5b3UgY29tcGlsZSBjb21tYW5kcyB0aGlzIHdpbGwgcHJvYmFibHkgd29yayBvdXQgb2YKKyAgICB0aGUgYm94PC9wPgorICA8L2xpPgorICA8bGk+eG1sRGV0ZWN0Q2hhckVuY29kaW5nIHRha2VzIGFuIGV4dHJhIGFyZ3VtZW50IGluZGljYXRpbmcgdGhlIGxlbmdodCBpbgorICAgIGJ5dGUgb2YgdGhlIGhlYWQgb2YgdGhlIGRvY3VtZW50IGF2YWlsYWJsZSBmb3IgY2hhcmFjdGVyIGRldGVjdGlvbi48L2xpPgorPC9vbD4KIAotPHA+VGhlIHZhbGlkYXRpb24gaXMgbm90IGNvbXBsZXRlbHkgZmluaXNoZWQgYnV0IGluIGEgKHZlcnkgSU1ITykgdXNhYmxlCi1zdGF0ZS4gVW50aWwgYSByZWFsIHZhbGlkYXRpb24gaW50ZXJmYWNlIGlzIGRlZmluZWQgdGhlIHdheSB0byBkbyBpdCBpcyB0bwotZGVmaW5lIGFuZCBzZXQgdGhlIDxzdHJvbmc+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlPC9zdHJvbmc+Ci1leHRlcm5hbCB2YXJpYWJsZSB0byAxLCB0aGlzIHdpbGwgb2YgY291cnNlIGJlIGNoYW5nZWQgYXQgc29tZSBwb2ludDo8L3A+Cis8aDM+RW5zdXJpbmcgYm90aCBsaWJ4bWwtMS54IGFuZCBsaWJ4bWwtMi54IGNvbXBhdGliaWxpdHk8L2gzPgogCi08cD5leHRlcm4gaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTs8L3A+Cis8cD5Ud28gbmV3IHZlcnNpb24gb2YgbGlieG1sICgxLjguMTEpIGFuZCBsaWJ4bWwyICgyLjMuNCkgaGF2ZSBiZWVuIHJlbGVhc2VkCit0byBhbGxvdyBzbW90aCB1cGdyYWRlIG9mIGV4aXN0aW5nIGxpYnhtbCB2MWNvZGUgd2hpbGUgcmV0YWluaW5nCitjb21wYXRpYmlsaXR5LiBUaGV5IG9mZmVycyB0aGUgZm9sbG93aW5nOjwvcD4KKzxvbD4KKyAgPGxpPnNpbWlsYXIgaW5jbHVkZSBuYW1pbmcsIG9uZSBzaG91bGQgdXNlCisgICAgPHN0cm9uZz4jaW5jbHVkZSZsdDtsaWJ4bWwvLi4uJmd0Ozwvc3Ryb25nPiBpbiBib3RoIGNhc2VzLjwvbGk+CisgIDxsaT5zaW1pbGFyIGlkZW50aWZpZXJzIGRlZmluZWQgdmlhIG1hY3JvcyBmb3IgdGhlIGNoaWxkIGFuZCByb290IGZpZWxkczoKKyAgICByZXNwZWN0aXZlbHkgPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz4gYW5kCisgICAgPHN0cm9uZz54bWxSb290Tm9kZTwvc3Ryb25nPjwvbGk+CisgIDxsaT5hIG5ldyBtYWNybyA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gd2hpY2ggc2hvdWxkIGJlCisgICAgaW5zZXJ0ZWQgb25jZSBpbiB0aGUgY2xpZW50IGNvZGU8L2xpPgorPC9vbD4KIAotPHA+Li4uPC9wPgorPHA+U28gdGhlIHJvYWRtYXAgdG8gdXBncmFkZSB5b3VyIGV4aXN0aW5nIGxpYnhtbCBhcHBsaWNhdGlvbnMgaXMgdGhlCitmb2xsb3dpbmc6PC9wPgorPG9sPgorICA8bGk+aW5zdGFsbCB0aGUgIGxpYnhtbC0xLjguOCAoYW5kIGxpYnhtbC1kZXZlbC0xLjguOCkgcGFja2FnZXM8L2xpPgorICA8bGk+ZmluZCBhbGwgb2NjdXJlbmNlcyB3aGVyZSB0aGUgeG1sRG9jIDxzdHJvbmc+cm9vdDwvc3Ryb25nPiBmaWVsZCBpcworICAgIHVzZWQgYW5kIGNoYW5nZSBpdCB0byA8c3Ryb25nPnhtbFJvb3ROb2RlPC9zdHJvbmc+PC9saT4KKyAgPGxpPnNpbWlsYXJ5IGZpbmQgYWxsIG9jY3VyZW5jZXMgd2hlcmUgdGhlIHhtbE5vZGUgPHN0cm9uZz5jaGlsZHM8L3N0cm9uZz4KKyAgICBmaWVsZCBpcyB1c2VkIGFuZCBjaGFuZ2UgaXQgdG8gPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz48L2xpPgorICA8bGk+YWRkIGEgPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IG1hY3JvIHNvbWV3aGVyZSBpbiB5b3VyCisgICAgPHN0cm9uZz5tYWluKCk8L3N0cm9uZz4gb3IgaW4gdGhlIGxpYnJhcnkgaW5pdCBlbnRyeSBwb2ludDwvbGk+CisgIDxsaT5SZWNvbXBpbGUsIGNoZWNrIGNvbXBhdGliaWxpdHksIGl0IHNob3VsZCBzdGlsbCB3b3JrPC9saT4KKyAgPGxpPkNoYW5nZSB5b3VyIGNvbmZpZ3VyZSBzY3JpcHQgdG8gbG9vayBmaXJzdCBmb3IgeG1sMi1jb25maWcgYW5kIGZhbGxiYWNrCisgICAgdXNpbmcgeG1sLWNvbmZpZyAuIFVzZSB0aGUgLS1jZmxhZ3MgYW5kIC0tbGlicyBvdXB0dXQgb2YgdGhlIGNvbW1hbmQgYXMKKyAgICB0aGUgSW5jbHVkZSBhbmQgTGlua2luZyBwYXJhbWV0ZXJzIG5lZWRlZCB0byB1c2UgbGlieG1sLjwvbGk+CisgIDxsaT5pbnN0YWxsIGxpYnhtbDItMi4zLnggYW5kICBsaWJ4bWwyLWRldmVsLTIuMy54IChsaWJ4bWwtMS44LnkgYW5kCisgICAgbGlieG1sLWRldmVsLTEuOC55IGNhbiBiZSBrZXB0IHNpbXVsdGFuZW91c2x5KTwvbGk+CisgIDxsaT5yZW1vdmUgeW91ciBjb25maWcuY2FjaGUsIHJlbGF1bmNoIHlvdXIgY29uZmlndXJhdGlvbiBtZWNoYW5pc20sIGFuZAorICAgIHJlY29tcGlsZSwgaWYgc3RlcHMgMiBhbmQgMyB3ZXJlIGRvbmUgcmlnaHQgaXQgc2hvdWxkIGNvbXBpbGUgYXMtaXM8L2xpPgorICA8bGk+VGVzdCB0aGF0IHlvdXIgYXBwbGljYXRpb24gaXMgc3RpbGwgcnVubmluZyBjb3JyZWN0bHksIGlmIG5vdCB0aGlzIG1heQorICAgIGJlIGR1ZSB0byBleHRyYSBlbXB0eSBub2RlcyBkdWUgdG8gZm9ybWF0aW5nIHNwYWNlcyBiZWluZyBrZXB0IGluIGxpYnhtbDIKKyAgICBjb250cmFyeSB0byBsaWJ4bWwxLCBpbiB0aGF0IGNhc2UgaW5zZXJ0IHhtbEtlZXBCbGFua3NEZWZhdWx0KDEpIGluIHlvdXIKKyAgICBjb2RlIGJlZm9yZSBjYWxsaW5nIHRoZSBwYXJzZXIgKG5leHQgdG8KKyAgICA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gaXMgYSBmaW5lIHBsYWNlKS48L2xpPgorPC9vbD4KIAotPHA+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlID0gMTs8L3A+Cis8cD5Gb2xsb3dpbmcgdGhvc2Ugc3RlcHMgc2hvdWxkIHdvcmsuIEl0IHdvcmtlZCBmb3Igc29tZSBvZiBteSBvd24gY29kZS48L3A+CiAKLTxwPjwvcD4KLQotPHA+VG8gaGFuZGxlIGV4dGVybmFsIGVudGl0aWVzLCB1c2UgdGhlIGZ1bmN0aW9uCi08c3Ryb25nPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9zdHJvbmc+KHhtbEV4dGVybmFsRW50aXR5TG9hZGVyIGYpOyB0bwotbGluayBpbiB5b3UgSFRUUC9GVFAvRW50aXRpZXMgZGF0YWJhc2UgbGlicmFyeSB0byB0aGUgc3RhbmRhcmQgbGlieG1sCi1jb3JlLjwvcD4KLQotPHA+QEBpbnRlcmZhY2VzQEA8L3A+Cis8cD5MZXQgbWUgcHV0IHNvbWUgZW1waGFzaXMgb24gdGhlIGZhY3QgdGhhdCB0aGVyZSBpcyBmYXIgbW9yZSBjaGFuZ2VzIGZyb20KK2xpYnhtbCAxLnggdG8gMi54IHRoYW4gdGhlIG9uZXMgeW91IG1heSBoYXZlIHRvIHBhdGNoIGZvci4gVGhlIG92ZXJhbGwgY29kZQoraGFzIGJlZW4gY29uc2lkZXJhYmx5IGNsZWFuZWQgdXAgYW5kIHRoZSBjb25mb3JtYW5jZSB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24KK2hhcyBiZWVuIGRyYXN0aWNhbGx5IGltcHJvdmVkIHRvby4gRG9uJ3QgdGFrZSB0aG9zZSBjaGFuZ2VzIGFzIGFuIGV4Y3VzZSB0bworbm90IHVwZ3JhZGUsIGl0IG1heSBjb3N0IGEgbG90IG9uIHRoZSBsb25nIHRlcm0gLi4uPC9wPgogCiA8aDI+PGEgbmFtZT0iRE9NIj48L2E+PGEgbmFtZT0iUHJpbmNpcGxlcyI+RE9NIFByaW5jaXBsZXM8L2E+PC9oMj4KIApAQCAtMTY1OSw3ICszMTY1LDExIEBACiAKIDxoMj48YSBuYW1lPSJDb250cmlidXRpIj5Db250cmlidXRpb25zPC9hPjwvaDI+CiA8dWw+Ci0gIDxsaT48YSBocmVmPSJtYWlsdG86YXJpQGx1c2lzLm9yZyI+QXJpIEpvaG5zb248L2E+CisgIDxsaT5Cam9ybiBSZWVzZSwgV2lsbGlhbSBCcmFjayBhbmQgVGhvbWFzIEJyb3llciBoYXZlIHByb3ZpZGVkIGEgbnVtYmVyIG9mCisgICAgcGF0Y2hlcywgR2FyeSBQZW5uaW5ndG9uIHdvcmtlZCBvbiB0aGUgdmFsaWRhdGlvbiBBUEksIHRocmVhZGluZyBzdXBwb3J0CisgICAgYW5kIFNvbGFyaXMgcG9ydC48L2xpPgorICA8bGk+Sm9obiBGbGVjayBoZWxwcyBtYWludGFpbmluZyB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgbWFuIHBhZ2VzLjwvbGk+CisgIDxsaT48cD48YSBocmVmPSJtYWlsdG86YXJpQGx1c2lzLm9yZyI+QXJpIEpvaG5zb248L2E+PC9wPgogICAgICBwcm92aWRlcyBhICBDKysgd3JhcHBlciBmb3IgbGlieG1sOgogICAgIDxwPldlYnNpdGU6IDxhCiAgICAgaHJlZj0iaHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrLyI+aHR0cDovL2x1c2lzLm9yZy9+YXJpL3htbCsrLzwvYT48L3A+CkBAIC0xNjk4LDYgKzMyMDgsNiBAQAogCiA8cD48YSBocmVmPSJtYWlsdG86ZGFuaWVsQHZlaWxsYXJkLmNvbSI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KIAotPHA+JElkOiB4bWwuaHRtbCx2IDEuMTEzIDIwMDEvMTAvMTkgMTQ6NTA6NTcgdmVpbGxhcmQgRXhwICQ8L3A+Cis8cD4kSWQ6IHhtbC5odG1sLHYgMS4xMTQgMjAwMS8xMC8yNCAxMjozNTo1MiB2ZWlsbGFyZCBFeHAgJDwvcD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy94bWxkdGQuaHRtbCBiL2RvYy94bWxkdGQuaHRtbAppbmRleCA3NDc3ZDIzLi5jNGU2ZTEyIDEwMDY0NAotLS0gYS9kb2MveG1sZHRkLmh0bWwKKysrIGIvZG9jL3htbGR0ZC5odG1sCkBAIC0xLDIwNSArMSwyMjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KIDxodG1sPgogPGhlYWQ+Ci0gIDx0aXRsZT5MaWJ4bWwgSW5wdXQvT3V0cHV0IGhhbmRsaW5nPC90aXRsZT4KLSAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJhbWF5YSBWNC4xIj4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWwiPgorPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhLS0KK1REIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiA1cHQ7IG1hcmdpbi1sZWZ0OiAwcHQ7IG1hcmdpbi1yaWdodDogMHB0fQorSDEge2ZvbnQtc2l6ZTogMTZwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorLS0+PC9zdHlsZT4KKzx0aXRsZT5WYWxpZGF0aW9uICZhbXA7IERURHM8L3RpdGxlPgogPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxoMSBhbGlnbj0iY2VudGVyIj5MaWJ4bWwgRFREIHN1cHBvcnQ8L2gxPgotCi08cD5Mb2NhdGlvbjogPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy94bWxpby5odG1sIj5odHRwOi8veG1sc29mdC5vcmcveG1sZHRkLmh0bWw8L2E+PC9wPgotCi08cD5MaWJ4bWwgaG9tZSBwYWdlOiA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj5odHRwOi8veG1sc29mdC5vcmcvPC9hPjwvcD4KLQotPHA+TWFpbGluZy1saXN0IGFyY2hpdmU6ICA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLyI+aHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzwvYT48L3A+Ci0KLTxwPlZlcnNpb246ICRSZXZpc2lvbiQ8L3A+Ci0KKzxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiMwMDAwMDAiIHZsaW5rPSIjMDAwMDAwIj4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMTgwIj4KKzxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9InNtYWxsZm9vdG9ubHkuZ2lmIiBhbHQ9Ikdub21lIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIj48L2E+Cis8L3RkPgorPHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPgorPGgxPlRoZSBYTUwgQyBsaWJyYXJ5IGZvciBHbm9tZTwvaDE+Cis8aDI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3BhZ2VzLmVpZG9zbmV0LmNvLnVrL35nYXJ5cGVuL2xpYnhtbC8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPgogPHA+VGFibGUgb2YgQ29udGVudDo8L3A+CiA8b2w+Ci0gIDxsaT48YSBocmVmPSIjR2VuZXJhbCI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI2RlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjU2ltcGxlIj5TaW1wbGUgcnVsZXM8L2E+Ci0gICAgPG9sPgotICAgICAgPGxpPjxhIGhyZWY9IiNyZWZlcmVuY2UiPkhvdyB0byByZWZlcmVuY2UgYSBEVEQgZnJvbSBhIGRvY3VtZW50PC9hPjwvbGk+Ci0gICAgICA8bGk+PGEgaHJlZj0iI0RlY2xhcmluZyI+RGVjbGFyaW5nIGVsZW1lbnRzPC9hPjwvbGk+Ci0gICAgICA8bGk+PGEgaHJlZj0iI0RlY2xhcmluZzEiPkRlY2xhcmluZyBhdHRyaWJ1dGVzPC9hPjwvbGk+Ci0gICAgPC9vbD4KLSAgPC9saT4KLSAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjdmFsaWRhdGUiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI090aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjR2VuZXJhbDUiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjZGVmaW5pdGlvbiI+VGhlIGRlZmluaXRpb248L2E+PC9saT4KKzxsaT4KKzxhIGhyZWY9IiNTaW1wbGUiPlNpbXBsZSBydWxlczwvYT48b2w+Cis8bGk+PGEgaHJlZj0iI3JlZmVyZW5jZSI+SG93IHRvIHJlZmVyZW5jZSBhIERURCBmcm9tIGEKKyAgICAgICAgZG9jdW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjRGVjbGFyaW5nIj5EZWNsYXJpbmcgZWxlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjRGVjbGFyaW5nMSI+RGVjbGFyaW5nIGF0dHJpYnV0ZXM8L2E+PC9saT4KIDwvb2w+Ci0KLTxoMj48YSBuYW1lPSJHZW5lcmFsIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDI+Ci0KKzwvbGk+Cis8bGk+PGEgaHJlZj0iI1NvbWUiPlNvbWUgZXhhbXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjdmFsaWRhdGUiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvbGk+Cis8L29sPgorPGgzPjxhIG5hbWU9IkdlbmVyYWw1Ij5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+Cis8cD5XZWxsIHdoYXQgaXMgdmFsaWRhdGlvbiBhbmQgd2hhdCBpcyBhIERURCA/PC9wPgogPHA+RFREIGlzIHRoZSBhY3JvbnltIGZvciBEb2N1bWVudCBUeXBlIERlZmluaXRpb24uIFRoaXMgaXMgYSBkZXNjcmlwdGlvbiBvZgogdGhlIGNvbnRlbnQgZm9yIGEgZmFtaWxseSBvZiBYTUwgZmlsZXMuIFRoaXMgaXMgcGFydCBvZiB0aGUgWE1MIDEuMAogc3BlY2lmaWNhdGlvbiwgYW5kIGFsb3dzIHRvIGRlc2NyaWJlIGFuZCBjaGVjayB0aGF0IGEgZ2l2ZW4gZG9jdW1lbnQgaW5zdGFuY2UKIGNvbmZvcm1zIHRvIGEgc2V0IG9mIHJ1bGVzIGRldGFpbGluZyBpdHMgc3RydWN0dXJlIGFuZCBjb250ZW50LjwvcD4KLQotPGgyPjxhIG5hbWU9ImRlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvaDI+Ci0KLTxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj5XM0MgWE1MIFJlY29tbWVuZGF0aW9uPC9hPiAoPGEKLWhyZWY9Imh0dHA6Ly93d3cueG1sLmNvbS9heG1sL2F4bWwuaHRtbCI+VGltIEJyYXkncyBhbm5vdGF0ZWQgdmVyc2lvbiBvZgorPHA+VmFsaWRhdGlvbiBpcyB0aGUgcHJvY2VzcyBvZiBjaGVja2luZyBhIGRvY3VtZW50IGFnYWluc3QgYSBEVEQgKG1vcmUKK2dlbmVyYWxseSBhZ2FpbnN0IGEgc2V0IG9mIGNvbnN0cnVjdGlvbiBydWxlcykuPC9wPgorPHA+VGhlIHZhbGlkYXRpb24gcHJvY2VzcyBhbmQgYnVpbGRpbmcgRFREcyBhcmUgdGhlIHR3byBtb3N0IGRpZmZpY3VsdCBwYXJ0cworb2YgdGhlIFhNTCBsaWZlIGN5Y2xlLiBCcmllZmx5IGEgRFREIGRlZmluZXMgYWxsIHRoZSBwb3NzaWJsZXMgZWxlbWVudCB0byBiZQorZm91bmQgd2l0aGluIHlvdXIgZG9jdW1lbnQsIHdoYXQgaXMgdGhlIGZvcm1hbCBzaGFwZSBvZiB5b3VyIGRvY3VtZW50IHRyZWUKKyhieSBkZWZpbmluZyB0aGUgYWxsb3dlZCBjb250ZW50IG9mIGFuIGVsZW1lbnQsIGVpdGhlciB0ZXh0LCBhIHJlZ3VsYXIKK2V4cHJlc3Npb24gZm9yIHRoZSBhbGxvd2VkIGxpc3Qgb2YgY2hpbGRyZW4sIG9yIG1peGVkIGNvbnRlbnQgaS5lLiBib3RoIHRleHQKK2FuZCBjaGlsZHJlbikuIFRoZSBEVEQgYWxzbyBkZWZpbmVzIHRoZSBhbGxvd2VkIGF0dHJpYnV0ZXMgZm9yIGFsbCBlbGVtZW50cworYW5kIHRoZSB0eXBlcyBvZiB0aGUgYXR0cmlidXRlcy48L3A+Cis8aDM+PGEgbmFtZT0iZGVmaW5pdGlvbjEiPlRoZSBkZWZpbml0aW9uPC9hPjwvaDM+Cis8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+VzNDIFhNTCBSZWNvbW1lbmRhdGlvbjwvYT4gKDxhIGhyZWY9Imh0dHA6Ly93d3cueG1sLmNvbS9heG1sL2F4bWwuaHRtbCI+VGltIEJyYXkncyBhbm5vdGF0ZWQgdmVyc2lvbiBvZgogUmV2MTwvYT4pOjwvcD4KIDx1bD4KLSAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZWxlbWRlY2xzIj5EZWNsYXJpbmcKKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2VsZW1kZWNscyI+RGVjbGFyaW5nCiAgIGVsZW1lbnRzPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2F0dGRlY2xzIj5EZWNsYXJpbmcKKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2F0dGRlY2xzIj5EZWNsYXJpbmcKICAgYXR0cmlidXRlczwvYT48L2xpPgogPC91bD4KLQogPHA+KHVuZm9ydHVuYXRlbHkpIGFsbCB0aGlzIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBTR01MIHdvcmxkLCB0aGUgc3ludGF4IGlzCiBhbmNpZW50Li4uPC9wPgotCi08aDI+PGEgbmFtZT0iU2ltcGxlIj5TaW1wbGUgcnVsZXM8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9IlNpbXBsZTEiPlNpbXBsZSBydWxlczwvYT48L2gzPgogPHA+V3JpdGluZyBEVEQgY2FuIGJlIGRvbmUgaW4gbXVsdGlwbGUgd2F5cywgdGhlIHJ1bGVzIHRvIGJ1aWxkIHRoZW0gaWYgeW91CiBuZWVkIHNvbWV0aGluZyBmaXhlZCBvciBzb21ldGhpbmcgd2hpY2ggY2FuIGV2b2x2ZSBvdmVyIHRpbWUgY2FuIGJlIHJhZGljYWxseQogZGlmZmVyZW50LiBSZWFsbHkgY29tcGxleCBEVEQgbGlrZSBEb2Nib29rIG9uZXMgYXJlIGZsZXhpYmxlIGJ1dCBxdWl0ZSBoYXJkZXIKIHRvIGRlc2lnbi4gSSB3aWxsIGp1c3QgZm9jdXNlIG9uIERURHMgZm9yIGEgZm9ybWF0cyB3aXRoIGEgZml4ZWQgc2ltcGxlCiBzdHJ1Y3R1cmUuIEl0IGlzIGp1c3QgYSBzZXQgb2YgYmFzaWMgcnVsZXMsIGFuZCBkZWZpbml0ZWx5IG5vdCBleGhhdXN0aXZlIG5vcgogdXNlYWJsZSBmb3IgY29tcGxleCBEVEQgZGVzaWduLjwvcD4KLQotPGgzPjxhIG5hbWU9InJlZmVyZW5jZSI+SG93IHRvIHJlZmVyZW5jZSBhIERURCBmcm9tIGEgZG9jdW1lbnQ8L2E+OjwvaDM+Ci0KKzxoND4KKzxhIG5hbWU9InJlZmVyZW5jZTEiPkhvdyB0byByZWZlcmVuY2UgYSBEVEQgZnJvbSBhIGRvY3VtZW50PC9hPjo8L2g0PgogPHA+QXNzdW1pbmcgdGhlIHRvcCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCBpcyA8Y29kZT5zcGVjPC9jb2RlPiBhbmQgdGhlIGR0ZAotaXMgcGxhY2VkIGluIHRoZSBmaWxlIDxjb2RlPm15ZHRkPC9jb2RlPiBpbiB0aGUgc3ViZGlyZWN0b3J5IDxjb2RlPmR0ZHM8L2NvZGU+Ci1vZiB0aGUgZGlyZWN0b3J5IGZyb20gd2hlcmUgdGhlIGRvY3VtZW50IHdlcmUgbG9hZGVkOjwvcD4KLQotPHA+PGNvZGU+Jmx0OyFET0NUWVBFIHNwZWMgU1lTVEVNICJkdGRzL215ZHRkIiZndDs8L2NvZGU+PC9wPgotCitpcyBwbGFjZWQgaW4gdGhlIGZpbGUgPGNvZGU+bXlkdGQ8L2NvZGU+IGluIHRoZSBzdWJkaXJlY3RvcnkKKzxjb2RlPmR0ZHM8L2NvZGU+IG9mIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGVyZSB0aGUgZG9jdW1lbnQgd2VyZSBsb2FkZWQ6PC9wPgorPHA+PGNvZGU+Jmx0OyFET0NUWVBFIHNwZWMgU1lTVEVNICZxdW90O2R0ZHMvbXlkdGQmcXVvdDsmZ3Q7PC9jb2RlPjwvcD4KIDxwPk5vdGVzOjwvcD4KIDx1bD4KLSAgPGxpPnRoZSBzeXN0ZW0gc3RyaW5nIGlzIGFjdHVhbGx5IGFuIFVSSS1SZWZlcmVuY2UgKGFzIGRlZmluZWQgaW4gPGEKLSAgICBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+UkZDIDIzOTY8L2E+KSBzbyB5b3UgY2FuIHVzZSBhCis8bGk+dGhlIHN5c3RlbSBzdHJpbmcgaXMgYWN0dWFsbHkgYW4gVVJJLVJlZmVyZW5jZSAoYXMgZGVmaW5lZCBpbiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+UkZDIDIzOTY8L2E+KSBzbyB5b3UgY2FuIHVzZSBhCiAgICAgZnVsbCBVUkwgc3RyaW5nIGluZGljYXRpbmcgdGhlIGxvY2F0aW9uIG9mIHlvdXIgRFREIG9uIHRoZSBXZWIsIHRoaXMgaXMgYQogICAgIHJlYWxseSBnb29kIHRoaW5nIHRvIGRvIGlmIHlvdSB3YW50IG90aGVycyB0byB2YWxpZGF0ZSB5b3VyIGRvY3VtZW50PC9saT4KLSAgPGxpPml0IGlzIGFsc28gcG9zc2libGUgdG8gYXNzb2NpYXRlIGEgPGNvZGU+UFVCTElDPC9jb2RlPiBpZGVudGlmaWVyIChhCis8bGk+aXQgaXMgYWxzbyBwb3NzaWJsZSB0byBhc3NvY2lhdGUgYSA8Y29kZT5QVUJMSUM8L2NvZGU+IGlkZW50aWZpZXIgKGEKICAgICBtYWdpYyBzdHJpbmcpIHNvIHRoYXQgdGhlIERUZCBpcyBsb29rZWQgdXAgaW4gY2F0YWxvZ3Mgb24gdGhlIGNsaWVudCBzaWRlCiAgICAgd2l0aG91dCBoYXZpbmcgdG8gbG9jYXRlIGl0IG9uIHRoZSB3ZWI8L2xpPgotICA8bGk+YSBkdGQgY29udGFpbnMgYSBzZXQgb2YgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgZGVjbGFyYXRpb25zLCBidXQgdGhleQorPGxpPmEgZHRkIGNvbnRhaW5zIGEgc2V0IG9mIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGRlY2xhcmF0aW9ucywgYnV0IHRoZXkKICAgICBkb24ndCBkZWZpbmUgd2hhdCB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQgc2hvdWxkIGJlLiBUaGlzIGlzIGV4cGxpY2l0ZWx5CiAgICAgdG9sZCB0byB0aGUgcGFyc2VyL3ZhbGlkYXRvciBhcyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKICAgICA8Y29kZT5ET0NUWVBFPC9jb2RlPiBkZWNsYXJhdGlvbi48L2xpPgogPC91bD4KLQotPGgzPjxhIG5hbWU9IkRlY2xhcmluZyI+RGVjbGFyaW5nIGVsZW1lbnRzPC9hPjo8L2gzPgotCis8aDQ+Cis8YSBuYW1lPSJEZWNsYXJpbmcyIj5EZWNsYXJpbmcgZWxlbWVudHM8L2E+OjwvaDQ+CiA8cD5UaGUgZm9sbG93aW5nIGRlY2xhcmVzIGFuIGVsZW1lbnQgPGNvZGU+c3BlYzwvY29kZT46PC9wPgotCiA8cD48Y29kZT4mbHQ7IUVMRU1FTlQgc3BlYyAoZnJvbnQsIGJvZHksIGJhY2s/KSZndDs8L2NvZGU+PC9wPgotCiA8cD5pdCBhbHNvIGV4cHJlc3NlcyB0aGF0IHRoZSBzcGVjIGVsZW1lbnQgY29udGFpbnMgb25lIDxjb2RlPmZyb250PC9jb2RlPiwKLW9uZSA8Y29kZT5ib2R5PC9jb2RlPiBhbmQgb25lIG9wdGlvbm5hbCA8Y29kZT5iYWNrPC9jb2RlPiBjaGlsZHJlbiBlbGVtZW50cyBpbgotdGhpcyBvcmRlci4gVGhlIGRlY2xhcmF0aW9uIG9mIG9uZSBlbGVtZW50IG9mIHRoZSBzdHJ1Y3R1cmUgYW5kIGl0cyBjb250ZW50Ci1hcmUgZG9uZSBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gU2ltaWxhcnkgdGhlIGZvbGxvd2luZyBkZWNsYXJlcworb25lIDxjb2RlPmJvZHk8L2NvZGU+IGFuZCBvbmUgb3B0aW9ubmFsIDxjb2RlPmJhY2s8L2NvZGU+IGNoaWxkcmVuIGVsZW1lbnRzCitpbiB0aGlzIG9yZGVyLiBUaGUgZGVjbGFyYXRpb24gb2Ygb25lIGVsZW1lbnQgb2YgdGhlIHN0cnVjdHVyZSBhbmQgaXRzCitjb250ZW50IGFyZSBkb25lIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiBTaW1pbGFyeSB0aGUgZm9sbG93aW5nIGRlY2xhcmVzCiA8Y29kZT5kaXYxPC9jb2RlPiBlbGVtZW50czo8L3A+Ci0KIDxwPjxjb2RlPiZsdDshRUxFTUVOVCBkaXYxIChoZWFkLCAocCB8IGxpc3QgfCBub3RlKSosIGRpdjIqKSZndDs8L2NvZGU+PC9wPgotCiA8cD5tZWFucyBkaXYxIGNvbnRhaW5zIG9uZSA8Y29kZT5oZWFkPC9jb2RlPiB0aGVuIGEgc2VyaWVzIG9mIG9wdGlvbmFsCi08Y29kZT5wPC9jb2RlPiwgPGNvZGU+bGlzdDwvY29kZT5zIGFuZCA8Y29kZT5ub3RlPC9jb2RlPnMgYW5kIHRoZW4gYW4gb3B0aW9uYWwKLTxjb2RlPmRpdjI8L2NvZGU+LiBBbmQgbGFzdCBidXQgbm90IGxlYXN0IGFuIGVsZW1lbnQgY2FuIGNvbnRhaW4gdGV4dDo8L3A+Ci0KKzxjb2RlPnA8L2NvZGU+LCA8Y29kZT5saXN0PC9jb2RlPnMgYW5kIDxjb2RlPm5vdGU8L2NvZGU+cyBhbmQgdGhlbiBhbgorb3B0aW9uYWwgPGNvZGU+ZGl2MjwvY29kZT4uIEFuZCBsYXN0IGJ1dCBub3QgbGVhc3QgYW4gZWxlbWVudCBjYW4gY29udGFpbgordGV4dDo8L3A+CiA8cD48Y29kZT4mbHQ7IUVMRU1FTlQgYiAoI1BDREFUQSkmZ3Q7PC9jb2RlPjwvcD4KLQotPHA+PGNvZGU+YjwvY29kZT4gY29udGFpbnMgdGV4dCBvciBiZWluZyBvZiBtaXhlZCBjb250ZW50ICh0ZXh0IGFuZCBlbGVtZW50cworPHA+Cis8Y29kZT5iPC9jb2RlPiBjb250YWlucyB0ZXh0IG9yIGJlaW5nIG9mIG1peGVkIGNvbnRlbnQgKHRleHQgYW5kIGVsZW1lbnRzCiBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKTo8L3A+Ci0KIDxwPjxjb2RlPiZsdDshRUxFTUVOVCBwICgjUENEQVRBfGF8dWx8YnxpfGVtKSomZ3Q7PC9jb2RlPjwvcD4KLQotPHA+PGNvZGU+cCA8L2NvZGU+Y2FuIGNvbnRhaW4gdGV4dCBvciA8Y29kZT5hPC9jb2RlPiwgPGNvZGU+dWw8L2NvZGU+LAorPHA+Cis8Y29kZT5wIDwvY29kZT5jYW4gY29udGFpbiB0ZXh0IG9yIDxjb2RlPmE8L2NvZGU+LCA8Y29kZT51bDwvY29kZT4sCiA8Y29kZT5iPC9jb2RlPiwgPGNvZGU+aSA8L2NvZGU+b3IgPGNvZGU+ZW08L2NvZGU+IGVsZW1lbnRzIGluIG5vIHBhcnRpY3VsYXIKIG9yZGVyLjwvcD4KLQotPGgzPjxhIG5hbWU9IkRlY2xhcmluZzEiPkRlY2xhcmluZyBhdHRyaWJ1dGVzPC9hPjo8L2gzPgotCis8aDQ+Cis8YSBuYW1lPSJEZWNsYXJpbmcxIj5EZWNsYXJpbmcgYXR0cmlidXRlczwvYT46PC9oND4KIDxwPmFnYWluIHRoZSBhdHRyaWJ1dGVzIGRlY2xhcmF0aW9uIGluY2x1ZGVzIHRoZWlyIGNvbnRlbnQgZGVmaW5pdGlvbjo8L3A+Ci0KIDxwPjxjb2RlPiZsdDshQVRUTElTVCB0ZXJtZGVmIG5hbWUgQ0RBVEEgI0lNUExJRUQmZ3Q7PC9jb2RlPjwvcD4KLQogPHA+bWVhbnMgdGhhdCB0aGUgZWxlbWVudCA8Y29kZT50ZXJtZGVmPC9jb2RlPiBjYW4gaGF2ZSBhIDxjb2RlPm5hbWU8L2NvZGU+CiBhdHRyaWJ1dGUgY29udGFpbmluZyB0ZXh0ICg8Y29kZT5DREFUQTwvY29kZT4pIGFuZCB3aGljaCBpcyBvcHRpb25uYWwKICg8Y29kZT4jSU1QTElFRDwvY29kZT4pLiBUaGUgYXR0cmlidXRlIHZhbHVlIGNhbiBhbHNvIGJlIGRlZmluZWQgd2l0aGluIGEKIHNldDo8L3A+Ci0KIDxwPjxjb2RlPiZsdDshQVRUTElTVCBsaXN0IHR5cGUgKGJ1bGxldHN8b3JkZXJlZHxnbG9zc2FyeSkKLSJvcmRlcmVkIiZndDs8L2NvZGU+PC9wPgotCismcXVvdDtvcmRlcmVkJnF1b3Q7Jmd0OzwvY29kZT48L3A+CiA8cD5tZWFucyA8Y29kZT5saXN0PC9jb2RlPiBlbGVtZW50IGhhdmUgYSA8Y29kZT50eXBlPC9jb2RlPiBhdHRyaWJ1dGUgd2l0aCAzCi1hbGxvd2VkIHZhbHVlcyAiYnVsbGV0cyIsICJvcmRlcmVkIiBvciAiZ2xvc3NhcnkiIGFuZCB3aGljaCBkZWZhdWx0IHRvCi0ib3JkZXJlZCIgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZXhwbGljaXRlbHkgc3BlY2lmaWVkLjwvcD4KLQorYWxsb3dlZCB2YWx1ZXMgJnF1b3Q7YnVsbGV0cyZxdW90OywgJnF1b3Q7b3JkZXJlZCZxdW90OyBvciAmcXVvdDtnbG9zc2FyeSZxdW90OyBhbmQgd2hpY2ggZGVmYXVsdCB0bworJnF1b3Q7b3JkZXJlZCZxdW90OyBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBleHBsaWNpdGVseSBzcGVjaWZpZWQuPC9wPgogPHA+VGhlIGNvbnRlbnQgdHlwZSBvZiBhbiBhdHRyaWJ1dGUgY2FuIGJlIHRleHQgKDxjb2RlPkNEQVRBPC9jb2RlPiksCiBhbmNob3IvcmVmZXJlbmNlL3JlZmVyZW5jZXMKICg8Y29kZT5JRDwvY29kZT4vPGNvZGU+SURSRUY8L2NvZGU+Lzxjb2RlPklEUkVGUzwvY29kZT4pLCBlbnRpdHkoaWVzKQogKDxjb2RlPkVOVElUWTwvY29kZT4vPGNvZGU+RU5USVRJRVM8L2NvZGU+KSBvciBuYW1lKHMpCiAoPGNvZGU+Tk1UT0tFTjwvY29kZT4vPGNvZGU+Tk1UT0tFTlM8L2NvZGU+KS4gVGhlIGZvbGxvd2luZyBkZWZpbmVzIHRoYXQgYQotPGNvZGU+Y2hhcHRlcjwvY29kZT4gZWxlbWVudCBjYW4gaGF2ZSBhbiBvcHRpb25hbCA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlIG9mCi10eXBlIDxjb2RlPklEPC9jb2RlPiwgdXNhYmxlIGZvciByZWZlcmVuY2UgZnJvbSBhdHRyaWJ1dGUgb2YgdHlwZSBJRFJFRjo8L3A+Ci0KKzxjb2RlPmNoYXB0ZXI8L2NvZGU+IGVsZW1lbnQgY2FuIGhhdmUgYW4gb3B0aW9uYWwgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZQorb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4sIHVzYWJsZSBmb3IgcmVmZXJlbmNlIGZyb20gYXR0cmlidXRlIG9mIHR5cGUKK0lEUkVGOjwvcD4KIDxwPjxjb2RlPiZsdDshQVRUTElTVCBjaGFwdGVyIGlkIElEICNJTVBMSUVEJmd0OzwvY29kZT48L3A+Ci0KIDxwPlRoZSBsYXN0IHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNhbiBiZSA8Y29kZT4jUkVRVUlSRUQKIDwvY29kZT5tZWFuaW5nIHRoYXQgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgZ2l2ZW4sIDxjb2RlPiNJTVBMSUVEPC9jb2RlPgogbWVhbmluZyB0aGF0IGl0IGlzIG9wdGlvbmFsLCBvciB0aGUgZGVmYXVsdCB2YWx1ZSAocG9zc2libHkgcHJlZml4ZWQgYnkKIDxjb2RlPiNGSVhFRDwvY29kZT4gaWYgaXQgaXMgdGhlIG9ubHkgYWxsb3dlZCkuPC9wPgotCiA8cD5Ob3Rlczo8L3A+Ci08dWw+Ci0gIDxsaT51c3VhbGx5IHRoZSBhdHRyaWJ1dGVzIHBlcnRhaW5pbmcgdG8gYSBnaXZlbiBlbGVtZW50IGFyZSBkZWNsYXJlZCBpbiBhCis8dWw+PGxpPnVzdWFsbHkgdGhlIGF0dHJpYnV0ZXMgcGVydGFpbmluZyB0byBhIGdpdmVuIGVsZW1lbnQgYXJlIGRlY2xhcmVkIGluIGEKICAgICBzaW5nbGUgZXhwcmVzc2lvbiwgYnV0IGl0IGlzIGp1c3QgYSBjb252ZW50aW9uIGFkb3B0ZWQgYnkgYSBsb3Qgb2YgRFRECiAgICAgd3JpdGVyczoKICAgICA8cHJlPiZsdDshQVRUTElTVCB0ZXJtZGVmCiAgICAgICAgICAgaWQgICAgICBJRCAgICAgICNSRVFVSVJFRAogICAgICAgICAgIG5hbWUgICAgQ0RBVEEgICAjSU1QTElFRCZndDs8L3ByZT4KLSAgICA8cD5UaGUgcHJldmlvdXMgY29uc3RydWN0IGRlZmluZXMgYm90aCA8Y29kZT5pZDwvY29kZT4gYW5kCi0gICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlcyBmb3IgdGhlIGVsZW1lbnQgPGNvZGU+dGVybWRlZjwvY29kZT48L3A+Ci0gIDwvbGk+Ci08L3VsPgotCi08aDI+PGEgbmFtZT0iU29tZSI+U29tZSBleGFtcGxlczwvYT48L2gyPgotCis8cD5UaGUgcHJldmlvdXMgY29uc3RydWN0IGRlZmluZXMgYm90aCA8Y29kZT5pZDwvY29kZT4gYW5kCisgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlcyBmb3IgdGhlIGVsZW1lbnQgPGNvZGU+dGVybWRlZjwvY29kZT4KKzwvcD4KKzwvbGk+PC91bD4KKzxoMz48YSBuYW1lPSJTb21lMSI+U29tZSBleGFtcGxlczwvYT48L2gzPgogPHA+VGhlIGRpcmVjdG9yeSA8Y29kZT50ZXN0L3ZhbGlkL2R0ZHMvPC9jb2RlPiBpbiB0aGUgbGlieG1sIGRpc3RyaWJ1dGlvbgogY29udGFpbnMgc29tZSBjb21wbGV4IERURCBleGFtcGxlcy4gVGhlICA8Y29kZT50ZXN0L3ZhbGlkL2RpYS54bWw8L2NvZGU+Ci1leGFtcGxlIHNob3dzIGFuIFhNTCBmaWxlIHdoZXJlIHRoZSBzaW1wbGUgRFREIGlzIGRpcmVjdGx5IGluY2x1ZGVkIHdpdGhpbiB0aGUKLWRvY3VtZW50LjwvcD4KLQotPGgyPjxhIG5hbWU9InZhbGlkYXRlIj5Ib3cgdG8gdmFsaWRhdGU8L2E+PC9oMj4KLQorZXhhbXBsZSBzaG93cyBhbiBYTUwgZmlsZSB3aGVyZSB0aGUgc2ltcGxlIERURCBpcyBkaXJlY3RseSBpbmNsdWRlZCB3aXRoaW4KK3RoZSBkb2N1bWVudC48L3A+Cis8aDM+PGEgbmFtZT0idmFsaWRhdGUxIj5Ib3cgdG8gdmFsaWRhdGU8L2E+PC9oMz4KIDxwPlRoZSBzaW1wbGVzdCBpcyB0byB1c2UgdGhlIHhtbGxpbnQgcHJvZ3JhbSBjb21taW5nIHdpdGggbGlieG1sLiBUaGUKIDxjb2RlPi0tdmFsaWQ8L2NvZGU+IG9wdGlvbiB0dXJuIG9uIHZhbGlkYXRpb24gb2YgdGhlIGZpbGVzIGdpdmVuIGFzIGlucHV0LAogZm9yIGV4YW1wbGUgdGhlIGZvbGxvd2luZyB2YWxpZGF0ZXMgYSBjb3B5IG9mIHRoZSBmaXJzdCByZXZpc2lvbiBvZiB0aGUgWE1MCiAxLjAgc3BlY2lmaWNhdGlvbjo8L3A+Ci0KIDxwPjxjb2RlPnhtbGxpbnQgLS12YWxpZCAtLW5vb3V0IHRlc3QvdmFsaWQvUkVDLXhtbC0xOTk4MDIxMC54bWw8L2NvZGU+PC9wPgotCiA8cD50aGUgLS0gbm9vdXQgaXMgdXNlZCB0byBub3Qgb3V0cHV0IHRoZSByZXN1bHRpbmcgdHJlZS48L3A+Ci0KIDxwPlRoZSA8Y29kZT4tLWR0ZHZhbGlkIGR0ZDwvY29kZT4gYWxsb3dzIHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudChzKSBhZ2FpbnN0CiBhIGdpdmVuIERURC48L3A+Ci0KLTxwPkxpYnhtbCBleHBvcnRzIGFuIEFQSSB0byBoYW5kbGUgRFREcyBhbmQgdmFsaWRhdGlvbiwgY2hlY2sgdGhlIDxhCi1ocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCI+YXNzb2NpYXRlZAorPHA+TGlieG1sIGV4cG9ydHMgYW4gQVBJIHRvIGhhbmRsZSBEVERzIGFuZCB2YWxpZGF0aW9uLCBjaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXZhbGlkLmh0bWwiPmFzc29jaWF0ZWQKIGRlc2NyaXB0aW9uPC9hPi48L3A+Ci0KLTxoMj48YSBuYW1lPSJPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJPdGhlcjEiPk90aGVyIHJlc291cmNlczwvYT48L2gzPgogPHA+RFREcyBhcmUgYXMgb2xkIGFzIFNHTUwuIFNvIHRoZXJlIG1heSBiZSBhIG51bWJlciBvZiBleGFtcGxlcyBvbi1saW5lLCBJCiB3aWxsIGp1c3QgbGlzdCBvbmUgZm9yIG5vdywgb3RoZXJzIHBvaW50ZXJzIHdlbGNvbWU6PC9wPgotPHVsPgotICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy54bWwxMDEuY29tOjgwODEvZHRkLyI+WE1MLTEwMSBEVEQ8L2E+PC9saT4KLTwvdWw+Ci0KLTxwPjwvcD4KLQorPHVsPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnhtbDEwMS5jb206ODA4MS9kdGQvIj5YTUwtMTAxIERURDwvYT48L2xpPjwvdWw+Cis8cD5JIHN1Z2dlc3QgbG9va2luZyBhdCB0aGUgZXhhbXBsZXMgZm91bmQgdW5kZXIgdGVzdC92YWxpZC9kdGQgYW5kIGFueSBvZgordGhlIGxhcmdlIG51bWJlciBvZiBib29rcyBhdmFpbGFibGUgb24gWE1MLiBUaGUgZGlhIGV4YW1wbGUgaW4gdGVzdC92YWxpZAorc2hvdWxkIGJlIGJvdGggc2ltcGxlIGFuZCBjb21wbGV0ZSBlbm91Z2ggdG8gYWxsb3cgeW91IHRvIGJ1aWxkIHlvdXIgb3duLjwvcD4KKzxwPgogPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci0KLTxwPiRJZCQ8L3A+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL3htbGlvLmh0bWwgYi9kb2MveG1saW8uaHRtbAppbmRleCAxZmFmM2Y5Li5mODdlOTAwIDEwMDY0NAotLS0gYS9kb2MveG1saW8uaHRtbAorKysgYi9kb2MveG1saW8uaHRtbApAQCAtMSwxMjQgKzEsMTU3IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iCi0gICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KIDxodG1sPgogPGhlYWQ+Ci0gIDx0aXRsZT5MaWJ4bWwgSW5wdXQvT3V0cHV0IGhhbmRsaW5nPC90aXRsZT4KLSAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJhbWF5YSBWMy4yLjEiPgotICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbCI+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCEtLQorVEQge2ZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDVwdDsgbWFyZ2luLWxlZnQ6IDBwdDsgbWFyZ2luLXJpZ2h0OiAwcHR9CitIMSB7Zm9udC1zaXplOiAxNnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1zaXplOiAxNHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9CistLT48L3N0eWxlPgorPHRpdGxlPkkvTyBJbnRlcmZhY2VzPC90aXRsZT4KIDwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08aDEgYWxpZ249ImNlbnRlciI+TGlieG1sIElucHV0L091dHB1dCBoYW5kbGluZzwvaDE+Ci0KLTxwPkxvY2F0aW9uOiA8YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3htbGlvLmh0bWwiPmh0dHA6Ly94bWxzb2Z0Lm9yZy94bWxpby5odG1sPC9hPjwvcD4KLQotPHA+TGlieG1sIGhvbWUgcGFnZTogPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+aHR0cDovL3htbHNvZnQub3JnLzwvYT48L3A+Ci0KLTxwPk1haWxpbmctbGlzdCBhcmNoaXZlOiAgPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8iPmh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy88L2E+PC9wPgotCi08cD5WZXJzaW9uOiAkUmV2aXNpb246IDEuNCAkPC9wPgotCis8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDAwMDAwIiB2bGluaz0iIzAwMDAwMCI+Cis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+Cis8dGQgd2lkdGg9IjE4MCI+Cis8YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJzbWFsbGZvb3Rvbmx5LmdpZiIgYWx0PSJHbm9tZSBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyI+PC9hPgorPC90ZD4KKzx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj4KKzxoMT5UaGUgWE1MIEMgbGlicmFyeSBmb3IgR25vbWU8L2gxPgorPGgyPkkvTyBJbnRlcmZhY2VzPC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3BhZ2VzLmVpZG9zbmV0LmNvLnVrL35nYXJ5cGVuL2xpYnhtbC8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPgogPHA+VGFibGUgb2YgQ29udGVudDo8L3A+CiA8b2w+Ci0gIDxsaT48YSBocmVmPSIjR2VuZXJhbCI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI2Jhc2ljIj5UaGUgYmFzaWMgYnVmZmVyIHR5cGU8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNJbnB1dCI+SW5wdXQgSS9PIGhhbmRsZXJzPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjT3V0cHV0Ij5PdXRwdXQgSS9PIGhhbmRsZXJzPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjZW50aXRpZXMiPlRoZSBlbnRpdGllcyBsb2FkZXI8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNFeGFtcGxlIj5FeGFtcGxlIG9mIGN1c3RvbWl6ZWQgSS9PPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI0dlbmVyYWwxIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2Jhc2ljIj5UaGUgYmFzaWMgYnVmZmVyIHR5cGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjSW5wdXQiPklucHV0IEkvTyBoYW5kbGVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNPdXRwdXQiPk91dHB1dCBJL08gaGFuZGxlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjZW50aXRpZXMiPlRoZSBlbnRpdGllcyBsb2FkZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjRXhhbXBsZTIiPkV4YW1wbGUgb2YgY3VzdG9taXplZCBJL088L2E+PC9saT4KIDwvb2w+Ci0KLTxoMj48YSBuYW1lPSJHZW5lcmFsIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDI+Ci0KLTxwPlRoZSBtb2R1bGUgPGNvZGU+PGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxpby5odG1sIj54bWxJTy5oPC9hPjwvY29kZT4KLXByb3ZpZGVzIHRoZSBpbnRlcmZhY2VzIHRvIHRoZSBsaWJ4bWwgSS9PIHN5c3RlbS4gVGhpcyBjb25zaXN0cyBvZiA0IG1haW4KLXBhcnRzOjwvcD4KKzxoMz48YSBuYW1lPSJHZW5lcmFsMSI+R2VuZXJhbCBvdmVydmlldzwvYT48L2gzPgorPHA+VGhlIG1vZHVsZSA8Y29kZT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1saW8uaHRtbCI+eG1sSU8uaDwvYT48L2NvZGU+IHByb3ZpZGVzCit0aGUgaW50ZXJmYWNlcyB0byB0aGUgbGlieG1sIEkvTyBzeXN0ZW0uIFRoaXMgY29uc2lzdHMgb2YgNCBtYWluIHBhcnRzOjwvcD4KIDx1bD4KLSAgPGxpPkVudGl0aWVzIGxvYWRlciwgdGhpcyBpcyBhIHJvdXRpbmUgd2hpY2ggdHJpZXMgdG8gZmV0Y2ggdGhlIGVudGl0aWVzCis8bGk+RW50aXRpZXMgbG9hZGVyLCB0aGlzIGlzIGEgcm91dGluZSB3aGljaCB0cmllcyB0byBmZXRjaCB0aGUgZW50aXRpZXMKICAgICAoZmlsZXMpIGJhc2VkIG9uIHRoZWlyIFBVQkxJQyBhbmQgU1lTVEVNIGlkZW50aWZpZXJzLiBUaGUgZGVmYXVsdCBsb2FkZXIKICAgICBkb24ndCBsb29rIGF0IHRoZSBwdWJsaWMgaWRlbnRpZmllciBzaW5jZSBsaWJ4bWwgZG8gbm90IG1haW50YWluIGEKICAgICBjYXRhbG9nLiBZb3UgY2FuIHJlZGVmaW5lIHlvdSBvd24gZW50aXR5IGxvYWRlciBieSB1c2luZwogICAgIDxjb2RlPnhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyKCk8L2NvZGU+IGFuZAotICAgIDxjb2RlPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCk8L2NvZGU+LiA8YSBocmVmPSIjZW50aXRpZXMiPkNoZWNrIHRoZQotICAgIGV4YW1wbGU8L2E+LjwvbGk+Ci0gIDxsaT5JbnB1dCBJL08gYnVmZmVycyB3aGljaCBhcmUgYSBjb21tb2RpdHkgc3RydWN0dXJlIHVzZWQgYnkgdGhlIHBhcnNlcihzKQorICAgIDxjb2RlPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCk8L2NvZGU+LiA8YSBocmVmPSIjZW50aXRpZXMiPkNoZWNrIHRoZSBleGFtcGxlPC9hPi48L2xpPgorPGxpPklucHV0IEkvTyBidWZmZXJzIHdoaWNoIGFyZSBhIGNvbW1vZGl0eSBzdHJ1Y3R1cmUgdXNlZCBieSB0aGUgcGFyc2VyKHMpCiAgICAgaW5wdXQgbGF5ZXIgdG8gaGFuZGxlIGZldGNoaW5nIHRoZSBpbmZvcm1hdGlvbnMgdG8gZmVlZCB0aGUgcGFyc2VyLiBUaGlzCi0gICAgcHJvdmlkZXMgYnVmZmVyaW5nIGFuZCBpcyBhbHNvIGEgcGxhY2Vob2xkZXIgd2hlcmUgdGhlIGVuY29kaW5nIGNvbnZlcnRvcnMKLSAgICB0byBVVEY4IGFyZSBwaWdneS1iYWNrZWQuPC9saT4KLSAgPGxpPk91dHB1dCBJL08gYnVmZmVycyBhcmUgc2ltaWxhciB0byB0aGUgSW5wdXQgb25lcyBhbmQgZnVsZmlsbCBzaW1pbGFyCisgICAgcHJvdmlkZXMgYnVmZmVyaW5nIGFuZCBpcyBhbHNvIGEgcGxhY2Vob2xkZXIgd2hlcmUgdGhlIGVuY29kaW5nCisgICAgY29udmVydG9ycyB0byBVVEY4IGFyZSBwaWdneS1iYWNrZWQuPC9saT4KKzxsaT5PdXRwdXQgSS9PIGJ1ZmZlcnMgYXJlIHNpbWlsYXIgdG8gdGhlIElucHV0IG9uZXMgYW5kIGZ1bGZpbGwgc2ltaWxhcgogICAgIHRhc2sgYnV0IHdoZW4gZ2VuZXJhdGluZyBhIHNlcmlhbGl6YXRpb24gZnJvbSBhIHRyZWUuPC9saT4KLSAgPGxpPkEgbWVjaGFuaXNtIHRvIHJlZ2lzdGVyIHNldHMgb2YgSS9PIGNhbGxiYWNrcyBhbmQgYXNzb2NpYXRlIHRoZW0gd2l0aAorPGxpPkEgbWVjaGFuaXNtIHRvIHJlZ2lzdGVyIHNldHMgb2YgSS9PIGNhbGxiYWNrcyBhbmQgYXNzb2NpYXRlIHRoZW0gd2l0aAogICAgIHNwZWNpZmljIG5hbWluZyBzY2hlbWVzIGxpa2UgdGhlIHByb3RvY29sIHBhcnQgb2YgdGhlIFVSSXMuCiAgICAgPHA+VGhpcyBhZmZlY3QgdGhlIGRlZmF1bHQgSS9PIG9wZXJhdGlvbnMgYW5kIGFsbG93cyB0byB1c2Ugc3BlY2lmaWMgSS9PCiAgICAgaGFuZGxlcnMgZm9yIGNlcnRhaW4gbmFtZXMuPC9wPgotICA8L2xpPgorPC9saT4KIDwvdWw+Ci0KIDxwPlRoZSBnZW5lcmFsIG1lY2hhbmlzbSB1c2VkIHdoZW4gbG9hZGluZyBodHRwOi8vcnBtZmluZC5uZXQveG1sLmh0bWwgZm9yCiBleGFtcGxlIGluIHRoZSBIVE1MIHBhcnNlciBpcyB0aGUgZm9sbG93aW5nOjwvcD4KIDxvbD4KLSAgPGxpPlRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIgY2FsbHMgPGNvZGU+eG1sTmV3SW5wdXRGcm9tRmlsZSgpPC9jb2RlPiB3aXRoCis8bGk+VGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciBjYWxscyA8Y29kZT54bWxOZXdJbnB1dEZyb21GaWxlKCk8L2NvZGU+IHdpdGgKICAgICB0aGUgcGFyc2luZyBjb250ZXh0IGFuZCB0aGUgVVJJIHN0cmluZy48L2xpPgotICA8bGk+dGhlIFVSSSBzdHJpbmcgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBleGlzdGluZyByZWdpc3RlcmVkIGhhbmRsZXJzIHVzaW5nCi0gICAgdGhlaXIgbWF0Y2goKSBjYWxsYmFjayBmdW5jdGlvbiwgaWYgdGhlIEhUVFAgbW9kdWxlIHdhcyBjb21waWxlZCBpbiwgaXQgaXMKLSAgICByZWdpc3RlcmVkIGFuZCBpdHMgbWF0Y2goKSBmdW5jdGlvbiB3aWxsIHN1Y2NlZWRzPC9saT4KLSAgPGxpPnRoZSBvcGVuKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMgY2FsbGVkIGFuZCBpZiBzdWNjZXNzZnVsIHdpbGwKKzxsaT50aGUgVVJJIHN0cmluZyBpcyBjaGVja2VkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHJlZ2lzdGVyZWQgaGFuZGxlcnMKKyAgICB1c2luZyB0aGVpciBtYXRjaCgpIGNhbGxiYWNrIGZ1bmN0aW9uLCBpZiB0aGUgSFRUUCBtb2R1bGUgd2FzIGNvbXBpbGVkCisgICAgaW4sIGl0IGlzIHJlZ2lzdGVyZWQgYW5kIGl0cyBtYXRjaCgpIGZ1bmN0aW9uIHdpbGwgc3VjY2VlZHM8L2xpPgorPGxpPnRoZSBvcGVuKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMgY2FsbGVkIGFuZCBpZiBzdWNjZXNzZnVsIHdpbGwKICAgICByZXR1cm4gYW4gSS9PIElucHV0IGJ1ZmZlcjwvbGk+Ci0gIDxsaT50aGUgcGFyc2VyIHdpbGwgdGhlIHN0YXJ0IHJlYWRpbmcgZnJvbSB0aGlzIGJ1ZmZlciBhbmQgcHJvZ3Jlc3NpdmVseQorPGxpPnRoZSBwYXJzZXIgd2lsbCB0aGUgc3RhcnQgcmVhZGluZyBmcm9tIHRoaXMgYnVmZmVyIGFuZCBwcm9ncmVzc2l2ZWx5CiAgICAgZmV0Y2ggaW5mb3JtYXRpb24gZnJvbSB0aGUgcmVzb3VyY2UsIGNhbGxpbmcgdGhlIHJlYWQoKSBmdW5jdGlvbiBvZiB0aGUKICAgICBoYW5kbGVyIHVudGlsIHRoZSByZXNvdXJjZSBpcyBleGhhdXN0ZWQ8L2xpPgotICA8bGk+aWYgYW4gZW5jb2RpbmcgY2hhbmdlIGlzIGRldGVjdGVkIGl0IHdpbGwgYmUgaW5zdGFsbGVkIG9uIHRoZSBpbnB1dAorPGxpPmlmIGFuIGVuY29kaW5nIGNoYW5nZSBpcyBkZXRlY3RlZCBpdCB3aWxsIGJlIGluc3RhbGxlZCBvbiB0aGUgaW5wdXQKICAgICBidWZmZXIsIHByb3ZpZGluZyBidWZmZXJpbmcgYW5kIGVmZmljaWVudCB1c2Ugb2YgdGhlIGNvbnZlcnNpb24KICAgcm91dGluZXM8L2xpPgotICA8bGk+b25jZSB0aGUgcGFyc2VyIGhhcyBmaW5pc2hlZCwgdGhlIGNsb3NlKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMKKzxsaT5vbmNlIHRoZSBwYXJzZXIgaGFzIGZpbmlzaGVkLCB0aGUgY2xvc2UoKSBmdW5jdGlvbiBvZiB0aGUgaGFuZGxlciBpcwogICAgIGNhbGxlZCBvbmNlIGFuZCB0aGUgSW5wdXQgYnVmZmVyIGFuZCBhc3NvY2llZCByZXNvdXJjZXMgYXJlCiAgIGRlYWxsb2NhdGVkLjwvbGk+CiA8L29sPgotCiA8cD5UaGUgdXNlciBkZWZpbmVkIGNhbGxiYWNrcyBhcmUgY2hlY2tlZCBmaXJzdCB0byBhbGxvdyBvdmVycmlkaW5nIG9mIHRoZQogZGVmYXVsdCBsaWJ4bWwgSS9PIHJvdXRpbmVzLjwvcD4KLQotPGgyPjxhIG5hbWU9ImJhc2ljIj5UaGUgYmFzaWMgYnVmZmVyIHR5cGU8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9ImJhc2ljIj5UaGUgYmFzaWMgYnVmZmVyIHR5cGU8L2E+PC9oMz4KIDxwPkFsbCB0aGUgYnVmZmVyIG1hbmlwdWxhdGlvbiBoYW5kbGluZyBpcyBkb25lIHVzaW5nIHRoZQotPGNvZGU+eG1sQnVmZmVyPC9jb2RlPiB0eXBlIGRlZmluZSBpbiA8Y29kZT48YQotaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCI+dHJlZS5oPC9hPiA8L2NvZGU+d2hpY2ggaXMKLWEgcmVzaXphYmxlIG1lbW9yeSBidWZmZXIuIFRoZSBidWZmZXIgYWxsb2NhdGlvbiBzdHJhdGVneSBjYW4gYmUgc2VsZWN0ZWQgdG8KLWJlIGVpdGhlciBiZXN0LWZpdCBvciB1c2UgYW4gZXhwb25lbnRpYWwgZG91Ymxpbmcgb25lIChDUFUgdnMuIG1lbW9yeSB1c2UKKzxjb2RlPnhtbEJ1ZmZlcjwvY29kZT4gdHlwZSBkZWZpbmUgaW4gPGNvZGU+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCI+dHJlZS5oPC9hPjwvY29kZT53aGljaCBpcyBhCityZXNpemFibGUgbWVtb3J5IGJ1ZmZlci4gVGhlIGJ1ZmZlciBhbGxvY2F0aW9uIHN0cmF0ZWd5IGNhbiBiZSBzZWxlY3RlZCB0byBiZQorZWl0aGVyIGJlc3QtZml0IG9yIHVzZSBhbiBleHBvbmVudGlhbCBkb3VibGluZyBvbmUgKENQVSB2cy4gbWVtb3J5IHVzZQogdHJhZGVvZmYpLiBUaGUgdmFsdWVzIGFyZSA8Y29kZT5YTUxfQlVGRkVSX0FMTE9DX0VYQUNUPC9jb2RlPiBhbmQKIDxjb2RlPlhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQ8L2NvZGU+LCBhbmQgY2FuIGJlIHNldCBpbmRpdmlkdWFsbHkgb3Igb24gYQogc3lzdGVtIHdpZGUgYmFzaXMgdXNpbmcgPGNvZGU+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSgpPC9jb2RlPi4gQSBudW1iZXIKIG9mIGZ1bmN0aW9ucyBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBidWZmZXJzIHdpdGggbmFtZXMgc3RhcnRpbmcgd2l0aCB0aGUKIDxjb2RlPnhtbEJ1ZmZlci4uLjwvY29kZT4gcHJlZml4LjwvcD4KLQotPGgyPjxhIG5hbWU9IklucHV0Ij5JbnB1dCBJL08gaGFuZGxlcnM8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9IklucHV0Ij5JbnB1dCBJL08gaGFuZGxlcnM8L2E+PC9oMz4KIDxwPkFuIElucHV0IEkvTyBoYW5kbGVyIGlzIGEgc2ltcGxlIHN0cnVjdHVyZQogPGNvZGU+eG1sUGFyc2VySW5wdXRCdWZmZXI8L2NvZGU+IGNvbnRhaW5pbmcgYSBjb250ZXh0IGFzc29jaWF0ZWQgdG8gdGhlCiByZXNvdXJjZSAoZmlsZSBkZXNjcmlwdG9yLCBvciBwb2ludGVyIHRvIGEgcHJvdG9jb2wgaGFuZGxlciksIHRoZSByZWFkKCkgYW5kCiBjbG9zZSgpIGNhbGxiYWNrcyB0byB1c2UgYW5kIGFuIHhtbEJ1ZmZlci4gQW5kIGV4dHJhIHhtbEJ1ZmZlciBhbmQgYSBjaGFyc2V0CiBlbmNvZGluZyBoYW5kbGVyIGFyZSBhbHNvIHByZXNlbnQgdG8gc3VwcG9ydCBjaGFyc2V0IGNvbnZlcnNpb24gd2hlbgogbmVlZGVkLjwvcD4KLQotPGgyPjxhIG5hbWU9Ik91dHB1dCI+T3V0cHV0IEkvTyBoYW5kbGVyczwvYT48L2gyPgotCis8aDM+PGEgbmFtZT0iT3V0cHV0Ij5PdXRwdXQgSS9PIGhhbmRsZXJzPC9hPjwvaDM+CiA8cD5BbiBPdXRwdXQgaGFuZGxlciA8Y29kZT54bWxPdXRwdXRCdWZmZXI8L2NvZGU+IGlzIGNvbXBsZXRlbHkgc2ltaWxhciB0byBhbgogSW5wdXQgb25lIGV4Y2VwdCB0aGUgY2FsbGJhY2tzIGFyZSB3cml0ZSgpIGFuZCBjbG9zZSgpLjwvcD4KLQotPGgyPjxhIG5hbWU9ImVudGl0aWVzIj5UaGUgZW50aXRpZXMgbG9hZGVyPC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJlbnRpdGllcyI+VGhlIGVudGl0aWVzIGxvYWRlcjwvYT48L2gzPgogPHA+VGhlIGVudGl0eSBsb2FkZXIgcmVzb2x2ZXMgcmVxdWVzdHMgZm9yIG5ldyBlbnRpdGllcyBhbmQgY3JlYXRlIGlucHV0cyBmb3IKLXRoZSBwYXJzZXIuIENyZWF0aW5nIGFuIGlucHV0IGZyb20gYSBmaWxlbmFtZSBvciBhbiBVUkkgc3RyaW5nIGlzIGRvbmUgdGhyb3VnaAotdGhlIHhtbE5ld0lucHV0RnJvbUZpbGUoKSByb3V0aW5lLiAgVGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciBkbyBub3QgaGFuZGxlCi10aGUgUFVCTElDIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGFuIGVudGl0eSAoaWYgYW55KS4gU28gaXQganVzdCBjYWxscwoteG1sTmV3SW5wdXRGcm9tRmlsZSgpIHdpdGggdGhlIFNZU1RFTSBpZGVudGlmaWVyICh3aGljaCBpcyBtYW5kYXRvcnkgaW4KK3RoZSBwYXJzZXIuIENyZWF0aW5nIGFuIGlucHV0IGZyb20gYSBmaWxlbmFtZSBvciBhbiBVUkkgc3RyaW5nIGlzIGRvbmUKK3Rocm91Z2ggdGhlIHhtbE5ld0lucHV0RnJvbUZpbGUoKSByb3V0aW5lLiAgVGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciBkbyBub3QKK2hhbmRsZSB0aGUgUFVCTElDIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGFuIGVudGl0eSAoaWYgYW55KS4gU28gaXQganVzdAorY2FsbHMgeG1sTmV3SW5wdXRGcm9tRmlsZSgpIHdpdGggdGhlIFNZU1RFTSBpZGVudGlmaWVyICh3aGljaCBpcyBtYW5kYXRvcnkgaW4KIFhNTCkuPC9wPgotCi08cD5JZiB5b3Ugd2FudCB0byBob29rIHVwIGEgY2F0YWxvZyBtZWNoYW5pc20gdGhlbiB5b3Ugc2ltcGx5IG5lZWQgdG8gb3ZlcnJpZGUKLXRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIsIGhlcmUgaXMgYW4gZXhhbXBsZTo8L3A+Cis8cD5JZiB5b3Ugd2FudCB0byBob29rIHVwIGEgY2F0YWxvZyBtZWNoYW5pc20gdGhlbiB5b3Ugc2ltcGx5IG5lZWQgdG8KK292ZXJyaWRlIHRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIsIGhlcmUgaXMgYW4gZXhhbXBsZTo8L3A+CiA8cHJlPiNpbmNsdWRlICZsdDtsaWJ4bWwveG1sSU8uaCZndDsKIAogeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIgZGVmYXVsdExvYWRlciA9IE5VTEw7CkBAIC0xNDksMTYgKzE4MiwxMyBAQAogCiAgICAgLi4uCiB9PC9wcmU+Ci0KLTxoMj48YSBuYW1lPSJFeGFtcGxlIj5FeGFtcGxlIG9mIGN1c3RvbWl6ZWQgSS9PPC9hPjwvaDI+Ci0KKzxoMz48YSBuYW1lPSJFeGFtcGxlMiI+RXhhbXBsZSBvZiBjdXN0b21pemVkIEkvTzwvYT48L2gzPgogPHA+VGhpcyBleGFtcGxlIGNvbWUgZnJvbSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvbWVzc2FnZXMvMDcwOC5odG1sIj5hCiByZWFsIHVzZSBjYXNlPC9hPiwgIHhtbERvY0R1bXAoKSBjbG9zZXMgdGhlIEZJTEUgKiBwYXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uCi1hbmQgdGhpcyB3YXMgYSBwcm9ibGVtLiBUaGUgPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNzExLmh0bWwiPnNvbHV0aW9uPC9hPiB3YXMgdG8gcmVkZWZpbmUgYQorYW5kIHRoaXMgd2FzIGEgcHJvYmxlbS4gVGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNzExLmh0bWwiPnNvbHV0aW9uPC9hPiB3YXMgdG8gcmVkZWZpbmUgYQogbmV3IG91dHB1dCBoYW5kbGVyIHdpdGggdGhlIGNsb3NpbmcgY2FsbCBkZWFjdGl2YXRlZDo8L3A+CiA8b2w+Ci0gIDxsaT5GaXJzdCBkZWZpbmUgYSBuZXcgSS9PIG91cHV0IGFsbG9jYXRvciB3aGVyZSB0aGUgb3V0cHV0IGRvbid0IGNsb3NlIHRoZQorPGxpPkZpcnN0IGRlZmluZSBhIG5ldyBJL08gb3VwdXQgYWxsb2NhdG9yIHdoZXJlIHRoZSBvdXRwdXQgZG9uJ3QgY2xvc2UgdGhlCiAgICAgZmlsZToKICAgICA8cHJlPnhtbE91dHB1dEJ1ZmZlclB0cgogeG1sT3V0cHV0QnVmZmVyQ3JlYXRlT3duKEZJTEUgKmZpbGUsIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlcikgewpAQCAtMTc3LDkgKzIwNywxMCBAQAogoKCgoHJldHVybihyZXQpOyA8YnI+CiAKIAorCiB9IDwvcHJlPgotICA8L2xpPgotICA8bGk+QW5kIHRoZW4gdXNlIGl0IHRvIHNhdmUgdGhlIGRvY3VtZW50OgorPC9saT4KKzxsaT5BbmQgdGhlbiB1c2UgaXQgdG8gc2F2ZSB0aGUgZG9jdW1lbnQ6CiAgICAgPHByZT5GSUxFICpmOwogeG1sT3V0cHV0QnVmZmVyUHRyIG91dHB1dDsKIHhtbERvY1B0ciBkb2M7CkBAIC0xOTEsMTEgKzIyMiwxMCBAQAogb3V0cHV0ID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlT3duKGYsIE5VTEwpOwogcmVzID0geG1sU2F2ZUZpbGVUbyhvdXRwdXQsIGRvYywgTlVMTCk7CiAgICAgPC9wcmU+Ci0gIDwvbGk+Cis8L2xpPgogPC9vbD4KLQogPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci0KLTxwPiRJZDogeG1saW8uaHRtbCx2IDEuNCAyMDAxLzAxLzI5IDA4OjIyOjEyIHZlaWxsYXJkIEV4cCAkPC9wPgorPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD4KKzwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy94bWxtZW0uaHRtbCBiL2RvYy94bWxtZW0uaHRtbAppbmRleCBlMTZlNjlhLi5mMGExNzk3IDEwMDY0NAotLS0gYS9kb2MveG1sbWVtLmh0bWwKKysrIGIvZG9jL3htbG1lbS5odG1sCkBAIC0xLDE2MCArMSwxOTcgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIKLSAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgogPGh0bWw+CiA8aGVhZD4KLSAgPHRpdGxlPkxpYnhtbCBtZW1vcnkgbWFuYWdlbWVudDwvdGl0bGU+Ci0gIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iYW1heWEgVjMuMiI+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KKzxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tCitURCB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogNXB0OyBtYXJnaW4tbGVmdDogMHB0OyBtYXJnaW4tcmlnaHQ6IDBwdH0KK0gxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LXNpemU6IDE0cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKy0tPjwvc3R5bGU+Cis8dGl0bGU+TWVtb3J5IE1hbmFnZW1lbnQ8L3RpdGxlPgogPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxoMSBhbGlnbj0iY2VudGVyIj5MaWJ4bWwgbWVtb3J5IG1hbmFnZW1lbnQ8L2gxPgotCi08cD5Mb2NhdGlvbjogPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy94bWxtZW0uaHRtbCI+aHR0cDovL3htbHNvZnQub3JnL3htbG1lbS5odG1sPC9hPjwvcD4KLQotPHA+TGlieG1sIGhvbWUgcGFnZTogPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+aHR0cDovL3htbHNvZnQub3JnLzwvYT48L3A+Ci0KLTxwPk1haWxpbmctbGlzdCBhcmNoaXZlOiAgPGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8iPmh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy88L2E+PC9wPgotCi08cD5WZXJzaW9uOiAkUmV2aXNpb24kPC9wPgotCis8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDAwMDAwIiB2bGluaz0iIzAwMDAwMCI+Cis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+Cis8dGQgd2lkdGg9IjE4MCI+Cis8YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJzbWFsbGZvb3Rvbmx5LmdpZiIgYWx0PSJHbm9tZSBMb2dvIj48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyI+PC9hPgorPC90ZD4KKzx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj4KKzxoMT5UaGUgWE1MIEMgbGlicmFyeSBmb3IgR25vbWU8L2gxPgorPGgyPk1lbW9yeSBNYW5hZ2VtZW50PC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgorPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9jcy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXdzLmh0bWwiPk5ld3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbCBhcmNoaXRlY3R1cmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMnB0Ij4KKzxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnVuaWJvLml0L35jYXNhcmluaS9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3BhZ2VzLmVpZG9zbmV0LmNvLnVrL35nYXJ5cGVuL2xpYnhtbC8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPgogPHA+VGFibGUgb2YgQ29udGVudDo8L3A+CiA8b2w+Ci0gIDxsaT48YSBocmVmPSIjR2VuZXJhbCI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgotICA8bGk+PGEgaHJlZj0iI3NldHRpbmciPlNldHRpbmcgbGlieG1sIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciBwYXJzaW5nPC9hPjwvbGk+Ci0gIDxsaT48YSBocmVmPSIjRGVidWdnaW5nIj5EZWJ1Z2dpbmcgcm91dGluZXM8L2E+PC9saT4KLSAgPGxpPjxhIGhyZWY9IiNHZW5lcmFsIj5HZW5lcmFsIG1lbW9yeSByZXF1aXJlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjR2VuZXJhbDMiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc2V0dGluZyI+U2V0dGluZyBsaWJ4bWwgc2V0IG9mIG1lbW9yeQorICByb3V0aW5lczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciBwYXJzaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI0RlYnVnZ2luZyI+RGVidWdnaW5nIHJvdXRpbmVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI0dlbmVyYWw0Ij5HZW5lcmFsIG1lbW9yeSByZXF1aXJlbWVudHM8L2E+PC9saT4KIDwvb2w+Ci0KLTxoMj48YSBuYW1lPSJHZW5lcmFsIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDI+Ci0KLTxwPlRoZSBtb2R1bGUgPGNvZGU+PGEKLWhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5Lmg8L2E+PC9jb2RlPgorPGgzPjxhIG5hbWU9IkdlbmVyYWwzIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+Cis8cD5UaGUgbW9kdWxlIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5Lmg8L2E+PC9jb2RlPgogcHJvdmlkZXMgdGhlIGludGVyZmFjZXMgdG8gdGhlIGxpYnhtbCBtZW1vcnkgc3lzdGVtOjwvcD4KIDx1bD4KLSAgPGxpPmxpYnhtbCBkb2VzIG5vdCB1c2UgdGhlIGxpYmMgbWVtb3J5IGFsbG9jYXRvciBkaXJlY3RseSBidXQgeG1sRnJlZSgpLAorPGxpPmxpYnhtbCBkb2VzIG5vdCB1c2UgdGhlIGxpYmMgbWVtb3J5IGFsbG9jYXRvciBkaXJlY3RseSBidXQgeG1sRnJlZSgpLAogICAgIHhtbE1hbGxvYygpIGFuZCB4bWxSZWFsbG9jKCk8L2xpPgotICA8bGk+dGhvc2Ugcm91dGluZXMgY2FuIGJlIHJlYWxsb2NhdGVkIHRvIGEgc3BlY2lmaWMgc2V0IG9mIHJvdXRpbmUsIGJ5Cis8bGk+dGhvc2Ugcm91dGluZXMgY2FuIGJlIHJlYWxsb2NhdGVkIHRvIGEgc3BlY2lmaWMgc2V0IG9mIHJvdXRpbmUsIGJ5CiAgICAgZGVmYXVsdCB0aGUgbGliYyBvbmVzIGkuZS4gZnJlZSgpLCBtYWxsb2MoKSBhbmQgcmVhbGxvYygpPC9saT4KLSAgPGxpPnRoZSB4bWxtZW1vcnkuYyBtb2R1bGUgaW5jbHVkZXMgYSBzZXQgb2YgZGVidWdnaW5nIHJvdXRpbmU8L2xpPgorPGxpPnRoZSB4bWxtZW1vcnkuYyBtb2R1bGUgaW5jbHVkZXMgYSBzZXQgb2YgZGVidWdnaW5nIHJvdXRpbmU8L2xpPgogPC91bD4KLQotPGgyPjxhIG5hbWU9InNldHRpbmciPlNldHRpbmcgbGlieG1sIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9InNldHRpbmciPlNldHRpbmcgbGlieG1sIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9oMz4KIDxwPkl0IGlzIHNvbWV0aW1lcyB1c2VmdWwgdG8gbm90IHVzZSB0aGUgZGVmYXVsdCBtZW1vcnkgYWxsb2NhdG9yLCBlaXRoZXIgZm9yCiBkZWJ1Z2dpbmcsIGFuYWx5c2lzIG9yIHRvIGltcGxlbWVudCBhIHNwZWNpZmljIGJlaGF2aW91ciBvbiBtZW1vcnkgbWFuYWdlbWVudAogKGxpa2Ugb24gZW1iZWRkZWQgc3lzdGVtcykuIFR3byBmdW5jdGlvbiBjYWxscyBhcmUgYXZhaWxhYmxlIHRvIGRvIHNvOjwvcD4KIDx1bD4KLSAgPGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWVtR2V0Ci0gICAgKCk8L2E+IHdoaWNoIHJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgZnVuY3Rpb25zIGluIHVzZSBieSB0aGUgcGFyc2VyPC9saT4KLSAgPGxpPjxhCi0gICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1TZXR1cCgpPC9hPgotICAgIHdoaWNoIGFsbG93IHRvIHNldCB1cCBhIG5ldyBzZXQgb2YgbWVtb3J5IGFsbG9jYXRpb24gZnVuY3Rpb25zPC9saT4KKzxsaT4KKzxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWVtR2V0ICgpPC9hPgorICAgICB3aGljaCByZXR1cm4gdGhlIGN1cnJlbnQgc2V0IG9mIGZ1bmN0aW9ucyBpbiB1c2UgYnkgdGhlIHBhcnNlcjwvbGk+Cis8bGk+Cis8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbVNldHVwKCk8L2E+CisgICAgIHdoaWNoIGFsbG93IHRvIHNldCB1cCBhIG5ldyBzZXQgb2YgbWVtb3J5IGFsbG9jYXRpb24gZnVuY3Rpb25zPC9saT4KIDwvdWw+Ci0KIDxwPk9mIGNvdXJzZSBhIGNhbGwgdG8geG1sTWVtU2V0dXAoKSBzaG91bGQgcHJvYmFibHkgYmUgZG9uZSBiZWZvcmUgY2FsbGluZwogYW55IG90aGVyIGxpYnhtbCByb3V0aW5lcyAodW5sZXNzIHlvdSBhcmUgc3VyZSB5b3VyIGFsbG9jYXRpb25zIHJvdXRpbmVzIGFyZQogY29tcGF0aWJsZXMpLjwvcD4KLQotPGgyPjxhIG5hbWU9ImNsZWFudXAiPkNsZWFuaW5nIHVwIGFmdGVyIHBhcnNpbmc8L2E+PC9oMj4KLQorPGgzPjxhIG5hbWU9ImNsZWFudXAiPkNsZWFuaW5nIHVwIGFmdGVyIHBhcnNpbmc8L2E+PC9oMz4KIDxwPkxpYnhtbCBpcyBub3Qgc3RhdGVsZXNzLCB0aGVyZSBpcyBhIGZldyBzZXQgb2YgbWVtb3J5IHN0cnVjdHVyZXMgbmVlZGluZwogYWxsb2NhdGlvbiBiZWZvcmUgdGhlIHBhcnNlciBpcyBmdWxseSBmdW5jdGlvbm5hbCAoc29tZSBlbmNvZGluZyBzdHJ1Y3R1cmVzCiBmb3IgZXhhbXBsZSkuIFRoaXMgYWxzbyBtZWFuIHRoYXQgb25jZSBwYXJzaW5nIGlzIGZpbmlzaGVkIHRoZXJlIGlzIGEgdGlueQogYW1vdW50IG9mIG1lbW9yeSAoYSBmZXcgaHVuZHJlZCBieXRlcykgd2hpY2ggY2FuIGJlIHJlY29sbGVjdGVkIGlmIHlvdSBkb24ndAogcmV1c2UgdGhlIHBhcnNlciBpbW1lZGlhdGVseTo8L3A+CiA8dWw+Ci0gIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbENsZWFudXBQYXJzZXIKLSAgICAoKTwvYT4gaXMgYSBjZW50cmFsaXplZCByb3V0aW5lIHRvIGZyZWUgdGhlIHBhcnNpbmcgc3RhdGVzLiBOb3RlIHRoYXQgaXQKLSAgICB3b24ndCBkZWFsbG9jYXRlIGFueSBwcm9kdWNlZCB0cmVlIGlmIGFueSAodXNlIHRoZSB4bWxGcmVlRG9jKCkgYW5kCi0gICAgcmVsYXRlZCByb3V0aW5lcyBmb3IgdGhpcykuPC9saT4KLSAgPGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCI+eG1sSW5pdFBhcnNlcgotICAgICgpPC9hPiBpcyB0aGUgZHVhbCByb3V0aW5lIGFsbG93aW5nIHRvIHByZWFsbG9jYXRlIHRoZSBwYXJzaW5nIHN0YXRlIHdoaWNoCi0gICAgY2FuIGJlIHVzZWZ1bCBmb3IgZXhhbXBsZSB0byBhdm9pZCBpbml0aWFsaXphdGlvbiByZWVudHJhbmN5IHByb2JsZW1zIHdoZW4KKzxsaT4KKzxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCI+eG1sQ2xlYW51cFBhcnNlcgorICAgICgpPC9hPgorICAgICBpcyBhIGNlbnRyYWxpemVkIHJvdXRpbmUgdG8gZnJlZSB0aGUgcGFyc2luZyBzdGF0ZXMuIE5vdGUgdGhhdCBpdCB3b24ndAorICAgIGRlYWxsb2NhdGUgYW55IHByb2R1Y2VkIHRyZWUgaWYgYW55ICh1c2UgdGhlIHhtbEZyZWVEb2MoKSBhbmQgcmVsYXRlZAorICAgIHJvdXRpbmVzIGZvciB0aGlzKS48L2xpPgorPGxpPgorPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxJbml0UGFyc2VyCisgICAgKCk8L2E+CisgICAgIGlzIHRoZSBkdWFsIHJvdXRpbmUgYWxsb3dpbmcgdG8gcHJlYWxsb2NhdGUgdGhlIHBhcnNpbmcgc3RhdGUgd2hpY2ggY2FuCisgICAgYmUgdXNlZnVsIGZvciBleGFtcGxlIHRvIGF2b2lkIGluaXRpYWxpemF0aW9uIHJlZW50cmFuY3kgcHJvYmxlbXMgd2hlbgogICAgIHVzaW5nIGxpYnhtbCBpbiBtdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9uczwvbGk+CiA8L3VsPgotCiA8cD5HZW5lcmFsbHkgeG1sQ2xlYW51cFBhcnNlcigpIGlzIHNhZmUsIGlmIG5lZWRlZCB0aGUgc3RhdGUgd2lsbCBiZSByZWJ1aWxkCiBhdCB0aGUgbmV4dCBpbnZvY2F0aW9uIG9mIHBhcnNlciByb3V0aW5lcywgYnV0IGJlIGNhcmVmdWwgb2YgdGhlIGNvbnNlcXVlbmNlcwogaW4gbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbnMuPC9wPgotCi08aDI+PGEgbmFtZT0iRGVidWdnaW5nIj5EZWJ1Z2dpbmcgcm91dGluZXM8L2E+PC9oMj4KLQotPHA+V2hlbiBjb25maWd1cmVkIHVzaW5nIC0td2l0aC1tZW0tZGVidWcgZmxhZyAob2ZmIGJ5IGRlZmF1bHQpLCBsaWJ4bWwgdXNlcyBhCi1zZXQgb2YgbWVtb3J5IGFsbG9jYXRpb24gZGVidWdnaW5nIHJvdXRpbmVza2VlcGluZyB0cmFjayBvZiBhbGwgYWxsb2NhdGVkCis8aDM+PGEgbmFtZT0iRGVidWdnaW5nIj5EZWJ1Z2dpbmcgcm91dGluZXM8L2E+PC9oMz4KKzxwPldoZW4gY29uZmlndXJlZCB1c2luZyAtLXdpdGgtbWVtLWRlYnVnIGZsYWcgKG9mZiBieSBkZWZhdWx0KSwgbGlieG1sIHVzZXMKK2Egc2V0IG9mIG1lbW9yeSBhbGxvY2F0aW9uIGRlYnVnZ2luZyByb3V0aW5lc2tlZXBpbmcgdHJhY2sgb2YgYWxsIGFsbG9jYXRlZAogYmxvY2tzIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUgd2hlcmUgdGhlIHJvdXRpbmUgd2FzIGNhbGxlZC4gQSBjb3VwbGUgb2YKLW90aGVyIGRlYnVnZ2luZyByb3V0aW5lcyBhbGxvdyB0byBkdW1wIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGluZm9zIHRvIGEgZmlsZSBvcgotY2FsbCBhIHNwZWNpZmljIHJvdXRpbmUgd2hlbiBhIGdpdmVuIGJsb2NrIG51bWJlciBpcyBhbGxvY2F0ZWQ6PC9wPgorb3RoZXIgZGVidWdnaW5nIHJvdXRpbmVzIGFsbG93IHRvIGR1bXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgaW5mb3MgdG8gYSBmaWxlCitvciBjYWxsIGEgc3BlY2lmaWMgcm91dGluZSB3aGVuIGEgZ2l2ZW4gYmxvY2sgbnVtYmVyIGlzIGFsbG9jYXRlZDo8L3A+CiA8dWw+Ci0gIDxsaT48YQotICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWFsbG9jTG9jKCk8L2E+Ci0gICAgPGEKLSAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbFJlYWxsb2NMb2MoKTwvYT4KLSAgICBhbmQgPGEKLSAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbVN0cmR1cExvYygpPC9hPgorPGxpPgorPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNYWxsb2NMb2MoKTwvYT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbFJlYWxsb2NMb2MoKTwvYT4KKyAgICBhbmQgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1TdHJkdXBMb2MoKTwvYT4KICAgICBhcmUgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgcmVwbGFjZW1lbnQgYWxsb2NhdGlvbiByb3V0aW5lczwvbGk+Ci0gIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbW9yeUR1bXAKLSAgICAoKTwvYT4gZHVtcHMgYWxsIHRoZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2sgbGVmdHMKLSAgICBpbiB0aGUgPGNvZGU+Lm1lbWR1bXA8L2NvZGU+IGZpbGU8L2xpPgorPGxpPgorPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1vcnlEdW1wCisgICAgKCk8L2E+CisgICAgIGR1bXBzIGFsbCB0aGUgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGJsb2NrIGxlZnRzIGluIHRoZQorICAgIDxjb2RlPi5tZW1kdW1wPC9jb2RlPiBmaWxlPC9saT4KIDwvdWw+Ci0KLTxwPiBXaGVuIGRldmVsb3BwaW5nIGxpYnhtbCBtZW1vcnkgZGVidWcgaXMgZW5hYmxlZCwgdGhlIHRlc3RzIHByb2dyYW1zIGNhbGwKLXhtbE1lbW9yeUR1bXAgKCkgYW5kIHRoZSAibWFrZSB0ZXN0IiByZWdyZXNzaW9uIHRlc3RzIHdpbGwgY2hlY2sgZm9yIGFueQorPHA+V2hlbiBkZXZlbG9wcGluZyBsaWJ4bWwgbWVtb3J5IGRlYnVnIGlzIGVuYWJsZWQsIHRoZSB0ZXN0cyBwcm9ncmFtcyBjYWxsCit4bWxNZW1vcnlEdW1wICgpIGFuZCB0aGUgJnF1b3Q7bWFrZSB0ZXN0JnF1b3Q7IHJlZ3Jlc3Npb24gdGVzdHMgd2lsbCBjaGVjayBmb3IgYW55CiBtZW1vcnkgbGVhayBkdXJpbmcgdGhlIGZ1bGwgcmVncmVzc2lvbiB0ZXN0IHNlcXVlbmNlLCB0aGlzIGhlbHBzIGEgbG90Ci1lbnN1cmluZyB0aGF0IGxpYnhtbCAgZG9lcyBub3QgbGVhayBtZW1vcnkgYW5kIGJ1bGxldCBwcm9vZiBtZW1vcnkgYWxsb2NhdGlvbnMKLXVzZSAoc29tZSBsaWJjIGltcGxlbWVudGF0aW9ucyBhcmUga25vd24gdG8gYmUgZmFyIHRvbyBwZXJtaXNzaXZlIHJlc3VsdGluZyBpbgotbWFqb3IgcG9ydGFiaWxpdHkgcHJvYmxlbXMhKS4gPC9wPgotCitlbnN1cmluZyB0aGF0IGxpYnhtbCAgZG9lcyBub3QgbGVhayBtZW1vcnkgYW5kIGJ1bGxldCBwcm9vZiBtZW1vcnkKK2FsbG9jYXRpb25zIHVzZSAoc29tZSBsaWJjIGltcGxlbWVudGF0aW9ucyBhcmUga25vd24gdG8gYmUgZmFyIHRvbyBwZXJtaXNzaXZlCityZXN1bHRpbmcgaW4gbWFqb3IgcG9ydGFiaWxpdHkgcHJvYmxlbXMhKS48L3A+CiA8cD5JZiB0aGUgLm1lbWR1bXAgcmVwb3J0cyBhIGxlYWssIGl0IGRpc3BsYXlzIHRoZSBhbGxvY2F0aW9uIGZ1bmN0aW9uIGFuZAogYWxzbyB0cmllcyB0byBnaXZlIHNvbWUgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBjb250ZW50IGFuZCBzdHJ1Y3R1cmUgb2YgdGhlCiBhbGxvY2F0ZWQgYmxvY2tzIGxlZnQuIFRoaXMgaXMgc3VmZmljaWVudCBpbiBtb3N0IGNhc2VzIHRvIGZpbmQgdGhlIGN1bHByaXQsCiBidXQgbm90IGFsd2F5cy4gQXNzdW1pbmcgdGhlIGFsbG9jYXRpb24gcHJvYmxlbSBpcyByZXByb2R1Y3RpYmxlLCBpdCBpcwogcG9zc2libGUgdG8gZmluZCBtb3JlIGVhc2lsbHk6PC9wPgogPG9sPgotICA8bGk+d3JpdGUgZG93biB0aGUgYmxvY2sgbnVtYmVyIHh4eHggbm90IGFsbG9jYXRlZDwvbGk+Ci0gIDxsaT5leHBvcnQgdGhlIGVudmlyb25lbWVudCB2YXJpYWJsZSBYTUxfTUVNX0JSRUFLUE9JTlQ9eHh4eDwvbGk+Ci0gIDxsaT5ydW4gdGhlIHByb2dyYW0gdW5kZXIgYSBkZWJ1Z2dlciBhbmQgc2V0IGEgYnJlYWtwb2ludCBvbgorPGxpPndyaXRlIGRvd24gdGhlIGJsb2NrIG51bWJlciB4eHh4IG5vdCBhbGxvY2F0ZWQ8L2xpPgorPGxpPmV4cG9ydCB0aGUgZW52aXJvbmVtZW50IHZhcmlhYmxlIFhNTF9NRU1fQlJFQUtQT0lOVD14eHh4PC9saT4KKzxsaT5ydW4gdGhlIHByb2dyYW0gdW5kZXIgYSBkZWJ1Z2dlciBhbmQgc2V0IGEgYnJlYWtwb2ludCBvbgogICAgIHhtbE1hbGxvY0JyZWFrcG9pbnQoKSBhIHNwZWNpZmljIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoaXMgcHJlY2lzZSBibG9jawogICAgIGlzIGFsbG9jYXRlZDwvbGk+Ci0gIDxsaT53aGVuIHRoZSBicmVha3BvaW50IGlzIHJlYWNoZWQgeW91IGNhbiB0aGVuIGRvIGEgZmluZSBhbmFseXNpcyBvZiB0aGUKKzxsaT53aGVuIHRoZSBicmVha3BvaW50IGlzIHJlYWNoZWQgeW91IGNhbiB0aGVuIGRvIGEgZmluZSBhbmFseXNpcyBvZiB0aGUKICAgICBhbGxvY2F0aW9uIGFuIHN0ZXAgIHRvIHNlZSB0aGUgY29uZGl0aW9uIHJlc3VsdGluZyBpbiB0aGUgbWlzc2luZwogICAgIGRlYWxsb2NhdGlvbi48L2xpPgogPC9vbD4KLQotPHA+IEkgdXNlZCB0byB1c2UgYSBjb21tZXJjaWFsIHRvb2wgdG8gZGVidWcgbGlieG1sIG1lbW9yeSBwcm9ibGVtcyBidXQgYWZ0ZXIKLW5vdGljaW5nIHRoYXQgaXQgd2FzIG5vdCBkZXRlY3RpbmcgbWVtb3J5IGxlYWtzIHRoYXQgc2ltcGxlIG1lY2hhbmlzbSB3YXMgdXNlZAotYW5kIHByb3ZlZCBleHRyZW1lbHkgZWZmaWNpZW50IHVudGlsIG5vdy48L3A+Ci0KLTxoMj48YSBuYW1lPSJHZW5lcmFsIj5HZW5lcmFsIG1lbW9yeSByZXF1aXJlbWVudHM8L2E+PC9oMj4KLQotPHA+SG93IG11Y2ggbGlieG1sIG1lbW9yeSByZXF1aXJlID8gSXQncyBoYXJkIHRvIHRlbGwgaW4gYXZlcmFnZSBpdCBkZXBlbmRzIG9mCi1hIG51bWJlciBvZiB0aGluZ3M6PC9wPgorPHA+SSB1c2VkIHRvIHVzZSBhIGNvbW1lcmNpYWwgdG9vbCB0byBkZWJ1ZyBsaWJ4bWwgbWVtb3J5IHByb2JsZW1zIGJ1dCBhZnRlcgorbm90aWNpbmcgdGhhdCBpdCB3YXMgbm90IGRldGVjdGluZyBtZW1vcnkgbGVha3MgdGhhdCBzaW1wbGUgbWVjaGFuaXNtIHdhcwordXNlZCBhbmQgcHJvdmVkIGV4dHJlbWVseSBlZmZpY2llbnQgdW50aWwgbm93LjwvcD4KKzxoMz48YSBuYW1lPSJHZW5lcmFsNCI+R2VuZXJhbCBtZW1vcnkgcmVxdWlyZW1lbnRzPC9hPjwvaDM+Cis8cD5Ib3cgbXVjaCBsaWJ4bWwgbWVtb3J5IHJlcXVpcmUgPyBJdCdzIGhhcmQgdG8gdGVsbCBpbiBhdmVyYWdlIGl0IGRlcGVuZHMKK29mIGEgbnVtYmVyIG9mIHRoaW5nczo8L3A+CiA8dWw+Ci0gIDxsaT50aGUgcGFyc2VyIGl0c2VsZiBzaG91bGQgd29yayAgaW4gYSBmaXhlZCBhbW91dCBvZiBtZW1vcnksIGV4Y2VwdCBmb3IKKzxsaT50aGUgcGFyc2VyIGl0c2VsZiBzaG91bGQgd29yayAgaW4gYSBmaXhlZCBhbW91dCBvZiBtZW1vcnksIGV4Y2VwdCBmb3IKICAgICBpbmZvcm1hdGlvbiBtYWludGFpbmVkIGFib3V0IHRoZSBzdGFja3Mgb2YgbmFtZXMgYW5kICBlbnRpdGllcyBsb2NhdGlvbnMuCi0gICAgVGhlIEkvTyBhbmQgZW5jb2RpbmcgaGFuZGxlcnMgd2lsbCBwcm9iYWJseSBhY2NvdW50IGZvciBhIGZldyBLQnl0ZXMuIFRoaXMKLSAgICBpcyB0cnVlIGZvciBib3RoIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyICh0aG91Z2ggdGhlIEhUTUwgcGFyc2VyIG5lZWQgbW9yZQotICAgIHN0YXRlKS48L2xpPgotICA8bGk+SWYgeW91IGFyZSBnZW5lcmF0aW5nIHRoZSBET00gdHJlZSB0aGVuIG1lbW9yeSByZXF1aXJlbWVudHMgd2lsbCBncm93CisgICAgVGhlIEkvTyBhbmQgZW5jb2RpbmcgaGFuZGxlcnMgd2lsbCBwcm9iYWJseSBhY2NvdW50IGZvciBhIGZldyBLQnl0ZXMuCisgICAgVGhpcyBpcyB0cnVlIGZvciBib3RoIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyICh0aG91Z2ggdGhlIEhUTUwgcGFyc2VyCisgICAgbmVlZCBtb3JlIHN0YXRlKS48L2xpPgorPGxpPklmIHlvdSBhcmUgZ2VuZXJhdGluZyB0aGUgRE9NIHRyZWUgdGhlbiBtZW1vcnkgcmVxdWlyZW1lbnRzIHdpbGwgZ3JvdwogICAgIG5lYXJseSBsaW5lYXJ5IHdpdGggdGhlIHNpemUgb2YgdGhlIGRhdGEuIEluIGdlbmVyYWwgZm9yIGEgYmFsYW5jZWQKLSAgICB0ZXh0dWFsIGRvY3VtZW50IHRoZSBpbnRlcm5hbCBtZW1vcnkgcmVxdWlyZW1lbnQgaXMgYWJvdXQgNCB0aW1lcyB0aGUgc2l6ZQotICAgIG9mIHRoZSBVVEY4IHNlcmlhbGl6YXRpb24gb2YgdGhpcyBkb2N1bWVudCAoZXhtcGxlIHRoZSBYTUwtMS4wCisgICAgdGV4dHVhbCBkb2N1bWVudCB0aGUgaW50ZXJuYWwgbWVtb3J5IHJlcXVpcmVtZW50IGlzIGFib3V0IDQgdGltZXMgdGhlCisgICAgc2l6ZSBvZiB0aGUgVVRGOCBzZXJpYWxpemF0aW9uIG9mIHRoaXMgZG9jdW1lbnQgKGV4bXBsZSB0aGUgWE1MLTEuMAogICAgIHJlY29tbWVuZGF0aW9uIGlzIGEgYml0IG1vcmUgb2YgMTUwS0J5dGVzIGFuZCB0YWtlcyA2NTBLQnl0ZXMgb2YgbWFpbgogICAgIG1lbW9yeSB3aGVuIHBhcnNlZCkuIFZhbGlkYXRpb24gd2lsbCBhZGQgYSBhbW91bnQgb2YgbWVtb3J5IHJlcXVpcmVkIGZvcgogICAgIG1haW50YWluaW5nIHRoZSBleHRlcm5hbCBEdGQgc3RhdGUgd2hpY2ggc2hvdWxkIGJlIGxpbmVhciB3aXRoIHRoZQotICAgIGNvbXBsZXhpdHkgb2YgdGhlIGNvbnRlbnQgbW9kZWwgZGVmaW5lZCBieSB0aGUgRHRkIDwvbGk+Ci0gIDxsaT5JZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgYWR2YW5jZWQgZmVhdHVyZXMgb2YgbGlieG1sIGxpa2UgdmFsaWRhdGlvbiwKLSAgICBET00sIFhQYXRoIG9yIFhQb2ludGVyLCBidXQgcmVhbGx5IG5lZWQgdG8gd29yayBmaXhlZCBtZW1vcnkgcmVxdWlyZW1lbnRzLAotICAgIHRoZW4gdGhlIFNBWCBpbnRlcmZhY2Ugc2hvdWxkIGJlIHVzZWQuPC9saT4KKyAgICBjb21wbGV4aXR5IG9mIHRoZSBjb250ZW50IG1vZGVsIGRlZmluZWQgYnkgdGhlIER0ZDwvbGk+Cis8bGk+SWYgeW91IGRvbid0IGNhcmUgYWJvdXQgdGhlIGFkdmFuY2VkIGZlYXR1cmVzIG9mIGxpYnhtbCBsaWtlCisgICAgdmFsaWRhdGlvbiwgRE9NLCBYUGF0aCBvciBYUG9pbnRlciwgYnV0IHJlYWxseSBuZWVkIHRvIHdvcmsgZml4ZWQgbWVtb3J5CisgICAgcmVxdWlyZW1lbnRzLCB0aGVuIHRoZSBTQVggaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkLjwvbGk+CiA8L3VsPgotCi08cD48L3A+Ci0KKzxwPgogPHA+PGEgaHJlZj0ibWFpbHRvOmRhbmllbEB2ZWlsbGFyZC5jb20iPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+Ci0KLTxwPiRJZCQ8L3A+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgogPC9ib2R5PgogPC9odG1sPgo=