MjAwNi0wOC0wNCAgS2VpdGggUGFja2FyZCAgKGtlaXRocEBrZWl0aHAuY29tKQoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGNvbmZpZ3VyZS5pbjoKCSogZm9udHMuY29uZi5pbjoKCSogZm9udHMuZHRkOgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJKiBzcmMvTWFrZWZpbGUuYW06CgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVmFsaWQsIEZjRGlySGFzQ3VycmVudEFyY2gsIAoJICAgICAgICAgICAgICAgICBGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlQmFzZW5hbWUsCgkJCSBGY0NhY2hlUmVhZERpcnMsIEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlUmVhZCwKCQkJIEZjTWFrZURpcmVjdG9yeSwgRmNEaXJDYWNoZVdyaXRlKToKCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQ3JlYXRlLCBGY0NvbmZpZ0Rlc3Ryb3ksIEZjQ29uZmlnQWRkQ2FjaGVEaXIsCgkgICAgICAgICAgICAgICBGY0NvbmZpZ0dldENhY2hlRGlycyk6CgkqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcsIEZjRGlyU2F2ZSk6CgkqIHNyYy9mY2luaXQuYyAoRmNJbml0RmFsbGJhY2tDb25maWcpOgoJKiBzcmMvZmN4bWwuYyAoZmNFbGVtZW50TWFwLCBGY0VuZEVsZW1lbnQpOgoJKiB0ZXN0L2ZvbnRzLmNvbmYuaW4sIHRlc3QvcnVuLXRlc3Quc2g6CgoJTWFrZSBjYWNoZSBkaXJlY3RvcmllcyBjb25maWd1cmFibGUuICBTaW1wbGlmeSBhbmQgY29ycmVjdAoJc29tZSBjb2RlIHdoaWNoIGRlYWxzIHdpdGggcGVyLWRpcmVjdG9yeSBjYWNoZXMuCgoyMDA2LTA3LTE5ICBKb24gQnVyZ2VzcyAgKGpidXJnZXNzQHVrbGludXgubmV0KQogICAgICAgIHJldmlld2VkIGJ5OiBwbGFtCgogICAgICAgICogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZURlc3Ryb3kpOgoKICAgICAgICBGaXggZmlsZS1kZXNjcmlwdG9yIGxlYWsgaW4gRmNHbG9iYWxDYWNoZURlc3Ryb3kuCgoyMDA2LTA1LTMxICBZb25nIExpICAocmlnZWw4NjNAZ21haWwuY29tKQoJcmV2aWV3ZWQgYnk6IHBsYW0sIEJlZGhhZCBFc2ZhaGJvZAoKICAgICAgICAqIHNyYy9mdGdsdWUuYyAoX2hiX2Z0Z2x1ZV9mYWNlX2dvdG9fdGFibGUpOiAKCglUcnVlVHlwZSBDb2xsZWN0aW9uIHRhYmxlIG9mZnNldHMgYXJlIGFic29sdXRlLCBub3QgcmVsYXRpdmUuCgoyMDA2LTA0LTI3ICBQYW9sbyBCb3JlbGxpICAocGJvcmVsbGlAa2F0YW1haWwuY29tKQoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNzdHIuYyAoRmNTdHJDb3B5KToKCglNYWtlIEZjU3RyQ29weSBzbGlnaHRseSBtb3JlIGVmZmljaWVudC4KCjIwMDYtMDQtMjcgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgoJICAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCSogc3JjL2Zjc3RyLmMgKEZjU3RyQnVmQ2hhcik6CgoJUmVkdWNlIHRyYW5zaWVudCBtZW1vcnkgdXNhZ2UgZHVyaW5nIGNvbmZpZyBmaWxlIHBhcnNpbmcKCWJ5IGFsbG9jYXRpbmcgc21hbGxlciBidWZmZXJzICg2NCBzZWVtcyB0byBiZSBhIG1hZ2ljIG51bWJlcikuCgkKMjAwNi0wNC0yNyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogc3JjL2ZjaW5pdC5jOiAoRmNNZW1SZXBvcnQpOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjcGF0LmM6IChGY1BhdHRlcm5GaW5pKToKCSogc3JjL2ZjeG1sLmM6IChGY1BhcnNlUGF0ZWx0KToKCUVsaW1pbmF0ZSBwYXR0ZXJuIGZyZWV6aW5nCgoyMDA2LTA0LTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CglyZXZpZXdlZCBieTogUGF0cmljayBMYW0gPHBsYW1AbWl0LmVkdT4KCgkqIHNyYy9mY2NhY2hlLmM6IChGY0RpckNhY2hlVW5saW5rKSwgKEZjRGlyQ2FjaGVIYXNoTmFtZSksCgkoRmNEaXJDYWNoZU9wZW4pLCAoRmNEaXJDYWNoZVdyaXRlKToKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSk6CgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNsaXN0LmM6IChGY0xpc3RBcHBlbmQpOgoJKiBzcmMvZmNtYXRjaC5jOiAoRmNGb250UmVuZGVyUHJlcGFyZSk6CgkqIHNyYy9mY3BhdC5jOiAoRmNQYXR0ZXJuRGVzdHJveSksIChGY1BhdHRlcm5CYXNlRnJlZXplKSwKCShGY1BhdHRlcm5GcmVlemUpLCAoRmNQYXR0ZXJuR2V0KSwgKEZjUGF0dGVybkR1cGxpY2F0ZSksCgkoRmNTdHJVbnNlcmlhbGl6ZSk6CglNYWtlIHBhdGggbmFtZXMgaW4gY2FjaGUgZmlsZXMgYWJzb2x1dGUgKE5CLCBjYWNoZSBmb3JtYXQgY2hhbmdlKQoJU3RvcCBwZXJtaXR0aW5nIGNhY2hlIGZpbGVzIHRvIGJlIHN0b3JlZCBpbiBmb250IGRpcnMuCglCdW1wIGNhY2hlIG1hZ2ljLgoJRG9uJ3QgaW5jbHVkZSAvZm9udHMuY2FjaGUtMiBpbiBjYWNoZSBoYXNoIGNvbnN0cnVjdGlvbi4KCjIwMDYtMDQtMjUgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgoJKiBDaGFuZ2VMb2c6CgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCglCdW1wIHZlcnNpb24gdG8gMi4zLjk1LgoKMjAwNi0wNC0yNSAgQmVoZGFkIEVzZmFoYm9kICA8YmVoZGFkQGNzLnRvcm9udG8uZWR1PgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGNvbmZpZ3VyZS5pbjoKCSogc3JjL01ha2VmaWxlLmFtOgoJKiBzcmMvZmNmcmVldHlwZS5jOgoKCUZpeCB0aGUgaXNzdWVzIHdpdGggR05VIGxpYmljb252IHZzLiBsaWJjIGljb252ICh3aGljaCBlc3BlY2lhbGx5CglhcHBlYXIgb24gU29sYXJpaSkuICBBcHByb2FjaCBzdWdnZXN0ZWQgYnkgVGltIE1vb25leS4KCQoyMDA2LTA0LTI0ICBEb21pbmljIExhY2hvd2ljeiAgPGNpbmFtb2RAaG90bWFpbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9NYWtlZmlsZS5hbToKCglJbmNsdWRlICQodG9wX3NyY2RpciksICQodG9wX3NyY2Rpcikvc3JjIGJlZm9yZSBhbnl0aGluZyBlbHNlLgoKCSogZmMtY2FjaGUvZmMtY2FjaGUuYywgZmMtY2F0L2ZjLWNhdC5jLCBmYy1tYXRjaC9mYy1tYXRjaC5jOgoJKiBzcmMvZmNjYWNoZS5jLCBzcmMvZmNjZmcuYywgc3JjL2ZjY2hhcnNldC5jLCBzcmMvZmNkYmcuYzoKCSogc3JjL2ZjZnJlZXR5cGUuYywgc3JjL2ZjZnMuYywgc3JjL2ZjaW5pdC5jLCBzcmMvZmNsaXN0LmM6CgkqIHNyYy9mY21hdGNoLmMsIHNyYy9mY21hdHJpeC5jLCBzcmMvZmNuYW1lLmMsIHNyYy9mY3BhdC5jOgoJKiBzcmMvZmNzdHIuYywgc3JjL2ZjeG1sLmM6CgoJU2h1ZmZsZSBvcmRlciBvZiBpbmNsdWRlcyBmb3IgYnVpbGRpbmcgb3V0IG9mIHNyY2RpciBvbiB3aW4zMi4KCQoyMDA2LTA0LTIwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjbWF0Y2guYyAoRmNTb3J0V2Fsayk6CgoJUHJldmVudCB0ZXJyaWJsZSBwZXJmIHJlZ3Jlc3Npb24gYnkgZ2V0dGluZyB0aGUgaWYtY29uZGl0aW9uCglyaWdodCAocmVwb3J0ZWQgYnkgV291dGVyIEJvbHN0ZXJsZWUpLgoKMjAwNi0wNC0xOSAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+CgkgICAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgoKCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZUNvbnN1bWUpOgoKCUltcGxlbWVudCBtbWFwLWxpa2UgY29kZSBmb3IgV2luZG93cyB1c2luZyBNYXBWaWV3T2ZGaWxlLgoJCjIwMDYtMDQtMTkgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlQ29uc3VtZSwgRmNDYWNoZU5leHRPZmZzZXQpOgoKCUJhaWwgZ3JhY2VmdWxseSBpZiB0aGUgY2FjaGUgZmlsZSBkb2VzIG5vdCBjb250YWluIGVub3VnaCBkYXRhLgoKMjAwNi0wNC0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZvbnRzLmNvbmYuaW46CgoJR2l2ZSB0aGUgJ1N0YW5kYXJkIFN5bWJvbHMgTCcgbWF0Y2ggYSBzdHJvbmcgKHZzLiB3ZWFrKSBiaW5kaW5nLgoKMjAwNi0wNC0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3RUb1B0ckxvb2t1cCk6CgoJRml4IEdlY2tvLWV4cG9zZWQgc2VnZmF1bHQgZnJvbSBteSBsYXN0IGhhY2sgdG8KCUZjT2JqZWN0VG9QdHJMb29rdXAuICBTaW1wbGlmeSBjb2RlIGFuZCBnZXQgdGhpbmdzIHN0cmFpZ2h0LgoKMjAwNi0wNC0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZvbnRzLmNvbmYuaW46CgoJQWN0dWFsbHksIGp1c3QgYWRkIFVSVyBmb250cyBhcyBhbGlhc2VzIGZvciBhbGwgb2YgdGhlIFBvc3RTY3JpcHQKCWZvbnRzLiAgKHJlcG9ydGVkIGJ5IE1pZ3VlbCBSb2RyaWd1ZXopLgkKCjIwMDYtMDQtMTMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmb250cy5jb25mLmluOgoKCUFkZCBhbiBhbGlhcyAnU3RhbmRhcmQgU3ltYm9scyBMJyBmb3IgJ1N5bWJvbCcuCgoyMDA2LTA0LTEyICBGcmVkZXJpYyBDcm96YXQgIDxmY3JvemF0QG1hbmRyaXZhLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogc3JjL2ZjcGF0LmM6IChGY1BhdHRlcm5GcmVlemUpOgoJRml4IG1lbW9yeSBsZWFrIChDb3Zlcml0eSBkZWZlY3QgIzIwODkpLgoKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEdldFNjcmlwdFRhZ3MpOgoJSWdub3JlIHNjcmlwdCBpZiBzdWJ0YWJsZSBpcyBtaXNzaW5nIChDb3Zlcml0eSBkZWZlY3QgIzIwODgpLgoKMjAwNi0wNC0xMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ1N1YnN0aXR1dGVXaXRoUGF0KToKCglGaXggcG9zc2libGUgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIChDb3Zlcml0eSBkZWZlY3QgIzc4NCkKCWFuZCBtZW1vcnkgbGVhayAoQ292ZXJpdHkgZGVmZWN0cyAjNzg1LCAjNzg2KS4KCjIwMDYtMDQtMTIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNtYXRjaC5jIChGY1NvcnRXYWxrLCBGY0ZvbnRTZXRTb3J0KToKCglEb24ndCBjb3B5IEZjQ2hhclNldCBpZiB3ZSdyZSBnb2luZyB0byB0aHJvdyBpdCBhd2F5IGFueXdheS4KCShSZXBvcnRlZCBieSBLZW5pY2hpIEhhbmRhKS4KCjIwMDYtMDQtMTEgIE1pbmcgWmhhbyAgPG1pbmdAZ2VudG9vLm9yZz4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogc3JjL2ZjbmFtZS5jIChGY09iamVjdFRvUHRyTG9va3VwKToKCglGaXggYmFkIGJlaGF2aW91ciBvbiByZWFsbG9jIHJlc3VsdGluZyBpbiBjcmFzaC4KCjIwMDYtMDQtMTEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlUmVhZERpcik6CgoJRG9uJ3QgY3Jhc2ggaWYgY29uZmlnIGlzIG51bGwgKENvdmVyaXR5IGRlZmVjdCAjOTg0KS4KCjIwMDYtMDQtMTEgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0UHV0TGVhZik6CgkqIHNyYy9mY2xhbmcuYyAoRmNOYW1lVW5wYXJzZUxhbmdTZXQpOgoKCU1pc3NpbmcgYml0cyBmcm9tIHByZXZpb3VzIHBhdGNoZXMuCgoJKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldFN1YnRyYWN0Q291bnQpOgoJUmVtb3ZlIGV4dHJhIHNlbWktY29sb24uCgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdCdWlsZEZvbnRzKToKCUZpeCBtZW1vcnkgbGVhayBpbiBlcnJvciBjYXNlIChDb3Zlcml0eSBkZWZlY3RzICM3NzYsICM5ODUpLgoKCSogc3JjL2ZjeG1sLmMgKEZjUG9wQmluYXJ5LCBGY1BhcnNlUGF0ZWx0LCBGY1BhcnNlUGF0dGVybik6CglGaXggbWVtb3J5IGxlYWtzIChDb3Zlcml0eSBkZWZlY3RzICM3NzksICM3ODEpIAoJYW5kIG1lbW9yeSB1c2UgYWZ0ZXIgZnJlZSAoQ292ZXJpdHkgZGVmZWN0ICM3ODApLgoKMjAwNi0wNC0xMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0UHV0TGVhZik6CgoJUHJvcGVybHkgY29udmVydCBzdGF0aWMgY2hhcnNldHMgdG8gZHluYW1pYyBjaGFyc2V0cy4KCjIwMDYtMDQtMTEgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNwYXQuYzogKEZjVmFsdWVMaXN0RW50Q3JlYXRlLCBGY1BhdHRlcm5CYXNlRnJlZXplLAoJRmNQYXR0ZXJuRnJlZXplKToKCUZpeCBtZW1vcnkgbGVhayBpbiBlcnJvciBjYXNlIChDb3Zlcml0eSBkZWZlY3RzICMxODIwLCAjMTgyMSwgIzE4MjIpLgoKCSogc3JjL2ZjbGFuZy5jOiAoRmNOYW1lVW5wYXJzZUxhbmdTZXQpOgoJRml4IG1lbW9yeSBsZWFrIChDb3Zlcml0eSBkZWZlY3QgIzE4MTkpLgoKCSogZmMtbGFuZy9mYy1sYW5nLmM6IChzY2FuKToKCXByZXZlbnQgY3Jhc2ggd2hlbiBpbnZhbGlkIGluY2x1ZGUgbGluZSBpcyBwYXJzZWQgKENvdmVyaXR5IGRlZmVjdAoJIzc2MykuCgoJKiBmYy1jYXQvZmMtY2F0LmM6IChGY0NhY2hlRmlsZVJlYWQpOgoJRml4IHBvdGVudGlhbCBudWxsIHBvaW50ZXIgYWNjZXNzIChDb3Zlcml0eSBkZWZlY3QgIzE4MDQpLgoKCSogc3JjL2ZjbmFtZS5jOiAoRmNPYmplY3RVbnNlcmlhbGl6ZSk6CglSZW1vdmUgZGVhZCBjb2RlIChDb3Zlcml0eSBkZWZlY3QgIzExOTQpLgoKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEdldFNjcmlwdFRhZ3MpOgoJUHJldmVudCBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGFjY2VzcyAoQ292ZXJpdHkgZGVmZWN0ICM3NjcpLAoJZW5zdXJlIGVycm9yIHZhbHVlIGlzIHJlYWQgKENvdmVyaXR5IGRlZmVjdCAjMTE5NSkuCgoyMDA2LTA0LTExICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZG9jL01ha2VmaWxlLmFtOgoKCVN1cnZpdmUgbWlzc2luZyBkb2Nib29rMnBkZi4KCjIwMDYtMDQtMTAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYXNlL2ZjLWNhc2UuYzoKCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOgoJKiBmYy1sYW5nL2ZjLWxhbmcuYzoKCglJbmNsdWRlIG1vcmUgc3R1YiBkZWZpbml0aW9ucyB0byBtYWtlIEhQLVVYJ3MgQyBjb21waWxlciBoYXBweS4KCjIwMDYtMDQtMTAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0VW5zZXJpYWxpemUpOgoKCVN3YXAgdHlwbyBpbiBvcmRlciBvZiBBTElHTiBhbmQgZGVyZWZlcmVuY2luZywgZml4aW5nIGJ1ZyA2NTI5LgoKMjAwNi0wNC0xMCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdFdmFsdWF0ZSk6CglGaXggc3RyaW5nIG1lbW9yeSBsZWFrIChDb3Zlcml0eSBkZWZlY3QgIzE4MjMpLgoJCgkqIHNyYy9mY2NhY2hlLmM6IChGY0RpckNhY2hlVW5saW5rKToKCUZpeCBtZW1vcnkgbGVhayB3aXRoIGhhc2ggY29sbGlzaW9uIChDb3Zlcml0eSBkZWZlY3QgIzE4MjQpLgoKMjAwNi0wNC0xMCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY2NhY2hlLmM6IChGY0dsb2JhbENhY2hlU2F2ZSk6CglEb24ndCBsZWFrIGhlYWRlciBpbiBub24tZXJyb3IgY2FzZSAoQ292ZXJpdHkgZGVmZWN0ICMxODI1KS4KCjIwMDYtMDQtMTAgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcpCglEb24ndCBsZWFrIGluIGVycm9yIGNhc2VzIChDb3Zlcml0eSBkZWZlY3RzICM3NzcsICMxODI2KQoKMjAwNi0wNC0xMCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2FjaGUuYzogKEZjRGlyQ2FjaGVXcml0ZSk6CglGaXggZG91YmxlIGZyZWUgKHNwb3R0ZWQgYnkgQ292ZXJpdHksIENJRCAjMTk2NSkuCgoJKiBmYy1tYXRjaC9mYy1tYXRjaC5jOiAobWFpbik6CglDaGVjayBpZiBwYXR0ZXJuIGlzIG5vdCBudWxsIGJlZm9yZSB1c2luZyBpdCAoQ292ZXJpdHkgZGVmZWN0ICMxODgzKS4KCgkqIHNyYy9mY2NhY2hlLmM6IChGY0RpckNhY2hlV3JpdGUpOgoJRml4IG1lbW9yeSBsZWFrIHdpdGggaGFzaCBjb2xsaXNpb24gKENvdmVyaXR5IGRlZmVjdCAjMTgyOSkuCgoJKiBzcmMvZmNjZmcuYzogKEZjQ29uZmlnQnVpbGRGb250cyk6CglGaXggbWVtb3J5IGxlYWsgd2hlbiBiYWlsIGNhc2VzIChDb3Zlcml0eSBkZWZlY3QgIzE4MjgpLgoKCSogc3JjL2ZjY2FjaGUuYzogKEZjR2xvYmFsQ2FjaGVMb2FkKToKCURvbid0IGxlYWsgZGlyZWN0b3J5IG5hbWUgKENvdmVyaXR5IGRlZmVjdCAjMTgyNykuCgoyMDA2LTA0LTA3ICBEb21pbmljIExhY2hvd2ljeiAgPGNpbmFtb2RAaG90bWFpbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKCSogZmMtY2F0L01ha2VmaWxlLmFtOgoJKiBmYy1saXN0L01ha2VmaWxlLmFtOgoJKiBmYy1tYXRjaC9NYWtlZmlsZS5hbToKCglMRF9BREQgbWlzc2luZyBkZXBlbmRlbmNpZXMgZm9yIGJpbmFyaWVzLiAgUmVwb3J0ZWQgYnkKCUVkc29uIEFsdmVzIFBlcmVpcmEuCgoyMDA2LTA0LTA3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjaW50Lmg6CgkqIGZjLWxhbmcvZmMtbGFuZy5jIChtYWluKToKCglTR0kgY29tcGlsYXRpb24gZml4ZXMgKHJlcG9ydGVkIGJ5IENocmlzdG9waCBCYXVlcik6CgkxKSByZW9yZGVyIHVuaW9uIGRlZmluaXRpb24gb2YgX0ZjQ2hhcjsKCTIpIG9taXQgLnN0YXRzID0uCgoyMDA2LTA0LTA3ICBEb21pbmljIExhY2hvd2ljeiAgPGNpbmFtb2RAaG90bWFpbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJKiBjb25maWd1cmUuaW46CgkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0TmVlZGVkQnl0ZXMpOgoJKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXROZWVkZWRCeXRlcyk6CgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNsYW5nLmMgKEZjTGFuZ1NldE5lZWRlZEJ5dGVzQWxpZ24pOgoJKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0TmVlZGVkQnl0ZXNBbGlnbik6CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5OZWVkZWRCeXRlc0FsaWduLCAKCQkgICAgICAgRmNWYWx1ZUxpc3ROZWVkZWRCeXRlc0FsaWduLCBGY1N0ck5lZWRlZEJ5dGVzQWxpZ24pOgoKCVBvcnRhYmlsaXR5IGZpeGVzIGZvciBIUC1VWCAocmVwb3J0ZWQgYnkgQ2hyaXN0b3BoIEJhdWVyKS4KCVJlcGxhY2UgJ19faW5saW5lX18nIGJ5IEFDX0NfSU5MSU5FIGFuZCAnaW5saW5lJy4KCVJlcGxhY2UgJ19fYWxpZ25vZl9fJyBieSAnZmNfYWxpZ25vZicuCgoyMDA2LTA0LTA3ICBEb21pbmljIExhY2hvd2ljeiAgPGNpbmFtb2RAaG90bWFpbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJKiBzcmMvZmNpbnQuaDoKCglNb3ZlIHVwICNpbmNsdWRlIG9mIGNvbmZpZy5oLgoJRmFpbCBpZiBuZWl0aGVyIGludHR5cGVzLmggbm9yIHN0ZGludC5oIGlzIGF2YWlsYWJsZS4KCUZpeGVzIGJ1ZyA2MTcxLgoKMjAwNi0wNC0wNyAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgoJICAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBjb25maWd1cmUuaW46CgkqIGZjLWNhY2hlL2ZjLWNhY2hlLmM6CgkqIGZjLWNhdC9mYy1jYXQuYzoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVNhdmUsIEZjQ2FjaGVOZXh0T2Zmc2V0LCAKCQkJIEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlUHJvZHVjZSwgCgkJCSBGY0RpckNhY2hlV3JpdGUsIEZjQ2FjaGVNYWNoaW5lU2lnbmF0dXJlKToKCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZVF1ZXJ5KToKCSogc3JjL2ZvbnRjb25maWcuZGVmLmluOgoKCU1ha2UgZm9udGNvbmZpZyBjb21waWxlIHVuZGVyIE1pbkdXOiAKCTEpIHJlbW92ZSB1bm5lZWRlZCAjaW5jbHVkZXM7CgkyKSBtYWtlIHVzZSBvZiBtbWFwIGFuZCBzeXNjb25mIGNvbmRpdGlvbmFsOwoJMykgcmVwbGFjZSByYW5kX3IgYnkgc3JhbmQvcmFuZCBpZiBuZWVkZWQ7Cgk0KSB1c2UgY2hzaXplIGluc3RlYWQgb2YgZnRydW5jYXRlOyBhbmQKCTUpIHVwZGF0ZSBsaWJ0b29sIGV4cG9ydHMgZmlsZQoKMjAwNi0wNC0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcpOgoKCUVsaW1pbmF0ZSB3YXJuaW5nLgoKMjAwNi0wNC0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZjLW1hdGNoLy5jdnNpZ25vcmU6CgkqIGZjLW1hdGNoL01ha2VmaWxlLmFtOgoJKiBmYy1tYXRjaC9mYy1tYXRjaC5zZ21sOgoKCVVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBmYy1tYXRjaCAoU0dNTC1pemUgaXQpLgoJKHJlcG9ydGVkIGJ5IElseWEgS29uc3RhbnRpbm92KQoKMjAwNi0wNC0wNiAgRGllZ28gUGV0dGVu8iAgPGZsYW1lZXllc0BnZW50b28ub3JnPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCSogc3JjL2ZjZGVmYXVsdC5jOgoJKiBzcmMvZmNwYXQuYzoKCSogc3JjL2ZjeG1sLmM6CgoJUmVkdWNlIGFtb3VudCBvZiBkaXJ0eSByc3MgYnkgY29uc3QnaW5nIHNvbWUgZGF0YSBzdHJ1Y3R1cmVzLgoKMjAwNi0wNC0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgoKCURvbid0IGZhaWwgaWYgd2UgY2FuJ3QgY3JlYXRlIG9yIHJlbW92ZSAKCSQocGtnY2FjaGVkaXIpIGkuZS4gL3Zhci9jYWNoZS9mb250Y29uZmlnLgoJKHJlcG9ydGVkIGJ5IFF1YW5haCBHaWJzb24tTW91bnQpLgoKMjAwNi0wNC0wNiAgS2phcnRhbiBNYXJhYXMgIDxrbWFyYWFzQGdub21lLm9yZz4KCXJldmlld2VkIGJ5OiBwbGFtCgkqIGZjLWNhc2UvZmMtY2FzZS5jOgoJKiBmYy1nbHlwaG5hbWUvZmMtZ2x5cGhuYW1lLmM6CgkqIGZjLWxhbmcvZmMtbGFuZy5jIChtYWluKToKCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVNhdmUsIEZjQ2FjaGVTa2lwVG9BcmNoLCAKCQkJIEZjRGlyQ2FjaGVXcml0ZSk6CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6CgkqIHNyYy9mY2xhbmcuYyAoRmNGcmVlVHlwZUxhbmdTZXQpOgoJKiBzcmMvZmN4bWwuYzoKCglGaXggaW50ZWwgY29tcGlsZXIgd2FybmluZ3M6IG1ha2UgbWFueSB2YXJpYWJsZXMgc3RhdGljLAoJZWxpbWluYXRlIGR1cGxpY2F0ZSBuYW1lcywgcmVkdWNlIHZhcmlhYmxlIHNjb3BlcywgdW5zaWduZWQvc2lnbmVkCglwcmludGYgZm9ybWF0dGluZy4KCjIwMDYtMDMtMjQgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjQ2FjaGVTa2lwVG9BcmNoKToKCglGaXggbXVsdGlhcmNoIHN1cHBvcnQgKGRvbid0IGRlc3Ryb3kgbXVsdGlhcmNoIGZpbGVzISkKCjIwMDYtMDMtMjQgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBjb25maWd1cmUuaW46CgoJUmVxdWlyZSBwa2ctY29uZmlnLiAgKFRoYW5rcyBCZWhkYWQ7IAoJYmV0dGVyIHNvbHV0aW9uIHdhbnRlZCBmb3IgbGlieG1sMiBkZXRlY3Rpb24hKQoKMjAwNi0wMy0yMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2F0b21pYy5jOgoKCU9uIFdpbmRvd3MsIHVubGluayBiZWZvcmUgcmVuYW1lLiAgUmVwb3J0ZWQgYnkgVGltIEV2YW5zLgoKMjAwNi0wMy0xNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZjLWxhbmcvYWIub3J0aDoKCSogZmMtbGFuZy9pYm8ub3J0aDoKCglGaXggdHlwb3MgaW4gb3J0aCBmaWxlcy4gIFJlcG9ydGVkIGJ5IERlbmlzIEphY3F1ZXJ5ZS4KCjIwMDYtMDMtMDggIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlnL2NvbmZpZy5ndWVzczoKCSogY29uZmlnL2NvbmZpZy5zdWI6CgoJRml4IE1ha2VmaWxlLmFtIGZvciByZW1vdmFsIG9mIGRlYmlhbi8gZGlyZWN0b3J5LgoKMjAwNi0wMy0wOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIC5jdnNpZ25vcmUKCglJZ25vcmUgZGViaWFuLyBkaXJlY3RvcnkgZm9yIENWUy4KCjIwMDYtMDMtMDggIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBkZWJpYW4vKgoKCU5vdyByZW1vdmUgZGViaWFuLyBkaXJlY3RvcnkuCgoyMDA2LTAzLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZGViaWFuL3BvLyoKCglSZW1vdmUgZGViaWFuLyBkaXJlY3RvcnkgZnJvbSBzb3VyY2VzLiAgU2VlIERlYmlhbidzIHN1YnZlcnNpb24KCXNlcnZlciBhdCBzdm46Ly9zdm4uZGViaWFuLm9yZy9wa2ctZnJlZWRlc2t0b3AvdHJ1bmsvZm9udGNvbmZpZwoJaW5zdGVhZC4KCjIwMDYtMDMtMDggIERlbmlzIEphY3F1ZXJ5ZSAgPG1veW9nb0BnbWFpbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtbGFuZy9sbi5vcnRoOgoJKiBmYy1sYW5nL2lzbzYzOS0xLCBmYy1sYW5nL2lzbzYzOS0yOgoKCUFkZCBvcnRob2dyYXBoeSBmb3IgTGluZ2FsYS4KCQoyMDA2LTAzLTA4ICBDYXJsIFdvcnRoICA8Y3dvcnRoQGN3b3J0aC5vcmc+CglyZXZpZXdlZCBieToga2VpdGhwCgoJKiBjb25mLmQvTWFrZWZpbGUuYW06CgkqIGNvbmYuZC8xMExvaGl0R3VqYXJhdGkuY29uZjogCgoJQWRkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgZGlzYWJsZXMgaGludGluZyBmb3IgdGhlIExvaGl0CglHdWphcmF0aSBmb250IChzaW5jZSB0aGUgaGludGluZyBkaXN0b3J0IHNvbWUgZ2x5cGhzIHF1aXRlIGJhZGx5KS4KCjIwMDYtMDMtMDggIEVnbW9udCBLb2JsaW5nZXIgIDxlZ21vbnRAdWh1bGludXguaHU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6CgoJU29ydCBkaXJlY3RvcnkgZW50cmllcyB3aGlsZSBzY2FubmluZyB0aGVtIGZyb20gZGlzazsKCXByZXZlbnRzIEhlaXNlbmJ1Z3MgZHVlIHRvIGZpbGUgb3JkZXJpbmcgaW4gYSBkaXJlY3RvcnkuCgoyMDA2LTAzLTA3ICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjZnJlZXR5cGUuYyAoR2V0U2NyaXB0VGFncyk6CgkqIHNyYy9mdGdsdWUuYywgc3JjL2Z0Z2x1ZS5oOgoKCVJlbW92ZSBzdHVmZiB3ZSBkb24ndCB1c2UsIG1ha2UgZ2V0X3tjaGFyLHNob3J0LGxvbmd9IGZ1bmN0aW9ucwoJb2YgZnRnbHVlIG1hY3JvcyB0byBiZSBpbmxpbmVkLgoJCgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0U2VyaWFsaXplKToKCglDb2RlIGNsZWFudXBzIChleGNlc3MgcHJvdG90eXBlLCBvbGQtc3R5bGUgZnVuY3Rpb24gZGVmaW5pdGlvbikuCgoyMDA2LTAzLTA1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkdldFN0cmluZyk6CgoJQmVjYXVzZSB3ZSBoYWNrZWQgRmNQYXR0ZXJuR2V0LCB3ZSBkb24ndCByZWFsbHkgbmVlZCB0byBleHBhbmQgdGhlCglmaWxlbmFtZSBhZ2FpbiBpbiBGY1BhdHRlcm5HZXRTdHJpbmcuCgoyMDA2LTAzLTA1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkdldFN0cmluZywgRmNQYXR0ZXJuR2V0KToKCglPaywgc28gc29tZSBwZW9wbGUgKHdpbmUhKSB1c2UgRmNQYXR0ZXJuR2V0IHRvIGZldGNoIEZDX0ZJTEUuCglNYWtlIHRoYXQgd29yay4gIFJlcG9ydGVkIGJ5IEJlcm5oYXJkIFJvc2Vua3JhZW56ZXIuCgoyMDA2LTAzLTAzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjaW50Lmg6CgoJSW5jbHVkZSBpbnR0eXBlcy5oIGluc3RlYWQgb2Ygc3RkaW50LmggaWYgYXBwcm9wcmlhdGUuCgoyMDA2LTAzLTAzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2F0L2ZjLWNhdC5jIChGY0ZpbGVJc0Rpcik6CgkqIGZjLWdseXBobmFtZS9mYy1mbHlwaG5hbWUuYzoKCglNb3JlIHN0dWIgZGVmaW5pdGlvbnMgYW5kIHJlbW92ZSBGY0ZpbGVJc0RpciBmcm9tIGZjLWNhdC4KCjIwMDYtMDMtMDMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYXNlL2ZjLWNhc2UuYzoKCglGaXggY29tcGlsYXRpb24gb24gQUlYIHdpdGggc3R1YiBkZWZpbml0aW9ucyAoYnVnIDYwOTcpLgoKMjAwNi0wMy0wMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVTa2lwVG9BcmNoLCBGY0RpckNhY2hlUHJvZHVjZSk6CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEdldFNjcmlwdFRhZ3MpOgoJKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXREaXN0cmlidXRlQnl0ZXMpOgoJKiBzcmMvZmNwYXQuYyAoRmNWYWx1ZUxpc3RFbnRDcmVhdGUsIEZjVmFsdWVMaXN0TmVlZGVkQnl0ZXMpOgoKCUdldCByaWQgb2YgQysrLXN0eWxlIGNvbW1lbnRzLgoKMjAwNi0wMy0wMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGRlYmlhbi9jaGFuZ2Vsb2cKCglFbmFibGUgY3JlYXRpb24gb2YgMi4zLjk0IERlYmlhbiBwYWNrYWdlcy4KCjIwMDYtMDMtMDIgIEVnbW9udCBLb2JsaW5nZXIgIDxlZ21vbnRAdWh1bGludXguaHU+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY2xhbmcuYyAoRmNDaGFyU2V0Rm9yTGFuZyk6CgoJRml4IHN1c3BpY2lvdXMgcmV0dXJuIGV4cHJlc3Npb24gd2hpY2ggY2F1c2VzIGp1bmsgCgl0byBiZSByZXR1cm5lZC4KCjIwMDYtMDItMjQgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgoJKiBDaGFuZ2VMb2c6CgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCglCdW1wIHZlcnNpb24gdG8gMi4zLjk0LgoKMjAwNi0wMi0yNCAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+CgkqIE1ha2VmaWxlLmFtOgoKCUZpeCBwbGFjZW1lbnQgb2YgQHMuCgoyMDA2LTAyLTI0ICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KCSogY29uZi5kLzEwLWZvbnRzLXBlcnNpYW4uY29uZjoKCglSZW1vdmUgdW5jb25kaXRpb25hbCBlbWJvbGRlbmluZyAocGVyIEJlaGRhZCdzIGluc3RydWN0aW9ucykuCgoJKiBNYWtlZmlsZS5hbToKCglBZGQgQHMgdG8gaGlkZSBzb21lIGVjaG9zLgoKMjAwNi0wMi0yNCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CgkgICAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogc3JjL2ZjZnJlZXR5cGUuYyAoR2V0U2NyaXB0VGFncyk6CgoJRml4IGRvdWJsZS1mcmVlIG9uIGVycm9yIGNhc2UuCgoyMDA2LTAyLTIxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtbGFuZy9mYy1sYW5nLmMgKHNjYW4pOgoKCVN0cmlwIFxyIGFuZCB3aGl0ZXNwYWNlIGZyb20gaW5wdXQ7IGZpeGVzIGJ1ZyAzNDU0LgoKMjAwNi0wMi0yMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZjLWxhbmcvZmMtbGFuZy5jIChtYWluKToKCglBbGxvY2F0ZSBsYXJnZSBhcnJheXMgc3RhdGljYWxseSBpbiBmYy1sYW5nIHRvIGZpeCBjcmFzaGVzIHVuZGVyCglNaW5HVy9NU1lTLgoKMjAwNi0wMi0yMSAgRGllZ28gUGV0dGVuICA8ZmxhbWVleWVzQGdlbnRvby5vcmc+CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVDaGFySW5kZXgpOgoKCVBhc3MgdGhlIGJ1Y2s7IG1ha2UgZm9udGNvbmZpZyBub3QgY3Jhc2ggb24gcGFuZ28gYmFkbmVzcy4KCjIwMDYtMDItMjEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBjb25mLmQvMTAtZm9udHMtcGVyc2lhbi5jb25mOgoKCVVzZSBlbWJlZGRlZGJpdG1hcCByYXRoZXIgdGhhbiByaF9wcmVmZXJfYml0bWFwLgoKMjAwNi0wMi0yMSAgUGF1bCBDb3JuZXR0ICA8cGF1bGNvcjFAYnVsbHNleWUuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVXcml0ZSk6CgkqIHNyYy9mY2Rpci5jIChGY0ZpbGVTY2FuQ29uZmlnKToKCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNTdHJpbmdJblBhdHRlcm5FbGVtZW50KToKCSogc3JjL2ZjeG1sLmMgKEZjUGFyc2VGYW1pbGllcyk6CgkqIHNyYy9mdGdsdWUuYyAoZnRnbHVlX2ZhY2VfZ290b190YWJsZSk6CgoJRWxpbWluYXRlIHJlZHVuZGFuY2llcy4KCjIwMDYtMDItMjEgIEtqYXJ0YW4gTWFyYWFzICA8a21hcmFhc0Bnbm9tZS5vcmc+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtbGlzdC9mYy1saXN0LmMgKG1haW4pOgoJKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlQ2hhclNldEFuZFNwYWNpbmcpOgoJKiBzcmMvZmNzdHIuYyAoRmNTdHJTdHIpOgoJKiBzcmMvZmN4bWwuYyAoRmNDb25maWdTYXZlQXR0cik6CgoJRWxpbWluYXRlIHVudXNlZCB2YXJzIHJlcG9ydGVkIGJ5IEludGVsJ3MgY29tcGlsZXIuCgoyMDA2LTAyLTIxICBBaWV0IEtvbGtoaSAgPGFpZXRrb2xraGlAZ21haWwuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGZjLWxhbmcva2Eub3J0aDoKCglSZW1vdmUgb25lIG1vcmUgYXJjaGFpYyBjaGFyYWN0ZXIuCgoyMDA2LTAyLTIxICBSb3NzIEJ1cnRvbiAgPHJvc3NAYnVydG9uaW5pLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtLCBrZWl0aHAKCgkqIHNyYy9mY3htbC5jIChGY1BhcnNlUGF0ZWx0KToKCglGcmVlemUgcGF0dGVybnMgY3JlYXRlZCBieSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRpbnkgCgltZW1vcnkgc2F2aW5ncyAoZXZlcnkgbGl0dGxlIGJpdCBoZWxwcykuCgoyMDA2LTAyLTIxICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogZmMtY2F0L2ZjLWNhdC5jIChtYWluKToKCglJbml0aWFsaXplIGZvbnRjb25maWcgbGlicmFyeSBpbiBmYy1jYXQgdG8gYXZvaWQgc2VnZmF1bHQuCgoyMDA2LTAyLTE4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgoJKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZERpcnMpOgoJKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKCglGaXggdGhlIHVuZGVybHlpbmcgY2F1c2Ugb2YgdGhlIGJlbG93IHNlZ2ZhdWx0IChtdXN0IHVzdWFsbHkKCWNhbGwgRmNEaXJDYWNoZUhhc0N1cnJlbnRBcmNoIGFmdGVyIEZjRGlyQ2FjaGVWYWxpZCkuCgkKMjAwNi0wMi0xOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6CgoJRml4IHRyaWdnZXJpbmcgb2Ygc2VnZmF1bHQgY2F1c2VkIGJ5IG1pc3JlYWRpbmcgY2FjaGUgZmlsZXMKCShyZXBvcnRlZCBieSBmY3JvemF0KS4KCjIwMDYtMDItMTcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNpbnQuaCAgKEZDX0NBQ0hFX01BR0lDKToKCglCdW1wIHVwIG1hZ2ljIHZlcnNpb247IHdlIGNoYW5nZWQgdGhlIGJpbmFyeSBmb3JtYXQuCgoyMDA2LTAyLTE3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2F0L2ZjLWNhdC5jIChtYWluKToKCglFbmFibGUgZmMtY2F0IHRvIHByaW50IG91dCBvbGQtc3R5bGUgY2FjaGUgaW5mbyB3aGVuIGdpdmVuIGEKCWRpcmVjdG9yeSBuYW1lLgoKMjAwNi0wMi0xNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6CgoJRGVhbCBjb3JyZWN0bHkgd2l0aCBjaGFuZ2luZyBGQ19DQUNIRV9NQUdJQy4KCjIwMDYtMDItMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jICh1c2FnZSwgc2NhbkRpcnMsIG1haW4pOgoKCUFkZCAtciAtLXJlYWxseS1mb3JjZSBvcHRpb24gd2hpY2ggYmxvd3MgYXdheSBjYWNoZSBmaWxlcyBhbmQgdGhlbgoJcmVnZW5lcmF0ZXMgdGhlbS4KCjIwMDYtMDItMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rLCBGY0NhY2hlQ29weU9sZCwgRmNEaXJDYWNoZVdyaXRlKToKCglEb24ndCBiYWlsIGlmIGZvbnRjb25maWcgY2FuJ3QgcmVtb3ZlIGEgZGlyIGNhY2hlIGZpbGUuCglTa2lwIHRoZSBJRCBvZiBhIGNhY2hlIGZpbGUgd2hlbiBjb3B5aW5nLgoJRWxpbWluYXRlICdzb3VyY2UgZmlsZSB0b28gc21hbGwnIGJ1ZyBpbiBGY0RpckNhY2hlV3JpdGUuCgoyMDA2LTAyLTEzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZVF1ZXJ5KToKCglGaXggbWVtb3J5IGxlYWsgaW4gZXJyb3IgY29uZGl0aW9uIGNvZGUuCgoyMDA2LTAyLTEzICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6CgoJU2tpcCBiaXRtYXAgZm9udHMgd2hpY2ggY2FuJ3QgZXZlbiBnZXQgaXQgdG9nZXRoZXIgZW5vdWdoIHRvCglkZWNsYXJlIGEgZmFtaWx5IG5hbWU7IHRoaXMgYXBwZWFycyB0byByZXByb2R1Y2UgcHJldmlvdXMKCWZvbnRjb25maWcgYmVoYXZpb3VyLgoKMjAwNi0wMi0xMCAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVPcGVuKToKCglUcnkgdG8gb3BlbiAvdmFyL2NhY2hlL2ZvbnRjb25maWcvW2hhc2hlZCBuYW1lXSBiZWZvcmUKCWZvbnRzLmNhY2hlLTIgaW4gYSBkaXJlY3RvcnksIGJlY2F1c2UgL3Zhci9jYWNoZS9mb250Y29uZmlnCglmYWlsdXJlcyBvdWdodCB0byBiZSBmaXhhYmxlLCB1bmxpa2UgZm9udHMuY2FjaGUtMiBmYWlsdXJlcywKCXdoaWNoIG1heSBsZWF2ZSB5b3Ugc2NyZXdlZC4KCjIwMDYtMDItMTAgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoJKiBzcmMvZmNtYXRjaC5jIChGY0ZvbnRTZXRNYXRjaCk6CgoJVXNlIGEgdHJpLXN0YXRlIHRvIG1hcmsgdGhlIGZvbnRzIHdoaWNoIGRpZG4ndCBnZXQgYmxvY2tlZCBidXQKCXdlcmUganVzdCBtaXNzaW5nIGFuIGVsZW1lbnQsIHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSB0aGUKCWZvbnRzIHRoYXQgZG8gbWF0Y2ggdGhlIGVsZW1lbnQuCgoyMDA2LTAyLTEwICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250U2V0TWF0Y2gpOgoKCURvbid0IGtpbGwgZm9udHMgYmVjYXVzZSB0aGV5IGRvbid0IGRlY2xhcmUgYW4gZWxlbWVudCB0aGF0J3MKCWJlaW5nIG1hdGNoZWQgb24uCgoyMDA2LTAyLTA5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjR2xvYmFsQ2FjaGVTYXZlLAoJCQkgRmNEaXJDYWNoZVVubGluaywgRmNEaXJDYWNoZU9wZW4sIEZjRGlyQ2FjaGVXcml0ZSk6CgoJRGVmaW5lIGFuZCBwYXNzIE9fQklOQVJZIHRvIG9wZW4gaWYgYXBwcm9wcmlhdGUsIGZvciB0aG9zZQoJcGxhdGZvcm1zIHRoYXQgbmVlZCBpdC4gIFJlcG9ydGVkIGJ5IERvb2RsZS4KCjIwMDYtMDItMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldE5lZWRlZEJ5dGVzLCBGY0NoYXJTZXRTZXJpYWxpemUsIAoJCQkgICBGY0NoYXJTZXRHZXRMZWFmKToKCglGaXggcHJvYmxlbSB3aXRoIG1pc3NpbmcgJ2VuJyBkdWUgdG8gZXVyby5wYXRjaDogY2hhbmdlCgljYWNoZSBmaWxlIGZvcm1hdCBzbGlnaHRseSB0byBjb2luY2lkZSB3aXRoIHRoYXQgZ2VuZXJhdGVkCglieSBmYy1sYW5nLgoKMjAwNi0wMi0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkRGlycyk6CgoJRml4IHdhcm5pbmcuCgoyMDA2LTAyLTA3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6CgoJRG9uJ3QgcmVqZWN0IGRpcnMgdGhhdCBjYW4ndCBiZSBub3JtYWxpemVkIChmaXhlcyBsaWx5cG9uZCwgYW5kCglpcyBjb3JyZWN0IGluIHRoZSBjb250ZXh0IG9mIGFwcGxpY2F0aW9uIGZvbnQgZGlyZWN0b3JpZXMuKQoKMjAwNi0wMi0wNyAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZERpcnMpOgoKCVVzZSBub3JtYWxpemVkIGRpcmVjdG9yeSBuYW1lIGV4Y2x1c2l2ZWx5IGluIEZjQ2FjaGVSZWFkRGlycy4KCjIwMDYtMDItMDcgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY3BhdC5jIChGY1ZhbHVlSGFzaCwgRmNWYWx1ZUxpc3RIYXNoLCBGY1ZhbHVlTGlzdEVudENyZWF0ZSk6IAoKCVBlcmYgb3B0aW1pemF0aW9ucy4gIElubGluZSBGY1ZhbHVlQ2Fub25pY2FsaXplLCAKCXJlZHVjZSBGY1ZhbHVlTGlzdFB0clUgdXNhZ2UsIHJlbW92ZSByZWR1bmRhbnQgY2FzdC4KCjIwMDYtMDItMDcgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2hhcnNldC5jIChGY0xhbmdDaGFyU2V0UG9wdWxhdGUsIEZjQ2hhclNldEluc2VydExlYWYpCgkqIGZjLWxhbmcvZmMtbGFuZy5jOgoKCUZpeCBtaXNzaW5nIEZjQ2FjaGVCYW5rVG9JbmRleCBpbiBGY0NoYXJTZXRJbnNlcnRMZWFmLgoJRGVjbGFyZSBleHRlcm4gZm9yIHN0YXRpYyBhcnJheXMgYXMgYXJyYXlzLCBub3QgcG9pbnRlcnMuCgkoUGFydCBvZiB0aGUgZml4IGZvciAnZm9udHMgZG9uJ3QgaGF2ZSBlbicgaXNzdWUgYWZ0ZXIgRXVybyBwYXRjaC4pCgoyMDA2LTAyLTA3ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBmYy1sYW5nL2RlLm9ydGg6CgkqIGZjLWxhbmcvZWwub3J0aDoKCSogZmMtbGFuZy9lbi5vcnRoOgoJKiBmYy1sYW5nL2VzLm9ydGg6CgkqIGZjLWxhbmcvZmkub3J0aDoKCSogZmMtbGFuZy9mci5vcnRoOgoJKiBmYy1sYW5nL2l0Lm9ydGg6CgkqIGZjLWxhbmcvbmwub3J0aDoKCSogZmMtbGFuZy9wdC5vcnRoOgoKCUFkZCBFdXJvIHNpZ24gdG8gbGlzdCBvZiBzeW1ib2xzIHJlcXVpcmVkIGJ5IEV1cm9wZWFuIGxhbmd1YWdlcy4KCjIwMDYtMDItMDcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZFN0cmluZyk6CgoJRml4IGhpZGRlbiB2YXJpYWJsZSB3YXJuaW5nLgoKMjAwNi0wMi0wNyAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKICAgICAgICAqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkU3RyaW5nLCBGY0NhY2hlU2tpcFN0cmluZyk6CgkKICAgICAgICBSZW1vdmUgZGUtZXNjYXBpbmcgbG9naWMgYmVjYXVzZSBGY0NhY2hlV3JpdGVTdHJpbmcKICAgICAgICBkb2Vzbid0IGVzY2FwZSBhbnl3YXkuIERvIGJsb2Nrd2lzZSByZWFkaW5nIGluc3RlYWQKICAgICAgICBvZiBieXRlLXdpc2UgZm9yIHBlcmZvcm1hbmNlLgoKMjAwNi0wMi0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkgICAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KCgkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkRGlycywgRmNDYWNoZVJlYWQpOgoKCURvbid0IGxvb3AgaW5maW5pdGVseSBvbiByZWN1cnNpdmUgc3ltbGlua3MgKGNsaWVudC1zaWRlKS4KCjIwMDYtMDItMDYgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycywgbWFpbik6CgoJRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IG9uIHJlY3Vyc2l2ZSBzeW1saW5rcy4KCjIwMDYtMDItMDYgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCwgRmNHbG9iYWxDYWNoZVJlYWREaXIsCgkJCSBGY0dsb2JhbENhY2hlRGlyRmluZCwgRmNHbG9iYWxDYWNoZVVwZGF0ZSwKCQkJIEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0NhY2hlUmVhZERpcnMpOgoJKiBzcmMvZmNpbnQuaDoKCglTa2lwIHN1YmRpcnMgd2hlbiBza2lwcGluZyBvdmVyIHN0YWxlIGJpdHMgb2YgZ2xvYmFsIGNhY2hlLgoJSW50cm9kdWNlIHN0YXRlIG1hY2hpbmUgaW50byBGY0dsb2JhbENhY2hlRGlyIHRvIGF2b2lkCglkb2luZyBpbmFwcHJvcHJpYXRlIG9wZXJhdGlvbnMgb24gZ2xvYmFsIGRpciBlbnRyaWVzLCBlLmcuCgl3cml0aW5nIG91dCBhbiBvdXQtb2YtZGF0ZSBjYWNoZSBlbnRyeS4KCQoyMDA2LTAyLTA2ICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCSogc3JjL2ZjZGlyLmMgKEZjRmlsZVNjYW5Db25maWcpOgoKCUhvaXN0IEZjRmlsZUlzRGlyIGNoZWNrIG91dCBvZiBGY0ZpbGVTY2FuQ29uZmlnIGxvb3AuCgoyMDA2LTAyLTA2ICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0lub2RlTWF0Y2hGb250RGlyLCBGY0NvbmZpZ0FkZEZvbnREaXIsCgkJICAgICAgIEZjQ29uZmlnQWRkRm9udERpclN1YmRpcnMsIEZjQ29uZmlnTm9ybWFsaXplRm9udERpcik6CgoJRG9uJ3QgcmVzY2FuIHdoZW4gdHJ5aW5nIHRvIG5vcm1hbGl6ZSBhIG5vbi1kZWNsYXJlZCBmb250IGRpci4KCURvbid0IGFkZCBmb250IGRpcnMgbXVsdGlwbGUgdGltZXMgKGV2ZW4gaWYgdGhleSdyZSBhbGlhc2VkKS4KCjIwMDYtMDItMDYgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjZnMuYyAoRmNGb250U2V0VW5zZXJpYWxpemUpOgoKCUV4cGxhaW4gYXBwbGVzL29yYW5nZXMgY29tcGFyaXNvbiBhbmQgZml4IGNvbXBpbGF0aW9uIGVycm9yLgoKMjAwNi0wMi0wNiAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXRVbnNlcmlhbGl6ZSk6CgoJSW5zZXJ0IGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGluICMgb2YgZm9udHMuCgoyMDA2LTAyLTA0ICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZG9jL01ha2VmaWxlLmFtOgoJKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKCSogZmMtY2F0L01ha2VmaWxlLmFtOiAKCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKCglNYWtlICdtYWtlIGRpc3RjaGVjaycgd29yayB3aXRoIGF1dG9tYWtlIDEuNi4zLgoJCjIwMDYtMDItMDMgIFRha2FzaGkgSVdBSSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlR2xvYmFsRmlsZVJlYWRBbmRQcmludCwgbWFpbiwKCQkJICAgRmNDYWNoZUZpbGVSZWFkKToKCgkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkLCBGY0dsb2JhbENhY2hlU2F2ZSwgCgkJCSBGY0RpckNhY2hlQ29uc3VtZSwgRmNEaXJDYWNoZVdyaXRlKQoJKiBzcmMvZmN4bWwuYyAoRmNDb25maWdNZXNzYWdlKToKCglDaGVjayBJL08gY2FsbCByZXR1cm4gdmFsdWVzIGFuZCBlbGltaW5hdGUgdW51c2VkIHZhcmlhYmxlCgl3YXJuaW5ncy4KCjIwMDYtMDItMDMgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQXBwRm9udEFkZEZpbGUsIEZjQ29uZmlnQXBwRm9udEFkZERpcikKCglGaXggbWVtb3J5IGxlYWsuCgoyMDA2LTAyLTAzICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldFVuc2VyaWFsaXplKToKCglHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGNhY2hlIGFzc2VydHMgdGhhdCBpdAoJaGFzIGEgbmVnYXRpdmUgbnVtYmVyIG9mIGZvbnRzLCBjYXVzaW5nIG92ZXJmbG93LgoKMjAwNi0wMi0wMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVVbmxpbmspOgoKCUZpeCBkb3VibGUgZnJlZSBpbiBlcnJvciBjYXNlLgoKMjAwNi0wMS0zMSAgQmVoZGFkIEVzZmFib2QgIDxiZWhkYWRAY3MudXRvcm9udG8uZWR1PgoJICAgIFN0ZXBoYW4gS3Vsb3cgIDxjb29sb0BzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgoKCVJlcGxhY2UgJ3N0YW1wJyB0YXJnZXQgd2l0aCBta2luc3RhbGxkaXJzLgoKMjAwNi0wMS0zMSAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQpOgoKCVRvYXN0IGJyb2tlbiBnbG9iYWwgY2FjaGUgZmlsZXMuCgoyMDA2LTAxLTMwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVJlYWREaXIpOgoKCUFjdHVhbGx5IHVzZSB0aGUgZGlyZWN0b3JpZXMgdGhhdCBJIGFkZGVkIHRvIHRoZSBnbG9iYWwgY2FjaGUuCglGaXhlcyAnbWFrZSBjaGVjaycuCgoyMDA2LTAxLTMwICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgoKCURvbid0IHN0b3Agc2Nhbm5pbmcgaWYgYSBkaXJlY3RvcnkgaW4gZm9udHMuY29uZiBkb2Vzbid0CglleGlzdCwgYmVjYXVzZSBzdWJzZXF1ZW50IGRpcmVjdG9yaWVzIG1pZ2h0IGV4aXN0LgoJCjIwMDYtMDEtMzAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6CgoJTWFrZSBnbG9iYWwgY2FjaGUgd29yayBhZ2FpbiBhZnRlciBwdXR0aW5nIGRpciBuYW1lcyBpbnRvIGdsb2JhbAoJY2FjaGUgKEkgbWlzcGxhY2VkIHRoZSByZWNvcmRpbmcgb2YgYSBmaWxlIG9mZnNldCkuCgoyMDA2LTAxLTMwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlR2xvYmFsRmlsZVJlYWRBbmRQcmludCk6CgkKCVVwZGF0ZSBmYy1jYXQgdG8gaGFuZGxlIHN1YmRpciBsaXN0cyBpbiBnbG9iYWwgY2FjaGUgZmlsZS4KCQoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6CgkKCUFub3RoZXIgRmNDYWNoZVJlYWRTdHJpbmcgcmV0dXJuIHZhbHVlIGNoZWNrLgoKMjAwNi0wMS0zMCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjRGlyQ2FjaGVVbmxpbmsKCQkJIEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlUmVhZCwgRmNEaXJDYWNoZVdyaXRlKToKCglNYWtlIGZjY2FjaGUgbW9yZSByZXNpbGllbnQgdG8gYnJva2VuIGNhY2hlIGZpbGVzIGJ5IGNoZWNraW5nCglyZXR1cm4gdmFsdWUgb2YgRmNDYWNoZVJlYWRTdHJpbmcgYWxsIHRoZSB0aW1lLgoKMjAwNi0wMS0zMCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtbWF0Y2gvZmMtbWF0Y2guMToKCSogZmMtbGFuZy9mYy1sYW5nLm1hbjoKCglSZW1vdmUgcmVmZXJlbmNlcyB0byBkZWFkIGZvbnRjb25maWcoMykgbWFucGFnZXMgaW4KCW90aGVyIGZvbnRjb25maWcgbWFucGFnZXMuCgoyMDA2LTAxLTI5ICBCZWhkYWQgRXNmYWJvZCAgPGJlaGRhZEBjcy51dG9yb250by5lZHU+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIGRvYy9mY3BhdHRlcm4uZm5jczoKCglGaXggd29ybGQncyB0aW5pZXN0IHR5cG8gaW4gY29kZSBleGFtcGxlLgoKMjAwNi0wMS0yOSAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVJlYWREaXIpOgoKCUZpeCBnbG9iYWwgY2FjaGUgcmVhZHMgb2Ygc3ViZGlyZWN0b3JpZXMuCgoyMDA2LTAxLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZG9jL2ZjY29uZmlnLmZuY3M6CglBZGQgZG9jdW1lbnRhdGlvbiBmb3IgRmNDb25maWdOb3JtYWxpemVGb250RGlyLgoKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZURpckRlc3Ryb3ksIEZjR2xvYmFsQ2FjaGVMb2FkLAoJCQkgRmNHbG9iYWxDYWNoZVVwZGF0ZSwgRmNHbG9iYWxDYWNoZVNhdmUpOgoJKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKCSogc3JjL2ZjaW50Lmg6CgoJV3JpdGUgZGlyZWN0b3J5IGluZm9ybWF0aW9uIHRvIGdsb2JhbCBjYWNoZXMgdG8gZml4IG1ha2UgY2hlY2sKCShyZXBvcnRlZCBieSBSb25ueSBWLiBWaW5kZW5lcykuICBUaGlzIGNoYW5nZXMgdGhlIGdsb2JhbCBjYWNoZQoJZm9ybWF0IGFnYWluLgoJCjIwMDYtMDEtMjcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVZhbGlkLCBGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gpOgoKCU1vdmUgRmNDb25maWdOb3JtYWxpemVGb250RGlyIGNhbGwgc28gdGhhdCBpdCBkb2Vzbid0IHJlc3VsdCBpbgoJaW5maW5pdGUgcmVjdXJzaW9uIChyZXBvcnRlZCBieSBSb25ueSBWLiBWaW5kZW5lcykuCgoyMDA2LTAxLTI2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVZhbGlkLCBGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gpOgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdOb3JtYWxpemVGb250RGlyKToKCglBZGQgYSBjb3VwbGUgb2YgbWlzc2luZyBub3JtYWxpemF0aW9ucyB0byBtYWtlIGZjLWNhY2hlIHdvcmsKCXJpZ2h0OyBvbmx5IHNjYW4gc3ViZGlyZWN0b3JpZXMgb25jZS4KCjIwMDYtMDEtMjYgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNhY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVJlYWREaXIpOgoKCURvbid0IGNyYXNoIG9uIG5vbi1leGlzdGFudCBkaXJlY3RvcmllcyBpbiBnbG9iYWwgY2FjaGUuCgoyMDA2LTAxLTI2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVNhdmUsIEZjRGlyQ2FjaGVXcml0ZSk6CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0FkZEZvbnREaXJTdWJkaXJzLCBGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIpOgoJKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKCSogc3JjL2ZjeG1sLmMgKEZjRW5kRWxlbWVudCk6CgoJU3RvcCB0cmFtcGxpbmcgdGhlIGRpcmVjdG9yeSBuYW1lIHdoZW4gd3JpdGluZyBvdXQgY2FjaGVzLgoJKHdpdGggTWlrZSBGYWJpYW46KSBCZWVmIHVwIEZjQ29uZmlnTm9ybWFsaXplRm9udERpciB0byBzY2FuCglzdWJkaXJzIHdoZW4gbmVjZXNzYXJ5LiAgRG9uJ3Qgc2NhbiBkaXJlY3RvcmllcyB0aGF0IGNhbid0IGJlCglub3JtYWxpemVkLgoKMjAwNi0wMS0yNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlV3JpdGUpOgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdFdmFsdWF0ZSk6CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjUGF0dGVybkFkZFdpdGhCaW5kaW5nKToKCglGaXggYWRkaXRpb25hbCBtZW1vcnkgbGVha3MgcmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXM6IGRvbid0CglpbnZva2UgRmNWYWx1ZVNhdmUgb24gaGFzaGVkIHN0YXRpYyBzdHJpbmdzIGluCglGY1BhdHRlcm5BZGRXaXRoQmluZGluZy4gIAoKCUFkZCBhbm90aGVyIHN0X2RldiBjaGVjayBpbiBGY0RpckNhY2hlT3Blbi4KCjIwMDYtMDEtMjQgIEphbWVzIFN1ICA8amFtZXMuc3VAZ21haWwuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlSXNFeGNsdXNpdmVMYW5nKToKCSogZmMtbGFuZy96aF9oay5vcnRoOgoKCVRyZWF0IHpoLWhrIGZvbnRzIGRpZmZlcmVudGx5IGZyb20gemgtdHcgZm9udHMuICBUaGlzIHBhdGNoIG1heQoJY2F1c2UgZm9udGNvbmZpZyB0byB0cmVhdCBBLVggZm9udHMgZGlmZmVyZW50bHkgZnJvbSBBLVkgZm9udHM7CglwbGVhc2UgbWFpbCB0aGUgZm9udGNvbmZpZyBsaXN0IGlmIHRoaXMgY2F1c2VzIGFueSBwcm9ibGVtcy4KCjIwMDYtMDEtMjQgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlV3JpdGUpOgoJKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgoKCUZpeCBtZW1vcnkgbGVha3MgcmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXMuCgoyMDA2LTAxLTE5ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY3BhdC5jIChGY1N0ck5lZWRlZEJ5dGVzKToKCglGaXggZm9yIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzZXMuCgoyMDA2LTAxLTE4ICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6CgoJUHJvcGVybHkgb3JkZXIgdGhlIEZjQ29uZmlnQWRkRm9udERpciBhbmQgRmNDb25maWdOb3JtYWxpemVGb250RGlyCgljYWxscyB0byBhdm9pZCBjcmFzaGVzLgoKMjAwNi0wMS0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lKToKCglGaXggc2VnZmF1bHQgd2hlbiBjb25zdW1pbmcgemVyby1sZW5ndGggY2FjaGVzIGluIGZjLWNhdAoJKHdoaWNoIGhhcyBubyBjb25maWcsIHNvIEZjQ29uZmlnQWRkRm9udERpciBzaG91bGRuJ3QgYmUgY2FsbGVkLikKCjIwMDYtMDEtMTQgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlUmVhZERpciwgRmNHbG9iYWxDYWNoZVVwZGF0ZSwKCQkJIEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlT3Blbik6CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMsIEZjQ29uZmlnTm9ybWFsaXplRm9udERpcik6CgkqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcpOgoJKiBzcmMvZmNpbnQuaDoKCQoJQ29tcGFyZSBkZXZpY2UgbnVtYmVycyBhcyB3ZWxsIGFzIGlub2Rlcy4KCUFsd2F5cyBub3JtYWxpemUgZGlyZWN0b3J5IG5hbWVzIGJlZm9yZSBjb21wYXJpbmcgdGhlbS4KCjIwMDYtMDEtMTEgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50KToKCglBbGxvY2F0ZSBleHRyYSBzcGFjZSBmb3IgYXBwZW5kZWQgJy8nIGluIGRpcmVjdG9yeSBuYW1lLgoKMjAwNi0wMS0xMCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlT3BlbiwKCQkJIEZjRGlyQ2FjaGVWYWxpZCwgRmNEaXJDYWNoZUhhc0N1cnJlbnRBcmNoLAoJCQkgRmNEaXJDYWNoZVVubGluaywgRmNEaXJDYWNoZVJlYWQsIEZjRGlyQ2FjaGVDb25zdW1lKToKCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAobWFpbik6CgoJRXhwbGljaXRseSBhZGQgZm9udCBkaXJzIHRvIGNvbmZpZy5mb250RGlycyBldmVuIGlmIHRoZXkncmUgZW1wdHkuCglTZXQgY3VycmVudCBjb25maWcgaW4gZmMtY2FjaGUuYy4KCUZpeCB0cmVhdG1lbnQgb2YgY2FjaGUgZGlyZWN0b3J5IGFzIHJlYWQgZnJvbSBjYWNoZSBmaWxlOyBkb24ndAoJdXNlIHN0cmluZyBlcXVhbGl0eSB0byBkZXRlcm1pbmUgaWYgd2UgaGF2ZSB0aGUgcmlnaHQgZmlsZSwKCXVzZSBpbm9kZSBlcXVhbGl0eS4KCjIwMDYtMDEtMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6CgkqIGZjLWNhdC9mYy1jYXQuYyAoRmNDYWNoZUdsb2JhbEZpbGVSZWFkQW5kUHJpbnQsIEZjQ2FjaGVGaWxlUmVhZCk6CgkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVSZWFkRGlyLCBGY0NhY2hlUmVhZERpcnMsIAoJCQkgRmNEaXJDYWNoZVJlYWQsIEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlV3JpdGUpOgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdOb3JtYWxpemVGb250RGlyKToKCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6CgkqIHNyYy9mY2ludC5oOgoKCU5vcm1hbGl6ZSBmb250IGRpcnMgYnkgdXNpbmcgdGhlIGZvcm0sIGFzIGdpdmVuIGluIGZvbnRzLmNvbmYsIGFuZAoJcmVjb3JkZWQgaW4gRmNDb25maWcncyBmb250RGlycyBzdHJpbmcgc2V0LCBhcyBjYW5vbmljYWwuCgkKCUFjdHVhbGx5IHVwZGF0ZSBjb25maWcuZm9udERpcnMgYXMgZm9udCBkaXJlY3RvcmllcyBhcmUgc2Nhbm5lZC4KCjIwMDYtMDEtMDggIEphbWVzIFN1ICA8amFtZXMuc3VAZ21haWwuY29tPgoJKiBzcmMvZmNtYXRjaC5jIChGY0ZvbnRTZXRNYXRjaCk6CgoJRml4IG1hdGNoaW5nIGJ1ZyB3aGVuIG11bHRpcGxlIGVsZW1lbnRzIG1hdGNoOyBkb24ndCB1c2UKCXRoZSBzdW0gb2YgYWxsIHNjb3JlcywgYnV0IHRoZSBiZXN0IHNjb3JlLgoKCUFsc28gbW9yZSBwZXJmIG9wdHMsIGUuZy4gZXZhbHVhdGUgYmVzdCBvdmVyIGFsbCBmb250IHNldHMKCXJhdGhlciB0aGFuIG9uIGEgcGVyLXNldCBiYXNpcyAoYW5kIG90aGVyIGNoYW5nZXMpLgoKMjAwNi0wMS0wOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CiAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlQ29uc3VtZSk6CgogICAgICAgIFByb3Blcmx5IHNraXAgcGFzdCBkaXIgY2FjaGVzIHRoYXQgY29udGFpbiB6ZXJvIGZvbnRzIChhcyBvY2N1cnMKICAgICAgICBpbiBnbG9iYWwgY2FjaGVzLikgIFJlcG9ydGVkIGJ5IE1pa2UgRmFiaWFuLgoKMjAwNi0wMS0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2RiZy5jIChGY1BhdHRlcm5QcmludCk6CgoJUHJpbnQgb3V0IGZ1bGwgcGF0aG5hbWUgaW4gZmMtbWF0Y2ggLXYgYXMgd2VsbC4gIFJlcG9ydGVkIGJ5CglGcmVkZXJpYyBDcm96YXQuCgkKMjAwNi0wMS0wNiAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY25hbWUuYyAoRmNOYW1lUGFyc2UpOgoKCUZpeCBidWcgd2hlcmUgZmMtbWF0Y2ggY3Jhc2hlcyB3aGVuIGdpdmVuIF9fRFVNTVlfXyBwcm9wZXJ0eSB0bwoJbWF0Y2ggb24uCgoJKEkgYWRkZWQgdGhlIF9fRFVNTVlfXyBzdHJpbmcgdG8gZW5hYmxlIGNhbGxlcnMgb2YKCUZjT2JqZWN0VG9QdHJMb29rdXAgdG8gZGlzdGluZ3Vpc2ggYW4gZXJyb3IgcmV0dXJuIGZyb20gYQoJc3VjY2Vzc2Z1bCByZXR1cm4uIC1QTCkKCjIwMDYtMDEtMDUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBBVVRIT1JTOgoKCUFkZCBzZWxmIHRvIEFVVEhPUlMgbGlzdC4KCgkqIGZjLWNhdC9mYy1jYXQuYyAoRmNDYWNoZUdsb2JhbEZpbGVSZWFkQW5kUHJpbnQsIAoJICAgICAgICAgICAgICAgICAgIEZjQ2FjaGVGaWxlUmVhZCwgRmNDYWNoZVByaW50U2V0LCBtYWluKTogCgkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkLCBGY0dsb2JhbENhY2hlVXBkYXRlLCAKCQkJIEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0NhY2hlTmV4dE9mZnNldCwgCgkJCSBGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gsIEZjRGlyQ2FjaGVSZWFkLCAKCQkJIEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlV3JpdGUpOiAKCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY3BhdC5jIChjb21tZW50KToKCglNaW5vciBjaGFuZ2UgdG8gZ2xvYmFsIGNhY2hlIGZpbGUgZm9ybWF0IHRvIGZpeCBmYy1jYXQgYnVnCglyZXBvcnRlZCBieSBGcmVkZXJpYyBDcm96YXQsIGFuZCBidWdsZXQgd2l0aCBub3QgZ2xvYmFsbHkgY2FjaGluZwoJZGlyZWN0b3JpZXMgd2l0aCB6ZXJvIGZvbnRzIGNhY2hlZC4KCjIwMDYtMDEtMDIgIEx1Ym9zIEx1bmFrICA8bC5sdW5ha0BzdXNlLmN6PgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdFdmFsdWF0ZSk6CgoJRml4IGRvdWJsZS1mcmVlIHdoaWNoIG9jY3VycyBiZWNhdXNlIEZjVmFsdWVDYW5vbmljYWxpemUgZG9lc24ndAoJY3JlYXRlIGFuIGV4dHJhIGNvcHkgb2YgdGhlIHJldHVybmVkIHZhbHVlLCBpdCBvbmx5IGNhbm9uaWNhbGl6ZXMKCWl0LgoKMjAwNi0wMS0wMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKCglGaXggdmVyc2lvbiBvZiAuY2FjaGUgZmlsZSAoY3VycmVudGx5IDEgLT4gY3VycmVudGx5IDIpLiAgUmVwb3J0ZWQKCWJ5IEppbSBPc2Jvcm4uCgoyMDA1LTEyLTIxICBKaW5naHVhIEx1byAgPHN1bm1vb24xOTk3QGdtYWlsLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuQWRkRnVsbEZuYW1lLCBGY1BhdHRlcm5GaW5kRnVsbEZuYW1lKToKCglTaHV0IHVwIEdDQyB3YXJuaW5ncyBvbiBhbWQuCgoyMDA1LTEyLTIwICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KCSogQ2hhbmdlTG9nOgoJKiBSRUFETUU6CgkqIGNvbmZpZ3VyZS5pbjoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgoJQnVtcCB2ZXJzaW9uIHRvIDIuMy45My4KCjIwMDUtMTItMjAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjaGFyc2V0LmMgKEZjTGFuZ0NoYXJTZXRQb3B1bGF0ZSk6CgkqIHNyYy9mY2ludC5oIChGY0NhY2hlQmFua1RvSW5kZXgpOgoKCUF2b2lkIGNoZWNrIG9uIF9mY0JhbmtJZCBudWxsbmVzcyBhbmQgZml4IGNhc2Ugd2hlcmUgaXQgdXNlZCB0bwoJY3Jhc2guCgoyMDA1LTEyLTIwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjeG1sLmMgKEZjQ29uZmlnUGFyc2VBbmRMb2FkKToKCglVc2Ugb3BlbiBpbnN0ZWFkIG9mIGZvcGVuIChyZXF1ZXN0ZWQgYnkgUGhpbCBSYWNlIGZvciBTdW4pLgoKMjAwNS0xMi0yMCAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVXcml0ZSk7CgkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgoKCUZpeCBHQ0M0IHdhcm5pbmcgYW5kIE1ha2VmaWxlIGJyb2tlbm5lc3MgZm9yIC92YXIvY2FjaGUvZm9udGNvbmZpZwoJZGlyLgoKMjAwNS0xMi0yMCAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6CgoJUmVzdG9yZSBjb2RlIHRvIHNraXAgb3ZlciBQQ0YgZm9udHMgdGhhdCBoYXZlIG5vIGVuY29kZWQKCWNoYXJhY3RlcnMuCgkoV2UgZ3Vlc3MgdGhhdCBhIGZvbnQgaXMgUENGIGJ5IHByZXNlbmNlIG9mIHRoZSBQSVhFTF9TSVpFCglCREYgcHJvcGVydHkuKQoKMjAwNS0xMi0xMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlV3JpdGUpOgoKCVJlYWQgYW5kIHdyaXRlIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBhcyBhIGZhbGxiYWNrIGZvciB0aGUKCWhhc2hlZCBjYWNoZSBmaWxlIGxvY2F0aW9ucy4gIFRoaXMgaXMgbW9zdGx5IGZvciB1c2VycyB0byBiZQoJYWJsZSB0byBoYXZlIHBlci1kaXJlY3RvcnkgY2FjaGUgZmlsZXMuCgoyMDA1LTEyLTEyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgoJKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZUhhc2hOYW1lKToKCglJbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBmYy1jYWNoZSBjYW4ndCB3cml0ZSB0aGUgY2FjaGUuICBBZGQKCW1pc3Npbmcgc2xhc2guICBSZXBvcnRlZCBieSBCZWhkYWQuICBJbmNvcnBvcmF0ZSBCZWhkYWQncyBwYXRjaCB0bwoJY3JlYXRlIC92YXIvY2FjaGUvZm9udGNvbmZpZyB3aGVuIGFwcHJvcHJpYXRlLgoKMjAwNS0xMi0xMiAgQmVoZGFkIEVzZmFoYm9kICA8YmVoZGFkQGNzLnRvcm9udG8uZWR1PgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmN4bWwuYyAoRmNDb25maWdHZXRBdHRyaWJ1dGUpOgoKCUZpeCBjcmFzaCByZXBvcnRlZCBieSBGcmVkZXJpYyBDcm96YXQgd2hlbiB1c2luZyBsaWJ4bWwyLgoKMjAwNS0xMi0wOSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIElOU1RBTEw6CgkqIGNvbmZpZ3VyZS5pbjoKCSogZmMtY2FjaGUvTWFrZWZpbGUuYW06CgkqIGZjLWNhdC9NYWtlZmlsZS5hbToKCSogc3JjL01ha2VmaWxlLmFtOgoJKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50LCBGY0NhY2hlRmlsZVJlYWQpOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaCAoRkNfQ0FDSEVfU1VGRklYKToKCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZVNraXBTdHJpbmcsIEZjR2xvYmFsQ2FjaGVMb2FkLAoJCQlGY0dsb2JhbENhY2hlU2F2ZSwgRmNDYWNoZU5leHRPZmZzZXQsIEZjRGlyQ2FjaGVWYWxpZCwKCQkJRmNEaXJDYWNoZUhhc0N1cnJlbnRBcmNoLCBGY0RpckNhY2hlSGFzaE5hbWUsCgkJCUZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlUmVhZCwgRmNEaXJDYWNoZVdyaXRlKToKCglNaWdyYXRlIGNhY2hlIGZpbGVzIGZyb20gZm9udHMgZGlyZWN0b3JpZXMgdG8KCS92YXIvY2FjaGUvZm9udGNvbmZpZy4gIFRoaXMgaGVscHMgbWFrZSBmb250Y29uZmlnIEZIUy1jb21wbGlhbnQsCglidXQgcmVxdWlyZXMgdGhhdCBhbGwgY2FjaGVzIGdldCByZWJ1aWx0LgoKCUFsc28sIGF1dG9nZW4uc2ggbm93IG5lZWRzIHRoZSBhZGRpdGlvbmFsIHBhcmFtZXRlcgoJLS1sb2NhbHN0YXRlZGlyPS92YXIuCgkKMjAwNS0xMi0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5BZGRTdHJpbmcpOgoKCUJlY2F1c2Ugd2UndmUgY2hhbmdlZCBGY1BhdHRlcm5BZGRTdHJpbmcgdG8gdXNlIEZjU3RyU3RhdGljTmFtZQoJYW5kIG5vdCBGY1ZhbHVlU2F2ZSwgZXhwbGljaXRseSBoYW5kbGUgdGhlIGNhc2Ugb2YgYSBudWxsIHN0cmluZy4KCjIwMDUtMTItMDYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVQcmludFNldCwgRmNDYWNoZUdsb2JhbEZpbGVSZWFkQW5kUHJpbnQpOgoKCUZpeCB3YXJuaW5ncy4KCjIwMDUtMTItMDUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNuYW1lLmMgKEZjTmFtZUdldE9iamVjdFR5cGUpOgoKCURvbid0IGFzc2lnbiB0eXBlcyB0byB1c2VyIG9iamVjdCBuYW1lcy4KCjIwMDUtMTItMDUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNwYXQuYyAoRmNWYWx1ZURlc3Ryb3ksIEZjVmFsdWVMaXN0RGVzdHJveSwgRmNTdHJIYXNoZWQpOgoKCURvbid0IGZyZWUgc3RyaW5ncyB0aGF0IGhhdmUgYmVlbiByZXR1cm5lZCBmcm9tIEZjU3RyU3RhdGljTmFtZS4KCjIwMDUtMTItMDEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50LCBtYWluKToKCglBZGQgY29kZXBhdGggZm9yIHJlYWRpbmcgZ2xvYmFsIGNhY2hlIGZpbGVzIGFzIHdlbGwuCgoyMDA1LTEyLTAxICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogY29uZi5kLzEwLWZvbnRzLnBlcnNpYW4uY29uZjoKCSogY29uZi5kL01ha2VmaWxlLmFtOgoKCUFkZCBjb25maWcgZmlsZSBmb3IgUGVyc2lhbiBmb250cyBmcm9tIFNoYXJpZiBGYXJzaVdlYiwgSW5jLgoKMjAwNS0xMS0zMCAgQmVoZGFkIEVzZmFoYm9kICA8YmVoZGFkQGNzLnRvcm9udG8uZWR1PgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY3htbC5jIChGY0NvbmZpZ1BhcnNlQW5kTG9hZCk6CgoJT25seSBhZGQgYSBjb25maWcgZmlsZSB0byB0aGUgc2V0IG9mIGNvbmZpZyBmaWxlcyBvbmNlLgoKMjAwNS0xMS0yOSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2ludC5oIChGY0NhY2hlQmFua1RvSW5kZXgpOwoKCUZpeCBzZWdmYXVsdCBieSBndWFyZGluZyBhcnJheSBkZXJlZmVyZW5jZS4KCjIwMDUtMTEtMjkgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIGZjLWxhbmcvZmMtbGFuZy5jOgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlQ29uc3VtZSwgRmNDYWNoZUhhdmVCYW5rLAoJCQkgRmNDYWNoZUJhbmtUb0luZGV4LCBGY0NhY2hlQmFua1RvSW5kZXhNVEYsCgkJCSBGY0NhY2hlQWRkQmFua0Rpcik6CgkqIHNyYy9mY2ludC5oOgoKCVJlZmFjdG9yIEZjQ2FjaGVCYW5rVG9JbmRleCBpbnRvIGFuIGlubGluZWFibGUgcGFydAoJKGluIGZjaW50LmgpIHdoaWNoIGNoZWNrcyB0aGUgZnJvbnQgb2YgdGhlIGxpc3QgYW5kIGEKCW5vbi1pbmxpbmVhYmxlIHBhcnQgd2hpY2ggZmluZHMgYW5kIG1vdmVzIHRoZSBhcHByb3ByaWF0ZSBlbGVtZW50Cgl0byB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuCgoyMDA1LTExLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQnVpbGRGb250cyk6CgkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkRGlycyk6CgoJTWFrZSB0aGUgcGVyZiBndXlzIGhhdGUgbWUgYSBiaXQgbGVzczogaG9pc3QgdGhlIGRpcmVjdG9yeS1uYW1lCglGY0NvbmZpZ0FjY2VwdEZvbnQgY2hlY2sgZm9yIGNhY2hlZCBmb250cyB1cCB0byBkaXJlY3RvcnkgY2FjaGUKCXJlYWQgdGltZSwgcmF0aGVyIHRoYW4gcnVubmluZyBpdCBmb3IgZWFjaCBmb250LgoKMjAwNS0xMS0yOSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMpOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkZpbmRGdWxsRm5hbWUpOgoKCURvbid0IG1ha2UgRmNQYXR0ZXJuRmluZEZ1bGxGbmFtZSBhdmFpbGFibGUgdG8gZmNjZmcsIGl0J3Mgbm90CglyZWFsbHkgc2FmZS4gIEluc3RlYWQgZ28gdGhyb3VnaCBGY1BhdHRlcm5HZXRTdHJpbmcgKHNvcnJ5LAoJcGVyZiBndXlzLikgIEFsc28sIHVzZSBnbG9icyBmb3IgZGlycyBhcyB3ZWxsLgoKMjAwNS0xMS0yOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMpOgoKCUZpeCBzZWdmYXVsdC4KCjIwMDUtMTEtMjggIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkZpbmRGdWxsRm5hbWUpOgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdCdWlsZEZvbnRzKToKCglGaXggcHJvYmxlbSBkYXRpbmcgYmFjayBhdCBsZWFzdCB0byAyLjMuMiB3aGVyZSBnbG9icyB3ZXJlbid0CgliZWluZyBhcHBsaWVkIHRvIHBhdHRlcm5zIGxvYWRlZCBmcm9tIGEgY2FjaGUuCgoyMDA1LTExLTI4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZG9jL2ZvbnRjb25maWctdXNlci5zZ21sOgoKCUZpeCBzb21lIG9idmlvdXMgc3BlbGxpbmcgbWlzdGFrZXMuCgkKMjAwNS0xMS0yOCAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+CgkgICAgU3RlcGhhbiBLdWxvdyAgPGNvb2xvQHN1c2UuZGU+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250U2V0TWF0Y2gpOgoKCURvbid0IGtpbGwgYWxsIGZvbnRzIGR1cmluZyBtYXRjaCAob29wcyEpCgoKMjAwNS0xMS0yNSAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+CiAgICAgICAgICAgIFN0ZXBoYW4gS3Vsb3cgIDxjb29sb0BzdXNlLmRlPgogICAgICAgICAgICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CiAgICAgICAgcmV2aWV3ZWQgYnk6IHBsYW0KCiAgICAgICAgKiBzcmMvZmNtYXRjaC5jIChGY09iamVjdFB0clRvTWF0Y2hlciwgRmNDb21wYXJlVmFsdWVMaXN0LAogICAgICAgICAgICAgICAgRmNGb250U2V0TWF0Y2gpOgoKICAgICAgICBSZXdyaXRlIEZjRm9udFNldE1hdGNoIHRvIGEgcGF0aC1maW5kaW5nIGJhc2VkIGFsZ29yaXRobSwgaS5lLgogICAgICAgIGlubGluZSBGY0NvbXBhcmUgaW50byBGY0ZvbnRTZXRNYXRjaCBhbmQgcmVvcmRlciB0aGUKICAgICAgICBsb29wcywgYWRkaW5nIGEgYm9vbGVhbiBhcnJheSB3aGljaCBibG9ja3MgcGF0dGVybnMgZnJvbSBmdXR1cmUKICAgICAgICBjb25zaWRlcmF0aW9uIGlmIHRoZXkncmUga25vd24gdG8gbm90IGJlIGJlc3Qgb24gc29tZSBwYXN0CiAgICAgICAgY3JpdGVyaW9uLgoKMjAwNS0xMS0yNiAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY21hdGNoLmMgKEZjQ29tcGFyZVZhbHVlTGlzdCk6CgoJRml4IGluY29ycmVjdCBtZXJnZS4KCjIwMDUtMTEtMjUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNtYXRjaC5jIChGY01hdGNoT2JqZWN0UHRyc0luaXQsIEZjQ29tcGFyZVZhbHVlTGlzdCk6CgoJRG9uJ3QgZG8gcmFuZG9tIG1hdGNoaW5nIHdoZW4gYmFkIG9iamVjdHMgYXJlIHBhc3NlZCBpbnRvCglGY0NvbXBhcmVWYWx1ZUxpc3QuCgoyMDA1LTExLTI1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5FbnN1cmVCYW5rLCBGY1BhdHRlcm5EaXN0cmlidXRlQnl0ZXMsIAoJCQlGY1BhdHRlcm5TZXJpYWxpemUsIEZjUGF0dGVyblVuc2VyaWFsaXplLCAKCQkJRmNWYWx1ZUxpc3RFbnN1cmVCYW5rLCBGY1ZhbHVlTGlzdERpc3RyaWJ1dGVCeXRlcywKCQkJRmNWYWx1ZUxpc3RVbnNlcmlhbGl6ZSk6CgoJUmVuYW1lIGZjcGF0dGVybnMsIGZjcGF0dGVybmVsdHMsIGZjdmFsdWVsaXN0cyB0byBfZmNQYXR0ZXJucywKCV9mY1BhdHRlcm5FbHRzLCBfZmNWYWx1ZUxpc3RzIGZvciBjb25zaXN0ZW5jeS4KCjIwMDUtMTEtMjUgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY21hdGNoLmM6CgoJUGFzcyB0aGUgRmNPYmplY3RQdHIgdG8gRmNDb21wYXJlVmFsdWVMaXN0LCBub3QgdGhlIGNoYXIgKiAocGVyZikuCgoyMDA1LTExLTI1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lKToKCSogc3JjL2ZjY2hhcnNldC5jIChGY0NoYXJTZXRVbnNlcmlhbGl6ZSk6CgkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldFVuc2VyaWFsaXplKToKCSogc3JjL2ZjbGFuZy5jIChGY0xhbmdTZXRVbnNlcmlhbGl6ZSk6CgkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3RVbnNlcmlhbGl6ZSk6CgkqIHNyYy9mY3BhdC5jIChGY1N0clVuc2VyaWFsaXplLCBGY1ZhbHVlTGlzdFVuc2VyaWFsaXplLCAKCQkJRmNQYXR0ZXJuVW5zZXJpYWxpemUpOgoKCVBhc3MgYXJvdW5kIEZjQ2FjaGUgKnMgdG8gdGhlIFVuc2VyaWFsaXplIGZ1bmN0aW9ucyBmb3IgZXh0cmEKCWNvbnNpc3RlbmN5IChhbmQgbGVzcyBvdmVyaGVhZCwgZm9yIHdoYXQgdGhhdCdzIHdvcnRoKS4KCjIwMDUtMTEtMjQgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNtYXRjaC5jIChGY0NvbXBhcmUqLCBGY0ZvbnRTZXRTb3J0KToKCSogc3JjL2ZjbmFtZS5jIChGY05hbWVVbnBhcnNlVmFsdWUpOgoKCUlubGluZSB0aGUgKlB0clUgZnVuY3Rpb25zIHRvIGdhaW4gcGVyZi4KCVJlbW92ZSB1bm5lZWRlZCBwYXJhbXMgZm9yIHRoZSBGY0NvbXBhcmUqIGZ1bmN0aW9ucy4KCjIwMDUtMTEtMjQgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQogICAgICAgICogc3JjL2ZjaW50LmgsIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOiAKICAgICAgICAKCU1vdmUgRkNfQkFOS19EWU5BTUlDLCBGQ19CQU5LX0ZJUlNUIHRvIGludGVybmFsIGhlYWRlci4KCiAgICAgICAgKiBzcmMvZmNwYXQuYywgc3JjL2ZjaW50LmgsIHNyYy9mY25hbWUuYzoKICAgICAgICAgIAoJQ2hlY2sgZm9yIHR5cGUgdmFsaWRpdHkgZHVyaW5nIEZjUGF0dGVybkFkZFdpdGhCaW5kaW5nLCBkb24ndAoJdmVyaWZ5IHR5cGUgaW4gRmNGb250TWF0Y2gsIGRvbid0IGNhbGwgRmNDYW5vbmljYWxpemUgaGVyZQogICAgICAgICh3aGljaCBhbHdheXMgZG9lcyBhIGRlZXAgY29weSkuCgoyMDA1LTExLTI0ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBzcmMvZmNtYXRjaC5jIChGY0NvbXBhcmVOdW1iZXIsIEZjQ29tcGFyZVN0cmluZywgRmNDb21wYXJlRmFtaWx5KToKCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkFkZFdpdGhCaW5kaW5nKToKCglNYWtlIEZjQ29tcGFyZVN0cmluZyBhbmQgRmNDb21wYXJlRmFtaWx5IGxlc3MgZXhwZW5zaXZlLgoJT25seSBhZGQgYSB2YWx1ZSBmb3IgRkNfRkFNSUxZIGlmIHRoZSBwcm9wb3NlZCB2YWx1ZSBpcyBhIHN0cmluZy4KCjIwMDUtMTEtMjQgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBzcmMvZmNkYmcuYyAoRmNEZWJ1ZywgRmNEZWJ1Z0luaXQsIEZjUGF0dGVyblByaW50KToKCSogc3JjL2ZjaW5pdC5jIChGY0luaXRMb2FkQ29uZmlnLCBGY0luaXRMb2FkQ29uZmlnQW5kRm9udHMpOgoJKiBzcmMvZmNpbnQuaCAoRmNEZWJ1Zyk6CgkKCUlubGluZSBGY0RlYnVnIGludm9jYXRpb25zIGFuZCBvbmx5IGluaXRpYWxpemUgb25jZSwgaW4gRmNJbml0Ki4KCUltcHJvdmUgZGVidWcgbXNnIGluIEZjUGF0dGVyblByaW50LgoKMjAwNS0xMS0yMyAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+OgoJcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCSogZmMtY2F0L2ZjLWNhdC5jOgoKCU1pbm9yIGNvZGUgd2FybmluZyBjbGVhbnVwcy4KCjIwMDUtMTEtMjMgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPjoKCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogZmMtbWF0Y2gvZmMtbWF0Y2guYyAobWFpbik6CgoJTWFrZSBnZXRvcHRfbG9uZyBhY2NlcHQgLXMgcGFyYW1ldGVyIHRvIGZjLW1hdGNoIGFzIHdlbGwuCgoyMDA1LTExLTIxICBEaXJrIE11ZWxsZXIgPGRtdWVsbGVyQHN1c2UuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9mY21hdGNoLmMgKEZjQ29tcGFyZVZhbHVlTGlzdCk6CgoJTWFudWFsbHkgcGVyZm9ybSBpbmxpbmluZyAmIHBhcnRpYWwgcmVkdW5kYW5jeSBlbGltaW5hdGlvbiB0bwoJcmVkdWNlIGNhbGxzIHRvIEZjVmFsdWVMaXN0UHRyVS4KCjIwMDUtMTEtMjEgIERpcmsgTXVlbGxlciA8ZG11ZWxsZXJAc3VzZS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKICAgICAgICAqIHNyYy9mY3N0ci5jIChGY1N0ckZyZWUsIEZjU3RyQ2FzZVdhbGtlckluaXQsIEZjU3RyQ2FzZVdhbGtlckxvbmcsCgkJICAgICAgIEZjU3RyQ2FzZVdhbGtlck5leHQsIEZjU3RyQ2FzZVdhbGtlck5leHRJZ25vcmVCbGFua3MpOiAKCglPbmx5IGludm9rZSBzdHJsZW4oKSB3aGVuIHJlYWxseSBuZWNlc3NhcnkuCgkKMjAwNS0xMS0xOSAgTWF0dGhpYXMgQ2xhc2VuICA8bWNsYXNlbkByZWRoYXQuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIHNyYy9NYWtlZmlsZS5hbToKCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNHZXRQaXhlbFNpemUsIEZjRnJlZVR5cGVRdWVyeSwgR2V0U2NyaXB0VGFncywKCSAgICAgICAgICAgICAgICAgICAgRmNGb250Q2FwYWJpbGl0aWVzKToKCSogc3JjL2Z0Z2x1ZS5jOgoJKiBzcmMvZnRnbHVlLmg6CgoJR2V0IHJpZCBvZiB0aGUgdXNlIG9mIGZyZWV0eXBlIGludGVybmFsIGhlYWRlcnMgaW4gZmNmcmVldHlwZS5jLAoJc2luY2UgdGhvc2UgaGVhZGVycyB3aWxsIGdvIGF3YXkgd2l0aCBmcmVldHlwZSAyLjIuICBSZXBsYWNlIHdpdGgKCXB1YmxpYyBkb21haW4gZnRnbHVlIGNvZGUgZnJvbSBwYW5nby4gIE5vdGUgdGhhdCB0aGUgcGF0Y2ggcmVtb3ZlcwoJc29tZSBleHRyYSBlcnJvciBjaGVja2luZyBpbiBGVF9HZXRfQkRGX1Byb3BlcnR5KCkgYW5kIGNvbW1lbnRzCglvdXQgdGhlIHNraXBwaW5nIG9mIGVtcHR5IHBjZiBmb250cy4KCjIwMDUtMTEtMTkgIEppbmdodWEgTHVvICA8c3VubW9vbjE5OTdAZ21haWwuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGZjLWxhbmcvZmMtbGFuZy5jIChtYWluKToKCglGdXJ0aGVyIGZpeCBvZiBwYXRjaCBmcm9tIDIwMDUtMTEtMDQ6IG1pc2NvdW50ZWQgbnVtYmVycyBjb3VudAoJKG51bWJlcnNfY291bnQpOyBkaWRuJ3Qgc3RyaXAgZHVwbGljYXRlIG51bWJlcnMgKGxhbmdCYW5rTnVtYmVycyk7CglhbmQgbGVhZmlkeF9vZmZzZXQgYW5kIG51bWJlcnNfb2Zmc2V0IGluIGZjTGFuZ0NoYXJTZXRzIGFyZSB3cm9uZy4KCglSZW1vdmVkIGxlYWZpZHhfY291bnQgYW5kIG51bWJlcnNfY291bnQgc2luY2UgdGhleSBhcmUgdGhlIHNhbWUKCWFuZCByZXBsYWNlZCB0aGVtIHdpdGggb2Zmc2V0X2NvdW50LgoKMjAwNS0xMS0xOCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtY2F0L2ZjLWNhdC5jIChtYWluKToKCglEb24ndCBjcmFzaCB3aGVuIGZjLWNhdCBpbnZva2VkIHdpdGggbm8gYXJndW1lbnRzLgoKMjAwNS0xMS0xOCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjeG1sLmMgKEZjQ29uZmlnU2F2ZUF0dHIsIEZjQ29uZmlnUGFyc2VBbmRMb2FkKToKCglGaXggaW52YWxpZCByZWFkIGFjY2VzcyBjYXVzZWQgYnkgcHJlbWF0dXJlIGZyZWUgYW5kCglHQ0M0IHdhcm5pbmdzIGluIGxpYnhtbDIgY29kZXBhdGguCgoyMDA1LTExLTE3ICBKaW5naHVhIEx1byAgPHN1bm1vb24xOTk3QGdtYWlsLmNvbT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdWYWx1ZXMpOgoKCUxpc3QgaXRlcmF0aW9uIG5vdCBuZWVkZWQgaW4gRmNDb25maWdWYWx1ZXMsIHNpbmNlIGl0J3MgYnVpbGRpbmcKCXVwIHRoZSBsaXN0IGl0c2VsZjsgd2UgY2FuIGp1c3Qgc3RyaXAgRmNWb2lkIGVsZW1lbnRzIGR1cmluZwoJY29uc3RydWN0aW9uLgoKMjAwNS0xMS0xNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ1ZhbHVlcyk6CgoJRml4IGNyYXNoIG9uIGludmFsaWQgY29uc3RhbnRzIGluIGNvbmZpZyBmaWxlcyAoZm9yZ290IHRvIHVwZGF0ZQoJYSBwb2ludGVyIHVwb24gbGlzdCBpdGVyYXRpb24uKQoKMjAwNS0xMS0xNyAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogc3JjL2ZjeG1sLmMgKEZjVHlwZWNoZWNrRXhwcik6CgoJQ29tcGxhaW4gYWJvdXQgaW52YWxpZCBjb25zdGFudHMgaW4gY29uZmlnIGZpbGVzLgoKMjAwNS0xMS0xNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgkKCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVNhdmUpOiAKCglEb24ndCBhZGQgY3VycmVudF9hcmNoX3N0YXJ0IG1vcmUgdGhhbiBvbmNlLgoKMjAwNS0xMS0xNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0RGlzdHJpYnV0ZUJ5dGVzLCBGY0NoYXJTZXRVbnNlcmlhbGl6ZSk6CgkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldFVuc2VyaWFsaXplKToKCSogc3JjL2ZjbmFtZS5jIChGY09iamVjdERpc3RyaWJ1dGVCeXRlcywgRmNPYmplY3RVbnNlcmlhbGl6ZSk6CgkqIHNyYy9mY3BhdC5jIChGY1N0clVuc2VyaWFsaXplKToKCglGaXggb3JkZXJpbmcgb2YgQUxJR04gd2l0aCByZXNwZWN0IHRvIHNhdmluZyBibG9ja19wdHI7IGFkZAoJYW5vdGhlciBBTElHTiB0byBmY2ZzLmMuCgoyMDA1LTExLTE2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVByb2R1Y2UpCgkKCUZpeCBjYXNlIHdoZXJlIGFsaWdubWVudCBieXRlcyBidW1wZWQgdXAgbWV0YWRhdGEtPmNvdW50CgljYXVzaW5nIHVud2FycmFudGVkIGZhaWx1cmVzIHRvIHdyaXRlIGNhY2hlIGZpbGVzLiAgCgkoUmVwb3J0ZWQgYnkgU3RlcGhhbiBLdWxvdykuCgoyMDA1LTExLTE2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVByb2R1Y2UpOgoJKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldERpc3RyaWJ1dGVCeXRlcyk6CgkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldERpc3RyaWJ1dGVCeXRlcyk6CgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNsYW5nLmMgKEZjTGFuZ1NldERpc3RyaWJ1dGVCeXRlcyk6CgkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3REaXN0cmlidXRlQnl0ZXMpOgoJKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuTmVlZGVkQnl0ZXMsIEZjVmFsdWVMaXN0TmVlZGVkQnl0ZXMsCgkJRmNTdHJOZWVkZWRCeXRlcyk6CgkKCUFkZCAqTmVlZGVkQnl0ZXNBbGlnbigpLCB3aGljaCBvdmVyZXN0aW1hdGVzIHRoZSBwYWRkaW5nIHdoaWNoIGlzCglsYXRlciBhZGRlZCBieSB0aGUgbmV3IEFMSUdOIG1hY3JvLiAgRml4IGFsaWdubWVudCBwcm9ibGVtcyBvbgoJaWE2NCBhbmQgczM5MCBieSBidW1waW5nIHVwIGJsb2NrX3B0ciBhcHByb3ByaWF0ZWx5LiAgKEVhcmxpZXIKCXZlcnNpb24gYnkgQW5kcmVhcyBTY2h3YWIpLgoKMjAwNS0xMS0xNiAgU3RlcGhhbiBLdWxvdyAgPGNvb2xvQGtkZS5vcmc+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIHNyYy9mY2NhY2hlLmM6CgoJVXNlIHN5c2NvbmYgdG8gZGV0ZXJtaW5lIHByb3BlciBQQUdFU0laRSB2YWx1ZTsgdGhpcwoJYXBwZWFycyB0byBiZSBQT1NJWC1jb21wbGlhbnQuIChyZXBvcnRlZCBieSBBbmRyZWFzIFNjaHdhYikKCjIwMDUtMTEtMDQgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1sYW5nL2ZjLWxhbmcuYzoKCSogc3JjL2ZjY2hhcnNldC5jOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjbGFuZy5jOgoKCUZpeCBidWcgMjg3OCAoZXhjZXNzaXZlIHJlbG9jYXRpb25zIGF0IHN0YXJ0dXAgZm9yIGNoYXJzZXRzLAoJcmVwb3J0ZWQgYnkgUm9zcyBCdXJ0b24pOiBmYy1sYW5nL2ZjLWxhbmcgbm93IGNyZWF0ZXMgdGhlCglzdGF0aWMgZm9ybSBvZiB0aGUgbGFuZ3NldCwgbm90IHRoZSBkeW5hbWljIGZvcm0sIHNvIHRoYXQKCXRoZSBjaGFyc2V0cyBzaG91bGQgbm93IGJlIGluIC5yb2RhdGEuCgoyMDA1LTExLTA0ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6CgoJQWRkIHRlc3QgZm9yIHZhbGlkaXR5IG9mIGRpcmVjdG9yeSBjYWNoZXMgdGhhdAoJc29tZWhvdyBnb3QgbG9zdCAocmVwb3J0ZWQgYnkgbWFrZSBkaXN0Y2hlY2spLgoKMjAwNS0xMS0wNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIENoYW5nZUxvZzoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJCiAgICAgICAgQnVtcCB2ZXJzaW9uIHRvIDIuMy45Mi4KCjIwMDUtMTEtMDIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuRHVwbGljYXRlKToKCglGaXggYXJndW1lbnQgb3JkZXJpbmcgcHJvYmxlbSBpbiBjYWxsIHRvIEZjUGF0dGVyblRyYW5zZmVyRnVsbEZuYW1lLgoKMjAwNS0xMS0wMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZXR5cGVRdWVyeSk6CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5EZXN0cm95LCBGY1BhdHRlcm5EdXBsaWNhdGUsIAoJICAgICAgICAgICAgICAgRmNQYXR0ZXJuVHJhbnNmZXJGdWxsRm5hbWUpOgoKCUZpeCB3YXJuaW5ncyBhbmQgZW1iYXJyYXNzaW5nIGRvdWJsZS1mcmVlIGVycm9yLgoKMjAwNS0xMS0wMiAgWmhlIFN1ICA8enN1QG5vdmVsbC5jb20+CglyZXZpZXdlZCBieTogcGxhbQoJCgkqIGZvbnRzLmNvbmYuaW46CgoJQ2hhbmdlIHRoZSBydWxlIGZvciBhcnRpZmljaWFsIGVtYm9sZGVuaW5nIGluIGZvbnRzLmNvbmYuaW4uICBUaGlzCgllbmFibGVzIHRoZSBzdXBwb3J0IGZvciBhcnRpZmljaWFsIGVtYm9sZGVuaW5nIGluY2x1ZGVkIGluIGNhaXJvLgoKMjAwNS0xMS0wMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5EZXN0cm95LCBGY1BhdHRlcm5UcmFuc2ZlckZ1bGxOYW1lKToKCglEb24ndCB6ZXJvIG91dCBmdWxsIG5hbWVzIGZvciBGQ19SRUZfQ09OU1RBTlQgZm9udHM7CglhbHNvLCBkdXBsaWNhdGUgZnVsbCBuYW1lcyB3aGVuIHRyYW5zZmVycmluZywgYW5kIGZyZWUKCWZ1bGwgbmFtZXMgd2hlbiBmcmVlaW5nIHRoZSBhc3NvY2lhdGVkIGZvbnQuCglSZXBvcnRlZCBieSBKaW5naHVhIEx1by4KCjIwMDUtMTEtMDIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6CgkqIHNyYy9mY3BhdC5jIChGY1ZhbHVlTGlzdFNlcmlhbGl6ZSk6CgoJUmV2ZXJ0IHRoZSBwcmV2aW91cyBwYXRjaCBhbmQgY29tbWl0IHRoZSBjb3JyZWN0IHBhdGNoOgoJSSBmb3Jnb3QgYSBjYW5vbmljYWxpemF0aW9uIGluIEZjVmFsdWVMaXN0U2VyaWFsaXplLCBzbwoJdGhhdCBpdCB3b3VsZCBjaG9rZSBvbiBhbHJlYWR5LXNlcmlhbGl6ZWQgaW5wdXQgZmlsZXMuICBEdWghCgoyMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgoKCUZvcmNpYmx5IHJlc2NhbiBhIGRpcmVjdG9yeSBiZWZvcmUgd3JpdGluZyBhIGZyZXNoIGxvY2FsCgljYWNoZSBmaWxlIGZvciB0aGF0IGRpcmVjdG9yeSwgZml4aW5nIHRoZSBsb3NpbmctZm9udHMKCXByb2JsZW0gcmVwb3J0ZWQgYnkgTWlrZSBGYWJpYW4gYW5kIGFsc28gYXBwYXJlbnRseSB0aGUgCglmb250IGNhY2hlIGZpbGUgY29ycnVwdGlvbi4KCjIwMDUtMTEtMDIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6CgoJRml4IHRoaW5rbzogYWN0dWFsbHksIHRoZSB3aG9sZSBnbG9iYWwgY2FjaGUgaXMgc3RhbGUgCglpZiB0aGUgZ2xvYmFsIGNhY2hlIGlzIG9sZGVyIHRoYW4gdGhlIChuZXdlc3QpIGNvbmZpZyBmaWxlLgoKMjAwNS0xMS0wMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkKToKCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnTW9kaWZpZWRUaW1lLCBGY0NvbmZpZ0J1aWxkRm9udHMpOgoJKiBzcmMvZmNpbnQuaDoKCglEZWNsYXJlIHRoZSBnbG9iYWwgY2FjaGUgb2YgYSBkaXJlY3RvcnkncyBjb250ZW50cyB0byBiZSBzdGFsZSBpZgoJdGhlIGRpcmVjdG9yeSBpcyBuZXdlciB0aGFuIHRoZSAobmV3ZXN0KSBjb25maWd1cmF0aW9uIGZpbGUuCgoyMDA1LTEwLTMxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY2xpc3QuYyAoRmNMaXN0QXBwZW5kKToKCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250UmVuZGVyUHJlcGFyZSk6CgkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5UcmFuc2ZlckZ1bGxGbmFtZSwgRmNQYXR0ZXJuRHVwbGljYXRlLAoJICAgICAgICAgICAgICAgRmNQYXR0ZXJuRnJlZXplLCBGY1BhdHRlcm5CYXNlRnJlZXplKToKCglDb3B5IHRoZSBmdWxsIHBhdGhuYW1lIHdoZW5ldmVyIGR1cGxpY2F0aW5nIGFuIEZjUGF0dGVybjsgb3RoZXJ3aXNlLAoJYXBwbGljYXRpb25zIGNvbnRpbnVlIGJyZWFraW5nLgoKMjAwNS0xMC0zMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIGZjLWNhdC9mYy1jYXQuYyAoRmNDYWNoZUZpbGVSZWFkLCBtYWluKToKCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZVF1ZXJ5KToKCglGaXggc21hbGwgbWVtb3J5IGVycm9yICh0cmllZCB0byBmcmVlIGFyZ3YpOyB1c2UgYmFzZW5hbWUgYW5kCglkaXJuYW1lIGNvcnJlY3RseSAodGhleSBjYW4gbW9kaWZ5IHRoZWlyIGFyZ3VtZW50cykuCgoyMDA1LTEwLTMxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtY2F0L2ZjLWNhdC5jOgoJKiBzcmMvZmNjYWNoZS5jOgoJKiBzcmMvZmNmcmVldHlwZS5jOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjbGlzdC5jOgoJKiBzcmMvZmNwYXQuYzoKCglSZWluc3RhdGUgYmFzZW5hbWUgcGF0Y2gsIGJ1dCBrZWVwIGEgaGFzaCB0YWJsZSBsaW5raW5nIEZjUGF0dGVybnMKCXRvIHRoZWlyIGZ1bGx5LXF1YWxpZmllZCBmb250IG5hbWVzIGZvciBjbGllbnRzJyBiZW5lZml0LiAgQ2xpZW50cwoJb25seSBwYXkgZm9yIHRoZSBmb250IG5hbWVzIG9uY2UgdGhleSByZXF1ZXN0IHRoZSBGQ19GSUxFIHByb3BlcnR5Cglmcm9tIGFuIEZjUGF0dGVybiwgYnV0IHRoZSBmb250IG5hbWUgaXMgbWFsbG9jJ2QgYXQgdGhhdCBwb2ludCAoaS5lLgoJbm90IG1tYXBwZWQ6IHRoYXQncyBpbXBvc3NpYmxlLCBzaW5jZSBpdCBtYXkgdmFyeSBiZXR3ZWVuIG1hY2hpbmVzLikKCUNsaWVudHMgZG8gaGF2ZSB0byBwYXkgZm9yIGEgY29weSBvZiB0aGUgcGF0aCBuYW1lIHBlciBjYWNoZSBmaWxlLgoKCU5vdGUgdGhhdCBGY1BhdHRlcm5HZXRTdHJpbmcgbm93IGRvZXMgc29tZSByZXdyaXRpbmcgaWYgeW91IGFzawoJZm9yIGFuIEZDX0ZJTEUsIGFwcGVuZGluZyB0aGUgcGF0aG5hbWUgYXMgYXBwcm9wcmlhdGUuCgkKMjAwNS0xMC0zMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6CgoJUmV2ZXJ0IGJhc2VuYW1lIHBhdGNoLCB3aGljaCBicmVha3MgZm9udGNvbmZpZyBjbGllbnRzIG9uIG15IHN5c3RlbS4KCjIwMDUtMTAtMjUgIEppbmdodWEgTHVvICA8c3VubW9vbjE5OTdAZ21haWwuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCgkqIGZvbnRjb25maWcvZm9udHMuY29uZi5pbjoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgkqIHNyYy9mY2RlZmF1bHQuYzoKCSogc3JjL2ZjbmFtZS5jOgoKCUFkZCBGQ19FTUJFRERFRF9CSVRNQVAgb2JqZWN0IHR5cGUgdG8gdGVsbCBYZnQvQ2Fpcm8gd2hldGhlcgoJdG8gbG9hZCBlbWJlZGRlZCBiaXRtYXBzIG9yIG5vdC4KCjIwMDUtMTAtMjUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgoKCU9ubHkgYWRkIGJhc2VuYW1lIHRvIHBhdHRlcm5zJyBGQ19GSUxFIGVsZW1lbnQsIG5vdCBhbnkgcGFydCBvZgoJdGhlIGRpcm5hbWUuCgoyMDA1LTEwLTIyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjZnJlZXR5cGUuYzoKCglBZGQgc29tZSBtb3JlIGNvbnN0cywgZml4aW5nIG1vcmUgR0NDNCB3YXJuaW5ncy4KCjIwMDUtMTAtMjIgIFpoZSBTdSAgPHpzdUBub3ZlbGwuY29tPgoJcmV2aWV3ZWQgYnk6IHBsYW0KCglTdXBwb3J0IGxvY2FsaXplZCBmb250IGZhbWlseSBhbmQgc3R5bGUgbmFtZXMuCglUaGlzIGhhcyBiZWVuIHJlcG9ydGVkIHRvIGJyZWFrIG9sZCBhcHBzIGxpa2UgeGZkLCBidXQgbW9kZXJuCgkoZ3RrKy9xdC9tb3ppbGxhKSBhcHBzIHdvcmsgZmluZS4KCjIwMDUtMTAtMjEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6CgoJRGVzdHJveSB0aGUgZ2xvYmFsIGNhY2hlIGZpbGUgaWYgaXQncyB0ZXJtaW5hbGx5IGJyb2tlbi4gIChyZXBvcnRlZCBieQoJTWlrZSBGYWJpYW4pCgoyMDA1LTEwLTIxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogZmMtbGlzdC9mYy1saXN0LmMgKG1haW4pOgoJKiBzcmMvZmNuYW1lLmMgKEZjTmFtZVVucGFyc2UsIEZjTmFtZVVucGFyc2VFc2NhcGVkKToKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgoJUHJldmVudCBmYy1saXN0IGZyb20gZXNjYXBpbmcgc3RyaW5ncyB3aGVuIHByaW50aW5nIHRoZW0gKHJlcG9ydGVkIGJ5CglNYXR0aGlhcyBDbGFzZW4pLgoKMjAwNS0xMC0yMCAgTWFyY3VzIE1laXNzbmVyICA8bWVpc3NuZXJAc3VzZS5kZT4KCXJldmlld2VkIGJ5OiBwbGFtCgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCglBZGQgdmFsaXN0IHNlbnRpbmVsIG1hcmt1cCBmb3IgRmNPYmplY3RTZXRCdWlsZCBhbmQgRmNQYXR0ZXJuQnVpbGQuCgkKMjAwNS0xMC0xNCAgUm9zcyBCdXJ0b24gIDxyb3NzQGJ1cnRvbmluaS5jb20+CglyZXZpZXdlZCBieTogcGxhbQoKCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOgoJKiBzcmMvZmNsYW5nLmM6CgoJQWRkIGNvbnN0cyB0byB2YXJpYWJsZXMgc28gYXMgdG8gbW92ZSBhcnJheXMgaW50byAucm9kYXRhLgoKMjAwNS0xMC0xNCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+CiAgICAgICAgcmV2aWV3ZWQgYnk6IHBsYW0KCiAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rKToKCiAgICAgICAgQ2hlY2sgZXhpc3RlbmNlIG9mIGRpcmVjdG9yeSBjYWNoZSBmaWxlIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVubGluay4KCjIwMDUtMTAtMTMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rKToKCglGaXggZmxpcHBlZCByZXR1cm4gdmFsdWUgb24gdW5saW5rLiAgKFJlcG9ydGVkIGJ5IE1pa2UgRmFiaWFuKQoKMjAwNS0xMC0xMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgogICAgICAgICogc3JjL2ZjY2FjaGUuYzoKICAgICAgICAqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcpOgogICAgICAgICogc3JjL2ZjaW50Lmg6CgogICAgICAgIFdoZW4gZmMtY2FjaGUgaXMgcnVuIHdpdGhvdXQgLS1mb3JjZSwgdXNlIGRpcmVjdG9yeSBjYWNoZSBmaWxlcwogICAgICAgIHRvIHNwZWVkIHVwIGZjLWNhY2hlIHJ1biB0aW1lLiAgKFJlcG9ydGVkIGJ5IE1pa2UgRmFiaWFuKQoKMjAwNS0xMC0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgogICAgICAgICogc3JjL2ZjbmFtZS5jIChGY09iamVjdFRvUHRyKToKICAgICAgICAqIHNyYy9mY3BhdC5jIChGY1N0clN0YXRpY05hbWUpOgoKICAgICAgICBBZGQgcGFkZGluZyB0byBtYWtlIHZhbGdyaW5kIGFuZCBnbGliYyBub3QgaGF0ZSBlYWNoIG90aGVyCiAgICAgICAgd2hlbiBjYWxsaW5nIHN0cmxlbigpLgoKMjAwNS0xMC0wNSAgU2ltb3MgWGVuaXRlbGxpcyAgPHNpbW9zNzRAZ214Lm5ldD4KCXJldmlld2VkIGJ5OiBwbGFtICYga2VpdGhwCgoJKiBmb250cy5jb25mLmluOgoKCU1vZGlmeSBjb25maWcgZmlsZSB0byB1c2UgR3JlZWsgZm9udHMgYmVmb3JlIEFzaWFuIGZvbnRzIHdpdGgKCUdyZWVrIGdseXBocy4KCjIwMDUtMTAtMDUgIENocmlzdGlhbiBCaWVzaW5nZXIgIDxjYmllc2luZ2VyQHdlYi5kZT4KICAgICAgICByZXZpZXdlZCBieTogcGxhbSAmIGtlaXRocAoKICAgICAgICAqIHNyYy9NYWtlZmlsZS5hbToKCiAgICAgICAgVXNlIGxpYnRvb2wgLW5vLXVuZGVmaW5lZCBmbGFnIG9uIGFsbCBwbGF0Zm9ybXMuCgoyMDA1LTEwLTA1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZUhhdmVCYW5rKToKCglJbXBsZW1lbnQgbW92ZS10by1mcm9udCBhcnJheSBmb3IgYmFua3MgKHBlcmYgcmVncmVzc2lvbgoJcmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXMpLgoKMjAwNS0xMC0wNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVWYWxpZCwgRmNEaXJDYWNoZVVubGluaywgCgkgICAgICAgICAgICAgICAgIEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6CgkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgoJQWRkIG5ldyBBUEkgd2hpY2ggdW5saW5rcyBkaXJlY3RvcnkgY2FjaGVzIGFuZCBjaGVja3MgZGlyIGNhY2hlcwoJZm9yIGV4aXN0ZW5jZSBvZiBhcHByb3ByaWF0ZSBzZWN0aW9ucy4gIEZpeCBmYy1jYWNoZSB0byB1bmxpbmsKCXN0YWxlIGNhY2hlIGZpbGVzIGFuZCBzYXZlIGRpcmVjdG9yeSBjYWNoZXMgdGhhdCBsYWNrIHJlbGV2YW50CglzZWN0aW9ucy4KCjIwMDUtMTAtMDMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVmFsaWQpOgoKCUVuc3VyZSB0aGF0IGEgZGlyZWN0b3J5IGNhY2hlIGhhcyB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbgoJYmVmb3JlIHJlcG9ydGluZyB0aGF0IGl0IGlzIHZhbGlkIChyZXBvcnRlZCBieSBNYXR0aGlhcyBDbGFzZW4pLgoKMjAwNS0wOS0yOSAgTWF0aGlhcyBIYXNzZWxtYW5uICA8bWF0aGlhcy5oYXNzZWxtYW5uQGdteC5kZT4KCiAgICAgICAgcmV2aWV3ZWQgYnk6IHBsYW0KCQoJKiBjb25maWd1cmUuaW46CgkqIHNyYy9NYWtlZmlsZS5hbToKCSogc3JjL2ZjeG1sLmM6CgoJVXNlIGxpYnhtbDIgaWYgcmVxdWVzdGVkICh3aXRoIC0tZW5hYmxlLWxpYnhtbDIpIG9yIGlmCglleHBhdCBpcyBub3QgYXZhaWxhYmxlLgoKMjAwNS0wOS0yOSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0RpckNhY2hlV3JpdGUpOgoKCUZpeCBtdWx0aS1hcmNoIGNhY2hlIGZpbGVzOiBjb21wdXRlIHRoZSBwb3NpdGlvbiBmb3IgdGhlCglibG9jayB0byBiZSBhZGRlZCB1c2luZyBpbmZvIGZyb20gT3JpZ0ZpbGUsIG5vdCBOZXdGaWxlLgoKMjAwNS0wOS0yOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+CgkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVNYWNoaW5lU2lnbmF0dXJlKToKCiAgICAgICAgQ2FzdCByZXN1bHRzIG9mIHNpemVvZigpIHRvIHVuc2lnbmVkIGludCB0byBnZXQgcmlkIG9mCiAgICAgICAgd2FybmluZ3Mgb24geDg2XzY0ICh0aGFua3MgTWF0dGhpYXMgQ2xhc2VuKS4KCjIwMDUtMDktMjcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoJKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlU2F2ZSwgRmNDYWNoZUNvcHlPbGQsCiAgICAgICAgICAgICAgICBGY0RpckNhY2hlV3JpdGUpOgoKICAgICAgICBVc2UgRmNBdG9taWMgdG8gcmV3cml0ZSBjYWNoZSBmaWxlcy4KCjIwMDUtMDktMjcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoKICAgICAgICAqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVXcml0ZSk6CgogICAgICAgIERvbid0IHVubGluayB0aGUgZm9udHMuY2FjaGUtMiBmaWxlIGV2ZW4gaWYgdGhlcmUncyBubyBkYXRhCiAgICAgICAgdG8gd3JpdGU7IGp1c3Qgd3JpdGUgYW4gZW1wdHkgY2FjaGUgZmlsZS4gICh0aGFua3MgTHVib3MgTHVuYWspCgoyMDA1LTA5LTI3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KCiAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlV3JpdGUpOgoKICAgICAgICBBbGxvY2F0ZSByb29tIGZvciB0aGUgc3ViZGlyZWN0b3J5IG5hbWVzIGluIGVhY2gKICAgICAgICBkaXJlY3RvcnkgY2FjaGUuICBUaGFua3MgdG8gSmFtZXMgQ2xvb3MgZm9yIGZpbmRpbmcKICAgICAgICBhbmQgZGlhZ25vc2luZyB0aGlzIGJ1ZyEKCjIwMDUtMDktMjIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgoKICAgICAgICAqIGZjLWNhY2hlL2ZjLWNhY2hlLnNnbWw6CiAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlV3JpdGUpOgogICAgICAgICogc3JjL2ZjY2FjaGUuaCAoc3RydWN0IEZjQ2FjaGUpOgoKICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiAtLSBmYy1jYWNoZSdzIG1hbiBwYWdlIG5vdyBzYXlzIHRoYXQgeW91CiAgICAgICAgbmVlZCB0byBydW4gZmMtY2FjaGUgb25jZSBwZXIgY2FjaGVkIGFyY2hpdGVjdHVyZTsgYWRkIHNvbWUKICAgICAgICBkb2N1bWVudGF0aW9uIHRvIHRoZSBGY0NhY2hlIHN0cnVjdHVyZS4KCiAgICAgICAgTWFrZSBmYy1jYWNoZSB3cml0ZSBvdXQgZm9udHMuY2FjaGUtMiBmaWxlcyBmb3IgZGlyZWN0b3JpZXMgd2l0aAogICAgICAgIG5vIGZvbnRzIChpLmUuIG9ubHkgc3ViZGlyZWN0b3JpZXMpLgoJCjIwMDUtMDktMjIgIFBhdHJpY2sgTGFtICAgIDxwbGFtQG1pdC5lZHU+CgkqIGRvYy9lZGl0LXNnbWwuYzoKCSogZmMtY2FjaGUvZmMtY2FjaGUuc2dtbDoKCSogZmMtY2FzZS9mYy1jYXNlLmM6CgkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzoKCSogc3JjL2ZjZGVmYXVsdC5jOgoJKiBzcmMvZmNmcmVldHlwZS5jOgoJKiBzcmMvZmNpbml0LmM6CgkqIHNyYy9mY3htbC5jOgoKCU1vcmUgR0NDIDQgY2xlYW51cHMsIGR1ZSB0byBCZWhoYWQgRXNmYWhib2QgPGJlaGRhZEBiZWRkYWQub3JnPi4KCiAgICAgICAgKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmluOgoJKiBmYy1sYW5nL2ZjLWxhbmcuYzoKCSogZm9udGNvbmZpZy9mY3ByaXZhdGUuaDoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgkqIHNyYy9mY2NhY2hlLmM6CgkqIHNyYy9mY2NmZy5jOgoJKiBzcmMvZmNjaGFyc2V0LmM6CgkqIHNyYy9mY2RiZy5jOgoJKiBzcmMvZmNkaXIuYzoKCSogc3JjL2ZjZnMuYzoKCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY2xhbmcuYzoKCSogc3JjL2ZjbGlzdC5jOgoJKiBzcmMvZmNtYXRjaC5jOgoJKiBzcmMvZmNuYW1lLmM6CgkqIHNyYy9mY3BhdC5jOgoKCUltcGxlbWVudCBuZXcgbW1hcGVkIGNhY2hlIGZvciBmb250IGluZm9ybWF0aW9uLgoJQnVtcCBzbyByZXZpc2lvbiB0byAyLjMuOTAuCgoyMDA1LTA3LTI1ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6CgkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzogKHNjYW4pLCAobWFpbik6CgkqIGZjLWxhbmcvZmMtbGFuZy5jOiAoRmNDb25maWdIb21lKToKCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzogKG1haW4pOgoJKiBzcmMvZmNjZmcuYzogKEZjQ29uZmlnSG9tZSk6CgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY1NmbnROYW1lVHJhbnNjb2RlKSwgKEZjU2ZudE5hbWVMYW5ndWFnZSksCgkoRmNWZW5kb3JNYXRjaCksIChGY0ZyZWVUeXBlUXVlcnkpLCAoRmNGcmVlVHlwZUNoYXJTZXRBbmRTcGFjaW5nKSwKCShhZGR0YWcpLCAoRmNGb250Q2FwYWJpbGl0aWVzKToKCSogc3JjL2ZjcGF0LmM6IChGY1ZhbHVlTGlzdEVudENyZWF0ZSk6CgkqIHNyYy9mY3N0ci5jOiAoRmNTdHJDYXNlV2Fsa2VySW5pdCk6CgkqIHNyYy9mY3htbC5jOiAoRmNQYXJzZVBhdGVsdCksIChGY0NvbmZpZ1BhcnNlQW5kTG9hZERpcik6CgoJVmFyaW91cyBHQ0MgNCBjbGVhbnVwcyBmb3Igc2lnbmVkIHZzIHVuc2lnbmVkIGNoYXIKCglNYXRjaCBvbmx5IFswLTldKi5jb25mIGZpbGVzIGluIDxpbmNsdWRlPntkaXJlY3Rvcnl9PC9pbmNsdWRlPgoJZWxlbWVudHMgdG8gYXZvaWQgbG9hZGluZyAqLnJwbXNhdmUgb3IgLmRwa2ctb2xkIGZpbGVzLiAob3RheWxvcikKCjIwMDUtMDctMTUgIENhcmwgV29ydGggIDxjd29ydGhAY3dvcnRoLm9yZz4KCgkqIHNyYy9mY2ludC5oOgoJKiBzcmMvZmNpbml0LmM6IChGY0ZpbmkpOgoJKiBzcmMvZmNwYXQuYzogKEZjUGF0dGVybkZpbmkpOiBSZW5hbWUgRmNQYXR0ZXJuVGhhd0FsbCB0bwoJRmNQYXR0ZXJuRmluaS4KCQoJKiBzcmMvZmNwYXQuYzogKEZjT2JqZWN0U3RhdGljTmFtZSksIChGY09iamVjdFN0YXRpY05hbWVGaW5pKToKCVB1bGwgdGhlIEZjT2JqZWN0U3RhdGVOYW1lIGhhc2ggdGFibGUgb3V0IHRvIGZpbGUgc2NvcGUsIGFuZCBhZGQKCUZjT2JqZWN0U3RhdGljTmFtZUZpbmkgc28gdGhhdCBGY0Zpbmkgd2lsbCBjbGVhbnVwIHRoaXMgaGFzaCB0YWJsZQoJYXMgd2VsbC4KCgkqIHNyYy9mY3htbC5jOiAoRmNDb25maWdQYXJzZUFuZExvYWQpOiBDbGVhciBGSUxFKiB0byBOVUxMIGFmdGVyCglmY2xvc2UuCgoyMDA1LTA2LTE2ICBQYXRyaWNrIExhbSA8cGxhbUBNSVQuRURVPgoKCXJldmlld2VkIGJ5OiBrZWl0aHAKCgkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdDb21wYXJlVmFsdWUpOgoJTWFrZSBGY09wTm90Q29udGFpbnMgdXNlIEZjU3RyU3RyIGZvciBzdHJpbmdzIHNvIHRoYXQKCWl0IG1hdGNoZXMgc2VtYW50aWNzIGZvciAhRmNPcENvbnRhaW5zLgoKMjAwNS0wNS0yMCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogZGViaWFuL2NoYW5nZWxvZzoKCSogZGViaWFuL2NvbnRyb2w6CglNb3ZlIGZvbnRjb25maWcgc291cmNlIHBhY2thZ2UgdG8gbGlicyBhcyBwZXIgb3ZlcnJpZGUKCjIwMDUtMDUtMjAgIEFpZXQgS29sa2hpIDxhaWV0a29sa2hpQGdtYWlsLmNvbT4KCglyZXZpZXdlZCBieTogTWlrZSBGYWJpYW4KCgkqIGZjLWxhbmcva2Eub3J0aDoKCVRoZSBrYS5vcnRoIGZpbGUgcmVxdWlyZXMgc2V2ZXJhbCBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBub3QgCgl1c2VkIGFueW1vcmUgaW4gbW9kZXJuIEdlb3JnaWFuIGFuZCB3aGljaCBhcmUgbWlzc2luZyBpbiB0aGUgZnJlZSAKCUdlb3JnaWFuIFRydWVUeXBlIGZvbnRzIGRvd25sb2FkYWJsZSBhdDogCgkKCWh0dHA6Ly9haWV0LnFhcnR1bGkubmV0L2RvY3MvZ2VvcmdpYW5fb25fbGludXhfZW4ucGhwCgoyMDA1LTA0LTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBSRUFETUU6CgkqIGRlYmlhbi9jaGFuZ2Vsb2c6CglVcGRhdGUgZGF0ZSB0byByZWFsIDIuMy4yIHJlbGVhc2UgZGF0ZS4KCUZpeCBjaGFuZ2UgYXR0cmlidXRpb25zCgkKMjAwNS0wNC0yNyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogY29uZmlndXJlLmluOgoJQnVtcCBzbyByZXZpc2lvbiBmb3IgMi4zLjIKCSogZmMtY2FjaGUvZmMtY2FjaGUuYzogKHNjYW5EaXJzKToKCUZpeCBhIGZldyBtaW5vciBsZWFrcyBpbiBlcnJvciBjYXNlcy4KCjIwMDUtMDQtMjMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBkZWJpYW4vY2hhbmdlbG9nOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCVVwZGF0ZSBmb3IgdmVyc2lvbiAyLjMuMgoKMjAwNS0wNC0yMSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogZGViaWFuL2ZvbnRjb25maWcucG9zdGluc3Q6CglEb24ndCBmb3JjZSBiaXRtYXAgZm9udCBlbmFibGUgaW4gZGVmYXVsdAoJY29uZmlndXJhdGlvbjsgYWxsb3dzIHVzZXJzIHRvIG92ZXJyaWRlIHRoaXMgaW4KCX4vLmZvbnRzLmNvbmYKCSogZGViaWFuL3BvL2NzLnBvOgoJKiBkZWJpYW4vcG8vZGEucG86CgkqIGRlYmlhbi9wby9kZS5wbzoKCSogZGViaWFuL3BvL2VzLnBvOgoJKiBkZWJpYW4vcG8vZnIucG86CgkqIGRlYmlhbi9wby9qYS5wbzoKCSogZGViaWFuL3BvL25sLnBvOgoJKiBkZWJpYW4vcG8vcHQucG86CgkqIGRlYmlhbi9wby9wdF9CUi5wbzoKCSogZGViaWFuL3BvL3RlbXBsYXRlcy5wb3Q6CgkqIGRlYmlhbi9wby90ci5wbzoKCSogZGViaWFuL3BvL3poX0NOLnBvOgoJVXBkYXRlZCB0cmFuc2xhdGlvbnMKCQoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jOiAobWFpbik6CglEZXN0cm95IGZvbnQgY29uZmlndXJhdGlvbiBvbiBleGl0IHRvIGhlbHAgdmFsZ3JpbmQKCQoJKiBmb250cy5jb25mLmluOgoJKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNTZm50TmFtZVRyYW5zY29kZSksIChGY0ZyZWVUeXBlQ2hhckluZGV4KSwKCShGY0ZyZWVUeXBlQ2hlY2tHbHlwaCk6CglVc2Ugb3duIHRyYW5zY29kaW5nIHJvdXRpbmVzIGluIHByZWZlcmVuY2UgdG8gaWNvbnYKCXdoaWNoIGFwcGVhcnMgdG8gaGF2ZSBsZWFrcyBpbiBzb21lIHRyYW5zbGF0b3JzLgoJQ2FsbCBpY29udl9jbG9zZSBhZnRlciB1c2luZyBpY29udiAob29wcykuCgkKCVByZWZlciB1bmljb2RlIGVuY29kaW5nIG9mIEV1cm8gY2hhciBhcyBzb21lCglmb250cyBtaXMtZW5jb2RlIEV1cm8gaW4gb3RoZXIgb25lcy4KCglNdXN0IGZldGNoIGJpdG1hcCBnbHlwaHMgdG8gZ2V0IHdpZHRoIHZhbHVlcwoJdG8gY2hlY2sgZm9yIG1vbm9zcGFjZS9kdWFsLXdpZHRoIGZvbnRzLgoKMjAwNS0wNC0xMyAgUm9zcyBCdXJ0b24gIDxyb3NzQGJ1cnRvbmluaS5jb20+CgoJKiBzcmMvZmNwYXQuYzoKCUNoZWNrIHRoYXQgYSBwYXR0ZXJuIGlzbid0IGFscmVhZHkgZnJvemVuIGluIEZjUGF0dGVybkZyZWV6ZS4KCjIwMDUtMDMtMzEgIFJvc3MgQnVydG9uICA8cm9zc0BidXJ0b25pbmkuY29tPgoKCSogc3JjL2ZjbGlzdC5jOgoJKiBzcmMvZmNtYXRjaC5jOgoJKiBzcmMvZmNwYXQuYzoKCVJ1biBhbGwgRmNQYXR0ZXJuIG9iamVjdHMgdGhyb3VnaCBGY09iamVjdFN0YXRpY05hbWUsIHNvIHRoYXQKCWNvbXBhcmVzIGNhbiBiZSBkb25lIG9uIHBvaW50ZXJzIGluc3RlYWQgb2Ygc3RyaW5ncyAoIzI2NTkpCgoyMDA1LTAzLTE3ICBUb3IgTGlsbHF2aXN0ICA8dG1sQG5vdmVsbC5jb20+CgoJKiBzcmMvZm9udGNvbmZpZy5kZWYuaW46IEFkZCB0aGUgLmRsbCB0byB0aGUgZGxsIG5hbWUuCgoyMDA1LTAzLTEwICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBkZWJpYW4vUkVBRE1FLkRlYmlhbjoKCVVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ3VyYXRpb24gY2hhbmdlcwoJKiBkZWJpYW4vY2hhbmdlbG9nOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5wb3N0aW5zdDoKCUZpeCBBdXRvaGludCB2cyBBdXRvaGludGVyIG1pc3Rha2UKCSogZGViaWFuL2ZvbnRjb25maWcudGVtcGxhdGVzOgoJQWRvcHQgY2hhbmdlcyBmcm9tIEpvc3NlbGluIE1vdWV0dGUgZm9yIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRpb25zCglVcGRhdGUgZGViaWFuIHRvIHZlcnNpb24gMi4zLjEtMgoKMjAwNS0wMy0wOCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogZGViaWFuL2NoYW5nZWxvZzoKCSogZGViaWFuL3J1bGVzOgoJVXBkYXRlIGRlYmlhbiBmb3IgMi4zLjEKCjIwMDUtMDMtMDkgIFRvciBMaWxscXZpc3QgIDx0bWxAbm92ZWxsLmNvbT4KCgkqIGZvbnRjb25maWctemlwLmluOiBHZXQgdGhlIERMTCBmcm9tICJiaW4iIHdoZXJlIG1vZGVybiBsaWJ0b29scwoJcHV0IGl0LCBub3QgImxpYiIuCgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdGaWxlRXhpc3RzKTogQ2hlY2sgYWxzbyBkcml2ZSBsZXR0ZXIKCXByZWZpeCBvbiBXaW4zMi4KCjIwMDUtMDMtMDggIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCVVwZGF0ZSBmb3IgMi4zLjEKCjIwMDUtMDMtMDUgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChhZGR0YWcpLCAoRmNGb250Q2FwYWJpbGl0aWVzKToKCUluY2x1ZGUgc3BhY2UgYW5kIHJlbW92ZSBudW1iZXJzIGZyb20gdmFsaWQgc2NyaXB0IHRhZ3MuCglUaGlzIGVuc3VyZXMgdGhhdCB0YWdzIGxpa2UgJ2xhbyAnIHdvcmsgd2hpbGUgcmVqZWN0aW5nCgl0aG9zZSB3aGljaCBoYXZlIGFueSBkaWdpdHMuCglFbGltaW5hdGUgYSBzcHVyaW91cyBkZWJ1Z2dpbmcgdmFyaWFibGUgKGxlbikKCjIwMDUtMDMtMDUgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChhZGR0YWcpLCAoR2V0U2NyaXB0VGFncyksCgkoRmNGb250Q2FwYWJpbGl0aWVzKToKCVJld29yayBHU1VCL0dQT1Mgc2NyaXB0IHBhcnNpbmcgdG8gc3Vydml2ZSBicm9rZW4gZm9udHMuCglUaGFua3MgZm9yIHRoZSBicm9rZW4gZm9udCBnbyB0byBNYW5pc2ggU2luZ2gKCjIwMDUtMDMtMDUgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCglKb3NzZWxpbiBNb3VldHRlOgoJKiBkZWJpYW4vY2hhbmdlbG9nOgoJKiBkZWJpYW4vY29udHJvbDoKCSogZGViaWFuL2ZvbnRjb25maWcuY29uZmlnOgoJKiBkZWJpYW4vZm9udGNvbmZpZy50ZW1wbGF0ZXM6CgkqIGRlYmlhbi9ydWxlczoKCQlJbmNsdWRlIDIuMyByZWxlYXNlIGluZm9ybWF0aW9uIGluIGNoYW5nZWxvZwoJCUFkZCBKb3NzZWxpbiBNb3VldHRlIGFzIGFuIFVwbG9hZGVyCgkJU2V0IGhpbnRpbmdfdHlwZSB0byBsb3cgcHJpb3JpdHkgY29uZmlndXJhdGlvbiBvcHRpb24KCQkKCU1hbmlzaCBTaW5naDoKCSogZGViaWFuL2ZvbnRjb25maWcucG9zdGluc3Q6CgkJeWVzX2JpdG1hcHMuY29uZiAtPiB5ZXMtYml0bWFwcy5jb25mCgkJCglGdW5kYSBXYW5nOgoJKiBzcmMvZmNmcmVldHlwZS5jOgoJCUpvaGFwIC0+IEpvaGFiCgkJCjIwMDUtMDMtMDIgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25mLmQvTWFrZWZpbGUuYW06CgkqIGNvbmYuZC9hdXRvaGludC5jb25mOgoJKiBjb25mLmQvbm8tc3ViLXBpeGVsLmNvbmY6CgkqIGNvbmYuZC9zdWItcGl4ZWwuY29uZjoKCSogY29uZi5kL3VuaGludGVkLmNvbmY6CgkqIGRlYmlhbi9hdXRvaGludC5jb25mOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5pbnN0YWxsOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5wb3N0aW5zdDoKCSogZGViaWFuL2ZvbnRjb25maWcudGVtcGxhdGVzOgoJKiBkZWJpYW4vbm8tc3ViLXBpeGVsLmNvbmY6CgkqIGRlYmlhbi91bmhpbnRlZC5jb25mOgoJTW92ZSBkZWJpYW4tc3BlY2lmaWMgY29uZiBmaWxlIGV4YW1wbGVzIHVwc3RyZWFtLgoJCglTdWItcGl4ZWwgY29uZmlndXJhdGlvbiBleGFtcGxlcyBtdXN0IHNtYXNoIHN1YnBpeGVsIHZhbHVlCglhcyBYZnQgYWx3YXlzIHNldHMgaXQgZnJvbSBYLgoKCUNoYW5nZSBzdWItcGl4ZWwgcmVuZGVyaW5nIGRlYmNvbmYgZGVzY3JpcHRpb25zIGZyb20KCUVuYWJsZS9EaXNhYmxlIHRvIEFsd2F5cy9OZXZlci4KCjIwMDUtMDMtMDIgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIC5jdnNpZ25vcmU6CgkqIGNvbmYuZC8uY3ZzaWdub3JlOgoJKiBkb2MvLmN2c2lnbm9yZToKCUlnbm9yZSBtb3JlIGJ1aWxkIGRldHJpdHVzCgoJKiBNYWtlZmlsZS5hbToKCUFkZCBkZWJpYW4gcGFja2FnZSBjb25zdHJ1Y3Rpb24gc3R1ZmYuCgkKCSogY29uZmlnL2NvbmZpZy5ndWVzczoKCSogY29uZmlnL2NvbmZpZy5zdWI6CglVcGRhdGUgdG8gbmV3ZXIgdmVyc2lvbnMgb2YgdGhlc2UgdG9vbHMKCQoJKiBkb2MvTWFrZWZpbGUuYW06CglHZXQgbGlicmFyeSBtYW51YWxzIHRvIGJ1aWxkIGFnYWluICh3ZSBsb3ZlIGF1dG9tYWtlKS4KCQoJKiBkZWJpYW4vUkVBRE1FLkRlYmlhbjoKCSogZGViaWFuL2F1dG9oaW50LmNvbmY6CgkqIGRlYmlhbi9jaGFuZ2Vsb2c6CgkqIGRlYmlhbi9jb21wYXQ6CgkqIGRlYmlhbi9jb250cm9sOgoJKiBkZWJpYW4vY29weXJpZ2h0OgoJKiBkZWJpYW4vZm9udGNvbmZpZy11ZGViLmluc3RhbGw6CgkqIGRlYmlhbi9mb250Y29uZmlnLmNvbmZpZzoKCSogZGViaWFuL2ZvbnRjb25maWcuZGVmb21hOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5kaXJzOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5pbnN0YWxsOgoJKiBkZWJpYW4vZm9udGNvbmZpZy5wb3N0aW5zdDoKCSogZGViaWFuL2ZvbnRjb25maWcucG9zdHJtOgoJKiBkZWJpYW4vZm9udGNvbmZpZy50ZW1wbGF0ZXM6CgkqIGRlYmlhbi9saWJmb250Y29uZmlnMS1kZXYuaW5zdGFsbDoKCSogZGViaWFuL2xpYmZvbnRjb25maWcxLmluc3RhbGw6CgkqIGRlYmlhbi9sb2NhbC5jb25mLm1kNXN1bToKCSogZGViaWFuL25vLXN1Yi1waXhlbC5jb25mOgoJKiBkZWJpYW4vcG8vUE9URklMRVMuaW46CgkqIGRlYmlhbi9wby9jcy5wbzoKCSogZGViaWFuL3BvL2RhLnBvOgoJKiBkZWJpYW4vcG8vZGUucG86CgkqIGRlYmlhbi9wby9lcy5wbzoKCSogZGViaWFuL3BvL2ZyLnBvOgoJKiBkZWJpYW4vcG8vamEucG86CgkqIGRlYmlhbi9wby9ubC5wbzoKCSogZGViaWFuL3BvL3B0LnBvOgoJKiBkZWJpYW4vcG8vcHRfQlIucG86CgkqIGRlYmlhbi9wby90ZW1wbGF0ZXMucG90OgoJKiBkZWJpYW4vcG8vdHIucG86CgkqIGRlYmlhbi9wby96aF9DTi5wbzoKCSogZGViaWFuL3J1bGVzOgoJKiBkZWJpYW4vdW5oaW50ZWQuY29uZjoKCVVwZGF0ZSBkZWJpYW4gYnVpbGQgc3lzdGVtIHRvIHN3aXRjaCBtYWludGFpbmVycyBhbmQKCWRlYWwgd2l0aCAyLjMgZnVuY3Rpb25hbGl0eQoKMjAwNS0wMy0wMSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJVXBkYXRlIGZvciAyLjMuMAoKMjAwNS0wMy0wMSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogZG9jL01ha2VmaWxlLmFtOgoJR2VuZXJhdGUgYW5kIGluc3RhbGwgUERGIHZlcnNpb25zIG9mIHRoZSBtYW51YWxzCgoJKiBkb2MvZmNwYXR0ZXJuLmZuY3M6CglGaXggZm9ybWF0dGluZwoJCgkqIGRvYy9mY3N0cmluZy5mbmNzOgoJQWRkIG1pc3NpbmcgZXhwb3J0ZWQgZnVuY3Rpb25zLCBmaXggZGF0YSB0eXBlcwoJCgkqIGRvYy9mb250Y29uZmlnLWRldmVsLnNnbWw6CglBZGQgbWlzc2luZyBwYXR0ZXJuIGVsZW1lbnRzLgoJCgkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKCUFkZCBtaXNzaW5nIHBhdHRlcm4gZWxlbWVudHMuICBEb2N1bWVudCBjb25mLmQgdXNhZ2UsCgljbGFyaWZ5IGF2YWlsYWJsZSBvcnRob2dyYXBoeSBsaXN0LiAgRml4IHNvbWUgY29uZmlnIGZpbGUKCWF0dHJpYnV0ZXMuICBDb21wbGV0ZSBsaXN0IG9mIGNvbnN0YW50cy4KCQoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCU1hcmsgRkNfU09VUkNFIGRlcHJlY2F0ZWQuCgkKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSk6CglEb24ndCBzZXQgRkNfU09VUkNFIGFueSBsb25nZXIuCgoyMDA1LTAyLTI4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZi5kL01ha2VmaWxlLmFtOgoJKiBjb25mLmQvUkVBRE1FOgoJKiBjb25mLmQvbm8tYml0bWFwcy5jb25mOgoJKiBjb25mLmQvc3ViLXBpeGVsLmNvbmY6CgkqIGNvbmYuZC95ZXMtYml0bWFwcy5jb25mOgoJKiBjb25maWd1cmUuaW46CglDcmVhdGUgcHJvdG90eXBlIC9ldGMvZm9udHMvY29uZi5kIGRpcmVjdG9yeSB3aXRoIGEgZmV3CglzYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlcy4KCURlcHJlY2F0ZSB1c2Ugb2YgbG9jYWwuY29uZiBmb3IgbG9jYWwgY3VzdG9taXphdGlvbnMgaW4gZmF2b3Igb2YKCXRoaXMgZGlyZWN0b3J5IGJhc2VkIHNjaGVtZSB3aGljaCBpcyBtb3JlIGVhc2lseSBpbnRlZ3JhdGVkIGludG8KCWluc3RhbGxhdGlvbiBzeXN0ZW1zLgoJCgkqIHNyYy9mY25hbWUuYzoKCVRhZyBGQ19FTUJPTERFTiBhcyBhIGJvb2xlYW4gdmFyaWFibGUKCjIwMDUtMDItMTAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCglyZXZpZXdlZCBieTogcGJvcmVsbGlAa2F0YW1haWwuY29tCgoJKiBzcmMvZmNkaXIuYzogKEZjRmlsZVNjYW5Db25maWcpOgoJRnJlZSBwYXR0ZXJucyBmcm9tIGZvbnRzIHdoaWNoIGFyZSByZWplY3RlZCBieSBjb25maWd1cmF0aW9uCgkoYnVnICMyNTE4KQoKMjAwNS0wMS0yOCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJVXBkYXRlIGZvciB2ZXJzaW9uIDIuMi45OQoKMjAwNS0wMS0yOCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogUkVBRE1FOgoJQWRkIGEgZmV3IHBvaW50ZXJzICgjMjI4NCwgIzIyODUpCgoyMDA1LTAxLTI4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjbmFtZS5jOiAoRmNOYW1lQm9vbCk6CgkqIHNyYy9mY3htbC5jOiAoRmNUeXBlTmFtZSksIChGY1R5cGVjaGVja1ZhbHVlKSwgKEZjVHlwZWNoZWNrRXhwciksCgkoRmNUZXN0Q3JlYXRlKSwgKEZjRWRpdENyZWF0ZSksIChGY0NvbmZpZ0xleEJvb2wpLCAoRmNQYXJzZUJvb2wpLAoJKEZjUGFyc2VBbGlhcyksIChGY1BhcnNlSW5jbHVkZSksIChGY1BhcnNlVGVzdCksIChGY1BhcnNlRWRpdCk6CglQb2xpdGUgdHlwZWNoZWNraW5nIGZvciB0ZXN0IGFuZCBlZGl0IGV4cHJlc3Npb25zLiAgSGVscHMKCWNhdGNoIGVycm9ycyBpbiB0aGUgZm9udCBjb25maWd1cmF0aW9uLiAoYnVnIDIyOSkKCjIwMDUtMDEtMTUgIEFsYW4gQ29vcGVyc21pdGggPGFsYW4uY29vcGVyc21pdGhAc3VuLmNvbT4KCglyZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBjb25maWd1cmUuaW46CglIYXZlIC0td2l0aC1leHBhdCBzZXQgRVhQQVRfQ0ZMQUdTIChidWcgMjI3OCkKCjIwMDUtMDEtMTMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKCUFkZCBTRUUgQUxTTyBzZWN0aW9uIChidWcgMjA4NSkKCQoyMDA1LTAxLTEzICBKLiBBbGkgSGFybG93IDxhbGlAanVpYmxleC5jby51az4KCglyZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5pbjoKCSogZG9jL01ha2VmaWxlLmFtOgoJKiBmYy1jYXNlL01ha2VmaWxlLmFtOgoJKiBmYy1nbHlwaG5hbWUvTWFrZWZpbGUuYW06CgkqIGZjLWxhbmcvTWFrZWZpbGUuYW06CgkqIHNyYy9mb250Y29uZmlnLmRlZi5pbjoKCUNyb3NzIGNvbXBpbGluZyBmaXhlcyAoYnVnIDI4MCkKCjIwMDUtMDEtMTMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGZvbnRzLmNvbmYuaW46CglVcGRhdGUgYmxhbmtzIGxpc3QgKENsb3NlcyBidWcgODYpCgoyMDA1LTAxLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBzcmMvZmNjYWNoZS5jOiAoRmNDYWNoZUZvbnRTZXRBZGQpOgoJVmVyaWZ5IHRoYXQgZXZlcnkgZm9udCBwYXR0ZXJuIGxvYWRlZCBmcm9tIGNhY2hlIGhhcwoJYm90aCBGQ19GSUxFIGFuZCBGQ19GQU1JTFkgZW50cmllcy4KCUF0dGVtcHQgdG8gZml4IGJ1ZyAjMjIxOS4KCjIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCVVwZGF0ZSBmb3IgdmVyc2lvbiAyLjIuOTgKCjIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJRG9jdW1lbnQgQVNDSUkgbGltaXRhdGlvbnMgb2YgRmMgY2hhcmFjdGVyIGNvbnZlcnNpb24gbWFjcm9zCgkqIHNyYy9mY3N0ci5jOiAoRmNTdHJDYXNlV2Fsa2VyTG9uZyksIChGY1N0ckRvd25jYXNlKToKCUZpeCBvZmYtYnktb25lIGVycm9yIGluIHV0Zi04IGNhc2Ugd2Fsa2luZyBjb2RlLgoJQWRkIEZjU3RyRG93bmNhc2UgKHVzZWZ1bCBmb3IgdGVzdGluZyBjYXNlIGNvbnZlcnNpb24gZnVuY3Rpb25zKQoKMjAwNC0xMi0yOSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogLmN2c2lnbm9yZToKCSogZmMtY2FzZS8uY3ZzaWdub3JlOgoJY2xlYW4gdXAgQ1ZTIGlnbm9yZSBsaXN0cwoJKiBmYy1sYW5nL2lzby0zMTY2LnR4dDoKCUFkZCB0ZXJyaXRvcnkgZGF0YWJhc2UKCQoyMDA0LTEyLTI5ICAgVG9yIEFuZGVyc3NvbiA8dG9yLmFuZGVyc3NvbkBnbWFpbC5jb20+CgoJUmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQKCQoJKiBmYy1sYW5nL2tvLm9ydGg6CglSZW1vdmUgSGFuIGNoYXJhY3RlcnMgZnJvbSBLb3JlYW4gb3J0aG9ncmFwaHkKCjIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJUmVvcmRlciB1dGlsaXR5IHByb2dyYW1zIHRvIG1ha2Ugc3VyZSBmYy1jYXNlIGlzIHJ1biBiZWZvcmUgZmMtbGFuZwoJYXMgZmMtbGFuZyB1c2VzIGZjc3RyLmMgd2hpY2ggdXNlcyBmY2Nhc2UuaAoJKiBmb250cy5jb25mLmluOgoJRml4IGJyb2tlbiBYTUwKCjIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGZvbnRzLmNvbmYuaW46CglBZG9wdCBzb21lIFJlZEhhdCBzdWdnZXN0aW9ucyBmb3Igc3RhbmRhcmQgZm9udCBjb25maWd1cmF0aW9uLgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5pbjoKCSogZmMtY2FzZS9DYXNlRm9sZGluZy50eHQ6CgkqIGZjLWNhc2UvTWFrZWZpbGUuYW06CgkqIGZjLWNhc2UvZmMtY2FzZS5jOiAocGFuaWMpLCAoYWRkRm9sZCksICh1Y3M0X3RvX3V0ZjgpLAoJKHV0Zjhfc2l6ZSksIChhZGRDaGFyKSwgKGZvbGRFeHRlbmRzKSwgKGNhc2VfZm9sZF9tZXRob2RfbmFtZSksCgkoZHVtcCksIChwYXJzZVJhdyksIChjYXNlRm9sZFJlYWRSYXcpLCAobWFpbik6CgkqIGZjLWNhc2UvZmNjYXNlLnRtcGwuaDoKCUFkZCBuZXcgaGVscGVyIHByb2dyYW0gJ2ZjLWNhc2UnIHRvIGNvbnN0cnVjdCBjYXNlIGZvbGRpbmcKCXRhYmxlcyBmcm9tIHN0YW5kYXJkIFVuaWNvZGUgQ2FzZUZvbGRpbmcudHh0IGZpbGUKCQoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjbGlzdC5jOiAoRmNMaXN0VmFsdWVIYXNoKToKCSogc3JjL2Zjc3RyLmM6IChGY1N0ckNhc2VXYWxrZXJJbml0KSwgKEZjU3RyQ2FzZVdhbGtlckxvbmcpLAoJKEZjU3RyQ2FzZVdhbGtlck5leHQpLCAoRmNTdHJDYXNlV2Fsa2VyTmV4dElnbm9yZUJsYW5rcyksCgkoRmNTdHJDbXBJZ25vcmVDYXNlKSwgKEZjU3RyQ21wSWdub3JlQmxhbmtzQW5kQ2FzZSksCgkoRmNTdHJIYXNoSWdub3JlQ2FzZSksIChGY1N0cklzQXRJZ25vcmVCbGFua3NBbmRDYXNlKSwKCShGY1N0cklzQXRJZ25vcmVDYXNlKSwgKEZjU3RyU3RySWdub3JlQ2FzZSk6CglSZS1pbXBsZW1lbnQgY2FzZSBpbnNlbnNpdGl2ZSBmdW5jdGlvbnMgd2l0aCBVbmljb2RlCglhd2FyZSB2ZXJzaW9ucyAoaW5jbHVkaW5nIGZ1bGwgY2FzZSBmb2xkaW5nIG1hcHBpbmdzKQoKMjAwNC0xMi0xMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCXJldmlld2VkIGJ5OiBPd2VuIFRheWxvciA8b3RheWxvckByZWRoYXQuY29tPgoKCSogc3JjL2ZjbWF0Y2guYzogKEZjRm9udFNldFNvcnQpOgoJSSBjaGFuZ2VkIEZjRm9udFNldFNvcnQgdG8gcmVzcGVjdCB0aGUgZ2VuZXJpYyBhbGlhc2VzIGJldHRlcgoJaW4gdGhlIGZhY2Ugb2YgbGFuZ3VhZ2UgbWF0Y2hpbmcuCgkKCVdoYXQgSSBkaWQgd2FzIHRvIGFtbWVuZCB0aGUgc3RyaWN0IHNvcnQgb3JkZXIgdXNlZCBieSBGY0ZvbnRTb3J0IHNvCgl0aGF0IGl0ICdzYXRpc2ZpZXMnIHRoZSBsYW5ndWFnZSBzcGVjaWZpZWQgaW4gdGhlIHBhdHRlcm4gYnkgbG9jYXRpbmcKCXRoZSBiZXN0IG1hdGNoaW5nIGZvbnQgc3VwcG9ydGluZyBlYWNoIHBhdHRlcm4gbGFuZ3VhZ2UgYW5kIHRoZW4KCWlnbm9yZXMgbGFuZ3VhZ2UgaW4gdGhlIHJlbWFpbmluZyBmb250cyBmb3IgcHVycG9zZXMgb2YgbWF0Y2hpbmcuCgoJU28sIHdoZW4gYXNraW5nIGZvciAnc2FuczpsYW5nPWVuJywgeW91J2xsIGdldCBhbiBFbmdsaXNoIGZvbnQgZmlyc3QsCglhbmQgdGhlbiB0aGUgcmVtYWluaW5nIGZvbnRzIHNvcnRlZCB3aXRoIHJlc3BlY3QgdG8gdGhlICdzYW5zJyBhbGlhcwoJYWxvbmUgLS0gcHVzaGluZyBLb2NoaSBmb250cyBhaGVhZCBvZiBvdGhlciBFbmdsaXNoLXN1cHBvcnRpbmcgSGFuIGZvbnRzLgoKMjAwNC0xMi0xMCAgSmFrdWIgUGF2ZWxlayA8amFrdWIucGF2ZWxla0Bub2tpYS5jb20+CgoJcmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJKiBmb250cy5jb25mLmluOgoKCUNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byByZXF1ZXN0IHN5bnRoZXRpYyBlbWJvbGRlbmluZyBvZgoJZm9udHMuICBUaGUgYWN0dWFsIGVtYm9sZGVuaW5nIGNvZGUgd2lsbCBsaXZlIGluIFhmdC4KCjIwMDQtMTItMDkgIEpvaG4gVGhhY2tlciA8dGhhY2tlckBtYXRoLmNvcm5lbGwuZWR1PgoKCXJldmlld2VkIGJ5OiBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBmYy1sYW5nL3J1Lm9ydGg6CgkKCUN1cnJlbnRseSBSdXNzaWFuIChydSkgcmVxdWlyZXMgMDQwNiBhbmQgMDQ1NiAo0IYgYW5kINGWKSwgYnV0IHRoZXNlCgl3ZXJlIGVsaW1pbmF0ZWQgaW4gUnVzc2lhbiBpbiAxOTE4IGluIGZhdm9yIG9mIDA0MTggYW5kIDA0MzggKNCYIGFuZAoJ0LgpLCBhbmQgZG9uJ3QgZXZlbiBhcHBlYXIgaW4gS09JOC1SLiAgKFRoZSBoeXBvdGhlc2lzIHRoYXQgdGhleQoJZG9uJ3QgYXBwZWFyIGluIEtPSTgtUiBkdWUgdG8gdGhlaXIgc2ltaWxhcml0eSB3aXRoIExhdGluIEkgYW5kIGkgaXMKCWVsaW1pbmF0ZWQgYnkgdGhlaXIgcHJlc2VuY2UgaW4gS09JOC1VLikgIEkgaGF2ZSBhIGNvdXBsZSBvZiBmb250cwoJd2l0aCBSdXNzaWFuIHN1cHBvcnQgdGhhdCBkb24ndCBoYXZlIHRoZSBsZXR0ZXIuCgoJVGhlcmVmb3JlLCAwNDA2IGFuZCAwNDU2IHNob3VsZCBiZSByZW1vdmVkIGZyb20gb3IgY29tbWVudGVkIG91dCBvZgoJcnUub3J0aAoKMjAwNC0xMi0wNiAgbWljaGFlbCBtZWVrcyA8bW1lZWtzQG5vdmVsbC5jb20+CgoJUmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy9mY2luaXQuYzogKEZjTWVtUmVwb3J0KToKCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY2xpc3QuYzogKEZjT2JqZWN0U2V0QWRkKToKCSogc3JjL2ZjcGF0LmM6IChGY1ZhbHVlTGlzdEVudENyZWF0ZSksIChGY1BhdHRlcm5CYXNlRnJlZXplKSwKCShGY1BhdHRlcm5JbnNlcnRFbHQpLCAoRmNQYXR0ZXJuRXF1YWwpLCAoRmNPYmplY3RTdGF0aWNOYW1lKToKCSogc3JjL2ZjeG1sLmM6IChGY1BhcnNlUGF0ZWx0KToKCW1lbW9pemUgc3RyaW5ncyBhbmQgc2hhcmUgYSBzaW5nbGUgY29weSBmb3IgYWxsIHVzZXMuICBOb3RlIHRoYXQKCXRoaXMgY291bGQgYmUgaW1wcm92ZWQgZnVydGhlciBieSB1c2luZyBzdGF0aWNhbGx5IGFsbG9jYXRlZCBibG9ja3MKCWFuZCBnbHVpbmcgbXVsdGlwbGUgc3RyaW5ncyB0b2dldGhlciwgYnV0IEknbSBiYXNpY2FsbHkgbGF6eS4KCUluIG15IGVudmlyb25tZW50IHdpdGggODAwIGZvbnQgZmlsZXMsIEkgZ2V0IGEgc2F2aW5ncyBvZiBhYm91dCA5MEtCLgoKMjAwNC0xMi0wNiAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogQ09QWUlORzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZy9NYWtlZGVmcy5pbjoKCSogY29uZmlndXJlLmluOgoJKiBkb2MvZWRpdC1zZ21sLmM6CgkqIGRvYy9mY2F0b21pYy5mbmNzOgoJKiBkb2MvZmNibGFua3MuZm5jczoKCSogZG9jL2ZjY2hhcnNldC5mbmNzOgoJKiBkb2MvZmNjb25maWcuZm5jczoKCSogZG9jL2ZjY29uc3RhbnQuZm5jczoKCSogZG9jL2ZjZmlsZS5mbmNzOgoJKiBkb2MvZmNmb250c2V0LmZuY3M6CgkqIGRvYy9mY2ZyZWV0eXBlLmZuY3M6CgkqIGRvYy9mY2luaXQuZm5jczoKCSogZG9jL2ZjbWF0cml4LmZuY3M6CgkqIGRvYy9mY29iamVjdHNldC5mbmNzOgoJKiBkb2MvZmNvYmplY3R0eXBlLmZuY3M6CgkqIGRvYy9mY3BhdHRlcm4uZm5jczoKCSogZG9jL2Zjc3RyaW5nLmZuY3M6CgkqIGRvYy9mY3N0cnNldC5mbmNzOgoJKiBkb2MvZmN2YWx1ZS5mbmNzOgoJKiBkb2MvZm9udGNvbmZpZy1kZXZlbC5zZ21sOgoJKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6CgkqIGRvYy9mdW5jLnNnbWw6CgkqIGRvYy92ZXJzaW9uLnNnbWwuaW46CgkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgoJKiBmYy1jYWNoZS9mYy1jYWNoZS5jOgoJKiBmYy1nbHlwaG5hbWUvTWFrZWZpbGUuYW06CgkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzoKCSogZmMtZ2x5cGhuYW1lL2ZjZ2x5cGhuYW1lLnRtcGwuaDoKCSogZmMtbGFuZy9NYWtlZmlsZS5hbToKCSogZmMtbGFuZy9hYS5vcnRoOgoJKiBmYy1sYW5nL2FiLm9ydGg6CgkqIGZjLWxhbmcvYWYub3J0aDoKCSogZmMtbGFuZy9hbS5vcnRoOgoJKiBmYy1sYW5nL2FyLm9ydGg6CgkqIGZjLWxhbmcvYXN0Lm9ydGg6CgkqIGZjLWxhbmcvYXZhLm9ydGg6CgkqIGZjLWxhbmcvYXkub3J0aDoKCSogZmMtbGFuZy9hei5vcnRoOgoJKiBmYy1sYW5nL2F6X2lyLm9ydGg6CgkqIGZjLWxhbmcvYmEub3J0aDoKCSogZmMtbGFuZy9iYW0ub3J0aDoKCSogZmMtbGFuZy9iZS5vcnRoOgoJKiBmYy1sYW5nL2JnLm9ydGg6CgkqIGZjLWxhbmcvYmgub3J0aDoKCSogZmMtbGFuZy9iaG8ub3J0aDoKCSogZmMtbGFuZy9iaS5vcnRoOgoJKiBmYy1sYW5nL2Jpbi5vcnRoOgoJKiBmYy1sYW5nL2JuLm9ydGg6CgkqIGZjLWxhbmcvYm8ub3J0aDoKCSogZmMtbGFuZy9ici5vcnRoOgoJKiBmYy1sYW5nL2JzLm9ydGg6CgkqIGZjLWxhbmcvYnVhLm9ydGg6CgkqIGZjLWxhbmcvY2Eub3J0aDoKCSogZmMtbGFuZy9jZS5vcnRoOgoJKiBmYy1sYW5nL2NoLm9ydGg6CgkqIGZjLWxhbmcvY2htLm9ydGg6CgkqIGZjLWxhbmcvY2hyLm9ydGg6CgkqIGZjLWxhbmcvY28ub3J0aDoKCSogZmMtbGFuZy9jcy5vcnRoOgoJKiBmYy1sYW5nL2N1Lm9ydGg6CgkqIGZjLWxhbmcvY3Yub3J0aDoKCSogZmMtbGFuZy9jeS5vcnRoOgoJKiBmYy1sYW5nL2RhLm9ydGg6CgkqIGZjLWxhbmcvZGUub3J0aDoKCSogZmMtbGFuZy9kei5vcnRoOgoJKiBmYy1sYW5nL2VsLm9ydGg6CgkqIGZjLWxhbmcvZW4ub3J0aDoKCSogZmMtbGFuZy9lby5vcnRoOgoJKiBmYy1sYW5nL2VzLm9ydGg6CgkqIGZjLWxhbmcvZXQub3J0aDoKCSogZmMtbGFuZy9ldS5vcnRoOgoJKiBmYy1sYW5nL2ZhLm9ydGg6CgkqIGZjLWxhbmcvZmMtbGFuZy5jOgoJKiBmYy1sYW5nL2ZjLWxhbmcubWFuOgoJKiBmYy1sYW5nL2ZjbGFuZy50bXBsLmg6CgkqIGZjLWxhbmcvZmkub3J0aDoKCSogZmMtbGFuZy9mai5vcnRoOgoJKiBmYy1sYW5nL2ZvLm9ydGg6CgkqIGZjLWxhbmcvZnIub3J0aDoKCSogZmMtbGFuZy9mdWwub3J0aDoKCSogZmMtbGFuZy9mdXIub3J0aDoKCSogZmMtbGFuZy9meS5vcnRoOgoJKiBmYy1sYW5nL2dhLm9ydGg6CgkqIGZjLWxhbmcvZ2Qub3J0aDoKCSogZmMtbGFuZy9nZXoub3J0aDoKCSogZmMtbGFuZy9nbC5vcnRoOgoJKiBmYy1sYW5nL2duLm9ydGg6CgkqIGZjLWxhbmcvZ3Uub3J0aDoKCSogZmMtbGFuZy9ndi5vcnRoOgoJKiBmYy1sYW5nL2hhLm9ydGg6CgkqIGZjLWxhbmcvaGF3Lm9ydGg6CgkqIGZjLWxhbmcvaGUub3J0aDoKCSogZmMtbGFuZy9oaS5vcnRoOgoJKiBmYy1sYW5nL2hvLm9ydGg6CgkqIGZjLWxhbmcvaHIub3J0aDoKCSogZmMtbGFuZy9odS5vcnRoOgoJKiBmYy1sYW5nL2h5Lm9ydGg6CgkqIGZjLWxhbmcvaWEub3J0aDoKCSogZmMtbGFuZy9pYm8ub3J0aDoKCSogZmMtbGFuZy9pZC5vcnRoOgoJKiBmYy1sYW5nL2llLm9ydGg6CgkqIGZjLWxhbmcvaWsub3J0aDoKCSogZmMtbGFuZy9pby5vcnRoOgoJKiBmYy1sYW5nL2lzLm9ydGg6CgkqIGZjLWxhbmcvaXNvNjM5LTI6CgkqIGZjLWxhbmcvaXQub3J0aDoKCSogZmMtbGFuZy9pdS5vcnRoOgoJKiBmYy1sYW5nL2phLm9ydGg6CgkqIGZjLWxhbmcva2Eub3J0aDoKCSogZmMtbGFuZy9rYWEub3J0aDoKCSogZmMtbGFuZy9raS5vcnRoOgoJKiBmYy1sYW5nL2trLm9ydGg6CgkqIGZjLWxhbmcva2wub3J0aDoKCSogZmMtbGFuZy9rbS5vcnRoOgoJKiBmYy1sYW5nL2tuLm9ydGg6CgkqIGZjLWxhbmcva28ub3J0aDoKCSogZmMtbGFuZy9rb2sub3J0aDoKCSogZmMtbGFuZy9rcy5vcnRoOgoJKiBmYy1sYW5nL2t1Lm9ydGg6CgkqIGZjLWxhbmcva3VfaXIub3J0aDoKCSogZmMtbGFuZy9rdW0ub3J0aDoKCSogZmMtbGFuZy9rdi5vcnRoOgoJKiBmYy1sYW5nL2t3Lm9ydGg6CgkqIGZjLWxhbmcva3kub3J0aDoKCSogZmMtbGFuZy9sYS5vcnRoOgoJKiBmYy1sYW5nL2xiLm9ydGg6CgkqIGZjLWxhbmcvbGV6Lm9ydGg6CgkqIGZjLWxhbmcvbG8ub3J0aDoKCSogZmMtbGFuZy9sdC5vcnRoOgoJKiBmYy1sYW5nL2x2Lm9ydGg6CgkqIGZjLWxhbmcvbWcub3J0aDoKCSogZmMtbGFuZy9taC5vcnRoOgoJKiBmYy1sYW5nL21pLm9ydGg6CgkqIGZjLWxhbmcvbWsub3J0aDoKCSogZmMtbGFuZy9tbC5vcnRoOgoJKiBmYy1sYW5nL21uLm9ydGg6CgkqIGZjLWxhbmcvbW8ub3J0aDoKCSogZmMtbGFuZy9tci5vcnRoOgoJKiBmYy1sYW5nL210Lm9ydGg6CgkqIGZjLWxhbmcvbXkub3J0aDoKCSogZmMtbGFuZy9uYi5vcnRoOgoJKiBmYy1sYW5nL25kcy5vcnRoOgoJKiBmYy1sYW5nL25lLm9ydGg6CgkqIGZjLWxhbmcvbmwub3J0aDoKCSogZmMtbGFuZy9ubi5vcnRoOgoJKiBmYy1sYW5nL25vLm9ydGg6CgkqIGZjLWxhbmcvbnkub3J0aDoKCSogZmMtbGFuZy9vYy5vcnRoOgoJKiBmYy1sYW5nL29tLm9ydGg6CgkqIGZjLWxhbmcvb3Iub3J0aDoKCSogZmMtbGFuZy9vcy5vcnRoOgoJKiBmYy1sYW5nL3BsLm9ydGg6CgkqIGZjLWxhbmcvcHNfYWYub3J0aDoKCSogZmMtbGFuZy9wc19way5vcnRoOgoJKiBmYy1sYW5nL3B0Lm9ydGg6CgkqIGZjLWxhbmcvcm0ub3J0aDoKCSogZmMtbGFuZy9yby5vcnRoOgoJKiBmYy1sYW5nL3J1Lm9ydGg6CgkqIGZjLWxhbmcvc2Eub3J0aDoKCSogZmMtbGFuZy9zYWgub3J0aDoKCSogZmMtbGFuZy9zY28ub3J0aDoKCSogZmMtbGFuZy9zZS5vcnRoOgoJKiBmYy1sYW5nL3NlbC5vcnRoOgoJKiBmYy1sYW5nL3NoLm9ydGg6CgkqIGZjLWxhbmcvc2kub3J0aDoKCSogZmMtbGFuZy9zay5vcnRoOgoJKiBmYy1sYW5nL3NsLm9ydGg6CgkqIGZjLWxhbmcvc20ub3J0aDoKCSogZmMtbGFuZy9zbWEub3J0aDoKCSogZmMtbGFuZy9zbWoub3J0aDoKCSogZmMtbGFuZy9zbW4ub3J0aDoKCSogZmMtbGFuZy9zbXMub3J0aDoKCSogZmMtbGFuZy9zby5vcnRoOgoJKiBmYy1sYW5nL3NxLm9ydGg6CgkqIGZjLWxhbmcvc3Iub3J0aDoKCSogZmMtbGFuZy9zdi5vcnRoOgoJKiBmYy1sYW5nL3N3Lm9ydGg6CgkqIGZjLWxhbmcvc3lyLm9ydGg6CgkqIGZjLWxhbmcvdGEub3J0aDoKCSogZmMtbGFuZy90ZS5vcnRoOgoJKiBmYy1sYW5nL3RnLm9ydGg6CgkqIGZjLWxhbmcvdGgub3J0aDoKCSogZmMtbGFuZy90aV9lci5vcnRoOgoJKiBmYy1sYW5nL3RpX2V0Lm9ydGg6CgkqIGZjLWxhbmcvdGlnLm9ydGg6CgkqIGZjLWxhbmcvdGsub3J0aDoKCSogZmMtbGFuZy90bC5vcnRoOgoJKiBmYy1sYW5nL3RuLm9ydGg6CgkqIGZjLWxhbmcvdG8ub3J0aDoKCSogZmMtbGFuZy90ci5vcnRoOgoJKiBmYy1sYW5nL3RzLm9ydGg6CgkqIGZjLWxhbmcvdHQub3J0aDoKCSogZmMtbGFuZy90dy5vcnRoOgoJKiBmYy1sYW5nL3R5di5vcnRoOgoJKiBmYy1sYW5nL3VnLm9ydGg6CgkqIGZjLWxhbmcvdWsub3J0aDoKCSogZmMtbGFuZy91ci5vcnRoOgoJKiBmYy1sYW5nL3V6Lm9ydGg6CgkqIGZjLWxhbmcvdmVuLm9ydGg6CgkqIGZjLWxhbmcvdmkub3J0aDoKCSogZmMtbGFuZy92by5vcnRoOgoJKiBmYy1sYW5nL3ZvdC5vcnRoOgoJKiBmYy1sYW5nL3dhLm9ydGg6CgkqIGZjLWxhbmcvd2VuLm9ydGg6CgkqIGZjLWxhbmcvd28ub3J0aDoKCSogZmMtbGFuZy94aC5vcnRoOgoJKiBmYy1sYW5nL3lhcC5vcnRoOgoJKiBmYy1sYW5nL3lpLm9ydGg6CgkqIGZjLWxhbmcveW8ub3J0aDoKCSogZmMtbGFuZy96aF9jbi5vcnRoOgoJKiBmYy1sYW5nL3poX2hrLm9ydGg6CgkqIGZjLWxhbmcvemhfbW8ub3J0aDoKCSogZmMtbGFuZy96aF9zZy5vcnRoOgoJKiBmYy1sYW5nL3poX3R3Lm9ydGg6CgkqIGZjLWxhbmcvenUub3J0aDoKCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKCSogZmMtbGlzdC9mYy1saXN0LmM6CgkqIGZjLW1hdGNoL01ha2VmaWxlLmFtOgoJKiBmYy1tYXRjaC9mYy1tYXRjaC4xOgoJKiBmYy1tYXRjaC9mYy1tYXRjaC5jOgoJKiBmb250Y29uZmlnL2ZjZnJlZXR5cGUuaDoKCSogZm9udGNvbmZpZy9mY3ByaXZhdGUuaDoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgkqIHNyYy9mY2F0b21pYy5jOgoJKiBzcmMvZmNibGFua3MuYzoKCSogc3JjL2ZjY2FjaGUuYzoKCSogc3JjL2ZjY2ZnLmM6CgkqIHNyYy9mY2NoYXJzZXQuYzoKCSogc3JjL2ZjZGJnLmM6CgkqIHNyYy9mY2RlZmF1bHQuYzoKCSogc3JjL2ZjZGlyLmM6CgkqIHNyYy9mY2ZyZWV0eXBlLmM6CgkqIHNyYy9mY2ZzLmM6CgkqIHNyYy9mY2luaXQuYzoKCSogc3JjL2ZjaW50Lmg6CgkqIHNyYy9mY2xhbmcuYzoKCSogc3JjL2ZjbGlzdC5jOgoJKiBzcmMvZmNtYXRjaC5jOgoJKiBzcmMvZmNtYXRyaXguYzoKCSogc3JjL2ZjbmFtZS5jOgoJKiBzcmMvZmNwYXQuYzoKCSogc3JjL2Zjc3RyLmM6CgkqIHNyYy9mY3htbC5jOgoJQ2hhbmdlIGZpbGVzIGZyb20gSVNPLUxhdGluLTEgdG8gVVRGLTgKCjIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIElOU1RBTEw6CglVcGRhdGUgbGlua3MgdG8gbmV3IGZyZWVkZXNrdG9wLm9yZyBsb2NhdGlvbnMKCSogTWFrZWZpbGUuYW06CglBZGQgdW5pbnN0YWxsLWxvY2FsIHRvIGdldCByaWQgb2YgZm9udHMuY29uZiBhbmQgbG9jYWwuY29uZiBpZiB0aGV5CgltYXRjaCB0aGUgZGlzdHJpYnV0ZWQgdmVyc2lvbnMuICBGaXhlcyAnbWFrZSBkaXN0Y2hlY2snCgoyMDA0LTEyLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBSRUFETUU6CgkqIGNvbmZpZ3VyZS5pbjoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CglVcGRhdGVzIGZvciB2ZXJzaW9uIDIuMi45NwoKMjAwNC0xMi0wNCAgT3dlbiBUYXlsb3IgIDxvdGF5bG9yQHJlZGhhdC5jb20+CgoJcmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGZjLWNhY2hlL2ZjLWNhY2hlLmM6IChtYWluKToKCVNsZWVwIGZvciB0d28gc2Vjb25kcyBiZWZvcmUgZXhpdGluZyB0byBtYWtlIHN1cmUgdGltZXN0YW1wcwoJZm9yIGZ1dHVyZSBjaGFuZ2VzIGhhdmUgZGlzdGluY3QgbW9kIHRpbWVzIGluIHRoZSBmaWxlIHN5c3RlbS4KCUJ1ZyAjMTk4Mi4KCSogZmMtbGFuZy9wYS5vcnRoOgoJQWRkIFB1bmphYmkgb3J0aG9ncmFwaHkuICBCdWcgIzE2NzEuCgoyMDA0LTEyLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBmb250cy5jb25mLmluOgoJSnVzdCByZW1vdmUgdGhlIEZDX0ZPTlREQVRFIC0tIGl0IGhhcyBsb2NhbGUgaXNzdWVzIGFuZAoJYW5ub3lzIHJlZGhhdCBtdWx0aS1hcmNoIGluc3RhbGxzLiAgTm93IHRoYXQgYWxsIFggZm9udHMgYXJlCglpbmNsdWRlZCB3aXRob3V0IHByZWp1ZGljZSwgdGhlIGNoYW5jZXMgb2YgdGhlIGRhdGUgYmVpbmcgYXQKCWFsbCBpbnRlcmVzdGluZyBhcmUgcmF0aGVyIGxpbWl0ZWQuICBCdWcgIzUwNS4KCSogc3JjL01ha2VmaWxlLmFtOgoJQWRkIGNvcHlyaWdodCBhbmQgbGljZW5zZQoKMjAwNC0xMi0wNCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogY29uZmlndXJlLmluOgoJQ2hhbmdlIGRlZmF1bHQgc2V0IG9mIGZvbnRzIHRvIGluY2x1ZGUgYWxsIG9mCgkvdXNyL1gxMVI2L2xpYi9YMTEvZm9udHMgKG9yIHdoZXJldmVyIHRoZSBYIGZvbnRzIGFyZSBsb2NhdGVkKS4KCSogZG9jL2ZvbnRjb25maWctdXNlci5zZ21sOgoJRG9jdW1lbnQgbmV3IDxpbmNsdWRlPmRpcmVjdG9yeS1uYW1lPC9pbmNsdWRlPiBzZW1hbnRpY3MKCSogZm9udHMuY29uZi5pbjoKCWFkZCA8aW5jbHVkZSBpZ25vcmVfbWlzc2luZz0ieWVzIj5jb25mLmQ8L2luY2x1ZGU+CgkqIGxvY2FsLmNvbmY6CglBZGQgc2VsZWN0Zm9udCB0byBpZ25vcmUgYml0bWFwIGZvbnRzLCBhZGQgY29tbWVudCBmb3IKCXNlbGVjdGZvbnQgd2hpY2ggYWNjZXB0cyBiaXRtYXAgZm9udHMuCgkqIHNyYy9mY2Rpci5jOgoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjeG1sLmM6IChGY0NvbmZpZ1BhcnNlQW5kTG9hZERpciksIChGY0NvbmZpZ1BhcnNlQW5kTG9hZCk6CglBbGxvdyA8aW5jbHVkZT4gY29uZmlndXJhdGlvbiBlbGVtZW50cyB0byByZWZlcmVuY2UgZGlyZWN0b3JpZXMuCglQYXJzZSBhbmQgbG9hZCBhbGwgZmlsZXMgb2YgdGhlIGZvcm0gWzAtOV0qIGluIHNvcnRlZCBvcmRlci4KCjIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIGF1dG9nZW4uc2g6CglSZXBvcnQgY29tbWFuZCBsaW5lIGZvciAkc3JjZGlyL2NvbmZpZ3VyZSBhY2N1cmF0ZWx5LgoJQnVnICMyMTIuCgoyMDA0LTEyLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNGcmVlVHlwZVF1ZXJ5KToKCUNoZWNrIGZvciBub24tZW1wdHkgZmFjZS0+ZmFtaWx5X25hbWUgYW5kIGZhY2UtPnN0eWxlX25hbWUKCWJlZm9yZSB1c2luZyB0aG9zZSBmb3IgdGhlIGZvbnQuICBFbXB0eSBuYW1lcyBtYXRjaCBldmVyeXRoaW5nLgoJQnVnICMyMTAuCgoyMDA0LTEyLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNGcmVlVHlwZVF1ZXJ5KToKCSogc3JjL2ZjbmFtZS5jOgoJQ3JlYXRlIEZDX0ZPTlRGT1JNQVQgZnJvbSBGVF9HZXRfWDExX0ZvbnRfRm9ybWF0IGZ1bmN0aW9uIHdoZXJlCglhdmFpbGFibGUuICBUaGlzIHByb3ZpZGVzIGZvbnQgZmlsZSBmb3JtYXQgaW5mb3JtYXRpb24gKEJERiwgVHlwZSAxLAoJUENGLCBUcnVlVHlwZSkgZm9yIGVhY2ggZm9udC4gIENsb3NlcyAjMTA5LgoKMjAwNC0xMi0wNCAgRGFuaWVsIEdsYXNzZXkgPGRhbmdsYXNzZXlAbnRsd29ybGQuY29tPgoKCXJldmlld2VkIGJ5OiBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6CglGaXggdHlwby4KCQoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSksIChhZGR0YWcpLCAoY29tcGFyZXVsb25nKSwKCShHZXRTY3JpcHRUYWdzKSwgKEZjRm9udENhcGFiaWxpdGllcyk6CgkqIHNyYy9mY25hbWUuYzoKCUFkZCBkZXRlY3Rpb24gZm9yIGZvbnQgY2FwYWJpbGl0aWVzIChidWcgIzEwNSkKCjIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJTW92ZSBleGlzdGluZyBmb250cy5jb25mIHRvIGZvbnRzLmNvbmYuYmFrCgkKCSogY29uZmlndXJlLmluOgoJQWRkIGRldGVjdGlvbiBvZiBpY29udgoJCgkqIGRvYy9mY3BhdHRlcm4uZm5jczoKCSogZG9jL2ZvbnRjb25maWctZGV2ZWwuc2dtbDoKCSogZG9jL2ZvbnRjb25maWctdXNlci5zZ21sOgoJKiBmb250cy5kdGQ6CglEb2N1bWVudCBuZXcgc2VsZWN0Zm9udCBlbGVtZW50cwoJCgkqIGZjLWxhbmcvbmIub3J0aDoKCVN3aXRjaCB0byBVVEYtOCBpbiBjb21tZW50CgkKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgkqIHNyYy9mY25hbWUuYzoKCUFkZCBmdWxsbmFtZSwgYW5kIGZhbWlseS9zdHlsZS9mdWxsbmFtZSBsYW5ndWFnZSBlbnRyaWVzCgkKCSogc3JjL2ZjY2FjaGUuYzogKEZjQ2FjaGVGb250U2V0QWRkKToKCSogc3JjL2ZjZGlyLmM6IChGY0ZpbGVTY2FuQ29uZmlnKToKCVJlc3BlY3Qgc2VsZWN0Zm9udC8qL2dsb2IKCQoJKiBzcmMvZmNpbnQuaDoKCSogc3JjL2ZjY2ZnLmM6IChGY0NvbmZpZ0NyZWF0ZSksIChGY0NvbmZpZ0Rlc3Ryb3kpLAoJKEZjQ29uZmlnQ29tcGFyZVZhbHVlKSwgKEZjQ29uZmlnUGF0dGVybnNBZGQpLAoJKEZjQ29uZmlnUGF0dGVybnNNYXRjaCksIChGY0NvbmZpZ0FjY2VwdEZvbnQpOgoJKiBzcmMvZmN4bWwuYzogKEZjRWxlbWVudE1hcCksIChGY1ZTdGFja0Rlc3Ryb3kpLAoJKEZjVlN0YWNrUHVzaFBhdHRlcm4pLCAoRmNQb3BFeHByKSwgKEZjUGFyc2VBY2NlcHRSZWplY3RGb250KSwKCShGY1BvcFZhbHVlKSwgKEZjUGFyc2VQYXRlbHQpLCAoRmNQYXJzZVBhdHRlcm4pLCAoRmNFbmRFbGVtZW50KToKCUFkZCBzdXBwb3J0IGZvciBzZWxlY3Rmb250CgkKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjU2ZudE5hbWVUcmFuc2NvZGUpLCAoRmNTZm50TmFtZUxhbmd1YWdlKSwKCShGY1N0cmluZ0luUGF0dGVybkVsZW1lbnQpLCAoRmNGcmVlVHlwZVF1ZXJ5KToKCUFkZCBtdWx0aS1saW5ndWFsIGZhbWlseS9zdHlsZS9mdWxsbmFtZSBzdXBwb3J0CgkKCSogc3JjL2ZjbGlzdC5jOiAoRmNMaXN0UGF0dGVybk1hdGNoQW55KToKCUV4cG9zZSBGY0xpc3RQYXR0ZXJuTWF0Y2hBbnkgKHdoaWNoIHNlbGVjdGZvbnQvKi9wYXR0ZXJuIHVzZXMpCgkKCSogc3JjL2ZjcGF0LmM6IChGY1BhdHRlcm5SZW1vdmUpLCAoRmNQYXR0ZXJuQXBwZW5kKSwKCShGY09iamVjdFN0YXRpY05hbWUpOgoJQWRkIG5ldyBGY1BhdHRlcm5SZW1vdmUvRmNQYXR0ZXJuQXBwZW5kLgoJRmNPYmplY3RTdGF0aWNOYW1lIHN0b3JlcyBjb21wdXRlZCBwYXR0ZXJuIGVsZW1lbnQgbmFtZXMgd2hpY2gKCWFyZSByZXF1aXJlZCB0byBiZSBzdGF0aWMuCgkKMjAwNC0wOS0wOSAiTkFLQU1VUkEgS2VuJ2ljaGkiIDxuYWthbXVyYUBzYnAuZnAuYS51LXRva3lvLmFjLmpwPgoKCXJldmlld2VkIGJ5OiBrZWl0aHAKCgkqIE1ha2VmaWxlLmFtOgoJUmVtb3ZlIHNwdXJpb3VzIC8gYWZ0ZXIgJChERVNURElSKQoKMjAwNC0wNi0zMCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJVXBkYXRlIGZvciAyLjIuOTYKCjIwMDQtMDYtMzAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCglQcm92aWRlZCBieTogTHVib3MgTHVuYWsgPGwubHVuYWtAc3VzZS5jej4KCgkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdVcHRvRGF0ZSk6CglIb3dldmVyIEZjQ29uZmlnVXB0b0RhdGUoKSBkb2Vzbid0IHNlZW0gdG8gd29yay4gU2VlIHRoZSBhdHRhY2hlZAoJcGF0Y2guICBGaXJzdCB0aGVyZSdzIGFuIG9idmlvdXMgbWlzcGxhY2VkIHBhcmVudGhlc2lzIG1ha2luZyBpdAoJcmV0dXJuIGFsd2F5cyBmYWxzZSwgYW5kIHNlY29uZCwgZXZlbiB0aGlzIGNhbGwgZmFpbHMgdG8gZGV0ZWN0IGZvbnQKCWNoYW5nZXMgKGUuZy4gIGFkZGluZyBhIG5ldyBmb250IHRvIAoJL3Vzci9YMTFSNi9saWIvWDExL2ZvbnRzL3RydWV0eXBlKS4gVGhlIHBhdGNoIHNob3VsZCBmaXggdGhhdCBhcwoJd2VsbC4gVGhlIHByb2JsZW0gc2VlbXMgdG8gYmUgdHJpZ2dlcmVkIGJ5IG15IGZvbnRzLmNvbmYgc3BlY2lmeWluZwoJb25seSAvdXNyL1gxMVI2L2xpYi9YMTEvZm9udHMgLCBhbmQgdGhlcmVmb3JlIGNvbmZpZy0+Y29uZmlnRGlycwoJZG9lc24ndCBpbmNsdWRlIHN1YmRpcnMsIHVubGlrZSBjb25maWctPmZvbnREaXJzLgoKMjAwNC0wNi0wMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CglSZW1vdmUgY29tbWEgYXQgZW5kIG9mIEZjUmVzdWx0IGVudW0gZGVmaW5pdGlvbi4KCjIwMDQtMDUtMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIElOU1RBTEw6CglBZGQgc3RlcHMgdG8gbWQ1c3VtIHJlbGVhc2UKCjIwMDQtMDUtMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCVVwZGF0ZSBmb3IgMi4yLjk1CgoyMDA0LTA1LTI5ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCSogc3JjL2ZjbWF0Y2guYzogKEZjRm9udFNldE1hdGNoKToKCUFkZCBGY1Jlc3VsdE91dE9mTWVtb3J5IHRvIHByb3ZpZGUgYW4gYWNjdXJhdGUgZXJyb3Igd2hlbgoJRmNGb250U2V0TWF0Y2ggZmFpbHMgaW4gdGhpcyB3YXkKCQoJKiBzcmMvZmNmcmVldHlwZS5jOgoJTWFrZSAjd2FybmluZyBhYm91dCBsYWNraW5nIHZhcmlvdXMgRnJlZVR5cGUgZmVhdHVyZXMgaW5kaWNhdGUKCXdoaWNoIHZlcnNpb24gdGhvc2UgZmVhdHVyZXMgYXBwZWFyZWQgc28gdXNlcnMga25vdyBob3cgdG8KCWZpeCB0aGUgcHJvYmxlbSAoVGhhbmtzIHRvIEFudG9uIFRyb3Bhc2hrbykKCjIwMDQtMDUtMDUgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0ZyZWVUeXBlQ2hhclNldEFuZFNwYWNpbmcpOgoJUmVwbGFjZSBNSU4vTUFYL0FCUyBtYWNyb3Mgd2hpY2ggaGFwcGVuIHRvIGhhdmUgY29tZQoJZnJvbSBGcmVlVHlwZSB3aXRoIGZvbnRjb25maWctc3BlY2lmaWMgb25lcyAoRkNfKikKCjIwMDQtMDQtMjMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIElOU1RBTEw6CglFeHRlbmQgcmVsZWFzZSBwcmVwYXJhdGlvbiBpbnN0cnVjdGlvbnMgdG8gaW5jbHVkZQoJbm90aWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gc3RlcHMKCjIwMDQtMDQtMjMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFJFQURNRToKCSogY29uZmlndXJlLmluOgoJKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKCVVwZGF0ZSB0byAyLjIuOTQgKDIuMi45MyBzaGlwcGVkIHdpdGggYnJva2VuIGxpYnRvb2wgYml0cykKCjIwMDQtMDQtMjMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIC5jdnNpZ25vcmU6CglJZ25vcmUgYSBmZXcgbW9yZSBhdXRvdG9vbCBmaWxlcwoKMjAwNC0wNC0xNCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogSU5TVEFMTDoKCUFkZCBpbnN0cnVjdGlvbnMgZm9yIGRvaW5nIGEgcmVsZWFzZQoJCgkqIGZvbnRjb25maWcuc3BlYy5pbjoKCWNsZWFuIHVwIC5zcGVjIGZpbGU7IHBlcmhhcHMgdGhpcyB3aWxsIGJlIHVzZWZ1bCB0byBzb21lYm9keS4uLgoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuaW46CgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgoJVXBkYXRlIHRvIDIuMi45MwoJCgkqIGZjLWxhbmcvZmMtbGFuZy5jOgoJTWFrZSAnc2Nhbm9wZW4nIHN0YXRpYyBzbyBHQ0MgZG9lc24ndCB3aGluZSBhYm91dCBsYWNraW5nIHByb3RvdHlwZQoJCgkqIGZjLWdseXBobmFtZS9NYWtlZmlsZS5hbToKCSogZmMtbGFuZy9NYWtlZmlsZS5hbToKCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKCSogZmMtbWF0Y2gvTWFrZWZpbGUuYW06CgkqIHNyYy9NYWtlZmlsZS5hbToKCUFkZCBXQVJOX0NGTEFHUyB0byBwYXNzIC1XIGZsYWdzIGZvciBHQ0Mgc3lzdGVtcwoJCgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY05vdGljZUZvdW5kcnkpLCAoRmNWZW5kb3JNYXRjaCksCgkoRmNWZW5kb3JGb3VuZHJ5KSwgKEZjR2V0UGl4ZWxTaXplKSwgKEZjRnJlZVR5cGVRdWVyeSk6CglDaGFuZ2UgdmFyaW91cyBjaGFyIHR5cGVzIGFyb3VuZCB0byBtYXRjaCBhY3Jvc3MKCWZ1bmN0aW9uIGNhbGxzLgoJRml4ZWQgYnVnIGluIHVzaW5nIGF2YWlsYWJsZV9zaXplc1tpXS5oZWlnaHQgd2hpY2ggCglpcyBpbiBwaXhlbHMsIG5vdCA2NHRocyBvZiBhIHBpeGVsLgoKMjAwNC0wMy0wNiAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSk6CglGb3JjZSBGQ19GT1VORFJZIGFuZCBGQ19XSURUSCB0byBhbHdheXMgYmUgc2V0IHNvIHRoYXQKCW1hdGNoZXMgbG9va2luZyBmb3IgZXhwbGljaXQgdmFsdWVzIHByZWZlciBleGFjdCBtYXRjaGVzCgoyMDA0LTAzLTAyICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJU3VwcGxpZWQgYnk6IG1mYWJpYW5Ac3VzZS5kZSAoTWlrZSBGQUJJQU4pCgoJKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNGcmVlVHlwZVF1ZXJ5KToKCUJ1ZyAjMjYwIGZjLWNhY2hlIGdlbmVyYXRlcyB3cm9uZyBzcGFjaW5nIHZhbHVlcyBmb3IgYml0bWFwIGZvbnRzCglXYXMgdXNpbmcgKHN0cmNtcCAoYSxiKSkgaW5zdGVhZCBvZiAoIXN0cmNtcChhLGIpKS4KCjIwMDQtMDItMjEgIE1hbmlzaCBTaW5naCAgPHlvc2hAZ2ltcC5vcmc+CgoJKiBmYy1nbHlwaG5hbWUvZmMtZ2x5cGhuYW1lLmM6IChtYWluKToKCUNhc3Qgc3RybGVuIHRvIGludCBmb3IgcHJpbnRmLCBzbyB3ZSdyZSA2NC1iaXQgY2xlYW4uCgoyMDA0LTAyLTExICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBjb25maWd1cmUuaW46CgkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0dldFBpeGVsU2l6ZSk6CglPaywgc28gSSBtZXNzZWQgdXAgdGhlIHRlc3QgZm9yIHlfcHBlbS4gIExldCdzIHNlZSBpZiBJCglnb3QgaXQgcmlnaHQgdGhpcyB0aW1lLgoKMjAwNC0wMi0xMCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogY29uZmlndXJlLmluOgoJKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNHZXRQaXhlbFNpemUpOgoJUHJlLTIuMS41IHZlcnNpb25zIG9mIEZyZWVUeXBlIGRpZG4ndCBpbmNsdWRlIHlfcHBlbSBpbiB0aGUKCUZUX0JpdG1hcF9TaXplIHJlY29yZC4gIEFkZCBhIGNvbmZpZ3VyZS5pbiB0ZXN0IGZvciB0aGlzCglhbmQgY2hhbmdlIHRoZSBjb2RlIGFjY29yZGluZ2x5ICh1c2luZyBoZWlnaHQgaW5zdGVhZCkuCgoyMDA0LTAyLTA2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBmYy1sYW5nL25kcy5vcnRoOgoJQWRkIExvdyBTYXhvbiBvcnRob2dyYXBoeSAKCQkoS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gPGtlbm5ldGhAZ251Lm9yZz4pCgkJCgkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdOZXdlc3RGaWxlKToKCU9vcHMuICBMZWZ0ICduZXdlc3Quc2V0JyB1bnNldCwgd2hpY2ggd291bGQgbWlzY29tcHV0ZQoJdGhlIG5ld2VzdCBmaWxlCgkKCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjR2V0UGl4ZWxTaXplKSwgKEZjRnJlZVR5cGVRdWVyeSksCgkoRmNGcmVlVHlwZUNoZWNrR2x5cGgpOgoJQWRkIEZjR2V0UGl4ZWxTaXplIHRvIGV4dHJhY3QgY29ycmVjdCBwaXhlbCBzaXplIGZyb20gYmRmL3BjZgoJZm9udCBwcm9wZXJ0aWVzICh3aGljaCByZXBvcnQgdGhlIHdyb25nIHZhbHVlIGluIGN1cnJlbnQgRnJlZVR5cGUpCgoJRG9uJ3QgYXR0ZW1wdCB0byBjaGVjayBmb3IgZW1wdHkgZ2x5cGhzIGluIG5vbi1zY2FsYWJsZSBmb250czsgdGhleQoJaGF2ZSBubyBvdXRsaW5lcy4uLgoKMjAwNC0wMi0wMSAgVG9yIExpbGxxdmlzdCAgPHRtbEBpa2kuZmk+CgoJKiBzcmMvZmNjZmcuYyAoRmNDb25maWdDcmVhdGUpOiBmb250Y29uZmlnLCBhdCBsZWFzdCBhcyB1c2VkIGJ5CglHSU1QIGFuZC9vciBQYW5nb0ZUMiBvbiBXaW5kb3dzLCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIHNhdmUgdGhlCgljYWNoZSBpZiBjb25maWctPmNhY2hlIGlzIE5VTEwsIHdoaWNoIGhhcHBlbnMgaWYgRmNDb25maWdIb21lKCkgaXMKCU5VTEwuIEd1YXJkIGFnYWluc3QgdGhhdCBieSB1c2luZyB0aGUgdGVtcCBmb2xkZXIgaW4gdGhhdCBjYXNlLgoKMjAwNC0wMS0wMyAgUm9vemJlaCBQb3VybmFkZXIgIDxyb296YmVoQHNoYXJpZi5lZHU+CgoJKiBmYy1sYW5nL2F6X2lyLm9ydGg6CgkqIGZjLWxhbmcva3VfaXIub3J0aDoKCSogZmMtbGFuZy9wc19hZi5vcnRoOgoJKiBmYy1sYW5nL3BzX3BrLm9ydGg6CglBZGRlZCBvcnRob2dyYXBoaWVzIGZvciBJcmFuaWFuIEF6ZXJiYWlqYW5pIGFuZCBLdXJkaXNoLCBhbmQgUGFzaHRvCgkoQWZnaGFuIGFuZCBQYWtpc3RhbmkpLgoJKiBmYy1sYW5nL3VyLm9ydGg6CglVcGRhdGVkIFVyZHUgb3J0aG9ncmFwaHkgd2l0aCByZWFsIGRhdGEuCgoyMDAzLTEyLTExICBDYXJsIFdvcnRoICA8Y3dvcnRoQGVhc3QuaXNpLmVkdT4KCgkqIGZjLWxpc3QvTWFrZWZpbGUuYW0gKG1hbl9NQU5TKTogTW92ZSBtYW5fTUFOUyBpbnRvIHRoZSAnaWYKCVVTRURPQ0JPT0snIGJsb2NrLgoKCSogZmMtY2FjaGUvTWFrZWZpbGUuYW0gKG1hbl9NQU5TKTogTW92ZSBtYW5fTUFOUyBpbnRvIHRoZSAnaWYKCVVTRURPQ0JPT0snIGJsb2NrLgoJKGFsbC1sb2NhbCk6IFJlbW92ZSBleGNlc3NpdmUgd2hpdGVzcGFjZS4KCgkqIGF1dG9nZW4uc2g6IEFkZCAnc2V0IC1lJyB0byBhYm9ydCB3aGVuIGFueSBwcm9ncmFtIGZhaWxzLAoJKGF2b2lkcyBwcmludGluZyBvZiAnbm93IHR5cGUgbWFrZScgYWZ0ZXIgY29uZmlndXJlIGFib3J0cykuCgoyMDAzLTExLTE3ICAgRXJpYyBDaHJpc3RvcGhlcnNvbiAgPHJha2tvQGNoYXJ0ZXIubmV0PgoKCXJldmlld2VkIGJ5OiBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBkb2MvTWFrZWZpbGUuYW06CgkqIGZvbnRjb25maWcvZmNmcmVldHlwZS5oOgoJKiBzcmMvZmNmcmVldHlwZS5jOgoJU3dpdGNoIHRvIEZyZWVUeXBlIDIuMS43IHN0eWxlIGluY2x1ZGVzLiAgQnVnICMxNTAuCgoyMDAzLTExLTE2ICBOb2FoIExldml0dCAgPG5sZXZpdHRAY29sdW1iaWEuZWR1PgoKCSogZmMtbGlzdC9mYy1saXN0LnNnbWw6IEFkZCBzb21lIGV4YW1wbGUgdXNhZ2VzLgoKMjAwMy0xMS0xMCAgUm9vemJlaCBQb3VybmFkZXIgIDxyb296YmVoQHNoYXJpZi5lZHU+CgoJKiBzcmMvZmN4bWwuYzoKCUZpeGVkIGEgYnVnICJGY1N0cnRvZCIgaW4gaGFuZGxpbmcgc29tZSBjYXNlcyB3aXRoIHR3by1ieXRlIGRlY2ltYWwKCXNlcGFyYXRvcnMuCgoyMDAzLTEwLTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhAa2VpdGhwLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CglVcGRhdGUgdG8gdmVyc2lvbiAyLjIuOTIKCjIwMDMtMTAtMjcgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuaW46CgkqIGRvYy9NYWtlZmlsZS5hbToKCSogZmMtY2FjaGUvTWFrZWZpbGUuYW06CgkqIGZjLWdseXBobmFtZS9NYWtlZmlsZS5hbToKCSogZmMtbGFuZy9NYWtlZmlsZS5hbToKCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKCSogZmMtbWF0Y2gvTWFrZWZpbGUuYW06CgkqIHRlc3QvTWFrZWZpbGUuYW06CgkqIHRlc3QvcnVuLXRlc3Quc2g6CglZZXQgbW9yZSBjbGVhbnVwcyB0byBmaW5pc2ggZ2V0dGluZyAnbWFrZSBkaXN0Y2hlY2snIHdvcmtpbmcKCVRoaXMgaGFzIGJlZW4gdGVzdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGV2ZW4gd29ya3MgZnJvbSBhIF9idWlsZAoJZGlyZWN0b3J5LgoKMjAwMy0xMC0yNiAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogY29uZmlndXJlLmluOgoJKiBkb2MvTWFrZWZpbGUuYW06CgkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgoJKiBmYy1nbHlwaG5hbWUvTWFrZWZpbGUuYW06CgkqIGZjLWxhbmcvTWFrZWZpbGUuYW06CgkqIGZjLWxhbmcvZmMtbGFuZy5jOiAoc2Nhbm9wZW4pLCAoc2NhbiksIChtYWluKToKCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKCSogZmMtbWF0Y2gvTWFrZWZpbGUuYW06CglBdHRlbXB0cyB0byBmaXggJ21ha2UgZGlzdGNoZWNrJyB3b3JrLiAgVGhpbmdzIGFyZQoJcHJvZ3Jlc3NpbmcgcHJldHR5IHdlbGwsIGJ1dCB0aGVyZSBhcmUgc3RpbGwgZmFpbHVyZXMKCWxvbmcgaW50byB0aGUgcHJvY2VzcyBkZWFsaW5nIHdpdGggZG9jcyAoYXMgYWx3YXlzKS4KCQoJVGhlIGJpZyBjaGFuZ2VzIGhlcmUgYXJlIG1vc3RseSB0byBtYWtlICQoc3JjZGlyKSAhPSAiLiIKCXdvcmsgY29ycmVjdGx5LCBmaXhpbmcgdGhlIGRvY2Jvb2sgcmVsYXRlZCBzZWN0aW9ucyBhbmQKCWZjLWxhbmcgd2VyZSBwYXJ0aWN1bGFyaWx5IHRyaWNreS4gIERvY2Jvb2sgcmVmdXNlcyB0byBsb2FkCglzeXN0ZW0gZW50aXRpZXMgZnJvbSBhbnl3aGVyZSBvdGhlciB0aGFuIHdoZXJlIHRoZSBvcmlnaW5hbCAuc2dtbAoJZmlsZSB3YXMgbG9jYXRlZCwgc28gbm8gbHVjayBsb29raW5nIGluICIuIiBmb3IgdGhlCgljb25maWd1cmUtZ2VuZXJhdGVkIHZlcnNpb24uc2dtbCBhbmQgY29uZmRpci5zZ21sIGZpbGVzLgoKCWZjLWxhbmcgbmVlZGVkIGhlbHAgZmluZGluZyAub3J0aCBmaWxlczsgYWRkZWQgYSAtZCBvcHRpb24KCXRvIHNldCB0aGUgZGlyZWN0b3J5IGFzIHRoZSBsZWFzdCBldmlsIG9mIG1hbnkgb3B0aW9ucy4KCglOb3cgdG8gZ28gdXNlIGEgZmFzdGVyIG1hY2hpbmUgYW5kIHRyeSBhbmQgd3Jpbmcgb3V0IHRoZSBsYXN0Cglpc3N1ZXMuCgoyMDAzLTEwLTI2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJVGFnIHZlcnNpb24gMi4yLjkxCgoyMDAzLTEwLTI2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBkb2MvTWFrZWZpbGUuYW06CglJbmNsdWRlIGNvbmZkaXIuc2dtbC5pbiBpbiBFWFRSQV9ESVNUCgoyMDAzLTEwLTA5ICBKb3NzZWxpbiBNb3VldHRlICA8am9zc0BkZWJpYW4ub3JnPgoKICAgICAgICAqIGZjLWNhY2hlL2ZjLWNhY2hlLnNnbWwgZmMtY2FjaGUvTWFrZWZpbGUuYW06CiAgICAgICAgKiBmYy1saXN0L2ZjLWxpc3Quc2dtbCBmYy1saXN0L01ha2VmaWxlLmFtOgogICAgICAgICAgUmVwbGFjZSBmYy1jYWNoZSBhbmQgZmMtbGlzdCBtYW5wYWdlcyB3aXRoIG1vcmUgZGV0YWlsZWQsIFNHTUwKICAgICAgICAgIHZlcnNpb25zLgoKMjAwMy0wOS0yMyAgT3dlbiBUYXlsb3IgPG90YXlsb3JAcmVkaGF0LmNvbT4KCgkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oICBzcmMvZmNkZWZhdWx0LmMgKEZjRGVmYXVsdFN1YnN0aXR1dGUpCglzcmMvZmNuYW1lLmM6IEFkZCBhIEZDX0hJTlRfU1RZTEUga2V5IGZvciBwYXR0ZXJucywgd2l0aAoJcG9zc2libGUgdmFsdWVzIEhJTlRfTk9ORS9ISU5UX1NMSUdIVC9ISU5UX01FRElVTS9ISU5UX0ZVTEwuCgkoQnVnICMxMTcpCgoyMDAzLTA5LTIzICBPd2VuIFRheWxvciA8b3RheWxvckByZWRoYXQuY29tPgoKCSogZmMtbGFuZy9rYS5vcnRoOiBSZW1vdmUgR2VvcmdpYW4gY2FwaXRhbHMsIHRoZXkKCWFyZW4ndCB1c2VkIGZvciBub3JtYWwgd3JpdGluZy4gKEJ1ZyAjMTE2KQoKMjAwMy0wOS0wNiAgTm9haCBMZXZpdHQgIDxubGV2aXR0QGNvbHVtYmlhLmVkdT4KCgkqIGRvYy9mb250Y29uZmlnLWRldmVsLnNnbWw6CgkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6CgkqIHNyYy9mY25hbWUuYzoKCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZUNoYXJTZXRBbmRTcGFjaW5nKTogQWRkIG5ldyBzcGFjaW5nCgl2YWx1ZSBGQ19EVUFMIChkdWFsLXdpZHRoLCBhcyBzb21lIENKSyBmb250cykuIChidWcgIzExMSkKCgkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVDaGFyU2V0QW5kU3BhY2luZyk6IFdoZW4gY2hlY2tpbmcgZm9yCgltb25vc3BhY2UgYW5kIGR1YWwtd2lkdGggZm9udHMsIGFsbG93IHJvdWdobHkgYSAzJSB2YXJpYW5jZSBpbiB0aGUKCWFkdmFuY2VzLgoKMjAwMy0wOC0zMSAgTWFuaXNoIFNpbmdoICA8eW9zaEBnaW1wLm9yZz4KCgkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0FwcEZvbnRDbGVhcik6IFN1cHBvcnQgcGFzc2luZyBOVUxMIHRvCgl1c2UgZGVmYXVsdCBjb25maWcuCgoyMDAzLTA4LTE1ICBDYXJsIFdvcnRoICA8Y3dvcnRoQGlzaS5lZHU+CgoJKiBzcmMvZmN4bWwuYyAoRmNFZGl0RGVzdHJveSk6IEZpeCBsZWFrIG9mIEZjRWRpdC4KCShGY1BvcEV4cHIpOiBBZGQgY29tbWVudCBhYm91dCB1bmhhbmRsZWQgRmNWU3RhY2tHbG9iIGNhc2UuCgoJKiBzcmMvZmNwYXQuYyAoRmNWYWx1ZUxpc3RFbnREZXN0cm95KTogTmV3IGZ1bmN0aW9uIHRvIHN1cHBvcnQKCUZjRmluaSBtZW1vcnkgY2xlYW51cC4gU29tZSBzdGF0aXN0aWNzIGFyZSBub3Qga2VwdCBpbgoJc3luY2guIGhlcmUuCgkoRmNWYWx1ZUxpc3RGcmVlemUpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKCWNhbiBiZSBhY2Nlc3NlZCBieSBGY1ZhbHVlTGlzdFRoYXdBbGwuCgkoRmNWYWx1ZUxpc3RUaGF3QWxsKTogTmV3IGZ1bmN0aW9uIGNvbXBsZW1lbnRzIEZjVmFsdWVMaXN0RnJlZXplLgoJKEZjUGF0dGVybkJhc2VGcmVlemUpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKCWNhbiBiZSBhY2Nlc3NlZCBieSBGY1BhdHRlcm5CYXNlVGhhd0FsbC4KCShGY1BhdHRlcm5CYXNlVGhhd0FsbCk6IE5ldyBmdW5jdGlvbiBjb21wbGVtZW50cwoJRmNQYXR0ZXJuQmFzZUZyZWV6ZS4KCShGY1BhdHRlcm5UaGF3QWxsKTogTmV3IGZ1bmN0aW9uIGNvbXBsZW1lbnRzIEZjUGF0dGVybkZyZWV6ZS4KCgkqIHNyYy9mY2luaXQuYyAoRmNGaW5pKTogQWRkIG5ldyBGY0ZpbmkgdG8gY2xlYW51cCBldmVyeXRoaW5nLgoKCSogc3JjL2ZjY2hhcnNldC5jIChGY0NoYXJMZWFmRW50Q3JlYXRlKTogU2F2ZSBwb2ludGVycyB0byBhbGwKCWFsbG9jYXRlZCBGY0NoYXJMZWFmRW50ICJibG9ja3MiIHNvIHRoZXkgY2FuIGJlIGZyZWVkIGxhdGVyLgoJKEZjQ2hhclNldEZyZWV6ZUxlYWYpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKCWNhbiBiZSBhY2Nlc3NlZCBieSBGY0NoYXJTZXRUaGF3QWxsTGVhZi4KCShGY0NoYXJTZXRUaGF3QWxsTGVhZik6IE5ldyBmdW5jdGlvbiBjb21wbGVtZW50cyBGY0NoYXJTZXRGcmVlemVMZWFmLgoJKEZjQ2hhclNldEZyZWV6ZUJhc2UpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKCWNhbiBiZSBhY2Nlc3NlZCBieSBGY0NoYXJTZXRUaGF3QWxsLgoJKEZjQ2hhclNldFRoYXdBbGwpOiBOZXcgZnVuY3Rpb24gY29tcGxlbWVudHMgRmNDaGFyU2V0RnJlZXplLgoKCSogc3JjL2ZjY2ZnLmMgKEZjU3Vic3REZXN0cm95KTogRml4IGxlYWsgb2Ygb3V0ZXIgRmNTdWJzdC4KCShGY0NvbmZpZ0Rlc3Ryb3kpOiBGaWMgbGVhayBvZiBGY0JsYW5rcy4KCgkqIGZjLWxpc3QvZmMtbGlzdC5jIChtYWluKTogRml4IGxlYWsgb2YgRmNPYmplY3RTZXQuCgkobWFpbik6IEFkZCBjYWxsIHRvIEZjRmluaSB3aGVuIGZpbmlzaGVkLgoKCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOiBNYXJrIHNldmVyYWwgbG9jYWwgZnVuY3Rpb25zIGFzCglzdGF0aWMuIEFkZCBwcm90b3R5cGVzLgoKCSogZG9jL2ZjaW5pdC5mbmNzOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgRmNGaW5pIGZ1bmN0aW9uLgoKCSogZG9jL2VkaXQtc2dtbC5jOiBNYXJrIHNldmVyYWwgbG9jYWwgZnVuY3Rpb25zIGFzIHN0YXRpYy4gQWRkCglwcm90b3R5cGVzLgoKCSogZG9jL01ha2VmaWxlLmFtIChET0NfTU9EVUxFKTogRml4ICJzdXNwaWNpb3VzIiBsaW5lcy4KCjIwMDMtMDYtMTUgIFRvciBMaWxscXZpc3QgIDx0bWxAaWtpLmZpPgoKCSogdGVzdC9ydW4tdGVzdC5zaCAoRk9OVENPTkZJR19GSUxFKTogUmVtb3ZlIENScyBmcm9tIHRoZSBvdXQgZmlsZQoJYmVmb3JlIGNvbXBhcmluZyAobmVlZGVkIG9uIFdpbmRvd3MpLgoKCSogc3JjL01ha2VmaWxlLmFtIChpbnN0YWxsLWxpYnRvb2wtaW1wb3J0LWxpYik6IEZpeCBjdXQmcGFzdGUgZXJyb3IuCgoyMDAzLTA2LTEzICBUb3IgTGlsbHF2aXN0ICA8dG1sQGlraS5maT4KCgkqIGZvbnRjb25maWctemlwLmluIChERVZaSVApOiBBZGQgc2hhcmUvZG9jIGRpcmVjdG9yeS4gQWRkIEZjKi4zCgltYW4gcGFnZXMuCgoJKiBjb25maWd1cmUuaW46IFNldCBGQ19ERUZBVUxUX0ZPTlRTIG9uIFdpbjMyIHRvIHRoZQoJV0lORE9XU0ZPTlRESVIgdG9rZW4uCgoJKiBzcmMvZm9udGNvbmZpZy5kZWYuaW46IE1vdmUgdGhlIExJQlJBUlkgYW5kIFZFUlNJT04gbGluZXMgdG8gdGhlCgllbmQsIG5vdCB0byBjb25mdXNlIGxpYnRvb2wsIHdoaWNoIGV4cGVjdHMgdGhlIEVYUE9SVFMgbGluZSB0byBiZQoJdGhlIGZpcnN0LiBBZGQgRmNDb25maWdFbmFibGVIb21lLgoKCSogc3JjL2ZjY2ZnLmM6IENoZWNrIGFsc28gZm9yIERMTF9FWFBPUlQgYXMgaW5kaWNhdGlvbiBvZiBiZWluZwoJYnVpbHQgYXMgYSBETEwgb24gV2luMzIuCgoyMDAzLTA2LTA5ICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFRhZyB2ZXJzaW9uIDIuMi45MAoKMjAwMy0wNi0wOSAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBPcHRpbWl6YXRpb24gaW4gRmNMYW5nU2V0SW5kZXggd2FzIGJyb2tlbiwgb2NjYXNpb25hbGx5CgkgIHJldHVybmluZyBhIHBvaW50ZXIgdG8gdGhlIHdyb25nIGxvY2F0aW9uIG9uIG1pc3MKCgkqIEFkZCBmYy1tYXRjaCB0byB0ZXN0IGZvbnQgbWF0Y2hpbmcgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgoKMjAwMy0wNS0zMSAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiAoQnVnIDg1KSBhZGQgc3VwcG9ydCBmb3IgY3VsbXVzIGZvbnRzCgkqIChCdWcgODcpIEF1dG9tYWtlIDEuNCBkb2Vzbid0IGRvIG1hbl9NQU4xIGNvcnJlY3RseQoJKiAoQnVnIDg4KSBGaXggdXNhZ2UgaW5mbyBvbiBub24tbG9uZyBvcHRpb24gc3lzdGVtcyAoVGltIE1vb25leSkKCjIwMDMtMDUtMjggIEphbWVzIFN1IDxzdXpoZUB0dXJib2xpbnV4LmNvbS5jbj4KCgkqIEZpeCAiY29udGFpbnMiIG9wIGZvciBzdHJpbmdzIGFuZCBsYW5nc2V0cy4KCjIwMDMtMDUtMTcgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogRml4IGJ1aWxkIGVycm9yIHdpdGggQkRGIHByb3AgbG9jYWwuICBGcmVlIGxhbmdzZXQgYWZ0ZXIgcXVlcnkKCjIwMDMtMDUtMTQgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogRXh0cmFjdCBzcGFjaW5nIGZyb20gWExGRCBhdG9tCgoyMDAzLTA1LTEyICBKdWxpdXN6IENocm9ib2N6ZWsgPGpjaEBwcHMuanVzc2lldS5mcj4KCgkqIFJlaW5zdGF0ZSBTRVRXSURUSF9OQU1FIHBhcnNpbmcgZm9yIGxlZ2FjeSBmb250cywgCgkgIGRpc2FwcGVhcmVkIGluIDEuMzAuCgoJKiBHZW5lcmF0ZSBGQ19TSVpFIGFuZCBGQ19EUEkgZm9yIGxlZ2FjeSBiaXRtYXAgZm9udHMKCjIwMDMtMDUtMTIgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgoKCSogVXNlIEZjSXNXaWR0aCB0byBzaGFyZSBjb2RlCgoJKiBTZXQgRlRfTE9BRF9JR05PUkVfR0xPQkFMX0FEVkFOQ0VfV0lEVEggd2hlbiBzY2FubmluZyBmb250cyB0byBhdm9pZAoJICBtaXNjbGFzc2lmeWluZyBzb21lIEhhbiBmb250cyBhcyBtb25vc3BhY2VkLgoJICAKMjAwMy0wNS0wNyAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBBZGQgZmlsZW5hbWUtYmFzZWQgYWNjZXB0L3JlamVjdCB0byBhbW1lbmQgYXZhaWxhYmxlIGZvbnRzLgoKCSogQ2hhbmdlIEZUX0VOQ09ESU5HX0FET0JFX0NVU1RPTSB0byBmdF9lbmNvZGluZ19hZG9iZV9jdXN0b20gZm9yCgkgIG9sZGVyIEZyZWVUeXBlIHJlbGVhc2VzLgoKMjAwMy0wNS0wNiAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBSZW1vdmUgMGI4MiBhbmQgVGFtaWwgbnVtYmVycyBmcm9tIHRhbWlsIAoJICBvcnRob2dyYXBoeSAoSnVuZ3NoaWsgU2hpbiA8anNoaW5AbWFpbGFwcy5vcmc+KQoKMjAwMy0wNS0wNCAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKyBNYXAgZ2x5cGggbmFtZXMgaW4gZm9udHMgd2l0aCBhZG9iZSBjdXN0b20gZW5jb2RpbmcgdG8gdW5pY29kZQoKMjAwMy0wNS0wMiAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBBZGQgRkNfV0VJR0hUX0JPT0sgYXMgd2VpZ2h0IDc1CgoyMDAzLTA0LTMwICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFR5cG8gaW4gYml0c3RyZWFtIGZvdW5kcnkgbmFtZQoKMjAwMy0wNC0yNCAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKiBFbGltaW5hdGUgaXRhbGljX2FuZ2xlIGNoZWNrIGZvciBQUyBmb250cwoKMjAwMy0wNC0yMyAgTm9haCBMZXZpdHQgPG5sZXZpdHRAY29sdW1iaWEuZWR1PgoKCSogR2V0dGluZyBjbG9zZXIgdG8gZml4aW5nIC9ldGMvZm9udHMgaGFyZC1jb2RpbmcuCgoyMDAzLTA0LTIyICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KCgkqIFVwZGF0ZSBhdXRvZ2VuLnNoIHRvIHdvcmsgd2l0aCBuZXdlciBhdXRvbWFrZSB2ZXJzaW9ucwoJKiBIYW5kbGUgcGF0dGVybiBlbGVtZW50cyBtb3ZpbmcgZHVyaW5nIG11bHRpcGxlIGVkaXRzCgoyMDAzLTA0LTIzICBKYW1lcyBIZW5zdHJpZGdlICA8amFtZXNAZGFhLmNvbS5hdT4KCgkqIGRvYy9mb250Y29uZmlnLWRldmVsLnNnbWw6IGNsb3NlIHRoZSA8cGFyYT4gZWxlbWVudC4KCgkqIGRvYy9mY3BhdHRlcm4uZm5jczogY2xvc2UgdGhlIDxwYXJhPiBlbGVtZW50LgoKCSogZG9jL2Z1bmMuc2dtbDogY2xvc2UgdGhlIDxyZWZzeW5vcHNpc2Rpdj4gZWxlbWVudC4KCjIwMDMtMDQtMjIgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tCgoJKiBVcGRhdGUgYXV0b2dlbi5zaCB0byB3b3JrIHdpdGggbmV3ZXIgYXV0b21ha2UgdmVyc2lvbnMKCSogSGFuZGxlIHBhdHRlcm4gZWxlbWVudHMgbW92aW5nIGR1cmluZyBtdWx0aXBsZSBlZGl0cwoKMjAwMy0wNC0xNyAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0BkZWJpYW4ub3JnPgoKCSsgUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcywgYW5kIGluaXRpYWxpemUgc29tZSBvdGhlciBvbmVzIHNvCglnY2MgZG9lc24ndCB3YXJuIHVzLgoKMjAwMy0wNC0xNiAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgoJKyB0YWcgdmVyc2lvbiAyLjEuOTQKCjIwMDMtMDQtMTYgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgoKCSsgYWRkIEJERiBwcm9wZXJ0eSBmZXRjaGluZyBzdXBwb3J0IGZvciBmb3VuZHJ5IAoJICAoZnJvbSBKdWxpdXN6IENocm9ib2N6ZWspCgkrIGFkZCBCREYgcHJvcGVydHkgZmV0Y2hpbmcgc3VwcG9ydCBmb3Igd2lkdGgKCjIwMDMtMDQtMTEgIEp1bGl1c3ogQ2hyb2JvY3playA8amNoQHBwcy5qdXNzaWV1LmZyPgoKCSsgSW1wbGVtZW50ZWQgZm91bmRyeSBnZW5lcmF0aW9uIGZvciBUeXBlIDEgYW5kIFRydWVUeXBlCgoyMDAzLTA0LTExICBHZXJhcmQgRXNjYWxhbnRlIDxnMkBtYWdlc3R1ZGlvcy5uZXQ+CgoJKyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBmcm9tIFR5cGUxIEZvbnRJbmZvIGRpY3Rpb25hcmllcwoKMjAwMy0wNC0wNyAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSsgc3JjL01ha2VmaWxlLmFtOiBGaXggZHVtbXkgbWFrZWZpbGUgdGFyZ2V0IG5hbWVzIHdoZW4KCU1TX0xJQl9BVkFJTEFCTEUgaXNuJ3Qgc2V0LgoKMjAwMy0wMy0yMiAgVG9yIExpbGxxdmlzdCAgPHRtbEBpa2kuZmk+CgoJQ2hhbmdlcyBmb3IgV2luZG93czoKCSAgCgkrIE9uIFdpbmRvd3Mgd2l0aCBnY2MgKGEuay5hLiBtaW5ndykgYnVpbGQgYXMgYSBETEwuCgkgIAoJKyBXZSBkb24ndCB3YW50IHRvIGhhcmRjb2RlIHRoZSBmb250cy5jb25mIGZpbGUgbG9jYXRpb24gaW4gdGhlCgkgIERMTCwgc28gd2UgbG9vayB1cCB0aGUgRExMIGxvY2F0aW9uIGF0IHJ1bi10aW1lIGluIGEgRGxsTWFpbigpCgkgIGZ1bmN0aW9uLiBUaGUgZm9udHMuY29uZiBsb2NhdGlvbiBpcyBkZWR1Y2VkIGZyb20gdGhhdC4KCgkrIFRoZSBjb2xvbiBjYW4ndCBiZSB1c2VkIGFzIHBhdGggc2VwYXJhdG9yIG9uIFdpbmRvd3MsCgkgIHNlbWljb2xvbiBpcyB1c2VkIGluc3RlYWQuIEZpbGUgcGF0aCBjb21wb25lbnRzIGNhbiBiZSBzZXBhcmF0ZWQKCSAgd2l0aCBlaXRoZXIgc2xhc2ggb3IgYmFja3NsYXNoLiBBYnNvbHV0ZSBwYXRocyBjYW4gYWxzbyBiZWdpbgoJICB3aXRoIGEgZHJpdmUgbGV0dGVyLgoKCSsgQWRkIGludGVybmFsIGZ1bmN0aW9uIEZjU3RyTGFzdFNsYXNoIHRoYXQgc3RycmNocidzIHRoZSBsYXN0CgkgIHNsYXNoLCBvciBiYWNrc2xhc2ggb24gV2luZG93cy4KCQoJKyBUaGVyZSBpcyBubyBsaW5rKCkgb24gV2luZG93cy4gRm9yIGF0b21pY2l0eSBjaGVja3MsIG1rZGlyIGEKCSAgbG9jayBkaXJlY3RvcnkgaW5zdGVhZC4KCSAgCgkrIEluIGFkZGl0aW9uIHRvIEhPTUUsIGFsc28gbG9vayBmb3IgVVNFUlBST0ZJTEUuCgoJKyBSZWNvZ25pemUgdGhlIHNwZWNpYWwgZm9udCBkaXJlY3RvcnkgdG9rZW4gV0lORE9XU0ZPTlRESVIsIHRvCgkgIHVzZSB0aGUgc3lzdGVtJ3MgZm9udCBkaXJlY3RvcnkuCgkgIAoJKyBSZW1vdmUgdGhlIGZvbnRjb25maWctZGVmLmNwcCB0aGF0IHdhcyBvYnNvbGV0ZS4gQWRkCgkgIGZvbnRjb25maWcuZGVmKC5pbiksIHdpdGhvdXQgaW50ZXJuYWwgZnVuY3Rpb25zLgoJICAKCSsgQWRkIGEgZm9udGNvbmZpZy16aXAoLmluKSBzY3JpcHQsIHVzZWQgdG8gYnVpbGQgYSBiaW5hcnkKCSAgZGlzdHJpYnV0aW9uLgoKRnJpIE1hciAgNyAwNzo1NTowMCBFU1QgMjAwMyAgICBNaWtlIEEuIEhhcnJpcyA8bWhhcnJpc0ByZWRoYXQuY29tPgoJKyBSUE0gc3BlY2ZpbGUgY2xlYW51cHMgZm9yIDIuMS45MjogUmVtb3ZlZCBtYW4xLyogYW5kIGFkZGVkIG1hbjUvKgoJICB0byBtYWluIHBhY2thZ2UgYW5kIG1hbjMvKiB0byBkZXZlbCBwYWNrYWdlCgoJKyBBZGRlZCBtaXNzaW5nIGRlZmF0dHIoLSwgcm9vdCwgcm9vdCkgdG8gbWFpbiBSUE0gcGFja2FnZQogCgkrIEFkZGVkIEhUTUwgYW5kIHRleHQgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiB0byAtZGV2ZWwgc3VicGFja2FnZQoKV2VkIE1hciAgNSAwNTowODowMCBFU1QgMjAwMwlNaWtlIEEuIEhhcnJpcyA8bWhhcnJpc0ByZWRoYXQuY29tPgoJKyBBZGRlZCBiYWNrIHRoZSBjb25maWd1cmUgbWFjcm8gb3B0aW9ucyAtLWRpc2FibGUtZG9jcywgb3RoZXJ3aXNlCgkgIGZvbnRjb25maWcgaW5zdGFsbHMgZG9jcyBpbnRvIC91c3Ivc2hhcmUvZG9jL2ZvbnRjb25maWcgKHdpdGggbm8KCSAgdmVyc2lvbiBudW1iZXIpIHVuY29uZGl0aW9uYWxseSwgY2F1c2luZyBSUE0gdG8gZmFpbCB0aGUgYnVpbGQgZHVlCgkgIHRvIF91bnBhY2thZ2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZC4gIFdlIHBpY2sgdXAgdGhlIHByZWdlbmVyYXRlZAoJICBkb2NzIHdpdGggJWRvYyBhbHJlYWR5LgoKV2VkIE1hciAgNSAwNDoyNjoyMCBFU1QgMjAwMwlNaWtlIEEuIEhhcnJpcyA8bWhhcnJpc0ByZWRoYXQuY29tPgoJKyBSZW1vdmVkIGNvbW1lbnRlZCBvdXQgcnBtIG1hY3JvIGRlZmluZSBhdCB0b3Agb2Ygc3BlYyBmaWxlLAoJICByZXBsYWNpbmcgaXQgd2l0aCBhIHNpbXBsZSBleHBsYW5hdGlvbiwgc2luY2UgcnBtIG1hY3JvcyBhcmUKCSAgZXhwYW5kZWQgYnkgcnBtIGV2ZW4gaW4gY29tbWVudHMuCgoJKyBDaGFuZ2VkIC91c3IvYmluIHRvIF9iaW5kaXIgaW4gQnVpbGRSZXF1aXJlcyBsaW5lcwoKCSsgQ2xlYW5lZCB1cCBycG0gcG9zdGluc3RhbGwgc2NyaXB0LCBhbmQgbWFkZSBmYy1jYWNoZSB1c2UgX2JpbmRpcgoKCSsgUmVvcmdhbml6ZWQgZmlsZSBtYW5pZmVzdCBsaXN0cwoKU3VuIE1hciAgMiAxNDoxNjoxNyBFU1QgMjAwMwlPd2VuIFRheWxvciA8b3RheWxvckByZWRoYXQuY29tPgoKCSsgZm9udGNvbmZpZy5zcGVjLmluOiBJbXByb3ZlbWVudHMgZnJvbSBSZWQgSGF0IHNwZWMgZmlsZS4KCgkrIHtmYy1sYW5nLGZjLWNhY2hlLGZjLWxpc3R9L01ha2VmaWxlLmFtOiBBZGQgbWFuIHBhZ2VzLgoKCSsgZG9jcy8qLnNnbWw6IFNHTUwgZml4ZXMuCgpTYXQgTWFyICAxIDE3OjI4OjUzIFBTVCAyMDAzCWtlaXRocAoJKyBPaywgc28gdGhlIENoYW5nZUxvZyBpcyBhIGJpdCBvdXQgb2YgZGF0ZQoKCSsgTG90cyBvZiBidWdzIGZpeGVkOyBtb3N0IGFyZSBpbiBidWd6aWxsYSwgdGhlCgkgIGJpZ2dlc3QgcHJvYmxlbXMgd2VyZSBpbiBjYWNoZSBtYW5hZ2VtZW50IHdoZXJlCgkgIE93ZW4gZGlzY292ZXJlZCB0aGUgbGlicmFyeSB3b3VsZCBsb3NlIGJhZGx5IHdoZW4KCSAgY29tYmluaW5nIGZvbnRzLWNhY2hlIGFuZCB+Ly5mb250cy1jYWNoZSBkYXRhCgoJKyBDb252ZXJ0ZWQgZnJvbSBhdXRvY29uZiB0byBhdXRvbWFrZS4gIFRoaXMgYWZ0ZXIKCSAgZ2V0dGluZyBwYXRjaGVzIGFjY2VwdGVkIGludG8gbGlidG9vbCB0byBhbGxvdwoJICB0aGUgJy12ZXJzaW9uLW51bWJlcicgYXJndW1lbnQgd2hpY2ggbGV0cwoJICBwYWNrYWdlcyBzZXQgdmVyc2lvbiBudW1iZXJzIGV4cGxpY2l0bHkgcmF0aGVyCgkgIHRoYW4gdGhlIHJvdW5kYWJvdXQgbGlidG9vbCB3YXkKCgkrIENvbnZlcnRlZCBkb2N1bWVudGF0aW9uIHRvIFNHTUwgdXNpbmcgdGhlIGRvY2Jvb2sKCSAgRFRELiAgTm93IC50eHQgYW5kIC5odG1sIGRvY3VtZW50cyBhcmUgaW5zdGFsbGVkCgkgIGluIC91c3Ivc2hhcmUvZG9jL2ZvbnRjb25maWcgYW5kIHRoZXJlJ3Mgbm8KCSAgbWFuIHBhZ2UuICBQZXJoYXBzIGEgbWFuIHZlcnNpb24gY2FuIGJlIHdyaXR0ZW4KCSAgYXQgc29tZSBwb2ludC4KClNhdCBBdWcgMzEgMTU6MjE6MjIgUERUIDIwMDIJa2VpdGhwCgkrIFhyZW5kZXIgYW5kIFhmdCBoYWQgc2V2ZXJhbCBidWdzIHJlbGF0ZWQgdG8KCSAgcmVuZGVyaW5nIG1hbnVhbGx5IHBsYWNlZCBvciBwb2x5LWZhY2UgdGV4dAoKCSsgQWRkZWQgbW9yZSBjb21wbGV0ZSBtZW1vcnkgdHJhY2luZyBpbiBmb250Y29uZmlnCgkgIENoZWNrZWQgd2l0aCAocGF0Y2hlZCkgbW96aWxsYSBhbmQgZm91bmQgbm8gbGVha3MKCgkrIFVwZGF0ZWQgTGF0aW4gb3J0aG9ncmFwaGllcyBieSBjb21wYXJpbmcgdGhvc2UgZnJvbQoJICBldmVydHlwZS5jb20gd2l0aCB0aG9zZSBmcm9tIGVraS5lZS4gIFRyaWVkIHRvIG1ha2UKCSAgc2Vuc2libGUgY2hvaWNlcywgaW5jbHVkaW5nIGNoYXJzIHRoYXQgb2NjdXJlZCBpbiBib3RoCgkgIGFuZCBsZWF2aW5nIHNvbWUgb3B0aW9uYWwgY2hhcnMgb3V0IHRoYXQgb2NjdXJlZCBvbmx5CgkgIGluIG9uZS4KCk1vbiBBdWcgMjYgMTY6MzM6MDQgUERUIDIwMDIJa2VpdGhwCgkrIE93ZW4gZGlzY292ZXJlZCB0aGF0IEZjTGFuZ1NldEhhc0xhbmcgd2Fzbid0IGFjdHVhbGx5CgkgIGNoZWNraW5nIHRoZSBsYW5ndWFnZSBzZXQuCgpNb24gQXVnIDI2IDEzOjM3OjIzIFBEVCAyMDAyCWtlaXRocAoJKyBBcHBlbmQgYSB2ZXJzaW9uIG51bWJlciB0byBjYWNoZSBmaWxlbmFtZXMKClRodSBBdWcgMjIgMTE6MzY6MTggUERUIDIwMDIJa2VpdGhwCgoJKyBBZGQgImNvbnRhaW5zIiBhbmQgIm5vdF9jb250YWlucyIgb3BlcmF0b3JzIGFuZCBlbGVtZW50cyB0bwoJICBmb250IGNvbmZpZ3VyYXRpb24KCSAgCgkrIENoYW5nZWQgc2VtYW50aWNzIG9mIGVxIG9wZXJhdG9yIGZvciBMYW5nU2V0cyB0byBjaGVjayBmb3IKCSAgRmNMYW5nRXF1YWwgc28gdGhhdCBhbnkgbWF0Y2ggd2lsbCBkbwoJCgkrIEZjRm9udExpc3Qgd2FzIHVzaW5nIEZjQ29uZmlnQ29tcGFyZVZhbHVlICguLi5GY09wRXF1YWwpIGluc3RlYWQKCSAgb2YgRmNWYWx1ZUVxdWFsIHRvIGNoZWNrIGZvciBpZGVudGljYWwgdmFsdWVzIHdoZW4gaW5zZXJ0aW5nIGludG8KCSAgdGhlIHJlc3VsdHMuICBUaGlzIGJyb2tlIHdoZW4gdGhlIGFib3ZlIHNlbWFudGljIGNoYW5nZSB3YXMgbWFkZSwKCSAgbm93IGl0IHVzZXMgRmNWYWx1ZUVxdWFsIHdoaWNoIGlzICJtb3JlIGNvcnJlY3QiIGluIGFueSBjYXNlLgoKVGh1IEF1ZyAyMiAwMDozMjoyOSBQRFQgMjAwMglrZWl0aHAKCgkrIFJlaW1wbGVtZW50IEZDX0xBTkcgYXMgbmV3IGRhdGF0eXBlLiAgTGlzdHMgb2Ygc3RyaW5ncwoJICB3YXMgY29uc3VtaW5nIG92ZXIgYSBtZWdhYnl0ZSBvZiBtZW1vcnkgZm9yIDQwMSBmb250cy4KCgkrIEZyZWV6ZSBwYXR0ZXJucyBsb2FkZWQgZnJvbSBjYWNoZSBmaWxlcy4gIFRoaXMgc2hhcmVzCgkgIGNvbW1vbiB2YWx1ZSBsaXN0cyBhbmQgY29tbW9uIHBhdHRlcm5zIHdoaWNoIHNhdmVzCgkgIGNvbnNpZGVyYWJsZSBtZW1vcnkuCgoJKyBDaGFuZ2UgdGhlIGRlbm90YXRpb24gb2YgJ2NvbnN0YW50JyBjaGFyc2V0cyB0byB1c2Ugc3BlY2lhbAoJICByZWYgdmFsdWUgaW5zdGVhZCBvZiBzZXBhcmF0ZSBib29sZWFuLgoKCSsgQ2xlYW4gdXAgbGVhayB0cmFjaW5nIHN0dWZmLCBmb3VuZCBzZXZlcmFsIHVuYW5ub3RlZCBhbGxvYy9mcmVlCgkgIGNhbGxzCgpUdWUgQXVnIDIwIDE2OjE3OjM3IFBEVCAyMDAyCWtlaXRocAoKCSsgRml4IG1lbW9yeSBsZWFrIHdoZW4gcGFyc2luZyBtYXRyaWNlcyBmcm9tIFhNTAoKTW9uIEF1ZyAxOSAxMTo1NzoyNyBQRFQgMjAwMglrZWl0aHAKCgkrIEZpeCBhdXRvY29uZiBmaWxlcyB0byBwYXNzIEZPTlRDT05GSUdfUEFUSCBvbgoJICBjb21waWxlIGxpbmUgc28gdGhhdCAke3ByZWZpeH0gZ2V0cyBzdWJzdGl0dXRlZAoJICBjb3JyZWN0bHkuCgoJKyBVc2UgZ2V0Y191bmxvY2tlZC9wdXRjX3VubG9ja2VkIG9uIHN5c3RlbXMgdGhhdAoJICBwcm92aWRlIHRoZW0gdG8gYXZvaWQgZGFtYWdlIGRvbmUgdG8gc3RkaW8gYnkgcG9zaXgKCgkrIEVsaW1pbmF0ZSBGQ19QQVRURVJOIGFuZCBGY1R5cGVQYXR0ZXJuIGluIGZhdm9yIG9mCgkgIGFuIGV4dGVuZGVkIGFwaSBmb3IgRmNDb25maWdTdWJzdGl0dXRlIHdoaWNoIHRha2VzCgkgIGJvdGggdGhlIGZvbnQgYW5kIHRoZSBwYXR0ZXJuLgoKCSsgQWRkICdzYW5zIHNlcmlmJyBhbGlhcyBmb3IgJ3NhbnMtc2VyaWYnIGFzIHNvbWUgYXBwcwoJICBjYW4ndCBoYW5kbGUgaHlwaGVucyBpbiBmYW1pbHkgbmFtZXMKCgkrIEVsaW1pbmF0ZSBwcmV0ZW5zZSBvZiBzdXBwb3J0IGZvciBsaWJ4bWwyCgoJKyBDb21tZW50IG9yaWdpbnMgb2YgSGFuIG9ydGhvZ3JhcGhpZXMKClR1ZSBKdWwgMzAgMTg6Mzc6MDkgUERUIDIwMDIJa2VpdGhwCgoJKyBBZGQgYmluZGluZyBwcm9wZXJ0eSB0byBlZGl0IGVsZW1lbnQgc28gdGhhdCBzdHJvbmcKCSAgYmluZGluZyB2YWx1ZXMgbWF5IGJlIGluc2VydGVkIGJ5IHRoZSBjb25maWcgZmlsZS4KCSAgVGhlIGRlZmF1bHQgcmVtYWlucyB3ZWFrLgoKU3VuIDI4IEp1bCAwNDoxNjo1NSBQRFQgMjAwMglrZWl0aHAKCgkrIFRhZ2dlZCByZWxlYXNlIGNhbmRpZGF0ZSAxIGluIHRoZSBDVlMgdHJlZSBhbmQKCSAgcGxhY2VkIGZjcGFja2FnZS5yYzEudGFyLmd6IGZvciBkaXN0cmlidXRpb24KClRodSBBdWcgIDEgMDg6NTU6MDggUERUIDIwMDIJa2VpdGhwCgoJKyBGaXhlZCBhdXRvY29uZiBidWlsZHMgdG8gYWx3YXlzIHNwZWNpZnkgaW5zdGFsbAoJICB0YXJnZXQgZmlsZXMgKGZvciBCU0QpLiAgQWxzbyBmaXhlZCB0bwoJICBkZWZpbmUgRk9OVENPTkZJR19QQVRIIGluIGNvbmZpZy5oIHNvIHRoYXQKCSAgbm9uc3RhbmRhcmQgaW5zdGFsbHMgd2lsbCBhY3R1YWxseSB3b3JrLgo=