PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KPCEtLU5ld1BhZ2UtLT4KPEhUTUw+CjxIRUFEPgo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFdlZCBBcHIgMTQgMDg6MjY6MzUgRURUIDIwMDQgLS0+CjxUSVRMRT4KVmVsb2NpdHkgMS40IEFQSTogQ2xhc3MgIFZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldAo8L1RJVExFPgo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+CjwvSEVBRD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1ZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3Rlc3QvVmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrU2VydmxldENvbnRleHQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CiZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7PEEgSFJFRj0iVmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS52ZWxvY2l0eS5zZXJ2bGV0LlZlbG9jaXR5U2VydmxldCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgoKPEhSPgo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+CjxIMj4KPEZPTlQgU0laRT0iLTEiPgpvcmcuYXBhY2hlLnZlbG9jaXR5LnRlc3Q8L0ZPTlQ+CjxCUj4KQ2xhc3MgIFZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldDwvSDI+CjxQUkU+CmphdmEubGFuZy5PYmplY3QKICB8CiAgKy0tamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldAogICAgICAgIHwKICAgICAgICArLS1qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQKICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sIj5vcmcuYXBhY2hlLnZlbG9jaXR5LnNlcnZsZXQuVmVsb2NpdHlTZXJ2bGV0PC9BPgogICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnZlbG9jaXR5LnRlc3QuVmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0PC9CPgo8L1BSRT4KPERMPgo8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuU2VydmxldCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnPC9ERD4KPC9ETD4KPERMPgo8RFQ+PEI+RW5jbG9zaW5nIGNsYXNzOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdGVzdC9WZWxvY2l0eVNlcnZsZXRUZXN0Lmh0bWwiPlZlbG9jaXR5U2VydmxldFRlc3Q8L0E+PC9ERD4KPC9ETD4KPEhSPgo8REw+CjxEVD4gY2xhc3MgPEI+VmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0PC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCI+VmVsb2NpdHlTZXJ2bGV0PC9BPjwvREw+Cgo8UD4KPERMPgo8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS52ZWxvY2l0eS50ZXN0LlZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+CjxIUj4KCjxQPgo8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CgoKPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUudmVsb2NpdHkuc2VydmxldC5WZWxvY2l0eVNlcnZsZXQiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS52ZWxvY2l0eS5zZXJ2bGV0LjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCI+VmVsb2NpdHlTZXJ2bGV0PC9BPjwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNDT05URU5UX1RZUEUiPkNPTlRFTlRfVFlQRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNERUZBVUxUX0NPTlRFTlRfVFlQRSI+REVGQVVMVF9DT05URU5UX1RZUEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjREVGQVVMVF9PVVRQVVRfRU5DT0RJTkciPkRFRkFVTFRfT1VUUFVUX0VOQ09ESU5HPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI2RlZmF1bHRDb250ZW50VHlwZSI+ZGVmYXVsdENvbnRlbnRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI0lOSVRfUFJPUFNfS0VZIj5JTklUX1BST1BTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNPTERfSU5JVF9QUk9QU19LRVkiPk9MRF9JTklUX1BST1BTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNSRVFVRVNUIj5SRVFVRVNUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI1JFU1BPTlNFIj5SRVNQT05TRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCN3cml0ZXJQb29sIj53cml0ZXJQb29sPC9BPjwvQ09ERT48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgo8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPkhFQURFUl9JRk1PRFNJTkNFLCBIRUFERVJfTEFTVE1PRCwgTFNUUklOR19GSUxFLCBsU3RyaW5ncywgTUVUSE9EX0RFTEVURSwgTUVUSE9EX0dFVCwgTUVUSE9EX0hFQUQsIE1FVEhPRF9PUFRJT05TLCBNRVRIT0RfUE9TVCwgTUVUSE9EX1BVVCwgTUVUSE9EX1RSQUNFPC9DT0RFPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgo8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQ8L0I+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT5jb25maWc8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KCjxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4ocGFja2FnZSBwcml2YXRlKTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdGVzdC9WZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tWZWxvY2l0eVNlcnZsZXQuaHRtbCNWZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tWZWxvY2l0eVNlcnZsZXQob3JnLmFwYWNoZS52ZWxvY2l0eS50ZXN0LlZlbG9jaXR5U2VydmxldFRlc3QpIj5WZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tWZWxvY2l0eVNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS90ZXN0L1ZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldC5odG1sI2dldFNlcnZsZXRDb25maWcoKSI+Z2V0U2VydmxldENvbmZpZzwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuUHJvcGVydGllczwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdGVzdC9WZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tWZWxvY2l0eVNlcnZsZXQuaHRtbCNsb2FkQ29uZmlndXJhdGlvbihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5sb2FkQ29uZmlndXJhdGlvbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO2NvbmZpZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvYWRzIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCByZXR1cm5zIHRoYXQgCiAgaW5mb3JtYXRpb24gYXMgYSBQcm9wZXJ0aWVzLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gCiAgaW5pdGlhbGl6ZSB0aGUgVmVsb2NpdHkgcnVudGltZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS90ZXN0L1ZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldC5odG1sI3Zpc2libGVTZXRDb250ZW50VHlwZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnZpc2libGVTZXRDb250ZW50VHlwZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXEsCiAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlcyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS52ZWxvY2l0eS5zZXJ2bGV0LlZlbG9jaXR5U2VydmxldCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS52ZWxvY2l0eS5zZXJ2bGV0LjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCI+VmVsb2NpdHlTZXJ2bGV0PC9BPjwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNjaG9vc2VDaGFyYWN0ZXJFbmNvZGluZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Y2hvb3NlQ2hhcmFjdGVyRW5jb2Rpbmc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjY3JlYXRlQ29udGV4dChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmNyZWF0ZUNvbnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjZG9HZXQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5kb0dldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNkb1Bvc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5kb1Bvc3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjZG9SZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9SZXF1ZXN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI2Vycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuRXhjZXB0aW9uKSI+ZXJyb3I8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjZ2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPmdldFRlbXBsYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI2dldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRUZW1wbGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNoYW5kbGVSZXF1ZXN0KG9yZy5hcGFjaGUudmVsb2NpdHkuY29udGV4dC5Db250ZXh0KSI+aGFuZGxlUmVxdWVzdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvc2VydmxldC9WZWxvY2l0eVNlcnZsZXQuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnZlbG9jaXR5LmNvbnRleHQuQ29udGV4dCkiPmhhbmRsZVJlcXVlc3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjaW5pdChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5pbml0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI2luaXRWZWxvY2l0eShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5pbml0VmVsb2NpdHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3NlcnZsZXQvVmVsb2NpdHlTZXJ2bGV0Lmh0bWwjbWVyZ2VUZW1wbGF0ZShvcmcuYXBhY2hlLnZlbG9jaXR5LlRlbXBsYXRlLCBvcmcuYXBhY2hlLnZlbG9jaXR5LmNvbnRleHQuQ29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5tZXJnZVRlbXBsYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI3JlcXVlc3RDbGVhbnVwKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnZlbG9jaXR5LmNvbnRleHQuQ29udGV4dCkiPnJlcXVlc3RDbGVhbnVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI3NldENvbnRlbnRUeXBlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+c2V0Q29udGVudFR5cGU8L0E+PC9DT0RFPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ8L0I+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Y2xpbml0PiwgZG9EZWxldGUsIGRvSGVhZCwgZG9PcHRpb25zLCBkb1B1dCwgZG9UcmFjZSwgZ2V0QWxsRGVjbGFyZWRNZXRob2RzLCBnZXRMYXN0TW9kaWZpZWQsIG1heWJlU2V0TGFzdE1vZGlmaWVkLCBzZXJ2aWNlLCBzZXJ2aWNlPC9DT0RFPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldDwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPmRlc3Ryb3ksIGdldEluaXRQYXJhbWV0ZXIsIGdldEluaXRQYXJhbWV0ZXJOYW1lcywgZ2V0U2VydmxldENvbnRleHQsIGdldFNlcnZsZXRJbmZvLCBnZXRTZXJ2bGV0TmFtZSwgaW5pdCwgbG9nLCBsb2c8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjxQPgoKPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgoKCjwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KCjxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+CjxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KCjxBIE5BTUU9IlZlbG9jaXR5U2VydmxldFRlc3QuTW9ja1ZlbG9jaXR5U2VydmxldChvcmcuYXBhY2hlLnZlbG9jaXR5LnRlc3QuVmVsb2NpdHlTZXJ2bGV0VGVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KVmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0PC9IMz4KPFBSRT4KPEI+VmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0PC9CPigpPC9QUkU+CjxETD4KPC9ETD4KCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0idmlzaWJsZVNldENvbnRlbnRUeXBlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgp2aXNpYmxlU2V0Q29udGVudFR5cGU8L0gzPgo8UFJFPgp2b2lkIDxCPnZpc2libGVTZXRDb250ZW50VHlwZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXMpPC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibG9hZENvbmZpZ3VyYXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgpsb2FkQ29uZmlndXJhdGlvbjwvSDM+CjxQUkU+CnByb3RlY3RlZCBqYXZhLnV0aWwuUHJvcGVydGllcyA8Qj5sb2FkQ29uZmlndXJhdGlvbjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7Y29uZmlnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBjbGFzczogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sIj5WZWxvY2l0eVNlcnZsZXQ8L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+TG9hZHMgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIHJldHVybnMgdGhhdCAKICBpbmZvcm1hdGlvbiBhcyBhIFByb3BlcnRpZXMsIHdoaWNoIHdpbGwgYmUgdXNlZCB0byAKICBpbml0aWFsaXplIHRoZSBWZWxvY2l0eSBydW50aW1lLgogIDxicj48YnI+CiAgQ3VycmVudGx5LCB0aGlzIG1ldGhvZCBnZXRzIHRoZSBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXIKICBWZWxvY2l0eVNlcnZsZXQuSU5JVF9QUk9QU19LRVksIHdoaWNoIHNob3VsZCBiZSBhIGZpbGUgY29udGFpbmluZwogIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLgogIDxicj48YnI+CiAgVG8gY29uZmlndXJlIHlvdXIgU2VydmxldCBTcGVjIDIuMiBjb21wbGlhbnQgc2VydmxldCBydW5uZXIgdG8gcGFzcwogIHRoaXMgdG8geW91LCBwdXQgdGhlIGZvbGxvd2luZyBpbiB5b3VyIFdFQi1JTkYvd2ViLnhtbCBmaWxlCiAgPGJyPgogIDxwcmU+CiAgICAmbHQ7c2VydmxldCZndDsKICAgICAgJmx0O3NlcnZsZXQtbmFtZSZndDsgWW91clNlcnZsZXQgJmx0L3NlcnZsZXQtbmFtZSZndDsKICAgICAgJmx0O3NlcnZsZXQtY2xhc3MmZ3Q7IHlvdXIucGFja2FnZS5Zb3VyU2VydmxldCAmbHQ7L3NlcnZsZXQtY2xhc3MmZ3Q7CiAgICAgICZsdDtpbml0LXBhcmFtJmd0OwogICAgICAgICAmbHQ7cGFyYW0tbmFtZSZndDsgb3JnLmFwYWNoZS52ZWxvY2l0eS5wcm9wZXJ0aWVzICZsdDsvcGFyYW0tbmFtZSZndDsKICAgICAgICAgJmx0O3BhcmFtLXZhbHVlJmd0OyB2ZWxvY2l0eS5wcm9wZXJ0aWVzICZsdDsvcGFyYW0tdmFsdWUmZ3Q7CiAgICAgICZsdDsvaW5pdC1wYXJhbSZndDsKICAgICZsdDsvc2VydmxldCZndDsKICAgPC9wcmU+CgogQWx0ZXJuYXRlbHksIGlmIHlvdSB3aXNoIHRvIGNvbmZpZ3VyZSBhbiBlbnRpcmUgY29udGV4dCBpbiB0aGlzCiBmYXNoaW9uLCB5b3UgbWF5IHVzZSB0aGUgZm9sbG93aW5nOgogIDxicj4KICA8cHJlPgogICAgJmx0O2NvbnRleHQtcGFyYW0mZ3Q7CiAgICAgICAmbHQ7cGFyYW0tbmFtZSZndDsgb3JnLmFwYWNoZS52ZWxvY2l0eS5wcm9wZXJ0aWVzICZsdDsvcGFyYW0tbmFtZSZndDsKICAgICAgICZsdDtwYXJhbS12YWx1ZSZndDsgdmVsb2NpdHkucHJvcGVydGllcyAmbHQ7L3BhcmFtLXZhbHVlJmd0OwogICAgICAgJmx0O2Rlc2NyaXB0aW9uJmd0OyBQYXRoIHRvIFZlbG9jaXR5IGNvbmZpZ3VyYXRpb24gJmx0Oy9kZXNjcmlwdGlvbiZndDsKICAgICZsdDsvY29udGV4dC1wYXJhbSZndDsKICAgPC9wcmU+CiAKICBEZXJpdmVkIGNsYXNzZXMgbWF5IGRvIHRoZSBzYW1lLCBvciB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGNvZGUgdG8gZG8gdGhlIGxvYWRpbmcgZm9yIHRoZW0gdmlhIDoKICAgPHByZT4KICAgICAgUHJvcGVydGllcyBwID0gc3VwZXIubG9hZENvbmZpZ3VyYXRpb24oIGNvbmZpZyApOwogICA8L3ByZT4KICBhbmQgdGhlbiBhZGQgb3IgbW9kaWZ5IHRoZSBjb25maWd1cmF0aW9uIHZhbHVlcyBmcm9tIHRoZSBmaWxlLgogIDxicj48REQ+PERMPgo8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sI2xvYWRDb25maWd1cmF0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPmxvYWRDb25maWd1cmF0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9zZXJ2bGV0L1ZlbG9jaXR5U2VydmxldC5odG1sIj5WZWxvY2l0eVNlcnZsZXQ8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD5Gb2xsb3dpbmcgY29waWVkIGZyb20gY2xhc3M6IDxDT0RFPm9yZy5hcGFjaGUudmVsb2NpdHkuc2VydmxldC5WZWxvY2l0eVNlcnZsZXQ8L0NPREU+PC9ERD4KPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gU2VydmxldENvbmZpZyBwYXNzZWQgdG8gdGhlIHNlcnZsZXRzIGluaXQoKSBmdW5jdGlvbgogICAgICAgICAgICAgICAgQ2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSByZWFsIHBhdGggdmlhIFNlcnZsZXRDb250ZXh0IChoaW50KTxEVD48Qj5SZXR1cm5zOjwvQj48REQ+amF2YS51dGlsLlByb3BlcnRpZXMgbG9hZGVkIHdpdGggY29uZmlndXJhdGlvbiB2YWx1ZXMgdG8gYmUgdXNlZAogICAgICAgICAgdG8gaW5pdGlhbGl6ZSB0aGUgVmVsb2NpdHkgcnVudGltZS48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzcGVjaWZpZWQgZmlsZSBpcyBub3QgZm91bmQuPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gSS9PIHByb2JsZW0gYWNjZXNzaW5nIHRoZSBzcGVjaWZpZWQgZmlsZSwgaWYgc3BlY2lmaWVkLjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldFNlcnZsZXRDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRTZXJ2bGV0Q29uZmlnPC9IMz4KPFBSRT4KcHVibGljIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyA8Qj5nZXRTZXJ2bGV0Q29uZmlnPC9CPigpPC9QUkU+CjxETD4KPEREPjxETD4KPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFNlcnZsZXRDb25maWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQ8L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgo8SFI+Cgo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KPFRSPgo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVmVsb2NpdHlTZXJ2bGV0VGVzdC5Nb2NrVmVsb2NpdHlTZXJ2bGV0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPC9UUj4KPC9UQUJMRT4KPC9URD4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+CjwvRU0+CjwvVEQ+CjwvVFI+Cgo8VFI+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdGVzdC9WZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tTZXJ2bGV0Q29udGV4dC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJWZWxvY2l0eVNlcnZsZXRUZXN0Lk1vY2tWZWxvY2l0eVNlcnZsZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnZlbG9jaXR5LnNlcnZsZXQuVmVsb2NpdHlTZXJ2bGV0Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CkRFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+Cgo8SFI+CkNvcHlyaWdodCCpIDIwMDIgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCjwvQk9EWT4KPC9IVE1MPgo=