PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIvPgo8dGl0bGU+QWJvdXQgRWNsaXBzZUxpbmsgMi42PC90aXRsZT4KPC9oZWFkPgo8Ym9keSBsYW5nPSJFTi1VUyI+CjxoMT5FY2xpcHNlTGluayAyLjY8L2gxPgo8aDI+QWJvdXQ8L2gyPgo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lY2xpcHNlbGluayI+RWNsaXBzZUxpbms8L2E+IHByb2plY3QncwogIGdvYWwgaXMgdG8gcHJvdmlkZSBhIGNvbXBsZXRlIHBlcnNpc3RlbmNlIGZyYW1ld29yayB0aGF0IGlzIGJvdGggY29tcHJlaGVuc2l2ZQogIGFuZCB1bml2ZXJzYWwuIEl0IHdpbGwgcnVuIGluIGFueSBKYXZhIGVudmlyb25tZW50IGFuZCByZWFkIGFuZCB3cml0ZSBvYmplY3RzCiAgdG8gdmlydHVhbGx5IGFueSB0eXBlIG9mIGRhdGEgc291cmNlLCBpbmNsdWRpbmcgcmVsYXRpb25hbCBkYXRhYmFzZXMsIEpTT04gYW5kIFhNTC4KICBFY2xpcHNlTGluayB3aWxsIGZvY3VzIG9uIHByb3ZpZGluZyBsZWFkaW5nIGVkZ2Ugc3VwcG9ydCwgaW5jbHVkaW5nIGFkdmFuY2VkCiAgZmVhdHVyZSBleHRlbnNpb25zLCBmb3IgdGhlIGRvbWluYW50IHBlcnNpc3RlbmNlIHN0YW5kYXJkcyBmb3IgZWFjaCB0YXJnZXQgZGF0YQogIHNvdXJjZTsgSmF2YSBQZXJzaXN0ZW5jZSBBUEkgKEpQQSkgZm9yIHJlbGF0aW9uYWwgZGF0YWJhc2VzLCBKYXZhIEFQSSBmb3IgWE1MCiAgQmluZGluZyAoSkFYQikgZm9yIFhNTCwgU2VydmljZSBEYXRhIE9iamVjdHMgKFNETyksIGFuZCBEYXRhYmFzZSBXZWIgc2VydmljZXMKICAoREJXUykuIDwvcD4KCjxwPkZvciB0aXBzIG9uIGdldHRpbmcgc3RhcnRlZCB3aXRoIEVjbGlwc2VMaW5rLCBwbGVhc2Ugc2VlIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzOjwvcD4KPHVsPgogIDxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lY2xpcHNlbGluay9yZWxlYXNlcy8yLjYucGhwIj5FY2xpcHNlTGluayAyLjYgUmVsZWFzZSBOb3RlczwvYT48L2xpPgogIDxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lY2xpcHNlbGluay9kb2N1bWVudGF0aW9uIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgPGxpPiA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9FY2xpcHNlTGluay9FeGFtcGxlcyI+RXhhbXBsZXMgYW5kIEhvdyBUbzwvYT48L2xpPgo8L3VsPgo8aDI+TGljZW5zZSA8L2gyPgo8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLgogICAgVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMKICAgIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspIGFuZAogICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAok0VETJQpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgYXQKICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj4gaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+CiAgICBhbmQgYSBjb3B5IG9mIHRoZSBFREwgaXMgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lZGwtdjEwLnBocCI+CiAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHA8L2E+LiAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIgogICAgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUKICBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykKICBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heSBhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUKICBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3ImIzgyMTc7cyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGgKICB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCBsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZQogIGluZGljYXRlZCBiZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgYW5kIEVETCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCiAgY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uPC9wPgo8aDI+VGhpcmQgUGFydHkgQ29udGVudDwvaDI+CjxwPlRoZSBDb250ZW50IGluY2x1ZGVzIGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIHNvdXJjZWQgZnJvbSB0aGlyZCBwYXJ0aWVzIGFzIHNldAogIG91dCBiZWxvdy4gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLAogIHRoZSBmb2xsb3dpbmcgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBzaG91bGQgbG9vawogIHRvIHRoZSBSZWRpc3RyaWJ1dG9yJiM4MjE3O3MgbGljZW5zZSBmb3IgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLjwvcD4KPHVsPgogIDxsaT5Gb3VuZGF0aW9uIERlcGVuZGVuY2llcwogICAgPHVsPgogICAgICA8bGk+PGEgaHJlZj0iI0FTTSI+QVNNPC9hPjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkVjbGlwc2VMaW5rIEpQQQogICAgPHVsPgogICAgICA8bGk+PGEgaHJlZj0iI0FOVExSIj5BTlRMUjwvYT48L2xpPgogICAgICA8bGk+PGEgaHJlZj0iI0pQQTIxIj5KYXZhIFBlcnNpc3RlbmNlIEFQSSAoSlBBKSAyLjE8L2E+PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+RWNsaXBzZUxpbmsgTU9YeQogICAgPHVsPgogICAgICA8bGk+PGEgaHJlZj0iI0pBWEIiPkphdmEgQXJjaGl0ZWN0dXJlIGZvciBYTUwgQmluZGluZyAoSkFYQik8L2E+PC9saT4KICAgICAgPGxpPjxhIGhyZWY9IiNNQUlMIj5KYXZhIE1haWw8L2E+PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+RWNsaXBzZUxpbmsgU0RPCiAgICA8dWw+CiAgICAgIDxsaT48YSBocmVmPSIjU0RPIj5TZXJ2aWNlIERhdGEgT2JqZWN0cyAoU0RPKTwvYT48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5FY2xpcHNlTGluayBEQldTCiAgICA8dWw+CiAgICAgIDxsaT48YSBocmVmPSIjU2VydmxldCI+SmF2YSBTZXJ2bGV0IDIuNCAob3IgaGlnaGVyKTwvYT48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5VdGlsaXRpZXMKICAgIDx1bD4KICAgICAgPGxpPjxhIGhyZWY9IiNKQ0EiPkphdmEgQ29ubmVjdG9yPC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjWEVSQ0VTIj5YZXJjZXM8L2E+PC9saT4KICAgICAgPGxpPjxhIGhyZWY9IiNXU0RMNEoiPldTREw0SiAxLjYuMiA8L2E+PC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KPGhyIC8+CjxoMz48YSBuYW1lPSJBU00iIGlkPSJBU00iPjwvYT5BU00gdjUuMC4xPC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+VGhlIEVjbGlwc2VMaW5rIFByb2plY3QgaW5jbHVkZXMgQVNNIGZvciB0aGUgcHVycG9zZSBvZgogICAgYnl0ZSBjb2RlIHdlYXZpbmcuIFRoZSBBTVMgbGlicmFyeSBpcyByZS1wYWNrYWdlZCB3aXRoaW4gdGhlIHNvdXJjZSBvZiB0aGUKICAgIHByb2plY3QgKG9yZy5wZXJzaXN0ZW5jZS5lY2xpcHNlLmludGVybmFsLmxpYnJhcmllcy5hc20uKikgdG8gYXZvaWQgdmVyc2lvbgogICAgY29sbGlzaW9ucyB3aXRoIG90aGVyIHVzYWdlIG9mIEFTTS4KICA8L3A+CiAgPHA+VGhlIHNvdXJjZSBjb2RlIGlzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIHByb2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkuCiAgICBUaGUgYmluYXJpZXMgYXJlIGRpc3RyaWJ1dGVkIHdpdGhpbiB0aGUgZWNsaXBzZWxpbmsuamFyIGFuZCBpbiB0aGUgb3JnLmVjbGlwc2UucGVyc2lzdGVuY2UuYXNtXyouamFyCiAgICBidW5kbGUuIDwvcD4KICA8cD4gPGEgaHJlZj0iaHR0cDovL2FzbS5vYmplY3R3ZWIub3JnL2xpY2Vuc2UuaHRtbCI+aHR0cDovL2FzbS5vYmplY3R3ZWIub3JnL2xpY2Vuc2UuaHRtbDwvYT48L3A+CiAgPHA+Q29weXJpZ2h0IChjKSAyMDAwLTIwMDUgSU5SSUEsIEZyYW5jZSBUZWxlY29tLCBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KICA8cD5SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICAgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OjwvcD4KICA8b2w+CiAgICA8bGk+IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci48L2xpPgogICAgPGxpPiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCiAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uPC9saT4KICAgIDxsaT4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlcnMgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCiAgICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CiAgICAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi48L2xpPgogIDwvb2w+CiAgPHA+VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAmcXVvdDtBUwogICAgSVMmcXVvdDtBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAogICAgVE8sIFRIRUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogICAgUFVSUE9TRUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUwogICAgQkVMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SQ09OU0VRVUVOVElBTAogICAgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GU1VCU1RJVFVURSBHT09EUyBPUgogICAgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKICAgIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU5DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKICAgIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSlBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAgIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRlRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS48L3A+CjwvYmxvY2txdW90ZT4KPGgzPjxhIG5hbWU9IkFOVExSIiBpZD0iQU5UTFIiPjwvYT5BTlRMUiB2My4yPC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW50bHIub3JnLyI+QU5UTFIgbGlicmFyeTwvYT4gKDxhIGhyZWY9Imh0dHA6Ly93d3cuYW50bHIub3JnL2xpY2Vuc2UuaHRtbCI+bGljZW5zZTwvYT4pCiAgICBpcyBpbmNsdWRlZCB3aXRoaW4gRWNsaXBzZUxpbmsgUHJvamVjdCB0byBlbmFibGUgcGFyc2luZyBvZiB0aGUgSmF2YSBQZXJzaXN0ZW5jZQogICAgUXVlcnkgbGFuZ3VhZ2UgKEpQIFFMKS4gVGhlIEFOVExSIGxpYnJhcnkgaXMgcmUtcGFja2FnZWQgd2l0aGluIHRoZSBwcm9qZWN0CiAgICBpbiB0aGUgb3JnLmVjbGlwc2UucGVyc2lzdGVuY2UuaW50ZXJuYWwubGlicmFyaWVzLmFudGxyLiogcGFja2FnZXMuIDwvcD4KICA8cD5UaGUgc291cmNlIGlzIGF2YWlsYWJsZSB3aXRoIHRoZSBwcm9qZWN0J3Mgc3VidmVyc2lvbiByZXBvc2l0b3J5LiBUaGUgYmluYXJpZXMKICAgIGFyZSBkaXN0cmlidXRlZCB3aXRoaW4gdGhlIGVjbGlwc2VsaW5rLmphciBhbmQgaW4gdGhlIG9yZy5lY2xpcHNlLnBlcnNpc3RlbmNlLmFudGxyXzMuMi4wLnYqLmphcgogICAgYnVuZGxlLjwvcD4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgbmFtZT0iSkFYQiIgaWQ9IkpBWEIiPjwvYT5KYXZhIEFyY2hpdGVjdHVyZSBmb3IgWE1MIEJpbmRpbmcgKEpBWEIpIHYyLjI8L2gzPgo8YmxvY2txdW90ZT4KICA8cD5UaGUgPGEgaHJlZj0iaHR0cDovL2pheGIuamF2YS5uZXQiPkpBWEIgbGlicmFyaWVzPC9hPiBkaXN0cmlidXRlZAogICAgdW5kZXIgPGEgaHJlZj0iaHR0cDovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPkNEREwgdjEuMDwvYT4KICAgIGFyZSBpbmNsdWRlZCB3aXRoaW4gdGhlIEVjbGlwc2VMaW5rIFByb2plY3QgdG8gZW5hYmxlIHRoZSBNT1h5IGNvbXBvbmVudCdzCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBKQVhCLjwvcD4KICA8cD5KQVhCIExpYnJhcmllczogPC9wPgogIDx1bD4KICAgICAgPGxpPmphdmF4LnhtbC5iaW5kXzIuMi4xMi52MjAxNDEwMDExNTQyLmphcjwvbGk+CiAgICAgIDxsaT5qYXhiLWNvcmVfMi4yLjExLnYyMDE0MDczMTExMTIuamFyPC9saT4KICAgICAgPGxpPmpheGIteGpjXzIuMi4xMS52MjAxNDA3MzExMTEyLmphcjwvbGk+CiAgPC91bD4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgbmFtZT0iSlBBMjEiIGlkPSJKUEEyIj48L2E+SmF2YSBQZXJzaXN0ZW5jZSAoSlBBKSAyLjEgIDwvaDM+CjxibG9ja3F1b3RlPgogIDxwPkVjbGlwc2VMaW5rIGlzIHRoZSBKYXZhIFBlcnNpc3RlbmNlIChKUEEpIDIuMSBSZWZlcmVuY2UgSW1wbGVtZW50YXRpb24KICAgICg8YSBocmVmPSJodHRwOi8vamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTMzOCI+SlNSIDMzODwvYT4pLiAgVGhlIEpQQSAyLjEKICAgIHNwZWNpZmljYXRpb24gQVBJIGlzIGluY2x1ZGVkIGluIEVjbGlwc2VMaW5rIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+RVBMPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwIj5FREw8L2E+IGxpY2Vuc2VzLjwvcD4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgbmFtZT0iTUFJTCIgaWQ9Ik1BSUwiPjwvYT5KYXZhIE1haWwgdjEuNC4wPC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+VGhlIEphdmEgTWFpbCBsaWJyYXJ5IChtYWlsLmphcikgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phdmFtYWlsL2phdmFtYWlsLTFfNC5odG1sIj5qYXZhLnN1bi5jb208L2E+CiAgICB1bmRlciA8YSBocmVmPSJodHRwOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+Q0RETAogICAgdjEuMDwvYT4gYW5kIGlzIGluY2x1ZGVkIHdpdGhpbiB0aGUgRWNsaXBzZUxpbmsgUHJvamVjdCBkaXN0cmlidXRpb24KICAgIHRvIHN1cHBvcnQgV2ViIFNlcnZpY2VzIGF0dGFjaG1lbnQgaGFuZGxpbmcgaW4gdGhlIE1PWHkgY29tcG9uZW50LiBJdCBpcyBvbmx5CiAgICByZXF1aXJlZCB3aGVuIHVzaW5nIEphdmEgU0UgNSAoSmF2YSBNYWlsIGlzIGluY2x1ZGVkIGluIEphdmEgU0UgNikuPC9wPgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBuYW1lPSJTRE8iIGlkPSJTRE8iPjwvYT5TZXJ2aWNlIERhdGEgT2JqZWN0cyAoU0RPKSB2Mi4xLjE8L2gzPgo8YmxvY2txdW90ZT4KICA8cD5UaGUgPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvYWJvdXRKYXZhL2NvbW11bml0eXByb2Nlc3MvcHIvanNyMjM1L2luZGV4Lmh0bWwiPlNlcnZpY2UKICAgIERhdGEgT2JqZWN0cyAoU0RPKSBBUEk8L2E+IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIGEgPGEgaHJlZj0iaHR0cDovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPiBDRERMdjEuMCA8L2E+IGFuZCAgPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvYWJvdXRKYXZhL2NvbW11bml0eXByb2Nlc3MvcHIvanNyMjM1L2luZGV4Lmh0bWwiPmN1c3RvbQogICAgbGljZW5zZTwvYT4uIEl0IHByb3ZpZGVzIHRoZSBzdGFuZGFyZCBBUEkgaW1wbGVtZW50ZWQgYnkgdGhlIEVjbGlwc2VMaW5rIFByb2plY3QncyBTRE8gY29tcG9uZW50LjwvcD4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgbmFtZT0iSkNBIiBpZD0iSkNBIj48L2E+SmF2YSBDb25uZWN0b3IgdjEuNTwvaDM+CjxibG9ja3F1b3RlPgogIDxwPlRoZSBKQ0EgMS41IEFQSSBpcyBkaXN0cmlidXRlZCB1bmRlciA8YSBocmVmPSJodHRwOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+CiAgICBDRERMdjEuMCA8L2E+LiA8L3A+CiAgPHA+VGhpcyBqYXIgaXMgYmVpbmcgc2hpcHBlZCBhbmQgcmVxdWlyZWQgYnkgdGhlIFdvcmtiZW5jaCBvbmx5LiBXaGVuIHVzaW5nCiAgICBFY2xpcHNlTGluayBpbiBhIGNvbnRhaW5lciB3aGVyZSBKQ0EgaW50ZWdyYXRpb24gaXMgcmVxdWlyZWQgdGhhdCBjb250YWluZXIKICAgIHdpbGwgcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IEFQSSBsaWJyYXJpZXMuPC9wPgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBuYW1lPSJYRVJDRVMiIGlkPSJYRVJDRVMiPjwvYT5YZXJjZXMgdjIuOS4wPC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+WGVyY2VzIDIuOS4wIGlzIGF2YWlsYWJsZSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly94ZXJjZXMuYXBhY2hlLm9yZy94ZXJjZXMtai8iPgogICAgdGhlIFhlcmNlcyBob21lIHBhZ2U8L2E+LiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciA8YSBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvbGljZW5zZS5odG1sIj4KICAgIEFwYWNoZSAyLjA8L2E+LjwvcD4KICA8cD5UaGlzIGphciBpcyBzaGlwcGVkIGZvciB0aGUgV29ya2JlbmNoJ3MgdXNlIG9ubHkgaW4gdGhlIHJlYWRpbmcgYW5kIHdyaXRpbmcKICAgIG9mIFhNTCBjb25maWd1cmF0aW9uIGZpbGVzLjwvcD4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgbmFtZT0iU0VSVkxFVCIgaWQ9IlNFUlZMRVQiPjwvYT5KYXZhIFNlcnZsZXQgMi40PC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2Fib3V0SmF2YS9jb21tdW5pdHlwcm9jZXNzL2ZpbmFsL2pzcjE1NC9pbmRleC5odG1sIj5KYXZhIFNlcnZsZXQgMi40IHNwZWNpZmljYXRpb248L2E+CiAgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuaHRtbCI+QXBhY2hlIDIuMCBsaWNlbnNlPC9hPi4gVGhlIHNvdXJjZSBjb2RlIGlzIHBhcnQgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvdG9tY2F0L3RydW5rL2phdmEvamF2YXgvc2VydmxldC8iPkFwYWNoZSBUb21jYXQgcHJvamVjdDwvYT4KICA8cD5UaGlzIGphciBpcyBvbmx5IHJlcXVpcmVkIGF0IGRlc2lnbiB0aW1lIGZvciB0aGUgREJXUyBCdWlsZGVyIHV0aWxpdHkuPC9wPgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBuYW1lPSJXU0RMNEoiIGlkPSJXU0RMNEoiPjwvYT5XU0RMNGogdjEuNi4yPC9oMz4KPGJsb2NrcXVvdGU+CiAgPHA+V1NETDRKIDEuNi4yIGlzIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy93c2RsNGoiPndzZGw0agogICAgcHJvamVjdDwvYT4uIEl0IGRpc3RyaWJ1dGVkIHVuZGVyIDxhIGhyZWY9Imh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9jcGwxLjAucGhwIj4KICAgIENQTHYxLjAgPC9hPi4gPC9wPgogIDxwPlRoaXMgamFyIGlzIG9ubHkgcmVxdWlyZWQgYXQgZGVzaWduIHRpbWUgZm9yIHRoZSBEQldTIEJ1aWxkZXIgdXRpbGl0eS48L3A+CjwvYmxvY2txdW90ZT4KPHA+PC9wPgo8L2JvZHk+CjwvaHRtbD4K