PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMi8vRU4iPjxodG1sPjxoZWFkPgoJPG1ldGEgaHR0cC1lcXVpdj0iQ09OVEVOVC1UWVBFIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+PHRpdGxlPjwvdGl0bGU+CgkKCTxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iU3Rhck9mZmljZSA2LjAgIChTb2xhcmlzIFNwYXJjKSI+Cgk8bWV0YSBuYW1lPSJBVVRIT1IiIGNvbnRlbnQ9ImRvdWdsYXNzIGhhbGwiPgoJPG1ldGEgbmFtZT0iQ1JFQVRFRCIgY29udGVudD0iMjAwMTAxMTg7MTMyODQ0MDAiPgoJPG1ldGEgbmFtZT0iQ0hBTkdFRCIgY29udGVudD0iMjAwMzA5MDU7MTM1MTIwMDAiPjwvaGVhZD4KCjxib2R5IGxhbmc9ImVuLVVTIj4KPHAgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iNCI+U3VuIE1pY3Jvc3lzdGVtcywgSW5jLjwvZm9udD4gPGJyPjxmb250IHNpemU9IjQiPkJpbmFyeQpDb2RlIExpY2Vuc2UgQWdyZWVtZW50PC9mb250PjwvcD4KPHA+UkVBRCBUSEUgVEVSTVMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIEFOWSBQUk9WSURFRCBTVVBQTEVNRU5UQUwKTElDRU5TRSBURVJNUyAoQ09MTEVDVElWRUxZICJBR1JFRU1FTlQiKSBDQVJFRlVMTFkgQkVGT1JFCk9QRU5JTkcgVEhFIFNPRlRXQVJFIE1FRElBIFBBQ0tBR0Uu4SBCWSBPUEVOSU5HIFRIRSBTT0ZUV0FSRQpNRURJQSBQQUNLQUdFLCBZT1UgQUdSRUUgVE8gVEhFIFRFUk1TIE9GIFRISVMgQUdSRUVNRU5ULuEgSUYgWU9VCkFSRSBBQ0NFU1NJTkcgVEhFIFNPRlRXQVJFIEVMRUNUUk9OSUNBTExZLCBJTkRJQ0FURSBZT1VSIEFDQ0VQVEFOQ0UKT0YgVEhFU0UgVEVSTVMgQlkgU0VMRUNUSU5HIFRIRSAiQUNDRVBUIiBCVVRUT04gQVQgVEhFIEVORApPRiBUSElTIEFHUkVFTUVOVC7hIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gQUxMIFRIRVNFIFRFUk1TLApQUk9NUFRMWSBSRVRVUk4gVEhFIFVOVVNFRCBTT0ZUV0FSRSBUTyBZT1VSIFBMQUNFIE9GIFBVUkNIQVNFIEZPUiBBClJFRlVORCBPUiwgSUYgVEhFIFNPRlRXQVJFIElTIEFDQ0VTU0VEIEVMRUNUUk9OSUNBTExZLCBTRUxFQ1QgVEhFCiJERUNMSU5FIiBCVVRUT04gQVQgVEhFIEVORCBPRiBUSElTIEFHUkVFTUVOVC4gCjwvcD4KPHA+PGI+MS7hIExJQ0VOU0UgVE8gVVNFLjwvYj7hIFN1biBncmFudHMgeW91IGEKbm9uLWV4Y2x1c2l2ZSBhbmQgbm9uLXRyYW5zZmVyYWJsZSBsaWNlbnNlIGZvciB0aGUgaW50ZXJuYWwgdXNlIG9ubHkKb2YgdGhlIGFjY29tcGFueWluZyBzb2Z0d2FyZSBhbmQgZG9jdW1lbnRhdGlvbiBhbmQgYW55IGVycm9yCmNvcnJlY3Rpb25zIHByb3ZpZGVkIGJ5IFN1biAoY29sbGVjdGl2ZWx5ICJTb2Z0d2FyZSIpLCBieQp0aGUgbnVtYmVyIG9mIHVzZXJzIGFuZCB0aGUgY2xhc3Mgb2YgY29tcHV0ZXIgaGFyZHdhcmUgZm9yIHdoaWNoIHRoZQpjb3JyZXNwb25kaW5nIGZlZSBoYXMgYmVlbiBwYWlkLiAKPC9wPgo8cD48Yj4yLuEgUkVTVFJJQ1RJT05TLuE8L2I+IFNvZnR3YXJlIGlzIGNvbmZpZGVudGlhbCBhbmQKY29weXJpZ2h0ZWQuIFRpdGxlIHRvIFNvZnR3YXJlIGFuZCBhbGwgYXNzb2NpYXRlZCBpbnRlbGxlY3R1YWwKcHJvcGVydHkgcmlnaHRzIGlzIHJldGFpbmVkIGJ5IFN1biBhbmQvb3IgaXRzIGxpY2Vuc29ycy7hIEV4Y2VwdAphcyBzcGVjaWZpY2FsbHkgYXV0aG9yaXplZCBpbiBhbnkgU3VwcGxlbWVudGFsIExpY2Vuc2UgVGVybXMsIHlvdSBtYXkKbm90IG1ha2UgY29waWVzIG9mIFNvZnR3YXJlLCBvdGhlciB0aGFuIGEgc2luZ2xlIGNvcHkgb2YgU29mdHdhcmUgZm9yCmFyY2hpdmFsIHB1cnBvc2VzLuEgVW5sZXNzIGVuZm9yY2VtZW50IGlzIHByb2hpYml0ZWQgYnkKYXBwbGljYWJsZSBsYXcsIHlvdSBtYXkgbm90IG1vZGlmeSwgZGVjb21waWxlLCBvciByZXZlcnNlIGVuZ2luZWVyClNvZnR3YXJlLuEgWW91IGFja25vd2xlZGdlIHRoYXQgU29mdHdhcmUgaXMgbm90IGRlc2lnbmVkLApsaWNlbnNlZCBvciBpbnRlbmRlZCBmb3IgdXNlIGluIHRoZSBkZXNpZ24sIGNvbnN0cnVjdGlvbiwgb3BlcmF0aW9uCm9yIG1haW50ZW5hbmNlIG9mIGFueSBudWNsZWFyIGZhY2lsaXR5LuEgU3VuIGRpc2NsYWltcyBhbnkKZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5IG9mIGZpdG5lc3MgZm9yIHN1Y2ggdXNlcy7hIE5vIHJpZ2h0LAp0aXRsZSBvciBpbnRlcmVzdCBpbiBvciB0byBhbnkgdHJhZGVtYXJrLCBzZXJ2aWNlIG1hcmssIGxvZ28gb3IgdHJhZGUKbmFtZSBvZiBTdW4gb3IgaXRzIGxpY2Vuc29ycyBpcyBncmFudGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LiAKPC9wPgo8cD48Yj4zLiBMSU1JVEVEIFdBUlJBTlRZLjwvYj7hIFN1biB3YXJyYW50cyB0byB5b3UgdGhhdCBmb3IgYQpwZXJpb2Qgb2YgbmluZXR5ICg5MCkgZGF5cyBmcm9tIHRoZSBkYXRlIG9mIHB1cmNoYXNlLCBhcyBldmlkZW5jZWQgYnkKYSBjb3B5IG9mIHRoZSByZWNlaXB0LCB0aGUgbWVkaWEgb24gd2hpY2ggU29mdHdhcmUgaXMgZnVybmlzaGVkIChpZgphbnkpIHdpbGwgYmUgZnJlZSBvZiBkZWZlY3RzIGluIG1hdGVyaWFscyBhbmQgd29ya21hbnNoaXAgdW5kZXIKbm9ybWFsIHVzZS7hIEV4Y2VwdCBmb3IgdGhlIGZvcmVnb2luZywgU29mdHdhcmUgaXMgcHJvdmlkZWQgIkFTCklTIi7hIFlvdXIgZXhjbHVzaXZlIHJlbWVkeSBhbmQgU3VuJ3MgZW50aXJlIGxpYWJpbGl0eQp1bmRlciB0aGlzIGxpbWl0ZWQgd2FycmFudHkgd2lsbCBiZSBhdCBTdW4ncyBvcHRpb24gdG8gcmVwbGFjZQpTb2Z0d2FyZSBtZWRpYSBvciByZWZ1bmQgdGhlIGZlZSBwYWlkIGZvciBTb2Z0d2FyZS4gCjwvcD4KPHA+PGI+NC7hIERJU0NMQUlNRVIgT0YgV0FSUkFOVFku4TwvYj4gVU5MRVNTIFNQRUNJRklFRCBJTgpUSElTIEFHUkVFTUVOVCwgQUxMIEVYUFJFU1MgT1IgSU1QTElFRCBDT05ESVRJT05TLCBSRVBSRVNFTlRBVElPTlMKQU5EIFdBUlJBTlRJRVMsIElOQ0xVRElORyBBTlkgSU1QTElFRCBXQVJSQU5UWSBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTi1JTkZSSU5HRU1FTlQgQVJFIERJU0NMQUlNRUQsCkVYQ0VQVCBUTyBUSEUgRVhURU5UIFRIQVQgVEhFU0UgRElTQ0xBSU1FUlMgQVJFIEhFTEQgVE8gQkUgTEVHQUxMWQpJTlZBTElELiAKPC9wPgo8cD48Yj41LuEgTElNSVRBVElPTiBPRiBMSUFCSUxJVFkuPC9iPuEgVE8gVEhFIEVYVEVOVCBOT1QKUFJPSElCSVRFRCBCWSBMQVcsIElOIE5PIEVWRU5UIFdJTEwgU1VOIE9SIElUUyBMSUNFTlNPUlMgQkUgTElBQkxFCkZPUiBBTlkgTE9TVCBSRVZFTlVFLCBQUk9GSVQgT1IgREFUQSwgT1IgRk9SIFNQRUNJQUwsIElORElSRUNULApDT05TRVFVRU5USUFMLCBJTkNJREVOVEFMIE9SIFBVTklUSVZFIERBTUFHRVMsIEhPV0VWRVIgQ0FVU0VEClJFR0FSRExFU1MgT0YgVEhFIFRIRU9SWSBPRiBMSUFCSUxJVFksIEFSSVNJTkcgT1VUIE9GIE9SIFJFTEFURUQgVE8KVEhFIFVTRSBPRiBPUiBJTkFCSUxJVFkgVE8gVVNFIFNPRlRXQVJFLCBFVkVOIElGIFNVTiBIQVMgQkVFTiBBRFZJU0VECk9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMu4SBJbiBubyBldmVudCB3aWxsIFN1bidzCmxpYWJpbGl0eSB0byB5b3UsIHdoZXRoZXIgaW4gY29udHJhY3QsIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwKb3Igb3RoZXJ3aXNlLCBleGNlZWQgdGhlIGFtb3VudCBwYWlkIGJ5IHlvdSBmb3IgU29mdHdhcmUgdW5kZXIgdGhpcwpBZ3JlZW1lbnQu4SBUaGUgZm9yZWdvaW5nIGxpbWl0YXRpb25zIHdpbGwgYXBwbHkgZXZlbiBpZiB0aGUKYWJvdmUgc3RhdGVkIHdhcnJhbnR5IGZhaWxzIG9mIGl0cyBlc3NlbnRpYWwgcHVycG9zZS4gCjwvcD4KPHA+PGI+Ni7hIFRlcm1pbmF0aW9uLjwvYj7hIFRoaXMgQWdyZWVtZW50IGlzIGVmZmVjdGl2ZQp1bnRpbCB0ZXJtaW5hdGVkLuEgWW91IG1heSB0ZXJtaW5hdGUgdGhpcyBBZ3JlZW1lbnQgYXQgYW55IHRpbWUKYnkgZGVzdHJveWluZyBhbGwgY29waWVzIG9mIFNvZnR3YXJlLuEgVGhpcyBBZ3JlZW1lbnQgd2lsbAp0ZXJtaW5hdGUgaW1tZWRpYXRlbHkgd2l0aG91dCBub3RpY2UgZnJvbSBTdW4gaWYgeW91IGZhaWwgdG8gY29tcGx5CndpdGggYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudC7hIFVwb24gVGVybWluYXRpb24sIHlvdQptdXN0IGRlc3Ryb3kgYWxsIGNvcGllcyBvZiBTb2Z0d2FyZS4gCjwvcD4KPHA+PGI+Ny4gRXhwb3J0IFJlZ3VsYXRpb25zLjwvYj4gQWxsIFNvZnR3YXJlIGFuZCB0ZWNobmljYWwgZGF0YQpkZWxpdmVyZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHN1YmplY3QgdG8gVVMgZXhwb3J0IGNvbnRyb2wgbGF3cwphbmQgbWF5IGJlIHN1YmplY3QgdG8gZXhwb3J0IG9yIGltcG9ydCByZWd1bGF0aW9ucyBpbiBvdGhlcgpjb3VudHJpZXMu4SBZb3UgYWdyZWUgdG8gY29tcGx5IHN0cmljdGx5IHdpdGggYWxsIHN1Y2ggbGF3cyBhbmQKcmVndWxhdGlvbnMgYW5kIGFja25vd2xlZGdlIHRoYXQgeW91IGhhdmUgdGhlIHJlc3BvbnNpYmlsaXR5IHRvCm9idGFpbiBzdWNoIGxpY2Vuc2VzIHRvIGV4cG9ydCwgcmUtZXhwb3J0LCBvciBpbXBvcnQgYXMgbWF5IGJlCnJlcXVpcmVkIGFmdGVyIGRlbGl2ZXJ5IHRvIHlvdS4gCjwvcD4KPHA+PGI+OC7h4SBVLlMuIEdvdmVybm1lbnQgUmVzdHJpY3RlZCBSaWdodHMu4TwvYj4gSWYKU29mdHdhcmUgaXMgYmVpbmcgYWNxdWlyZWQgYnkgb3Igb24gYmVoYWxmIG9mIHRoZSBVLlMuIEdvdmVybm1lbnQgb3IKYnkgYSBVLlMuIEdvdmVybm1lbnQgcHJpbWUgY29udHJhY3RvciBvciBzdWJjb250cmFjdG9yIChhdCBhbnkgdGllciksCnRoZW4gdGhlIEdvdmVybm1lbnQncyByaWdodHMgaW4gU29mdHdhcmUgYW5kIGFjY29tcGFueWluZwpkb2N1bWVudGF0aW9uIHdpbGwgYmUgb25seSBhcyBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQ7IHRoaXMgaXMgaW4KYWNjb3JkYW5jZSB3aXRoIDQ4IENGUiAyMjcuNzIwMSB0aHJvdWdoIDIyNy43MjAyLTQgKGZvciBEZXBhcnRtZW50IG9mCkRlZmVuc2UgKERPRCkgYWNxdWlzaXRpb25zKSBhbmQgd2l0aCA0OCBDRlIgMi4xMDEgYW5kIDEyLjIxMiAoZm9yCm5vbi1ET0QgYWNxdWlzaXRpb25zKS4gCjwvcD4KPHA+PGI+OS7hIEdvdmVybmluZyBMYXcuPC9iPuEgQW55IGFjdGlvbiByZWxhdGVkIHRvIHRoaXMKQWdyZWVtZW50IHdpbGwgYmUgZ292ZXJuZWQgYnkgQ2FsaWZvcm5pYSBsYXcgYW5kIGNvbnRyb2xsaW5nIFUuUy4KZmVkZXJhbCBsYXcu4SBObyBjaG9pY2Ugb2YgbGF3IHJ1bGVzIG9mIGFueSBqdXJpc2RpY3Rpb24gd2lsbAphcHBseS4gCjwvcD4KPHA+PGI+MTAu4SBTZXZlcmFiaWxpdHkuPC9iPiBJZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50CmlzIGhlbGQgdG8gYmUgdW5lbmZvcmNlYWJsZSwgdGhpcyBBZ3JlZW1lbnQgd2lsbCByZW1haW4gaW4gZWZmZWN0CndpdGggdGhlIHByb3Zpc2lvbiBvbWl0dGVkLCB1bmxlc3Mgb21pc3Npb24gd291bGQgZnJ1c3RyYXRlIHRoZQppbnRlbnQgb2YgdGhlIHBhcnRpZXMsIGluIHdoaWNoIGNhc2UgdGhpcyBBZ3JlZW1lbnQgd2lsbCBpbW1lZGlhdGVseQp0ZXJtaW5hdGUuIAo8L3A+CjxwPjxiPjExLuEgSW50ZWdyYXRpb24uPC9iPuEgVGhpcyBBZ3JlZW1lbnQgaXMgdGhlIGVudGlyZQphZ3JlZW1lbnQgYmV0d2VlbiB5b3UgYW5kIFN1biByZWxhdGluZyB0byBpdHMgc3ViamVjdCBtYXR0ZXIu4QpJdCBzdXBlcnNlZGVzIGFsbCBwcmlvciBvciBjb250ZW1wb3JhbmVvdXMgb3JhbCBvciB3cml0dGVuCmNvbW11bmljYXRpb25zLCBwcm9wb3NhbHMsIHJlcHJlc2VudGF0aW9ucyBhbmQgd2FycmFudGllcyBhbmQKcHJldmFpbHMgb3ZlciBhbnkgY29uZmxpY3Rpbmcgb3IgYWRkaXRpb25hbCB0ZXJtcyBvZiBhbnkgcXVvdGUsCm9yZGVyLCBhY2tub3dsZWRnbWVudCwgb3Igb3RoZXIgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZSBwYXJ0aWVzCnJlbGF0aW5nIHRvIGl0cyBzdWJqZWN0IG1hdHRlciBkdXJpbmcgdGhlIHRlcm0gb2YgdGhpcyBBZ3JlZW1lbnQu4QpObyBtb2RpZmljYXRpb24gb2YgdGhpcyBBZ3JlZW1lbnQgd2lsbCBiZSBiaW5kaW5nLCB1bmxlc3MgaW4gd3JpdGluZwphbmQgc2lnbmVkIGJ5IGFuIGF1dGhvcml6ZWQgcmVwcmVzZW50YXRpdmUgb2YgZWFjaCBwYXJ0eS4gCjwvcD4KPHAgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDBjbTsiPjxmb250IHNpemU9IjQiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5KQVZBSEVMUDwvZm9udD4oVE0pPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxmb250IHNpemU9IjIiIHN0eWxlPSJmb250LXNpemU6IDlwdDsiPgo8L2ZvbnQ+VkVSU0lPTiAyLjA8L2ZvbnQ+PC9mb250Pjxicj48Zm9udCBzaXplPSI0Ij5TVVBQTEVNRU5UQUwgTElDRU5TRQpURVJNUzwvZm9udD48L3A+CjxwIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwY207Ij48YnI+CjwvcD4KPHA+VGhlc2Ugc3VwcGxlbWVudGFsIGxpY2Vuc2UgdGVybXMgKCJTdXBwbGVtZW50YWwgVGVybXMiKQphZGQgdG8gb3IgbW9kaWZ5IHRoZSB0ZXJtcyBvZiB0aGUgQmluYXJ5IENvZGUgTGljZW5zZSBBZ3JlZW1lbnQKKGNvbGxlY3RpdmVseSwgdGhlICJBZ3JlZW1lbnQiKS4gQ2FwaXRhbGl6ZWQgdGVybXMgbm90CmRlZmluZWQgaW4gdGhlc2UgU3VwcGxlbWVudGFsIFRlcm1zIHNoYWxsIGhhdmUgdGhlIHNhbWUgbWVhbmluZ3MKYXNjcmliZWQgdG8gdGhlbSBpbiB0aGUgQWdyZWVtZW50LiBUaGVzZSBTdXBwbGVtZW50YWwgVGVybXMgc2hhbGwKc3VwZXJzZWRlIGFueSBpbmNvbnNpc3RlbnQgb3IgY29uZmxpY3RpbmcgdGVybXMgaW4gdGhlIEFncmVlbWVudCwgb3IKaW4gYW55IGxpY2Vuc2UgY29udGFpbmVkIHdpdGhpbiB0aGUgU29mdHdhcmUuIAo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGI+MS4gU29mdHdhcmUKSW50ZXJuYWwgVXNlIGFuZCBEZXZlbG9wbWVudCBMaWNlbnNlIEdyYW50LjwvYj4gU3ViamVjdCB0byB0aGUgdGVybXMKYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvClNlY3Rpb24gNCAoSmF2YShUTSkgVGVjaG5vbG9neSBSZXN0cmljdGlvbnMpIG9mIHRoZXNlIFN1cHBsZW1lbnRhbApUZXJtcywgU3VuIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLCBsaW1pdGVkCmxpY2Vuc2UgdG8gcmVwcm9kdWNlIGludGVybmFsbHkgYW5kIHVzZSBpbnRlcm5hbGx5IHRoZSBiaW5hcnkgZm9ybSBvZgp0aGUgU29mdHdhcmUgY29tcGxldGUgYW5kIHVubW9kaWZpZWQgZm9yIHRoZSBzb2xlIHB1cnBvc2Ugb2YKZGVzaWduaW5nLCBkZXZlbG9waW5nIGFuZCB0ZXN0aW5nIHlvdXIgSmF2YSBhcHBsZXRzIGFuZCBhcHBsaWNhdGlvbnMKaW50ZW5kZWQgdG8gcnVuIG9uIHRoZSBKYXZhIHBsYXRmb3JtICgiUHJvZ3JhbXMiKS4gPC9mb250Pgo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGI+Mi4gTGljZW5zZQp0byBEaXN0cmlidXRlIFNvZnR3YXJlLjwvYj7hIEluIGFkZGl0aW9uIHRvIHRoZSBsaWNlbnNlIGdyYW50ZWQKaW4gU2VjdGlvbiAxIChTb2Z0d2FyZSBJbnRlcm5hbCBVc2UgYW5kIERldmVsb3BtZW50IExpY2Vuc2UgR3JhbnQpIG9mCnRoZXNlIFN1cHBsZW1lbnRhbCBUZXJtcywgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcwpBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gU2VjdGlvbiA0IChKYXZhIFRlY2hub2xvZ3kKUmVzdHJpY3Rpb25zKSwgU3VuIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLApsaW1pdGVkIGxpY2Vuc2UgdG8gcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIHRoZSBTb2Z0d2FyZSBpbiBiaW5hcnkKZm9ybSBvbmx5LCBwcm92aWRlZCB0aGF0IHlvdSAoaSkgZGlzdHJpYnV0ZSB0aGUgU29mdHdhcmUgY29tcGxldGUgYW5kCnVubW9kaWZpZWQgYW5kIG9ubHkgYnVuZGxlZCBhcyBwYXJ0IG9mIHlvdXIgUHJvZ3JhbXMsIChpaSkgZG8gbm90CmRpc3RyaWJ1dGUgYWRkaXRpb25hbCBzb2Z0d2FyZSBpbnRlbmRlZCB0byByZXBsYWNlIGFueSBjb21wb25lbnQocykKb2YgdGhlIFNvZnR3YXJlLCAoaWlpKSBkbyBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBwcm9wcmlldGFyeSBsZWdlbmRzCm9yIG5vdGljZXMgY29udGFpbmVkIGluIHRoZSBTb2Z0d2FyZSwgKGl2KSBvbmx5IGRpc3RyaWJ1dGUgdGhlClNvZnR3YXJlIHN1YmplY3QgdG8gYSBsaWNlbnNlIGFncmVlbWVudCB0aGF0IHByb3RlY3RzIFN1bidzIGludGVyZXN0cwpjb25zaXN0ZW50IHdpdGggdGhlIHRlcm1zIGNvbnRhaW5lZCBpbiB0aGlzIEFncmVlbWVudCwgYW5kICh2KSBhZ3JlZQp0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBTdW4gYW5kIGl0cyBsaWNlbnNvcnMgZnJvbSBhbmQgYWdhaW5zdCBhbnkKZGFtYWdlcywgY29zdHMsIGxpYWJpbGl0aWVzLCBzZXR0bGVtZW50IGFtb3VudHMgYW5kL29yIGV4cGVuc2VzCihpbmNsdWRpbmcgYXR0b3JuZXlzJyBmZWVzKSBpbmN1cnJlZCBpbiBjb25uZWN0aW9uIHdpdGggYW55IGNsYWltLApsYXdzdWl0IG9yIGFjdGlvbiBieSBhbnkgdGhpcmQgcGFydHkgdGhhdCBhcmlzZXMgb3IgcmVzdWx0cyBmcm9tIHRoZQp1c2Ugb3IgZGlzdHJpYnV0aW9uIG9mIGFueSBhbmQgYWxsIFByb2dyYW1zIGFuZC9vciBTb2Z0d2FyZS4gPC9mb250Pgo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGI+My4gTGljZW5zZQp0byBEaXN0cmlidXRlIFJlZGlzdHJpYnV0YWJsZXMuPC9iPuEgSW4gYWRkaXRpb24gdG8gdGhlIGxpY2Vuc2UKZ3JhbnRlZCBpbiBTZWN0aW9uIDEgKFNvZnR3YXJlIEludGVybmFsIFVzZSBhbmQgRGV2ZWxvcG1lbnQgTGljZW5zZQpHcmFudCkgb2YgdGhlc2UgU3VwcGxlbWVudGFsIFRlcm1zLCBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQKY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBTZWN0aW9uIDMKKEphdmEgVGVjaG5vbG9neSBSZXN0cmljdGlvbnMpIG9mIHRoZXNlIFN1cHBsZW1lbnRhbCBUZXJtcywgU3VuCmdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLCBsaW1pdGVkIGxpY2Vuc2UgdG8KcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIHRob3NlIGZpbGVzIHNwZWNpZmljYWxseSBpZGVudGlmaWVkIGFzCnJlZGlzdHJpYnV0YWJsZSBpbiB0aGUgU29mdHdhcmUgIlJFQURNRSIgZmlsZQooIlJlZGlzdHJpYnV0YWJsZXMiKSBwcm92aWRlZCB0aGF0OiAoaSkgeW91IGRpc3RyaWJ1dGUgdGhlClJlZGlzdHJpYnV0YWJsZXMgY29tcGxldGUgYW5kIHVubW9kaWZpZWQgKHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkCmluIHRoZSBhcHBsaWNhYmxlIFJFQURNRSBmaWxlKSwgYW5kIG9ubHkgYnVuZGxlZCBhcyBwYXJ0IG9mIHlvdXIKUHJvZ3JhbXMsIChpaSkgeW91IGRvIG5vdCBkaXN0cmlidXRlIGFkZGl0aW9uYWwgc29mdHdhcmUgaW50ZW5kZWQgdG8Kc3VwZXJzZWRlIGFueSBjb21wb25lbnQocykgb2YgdGhlIFJlZGlzdHJpYnV0YWJsZXMsIChpaWkpIHlvdSBkbyBub3QKcmVtb3ZlIG9yIGFsdGVyIGFueSBwcm9wcmlldGFyeSBsZWdlbmRzIG9yIG5vdGljZXMgY29udGFpbmVkIGluIG9yIG9uCnRoZSBSZWRpc3RyaWJ1dGFibGVzLCAoaXYpIHlvdSBvbmx5IGRpc3RyaWJ1dGUgdGhlIFJlZGlzdHJpYnV0YWJsZXMKcHVyc3VhbnQgdG8gYSBsaWNlbnNlIGFncmVlbWVudCB0aGF0IHByb3RlY3RzIFN1bidzIGludGVyZXN0cwpjb25zaXN0ZW50IHdpdGggdGhlIHRlcm1zIGNvbnRhaW5lZCBpbiB0aGUgQWdyZWVtZW50LCBhbmQgKHYpIHlvdQphZ3JlZSB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBTdW4gYW5kIGl0cyBsaWNlbnNvcnMgZnJvbSBhbmQgYWdhaW5zdAphbnkgZGFtYWdlcywgY29zdHMsIGxpYWJpbGl0aWVzLCBzZXR0bGVtZW50IGFtb3VudHMgYW5kL29yIGV4cGVuc2VzCihpbmNsdWRpbmcgYXR0b3JuZXlzJyBmZWVzKSBpbmN1cnJlZCBpbiBjb25uZWN0aW9uIHdpdGggYW55IGNsYWltLApsYXdzdWl0IG9yIGFjdGlvbiBieSBhbnkgdGhpcmQgcGFydHkgdGhhdCBhcmlzZXMgb3IgcmVzdWx0cyBmcm9tIHRoZQp1c2Ugb3IgZGlzdHJpYnV0aW9uIG9mIGFueSBhbmQgYWxsIFByb2dyYW1zIGFuZC9vciBTb2Z0d2FyZS4gPC9mb250Pgo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Yj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+NC4gSmF2YQpUZWNobjwvZm9udD5vbG9neSBSZXN0cmljdGlvbnMuPC9iPiBZb3UgbWF5IG5vdCBtb2RpZnkgdGhlIEphdmEKUGxhdGZvcm0gSW50ZXJmYWNlICgiSlBJIiwgaWRlbnRpZmllZCBhcyBjbGFzc2VzIGNvbnRhaW5lZAp3aXRoaW4gdGhlICJqYXZhIiBwYWNrYWdlIG9yIGFueSBzdWJwYWNrYWdlcyBvZiB0aGUgImphdmEiCnBhY2thZ2UpLCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIGNsYXNzZXMgd2l0aGluIHRoZSBKUEkgb3Igb3RoZXJ3aXNlCmNhdXNpbmcgdGhlIGFkZGl0aW9uIHRvIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUgY2xhc3NlcyBpbiB0aGUgSlBJLuEKSW4gdGhlIGV2ZW50IHRoYXQgeW91IGNyZWF0ZSBhbiBhZGRpdGlvbmFsIGNsYXNzIGFuZCBhc3NvY2lhdGVkCkFQSShzKSB3aGljaCAoaSkgZXh0ZW5kcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgSmF2YSBwbGF0Zm9ybSwgYW5kCihpaSkgaXMgZXhwb3NlZCB0byB0aGlyZCBwYXJ0eSBzb2Z0d2FyZSBkZXZlbG9wZXJzIGZvciB0aGUgcHVycG9zZSBvZgpkZXZlbG9waW5nIGFkZGl0aW9uYWwgc29mdHdhcmUgd2hpY2ggaW52b2tlcyBzdWNoIGFkZGl0aW9uYWwgQVBJLCB5b3UKbXVzdCBwcm9tcHRseSBwdWJsaXNoIGJyb2FkbHkgYW4gYWNjdXJhdGUgc3BlY2lmaWNhdGlvbiBmb3Igc3VjaCBBUEkKZm9yIGZyZWUgdXNlIGJ5IGFsbCBkZXZlbG9wZXJzLiBZb3UgbWF5IG5vdCBjcmVhdGUsIG9yIGF1dGhvcml6ZSB5b3VyCmxpY2Vuc2VlcyB0byBjcmVhdGUsIGFkZGl0aW9uYWwgY2xhc3NlcywgaW50ZXJmYWNlcywgb3Igc3VicGFja2FnZXMKdGhhdCBhcmUgaW4gYW55IHdheSBpZGVudGlmaWVkIGFzICJqYXZhIiwgImphdmF4IiwKInN1biIgb3Igc2ltaWxhciBjb252ZW50aW9uIGFzIHNwZWNpZmllZCBieSBTdW4gaW4gYW55Cm5hbWluZyBjb252ZW50aW9uIGRlc2lnbmF0aW9uLiAKPC9wPgo8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMC41MWNtOyI+PGI+NS4gSmF2YSBSdW50aW1lIEF2YWlsYWJpbGl0eS48L2I+4QpSZWZlciB0byB0aGUgYXBwcm9wcmlhdGUgdmVyc2lvbiBvZiB0aGUgSmF2YSBSdW50aW1lIEVudmlyb25tZW50CmJpbmFyeSBjb2RlIGxpY2Vuc2UgKGN1cnJlbnRseSBsb2NhdGVkIGF0Cmh0dHA6Ly93d3cuamF2YS5zdW4uY29tL2pkay9pbmRleC5odG1sKSBmb3IgdGhlIGF2YWlsYWJpbGl0eSBvZgpydW50aW1lIGNvZGUgd2hpY2ggbWF5IGJlIGRpc3RyaWJ1dGVkIHdpdGggSmF2YSBhcHBsZXRzIGFuZAphcHBsaWNhdGlvbnMuIAo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Yj42LiBUcmFkZW1hcmtzIGFuZCBMb2dvcy48L2I+IFlvdQphY2tub3dsZWRnZSBhbmQgYWdyZWUgYXMgYmV0d2VlbiB5b3UgYW5kIFN1biB0aGF0IFN1biBvd25zIHRoZSBTVU4sClNPTEFSSVMsIEpBVkEsIEpJTkksIEZPUlRFLCBhbmQgaVBMQU5FVCB0cmFkZW1hcmtzIGFuZCBhbGwgU1VOLApTT0xBUklTLCBKQVZBLCBKSU5JLCBGT1JURSwgYW5kIGlQTEFORVQtcmVsYXRlZCB0cmFkZW1hcmtzLCBzZXJ2aWNlCm1hcmtzLCBsb2dvcyBhbmQgb3RoZXIgYnJhbmQgZGVzaWduYXRpb25zICgiU3VuIE1hcmtzIiksCmFuZCB5b3UgYWdyZWUgdG8gY29tcGx5IHdpdGggdGhlIFN1biBUcmFkZW1hcmsgYW5kIExvZ28gVXNhZ2UKUmVxdWlyZW1lbnRzIGN1cnJlbnRseSBsb2NhdGVkIGF0Cmh0dHA6Ly93d3cuc3VuLmNvbS9wb2xpY2llcy90cmFkZW1hcmtzLiBBbnkgdXNlIHlvdSBtYWtlIG9mIHRoZSBTdW4KTWFya3MgaW51cmVzIHRvIFN1bidzIGJlbmVmaXQuIAo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Yj43LiBTb3VyY2UgQ29kZS48L2I+IFNvZnR3YXJlIG1heQpjb250YWluIHNvdXJjZSBjb2RlIHRoYXQgaXMgcHJvdmlkZWQgc29sZWx5IGZvciByZWZlcmVuY2UgcHVycG9zZXMKcHVyc3VhbnQgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LiAgU291cmNlIGNvZGUgbWF5IG5vdCBiZQpyZWRpc3RyaWJ1dGVkIHVubGVzcyBleHByZXNzbHkgcHJvdmlkZWQgZm9yIGluIHRoaXMgQWdyZWVtZW50LiBTb21lCnNvdXJjZSBjb2RlIG1heSBjb250YWluIGFsdGVybmF0aXZlIGxpY2Vuc2UgdGVybXMgdGhhdCBhcHBseSBvbmx5IHRvCnRoYXQgc291cmNlIGNvZGUgZmlsZS48L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Yj44LiBUZXJtaW5hdGlvbiBmb3IgSW5mcmluZ2VtZW50LjwvYj7hCkVpdGhlciBwYXJ0eSBtYXkgdGVybWluYXRlIHRoaXMgQWdyZWVtZW50IGltbWVkaWF0ZWx5IHNob3VsZCBhbnkKU29mdHdhcmUgYmVjb21lLCBvciBpbiBlaXRoZXIgcGFydHkncyBvcGluaW9uIGJlIGxpa2VseSB0byBiZWNvbWUsCnRoZSBzdWJqZWN0IG9mIGEgY2xhaW0gb2YgaW5mcmluZ2VtZW50IG9mIGFueSBpbnRlbGxlY3R1YWwgcHJvcGVydHkKcmlnaHQuIAo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjUxY207Ij48Zm9udCBmYWNlPSJUaG9ybmRhbGUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5Gb3IKaW5xdWlyaWVzIHBsZWFzZSBjb250YWN0OiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIDQxNTAgTmV0d29yayBDaXJjbGUsClNhbnRhIENsYXJhLCBDYWxpZm9ybmlhIDk1MDU0LjwvZm9udD48L2ZvbnQ+IDxicj48aT4oTEZJIzEzNTgzNC9Gb3JtCklEIzAxMTgwMSk8L2k+PC9wPgo8L2JvZHk+PC9odG1sPg==