PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5QYXJzaW5nIHRoZSBmaWxlPC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjUwLjAiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJwcmV2aW91cyIgaHJlZj0iYXIwMXMwMi5odG1sIiB0aXRsZT0iRGF0YSBUeXBlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczA0Lmh0bWwiIHRpdGxlPSJSZXRyaWV2aW5nIEVsZW1lbnQgQ29udGVudCI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+UGFyc2luZyB0aGUgZmlsZTwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDIuaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwNC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0MSI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0ieG1sdHV0b3JpYWxwYXJzaW5nIj48L2E+UGFyc2luZyB0aGUgZmlsZTwvaDI+PC9kaXY+PC9kaXY+PHA+UGFyc2luZyB0aGUgZmlsZSByZXF1aXJlcyBvbmx5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIGFuZCBhIHNpbmdsZQogICAgICBmdW5jdGlvbiBjYWxsLCBwbHVzIGVycm9yIGNoZWNraW5nLiBGdWxsIGNvZGU6IDxhIGhyZWY9ImFwYi5odG1sIiB0aXRsZT0iQi4gQ29kZSBmb3IgS2V5d29yZCBFeGFtcGxlIj5BcHBlbmRpeCBCPC9hPjwvcD48cD4KICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KICAgICAgICA8YSBuYW1lPSJkZWNsYXJlZG9jIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPiB4bWxEb2NQdHIgZG9jOwoJPGEgbmFtZT0iZGVjbGFyZW5vZGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+IHhtbE5vZGVQdHIgY3VyOwoKCTxhIG5hbWU9InBhcnNlZmlsZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMy5wbmciIGFsdD0iMyIgYm9yZGVyPSIwIj4gZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOwoJCgk8YSBuYW1lPSJjaGVja3BhcnNlZXJyb3IiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzQucG5nIiBhbHQ9IjQiIGJvcmRlcj0iMCI+IGlmIChkb2MgPT0gTlVMTCApIHsKCQlmcHJpbnRmKHN0ZGVyciwmcXVvdDtEb2N1bWVudCBub3QgcGFyc2VkIHN1Y2Nlc3NmdWxseS4gXG4mcXVvdDspOwoJCXJldHVybjsKCX0KCgk8YSBuYW1lPSJnZXRyb290ZWxlbWVudCI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNS5wbmciIGFsdD0iNSIgYm9yZGVyPSIwIj4gY3VyID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKCQoJPGEgbmFtZT0iY2hlY2tlbXB0eWVycm9yIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy82LnBuZyIgYWx0PSI2IiBib3JkZXI9IjAiPiBpZiAoY3VyID09IE5VTEwpIHsKCQlmcHJpbnRmKHN0ZGVyciwmcXVvdDtlbXB0eSBkb2N1bWVudFxuJnF1b3Q7KTsKCQl4bWxGcmVlRG9jKGRvYyk7CgkJcmV0dXJuOwoJfQoJCgk8YSBuYW1lPSJjaGVja3Jvb3R0eXBlIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy83LnBuZyIgYWx0PSI3IiBib3JkZXI9IjAiPiBpZiAoeG1sU3RyY21wKGN1ci0mZ3Q7bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgJnF1b3Q7c3RvcnkmcXVvdDspKSB7CgkJZnByaW50ZihzdGRlcnIsJnF1b3Q7ZG9jdW1lbnQgb2YgdGhlIHdyb25nIHR5cGUsIHJvb3Qgbm9kZSAhPSBzdG9yeSZxdW90Oyk7CgkJeG1sRnJlZURvYyhkb2MpOwoJCXJldHVybjsKCX0KCiAgICA8L3ByZT4KICAgICAgPC9wPjxkaXYgY2xhc3M9ImNhbGxvdXRsaXN0Ij48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJDYWxsb3V0IGxpc3QiPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNkZWNsYXJlZG9jIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkRlY2xhcmUgdGhlIHBvaW50ZXIgdGhhdCB3aWxsIHBvaW50IHRvIHlvdXIgcGFyc2VkIGRvY3VtZW50LjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2RlY2xhcmVub2RlIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkRlY2xhcmUgYSBub2RlIHBvaW50ZXIgKHlvdSdsbCBuZWVkIHRoaXMgaW4gb3JkZXIgdG8KCSAgaW50ZXJhY3Qgd2l0aCBpbmRpdmlkdWFsIG5vZGVzKS48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNjaGVja3BhcnNlZXJyb3IiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNC5wbmciIGFsdD0iNCIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+Q2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLiBJZiBpdAoJICAgIHdhcyBub3QsIGxpYnhtbCB3aWxsIGF0IHRoaXMgcG9pbnQKCSAgICByZWdpc3RlciBhbiBlcnJvciBhbmQgc3RvcC4gCgkgICAgPC9wPjxkaXYgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij48dGFibGUgYm9yZGVyPSIwIj48dHI+PHRkIHJvd3NwYW49IjIiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMjUiPjxpbWcgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoPk5vdGU8L3RoPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPk9uZSBjb21tb24gZXhhbXBsZSBvZiBhbiBlcnJvciBhdCB0aGlzIHBvaW50IGlzIGltcHJvcGVyCgkgICAgaGFuZGxpbmcgb2YgZW5jb2RpbmcuIFRoZSBYTUwgc3RhbmRhcmQgcmVxdWlyZXMKCSAgICBkb2N1bWVudHMgc3RvcmVkIHdpdGggYW4gZW5jb2Rpbmcgb3RoZXIgdGhhbiBVVEYtOCBvciBVVEYtMTYgdG8KCSAgICBjb250YWluIGFuIGV4cGxpY2l0IGRlY2xhcmF0aW9uIG9mIHRoZWlyIGVuY29kaW5nLiBJZiB0aGUKCSAgICBkZWNsYXJhdGlvbiBpcyB0aGVyZSwgbGlieG1sIHdpbGwKCSAgICBhdXRvbWF0aWNhbGx5IHBlcmZvcm0gdGhlIG5lY2Vzc2FyeSBjb252ZXJzaW9uIHRvIFVURi04IGZvcgoJCXlvdS4gTW9yZSBpbmZvcm1hdGlvbiBvbiBYTUwncyBlbmNvZGluZwoJCXJlcXVpcmVtZW50cyBpcyBjb250YWluZWQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjY2hhcmVuY29kaW5nIiB0YXJnZXQ9Il90b3AiPnN0YW5kYXJkPC9hPi48L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CgkgIDwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2dldHJvb3RlbGVtZW50Ij48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzUucG5nIiBhbHQ9IjUiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPlJldHJpZXZlIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudC48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNjaGVja2VtcHR5ZXJyb3IiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNi5wbmciIGFsdD0iNiIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+Q2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBkb2N1bWVudCBhY3R1YWxseSBjb250YWlucyBzb21ldGhpbmcuPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY2hlY2tyb290dHlwZSI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy83LnBuZyIgYWx0PSI3IiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5JbiBvdXIgY2FzZSwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRvY3VtZW50IGlzIHRoZSByaWdodAoJICB0eXBlLiAmcXVvdDtzdG9yeSZxdW90OyBpcyB0aGUgcm9vdCB0eXBlIG9mIHRoZSBkb2N1bWVudHMgdXNlZCBpbiB0aGlzCgkgIHR1dG9yaWFsLjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDIuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFyMDFzMDQuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPkRhdGEgVHlwZXOgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBSZXRyaWV2aW5nIEVsZW1lbnQgQ29udGVudDwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+Cg==