PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KPGhlYWQ+Cjx0aXRsZT5FY2xpcHNlIE9wZW4gSGVhbHRoY2FyZSBGcmFtZXdvcmsgUHJvamVjdDwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3Byb3Bvc2Fscy9lY2xpcHNlLXdlYnRvb2xzL3RlbXBsYXRlcy9lY2xpcHNlL2VjbGlwc2UuY3NzIj48L2hlYWQ+Cjxib2R5IHRleHQ9IiMwMDAwMDAiIGJnY29sb3I9IiNmZmZmZmYiIGxpbms9IiMwMDAwZWUiIHZsaW5rPSIjNTUxYThiIiBhbGluaz0iI2ZmMDAwMCI+CjxUQUJMRSBjZWxsU3BhY2luZz01IGNlbGxQYWRkaW5nPTIgd2lkdGg9IjEwMCUiIGJvcmRlcj0wPgogIDxUQk9EWT4KICA8VFI+CiAgICA8VEQgYWxpZ249bGVmdCB3aWR0aD0iNjAlIj48Rk9OVCBjbGFzcz1pbmRleHRvcD5PcGVuIEhlYWx0aGNhcmUgRnJhbWV3b3JrPC9GT05UPgogICAgPEJSPjxGT05UIGNsYXNzPWluZGV4c3ViPkEgVGVjaG5vbG9neSBQcm9qZWN0IFByb3Bvc2FsCiAgICAgIDwvRk9OVD48L1REPgogICAgPFREIHdpZHRoPSI0MCUiPgogICAgPElNRyBoZWlnaHQ9ODYgaHNwYWNlPTUwIHNyYz0iL2ltYWdlcy9JZGVhLmpwZyIgCiAgICAgIHdpZHRoPTEyMCBhbGlnbj1jZW50ZXI+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT4KPFRBQkxFIGNlbGxTcGFjaW5nPTUgY2VsbFBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgYm9yZGVyPTA+CiAgPFRCT0RZPgogIDxUUj4KICAgIDxURCB2QWxpZ249dG9wIGFsaWduPWxlZnQgYmdDb2xvcj0jMDA4MGMwIGNvbFNwYW49Mj48Qj48Rk9OVCAKICAgICAgZmFjZT1BcmlhbCxIZWx2ZXRpY2EgY29sb3I9I2ZmZmZmZj5JbnRyb2R1Y3Rpb248L0ZPTlQ+PC9CPjwvVEQ+PC9UUj4KICA8VFI+CiAgICAgIDxURD4gPFA+VGhlIEVjbGlwc2UgT3BlbiBIZWFsdGhjYXJlIEZyYW1ld29yayBQcm9qZWN0IGlzIGEgcHJvcG9zZWQgb3BlbiBzb3VyY2UgCiAgICAgICAgICBwcm9qZWN0IHVuZGVyIHRoZSA8YSBocmVmPSIvdGVjaG5vbG9neS8iPkVjbGlwc2UgVGVjaG5vbG9neSBQcm9qZWN0PC9hPi4gPC9QPgogICAgICAgIDxwPlRoaXMgcHJvcG9zYWwgaXMgaW4gdGhlIFByb2plY3QgUHJvcG9zYWwgUGhhc2UgKGFzIGRlZmluZWQgaW4gdGhlIDxhIGhyZWY9Ii9wcm9qZWN0cy9kZXZfcHJvY2Vzcy8iPkVjbGlwc2UgCiAgICAgICAgICBEZXZlbG9wbWVudCBQcm9jZXNzIGRvY3VtZW50PC9hPikgYW5kIGlzIHdyaXR0ZW4gdG8gZGVjbGFyZSBpdHMgaW50ZW50IAogICAgICAgICAgYW5kIHNjb3BlLiBUaGlzIHByb3Bvc2FsIGlzIHdyaXR0ZW4gdG8gc29saWNpdCBhZGRpdGlvbmFsIHBhcnRpY2lwYXRpb24gCiAgICAgICAgICBhbmQgaW5wdXQgZnJvbSB0aGUgRWNsaXBzZSBjb21tdW5pdHkuIFlvdSBhcmUgaW52aXRlZCB0byBjb21tZW50IG9uIAogICAgICAgICAgYW5kL29yIGpvaW4gdGhlIHByb2plY3QuIFBsZWFzZSBzZW5kIGFsbCBmZWVkYmFjayB0byB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9uZXdzcG9ydGFsL3RocmVhZC5waHA/Z3JvdXA9ZWNsaXBzZS50ZWNobm9sb2d5Lm9oZiI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9uZXdzcG9ydGFsL3RocmVhZC5waHA/Z3JvdXA9ZWNsaXBzZS50ZWNobm9sb2d5Lm9oZjwvYT4gbmV3c2dyb3VwLjxicj4KJm5ic3A7PC9wPgogICAgICAgIDwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+CjxUQUJMRSBjZWxsU3BhY2luZz01IGNlbGxQYWRkaW5nPTIgd2lkdGg9IjEwMCUiIGJvcmRlcj0wPgogIDxUQk9EWT4KICA8dHI+CiAgICA8VEQgdkFsaWduPXRvcCBhbGlnbj1sZWZ0IGJnQ29sb3I9IzAwODBjMD48Yj4KICAgIDxmb250IGZhY2U9IkFyaWFsLEhlbHZldGljYSIgY29sb3I9IiNGRkZGRkYiPk92ZXJ2aWV3PC9mb250PjwvYj48L1REPgogIDwvdHI+CiAgPHRyPgogICAgICA8VEQ+CiAgICAgIDxQPlRoZSBnb2FsIG9mIHRoZSBPcGVuIEhlYWx0aGNhcmUgRnJhbWV3b3JrIChPSEYpIGlzIHRvIGJ1aWxkIGFuIAogICAgICBpbnRlcm9wZXJhYmxlLCBleHRlbnNpYmxlLCBvcGVuLXNvdXJjZSBoZWFsdGhjYXJlIGZyYW1ld29yayBvbiB0b3Agb2YgdGhlIAogICAgICBFY2xpcHNlIFBsYXRmb3JtLCBhbmQgdG8gZGVtb25zdHJhdGUgdGhhdCBleHRlbnNpYmlsaXR5IHdpdGggYSBzZXQgb2YgCiAgICAgIGV4ZW1wbGFyeSB0b29scy4gT0hGIHdpbGwgZW5hYmxlIHNvZnR3YXJlIHByb3ZpZGVycyB0byBjcmVhdGUgc3BlY2lhbGl6ZWQsIAogICAgICBkaWZmZXJlbnRpYXRlZCBvZmZlcmluZ3MgZm9yIHRoZSBoZWFsdGhjYXJlIGluZHVzdHJ5LCBvZmZlcmluZ3Mgd2hpY2ggCiAgICAgIGNvbXBseSB3aXRoIGdvdmVybm1lbnQgcmVndWxhdGlvbnMgYW5kIGluZHVzdHJ5IHN0YW5kYXJkcy4gT0hGIHdpbGwgCiAgICAgIHByb2R1Y2UgZnJhbWV3b3JrcyB0aGF0IGFkZHJlc3MgdGhlIG5lZWRzIG9mIHRoZSBoZWFsdGhjYXJlIGluZHVzdHJ5LCAKICAgICAgZ292ZXJubWVudCByZWd1bGF0b3JzLCBwYXRpZW50cyBhbmQgaW5zdXJhbmNlIHByb3ZpZGVycy48YnI+CiZuYnNwOzwvUD4KICAgICAgIDwvVEQ+CiAgPC90cj4KICA8VFI+CiAgICA8VEQgdkFsaWduPXRvcCBhbGlnbj1sZWZ0IGJnQ29sb3I9IzAwODBjMD48Qj48Rk9OVCAKICAgICAgZmFjZT1BcmlhbCxIZWx2ZXRpY2E+PEZPTlQgCmNvbG9yPSNmZmZmZmY+QmFja2dyb3VuZDwvRk9OVD48L0ZPTlQ+PC9CPjwvVEQ+PC9UUj4KICA8VFI+CiAgICAgIDxURD4gPFA+SGVhbHRoY2FyZSBpbiB0aGUgVW5pdGVkIFN0YXRlcyBoYXMgYmVlbiBjaGFyYWN0ZXJpemVkIGFzIGEgJDEuNyAKICAgICAgdHJpbGxpb24gY290dGFnZSBpbmR1c3RyeS4gSXQgaXMgaGlnaGx5IGZyYWdtZW50ZWQsIGxhYm9yIGludGVuc2l2ZSwgCiAgICAgIGJhcmVseSBjb25uZWN0ZWQsIGV4dHJlbWVseSBjb21wZXRpdGl2ZSwgd2l0aCBtYW55IGRpZmZlcmVudCB2ZW5kb3JzIGFuZCAKICAgICAgc29sdXRpb25zIHRoYXQgYXJlIGFsbCBwcm9wcmlldGFyeS4gQWdhaW5zdCB0aGlzIGJhY2tkcm9wLCB0aGUgVS5TLiAKICAgICAgRGVwYXJ0bWVudCBvZiBIZWFsdGggYW5kIEh1bWFuIFNlcnZpY2UgaXNzdWVkIHJlZ3VsYXRpb25zIHRvIHJlcXVpcmUgdGhhdCAKICAgICAgaGVhbHRoY2FyZSBvcmdhbml6YXRpb25zIGVzdGFibGlzaCBhZG1pbmlzdHJhdGl2ZSwgcGh5c2ljYWwgYW5kIHRlY2huaWNhbCAKICAgICAgaW5mcmFzdHJ1Y3R1cmUgdG8gc2FmZWd1YXJkIHNlbnNpdGl2ZSBoZWFsdGggaW5mb3JtYXRpb24gYXMgd2VsbCBhcyB0byAKICAgICAgaW1wbGVtZW50IHN0YW5kYXJkcyB0byBpbXByb3ZlIGVmZmljaWVuY3kgaW4gaGVhbHRoY2FyZSBkZWxpdmVyeS4gVGhlIFVTIAogICAgICBnb3Zlcm5tZW50IGVzdGltYXRlcyBkcmFtYXRpYyBjb3N0IHNhdmluZ3MgYXQgbW9yZSB0aGFuICQyNTAgYmlsbGlvbiAKICAgICAgYW5udWFsbHkgaWYgdGhlIGhlYWx0aGNhcmUgaW5kdXN0cmllcyBjYW4gYmUgYXV0b21hdGVkLiBIZWFsdGhjYXJlIHN5c3RlbXMgCiAgICAgIHRocm91Z2hvdXQgdGhlIHdvcmxkIGZhY2Ugc2ltaWxhciBjaGFsbGVuZ2VzIGFuZCBvcHBvcnR1bml0aWVzLiBBdCB0aGUgCiAgICAgIHNhbWUgdGltZSwgdGhlIGFtb3VudCBvZiBkZXRhaWxlZCBoZWFsdGhjYXJlIGluZm9ybWF0aW9uIGlzIG92ZXJ3aGVsbWluZy4gCiAgICAgIFRoZSBhYmlsaXR5IHRvIGdlbmVyYXRlIHRoZSBpbmZvcm1hdGlvbiBoYXMgb3V0c3RyaXBwZWQgaXRzIHVzYWJpbGl0eS4gCiAgICAgIENvbW1lcmNpYWwgYW5kIHByb3ByaWV0YXJ5IHNvbHV0aW9ucyBhbmQgc3lzdGVtcyBoYXZlIGdlbmVyYXRlZCBtdWx0aXBsZSAKICAgICAgZW52aXJvbm1lbnRzIHdpdGhvdXQgdGhlIGJhc2ljIGludGVyb3BlcmFiaWxpdHkgb2Ygc3lzdGVtcyBvciBpbmZvcm1hdGlvbi4gCiAgICAgIEhlYWx0aGNhcmUgaW5mb3JtYXRpb24gc3lzdGVtcyBlbmNvbXBhc3MgdmFzdGx5IGRpZmZlcmVudCB0eXBlcyBvZiAKICAgICAgaW5mb3JtYXRpb24gdHJhY2tpbmcgZnJvbSBwcmUtbmF0YWwgdG8gcG9zdC1tb3J0ZW0uIEluZHVzdHJ5IHN0YW5kYXJkcyBhbmQgCiAgICAgIHNwZWNpZmljYXRpb25zIGFyZSBicm9hZCwgY29tcGxleCBhbmQgbGFjayBpbXBsZW1lbnRhdGlvbnMuIEluZHVzdHJ5IGhhcyAKICAgICAgc3VmZmVyZWQgZnJvbSBwcm9saWZlcmF0aW9uIG9mIG5ldyB0ZWNobm9sb2dpZXMgd2hpY2ggaGF2ZSB5aWVsZGVkIG1vcmUgCiAgICAgIGNvbXBsZXhpdGllcyByYXRoZXIgdGhhbiBjb2xsYWJvcmF0aXZlIHNvbHV0aW9ucy4gUHJpdmFjeSwgc2VjdXJpdHkgYW5kIAogICAgICBhY2N1cmFjeSBhcmUgb2YgY3JpdGljYWwgY29uY2Vybi48YnI+CiZuYnNwOzwvUD4KICAgICAgPC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT4KPFRBQkxFIGNlbGxTcGFjaW5nPTUgY2VsbFBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgYm9yZGVyPTA+CiAgPFRCT0RZPgogIDx0cj4KICAgIDxURCB2QWxpZ249dG9wIGFsaWduPWxlZnQgYmdDb2xvcj0jMDA4MGMwPjxiPgogICAgPGZvbnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIiBjb2xvcj0iI0ZGRkZGRiI+U2NvcGU8L2ZvbnQ+PC9iPjwvVEQ+CiAgPC90cj4KICA8dHI+CiAgICAgIDxURD4gCiAgICAgIDxQPlRoZSBwcm9qZWN0IHdpbGwgcHJvdmlkZSBhIGNvbW1vbiwgdmVuZG9yLW5ldXRyYWwgZnJhbWV3b3JrIHRoYXQgCiAgICAgIGluY2x1ZGVzIGEgc2V0IG9mIGxvY2FsIGluZnJhc3RydWN0dXJlLWxldmVsIHNlcnZpY2VzIGFuZCBleGVtcGxhcnkgdG9vbHMgCiAgICAgIHRoYXQgc3VwcG9ydCBpbnRlcmFjdGlvbiB3aXRoIGRpc3RyaWJ1dGVkIEVsZWN0cm9uaWMgSGVhbHRoIFJlY29yZHMgKGVIUnMpLCAKICAgICAgY29tbW9uIHJlc291cmNlcyBvbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5vcy5kaGhzLmdvdi9oZWFsdGhpdCI+TmF0aW9uYWwgSGVhbHRoIEluZm9ybWF0aW9uIE5ldHdvcms8L2E+IChlLmcuIHBhdGllbnQgCiAgICAgIGRpcmVjdG9yaWVzLCBwcm92aWRlciBkaXJlY3RvcmllcywgbG9jYXRvciBzZXJ2aWNlcywgY3JlZGVudGlhbCBzZXJ2aWNlcykgCiAgICAgIGFuZCBvdGhlciBuZXR3b3JrLWJhc2VkIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IGxvY2FsbHkgZXhlY3V0aW5nIGhlYWx0aGNhcmUgCiAgICAgIHByb2Nlc3NlcyBhbmQgd29ya2Zsb3dzLjxicj4KICAgICAgPGJyPgogICAgICBVbmxpa2UgZXhpc3RpbmcgZUhSIHN5c3RlbXMgYW5kIGhlYWx0aGNhcmUgYXBwbGljYXRpb25zLCB0aGUgbmV4dCAKICAgICAgZ2VuZXJhdGlvbiBvZiBlSFIgc3lzdGVtcyBhcmUgYmVpbmcgZGVzaWduZWQgYXMgZGlzdHJpYnV0ZWQsIAogICAgICBsb29zZWx5LWNvdXBsZWQgc3lzdGVtcyB0aGF0IGNvbXBseSB3aXRoIGVtZXJnaW5nIHN0YW5kYXJkcyBmb3IgZUhSIAogICAgICBkb2N1bWVudCBzdHJ1Y3R1cmUgYW5kIGVIUiBzeXN0ZW0gZnVuY3Rpb25hbCByZXF1aXJlbWVudHMgZGVmaW5lZCBieSAKICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5obDcub3JnL2VociI+SEw3PC9hPiwgCiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXN0bS5vcmcvY2dpLWJpbi9Tb2Z0Q2FydC5leGUvQ09NTUlUL0NPTU1JVFRFRS9FMzEuaHRtP0wrbXlzdG9yZStpc3ltNTM5NisxMTEyNzc0MDUzIj5BU1RNPC9hPiBhbmQgb3RoZXIgaGVhbHRoY2FyZSBzdGFuZGFyZHMgYm9kaWVzLiBBbiBlSFIgaXMgYSBjb2xsZWN0aW9uIG9mIAogICAgICBkb2N1bWVudHMgY29udGFpbmluZyBhIHBhdGllbnQncyBoZWFsdGhjYXJlIGluZm9ybWF0aW9uIHRoYXQgYXJlIGNyZWF0ZWQgaW4gY29tcGxpYW5jZSB3aXRoIHN0YW5kYXJkIHNwZWNpZmljYXRpb25zIHRoYXQgZGVmaW5lIAogICAgICBkb2N1bWVudCBzdHJ1Y3R1cmUsIGRhdGF0eXBlcywgdGVybWlub2xvZ3kvdm9jYWJ1bGFyeSBhbmQgZXNzZW50aWFsIAogICAgICBwcm9jZXNzaW5nIHJlcXVpcmVtZW50cy4gV2UgaW1wbGVtZW50IGluZHVzdHJ5IHN0YW5kYXJkIHJlcXVpcmVtZW50cyB0aGF0IAogICAgICBhc3N1cmUgYW4gYXV0aG9yknMgc2VtYW50aWMgaW50ZW50IGlzIGNhcHR1cmVkIGluIGEgbWFubmVyIHRoYXQgY2FuIGxhdGVyIAogICAgICBiZSByZWNvdmVyZWQgYnkgYSBkaWZmZXJlbnQgcGVyc29uIG9yIG1hY2hpbmUgYXQgYSBsYXRlciB0aW1lIGFuZCBwbGFjZS4KICAgICAgPGJyPgogICAgICA8YnI+CiAgICAgIFRoZSBPSEYgd2lsbCBiZSBhYmxlIHRvIHRha2Ugc3RhbmRhcmRzLWNvbXBsaWFudCBlSFIgZG9jdW1lbnRzLCBhcyB3ZWxsIGFzIAogICAgICBvdGhlciBzdHJ1Y3R1cmVkIGhlYWx0aGNhcmUgZG9jdW1lbnRzL21lc3NhZ2VzLCBhbmQgcHJvY2VzcyB0aGVtIGFzIAogICAgICByZXF1aXJlZCB0byByZWNvdmVyIHNlbWFudGljIGNvbnRlbnQgZm9yIHByZXNlbnRhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIE9IRiAKICAgICAgdXNlcpJzIHJvbGUgYW5kIHBlcnNwZWN0aXZlLiA8YnI+CiAgICAgIDxicj4KICAgICAgVGhlIE9IRiB3aWxsIHByb3ZpZGUgZnJhbWV3b3JrIHVzZXJzIChzdWNoIGFzIGhlYWx0aGNhcmUgYXBwbGljYXRpb24gCiAgICAgIHZlbmRvcnMpIHdpdGggdGhlIGludGVyb3BlcmFiaWxpdHkgdG9vbHMgdGhhdCBwcm92aWRlIG5lYXItdHJhbnNwYXJlbnQgCiAgICAgIHRyYW5zcG9ydCBsYXllcnMgdGhhdCBoYW5kbGUgcmVndWxhdGlvbi1pbXBvc2VkIHNlY3VyaXR5IGFuZCBwcml2YWN5IAogICAgICByZXF1aXJlbWVudHMuPGJyPgogICAgICA8YnI+CiAgICAgIFRoZSBleGNoYW5nZSBvZiBmb3JtYXR0ZWQgZGF0YSB3aXRoIGxlZ2FjeSBzeXN0ZW1zLCBlc3BlY2lhbGx5IGluIHN1cHBvcnQgCiAgICAgIG9mIG1pZ3JhdGlvbiBvZiBleGlzdGluZyBzeXN0ZW1zIHRvIGVtZXJnaW5nIGVIUiBzdGFuZGFyZGl6ZWQgc3lzdGVtcywgCiAgICAgIHdpbGwgYmUgCiAgICAgIGZhY2lsaXRhdGVkIGJ5IHBsdWdnYWJsZSBhZGFwdGVycy4gPGJyPgombmJzcDs8L1A+CiAgICAgICAgPC9URD4KICAgIDwvdHI+CiAgPFRSPgogICAgPFREIHZBbGlnbj10b3AgYWxpZ249bGVmdCBiZ0NvbG9yPSMwMDgwYzA+PEI+PEZPTlQgCiAgICAgIGZhY2U9QXJpYWwsSGVsdmV0aWNhPjxGT05UIAogIGNvbG9yPSNmZmZmZmY+RGVzY3JpcHRpb248L0ZPTlQ+PC9GT05UPjwvQj48L1REPjwvVFI+CiAgICA8VFI+IAogICAgICA8VEQ+IAogICAgICA8UD5UaGUgZm9sbG93aW5nIGlzIGEgaGlnaCBsZXZlbCBzY2hlbWF0aWMgdmlzdWFsIG9mIHRoZSBwcm9wb3NlZCBPSEYgCiAgICAgIHByb2plY3QuIDxicj4KICAgICAgPGJyPgogICAgICA8aW1nIGJvcmRlcj0iMCIgc3JjPSJpbWFnZTAwMi5qcGciIHdpZHRoPSI1MTAiIGhlaWdodD0iMzc3Ij48YnI+CiAgICAgIDxicj4KICAgICAgVGhlIE9IRiBlbmNvbXBhc3NlcyBhIGNvbW1vbiBmb3VuZGF0aW9uIG9mIHNlcnZpY2VzIGZvciBjcmVhdGluZywgCiAgICAgIG1hbmFnaW5nLCBzdG9yaW5nIGFuZCByZXRyaWV2aW5nIGFuIEVsZWN0cm9uaWMgSGVhbHRoIFJlY29yZCAoZUhSKSwgd2hpY2ggCiAgICAgIGNvbmZvcm1zIHRvIHRoZSBpbmR1c3RyeSBzdGFuZGFyZHMuIEluIGFkZGl0aW9uLCB0aGUgT0hGIHByZXNlcnZlcyBhbmQgCiAgICAgIHByb3RlY3RzIHRoZSBwcml2YWN5LCBzZWN1cml0eSBhbmQgaWRlbnRpdHkgb2YgaW5kaXZpZHVhbHMgYW5kIHN5c3RlbXMuIAogICAgICBGaW5hbGx5LCB0aGUgT0hGIGFkYXB0cyB0aGUgaW5kdXN0cnmScyBsZWdhY3kgZW52aXJvbm1lbnRzLCBpbmNsdWRpbmcgCiAgICAgIGRhdGEsIGFwcGxpY2F0aW9ucyBhbmQgd29ya2Zsb3cgcHJvY2Vzc2VzLiBGb3IgZWFjaCBvZiB0aGVzZSBmdW5jdGlvbmFsIAogICAgICBhcmVhcywgdGhlIE9IRiBwcm92aWRlcyBmcmFtZXdvcmtzIHdpdGggd2VsbC1kZWZpbmVkIGV4dGVuc2lvbiBwb2ludHMgCiAgICAgIChwbHVnLWlucykuIFVwb24gdGhlc2UgZnJhbWV3b3JrcywgdGhlIE9IRiBidWlsZHMgZXhlbXBsYXJ5IGFuZCBleHRlbnNpYmxlIAogICAgICB0b29scy48YnI+CiAgICAgIDxicj4KICAgICAgVGhlIHByb3Bvc2VkIGZyYW1ld29yayBjYW4gYmUgY29uc2lkZXJlZCB0byBiZSBhbiBlbmFibGluZyBpbmZyYXN0cnVjdHVyZSAKICAgICAgZm9yIHRoZSBoaWdoZXItbGV2ZWwgaGVhbHRoY2FyZSBhcHBsaWNhdGlvbnMuIFRoZSBhdmFpbGFiaWxpdHkgb2YgdGhpcyAKICAgICAgZnJhbWV3b3JrIGlzIGludGVuZGVkIHRvIGFsbG93IGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgdG8gZm9jdXMgb24gCiAgICAgIGlubm92YXRpb24gYW5kIGRlbGl2ZXJ5IG9mIGNvcmUgdmFsdWUgcmF0aGVyIHRoYW4gcmVwZXRpdGlvbiBhbmQgCiAgICAgIHJlaW52ZW50aW9uLiA8YnI+CiAgICAgIDxicj4KICAgICAgPGI+SW5kdXN0cnkgU3RhbmRhcmRzIEltcGxlbWVudGF0aW9uPC9iPjxicj4KICAgICAgVGhpcyBzb2x1dGlvbiBidWlsZHMgYSBmcmFtZXdvcmsgdGhhdCBjb25zaXN0cyBvZiBhIGNvbXByZWhlbnNpdmUsIAogICAgICBzdGFuZGFyZHMtYmFzZWQgaW5mb3JtYXRpb24gbW9kZWwgY291cGxlZCB3aXRoIGEgc2V0IG9mIGludGVncmF0ZWQgCiAgICAgIHNlcnZpY2VzIGZvciBkYXRhIGV4Y2hhbmdlLCBpZGVudGl0eSBtYW5hZ2VtZW50IGFuZCBidXNpbmVzcyBwcm9jZXNzIAogICAgICB3b3JrZmxvdyBtYW5hZ2VtZW50LiBJdCBpbXBsZW1lbnRzIGluZHVzdHJ5IHN0YW5kYXJkcyB0aGF0IHN1cHBvcnQgCiAgICAgIGVsZWN0cm9uaWMgaGVhbHRoY2FyZSByZWNvcmRzICiTZUhSc5QpLCBISVBBQSBjb21wbGlhbmNlIGFuZCBwcm9jZXNzIAogICAgICBhdXRvbWF0aW9uLiBUaGUgbW9kZWwgc3VwcG9ydHMgZG9jdW1lbnQvbWVzc2FnZSBjcmVhdGlvbiwgY29tcGlsYXRpb24sIAogICAgICB0cmFuc3BvcnQsIHRyYW5zbGF0aW9uLCBzdG9yYWdlIGFuZCBwcmVzZW50YXRpb26XYWxsIHdoaWxlIG1haW50YWluaW5nIGFuIAogICAgICBlbnZpcm9ubWVudCB0aGF0IGFzc3VyZXMgZG9jdW1lbnQvbWVzc2FnZSBpbnRlZ3JpdHksIGNvbmZpZGVudGlhbGl0eSBhbmQgCiAgICAgIGludGVyb3BlcmFiaWxpdHkuIEl0IHByb3ZpZGVzIGNvbXByZWhlbnNpdmUgc3VwcG9ydCBmb3IgSEw3IHByb3RvY29sIAogICAgICBzcGVjaWZpY2F0aW9uIHN0YW5kYXJkcyBiYXNlZCB1cG9uIHRoZSBITDcgVmVyc2lvbiAzIFJlZmVyZW5jZSBJbmZvcm1hdGlvbiAKICAgICAgTW9kZWwsIHdoaWNoIGluY2x1ZGVzIGRhdGEgc3RydWN0dXJlcyBmb3Igc3VjaCBkaXZlcnNlIHB1cnBvc2VzIGFzIHBhdGllbnQgCiAgICAgIGFkbWluaXN0cmF0aW9uLCBsYWJvcmF0b3J5IGJpbGxpbmcsIGltYWdpbmcgYW5kIHBoYXJtYWN5IG9yZGVyIAogICAgICBtYW5hZ2VtZW50LiBJbiBhZGRpdGlvbiwgdGhlIE9IRiBQcm9qZWN0IHdpbGwgc3VwcG9ydCB0aGUgam9pbnQgT01HLUhMNyAKICAgICAgaGVhbHRoY2FyZSBJVCBzeXN0ZW1zIGludGVyb3BlcmFiaWxpdHkgc3RhbmRhcmRzIGJhc2VkIG9uIHRoZSBNb2RlbC1Ecml2ZW4gCiAgICAgIEFyY2hpdGVjdHVyZSAoTURBKS4gPGJyPgogICAgICAmbmJzcDs8L1A+CiAgICAgICAgPC9URD4KICAgIDwvVFI+PC9UQk9EWT48L1RBQkxFPgo8VEFCTEUgY2VsbFNwYWNpbmc9NSBjZWxsUGFkZGluZz0yIHdpZHRoPSIxMDAlIiBib3JkZXI9MD4KICA8VEJPRFk+CiAgICA8dHI+CiAgICAgIDxURCB2QWxpZ249dG9wIGFsaWduPWxlZnQgYmdDb2xvcj0jMDA4MGMwPjxCPjxGT05UIGNvbG9yPSIjRkZGRkZGIiAKICAgICAgZmFjZT1BcmlhbCxIZWx2ZXRpY2E+SW50ZXJlc3RlZCBQYXJ0aWVzPC9GT05UPjwvQj48L1REPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPFREIHZhbGlnbj0idG9wIj48UD5UaGUgZm9sbG93aW5nIG9yZ2FuaXphdGlvbnMgaGF2ZSBleHByZXNzZWQgaW50ZXJlc3QgaW4gCiAgICAgIGltcGxlbWVudGluZyB0aGVzZSBzZXJ2aWNlOjwvUD4KICAgICAgPHVsPgogICAgICAgIDxsaT5EZXBhcnRtZW50IG9mIERlZmVuc2UgKEhlYWx0aCBBZmZhaXJzKTwvbGk+CiAgICAgICAgPGxpPlZldGVyYW5zIEhlYWx0aCBBZG1pbmlzdHJhdGlvbjwvbGk+CiAgICAgICAgPGxpPlNlckFQSSAoRmlubGFuZCk8L2xpPgogICAgICAgIDxsaT5NZWRpY0FsZXJ0IEZvdW5kYXRpb248L2xpPgogICAgICAgIDxsaT5LYWlzZXItUGVybWFuZW50ZTwvbGk+CiAgICAgICAgPGxpPkludGVyTW91bnRhaW4gSGVhbHRoPC9saT4KICAgICAgICA8bGk+S2Fpc2VyLVBlcm1hbmVudGUgU3VibWlzc2lvbjwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDwvVEQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8VEQgdkFsaWduPXRvcCBhbGlnbj1sZWZ0IGJnQ29sb3I9IzAwODBjMD48Yj4KICAgICAgPGZvbnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIiBjb2xvcj0iI0ZGRkZGRiI+UHJvamVjdCBQcmluY2lwbGVzPC9mb250PjwvYj48L1REPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPFREIHZhbGlnbj0idG9wIj4KICAgICAgPFA+QSBsYXJnZSBwYXJ0IG9mIHRoZSBhdWRpZW5jZSBmb3IgdGhpcyBwcm9qZWN0IGlzIG5vdCBleHBlcmllbmNlZCB3aXRoIAogICAgICB0aGUgY29uY2VwdHMgb2YgRWNsaXBzZSBvcGVuIHNvdXJjZSBkZXZlbG9wbWVudC4gVGhlcmVmb3JlLCB0aGlzIHNlY3Rpb24gb2YgCiAgICAgIHRoZSBwcm9wb3NhbCBlbGFib3JhdGVzIG9uIHRoZSBzcGlyaXQgb2Ygb3Blbi1zb3VyY2UsIGNvbW11bml0eS1kcml2ZW4gCiAgICAgIHByaW5jaXBsZXMgZ3VpZGluZyBlY2xpcHNlLm9yZyBpdHNlbGYuIFRoaXMgcHJvamVjdCB3aWxsIGNvbmNlbnRyYXRlIG9uIAogICAgICBzZXZlcmFsIGtleSBpZGVhbHM6IDxicj4KICAgICAgPGJyPgogICAgICA8Yj5WZW5kb3IgbmV1dHJhbGl0eTwvYj48YnI+CiAgICAgIFdlIGltcGxlbWVudCBoZWFsdGhjYXJlIG1hbmFnZW1lbnQgZnJhbWV3b3JrcyBhbmQgdG9vbHMgbm90IGJpYXNlZCB0b3dhcmQgCiAgICAgIGFueSB2ZW5kb3IuIE91ciBpbnRlbnRpb24gaXMgdGhhdCBPSEYgYmUgbGV2ZXJhZ2VkIHRvIHByb3ZpZGUgdGhlIEVjbGlwc2UgCiAgICAgIGNvbW11bml0eSB3aXRoIHRoZSB3aWRlc3QgcmFuZ2Ugb2YgaGVhbHRoY2FyZSBtYW5hZ2VtZW50IGNob2ljZXMgcG9zc2libGUuIAogICAgICBUbyB0aGlzIGVuZCwgd2Ugc2VlayBjb21tdW5pdHkgaW52b2x2ZW1lbnQgaW4gZm9ybXVsYXRpbmcga2V5IGZyYW1ld29yayAKICAgICAgaW50ZXJmYWNlcywgc28gdGhhdCB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBjb25zdGl0dWVuY3kgaXMgcmVwcmVzZW50ZWQuPGJyPgogICAgICA8YnI+CiAgICAgIDxiPkV4dGVuc2liaWxpdHk8L2I+PGJyPgogICAgICBXZSByZWNvZ25pemUgYm90aCB0aGUgY29tbW9uIG5lZWQgZm9yIHRoZSBzdGFibGUgaGVhbHRoY2FyZSBpbmZyYXN0cnVjdHVyZSAKICAgICAgYW5kIHRoZSBkZXNpcmUgdG8gZXh0ZW5kIHRoZSBvZmZlcmluZ3MgaW4gbmV3IGFuZCBpbm5vdmF0aXZlIHdheXMuIFRvIAogICAgICBzdXBwb3J0IHRoZXNlIGVmZm9ydHMsIG91ciBjb21wb25lbnRzIHdpbGwgYmUgZGVzaWduZWQgZm9yLCBhbmQgbWFrZSBnb29kIAogICAgICB1c2Ugb2YsIGV4dGVuc2liaWxpdHkgbWVjaGFuaXNtcyBzdXBwb3J0ZWQgYnkgRWNsaXBzZS4gPGJyPgogICAgICA8YnI+CiAgICAgIDxiPkNvbW11bml0eSBJbnZvbHZlbWVudDxicj4KICAgICAgPC9iPlN1Y2Nlc3MgZm9yIE9IRiwgYXMgd2l0aCBvdGhlciBFY2xpcHNlIHByb2plY3RzLCBpcyAKICAgICAgYXMgbXVjaCBhIGZhY3RvciBvZiBjb21tdW5pdHkgaW52b2x2ZW1lbnQgYXMgdGhlIHRlY2huaWNhbCBtZXJpdCBvZiBpdHMgCiAgICAgIGNvbXBvbmVudHMuIFdlIHN0cm9uZ2x5IGJlbGlldmUgdGhhdCBPSEYgd2lsbCBhY2hpZXZlIGl0cyBmdWxsIHBvdGVudGlhbCAKICAgICAgb25seSBhcyB0aGUgcmVzdWx0IG9mIGRlZXAgYW5kIGJyb2FkIGNvb3BlcmF0aW9uIHdpdGggdGhlIEVjbGlwc2UgCiAgICAgIG1lbWJlcnNoaXAtYXQtbGFyZ2UuIFRodXMsIHdlIG1ha2UgZXZlcnkgZWZmb3J0IHRvIGFjY29tbW9kYXRlIAogICAgICBjb2xsYWJvcmF0aW9uLCByZWFjaCBhY2NlcHRhYmxlIGNvbXByb21pc2VzIGFuZCBwcm92aWRlIGEgcHJvamVjdCAKICAgICAgbWFuYWdlbWVudCBpbmZyYXN0cnVjdHVyZSB0aGF0IGluY2x1ZGVzIGFsbCBjb250cmlidXRvcnMsIHJlZ2FyZGxlc3Mgb2YgCiAgICAgIHRoZWlyIGFmZmlsaWF0aW9uLCBsb2NhdGlvbiwgaW50ZXJlc3RzIG9yIGxldmVsIG9mIGludm9sdmVtZW50LiBSZWd1bGFyIAogICAgICBtZWV0aW5ncyBjb3ZlcmluZyBhbGwgYXNwZWN0cyBvZiBPSEYsIG9wZW4gY29tbXVuaWNhdGlvbiBjaGFubmVscyBhbmQgCiAgICAgIGVxdWFsIGFjY2VzcyB0byBwcm9jZXNzIHdpbGwgYmUga2V5IGFyZWFzIGluIGRyaXZpbmcgc3VjY2Vzc2Z1bCBjb21tdW5pdHkgCiAgICAgIGludm9sdmVtZW50Ljxicj4KICAgICAgPGJyPgogICAgICA8Yj5UcmFuc3BhcmVuY3k8L2I+PGJyPgogICAgICBBcyB3aXRoIGFsbCBwcm9qZWN0cyB1bmRlciB0aGUgZWNsaXBzZS5vcmcgYmFubmVyLCBrZXkgCiAgICAgIGluZm9ybWF0aW9uIGFuZCBkaXNjdXNzaW9ucyBhdCBldmVyeSBsZXZlbCCWIHN1Y2ggYXMgcmVxdWlyZW1lbnRzLCBkZXNpZ24sIAogICAgICBpbXBsZW1lbnRhdGlvbiwgYW5kIHRlc3RpbmcgliB3aWxsIGJlIGVhc2lseSBhY2Nlc3NpYmxlIHRvIHRoZSBFY2xpcHNlIAogICAgICBtZW1iZXJzaGlwLWF0LWxhcmdlLiA8YnI+CiAgICAgIDxicj4KICAgICAgPGI+QWdpbGUgRGV2ZWxvcG1lbnQ8L2I+PGJyPgogICAgICBXZSB3aWxsIHN0cml2ZSB0byBpbmNvcnBvcmF0ZSBpbnRvIG91ciBwbGFubmluZyBwcm9jZXNzIAogICAgICBpbm5vdmF0aW9ucyB0aGF0IGFyaXNlIG9uY2UgYSBwcm9qZWN0IGlzIHVuZGVyd2F5LCBhbmQgdGhlIGZlZWRiYWNrIGZyb20gCiAgICAgIG91ciB1c2VyIGNvbW11bml0eSBvbiBvdXIgYWNoaWV2ZW1lbnRzIHRvIGRhdGUuIFdlIHRoaW5rIGFuIGFnaWxlIHBsYW5uaW5nIAogICAgICBhbmQgZGV2ZWxvcG1lbnQgcHJvY2VzcywgaW4gd2hpY2ggcHJvZ3Jlc3MgaXMgaW5jcmVtZW50YWwsIG5lYXItdGVybSAKICAgICAgZGVsaXZlcmFibGVzIGFyZSBmb2N1c2VkIGFuZCBsb25nLXRlcm0gcGxhbm5pbmcgaXMgZmxleGlibGUgd2lsbCBiZSB0aGUgCiAgICAgIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcy4gPGJyPgogICAgICA8YnI+CiAgICAgIDxiPkRldmVsb3BtZW50IFByb2Nlc3M8L2I+PGJyPgogICAgICBUaGlzIHByb3Bvc2FsIGlzIGluIHRoZSBQcm9qZWN0IFByb3Bvc2FsIFBoYXNlIChhcyBkZWZpbmVkIGluIHRoZSBFY2xpcHNlIAogICAgICBEZXZlbG9wbWVudCBQcm9jZXNzIGRvY3VtZW50KS4gVGhlIE9IRiBQcm9qZWN0IHdpbGwgZm9sbG93IHRoZSBzcGlyaXQsIAogICAgICBpbnRlbnQgYW5kIHByb2Nlc3NlcyBhcyBkZWZpbmVkIGluIHRoZSBFY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3MgCiAgICAgIGRvY3VtZW50Ljxicj4KICAgICAgPGJyPgogICAgICA8Yj5MaWNlbnNpbmc8L2I+PGJyPgogICAgICBPSEYgYW5kIGFsbCBjb250cmlidXRpb25zIHRvIFByb2plY3RzIHVuZGVyIHRoaXMgU3ViLVByb2plY3QgbXVzdCBhZGhlcmUgCiAgICAgIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gSW50ZWxsZWN0dWFsIFByb3BlcnR5IFBvbGljeS48YnI+CiZuYnNwOzwvUD4KICAgICAgICA8L1REPgogICAgPC90cj4KICAgIDxUUj4gCiAgICAgIDxURCB2QWxpZ249dG9wIGFsaWduPWxlZnQgYmdDb2xvcj0jMDA4MGMwPjxiPgogICAgICA8Zm9udCBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiIGNvbG9yPSIjRkZGRkZGIj5Pcmdhbml6YXRpb248L2ZvbnQ+PC9iPjwvVEQ+CiAgICA8L1RSPgogICAgPFRSPgogICAgICA8VEQgdmFsaWduPSJ0b3AiPgogICAgICAgIDxwPjxzdHJvbmc+SW5pdGlhbCBDb21taXR0ZXJzPC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgIAogICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcmNvbG9yPSIjMTExMTExIiB3aWR0aD0iNTA0IiBpZD0iQXV0b051bWJlcjIiPgogICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjExMSI+IDxzcGFuIHN0eWxlPSJjb2xvcjogd2luZG93dGV4dDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj5EbWl0cnkgCiAgICAgICAgICAgIEJha3VudHNldjwvc3Bhbj48L3RkPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTY0Ij4gPGEgaHJlZj0iaHR0cDovL3d3dy5pbnRlcnRlY2hub2dyb3VwLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5JVEc8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjIyOSI+IERCYWt1bnRzZXYgKGF0KSBpbnRlcnRlY2hub2dyb3VwLmNvbTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTExIj4gPHNwYW4gc3R5bGU9ImNvbG9yOiB3aW5kb3d0ZXh0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPklnb3IgCiAgICAgICAgICAgIFlhc25vPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgPHRkIHdpZHRoPSIxNjQiPiA8YSBocmVmPSJodHRwOi8vd3d3LmludGVydGVjaG5vZ3JvdXAuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPiAKICAgICAgICAgICAgSVRHPC9hPjwvdGQ+CiAgICAgICAgICA8dGQgd2lkdGg9IjIyOSI+IGl5YXNubyhhdCkgaW50ZXJ0ZWNobm9ncm91cC5jb208L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjExMSI+IDxzcGFuIHN0eWxlPSJjb2xvcjogd2luZG93dGV4dDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj5LaW0gCiAgICAgICAgICAgIENsb2hlc3N5PC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgPHRkIHdpZHRoPSIxNjQiPiA8YSBocmVmPSJodHRwOi8vd3d3LklCTS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+IElCTTwvYT48L3RkPgogICAgICAgICAgPHRkIHdpZHRoPSIyMjkiPiBraW0oYXQpZGlhbW9uZHRyYWlsLmNvbTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTExIj4gPHNwYW4gc3R5bGU9ImNvbG9yOiB3aW5kb3d0ZXh0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPk1hcmMgCiAgICAgICAgICAgIEVyaWNrc29uPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgPHRkIHdpZHRoPSIxNjQiPiA8YSBocmVmPSJodHRwOi8vd3d3LmlucHJpdmEuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPiAKICAgICAgICAgICAgSW5wcml2YTwvYT48L3RkPgogICAgICAgICAgPHRkIHdpZHRoPSIyMjkiPiBjbWEoYXQpd2ltcHppbGxhLmNvbTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTExIj4gPHNwYW4gc3R5bGU9ImNvbG9yOiB3aW5kb3d0ZXh0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPkRvbiAKICAgICAgICAgICAgSm9yZ2Vuc29uPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgPHRkIHdpZHRoPSIxNjQiPiA8YSBocmVmPSJodHRwOi8vd3d3LmlucHJpdmEuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPiAKICAgICAgICAgICAgSW5wcml2YTwvYT48L3RkPgogICAgICAgICAgPHRkIHdpZHRoPSIyMjkiPiBkam9yZ2Vuc29uKGF0KWlucHJpdmEuY29tPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgPHRkIHdpZHRoPSIxMTEiPiA8c3BhbiBzdHlsZT0iY29sb3I6IHdpbmRvd3RleHQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+UGF1bCAKICAgICAgICAgICAgVHJldml0aGljazwvc3Bhbj48L3RkPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTY0Ij4gPGEgaHJlZj0iaHR0cDovL3d3dy5zb2NpYWxwaHlzaWNzLm9yZy8iIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgICAgICAgIFNvY2lhbCBQaHlzaWNzPC9hPjwvdGQ+CiAgICAgICAgICA8dGQgd2lkdGg9IjIyOSI+IHBhdWwoYXQpcGFyaXR5aW5jLm5ldDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAKICAgICAgICAgIDx0ZCB3aWR0aD0iMTExIj4gPHNwYW4gc3R5bGU9ImNvbG9yOiB3aW5kb3d0ZXh0OyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPkpvZWwgCiAgICAgICAgICAgIFdlc3Q8L3NwYW4+PC90ZD4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjE2NCI+IDxhIGhyZWY9Imh0dHA6Ly93d3cuc2pzdS5lZHUvIiAgdGFyZ2V0PSJfYmxhbmsiPiBTYW4gCiAgICAgICAgICAgIEpvc2UgU3RhdGUgVW5pdmVyc2l0eTwvYT48L3RkPgogICAgICAgICAgPHRkIHdpZHRoPSIyMjkiPiBKb2VsLldlc3QoYXQpc2pzdS5lZHU8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjExMSI+IDxzcGFuIHN0eWxlPSJjb2xvcjogd2luZG93dGV4dDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj5HcmFoYW1lIAogICAgICAgICAgICBHcmlldmU8L3NwYW4+PC90ZD4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICA8dGQgd2lkdGg9IjE2NCI+IEppdmEgZUhlYWx0aCBTb2x1dGlvbnM8L3RkPgogICAgICAgICAgPHRkIHdpZHRoPSIyMjkiPiBncmFoYW1lKGF0KWtlc3RyYWwuY29tLmF1PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPjxwPjxiPkNvbnRhY3Q8L2I+PGJyPgogICAgIE1yLiBJZ29yIFlhc25vPGJyPgogICAgICBDaGllZiBPcGVyYXRpbmcgT2ZmaWNlcjxicj4KICAgICAgSW50ZXJuYXRpb25hbCBUZWNobm9sb2d5IEdyb3VwPGJyPgogICAgICA3NjA4IEFzdG9uIENvdXJ0LCBMb3MgQW5nZWxlcywgQ0EgOTEzMDQ8YnI+CiAgICAgIFRlbGVwaG9uZTombmJzcDsmbmJzcDsrMSA4MTggMjA2IDQ1OTggeC4gNzExPGJyPgogICAgICBGYWNzaW1pbGU6Jm5ic3A7Jm5ic3A7Jm5ic3A7KzEgODE4IDIwNiA0NTk4PGJyPgogICAgICBFLU1haWw6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgIDxhIGhyZWY9Im1haWx0bzppeWFzbm9AaW50ZXJ0ZWNobm9ncm91cC5jb20iIHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lOiBzaW5nbGUiPgogICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHdpbmRvd3RleHQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+CiAgICAgIGl5YXNub0BpbnRlcnRlY2hub2dyb3VwLmNvbTwvc3Bhbj48L2E+PGJyPgogICAgICBXZWI6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3d3dy5pbnRlcnRlY2hub2dyb3VwLmNvbS8iIHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lOiBzaW5nbGUiPnd3dy5pbnRlcnRlY2hub2dyb3VwLmNvbTwvYT48YnI+CiZuYnNwOzwvcD4KICAgICAgICA8L1REPgogICAgPC9UUj4KICAgIDxUUj4KICAgICAgPFREIHZhbGlnbj0idG9wIj4mbmJzcDs8L1REPgogICAgPC9UUj4KICA8L1RCT0RZPgo8L1RBQkxFPgo8L2JvZHk+CjwvaHRtbD4=