Good Faith Investing

parable talents Good Faith Investing

The Parable of the Talents and Investing

Industrial oil pumpjack in a desert setting under a clear blue sky, illustrating oil extraction technology.

PGgxPlRoZSBQYXJhYmxlIG9mIHRoZSBUYWxlbnRzIGFuZCBJbnZlc3Rpbmc6IFdoYXQgSmVzdXMgVGF1Z2h0IEFib3V0IFN0ZXdhcmRzaGlwLCBSaXNrLCBhbmQgUmV0dXJuczwvaDE+Cgo8cD5UaGUgUGFyYWJsZSBvZiB0aGUgVGFsZW50cyBzdGFuZHMgYXMgb25lIG9mIFNjcmlwdHVyZSdzIG1vc3QgbWlzdW5kZXJzdG9vZCB0ZWFjaGluZ3MgYWJvdXQgbW9uZXkgYW5kIHJlc3BvbnNpYmlsaXR5LiBGb3IgY2VudHVyaWVzLCBDaHJpc3RpYW5zIGhhdmUgZGViYXRlZCB3aGF0IEplc3VzIG1lYW50IHdoZW4gaGUgdG9sZCB0aGUgc3Rvcnkgb2YgdGhyZWUgc2VydmFudHMgZW50cnVzdGVkIHdpdGggdGhlaXIgbWFzdGVyJ3Mgd2VhbHRo4oCUYW5kIHdoZXRoZXIgaGlzIG1lc3NhZ2UgaGFzIGFueXRoaW5nIHRvIGRvIHdpdGggbW9kZXJuIGZpbmFuY2lhbCBpbnZlc3RtZW50IGF0IGFsbC4gVGhpcyBhcnRpY2xlIGV4cGxvcmVzIHRoZSBmdWxsIHRoZW9sb2dpY2FsIGRlcHRoIG9mIHRoaXMgcGFyYWJsZSwgaXRzIGVjb25vbWljIGNvbnRleHQsIGl0cyBwcmltYXJ5IHNwaXJpdHVhbCBtZWFuaW5nLCBhbmQgdGhlIGxlZ2l0aW1hdGUgYnV0IGxpbWl0ZWQgd2F5cyBpdCBpbmZvcm1zIGEgQ2hyaXN0aWFuIGFwcHJvYWNoIHRvIGludmVzdGluZy48L3A+Cgo8aDI+VGhlIEJpYmxpY2FsIFRleHRzOiBNYXR0aGV3IDI1IGFuZCBMdWtlIDE5PC9oMj4KCjxwPkplc3VzIHByZXNlbnRlZCB2ZXJzaW9ucyBvZiB0aGlzIHBhcmFibGUgbmVhciB0aGUgZW5kIG9mIGhpcyBtaW5pc3RyeSwgcmVjb3JkZWQgaW4gYm90aCBNYXR0aGV3IGFuZCBMdWtlLiBVbmRlcnN0YW5kaW5nIGJvdGggYWNjb3VudHMgcmV2ZWFscyB0aGUgbGF5ZXJzIG9mIGhpcyB0ZWFjaGluZy48L3A+Cgo8aDM+TWF0dGhldyAyNToxNC0zMDwvaDM+Cgo8cD5JbiBNYXR0aGV3LCBKZXN1cyBzZXRzIHRoZSBzdGFnZSBleHBsaWNpdGx5OiAiQWdhaW4sIGl0IHdpbGwgYmUgbGlrZSBhIG1hbiBnb2luZyBvbiBhIGpvdXJuZXksIHdobyBjYWxsZWQgaGlzIHNlcnZhbnRzIGFuZCBlbnRydXN0ZWQgaGlzIHdlYWx0aCB0byB0aGVtLiIgVGhlIG1hc3RlciBnaXZlcyBmaXZlIHRhbGVudHMgdG8gb25lIHNlcnZhbnQsIHR3byB0byBhbm90aGVyLCBhbmQgb25lIHRvIGEgdGhpcmTigJQidG8gZWFjaCBhY2NvcmRpbmcgdG8gaGlzIGFiaWxpdHkuIiBXaGlsZSB0aGUgbWFzdGVyIGlzIGF3YXksIHRoZSBmaXJzdCB0d28gc2VydmFudHMgdHJhZGUgdGhlaXIgdGFsZW50cyBhbmQgZG91YmxlIHRoZW0uIFRoZSB0aGlyZCBzZXJ2YW50IGRpZ3MgYSBob2xlIGFuZCBoaWRlcyBoaXMgc2luZ2xlIHRhbGVudC48L3A+Cgo8cD5VcG9uIHJldHVybmluZywgdGhlIG1hc3RlciBjZWxlYnJhdGVzIHRoZSBwcm9kdWN0aXZlIHNlcnZhbnRzOiAiV2VsbCBkb25lLCBnb29kIGFuZCBmYWl0aGZ1bCBzZXJ2YW50ISBZb3UgaGF2ZSBiZWVuIGZhaXRoZnVsIHdpdGggYSBmZXcgdGhpbmdzOyBJIHdpbGwgcHV0IHlvdSBpbiBjaGFyZ2Ugb2YgbWFueSB0aGluZ3MuIiBCdXQgaGUgY29uZGVtbnMgdGhlIHRoaXJkIHNlcnZhbnQgaGFyc2hseSwgY2FsbGluZyBoaW0gIndpY2tlZCBhbmQgbGF6eSwiIGNvbmZpc2NhdGluZyBldmVuIGhpcyBzaW5nbGUgdGFsZW50IGFuZCBnaXZpbmcgaXQgdG8gdGhlIG9uZSB3aXRoIHRlbi4gTWF0dGhldyBjb25jbHVkZXMgd2l0aCBhIHN0YXJrIHdhcm5pbmc6ICJGb3Igd2hvZXZlciBoYXMgd2lsbCBiZSBnaXZlbiBtb3JlLCBhbmQgdGhleSB3aWxsIGhhdmUgYW4gYWJ1bmRhbmNlLiBXaG9ldmVyIGRvZXMgbm90IGhhdmUsIGV2ZW4gd2hhdCB0aGV5IGhhdmUgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZW0uIjwvcD4KCjxoMz5MdWtlIDE5OjExLTI3PC9oMz4KCjxwPkx1a2UncyB2ZXJzaW9uLCB0b2xkIHRvIGFkZHJlc3MgbWVzc2lhbmljIGV4cGVjdGF0aW9ucywgZGlmZmVycyBpbiBjcnVjaWFsIHdheXMuIEEgIm1hbiBvZiBub2JsZSBiaXJ0aCB3ZW50IHRvIGEgZGlzdGFudCBjb3VudHJ5IHRvIGhhdmUgaGltc2VsZiBhcHBvaW50ZWQga2luZyBhbmQgdGhlbiB0byByZXR1cm4uIiBIZSBkaXN0cmlidXRlcyB0aGUgc2FtZSBhbW91bnQgKG9uZSBtaW5hKSB0byB0ZW4gc2VydmFudHMsIHRlbGxpbmcgdGhlbSB0byAicHV0IHRoaXMgbW9uZXkgdG8gd29yayB1bnRpbCBJIGNvbWUgYmFjay4iIFVwb24gaGlzIHJldHVybiwgaGUgcmV3YXJkcyB0aG9zZSB3aG8gaW5jcmVhc2VkIHRoZWlyIG1pbmFz4oCUb25lIHJlY2VpdmluZyBhdXRob3JpdHkgb3ZlciB0ZW4gY2l0aWVzLCB0aGUgb3RoZXIgb3ZlciBmaXZlLiBUaGUgdGhpcmQgc2VydmFudCBwcmVzZW50cyB0aGUgb3JpZ2luYWwgbWluYSB1bnRvdWNoZWQsIGFuZCB0aGUgbWFzdGVyIHRha2VzIGl0IGF3YXksIGdpdmluZyBpdCB0byB0aGUgZmlyc3Qgc2VydmFudC48L3A+Cgo8cD5Ob3RhYmx5LCBMdWtlIGluY2x1ZGVzIGEgcG9saXRpY2FsIGVsZW1lbnQgYWJzZW50IGZyb20gTWF0dGhldzogIkJ1dCBoaXMgc3ViamVjdHMgaGF0ZWQgaGltIGFuZCBzZW50IGEgZGVsZWdhdGlvbiBhZnRlciBoaW0gdG8gc2F5LCAnV2UgZG9uJ3Qgd2FudCB0aGlzIG1hbiB0byBiZSBvdXIga2luZy4nIiBUaGlzIGtpbmdkb20tcG9saXRpY3MgZGltZW5zaW9uIGlzIGVzc2VudGlhbCB0byBMdWtlJ3MgaW50ZXJwcmV0YXRpb24uPC9wPgoKPGgyPlRoZSBIaXN0b3JpY2FsIENvbnRleHQ6IEZpcnN0LUNlbnR1cnkgUGFsZXN0aW5pYW4gRWNvbm9taWNzPC9oMj4KCjxwPlRvIHVuZGVyc3RhbmQgd2hhdCBKZXN1cyBtZWFudCwgd2UgbXVzdCB1bmRlcnN0YW5kIHdoYXQgaGlzIGF1ZGllbmNlIGhlYXJkLiBBIHRhbGVudCBpbiB0aGUgMXN0IGNlbnR1cnkgd2FzIGFuIGVub3Jtb3VzIHN1beKAlHJvdWdobHkgZXF1aXZhbGVudCB0byBzaXggdGhvdXNhbmQgZGVuYXJpaS4gQSBkZW5hcml1cyB3YXMgYSBkYXkncyB3YWdlIGZvciBhIGxhYm9yZXIuIEEgc2luZ2xlIHRhbGVudCByZXByZXNlbnRlZCBmaWZ0ZWVuIHRvIHR3ZW50eSB5ZWFycyBvZiB3YWdlcyBmb3IgYW4gb3JkaW5hcnkgd29ya2VyLiBUaGUgbWFzdGVyIGluIHRoaXMgcGFyYWJsZSB3YXNuJ3QgZGlzdHJpYnV0aW5nICJyZWFzb25hYmxlIiBzdW1zOyBoZSB3YXMgcGxhY2luZyBleHRyYW9yZGluYXJ5IHdlYWx0aCBpbiB0aGUgaGFuZHMgb2Ygc2VydmFudHMuPC9wPgoKPHA+VGhlIGVjb25vbWljIHdvcmxkIG9mIDFzdC1jZW50dXJ5IFBhbGVzdGluZSB3YXMgbm90IGEgY2FwaXRhbGlzdCBzeXN0ZW0gYnV0IGEgcGF0cm9uYWdlIHN5c3RlbS4gV2VhbHRoIGZsb3dlZCB0aHJvdWdoIG5ldHdvcmtzIG9mIGxveWFsdHkgYW5kIG9ibGlnYXRpb24uIFdoZW4gYSBtYXN0ZXIgZW50cnVzdGVkIHNlcnZhbnRzIHdpdGggbGFyZ2Ugc3VtcywgaGUgd2FzIGRvaW5nIHNvbWV0aGluZyByYWRpY2FsOiBoZSB3YXMgZXh0ZW5kaW5nIHRydXN0LCBncmFudGluZyBhdXRvbm9teSwgYW5kIGNyZWF0aW5nIGFjY291bnRhYmlsaXR5LiBTZXJ2YW50cyB3aG8gaW5jcmVhc2VkIHRoZWlyIG1hc3RlcidzIHdlYWx0aCBtaWdodCBleHBlY3QgcmV3YXJkIGFuZCByZXNwb25zaWJpbGl0eS4gVGhvc2Ugd2hvIGZhaWxlZCB3b3VsZCBmYWNlIGNvbnNlcXVlbmNlcy48L3A+Cgo8cD5UaGUgcHJhY3RpY2Ugb2YgYnVyeWluZyBtb25leSwgdW5kZXJ0YWtlbiBieSB0aGUgdGhpcmQgc2VydmFudCwgd2FzIGFjdHVhbGx5IGEgbGVnaXRpbWF0ZSAodGhvdWdoIGluZWZmaWNpZW50KSBwcmVzZXJ2YXRpb24gc3RyYXRlZ3kgaW4gYSB3b3JsZCB3aXRob3V0IGJhbmtzLiBEaWdnaW5nIGEgaG9sZSBhbmQgaGlkaW5nIHZhbHVhYmxlcyBwcm90ZWN0ZWQgYWdhaW5zdCB0aGVmdCwgYnV0IGl0IGdlbmVyYXRlZCB6ZXJvIHJldHVybi4gVGhlIHN0cmF0ZWd5IHdhcyBzYWZlIGFuZCBjb25zZXJ2YXRpdmXigJRidXQgdGhlIG1hc3RlciByZWplY3RlZCBpdC48L3A+Cgo8cD5UaGUgInRyYWRpbmciIHVuZGVydGFrZW4gYnkgdGhlIGZpcnN0IHR3byBzZXJ2YW50cyBsaWtlbHkgbWVhbnQgY29tbWVyY2lhbCBhY3Rpdml0eTogYnV5aW5nIGFuZCBzZWxsaW5nIGdvb2RzLCBwZXJoYXBzIG1ha2luZyBsb2FucyBhdCBpbnRlcmVzdCwgZW5nYWdpbmcgaW4gY29tbWVyY2UuIFRoaXMgd2FzIGhvdyB3ZWFsdGggd2FzIGdyb3duIGluIHRoYXQgZWNvbm9taWMgY29udGV4dC4gRm9yIHRoZSBtYXN0ZXIgdG8gZW50cnVzdCBzZXJ2YW50cyB3aXRoIGNhcGl0YWwgYW5kIGV4cGVjdCB0aGVtIHRvICJwdXQgaXQgdG8gd29yayIgbWVhbnQgaGUgZXhwZWN0ZWQgY29tbWVyY2lhbCByaXNrLXRha2luZy48L3A+Cgo8aDI+VGhlIFByaW1hcnkgVGhlb2xvZ2ljYWwgTWVhbmluZzogRXNjaGF0b2xvZ3ksIFN0ZXdhcmRzaGlwLCBhbmQgQWNjb3VudGFiaWxpdHk8L2gyPgoKPHA+Qm90aCBNYXR0aGV3IGFuZCBMdWtlIHBsYWNlIHRoaXMgcGFyYWJsZSBpbiB0aGUgY29udGV4dCBvZiBKZXN1cydzIGZpbmFsIHRlYWNoaW5ncyBhYm91dCB0aGUga2luZ2RvbSBvZiBHb2QgYW5kIHRoZSBlbmQgdGltZXMuIFRoaXMgaXMgbm90IHByaW1hcmlseSBhbiBlY29ub21pY3MgbGVzc29u4oCUaXQgaXMgYW4gZXNjaGF0b2xvZ2ljYWwgb25lLjwvcD4KCjxoMz5QcmVwYXJhdGlvbiBmb3IgQ2hyaXN0J3MgUmV0dXJuPC9oMz4KCjxwPlRoZSBjZW50cmFsIHRoZW9sb2dpY2FsIGNsYWltIGlzIHRoaXM6IENocmlzdCdzIGZvbGxvd2VycyBhcmUgZW50cnVzdGVkIHdpdGggZGl2aW5lIGdpZnRzIGR1cmluZyBoaXMgYWJzZW5jZSwgYW5kIHRoZXkgd2lsbCBiZSBoZWxkIGFjY291bnRhYmxlIGZvciBob3cgdGhleSB1c2VkIHRob3NlIGdpZnRzIHdoZW4gaGUgcmV0dXJucy4gVGhlICJtYXN0ZXIncyBqb3VybmV5IiByZXByZXNlbnRzIHRoZSBzcGFuIGJldHdlZW4gdGhlIHJlc3VycmVjdGlvbiBhbmQgdGhlIGZpbmFsIGp1ZGdtZW50LiBCZWxpZXZlcnMgYXJlIG5vdCBwYXNzaXZlIGNhcmV0YWtlcnM7IHRoZXkgYXJlIGFjdGl2ZSBzdGV3YXJkcyBleHBlY3RlZCB0byBkZXZlbG9wIGFuZCBtdWx0aXBseSB3aGF0IHRoZXkgaGF2ZSBiZWVuIGdpdmVuLjwvcD4KCjxwPk1hdHRoZXcncyBjb250ZXh0IHJlaW5mb3JjZXMgdGhpczogaGUgaW5jbHVkZXMgdGhlIHBhcmFibGUgd2l0aGluIGEgZGlzY291cnNlIGFib3V0ICJzaWducyBvZiB0aGUgZW5kIG9mIHRoZSBhZ2UuIiBKZXN1cyBpcyBwcmVwYXJpbmcgaGlzIGRpc2NpcGxlcyBmb3IgYSBwZXJpb2Qgb2Ygd2FpdGluZyBhbmQgd2F0Y2hmdWxuZXNzLiBUaGUgcGFyYWJsZSBhbnN3ZXJzIHRoZSBxdWVzdGlvbjogd2hhdCBzaG91bGQgeW91IGRvIHdoaWxlIHlvdSB3YWl0PyBUaGUgYW5zd2VyIGlzIG5vdCBwYXNzaXZpdHkgb3IgZmVhcmZ1bCBwcmVzZXJ2YXRpb24sIGJ1dCBmYWl0aGZ1bCwgcHJvZHVjdGl2ZSBlbmdhZ2VtZW50LjwvcD4KCjxwPkx1a2UncyBlbXBoYXNpcyBvbiBraW5nc2hpcCBhbmQgcG9saXRpY2FsIG9wcG9zaXRpb24gYWRkcyBhbm90aGVyIGxheWVyLiBMdWtlJ3MgYXVkaWVuY2UgbWlnaHQgaGF2ZSBiZWVuIHRlbXB0ZWQgdG8gcmVqZWN0IEplc3VzJ3Mga2luZ2RvbSBhcyBhIGZhaWx1cmUsIHNpbmNlIGhlIHdhcyBleGVjdXRlZCBhbmQgdGhlIFJvbWFuIEVtcGlyZSBjb250aW51ZWQuIEx1a2UgdXNlcyB0aGUgcGFyYWJsZSB0byBzYXk6IHRoZSBtYXN0ZXIgd2VudCBhd2F5IHRvIHJlY2VpdmUgYSBraW5nZG9tIGRlc3BpdGUgb3Bwb3NpdGlvbi4gSGlzIHJldHVybiB3aWxsIHZpbmRpY2F0ZSB0aG9zZSB3aG8gd2VyZSBmYWl0aGZ1bCBpbiBoaXMgYWJzZW5jZS48L3A+Cgo8aDM+U3Rld2FyZHNoaXAgYXMgQ29yZSBJZGVudGl0eTwvaDM+Cgo8cD5UaGUgcGFyYWJsZSB0ZWFjaGVzIHRoYXQgZm9sbG93ZXJzIG9mIENocmlzdCBhcmUgbmV2ZXIgdWx0aW1hdGUgb3duZXJzIG9mIGFueXRoaW5nLiBFdmVyeXRoaW5nIGJlbG9uZ3MgdG8gdGhlIG1hc3Rlci4gV2hhdCB3ZSBoYXZlIGlzIGVudHJ1c3RlZCB0byB1cyAiYWNjb3JkaW5nIHRvIG91ciBhYmlsaXR5IuKAlHdoaWNoIHRoZSBwYXJhYmxlIHVuZGVyc3RhbmRzIGFzIG91ciBjYXBhY2l0eSBhbmQgY2FsbGluZy4gU3Rld2FyZHNoaXAgaXMgbm90IGEgc2lkZSBjb25jZXJuIGZvciBDaHJpc3RpYW5zOyBpdCBpcyBjZW50cmFsIHRvIGRpc2NpcGxlc2hpcC4gSG93IHdlIGhhbmRsZSB3aGF0IHdlIGhhdmUgYmVlbiBnaXZlbiByZWZsZWN0cyBvdXIgcmVsYXRpb25zaGlwIHRvIEdvZC48L3A+Cgo8aDM+QWNjb3VudGFiaWxpdHkgYW5kIEp1ZGdtZW50PC9oMz4KCjxwPlRoZSBwYXJhYmxlIGRvZXMgbm90IHNoeSBhd2F5IGZyb20ganVkZ21lbnQuIFRoZSBtYXN0ZXIgcmV0dXJucyBhbmQgY2FsbHMgZWFjaCBzZXJ2YW50IHRvIGFjY291bnQuIFRoZSBwcm9kdWN0aXZlIHNlcnZhbnRzIGFyZSByZXdhcmRlZC4gVGhlIHVucHJvZHVjdGl2ZSBzZXJ2YW50IGlzIG5vdCBtZXJlbHkgY29ycmVjdGVk4oCUaGUgaXMgY29uZGVtbmVkIGFzICJ3aWNrZWQgYW5kIGxhenkiIGFuZCBjYXN0IGludG8gb3V0ZXIgZGFya25lc3MuIFRoaXMgaXMgc2VyaW91cyBsYW5ndWFnZSBhYm91dCBzZXJpb3VzIGNvbnNlcXVlbmNlcy4gRm9yIE1hdHRoZXcncyBhdWRpZW5jZSwgbGl2aW5nIHVuZGVyIFJvbWFuIG9jY3VwYXRpb24gYW5kIGZhY2luZyBwZXJzZWN1dGlvbiwgdGhpcyB3b3VsZCBoYXZlIGJlZW4gYSBwb3dlcmZ1bCBhZmZpcm1hdGlvbjogR29kIHNlZXMuIEdvZCBqdWRnZXMuIFVuZmFpdGhmdWxuZXNzIG1hdHRlcnMgZXRlcm5hbGx5LjwvcD4KCjxoMj5GaW5hbmNpYWwgSW52ZXN0aW5nIFZlcnN1cyBTcGlyaXR1YWwgUHJlcGFyYXRpb246IFdoeSB0aGUgUGFyYWJsZSBJcyBOb3QgUHJpbWFyaWx5IEFib3V0IE1vbmV5IE1hbmFnZW1lbnQ8L2gyPgoKPHA+QXQgdGhpcyBwb2ludCwgd2UgbXVzdCBiZSBkaXJlY3Q6IHRoZSBQYXJhYmxlIG9mIHRoZSBUYWxlbnRzIGlzIG5vdCBwcmltYXJpbHkgYWJvdXQgZmluYW5jaWFsIGludmVzdG1lbnQgc3RyYXRlZ3ksIHN0b2NrIHBvcnRmb2xpb3MsIG9yIHJldGlyZW1lbnQgcGxhbm5pbmcuIEl0IHdvdWxkIGJlIHByb29mLXRleHRpbmcgdG8gdXNlIHRoaXMgcGFzc2FnZSBhcyB5b3VyIHByaW1hcnkgYmlibGljYWwgZm91bmRhdGlvbiBmb3IgYW4gaW52ZXN0bWVudCBwaGlsb3NvcGh5LjwvcD4KCjxwPlRoZSBwYXJhYmxlJ3MgbWFpbiBjb25jZXJuIGlzIHRoZW9sb2dpY2FsLCBub3QgZmluYW5jaWFsLiBJdCBzcGVha3MgdG8gcHJlcGFyYXRpb24gZm9yIGV0ZXJuaXR5LCBmYWl0aGZ1bCBzdGV3YXJkc2hpcCBvZiBhbGwgZ2lmdHMgKHRpbWUsIHRhbGVudHMsIHNwaXJpdHVhbCBnaWZ0cywgb3Bwb3J0dW5pdGllcywgcmVsYXRpb25zaGlwcyksIGFuZCBhY2NvdW50YWJpbGl0eSBiZWZvcmUgR29kLiBUaGUgbWVkaXVtIG9mIHRoZSBwYXJhYmxlIGhhcHBlbnMgdG8gYmUgbW9uZXkgYmVjYXVzZSBtb25leSBpcyBhIHVuaXZlcnNhbGx5IHVuZGVyc3Rvb2QgbWVhc3VyZSBvZiB2YWx1ZSBhbmQgcmVzcG9uc2liaWxpdHkuIEJ1dCB0aGUgbWVzc2FnZSB0cmFuc2NlbmRzIGZpbmFuY2VzLjwvcD4KCjxwPk5ldmVydGhlbGVzcywgdGhpcyBkb2VzIG5vdCBtZWFuIHRoZSBwYXJhYmxlIGhhcyBub3RoaW5nIHRvIHRlYWNoIGludmVzdG9ycy4gVGhlIHBhcmFibGUgY29udGFpbnMgZW1iZWRkZWQgYXNzdW1wdGlvbnMgYWJvdXQgZWNvbm9taWNzIGFuZCByZXNwb25zaWJpbGl0eSB0aGF0IGRvIGhhdmUgbGVnaXRpbWF0ZSBhcHBsaWNhdGlvbnMgdG8gbW9kZXJuIGZpbmFuY2lhbCBkZWNpc2lvbnMuIFdlIG11c3QgZXh0cmFjdCB0aGVzZSBjYXJlZnVsbHkgYW5kIGh1bWJseS48L3A+Cgo8aDI+RW1iZWRkZWQgUHJpbmNpcGxlcyB3aXRoIEZpbmFuY2lhbCBBcHBsaWNhdGlvbjwvaDI+Cgo8aDM+UHJvZHVjdGl2ZSBTdGV3YXJkc2hpcCBWZXJzdXMgRmVhcmZ1bCBIb2FyZGluZzwvaDM+Cgo8cD5UaGUgbW9zdCBzdHJpa2luZyBjb250cmFzdCBpbiB0aGUgcGFyYWJsZSBpcyBiZXR3ZWVuIHRoZSBmaXJzdCB0d28gc2VydmFudHMsIHdobyBhY3RpdmVseSBwdXQgdGhlaXIgdGFsZW50cyB0byB3b3JrLCBhbmQgdGhlIHRoaXJkLCB3aG8gYnVyaWVkIGhpcy4gVGhlIG1hc3RlciBkb2VzIG5vdCByZXdhcmQgc2FmZXR5OyBoZSByZXdhcmRzIHByb2R1Y3Rpdml0eS4gVGhlIHRoaXJkIHNlcnZhbnQncyByYXRpb25hbGUgaXMgdGVsbGluZzogIkkgd2FzIGFmcmFpZCwgYW5kIHdlbnQgb3V0IGFuZCBoaWQgeW91ciB0YWxlbnQgaW4gdGhlIGdyb3VuZC4iPC9wPgoKPHA+RmVhciB3YXMgaGlzIGV4Y3VzZSwgYnV0IHRoZSBtYXN0ZXIgcmVqZWN0ZWQgaXQuICJZb3Uga25ldyB0aGF0IEkgcmVhcCB3aGVyZSBJIGhhdmUgbm90IHNvd24gYW5kIGdhdGhlciB3aGVyZSBJIGhhdmUgbm90IHNjYXR0ZXJlZCBzZWVkLiBTbyB5b3Ugc2hvdWxkIGhhdmUgcHV0IG15IG1vbmV5IG9uIGRlcG9zaXQgd2l0aCB0aGUgYmFua2VycywgYW5kIG9uIG15IHJldHVybiBJIHdvdWxkIGhhdmUgcmVjZWl2ZWQgaXQgYmFjayB3aXRoIGludGVyZXN0LiIgRXZlbiB0aGlzIG1pbmltdW0gZXhwZWN0YXRpb27igJRsZWF2aW5nIHRoZSBtb25leSB3aXRoIGJhbmtlcnMgdG8gZWFybiBzaW1wbGUgaW50ZXJlc3TigJR3b3VsZCBoYXZlIGJlZW4gYWNjZXB0YWJsZS4gQnV0IGhvYXJkaW5nIG91dCBvZiBmZWFyIHdhcyBub3QuPC9wPgoKPHA+Rm9yIENocmlzdGlhbiBpbnZlc3RvcnMsIHRoaXMgdGVhY2hlcyB0aGF0IHNvbWUgZGVncmVlIG9mIHByb2R1Y3RpdmUgZW5nYWdlbWVudCB3aXRoIGNhcGl0YWwgaXMgZXhwZWN0ZWQuIFNpdHRpbmcgZW50aXJlbHkgb24gdGhlIHNpZGVsaW5lcywgcGFyYWx5emVkIGJ5IGZlYXIgb3IgYnkgYSBmYWxzZSBzcGlyaXR1YWxpdHkgdGhhdCByZWplY3RzIGZpbmFuY2lhbCBpbnZvbHZlbWVudCwgbWF5IG5vdCBiZSBmYWl0aGZ1bCBzdGV3YXJkc2hpcC4gVGhlIHBhcmFibGUgYWNrbm93bGVkZ2VzIGxlZ2l0aW1hdGUgcmlzayAodGhlIGZpcnN0IHR3byBzZXJ2YW50cyByaXNrZWQgY2FwaXRhbCkgYnV0IGNvbmRlbW5zIHJpc2stYXZlcnNpb24gbWFzcXVlcmFkaW5nIGFzIHBpZXR5LjwvcD4KCjxwPlRoaXMgZG9lcyBub3QgbWVhbiByZWNrbGVzcyBnYW1ibGluZyBvciBzcGVjdWxhdGlvbi4gVGhlIG1hc3RlcidzIHF1ZXN0aW9u4oCUIldoeSBkaWRuJ3QgeW91IGF0IGxlYXN0IHB1dCBteSBtb25leSBvbiBkZXBvc2l0PyLigJRzdWdnZXN0cyBhIGdyYWR1YXRlZCByZXNwb25zZSB0byByaXNrIHRvbGVyYW5jZS4gVGhlcmUgYXJlIGJhc2ljLCBsb3dlci1yaXNrIG9wdGlvbnMgKGJhbmtpbmcpIGFuZCBoaWdoZXItcmlzayBvcHRpb25zICh0cmFkaW5nKS4gQSBmYWl0aGZ1bCBzZXJ2YW50IGtub3dzIGhpcyBhYmlsaXR5IGFuZCBhY3RzIGFjY29yZGluZ2x5LjwvcD4KCjxoMz5SaXNrLVRha2luZyBhcyBGYWl0aGZ1bCBTdGV3YXJkc2hpcDwvaDM+Cgo8cD5UaGUgcGFyYWJsZSBpbXBsaWNpdGx5IGVuZG9yc2VzIHJpc2stdGFraW5nIGFzIHBhcnQgb2YgZmFpdGhmdWwgc3Rld2FyZHNoaXAuIFRoZSBzZXJ2YW50cyB3aG8gZG91YmxlZCB0aGUgbWFzdGVyJ3MgY2FwaXRhbCB3ZXJlIG5vdCBndWFyYW50ZWVkIHRvIHN1Y2NlZWQuIFRoZXkgdG9vayBjYWxjdWxhdGVkIHJpc2tzIGluIGNvbW1lcmNpYWwgdmVudHVyZXMuIFRoZSBtYXN0ZXIgZGlkIG5vdCBwdW5pc2ggdGhlbSBmb3IgdGhlIHBvc3NpYmlsaXR5IG9mIGxvc3M7IGhlIHJld2FyZGVkIHRoZW0gZm9yIHRoZSBhY3R1YWwgcmV0dXJuLjwvcD4KCjxwPlRoaXMgaXMgY291bnRlcmN1bHR1cmFsIGluIENocmlzdGlhbiBjaXJjbGVzIHRoYXQgc29tZXRpbWVzIHRyZWF0IGFsbCBmaW5hbmNpYWwgcmlzayBhcyBzaW5mdWwgcHJlc3VtcHRpb24uIFRoZSBwYXJhYmxlIHN1Z2dlc3RzIG90aGVyd2lzZS4gR3Jvd3RoIHJlcXVpcmVzIHJpc2suIFRoZSBxdWVzdGlvbiBpcyBub3Qgd2hldGhlciB0byB0YWtlIHJpc2ssIGJ1dCB3aGF0IGtpbmRzIG9mIHJpc2tzIGFyZSBwcm9wb3J0aW9uYWwgdG8geW91ciByZXNwb25zaWJpbGl0eSBhbmQgYWJpbGl0eS48L3A+Cgo8aDM+UHJvcG9ydGlvbmFsIFJlc3BvbnNpYmlsaXR5PC9oMz4KCjxwPk5vdGljZSB0aGF0IGVhY2ggc2VydmFudCByZWNlaXZlZCAiYWNjb3JkaW5nIHRvIGhpcyBhYmlsaXR5LiIgVGhpcyBpcyBub3QgYXJiaXRyYXJ5IGluZXF1YWxpdHk7IGl0IGlzIGNhbGlicmF0ZWQgcmVzcG9uc2liaWxpdHkuIFRoZSBmaXZlLXRhbGVudCBzZXJ2YW50IHdhcyBleHBlY3RlZCB0byBwcm9kdWNlIHNvbWV0aGluZzsgdGhlIG9uZS10YWxlbnQgc2VydmFudCBmYWNlZCBhIGRpZmZlcmVudCBleHBlY3RhdGlvbi4gWWV0IGFsbCB3ZXJlIGV4cGVjdGVkIHRvIGJlIHByb2R1Y3RpdmUuPC9wPgoKPHA+Rm9yIG1vZGVybiBpbnZlc3RvcnMsIHRoaXMgc3VnZ2VzdHMgdGhhdCBkaWZmZXJlbnQgcGVvcGxlIGhhdmUgZGlmZmVyZW50IGNhcGFjaXRpZXMgZm9yIHJpc2ssIGV4cGVydGlzZSwgYW5kIHJlc3BvbnNpYmlsaXR5LiBBIHlvdW5nIHBlcnNvbiB3aXRoIGRlY2FkZXMgdW50aWwgcmV0aXJlbWVudCBhbmQgc3BlY2lhbGl6ZWQgZmluYW5jaWFsIGtub3dsZWRnZSBtaWdodCByZWFzb25hYmx5IGVuZ2FnZSBpbiBkaXZlcnNpZmllZCBpbnZlc3RpbmcuIFNvbWVvbmUgbmVhciByZXRpcmVtZW50IG9yIHdpdGhvdXQgZmluYW5jaWFsIGtub3dsZWRnZSBtaWdodCBwdXJzdWUgbG93ZXItcmlzaywgc2ltcGxlciBzdHJhdGVnaWVzLiBUaGUgcGFyYWJsZSBkb2VzIG5vdCBtYW5kYXRlIGEgc2luZ2xlIGFwcHJvYWNoOyBpdCBtYW5kYXRlcyB0aGF0IHdoYXRldmVyIHlvdSBkbywgeW91IGRvIGl0IGZhaXRoZnVsbHkgYWNjb3JkaW5nIHRvIHlvdXIgYWJpbGl0eS48L3A+Cgo8aDM+VGhlIFByb2JsZW0gb2YgdGhlICJXaWNrZWQgYW5kIExhenkiIFNlcnZhbnQ8L2gzPgoKPHA+VGhlIG1hc3RlcidzIGNvbmRlbW5hdGlvbiBvZiB0aGUgdGhpcmQgc2VydmFudOKAlCJ3aWNrZWQgYW5kIGxhenki4oCUaXMgbm90IHNpbXBseSBhYm91dCB1bmRlcnBlcmZvcm1hbmNlLiBJdCBpcyBhYm91dCBhIGZhaWx1cmUgb2Ygc3Rld2FyZHNoaXAgcm9vdGVkIGluIGRpc3RydXN0IGFuZCBkaXNvYmVkaWVuY2UuIFRoZSBzZXJ2YW50IGhhZCBhIGZhbHNlIHRoZW9sb2d5IG9mIGhpcyBtYXN0ZXI6ICJJIGtuZXcgeW91IGFyZSBhIGhhcmQgbWFuLCBoYXJ2ZXN0aW5nIHdoZXJlIHlvdSBoYXZlIG5vdCBzb3duIGFuZCBnYXRoZXJpbmcgd2hlcmUgeW91IGhhdmUgbm90IHNjYXR0ZXJlZCBzZWVkLiIgVGhpcyBtYXN0ZXIsIGhlIHRob3VnaHQsIHdhcyB1bmp1c3QgYW5kIGRlbWFuZGluZy48L3A+Cgo8cD5CdXQgdGhlIHBhcmFibGUgc3VnZ2VzdHMgdGhpcyB3YXMgYSBtaXNyZWFkaW5nLiBUaGUgbWFzdGVyIHdhcyBnZW5lcm91cyBpbiBlbnRydXN0aW5nIHdlYWx0aC4gSGUgZGlkIG5vdCBkZW1hbmQgaW1wb3NzaWJsZSByZXR1cm5zLiBIZSB3YXMgcmVhc29uYWJsZS4gVGhlIHNlcnZhbnQncyBob2FyZGluZyB3YXMgYmFzZWQgb24gYSBsaWUgYWJvdXQgdGhlIG1hc3RlcidzIGNoYXJhY3Rlci4gRm9yIENocmlzdGlhbnMsIHRoaXMgaXMgZGVlcGx5IGNvbnZpY3Rpbmc6IERvIHdlIG1pc3VuZGVyc3RhbmQgR29kPyBEbyB3ZSBsaW1pdCBvdXIgZW5nYWdlbWVudCB3aXRoIEdvZCdzIGdpZnRzIGJlY2F1c2Ugd2UgaGFyYm9yIGZhbHNlIGJlbGllZnMgYWJvdXQgaGlzIGNoYXJhY3Rlcj8gRG8gd2UgYXNzdW1lIEdvZCBpcyBzdGluZ3ksIGRlbWFuZGluZywgb3IgaW1wb3NzaWJsZSB0byBwbGVhc2U/PC9wPgoKPHA+VGhlIHBhcmFibGUgdGVhY2hlcyB0aGF0IEdvZCBpcyBnZW5lcm91cyB3aXRoIG9wcG9ydHVuaXR5LiBIZSBlbnRydXN0cyB1cy4gSGUgZXhwZWN0cyBwcm9kdWN0aXZpdHksIHllcywgYnV0IGhlIGlzIG5vdCB1bmp1c3QgaW4gdGhhdCBleHBlY3RhdGlvbi4gVGhlIHNlcnZhbnQncyBzaW4gd2FzIG5vdCBtZXJlbHkgbG9zaW5nIG1vbmV5IChoYWQgaGUgdHJpZWQgYW5kIGZhaWxlZCwgdGhlIHBhcmFibGUgZ2l2ZXMgbm8gaW5kaWNhdGlvbiBoZSB3b3VsZCBoYXZlIGJlZW4gY29uZGVtbmVkKTsgaXQgd2FzIHJlZnVzaW5nIHRvIHRyeSwgcm9vdGVkIGluIGEgZnVuZGFtZW50YWwgZGlzdHJ1c3Qgb2YgdGhlIG1hc3RlcidzIGdvb2RuZXNzLjwvcD4KCjxoMj5Db21wb3VuZCBJbnRlcmVzdCBUaHJvdWdoIGEgQmlibGljYWwgTGVuczwvaDI+Cgo8cD5UaGUgcGFyYWJsZSBtZW50aW9ucyBhIHNwZWNpZmljIG1lY2hhbmlzbSBvZiBncm93dGg6IHRoZSBmaXJzdCB0d28gc2VydmFudHMgZG91YmxlZCB0aGVpciBjYXBpdGFsLiBUaGlzIGxpa2VseSByZXByZXNlbnRzIHRoZSBjb21wb3VuZGluZyBlZmZlY3Qgb2YgbXVsdGlwbGUgdHJhbnNhY3Rpb25zIGFuZCByZXR1cm5zIG92ZXIgdGltZS4gSW4gdGhlIHBhcmFibGUsIGZpdmUgdGFsZW50cyBiZWNhbWUgdGVuOyB0d28gYmVjYW1lIGZvdXIuIFRoaXMgaXMgbm90IGluc3RhbnRhbmVvdXM7IGl0IHJlcHJlc2VudHMgdGhlIGFjY3VtdWxhdGlvbiBvZiBzbWFsbGVyIHRyYW5zYWN0aW9ucyBvdmVyIHRoZSBtYXN0ZXIncyBhYnNlbmNlLjwvcD4KCjxwPkNvbXBvdW5kIGludGVyZXN0IGlzIGEgbWF0aGVtYXRpY2FsIHJlYWxpdHkgdGhhdCB0aGUgYmlibGljYWwgYXV0aG9ycyB1bmRlcnN0b29kLCBldmVuIGlmIHRoZXkgZGlkIG5vdCB1c2UgbW9kZXJuIHRlcm1pbm9sb2d5LiBQcm92ZXJicyBjZWxlYnJhdGVzIHRoZSBkaWxpZ2VudCBhbmQgcHJvZHVjdGl2ZTogIlRoZSBzbHVnZ2FyZCBjcmF2ZXMgYW5kIGdldHMgbm90aGluZywgYnV0IHRoZSBkZXNpcmVzIG9mIHRoZSBkaWxpZ2VudCBhcmUgZnVsbHkgc2F0aXNmaWVkIiAoUHJvdmVyYnMgMTM6NCkuIEVjY2xlc2lhc3RlcyBzaG93cyBhd2FyZW5lc3Mgb2YgZGl2ZXJzaWZpY2F0aW9uIGFuZCB0aGUgdmFyaWFiaWxpdHkgb2YgcmV0dXJuczogIkludmVzdCBpbiBzZXZlbiB2ZW50dXJlcywgeWVzLCBpbiBlaWdodDsgeW91IGRvIG5vdCBrbm93IHdoYXQgZGlzYXN0ZXIgbWF5IGNvbWUgdXBvbiB0aGUgbGFuZCIgKEVjY2xlc2lhc3RlcyAxMToyKS48L3A+Cgo8cD5UaGUgUGFyYWJsZSBvZiB0aGUgVGFsZW50cyBmaXRzIGludG8gdGhpcyB3aXNkb20gdHJhZGl0aW9uLiBJdCBhY2tub3dsZWRnZXMgdGhhdCB3ZWFsdGgsIHdoZW4gZW5nYWdlZCBwcm9kdWN0aXZlbHksIHRlbmRzIHRvIG11bHRpcGx5LiBUaGlzIGlzIG5vdCBtYWdpYyBvciBncmVlZDsgaXQgaXMgdGhlIG5hdHVyYWwgcmVzdWx0IG9mIHB1dHRpbmcgY2FwaXRhbCB0byB3b3JrLiBUaGUgcGFyYWJsZSBkb2VzIG5vdCBjZWxlYnJhdGUgd2VhbHRoIGZvciBpdHMgb3duIHNha2UsIGJ1dCBpdCBkb2VzIGNlbGVicmF0ZSB0aGUgcHJvZHVjdGl2ZSB1c2Ugb2Ygd2hhdCBvbmUgaGFzIGJlZW4gZW50cnVzdGVkIHdpdGguPC9wPgoKPGgyPkRpZmZlcmVudCBUaGVvbG9naWNhbCBJbnRlcnByZXRhdGlvbnM8L2gyPgoKPHA+Q2hyaXN0aWFucyBoYXZlIGludGVycHJldGVkIHRoZSBQYXJhYmxlIG9mIHRoZSBUYWxlbnRzIGluIHZhcmllZCB3YXlzLCBlYWNoIHJldmVhbGluZyBkaWZmZXJlbnQgZW1waGFzZXMgaW4gdGhlaXIgdGhlb2xvZ3kuPC9wPgoKPGgzPkNvbnNlcnZhdGl2ZSBFdmFuZ2VsaWNhbCBJbnRlcnByZXRhdGlvbjwvaDM+Cgo8cD5FdmFuZ2VsaWNhbCBjb21tZW50YXRvcnMgdHlwaWNhbGx5IGVtcGhhc2l6ZSBpbmRpdmlkdWFsIHJlc3BvbnNpYmlsaXR5LCBhY2NvdW50YWJpbGl0eSwgYW5kIHRoZSByZXdhcmQgb2YgZmFpdGhmdWxuZXNzLiBUaGV5IGhpZ2hsaWdodCB0aGUgb25lLXRvLW9uZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdGV3YXJkIGFuZCBtYXN0ZXIsIGFuZCB0aGV5IGZvY3VzIG9uIHRoZSBwZXJzb25hbCBqdWRnbWVudCBlYWNoIHNlcnZhbnQgZmFjZXMuIEluIHRoaXMgcmVhZGluZywgdGhlIHBhcmFibGUgaXMgYWJvdXQgbWF4aW1pemluZyBwb3RlbnRpYWwgYW5kIG5vdCBsZXR0aW5nIGZlYXIgcHJldmVudCB5b3UgZnJvbSBmdWxmaWxsaW5nIHlvdXIgY2FsbGluZy4gVGhpcyBpbnRlcnByZXRhdGlvbiBoYXMgbmF0dXJhbGx5IGxlZCBzb21lIGV2YW5nZWxpY2FsIHRlYWNoZXJzIHRvIGFwcGx5IHRoZSBwYXJhYmxlIHRvIGZpbmFuY2lhbCBpbnZlc3RpbmcgYW5kIGVudHJlcHJlbmV1cnNoaXAsIHNlZWluZyBjYXBpdGFsIGdyb3d0aCBhcyBhIGZvcm0gb2YgZmFpdGhmdWwgc3Rld2FyZHNoaXAuPC9wPgoKPGgzPkxpYmVyYXRpb24gVGhlb2xvZ3kgUGVyc3BlY3RpdmU8L2gzPgoKPHA+TGliZXJhdGlvbiB0aGVvbG9naWFucyBoYXZlIHJhaXNlZCBpbXBvcnRhbnQgY3JpdGlxdWVzLiBUaGV5IG5vdGUgdGhhdCB0aGUgcGFyYWJsZSB0YWtlcyBmb3IgZ3JhbnRlZCB0aGUgbWFzdGVyJ3Mgb3duZXJzaGlwIGFuZCB0aGUgc2VydmFudHMnIHN1Ym9yZGluYXRpb24uIEluIHRoZWlyIHJlYWRpbmcsIHRoZSBwYXJhYmxlIHNob3VsZCBub3QgYmUgYWJzdHJhY3RlZCBmcm9tIHRoZSBwb2xpdGljYWwgYW5kIGVjb25vbWljIHN5c3RlbXMgb2Ygb3BwcmVzc2lvbiBpbiB0aGUgMXN0LWNlbnR1cnkgd29ybGQuIEplc3VzJ3MgcG9pbnQgbWF5IG5vdCBiZSB0byBlbmRvcnNlIHRoZSBtYXN0ZXItc2VydmFudCBzeXN0ZW0sIGJ1dCB0byBjcml0aXF1ZSBpdCB0aHJvdWdoIGlyb255LiBUaGUgcGFyYWJsZSBtYXkgYmUgZXhwb3NpbmcgdGhlIGNydWVsdHkgb2YgYSBzeXN0ZW0gdGhhdCBkZW1hbmRzIHByb2ZpdCBldmVuIGZyb20gdGhlIHBvd2VybGVzcy4gSW4gdGhpcyB2aWV3LCBDaHJpc3RpYW5zIHNob3VsZCB1c2UgdGhlIHBhcmFibGUgbm90IGFzIGFuIGVuZG9yc2VtZW50IG9mIHdlYWx0aC1zZWVraW5nLCBidXQgYXMgYSBjcml0aXF1ZSBvZiBleHBsb2l0YXRpdmUgZWNvbm9taWMgc3lzdGVtcy48L3A+Cgo8aDM+TWFpbmxpbmUgUHJvdGVzdGFudCBhbmQgUHJvZ3Jlc3NpdmUgSW50ZXJwcmV0YXRpb248L2gzPgoKPHA+U29tZSBtYWlubGluZSBhbmQgcHJvZ3Jlc3NpdmUgY29tbWVudGF0b3JzIGVtcGhhc2l6ZSB0aGUgcGFyYWJsZSdzIGNyaXRpcXVlIG9mIGZlYXJmdWwgd2l0aGRyYXdhbCBmcm9tIHRoZSB3b3JsZC4gVGhleSBzdHJlc3MgdGhhdCBDaHJpc3RpYW5zIGFyZSBjYWxsZWQgdG8gZW5nYWdlIGFjdGl2ZWx5IGluIEdvZCdzIHdvcmssIHVzaW5nIHRoZWlyIGdpZnRzIGNvdXJhZ2VvdXNseS4gSG93ZXZlciwgdGhleSBhbHNvIGhpZ2hsaWdodCB3YXJuaW5ncyBhYm91dCBncmVlZCBhbmQgdGhlIGRhbmdlcnMgb2Ygd2VhbHRoLiBJbiB0aGlzIHJlYWRpbmcsIHRoZSBwYXJhYmxlIHRlYWNoZXMgZW5nYWdlbWVudCBhbmQgcmlzay10YWtpbmcsIGJ1dCBhbHdheXMgaW4gc2VydmljZSBvZiBHb2QncyBraW5nZG9tIHZhbHVlcywgbm90IHBlcnNvbmFsIGFjY3VtdWxhdGlvbi4gVGhlIHJld2FyZCBzdHJ1Y3R1cmUgaW4gdGhlIHBhcmFibGXigJR0aGUgZmFpdGhmdWwgc2VydmFudHMgcGxhY2VkICJpbiBjaGFyZ2Ugb2YgbWFueSB0aGluZ3Mi4oCUaXMgdW5kZXJzdG9vZCBhcyBleHBhbmRlZCBvcHBvcnR1bml0eSB0byBzZXJ2ZSwgbm90IHBlcnNvbmFsIGVucmljaG1lbnQuPC9wPgoKPGgyPkNvbm5lY3Rpb24gdG8gQnJvYWRlciBCaWJsaWNhbCBGaW5hbmNpYWwgVGVhY2hpbmc8L2gyPgoKPGgzPldpc2RvbSBhbmQgRGlsaWdlbmNlIGluIFByb3ZlcmJzPC9oMz4KCjxwPlByb3ZlcmJzIGlzIHRoZSBCaWJsZSdzIHdpc2RvbSBsaXRlcmF0dXJlIG9uIGVjb25vbWljcy4gSXQgY2VsZWJyYXRlcyBkaWxpZ2VuY2U6ICJBbGwgaGFyZCB3b3JrIGJyaW5ncyBhIHByb2ZpdCwgYnV0IG1lcmUgdGFsayBsZWFkcyBvbmx5IHRvIHBvdmVydHkiIChQcm92ZXJicyAxNDoyMykuIEl0IHdhcm5zIGFnYWluc3QgbGF6aW5lc3M6ICJTbHVnZ2FyZHMgZG8gbm90IHBsb3cgaW4gc2Vhc29uOyBzbyBhdCBoYXJ2ZXN0IHRpbWUgdGhleSBsb29rIGJ1dCBmaW5kIG5vdGhpbmciIChQcm92ZXJicyAyMDo0KS4gVGhpcyBpcyBub3QgYWJvdXQgZ3JlZWQ7IGl0IGlzIGFib3V0IHJlc3BvbnNpYmlsaXR5IGFuZCB0aGUgbmF0dXJhbCBjb25zZXF1ZW5jZXMgb2YgeW91ciBjaG9pY2VzLiBUaGUgUGFyYWJsZSBvZiB0aGUgVGFsZW50cyBzaXRzIGNvbWZvcnRhYmx5IHdpdGhpbiB0aGlzIHdpc2RvbSB0cmFkaXRpb24uPC9wPgoKPGgzPkRpdmVyc2lmaWNhdGlvbiBpbiBFY2NsZXNpYXN0ZXM8L2gzPgoKPHA+RWNjbGVzaWFzdGVzIDExOjIgYWR2aXNlczogIkludmVzdCBpbiBzZXZlbiB2ZW50dXJlcywgeWVzLCBpbiBlaWdodDsgeW91IGRvIG5vdCBrbm93IHdoYXQgZGlzYXN0ZXIgbWF5IGNvbWUgdXBvbiB0aGUgbGFuZC4iIFRoaXMgaXMgYW4gZXhwbGljaXQgZW5kb3JzZW1lbnQgb2YgZGl2ZXJzaWZpY2F0aW9uIGFzIGEgaGVkZ2UgYWdhaW5zdCB1bmNlcnRhaW50eS4gRWNjbGVzaWFzdGVzIHVuZGVyc3RhbmRzIHRoYXQgbGlmZSBpcyB1bnByZWRpY3RhYmxlLCBhbmQgcHJ1ZGVudCBzdGV3YXJkc2hpcCBtZWFucyBzcHJlYWRpbmcgcmlzay4gVGhlIFBhcmFibGUgb2YgdGhlIFRhbGVudHMgKGluIGl0cyBkaXN0cmlidXRpb24gb2YgZGlmZmVyZW50IGFtb3VudHMgdG8gZGlmZmVyZW50IHNlcnZhbnRzKSBpbXBsaWNpdGx5IGFzc3VtZXMgZGlmZmVyZW50IHJpc2sgcHJvZmlsZXMgYW5kIGFiaWxpdGllcy48L3A+Cgo8aDM+V2FybmluZ3MgQWJvdXQgV2VhbHRoIGFuZCBHcmVlZDwvaDM+Cgo8cD5UaGUgQmlibGUgYWxzbyBjb250YWlucyBzaGFycCB3YXJuaW5ncyBhYm91dCB3ZWFsdGggYW5kIHRoZSBkYW5nZXJzIG9mIGdyZWVkLiBKZXN1cyB0YXVnaHQ6ICJObyBvbmUgY2FuIHNlcnZlIHR3byBtYXN0ZXJzLiBFaXRoZXIgeW91IHdpbGwgaGF0ZSB0aGUgb25lIGFuZCBsb3ZlIHRoZSBvdGhlciwgb3IgeW91IHdpbGwgYmUgZGV2b3RlZCB0byB0aGUgb25lIGFuZCBkZXNwaXNlIHRoZSBvdGhlci4gWW91IGNhbm5vdCBzZXJ2ZSBib3RoIEdvZCBhbmQgbW9uZXkiIChNYXR0aGV3IDY6MjQpLiBQYXVsIHdyb3RlOiAiRm9yIHRoZSBsb3ZlIG9mIG1vbmV5IGlzIGEgcm9vdCBvZiBhbGwga2luZHMgb2YgZXZpbCIgKDEgVGltb3RoeSA2OjEwKS4gVGhlIFBhcmFibGUgb2YgdGhlIFRhbGVudHMgbXVzdCBiZSByZWFkIGluIGNvbnZlcnNhdGlvbiB3aXRoIHRoZXNlIHdhcm5pbmdzLiBQcm9kdWN0aXZlIHN0ZXdhcmRzaGlwIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgcHVyc3VpdCBvZiB3ZWFsdGggYXMgYW4gdWx0aW1hdGUgZ29vZC48L3A+Cgo8aDI+TW9kZXJuIEFwcGxpY2F0aW9ucyBmb3IgQ2hyaXN0aWFuIEludmVzdG9yczwvaDI+Cgo8aDM+SW50ZW50aW9uYWwgU3Rld2FyZHNoaXA8L2gzPgoKPHA+VGhlIGZpcnN0IG1vZGVybiBhcHBsaWNhdGlvbiBpcyBzaW1wbGU6IGRvIG5vdCBiZSBwYXNzaXZlIHdpdGggd2hhdCB5b3UgaGF2ZSBiZWVuIGVudHJ1c3RlZC4gSWYgeW91IGhhdmUgY2FwaXRhbCwgd2hldGhlciBzaWduaWZpY2FudCBvciBtb2Rlc3QsIHN0ZXdhcmRzaGlwIGRlbWFuZHMgdGhhdCB5b3UgZW5nYWdlIHdpdGggaXQgdGhvdWdodGZ1bGx5LiBUaGlzIG1lYW5zIGhhdmluZyBhbiBpbnZlc3RtZW50IHBsYW4sIG5vdCBtZXJlbHkgZHJpZnRpbmcuIEl0IG1lYW5zIHVuZGVyc3RhbmRpbmcgeW91ciBpbnZlc3RtZW50cyB0byB0aGUgZGVncmVlIHRoYXQgeW91ciBhYmlsaXR5IGFsbG93cy4gSXQgbWVhbnMgcGVyaW9kaWMgcmV2aWV3IGFuZCByZWJhbGFuY2luZy4gU3Rld2FyZHNoaXAgaXMgYW4gYWN0aXZlIHBvc3R1cmUuPC9wPgoKPGgzPlJpc2stVGFraW5nIFByb3BvcnRpb25hbCB0byBZb3VyIEFiaWxpdHk8L2gzPgoKPHA+VGhlIHBhcmFibGUgZG9lcyBub3QgbWFuZGF0ZSB0aGF0IGV2ZXJ5b25lIGJlIGVxdWFsbHkgYWdncmVzc2l2ZSB3aXRoIHRoZWlyIGNhcGl0YWwuIEJ1dCBpdCBkb2VzIG1hbmRhdGUgdGhhdCBldmVyeW9uZSBkbyBzb21ldGhpbmcuIEZvciBzb21lLCB0aGlzIG1pZ2h0IG1lYW4gYSBkaXZlcnNpZmllZCBwb3J0Zm9saW8gb2YgaW5kZXggZnVuZHMuIEZvciBvdGhlcnMsIGl0IG1pZ2h0IG1lYW4gc3RhcnRpbmcgYSBzbWFsbCBidXNpbmVzcyBvciBtYWtpbmcgdGFyZ2V0ZWQgaW52ZXN0bWVudHMuIEZvciBzdGlsbCBvdGhlcnMsIGl0IG1pZ2h0IG1lYW4gc3VwcG9ydGluZyBlbnRyZXByZW5ldXJpYWwgZnJpZW5kcyBvciBmYW1pbHkgbWVtYmVycy4gVGhlIGtleSBpcyBwcm9wb3J0aW9uOiB5b3Ugc2hvdWxkIHRha2Ugcmlza3MgY29tbWVuc3VyYXRlIHdpdGggeW91ciBrbm93bGVkZ2UsIHRpbWUgY2FwYWNpdHksIGFuZCBmaW5hbmNpYWwgcG9zaXRpb24uPC9wPgoKPGgzPkxvbmctVGVybSBUaGlua2luZzwvaDM+Cgo8cD5UaGUgcGFyYWJsZSdzIGVtcGhhc2lzIG9uIHRoZSBtYXN0ZXIncyByZXR1cm4gYW5kIHRoZSBhY2N1bXVsYXRpb24gb2YgcmV0dXJucyBvdmVyIHRpbWUgcmVmbGVjdHMgYSBsb25nLXRlcm0gcGVyc3BlY3RpdmUuIEZvciBpbnZlc3RvcnMsIHRoaXMgbWVhbnMgcmVzaXN0aW5nIHNob3J0LXRlcm0gc3BlY3VsYXRpb24gYW5kIHRoaW5raW5nIGluIHRlcm1zIG9mIGRlY2FkZXMuIENvbXBvdW5kIGdyb3d0aCByZXF1aXJlcyB0aW1lLiBUaGUgcGFyYWJsZSBzdWdnZXN0cyB0aGF0IGZpZGVsaXR5IG92ZXIgZGVjYWRlcywgdGhyb3VnaCB2YXJpb3VzIG1hcmtldCBjb25kaXRpb25zLCBpcyB0aGUgZXhwZWN0ZWQgcG9zdHVyZS48L3A+Cgo8aDM+QWNjZXB0aW5nIFRoYXQgWW91IERvbid0IENvbnRyb2wgT3V0Y29tZXM8L2gzPgoKPHA+VGhlIHBhcmFibGUgbmVpdGhlciBhc3N1bWVzIG5vciByZXF1aXJlcyB0aGF0IGFsbCBzZXJ2YW50cyB3aWxsIHN1Y2NlZWQgZXF1YWxseS4gVGhlIGZpcnN0IHR3byBzZXJ2YW50cyBkaWQgd2VsbCwgYnV0IHRoZSBwYXJhYmxlIGRvZXMgbm90IHN1Z2dlc3QgdGhleSBoYWQgcGVyZmVjdCBjZXJ0YWludHkgb2Ygc3VjY2Vzcy4gV2hhdCBtYXR0ZXJzIGlzIHRoYXQgdGhleSB0cmllZCwgdXNpbmcgdGhlaXIgYWJpbGl0eSBmYWl0aGZ1bGx5LiBGb3IgbW9kZXJuIGludmVzdG9ycywgdGhpcyBtZWFucyBhY2NlcHRpbmcgdGhhdCB5b3UgY2Fubm90IGNvbnRyb2wgbWFya2V0cywgZWNvbm9taWMgY3ljbGVzLCBvciBnbG9iYWwgZXZlbnRzLiBXaGF0IHlvdSBjYW4gY29udHJvbCBpcyB5b3VyIGVmZm9ydCwgeW91ciBzdHJhdGVneSwgeW91ciBkaXNjaXBsaW5lLCBhbmQgeW91ciBpbnRlZ3JpdHkuIEZhaXRoZnVsbmVzcyBpcyBub3QgbWVhc3VyZWQgYnkgcmV0dXJucyBhbG9uZTsgaXQgaXMgbWVhc3VyZWQgYnkgZmFpdGhmdWwgZW5nYWdlbWVudCB3aXRoIHdoYXQgeW91IGNhbiBpbmZsdWVuY2UuPC9wPgoKPGgyPldoYXQgdGhlIFBhcmFibGUgRG9lcyBOT1QgSnVzdGlmeTwvaDI+Cgo8aDM+R3JlZWQgYW5kIEFjY3VtdWxhdGlvbiBmb3IgSXRzIE93biBTYWtlPC9oMz4KCjxwPlRoZSBwYXJhYmxlIHNob3VsZCBuZXZlciBiZSB3ZWFwb25pemVkIHRvIGp1c3RpZnkgZ3JlZWQuIFRoZSBnb2FsIG9mIHN0ZXdhcmRzaGlwIGlzIG5vdCB0byBob2FyZCB3ZWFsdGggYnV0IHRvIHVzZSBpdCBmYWl0aGZ1bGx5LiBGb3IgYSBDaHJpc3RpYW4gaW52ZXN0b3IsIHRoZSBxdWVzdGlvbiBpcyBub3Qgc2ltcGx5LCAiSG93IG11Y2ggY2FuIEkgYWNjdW11bGF0ZT8iIGJ1dCByYXRoZXIsICJIb3cgY2FuIEkgc3Rld2FyZCB3aGF0IEkgaGF2ZSBiZWVuIGdpdmVuIGluIGEgd2F5IHRoYXQgaG9ub3JzIEdvZCBhbmQgc2VydmVzIGhpcyBraW5nZG9tPyIgVGhpcyBtaWdodCBtZWFuIGdlbmVyb3NpdHksIGludmVzdG1lbnQgaW4gb3RoZXJzJyBmbG91cmlzaGluZywgb3Igc3VwcG9ydGluZyBjYXVzZXMgYWxpZ25lZCB3aXRoIGJpYmxpY2FsIGp1c3RpY2UuPC9wPgoKPGgzPkV4cGxvaXRhdGlvbiBhbmQgT3BwcmVzc2lvbjwvaDM+Cgo8cD5UaGUgcGFyYWJsZSBtdXN0IG5vdCBiZSB1c2VkIHRvIGp1c3RpZnkgZXh0cmFjdGl2ZSBvciBleHBsb2l0YXRpdmUgZWNvbm9taWMgcHJhY3RpY2VzLiBUaGUgbWFzdGVyIGluIHRoZSBwYXJhYmxlIGlzIGp1c3QgYW5kIGdlbmVyb3VzLCBub3QgZXhwbG9pdGF0aXZlLiBDaHJpc3RpYW4gaW52ZXN0b3JzIHNob3VsZCBuZXZlciB1c2UgdGhlIHBhcmFibGUgYXMgY292ZXIgZm9yIGNoZWF0aW5nIGVtcGxveWVlcywgZXhwbG9pdGluZyB3b3JrZXJzLCBvciBlbmdhZ2luZyBpbiBwcmVkYXRvcnkgbGVuZGluZy4gSWYgYW55dGhpbmcsIHRoZSBwYXJhYmxlJ3MgZW1waGFzaXMgb24gYWNjb3VudGFiaWxpdHkgYmVmb3JlIEdvZCBzaG91bGQgbWFrZSBDaHJpc3RpYW5zIGVzcGVjaWFsbHkgc2NydXB1bG91cyBhYm91dCB0aGUgZXRoaWNhbCBkaW1lbnNpb25zIG9mIHRoZWlyIGludmVzdG1lbnRzIGFuZCBidXNpbmVzcyBwcmFjdGljZXMuPC9wPgoKPGgzPlRoZSBQcm9zcGVyaXR5IEdvc3BlbDwvaDM+Cgo8cD5UaGUgUGFyYWJsZSBvZiB0aGUgVGFsZW50cyBpcyBzb21ldGltZXMgY28tb3B0ZWQgdG8gc3VwcG9ydCBwcm9zcGVyaXR5IGdvc3BlbCB0ZWFjaGluZ+KAlHRoZSBpZGVhIHRoYXQgZmluYW5jaWFsIHN1Y2Nlc3MgaXMgYSBzaWduIG9mIEdvZCdzIGZhdm9yIGFuZCB0aGF0IEdvZCBwcm9taXNlcyB3ZWFsdGggdG8gYmVsaWV2ZXJzLiBUaGlzIGlzIGEgZnVuZGFtZW50YWwgbWlzcmVhZGluZy4gVGhlIHBhcmFibGUgdGVhY2hlcyBmYWl0aGZ1bCBzdGV3YXJkc2hpcCwgbm90IGd1YXJhbnRlZWQgd2VhbHRoLiBTb21lIGZhaXRoZnVsIHN0ZXdhcmRzIG1heSBleHBlcmllbmNlIGVjb25vbWljIGxvc3MgdGhyb3VnaCBubyBmYXVsdCBvZiB0aGVpciBvd24uIFRoZSBwYXJhYmxlJ3MgZm9jdXMgaXMgb24gZmFpdGhmdWxuZXNzLCBub3Qgb24gbWF0ZXJpYWwgc3VjY2VzcyBhcyBhIHNpZ24gb2Ygc3Bpcml0dWFsIG1hdHVyaXR5LjwvcD4KCjxoMz5SaXNrLVRha2luZyBXaXRob3V0IFJlZ2FyZCB0byBPdGhlcnM8L2gzPgoKPHA+VGhlIHBhcmFibGUgZG9lcyBub3QganVzdGlmeSByZWNrbGVzcyByaXNrLXRha2luZyB0aGF0IGVuZGFuZ2VycyBvdGhlcnMnIHdlbGxiZWluZy4gSWYgeW91ciAiaW52ZXN0bWVudCIgc3RyYXRlZ3kgaW52b2x2ZXMgZ2FtYmxpbmcgd2l0aCByZXNvdXJjZXMgZW50cnVzdGVkIHRvIHlvdSBieSBmYW1pbHkgbWVtYmVycyBvciBjbGllbnRzLCBvciBpZiBpdCBleHBsb2l0cyBvdGhlcnMnIHZ1bG5lcmFiaWxpdGllcywgdGhlbiBpdCB2aW9sYXRlcyB0aGUgc3Bpcml0IG9mIGZhaXRoZnVsIHN0ZXdhcmRzaGlwLCByZWdhcmRsZXNzIG9mIGhvdyBtdWNoIHByb2ZpdCBpdCBtaWdodCBnZW5lcmF0ZS48L3A+Cgo8aDI+QSBGcmFtZXdvcmsgZm9yIEZhaXRoZnVsIFJldHVybnM8L2gyPgoKPHA+SG93IGNhbiBhIENocmlzdGlhbiBpbnZlc3RvciB0aGluayBhYm91dCAiZmFpdGhmdWwgcmV0dXJucyIgaW4gYSB3YXkgdGhhdCBob25vcnMgYm90aCB0aGUgcGFyYWJsZSdzIHRlYWNoaW5nIGFuZCBiaWJsaWNhbCB3aXNkb20gbW9yZSBicm9hZGx5PzwvcD4KCjxoMz5EZWZpbmUgU3VjY2VzcyBCaWJsaWNhbGx5PC9oMz4KCjxwPkZpcnN0LCBkZWZpbmUgd2hhdCBzdWNjZXNzIG1lYW5zLiBGb3IgYSBmYWl0aGZ1bCBDaHJpc3RpYW4gaW52ZXN0b3IsIHN1Y2Nlc3MgaXMgbm90IHNpbXBseSBtYXhpbXVtIHJldHVybnMuIEl0IGlzIHN0ZXdhcmRpbmcgcmVzb3VyY2VzIGluIGEgd2F5IHRoYXQgYWxpZ25zIHdpdGggeW91ciB2YWx1ZXMgYW5kIGNhbGxpbmcuIEZvciBzb21lIGludmVzdG9ycywgdGhpcyBtZWFucyBjaG9vc2luZyBpbnZlc3RtZW50cyB0aGF0IHN1cHBvcnQgZXRoaWNhbCBjb21wYW5pZXMgb3Igc3VzdGFpbmFibGUgcHJhY3RpY2VzLiBGb3Igb3RoZXJzLCBpdCBtZWFucyBiYWxhbmNpbmcgZ3Jvd3RoIHdpdGggZ2VuZXJvc2l0eS4gVGhlIHF1ZXN0aW9uIHRvIGFzayBpczogIkhvdyB3b3VsZCBJIHN0ZXdhcmQgdGhpcyBkaWZmZXJlbnRseSBpZiBJIHRydWx5IGJlbGlldmVkIEkgd291bGQgZ2l2ZSBhbiBhY2NvdW50IGJlZm9yZSBHb2QgZm9yIGhvdyBJIHVzZWQgaXQ/IjwvcD4KCjxoMz5CdWlsZCBhIFN1c3RhaW5hYmxlIFN0cmF0ZWd5PC9oMz4KCjxwPlRoZSBwYXJhYmxlIHN1Z2dlc3RzIGVuZ2FnZW1lbnQgb3ZlciB0aW1lLiBTdXN0YWluYWJsZSBzdHJhdGVnaWVzIGNvbXBvdW5kLiBUaGlzIG1lYW5zIGJ1aWxkaW5nIGFuIGludmVzdG1lbnQgYXBwcm9hY2ggdGhhdCB5b3UgY2FuIG1haW50YWluIHRocm91Z2ggdmFyaW91cyBzZWFzb25z4oCUZWNvbm9taWMgZ3Jvd3RoIGFuZCByZWNlc3Npb24sIHBlcmlvZHMgb2YgaGlnaCBjb25maWRlbmNlIGFuZCBwZXJpb2RzIG9mIGRvdWJ0LiBGb3IgbWFueSBpbnZlc3RvcnMsIHRoaXMgbWVhbnMgYSBkaXZlcnNpZmllZCBhcHByb2FjaCB0aGF0IGJhbGFuY2VzIGdyb3d0aCBhbmQgc3RhYmlsaXR5LCB0YWlsb3JlZCB0byB5b3VyIHRpbWVsaW5lIGFuZCByaXNrIGNhcGFjaXR5LjwvcD4KCjxoMz5JbnRlZ3JhdGUgR2VuZXJvc2l0eTwvaDM+Cgo8cD5UaGUgcGFyYWJsZSBkb2VzIG5vdCBleHBsaWNpdGx5IGFkZHJlc3MgZ2l2aW5nLCBidXQgdGhlIGJyb2FkZXIgYmlibGljYWwgd2l0bmVzcyBkb2VzLiBBIGZyYW1ld29yayBmb3IgZmFpdGhmdWwgcmV0dXJucyBpbmNsdWRlcyBwbGFubmVkIGdlbmVyb3NpdHkuIFdoYXQgcG9ydGlvbiBvZiB5b3VyIHJldHVybnMgd2lsbCB5b3UgZ2l2ZSBhd2F5PyBUbyB3aG9tPyBIb3cgd2lsbCB5b3Ugc3VwcG9ydCBjYXVzZXMgYW5kIHBlb3BsZSBhbGlnbmVkIHdpdGggYmlibGljYWwganVzdGljZT8gU3Rld2FyZHNoaXAgaW5jbHVkZXMgbm90IGp1c3QgZ3Jvd3RoIGJ1dCBhbHNvIGRpc3RyaWJ1dGlvbiBpbiBsaW5lIHdpdGggeW91ciB2YWx1ZXMuPC9wPgoKPGgzPlByYWN0aWNlIEludGVncml0eSBpbiBZb3VyIEludmVzdG1lbnRzPC9oMz4KCjxwPktub3cgd2hhdCB5b3Ugb3duLiBVbmRlcnN0YW5kIHRoZSBidXNpbmVzc2VzIG9yIGZ1bmRzIGluIHdoaWNoIHlvdSBpbnZlc3QuIEFzIG11Y2ggYXMgeW91ciBhYmlsaXR5IGFsbG93cywgZW5zdXJlIHRoYXQgeW91ciBpbnZlc3RtZW50cyBkbyBub3QgY29udHJhZGljdCB5b3VyIHZhbHVlcy4gSWYgeW91IHByb2Zlc3MgdG8gZm9sbG93IEplc3VzLCB0aGVuIGludmVzdGluZyBpbiBjb21wYW5pZXMgdGhhdCBleHBsb2l0IHdvcmtlcnMgb3IgZXh0cmFjdCByZXNvdXJjZXMgZGVzdHJ1Y3RpdmVseSBzaXRzIHVuZWFzaWx5IHdpdGggdGhhdCBwcm9mZXNzaW9uLiBJbnRlZ3JpdHkgbWVhbnMgc29tZSBsZXZlbCBvZiBhbGlnbm1lbnQgYmV0d2VlbiB5b3VyIGludmVzdG1lbnRzIGFuZCB5b3VyIHN0YXRlZCBjb21taXRtZW50cy48L3A+Cgo8aDM+QWNjZXB0IEFjY291bnRhYmlsaXR5PC9oMz4KCjxwPkZpbmFsbHksIHRoZSBwYXJhYmxlIHRlYWNoZXMgYWNjb3VudGFiaWxpdHkuIEZvciBhIENocmlzdGlhbiBpbnZlc3RvciwgdGhpcyBtZWFucyByZWd1bGFyIHJldmlldyBub3QganVzdCBvZiByZXR1cm5zLCBidXQgb2Ygc3Rld2FyZHNoaXAuIEFyZSB5b3UgYmVpbmcgZmFpdGhmdWwgd2l0aCB3aGF0IHlvdSBoYXZlIGJlZW4gZW50cnVzdGVkIHdpdGg/IEFyZSB5b3UgZW5nYWdpbmcgdGhvdWdodGZ1bGx5IG9yIHBhc3NpdmVseT8gQXJlIHlvdXIgaW52ZXN0bWVudHMgYWxpZ25lZCB3aXRoIHlvdXIgdmFsdWVzPyBBcmUgeW91IGdlbmVyb3VzPyBBcmUgeW91IHVzaW5nIHlvdXIgY2FwaXRhbCBpbiB3YXlzIHRoYXQgcmVmbGVjdCBiZWxpZWYgaW4gR29kJ3MgZ29vZG5lc3MgYW5kIGp1c3RpY2U/IFRoZSBhbm51YWwgcmV2aWV3IG9mIHlvdXIgcG9ydGZvbGlvIHNob3VsZCBpbmNsdWRlIG5vdCBqdXN0IHBlcmZvcm1hbmNlIG1ldHJpY3MgYnV0IHNwaXJpdHVhbCBtZXRyaWNzIGFzIHdlbGwuPC9wPgoKPGgyPkNvbmNsdXNpb246IFN0ZXdhcmRzaGlwIGFzIERpc2NpcGxlc2hpcDwvaDI+Cgo8cD5UaGUgUGFyYWJsZSBvZiB0aGUgVGFsZW50cywgaW4gYm90aCBNYXR0aGV3J3MgYW5kIEx1a2UncyB2ZXJzaW9ucywgdGVhY2hlcyB0aGF0IGZvbGxvd2VycyBvZiBDaHJpc3QgYXJlIHN0ZXdhcmRzLCBub3QgdWx0aW1hdGUgb3duZXJzLCBvZiB3aGF0IHRoZXkgaGF2ZSBiZWVuIGVudHJ1c3RlZCB3aXRoLiBXZSB3aWxsIGJlIGhlbGQgYWNjb3VudGFibGUgZm9yIGhvdyB3ZSBlbmdhZ2Ugd2l0aCB0aG9zZSBnaWZ0cy4gVGhlIHBhcmFibGUgcmVqZWN0cyBib3RoIGZlYXJmdWwgaG9hcmRpbmcgYW5kIHRoZSBhc3N1bXB0aW9uIHRoYXQgZ3Jvd3RoIGlzIG9wdGlvbmFsLiBJdCBlbmRvcnNlcyBwcm9kdWN0aXZlIGVuZ2FnZW1lbnQgcHJvcG9ydGlvbmFsIHRvIG91ciBhYmlsaXRpZXMuPC9wPgoKPHA+VGhlIHBhcmFibGUgaXMgbm90IHByaW1hcmlseSBhYm91dCBpbnZlc3RtZW50IHN0cmF0ZWd5LiBJdCBpcyBhYm91dCBwcmVwYXJhdGlvbiBmb3IgQ2hyaXN0J3MgcmV0dXJuIHRocm91Z2ggZmFpdGhmdWwgZW5nYWdlbWVudCB3aXRoIGFsbCB0aGF0IHdlIGhhdmUgYmVlbiBnaXZlbuKAlHRpbWUsIHRhbGVudHMsIHJlbGF0aW9uc2hpcHMsIGFuZCByZXNvdXJjZXMuIFlldCBpdCBjb250YWlucyBlbWJlZGRlZCBwcmluY2lwbGVzIGFib3V0IHByb2R1Y3Rpdml0eSwgcmlzay10YWtpbmcsIGFuZCBncm93dGggdGhhdCBkbyBoYXZlIGxlZ2l0aW1hdGUgYXBwbGljYXRpb24gdG8gQ2hyaXN0aWFuIGFwcHJvYWNoZXMgdG8gZmluYW5jaWFsIGludmVzdGluZy48L3A+Cgo8cD5Gb3IgQ2hyaXN0aWFuIGludmVzdG9ycywgdGhlIHBhcmFibGUgaW52aXRlcyByZWZsZWN0aW9uIG9uIHRoaXMgcXVlc3Rpb246IEFtIEkgc3Rld2FyZGluZyBteSByZXNvdXJjZXMgZmFpdGhmdWxseT8gQW0gSSBlbmdhZ2luZyB0aGVtIHByb2R1Y3RpdmVseSwgb3IgYW0gSSBwYXJhbHl6ZWQgYnkgZmVhcj8gQW0gSSB0YWtpbmcgcmlza3MgcHJvcG9ydGlvbmFsIHRvIG15IGFiaWxpdHkgYW5kIGNhbGxpbmc/IEFtIEkgc2Vla2luZyB0byBhbGlnbiBteSBpbnZlc3RtZW50cyB3aXRoIG15IGRlZXBlc3QgdmFsdWVzPyBBbSBJIGdlbmVyb3VzIHdpdGggd2hhdCBJIGhhdmUgYmVlbiBnaXZlbj8gRG8gSSB0cnVseSBiZWxpZXZlIHRoYXQgSSB3aWxsIGdpdmUgYW4gYWNjb3VudCBiZWZvcmUgR29kPzwvcD4KCjxwPlRoZXNlIHF1ZXN0aW9ucyBwb2ludCB0b3dhcmQgYSB2aXNpb24gb2YgaW52ZXN0aW5nIHRoYXQgaXMgbm90IG1lcmVseSBhYm91dCByZXR1cm5zLCBidXQgYWJvdXQgZGlzY2lwbGVzaGlwLiBGYWl0aGZ1bCBzdGV3YXJkc2hpcOKAlHdoZXRoZXIgb2YgZml2ZSB0YWxlbnRzIG9yIG9uZeKAlGlzIGhvdyB3ZSBsaXZlIG91dCBvdXIgdHJ1c3QgaW4gR29kJ3MgZ29vZG5lc3Mgd2hpbGUgYXdhaXRpbmcgaGlzIHJldHVybi4gSW4gdGhpcyBzZW5zZSwgdGhlIFBhcmFibGUgb2YgdGhlIFRhbGVudHMgcmVtYWlucyBhcyByZWxldmFudCB0byBtb2Rlcm4gQ2hyaXN0aWFuIGludmVzdG9ycyBhcyBpdCB3YXMgdG8gdGhvc2UgZmlyc3QgZGlzY2lwbGVzIGxpc3RlbmluZyBvbiB0aGUgTW91bnQgb2YgT2xpdmVzIHR3byB0aG91c2FuZCB5ZWFycyBhZ28uPC9wPg==