PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+CjwhLS1OZXdQYWdlLS0+CjxIVE1MPgo8SEVBRD4KPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgo8VElUTEU+Ck11bHRpcGFydEl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQo8L1RJVExFPgo8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLE11bHRpcGFydEl0ZXJhdG9yIGNsYXNzIj4KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgo8L0hFQUQ+CjxTQ1JJUFQ+CmZ1bmN0aW9uIGFzZCgpCnsKcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNdWx0aXBhcnRJdGVyYXRvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOwp9CjwvU0NSSVBUPgo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPC9UUj4KPC9UQUJMRT4KPC9URD4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+CjwvRU0+CjwvVEQ+CjwvVFI+Cgo8VFI+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydEl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDsKPFNDUklQVD4KICA8IS0tCiAgaWYod2luZG93PT10b3ApIHsKICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOwogIH0KICAvLy0tPgo8L1NDUklQVD4KPE5PU0NSSVBUPgo8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KPC9OT1NDUklQVD4KPC9GT05UPjwvVEQ+CjwvVFI+CjxUUj4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgoKPEhSPgo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+CjxIMj4KPEZPTlQgU0laRT0iLTEiPgpvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+CjxCUj4KQ2xhc3MgTXVsdGlwYXJ0SXRlcmF0b3I8L0gyPgo8UFJFPgpqYXZhLmxhbmcuT2JqZWN0CiAgfAogICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvcjwvQj4KPC9QUkU+CjxIUj4KPERMPgo8RFQ+cHVibGljIGNsYXNzIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgoKPFA+ClRoZSBNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyB0aGUKIGlucHV0IGRhdGEgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBhbmQgc3BsaXR0aW5nIGl0IHVwIGludG8KIGlucHV0IGVsZW1lbnRzLCB3cmFwcGVkIGluc2lkZSBvZiBhCiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KIGZvciBlYXN5IGRlZmluaXRpb24uICBUbyB1c2UgdGhpcyBjbGFzcywgY3JlYXRlIGEgbmV3IGluc3RhbmNlCiBvZiBNdWx0aXBhcnRJdGVyYXRvciBwYXNzaW5nIGl0IGEgSHR0cFNlcnZsZXRSZXF1ZXN0IGluIHRoZQogY29uc3RydWN0b3IuICBUaGVuIHVzZSB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0TmV4dEVsZW1lbnQoKSI+PENPREU+Z2V0TmV4dEVsZW1lbnQ8L0NPREU+PC9BPgogbWV0aG9kIHVudGlsIGl0IHJldHVybnMgbnVsbCwgdGhlbiB5b3UncmUgZmluaXNoZWQuICBFeGFtcGxlOiA8YnI+CiA8cHJlPgogICAgICBNdWx0aXBhcnRJdGVyYXRvciBpdGVyYXRvciA9IG5ldyBNdWx0aXBhcnRJdGVyYXRvcihyZXF1ZXN0KTsKICAgICAgTXVsdGlwYXJ0RWxlbWVudCBlbGVtZW50OwoKICAgICAgd2hpbGUgKChlbGVtZW50ID0gaXRlcmF0b3IuZ2V0TmV4dEVsZW1lbnQoKSkgIT0gbnVsbCkgewogICAgICAgICAgIC8vZG8gc29tZXRoaW5nIHdpdGggZWxlbWVudAogICAgICB9CiA8L3ByZT4KPFA+Cgo8UD4KPERMPgo8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgogIDxERD5NaWtlIFNjaGFjaHRlcjwvREQ+CjxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxDT0RFPk11bHRpcGFydEVsZW1lbnQ8L0NPREU+PC9BPjwvREw+CjxIUj4KCjxQPgo8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgoKCjwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KCjxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2JvdW5kYXJ5Ij5ib3VuZGFyeTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm91bmRhcnkgZm9yIHRoaXMgbXVsdGlwYXJ0IHJlcXVlc3Q8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjYnVmZmVyU2l6ZSI+YnVmZmVyU2l6ZTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYW1vdW50IG9mIGRhdGEgcmVhZCBmcm9tIGEgcmVxdWVzdCBhdCBhIHRpbWUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NvbnRlbnRMZW5ndGgiPmNvbnRlbnRMZW5ndGg8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoaXMgcmVxdWVzdDwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY29udGVudFR5cGUiPmNvbnRlbnRUeXBlPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50LXR5cGUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjREVGQVVMVF9FTkNPRElORyI+REVGQVVMVF9FTkNPRElORzwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBlbmNvZGluZyBvZiBhIHRleHQgZWxlbWVudCBpZiBub25lIGlzIHNwZWNpZmllZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZGlza0J1ZmZlclNpemUiPmRpc2tCdWZmZXJTaXplPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaXplIGluIGJ5dGVzIHdyaXR0ZW4gdG8gdGhlIGZpbGVzeXN0ZW0gYXQgYSB0aW1lIFsyMEtdPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjRklMRV9QUkVGSVgiPkZJTEVfUFJFRklYPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+SEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNIRUFERVJfQ09OVEVOVF9UWVBFIj5IRUFERVJfQ09OVEVOVF9UWVBFPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2lucHV0U3RyZWFtIj5pbnB1dFN0cmVhbTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSW5wdXRTdHJlYW0gdG8gdXNlIHRvIHJlYWQgdGhlIG11bHRpcGFydCBkYXRhLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjbWF4TGVuZ3RoRXhjZWVkZWQiPm1heExlbmd0aEV4Y2VlZGVkPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIGV4Y2VlZGVkLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjbWF4U2l6ZSI+bWF4U2l6ZTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBmaWxlIHNpemUgaW4gYnl0ZXMgYWxsb3dlZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlkiPk1FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBleGNlcHRpb24gbWVzc2FnZSBmb3Igd2hlbiB0aGUgYm91bmRhcnkgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBjYW4ndCBiZSBkZXRlcm1pbmVkLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI1BBUkFNRVRFUl9CT1VOREFSWSI+UEFSQU1FVEVSX0JPVU5EQVJZPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjcmVxdWVzdCI+cmVxdWVzdDwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBpbnN0YW5jZSBmb3IgdGhpcyBjbGFzczwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjdGVtcERpciI+dGVtcERpcjwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBmaWxlczwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjVEVYVF9CVUZGRVJfU0laRSI+VEVYVF9CVUZGRVJfU0laRTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBpbiBieXRlcyB0byBjb3B5IG9mIHRleHQgZGF0YSBhdCBhIHRpbWUuPC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KCjxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggYSBkZWZhdWx0IGJ1ZmZlciBzaXplIGFuZCBubyBmaWxlIHNpemUKIGxpbWl0PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQpIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAogICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBidWZmZXIgc2l6ZSBhbmQKIG5vIGZpbGUgc2l6ZSBsaW1pdDwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nKSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKICAgICAgICAgICAgICAgICAgbG9uZyZuYnNwO21heFNpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAogdGhlIHNwZWNpZmllZCBmaWxlIHNpemUgbGltaXQgaW4gYnl0ZXM8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZywgamF2YS5sYW5nLlN0cmluZykiPk11bHRpcGFydEl0ZXJhdG9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCiAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCiAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplLAogICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcERpcik8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOwo8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CjxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj5jcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG11bHRpcGFydCBlbGVtZW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgZmlsZSBpbiB0aGUgc3RyZWFtLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmlvLkZpbGU8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVMb2NhbEZpbGUoKSI+Y3JlYXRlTG9jYWxGaWxlPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlcyBhIGZpbGUgb24gZGlzayBmcm9tIHRoZSBjdXJyZW50IG11bGl0cGFydCBlbGVtZW50LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVUZXh0TXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIHRleHQgZWxlbWVudCBmcm9tIHRoZSBkYXRhIGluIHRoZSBib2R5IG9mIHRoZSBlbGVtZW50LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlKCkiPmdldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2VzIGEgY29udGVudC10eXBlIFN0cmluZyBmb3IgdGhlIGJvdW5kYXJ5LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJ1ZmZlclNpemUoKSI+Z2V0QnVmZmVyU2l6ZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgYnl0ZXMgcmVhZCBmcm9tIGEgbGluZSBhdCBvbmUgdGltZTwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldENvbnRlbnRUeXBlT2ZSZXF1ZXN0KCkiPmdldENvbnRlbnRUeXBlT2ZSZXF1ZXN0PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgdmFsdWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgb2YgdGhlIHJlcXVlc3QuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRFbGVtZW50RW5jb2RpbmcoKSI+Z2V0RWxlbWVudEVuY29kaW5nPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBmb3IgdGhpcyBjdXJyZW50IG11bHRpcGFydCBlbGVtZW50LjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRNYXhTaXplKCkiPmdldE1heFNpemU8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgcmVxdWVzdDwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0TmV4dEVsZW1lbnQoKSI+Z2V0TmV4dEVsZW1lbnQ8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgaXRlcmF0b3IgaWYgb25lIGV4aXN0cy48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjaXNNYXhMZW5ndGhFeGNlZWRlZCgpIj5pc01heExlbmd0aEV4Y2VlZGVkPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIGV4Y2VlZGVkIGJ5IHRoZSBjbGllbnQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNwYXJzZVJlcXVlc3QoKSI+cGFyc2VSZXF1ZXN0PC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlcyByZXRyaWV2aW5nIHRoZSBib3VuZGFyeSBhbmQgc2V0dGluZyB0aGUgaW5wdXQgc3RyZWFtPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3NldEJ1ZmZlclNpemUoaW50KSI+c2V0QnVmZmVyU2l6ZTwvQT48L0I+KGludCZuYnNwO2J1ZmZlclNpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWU8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjc2V0TWF4U2l6ZShsb25nKSI+c2V0TWF4U2l6ZTwvQT48L0I+KGxvbmcmbmJzcDttYXhTaXplKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGFsbG93ZWQgZm9yIGEgbXVsdGlwYXJ0IHJlcXVlc3Q8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjxQPgoKPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iREVGQVVMVF9FTkNPRElORyI+PCEtLSAtLT48L0E+PEgzPgpERUZBVUxUX0VOQ09ESU5HPC9IMz4KPFBSRT4KcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ERUZBVUxUX0VOQ09ESU5HPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgZGVmYXVsdCBlbmNvZGluZyBvZiBhIHRleHQgZWxlbWVudCBpZiBub25lIGlzIHNwZWNpZmllZC4KPFA+CjxETD4KPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkRFRkFVTFRfRU5DT0RJTkciPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJURVhUX0JVRkZFUl9TSVpFIj48IS0tIC0tPjwvQT48SDM+ClRFWFRfQlVGRkVSX1NJWkU8L0gzPgo8UFJFPgpwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgPEI+VEVYVF9CVUZGRVJfU0laRTwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHNpemUgaW4gYnl0ZXMgdG8gY29weSBvZiB0ZXh0IGRhdGEgYXQgYSB0aW1lLgo8UD4KPERMPgo8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuVEVYVF9CVUZGRVJfU0laRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9IkhFQURFUl9DT05URU5UX1RZUEUiPjwhLS0gLS0+PC9BPjxIMz4KSEVBREVSX0NPTlRFTlRfVFlQRTwvSDM+CjxQUkU+CnB1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5IRUFERVJfQ09OVEVOVF9UWVBFPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgbmFtZSBvZiB0aGUgQ29udGVudC1UeXBlIGhlYWRlci4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iSEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT04iPjwhLS0gLS0+PC9BPjxIMz4KSEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0gzPgo8UFJFPgpwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+SEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0I+PC9QUkU+CjxETD4KPEREPlRoZSBuYW1lIG9mIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KPFA+CjxETD4KPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkhFQURFUl9DT05URU5UX0RJU1BPU0lUSU9OIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlkiPjwhLS0gLS0+PC9BPjxIMz4KTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlk8L0gzPgo8UFJFPgpwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlk8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBleGNlcHRpb24gbWVzc2FnZSBmb3Igd2hlbiB0aGUgYm91bmRhcnkgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBjYW4ndCBiZSBkZXRlcm1pbmVkLgo8UD4KPERMPgo8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJQQVJBTUVURVJfQk9VTkRBUlkiPjwhLS0gLS0+PC9BPjxIMz4KUEFSQU1FVEVSX0JPVU5EQVJZPC9IMz4KPFBSRT4KcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QQVJBTUVURVJfQk9VTkRBUlk8L0I+PC9QUkU+CjxETD4KPERMPgo8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuUEFSQU1FVEVSX0JPVU5EQVJZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iRklMRV9QUkVGSVgiPjwhLS0gLS0+PC9BPjxIMz4KRklMRV9QUkVGSVg8L0gzPgo8UFJFPgpwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZJTEVfUFJFRklYPC9CPjwvUFJFPgo8REw+CjxETD4KPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkZJTEVfUFJFRklYIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVxdWVzdCI+PCEtLSAtLT48L0E+PEgzPgpyZXF1ZXN0PC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QgPEI+cmVxdWVzdDwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHJlcXVlc3QgaW5zdGFuY2UgZm9yIHRoaXMgY2xhc3MKPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iaW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPjxIMz4KaW5wdXRTdHJlYW08L0gzPgo8UFJFPgpwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4gPEI+aW5wdXRTdHJlYW08L0I+PC9QUkU+CjxETD4KPEREPlRoZSBJbnB1dFN0cmVhbSB0byB1c2UgdG8gcmVhZCB0aGUgbXVsdGlwYXJ0IGRhdGEuCjxQPgo8REw+CjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImJvdW5kYXJ5Ij48IS0tIC0tPjwvQT48SDM+CmJvdW5kYXJ5PC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym91bmRhcnk8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBib3VuZGFyeSBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJtYXhTaXplIj48IS0tIC0tPjwvQT48SDM+Cm1heFNpemU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgbG9uZyA8Qj5tYXhTaXplPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgbWF4aW11bSBmaWxlIHNpemUgaW4gYnl0ZXMgYWxsb3dlZC4gSWdub3JlZCBpZiAtMQo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjb250ZW50TGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CmNvbnRlbnRMZW5ndGg8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgaW50IDxCPmNvbnRlbnRMZW5ndGg8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBjb250ZW50IGxlbmd0aCBvZiB0aGlzIHJlcXVlc3QKPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZGlza0J1ZmZlclNpemUiPjwhLS0gLS0+PC9BPjxIMz4KZGlza0J1ZmZlclNpemU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgaW50IDxCPmRpc2tCdWZmZXJTaXplPC9CPjwvUFJFPgo8REw+CjxERD5UaGUgc2l6ZSBpbiBieXRlcyB3cml0dGVuIHRvIHRoZSBmaWxlc3lzdGVtIGF0IGEgdGltZSBbMjBLXQo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJidWZmZXJTaXplIj48IS0tIC0tPjwvQT48SDM+CmJ1ZmZlclNpemU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgaW50IDxCPmJ1ZmZlclNpemU8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBhbW91bnQgb2YgZGF0YSByZWFkIGZyb20gYSByZXF1ZXN0IGF0IGEgdGltZS4KIFRoaXMgYWxzbyByZXByZXNlbnRzIHRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YKIGEgbGluZSByZWFkIGZyb20gdGhlIHJlcXVlc3QgWzRLQl0KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0idGVtcERpciI+PCEtLSAtLT48L0E+PEgzPgp0ZW1wRGlyPC9IMz4KPFBSRT4KcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGVtcERpcjwvQj48L1BSRT4KPERMPgo8REQ+VGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gc3RvcmUgZmlsZXMKPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iY29udGVudFR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KY29udGVudFR5cGU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50VHlwZTwvQj48L1BSRT4KPERMPgo8REQ+VGhlIGNvbnRlbnQtdHlwZS4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibWF4TGVuZ3RoRXhjZWVkZWQiPjwhLS0gLS0+PC9BPjxIMz4KbWF4TGVuZ3RoRXhjZWVkZWQ8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5tYXhMZW5ndGhFeGNlZWRlZDwvQj48L1BSRT4KPERMPgo8REQ+V2hldGhlciB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gZXhjZWVkZWQuCjxQPgo8REw+CjwvREw+CjwvREw+Cgo8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgpNdWx0aXBhcnRJdGVyYXRvcjwvSDM+CjxQUkU+CnB1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCiAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIGEgZGVmYXVsdCBidWZmZXIgc2l6ZSBhbmQgbm8gZmlsZSBzaXplCiBsaW1pdAo8UD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBtdWx0aXBhcnQgcmVxdWVzdCB0byBpdGVyYXRlPC9ETD4KPEhSPgoKPEEgTkFNRT0iTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpNdWx0aXBhcnRJdGVyYXRvcjwvSDM+CjxQUkU+CnB1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplKQogICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAogbm8gZmlsZSBzaXplIGxpbWl0CjxQPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIG11bHRpcGFydCByZXF1ZXN0IHRvIGl0ZXJhdGU8REQ+PENPREU+YnVmZmVyU2l6ZTwvQ09ERT4gLSBUaGUgc2l6ZSBpbiBieXRlcyB0aGF0IHNob3VsZCBiZSByZWFkIGZyb20gdGhlIGlucHV0CiAgICAgICAgICAgICAgICAgICBzdHJlYW0gYXQgYSB0aW1lczwvREw+CjxIUj4KCjxBIE5BTUU9Ik11bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZykiPjwhLS0gLS0+PC9BPjxIMz4KTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgo8UFJFPgpwdWJsaWMgPEI+TXVsdGlwYXJ0SXRlcmF0b3I8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplKQogICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAogdGhlIHNwZWNpZmllZCBmaWxlIHNpemUgbGltaXQgaW4gYnl0ZXMKPFA+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgbXVsdGlwYXJ0IHJlcXVlc3QgdG8gaXRlcmF0ZTxERD48Q09ERT5idWZmZXJTaXplPC9DT0RFPiAtIFRoZSBzaXplIGluIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSB0aGUgaW5wdXQKICAgICAgICAgICAgICAgICAgIHN0cmVhbSBhdCBhIHRpbWVzPEREPjxDT0RFPm1heFNpemU8L0NPREU+IC0gVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBhbGxvd2VkIGZvciBhIG11bHRpcGFydCBlbGVtZW50J3MgZGF0YTwvREw+CjxIUj4KCjxBIE5BTUU9Ik11bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgo8UFJFPgpwdWJsaWMgPEI+TXVsdGlwYXJ0SXRlcmF0b3I8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBEaXIpCiAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+CjxETD4KPC9ETD4KCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0icGFyc2VSZXF1ZXN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KcGFyc2VSZXF1ZXN0PC9IMz4KPFBSRT4KcHJvdGVjdGVkIHZvaWQgPEI+cGFyc2VSZXF1ZXN0PC9CPigpCiAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPkhhbmRsZXMgcmV0cmlldmluZyB0aGUgYm91bmRhcnkgYW5kIHNldHRpbmcgdGhlIGlucHV0IHN0cmVhbQo8UD4KPEREPjxETD4KCjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldE5leHRFbGVtZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0TmV4dEVsZW1lbnQ8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4gPEI+Z2V0TmV4dEVsZW1lbnQ8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5SZXRyaWV2ZXMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgaXRlcmF0b3IgaWYgb25lIGV4aXN0cy4KPFA+CjxERD48REw+Cgo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PENPREU+TXVsdGlwYXJ0RWxlbWVudDwvQ09ERT48L0E+CiAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSByZXF1ZXN0IGRhdGEKPERUPjxCPlRocm93czo8L0I+CjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwb3N0IHNpemUgZXhjZWVkcyB0aGUgbWF4aW11bSBmaWxlIHNpemUKICAgICAgICAgcGFzc2VkIGluIHRoZSAzIGFyZ3VtZW50IGNvbnN0cnVjdG9yIG9yIGlmIHRoZSAiSVNPLTg4NTktMSIgZW5jb2RpbmcgaXNuJ3QgZm91bmQ8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRFbGVtZW50RW5jb2RpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRFbGVtZW50RW5jb2Rpbmc8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbGVtZW50RW5jb2Rpbmc8L0I+KCk8L1BSRT4KPERMPgo8REQ+R2V0IHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBmb3IgdGhpcyBjdXJyZW50IG11bHRpcGFydCBlbGVtZW50Lgo8UD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iY3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KY3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQ8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4gPEI+Y3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5DcmVhdGUgYSB0ZXh0IGVsZW1lbnQgZnJvbSB0aGUgZGF0YSBpbiB0aGUgYm9keSBvZiB0aGUgZWxlbWVudC4KPFA+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZW5jb2Rpbmc8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgc3RyaW5nLgo8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj48IS0tIC0tPjwvQT48SDM+CmNyZWF0ZUZpbGVNdWx0aXBhcnRFbGVtZW50PC9IMz4KPFBSRT4KcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+IDxCPmNyZWF0ZUZpbGVNdWx0aXBhcnRFbGVtZW50PC9CPigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KPERMPgo8REQ+Q3JlYXRlIGEgbXVsdGlwYXJ0IGVsZW1lbnQgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoZSBmaWxlIGluIHRoZSBzdHJlYW0uCjxQPgo8REQ+PERMPgoKPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ic2V0QnVmZmVyU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CnNldEJ1ZmZlclNpemU8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRCdWZmZXJTaXplPC9CPihpbnQmbmJzcDtidWZmZXJTaXplKTwvUFJFPgo8REw+CjxERD5TZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWUKPFA+CjxERD48REw+CjxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxDT0RFPlNlcnZsZXRJbnB1dFN0cmVhbS5yZWFkTGluZShieXRlW10sIGludCwgaW50KTwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRCdWZmZXJTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0QnVmZmVyU2l6ZTwvSDM+CjxQUkU+CnB1YmxpYyBpbnQgPEI+Z2V0QnVmZmVyU2l6ZTwvQj4oKTwvUFJFPgo8REw+CjxERD5HZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWUKPFA+CjxERD48REw+CjxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxDT0RFPlNlcnZsZXRJbnB1dFN0cmVhbS5yZWFkTGluZShieXRlW10sIGludCwgaW50KTwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXRNYXhTaXplKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CnNldE1heFNpemU8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRNYXhTaXplPC9CPihsb25nJm5ic3A7bWF4U2l6ZSk8L1BSRT4KPERMPgo8REQ+U2V0IHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGFsbG93ZWQgZm9yIGEgbXVsdGlwYXJ0IHJlcXVlc3QKPFA+CjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWF4U2l6ZTwvQ09ERT4gLSBUaGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBpbiBieXRlcywgc2V0IHRvIDxjb2RlPi0xPC9jb2RlPgogICAgICAgICAgICAgICAgZm9yIG5vIGxpbWl0PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0TWF4U2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CmdldE1heFNpemU8L0gzPgo8UFJFPgpwdWJsaWMgbG9uZyA8Qj5nZXRNYXhTaXplPC9CPigpPC9QUkU+CjxETD4KPEREPkdldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0CjxQPgo8REQ+PERMPgoKPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBpbiBieXRlczwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImlzTWF4TGVuZ3RoRXhjZWVkZWQoKSI+PCEtLSAtLT48L0E+PEgzPgppc01heExlbmd0aEV4Y2VlZGVkPC9IMz4KPFBSRT4KcHVibGljIGJvb2xlYW4gPEI+aXNNYXhMZW5ndGhFeGNlZWRlZDwvQj4oKTwvUFJFPgo8REw+CjxERD5XaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gZXhjZWVkZWQgYnkgdGhlIGNsaWVudC4KPFA+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0Qm91bmRhcnlGcm9tQ29udGVudFR5cGU8L0gzPgo8UFJFPgpwcml2YXRlIGZpbmFsIHZvaWQgPEI+Z2V0Qm91bmRhcnlGcm9tQ29udGVudFR5cGU8L0I+KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KPERMPgo8REQ+UGFyc2VzIGEgY29udGVudC10eXBlIFN0cmluZyBmb3IgdGhlIGJvdW5kYXJ5Lgo8UD4KPEREPjxETD4KCjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldENvbnRlbnRUeXBlT2ZSZXF1ZXN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0Q29udGVudFR5cGVPZlJlcXVlc3Q8L0gzPgo8UFJFPgpwcml2YXRlIGZpbmFsIHZvaWQgPEI+Z2V0Q29udGVudFR5cGVPZlJlcXVlc3Q8L0I+KCk8L1BSRT4KPERMPgo8REQ+R2V0cyB0aGUgdmFsdWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgb2YgdGhlIHJlcXVlc3QuCjxQPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjcmVhdGVMb2NhbEZpbGUoKSI+PCEtLSAtLT48L0E+PEgzPgpjcmVhdGVMb2NhbEZpbGU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS5pby5GaWxlIDxCPmNyZWF0ZUxvY2FsRmlsZTwvQj4oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+CjxETD4KPEREPkNyZWF0ZXMgYSBmaWxlIG9uIGRpc2sgZnJvbSB0aGUgY3VycmVudCBtdWxpdHBhcnQgZWxlbWVudC4KPFA+CjxERD48REw+Cgo8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+CjxIUj4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7CjxTQ1JJUFQ+CiAgPCEtLQogIGlmKHdpbmRvdz09dG9wKSB7CiAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKICB9CiAgLy8tLT4KPC9TQ1JJUFQ+CjxOT1NDUklQVD4KPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+CjwvTk9TQ1JJUFQ+CjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KPC9CT0RZPgo8L0hUTUw+Cg==