PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTM6MDAgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBJbnRlcmZhY2UgIERUREhhbmRsZXINCjwvVElUTEU+DQo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EVERIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0RvY3VtZW50SGFuZGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0VudGl0eVJlc29sdmVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJEVERIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFI+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPg0KDQo8SFI+DQo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+DQo8SDI+DQo8Rk9OVCBTSVpFPSItMSI+DQpvcmcueG1sLnNheDwvRk9OVD4NCjxCUj4NCkludGVyZmFjZSAgRFRESGFuZGxlcjwvSDI+DQo8REw+DQo8RFQ+PEI+QWxsIEtub3duIFN1YmludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS94YWxhbi94c2x0Yy9kb20vRE9NQnVpbGRlci5odG1sIj5ET01CdWlsZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS94YWxhbi94c2x0Yy9kb20vRXh0ZW5kZWRTQVguaHRtbCI+RXh0ZW5kZWRTQVg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3htbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyLmh0bWwiPlNlcmlhbGl6YXRpb25IYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vamF2YXgveG1sL3RyYW5zZm9ybS9zYXgvVHJhbnNmb3JtZXJIYW5kbGVyLmh0bWwiPlRyYW5zZm9ybWVySGFuZGxlcjwvQT48L0REPg0KPC9ETD4NCjxETD4NCjxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvaGVscGVycy9EZWZhdWx0SGFuZGxlci5odG1sIj5EZWZhdWx0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUveG1sL2R0bS9yZWYvSW5jcmVtZW50YWxTQVhTb3VyY2VfRmlsdGVyLmh0bWwiPkluY3JlbWVudGFsU0FYU291cmNlX0ZpbHRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUveG1sL2R0bS9yZWYvc2F4MmR0bS9TQVgyRFRNLmh0bWwiPlNBWDJEVE08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3hhbGFuL3RyYW5zZm9ybWVyL1RyYW5zZm9ybWVySGFuZGxlckltcGwuaHRtbCI+VHJhbnNmb3JtZXJIYW5kbGVySW1wbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L2hlbHBlcnMvWE1MRmlsdGVySW1wbC5odG1sIj5YTUxGaWx0ZXJJbXBsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvSGFuZGxlckJhc2UuaHRtbCI+SGFuZGxlckJhc2U8L0E+PC9ERD4NCjwvREw+DQo8SFI+DQo8REw+DQo8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5EVERIYW5kbGVyPC9CPjwvREw+DQoNCjxQPg0KUmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYmFzaWMgRFRELXJlbGF0ZWQgZXZlbnRzLgoKIDxibG9ja3F1b3RlPgogPGVtPlRoaXMgbW9kdWxlLCBib3RoIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLCBpcyBpbiB0aGUKIFB1YmxpYyBEb21haW4sIGFuZCBjb21lcyB3aXRoIDxzdHJvbmc+Tk8gV0FSUkFOVFk8L3N0cm9uZz4uPC9lbT4KIFNlZSA8YSBocmVmPSdodHRwOi8vd3d3LnNheHByb2plY3Qub3JnJz5odHRwOi8vd3d3LnNheHByb2plY3Qub3JnPC9hPgogZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uCiA8L2Jsb2NrcXVvdGU+CgogPHA+SWYgYSBTQVggYXBwbGljYXRpb24gbmVlZHMgaW5mb3JtYXRpb24gYWJvdXQgbm90YXRpb25zIGFuZAogdW5wYXJzZWQgZW50aXRpZXMsIHRoZW4gdGhlIGFwcGxpY2F0aW9uIGltcGxlbWVudHMgdGhpcyAKIGludGVyZmFjZSBhbmQgcmVnaXN0ZXJzIGFuIGluc3RhbmNlIHdpdGggdGhlIFNBWCBwYXJzZXIgdXNpbmcgCiB0aGUgcGFyc2VyJ3Mgc2V0RFRESGFuZGxlciBtZXRob2QuICBUaGUgcGFyc2VyIHVzZXMgdGhlIAogaW5zdGFuY2UgdG8gcmVwb3J0IG5vdGF0aW9uIGFuZCB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb25zIHRvIAogdGhlIGFwcGxpY2F0aW9uLjwvcD4KCiA8cD5Ob3RlIHRoYXQgdGhpcyBpbnRlcmZhY2UgaW5jbHVkZXMgb25seSB0aG9zZSBEVEQgZXZlbnRzIHRoYXQKIHRoZSBYTUwgcmVjb21tZW5kYXRpb24gPGVtPnJlcXVpcmVzPC9lbT4gcHJvY2Vzc29ycyB0byByZXBvcnQ6CiBub3RhdGlvbiBhbmQgdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9ucy48L3A+CgogPHA+VGhlIFNBWCBwYXJzZXIgbWF5IHJlcG9ydCB0aGVzZSBldmVudHMgaW4gYW55IG9yZGVyLCByZWdhcmRsZXNzCiBvZiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIG5vdGF0aW9ucyBhbmQgdW5wYXJzZWQgZW50aXRpZXMgd2VyZQogZGVjbGFyZWQ7IGhvd2V2ZXIsIGFsbCBEVEQgZXZlbnRzIG11c3QgYmUgcmVwb3J0ZWQgYWZ0ZXIgdGhlCiBkb2N1bWVudCBoYW5kbGVyJ3Mgc3RhcnREb2N1bWVudCBldmVudCwgYW5kIGJlZm9yZSB0aGUgZmlyc3QKIHN0YXJ0RWxlbWVudCBldmVudC4KIChJZiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvZXh0L0xleGljYWxIYW5kbGVyLmh0bWwiPkxleGljYWxIYW5kbGVyPC9BPiBpcwogdXNlZCwgdGhlc2UgZXZlbnRzIG11c3QgYWxzbyBiZSByZXBvcnRlZCBiZWZvcmUgdGhlIGVuZERURCBldmVudC4pCiA8L3A+CgogPHA+SXQgaXMgdXAgdG8gdGhlIGFwcGxpY2F0aW9uIHRvIHN0b3JlIHRoZSBpbmZvcm1hdGlvbiBmb3IgCiBmdXR1cmUgdXNlIChwZXJoYXBzIGluIGEgaGFzaCB0YWJsZSBvciBvYmplY3QgdHJlZSkuCiBJZiB0aGUgYXBwbGljYXRpb24gZW5jb3VudGVycyBhdHRyaWJ1dGVzIG9mIHR5cGUgIk5PVEFUSU9OIiwKICJFTlRJVFkiLCBvciAiRU5USVRJRVMiLCBpdCBjYW4gdXNlIHRoZSBpbmZvcm1hdGlvbiB0aGF0IGl0CiBvYnRhaW5lZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHRvIGZpbmQgdGhlIGVudGl0eSBhbmQvb3IKIG5vdGF0aW9uIGNvcnJlc3BvbmRpbmcgd2l0aCB0aGUgYXR0cmlidXRlIHZhbHVlLjwvcD4NCjxQPg0KPERMPg0KPERUPjxCPlNpbmNlOiA8L0I+PEREPlNBWCAxLjA8L0REPg0KPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L1hNTFJlYWRlci5odG1sI3NldERUREhhbmRsZXIob3JnLnhtbC5zYXguRFRESGFuZGxlcikiPjxDT0RFPlhNTFJlYWRlci5zZXREVERIYW5kbGVyKG9yZy54bWwuc2F4LkRUREhhbmRsZXIpPC9DT0RFPjwvQT48L0RMPg0KPEhSPg0KDQo8UD4NCjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvRFRESGFuZGxlci5odG1sI25vdGF0aW9uRGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bm90YXRpb25EZWNsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHVibGljSWQsCiAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSWQpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWNlaXZlIG5vdGlmaWNhdGlvbiBvZiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGV2ZW50LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0RUREhhbmRsZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnVucGFyc2VkRW50aXR5RGVjbDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3B1YmxpY0lkLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N5c3RlbUlkLAogICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25vdGF0aW9uTmFtZSk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlY2VpdmUgbm90aWZpY2F0aW9uIG9mIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBldmVudC48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjxQPg0KDQo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0ibm90YXRpb25EZWNsKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpub3RhdGlvbkRlY2w8L0gzPg0KPFBSRT4NCnB1YmxpYyB2b2lkIDxCPm5vdGF0aW9uRGVjbDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHVibGljSWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSWQpCiAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPlJlY2VpdmUgbm90aWZpY2F0aW9uIG9mIGEgbm90YXRpb24gZGVjbGFyYXRpb24gZXZlbnQuCgogPHA+SXQgaXMgdXAgdG8gdGhlIGFwcGxpY2F0aW9uIHRvIHJlY29yZCB0aGUgbm90YXRpb24gZm9yIGxhdGVyCiByZWZlcmVuY2UsIGlmIG5lY2Vzc2FyeTsKIG5vdGF0aW9ucyBtYXkgYXBwZWFyIGFzIGF0dHJpYnV0ZSB2YWx1ZXMgYW5kIGluIHVucGFyc2VkIGVudGl0eQogZGVjbGFyYXRpb25zLCBhbmQgYXJlIHNvbWV0aW1lIHVzZWQgd2l0aCBwcm9jZXNzaW5nIGluc3RydWN0aW9uCiB0YXJnZXQgbmFtZXMuPC9wPgoKIDxwPkF0IGxlYXN0IG9uZSBvZiBwdWJsaWNJZCBhbmQgc3lzdGVtSWQgbXVzdCBiZSBub24tbnVsbC4KIElmIGEgc3lzdGVtIGlkZW50aWZpZXIgaXMgcHJlc2VudCwgYW5kIGl0IGlzIGEgVVJMLCB0aGUgU0FYCiBwYXJzZXIgbXVzdCByZXNvbHZlIGl0IGZ1bGx5IGJlZm9yZSBwYXNzaW5nIGl0IHRvIHRoZQogYXBwbGljYXRpb24gdGhyb3VnaCB0aGlzIGV2ZW50LjwvcD4KCiA8cD5UaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgbm90YXRpb24gZGVjbGFyYXRpb24gd2lsbCBiZQogcmVwb3J0ZWQgYmVmb3JlIGFueSB1bnBhcnNlZCBlbnRpdGllcyB0aGF0IHVzZSBpdC48L3A+PEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgbm90YXRpb24gbmFtZS48REQ+PENPREU+cHVibGljSWQ8L0NPREU+IC0gVGhlIG5vdGF0aW9uJ3MgcHVibGljIGlkZW50aWZpZXIsIG9yIG51bGwgaWYKICAgICAgICBub25lIHdhcyBnaXZlbi48REQ+PENPREU+c3lzdGVtSWQ8L0NPREU+IC0gVGhlIG5vdGF0aW9uJ3Mgc3lzdGVtIGlkZW50aWZpZXIsIG9yIG51bGwgaWYKICAgICAgICBub25lIHdhcyBnaXZlbi48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvU0FYRXhjZXB0aW9uLmh0bWwiPlNBWEV4Y2VwdGlvbjwvQT4gLSBBbnkgU0FYIGV4Y2VwdGlvbiwgcG9zc2libHkKICAgICAgICAgICAgd3JhcHBpbmcgYW5vdGhlciBleGNlcHRpb24uPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0RUREhhbmRsZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPnVucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTwvQ09ERT48L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0F0dHJpYnV0ZXMuaHRtbCI+PENPREU+QXR0cmlidXRlczwvQ09ERT48L0E+PC9ETD4NCjwvREQ+DQo8L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJ1bnBhcnNlZEVudGl0eURlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCnVucGFyc2VkRW50aXR5RGVjbDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+dW5wYXJzZWRFbnRpdHlEZWNsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwdWJsaWNJZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzeXN0ZW1JZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtub3RhdGlvbk5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9TQVhFeGNlcHRpb24uaHRtbCI+U0FYRXhjZXB0aW9uPC9BPjwvUFJFPg0KPERMPg0KPEREPlJlY2VpdmUgbm90aWZpY2F0aW9uIG9mIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBldmVudC4KCiA8cD5Ob3RlIHRoYXQgdGhlIG5vdGF0aW9uIG5hbWUgY29ycmVzcG9uZHMgdG8gYSBub3RhdGlvbgogcmVwb3J0ZWQgYnkgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L0RUREhhbmRsZXIuaHRtbCNub3RhdGlvbkRlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm5vdGF0aW9uRGVjbDwvQT4gZXZlbnQuICAKIEl0IGlzIHVwIHRvIHRoZSBhcHBsaWNhdGlvbiB0byByZWNvcmQgdGhlIGVudGl0eSBmb3IgbGF0ZXIgCiByZWZlcmVuY2UsIGlmIG5lY2Vzc2FyeTsKIHVucGFyc2VkIGVudGl0aWVzIG1heSBhcHBlYXIgYXMgYXR0cmlidXRlIHZhbHVlcy4gCiA8L3A+CgogPHA+SWYgdGhlIHN5c3RlbSBpZGVudGlmaWVyIGlzIGEgVVJMLCB0aGUgcGFyc2VyIG11c3QgcmVzb2x2ZSBpdAogZnVsbHkgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhlIGFwcGxpY2F0aW9uLjwvcD48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSB1bnBhcnNlZCBlbnRpdHkncyBuYW1lLjxERD48Q09ERT5wdWJsaWNJZDwvQ09ERT4gLSBUaGUgZW50aXR5J3MgcHVibGljIGlkZW50aWZpZXIsIG9yIG51bGwgaWYgbm9uZQogICAgICAgIHdhcyBnaXZlbi48REQ+PENPREU+c3lzdGVtSWQ8L0NPREU+IC0gVGhlIGVudGl0eSdzIHN5c3RlbSBpZGVudGlmaWVyLjxERD48Q09ERT5ub3RhdGlvbk5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGFzc29jaWF0ZWQgbm90YXRpb24uPERUPjxCPlRocm93czo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy94bWwvc2F4L1NBWEV4Y2VwdGlvbi5odG1sIj5TQVhFeGNlcHRpb248L0E+IC0gQW55IFNBWCBleGNlcHRpb24sIHBvc3NpYmx5CiAgICAgICAgICAgIHdyYXBwaW5nIGFub3RoZXIgZXhjZXB0aW9uLjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9EVERIYW5kbGVyLmh0bWwjbm90YXRpb25EZWNsKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Q09ERT5ub3RhdGlvbkRlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZyk8L0NPREU+PC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi9vcmcveG1sL3NheC9BdHRyaWJ1dGVzLmh0bWwiPjxDT0RFPkF0dHJpYnV0ZXM8L0NPREU+PC9BPjwvREw+DQo8L0REPg0KPC9ETD4NCjwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4NCjxIUj4NCg0KPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPg0KPFRSPg0KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPg0KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+DQogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RUREhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvRG9jdW1lbnRIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vb3JnL3htbC9zYXgvRW50aXR5UmVzb2x2ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsNCiZuYnNwOzxBIEhSRUY9IkRUREhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K