This is a custom HTML / JavaScript Element
In order To See Your Custom HTML/JavaScript Code in Action You Must Click On The Preview Page Button, Your Code is NOT going to be active in the edit mode
PGgxIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5XaGljaCBUeXBlIG9mIENDVFYgQ2FtZXJhIFNob3VsZCBZb3UgQ2hvb3NlPyBUaGUgQ29tcGxldGUgSG9tZW93bmVyJ3MgR3VpZGU8L2gxPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+Q2hvb3NpbmcgYSBzZWN1cml0eSBjYW1lcmEgc2hvdWxkbid0IGZlZWwgbGlrZSBsZWFybmluZyBhIG5ldyBsYW5ndWFnZS48L3N0cm9uZz4gQnVsbGV0IGNhbWVyYXMsIHR1cnJldCBjYW1lcmFzLCBkb21lIGNhbWVyYXMsIFBUWiBjYW1lcmFzLCBBSSBjYW1lcmFzLi4uIHRoZSBvcHRpb25zIGNhbiBxdWlja2x5IGJlY29tZSBvdmVyd2hlbG1pbmcuIFRoZSB0cnV0aCBpcywgdGhlcmUgaXNuJ3Qgb25lICJiZXN0IiBzZWN1cml0eSBjYW1lcmEuIFRoZSBiZXN0IGNhbWVyYSBpcyB0aGUgb25lIHRoYXQncyBpbnN0YWxsZWQgaW4gdGhlIHJpZ2h0IGxvY2F0aW9uIGZvciB0aGUgam9iLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5BZnRlciBpbnN0YWxsaW5nIHRob3VzYW5kcyBvZiBzZWN1cml0eSBjYW1lcmFzIGFjcm9zcyBQYWxtIEJlYWNoIENvdW50eSwgd2UndmUgbGVhcm5lZCB0aGF0IGV2ZXJ5IGhvbWUgYW5kIGV2ZXJ5IGJ1c2luZXNzIGhhcyBkaWZmZXJlbnQgbmVlZHMuIEEgY2FtZXJhIHRoYXQncyBwZXJmZWN0IGZvciBwcm90ZWN0aW5nIGEgd2FyZWhvdXNlIG1pZ2h0IG5vdCBiZSB0aGUgYmVzdCBjaG9pY2UgZm9yIGEgdG93bmhvdXNlLCBhbmQgdGhlIGNhbWVyYSB5b3UnZCBpbnN0YWxsIG92ZXIgYSBmcm9udCBkb29yIG1heSBub3QgYmUgdGhlIHJpZ2h0IG9uZSBmb3Igd2F0Y2hpbmcgYSBsb25nIGRyaXZld2F5LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGlzIGd1aWRlIHdpbGwgd2FsayB5b3UgdGhyb3VnaCB0aGUgbW9zdCBjb21tb24gdHlwZXMgb2YgQ0NUViBjYW1lcmFzLCBleHBsYWluIHdoZXJlIGVhY2ggb25lIHBlcmZvcm1zIGJlc3QsIGFuZCBzaGFyZSBhIGZldyByZWFsLXdvcmxkIGluc3RhbGxhdGlvbiBzdG9yaWVzIGZyb20gb3VyIG93biBjdXN0b21lcnMuIEJ5IHRoZSBlbmQsIHlvdSdsbCB1bmRlcnN0YW5kIHdoaWNoIGNhbWVyYSBzdHlsZSBpcyByaWdodCBmb3IgeW91ciBwcm9wZXJ0eSBhbmQgd2h5IHByb2Zlc3Npb25hbCBjYW1lcmEgcGxhY2VtZW50IGlzIGp1c3QgYXMgaW1wb3J0YW50IGFzIHRoZSBlcXVpcG1lbnQgaXRzZWxmLjwvcD4KCjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2h5IENob29zaW5nIHRoZSBSaWdodCBDYW1lcmEgTWF0dGVyczwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TWFueSBob21lb3duZXJzIHNob3AgZm9yIGNhbWVyYXMgYnkgY29tcGFyaW5nIHByaWNlcyBvciBtZWdhcGl4ZWxzLCBidXQgdGhvc2UgYXJlIG9ubHkgcGFydCBvZiB0aGUgZXF1YXRpb24uIFRoZSBtb3N0IGltcG9ydGFudCBxdWVzdGlvbiBpcywgPGVtPiJXaGF0IGRvIHlvdSB3YW50IHRoaXMgY2FtZXJhIHRvIGFjY29tcGxpc2g/IjwvZW0+PC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkZvciBleGFtcGxlLCBkbyB5b3Ugd2FudCB0bzo8L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+RGV0ZXIgc29tZW9uZSBmcm9tIGFwcHJvYWNoaW5nIHlvdXIgaG9tZT88L2xpPgo8bGk+SWRlbnRpZnkgZmFjZXMgYXQgeW91ciBmcm9udCBkb29yPzwvbGk+CjxsaT5SZWFkIGxpY2Vuc2UgcGxhdGVzIGF0IHRoZSBlbmQgb2YgYSBsb25nIGRyaXZld2F5PzwvbGk+CjxsaT5Nb25pdG9yIHlvdXIgYmFja3lhcmQgd2hpbGUgeW91J3JlIGF3YXk/PC9saT4KPGxpPlJlY2VpdmUgQUkgYWxlcnRzIG9ubHkgd2hlbiBhIHBlcnNvbiBvciB2ZWhpY2xlIGlzIGRldGVjdGVkPzwvbGk+CjwvdWw+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhlIGFuc3dlcnMgZGV0ZXJtaW5lIHdoaWNoIGNhbWVyYSBzdHlsZSB3aWxsIHBlcmZvcm0gYmVzdC4gQSBwcm9wZXJseSBkZXNpZ25lZCBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIGNvbWJpbmVzIHRoZSByaWdodCBjYW1lcmEgd2l0aCB0aGUgcmlnaHQgbG9jYXRpb24sIHZpZXdpbmcgYW5nbGUsIGxpZ2h0aW5nLCBhbmQgcmVjb3JkaW5nIHRlY2hub2xvZ3kuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkxldCdzIGxvb2sgYXQgdGhlIHNpeCBtb3N0IGNvbW1vbiBzZWN1cml0eSBjYW1lcmEgdHlwZXMgYW5kIHdoZXJlIGVhY2ggb25lIHNoaW5lcy48L3A+Cgo8aDIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjEuIERvbWUgQ2FtZXJhczwvaDI+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoZSBEaXNjcmVldCBQcm9mZXNzaW9uYWw8L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkRvbWUgY2FtZXJhcyBnZXQgdGhlaXIgbmFtZSBmcm9tIHRoZSBjbGVhciBkb21lIHRoYXQgc3Vycm91bmRzIHRoZSBjYW1lcmEgbGVucy4gVGhleSdyZSBjb21tb25seSB1c2VkIGluZG9vcnMgYmVjYXVzZSB0aGV5IHByb3ZpZGUgZXhjZWxsZW50IGNvdmVyYWdlIHdoaWxlIGJsZW5kaW5nIGludG8gdGhlIGNlaWxpbmcuIE1hbnkgYnVzaW5lc3NlcyBjaG9vc2UgZG9tZSBjYW1lcmFzIGJlY2F1c2UgdGhleSBsb29rIGNsZWFuLCBwcm9mZXNzaW9uYWwsIGFuZCBkb24ndCBpbW1lZGlhdGVseSBkcmF3IGF0dGVudGlvbi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5CZXN0IGxvY2F0aW9ucyBpbmNsdWRlOjwvc3Ryb25nPjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5PZmZpY2UgYnVpbGRpbmdzPC9saT4KPGxpPlJldGFpbCBzdG9yZXM8L2xpPgo8bGk+UmVjZXB0aW9uIGFyZWFzPC9saT4KPGxpPkhvdGVsczwvbGk+CjxsaT5TY2hvb2xzPC9saT4KPGxpPkhhbGx3YXlzPC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPkFkdmFudGFnZXM6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPldpZGUgdmlld2luZyBhbmdsZXM8L2xpPgo8bGk+Q2xlYW4sIGxvdy1wcm9maWxlIGFwcGVhcmFuY2U8L2xpPgo8bGk+RXhjZWxsZW50IGZvciBpbmRvb3IgZW52aXJvbm1lbnRzPC9saT4KPGxpPk1hbnkgbW9kZWxzIG9mZmVyIHZhbmRhbC1yZXNpc3RhbnQgaG91c2luZ3M8L2xpPgo8bGk+RGlmZmljdWx0IGZvciB2aXNpdG9ycyB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGVyZSB0aGUgY2FtZXJhIGlzIHBvaW50aW5nPC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPlBvdGVudGlhbCBkcmF3YmFja3M6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPk5vdCBhcyB2aXN1YWxseSBpbnRpbWlkYXRpbmcgYXMgYnVsbGV0IGNhbWVyYXM8L2xpPgo8bGk+T3V0ZG9vciBtb2RlbHMgcmVxdWlyZSBwcm9wZXIgd2VhdGhlciByYXRpbmdzPC9saT4KPGxpPkxvbmctZGlzdGFuY2Ugdmlld2luZyBpc24ndCB0aGVpciBzdHJvbmdlc3QgZmVhdHVyZTwvbGk+CjwvdWw+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SWYgeW91ciBnb2FsIGlzIGRlcGVuZGFibGUgaW5kb29yIHN1cnZlaWxsYW5jZSB3aXRoIGEgcHJvZmVzc2lvbmFsIGFwcGVhcmFuY2UsIGRvbWUgY2FtZXJhcyBhcmUgYW4gZXhjZWxsZW50IGNob2ljZS4gVGhleSBxdWlldGx5IGRvIHRoZWlyIGpvYiB3aXRob3V0IGJlY29taW5nIHRoZSBmb2NhbCBwb2ludCBvZiB0aGUgcm9vbS48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Mi4gQnVsbGV0IENhbWVyYXM8L2gyPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGUgVmlzaWJsZSBEZXRlcnJlbnQ8L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPklmIHlvdSd2ZSBldmVyIG5vdGljZWQgYSBzZWN1cml0eSBjYW1lcmEgZnJvbSBhY3Jvc3MgYSBwYXJraW5nIGxvdCwgY2hhbmNlcyBhcmUgaXQgd2FzIGEgYnVsbGV0IGNhbWVyYS4gVGhlaXIgbG9uZywgY3lsaW5kcmljYWwgZGVzaWduIG1ha2VzIHRoZW0gb25lIG9mIHRoZSBtb3N0IHJlY29nbml6YWJsZSB0eXBlcyBvZiBzdXJ2ZWlsbGFuY2UgY2FtZXJhcywgYW5kIGZvciBtYW55IGhvbWVvd25lcnMgYW5kIGJ1c2luZXNzZXMsIHRoYXQncyBleGFjdGx5IHRoZSBwb2ludC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VW5saWtlIGRvbWUgY2FtZXJhcyB0aGF0IHRlbmQgdG8gYmxlbmQgaW50byB0aGUgYmFja2dyb3VuZCwgYnVsbGV0IGNhbWVyYXMgc2VuZCBhIGNsZWFyIG1lc3NhZ2U6IDxzdHJvbmc+dGhpcyBwcm9wZXJ0eSBpcyBiZWluZyBtb25pdG9yZWQuPC9zdHJvbmc+IFNvbWV0aW1lcyBwcmV2ZW50aW5nIGEgY3JpbWUgaXMganVzdCBhcyB2YWx1YWJsZSBhcyByZWNvcmRpbmcgb25lLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPkJlc3QgbG9jYXRpb25zIGluY2x1ZGU6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPkZyb250IGVudHJhbmNlczwvbGk+CjxsaT5Ecml2ZXdheXM8L2xpPgo8bGk+U2lkZSB5YXJkczwvbGk+CjxsaT5CYWNreWFyZHM8L2xpPgo8bGk+UGFya2luZyBsb3RzPC9saT4KPGxpPkNvbW1lcmNpYWwgYnVpbGRpbmdzPC9saT4KPGxpPldhcmVob3VzZSBleHRlcmlvcnM8L2xpPgo8L3VsPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+QWR2YW50YWdlczo8L3N0cm9uZz48L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+SGlnaGx5IHZpc2libGUgZGV0ZXJyZW50PC9saT4KPGxpPkV4Y2VsbGVudCBsb25nLWRpc3RhbmNlIHZpZXdpbmc8L2xpPgo8bGk+RWFzeSB0byBhZGp1c3QgYW5kIGFpbTwvbGk+CjxsaT5XZWF0aGVyLXJlc2lzdGFudCBmb3Igb3V0ZG9vciB1c2U8L2xpPgo8bGk+QXZhaWxhYmxlIHdpdGggcG93ZXJmdWwgem9vbSBsZW5zZXMgYW5kIEFJIGZlYXR1cmVzPC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPlBvdGVudGlhbCBkcmF3YmFja3M6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPk1vcmUgbm90aWNlYWJsZSB0aGFuIG90aGVyIGNhbWVyYSBzdHlsZXM8L2xpPgo8bGk+Q2FuIGJlIGVhc2llciB0byBpZGVudGlmeSBmcm9tIGEgZGlzdGFuY2U8L2xpPgo8bGk+U29tZSBob21lb3duZXJzIHByZWZlciBhIG1vcmUgZGlzY3JlZXQgYXBwZWFyYW5jZTwvbGk+CjwvdWw+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkEgUmVhbCBJbnN0YWxsYXRpb24gU3RvcnkgRnJvbSBXZXN0bGFrZTwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T25lIG9mIG91ciBmYXZvcml0ZSBpbnN0YWxsYXRpb25zIHdhcyBmb3IgYSBob21lb3duZXIgaW4gPHN0cm9uZz5XZXN0bGFrZSwgRmxvcmlkYTwvc3Ryb25nPi4gSGUgb3duZWQgYSBiZWF1dGlmdWwgdG93bmhvdXNlIGFuZCBoYWQgYWxyZWFkeSBzcGVudCB3ZWVrcyByZXNlYXJjaGluZyBkaWZmZXJlbnQgY2FtZXJhIHN5c3RlbXMgYmVmb3JlIGdpdmluZyB1cyBhIGNhbGwuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkhlIHNwZWNpZmljYWxseSByZXF1ZXN0ZWQgYSA8c3Ryb25nPlViaXF1aXRpIHNlY3VyaXR5IGNhbWVyYSBzeXN0ZW08L3N0cm9uZz4uIEhlIGxpa2VkIHRoZSBxdWFsaXR5IG9mIHRoZSBlcXVpcG1lbnQsIGFwcHJlY2lhdGVkIHRoZSBlY29zeXN0ZW0sIGFuZCB3YW50ZWQgYSBwcm9mZXNzaW9uYWxseSBpbnN0YWxsZWQgc3VydmVpbGxhbmNlIHN5c3RlbSB0aGF0IHdvdWxkIHByb3RlY3QgaGlzIGhvbWUgZm9yIHllYXJzIHRvIGNvbWUuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoZW4gd2Ugc3RhcnRlZCBkaXNjdXNzaW5nIGNhbWVyYSBwbGFjZW1lbnQsIHdlIHJlY29tbWVuZGVkIHR1cnJldCBjYW1lcmFzLiBUaGV5J3JlIG9uZSBvZiBvdXIgbW9zdCBwb3B1bGFyIGNob2ljZXMgZm9yIHJlc2lkZW50aWFsIGhvbWVzIGJlY2F1c2UgdGhleSBwcm9kdWNlIG91dHN0YW5kaW5nIGltYWdlIHF1YWxpdHksIHBlcmZvcm0gZXhjZXB0aW9uYWxseSB3ZWxsIGF0IG5pZ2h0LCBhbmQgaGF2ZSBiZWNvbWUgb3VyIGdvLXRvIGNhbWVyYSBmb3IgbWFueSBpbnN0YWxsYXRpb25zIHRocm91Z2hvdXQgUGFsbSBCZWFjaCBDb3VudHkuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoZW4gaGUgc21pbGVkIGFuZCBzYWlkIHNvbWV0aGluZyB3ZSBkb24ndCBoZWFyIHZlcnkgb2Z0ZW4uPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxlbT4iSSBkb24ndCB3YW50IG15IGNhbWVyYXMgdG8gYmxlbmQgaW4uIEkgd2FudCBwZW9wbGUgdG8gbm90aWNlIHRoZW0uIjwvZW0+PC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkluc3RlYWQgb2YgaW5zdGFsbGluZyB3aGl0ZSB0dXJyZXQgY2FtZXJhcyBiZW5lYXRoIHRoZSBzb2ZmaXRzLCBoZSBjaG9zZSA8c3Ryb25nPmJsYWNrIFViaXF1aXRpIGJ1bGxldCBjYW1lcmFzPC9zdHJvbmc+LiBBZ2FpbnN0IHRoZSBsaWdodGVyIGV4dGVyaW9yIG9mIGhpcyB0b3duaG91c2UsIHRoZXkgc3Rvb2Qgb3V0IGltbWVkaWF0ZWx5LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5IaXMgZ29hbCB3YXNuJ3QgdG8gbWFrZSB0aGUgaG91c2UgbG9vayBtb3JlIGhpZ2gtdGVjaC4gSXQgd2FzIHRvIGNyZWF0ZSBhIHZpc2libGUgZGV0ZXJyZW50LiBIZSB3YW50ZWQgYW55b25lIHdhbGtpbmcgdG93YXJkIGhpcyBob21lIHRvIHJlY29nbml6ZSByaWdodCBhd2F5IHRoYXQgdGhlIHByb3BlcnR5IHdhcyBwcm90ZWN0ZWQgYnkgcHJvZmVzc2lvbmFsbHkgaW5zdGFsbGVkIHNlY3VyaXR5IGNhbWVyYXMuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkl0IGdhdmUgaGlzIHRvd25ob3VzZSB0aGUgc2FtZSBjb25maWRlbnQgc2VjdXJpdHkgcHJlc2VuY2UgeW91IG9mdGVuIHNlZSBvbiBjb21tZXJjaWFsIGJ1aWxkaW5ncywgYW5kIGl0IHBlcmZlY3RseSBtYXRjaGVkIGhpcyBzZWN1cml0eSBwaGlsb3NvcGh5LjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+U29tZXRpbWVzIFZpc2liaWxpdHkgSXMgdGhlIEJlc3QgU2VjdXJpdHkgRmVhdHVyZTwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TWFueSBob21lb3duZXJzIGFzayB1cyBpZiBjYW1lcmFzIHNob3VsZCBiZSBoaWRkZW4gb3IgdmlzaWJsZS4gVGhlIGhvbmVzdCBhbnN3ZXIgaXMgdGhhdCBpdCBkZXBlbmRzIG9uIHlvdXIgZ29hbHMuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlNvbWUgcGVvcGxlIHdhbnQgY2FtZXJhcyB0aGF0IGJsZW5kIGludG8gdGhlIGhvbWUgYW5kIGFyZSBiYXJlbHkgbm90aWNlYWJsZS4gT3RoZXJzIHdhbnQgY2FtZXJhcyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIG1pc3MgYmVjYXVzZSB0aGV5IGJlbGlldmUgYW4gb2J2aW91cyBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIGNhbiBkaXNjb3VyYWdlIHNvbWVvbmUgZnJvbSBhdHRlbXB0aW5nIGEgYnJlYWstaW4gaW4gdGhlIGZpcnN0IHBsYWNlLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5OZWl0aGVyIGFwcHJvYWNoIGlzIHdyb25nLiBJdCdzIHNpbXBseSBhbm90aGVyIGV4YW1wbGUgb2Ygd2h5IGNob29zaW5nIHRoZSByaWdodCBjYW1lcmEgaXNuJ3QganVzdCBhYm91dCBpbWFnZSBxdWFsaXR5LiBJdCdzIGFib3V0IGRlc2lnbmluZyBhIHNlY3VyaXR5IHN5c3RlbSB0aGF0IGZpdHMgeW91ciBwcm9wZXJ0eSwgeW91ciBsaWZlc3R5bGUsIGFuZCB0aGUgbGV2ZWwgb2YgZGV0ZXJyZW5jZSB5b3Ugd2FudCB0byBjcmVhdGUuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoaWxlIGJ1bGxldCBjYW1lcmFzIHdlcmUgdGhlIHBlcmZlY3QgY2hvaWNlIGZvciBvdXIgV2VzdGxha2UgY3VzdG9tZXIsIG1vc3QgaG9tZW93bmVycyBhcmUgc3VycHJpc2VkIHRvIGxlYXJuIHRoYXQgb3VyIG1vc3QgZnJlcXVlbnRseSBpbnN0YWxsZWQgY2FtZXJhIGlzbid0IGEgYnVsbGV0IGNhbWVyYSBhdCBhbGwuPC9wPgo8aDIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjMuIFR1cnJldCBDYW1lcmFzPC9oMj4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T3VyIE1vc3QgUmVjb21tZW5kZWQgQ2FtZXJhIGZvciBIb21lczwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SWYgeW91J3ZlIGxvb2tlZCB0aHJvdWdoIG91ciByZWNlbnQgaW5zdGFsbGF0aW9uIHBob3RvcyBvciB2aWRlb3MsIHlvdSd2ZSBwcm9iYWJseSBub3RpY2VkIG9uZSB0aGluZzogd2UgaW5zdGFsbCBhIGxvdCBvZiB0dXJyZXQgY2FtZXJhcy4gVGhlcmUncyBhIGdvb2QgcmVhc29uIGZvciB0aGF0LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JbiBvdXIgZXhwZXJpZW5jZSwgdHVycmV0IGNhbWVyYXMgb2ZmZXIgb25lIG9mIHRoZSBiZXN0IGNvbWJpbmF0aW9ucyBvZiBpbWFnZSBxdWFsaXR5LCByZWxpYWJpbGl0eSwgYW5kIHZhbHVlIGZvciByZXNpZGVudGlhbCBzZWN1cml0eS4gV2hpbGUgZXZlcnkgcHJvcGVydHkgaXMgZGlmZmVyZW50LCB0aGV5J3JlIG9mdGVuIHRoZSBmaXJzdCBjYW1lcmEgd2UgcmVjb21tZW5kIGZvciBob21lb3duZXJzIHRocm91Z2hvdXQgUGFsbSBCZWFjaCBDb3VudHkuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+QmVzdCBsb2NhdGlvbnMgaW5jbHVkZTo8L3N0cm9uZz48L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+RnJvbnQgZG9vcnM8L2xpPgo8bGk+RHJpdmV3YXlzPC9saT4KPGxpPlBhdGlvczwvbGk+CjxsaT5Qb29sIGFyZWFzPC9saT4KPGxpPlNpZGUgZ2F0ZXM8L2xpPgo8bGk+QmFja3lhcmRzPC9saT4KPGxpPkdhcmFnZSBlbnRyYW5jZXM8L2xpPgo8L3VsPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+QWR2YW50YWdlczo8L3N0cm9uZz48L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+T3V0c3RhbmRpbmcgZGF5IGFuZCBuaWdodCBpbWFnZSBxdWFsaXR5PC9saT4KPGxpPkV4Y2VsbGVudCBpbmZyYXJlZCBuaWdodCB2aXNpb24gd2l0aCBtaW5pbWFsIGdsYXJlPC9saT4KPGxpPkxlc3MgbGlrZWx5IHRvIGF0dHJhY3Qgc3BpZGVyIHdlYnMgdGhhbiB0cmFkaXRpb25hbCBidWxsZXQgY2FtZXJhczwvbGk+CjxsaT5Db21wYWN0LCBtb2Rlcm4gYXBwZWFyYW5jZTwvbGk+CjxsaT5FYXN5IHRvIHBvc2l0aW9uIGZvciBwcmVjaXNlIHZpZXdpbmcgYW5nbGVzPC9saT4KPGxpPkF2YWlsYWJsZSB3aXRoIEFJIHBlcnNvbiwgdmVoaWNsZSwgYW5kIHBldCBkZXRlY3Rpb248L2xpPgo8L3VsPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+UG90ZW50aWFsIGRyYXdiYWNrczo8L3N0cm9uZz48L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+Tm90IGFzIHZpc3VhbGx5IGludGltaWRhdGluZyBhcyBhIGxhcmdlIGJ1bGxldCBjYW1lcmE8L2xpPgo8bGk+TWF5IG5vdCBwcm92aWRlIHRoZSBzYW1lICJjb21tZXJjaWFsIHNlY3VyaXR5IiBhcHBlYXJhbmNlIHNvbWUgaG9tZW93bmVycyBwcmVmZXI8L2xpPgo8L3VsPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5XaHkgV2UgUmVjb21tZW5kIFR1cnJldCBDYW1lcmFzIFNvIE9mdGVuPC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5XaGVuIGhvbWVvd25lcnMgYXNrIHVzIHdoaWNoIGNhbWVyYSB3ZSB3b3VsZCBpbnN0YWxsIG9uIG91ciBvd24gaG9tZXMsIHR1cnJldCBjYW1lcmFzIGFyZSB1c3VhbGx5IGF0IHRoZSB0b3Agb2YgdGhlIGxpc3QuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPk9uZSBvZiB0aGUgYmlnZ2VzdCByZWFzb25zIGlzIHRoZWlyIG5pZ2h0dGltZSBwZXJmb3JtYW5jZS4gVHJhZGl0aW9uYWwgZG9tZSBjYW1lcmFzIGNhbiBzb21ldGltZXMgY3JlYXRlIGluZnJhcmVkIHJlZmxlY3Rpb25zIGluc2lkZSB0aGUgY2xlYXIgZG9tZSwgd2hpbGUgYnVsbGV0IGNhbWVyYXMgb2NjYXNpb25hbGx5IGF0dHJhY3Qgc3BpZGVyIHdlYnMgbmVhciB0aGUgbGVucyBiZWNhdXNlIG9mIHRoZSB3YXJtdGggZ2VuZXJhdGVkIGFyb3VuZCB0aGUgaW5mcmFyZWQgTEVEcy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VHVycmV0IGNhbWVyYXMgbGFyZ2VseSBhdm9pZCBib3RoIG9mIHRob3NlIGlzc3Vlcy4gVGhlaXIgb3Blbi1mYWNlIGRlc2lnbiBwcm9kdWNlcyBjcmlzcCBuaWdodHRpbWUgaW1hZ2VzIHdpdGhvdXQgdGhlIGdsYXJlIHRoYXQgY2FuIGFmZmVjdCBzb21lIG90aGVyIGNhbWVyYSBzdHlsZXMuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoZXkncmUgYWxzbyBpbmNyZWRpYmx5IHZlcnNhdGlsZS4gV2hldGhlciB3ZSdyZSBwcm90ZWN0aW5nIGEgc2luZ2xlLWZhbWlseSBob21lLCBhIGdhdGVkIGNvbW11bml0eSBlbnRyYW5jZSwgYSBkb2N0b3IncyBvZmZpY2UsIG9yIGEgc21hbGwgYnVzaW5lc3MsIHR1cnJldCBjYW1lcmFzIGNvbnNpc3RlbnRseSBkZWxpdmVyIGV4Y2VsbGVudCB2aWRlbyBxdWFsaXR5LjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhlIENhbWVyYSBZb3UgUmFyZWx5IE5vdGljZTwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T25lIHRoaW5nIG1hbnkgaG9tZW93bmVycyBhcHByZWNpYXRlIGlzIHRoYXQgdHVycmV0IGNhbWVyYXMgZG9uJ3QgZG9taW5hdGUgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGhvbWUuIEluc3RhbGxlZCB1bmRlciBhIHNvZmZpdCBvciBiZW5lYXRoIGFuIGVudHJ5d2F5LCB0aGV5IGxvb2sgY2xlYW4gYW5kIHByb2Zlc3Npb25hbCB3aXRob3V0IGRyYXdpbmcgdW5uZWNlc3NhcnkgYXR0ZW50aW9uLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Gb3IgbWFueSBmYW1pbGllcywgdGhhdCdzIGV4YWN0bHkgd2hhdCB0aGV5J3JlIGxvb2tpbmcgZm9yLiBUaGV5IHdhbnQgZXhjZWxsZW50IHNlY3VyaXR5IHdpdGhvdXQgbWFraW5nIHRoZWlyIGhvdXNlIGxvb2sgbGlrZSBhIGdvdmVybm1lbnQgYnVpbGRpbmcgb3IgYSBiYW5rLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5PZiBjb3Vyc2UsIGFzIG91ciBXZXN0bGFrZSBjdXN0b21lciBzaG93ZWQgdXMsIHNvbWUgaG9tZW93bmVycyBwcmVmZXIgdGhlIG9wcG9zaXRlIGFwcHJvYWNoLiBUaGV5IHdhbnQgY2FtZXJhcyB0aGF0IHN0YW5kIG91dCBhbmQgaW1tZWRpYXRlbHkgdGVsbCB2aXNpdG9ycyB0aGUgcHJvcGVydHkgaXMgcHJvdGVjdGVkLjwvcD4KPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5XYXRjaCBJdCBpbiBBY3Rpb248L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldlIHJlY2VudGx5IGNyZWF0ZWQgdGhpcyBzaG9ydCB2aWRlbyBleHBsYWluaW5nIHdoeSBzb21lIGhvbWVvd25lcnMgaW50ZW50aW9uYWxseSBjaG9vc2UgaGlnaGx5IHZpc2libGUgc2VjdXJpdHkgY2FtZXJhcy4gSXQncyBhIHBlcmZlY3QgZXhhbXBsZSBvZiB0aGUgV2VzdGxha2UgaW5zdGFsbGF0aW9uIHdlIGRpc2N1c3NlZCBhYm92ZS48L3A+Cgo8ZGl2IHN0eWxlPSJtYXgtd2lkdGg6NzAwcHg7bWFyZ2luOjMwcHggYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjsiPgoKPGEgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvUGlSUHBQRUx3YzAiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij4KCjxpbWcgc3JjPSJZT1VSLVRIVU1CTkFJTC5qcGciCmFsdD0iV2F0Y2ggb3VyIFNlY3VyaXR5IENhbWVyYSBWaWRlbyIKc3R5bGU9IndpZHRoOjEwMCU7bWF4LXdpZHRoOjcwMHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgNnB4IDIwcHggcmdiYSgwLDAsMCwuMjUpOyI+Cgo8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjE4cHg7YmFja2dyb3VuZDojZmYwMDAwO2NvbG9yOiNmZmY7cGFkZGluZzoxNHB4IDI4cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjsiPgrilrYgV2F0Y2ggVGhpcyA2MC1TZWNvbmQgVmlkZW8KPC9kaXY+Cgo8L2E+Cgo8cCBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM1NTU7dGV4dC1hbGlnbjpsZWZ0OyI+ClNlZSBob3cgdGhpcyBzZWN1cml0eSBjYW1lcmEgc2V0dXAgd29ya3MgaW4gdGhlIHJlYWwgd29ybGQgYW5kIHdoeSB0aGUgcmlnaHQgY2FtZXJhIHBsYWNlbWVudCBtYWtlcyBhbGwgdGhlIGRpZmZlcmVuY2UuCjwvcD4KCjwvZGl2Pgo8L2Rpdj4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48ZW0+U29tZXRpbWVzIHRoZSBiZXN0IHNlY3VyaXR5IGZlYXR1cmUgaXNuJ3QgaGlkaW5nIHlvdXIgY2FtZXJhcy4gSXQncyBtYWtpbmcgc3VyZSBldmVyeW9uZSBrbm93cyB0aGV5J3JlIHRoZXJlLjwvZW0+PC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPk5laXRoZXIgYXBwcm9hY2ggaXMgd3JvbmcuIE9uZSBwcmlvcml0aXplcyBzdWJ0bGUgcHJvdGVjdGlvbiwgd2hpbGUgdGhlIG90aGVyIGVtcGhhc2l6ZXMgdmlzaWJsZSBkZXRlcnJlbmNlLiBPdXIgam9iIGlzIHRvIGxpc3RlbiB0byB5b3VyIGdvYWxzIGFuZCByZWNvbW1lbmQgdGhlIGNhbWVyYSBzdHlsZSB0aGF0IGJlc3QgbWF0Y2hlcyB5b3VyIHByb3BlcnR5IGFuZCB5b3VyIGNvbWZvcnQgbGV2ZWwuPC9wPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGUgQmVzdCBDYW1lcmEgSXMgdGhlIE9uZSBUaGF0IEZpdHMgWW91ciBHb2FsczwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SXQncyBlYXN5IHRvIGdldCBjYXVnaHQgdXAgY29tcGFyaW5nIGJyYW5kcywgbWVnYXBpeGVscywgYW5kIHNwZWNpZmljYXRpb25zLCBidXQgdGhlIHRydXRoIGlzIHRoYXQgcHJvcGVyIGNhbWVyYSBwbGFjZW1lbnQgdXN1YWxseSBoYXMgYSBncmVhdGVyIGltcGFjdCBvbiBzZWN1cml0eSB0aGFuIGNob29zaW5nIGJldHdlZW4gdHdvIHNpbWlsYXIgY2FtZXJhIG1vZGVscy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QSBwcm9mZXNzaW9uYWxseSBpbnN0YWxsZWQgNEsgdHVycmV0IGNhbWVyYSBhaW1lZCBhdCB0aGUgcmlnaHQgbG9jYXRpb24gd2lsbCBhbG1vc3QgYWx3YXlzIG91dHBlcmZvcm0gYSBtb3JlIGV4cGVuc2l2ZSBjYW1lcmEgdGhhdCdzIGluc3RhbGxlZCBpbiB0aGUgd3JvbmcgcGxhY2UuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoYXQncyB3aHkgZXZlcnkgaW5zdGFsbGF0aW9uIGJlZ2lucyB3aXRoIGEgY29udmVyc2F0aW9uIGFib3V0IHdoYXQgeW91IHdhbnQgeW91ciBjYW1lcmFzIHRvIGFjY29tcGxpc2guIE9uY2Ugd2UgdW5kZXJzdGFuZCB5b3VyIGdvYWxzLCB3ZSBjYW4gcmVjb21tZW5kIHRoZSBlcXVpcG1lbnQgdGhhdCBnaXZlcyB5b3UgdGhlIGJlc3QgY2hhbmNlIG9mIGNhcHR1cmluZyB1c2VmdWwgZXZpZGVuY2UgaWYgaXQncyBldmVyIG5lZWRlZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TmV4dCwgbGV0J3MgbG9vayBhdCBvbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgY2FtZXJhIHR5cGVzIGF2YWlsYWJsZSBmb3IgbGFyZ2UgcHJvcGVydGllcywgY29tbWVyY2lhbCBidWlsZGluZ3MsIGFuZCBhbnlvbmUgd2hvIG5lZWRzIHRvIG1vbml0b3Igd2lkZSBhcmVhcyB3aXRoIGV4Y2VwdGlvbmFsIGRldGFpbC48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+NC4gUFRaIENhbWVyYXM8L2gyPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5XaGVuIE9uZSBDYW1lcmEgTmVlZHMgdG8gQ292ZXIgYSBMYXJnZSBBcmVhPC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5QVFogc3RhbmRzIGZvciA8c3Ryb25nPlBhbiwgVGlsdCwgYW5kIFpvb208L3N0cm9uZz4sIGFuZCB0aGVzZSBjYW1lcmFzIGFyZSBpbiBhIGxlYWd1ZSBvZiB0aGVpciBvd24uIFVubGlrZSBmaXhlZCBjYW1lcmFzIHRoYXQgYWx3YXlzIHdhdGNoIHRoZSBzYW1lIGFyZWEsIFBUWiBjYW1lcmFzIGNhbiByb3RhdGUgbGVmdCBhbmQgcmlnaHQsIHRpbHQgdXAgYW5kIGRvd24sIGFuZCB6b29tIGluIG9uIG9iamVjdHMgaHVuZHJlZHMgb2YgZmVldCBhd2F5IHdoaWxlIG1haW50YWluaW5nIGluY3JlZGlibGUgaW1hZ2UgcXVhbGl0eS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhpbmsgb2YgYSBQVFogY2FtZXJhIGFzIGhhdmluZyBhIHByb2Zlc3Npb25hbCBjYW1lcmEgb3BlcmF0b3IgYnVpbHQgaW50byB0aGUgc3lzdGVtLiBXaXRoIHRoZSB0b3VjaCBvZiBhIGJ1dHRvbiwgeW91IGNhbiBtb3ZlIHRoZSBjYW1lcmEsIHpvb20gaW4gb24gc3VzcGljaW91cyBhY3Rpdml0eSwgb3IgcHJvZ3JhbSBpdCB0byBhdXRvbWF0aWNhbGx5IHBhdHJvbCBkaWZmZXJlbnQgYXJlYXMgb2YgeW91ciBwcm9wZXJ0eS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5CZXN0IGxvY2F0aW9ucyBpbmNsdWRlOjwvc3Ryb25nPjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5MYXJnZSByZXNpZGVudGlhbCBlc3RhdGVzPC9saT4KPGxpPkhvcnNlIGZhcm1zIGFuZCByYW5jaGVzPC9saT4KPGxpPkNvbW1lcmNpYWwgcGFya2luZyBsb3RzPC9saT4KPGxpPldhcmVob3VzZXM8L2xpPgo8bGk+TWFyaW5hcyBhbmQgd2F0ZXJmcm9udCBwcm9wZXJ0aWVzPC9saT4KPGxpPlNjaG9vbHM8L2xpPgo8bGk+SW5kdXN0cmlhbCBmYWNpbGl0aWVzPC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPkFkdmFudGFnZXM6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPkNvdmVycyBhIG11Y2ggbGFyZ2VyIGFyZWEgdGhhbiBhIGZpeGVkIGNhbWVyYTwvbGk+CjxsaT5Qb3dlcmZ1bCBvcHRpY2FsIHpvb20gcHJlc2VydmVzIGltYWdlIHF1YWxpdHk8L2xpPgo8bGk+UmVtb3RlIGNvbnRyb2wgZnJvbSB5b3VyIHNtYXJ0cGhvbmUgb3IgY29tcHV0ZXI8L2xpPgo8bGk+QXV0b21hdGljIHBhdHJvbCBwYXR0ZXJuczwvbGk+CjxsaT5BdXRvLXRyYWNraW5nIGF2YWlsYWJsZSBvbiBtYW55IG1vZGVsczwvbGk+CjxsaT5FeGNlbGxlbnQgZm9yIG1vbml0b3JpbmcgbGFyZ2UgcHJvcGVydGllczwvbGk+CjwvdWw+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5Qb3RlbnRpYWwgZHJhd2JhY2tzOjwvc3Ryb25nPjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5IaWdoZXIgY29zdCB0aGFuIGZpeGVkIGNhbWVyYXM8L2xpPgo8bGk+UmVxdWlyZXMgdGhvdWdodGZ1bCBwbGFjZW1lbnQgdG8gbWF4aW1pemUgY292ZXJhZ2U8L2xpPgo8bGk+T25lIGNhbWVyYSBjYW4gb25seSBsb29rIGluIG9uZSBkaXJlY3Rpb24gYXQgYSB0aW1lIHVubGVzcyB1c2luZyBwcm9ncmFtbWVkIHBhdHJvbHM8L2xpPgo8L3VsPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5BIFdhdGVyZnJvbnQgSW5zdGFsbGF0aW9uIFdlJ2xsIE5ldmVyIEZvcmdldDwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T25lIG9mIG91ciBtb3N0IG1lbW9yYWJsZSBQVFogaW5zdGFsbGF0aW9ucyB3YXMgYXQgYSBiZWF1dGlmdWwgd2F0ZXJmcm9udCBob21lIGluIFBhbG0gQmVhY2ggQ291bnR5LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGUgaG9tZW93bmVyIHdhbnRlZCB0byBrZWVwIGFuIGV5ZSBvbiBoaXMgZG9jaywgc2Vhd2FsbCwgYW5kIHRoZSBJbnRyYWNvYXN0YWwgV2F0ZXJ3YXkuIEEgc3RhbmRhcmQgZml4ZWQgY2FtZXJhIHNpbXBseSB3b3VsZG4ndCBwcm92aWRlIHRoZSBmbGV4aWJpbGl0eSBoZSBuZWVkZWQuIEhlIHdhbnRlZCB0byBiZSBhYmxlIHRvIGNoZWNrIG9uIGhpcyBib2F0LCB3YXRjaCBhY3Rpdml0eSBuZWFyIHRoZSBkb2NrLCBhbmQgem9vbSBpbiBpZiBzb21ldGhpbmcgY2F1Z2h0IGhpcyBhdHRlbnRpb24uPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldlIGluc3RhbGxlZCBhIDxzdHJvbmc+NDB4IG9wdGljYWwgem9vbSBQVFogY2FtZXJhPC9zdHJvbmc+LCBnaXZpbmcgaGltIHRoZSBhYmlsaXR5IHRvIHNlZSBpbmNyZWRpYmxlIGRldGFpbCBmcm9tIGh1bmRyZWRzIG9mIGZlZXQgYXdheSB3aXRob3V0IHNhY3JpZmljaW5nIGltYWdlIHF1YWxpdHkuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlVzaW5nIHRoZSBtb2JpbGUgYXBwLCBoZSBjb3VsZCBwYW4gYWNyb3NzIHRoZSB3YXRlciwgdGlsdCBkb3duIHRvd2FyZCB0aGUgZG9jaywgb3Igem9vbSBpbiB0byBpbnNwZWN0IGFjdGl2aXR5IG5lYXIgaGlzIGJvYXQsIGFsbCBmcm9tIHZpcnR1YWxseSBhbnl3aGVyZS4gSXQgdHJhbnNmb3JtZWQgb25lIGNhbWVyYSBpbnRvIGEgcG93ZXJmdWwgc3VydmVpbGxhbmNlIHRvb2wgY2FwYWJsZSBvZiBtb25pdG9yaW5nIGFuIGVudGlyZSB3YXRlcmZyb250IHByb3BlcnR5LjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T3B0aWNhbCBab29tIHZzLiBEaWdpdGFsIFpvb208L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoaXMgaXMgYW4gaW1wb3J0YW50IGRpc3RpbmN0aW9uIHRoYXQgb2Z0ZW4gY29uZnVzZXMgaG9tZW93bmVycy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5PcHRpY2FsIHpvb208L3N0cm9uZz4gdXNlcyB0aGUgY2FtZXJhJ3MgbGVucyB0byBtYWduaWZ5IHRoZSBpbWFnZSwganVzdCBsaWtlIGEgcGFpciBvZiBiaW5vY3VsYXJzLiBUaGUgcGljdHVyZSBzdGF5cyBzaGFycCBiZWNhdXNlIHRoZSBjYW1lcmEgaXMgcGh5c2ljYWxseSBjaGFuZ2luZyBpdHMgZm9jYWwgbGVuZ3RoLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPkRpZ2l0YWwgem9vbTwvc3Ryb25nPiwgb24gdGhlIG90aGVyIGhhbmQsIHNpbXBseSBlbmxhcmdlcyB0aGUgcGl4ZWxzIGFscmVhZHkgY2FwdHVyZWQgYnkgdGhlIGNhbWVyYS4gV2hpbGUgaXQgbWF5IG1ha2UgYW4gb2JqZWN0IGFwcGVhciBjbG9zZXIsIGl0IGFsc28gcmVkdWNlcyBpbWFnZSBxdWFsaXR5LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JZiB5b3VyIGdvYWwgaXMgdG8gaWRlbnRpZnkgZmFjZXMsIHJlYWQgYm9hdCByZWdpc3RyYXRpb24gbnVtYmVycywgb3IgaW5zcGVjdCBhY3Rpdml0eSBodW5kcmVkcyBvZiBmZWV0IGF3YXksIG9wdGljYWwgem9vbSBpcyB0aGUgY2xlYXIgd2lubmVyLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SXMgYSBQVFogQ2FtZXJhIFJpZ2h0IGZvciBZb3VyIFByb3BlcnR5PzwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Rm9yIHRoZSBhdmVyYWdlIGhvbWUsIHByb2JhYmx5IG5vdC4gTW9zdCByZXNpZGVudGlhbCBwcm9wZXJ0aWVzIGFyZSBiZXR0ZXIgcHJvdGVjdGVkIHdpdGggc2V2ZXJhbCBzdHJhdGVnaWNhbGx5IHBsYWNlZCBmaXhlZCBjYW1lcmFzIHJhdGhlciB0aGFuIGEgc2luZ2xlIFBUWi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SG93ZXZlciwgaWYgeW91IG93biBhIGxhcmdlIGVzdGF0ZSwgaG9yc2UgcHJvcGVydHksIG1hcmluYSwgY29tbWVyY2lhbCBmYWNpbGl0eSwgb3Igd2F0ZXJmcm9udCBob21lLCBhIFBUWiBjYW1lcmEgY2FuIHByb3ZpZGUgZmxleGliaWxpdHkgdGhhdCBmaXhlZCBjYW1lcmFzIHNpbXBseSBjYW4ndCBtYXRjaC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2hlbiBwYWlyZWQgd2l0aCB0cmFkaXRpb25hbCB0dXJyZXQgb3IgYnVsbGV0IGNhbWVyYXMsIGEgUFRaIGJlY29tZXMgYW4gb3V0c3RhbmRpbmcgYWRkaXRpb24gdG8gYSBwcm9mZXNzaW9uYWxseSBkZXNpZ25lZCBzdXJ2ZWlsbGFuY2Ugc3lzdGVtLCBhbGxvd2luZyB5b3UgdG8gbW9uaXRvciBicm9hZCBhcmVhcyB3aGlsZSBzdGlsbCBjYXB0dXJpbmcgY2xvc2UtdXAgZGV0YWlscyB3aGVuZXZlciB0aGV5J3JlIG5lZWRlZC48L3A+CjxkaXYgc3R5bGU9Im1heC13aWR0aDo3MDBweDttYXJnaW46MzBweCBhdXRvO3RleHQtYWxpZ246Y2VudGVyOyI+Cgo8YSBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9UUFB0LThHdXlobz9mZWF0dXJlPXNoYXJlIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lOyI+Cgo8aW1nIHNyYz0iWU9VUi1QVFotVEhVTUJOQUlMLmpwZyIKYWx0PSI0MHggUFRaIFdhdGVyZnJvbnQgQ2FtZXJhIEluc3RhbGxhdGlvbiIKc3R5bGU9IndpZHRoOjEwMCU7bWF4LXdpZHRoOjcwMHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgOHB4IDI0cHggcmdiYSgwLDAsMCwuMjUpOyI+Cgo8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjE4cHg7YmFja2dyb3VuZDojZmYwMDAwO2NvbG9yOiNmZmZmZmY7cGFkZGluZzoxNHB4IDI4cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjsiPgrilrYgV2F0Y2ggdGhlIFBUWiBJbnN0YWxsYXRpb24KPC9kaXY+Cgo8L2E+Cgo8cCBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM1NTU7dGV4dC1hbGlnbjpsZWZ0OyI+ClNlZSBvdXIgNDB4IG9wdGljYWwgem9vbSBQVFogY2FtZXJhIGluc3RhbGxlZCBvbiBhIGJlYXV0aWZ1bCB3YXRlcmZyb250IHByb3BlcnR5IGFuZCB3YXRjaCBob3cgb25lIGNhbWVyYSBjYW4gbW9uaXRvciBhbiBlbnRpcmUgZG9jayBhbmQgc3Vycm91bmRpbmcgd2F0ZXJ3YXkuCjwvcD4KCjwvZGl2Pgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SW4gdGhlIG5leHQgc2VjdGlvbiwgd2UnbGwgbG9vayBhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYWR2YW5jZXMgaW4gbW9kZXJuIHN1cnZlaWxsYW5jZSB0ZWNobm9sb2d5OiA8c3Ryb25nPkFJLXBvd2VyZWQgc2VjdXJpdHkgY2FtZXJhczwvc3Ryb25nPiB0aGF0IGNhbiB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gcGVvcGxlLCB2ZWhpY2xlcywgcGV0cywgYW5kIG9yZGluYXJ5IG1vdGlvbiwgZHJhbWF0aWNhbGx5IHJlZHVjaW5nIGZhbHNlIGFsZXJ0cy48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+NS4gQUkgU2VjdXJpdHkgQ2FtZXJhczwvaDI+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlNtYXJ0ZXIgQ2FtZXJhcy4gRmV3ZXIgRmFsc2UgQWxhcm1zLjwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Tm90IGxvbmcgYWdvLCBzZWN1cml0eSBjYW1lcmFzIHRyZWF0ZWQgZXZlcnl0aGluZyBhcyBtb3Rpb24uIEEgcGVyc29uIHdhbGtpbmcgdG8geW91ciBmcm9udCBkb29yLCB5b3VyIG5laWdoYm9yJ3MgY2F0LCBhIHBhbG0gdHJlZSBibG93aW5nIGluIHRoZSB3aW5kLCBvciBoZWFkbGlnaHRzIHN3ZWVwaW5nIGFjcm9zcyB5b3VyIGRyaXZld2F5IGNvdWxkIGFsbCB0cmlnZ2VyIHRoZSBzYW1lIG5vdGlmaWNhdGlvbi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhhdCBtZWFudCBob21lb3duZXJzIG9mdGVuIHJlY2VpdmVkIGRvemVucyBvZiBhbGVydHMgZXZlcnkgZGF5LiBCZWZvcmUgbG9uZywgbWFueSBwZW9wbGUgc2ltcGx5IHN0b3BwZWQgcGF5aW5nIGF0dGVudGlvbiB0byB0aGVtLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Ub2RheSdzIEFJLXBvd2VyZWQgc2VjdXJpdHkgY2FtZXJhcyBhcmUgbXVjaCBzbWFydGVyLiBJbnN0ZWFkIG9mIHNpbXBseSBkZXRlY3RpbmcgbW90aW9uLCB0aGV5IGFuYWx5emUgd2hhdCB0aGV5J3JlIHNlZWluZyBhbmQgY2FuIHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBwZW9wbGUsIHZlaGljbGVzLCBhbmltYWxzLCBhbmQgb3RoZXIgdHlwZXMgb2YgbW92ZW1lbnQuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+Q29tbW9uIEFJIEZlYXR1cmVzIEluY2x1ZGU6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPlBlcnNvbiBEZXRlY3Rpb248L2xpPgo8bGk+VmVoaWNsZSBEZXRlY3Rpb248L2xpPgo8bGk+UGV0IERldGVjdGlvbjwvbGk+CjxsaT5QYWNrYWdlIERldGVjdGlvbjwvbGk+CjxsaT5MaW5lIENyb3NzaW5nIERldGVjdGlvbjwvbGk+CjxsaT5JbnRydXNpb24gRGV0ZWN0aW9uPC9saT4KPGxpPlNtYXJ0IE1vdGlvbiBab25lczwvbGk+CjxsaT5GYWNpYWwgUmVjb2duaXRpb24gb24gc3VwcG9ydGVkIHN5c3RlbXM8L2xpPgo8L3VsPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JbWFnaW5lIFRoaXMuLi48L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPllvdSdyZSByZWxheGluZyBvbiB2YWNhdGlvbiB3aGVuIHlvdXIgcGhvbmUgc2VuZHMgYSBub3RpZmljYXRpb24uPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+IlBlcnNvbiBkZXRlY3RlZCBhdCBmcm9udCBkb29yLiI8L3N0cm9uZz48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+WW91IG9wZW4gdGhlIGFwcCBhbmQgaW5zdGFudGx5IHNlZSB0aGF0IGl0J3MgeW91ciBwYWNrYWdlIGJlaW5nIGRlbGl2ZXJlZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TGF0ZXIgdGhhdCBldmVuaW5nLCB5b3VyIHNwcmlua2xlcnMgdHVybiBvbiwgdHJlZSBicmFuY2hlcyBtb3ZlIGluIHRoZSB3aW5kLCBhbmQgeW91ciBuZWlnaGJvcidzIGNhdCB3YW5kZXJzIGFjcm9zcyB0aGUgeWFyZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+WW91ciBwaG9uZSBzdGF5cyBjb21wbGV0ZWx5IHF1aWV0LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGF0J3MgdGhlIGJpZ2dlc3QgYWR2YW50YWdlIG9mIEFJIGNhbWVyYXMuIFRoZXkgcmVkdWNlIHVubmVjZXNzYXJ5IG5vdGlmaWNhdGlvbnMgc28gdGhlIGFsZXJ0cyB5b3UgZG8gcmVjZWl2ZSBhcmUgYWN0dWFsbHkgd29ydGggbG9va2luZyBhdC48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkFJIERvZXNuJ3QgUmVwbGFjZSBHb29kIENhbWVyYSBQbGFjZW1lbnQ8L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIGlzIGluY3JlZGlibHkgaGVscGZ1bCwgYnV0IGl0IGRvZXNuJ3QgbWFrZSB1cCBmb3IgcG9vciBjYW1lcmEgcGxhY2VtZW50LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5BIHByb2Zlc3Npb25hbGx5IHBvc2l0aW9uZWQgY2FtZXJhIHdpdGggdGhlIGNvcnJlY3Qgdmlld2luZyBhbmdsZSwgbGlnaHRpbmcsIGFuZCBmaWVsZCBvZiB2aWV3IHdpbGwgYWx3YXlzIG91dHBlcmZvcm0gYW4gZXhwZW5zaXZlIGNhbWVyYSB0aGF0J3MgYWltZWQgaW4gdGhlIHdyb25nIGRpcmVjdGlvbi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhhdCdzIHdoeSBldmVyeSBpbnN0YWxsYXRpb24gd2UgcGVyZm9ybSBzdGFydHMgd2l0aCBwbGFubmluZy4gV2UgZG9uJ3QganVzdCBtb3VudCBjYW1lcmFzIHdoZXJlIHRoZXkncmUgY29udmVuaWVudC4gV2UgcGxhY2UgdGhlbSB3aGVyZSB0aGV5J2xsIGNhcHR1cmUgdGhlIGJlc3QgZXZpZGVuY2UgaWYgc29tZXRoaW5nIGV2ZXIgaGFwcGVucy48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldobyBTaG91bGQgQ29uc2lkZXIgQUkgQ2FtZXJhcz88L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkFJIGNhbWVyYXMgYXJlIGFuIGV4Y2VsbGVudCBjaG9pY2UgZm9yOjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5CdXN5IG5laWdoYm9yaG9vZHM8L2xpPgo8bGk+RmFtaWxpZXMgd2hvIHRyYXZlbCBmcmVxdWVudGx5PC9saT4KPGxpPlNtYWxsIGJ1c2luZXNzZXM8L2xpPgo8bGk+V2FyZWhvdXNlczwvbGk+CjxsaT5SZXRhaWwgc3RvcmVzPC9saT4KPGxpPkhvbWVzIHdpdGggbXVsdGlwbGUgZW50cnkgcG9pbnRzPC9saT4KPGxpPkFueW9uZSB0aXJlZCBvZiBjb25zdGFudCBmYWxzZSBtb3Rpb24gYWxlcnRzPC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Nb3N0IG9mIHRoZSBzeXN0ZW1zIHdlIGluc3RhbGwgdG9kYXkgaW5jbHVkZSBzb21lIGxldmVsIG9mIEFJIGJlY2F1c2UgaG9tZW93bmVycyBhcHByZWNpYXRlIHJlY2VpdmluZyBtZWFuaW5nZnVsIGFsZXJ0cyBpbnN0ZWFkIG9mIGRvemVucyBvZiB1bm5lY2Vzc2FyeSBub3RpZmljYXRpb25zIGV2ZXJ5IGRheS48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoZSBGdXR1cmUgb2YgSG9tZSBTZWN1cml0eTwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QUkgdGVjaG5vbG9neSBjb250aW51ZXMgdG8gaW1wcm92ZSBldmVyeSB5ZWFyLiBNb2Rlcm4gc3lzdGVtcyBjYW4gaWRlbnRpZnkgcGVvcGxlLCByZWNvZ25pemUgdmVoaWNsZXMsIGRpc3Rpbmd1aXNoIGJldHdlZW4gcGV0cyBhbmQgaHVtYW5zLCBhbmQgZXZlbiBzZWFyY2ggcmVjb3JkZWQgdmlkZW8gZm9yIHNwZWNpZmljIGV2ZW50cyBpbiBzZWNvbmRzIGluc3RlYWQgb2YgbWFraW5nIHlvdSBzY3JvbGwgdGhyb3VnaCBob3VycyBvZiBmb290YWdlLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Gb3IgbWFueSBob21lb3duZXJzLCBBSSBoYXMgYmVjb21lIG9uZSBvZiB0aGUgbW9zdCB2YWx1YWJsZSBmZWF0dXJlcyBvZiBhIG1vZGVybiBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIGJlY2F1c2UgaXQgaGVscHMgeW91IGZvY3VzIG9uIHdoYXQgYWN0dWFsbHkgbWF0dGVycy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TmV4dCwgd2UnbGwgbG9vayBhdCBvbmUgb2YgdGhlIG1vc3Qgc3BlY2lhbGl6ZWQgY2FtZXJhIHR5cGVzIGF2YWlsYWJsZTogPHN0cm9uZz5BdXRvbWF0aWMgTnVtYmVyIFBsYXRlIFJlY29nbml0aW9uIChBTlBSKTwvc3Ryb25nPiBjYW1lcmFzIHRoYXQgYXJlIGRlc2lnbmVkIHRvIGNhcHR1cmUgY2xlYXIsIHJlYWRhYmxlIGxpY2Vuc2UgcGxhdGVzIGRheSBhbmQgbmlnaHQuPC9wPgo8aDIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjYuIEFOUFIgQ2FtZXJhcyAoQXV0b21hdGljIE51bWJlciBQbGF0ZSBSZWNvZ25pdGlvbik8L2gyPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGUgU3BlY2lhbGlzdHMgb2YgdGhlIFNlY3VyaXR5IENhbWVyYSBXb3JsZDwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TW9zdCBzZWN1cml0eSBjYW1lcmFzIGFyZSBkZXNpZ25lZCB0byBjYXB0dXJlIGdlbmVyYWwgYWN0aXZpdHksIHN1Y2ggYXMgcGVvcGxlIHdhbGtpbmcgdGhyb3VnaCB5b3VyIHlhcmQgb3IgdmVoaWNsZXMgZW50ZXJpbmcgeW91ciBkcml2ZXdheS4gQW4gPHN0cm9uZz5BTlBSIChBdXRvbWF0aWMgTnVtYmVyIFBsYXRlIFJlY29nbml0aW9uKTwvc3Ryb25nPiBjYW1lcmEgaGFzIGEgbXVjaCBtb3JlIHNwZWNpZmljIGpvYjogY2FwdHVyaW5nIGNsZWFyLCByZWFkYWJsZSBsaWNlbnNlIHBsYXRlcy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhlc2UgY2FtZXJhcyB1c2Ugc3BlY2lhbGl6ZWQgbGVuc2VzLCBhZHZhbmNlZCBpbWFnZSBzZW5zb3JzLCBhbmQgY2FyZWZ1bGx5IHR1bmVkIHNodXR0ZXIgc3BlZWRzIHRvIGZyZWV6ZSBmYXN0LW1vdmluZyB2ZWhpY2xlcyBhbmQgcHJvZHVjZSBzaGFycCBpbWFnZXMgb2YgbGljZW5zZSBwbGF0ZXMgZHVyaW5nIHRoZSBkYXkgYW5kIGF0IG5pZ2h0LjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JZiB5b3UndmUgZXZlciB3YXRjaGVkIHRoZSBuZXdzIGFuZCBzZWVuIHBvbGljZSBzZWFyY2hpbmcgZm9yIGEgc3VzcGVjdCB2ZWhpY2xlLCB5b3UndmUgcHJvYmFibHkgaGVhcmQgaW52ZXN0aWdhdG9ycyBhc2sgZm9yIHN1cnZlaWxsYW5jZSBmb290YWdlIHRoYXQgaW5jbHVkZXMgYSBsaWNlbnNlIHBsYXRlLiBUaGF0J3MgZXhhY3RseSB3aGF0IEFOUFIgY2FtZXJhcyBhcmUgZGVzaWduZWQgdG8gcHJvdmlkZS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5CZXN0IGxvY2F0aW9ucyBpbmNsdWRlOjwvc3Ryb25nPjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5Ecml2ZXdheSBlbnRyYW5jZXM8L2xpPgo8bGk+UHJpdmF0ZSByb2FkczwvbGk+CjxsaT5HYXRlZCBjb21tdW5pdGllczwvbGk+CjxsaT5Db21tZXJjaWFsIHBhcmtpbmcgbG90czwvbGk+CjxsaT5BcGFydG1lbnQgY29tcGxleGVzPC9saT4KPGxpPldhcmVob3VzZSBlbnRyYW5jZXM8L2xpPgo8bGk+SE9BIGVudHJhbmNlcyBhbmQgZXhpdHM8L2xpPgo8L3VsPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzdHJvbmc+QWR2YW50YWdlczo8L3N0cm9uZz48L3A+Cgo8dWwgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPgo8bGk+Q2FwdHVyZXMgcmVhZGFibGUgbGljZW5zZSBwbGF0ZXMgZGF5IGFuZCBuaWdodDwvbGk+CjxsaT5FeGNlbGxlbnQgZm9yIGlkZW50aWZ5aW5nIHZlaGljbGVzIGVudGVyaW5nIG9yIGxlYXZpbmcgYSBwcm9wZXJ0eTwvbGk+CjxsaT5Xb3JrcyB3aXRoIG1hbnkgQUktZW5hYmxlZCBzdXJ2ZWlsbGFuY2Ugc3lzdGVtczwvbGk+CjxsaT5Qcm92aWRlcyB2YWx1YWJsZSBldmlkZW5jZSBkdXJpbmcgaW52ZXN0aWdhdGlvbnM8L2xpPgo8bGk+Q2FuIG1vbml0b3IgdHJhZmZpYyBlbnRlcmluZyBwcml2YXRlIHByb3BlcnR5PC9saT4KPC91bD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3Ryb25nPlBvdGVudGlhbCBkcmF3YmFja3M6PC9zdHJvbmc+PC9wPgoKPHVsIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4KPGxpPlJlcXVpcmVzIGNhcmVmdWwgcGxhY2VtZW50IGFuZCBwcm9wZXIgY2FtZXJhIGFuZ2xlczwvbGk+CjxsaT5Ob3QgaW50ZW5kZWQgdG8gcmVwbGFjZSBnZW5lcmFsIHN1cnZlaWxsYW5jZSBjYW1lcmFzPC9saT4KPGxpPk9mdGVuIHdvcmtzIGJlc3QgYXMgcGFydCBvZiBhIGxhcmdlciBjYW1lcmEgc3lzdGVtPC9saT4KPC91bD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2h5IGEgUmVndWxhciBDYW1lcmEgSXNuJ3QgQWx3YXlzIEVub3VnaDwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TWFueSBob21lb3duZXJzIGFzc3VtZSBhbnkgNEsgc2VjdXJpdHkgY2FtZXJhIGNhbiByZWFkIGxpY2Vuc2UgcGxhdGVzLiBTb21ldGltZXMgaXQgY2FuLCBidXQgbm90IGFsd2F5cy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+UmVhZGluZyBhIHBsYXRlIGRlcGVuZHMgb24gc2V2ZXJhbCBmYWN0b3JzLCBpbmNsdWRpbmcgdGhlIGRpc3RhbmNlIHRvIHRoZSB2ZWhpY2xlLCBpdHMgc3BlZWQsIGxpZ2h0aW5nIGNvbmRpdGlvbnMsIGhlYWRsaWdodHMgYXQgbmlnaHQsIGFuZCB0aGUgY2FtZXJhJ3Mgdmlld2luZyBhbmdsZS4gQSBjYW1lcmEgdGhhdCdzIHBlcmZlY3QgZm9yIGlkZW50aWZ5aW5nIGEgcGVyc29uJ3MgZmFjZSBhdCB5b3VyIGZyb250IGRvb3IgbWF5IHN0cnVnZ2xlIHRvIGNhcHR1cmUgYSBsaWNlbnNlIHBsYXRlIG9uIGEgbW92aW5nIHZlaGljbGUgMTAwIGZlZXQgYXdheS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VGhhdCdzIHdoeSBBTlBSIGNhbWVyYXMgYXJlIGVuZ2luZWVyZWQgZGlmZmVyZW50bHkuIFRoZXkncmUgYnVpbHQgZm9yIG9uZSBzcGVjaWZpYyBwdXJwb3NlLCBhbmQgd2hlbiBpbnN0YWxsZWQgY29ycmVjdGx5LCB0aGV5IGRvIGl0IGV4Y2VwdGlvbmFsbHkgd2VsbC48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldobyBTaG91bGQgQ29uc2lkZXIgYW4gQU5QUiBDYW1lcmE/PC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Nb3N0IGhvbWVvd25lcnMgZG9uJ3QgbmVlZCBhIGRlZGljYXRlZCBsaWNlbnNlIHBsYXRlIHJlY29nbml0aW9uIGNhbWVyYS4gSG93ZXZlciwgdGhleSBjYW4gYmUgYW4gZXhjZWxsZW50IGludmVzdG1lbnQgaWYgeW91OjwvcD4KCjx1bCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+CjxsaT5MaXZlIG9uIGEgbGFyZ2UgcHJvcGVydHkgd2l0aCBhIGxvbmcgZHJpdmV3YXk8L2xpPgo8bGk+TWFuYWdlIGEgY29tbWVyY2lhbCBmYWNpbGl0eTwvbGk+CjxsaT5PcGVyYXRlIGEgd2FyZWhvdXNlIG9yIGRpc3RyaWJ1dGlvbiBjZW50ZXI8L2xpPgo8bGk+T3ZlcnNlZSBhbiBhcGFydG1lbnQgY29tcGxleCBvciBIT0E8L2xpPgo8bGk+V2FudCB0byBkb2N1bWVudCBldmVyeSB2ZWhpY2xlIGVudGVyaW5nIHlvdXIgcHJvcGVydHk8L2xpPgo8L3VsPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoZW4gY29tYmluZWQgd2l0aCB0cmFkaXRpb25hbCB0dXJyZXQsIGJ1bGxldCwgb3IgUFRaIGNhbWVyYXMsIGFuIEFOUFIgY2FtZXJhIGFkZHMgYW5vdGhlciBsYXllciBvZiBwcm90ZWN0aW9uIGJ5IGRvY3VtZW50aW5nIGV4YWN0bHkgd2hpY2ggdmVoaWNsZXMgZW50ZXJlZCBvciBleGl0ZWQgeW91ciBwcm9wZXJ0eS48L3A+Cgo8aDIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoaWNoIFNlY3VyaXR5IENhbWVyYSBJcyBSaWdodCBmb3IgWW91PzwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QWZ0ZXIgaW5zdGFsbGluZyBzdXJ2ZWlsbGFuY2Ugc3lzdGVtcyB0aHJvdWdob3V0IFBhbG0gQmVhY2ggQ291bnR5LCB3ZSd2ZSBsZWFybmVkIHRoYXQgdGhlcmUgaXNuJ3Qgb25lIHBlcmZlY3QgY2FtZXJhIGZvciBldmVyeSBzaXR1YXRpb24uIFRoZSByaWdodCBjaG9pY2UgZGVwZW5kcyBvbiB5b3VyIHByb3BlcnR5LCB5b3VyIHNlY3VyaXR5IGdvYWxzLCBhbmQgd2hhdCB5b3Ugd2FudCB5b3VyIGNhbWVyYXMgdG8gYWNjb21wbGlzaC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TWFueSBvZiB0aGUgYmVzdCBzeXN0ZW1zIGNvbWJpbmUgbXVsdGlwbGUgY2FtZXJhIHR5cGVzLiBGb3IgZXhhbXBsZSwgYSBob21lIG1pZ2h0IHVzZSB0dXJyZXQgY2FtZXJhcyBhcm91bmQgdGhlIGhvdXNlLCBhIHZpc2libGUgYnVsbGV0IGNhbWVyYSBvdmVybG9va2luZyB0aGUgZHJpdmV3YXksIGFuZCBhbiBBTlBSIGNhbWVyYSBhdCB0aGUgZW50cmFuY2UgZm9yIGNhcHR1cmluZyBsaWNlbnNlIHBsYXRlcy4gQSBjb21tZXJjaWFsIHByb3BlcnR5IG1heSBhbHNvIGluY2x1ZGUgYSBQVFogY2FtZXJhIHRvIG1vbml0b3IgYSBsYXJnZSBwYXJraW5nIGxvdCBvciB3YXJlaG91c2UgeWFyZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QSBwcm9mZXNzaW9uYWxseSBkZXNpZ25lZCBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIGlzbid0IGFib3V0IGJ1eWluZyB0aGUgbW9zdCBleHBlbnNpdmUgZXF1aXBtZW50LiBJdCdzIGFib3V0IGNob29zaW5nIHRoZSByaWdodCBjYW1lcmFzIGFuZCBwbGFjaW5nIHRoZW0gd2hlcmUgdGhleSdsbCBwcm92aWRlIHRoZSBncmVhdGVzdCBwcm90ZWN0aW9uLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JbiB0aGUgbmV4dCBzZWN0aW9uLCB3ZSdsbCBjb21wYXJlIGFsbCBzaXggY2FtZXJhIHR5cGVzIHNpZGUgYnkgc2lkZSBzbyB5b3UgY2FuIHF1aWNrbHkgc2VlIHdoaWNoIG9uZSBpcyB0aGUgYmVzdCBmaXQgZm9yIHlvdXIgaG9tZSBvciBidXNpbmVzcy48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+U2VjdXJpdHkgQ2FtZXJhIENvbXBhcmlzb24gR3VpZGU8L2gyPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlN0aWxsIHdvbmRlcmluZyB3aGljaCBjYW1lcmEgaXMgcmlnaHQgZm9yIHlvdXIgcHJvcGVydHk/IEhlcmUncyBhIHF1aWNrIGNvbXBhcmlzb24gb2YgdGhlIHNpeCBtb3N0IGNvbW1vbiBzZWN1cml0eSBjYW1lcmEgdHlwZXMgd2UgaW5zdGFsbC4gUmVtZW1iZXIsIHRoZSBiZXN0IHN1cnZlaWxsYW5jZSBzeXN0ZW1zIG9mdGVuIGNvbWJpbmUgbXVsdGlwbGUgY2FtZXJhIHN0eWxlcyB0byBwcm92aWRlIGNvbXBsZXRlIGNvdmVyYWdlLjwvcD4KCjx0YWJsZSBzdHlsZT0id2lkdGg6MTAwJTsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB0ZXh0LWFsaWduOmxlZnQ7IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIxMCI+Cjx0aGVhZD4KPHRyPgo8dGg+Q2FtZXJhIFR5cGU8L3RoPgo8dGg+QmVzdCBGb3I8L3RoPgo8dGg+U3RyZW5ndGg8L3RoPgo8dGg+SWRlYWwgUHJvcGVydHk8L3RoPgo8L3RyPgo8L3RoZWFkPgo8dGJvZHk+Cjx0cj4KPHRkPkRvbWUgQ2FtZXJhPC90ZD4KPHRkPkluZG9vciBzdXJ2ZWlsbGFuY2U8L3RkPgo8dGQ+RGlzY3JlZXQgYXBwZWFyYW5jZTwvdGQ+Cjx0ZD5PZmZpY2VzLCByZXRhaWwgc3RvcmVzLCBzY2hvb2xzPC90ZD4KPC90cj4KPHRyPgo8dGQ+QnVsbGV0IENhbWVyYTwvdGQ+Cjx0ZD5PdXRkb29yIHByb3RlY3Rpb248L3RkPgo8dGQ+VmlzaWJsZSBkZXRlcnJlbnQ8L3RkPgo8dGQ+SG9tZXMsIGJ1c2luZXNzZXMsIHBhcmtpbmcgbG90czwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlR1cnJldCBDYW1lcmE8L3RkPgo8dGQ+R2VuZXJhbCBzdXJ2ZWlsbGFuY2U8L3RkPgo8dGQ+RXhjZWxsZW50IGltYWdlIHF1YWxpdHk8L3RkPgo8dGQ+TW9zdCByZXNpZGVudGlhbCBob21lczwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlBUWiBDYW1lcmE8L3RkPgo8dGQ+TGFyZ2UgYXJlYXM8L3RkPgo8dGQ+UGFuLCB0aWx0IGFuZCBvcHRpY2FsIHpvb208L3RkPgo8dGQ+RXN0YXRlcywgZmFybXMsIG1hcmluYXMsIHdhcmVob3VzZXM8L3RkPgo8L3RyPgo8dHI+Cjx0ZD5BSSBDYW1lcmE8L3RkPgo8dGQ+U21hcnQgYWxlcnRzPC90ZD4KPHRkPlBlcnNvbiBhbmQgdmVoaWNsZSBkZXRlY3Rpb248L3RkPgo8dGQ+SG9tZXMgYW5kIGJ1c2luZXNzZXM8L3RkPgo8L3RyPgo8dHI+Cjx0ZD5BTlBSIENhbWVyYTwvdGQ+Cjx0ZD5MaWNlbnNlIHBsYXRlczwvdGQ+Cjx0ZD5WZWhpY2xlIGlkZW50aWZpY2F0aW9uPC90ZD4KPHRkPkRyaXZld2F5cywgZ2F0ZWQgY29tbXVuaXRpZXMsIGNvbW1lcmNpYWwgZW50cmFuY2VzPC90ZD4KPC90cj4KPC90Ym9keT4KPC90YWJsZT4KCjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T3VyIFJlY29tbWVuZGF0aW9uczwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+RXZlcnkgcHJvcGVydHkgaXMgZGlmZmVyZW50LCBidXQgYWZ0ZXIgaW5zdGFsbGluZyBzdXJ2ZWlsbGFuY2Ugc3lzdGVtcyB0aHJvdWdob3V0IFBhbG0gQmVhY2ggQ291bnR5LCB0aGVzZSBhcmUgdGhlIGNvbWJpbmF0aW9ucyB3ZSByZWNvbW1lbmQgbW9zdCBvZnRlbi48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkZvciBNb3N0IEhvbWVzPC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5PdXIgZmF2b3JpdGUgc2V0dXAgdHlwaWNhbGx5IGluY2x1ZGVzIEFJLXBvd2VyZWQgdHVycmV0IGNhbWVyYXMgcG9zaXRpb25lZCBhcm91bmQgdGhlIGhvbWUgd2l0aCBjb21wbGV0ZSBjb3ZlcmFnZSBvZiBlbnRyeSBwb2ludHMsIHRoZSBkcml2ZXdheSwgYmFja3lhcmQsIGFuZCBzaWRlIGdhdGVzLiBUaGlzIHByb3ZpZGVzIGV4Y2VsbGVudCBpbWFnZSBxdWFsaXR5IHdoaWxlIGtlZXBpbmcgdGhlIGFwcGVhcmFuY2UgY2xlYW4gYW5kIHByb2Zlc3Npb25hbC48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkZvciBIb21lb3duZXJzIFdobyBXYW50IE1heGltdW0gRGV0ZXJyZW5jZTwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SWYgeW91ciBnb2FsIGlzIHRvIG1ha2UgaXQgb2J2aW91cyB5b3VyIHByb3BlcnR5IGlzIHByb3RlY3RlZCwgdmlzaWJsZSBidWxsZXQgY2FtZXJhcyBjYW4gYmUgYW4gZXhjZWxsZW50IGNob2ljZS4gQXMgb3VyIFdlc3RsYWtlIGN1c3RvbWVyIGRlbW9uc3RyYXRlZCwgc29tZSBob21lb3duZXJzIGludGVudGlvbmFsbHkgd2FudCB0aGVpciBjYW1lcmFzIHRvIHN0YW5kIG91dCBiZWNhdXNlIHRoZXkgYmVsaWV2ZSBhIHZpc2libGUgc3VydmVpbGxhbmNlIHN5c3RlbSBtYXkgZGlzY291cmFnZSBzb21lb25lIGZyb20gYXR0ZW1wdGluZyBhIGJyZWFrLWluLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Rm9yIExhcmdlIFByb3BlcnRpZXM8L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkhvcnNlIGZhcm1zLCBsYXJnZSBlc3RhdGVzLCBtYXJpbmFzLCBhbmQgY29tbWVyY2lhbCBwcm9wZXJ0aWVzIG9mdGVuIGJlbmVmaXQgZnJvbSBjb21iaW5pbmcgZml4ZWQgY2FtZXJhcyB3aXRoIG9uZSBvciBtb3JlIFBUWiBjYW1lcmFzLiBGaXhlZCBjYW1lcmFzIGNvbnRpbnVvdXNseSByZWNvcmQga2V5IGxvY2F0aW9ucyB3aGlsZSB0aGUgUFRaIHByb3ZpZGVzIGZsZXhpYmxlIGNvdmVyYWdlIGFjcm9zcyBsYXJnZSBvcGVuIGFyZWFzLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Rm9yIEJ1c2luZXNzZXM8L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkNvbW1lcmNpYWwgc3VydmVpbGxhbmNlIHN5c3RlbXMgdXN1YWxseSBjb21iaW5lIHNldmVyYWwgY2FtZXJhIHR5cGVzLiBEb21lIGNhbWVyYXMgd29yayB3ZWxsIGluZG9vcnMsIHR1cnJldCBvciBidWxsZXQgY2FtZXJhcyBwcm90ZWN0IHRoZSBleHRlcmlvciwgUFRaIGNhbWVyYXMgbW9uaXRvciBwYXJraW5nIGxvdHMsIGFuZCBBTlBSIGNhbWVyYXMgZG9jdW1lbnQgdmVoaWNsZXMgZW50ZXJpbmcgYW5kIGxlYXZpbmcgdGhlIHByb3BlcnR5LjwvcD4KCjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+T25lIFNpemUgRG9lc24ndCBGaXQgQWxsPC9oMj4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5UaGUgYmlnZ2VzdCBtaXN0YWtlIHdlIHNlZSBob21lb3duZXJzIG1ha2UgaXMgdHJ5aW5nIHRvIGNob29zZSBjYW1lcmFzIGJhc2VkIHNvbGVseSBvbiBwcmljZSBvciBvbmxpbmUgcmV2aWV3cy4gVGhlIHRydXRoIGlzIHRoYXQgZXZlbiB0aGUgYmVzdCBjYW1lcmEgd29uJ3QgcGVyZm9ybSB3ZWxsIGlmIGl0J3MgaW5zdGFsbGVkIGluIHRoZSB3cm9uZyBsb2NhdGlvbi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+UHJvZmVzc2lvbmFsIGNhbWVyYSBwbGFjZW1lbnQsIHByb3BlciB2aWV3aW5nIGFuZ2xlcywgbGlnaHRpbmcgY29uZGl0aW9ucywgYW5kIHNlbGVjdGluZyB0aGUgcmlnaHQgbGVucyBvZnRlbiBoYXZlIGEgZ3JlYXRlciBpbXBhY3Qgb24geW91ciBzZWN1cml0eSB0aGFuIHNpbXBseSBidXlpbmcgYSBtb3JlIGV4cGVuc2l2ZSBjYW1lcmEuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoYXQncyB3aHkgZXZlcnkgc3lzdGVtIHdlIGRlc2lnbiBzdGFydHMgd2l0aCBhIGNvbnZlcnNhdGlvbiBhYm91dCB5b3VyIHByb3BlcnR5IGFuZCB5b3VyIGdvYWxzIGJlZm9yZSB3ZSBldmVyIHJlY29tbWVuZCBhIHNwZWNpZmljIGNhbWVyYS48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+RnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMgQWJvdXQgU2VjdXJpdHkgQ2FtZXJhczwvaDI+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkFyZSBidWxsZXQgY2FtZXJhcyBiZXR0ZXIgdGhhbiB0dXJyZXQgY2FtZXJhcz88L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPk5laXRoZXIgY2FtZXJhIGlzIGJldHRlciBpbiBldmVyeSBzaXR1YXRpb24uIEJ1bGxldCBjYW1lcmFzIGFyZSBhbiBleGNlbGxlbnQgY2hvaWNlIHdoZW4geW91IHdhbnQgYSBoaWdobHkgdmlzaWJsZSBkZXRlcnJlbnQgb3IgbmVlZCB0byBtb25pdG9yIGxvbmcgZGlzdGFuY2VzLiBUdXJyZXQgY2FtZXJhcyBhcmUgb3VyIG1vc3QgZnJlcXVlbnRseSBpbnN0YWxsZWQgcmVzaWRlbnRpYWwgY2FtZXJhIGJlY2F1c2UgdGhleSBvZmZlciBleGNlcHRpb25hbCBpbWFnZSBxdWFsaXR5LCBvdXRzdGFuZGluZyBuaWdodCB2aXNpb24sIGFuZCBhIGNsZWFuIGFwcGVhcmFuY2UgdGhhdCBibGVuZHMgd2VsbCB3aXRoIG1vc3QgaG9tZXMuPC9wPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5Ib3cgbWFueSBzZWN1cml0eSBjYW1lcmFzIGRvZXMgdGhlIGF2ZXJhZ2UgaG9tZSBuZWVkPzwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+TW9zdCBzaW5nbGUtZmFtaWx5IGhvbWVzIGFyZSB3ZWxsIHByb3RlY3RlZCB3aXRoIGZvdXIgdG8gZWlnaHQgY2FtZXJhcy4gTGFyZ2VyIGhvbWVzLCBjb3JuZXIgbG90cywgd2F0ZXJmcm9udCBwcm9wZXJ0aWVzLCBhbmQgaG9tZXMgd2l0aCBkZXRhY2hlZCBnYXJhZ2VzIG1heSBiZW5lZml0IGZyb20gYWRkaXRpb25hbCBjYW1lcmFzIHRvIGVsaW1pbmF0ZSBibGluZCBzcG90cy48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkNhbiBzZWN1cml0eSBjYW1lcmFzIHdvcmsgd2l0aG91dCBXaS1GaT88L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlllcy4gTWFueSBwcm9mZXNzaW9uYWxseSBpbnN0YWxsZWQgc2VjdXJpdHkgY2FtZXJhIHN5c3RlbXMgdXNlIFBvd2VyIG92ZXIgRXRoZXJuZXQgKFBvRSkgY2FibGVzIGNvbm5lY3RlZCB0byBhIE5ldHdvcmsgVmlkZW8gUmVjb3JkZXIgKE5WUikuIFRoZXNlIHN5c3RlbXMgY29udGludWUgcmVjb3JkaW5nIGV2ZW4gaWYgeW91ciBpbnRlcm5ldCBzZXJ2aWNlIGdvZXMgZG93bi4gSW50ZXJuZXQgYWNjZXNzIGlzIG9ubHkgbmVlZGVkIHdoZW4geW91IHdhbnQgdG8gdmlldyB5b3VyIGNhbWVyYXMgcmVtb3RlbHkgZnJvbSB5b3VyIHBob25lIG9yIGNvbXB1dGVyLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+RG8gdmlzaWJsZSBzZWN1cml0eSBjYW1lcmFzIGFjdHVhbGx5IGRldGVyIGNyaW1lPzwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VmlzaWJsZSBzZWN1cml0eSBjYW1lcmFzIGNhbiBiZSBhbiBlZmZlY3RpdmUgZGV0ZXJyZW50IGJlY2F1c2UgdGhleSBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCB0aGF0IHN1c3BpY2lvdXMgYWN0aXZpdHkgd2lsbCBiZSByZWNvcmRlZC4gV2hpbGUgbm8gY2FtZXJhIGNhbiBwcmV2ZW50IGV2ZXJ5IGNyaW1lLCBtYW55IGhvbWVvd25lcnMgaW50ZW50aW9uYWxseSBjaG9vc2UgdmlzaWJsZSBjYW1lcmEgbG9jYXRpb25zIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGVpciBwcm9wZXJ0eSBpcyBwcm90ZWN0ZWQuPC9wPgoKPGgzIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5DYW4gc2VjdXJpdHkgY2FtZXJhcyBzZWUgaW4gY29tcGxldGUgZGFya25lc3M/PC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5ZZXMuIE1vc3QgbW9kZXJuIHNlY3VyaXR5IGNhbWVyYXMgaW5jbHVkZSBpbmZyYXJlZCBuaWdodCB2aXNpb24sIGFsbG93aW5nIHRoZW0gdG8gY2FwdHVyZSBjbGVhciB2aWRlbyBldmVuIGluIGNvbXBsZXRlIGRhcmtuZXNzLiBTb21lIHByZW1pdW0gY2FtZXJhcyBhbHNvIG9mZmVyIGZ1bGwtY29sb3IgbmlnaHQgdmlzaW9uIHdoZW4gc3VmZmljaWVudCBhbWJpZW50IGxpZ2h0IGlzIGF2YWlsYWJsZS48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIEFJIGRldGVjdGlvbiBhbmQgcmVndWxhciBtb3Rpb24gZGV0ZWN0aW9uPzwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+VHJhZGl0aW9uYWwgbW90aW9uIGRldGVjdGlvbiBhbGVydHMgeW91IHdoZW5ldmVyIGFueXRoaW5nIG1vdmVzLiBBSS1wb3dlcmVkIGNhbWVyYXMgY2FuIHJlY29nbml6ZSBwZW9wbGUsIHZlaGljbGVzLCBwZXRzLCBhbmQgb3RoZXIgb2JqZWN0cywgZHJhbWF0aWNhbGx5IHJlZHVjaW5nIGZhbHNlIGFsZXJ0cyBjYXVzZWQgYnkgdHJlZXMsIHNoYWRvd3MsIHJhaW4sIG9yIHdpbGRsaWZlLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Q2FuIHNlY3VyaXR5IGNhbWVyYXMgcmVjb3JkIGFsbCB0aGUgdGltZT88L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkFic29sdXRlbHkuIE1vc3QgcHJvZmVzc2lvbmFsIHN1cnZlaWxsYW5jZSBzeXN0ZW1zIGNhbiByZWNvcmQgY29udGludW91c2x5LCByZWNvcmQgb25seSB3aGVuIG1vdGlvbiBpcyBkZXRlY3RlZCwgb3IgdXNlIGEgY29tYmluYXRpb24gb2YgYm90aC4gQ29udGludW91cyByZWNvcmRpbmcgaXMgb2Z0ZW4gdGhlIHByZWZlcnJlZCBvcHRpb24gYmVjYXVzZSBpdCBlbnN1cmVzIGV2ZXJ5IGV2ZW50IGlzIGNhcHR1cmVkLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2hlcmUgc2hvdWxkIG91dGRvb3Igc2VjdXJpdHkgY2FtZXJhcyBiZSBpbnN0YWxsZWQ/PC9oMz4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5PdXRkb29yIGNhbWVyYXMgc2hvdWxkIG1vbml0b3IgdGhlIGFyZWFzIHdoZXJlIHBlb3BsZSBhcmUgbW9zdCBsaWtlbHkgdG8gYXBwcm9hY2ggeW91ciBwcm9wZXJ0eSwgaW5jbHVkaW5nIGZyb250IGRvb3JzLCBkcml2ZXdheXMsIGdhcmFnZXMsIHNpZGUgZ2F0ZXMsIGJhY2t5YXJkcywgcGF0aW9zLCBhbmQgb3RoZXIgZW50cnkgcG9pbnRzLiBQcm9wZXIgcGxhY2VtZW50IGlzIGp1c3QgYXMgaW1wb3J0YW50IGFzIHNlbGVjdGluZyB0aGUgcmlnaHQgY2FtZXJhLjwvcD4KCjxoMyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Q2FuIEkgdmlldyBteSBzZWN1cml0eSBjYW1lcmFzIG9uIG15IHBob25lPzwvaDM+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+WWVzLiBNb3N0IG1vZGVybiBzdXJ2ZWlsbGFuY2Ugc3lzdGVtcyBhbGxvdyB5b3UgdG8gd2F0Y2ggbGl2ZSB2aWRlbywgcmV2aWV3IHJlY29yZGVkIGZvb3RhZ2UsIHJlY2VpdmUgQUkgYWxlcnRzLCBhbmQgY29udHJvbCBjZXJ0YWluIGNhbWVyYXMgZnJvbSBhIHNtYXJ0cGhvbmUsIHRhYmxldCwgb3IgY29tcHV0ZXIgYW55d2hlcmUgeW91IGhhdmUgYW4gaW50ZXJuZXQgY29ubmVjdGlvbi48L3A+Cgo8aDMgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlNob3VsZCBJIGluc3RhbGwgc2VjdXJpdHkgY2FtZXJhcyBteXNlbGYgb3IgaGlyZSBhIHByb2Zlc3Npb25hbD88L2gzPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkRJWSBjYW1lcmFzIGNhbiB3b3JrIHdlbGwgZm9yIGJhc2ljIGFwcGxpY2F0aW9ucywgYnV0IHByb2Zlc3Npb25hbGx5IGluc3RhbGxlZCBzeXN0ZW1zIHR5cGljYWxseSBwcm92aWRlIGJldHRlciBjb3ZlcmFnZSwgY2xlYW5lciBjYWJsZSBtYW5hZ2VtZW50LCBoaWdoZXItcXVhbGl0eSBlcXVpcG1lbnQsIHJlbGlhYmxlIHJlY29yZGluZywgYW5kIGV4cGVydCBjYW1lcmEgcGxhY2VtZW50IHRoYXQgZWxpbWluYXRlcyBibGluZCBzcG90cy4gQSBwcm9mZXNzaW9uYWwgaW5zdGFsbGVyIGNhbiBhbHNvIHJlY29tbWVuZCB0aGUgYmVzdCBjYW1lcmEgdHlwZSBmb3IgZWFjaCBhcmVhIG9mIHlvdXIgcHJvcGVydHkuPC9wPgoKPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5GaW5hbCBUaG91Z2h0czwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Q2hvb3NpbmcgdGhlIHJpZ2h0IHNlY3VyaXR5IGNhbWVyYSBpc24ndCBhYm91dCBmaW5kaW5nIHRoZSBtb3N0IGV4cGVuc2l2ZSBtb2RlbCBvciB0aGUgb25lIHdpdGggdGhlIGxvbmdlc3QgbGlzdCBvZiBmZWF0dXJlcy4gSXQncyBhYm91dCBzZWxlY3RpbmcgdGhlIHJpZ2h0IGNhbWVyYSBmb3IgdGhlIHJpZ2h0IGxvY2F0aW9uIGFuZCBkZXNpZ25pbmcgYSBzeXN0ZW0gdGhhdCB3b3JrcyB0b2dldGhlciB0byBwcm90ZWN0IHlvdXIgaG9tZSBvciBidXNpbmVzcy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QWZ0ZXIgaW5zdGFsbGluZyBzdXJ2ZWlsbGFuY2Ugc3lzdGVtcyB0aHJvdWdob3V0IFBhbG0gQmVhY2ggQ291bnR5LCB3ZSd2ZSBsZWFybmVkIHRoYXQgZXZlcnkgcHJvcGVydHkgaXMgdW5pcXVlLiBTb21lIGhvbWVvd25lcnMgcHJlZmVyIGRpc2NyZWV0IHR1cnJldCBjYW1lcmFzIHRoYXQgYmxlbmQgaW50byB0aGUgaG9tZS4gT3RoZXJzLCBsaWtlIG91ciBjdXN0b21lciBpbiBXZXN0bGFrZSwgaW50ZW50aW9uYWxseSBjaG9vc2UgdmlzaWJsZSBibGFjayBidWxsZXQgY2FtZXJhcyBiZWNhdXNlIHRoZXkgd2FudCBldmVyeW9uZSB0byBrbm93IHRoZWlyIHByb3BlcnR5IGlzIHByb3RlY3RlZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2hldGhlciB5b3UncmUgc2VjdXJpbmcgYSB0b3duaG91c2UsIGEgd2F0ZXJmcm9udCBlc3RhdGUsIGEgaG9yc2UgZmFybSwgYSByZXRhaWwgc3RvcmUsIG9yIGEgY29tbWVyY2lhbCB3YXJlaG91c2UsIHRoZSBnb2FsIGlzIGFsd2F5cyB0aGUgc2FtZTogcHJvdmlkZSBjbGVhciB2aWRlbywgZGVwZW5kYWJsZSByZWNvcmRpbmcsIGFuZCBwZWFjZSBvZiBtaW5kLjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5JZiB5b3UncmUgY29uc2lkZXJpbmcgYSBuZXcgc2VjdXJpdHkgY2FtZXJhIHN5c3RlbSwgd2UnZCBiZSBoYXBweSB0byBoZWxwIHlvdSBjaG9vc2UgdGhlIHJpZ2h0IGVxdWlwbWVudCwgZGVzaWduIHRoZSBpZGVhbCBjYW1lcmEgbGF5b3V0LCBhbmQgcHJvZmVzc2lvbmFsbHkgaW5zdGFsbCBhIHN5c3RlbSB0aGF0J3MgYnVpbHQgYXJvdW5kIHlvdXIgcHJvcGVydHnigJRub3QgYSBvbmUtc2l6ZS1maXRzLWFsbCBwYWNrYWdlLjwvcD4KCjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+UmVhZHkgdG8gUHJvdGVjdCBZb3VyIFByb3BlcnR5PzwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Q2VydGlmaWVkIFNlY3VyaXR5IFN5c3RlbXMgcHJvdWRseSBpbnN0YWxscyBwcm9mZXNzaW9uYWxseSBkZXNpZ25lZCBzZWN1cml0eSBjYW1lcmEgc3lzdGVtcyBmb3IgaG9tZW93bmVycyBhbmQgYnVzaW5lc3NlcyB0aHJvdWdob3V0IFJveWFsIFBhbG0gQmVhY2gsIFdlbGxpbmd0b24sIFdlc3RsYWtlLCBMb3hhaGF0Y2hlZSwgSnVwaXRlciwgUGFsbSBCZWFjaCBHYXJkZW5zLCBXZXN0IFBhbG0gQmVhY2gsIEJvY2EgUmF0b24sIGFuZCB0aGUgc3Vycm91bmRpbmcgUGFsbSBCZWFjaCBDb3VudHkgYXJlYS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5Db250YWN0IHVzIHRvZGF5IGZvciBhIGZyZWUgY29uc3VsdGF0aW9uIGFuZCBsZXQgdXMgaGVscCB5b3UgYnVpbGQgYSBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIHRoYXQgZ2l2ZXMgeW91IGNvbmZpZGVuY2UgMjQgaG91cnMgYSBkYXksIDM2NSBkYXlzIGEgeWVhci48L3N0cm9uZz48L3A+CjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2hhdCBXZSBXb3VsZCBJbnN0YWxsIG9uIE91ciBPd24gSG9tZTwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+QWZ0ZXIgZGVzaWduaW5nIGFuZCBpbnN0YWxsaW5nIHNlY3VyaXR5IGNhbWVyYSBzeXN0ZW1zIHRocm91Z2hvdXQgUGFsbSBCZWFjaCBDb3VudHksIHBlb3BsZSBvZnRlbiBhc2sgdXMgb25lIHNpbXBsZSBxdWVzdGlvbjo8L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz4iSWYgdGhpcyB3ZXJlIHlvdXIgaG91c2UsIHdoYXQgd291bGQgeW91IGluc3RhbGw/Ijwvc3Ryb25nPjwvcD4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5PdXIgYW5zd2VyIGlzIHN1cnByaXNpbmdseSBzaW1wbGUuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldlIHdvdWxkbid0IGNob29zZSBjYW1lcmFzIGJhc2VkIG9uIHRoZSBiaWdnZXN0IHNhbGUsIHRoZSBoaWdoZXN0IG1lZ2FwaXhlbCBjb3VudCwgb3IgdGhlIGxhdGVzdCBtYXJrZXRpbmcgYnV6endvcmRzLiBXZSdkIGNob29zZSBjYW1lcmFzIGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSwgdGhlIGxpZ2h0aW5nIGNvbmRpdGlvbnMsIGFuZCB0aGUgYXJlYXMgdGhhdCBuZWVkIHRoZSBtb3N0IHByb3RlY3Rpb24uPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkZvciBtb3N0IGhvbWVzLCB3ZSdkIHJlY29tbWVuZCBhIHByb2Zlc3Npb25hbGx5IGluc3RhbGxlZCBQb0Ugc3VydmVpbGxhbmNlIHN5c3RlbSB1c2luZyBBSS1wb3dlcmVkIHR1cnJldCBjYW1lcmFzLiBUaGV5IGNvbnNpc3RlbnRseSBkZWxpdmVyIG91dHN0YW5kaW5nIGltYWdlIHF1YWxpdHksIGV4Y2VsbGVudCBuaWdodCB2aXNpb24sIHJlbGlhYmxlIHJlY29yZGluZywgYW5kIGZld2VyIGZhbHNlIGFsZXJ0cy48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SWYgYSBob21lb3duZXIgd2FudGVkIGEgc3Ryb25nZXIgdmlzdWFsIGRldGVycmVudCwgd2UnZCByZWNvbW1lbmQgYWRkaW5nIHZpc2libGUgYnVsbGV0IGNhbWVyYXMsIGp1c3QgbGlrZSBvdXIgY3VzdG9tZXIgaW4gV2VzdGxha2Ugd2hvIGludGVudGlvbmFsbHkgd2FudGVkIGV2ZXJ5b25lIGFwcHJvYWNoaW5nIGhpcyB0b3duaG91c2UgdG8ga25vdyB0aGUgcHJvcGVydHkgd2FzIHByb3RlY3RlZC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+Rm9yIGxhcmdlIGVzdGF0ZXMsIHdhdGVyZnJvbnQgaG9tZXMsIGhvcnNlIHByb3BlcnRpZXMsIG9yIGNvbW1lcmNpYWwgZmFjaWxpdGllcywgd2UnZCBvZnRlbiBjb21iaW5lIGZpeGVkIGNhbWVyYXMgd2l0aCBhIFBUWiBjYW1lcmEgdG8gbW9uaXRvciBsYXJnZSBvcGVuIGFyZWFzIHdoaWxlIG1haW50YWluaW5nIGRldGFpbGVkIGNvdmVyYWdlIHdoZXJlIGl0J3MgbmVlZGVkIG1vc3QuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhpczogZXZlcnkgY2FtZXJhIG9uIHRoZSBzeXN0ZW0gc2hvdWxkIGhhdmUgYSBwdXJwb3NlLiBBIHByb2Zlc3Npb25hbGx5IGRlc2lnbmVkIHN1cnZlaWxsYW5jZSBzeXN0ZW0gaXNuJ3QganVzdCBhIGNvbGxlY3Rpb24gb2YgY2FtZXJhcy4gSXQncyBhIGNhcmVmdWxseSBwbGFubmVkIGxheWVyIG9mIHByb3RlY3Rpb24gdGhhdCB3b3JrcyB0b2dldGhlciB0byBoZWxwIHNhZmVndWFyZCB5b3VyIGZhbWlseSwgeW91ciBlbXBsb3llZXMsIHlvdXIgY3VzdG9tZXJzLCBhbmQgeW91ciBwcm9wZXJ0eS48L3A+Cgo8aDIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPldoeSBQcm9mZXNzaW9uYWwgQ2FtZXJhIFBsYWNlbWVudCBNYXR0ZXJzPC9oMj4KCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij5FdmVuIHRoZSBiZXN0IHNlY3VyaXR5IGNhbWVyYSBjYW4ndCBjYXB0dXJlIHVzZWZ1bCBldmlkZW5jZSBpZiBpdCdzIHBvaW50ZWQgaW4gdGhlIHdyb25nIGRpcmVjdGlvbi48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2UndmUgc2VlbiBleHBlbnNpdmUgY2FtZXJhcyBtb3VudGVkIHRvbyBoaWdoLCBhaW1lZCBkaXJlY3RseSBpbnRvIHRoZSBzdW4sIGJsb2NrZWQgYnkgbGFuZHNjYXBpbmcsIG9yIHBvc2l0aW9uZWQgc28gZmFyIGF3YXkgdGhhdCBpbXBvcnRhbnQgZGV0YWlscyBhcmUgaW1wb3NzaWJsZSB0byBpZGVudGlmeS48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+UHJvZmVzc2lvbmFsIGluc3RhbGxhdGlvbiBpcyBhYm91dCBtdWNoIG1vcmUgdGhhbiBtb3VudGluZyBjYW1lcmFzLiBJdCdzIGFib3V0IHVuZGVyc3RhbmRpbmcgdmlld2luZyBhbmdsZXMsIGxpZ2h0aW5nLCBmb2NhbCBsZW5ndGgsIGJsaW5kIHNwb3RzLCBuZXR3b3JrIHBlcmZvcm1hbmNlLCByZWNvcmRpbmcgY2FwYWNpdHksIGFuZCBob3cgcGVvcGxlIGFjdHVhbGx5IG1vdmUgYXJvdW5kIGEgcHJvcGVydHkuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPlRoYXQncyB0aGUgZGlmZmVyZW5jZSBleHBlcmllbmNlIG1ha2VzLjwvcD4KCjxoMiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+UHJvdGVjdCBXaGF0IE1hdHRlcnMgTW9zdDwvaDI+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+V2hldGhlciB5b3UncmUgcHJvdGVjdGluZyB5b3VyIGZhbWlseSwgeW91ciBob21lLCB5b3VyIGJ1c2luZXNzLCBvciB5b3VyIGVtcGxveWVlcywgdGhlIHJpZ2h0IHN1cnZlaWxsYW5jZSBzeXN0ZW0gcHJvdmlkZXMgbW9yZSB0aGFuIHJlY29yZGVkIHZpZGVvLiBJdCBwcm92aWRlcyBjb25maWRlbmNlIGV2ZXJ5IHRpbWUgeW91IGxlYXZlIHRoZSBob3VzZSwgdHJhdmVsIG9uIHZhY2F0aW9uLCBvciBjbG9zZSB5b3VyIGJ1c2luZXNzIGZvciB0aGUgbmlnaHQuPC9wPgoKPHAgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPkF0IENlcnRpZmllZCBTZWN1cml0eSBTeXN0ZW1zLCB3ZSBkb24ndCBiZWxpZXZlIGluIG9uZS1zaXplLWZpdHMtYWxsIHBhY2thZ2VzLiBFdmVyeSByZWNvbW1lbmRhdGlvbiB3ZSBtYWtlIGlzIGJhc2VkIG9uIHlvdXIgcHJvcGVydHksIHlvdXIgZ29hbHMsIGFuZCB5b3VyIGJ1ZGdldC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+SWYgeW91J3JlIHJlYWR5IHRvIGRlc2lnbiBhIHNlY3VyaXR5IGNhbWVyYSBzeXN0ZW0gdGhhdCdzIGJ1aWx0IHNwZWNpZmljYWxseSBmb3IgeW91ciBob21lIG9yIGJ1c2luZXNzLCB3ZSdkIGJlIGhvbm9yZWQgdG8gaGVscC48L3A+Cgo8cCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHN0cm9uZz5DYWxsIENlcnRpZmllZCBTZWN1cml0eSBTeXN0ZW1zIHRvZGF5IHRvIHNjaGVkdWxlIHlvdXIgZnJlZSBzZWN1cml0eSBjb25zdWx0YXRpb24gYW5kIGRpc2NvdmVyIHdoaWNoIGNhbWVyYSBzeXN0ZW0gaXMgcmlnaHQgZm9yIHlvdXIgcHJvcGVydHkuPC9zdHJvbmc+PC9wPg==
Which Type of CCTV Camera Should You Choose? The Complete Homeowner's Guide
Choosing a security camera shouldn't feel like learning a new language. Bullet cameras, turret cameras, dome cameras, PTZ cameras, AI cameras... the options can quickly become overwhelming. The truth is, there isn't one "best" security camera. The best camera is the one that's installed in the right location for the job.
After installing thousands of security cameras across Palm Beach County, we've learned that every home and every business has different needs. A camera that's perfect for protecting a warehouse might not be the best choice for a townhouse, and the camera you'd install over a front door may not be the right one for watching a long driveway.
This guide will walk you through the most common types of CCTV cameras, explain where each one performs best, and share a few real-world installation stories from our own customers. By the end, you'll understand which camera style is right for your property and why professional camera placement is just as important as the equipment itself.
Why Choosing the Right Camera Matters
Many homeowners shop for cameras by comparing prices or megapixels, but those are only part of the equation. The most important question is, "What do you want this camera to accomplish?"
For example, do you want to:
- Deter someone from approaching your home?
- Identify faces at your front door?
- Read license plates at the end of a long driveway?
- Monitor your backyard while you're away?
- Receive AI alerts only when a person or vehicle is detected?
The answers determine which camera style will perform best. A properly designed surveillance system combines the right camera with the right location, viewing angle, lighting, and recording technology.
Let's look at the six most common security camera types and where each one shines.
1. Dome Cameras
The Discreet Professional
Dome cameras get their name from the clear dome that surrounds the camera lens. They're commonly used indoors because they provide excellent coverage while blending into the ceiling. Many businesses choose dome cameras because they look clean, professional, and don't immediately draw attention.
Best locations include:
- Office buildings
- Retail stores
- Reception areas
- Hotels
- Schools
- Hallways
Advantages:
- Wide viewing angles
- Clean, low-profile appearance
- Excellent for indoor environments
- Many models offer vandal-resistant housings
- Difficult for visitors to determine exactly where the camera is pointing
Potential drawbacks:
- Not as visually intimidating as bullet cameras
- Outdoor models require proper weather ratings
- Long-distance viewing isn't their strongest feature
If your goal is dependable indoor surveillance with a professional appearance, dome cameras are an excellent choice. They quietly do their job without becoming the focal point of the room.
2. Bullet Cameras
The Visible Deterrent
If you've ever noticed a security camera from across a parking lot, chances are it was a bullet camera. Their long, cylindrical design makes them one of the most recognizable types of surveillance cameras, and for many homeowners and businesses, that's exactly the point.
Unlike dome cameras that tend to blend into the background, bullet cameras send a clear message: this property is being monitored. Sometimes preventing a crime is just as valuable as recording one.
Best locations include:
- Front entrances
- Driveways
- Side yards
- Backyards
- Parking lots
- Commercial buildings
- Warehouse exteriors
Advantages:
- Highly visible deterrent
- Excellent long-distance viewing
- Easy to adjust and aim
- Weather-resistant for outdoor use
- Available with powerful zoom lenses and AI features
Potential drawbacks:
- More noticeable than other camera styles
- Can be easier to identify from a distance
- Some homeowners prefer a more discreet appearance
A Real Installation Story From Westlake
One of our favorite installations was for a homeowner in Westlake, Florida. He owned a beautiful townhouse and had already spent weeks researching different camera systems before giving us a call.
He specifically requested a Ubiquiti security camera system. He liked the quality of the equipment, appreciated the ecosystem, and wanted a professionally installed surveillance system that would protect his home for years to come.
When we started discussing camera placement, we recommended turret cameras. They're one of our most popular choices for residential homes because they produce outstanding image quality, perform exceptionally well at night, and have become our go-to camera for many installations throughout Palm Beach County.
Then he smiled and said something we don't hear very often.
"I don't want my cameras to blend in. I want people to notice them."
Instead of installing white turret cameras beneath the soffits, he chose black Ubiquiti bullet cameras. Against the lighter exterior of his townhouse, they stood out immediately.
His goal wasn't to make the house look more high-tech. It was to create a visible deterrent. He wanted anyone walking toward his home to recognize right away that the property was protected by professionally installed security cameras.
It gave his townhouse the same confident security presence you often see on commercial buildings, and it perfectly matched his security philosophy.
Sometimes Visibility Is the Best Security Feature
Many homeowners ask us if cameras should be hidden or visible. The honest answer is that it depends on your goals.
Some people want cameras that blend into the home and are barely noticeable. Others want cameras that are impossible to miss because they believe an obvious surveillance system can discourage someone from attempting a break-in in the first place.
Neither approach is wrong. It's simply another example of why choosing the right camera isn't just about image quality. It's about designing a security system that fits your property, your lifestyle, and the level of deterrence you want to create.
While bullet cameras were the perfect choice for our Westlake customer, most homeowners are surprised to learn that our most frequently installed camera isn't a bullet camera at all.
3. Turret Cameras
Our Most Recommended Camera for Homes
If you've looked through our recent installation photos or videos, you've probably noticed one thing: we install a lot of turret cameras. There's a good reason for that.
In our experience, turret cameras offer one of the best combinations of image quality, reliability, and value for residential security. While every property is different, they're often the first camera we recommend for homeowners throughout Palm Beach County.
Best locations include:
- Front doors
- Driveways
- Patios
- Pool areas
- Side gates
- Backyards
- Garage entrances
Advantages:
- Outstanding day and night image quality
- Excellent infrared night vision with minimal glare
- Less likely to attract spider webs than traditional bullet cameras
- Compact, modern appearance
- Easy to position for precise viewing angles
- Available with AI person, vehicle, and pet detection
Potential drawbacks:
- Not as visually intimidating as a large bullet camera
- May not provide the same "commercial security" appearance some homeowners prefer
Why We Recommend Turret Cameras So Often
When homeowners ask us which camera we would install on our own homes, turret cameras are usually at the top of the list.
One of the biggest reasons is their nighttime performance. Traditional dome cameras can sometimes create infrared reflections inside the clear dome, while bullet cameras occasionally attract spider webs near the lens because of the warmth generated around the infrared LEDs.
Turret cameras largely avoid both of those issues. Their open-face design produces crisp nighttime images without the glare that can affect some other camera styles.
They're also incredibly versatile. Whether we're protecting a single-family home, a gated community entrance, a doctor's office, or a small business, turret cameras consistently deliver excellent video quality.
The Camera You Rarely Notice
One thing many homeowners appreciate is that turret cameras don't dominate the appearance of the home. Installed under a soffit or beneath an entryway, they look clean and professional without drawing unnecessary attention.
For many families, that's exactly what they're looking for. They want excellent security without making their house look like a government building or a bank.
Of course, as our Westlake customer showed us, some homeowners prefer the opposite approach. They want cameras that stand out and immediately tell visitors the property is protected.
Watch It in Action
We recently created this short video explaining why some homeowners intentionally choose highly visible security cameras. It's a perfect example of the Westlake installation we discussed above.
▶ Watch This 60-Second Video
See how this security camera setup works in the real world and why the right camera placement makes all the difference.
Sometimes the best security feature isn't hiding your cameras. It's making sure everyone knows they're there.
Neither approach is wrong. One prioritizes subtle protection, while the other emphasizes visible deterrence. Our job is to listen to your goals and recommend the camera style that best matches your property and your comfort level.
The Best Camera Is the One That Fits Your Goals
It's easy to get caught up comparing brands, megapixels, and specifications, but the truth is that proper camera placement usually has a greater impact on security than choosing between two similar camera models.
A professionally installed 4K turret camera aimed at the right location will almost always outperform a more expensive camera that's installed in the wrong place.
That's why every installation begins with a conversation about what you want your cameras to accomplish. Once we understand your goals, we can recommend the equipment that gives you the best chance of capturing useful evidence if it's ever needed.
Next, let's look at one of the most powerful camera types available for large properties, commercial buildings, and anyone who needs to monitor wide areas with exceptional detail.
4. PTZ Cameras
When One Camera Needs to Cover a Large Area
PTZ stands for Pan, Tilt, and Zoom, and these cameras are in a league of their own. Unlike fixed cameras that always watch the same area, PTZ cameras can rotate left and right, tilt up and down, and zoom in on objects hundreds of feet away while maintaining incredible image quality.
Think of a PTZ camera as having a professional camera operator built into the system. With the touch of a button, you can move the camera, zoom in on suspicious activity, or program it to automatically patrol different areas of your property.
Best locations include:
- Large residential estates
- Horse farms and ranches
- Commercial parking lots
- Warehouses
- Marinas and waterfront properties
- Schools
- Industrial facilities
Advantages:
- Covers a much larger area than a fixed camera
- Powerful optical zoom preserves image quality
- Remote control from your smartphone or computer
- Automatic patrol patterns
- Auto-tracking available on many models
- Excellent for monitoring large properties
Potential drawbacks:
- Higher cost than fixed cameras
- Requires thoughtful placement to maximize coverage
- One camera can only look in one direction at a time unless using programmed patrols
A Waterfront Installation We'll Never Forget
One of our most memorable PTZ installations was at a beautiful waterfront home in Palm Beach County.
The homeowner wanted to keep an eye on his dock, seawall, and the Intracoastal Waterway. A standard fixed camera simply wouldn't provide the flexibility he needed. He wanted to be able to check on his boat, watch activity near the dock, and zoom in if something caught his attention.
We installed a 40x optical zoom PTZ camera, giving him the ability to see incredible detail from hundreds of feet away without sacrificing image quality.
Using the mobile app, he could pan across the water, tilt down toward the dock, or zoom in to inspect activity near his boat, all from virtually anywhere. It transformed one camera into a powerful surveillance tool capable of monitoring an entire waterfront property.
Optical Zoom vs. Digital Zoom
This is an important distinction that often confuses homeowners.
Optical zoom uses the camera's lens to magnify the image, just like a pair of binoculars. The picture stays sharp because the camera is physically changing its focal length.
Digital zoom, on the other hand, simply enlarges the pixels already captured by the camera. While it may make an object appear closer, it also reduces image quality.
If your goal is to identify faces, read boat registration numbers, or inspect activity hundreds of feet away, optical zoom is the clear winner.
Is a PTZ Camera Right for Your Property?
For the average home, probably not. Most residential properties are better protected with several strategically placed fixed cameras rather than a single PTZ.
However, if you own a large estate, horse property, marina, commercial facility, or waterfront home, a PTZ camera can provide flexibility that fixed cameras simply can't match.
When paired with traditional turret or bullet cameras, a PTZ becomes an outstanding addition to a professionally designed surveillance system, allowing you to monitor broad areas while still capturing close-up details whenever they're needed.
▶ Watch the PTZ Installation
See our 40x optical zoom PTZ camera installed on a beautiful waterfront property and watch how one camera can monitor an entire dock and surrounding waterway.
In the next section, we'll look at one of the biggest advances in modern surveillance technology: AI-powered security cameras that can tell the difference between people, vehicles, pets, and ordinary motion, dramatically reducing false alerts.
5. AI Security Cameras
Smarter Cameras. Fewer False Alarms.
Not long ago, security cameras treated everything as motion. A person walking to your front door, your neighbor's cat, a palm tree blowing in the wind, or headlights sweeping across your driveway could all trigger the same notification.
That meant homeowners often received dozens of alerts every day. Before long, many people simply stopped paying attention to them.
Today's AI-powered security cameras are much smarter. Instead of simply detecting motion, they analyze what they're seeing and can tell the difference between people, vehicles, animals, and other types of movement.
Common AI Features Include:
- Person Detection
- Vehicle Detection
- Pet Detection
- Package Detection
- Line Crossing Detection
- Intrusion Detection
- Smart Motion Zones
- Facial Recognition on supported systems
Imagine This...
You're relaxing on vacation when your phone sends a notification.
"Person detected at front door."
You open the app and instantly see that it's your package being delivered.
Later that evening, your sprinklers turn on, tree branches move in the wind, and your neighbor's cat wanders across the yard.
Your phone stays completely quiet.
That's the biggest advantage of AI cameras. They reduce unnecessary notifications so the alerts you do receive are actually worth looking at.
AI Doesn't Replace Good Camera Placement
Artificial intelligence is incredibly helpful, but it doesn't make up for poor camera placement.
A professionally positioned camera with the correct viewing angle, lighting, and field of view will always outperform an expensive camera that's aimed in the wrong direction.
That's why every installation we perform starts with planning. We don't just mount cameras where they're convenient. We place them where they'll capture the best evidence if something ever happens.
Who Should Consider AI Cameras?
AI cameras are an excellent choice for:
- Busy neighborhoods
- Families who travel frequently
- Small businesses
- Warehouses
- Retail stores
- Homes with multiple entry points
- Anyone tired of constant false motion alerts
Most of the systems we install today include some level of AI because homeowners appreciate receiving meaningful alerts instead of dozens of unnecessary notifications every day.
The Future of Home Security
AI technology continues to improve every year. Modern systems can identify people, recognize vehicles, distinguish between pets and humans, and even search recorded video for specific events in seconds instead of making you scroll through hours of footage.
For many homeowners, AI has become one of the most valuable features of a modern surveillance system because it helps you focus on what actually matters.
Next, we'll look at one of the most specialized camera types available: Automatic Number Plate Recognition (ANPR) cameras that are designed to capture clear, readable license plates day and night.
6. ANPR Cameras (Automatic Number Plate Recognition)
The Specialists of the Security Camera World
Most security cameras are designed to capture general activity, such as people walking through your yard or vehicles entering your driveway. An ANPR (Automatic Number Plate Recognition) camera has a much more specific job: capturing clear, readable license plates.
These cameras use specialized lenses, advanced image sensors, and carefully tuned shutter speeds to freeze fast-moving vehicles and produce sharp images of license plates during the day and at night.
If you've ever watched the news and seen police searching for a suspect vehicle, you've probably heard investigators ask for surveillance footage that includes a license plate. That's exactly what ANPR cameras are designed to provide.
Best locations include:
- Driveway entrances
- Private roads
- Gated communities
- Commercial parking lots
- Apartment complexes
- Warehouse entrances
- HOA entrances and exits
Advantages:
- Captures readable license plates day and night
- Excellent for identifying vehicles entering or leaving a property
- Works with many AI-enabled surveillance systems
- Provides valuable evidence during investigations
- Can monitor traffic entering private property
Potential drawbacks:
- Requires careful placement and proper camera angles
- Not intended to replace general surveillance cameras
- Often works best as part of a larger camera system
Why a Regular Camera Isn't Always Enough
Many homeowners assume any 4K security camera can read license plates. Sometimes it can, but not always.
Reading a plate depends on several factors, including the distance to the vehicle, its speed, lighting conditions, headlights at night, and the camera's viewing angle. A camera that's perfect for identifying a person's face at your front door may struggle to capture a license plate on a moving vehicle 100 feet away.
That's why ANPR cameras are engineered differently. They're built for one specific purpose, and when installed correctly, they do it exceptionally well.
Who Should Consider an ANPR Camera?
Most homeowners don't need a dedicated license plate recognition camera. However, they can be an excellent investment if you:
- Live on a large property with a long driveway
- Manage a commercial facility
- Operate a warehouse or distribution center
- Oversee an apartment complex or HOA
- Want to document every vehicle entering your property
When combined with traditional turret, bullet, or PTZ cameras, an ANPR camera adds another layer of protection by documenting exactly which vehicles entered or exited your property.
Which Security Camera Is Right for You?
After installing surveillance systems throughout Palm Beach County, we've learned that there isn't one perfect camera for every situation. The right choice depends on your property, your security goals, and what you want your cameras to accomplish.
Many of the best systems combine multiple camera types. For example, a home might use turret cameras around the house, a visible bullet camera overlooking the driveway, and an ANPR camera at the entrance for capturing license plates. A commercial property may also include a PTZ camera to monitor a large parking lot or warehouse yard.
A professionally designed surveillance system isn't about buying the most expensive equipment. It's about choosing the right cameras and placing them where they'll provide the greatest protection.
In the next section, we'll compare all six camera types side by side so you can quickly see which one is the best fit for your home or business.
Security Camera Comparison Guide
Still wondering which camera is right for your property? Here's a quick comparison of the six most common security camera types we install. Remember, the best surveillance systems often combine multiple camera styles to provide complete coverage.
| Camera Type |
Best For |
Strength |
Ideal Property |
| Dome Camera |
Indoor surveillance |
Discreet appearance |
Offices, retail stores, schools |
| Bullet Camera |
Outdoor protection |
Visible deterrent |
Homes, businesses, parking lots |
| Turret Camera |
General surveillance |
Excellent image quality |
Most residential homes |
| PTZ Camera |
Large areas |
Pan, tilt and optical zoom |
Estates, farms, marinas, warehouses |
| AI Camera |
Smart alerts |
Person and vehicle detection |
Homes and businesses |
| ANPR Camera |
License plates |
Vehicle identification |
Driveways, gated communities, commercial entrances |
Our Recommendations
Every property is different, but after installing surveillance systems throughout Palm Beach County, these are the combinations we recommend most often.
For Most Homes
Our favorite setup typically includes AI-powered turret cameras positioned around the home with complete coverage of entry points, the driveway, backyard, and side gates. This provides excellent image quality while keeping the appearance clean and professional.
For Homeowners Who Want Maximum Deterrence
If your goal is to make it obvious your property is protected, visible bullet cameras can be an excellent choice. As our Westlake customer demonstrated, some homeowners intentionally want their cameras to stand out because they believe a visible surveillance system may discourage someone from attempting a break-in.
For Large Properties
Horse farms, large estates, marinas, and commercial properties often benefit from combining fixed cameras with one or more PTZ cameras. Fixed cameras continuously record key locations while the PTZ provides flexible coverage across large open areas.
For Businesses
Commercial surveillance systems usually combine several camera types. Dome cameras work well indoors, turret or bullet cameras protect the exterior, PTZ cameras monitor parking lots, and ANPR cameras document vehicles entering and leaving the property.
One Size Doesn't Fit All
The biggest mistake we see homeowners make is trying to choose cameras based solely on price or online reviews. The truth is that even the best camera won't perform well if it's installed in the wrong location.
Professional camera placement, proper viewing angles, lighting conditions, and selecting the right lens often have a greater impact on your security than simply buying a more expensive camera.
That's why every system we design starts with a conversation about your property and your goals before we ever recommend a specific camera.
Frequently Asked Questions About Security Cameras
Are bullet cameras better than turret cameras?
Neither camera is better in every situation. Bullet cameras are an excellent choice when you want a highly visible deterrent or need to monitor long distances. Turret cameras are our most frequently installed residential camera because they offer exceptional image quality, outstanding night vision, and a clean appearance that blends well with most homes.
How many security cameras does the average home need?
Most single-family homes are well protected with four to eight cameras. Larger homes, corner lots, waterfront properties, and homes with detached garages may benefit from additional cameras to eliminate blind spots.
Can security cameras work without Wi-Fi?
Yes. Many professionally installed security camera systems use Power over Ethernet (PoE) cables connected to a Network Video Recorder (NVR). These systems continue recording even if your internet service goes down. Internet access is only needed when you want to view your cameras remotely from your phone or computer.
Do visible security cameras actually deter crime?
Visible security cameras can be an effective deterrent because they increase the likelihood that suspicious activity will be recorded. While no camera can prevent every crime, many homeowners intentionally choose visible camera locations to make it clear that their property is protected.
Can security cameras see in complete darkness?
Yes. Most modern security cameras include infrared night vision, allowing them to capture clear video even in complete darkness. Some premium cameras also offer full-color night vision when sufficient ambient light is available.
What's the difference between AI detection and regular motion detection?
Traditional motion detection alerts you whenever anything moves. AI-powered cameras can recognize people, vehicles, pets, and other objects, dramatically reducing false alerts caused by trees, shadows, rain, or wildlife.
Can security cameras record all the time?
Absolutely. Most professional surveillance systems can record continuously, record only when motion is detected, or use a combination of both. Continuous recording is often the preferred option because it ensures every event is captured.
Where should outdoor security cameras be installed?
Outdoor cameras should monitor the areas where people are most likely to approach your property, including front doors, driveways, garages, side gates, backyards, patios, and other entry points. Proper placement is just as important as selecting the right camera.
Can I view my security cameras on my phone?
Yes. Most modern surveillance systems allow you to watch live video, review recorded footage, receive AI alerts, and control certain cameras from a smartphone, tablet, or computer anywhere you have an internet connection.
Should I install security cameras myself or hire a professional?
DIY cameras can work well for basic applications, but professionally installed systems typically provide better coverage, cleaner cable management, higher-quality equipment, reliable recording, and expert camera placement that eliminates blind spots. A professional installer can also recommend the best camera type for each area of your property.
Final Thoughts
Choosing the right security camera isn't about finding the most expensive model or the one with the longest list of features. It's about selecting the right camera for the right location and designing a system that works together to protect your home or business.
After installing surveillance systems throughout Palm Beach County, we've learned that every property is unique. Some homeowners prefer discreet turret cameras that blend into the home. Others, like our customer in Westlake, intentionally choose visible black bullet cameras because they want everyone to know their property is protected.
Whether you're securing a townhouse, a waterfront estate, a horse farm, a retail store, or a commercial warehouse, the goal is always the same: provide clear video, dependable recording, and peace of mind.
If you're considering a new security camera system, we'd be happy to help you choose the right equipment, design the ideal camera layout, and professionally install a system that's built around your property—not a one-size-fits-all package.
Ready to Protect Your Property?
Certified Security Systems proudly installs professionally designed security camera systems for homeowners and businesses throughout Royal Palm Beach, Wellington, Westlake, Loxahatchee, Jupiter, Palm Beach Gardens, West Palm Beach, Boca Raton, and the surrounding Palm Beach County area.
Contact us today for a free consultation and let us help you build a surveillance system that gives you confidence 24 hours a day, 365 days a year.
What We Would Install on Our Own Home
After designing and installing security camera systems throughout Palm Beach County, people often ask us one simple question:
"If this were your house, what would you install?"
Our answer is surprisingly simple.
We wouldn't choose cameras based on the biggest sale, the highest megapixel count, or the latest marketing buzzwords. We'd choose cameras based on the property, the lighting conditions, and the areas that need the most protection.
For most homes, we'd recommend a professionally installed PoE surveillance system using AI-powered turret cameras. They consistently deliver outstanding image quality, excellent night vision, reliable recording, and fewer false alerts.
If a homeowner wanted a stronger visual deterrent, we'd recommend adding visible bullet cameras, just like our customer in Westlake who intentionally wanted everyone approaching his townhouse to know the property was protected.
For large estates, waterfront homes, horse properties, or commercial facilities, we'd often combine fixed cameras with a PTZ camera to monitor large open areas while maintaining detailed coverage where it's needed most.
The important thing is this: every camera on the system should have a purpose. A professionally designed surveillance system isn't just a collection of cameras. It's a carefully planned layer of protection that works together to help safeguard your family, your employees, your customers, and your property.
Why Professional Camera Placement Matters
Even the best security camera can't capture useful evidence if it's pointed in the wrong direction.
We've seen expensive cameras mounted too high, aimed directly into the sun, blocked by landscaping, or positioned so far away that important details are impossible to identify.
Professional installation is about much more than mounting cameras. It's about understanding viewing angles, lighting, focal length, blind spots, network performance, recording capacity, and how people actually move around a property.
That's the difference experience makes.
Protect What Matters Most
Whether you're protecting your family, your home, your business, or your employees, the right surveillance system provides more than recorded video. It provides confidence every time you leave the house, travel on vacation, or close your business for the night.
At Certified Security Systems, we don't believe in one-size-fits-all packages. Every recommendation we make is based on your property, your goals, and your budget.
If you're ready to design a security camera system that's built specifically for your home or business, we'd be honored to help.
Call Certified Security Systems today to schedule your free security consultation and discover which camera system is right for your property.