ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU0YjFmNC4uMDAwMDAwMAotLS0gYS9DaGFuZ2VMb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNDk2ICswLDAgQEAKLTIwMDYtMDgtMDQgIEtlaXRoIFBhY2thcmQgIChrZWl0aHBAa2VpdGhwLmNvbSkKLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBjb25maWd1cmUuaW46Ci0JKiBmb250cy5jb25mLmluOgotCSogZm9udHMuZHRkOgotCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JKiBzcmMvTWFrZWZpbGUuYW06Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVWYWxpZCwgRmNEaXJIYXNDdXJyZW50QXJjaCwgCi0JICAgICAgICAgICAgICAgICBGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlQmFzZW5hbWUsCi0JCQkgRmNDYWNoZVJlYWREaXJzLCBGY0RpckNhY2hlT3BlbiwgRmNEaXJDYWNoZVJlYWQsCi0JCQkgRmNNYWtlRGlyZWN0b3J5LCBGY0RpckNhY2hlV3JpdGUpOgotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQ3JlYXRlLCBGY0NvbmZpZ0Rlc3Ryb3ksIEZjQ29uZmlnQWRkQ2FjaGVEaXIsCi0JICAgICAgICAgICAgICAgRmNDb25maWdHZXRDYWNoZURpcnMpOgotCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZywgRmNEaXJTYXZlKToKLQkqIHNyYy9mY2luaXQuYyAoRmNJbml0RmFsbGJhY2tDb25maWcpOgotCSogc3JjL2ZjeG1sLmMgKGZjRWxlbWVudE1hcCwgRmNFbmRFbGVtZW50KToKLQkqIHRlc3QvZm9udHMuY29uZi5pbiwgdGVzdC9ydW4tdGVzdC5zaDoKLQotCU1ha2UgY2FjaGUgZGlyZWN0b3JpZXMgY29uZmlndXJhYmxlLiAgU2ltcGxpZnkgYW5kIGNvcnJlY3QKLQlzb21lIGNvZGUgd2hpY2ggZGVhbHMgd2l0aCBwZXItZGlyZWN0b3J5IGNhY2hlcy4KLQotMjAwNi0wNy0xOSAgSm9uIEJ1cmdlc3MgIChqYnVyZ2Vzc0B1a2xpbnV4Lm5ldCkKLSAgICAgICAgcmV2aWV3ZWQgYnk6IHBsYW0KLQotICAgICAgICAqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVEZXN0cm95KToKLQotICAgICAgICBGaXggZmlsZS1kZXNjcmlwdG9yIGxlYWsgaW4gRmNHbG9iYWxDYWNoZURlc3Ryb3kuCi0KLTIwMDYtMDUtMzEgIFlvbmcgTGkgIChyaWdlbDg2M0BnbWFpbC5jb20pCi0JcmV2aWV3ZWQgYnk6IHBsYW0sIEJlZGhhZCBFc2ZhaGJvZAotCi0gICAgICAgICogc3JjL2Z0Z2x1ZS5jIChfaGJfZnRnbHVlX2ZhY2VfZ290b190YWJsZSk6IAotCi0JVHJ1ZVR5cGUgQ29sbGVjdGlvbiB0YWJsZSBvZmZzZXRzIGFyZSBhYnNvbHV0ZSwgbm90IHJlbGF0aXZlLgotCi0yMDA2LTA0LTI3ICBQYW9sbyBCb3JlbGxpICAocGJvcmVsbGlAa2F0YW1haWwuY29tKQotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmNzdHIuYyAoRmNTdHJDb3B5KToKLQotCU1ha2UgRmNTdHJDb3B5IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LgotCi0yMDA2LTA0LTI3ICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KLQkgICAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCSogc3JjL2Zjc3RyLmMgKEZjU3RyQnVmQ2hhcik6Ci0KLQlSZWR1Y2UgdHJhbnNpZW50IG1lbW9yeSB1c2FnZSBkdXJpbmcgY29uZmlnIGZpbGUgcGFyc2luZwotCWJ5IGFsbG9jYXRpbmcgc21hbGxlciBidWZmZXJzICg2NCBzZWVtcyB0byBiZSBhIG1hZ2ljIG51bWJlcikuCi0JCi0yMDA2LTA0LTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIHNyYy9mY2luaXQuYzogKEZjTWVtUmVwb3J0KToKLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjcGF0LmM6IChGY1BhdHRlcm5GaW5pKToKLQkqIHNyYy9mY3htbC5jOiAoRmNQYXJzZVBhdGVsdCk6Ci0JRWxpbWluYXRlIHBhdHRlcm4gZnJlZXppbmcKLQotMjAwNi0wNC0yNyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCXJldmlld2VkIGJ5OiBQYXRyaWNrIExhbSA8cGxhbUBtaXQuZWR1PgotCi0JKiBzcmMvZmNjYWNoZS5jOiAoRmNEaXJDYWNoZVVubGluayksIChGY0RpckNhY2hlSGFzaE5hbWUpLAotCShGY0RpckNhY2hlT3BlbiksIChGY0RpckNhY2hlV3JpdGUpOgotCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSk6Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2xpc3QuYzogKEZjTGlzdEFwcGVuZCk6Ci0JKiBzcmMvZmNtYXRjaC5jOiAoRmNGb250UmVuZGVyUHJlcGFyZSk6Ci0JKiBzcmMvZmNwYXQuYzogKEZjUGF0dGVybkRlc3Ryb3kpLCAoRmNQYXR0ZXJuQmFzZUZyZWV6ZSksCi0JKEZjUGF0dGVybkZyZWV6ZSksIChGY1BhdHRlcm5HZXQpLCAoRmNQYXR0ZXJuRHVwbGljYXRlKSwKLQkoRmNTdHJVbnNlcmlhbGl6ZSk6Ci0JTWFrZSBwYXRoIG5hbWVzIGluIGNhY2hlIGZpbGVzIGFic29sdXRlIChOQiwgY2FjaGUgZm9ybWF0IGNoYW5nZSkKLQlTdG9wIHBlcm1pdHRpbmcgY2FjaGUgZmlsZXMgdG8gYmUgc3RvcmVkIGluIGZvbnQgZGlycy4KLQlCdW1wIGNhY2hlIG1hZ2ljLgotCURvbid0IGluY2x1ZGUgL2ZvbnRzLmNhY2hlLTIgaW4gY2FjaGUgaGFzaCBjb25zdHJ1Y3Rpb24uCi0KLTIwMDYtMDQtMjUgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgotCSogQ2hhbmdlTG9nOgotCSogUkVBRE1FOgotCSogY29uZmlndXJlLmluOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0KLQlCdW1wIHZlcnNpb24gdG8gMi4zLjk1LgotCi0yMDA2LTA0LTI1ICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogY29uZmlndXJlLmluOgotCSogc3JjL01ha2VmaWxlLmFtOgotCSogc3JjL2ZjZnJlZXR5cGUuYzoKLQotCUZpeCB0aGUgaXNzdWVzIHdpdGggR05VIGxpYmljb252IHZzLiBsaWJjIGljb252ICh3aGljaCBlc3BlY2lhbGx5Ci0JYXBwZWFyIG9uIFNvbGFyaWkpLiAgQXBwcm9hY2ggc3VnZ2VzdGVkIGJ5IFRpbSBNb29uZXkuCi0JCi0yMDA2LTA0LTI0ICBEb21pbmljIExhY2hvd2ljeiAgPGNpbmFtb2RAaG90bWFpbC5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9NYWtlZmlsZS5hbToKLQotCUluY2x1ZGUgJCh0b3Bfc3JjZGlyKSwgJCh0b3Bfc3JjZGlyKS9zcmMgYmVmb3JlIGFueXRoaW5nIGVsc2UuCi0KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMsIGZjLWNhdC9mYy1jYXQuYywgZmMtbWF0Y2gvZmMtbWF0Y2guYzoKLQkqIHNyYy9mY2NhY2hlLmMsIHNyYy9mY2NmZy5jLCBzcmMvZmNjaGFyc2V0LmMsIHNyYy9mY2RiZy5jOgotCSogc3JjL2ZjZnJlZXR5cGUuYywgc3JjL2ZjZnMuYywgc3JjL2ZjaW5pdC5jLCBzcmMvZmNsaXN0LmM6Ci0JKiBzcmMvZmNtYXRjaC5jLCBzcmMvZmNtYXRyaXguYywgc3JjL2ZjbmFtZS5jLCBzcmMvZmNwYXQuYzoKLQkqIHNyYy9mY3N0ci5jLCBzcmMvZmN4bWwuYzoKLQotCVNodWZmbGUgb3JkZXIgb2YgaW5jbHVkZXMgZm9yIGJ1aWxkaW5nIG91dCBvZiBzcmNkaXIgb24gd2luMzIuCi0JCi0yMDA2LTA0LTIwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY21hdGNoLmMgKEZjU29ydFdhbGspOgotCi0JUHJldmVudCB0ZXJyaWJsZSBwZXJmIHJlZ3Jlc3Npb24gYnkgZ2V0dGluZyB0aGUgaWYtY29uZGl0aW9uCi0JcmlnaHQgKHJlcG9ydGVkIGJ5IFdvdXRlciBCb2xzdGVybGVlKS4KLQotMjAwNi0wNC0xOSAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+Ci0JICAgIERvbWluaWMgTGFjaG93aWN6ICA8Y2luYW1vZEBob3RtYWlsLmNvbT4KLQotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZUNvbnN1bWUpOgotCi0JSW1wbGVtZW50IG1tYXAtbGlrZSBjb2RlIGZvciBXaW5kb3dzIHVzaW5nIE1hcFZpZXdPZkZpbGUuCi0JCi0yMDA2LTA0LTE5ICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lLCBGY0NhY2hlTmV4dE9mZnNldCk6Ci0KLQlCYWlsIGdyYWNlZnVsbHkgaWYgdGhlIGNhY2hlIGZpbGUgZG9lcyBub3QgY29udGFpbiBlbm91Z2ggZGF0YS4KLQotMjAwNi0wNC0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmb250cy5jb25mLmluOgotCi0JR2l2ZSB0aGUgJ1N0YW5kYXJkIFN5bWJvbHMgTCcgbWF0Y2ggYSBzdHJvbmcgKHZzLiB3ZWFrKSBiaW5kaW5nLgotCi0yMDA2LTA0LTE0ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3RUb1B0ckxvb2t1cCk6Ci0KLQlGaXggR2Vja28tZXhwb3NlZCBzZWdmYXVsdCBmcm9tIG15IGxhc3QgaGFjayB0bwotCUZjT2JqZWN0VG9QdHJMb29rdXAuICBTaW1wbGlmeSBjb2RlIGFuZCBnZXQgdGhpbmdzIHN0cmFpZ2h0LgotCi0yMDA2LTA0LTE0ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZvbnRzLmNvbmYuaW46Ci0KLQlBY3R1YWxseSwganVzdCBhZGQgVVJXIGZvbnRzIGFzIGFsaWFzZXMgZm9yIGFsbCBvZiB0aGUgUG9zdFNjcmlwdAotCWZvbnRzLiAgKHJlcG9ydGVkIGJ5IE1pZ3VlbCBSb2RyaWd1ZXopLgkKLQotMjAwNi0wNC0xMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmb250cy5jb25mLmluOgotCi0JQWRkIGFuIGFsaWFzICdTdGFuZGFyZCBTeW1ib2xzIEwnIGZvciAnU3ltYm9sJy4KLQotMjAwNi0wNC0xMiAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY3BhdC5jOiAoRmNQYXR0ZXJuRnJlZXplKToKLQlGaXggbWVtb3J5IGxlYWsgKENvdmVyaXR5IGRlZmVjdCAjMjA4OSkuCi0KLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChHZXRTY3JpcHRUYWdzKToKLQlJZ25vcmUgc2NyaXB0IGlmIHN1YnRhYmxlIGlzIG1pc3NpbmcgKENvdmVyaXR5IGRlZmVjdCAjMjA4OCkuCi0KLTIwMDYtMDQtMTIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnU3Vic3RpdHV0ZVdpdGhQYXQpOgotCi0JRml4IHBvc3NpYmxlIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSAoQ292ZXJpdHkgZGVmZWN0ICM3ODQpCi0JYW5kIG1lbW9yeSBsZWFrIChDb3Zlcml0eSBkZWZlY3RzICM3ODUsICM3ODYpLgotCi0yMDA2LTA0LTEyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY21hdGNoLmMgKEZjU29ydFdhbGssIEZjRm9udFNldFNvcnQpOgotCi0JRG9uJ3QgY29weSBGY0NoYXJTZXQgaWYgd2UncmUgZ29pbmcgdG8gdGhyb3cgaXQgYXdheSBhbnl3YXkuCi0JKFJlcG9ydGVkIGJ5IEtlbmljaGkgSGFuZGEpLgotCi0yMDA2LTA0LTExICBNaW5nIFpoYW8gIDxtaW5nQGdlbnRvby5vcmc+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3RUb1B0ckxvb2t1cCk6Ci0KLQlGaXggYmFkIGJlaGF2aW91ciBvbiByZWFsbG9jIHJlc3VsdGluZyBpbiBjcmFzaC4KLQotMjAwNi0wNC0xMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlUmVhZERpcik6Ci0KLQlEb24ndCBjcmFzaCBpZiBjb25maWcgaXMgbnVsbCAoQ292ZXJpdHkgZGVmZWN0ICM5ODQpLgotCi0yMDA2LTA0LTExICBGcmVkZXJpYyBDcm96YXQgIDxmY3JvemF0QG1hbmRyaXZhLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldFB1dExlYWYpOgotCSogc3JjL2ZjbGFuZy5jIChGY05hbWVVbnBhcnNlTGFuZ1NldCk6Ci0KLQlNaXNzaW5nIGJpdHMgZnJvbSBwcmV2aW91cyBwYXRjaGVzLgotCi0JKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldFN1YnRyYWN0Q291bnQpOgotCVJlbW92ZSBleHRyYSBzZW1pLWNvbG9uLgotCi0JKiBzcmMvZmNjZmcuYyAoRmNDb25maWdCdWlsZEZvbnRzKToKLQlGaXggbWVtb3J5IGxlYWsgaW4gZXJyb3IgY2FzZSAoQ292ZXJpdHkgZGVmZWN0cyAjNzc2LCAjOTg1KS4KLQotCSogc3JjL2ZjeG1sLmMgKEZjUG9wQmluYXJ5LCBGY1BhcnNlUGF0ZWx0LCBGY1BhcnNlUGF0dGVybik6Ci0JRml4IG1lbW9yeSBsZWFrcyAoQ292ZXJpdHkgZGVmZWN0cyAjNzc5LCAjNzgxKSAKLQlhbmQgbWVtb3J5IHVzZSBhZnRlciBmcmVlIChDb3Zlcml0eSBkZWZlY3QgIzc4MCkuCi0KLTIwMDYtMDQtMTEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2hhcnNldC5jIChGY0NoYXJTZXRQdXRMZWFmKToKLQotCVByb3Blcmx5IGNvbnZlcnQgc3RhdGljIGNoYXJzZXRzIHRvIGR5bmFtaWMgY2hhcnNldHMuCi0KLTIwMDYtMDQtMTEgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmNwYXQuYzogKEZjVmFsdWVMaXN0RW50Q3JlYXRlLCBGY1BhdHRlcm5CYXNlRnJlZXplLAotCUZjUGF0dGVybkZyZWV6ZSk6Ci0JRml4IG1lbW9yeSBsZWFrIGluIGVycm9yIGNhc2UgKENvdmVyaXR5IGRlZmVjdHMgIzE4MjAsICMxODIxLCAjMTgyMikuCi0KLQkqIHNyYy9mY2xhbmcuYzogKEZjTmFtZVVucGFyc2VMYW5nU2V0KToKLQlGaXggbWVtb3J5IGxlYWsgKENvdmVyaXR5IGRlZmVjdCAjMTgxOSkuCi0KLQkqIGZjLWxhbmcvZmMtbGFuZy5jOiAoc2Nhbik6Ci0JcHJldmVudCBjcmFzaCB3aGVuIGludmFsaWQgaW5jbHVkZSBsaW5lIGlzIHBhcnNlZCAoQ292ZXJpdHkgZGVmZWN0Ci0JIzc2MykuCi0KLQkqIGZjLWNhdC9mYy1jYXQuYzogKEZjQ2FjaGVGaWxlUmVhZCk6Ci0JRml4IHBvdGVudGlhbCBudWxsIHBvaW50ZXIgYWNjZXNzIChDb3Zlcml0eSBkZWZlY3QgIzE4MDQpLgotCi0JKiBzcmMvZmNuYW1lLmM6IChGY09iamVjdFVuc2VyaWFsaXplKToKLQlSZW1vdmUgZGVhZCBjb2RlIChDb3Zlcml0eSBkZWZlY3QgIzExOTQpLgotCi0JKiBzcmMvZmNmcmVldHlwZS5jOiAoR2V0U2NyaXB0VGFncyk6Ci0JUHJldmVudCBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGFjY2VzcyAoQ292ZXJpdHkgZGVmZWN0ICM3NjcpLAotCWVuc3VyZSBlcnJvciB2YWx1ZSBpcyByZWFkIChDb3Zlcml0eSBkZWZlY3QgIzExOTUpLgotCi0yMDA2LTA0LTExICBCZWhkYWQgRXNmYWhib2QgIDxiZWhkYWRAY3MudG9yb250by5lZHU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogZG9jL01ha2VmaWxlLmFtOgotCi0JU3Vydml2ZSBtaXNzaW5nIGRvY2Jvb2sycGRmLgotCi0yMDA2LTA0LTEwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhc2UvZmMtY2FzZS5jOgotCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOgotCSogZmMtbGFuZy9mYy1sYW5nLmM6Ci0KLQlJbmNsdWRlIG1vcmUgc3R1YiBkZWZpbml0aW9ucyB0byBtYWtlIEhQLVVYJ3MgQyBjb21waWxlciBoYXBweS4KLQotMjAwNi0wNC0xMCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0VW5zZXJpYWxpemUpOgotCi0JU3dhcCB0eXBvIGluIG9yZGVyIG9mIEFMSUdOIGFuZCBkZXJlZmVyZW5jaW5nLCBmaXhpbmcgYnVnIDY1MjkuCi0KLTIwMDYtMDQtMTAgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmNjZmcuYzogKEZjQ29uZmlnRXZhbHVhdGUpOgotCUZpeCBzdHJpbmcgbWVtb3J5IGxlYWsgKENvdmVyaXR5IGRlZmVjdCAjMTgyMykuCi0JCi0JKiBzcmMvZmNjYWNoZS5jOiAoRmNEaXJDYWNoZVVubGluayk6Ci0JRml4IG1lbW9yeSBsZWFrIHdpdGggaGFzaCBjb2xsaXNpb24gKENvdmVyaXR5IGRlZmVjdCAjMTgyNCkuCi0KLTIwMDYtMDQtMTAgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmNjYWNoZS5jOiAoRmNHbG9iYWxDYWNoZVNhdmUpOgotCURvbid0IGxlYWsgaGVhZGVyIGluIG5vbi1lcnJvciBjYXNlIChDb3Zlcml0eSBkZWZlY3QgIzE4MjUpLgotCi0yMDA2LTA0LTEwICBGcmVkZXJpYyBDcm96YXQgIDxmY3JvemF0QG1hbmRyaXZhLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKQotCURvbid0IGxlYWsgaW4gZXJyb3IgY2FzZXMgKENvdmVyaXR5IGRlZmVjdHMgIzc3NywgIzE4MjYpCi0KLTIwMDYtMDQtMTAgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY2NhY2hlLmM6IChGY0RpckNhY2hlV3JpdGUpOgotCUZpeCBkb3VibGUgZnJlZSAoc3BvdHRlZCBieSBDb3Zlcml0eSwgQ0lEICMxOTY1KS4KLQotCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzogKG1haW4pOgotCUNoZWNrIGlmIHBhdHRlcm4gaXMgbm90IG51bGwgYmVmb3JlIHVzaW5nIGl0IChDb3Zlcml0eSBkZWZlY3QgIzE4ODMpLgotCi0JKiBzcmMvZmNjYWNoZS5jOiAoRmNEaXJDYWNoZVdyaXRlKToKLQlGaXggbWVtb3J5IGxlYWsgd2l0aCBoYXNoIGNvbGxpc2lvbiAoQ292ZXJpdHkgZGVmZWN0ICMxODI5KS4KLQotCSogc3JjL2ZjY2ZnLmM6IChGY0NvbmZpZ0J1aWxkRm9udHMpOgotCUZpeCBtZW1vcnkgbGVhayB3aGVuIGJhaWwgY2FzZXMgKENvdmVyaXR5IGRlZmVjdCAjMTgyOCkuCi0KLQkqIHNyYy9mY2NhY2hlLmM6IChGY0dsb2JhbENhY2hlTG9hZCk6Ci0JRG9uJ3QgbGVhayBkaXJlY3RvcnkgbmFtZSAoQ292ZXJpdHkgZGVmZWN0ICMxODI3KS4KLQotMjAwNi0wNC0wNyAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKLQkqIGZjLWNhdC9NYWtlZmlsZS5hbToKLQkqIGZjLWxpc3QvTWFrZWZpbGUuYW06Ci0JKiBmYy1tYXRjaC9NYWtlZmlsZS5hbToKLQotCUxEX0FERCBtaXNzaW5nIGRlcGVuZGVuY2llcyBmb3IgYmluYXJpZXMuICBSZXBvcnRlZCBieQotCUVkc29uIEFsdmVzIFBlcmVpcmEuCi0KLTIwMDYtMDQtMDcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBmYy1sYW5nL2ZjLWxhbmcuYyAobWFpbik6Ci0KLQlTR0kgY29tcGlsYXRpb24gZml4ZXMgKHJlcG9ydGVkIGJ5IENocmlzdG9waCBCYXVlcik6Ci0JMSkgcmVvcmRlciB1bmlvbiBkZWZpbml0aW9uIG9mIF9GY0NoYXI7Ci0JMikgb21pdCAuc3RhdHMgPS4KLQotMjAwNi0wNC0wNyAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JKiBjb25maWd1cmUuaW46Ci0JKiBzcmMvZmNjaGFyc2V0LmMgKEZjQ2hhclNldE5lZWRlZEJ5dGVzKToKLQkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldE5lZWRlZEJ5dGVzKToKLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjbGFuZy5jIChGY0xhbmdTZXROZWVkZWRCeXRlc0FsaWduKToKLQkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3ROZWVkZWRCeXRlc0FsaWduKToKLQkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5OZWVkZWRCeXRlc0FsaWduLCAKLQkJICAgICAgIEZjVmFsdWVMaXN0TmVlZGVkQnl0ZXNBbGlnbiwgRmNTdHJOZWVkZWRCeXRlc0FsaWduKToKLQotCVBvcnRhYmlsaXR5IGZpeGVzIGZvciBIUC1VWCAocmVwb3J0ZWQgYnkgQ2hyaXN0b3BoIEJhdWVyKS4KLQlSZXBsYWNlICdfX2lubGluZV9fJyBieSBBQ19DX0lOTElORSBhbmQgJ2lubGluZScuCi0JUmVwbGFjZSAnX19hbGlnbm9mX18nIGJ5ICdmY19hbGlnbm9mJy4KLQotMjAwNi0wNC0wNyAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JKiBzcmMvZmNpbnQuaDoKLQotCU1vdmUgdXAgI2luY2x1ZGUgb2YgY29uZmlnLmguCi0JRmFpbCBpZiBuZWl0aGVyIGludHR5cGVzLmggbm9yIHN0ZGludC5oIGlzIGF2YWlsYWJsZS4KLQlGaXhlcyBidWcgNjE3MS4KLQotMjAwNi0wNC0wNyAgRG9taW5pYyBMYWNob3dpY3ogIDxjaW5hbW9kQGhvdG1haWwuY29tPgotCSAgICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmM6Ci0JKiBmYy1jYXQvZmMtY2F0LmM6Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlU2F2ZSwgRmNDYWNoZU5leHRPZmZzZXQsIAotCQkJIEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlUHJvZHVjZSwgCi0JCQkgRmNEaXJDYWNoZVdyaXRlLCBGY0NhY2hlTWFjaGluZVNpZ25hdHVyZSk6Ci0JKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgotCSogc3JjL2ZvbnRjb25maWcuZGVmLmluOgotCi0JTWFrZSBmb250Y29uZmlnIGNvbXBpbGUgdW5kZXIgTWluR1c6IAotCTEpIHJlbW92ZSB1bm5lZWRlZCAjaW5jbHVkZXM7Ci0JMikgbWFrZSB1c2Ugb2YgbW1hcCBhbmQgc3lzY29uZiBjb25kaXRpb25hbDsKLQkzKSByZXBsYWNlIHJhbmRfciBieSBzcmFuZC9yYW5kIGlmIG5lZWRlZDsKLQk0KSB1c2UgY2hzaXplIGluc3RlYWQgb2YgZnRydW5jYXRlOyBhbmQKLQk1KSB1cGRhdGUgbGlidG9vbCBleHBvcnRzIGZpbGUKLQotMjAwNi0wNC0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQotCUVsaW1pbmF0ZSB3YXJuaW5nLgotCi0yMDA2LTA0LTA2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLW1hdGNoLy5jdnNpZ25vcmU6Ci0JKiBmYy1tYXRjaC9NYWtlZmlsZS5hbToKLQkqIGZjLW1hdGNoL2ZjLW1hdGNoLnNnbWw6Ci0KLQlVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgZmMtbWF0Y2ggKFNHTUwtaXplIGl0KS4KLQkocmVwb3J0ZWQgYnkgSWx5YSBLb25zdGFudGlub3YpCi0KLTIwMDYtMDQtMDYgIERpZWdvIFBldHRlbvIgIDxmbGFtZWV5ZXNAZ2VudG9vLm9yZz4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogc3JjL2ZjZGVmYXVsdC5jOgotCSogc3JjL2ZjcGF0LmM6Ci0JKiBzcmMvZmN4bWwuYzoKLQotCVJlZHVjZSBhbW91bnQgb2YgZGlydHkgcnNzIGJ5IGNvbnN0J2luZyBzb21lIGRhdGEgc3RydWN0dXJlcy4KLQotMjAwNi0wNC0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKLQotCURvbid0IGZhaWwgaWYgd2UgY2FuJ3QgY3JlYXRlIG9yIHJlbW92ZSAKLQkkKHBrZ2NhY2hlZGlyKSBpLmUuIC92YXIvY2FjaGUvZm9udGNvbmZpZy4KLQkocmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudCkuCi0KLTIwMDYtMDQtMDYgIEtqYXJ0YW4gTWFyYWFzICA8a21hcmFhc0Bnbm9tZS5vcmc+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkqIGZjLWNhc2UvZmMtY2FzZS5jOgotCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOgotCSogZmMtbGFuZy9mYy1sYW5nLmMgKG1haW4pOgotCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzoKLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0NhY2hlU2tpcFRvQXJjaCwgCi0JCQkgRmNEaXJDYWNoZVdyaXRlKToKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6Ci0JKiBzcmMvZmNsYW5nLmMgKEZjRnJlZVR5cGVMYW5nU2V0KToKLQkqIHNyYy9mY3htbC5jOgotCi0JRml4IGludGVsIGNvbXBpbGVyIHdhcm5pbmdzOiBtYWtlIG1hbnkgdmFyaWFibGVzIHN0YXRpYywKLQllbGltaW5hdGUgZHVwbGljYXRlIG5hbWVzLCByZWR1Y2UgdmFyaWFibGUgc2NvcGVzLCB1bnNpZ25lZC9zaWduZWQKLQlwcmludGYgZm9ybWF0dGluZy4KLQotMjAwNi0wMy0yNCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkLCBGY0NhY2hlU2tpcFRvQXJjaCk6Ci0KLQlGaXggbXVsdGlhcmNoIHN1cHBvcnQgKGRvbid0IGRlc3Ryb3kgbXVsdGlhcmNoIGZpbGVzISkKLQotMjAwNi0wMy0yNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBjb25maWd1cmUuaW46Ci0KLQlSZXF1aXJlIHBrZy1jb25maWcuICAoVGhhbmtzIEJlaGRhZDsgCi0JYmV0dGVyIHNvbHV0aW9uIHdhbnRlZCBmb3IgbGlieG1sMiBkZXRlY3Rpb24hKQotCi0yMDA2LTAzLTIyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2F0b21pYy5jOgotCi0JT24gV2luZG93cywgdW5saW5rIGJlZm9yZSByZW5hbWUuICBSZXBvcnRlZCBieSBUaW0gRXZhbnMuCi0KLTIwMDYtMDMtMTUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtbGFuZy9hYi5vcnRoOgotCSogZmMtbGFuZy9pYm8ub3J0aDoKLQotCUZpeCB0eXBvcyBpbiBvcnRoIGZpbGVzLiAgUmVwb3J0ZWQgYnkgRGVuaXMgSmFjcXVlcnllLgotCi0yMDA2LTAzLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIE1ha2VmaWxlLmFtOgotCSogY29uZmlnL2NvbmZpZy5ndWVzczoKLQkqIGNvbmZpZy9jb25maWcuc3ViOgotCi0JRml4IE1ha2VmaWxlLmFtIGZvciByZW1vdmFsIG9mIGRlYmlhbi8gZGlyZWN0b3J5LgotCi0yMDA2LTAzLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIC5jdnNpZ25vcmUKLQotCUlnbm9yZSBkZWJpYW4vIGRpcmVjdG9yeSBmb3IgQ1ZTLgotCi0yMDA2LTAzLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGRlYmlhbi8qCi0KLQlOb3cgcmVtb3ZlIGRlYmlhbi8gZGlyZWN0b3J5LgotCi0yMDA2LTAzLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGRlYmlhbi9wby8qCi0KLQlSZW1vdmUgZGViaWFuLyBkaXJlY3RvcnkgZnJvbSBzb3VyY2VzLiAgU2VlIERlYmlhbidzIHN1YnZlcnNpb24KLQlzZXJ2ZXIgYXQgc3ZuOi8vc3ZuLmRlYmlhbi5vcmcvcGtnLWZyZWVkZXNrdG9wL3RydW5rL2ZvbnRjb25maWcKLQlpbnN0ZWFkLgotCi0yMDA2LTAzLTA4ICBEZW5pcyBKYWNxdWVyeWUgIDxtb3lvZ29AZ21haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWxhbmcvbG4ub3J0aDoKLQkqIGZjLWxhbmcvaXNvNjM5LTEsIGZjLWxhbmcvaXNvNjM5LTI6Ci0KLQlBZGQgb3J0aG9ncmFwaHkgZm9yIExpbmdhbGEuCi0JCi0yMDA2LTAzLTA4ICBDYXJsIFdvcnRoICA8Y3dvcnRoQGN3b3J0aC5vcmc+Ci0JcmV2aWV3ZWQgYnk6IGtlaXRocAotCi0JKiBjb25mLmQvTWFrZWZpbGUuYW06Ci0JKiBjb25mLmQvMTBMb2hpdEd1amFyYXRpLmNvbmY6IAotCi0JQWRkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgZGlzYWJsZXMgaGludGluZyBmb3IgdGhlIExvaGl0Ci0JR3VqYXJhdGkgZm9udCAoc2luY2UgdGhlIGhpbnRpbmcgZGlzdG9ydCBzb21lIGdseXBocyBxdWl0ZSBiYWRseSkuCi0KLTIwMDYtMDMtMDggIEVnbW9udCBLb2JsaW5nZXIgIDxlZ21vbnRAdWh1bGludXguaHU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6Ci0KLQlTb3J0IGRpcmVjdG9yeSBlbnRyaWVzIHdoaWxlIHNjYW5uaW5nIHRoZW0gZnJvbSBkaXNrOwotCXByZXZlbnRzIEhlaXNlbmJ1Z3MgZHVlIHRvIGZpbGUgb3JkZXJpbmcgaW4gYSBkaXJlY3RvcnkuCi0KLTIwMDYtMDMtMDcgIEJlaGRhZCBFc2ZhaGJvZCAgPGJlaGRhZEBjcy50b3JvbnRvLmVkdT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNmcmVldHlwZS5jIChHZXRTY3JpcHRUYWdzKToKLQkqIHNyYy9mdGdsdWUuYywgc3JjL2Z0Z2x1ZS5oOgotCi0JUmVtb3ZlIHN0dWZmIHdlIGRvbid0IHVzZSwgbWFrZSBnZXRfe2NoYXIsc2hvcnQsbG9uZ30gZnVuY3Rpb25zCi0Jb2YgZnRnbHVlIG1hY3JvcyB0byBiZSBpbmxpbmVkLgotCQotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0U2VyaWFsaXplKToKLQotCUNvZGUgY2xlYW51cHMgKGV4Y2VzcyBwcm90b3R5cGUsIG9sZC1zdHlsZSBmdW5jdGlvbiBkZWZpbml0aW9uKS4KLQotMjAwNi0wMy0wNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuR2V0U3RyaW5nKToKLQotCUJlY2F1c2Ugd2UgaGFja2VkIEZjUGF0dGVybkdldCwgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8gZXhwYW5kIHRoZQotCWZpbGVuYW1lIGFnYWluIGluIEZjUGF0dGVybkdldFN0cmluZy4KLQotMjAwNi0wMy0wNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuR2V0U3RyaW5nLCBGY1BhdHRlcm5HZXQpOgotCi0JT2ssIHNvIHNvbWUgcGVvcGxlICh3aW5lISkgdXNlIEZjUGF0dGVybkdldCB0byBmZXRjaCBGQ19GSUxFLgotCU1ha2UgdGhhdCB3b3JrLiAgUmVwb3J0ZWQgYnkgQmVybmhhcmQgUm9zZW5rcmFlbnplci4KLQotMjAwNi0wMy0wMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNpbnQuaDoKLQotCUluY2x1ZGUgaW50dHlwZXMuaCBpbnN0ZWFkIG9mIHN0ZGludC5oIGlmIGFwcHJvcHJpYXRlLgotCi0yMDA2LTAzLTAzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhdC9mYy1jYXQuYyAoRmNGaWxlSXNEaXIpOgotCSogZmMtZ2x5cGhuYW1lL2ZjLWZseXBobmFtZS5jOgotCi0JTW9yZSBzdHViIGRlZmluaXRpb25zIGFuZCByZW1vdmUgRmNGaWxlSXNEaXIgZnJvbSBmYy1jYXQuCi0KLTIwMDYtMDMtMDMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtY2FzZS9mYy1jYXNlLmM6Ci0KLQlGaXggY29tcGlsYXRpb24gb24gQUlYIHdpdGggc3R1YiBkZWZpbml0aW9ucyAoYnVnIDYwOTcpLgotCi0yMDA2LTAzLTAzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVTa2lwVG9BcmNoLCBGY0RpckNhY2hlUHJvZHVjZSk6Ci0JKiBzcmMvZmNmcmVldHlwZS5jIChHZXRTY3JpcHRUYWdzKToKLQkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldERpc3RyaWJ1dGVCeXRlcyk6Ci0JKiBzcmMvZmNwYXQuYyAoRmNWYWx1ZUxpc3RFbnRDcmVhdGUsIEZjVmFsdWVMaXN0TmVlZGVkQnl0ZXMpOgotCi0JR2V0IHJpZCBvZiBDKystc3R5bGUgY29tbWVudHMuCi0KLTIwMDYtMDMtMDMgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZGViaWFuL2NoYW5nZWxvZwotCi0JRW5hYmxlIGNyZWF0aW9uIG9mIDIuMy45NCBEZWJpYW4gcGFja2FnZXMuCi0KLTIwMDYtMDMtMDIgIEVnbW9udCBLb2JsaW5nZXIgIDxlZ21vbnRAdWh1bGludXguaHU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2xhbmcuYyAoRmNDaGFyU2V0Rm9yTGFuZyk6Ci0KLQlGaXggc3VzcGljaW91cyByZXR1cm4gZXhwcmVzc2lvbiB3aGljaCBjYXVzZXMganVuayAKLQl0byBiZSByZXR1cm5lZC4KLQotMjAwNi0wMi0yNCAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+Ci0JKiBDaGFuZ2VMb2c6Ci0JKiBSRUFETUU6Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQotCUJ1bXAgdmVyc2lvbiB0byAyLjMuOTQuCi0KLTIwMDYtMDItMjQgIFBhdHJpY2sgTGFtCSA8cGxhbUBtaXQuZWR1PgotCSogTWFrZWZpbGUuYW06Ci0KLQlGaXggcGxhY2VtZW50IG9mIEBzLgotCi0yMDA2LTAyLTI0ICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KLQkqIGNvbmYuZC8xMC1mb250cy1wZXJzaWFuLmNvbmY6Ci0KLQlSZW1vdmUgdW5jb25kaXRpb25hbCBlbWJvbGRlbmluZyAocGVyIEJlaGRhZCdzIGluc3RydWN0aW9ucykuCi0KLQkqIE1ha2VmaWxlLmFtOgotCi0JQWRkIEBzIHRvIGhpZGUgc29tZSBlY2hvcy4KLQotMjAwNi0wMi0yNCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+Ci0JICAgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEdldFNjcmlwdFRhZ3MpOgotCi0JRml4IGRvdWJsZS1mcmVlIG9uIGVycm9yIGNhc2UuCi0KLTIwMDYtMDItMjEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtbGFuZy9mYy1sYW5nLmMgKHNjYW4pOgotCi0JU3RyaXAgXHIgYW5kIHdoaXRlc3BhY2UgZnJvbSBpbnB1dDsgZml4ZXMgYnVnIDM0NTQuCi0KLTIwMDYtMDItMjEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtbGFuZy9mYy1sYW5nLmMgKG1haW4pOgotCi0JQWxsb2NhdGUgbGFyZ2UgYXJyYXlzIHN0YXRpY2FsbHkgaW4gZmMtbGFuZyB0byBmaXggY3Jhc2hlcyB1bmRlcgotCU1pbkdXL01TWVMuCi0KLTIwMDYtMDItMjEgIERpZWdvIFBldHRlbiAgPGZsYW1lZXllc0BnZW50b28ub3JnPgotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZUNoYXJJbmRleCk6Ci0KLQlQYXNzIHRoZSBidWNrOyBtYWtlIGZvbnRjb25maWcgbm90IGNyYXNoIG9uIHBhbmdvIGJhZG5lc3MuCi0KLTIwMDYtMDItMjEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogY29uZi5kLzEwLWZvbnRzLXBlcnNpYW4uY29uZjoKLQotCVVzZSBlbWJlZGRlZGJpdG1hcCByYXRoZXIgdGhhbiByaF9wcmVmZXJfYml0bWFwLgotCi0yMDA2LTAyLTIxICBQYXVsIENvcm5ldHQgIDxwYXVsY29yMUBidWxsc2V5ZS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVdyaXRlKToKLQkqIHNyYy9mY2Rpci5jIChGY0ZpbGVTY2FuQ29uZmlnKToKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjU3RyaW5nSW5QYXR0ZXJuRWxlbWVudCk6Ci0JKiBzcmMvZmN4bWwuYyAoRmNQYXJzZUZhbWlsaWVzKToKLQkqIHNyYy9mdGdsdWUuYyAoZnRnbHVlX2ZhY2VfZ290b190YWJsZSk6Ci0KLQlFbGltaW5hdGUgcmVkdW5kYW5jaWVzLgotCi0yMDA2LTAyLTIxICBLamFydGFuIE1hcmFhcyAgPGttYXJhYXNAZ25vbWUub3JnPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWxpc3QvZmMtbGlzdC5jIChtYWluKToKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVDaGFyU2V0QW5kU3BhY2luZyk6Ci0JKiBzcmMvZmNzdHIuYyAoRmNTdHJTdHIpOgotCSogc3JjL2ZjeG1sLmMgKEZjQ29uZmlnU2F2ZUF0dHIpOgotCi0JRWxpbWluYXRlIHVudXNlZCB2YXJzIHJlcG9ydGVkIGJ5IEludGVsJ3MgY29tcGlsZXIuCi0KLTIwMDYtMDItMjEgIEFpZXQgS29sa2hpICA8YWlldGtvbGtoaUBnbWFpbC5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogZmMtbGFuZy9rYS5vcnRoOgotCi0JUmVtb3ZlIG9uZSBtb3JlIGFyY2hhaWMgY2hhcmFjdGVyLgotCi0yMDA2LTAyLTIxICBSb3NzIEJ1cnRvbiAgPHJvc3NAYnVydG9uaW5pLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbSwga2VpdGhwCi0KLQkqIHNyYy9mY3htbC5jIChGY1BhcnNlUGF0ZWx0KToKLQotCUZyZWV6ZSBwYXR0ZXJucyBjcmVhdGVkIGJ5IGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGlueSAKLQltZW1vcnkgc2F2aW5ncyAoZXZlcnkgbGl0dGxlIGJpdCBoZWxwcykuCi0KLTIwMDYtMDItMjEgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBmYy1jYXQvZmMtY2F0LmMgKG1haW4pOgotCi0JSW5pdGlhbGl6ZSBmb250Y29uZmlnIGxpYnJhcnkgaW4gZmMtY2F0IHRvIGF2b2lkIHNlZ2ZhdWx0LgotCi0yMDA2LTAyLTE4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKLQkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkRGlycyk6Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQotCUZpeCB0aGUgdW5kZXJseWluZyBjYXVzZSBvZiB0aGUgYmVsb3cgc2VnZmF1bHQgKG11c3QgdXN1YWxseQotCWNhbGwgRmNEaXJDYWNoZUhhc0N1cnJlbnRBcmNoIGFmdGVyIEZjRGlyQ2FjaGVWYWxpZCkuCi0JCi0yMDA2LTAyLTE4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6Ci0KLQlGaXggdHJpZ2dlcmluZyBvZiBzZWdmYXVsdCBjYXVzZWQgYnkgbWlzcmVhZGluZyBjYWNoZSBmaWxlcwotCShyZXBvcnRlZCBieSBmY3JvemF0KS4KLQotMjAwNi0wMi0xNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNpbnQuaCAgKEZDX0NBQ0hFX01BR0lDKToKLQotCUJ1bXAgdXAgbWFnaWMgdmVyc2lvbjsgd2UgY2hhbmdlZCB0aGUgYmluYXJ5IGZvcm1hdC4KLQotMjAwNi0wMi0xNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1jYXQvZmMtY2F0LmMgKG1haW4pOgotCi0JRW5hYmxlIGZjLWNhdCB0byBwcmludCBvdXQgb2xkLXN0eWxlIGNhY2hlIGluZm8gd2hlbiBnaXZlbiBhCi0JZGlyZWN0b3J5IG5hbWUuCi0KLTIwMDYtMDItMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZUhhc0N1cnJlbnRBcmNoKToKLQotCURlYWwgY29ycmVjdGx5IHdpdGggY2hhbmdpbmcgRkNfQ0FDSEVfTUFHSUMuCi0KLTIwMDYtMDItMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAodXNhZ2UsIHNjYW5EaXJzLCBtYWluKToKLQotCUFkZCAtciAtLXJlYWxseS1mb3JjZSBvcHRpb24gd2hpY2ggYmxvd3MgYXdheSBjYWNoZSBmaWxlcyBhbmQgdGhlbgotCXJlZ2VuZXJhdGVzIHRoZW0uCi0KLTIwMDYtMDItMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVVubGluaywgRmNDYWNoZUNvcHlPbGQsIEZjRGlyQ2FjaGVXcml0ZSk6Ci0KLQlEb24ndCBiYWlsIGlmIGZvbnRjb25maWcgY2FuJ3QgcmVtb3ZlIGEgZGlyIGNhY2hlIGZpbGUuCi0JU2tpcCB0aGUgSUQgb2YgYSBjYWNoZSBmaWxlIHdoZW4gY29weWluZy4KLQlFbGltaW5hdGUgJ3NvdXJjZSBmaWxlIHRvbyBzbWFsbCcgYnVnIGluIEZjRGlyQ2FjaGVXcml0ZS4KLQotMjAwNi0wMi0xMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgotCi0JRml4IG1lbW9yeSBsZWFrIGluIGVycm9yIGNvbmRpdGlvbiBjb2RlLgotCi0yMDA2LTAyLTEzICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZVF1ZXJ5KToKLQotCVNraXAgYml0bWFwIGZvbnRzIHdoaWNoIGNhbid0IGV2ZW4gZ2V0IGl0IHRvZ2V0aGVyIGVub3VnaCB0bwotCWRlY2xhcmUgYSBmYW1pbHkgbmFtZTsgdGhpcyBhcHBlYXJzIHRvIHJlcHJvZHVjZSBwcmV2aW91cwotCWZvbnRjb25maWcgYmVoYXZpb3VyLgotCi0yMDA2LTAyLTEwICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlT3Blbik6Ci0KLQlUcnkgdG8gb3BlbiAvdmFyL2NhY2hlL2ZvbnRjb25maWcvW2hhc2hlZCBuYW1lXSBiZWZvcmUKLQlmb250cy5jYWNoZS0yIGluIGEgZGlyZWN0b3J5LCBiZWNhdXNlIC92YXIvY2FjaGUvZm9udGNvbmZpZwotCWZhaWx1cmVzIG91Z2h0IHRvIGJlIGZpeGFibGUsIHVubGlrZSBmb250cy5jYWNoZS0yIGZhaWx1cmVzLAotCXdoaWNoIG1heSBsZWF2ZSB5b3Ugc2NyZXdlZC4KLQotMjAwNi0wMi0xMCAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250U2V0TWF0Y2gpOgotCi0JVXNlIGEgdHJpLXN0YXRlIHRvIG1hcmsgdGhlIGZvbnRzIHdoaWNoIGRpZG4ndCBnZXQgYmxvY2tlZCBidXQKLQl3ZXJlIGp1c3QgbWlzc2luZyBhbiBlbGVtZW50LCB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20gdGhlCi0JZm9udHMgdGhhdCBkbyBtYXRjaCB0aGUgZWxlbWVudC4KLQotMjAwNi0wMi0xMCAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250U2V0TWF0Y2gpOgotCi0JRG9uJ3Qga2lsbCBmb250cyBiZWNhdXNlIHRoZXkgZG9uJ3QgZGVjbGFyZSBhbiBlbGVtZW50IHRoYXQncwotCWJlaW5nIG1hdGNoZWQgb24uCi0KLTIwMDYtMDItMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjR2xvYmFsQ2FjaGVTYXZlLAotCQkJIEZjRGlyQ2FjaGVVbmxpbmssIEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlV3JpdGUpOgotCi0JRGVmaW5lIGFuZCBwYXNzIE9fQklOQVJZIHRvIG9wZW4gaWYgYXBwcm9wcmlhdGUsIGZvciB0aG9zZQotCXBsYXRmb3JtcyB0aGF0IG5lZWQgaXQuICBSZXBvcnRlZCBieSBEb29kbGUuCi0KLTIwMDYtMDItMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2hhcnNldC5jIChGY0NoYXJTZXROZWVkZWRCeXRlcywgRmNDaGFyU2V0U2VyaWFsaXplLCAKLQkJCSAgIEZjQ2hhclNldEdldExlYWYpOgotCi0JRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nICdlbicgZHVlIHRvIGV1cm8ucGF0Y2g6IGNoYW5nZQotCWNhY2hlIGZpbGUgZm9ybWF0IHNsaWdodGx5IHRvIGNvaW5jaWRlIHdpdGggdGhhdCBnZW5lcmF0ZWQKLQlieSBmYy1sYW5nLgotCi0yMDA2LTAyLTA3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjQ2FjaGVSZWFkRGlycyk6Ci0KLQlGaXggd2FybmluZy4KLQotMjAwNi0wMi0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQotCURvbid0IHJlamVjdCBkaXJzIHRoYXQgY2FuJ3QgYmUgbm9ybWFsaXplZCAoZml4ZXMgbGlseXBvbmQsIGFuZAotCWlzIGNvcnJlY3QgaW4gdGhlIGNvbnRleHQgb2YgYXBwbGljYXRpb24gZm9udCBkaXJlY3Rvcmllcy4pCi0KLTIwMDYtMDItMDcgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZVJlYWREaXJzKToKLQotCVVzZSBub3JtYWxpemVkIGRpcmVjdG9yeSBuYW1lIGV4Y2x1c2l2ZWx5IGluIEZjQ2FjaGVSZWFkRGlycy4KLQotMjAwNi0wMi0wNyAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjcGF0LmMgKEZjVmFsdWVIYXNoLCBGY1ZhbHVlTGlzdEhhc2gsIEZjVmFsdWVMaXN0RW50Q3JlYXRlKTogCi0KLQlQZXJmIG9wdGltaXphdGlvbnMuICBJbmxpbmUgRmNWYWx1ZUNhbm9uaWNhbGl6ZSwgCi0JcmVkdWNlIEZjVmFsdWVMaXN0UHRyVSB1c2FnZSwgcmVtb3ZlIHJlZHVuZGFudCBjYXN0LgotCi0yMDA2LTAyLTA3ICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY2NoYXJzZXQuYyAoRmNMYW5nQ2hhclNldFBvcHVsYXRlLCBGY0NoYXJTZXRJbnNlcnRMZWFmKQotCSogZmMtbGFuZy9mYy1sYW5nLmM6Ci0KLQlGaXggbWlzc2luZyBGY0NhY2hlQmFua1RvSW5kZXggaW4gRmNDaGFyU2V0SW5zZXJ0TGVhZi4KLQlEZWNsYXJlIGV4dGVybiBmb3Igc3RhdGljIGFycmF5cyBhcyBhcnJheXMsIG5vdCBwb2ludGVycy4KLQkoUGFydCBvZiB0aGUgZml4IGZvciAnZm9udHMgZG9uJ3QgaGF2ZSBlbicgaXNzdWUgYWZ0ZXIgRXVybyBwYXRjaC4pCi0KLTIwMDYtMDItMDcgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWxhbmcvZGUub3J0aDoKLQkqIGZjLWxhbmcvZWwub3J0aDoKLQkqIGZjLWxhbmcvZW4ub3J0aDoKLQkqIGZjLWxhbmcvZXMub3J0aDoKLQkqIGZjLWxhbmcvZmkub3J0aDoKLQkqIGZjLWxhbmcvZnIub3J0aDoKLQkqIGZjLWxhbmcvaXQub3J0aDoKLQkqIGZjLWxhbmcvbmwub3J0aDoKLQkqIGZjLWxhbmcvcHQub3J0aDoKLQotCUFkZCBFdXJvIHNpZ24gdG8gbGlzdCBvZiBzeW1ib2xzIHJlcXVpcmVkIGJ5IEV1cm9wZWFuIGxhbmd1YWdlcy4KLQotMjAwNi0wMi0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZFN0cmluZyk6Ci0KLQlGaXggaGlkZGVuIHZhcmlhYmxlIHdhcm5pbmcuCi0KLTIwMDYtMDItMDcgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZFN0cmluZywgRmNDYWNoZVNraXBTdHJpbmcpOgotCQotICAgICAgICBSZW1vdmUgZGUtZXNjYXBpbmcgbG9naWMgYmVjYXVzZSBGY0NhY2hlV3JpdGVTdHJpbmcKLSAgICAgICAgZG9lc24ndCBlc2NhcGUgYW55d2F5LiBEbyBibG9ja3dpc2UgcmVhZGluZyBpbnN0ZWFkCi0gICAgICAgIG9mIGJ5dGUtd2lzZSBmb3IgcGVyZm9ybWFuY2UuCi0KLTIwMDYtMDItMDYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSAgICBUYWthc2hpIEl3YWkgIDx0aXdhaUBzdXNlLmRlPgotCi0JKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlUmVhZERpcnMsIEZjQ2FjaGVSZWFkKToKLQotCURvbid0IGxvb3AgaW5maW5pdGVseSBvbiByZWN1cnNpdmUgc3ltbGlua3MgKGNsaWVudC1zaWRlKS4KLQotMjAwNi0wMi0wNiAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMsIG1haW4pOgotCi0JRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IG9uIHJlY3Vyc2l2ZSBzeW1saW5rcy4KLQotMjAwNi0wMi0wNiAgVGFrYXNoaSBJd2FpICA8dGl3YWlAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjR2xvYmFsQ2FjaGVSZWFkRGlyLAotCQkJIEZjR2xvYmFsQ2FjaGVEaXJGaW5kLCBGY0dsb2JhbENhY2hlVXBkYXRlLAotCQkJIEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0NhY2hlUmVhZERpcnMpOgotCSogc3JjL2ZjaW50Lmg6Ci0KLQlTa2lwIHN1YmRpcnMgd2hlbiBza2lwcGluZyBvdmVyIHN0YWxlIGJpdHMgb2YgZ2xvYmFsIGNhY2hlLgotCUludHJvZHVjZSBzdGF0ZSBtYWNoaW5lIGludG8gRmNHbG9iYWxDYWNoZURpciB0byBhdm9pZAotCWRvaW5nIGluYXBwcm9wcmlhdGUgb3BlcmF0aW9ucyBvbiBnbG9iYWwgZGlyIGVudHJpZXMsIGUuZy4KLQl3cml0aW5nIG91dCBhbiBvdXQtb2YtZGF0ZSBjYWNoZSBlbnRyeS4KLQkKLTIwMDYtMDItMDYgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkqIHNyYy9mY2Rpci5jIChGY0ZpbGVTY2FuQ29uZmlnKToKLQotCUhvaXN0IEZjRmlsZUlzRGlyIGNoZWNrIG91dCBvZiBGY0ZpbGVTY2FuQ29uZmlnIGxvb3AuCi0KLTIwMDYtMDItMDYgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnSW5vZGVNYXRjaEZvbnREaXIsIEZjQ29uZmlnQWRkRm9udERpciwKLQkJICAgICAgIEZjQ29uZmlnQWRkRm9udERpclN1YmRpcnMsIEZjQ29uZmlnTm9ybWFsaXplRm9udERpcik6Ci0KLQlEb24ndCByZXNjYW4gd2hlbiB0cnlpbmcgdG8gbm9ybWFsaXplIGEgbm9uLWRlY2xhcmVkIGZvbnQgZGlyLgotCURvbid0IGFkZCBmb250IGRpcnMgbXVsdGlwbGUgdGltZXMgKGV2ZW4gaWYgdGhleSdyZSBhbGlhc2VkKS4KLQotMjAwNi0wMi0wNiAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXRVbnNlcmlhbGl6ZSk6Ci0KLQlFeHBsYWluIGFwcGxlcy9vcmFuZ2VzIGNvbXBhcmlzb24gYW5kIGZpeCBjb21waWxhdGlvbiBlcnJvci4KLQotMjAwNi0wMi0wNiAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXRVbnNlcmlhbGl6ZSk6Ci0KLQlJbnNlcnQgY2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgaW4gIyBvZiBmb250cy4KLQotMjAwNi0wMi0wNCAgQmVoZGFkIEVzZmFoYm9kICA8YmVoZGFkQGNzLnRvcm9udG8uZWR1PgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGRvYy9NYWtlZmlsZS5hbToKLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCSogZmMtY2F0L01ha2VmaWxlLmFtOiAKLQkqIGZjLWxpc3QvTWFrZWZpbGUuYW06Ci0KLQlNYWtlICdtYWtlIGRpc3RjaGVjaycgd29yayB3aXRoIGF1dG9tYWtlIDEuNi4zLgotCQotMjAwNi0wMi0wMyAgVGFrYXNoaSBJV0FJICA8dGl3YWlAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50LCBtYWluLAotCQkJICAgRmNDYWNoZUZpbGVSZWFkKToKLQotCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZUxvYWQsIEZjR2xvYmFsQ2FjaGVTYXZlLCAKLQkJCSBGY0RpckNhY2hlQ29uc3VtZSwgRmNEaXJDYWNoZVdyaXRlKQotCSogc3JjL2ZjeG1sLmMgKEZjQ29uZmlnTWVzc2FnZSk6Ci0KLQlDaGVjayBJL08gY2FsbCByZXR1cm4gdmFsdWVzIGFuZCBlbGltaW5hdGUgdW51c2VkIHZhcmlhYmxlCi0Jd2FybmluZ3MuCi0KLTIwMDYtMDItMDMgIFRha2FzaGkgSXdhaSAgPHRpd2FpQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQXBwRm9udEFkZEZpbGUsIEZjQ29uZmlnQXBwRm9udEFkZERpcikKLQotCUZpeCBtZW1vcnkgbGVhay4KLQotMjAwNi0wMi0wMyAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXRVbnNlcmlhbGl6ZSk6Ci0KLQlHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGNhY2hlIGFzc2VydHMgdGhhdCBpdAotCWhhcyBhIG5lZ2F0aXZlIG51bWJlciBvZiBmb250cywgY2F1c2luZyBvdmVyZmxvdy4KLQotMjAwNi0wMi0wMyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rKToKLQotCUZpeCBkb3VibGUgZnJlZSBpbiBlcnJvciBjYXNlLgotCi0yMDA2LTAxLTMxICBCZWhkYWQgRXNmYWJvZCAgPGJlaGRhZEBjcy51dG9yb250by5lZHU+Ci0JICAgIFN0ZXBoYW4gS3Vsb3cgIDxjb29sb0BzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCi0JUmVwbGFjZSAnc3RhbXAnIHRhcmdldCB3aXRoIG1raW5zdGFsbGRpcnMuCi0KLTIwMDYtMDEtMzEgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkKToKLQotCVRvYXN0IGJyb2tlbiBnbG9iYWwgY2FjaGUgZmlsZXMuCi0KLTIwMDYtMDEtMzAgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVJlYWREaXIpOgotCi0JQWN0dWFsbHkgdXNlIHRoZSBkaXJlY3RvcmllcyB0aGF0IEkgYWRkZWQgdG8gdGhlIGdsb2JhbCBjYWNoZS4KLQlGaXhlcyAnbWFrZSBjaGVjaycuCi0KLTIwMDYtMDEtMzAgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6Ci0KLQlEb24ndCBzdG9wIHNjYW5uaW5nIGlmIGEgZGlyZWN0b3J5IGluIGZvbnRzLmNvbmYgZG9lc24ndAotCWV4aXN0LCBiZWNhdXNlIHN1YnNlcXVlbnQgZGlyZWN0b3JpZXMgbWlnaHQgZXhpc3QuCi0JCi0yMDA2LTAxLTMwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkKToKLQotCU1ha2UgZ2xvYmFsIGNhY2hlIHdvcmsgYWdhaW4gYWZ0ZXIgcHV0dGluZyBkaXIgbmFtZXMgaW50byBnbG9iYWwKLQljYWNoZSAoSSBtaXNwbGFjZWQgdGhlIHJlY29yZGluZyBvZiBhIGZpbGUgb2Zmc2V0KS4KLQotMjAwNi0wMS0zMCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50KToKLQkKLQlVcGRhdGUgZmMtY2F0IHRvIGhhbmRsZSBzdWJkaXIgbGlzdHMgaW4gZ2xvYmFsIGNhY2hlIGZpbGUuCi0JCi0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6Ci0JCi0JQW5vdGhlciBGY0NhY2hlUmVhZFN0cmluZyByZXR1cm4gdmFsdWUgY2hlY2suCi0KLTIwMDYtMDEtMzAgIE1pa2UgRmFiaWFuICA8bWZhYmlhbkBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkLCBGY0RpckNhY2hlVW5saW5rCi0JCQkgRmNEaXJDYWNoZU9wZW4sIEZjRGlyQ2FjaGVSZWFkLCBGY0RpckNhY2hlV3JpdGUpOgotCi0JTWFrZSBmY2NhY2hlIG1vcmUgcmVzaWxpZW50IHRvIGJyb2tlbiBjYWNoZSBmaWxlcyBieSBjaGVja2luZwotCXJldHVybiB2YWx1ZSBvZiBGY0NhY2hlUmVhZFN0cmluZyBhbGwgdGhlIHRpbWUuCi0KLTIwMDYtMDEtMzAgIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLW1hdGNoL2ZjLW1hdGNoLjE6Ci0JKiBmYy1sYW5nL2ZjLWxhbmcubWFuOgotCi0JUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZGVhZCBmb250Y29uZmlnKDMpIG1hbnBhZ2VzIGluCi0Jb3RoZXIgZm9udGNvbmZpZyBtYW5wYWdlcy4KLQotMjAwNi0wMS0yOSAgQmVoZGFkIEVzZmFib2QgIDxiZWhkYWRAY3MudXRvcm9udG8uZWR1PgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBkb2MvZmNwYXR0ZXJuLmZuY3M6Ci0KLQlGaXggd29ybGQncyB0aW5pZXN0IHR5cG8gaW4gY29kZSBleGFtcGxlLgotCi0yMDA2LTAxLTI5ICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlUmVhZERpcik6Ci0KLQlGaXggZ2xvYmFsIGNhY2hlIHJlYWRzIG9mIHN1YmRpcmVjdG9yaWVzLgotCi0yMDA2LTAxLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGRvYy9mY2NvbmZpZy5mbmNzOgotCUFkZCBkb2N1bWVudGF0aW9uIGZvciBGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIuCi0KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVEaXJEZXN0cm95LCBGY0dsb2JhbENhY2hlTG9hZCwKLQkJCSBGY0dsb2JhbENhY2hlVXBkYXRlLCBGY0dsb2JhbENhY2hlU2F2ZSk6Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQkqIHNyYy9mY2ludC5oOgotCi0JV3JpdGUgZGlyZWN0b3J5IGluZm9ybWF0aW9uIHRvIGdsb2JhbCBjYWNoZXMgdG8gZml4IG1ha2UgY2hlY2sKLQkocmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXMpLiAgVGhpcyBjaGFuZ2VzIHRoZSBnbG9iYWwgY2FjaGUKLQlmb3JtYXQgYWdhaW4uCi0JCi0yMDA2LTAxLTI3ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVmFsaWQsIEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6Ci0KLQlNb3ZlIEZjQ29uZmlnTm9ybWFsaXplRm9udERpciBjYWxsIHNvIHRoYXQgaXQgZG9lc24ndCByZXN1bHQgaW4KLQlpbmZpbml0ZSByZWN1cnNpb24gKHJlcG9ydGVkIGJ5IFJvbm55IFYuIFZpbmRlbmVzKS4KLQotMjAwNi0wMS0yNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVmFsaWQsIEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCk6Ci0JKiBzcmMvZmNjZmcuYyAoRmNDb25maWdOb3JtYWxpemVGb250RGlyKToKLQotCUFkZCBhIGNvdXBsZSBvZiBtaXNzaW5nIG5vcm1hbGl6YXRpb25zIHRvIG1ha2UgZmMtY2FjaGUgd29yawotCXJpZ2h0OyBvbmx5IHNjYW4gc3ViZGlyZWN0b3JpZXMgb25jZS4KLQotMjAwNi0wMS0yNiAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2FjYWNoZS5jIChGY0dsb2JhbENhY2hlUmVhZERpcik6Ci0KLQlEb24ndCBjcmFzaCBvbiBub24tZXhpc3RhbnQgZGlyZWN0b3JpZXMgaW4gZ2xvYmFsIGNhY2hlLgotCi0yMDA2LTAxLTI2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0RpckNhY2hlV3JpdGUpOgotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQWRkRm9udERpclN1YmRpcnMsIEZjQ29uZmlnTm9ybWFsaXplRm9udERpcik6Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQkqIHNyYy9mY3htbC5jIChGY0VuZEVsZW1lbnQpOgotCi0JU3RvcCB0cmFtcGxpbmcgdGhlIGRpcmVjdG9yeSBuYW1lIHdoZW4gd3JpdGluZyBvdXQgY2FjaGVzLgotCSh3aXRoIE1pa2UgRmFiaWFuOikgQmVlZiB1cCBGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIgdG8gc2NhbgotCXN1YmRpcnMgd2hlbiBuZWNlc3NhcnkuICBEb24ndCBzY2FuIGRpcmVjdG9yaWVzIHRoYXQgY2FuJ3QgYmUKLQlub3JtYWxpemVkLgotCi0yMDA2LTAxLTI1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlV3JpdGUpOgotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnRXZhbHVhdGUpOgotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNQYXR0ZXJuQWRkV2l0aEJpbmRpbmcpOgotCi0JRml4IGFkZGl0aW9uYWwgbWVtb3J5IGxlYWtzIHJlcG9ydGVkIGJ5IFJvbm55IFYuIFZpbmRlbmVzOiBkb24ndAotCWludm9rZSBGY1ZhbHVlU2F2ZSBvbiBoYXNoZWQgc3RhdGljIHN0cmluZ3MgaW4KLQlGY1BhdHRlcm5BZGRXaXRoQmluZGluZy4gIAotCi0JQWRkIGFub3RoZXIgc3RfZGV2IGNoZWNrIGluIEZjRGlyQ2FjaGVPcGVuLgotCi0yMDA2LTAxLTI0ICBKYW1lcyBTdSAgPGphbWVzLnN1QGdtYWlsLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbQotCQotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZUlzRXhjbHVzaXZlTGFuZyk6Ci0JKiBmYy1sYW5nL3poX2hrLm9ydGg6Ci0KLQlUcmVhdCB6aC1oayBmb250cyBkaWZmZXJlbnRseSBmcm9tIHpoLXR3IGZvbnRzLiAgVGhpcyBwYXRjaCBtYXkKLQljYXVzZSBmb250Y29uZmlnIHRvIHRyZWF0IEEtWCBmb250cyBkaWZmZXJlbnRseSBmcm9tIEEtWSBmb250czsKLQlwbGVhc2UgbWFpbCB0aGUgZm9udGNvbmZpZyBsaXN0IGlmIHRoaXMgY2F1c2VzIGFueSBwcm9ibGVtcy4KLQotMjAwNi0wMS0yNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlV3JpdGUpOgotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZVF1ZXJ5KToKLQotCUZpeCBtZW1vcnkgbGVha3MgcmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXMuCi0KLTIwMDYtMDEtMTkgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjcGF0LmMgKEZjU3RyTmVlZGVkQnl0ZXMpOgotCi0JRml4IGZvciB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzc2VzLgotCi0yMDA2LTAxLTE4ICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCQotCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6Ci0KLQlQcm9wZXJseSBvcmRlciB0aGUgRmNDb25maWdBZGRGb250RGlyIGFuZCBGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIKLQljYWxscyB0byBhdm9pZCBjcmFzaGVzLgotCi0yMDA2LTAxLTE0ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lKToKLQotCUZpeCBzZWdmYXVsdCB3aGVuIGNvbnN1bWluZyB6ZXJvLWxlbmd0aCBjYWNoZXMgaW4gZmMtY2F0Ci0JKHdoaWNoIGhhcyBubyBjb25maWcsIHNvIEZjQ29uZmlnQWRkRm9udERpciBzaG91bGRuJ3QgYmUgY2FsbGVkLikKLQotMjAwNi0wMS0xNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1jYWNoZS9mYy1jYWNoZS5jIChzY2FuRGlycyk6Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVSZWFkRGlyLCBGY0dsb2JhbENhY2hlVXBkYXRlLAotCQkJIEZjR2xvYmFsQ2FjaGVTYXZlLCBGY0RpckNhY2hlVW5saW5rLCBGY0RpckNhY2hlT3Blbik6Ci0JKiBzcmMvZmNjZmcuYyAoRmNDb25maWdCdWlsZEZvbnRzLCBGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIpOgotCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6Ci0JKiBzcmMvZmNpbnQuaDoKLQkKLQlDb21wYXJlIGRldmljZSBudW1iZXJzIGFzIHdlbGwgYXMgaW5vZGVzLgotCUFsd2F5cyBub3JtYWxpemUgZGlyZWN0b3J5IG5hbWVzIGJlZm9yZSBjb21wYXJpbmcgdGhlbS4KLQotMjAwNi0wMS0xMSAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIGZjLWNhdC9mYy1jYXQuYyAoRmNDYWNoZUdsb2JhbEZpbGVSZWFkQW5kUHJpbnQpOgotCi0JQWxsb2NhdGUgZXh0cmEgc3BhY2UgZm9yIGFwcGVuZGVkICcvJyBpbiBkaXJlY3RvcnkgbmFtZS4KLQotMjAwNi0wMS0xMCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlQ29uc3VtZSwgRmNEaXJDYWNoZU9wZW4sCi0JCQkgRmNEaXJDYWNoZVZhbGlkLCBGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gsCi0JCQkgRmNEaXJDYWNoZVVubGluaywgRmNEaXJDYWNoZVJlYWQsIEZjRGlyQ2FjaGVDb25zdW1lKToKLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKG1haW4pOgotCi0JRXhwbGljaXRseSBhZGQgZm9udCBkaXJzIHRvIGNvbmZpZy5mb250RGlycyBldmVuIGlmIHRoZXkncmUgZW1wdHkuCi0JU2V0IGN1cnJlbnQgY29uZmlnIGluIGZjLWNhY2hlLmMuCi0JRml4IHRyZWF0bWVudCBvZiBjYWNoZSBkaXJlY3RvcnkgYXMgcmVhZCBmcm9tIGNhY2hlIGZpbGU7IGRvbid0Ci0JdXNlIHN0cmluZyBlcXVhbGl0eSB0byBkZXRlcm1pbmUgaWYgd2UgaGF2ZSB0aGUgcmlnaHQgZmlsZSwKLQl1c2UgaW5vZGUgZXF1YWxpdHkuCi0KLTIwMDYtMDEtMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgotCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlR2xvYmFsRmlsZVJlYWRBbmRQcmludCwgRmNDYWNoZUZpbGVSZWFkKToKLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVSZWFkRGlyLCBGY0NhY2hlUmVhZERpcnMsIAotCQkJIEZjRGlyQ2FjaGVSZWFkLCBGY0RpckNhY2hlQ29uc3VtZSwgRmNEaXJDYWNoZVdyaXRlKToKLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ05vcm1hbGl6ZUZvbnREaXIpOgotCSogc3JjL2ZjZGlyLmMgKEZjRGlyU2NhbkNvbmZpZyk6Ci0JKiBzcmMvZmNpbnQuaDoKLQotCU5vcm1hbGl6ZSBmb250IGRpcnMgYnkgdXNpbmcgdGhlIGZvcm0sIGFzIGdpdmVuIGluIGZvbnRzLmNvbmYsIGFuZAotCXJlY29yZGVkIGluIEZjQ29uZmlnJ3MgZm9udERpcnMgc3RyaW5nIHNldCwgYXMgY2Fub25pY2FsLgotCQotCUFjdHVhbGx5IHVwZGF0ZSBjb25maWcuZm9udERpcnMgYXMgZm9udCBkaXJlY3RvcmllcyBhcmUgc2Nhbm5lZC4KLQotMjAwNi0wMS0wOCAgSmFtZXMgU3UgIDxqYW1lcy5zdUBnbWFpbC5jb20+Ci0JKiBzcmMvZmNtYXRjaC5jIChGY0ZvbnRTZXRNYXRjaCk6Ci0KLQlGaXggbWF0Y2hpbmcgYnVnIHdoZW4gbXVsdGlwbGUgZWxlbWVudHMgbWF0Y2g7IGRvbid0IHVzZQotCXRoZSBzdW0gb2YgYWxsIHNjb3JlcywgYnV0IHRoZSBiZXN0IHNjb3JlLgotCi0JQWxzbyBtb3JlIHBlcmYgb3B0cywgZS5nLiBldmFsdWF0ZSBiZXN0IG92ZXIgYWxsIGZvbnQgc2V0cwotCXJhdGhlciB0aGFuIG9uIGEgcGVyLXNldCBiYXNpcyAoYW5kIG90aGVyIGNoYW5nZXMpLgotCi0yMDA2LTAxLTA4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlQ29uc3VtZSk6Ci0KLSAgICAgICAgUHJvcGVybHkgc2tpcCBwYXN0IGRpciBjYWNoZXMgdGhhdCBjb250YWluIHplcm8gZm9udHMgKGFzIG9jY3VycwotICAgICAgICBpbiBnbG9iYWwgY2FjaGVzLikgIFJlcG9ydGVkIGJ5IE1pa2UgRmFiaWFuLgotCi0yMDA2LTAxLTA2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2RiZy5jIChGY1BhdHRlcm5QcmludCk6Ci0KLQlQcmludCBvdXQgZnVsbCBwYXRobmFtZSBpbiBmYy1tYXRjaCAtdiBhcyB3ZWxsLiAgUmVwb3J0ZWQgYnkKLQlGcmVkZXJpYyBDcm96YXQuCi0JCi0yMDA2LTAxLTA2ICBNaWtlIEZhYmlhbiAgPG1mYWJpYW5Ac3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCQotCSogc3JjL2ZjbmFtZS5jIChGY05hbWVQYXJzZSk6Ci0KLQlGaXggYnVnIHdoZXJlIGZjLW1hdGNoIGNyYXNoZXMgd2hlbiBnaXZlbiBfX0RVTU1ZX18gcHJvcGVydHkgdG8KLQltYXRjaCBvbi4KLQotCShJIGFkZGVkIHRoZSBfX0RVTU1ZX18gc3RyaW5nIHRvIGVuYWJsZSBjYWxsZXJzIG9mCi0JRmNPYmplY3RUb1B0ckxvb2t1cCB0byBkaXN0aW5ndWlzaCBhbiBlcnJvciByZXR1cm4gZnJvbSBhCi0Jc3VjY2Vzc2Z1bCByZXR1cm4uIC1QTCkKLQotMjAwNi0wMS0wNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBBVVRIT1JTOgotCi0JQWRkIHNlbGYgdG8gQVVUSE9SUyBsaXN0LgotCi0JKiBmYy1jYXQvZmMtY2F0LmMgKEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50LCAKLQkgICAgICAgICAgICAgICAgICAgRmNDYWNoZUZpbGVSZWFkLCBGY0NhY2hlUHJpbnRTZXQsIG1haW4pOiAKLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkLCBGY0dsb2JhbENhY2hlVXBkYXRlLCAKLQkJCSBGY0dsb2JhbENhY2hlU2F2ZSwgRmNDYWNoZU5leHRPZmZzZXQsIAotCQkJIEZjRGlyQ2FjaGVIYXNDdXJyZW50QXJjaCwgRmNEaXJDYWNoZVJlYWQsIAotCQkJIEZjRGlyQ2FjaGVDb25zdW1lLCBGY0RpckNhY2hlV3JpdGUpOiAKLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjcGF0LmMgKGNvbW1lbnQpOgotCi0JTWlub3IgY2hhbmdlIHRvIGdsb2JhbCBjYWNoZSBmaWxlIGZvcm1hdCB0byBmaXggZmMtY2F0IGJ1ZwotCXJlcG9ydGVkIGJ5IEZyZWRlcmljIENyb3phdCwgYW5kIGJ1Z2xldCB3aXRoIG5vdCBnbG9iYWxseSBjYWNoaW5nCi0JZGlyZWN0b3JpZXMgd2l0aCB6ZXJvIGZvbnRzIGNhY2hlZC4KLQotMjAwNi0wMS0wMiAgTHVib3MgTHVuYWsgIDxsLmx1bmFrQHN1c2UuY3o+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0V2YWx1YXRlKToKLQotCUZpeCBkb3VibGUtZnJlZSB3aGljaCBvY2N1cnMgYmVjYXVzZSBGY1ZhbHVlQ2Fub25pY2FsaXplIGRvZXNuJ3QKLQljcmVhdGUgYW4gZXh0cmEgY29weSBvZiB0aGUgcmV0dXJuZWQgdmFsdWUsIGl0IG9ubHkgY2Fub25pY2FsaXplcwotCWl0LgotCi0yMDA2LTAxLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKLQotCUZpeCB2ZXJzaW9uIG9mIC5jYWNoZSBmaWxlIChjdXJyZW50bHkgMSAtPiBjdXJyZW50bHkgMikuICBSZXBvcnRlZAotCWJ5IEppbSBPc2Jvcm4uCi0KLTIwMDUtMTItMjEgIEppbmdodWEgTHVvICA8c3VubW9vbjE5OTdAZ21haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5BZGRGdWxsRm5hbWUsIEZjUGF0dGVybkZpbmRGdWxsRm5hbWUpOgotCi0JU2h1dCB1cCBHQ0Mgd2FybmluZ3Mgb24gYW1kLgotCi0yMDA1LTEyLTIwICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KLQkqIENoYW5nZUxvZzoKLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCi0JQnVtcCB2ZXJzaW9uIHRvIDIuMy45My4KLQotMjAwNS0xMi0yMCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjaGFyc2V0LmMgKEZjTGFuZ0NoYXJTZXRQb3B1bGF0ZSk6Ci0JKiBzcmMvZmNpbnQuaCAoRmNDYWNoZUJhbmtUb0luZGV4KToKLQotCUF2b2lkIGNoZWNrIG9uIF9mY0JhbmtJZCBudWxsbmVzcyBhbmQgZml4IGNhc2Ugd2hlcmUgaXQgdXNlZCB0bwotCWNyYXNoLgotCi0yMDA1LTEyLTIwICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY3htbC5jIChGY0NvbmZpZ1BhcnNlQW5kTG9hZCk6Ci0KLQlVc2Ugb3BlbiBpbnN0ZWFkIG9mIGZvcGVuIChyZXF1ZXN0ZWQgYnkgUGhpbCBSYWNlIGZvciBTdW4pLgotCi0yMDA1LTEyLTIwICBQYXRyaWNrIExhbQkgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVXcml0ZSk7Ci0JKiBmYy1jYWNoZS9NYWtlZmlsZS5hbToKLQotCUZpeCBHQ0M0IHdhcm5pbmcgYW5kIE1ha2VmaWxlIGJyb2tlbm5lc3MgZm9yIC92YXIvY2FjaGUvZm9udGNvbmZpZwotCWRpci4KLQotMjAwNS0xMi0yMCAgUGF0cmljayBMYW0JIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgotCi0JUmVzdG9yZSBjb2RlIHRvIHNraXAgb3ZlciBQQ0YgZm9udHMgdGhhdCBoYXZlIG5vIGVuY29kZWQKLQljaGFyYWN0ZXJzLgotCShXZSBndWVzcyB0aGF0IGEgZm9udCBpcyBQQ0YgYnkgcHJlc2VuY2Ugb2YgdGhlIFBJWEVMX1NJWkUKLQlCREYgcHJvcGVydHkuKQotCi0yMDA1LTEyLTEyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlV3JpdGUpOgotCi0JUmVhZCBhbmQgd3JpdGUgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIGFzIGEgZmFsbGJhY2sgZm9yIHRoZQotCWhhc2hlZCBjYWNoZSBmaWxlIGxvY2F0aW9ucy4gIFRoaXMgaXMgbW9zdGx5IGZvciB1c2VycyB0byBiZQotCWFibGUgdG8gaGF2ZSBwZXItZGlyZWN0b3J5IGNhY2hlIGZpbGVzLgotCi0yMDA1LTEyLTEyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZUhhc2hOYW1lKToKLQotCUltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGZjLWNhY2hlIGNhbid0IHdyaXRlIHRoZSBjYWNoZS4gIEFkZAotCW1pc3Npbmcgc2xhc2guICBSZXBvcnRlZCBieSBCZWhkYWQuICBJbmNvcnBvcmF0ZSBCZWhkYWQncyBwYXRjaCB0bwotCWNyZWF0ZSAvdmFyL2NhY2hlL2ZvbnRjb25maWcgd2hlbiBhcHByb3ByaWF0ZS4KLQotMjAwNS0xMi0xMiAgQmVoZGFkIEVzZmFoYm9kICA8YmVoZGFkQGNzLnRvcm9udG8uZWR1PgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmN4bWwuYyAoRmNDb25maWdHZXRBdHRyaWJ1dGUpOgotCi0JRml4IGNyYXNoIHJlcG9ydGVkIGJ5IEZyZWRlcmljIENyb3phdCB3aGVuIHVzaW5nIGxpYnhtbDIuCi0KLTIwMDUtMTItMDkgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogSU5TVEFMTDoKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCSogZmMtY2F0L01ha2VmaWxlLmFtOgotCSogc3JjL01ha2VmaWxlLmFtOgotCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlR2xvYmFsRmlsZVJlYWRBbmRQcmludCwgRmNDYWNoZUZpbGVSZWFkKToKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oIChGQ19DQUNIRV9TVUZGSVgpOgotCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZVNraXBTdHJpbmcsIEZjR2xvYmFsQ2FjaGVMb2FkLAotCQkJRmNHbG9iYWxDYWNoZVNhdmUsIEZjQ2FjaGVOZXh0T2Zmc2V0LCBGY0RpckNhY2hlVmFsaWQsCi0JCQlGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gsIEZjRGlyQ2FjaGVIYXNoTmFtZSwKLQkJCUZjRGlyQ2FjaGVPcGVuLCBGY0RpckNhY2hlUmVhZCwgRmNEaXJDYWNoZVdyaXRlKToKLQotCU1pZ3JhdGUgY2FjaGUgZmlsZXMgZnJvbSBmb250cyBkaXJlY3RvcmllcyB0bwotCS92YXIvY2FjaGUvZm9udGNvbmZpZy4gIFRoaXMgaGVscHMgbWFrZSBmb250Y29uZmlnIEZIUy1jb21wbGlhbnQsCi0JYnV0IHJlcXVpcmVzIHRoYXQgYWxsIGNhY2hlcyBnZXQgcmVidWlsdC4KLQotCUFsc28sIGF1dG9nZW4uc2ggbm93IG5lZWRzIHRoZSBhZGRpdGlvbmFsIHBhcmFtZXRlcgotCS0tbG9jYWxzdGF0ZWRpcj0vdmFyLgotCQotMjAwNS0xMi0wNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuQWRkU3RyaW5nKToKLQotCUJlY2F1c2Ugd2UndmUgY2hhbmdlZCBGY1BhdHRlcm5BZGRTdHJpbmcgdG8gdXNlIEZjU3RyU3RhdGljTmFtZQotCWFuZCBub3QgRmNWYWx1ZVNhdmUsIGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBjYXNlIG9mIGEgbnVsbCBzdHJpbmcuCi0KLTIwMDUtMTItMDYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlUHJpbnRTZXQsIEZjQ2FjaGVHbG9iYWxGaWxlUmVhZEFuZFByaW50KToKLQotCUZpeCB3YXJuaW5ncy4KLQotMjAwNS0xMi0wNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNuYW1lLmMgKEZjTmFtZUdldE9iamVjdFR5cGUpOgotCi0JRG9uJ3QgYXNzaWduIHR5cGVzIHRvIHVzZXIgb2JqZWN0IG5hbWVzLgotCi0yMDA1LTEyLTA1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY3BhdC5jIChGY1ZhbHVlRGVzdHJveSwgRmNWYWx1ZUxpc3REZXN0cm95LCBGY1N0ckhhc2hlZCk6Ci0KLQlEb24ndCBmcmVlIHN0cmluZ3MgdGhhdCBoYXZlIGJlZW4gcmV0dXJuZWQgZnJvbSBGY1N0clN0YXRpY05hbWUuCi0KLTIwMDUtMTItMDEgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogZmMtY2F0L2ZjLWNhdC5jIChGY0NhY2hlR2xvYmFsRmlsZVJlYWRBbmRQcmludCwgbWFpbik6Ci0KLQlBZGQgY29kZXBhdGggZm9yIHJlYWRpbmcgZ2xvYmFsIGNhY2hlIGZpbGVzIGFzIHdlbGwuCi0KLTIwMDUtMTItMDEgIEJlaGRhZCBFc2ZhaGJvZCAgPGJlaGRhZEBjcy50b3JvbnRvLmVkdT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBjb25mLmQvMTAtZm9udHMucGVyc2lhbi5jb25mOgotCSogY29uZi5kL01ha2VmaWxlLmFtOgotCi0JQWRkIGNvbmZpZyBmaWxlIGZvciBQZXJzaWFuIGZvbnRzIGZyb20gU2hhcmlmIEZhcnNpV2ViLCBJbmMuCi0KLTIwMDUtMTEtMzAgIEJlaGRhZCBFc2ZhaGJvZCAgPGJlaGRhZEBjcy50b3JvbnRvLmVkdT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmN4bWwuYyAoRmNDb25maWdQYXJzZUFuZExvYWQpOgotCi0JT25seSBhZGQgYSBjb25maWcgZmlsZSB0byB0aGUgc2V0IG9mIGNvbmZpZyBmaWxlcyBvbmNlLgotCi0yMDA1LTExLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2ludC5oIChGY0NhY2hlQmFua1RvSW5kZXgpOwotCi0JRml4IHNlZ2ZhdWx0IGJ5IGd1YXJkaW5nIGFycmF5IGRlcmVmZXJlbmNlLgotCi0yMDA1LTExLTI5ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmRlPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBmYy1sYW5nL2ZjLWxhbmcuYzoKLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lLCBGY0NhY2hlSGF2ZUJhbmssCi0JCQkgRmNDYWNoZUJhbmtUb0luZGV4LCBGY0NhY2hlQmFua1RvSW5kZXhNVEYsCi0JCQkgRmNDYWNoZUFkZEJhbmtEaXIpOgotCSogc3JjL2ZjaW50Lmg6Ci0KLQlSZWZhY3RvciBGY0NhY2hlQmFua1RvSW5kZXggaW50byBhbiBpbmxpbmVhYmxlIHBhcnQKLQkoaW4gZmNpbnQuaCkgd2hpY2ggY2hlY2tzIHRoZSBmcm9udCBvZiB0aGUgbGlzdCBhbmQgYQotCW5vbi1pbmxpbmVhYmxlIHBhcnQgd2hpY2ggZmluZHMgYW5kIG1vdmVzIHRoZSBhcHByb3ByaWF0ZSBlbGVtZW50Ci0JdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LgotCi0yMDA1LTExLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMpOgotCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZVJlYWREaXJzKToKLQotCU1ha2UgdGhlIHBlcmYgZ3V5cyBoYXRlIG1lIGEgYml0IGxlc3M6IGhvaXN0IHRoZSBkaXJlY3RvcnktbmFtZQotCUZjQ29uZmlnQWNjZXB0Rm9udCBjaGVjayBmb3IgY2FjaGVkIGZvbnRzIHVwIHRvIGRpcmVjdG9yeSBjYWNoZQotCXJlYWQgdGltZSwgcmF0aGVyIHRoYW4gcnVubmluZyBpdCBmb3IgZWFjaCBmb250LgotCi0yMDA1LTExLTI5ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMpOgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuRmluZEZ1bGxGbmFtZSk6Ci0KLQlEb24ndCBtYWtlIEZjUGF0dGVybkZpbmRGdWxsRm5hbWUgYXZhaWxhYmxlIHRvIGZjY2ZnLCBpdCdzIG5vdAotCXJlYWxseSBzYWZlLiAgSW5zdGVhZCBnbyB0aHJvdWdoIEZjUGF0dGVybkdldFN0cmluZyAoc29ycnksCi0JcGVyZiBndXlzLikgIEFsc28sIHVzZSBnbG9icyBmb3IgZGlycyBhcyB3ZWxsLgotCi0yMDA1LTExLTI4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0J1aWxkRm9udHMpOgotCi0JRml4IHNlZ2ZhdWx0LgotCi0yMDA1LTExLTI4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkZpbmRGdWxsRm5hbWUpOgotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnQnVpbGRGb250cyk6Ci0KLQlGaXggcHJvYmxlbSBkYXRpbmcgYmFjayBhdCBsZWFzdCB0byAyLjMuMiB3aGVyZSBnbG9icyB3ZXJlbid0Ci0JYmVpbmcgYXBwbGllZCB0byBwYXR0ZXJucyBsb2FkZWQgZnJvbSBhIGNhY2hlLgotCi0yMDA1LTExLTI4ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKLQotCUZpeCBzb21lIG9idmlvdXMgc3BlbGxpbmcgbWlzdGFrZXMuCi0JCi0yMDA1LTExLTI4ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmNvbT4KLQkgICAgU3RlcGhhbiBLdWxvdyAgPGNvb2xvQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjbWF0Y2guYyAoRmNGb250U2V0TWF0Y2gpOgotCi0JRG9uJ3Qga2lsbCBhbGwgZm9udHMgZHVyaW5nIG1hdGNoIChvb3BzISkKLQotCi0yMDA1LTExLTI1ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmNvbT4KLSAgICAgICAgICAgIFN0ZXBoYW4gS3Vsb3cgIDxjb29sb0BzdXNlLmRlPgotICAgICAgICAgICAgTWljaGFlbCBNYXR6ICA8bWF0ekBzdXNlLmRlPgotICAgICAgICByZXZpZXdlZCBieTogcGxhbQotCi0gICAgICAgICogc3JjL2ZjbWF0Y2guYyAoRmNPYmplY3RQdHJUb01hdGNoZXIsIEZjQ29tcGFyZVZhbHVlTGlzdCwKLSAgICAgICAgICAgICAgICBGY0ZvbnRTZXRNYXRjaCk6Ci0KLSAgICAgICAgUmV3cml0ZSBGY0ZvbnRTZXRNYXRjaCB0byBhIHBhdGgtZmluZGluZyBiYXNlZCBhbGdvcml0aG0sIGkuZS4KLSAgICAgICAgaW5saW5lIEZjQ29tcGFyZSBpbnRvIEZjRm9udFNldE1hdGNoIGFuZCByZW9yZGVyIHRoZQotICAgICAgICBsb29wcywgYWRkaW5nIGEgYm9vbGVhbiBhcnJheSB3aGljaCBibG9ja3MgcGF0dGVybnMgZnJvbSBmdXR1cmUKLSAgICAgICAgY29uc2lkZXJhdGlvbiBpZiB0aGV5J3JlIGtub3duIHRvIG5vdCBiZSBiZXN0IG9uIHNvbWUgcGFzdAotICAgICAgICBjcml0ZXJpb24uCi0KLTIwMDUtMTEtMjYgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0JKiBzcmMvZmNtYXRjaC5jIChGY0NvbXBhcmVWYWx1ZUxpc3QpOgotCi0JRml4IGluY29ycmVjdCBtZXJnZS4KLQotMjAwNS0xMS0yNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNtYXRjaC5jIChGY01hdGNoT2JqZWN0UHRyc0luaXQsIEZjQ29tcGFyZVZhbHVlTGlzdCk6Ci0KLQlEb24ndCBkbyByYW5kb20gbWF0Y2hpbmcgd2hlbiBiYWQgb2JqZWN0cyBhcmUgcGFzc2VkIGludG8KLQlGY0NvbXBhcmVWYWx1ZUxpc3QuCi0KLTIwMDUtMTEtMjUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuRW5zdXJlQmFuaywgRmNQYXR0ZXJuRGlzdHJpYnV0ZUJ5dGVzLCAKLQkJCUZjUGF0dGVyblNlcmlhbGl6ZSwgRmNQYXR0ZXJuVW5zZXJpYWxpemUsIAotCQkJRmNWYWx1ZUxpc3RFbnN1cmVCYW5rLCBGY1ZhbHVlTGlzdERpc3RyaWJ1dGVCeXRlcywKLQkJCUZjVmFsdWVMaXN0VW5zZXJpYWxpemUpOgotCi0JUmVuYW1lIGZjcGF0dGVybnMsIGZjcGF0dGVybmVsdHMsIGZjdmFsdWVsaXN0cyB0byBfZmNQYXR0ZXJucywKLQlfZmNQYXR0ZXJuRWx0cywgX2ZjVmFsdWVMaXN0cyBmb3IgY29uc2lzdGVuY3kuCi0KLTIwMDUtMTEtMjUgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY21hdGNoLmM6Ci0KLQlQYXNzIHRoZSBGY09iamVjdFB0ciB0byBGY0NvbXBhcmVWYWx1ZUxpc3QsIG5vdCB0aGUgY2hhciAqIChwZXJmKS4KLQotMjAwNS0xMS0yNSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVDb25zdW1lKToKLQkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0VW5zZXJpYWxpemUpOgotCSogc3JjL2ZjZnMuYyAoRmNGb250U2V0VW5zZXJpYWxpemUpOgotCSogc3JjL2ZjbGFuZy5jIChGY0xhbmdTZXRVbnNlcmlhbGl6ZSk6Ci0JKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0VW5zZXJpYWxpemUpOgotCSogc3JjL2ZjcGF0LmMgKEZjU3RyVW5zZXJpYWxpemUsIEZjVmFsdWVMaXN0VW5zZXJpYWxpemUsIAotCQkJRmNQYXR0ZXJuVW5zZXJpYWxpemUpOgotCi0JUGFzcyBhcm91bmQgRmNDYWNoZSAqcyB0byB0aGUgVW5zZXJpYWxpemUgZnVuY3Rpb25zIGZvciBleHRyYQotCWNvbnNpc3RlbmN5IChhbmQgbGVzcyBvdmVyaGVhZCwgZm9yIHdoYXQgdGhhdCdzIHdvcnRoKS4KLQotMjAwNS0xMS0yNCAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNtYXRjaC5jIChGY0NvbXBhcmUqLCBGY0ZvbnRTZXRTb3J0KToKLQkqIHNyYy9mY25hbWUuYyAoRmNOYW1lVW5wYXJzZVZhbHVlKToKLQotCUlubGluZSB0aGUgKlB0clUgZnVuY3Rpb25zIHRvIGdhaW4gcGVyZi4KLQlSZW1vdmUgdW5uZWVkZWQgcGFyYW1zIGZvciB0aGUgRmNDb21wYXJlKiBmdW5jdGlvbnMuCi0KLTIwMDUtMTEtMjQgIERpcmsgTXVlbGxlciAgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0JCi0gICAgICAgICogc3JjL2ZjaW50LmgsIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOiAKLSAgICAgICAgCi0JTW92ZSBGQ19CQU5LX0RZTkFNSUMsIEZDX0JBTktfRklSU1QgdG8gaW50ZXJuYWwgaGVhZGVyLgotCi0gICAgICAgICogc3JjL2ZjcGF0LmMsIHNyYy9mY2ludC5oLCBzcmMvZmNuYW1lLmM6Ci0gICAgICAgICAgCi0JQ2hlY2sgZm9yIHR5cGUgdmFsaWRpdHkgZHVyaW5nIEZjUGF0dGVybkFkZFdpdGhCaW5kaW5nLCBkb24ndAotCXZlcmlmeSB0eXBlIGluIEZjRm9udE1hdGNoLCBkb24ndCBjYWxsIEZjQ2Fub25pY2FsaXplIGhlcmUKLSAgICAgICAgKHdoaWNoIGFsd2F5cyBkb2VzIGEgZGVlcCBjb3B5KS4KLQotMjAwNS0xMS0yNCAgRGlyayBNdWVsbGVyICA8ZG11ZWxsZXJAc3VzZS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjbWF0Y2guYyAoRmNDb21wYXJlTnVtYmVyLCBGY0NvbXBhcmVTdHJpbmcsIEZjQ29tcGFyZUZhbWlseSk6Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuQWRkV2l0aEJpbmRpbmcpOgotCi0JTWFrZSBGY0NvbXBhcmVTdHJpbmcgYW5kIEZjQ29tcGFyZUZhbWlseSBsZXNzIGV4cGVuc2l2ZS4KLQlPbmx5IGFkZCBhIHZhbHVlIGZvciBGQ19GQU1JTFkgaWYgdGhlIHByb3Bvc2VkIHZhbHVlIGlzIGEgc3RyaW5nLgotCi0yMDA1LTExLTI0ICBEaXJrIE11ZWxsZXIgIDxkbXVlbGxlckBzdXNlLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbQotCQotCSogc3JjL2ZjZGJnLmMgKEZjRGVidWcsIEZjRGVidWdJbml0LCBGY1BhdHRlcm5QcmludCk6Ci0JKiBzcmMvZmNpbml0LmMgKEZjSW5pdExvYWRDb25maWcsIEZjSW5pdExvYWRDb25maWdBbmRGb250cyk6Ci0JKiBzcmMvZmNpbnQuaCAoRmNEZWJ1Zyk6Ci0JCi0JSW5saW5lIEZjRGVidWcgaW52b2NhdGlvbnMgYW5kIG9ubHkgaW5pdGlhbGl6ZSBvbmNlLCBpbiBGY0luaXQqLgotCUltcHJvdmUgZGVidWcgbXNnIGluIEZjUGF0dGVyblByaW50LgotCi0yMDA1LTExLTIzICBGcmVkZXJpYyBDcm96YXQgIDxmY3JvemF0QG1hbmRyaXZhLmNvbT46Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCSogZmMtY2F0L2ZjLWNhdC5jOgotCi0JTWlub3IgY29kZSB3YXJuaW5nIGNsZWFudXBzLgotCi0yMDA1LTExLTIzICBGcmVkZXJpYyBDcm96YXQgIDxmY3JvemF0QG1hbmRyaXZhLmNvbT46Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIGZjLW1hdGNoL2ZjLW1hdGNoLmMgKG1haW4pOgotCi0JTWFrZSBnZXRvcHRfbG9uZyBhY2NlcHQgLXMgcGFyYW1ldGVyIHRvIGZjLW1hdGNoIGFzIHdlbGwuCi0KLTIwMDUtMTEtMjEgIERpcmsgTXVlbGxlciA8ZG11ZWxsZXJAc3VzZS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjbWF0Y2guYyAoRmNDb21wYXJlVmFsdWVMaXN0KToKLQotCU1hbnVhbGx5IHBlcmZvcm0gaW5saW5pbmcgJiBwYXJ0aWFsIHJlZHVuZGFuY3kgZWxpbWluYXRpb24gdG8KLQlyZWR1Y2UgY2FsbHMgdG8gRmNWYWx1ZUxpc3RQdHJVLgotCi0yMDA1LTExLTIxICBEaXJrIE11ZWxsZXIgPGRtdWVsbGVyQHN1c2UuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLSAgICAgICAgKiBzcmMvZmNzdHIuYyAoRmNTdHJGcmVlLCBGY1N0ckNhc2VXYWxrZXJJbml0LCBGY1N0ckNhc2VXYWxrZXJMb25nLAotCQkgICAgICAgRmNTdHJDYXNlV2Fsa2VyTmV4dCwgRmNTdHJDYXNlV2Fsa2VyTmV4dElnbm9yZUJsYW5rcyk6IAotCi0JT25seSBpbnZva2Ugc3RybGVuKCkgd2hlbiByZWFsbHkgbmVjZXNzYXJ5LgotCQotMjAwNS0xMS0xOSAgTWF0dGhpYXMgQ2xhc2VuICA8bWNsYXNlbkByZWRoYXQuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9NYWtlZmlsZS5hbToKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjR2V0UGl4ZWxTaXplLCBGY0ZyZWVUeXBlUXVlcnksIEdldFNjcmlwdFRhZ3MsCi0JICAgICAgICAgICAgICAgICAgICBGY0ZvbnRDYXBhYmlsaXRpZXMpOgotCSogc3JjL2Z0Z2x1ZS5jOgotCSogc3JjL2Z0Z2x1ZS5oOgotCi0JR2V0IHJpZCBvZiB0aGUgdXNlIG9mIGZyZWV0eXBlIGludGVybmFsIGhlYWRlcnMgaW4gZmNmcmVldHlwZS5jLAotCXNpbmNlIHRob3NlIGhlYWRlcnMgd2lsbCBnbyBhd2F5IHdpdGggZnJlZXR5cGUgMi4yLiAgUmVwbGFjZSB3aXRoCi0JcHVibGljIGRvbWFpbiBmdGdsdWUgY29kZSBmcm9tIHBhbmdvLiAgTm90ZSB0aGF0IHRoZSBwYXRjaCByZW1vdmVzCi0Jc29tZSBleHRyYSBlcnJvciBjaGVja2luZyBpbiBGVF9HZXRfQkRGX1Byb3BlcnR5KCkgYW5kIGNvbW1lbnRzCi0Jb3V0IHRoZSBza2lwcGluZyBvZiBlbXB0eSBwY2YgZm9udHMuCi0KLTIwMDUtMTEtMTkgIEppbmdodWEgTHVvICA8c3VubW9vbjE5OTdAZ21haWwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWxhbmcvZmMtbGFuZy5jIChtYWluKToKLQotCUZ1cnRoZXIgZml4IG9mIHBhdGNoIGZyb20gMjAwNS0xMS0wNDogbWlzY291bnRlZCBudW1iZXJzIGNvdW50Ci0JKG51bWJlcnNfY291bnQpOyBkaWRuJ3Qgc3RyaXAgZHVwbGljYXRlIG51bWJlcnMgKGxhbmdCYW5rTnVtYmVycyk7Ci0JYW5kIGxlYWZpZHhfb2Zmc2V0IGFuZCBudW1iZXJzX29mZnNldCBpbiBmY0xhbmdDaGFyU2V0cyBhcmUgd3JvbmcuCi0KLQlSZW1vdmVkIGxlYWZpZHhfY291bnQgYW5kIG51bWJlcnNfY291bnQgc2luY2UgdGhleSBhcmUgdGhlIHNhbWUKLQlhbmQgcmVwbGFjZWQgdGhlbSB3aXRoIG9mZnNldF9jb3VudC4KLQotMjAwNS0xMS0xOCAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogZmMtY2F0L2ZjLWNhdC5jIChtYWluKToKLQotCURvbid0IGNyYXNoIHdoZW4gZmMtY2F0IGludm9rZWQgd2l0aCBubyBhcmd1bWVudHMuCi0KLTIwMDUtMTEtMTggIEZyZWRlcmljIENyb3phdCAgPGZjcm96YXRAbWFuZHJpdmEuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIHNyYy9mY3htbC5jIChGY0NvbmZpZ1NhdmVBdHRyLCBGY0NvbmZpZ1BhcnNlQW5kTG9hZCk6Ci0KLQlGaXggaW52YWxpZCByZWFkIGFjY2VzcyBjYXVzZWQgYnkgcHJlbWF0dXJlIGZyZWUgYW5kCi0JR0NDNCB3YXJuaW5ncyBpbiBsaWJ4bWwyIGNvZGVwYXRoLgotCi0yMDA1LTExLTE3ICBKaW5naHVhIEx1byAgPHN1bm1vb24xOTk3QGdtYWlsLmNvbT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBzcmMvZmNjZmcuYyAoRmNDb25maWdWYWx1ZXMpOgotCi0JTGlzdCBpdGVyYXRpb24gbm90IG5lZWRlZCBpbiBGY0NvbmZpZ1ZhbHVlcywgc2luY2UgaXQncyBidWlsZGluZwotCXVwIHRoZSBsaXN0IGl0c2VsZjsgd2UgY2FuIGp1c3Qgc3RyaXAgRmNWb2lkIGVsZW1lbnRzIGR1cmluZwotCWNvbnN0cnVjdGlvbi4KLQotMjAwNS0xMS0xNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjZmcuYyAoRmNDb25maWdWYWx1ZXMpOgotCi0JRml4IGNyYXNoIG9uIGludmFsaWQgY29uc3RhbnRzIGluIGNvbmZpZyBmaWxlcyAoZm9yZ290IHRvIHVwZGF0ZQotCWEgcG9pbnRlciB1cG9uIGxpc3QgaXRlcmF0aW9uLikKLQotMjAwNS0xMS0xNyAgRnJlZGVyaWMgQ3JvemF0ICA8ZmNyb3phdEBtYW5kcml2YS5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogc3JjL2ZjeG1sLmMgKEZjVHlwZWNoZWNrRXhwcik6Ci0KLQlDb21wbGFpbiBhYm91dCBpbnZhbGlkIGNvbnN0YW50cyBpbiBjb25maWcgZmlsZXMuCi0KLTIwMDUtMTEtMTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVTYXZlKTogCi0KLQlEb24ndCBhZGQgY3VycmVudF9hcmNoX3N0YXJ0IG1vcmUgdGhhbiBvbmNlLgotCi0yMDA1LTExLTE2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0RGlzdHJpYnV0ZUJ5dGVzLCBGY0NoYXJTZXRVbnNlcmlhbGl6ZSk6Ci0JKiBzcmMvZmNmcy5jIChGY0ZvbnRTZXRVbnNlcmlhbGl6ZSk6Ci0JKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0RGlzdHJpYnV0ZUJ5dGVzLCBGY09iamVjdFVuc2VyaWFsaXplKToKLQkqIHNyYy9mY3BhdC5jIChGY1N0clVuc2VyaWFsaXplKToKLQotCUZpeCBvcmRlcmluZyBvZiBBTElHTiB3aXRoIHJlc3BlY3QgdG8gc2F2aW5nIGJsb2NrX3B0cjsgYWRkCi0JYW5vdGhlciBBTElHTiB0byBmY2ZzLmMuCi0KLTIwMDUtMTEtMTYgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVByb2R1Y2UpCi0JCi0JRml4IGNhc2Ugd2hlcmUgYWxpZ25tZW50IGJ5dGVzIGJ1bXBlZCB1cCBtZXRhZGF0YS0+Y291bnQKLQljYXVzaW5nIHVud2FycmFudGVkIGZhaWx1cmVzIHRvIHdyaXRlIGNhY2hlIGZpbGVzLiAgCi0JKFJlcG9ydGVkIGJ5IFN0ZXBoYW4gS3Vsb3cpLgotCi0yMDA1LTExLTE2ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVQcm9kdWNlKToKLQkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyU2V0RGlzdHJpYnV0ZUJ5dGVzKToKLQkqIHNyYy9mY2ZzLmMgKEZjRm9udFNldERpc3RyaWJ1dGVCeXRlcyk6Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2xhbmcuYyAoRmNMYW5nU2V0RGlzdHJpYnV0ZUJ5dGVzKToKLQkqIHNyYy9mY25hbWUuYyAoRmNPYmplY3REaXN0cmlidXRlQnl0ZXMpOgotCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybk5lZWRlZEJ5dGVzLCBGY1ZhbHVlTGlzdE5lZWRlZEJ5dGVzLAotCQlGY1N0ck5lZWRlZEJ5dGVzKToKLQkKLQlBZGQgKk5lZWRlZEJ5dGVzQWxpZ24oKSwgd2hpY2ggb3ZlcmVzdGltYXRlcyB0aGUgcGFkZGluZyB3aGljaCBpcwotCWxhdGVyIGFkZGVkIGJ5IHRoZSBuZXcgQUxJR04gbWFjcm8uICBGaXggYWxpZ25tZW50IHByb2JsZW1zIG9uCi0JaWE2NCBhbmQgczM5MCBieSBidW1waW5nIHVwIGJsb2NrX3B0ciBhcHByb3ByaWF0ZWx5LiAgKEVhcmxpZXIKLQl2ZXJzaW9uIGJ5IEFuZHJlYXMgU2Nod2FiKS4KLQotMjAwNS0xMS0xNiAgU3RlcGhhbiBLdWxvdyAgPGNvb2xvQGtkZS5vcmc+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIHNyYy9mY2NhY2hlLmM6Ci0KLQlVc2Ugc3lzY29uZiB0byBkZXRlcm1pbmUgcHJvcGVyIFBBR0VTSVpFIHZhbHVlOyB0aGlzCi0JYXBwZWFycyB0byBiZSBQT1NJWC1jb21wbGlhbnQuIChyZXBvcnRlZCBieSBBbmRyZWFzIFNjaHdhYikKLQotMjAwNS0xMS0wNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1sYW5nL2ZjLWxhbmcuYzoKLQkqIHNyYy9mY2NoYXJzZXQuYzoKLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjbGFuZy5jOgotCi0JRml4IGJ1ZyAyODc4IChleGNlc3NpdmUgcmVsb2NhdGlvbnMgYXQgc3RhcnR1cCBmb3IgY2hhcnNldHMsCi0JcmVwb3J0ZWQgYnkgUm9zcyBCdXJ0b24pOiBmYy1sYW5nL2ZjLWxhbmcgbm93IGNyZWF0ZXMgdGhlCi0Jc3RhdGljIGZvcm0gb2YgdGhlIGxhbmdzZXQsIG5vdCB0aGUgZHluYW1pYyBmb3JtLCBzbyB0aGF0Ci0JdGhlIGNoYXJzZXRzIHNob3VsZCBub3cgYmUgaW4gLnJvZGF0YS4KLQotMjAwNS0xMS0wNCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNkaXIuYyAoRmNEaXJTY2FuQ29uZmlnKToKLQotCUFkZCB0ZXN0IGZvciB2YWxpZGl0eSBvZiBkaXJlY3RvcnkgY2FjaGVzIHRoYXQKLQlzb21laG93IGdvdCBsb3N0IChyZXBvcnRlZCBieSBtYWtlIGRpc3RjaGVjaykuCi0KLTIwMDUtMTEtMDQgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogQ2hhbmdlTG9nOgotCSogUkVBRE1FOgotCSogY29uZmlndXJlLmluOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JCi0gICAgICAgIEJ1bXAgdmVyc2lvbiB0byAyLjMuOTIuCi0KLTIwMDUtMTEtMDIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVybkR1cGxpY2F0ZSk6Ci0KLQlGaXggYXJndW1lbnQgb3JkZXJpbmcgcHJvYmxlbSBpbiBjYWxsIHRvIEZjUGF0dGVyblRyYW5zZmVyRnVsbEZuYW1lLgotCi0yMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZXR5cGVRdWVyeSk6Ci0JKiBzcmMvZmNwYXQuYyAoRmNQYXR0ZXJuRGVzdHJveSwgRmNQYXR0ZXJuRHVwbGljYXRlLCAKLQkgICAgICAgICAgICAgICBGY1BhdHRlcm5UcmFuc2ZlckZ1bGxGbmFtZSk6Ci0KLQlGaXggd2FybmluZ3MgYW5kIGVtYmFycmFzc2luZyBkb3VibGUtZnJlZSBlcnJvci4KLQotMjAwNS0xMS0wMiAgWmhlIFN1ICA8enN1QG5vdmVsbC5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIGZvbnRzLmNvbmYuaW46Ci0KLQlDaGFuZ2UgdGhlIHJ1bGUgZm9yIGFydGlmaWNpYWwgZW1ib2xkZW5pbmcgaW4gZm9udHMuY29uZi5pbi4gIFRoaXMKLQllbmFibGVzIHRoZSBzdXBwb3J0IGZvciBhcnRpZmljaWFsIGVtYm9sZGVuaW5nIGluY2x1ZGVkIGluIGNhaXJvLgotCi0yMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY3BhdC5jIChGY1BhdHRlcm5EZXN0cm95LCBGY1BhdHRlcm5UcmFuc2ZlckZ1bGxOYW1lKToKLQotCURvbid0IHplcm8gb3V0IGZ1bGwgbmFtZXMgZm9yIEZDX1JFRl9DT05TVEFOVCBmb250czsKLQlhbHNvLCBkdXBsaWNhdGUgZnVsbCBuYW1lcyB3aGVuIHRyYW5zZmVycmluZywgYW5kIGZyZWUKLQlmdWxsIG5hbWVzIHdoZW4gZnJlZWluZyB0aGUgYXNzb2NpYXRlZCBmb250LgotCVJlcG9ydGVkIGJ5IEppbmdodWEgTHVvLgotCi0yMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKLQkqIHNyYy9mY3BhdC5jIChGY1ZhbHVlTGlzdFNlcmlhbGl6ZSk6Ci0KLQlSZXZlcnQgdGhlIHByZXZpb3VzIHBhdGNoIGFuZCBjb21taXQgdGhlIGNvcnJlY3QgcGF0Y2g6Ci0JSSBmb3Jnb3QgYSBjYW5vbmljYWxpemF0aW9uIGluIEZjVmFsdWVMaXN0U2VyaWFsaXplLCBzbwotCXRoYXQgaXQgd291bGQgY2hva2Ugb24gYWxyZWFkeS1zZXJpYWxpemVkIGlucHV0IGZpbGVzLiAgRHVoIQotCi0yMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhY2hlL2ZjLWNhY2hlLmMgKHNjYW5EaXJzKToKLQotCUZvcmNpYmx5IHJlc2NhbiBhIGRpcmVjdG9yeSBiZWZvcmUgd3JpdGluZyBhIGZyZXNoIGxvY2FsCi0JY2FjaGUgZmlsZSBmb3IgdGhhdCBkaXJlY3RvcnksIGZpeGluZyB0aGUgbG9zaW5nLWZvbnRzCi0JcHJvYmxlbSByZXBvcnRlZCBieSBNaWtlIEZhYmlhbiBhbmQgYWxzbyBhcHBhcmVudGx5IHRoZSAKLQlmb250IGNhY2hlIGZpbGUgY29ycnVwdGlvbi4KLQotMjAwNS0xMS0wMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlTG9hZCk6Ci0KLQlGaXggdGhpbmtvOiBhY3R1YWxseSwgdGhlIHdob2xlIGdsb2JhbCBjYWNoZSBpcyBzdGFsZSAKLQlpZiB0aGUgZ2xvYmFsIGNhY2hlIGlzIG9sZGVyIHRoYW4gdGhlIChuZXdlc3QpIGNvbmZpZyBmaWxlLgotCi0yMDA1LTExLTAyICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkKToKLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ01vZGlmaWVkVGltZSwgRmNDb25maWdCdWlsZEZvbnRzKToKLQkqIHNyYy9mY2ludC5oOgotCi0JRGVjbGFyZSB0aGUgZ2xvYmFsIGNhY2hlIG9mIGEgZGlyZWN0b3J5J3MgY29udGVudHMgdG8gYmUgc3RhbGUgaWYKLQl0aGUgZGlyZWN0b3J5IGlzIG5ld2VyIHRoYW4gdGhlIChuZXdlc3QpIGNvbmZpZ3VyYXRpb24gZmlsZS4KLQotMjAwNS0xMC0zMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2xpc3QuYyAoRmNMaXN0QXBwZW5kKToKLQkqIHNyYy9mY21hdGNoLmMgKEZjRm9udFJlbmRlclByZXBhcmUpOgotCSogc3JjL2ZjcGF0LmMgKEZjUGF0dGVyblRyYW5zZmVyRnVsbEZuYW1lLCBGY1BhdHRlcm5EdXBsaWNhdGUsCi0JICAgICAgICAgICAgICAgRmNQYXR0ZXJuRnJlZXplLCBGY1BhdHRlcm5CYXNlRnJlZXplKToKLQotCUNvcHkgdGhlIGZ1bGwgcGF0aG5hbWUgd2hlbmV2ZXIgZHVwbGljYXRpbmcgYW4gRmNQYXR0ZXJuOyBvdGhlcndpc2UsCi0JYXBwbGljYXRpb25zIGNvbnRpbnVlIGJyZWFraW5nLgotCi0yMDA1LTEwLTMxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhdC9mYy1jYXQuYyAoRmNDYWNoZUZpbGVSZWFkLCBtYWluKToKLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6Ci0KLQlGaXggc21hbGwgbWVtb3J5IGVycm9yICh0cmllZCB0byBmcmVlIGFyZ3YpOyB1c2UgYmFzZW5hbWUgYW5kCi0JZGlybmFtZSBjb3JyZWN0bHkgKHRoZXkgY2FuIG1vZGlmeSB0aGVpciBhcmd1bWVudHMpLgotCi0yMDA1LTEwLTMxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIGZjLWNhdC9mYy1jYXQuYzoKLQkqIHNyYy9mY2NhY2hlLmM6Ci0JKiBzcmMvZmNmcmVldHlwZS5jOgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNsaXN0LmM6Ci0JKiBzcmMvZmNwYXQuYzoKLQotCVJlaW5zdGF0ZSBiYXNlbmFtZSBwYXRjaCwgYnV0IGtlZXAgYSBoYXNoIHRhYmxlIGxpbmtpbmcgRmNQYXR0ZXJucwotCXRvIHRoZWlyIGZ1bGx5LXF1YWxpZmllZCBmb250IG5hbWVzIGZvciBjbGllbnRzJyBiZW5lZml0LiAgQ2xpZW50cwotCW9ubHkgcGF5IGZvciB0aGUgZm9udCBuYW1lcyBvbmNlIHRoZXkgcmVxdWVzdCB0aGUgRkNfRklMRSBwcm9wZXJ0eQotCWZyb20gYW4gRmNQYXR0ZXJuLCBidXQgdGhlIGZvbnQgbmFtZSBpcyBtYWxsb2MnZCBhdCB0aGF0IHBvaW50IChpLmUuCi0Jbm90IG1tYXBwZWQ6IHRoYXQncyBpbXBvc3NpYmxlLCBzaW5jZSBpdCBtYXkgdmFyeSBiZXR3ZWVuIG1hY2hpbmVzLikKLQlDbGllbnRzIGRvIGhhdmUgdG8gcGF5IGZvciBhIGNvcHkgb2YgdGhlIHBhdGggbmFtZSBwZXIgY2FjaGUgZmlsZS4KLQotCU5vdGUgdGhhdCBGY1BhdHRlcm5HZXRTdHJpbmcgbm93IGRvZXMgc29tZSByZXdyaXRpbmcgaWYgeW91IGFzawotCWZvciBhbiBGQ19GSUxFLCBhcHBlbmRpbmcgdGhlIHBhdGhuYW1lIGFzIGFwcHJvcHJpYXRlLgotCQotMjAwNS0xMC0zMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNmcmVldHlwZS5jIChGY0ZyZWVUeXBlUXVlcnkpOgotCi0JUmV2ZXJ0IGJhc2VuYW1lIHBhdGNoLCB3aGljaCBicmVha3MgZm9udGNvbmZpZyBjbGllbnRzIG9uIG15IHN5c3RlbS4KLQotMjAwNS0xMC0yNSAgSmluZ2h1YSBMdW8gIDxzdW5tb29uMTk5N0BnbWFpbC5jb20+Ci0JcmV2aWV3ZWQgYnk6IHBsYW0KLQotCSogZm9udGNvbmZpZy9mb250cy5jb25mLmluOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JKiBzcmMvZmNkZWZhdWx0LmM6Ci0JKiBzcmMvZmNuYW1lLmM6Ci0KLQlBZGQgRkNfRU1CRURERURfQklUTUFQIG9iamVjdCB0eXBlIHRvIHRlbGwgWGZ0L0NhaXJvIHdoZXRoZXIKLQl0byBsb2FkIGVtYmVkZGVkIGJpdG1hcHMgb3Igbm90LgotCi0yMDA1LTEwLTI1ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVRdWVyeSk6Ci0KLQlPbmx5IGFkZCBiYXNlbmFtZSB0byBwYXR0ZXJucycgRkNfRklMRSBlbGVtZW50LCBub3QgYW55IHBhcnQgb2YKLQl0aGUgZGlybmFtZS4KLQotMjAwNS0xMC0yMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNmcmVldHlwZS5jOgotCi0JQWRkIHNvbWUgbW9yZSBjb25zdHMsIGZpeGluZyBtb3JlIEdDQzQgd2FybmluZ3MuCi0KLTIwMDUtMTAtMjIgIFpoZSBTdSAgPHpzdUBub3ZlbGwuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQlTdXBwb3J0IGxvY2FsaXplZCBmb250IGZhbWlseSBhbmQgc3R5bGUgbmFtZXMuCi0JVGhpcyBoYXMgYmVlbiByZXBvcnRlZCB0byBicmVhayBvbGQgYXBwcyBsaWtlIHhmZCwgYnV0IG1vZGVybgotCShndGsrL3F0L21vemlsbGEpIGFwcHMgd29yayBmaW5lLgotCi0yMDA1LTEwLTIxICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjR2xvYmFsQ2FjaGVMb2FkKToKLQotCURlc3Ryb3kgdGhlIGdsb2JhbCBjYWNoZSBmaWxlIGlmIGl0J3MgdGVybWluYWxseSBicm9rZW4uICAocmVwb3J0ZWQgYnkKLQlNaWtlIEZhYmlhbikKLQotMjAwNS0xMC0yMSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBmYy1saXN0L2ZjLWxpc3QuYyAobWFpbik6Ci0JKiBzcmMvZmNuYW1lLmMgKEZjTmFtZVVucGFyc2UsIEZjTmFtZVVucGFyc2VFc2NhcGVkKToKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCi0JUHJldmVudCBmYy1saXN0IGZyb20gZXNjYXBpbmcgc3RyaW5ncyB3aGVuIHByaW50aW5nIHRoZW0gKHJlcG9ydGVkIGJ5Ci0JTWF0dGhpYXMgQ2xhc2VuKS4KLQotMjAwNS0xMC0yMCAgTWFyY3VzIE1laXNzbmVyICA8bWVpc3NuZXJAc3VzZS5kZT4KLQlyZXZpZXdlZCBieTogcGxhbQotCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQotCUFkZCB2YWxpc3Qgc2VudGluZWwgbWFya3VwIGZvciBGY09iamVjdFNldEJ1aWxkIGFuZCBGY1BhdHRlcm5CdWlsZC4KLQkKLTIwMDUtMTAtMTQgIFJvc3MgQnVydG9uICA8cm9zc0BidXJ0b25pbmkuY29tPgotCXJldmlld2VkIGJ5OiBwbGFtCi0KLQkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzoKLQkqIHNyYy9mY2xhbmcuYzoKLQotCUFkZCBjb25zdHMgdG8gdmFyaWFibGVzIHNvIGFzIHRvIG1vdmUgYXJyYXlzIGludG8gLnJvZGF0YS4KLQotMjAwNS0xMC0xNCAgTWlrZSBGYWJpYW4gIDxtZmFiaWFuQHN1c2UuZGU+Ci0gICAgICAgIHJldmlld2VkIGJ5OiBwbGFtCi0KLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlVW5saW5rKToKLQotICAgICAgICBDaGVjayBleGlzdGVuY2Ugb2YgZGlyZWN0b3J5IGNhY2hlIGZpbGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdW5saW5rLgotCi0yMDA1LTEwLTEzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVVbmxpbmspOgotCi0JRml4IGZsaXBwZWQgcmV0dXJuIHZhbHVlIG9uIHVubGluay4gIChSZXBvcnRlZCBieSBNaWtlIEZhYmlhbikKLQotMjAwNS0xMC0xMiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0KLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jOgotICAgICAgICAqIHNyYy9mY2Rpci5jIChGY0RpclNjYW5Db25maWcpOgotICAgICAgICAqIHNyYy9mY2ludC5oOgotCi0gICAgICAgIFdoZW4gZmMtY2FjaGUgaXMgcnVuIHdpdGhvdXQgLS1mb3JjZSwgdXNlIGRpcmVjdG9yeSBjYWNoZSBmaWxlcwotICAgICAgICB0byBzcGVlZCB1cCBmYy1jYWNoZSBydW4gdGltZS4gIChSZXBvcnRlZCBieSBNaWtlIEZhYmlhbikKLQotMjAwNS0xMC0wNiAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0KLSAgICAgICAgKiBzcmMvZmNuYW1lLmMgKEZjT2JqZWN0VG9QdHIpOgotICAgICAgICAqIHNyYy9mY3BhdC5jIChGY1N0clN0YXRpY05hbWUpOgotCi0gICAgICAgIEFkZCBwYWRkaW5nIHRvIG1ha2UgdmFsZ3JpbmQgYW5kIGdsaWJjIG5vdCBoYXRlIGVhY2ggb3RoZXIKLSAgICAgICAgd2hlbiBjYWxsaW5nIHN0cmxlbigpLgotCi0yMDA1LTEwLTA1ICBTaW1vcyBYZW5pdGVsbGlzICA8c2ltb3M3NEBnbXgubmV0PgotCXJldmlld2VkIGJ5OiBwbGFtICYga2VpdGhwCi0KLQkqIGZvbnRzLmNvbmYuaW46Ci0KLQlNb2RpZnkgY29uZmlnIGZpbGUgdG8gdXNlIEdyZWVrIGZvbnRzIGJlZm9yZSBBc2lhbiBmb250cyB3aXRoCi0JR3JlZWsgZ2x5cGhzLgotCi0yMDA1LTEwLTA1ICBDaHJpc3RpYW4gQmllc2luZ2VyICA8Y2JpZXNpbmdlckB3ZWIuZGU+Ci0gICAgICAgIHJldmlld2VkIGJ5OiBwbGFtICYga2VpdGhwCi0KLSAgICAgICAgKiBzcmMvTWFrZWZpbGUuYW06Ci0KLSAgICAgICAgVXNlIGxpYnRvb2wgLW5vLXVuZGVmaW5lZCBmbGFnIG9uIGFsbCBwbGF0Zm9ybXMuCi0KLTIwMDUtMTAtMDUgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNDYWNoZUhhdmVCYW5rKToKLQotCUltcGxlbWVudCBtb3ZlLXRvLWZyb250IGFycmF5IGZvciBiYW5rcyAocGVyZiByZWdyZXNzaW9uCi0JcmVwb3J0ZWQgYnkgUm9ubnkgVi4gVmluZGVuZXMpLgotCi0yMDA1LTEwLTA0ICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVWYWxpZCwgRmNEaXJDYWNoZVVubGluaywgCi0JICAgICAgICAgICAgICAgICBGY0RpckNhY2hlSGFzQ3VycmVudEFyY2gpOgotCSogZmMtY2FjaGUvZmMtY2FjaGUuYyAoc2NhbkRpcnMpOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0KLQlBZGQgbmV3IEFQSSB3aGljaCB1bmxpbmtzIGRpcmVjdG9yeSBjYWNoZXMgYW5kIGNoZWNrcyBkaXIgY2FjaGVzCi0JZm9yIGV4aXN0ZW5jZSBvZiBhcHByb3ByaWF0ZSBzZWN0aW9ucy4gIEZpeCBmYy1jYWNoZSB0byB1bmxpbmsKLQlzdGFsZSBjYWNoZSBmaWxlcyBhbmQgc2F2ZSBkaXJlY3RvcnkgY2FjaGVzIHRoYXQgbGFjayByZWxldmFudAotCXNlY3Rpb25zLgotCi0yMDA1LTEwLTAzICBQYXRyaWNrIExhbSAgPHBsYW1AbWl0LmVkdT4KLQkqIHNyYy9mY2NhY2hlLmMgKEZjRGlyQ2FjaGVWYWxpZCk6Ci0KLQlFbnN1cmUgdGhhdCBhIGRpcmVjdG9yeSBjYWNoZSBoYXMgdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24KLQliZWZvcmUgcmVwb3J0aW5nIHRoYXQgaXQgaXMgdmFsaWQgKHJlcG9ydGVkIGJ5IE1hdHRoaWFzIENsYXNlbikuCi0KLTIwMDUtMDktMjkgIE1hdGhpYXMgSGFzc2VsbWFubiAgPG1hdGhpYXMuaGFzc2VsbWFubkBnbXguZGU+Ci0KLSAgICAgICAgcmV2aWV3ZWQgYnk6IHBsYW0KLQkKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIHNyYy9NYWtlZmlsZS5hbToKLQkqIHNyYy9mY3htbC5jOgotCi0JVXNlIGxpYnhtbDIgaWYgcmVxdWVzdGVkICh3aXRoIC0tZW5hYmxlLWxpYnhtbDIpIG9yIGlmCi0JZXhwYXQgaXMgbm90IGF2YWlsYWJsZS4KLQotMjAwNS0wOS0yOSAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0dsb2JhbENhY2hlU2F2ZSwgRmNEaXJDYWNoZVdyaXRlKToKLQotCUZpeCBtdWx0aS1hcmNoIGNhY2hlIGZpbGVzOiBjb21wdXRlIHRoZSBwb3NpdGlvbiBmb3IgdGhlCi0JYmxvY2sgdG8gYmUgYWRkZWQgdXNpbmcgaW5mbyBmcm9tIE9yaWdGaWxlLCBub3QgTmV3RmlsZS4KLQotMjAwNS0wOS0yOCAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0JKiBzcmMvZmNjYWNoZS5jIChGY0NhY2hlTWFjaGluZVNpZ25hdHVyZSk6Ci0KLSAgICAgICAgQ2FzdCByZXN1bHRzIG9mIHNpemVvZigpIHRvIHVuc2lnbmVkIGludCB0byBnZXQgcmlkIG9mCi0gICAgICAgIHdhcm5pbmdzIG9uIHg4Nl82NCAodGhhbmtzIE1hdHRoaWFzIENsYXNlbikuCi0KLTIwMDUtMDktMjcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCSogc3JjL2ZjY2FjaGUuYyAoRmNHbG9iYWxDYWNoZVNhdmUsIEZjQ2FjaGVDb3B5T2xkLAotICAgICAgICAgICAgICAgIEZjRGlyQ2FjaGVXcml0ZSk6Ci0KLSAgICAgICAgVXNlIEZjQXRvbWljIHRvIHJld3JpdGUgY2FjaGUgZmlsZXMuCi0KLTIwMDUtMDktMjcgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCi0gICAgICAgICogc3JjL2ZjY2FjaGUuYyAoRmNEaXJDYWNoZVdyaXRlKToKLQotICAgICAgICBEb24ndCB1bmxpbmsgdGhlIGZvbnRzLmNhY2hlLTIgZmlsZSBldmVuIGlmIHRoZXJlJ3Mgbm8gZGF0YQotICAgICAgICB0byB3cml0ZTsganVzdCB3cml0ZSBhbiBlbXB0eSBjYWNoZSBmaWxlLiAgKHRoYW5rcyBMdWJvcyBMdW5haykKLQotMjAwNS0wOS0yNyAgUGF0cmljayBMYW0gIDxwbGFtQG1pdC5lZHU+Ci0KLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlV3JpdGUpOgotCi0gICAgICAgIEFsbG9jYXRlIHJvb20gZm9yIHRoZSBzdWJkaXJlY3RvcnkgbmFtZXMgaW4gZWFjaAotICAgICAgICBkaXJlY3RvcnkgY2FjaGUuICBUaGFua3MgdG8gSmFtZXMgQ2xvb3MgZm9yIGZpbmRpbmcKLSAgICAgICAgYW5kIGRpYWdub3NpbmcgdGhpcyBidWchCi0KLTIwMDUtMDktMjIgIFBhdHJpY2sgTGFtICA8cGxhbUBtaXQuZWR1PgotCi0gICAgICAgICogZmMtY2FjaGUvZmMtY2FjaGUuc2dtbDoKLSAgICAgICAgKiBzcmMvZmNjYWNoZS5jIChGY0RpckNhY2hlV3JpdGUpOgotICAgICAgICAqIHNyYy9mY2NhY2hlLmggKHN0cnVjdCBGY0NhY2hlKToKLQotICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiAtLSBmYy1jYWNoZSdzIG1hbiBwYWdlIG5vdyBzYXlzIHRoYXQgeW91Ci0gICAgICAgIG5lZWQgdG8gcnVuIGZjLWNhY2hlIG9uY2UgcGVyIGNhY2hlZCBhcmNoaXRlY3R1cmU7IGFkZCBzb21lCi0gICAgICAgIGRvY3VtZW50YXRpb24gdG8gdGhlIEZjQ2FjaGUgc3RydWN0dXJlLgotCi0gICAgICAgIE1ha2UgZmMtY2FjaGUgd3JpdGUgb3V0IGZvbnRzLmNhY2hlLTIgZmlsZXMgZm9yIGRpcmVjdG9yaWVzIHdpdGgKLSAgICAgICAgbm8gZm9udHMgKGkuZS4gb25seSBzdWJkaXJlY3RvcmllcykuCi0JCi0yMDA1LTA5LTIyICBQYXRyaWNrIExhbSAgICA8cGxhbUBtaXQuZWR1PgotCSogZG9jL2VkaXQtc2dtbC5jOgotCSogZmMtY2FjaGUvZmMtY2FjaGUuc2dtbDoKLQkqIGZjLWNhc2UvZmMtY2FzZS5jOgotCSogZmMtZ2x5cGhuYW1lL2ZjLWdseXBobmFtZS5jOgotCSogc3JjL2ZjZGVmYXVsdC5jOgotCSogc3JjL2ZjZnJlZXR5cGUuYzoKLQkqIHNyYy9mY2luaXQuYzoKLQkqIHNyYy9mY3htbC5jOgotCi0JTW9yZSBHQ0MgNCBjbGVhbnVwcywgZHVlIHRvIEJlaGhhZCBFc2ZhaGJvZCA8YmVoZGFkQGJlZGRhZC5vcmc+LgotCi0gICAgICAgICogTWFrZWZpbGUuYW06Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBmYy1sYW5nL2ZjLWxhbmcuYzoKLQkqIGZvbnRjb25maWcvZmNwcml2YXRlLmg6Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQkqIHNyYy9mY2NhY2hlLmM6Ci0JKiBzcmMvZmNjZmcuYzoKLQkqIHNyYy9mY2NoYXJzZXQuYzoKLQkqIHNyYy9mY2RiZy5jOgotCSogc3JjL2ZjZGlyLmM6Ci0JKiBzcmMvZmNmcy5jOgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNsYW5nLmM6Ci0JKiBzcmMvZmNsaXN0LmM6Ci0JKiBzcmMvZmNtYXRjaC5jOgotCSogc3JjL2ZjbmFtZS5jOgotCSogc3JjL2ZjcGF0LmM6Ci0KLQlJbXBsZW1lbnQgbmV3IG1tYXBlZCBjYWNoZSBmb3IgZm9udCBpbmZvcm1hdGlvbi4KLQlCdW1wIHNvIHJldmlzaW9uIHRvIDIuMy45MC4KLQotMjAwNS0wNy0yNSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6Ci0JKiBmYy1nbHlwaG5hbWUvZmMtZ2x5cGhuYW1lLmM6IChzY2FuKSwgKG1haW4pOgotCSogZmMtbGFuZy9mYy1sYW5nLmM6IChGY0NvbmZpZ0hvbWUpOgotCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzogKG1haW4pOgotCSogc3JjL2ZjY2ZnLmM6IChGY0NvbmZpZ0hvbWUpOgotCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjU2ZudE5hbWVUcmFuc2NvZGUpLCAoRmNTZm50TmFtZUxhbmd1YWdlKSwKLQkoRmNWZW5kb3JNYXRjaCksIChGY0ZyZWVUeXBlUXVlcnkpLCAoRmNGcmVlVHlwZUNoYXJTZXRBbmRTcGFjaW5nKSwKLQkoYWRkdGFnKSwgKEZjRm9udENhcGFiaWxpdGllcyk6Ci0JKiBzcmMvZmNwYXQuYzogKEZjVmFsdWVMaXN0RW50Q3JlYXRlKToKLQkqIHNyYy9mY3N0ci5jOiAoRmNTdHJDYXNlV2Fsa2VySW5pdCk6Ci0JKiBzcmMvZmN4bWwuYzogKEZjUGFyc2VQYXRlbHQpLCAoRmNDb25maWdQYXJzZUFuZExvYWREaXIpOgotCi0JVmFyaW91cyBHQ0MgNCBjbGVhbnVwcyBmb3Igc2lnbmVkIHZzIHVuc2lnbmVkIGNoYXIKLQotCU1hdGNoIG9ubHkgWzAtOV0qLmNvbmYgZmlsZXMgaW4gPGluY2x1ZGU+e2RpcmVjdG9yeX08L2luY2x1ZGU+Ci0JZWxlbWVudHMgdG8gYXZvaWQgbG9hZGluZyAqLnJwbXNhdmUgb3IgLmRwa2ctb2xkIGZpbGVzLiAob3RheWxvcikKLQotMjAwNS0wNy0xNSAgQ2FybCBXb3J0aCAgPGN3b3J0aEBjd29ydGgub3JnPgotCi0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2luaXQuYzogKEZjRmluaSk6Ci0JKiBzcmMvZmNwYXQuYzogKEZjUGF0dGVybkZpbmkpOiBSZW5hbWUgRmNQYXR0ZXJuVGhhd0FsbCB0bwotCUZjUGF0dGVybkZpbmkuCi0JCi0JKiBzcmMvZmNwYXQuYzogKEZjT2JqZWN0U3RhdGljTmFtZSksIChGY09iamVjdFN0YXRpY05hbWVGaW5pKToKLQlQdWxsIHRoZSBGY09iamVjdFN0YXRlTmFtZSBoYXNoIHRhYmxlIG91dCB0byBmaWxlIHNjb3BlLCBhbmQgYWRkCi0JRmNPYmplY3RTdGF0aWNOYW1lRmluaSBzbyB0aGF0IEZjRmluaSB3aWxsIGNsZWFudXAgdGhpcyBoYXNoIHRhYmxlCi0JYXMgd2VsbC4KLQotCSogc3JjL2ZjeG1sLmM6IChGY0NvbmZpZ1BhcnNlQW5kTG9hZCk6IENsZWFyIEZJTEUqIHRvIE5VTEwgYWZ0ZXIKLQlmY2xvc2UuCi0KLTIwMDUtMDYtMTYgIFBhdHJpY2sgTGFtIDxwbGFtQE1JVC5FRFU+Ci0KLQlyZXZpZXdlZCBieToga2VpdGhwCi0KLQkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdDb21wYXJlVmFsdWUpOgotCU1ha2UgRmNPcE5vdENvbnRhaW5zIHVzZSBGY1N0clN0ciBmb3Igc3RyaW5ncyBzbyB0aGF0Ci0JaXQgbWF0Y2hlcyBzZW1hbnRpY3MgZm9yICFGY09wQ29udGFpbnMuCi0KLTIwMDUtMDUtMjAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZGViaWFuL2NoYW5nZWxvZzoKLQkqIGRlYmlhbi9jb250cm9sOgotCU1vdmUgZm9udGNvbmZpZyBzb3VyY2UgcGFja2FnZSB0byBsaWJzIGFzIHBlciBvdmVycmlkZQotCi0yMDA1LTA1LTIwICBBaWV0IEtvbGtoaSA8YWlldGtvbGtoaUBnbWFpbC5jb20+Ci0KLQlyZXZpZXdlZCBieTogTWlrZSBGYWJpYW4KLQotCSogZmMtbGFuZy9rYS5vcnRoOgotCVRoZSBrYS5vcnRoIGZpbGUgcmVxdWlyZXMgc2V2ZXJhbCBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBub3QgCi0JdXNlZCBhbnltb3JlIGluIG1vZGVybiBHZW9yZ2lhbiBhbmQgd2hpY2ggYXJlIG1pc3NpbmcgaW4gdGhlIGZyZWUgCi0JR2VvcmdpYW4gVHJ1ZVR5cGUgZm9udHMgZG93bmxvYWRhYmxlIGF0OiAKLQkKLQlodHRwOi8vYWlldC5xYXJ0dWxpLm5ldC9kb2NzL2dlb3JnaWFuX29uX2xpbnV4X2VuLnBocAotCi0yMDA1LTA0LTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIFJFQURNRToKLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6Ci0JVXBkYXRlIGRhdGUgdG8gcmVhbCAyLjMuMiByZWxlYXNlIGRhdGUuCi0JRml4IGNoYW5nZSBhdHRyaWJ1dGlvbnMKLQkKLTIwMDUtMDQtMjcgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogY29uZmlndXJlLmluOgotCUJ1bXAgc28gcmV2aXNpb24gZm9yIDIuMy4yCi0JKiBmYy1jYWNoZS9mYy1jYWNoZS5jOiAoc2NhbkRpcnMpOgotCUZpeCBhIGZldyBtaW5vciBsZWFrcyBpbiBlcnJvciBjYXNlcy4KLQotMjAwNS0wNC0yMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBSRUFETUU6Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBkZWJpYW4vY2hhbmdlbG9nOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JVXBkYXRlIGZvciB2ZXJzaW9uIDIuMy4yCi0KLTIwMDUtMDQtMjEgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZGViaWFuL2ZvbnRjb25maWcucG9zdGluc3Q6Ci0JRG9uJ3QgZm9yY2UgYml0bWFwIGZvbnQgZW5hYmxlIGluIGRlZmF1bHQKLQljb25maWd1cmF0aW9uOyBhbGxvd3MgdXNlcnMgdG8gb3ZlcnJpZGUgdGhpcyBpbgotCX4vLmZvbnRzLmNvbmYKLQkqIGRlYmlhbi9wby9jcy5wbzoKLQkqIGRlYmlhbi9wby9kYS5wbzoKLQkqIGRlYmlhbi9wby9kZS5wbzoKLQkqIGRlYmlhbi9wby9lcy5wbzoKLQkqIGRlYmlhbi9wby9mci5wbzoKLQkqIGRlYmlhbi9wby9qYS5wbzoKLQkqIGRlYmlhbi9wby9ubC5wbzoKLQkqIGRlYmlhbi9wby9wdC5wbzoKLQkqIGRlYmlhbi9wby9wdF9CUi5wbzoKLQkqIGRlYmlhbi9wby90ZW1wbGF0ZXMucG90OgotCSogZGViaWFuL3BvL3RyLnBvOgotCSogZGViaWFuL3BvL3poX0NOLnBvOgotCVVwZGF0ZWQgdHJhbnNsYXRpb25zCi0JCi0JKiBmYy1jYWNoZS9mYy1jYWNoZS5jOiAobWFpbik6Ci0JRGVzdHJveSBmb250IGNvbmZpZ3VyYXRpb24gb24gZXhpdCB0byBoZWxwIHZhbGdyaW5kCi0JCi0JKiBmb250cy5jb25mLmluOgotCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjU2ZudE5hbWVUcmFuc2NvZGUpLCAoRmNGcmVlVHlwZUNoYXJJbmRleCksCi0JKEZjRnJlZVR5cGVDaGVja0dseXBoKToKLQlVc2Ugb3duIHRyYW5zY29kaW5nIHJvdXRpbmVzIGluIHByZWZlcmVuY2UgdG8gaWNvbnYKLQl3aGljaCBhcHBlYXJzIHRvIGhhdmUgbGVha3MgaW4gc29tZSB0cmFuc2xhdG9ycy4KLQlDYWxsIGljb252X2Nsb3NlIGFmdGVyIHVzaW5nIGljb252IChvb3BzKS4KLQkKLQlQcmVmZXIgdW5pY29kZSBlbmNvZGluZyBvZiBFdXJvIGNoYXIgYXMgc29tZQotCWZvbnRzIG1pcy1lbmNvZGUgRXVybyBpbiBvdGhlciBvbmVzLgotCi0JTXVzdCBmZXRjaCBiaXRtYXAgZ2x5cGhzIHRvIGdldCB3aWR0aCB2YWx1ZXMKLQl0byBjaGVjayBmb3IgbW9ub3NwYWNlL2R1YWwtd2lkdGggZm9udHMuCi0KLTIwMDUtMDQtMTMgIFJvc3MgQnVydG9uICA8cm9zc0BidXJ0b25pbmkuY29tPgotCi0JKiBzcmMvZmNwYXQuYzoKLQlDaGVjayB0aGF0IGEgcGF0dGVybiBpc24ndCBhbHJlYWR5IGZyb3plbiBpbiBGY1BhdHRlcm5GcmVlemUuCi0KLTIwMDUtMDMtMzEgIFJvc3MgQnVydG9uICA8cm9zc0BidXJ0b25pbmkuY29tPgotCi0JKiBzcmMvZmNsaXN0LmM6Ci0JKiBzcmMvZmNtYXRjaC5jOgotCSogc3JjL2ZjcGF0LmM6Ci0JUnVuIGFsbCBGY1BhdHRlcm4gb2JqZWN0cyB0aHJvdWdoIEZjT2JqZWN0U3RhdGljTmFtZSwgc28gdGhhdAotCWNvbXBhcmVzIGNhbiBiZSBkb25lIG9uIHBvaW50ZXJzIGluc3RlYWQgb2Ygc3RyaW5ncyAoIzI2NTkpCi0KLTIwMDUtMDMtMTcgIFRvciBMaWxscXZpc3QgIDx0bWxAbm92ZWxsLmNvbT4KLQotCSogc3JjL2ZvbnRjb25maWcuZGVmLmluOiBBZGQgdGhlIC5kbGwgdG8gdGhlIGRsbCBuYW1lLgotCi0yMDA1LTAzLTEwICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGRlYmlhbi9SRUFETUUuRGViaWFuOgotCVVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ3VyYXRpb24gY2hhbmdlcwotCSogZGViaWFuL2NoYW5nZWxvZzoKLQkqIGRlYmlhbi9mb250Y29uZmlnLnBvc3RpbnN0OgotCUZpeCBBdXRvaGludCB2cyBBdXRvaGludGVyIG1pc3Rha2UKLQkqIGRlYmlhbi9mb250Y29uZmlnLnRlbXBsYXRlczoKLQlBZG9wdCBjaGFuZ2VzIGZyb20gSm9zc2VsaW4gTW91ZXR0ZSBmb3IgY29uZmlndXJhdGlvbiBkZXNjcmlwdGlvbnMKLQlVcGRhdGUgZGViaWFuIHRvIHZlcnNpb24gMi4zLjEtMgotCi0yMDA1LTAzLTA4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6Ci0JKiBkZWJpYW4vcnVsZXM6Ci0JVXBkYXRlIGRlYmlhbiBmb3IgMi4zLjEKLQotMjAwNS0wMy0wOSAgVG9yIExpbGxxdmlzdCAgPHRtbEBub3ZlbGwuY29tPgotCi0JKiBmb250Y29uZmlnLXppcC5pbjogR2V0IHRoZSBETEwgZnJvbSAiYmluIiB3aGVyZSBtb2Rlcm4gbGlidG9vbHMKLQlwdXQgaXQsIG5vdCAibGliIi4KLQotCSogc3JjL2ZjY2ZnLmMgKEZjQ29uZmlnRmlsZUV4aXN0cyk6IENoZWNrIGFsc28gZHJpdmUgbGV0dGVyCi0JcHJlZml4IG9uIFdpbjMyLgotCi0yMDA1LTAzLTA4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSBmb3IgMi4zLjEKLQotMjAwNS0wMy0wNSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBzcmMvZmNmcmVldHlwZS5jOiAoYWRkdGFnKSwgKEZjRm9udENhcGFiaWxpdGllcyk6Ci0JSW5jbHVkZSBzcGFjZSBhbmQgcmVtb3ZlIG51bWJlcnMgZnJvbSB2YWxpZCBzY3JpcHQgdGFncy4KLQlUaGlzIGVuc3VyZXMgdGhhdCB0YWdzIGxpa2UgJ2xhbyAnIHdvcmsgd2hpbGUgcmVqZWN0aW5nCi0JdGhvc2Ugd2hpY2ggaGF2ZSBhbnkgZGlnaXRzLgotCUVsaW1pbmF0ZSBhIHNwdXJpb3VzIGRlYnVnZ2luZyB2YXJpYWJsZSAobGVuKQotCi0yMDA1LTAzLTA1ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChhZGR0YWcpLCAoR2V0U2NyaXB0VGFncyksCi0JKEZjRm9udENhcGFiaWxpdGllcyk6Ci0JUmV3b3JrIEdTVUIvR1BPUyBzY3JpcHQgcGFyc2luZyB0byBzdXJ2aXZlIGJyb2tlbiBmb250cy4KLQlUaGFua3MgZm9yIHRoZSBicm9rZW4gZm9udCBnbyB0byBNYW5pc2ggU2luZ2gKLQotMjAwNS0wMy0wNSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JSm9zc2VsaW4gTW91ZXR0ZToKLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6Ci0JKiBkZWJpYW4vY29udHJvbDoKLQkqIGRlYmlhbi9mb250Y29uZmlnLmNvbmZpZzoKLQkqIGRlYmlhbi9mb250Y29uZmlnLnRlbXBsYXRlczoKLQkqIGRlYmlhbi9ydWxlczoKLQkJSW5jbHVkZSAyLjMgcmVsZWFzZSBpbmZvcm1hdGlvbiBpbiBjaGFuZ2Vsb2cKLQkJQWRkIEpvc3NlbGluIE1vdWV0dGUgYXMgYW4gVXBsb2FkZXIKLQkJU2V0IGhpbnRpbmdfdHlwZSB0byBsb3cgcHJpb3JpdHkgY29uZmlndXJhdGlvbiBvcHRpb24KLQkJCi0JTWFuaXNoIFNpbmdoOgotCSogZGViaWFuL2ZvbnRjb25maWcucG9zdGluc3Q6Ci0JCXllc19iaXRtYXBzLmNvbmYgLT4geWVzLWJpdG1hcHMuY29uZgotCQkKLQlGdW5kYSBXYW5nOgotCSogc3JjL2ZjZnJlZXR5cGUuYzoKLQkJSm9oYXAgLT4gSm9oYWIKLQkJCi0yMDA1LTAzLTAyICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogY29uZi5kL01ha2VmaWxlLmFtOgotCSogY29uZi5kL2F1dG9oaW50LmNvbmY6Ci0JKiBjb25mLmQvbm8tc3ViLXBpeGVsLmNvbmY6Ci0JKiBjb25mLmQvc3ViLXBpeGVsLmNvbmY6Ci0JKiBjb25mLmQvdW5oaW50ZWQuY29uZjoKLQkqIGRlYmlhbi9hdXRvaGludC5jb25mOgotCSogZGViaWFuL2ZvbnRjb25maWcuaW5zdGFsbDoKLQkqIGRlYmlhbi9mb250Y29uZmlnLnBvc3RpbnN0OgotCSogZGViaWFuL2ZvbnRjb25maWcudGVtcGxhdGVzOgotCSogZGViaWFuL25vLXN1Yi1waXhlbC5jb25mOgotCSogZGViaWFuL3VuaGludGVkLmNvbmY6Ci0JTW92ZSBkZWJpYW4tc3BlY2lmaWMgY29uZiBmaWxlIGV4YW1wbGVzIHVwc3RyZWFtLgotCQotCVN1Yi1waXhlbCBjb25maWd1cmF0aW9uIGV4YW1wbGVzIG11c3Qgc21hc2ggc3VicGl4ZWwgdmFsdWUKLQlhcyBYZnQgYWx3YXlzIHNldHMgaXQgZnJvbSBYLgotCi0JQ2hhbmdlIHN1Yi1waXhlbCByZW5kZXJpbmcgZGViY29uZiBkZXNjcmlwdGlvbnMgZnJvbQotCUVuYWJsZS9EaXNhYmxlIHRvIEFsd2F5cy9OZXZlci4KLQotMjAwNS0wMy0wMiAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiAuY3ZzaWdub3JlOgotCSogY29uZi5kLy5jdnNpZ25vcmU6Ci0JKiBkb2MvLmN2c2lnbm9yZToKLQlJZ25vcmUgbW9yZSBidWlsZCBkZXRyaXR1cwotCi0JKiBNYWtlZmlsZS5hbToKLQlBZGQgZGViaWFuIHBhY2thZ2UgY29uc3RydWN0aW9uIHN0dWZmLgotCQotCSogY29uZmlnL2NvbmZpZy5ndWVzczoKLQkqIGNvbmZpZy9jb25maWcuc3ViOgotCVVwZGF0ZSB0byBuZXdlciB2ZXJzaW9ucyBvZiB0aGVzZSB0b29scwotCQotCSogZG9jL01ha2VmaWxlLmFtOgotCUdldCBsaWJyYXJ5IG1hbnVhbHMgdG8gYnVpbGQgYWdhaW4gKHdlIGxvdmUgYXV0b21ha2UpLgotCQotCSogZGViaWFuL1JFQURNRS5EZWJpYW46Ci0JKiBkZWJpYW4vYXV0b2hpbnQuY29uZjoKLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6Ci0JKiBkZWJpYW4vY29tcGF0OgotCSogZGViaWFuL2NvbnRyb2w6Ci0JKiBkZWJpYW4vY29weXJpZ2h0OgotCSogZGViaWFuL2ZvbnRjb25maWctdWRlYi5pbnN0YWxsOgotCSogZGViaWFuL2ZvbnRjb25maWcuY29uZmlnOgotCSogZGViaWFuL2ZvbnRjb25maWcuZGVmb21hOgotCSogZGViaWFuL2ZvbnRjb25maWcuZGlyczoKLQkqIGRlYmlhbi9mb250Y29uZmlnLmluc3RhbGw6Ci0JKiBkZWJpYW4vZm9udGNvbmZpZy5wb3N0aW5zdDoKLQkqIGRlYmlhbi9mb250Y29uZmlnLnBvc3RybToKLQkqIGRlYmlhbi9mb250Y29uZmlnLnRlbXBsYXRlczoKLQkqIGRlYmlhbi9saWJmb250Y29uZmlnMS1kZXYuaW5zdGFsbDoKLQkqIGRlYmlhbi9saWJmb250Y29uZmlnMS5pbnN0YWxsOgotCSogZGViaWFuL2xvY2FsLmNvbmYubWQ1c3VtOgotCSogZGViaWFuL25vLXN1Yi1waXhlbC5jb25mOgotCSogZGViaWFuL3BvL1BPVEZJTEVTLmluOgotCSogZGViaWFuL3BvL2NzLnBvOgotCSogZGViaWFuL3BvL2RhLnBvOgotCSogZGViaWFuL3BvL2RlLnBvOgotCSogZGViaWFuL3BvL2VzLnBvOgotCSogZGViaWFuL3BvL2ZyLnBvOgotCSogZGViaWFuL3BvL2phLnBvOgotCSogZGViaWFuL3BvL25sLnBvOgotCSogZGViaWFuL3BvL3B0LnBvOgotCSogZGViaWFuL3BvL3B0X0JSLnBvOgotCSogZGViaWFuL3BvL3RlbXBsYXRlcy5wb3Q6Ci0JKiBkZWJpYW4vcG8vdHIucG86Ci0JKiBkZWJpYW4vcG8vemhfQ04ucG86Ci0JKiBkZWJpYW4vcnVsZXM6Ci0JKiBkZWJpYW4vdW5oaW50ZWQuY29uZjoKLQlVcGRhdGUgZGViaWFuIGJ1aWxkIHN5c3RlbSB0byBzd2l0Y2ggbWFpbnRhaW5lcnMgYW5kCi0JZGVhbCB3aXRoIDIuMyBmdW5jdGlvbmFsaXR5Ci0KLTIwMDUtMDMtMDEgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogUkVBRE1FOgotCSogY29uZmlndXJlLmluOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JVXBkYXRlIGZvciAyLjMuMAotCi0yMDA1LTAzLTAxICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGRvYy9NYWtlZmlsZS5hbToKLQlHZW5lcmF0ZSBhbmQgaW5zdGFsbCBQREYgdmVyc2lvbnMgb2YgdGhlIG1hbnVhbHMKLQotCSogZG9jL2ZjcGF0dGVybi5mbmNzOgotCUZpeCBmb3JtYXR0aW5nCi0JCi0JKiBkb2MvZmNzdHJpbmcuZm5jczoKLQlBZGQgbWlzc2luZyBleHBvcnRlZCBmdW5jdGlvbnMsIGZpeCBkYXRhIHR5cGVzCi0JCi0JKiBkb2MvZm9udGNvbmZpZy1kZXZlbC5zZ21sOgotCUFkZCBtaXNzaW5nIHBhdHRlcm4gZWxlbWVudHMuCi0JCi0JKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6Ci0JQWRkIG1pc3NpbmcgcGF0dGVybiBlbGVtZW50cy4gIERvY3VtZW50IGNvbmYuZCB1c2FnZSwKLQljbGFyaWZ5IGF2YWlsYWJsZSBvcnRob2dyYXBoeSBsaXN0LiAgRml4IHNvbWUgY29uZmlnIGZpbGUKLQlhdHRyaWJ1dGVzLiAgQ29tcGxldGUgbGlzdCBvZiBjb25zdGFudHMuCi0JCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQlNYXJrIEZDX1NPVVJDRSBkZXByZWNhdGVkLgotCQotCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjRnJlZVR5cGVRdWVyeSk6Ci0JRG9uJ3Qgc2V0IEZDX1NPVVJDRSBhbnkgbG9uZ2VyLgotCi0yMDA1LTAyLTI4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogY29uZi5kL01ha2VmaWxlLmFtOgotCSogY29uZi5kL1JFQURNRToKLQkqIGNvbmYuZC9uby1iaXRtYXBzLmNvbmY6Ci0JKiBjb25mLmQvc3ViLXBpeGVsLmNvbmY6Ci0JKiBjb25mLmQveWVzLWJpdG1hcHMuY29uZjoKLQkqIGNvbmZpZ3VyZS5pbjoKLQlDcmVhdGUgcHJvdG90eXBlIC9ldGMvZm9udHMvY29uZi5kIGRpcmVjdG9yeSB3aXRoIGEgZmV3Ci0Jc2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0JRGVwcmVjYXRlIHVzZSBvZiBsb2NhbC5jb25mIGZvciBsb2NhbCBjdXN0b21pemF0aW9ucyBpbiBmYXZvciBvZgotCXRoaXMgZGlyZWN0b3J5IGJhc2VkIHNjaGVtZSB3aGljaCBpcyBtb3JlIGVhc2lseSBpbnRlZ3JhdGVkIGludG8KLQlpbnN0YWxsYXRpb24gc3lzdGVtcy4KLQkKLQkqIHNyYy9mY25hbWUuYzoKLQlUYWcgRkNfRU1CT0xERU4gYXMgYSBib29sZWFuIHZhcmlhYmxlCi0KLTIwMDUtMDItMTAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCXJldmlld2VkIGJ5OiBwYm9yZWxsaUBrYXRhbWFpbC5jb20KLQotCSogc3JjL2ZjZGlyLmM6IChGY0ZpbGVTY2FuQ29uZmlnKToKLQlGcmVlIHBhdHRlcm5zIGZyb20gZm9udHMgd2hpY2ggYXJlIHJlamVjdGVkIGJ5IGNvbmZpZ3VyYXRpb24KLQkoYnVnICMyNTE4KQotCi0yMDA1LTAxLTI4ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSBmb3IgdmVyc2lvbiAyLjIuOTkKLQotMjAwNS0wMS0yOCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBSRUFETUU6Ci0JQWRkIGEgZmV3IHBvaW50ZXJzICgjMjI4NCwgIzIyODUpCi0KLTIwMDUtMDEtMjggIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNuYW1lLmM6IChGY05hbWVCb29sKToKLQkqIHNyYy9mY3htbC5jOiAoRmNUeXBlTmFtZSksIChGY1R5cGVjaGVja1ZhbHVlKSwgKEZjVHlwZWNoZWNrRXhwciksCi0JKEZjVGVzdENyZWF0ZSksIChGY0VkaXRDcmVhdGUpLCAoRmNDb25maWdMZXhCb29sKSwgKEZjUGFyc2VCb29sKSwKLQkoRmNQYXJzZUFsaWFzKSwgKEZjUGFyc2VJbmNsdWRlKSwgKEZjUGFyc2VUZXN0KSwgKEZjUGFyc2VFZGl0KToKLQlQb2xpdGUgdHlwZWNoZWNraW5nIGZvciB0ZXN0IGFuZCBlZGl0IGV4cHJlc3Npb25zLiAgSGVscHMKLQljYXRjaCBlcnJvcnMgaW4gdGhlIGZvbnQgY29uZmlndXJhdGlvbi4gKGJ1ZyAyMjkpCi0KLTIwMDUtMDEtMTUgIEFsYW4gQ29vcGVyc21pdGggPGFsYW4uY29vcGVyc21pdGhAc3VuLmNvbT4KLQotCXJldmlld2VkIGJ5OiBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogY29uZmlndXJlLmluOgotCUhhdmUgLS13aXRoLWV4cGF0IHNldCBFWFBBVF9DRkxBR1MgKGJ1ZyAyMjc4KQotCi0yMDA1LTAxLTEzICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKLQlBZGQgU0VFIEFMU08gc2VjdGlvbiAoYnVnIDIwODUpCi0JCi0yMDA1LTAxLTEzICBKLiBBbGkgSGFybG93IDxhbGlAanVpYmxleC5jby51az4KLQotCXJldmlld2VkIGJ5OiBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogY29uZmlndXJlLmluOgotCSogZG9jL01ha2VmaWxlLmFtOgotCSogZmMtY2FzZS9NYWtlZmlsZS5hbToKLQkqIGZjLWdseXBobmFtZS9NYWtlZmlsZS5hbToKLQkqIGZjLWxhbmcvTWFrZWZpbGUuYW06Ci0JKiBzcmMvZm9udGNvbmZpZy5kZWYuaW46Ci0JQ3Jvc3MgY29tcGlsaW5nIGZpeGVzIChidWcgMjgwKQotCi0yMDA1LTAxLTEzICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGZvbnRzLmNvbmYuaW46Ci0JVXBkYXRlIGJsYW5rcyBsaXN0IChDbG9zZXMgYnVnIDg2KQotCi0yMDA1LTAxLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIHNyYy9mY2NhY2hlLmM6IChGY0NhY2hlRm9udFNldEFkZCk6Ci0JVmVyaWZ5IHRoYXQgZXZlcnkgZm9udCBwYXR0ZXJuIGxvYWRlZCBmcm9tIGNhY2hlIGhhcwotCWJvdGggRkNfRklMRSBhbmQgRkNfRkFNSUxZIGVudHJpZXMuCi0JQXR0ZW1wdCB0byBmaXggYnVnICMyMjE5LgotCi0yMDA0LTEyLTI5ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSBmb3IgdmVyc2lvbiAyLjIuOTgKLQotMjAwNC0xMi0yOSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQlEb2N1bWVudCBBU0NJSSBsaW1pdGF0aW9ucyBvZiBGYyBjaGFyYWN0ZXIgY29udmVyc2lvbiBtYWNyb3MKLQkqIHNyYy9mY3N0ci5jOiAoRmNTdHJDYXNlV2Fsa2VyTG9uZyksIChGY1N0ckRvd25jYXNlKToKLQlGaXggb2ZmLWJ5LW9uZSBlcnJvciBpbiB1dGYtOCBjYXNlIHdhbGtpbmcgY29kZS4KLQlBZGQgRmNTdHJEb3duY2FzZSAodXNlZnVsIGZvciB0ZXN0aW5nIGNhc2UgY29udmVyc2lvbiBmdW5jdGlvbnMpCi0KLTIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogLmN2c2lnbm9yZToKLQkqIGZjLWNhc2UvLmN2c2lnbm9yZToKLQljbGVhbiB1cCBDVlMgaWdub3JlIGxpc3RzCi0JKiBmYy1sYW5nL2lzby0zMTY2LnR4dDoKLQlBZGQgdGVycml0b3J5IGRhdGFiYXNlCi0JCi0yMDA0LTEyLTI5ICAgVG9yIEFuZGVyc3NvbiA8dG9yLmFuZGVyc3NvbkBnbWFpbC5jb20+Ci0KLQlSZXZpZXdlZCBieTogS2VpdGggUGFja2FyZAotCQotCSogZmMtbGFuZy9rby5vcnRoOgotCVJlbW92ZSBIYW4gY2hhcmFjdGVycyBmcm9tIEtvcmVhbiBvcnRob2dyYXBoeQotCi0yMDA0LTEyLTI5ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCVJlb3JkZXIgdXRpbGl0eSBwcm9ncmFtcyB0byBtYWtlIHN1cmUgZmMtY2FzZSBpcyBydW4gYmVmb3JlIGZjLWxhbmcKLQlhcyBmYy1sYW5nIHVzZXMgZmNzdHIuYyB3aGljaCB1c2VzIGZjY2FzZS5oCi0JKiBmb250cy5jb25mLmluOgotCUZpeCBicm9rZW4gWE1MCi0KLTIwMDQtMTItMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZm9udHMuY29uZi5pbjoKLQlBZG9wdCBzb21lIFJlZEhhdCBzdWdnZXN0aW9ucyBmb3Igc3RhbmRhcmQgZm9udCBjb25maWd1cmF0aW9uLgotCi0JKiBNYWtlZmlsZS5hbToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZjLWNhc2UvQ2FzZUZvbGRpbmcudHh0OgotCSogZmMtY2FzZS9NYWtlZmlsZS5hbToKLQkqIGZjLWNhc2UvZmMtY2FzZS5jOiAocGFuaWMpLCAoYWRkRm9sZCksICh1Y3M0X3RvX3V0ZjgpLAotCSh1dGY4X3NpemUpLCAoYWRkQ2hhciksIChmb2xkRXh0ZW5kcyksIChjYXNlX2ZvbGRfbWV0aG9kX25hbWUpLAotCShkdW1wKSwgKHBhcnNlUmF3KSwgKGNhc2VGb2xkUmVhZFJhdyksIChtYWluKToKLQkqIGZjLWNhc2UvZmNjYXNlLnRtcGwuaDoKLQlBZGQgbmV3IGhlbHBlciBwcm9ncmFtICdmYy1jYXNlJyB0byBjb25zdHJ1Y3QgY2FzZSBmb2xkaW5nCi0JdGFibGVzIGZyb20gc3RhbmRhcmQgVW5pY29kZSBDYXNlRm9sZGluZy50eHQgZmlsZQotCQotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNsaXN0LmM6IChGY0xpc3RWYWx1ZUhhc2gpOgotCSogc3JjL2Zjc3RyLmM6IChGY1N0ckNhc2VXYWxrZXJJbml0KSwgKEZjU3RyQ2FzZVdhbGtlckxvbmcpLAotCShGY1N0ckNhc2VXYWxrZXJOZXh0KSwgKEZjU3RyQ2FzZVdhbGtlck5leHRJZ25vcmVCbGFua3MpLAotCShGY1N0ckNtcElnbm9yZUNhc2UpLCAoRmNTdHJDbXBJZ25vcmVCbGFua3NBbmRDYXNlKSwKLQkoRmNTdHJIYXNoSWdub3JlQ2FzZSksIChGY1N0cklzQXRJZ25vcmVCbGFua3NBbmRDYXNlKSwKLQkoRmNTdHJJc0F0SWdub3JlQ2FzZSksIChGY1N0clN0cklnbm9yZUNhc2UpOgotCVJlLWltcGxlbWVudCBjYXNlIGluc2Vuc2l0aXZlIGZ1bmN0aW9ucyB3aXRoIFVuaWNvZGUKLQlhd2FyZSB2ZXJzaW9ucyAoaW5jbHVkaW5nIGZ1bGwgY2FzZSBmb2xkaW5nIG1hcHBpbmdzKQotCi0yMDA0LTEyLTEzICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQlyZXZpZXdlZCBieTogT3dlbiBUYXlsb3IgPG90YXlsb3JAcmVkaGF0LmNvbT4KLQotCSogc3JjL2ZjbWF0Y2guYzogKEZjRm9udFNldFNvcnQpOgotCUkgY2hhbmdlZCBGY0ZvbnRTZXRTb3J0IHRvIHJlc3BlY3QgdGhlIGdlbmVyaWMgYWxpYXNlcyBiZXR0ZXIKLQlpbiB0aGUgZmFjZSBvZiBsYW5ndWFnZSBtYXRjaGluZy4KLQkKLQlXaGF0IEkgZGlkIHdhcyB0byBhbW1lbmQgdGhlIHN0cmljdCBzb3J0IG9yZGVyIHVzZWQgYnkgRmNGb250U29ydCBzbwotCXRoYXQgaXQgJ3NhdGlzZmllcycgdGhlIGxhbmd1YWdlIHNwZWNpZmllZCBpbiB0aGUgcGF0dGVybiBieSBsb2NhdGluZwotCXRoZSBiZXN0IG1hdGNoaW5nIGZvbnQgc3VwcG9ydGluZyBlYWNoIHBhdHRlcm4gbGFuZ3VhZ2UgYW5kIHRoZW4KLQlpZ25vcmVzIGxhbmd1YWdlIGluIHRoZSByZW1haW5pbmcgZm9udHMgZm9yIHB1cnBvc2VzIG9mIG1hdGNoaW5nLgotCi0JU28sIHdoZW4gYXNraW5nIGZvciAnc2FuczpsYW5nPWVuJywgeW91J2xsIGdldCBhbiBFbmdsaXNoIGZvbnQgZmlyc3QsCi0JYW5kIHRoZW4gdGhlIHJlbWFpbmluZyBmb250cyBzb3J0ZWQgd2l0aCByZXNwZWN0IHRvIHRoZSAnc2FucycgYWxpYXMKLQlhbG9uZSAtLSBwdXNoaW5nIEtvY2hpIGZvbnRzIGFoZWFkIG9mIG90aGVyIEVuZ2xpc2gtc3VwcG9ydGluZyBIYW4gZm9udHMuCi0KLTIwMDQtMTItMTAgIEpha3ViIFBhdmVsZWsgPGpha3ViLnBhdmVsZWtAbm9raWEuY29tPgotCi0JcmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JKiBmb250cy5jb25mLmluOgotCi0JQ29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIHJlcXVlc3Qgc3ludGhldGljIGVtYm9sZGVuaW5nIG9mCi0JZm9udHMuICBUaGUgYWN0dWFsIGVtYm9sZGVuaW5nIGNvZGUgd2lsbCBsaXZlIGluIFhmdC4KLQotMjAwNC0xMi0wOSAgSm9obiBUaGFja2VyIDx0aGFja2VyQG1hdGguY29ybmVsbC5lZHU+Ci0KLQlyZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBmYy1sYW5nL3J1Lm9ydGg6Ci0JCi0JQ3VycmVudGx5IFJ1c3NpYW4gKHJ1KSByZXF1aXJlcyAwNDA2IGFuZCAwNDU2ICjQhiBhbmQg0ZYpLCBidXQgdGhlc2UKLQl3ZXJlIGVsaW1pbmF0ZWQgaW4gUnVzc2lhbiBpbiAxOTE4IGluIGZhdm9yIG9mIDA0MTggYW5kIDA0MzggKNCYIGFuZAotCdC4KSwgYW5kIGRvbid0IGV2ZW4gYXBwZWFyIGluIEtPSTgtUi4gIChUaGUgaHlwb3RoZXNpcyB0aGF0IHRoZXkKLQlkb24ndCBhcHBlYXIgaW4gS09JOC1SIGR1ZSB0byB0aGVpciBzaW1pbGFyaXR5IHdpdGggTGF0aW4gSSBhbmQgaSBpcwotCWVsaW1pbmF0ZWQgYnkgdGhlaXIgcHJlc2VuY2UgaW4gS09JOC1VLikgIEkgaGF2ZSBhIGNvdXBsZSBvZiBmb250cwotCXdpdGggUnVzc2lhbiBzdXBwb3J0IHRoYXQgZG9uJ3QgaGF2ZSB0aGUgbGV0dGVyLgotCi0JVGhlcmVmb3JlLCAwNDA2IGFuZCAwNDU2IHNob3VsZCBiZSByZW1vdmVkIGZyb20gb3IgY29tbWVudGVkIG91dCBvZgotCXJ1Lm9ydGgKLQotMjAwNC0xMi0wNiAgbWljaGFlbCBtZWVrcyA8bW1lZWtzQG5vdmVsbC5jb20+Ci0KLQlSZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBzcmMvZmNpbml0LmM6IChGY01lbVJlcG9ydCk6Ci0JKiBzcmMvZmNpbnQuaDoKLQkqIHNyYy9mY2xpc3QuYzogKEZjT2JqZWN0U2V0QWRkKToKLQkqIHNyYy9mY3BhdC5jOiAoRmNWYWx1ZUxpc3RFbnRDcmVhdGUpLCAoRmNQYXR0ZXJuQmFzZUZyZWV6ZSksCi0JKEZjUGF0dGVybkluc2VydEVsdCksIChGY1BhdHRlcm5FcXVhbCksIChGY09iamVjdFN0YXRpY05hbWUpOgotCSogc3JjL2ZjeG1sLmM6IChGY1BhcnNlUGF0ZWx0KToKLQltZW1vaXplIHN0cmluZ3MgYW5kIHNoYXJlIGEgc2luZ2xlIGNvcHkgZm9yIGFsbCB1c2VzLiAgTm90ZSB0aGF0Ci0JdGhpcyBjb3VsZCBiZSBpbXByb3ZlZCBmdXJ0aGVyIGJ5IHVzaW5nIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGJsb2NrcwotCWFuZCBnbHVpbmcgbXVsdGlwbGUgc3RyaW5ncyB0b2dldGhlciwgYnV0IEknbSBiYXNpY2FsbHkgbGF6eS4KLQlJbiBteSBlbnZpcm9ubWVudCB3aXRoIDgwMCBmb250IGZpbGVzLCBJIGdldCBhIHNhdmluZ3Mgb2YgYWJvdXQgOTBLQi4KLQotMjAwNC0xMi0wNiAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBDT1BZSU5HOgotCSogTWFrZWZpbGUuYW06Ci0JKiBjb25maWcvTWFrZWRlZnMuaW46Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBkb2MvZWRpdC1zZ21sLmM6Ci0JKiBkb2MvZmNhdG9taWMuZm5jczoKLQkqIGRvYy9mY2JsYW5rcy5mbmNzOgotCSogZG9jL2ZjY2hhcnNldC5mbmNzOgotCSogZG9jL2ZjY29uZmlnLmZuY3M6Ci0JKiBkb2MvZmNjb25zdGFudC5mbmNzOgotCSogZG9jL2ZjZmlsZS5mbmNzOgotCSogZG9jL2ZjZm9udHNldC5mbmNzOgotCSogZG9jL2ZjZnJlZXR5cGUuZm5jczoKLQkqIGRvYy9mY2luaXQuZm5jczoKLQkqIGRvYy9mY21hdHJpeC5mbmNzOgotCSogZG9jL2Zjb2JqZWN0c2V0LmZuY3M6Ci0JKiBkb2MvZmNvYmplY3R0eXBlLmZuY3M6Ci0JKiBkb2MvZmNwYXR0ZXJuLmZuY3M6Ci0JKiBkb2MvZmNzdHJpbmcuZm5jczoKLQkqIGRvYy9mY3N0cnNldC5mbmNzOgotCSogZG9jL2ZjdmFsdWUuZm5jczoKLQkqIGRvYy9mb250Y29uZmlnLWRldmVsLnNnbWw6Ci0JKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6Ci0JKiBkb2MvZnVuYy5zZ21sOgotCSogZG9jL3ZlcnNpb24uc2dtbC5pbjoKLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCSogZmMtY2FjaGUvZmMtY2FjaGUuYzoKLQkqIGZjLWdseXBobmFtZS9NYWtlZmlsZS5hbToKLQkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzoKLQkqIGZjLWdseXBobmFtZS9mY2dseXBobmFtZS50bXBsLmg6Ci0JKiBmYy1sYW5nL01ha2VmaWxlLmFtOgotCSogZmMtbGFuZy9hYS5vcnRoOgotCSogZmMtbGFuZy9hYi5vcnRoOgotCSogZmMtbGFuZy9hZi5vcnRoOgotCSogZmMtbGFuZy9hbS5vcnRoOgotCSogZmMtbGFuZy9hci5vcnRoOgotCSogZmMtbGFuZy9hc3Qub3J0aDoKLQkqIGZjLWxhbmcvYXZhLm9ydGg6Ci0JKiBmYy1sYW5nL2F5Lm9ydGg6Ci0JKiBmYy1sYW5nL2F6Lm9ydGg6Ci0JKiBmYy1sYW5nL2F6X2lyLm9ydGg6Ci0JKiBmYy1sYW5nL2JhLm9ydGg6Ci0JKiBmYy1sYW5nL2JhbS5vcnRoOgotCSogZmMtbGFuZy9iZS5vcnRoOgotCSogZmMtbGFuZy9iZy5vcnRoOgotCSogZmMtbGFuZy9iaC5vcnRoOgotCSogZmMtbGFuZy9iaG8ub3J0aDoKLQkqIGZjLWxhbmcvYmkub3J0aDoKLQkqIGZjLWxhbmcvYmluLm9ydGg6Ci0JKiBmYy1sYW5nL2JuLm9ydGg6Ci0JKiBmYy1sYW5nL2JvLm9ydGg6Ci0JKiBmYy1sYW5nL2JyLm9ydGg6Ci0JKiBmYy1sYW5nL2JzLm9ydGg6Ci0JKiBmYy1sYW5nL2J1YS5vcnRoOgotCSogZmMtbGFuZy9jYS5vcnRoOgotCSogZmMtbGFuZy9jZS5vcnRoOgotCSogZmMtbGFuZy9jaC5vcnRoOgotCSogZmMtbGFuZy9jaG0ub3J0aDoKLQkqIGZjLWxhbmcvY2hyLm9ydGg6Ci0JKiBmYy1sYW5nL2NvLm9ydGg6Ci0JKiBmYy1sYW5nL2NzLm9ydGg6Ci0JKiBmYy1sYW5nL2N1Lm9ydGg6Ci0JKiBmYy1sYW5nL2N2Lm9ydGg6Ci0JKiBmYy1sYW5nL2N5Lm9ydGg6Ci0JKiBmYy1sYW5nL2RhLm9ydGg6Ci0JKiBmYy1sYW5nL2RlLm9ydGg6Ci0JKiBmYy1sYW5nL2R6Lm9ydGg6Ci0JKiBmYy1sYW5nL2VsLm9ydGg6Ci0JKiBmYy1sYW5nL2VuLm9ydGg6Ci0JKiBmYy1sYW5nL2VvLm9ydGg6Ci0JKiBmYy1sYW5nL2VzLm9ydGg6Ci0JKiBmYy1sYW5nL2V0Lm9ydGg6Ci0JKiBmYy1sYW5nL2V1Lm9ydGg6Ci0JKiBmYy1sYW5nL2ZhLm9ydGg6Ci0JKiBmYy1sYW5nL2ZjLWxhbmcuYzoKLQkqIGZjLWxhbmcvZmMtbGFuZy5tYW46Ci0JKiBmYy1sYW5nL2ZjbGFuZy50bXBsLmg6Ci0JKiBmYy1sYW5nL2ZpLm9ydGg6Ci0JKiBmYy1sYW5nL2ZqLm9ydGg6Ci0JKiBmYy1sYW5nL2ZvLm9ydGg6Ci0JKiBmYy1sYW5nL2ZyLm9ydGg6Ci0JKiBmYy1sYW5nL2Z1bC5vcnRoOgotCSogZmMtbGFuZy9mdXIub3J0aDoKLQkqIGZjLWxhbmcvZnkub3J0aDoKLQkqIGZjLWxhbmcvZ2Eub3J0aDoKLQkqIGZjLWxhbmcvZ2Qub3J0aDoKLQkqIGZjLWxhbmcvZ2V6Lm9ydGg6Ci0JKiBmYy1sYW5nL2dsLm9ydGg6Ci0JKiBmYy1sYW5nL2duLm9ydGg6Ci0JKiBmYy1sYW5nL2d1Lm9ydGg6Ci0JKiBmYy1sYW5nL2d2Lm9ydGg6Ci0JKiBmYy1sYW5nL2hhLm9ydGg6Ci0JKiBmYy1sYW5nL2hhdy5vcnRoOgotCSogZmMtbGFuZy9oZS5vcnRoOgotCSogZmMtbGFuZy9oaS5vcnRoOgotCSogZmMtbGFuZy9oby5vcnRoOgotCSogZmMtbGFuZy9oci5vcnRoOgotCSogZmMtbGFuZy9odS5vcnRoOgotCSogZmMtbGFuZy9oeS5vcnRoOgotCSogZmMtbGFuZy9pYS5vcnRoOgotCSogZmMtbGFuZy9pYm8ub3J0aDoKLQkqIGZjLWxhbmcvaWQub3J0aDoKLQkqIGZjLWxhbmcvaWUub3J0aDoKLQkqIGZjLWxhbmcvaWsub3J0aDoKLQkqIGZjLWxhbmcvaW8ub3J0aDoKLQkqIGZjLWxhbmcvaXMub3J0aDoKLQkqIGZjLWxhbmcvaXNvNjM5LTI6Ci0JKiBmYy1sYW5nL2l0Lm9ydGg6Ci0JKiBmYy1sYW5nL2l1Lm9ydGg6Ci0JKiBmYy1sYW5nL2phLm9ydGg6Ci0JKiBmYy1sYW5nL2thLm9ydGg6Ci0JKiBmYy1sYW5nL2thYS5vcnRoOgotCSogZmMtbGFuZy9raS5vcnRoOgotCSogZmMtbGFuZy9ray5vcnRoOgotCSogZmMtbGFuZy9rbC5vcnRoOgotCSogZmMtbGFuZy9rbS5vcnRoOgotCSogZmMtbGFuZy9rbi5vcnRoOgotCSogZmMtbGFuZy9rby5vcnRoOgotCSogZmMtbGFuZy9rb2sub3J0aDoKLQkqIGZjLWxhbmcva3Mub3J0aDoKLQkqIGZjLWxhbmcva3Uub3J0aDoKLQkqIGZjLWxhbmcva3VfaXIub3J0aDoKLQkqIGZjLWxhbmcva3VtLm9ydGg6Ci0JKiBmYy1sYW5nL2t2Lm9ydGg6Ci0JKiBmYy1sYW5nL2t3Lm9ydGg6Ci0JKiBmYy1sYW5nL2t5Lm9ydGg6Ci0JKiBmYy1sYW5nL2xhLm9ydGg6Ci0JKiBmYy1sYW5nL2xiLm9ydGg6Ci0JKiBmYy1sYW5nL2xlei5vcnRoOgotCSogZmMtbGFuZy9sby5vcnRoOgotCSogZmMtbGFuZy9sdC5vcnRoOgotCSogZmMtbGFuZy9sdi5vcnRoOgotCSogZmMtbGFuZy9tZy5vcnRoOgotCSogZmMtbGFuZy9taC5vcnRoOgotCSogZmMtbGFuZy9taS5vcnRoOgotCSogZmMtbGFuZy9tay5vcnRoOgotCSogZmMtbGFuZy9tbC5vcnRoOgotCSogZmMtbGFuZy9tbi5vcnRoOgotCSogZmMtbGFuZy9tby5vcnRoOgotCSogZmMtbGFuZy9tci5vcnRoOgotCSogZmMtbGFuZy9tdC5vcnRoOgotCSogZmMtbGFuZy9teS5vcnRoOgotCSogZmMtbGFuZy9uYi5vcnRoOgotCSogZmMtbGFuZy9uZHMub3J0aDoKLQkqIGZjLWxhbmcvbmUub3J0aDoKLQkqIGZjLWxhbmcvbmwub3J0aDoKLQkqIGZjLWxhbmcvbm4ub3J0aDoKLQkqIGZjLWxhbmcvbm8ub3J0aDoKLQkqIGZjLWxhbmcvbnkub3J0aDoKLQkqIGZjLWxhbmcvb2Mub3J0aDoKLQkqIGZjLWxhbmcvb20ub3J0aDoKLQkqIGZjLWxhbmcvb3Iub3J0aDoKLQkqIGZjLWxhbmcvb3Mub3J0aDoKLQkqIGZjLWxhbmcvcGwub3J0aDoKLQkqIGZjLWxhbmcvcHNfYWYub3J0aDoKLQkqIGZjLWxhbmcvcHNfcGsub3J0aDoKLQkqIGZjLWxhbmcvcHQub3J0aDoKLQkqIGZjLWxhbmcvcm0ub3J0aDoKLQkqIGZjLWxhbmcvcm8ub3J0aDoKLQkqIGZjLWxhbmcvcnUub3J0aDoKLQkqIGZjLWxhbmcvc2Eub3J0aDoKLQkqIGZjLWxhbmcvc2FoLm9ydGg6Ci0JKiBmYy1sYW5nL3Njby5vcnRoOgotCSogZmMtbGFuZy9zZS5vcnRoOgotCSogZmMtbGFuZy9zZWwub3J0aDoKLQkqIGZjLWxhbmcvc2gub3J0aDoKLQkqIGZjLWxhbmcvc2kub3J0aDoKLQkqIGZjLWxhbmcvc2sub3J0aDoKLQkqIGZjLWxhbmcvc2wub3J0aDoKLQkqIGZjLWxhbmcvc20ub3J0aDoKLQkqIGZjLWxhbmcvc21hLm9ydGg6Ci0JKiBmYy1sYW5nL3Ntai5vcnRoOgotCSogZmMtbGFuZy9zbW4ub3J0aDoKLQkqIGZjLWxhbmcvc21zLm9ydGg6Ci0JKiBmYy1sYW5nL3NvLm9ydGg6Ci0JKiBmYy1sYW5nL3NxLm9ydGg6Ci0JKiBmYy1sYW5nL3NyLm9ydGg6Ci0JKiBmYy1sYW5nL3N2Lm9ydGg6Ci0JKiBmYy1sYW5nL3N3Lm9ydGg6Ci0JKiBmYy1sYW5nL3N5ci5vcnRoOgotCSogZmMtbGFuZy90YS5vcnRoOgotCSogZmMtbGFuZy90ZS5vcnRoOgotCSogZmMtbGFuZy90Zy5vcnRoOgotCSogZmMtbGFuZy90aC5vcnRoOgotCSogZmMtbGFuZy90aV9lci5vcnRoOgotCSogZmMtbGFuZy90aV9ldC5vcnRoOgotCSogZmMtbGFuZy90aWcub3J0aDoKLQkqIGZjLWxhbmcvdGsub3J0aDoKLQkqIGZjLWxhbmcvdGwub3J0aDoKLQkqIGZjLWxhbmcvdG4ub3J0aDoKLQkqIGZjLWxhbmcvdG8ub3J0aDoKLQkqIGZjLWxhbmcvdHIub3J0aDoKLQkqIGZjLWxhbmcvdHMub3J0aDoKLQkqIGZjLWxhbmcvdHQub3J0aDoKLQkqIGZjLWxhbmcvdHcub3J0aDoKLQkqIGZjLWxhbmcvdHl2Lm9ydGg6Ci0JKiBmYy1sYW5nL3VnLm9ydGg6Ci0JKiBmYy1sYW5nL3VrLm9ydGg6Ci0JKiBmYy1sYW5nL3VyLm9ydGg6Ci0JKiBmYy1sYW5nL3V6Lm9ydGg6Ci0JKiBmYy1sYW5nL3Zlbi5vcnRoOgotCSogZmMtbGFuZy92aS5vcnRoOgotCSogZmMtbGFuZy92by5vcnRoOgotCSogZmMtbGFuZy92b3Qub3J0aDoKLQkqIGZjLWxhbmcvd2Eub3J0aDoKLQkqIGZjLWxhbmcvd2VuLm9ydGg6Ci0JKiBmYy1sYW5nL3dvLm9ydGg6Ci0JKiBmYy1sYW5nL3hoLm9ydGg6Ci0JKiBmYy1sYW5nL3lhcC5vcnRoOgotCSogZmMtbGFuZy95aS5vcnRoOgotCSogZmMtbGFuZy95by5vcnRoOgotCSogZmMtbGFuZy96aF9jbi5vcnRoOgotCSogZmMtbGFuZy96aF9oay5vcnRoOgotCSogZmMtbGFuZy96aF9tby5vcnRoOgotCSogZmMtbGFuZy96aF9zZy5vcnRoOgotCSogZmMtbGFuZy96aF90dy5vcnRoOgotCSogZmMtbGFuZy96dS5vcnRoOgotCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKLQkqIGZjLWxpc3QvZmMtbGlzdC5jOgotCSogZmMtbWF0Y2gvTWFrZWZpbGUuYW06Ci0JKiBmYy1tYXRjaC9mYy1tYXRjaC4xOgotCSogZmMtbWF0Y2gvZmMtbWF0Y2guYzoKLQkqIGZvbnRjb25maWcvZmNmcmVldHlwZS5oOgotCSogZm9udGNvbmZpZy9mY3ByaXZhdGUuaDoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCSogc3JjL2ZjYXRvbWljLmM6Ci0JKiBzcmMvZmNibGFua3MuYzoKLQkqIHNyYy9mY2NhY2hlLmM6Ci0JKiBzcmMvZmNjZmcuYzoKLQkqIHNyYy9mY2NoYXJzZXQuYzoKLQkqIHNyYy9mY2RiZy5jOgotCSogc3JjL2ZjZGVmYXVsdC5jOgotCSogc3JjL2ZjZGlyLmM6Ci0JKiBzcmMvZmNmcmVldHlwZS5jOgotCSogc3JjL2ZjZnMuYzoKLQkqIHNyYy9mY2luaXQuYzoKLQkqIHNyYy9mY2ludC5oOgotCSogc3JjL2ZjbGFuZy5jOgotCSogc3JjL2ZjbGlzdC5jOgotCSogc3JjL2ZjbWF0Y2guYzoKLQkqIHNyYy9mY21hdHJpeC5jOgotCSogc3JjL2ZjbmFtZS5jOgotCSogc3JjL2ZjcGF0LmM6Ci0JKiBzcmMvZmNzdHIuYzoKLQkqIHNyYy9mY3htbC5jOgotCUNoYW5nZSBmaWxlcyBmcm9tIElTTy1MYXRpbi0xIHRvIFVURi04Ci0KLTIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogSU5TVEFMTDoKLQlVcGRhdGUgbGlua3MgdG8gbmV3IGZyZWVkZXNrdG9wLm9yZyBsb2NhdGlvbnMKLQkqIE1ha2VmaWxlLmFtOgotCUFkZCB1bmluc3RhbGwtbG9jYWwgdG8gZ2V0IHJpZCBvZiBmb250cy5jb25mIGFuZCBsb2NhbC5jb25mIGlmIHRoZXkKLQltYXRjaCB0aGUgZGlzdHJpYnV0ZWQgdmVyc2lvbnMuICBGaXhlcyAnbWFrZSBkaXN0Y2hlY2snCi0KLTIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogUkVBRE1FOgotCSogY29uZmlndXJlLmluOgotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JVXBkYXRlcyBmb3IgdmVyc2lvbiAyLjIuOTcKLQotMjAwNC0xMi0wNCAgT3dlbiBUYXlsb3IgIDxvdGF5bG9yQHJlZGhhdC5jb20+Ci0KLQlyZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBmYy1jYWNoZS9mYy1jYWNoZS5jOiAobWFpbik6Ci0JU2xlZXAgZm9yIHR3byBzZWNvbmRzIGJlZm9yZSBleGl0aW5nIHRvIG1ha2Ugc3VyZSB0aW1lc3RhbXBzCi0JZm9yIGZ1dHVyZSBjaGFuZ2VzIGhhdmUgZGlzdGluY3QgbW9kIHRpbWVzIGluIHRoZSBmaWxlIHN5c3RlbS4KLQlCdWcgIzE5ODIuCi0JKiBmYy1sYW5nL3BhLm9ydGg6Ci0JQWRkIFB1bmphYmkgb3J0aG9ncmFwaHkuICBCdWcgIzE2NzEuCi0KLTIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZm9udHMuY29uZi5pbjoKLQlKdXN0IHJlbW92ZSB0aGUgRkNfRk9OVERBVEUgLS0gaXQgaGFzIGxvY2FsZSBpc3N1ZXMgYW5kCi0JYW5ub3lzIHJlZGhhdCBtdWx0aS1hcmNoIGluc3RhbGxzLiAgTm93IHRoYXQgYWxsIFggZm9udHMgYXJlCi0JaW5jbHVkZWQgd2l0aG91dCBwcmVqdWRpY2UsIHRoZSBjaGFuY2VzIG9mIHRoZSBkYXRlIGJlaW5nIGF0Ci0JYWxsIGludGVyZXN0aW5nIGFyZSByYXRoZXIgbGltaXRlZC4gIEJ1ZyAjNTA1LgotCSogc3JjL01ha2VmaWxlLmFtOgotCUFkZCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKLQotMjAwNC0xMi0wNCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBjb25maWd1cmUuaW46Ci0JQ2hhbmdlIGRlZmF1bHQgc2V0IG9mIGZvbnRzIHRvIGluY2x1ZGUgYWxsIG9mCi0JL3Vzci9YMTFSNi9saWIvWDExL2ZvbnRzIChvciB3aGVyZXZlciB0aGUgWCBmb250cyBhcmUgbG9jYXRlZCkuCi0JKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6Ci0JRG9jdW1lbnQgbmV3IDxpbmNsdWRlPmRpcmVjdG9yeS1uYW1lPC9pbmNsdWRlPiBzZW1hbnRpY3MKLQkqIGZvbnRzLmNvbmYuaW46Ci0JYWRkIDxpbmNsdWRlIGlnbm9yZV9taXNzaW5nPSJ5ZXMiPmNvbmYuZDwvaW5jbHVkZT4KLQkqIGxvY2FsLmNvbmY6Ci0JQWRkIHNlbGVjdGZvbnQgdG8gaWdub3JlIGJpdG1hcCBmb250cywgYWRkIGNvbW1lbnQgZm9yCi0Jc2VsZWN0Zm9udCB3aGljaCBhY2NlcHRzIGJpdG1hcCBmb250cy4KLQkqIHNyYy9mY2Rpci5jOgotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmN4bWwuYzogKEZjQ29uZmlnUGFyc2VBbmRMb2FkRGlyKSwgKEZjQ29uZmlnUGFyc2VBbmRMb2FkKToKLQlBbGxvdyA8aW5jbHVkZT4gY29uZmlndXJhdGlvbiBlbGVtZW50cyB0byByZWZlcmVuY2UgZGlyZWN0b3JpZXMuCi0JUGFyc2UgYW5kIGxvYWQgYWxsIGZpbGVzIG9mIHRoZSBmb3JtIFswLTldKiBpbiBzb3J0ZWQgb3JkZXIuCi0KLTIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogYXV0b2dlbi5zaDoKLQlSZXBvcnQgY29tbWFuZCBsaW5lIGZvciAkc3JjZGlyL2NvbmZpZ3VyZSBhY2N1cmF0ZWx5LgotCUJ1ZyAjMjEyLgotCi0yMDA0LTEyLTA0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0ZyZWVUeXBlUXVlcnkpOgotCUNoZWNrIGZvciBub24tZW1wdHkgZmFjZS0+ZmFtaWx5X25hbWUgYW5kIGZhY2UtPnN0eWxlX25hbWUKLQliZWZvcmUgdXNpbmcgdGhvc2UgZm9yIHRoZSBmb250LiAgRW1wdHkgbmFtZXMgbWF0Y2ggZXZlcnl0aGluZy4KLQlCdWcgIzIxMC4KLQotMjAwNC0xMi0wNCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBjb25maWd1cmUuaW46Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0ZyZWVUeXBlUXVlcnkpOgotCSogc3JjL2ZjbmFtZS5jOgotCUNyZWF0ZSBGQ19GT05URk9STUFUIGZyb20gRlRfR2V0X1gxMV9Gb250X0Zvcm1hdCBmdW5jdGlvbiB3aGVyZQotCWF2YWlsYWJsZS4gIFRoaXMgcHJvdmlkZXMgZm9udCBmaWxlIGZvcm1hdCBpbmZvcm1hdGlvbiAoQkRGLCBUeXBlIDEsCi0JUENGLCBUcnVlVHlwZSkgZm9yIGVhY2ggZm9udC4gIENsb3NlcyAjMTA5LgotCi0yMDA0LTEyLTA0ICBEYW5pZWwgR2xhc3NleSA8ZGFuZ2xhc3NleUBudGx3b3JsZC5jb20+Ci0KLQlyZXZpZXdlZCBieTogS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBkb2MvZm9udGNvbmZpZy11c2VyLnNnbWw6Ci0JRml4IHR5cG8uCi0JCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0ZyZWVUeXBlUXVlcnkpLCAoYWRkdGFnKSwgKGNvbXBhcmV1bG9uZyksCi0JKEdldFNjcmlwdFRhZ3MpLCAoRmNGb250Q2FwYWJpbGl0aWVzKToKLQkqIHNyYy9mY25hbWUuYzoKLQlBZGQgZGV0ZWN0aW9uIGZvciBmb250IGNhcGFiaWxpdGllcyAoYnVnICMxMDUpCi0KLTIwMDQtMTItMDQgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogTWFrZWZpbGUuYW06Ci0JTW92ZSBleGlzdGluZyBmb250cy5jb25mIHRvIGZvbnRzLmNvbmYuYmFrCi0JCi0JKiBjb25maWd1cmUuaW46Ci0JQWRkIGRldGVjdGlvbiBvZiBpY29udgotCQotCSogZG9jL2ZjcGF0dGVybi5mbmNzOgotCSogZG9jL2ZvbnRjb25maWctZGV2ZWwuc2dtbDoKLQkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKLQkqIGZvbnRzLmR0ZDoKLQlEb2N1bWVudCBuZXcgc2VsZWN0Zm9udCBlbGVtZW50cwotCQotCSogZmMtbGFuZy9uYi5vcnRoOgotCVN3aXRjaCB0byBVVEYtOCBpbiBjb21tZW50Ci0JCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQkqIHNyYy9mY25hbWUuYzoKLQlBZGQgZnVsbG5hbWUsIGFuZCBmYW1pbHkvc3R5bGUvZnVsbG5hbWUgbGFuZ3VhZ2UgZW50cmllcwotCQotCSogc3JjL2ZjY2FjaGUuYzogKEZjQ2FjaGVGb250U2V0QWRkKToKLQkqIHNyYy9mY2Rpci5jOiAoRmNGaWxlU2NhbkNvbmZpZyk6Ci0JUmVzcGVjdCBzZWxlY3Rmb250LyovZ2xvYgotCQotCSogc3JjL2ZjaW50Lmg6Ci0JKiBzcmMvZmNjZmcuYzogKEZjQ29uZmlnQ3JlYXRlKSwgKEZjQ29uZmlnRGVzdHJveSksCi0JKEZjQ29uZmlnQ29tcGFyZVZhbHVlKSwgKEZjQ29uZmlnUGF0dGVybnNBZGQpLAotCShGY0NvbmZpZ1BhdHRlcm5zTWF0Y2gpLCAoRmNDb25maWdBY2NlcHRGb250KToKLQkqIHNyYy9mY3htbC5jOiAoRmNFbGVtZW50TWFwKSwgKEZjVlN0YWNrRGVzdHJveSksCi0JKEZjVlN0YWNrUHVzaFBhdHRlcm4pLCAoRmNQb3BFeHByKSwgKEZjUGFyc2VBY2NlcHRSZWplY3RGb250KSwKLQkoRmNQb3BWYWx1ZSksIChGY1BhcnNlUGF0ZWx0KSwgKEZjUGFyc2VQYXR0ZXJuKSwgKEZjRW5kRWxlbWVudCk6Ci0JQWRkIHN1cHBvcnQgZm9yIHNlbGVjdGZvbnQKLQkKLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY1NmbnROYW1lVHJhbnNjb2RlKSwgKEZjU2ZudE5hbWVMYW5ndWFnZSksCi0JKEZjU3RyaW5nSW5QYXR0ZXJuRWxlbWVudCksIChGY0ZyZWVUeXBlUXVlcnkpOgotCUFkZCBtdWx0aS1saW5ndWFsIGZhbWlseS9zdHlsZS9mdWxsbmFtZSBzdXBwb3J0Ci0JCi0JKiBzcmMvZmNsaXN0LmM6IChGY0xpc3RQYXR0ZXJuTWF0Y2hBbnkpOgotCUV4cG9zZSBGY0xpc3RQYXR0ZXJuTWF0Y2hBbnkgKHdoaWNoIHNlbGVjdGZvbnQvKi9wYXR0ZXJuIHVzZXMpCi0JCi0JKiBzcmMvZmNwYXQuYzogKEZjUGF0dGVyblJlbW92ZSksIChGY1BhdHRlcm5BcHBlbmQpLAotCShGY09iamVjdFN0YXRpY05hbWUpOgotCUFkZCBuZXcgRmNQYXR0ZXJuUmVtb3ZlL0ZjUGF0dGVybkFwcGVuZC4KLQlGY09iamVjdFN0YXRpY05hbWUgc3RvcmVzIGNvbXB1dGVkIHBhdHRlcm4gZWxlbWVudCBuYW1lcyB3aGljaAotCWFyZSByZXF1aXJlZCB0byBiZSBzdGF0aWMuCi0JCi0yMDA0LTA5LTA5ICJOQUtBTVVSQSBLZW4naWNoaSIgPG5ha2FtdXJhQHNicC5mcC5hLnUtdG9reW8uYWMuanA+Ci0KLQlyZXZpZXdlZCBieToga2VpdGhwCi0KLQkqIE1ha2VmaWxlLmFtOgotCVJlbW92ZSBzcHVyaW91cyAvIGFmdGVyICQoREVTVERJUikKLQotMjAwNC0wNi0zMCAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBSRUFETUU6Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQlVcGRhdGUgZm9yIDIuMi45NgotCi0yMDA0LTA2LTMwICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQlQcm92aWRlZCBieTogTHVib3MgTHVuYWsgPGwubHVuYWtAc3VzZS5jej4KLQotCSogc3JjL2ZjY2ZnLmM6IChGY0NvbmZpZ1VwdG9EYXRlKToKLQlIb3dldmVyIEZjQ29uZmlnVXB0b0RhdGUoKSBkb2Vzbid0IHNlZW0gdG8gd29yay4gU2VlIHRoZSBhdHRhY2hlZAotCXBhdGNoLiAgRmlyc3QgdGhlcmUncyBhbiBvYnZpb3VzIG1pc3BsYWNlZCBwYXJlbnRoZXNpcyBtYWtpbmcgaXQKLQlyZXR1cm4gYWx3YXlzIGZhbHNlLCBhbmQgc2Vjb25kLCBldmVuIHRoaXMgY2FsbCBmYWlscyB0byBkZXRlY3QgZm9udAotCWNoYW5nZXMgKGUuZy4gIGFkZGluZyBhIG5ldyBmb250IHRvIAotCS91c3IvWDExUjYvbGliL1gxMS9mb250cy90cnVldHlwZSkuIFRoZSBwYXRjaCBzaG91bGQgZml4IHRoYXQgYXMKLQl3ZWxsLiBUaGUgcHJvYmxlbSBzZWVtcyB0byBiZSB0cmlnZ2VyZWQgYnkgbXkgZm9udHMuY29uZiBzcGVjaWZ5aW5nCi0Jb25seSAvdXNyL1gxMVI2L2xpYi9YMTEvZm9udHMgLCBhbmQgdGhlcmVmb3JlIGNvbmZpZy0+Y29uZmlnRGlycwotCWRvZXNuJ3QgaW5jbHVkZSBzdWJkaXJzLCB1bmxpa2UgY29uZmlnLT5mb250RGlycy4KLQotMjAwNC0wNi0wMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQlSZW1vdmUgY29tbWEgYXQgZW5kIG9mIEZjUmVzdWx0IGVudW0gZGVmaW5pdGlvbi4KLQotMjAwNC0wNS0yOSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBJTlNUQUxMOgotCUFkZCBzdGVwcyB0byBtZDVzdW0gcmVsZWFzZQotCi0yMDA0LTA1LTI5ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSBmb3IgMi4yLjk1Ci0KLTIwMDQtMDUtMjkgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmg6Ci0JKiBzcmMvZmNtYXRjaC5jOiAoRmNGb250U2V0TWF0Y2gpOgotCUFkZCBGY1Jlc3VsdE91dE9mTWVtb3J5IHRvIHByb3ZpZGUgYW4gYWNjdXJhdGUgZXJyb3Igd2hlbgotCUZjRm9udFNldE1hdGNoIGZhaWxzIGluIHRoaXMgd2F5Ci0JCi0JKiBzcmMvZmNmcmVldHlwZS5jOgotCU1ha2UgI3dhcm5pbmcgYWJvdXQgbGFja2luZyB2YXJpb3VzIEZyZWVUeXBlIGZlYXR1cmVzIGluZGljYXRlCi0Jd2hpY2ggdmVyc2lvbiB0aG9zZSBmZWF0dXJlcyBhcHBlYXJlZCBzbyB1c2VycyBrbm93IGhvdyB0bwotCWZpeCB0aGUgcHJvYmxlbSAoVGhhbmtzIHRvIEFudG9uIFRyb3Bhc2hrbykKLQotMjAwNC0wNS0wNSAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNGcmVlVHlwZUNoYXJTZXRBbmRTcGFjaW5nKToKLQlSZXBsYWNlIE1JTi9NQVgvQUJTIG1hY3JvcyB3aGljaCBoYXBwZW4gdG8gaGF2ZSBjb21lCi0JZnJvbSBGcmVlVHlwZSB3aXRoIGZvbnRjb25maWctc3BlY2lmaWMgb25lcyAoRkNfKikKLQotMjAwNC0wNC0yMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBJTlNUQUxMOgotCUV4dGVuZCByZWxlYXNlIHByZXBhcmF0aW9uIGluc3RydWN0aW9ucyB0byBpbmNsdWRlCi0Jbm90aWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gc3RlcHMKLQotMjAwNC0wNC0yMyAgS2VpdGggUGFja2FyZCAgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBSRUFETUU6Ci0JKiBjb25maWd1cmUuaW46Ci0JKiBmb250Y29uZmlnL2ZvbnRjb25maWcuaDoKLQlVcGRhdGUgdG8gMi4yLjk0ICgyLjIuOTMgc2hpcHBlZCB3aXRoIGJyb2tlbiBsaWJ0b29sIGJpdHMpCi0KLTIwMDQtMDQtMjMgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogLmN2c2lnbm9yZToKLQlJZ25vcmUgYSBmZXcgbW9yZSBhdXRvdG9vbCBmaWxlcwotCi0yMDA0LTA0LTE0ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIElOU1RBTEw6Ci0JQWRkIGluc3RydWN0aW9ucyBmb3IgZG9pbmcgYSByZWxlYXNlCi0JCi0JKiBmb250Y29uZmlnLnNwZWMuaW46Ci0JY2xlYW4gdXAgLnNwZWMgZmlsZTsgcGVyaGFwcyB0aGlzIHdpbGwgYmUgdXNlZnVsIHRvIHNvbWVib2R5Li4uCi0KLQkqIFJFQURNRToKLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSB0byAyLjIuOTMKLQkKLQkqIGZjLWxhbmcvZmMtbGFuZy5jOgotCU1ha2UgJ3NjYW5vcGVuJyBzdGF0aWMgc28gR0NDIGRvZXNuJ3Qgd2hpbmUgYWJvdXQgbGFja2luZyBwcm90b3R5cGUKLQkKLQkqIGZjLWdseXBobmFtZS9NYWtlZmlsZS5hbToKLQkqIGZjLWxhbmcvTWFrZWZpbGUuYW06Ci0JKiBmYy1saXN0L01ha2VmaWxlLmFtOgotCSogZmMtbWF0Y2gvTWFrZWZpbGUuYW06Ci0JKiBzcmMvTWFrZWZpbGUuYW06Ci0JQWRkIFdBUk5fQ0ZMQUdTIHRvIHBhc3MgLVcgZmxhZ3MgZm9yIEdDQyBzeXN0ZW1zCi0JCi0JKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNOb3RpY2VGb3VuZHJ5KSwgKEZjVmVuZG9yTWF0Y2gpLAotCShGY1ZlbmRvckZvdW5kcnkpLCAoRmNHZXRQaXhlbFNpemUpLCAoRmNGcmVlVHlwZVF1ZXJ5KToKLQlDaGFuZ2UgdmFyaW91cyBjaGFyIHR5cGVzIGFyb3VuZCB0byBtYXRjaCBhY3Jvc3MKLQlmdW5jdGlvbiBjYWxscy4KLQlGaXhlZCBidWcgaW4gdXNpbmcgYXZhaWxhYmxlX3NpemVzW2ldLmhlaWdodCB3aGljaCAKLQlpcyBpbiBwaXhlbHMsIG5vdCA2NHRocyBvZiBhIHBpeGVsLgotCi0yMDA0LTAzLTA2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0ZyZWVUeXBlUXVlcnkpOgotCUZvcmNlIEZDX0ZPVU5EUlkgYW5kIEZDX1dJRFRIIHRvIGFsd2F5cyBiZSBzZXQgc28gdGhhdAotCW1hdGNoZXMgbG9va2luZyBmb3IgZXhwbGljaXQgdmFsdWVzIHByZWZlciBleGFjdCBtYXRjaGVzCi0KLTIwMDQtMDMtMDIgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCVN1cHBsaWVkIGJ5OiBtZmFiaWFuQHN1c2UuZGUgKE1pa2UgRkFCSUFOKQotCi0JKiBzcmMvZmNmcmVldHlwZS5jOiAoRmNGcmVlVHlwZVF1ZXJ5KToKLQlCdWcgIzI2MCBmYy1jYWNoZSBnZW5lcmF0ZXMgd3Jvbmcgc3BhY2luZyB2YWx1ZXMgZm9yIGJpdG1hcCBmb250cwotCVdhcyB1c2luZyAoc3RyY21wIChhLGIpKSBpbnN0ZWFkIG9mICghc3RyY21wKGEsYikpLgotCi0yMDA0LTAyLTIxICBNYW5pc2ggU2luZ2ggIDx5b3NoQGdpbXAub3JnPgotCi0JKiBmYy1nbHlwaG5hbWUvZmMtZ2x5cGhuYW1lLmM6IChtYWluKToKLQlDYXN0IHN0cmxlbiB0byBpbnQgZm9yIHByaW50Ziwgc28gd2UncmUgNjQtYml0IGNsZWFuLgotCi0yMDA0LTAyLTExICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0dldFBpeGVsU2l6ZSk6Ci0JT2ssIHNvIEkgbWVzc2VkIHVwIHRoZSB0ZXN0IGZvciB5X3BwZW0uICBMZXQncyBzZWUgaWYgSQotCWdvdCBpdCByaWdodCB0aGlzIHRpbWUuCi0KLTIwMDQtMDItMTAgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogY29uZmlndXJlLmluOgotCSogc3JjL2ZjZnJlZXR5cGUuYzogKEZjR2V0UGl4ZWxTaXplKToKLQlQcmUtMi4xLjUgdmVyc2lvbnMgb2YgRnJlZVR5cGUgZGlkbid0IGluY2x1ZGUgeV9wcGVtIGluIHRoZQotCUZUX0JpdG1hcF9TaXplIHJlY29yZC4gIEFkZCBhIGNvbmZpZ3VyZS5pbiB0ZXN0IGZvciB0aGlzCi0JYW5kIGNoYW5nZSB0aGUgY29kZSBhY2NvcmRpbmdseSAodXNpbmcgaGVpZ2h0IGluc3RlYWQpLgotCi0yMDA0LTAyLTA2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGZjLWxhbmcvbmRzLm9ydGg6Ci0JQWRkIExvdyBTYXhvbiBvcnRob2dyYXBoeSAKLQkJKEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuIDxrZW5uZXRoQGdudS5vcmc+KQotCQkKLQkqIHNyYy9mY2NmZy5jOiAoRmNDb25maWdOZXdlc3RGaWxlKToKLQlPb3BzLiAgTGVmdCAnbmV3ZXN0LnNldCcgdW5zZXQsIHdoaWNoIHdvdWxkIG1pc2NvbXB1dGUKLQl0aGUgbmV3ZXN0IGZpbGUKLQkKLQkqIHNyYy9mY2ZyZWV0eXBlLmM6IChGY0dldFBpeGVsU2l6ZSksIChGY0ZyZWVUeXBlUXVlcnkpLAotCShGY0ZyZWVUeXBlQ2hlY2tHbHlwaCk6Ci0JQWRkIEZjR2V0UGl4ZWxTaXplIHRvIGV4dHJhY3QgY29ycmVjdCBwaXhlbCBzaXplIGZyb20gYmRmL3BjZgotCWZvbnQgcHJvcGVydGllcyAod2hpY2ggcmVwb3J0IHRoZSB3cm9uZyB2YWx1ZSBpbiBjdXJyZW50IEZyZWVUeXBlKQotCi0JRG9uJ3QgYXR0ZW1wdCB0byBjaGVjayBmb3IgZW1wdHkgZ2x5cGhzIGluIG5vbi1zY2FsYWJsZSBmb250czsgdGhleQotCWhhdmUgbm8gb3V0bGluZXMuLi4KLQotMjAwNC0wMi0wMSAgVG9yIExpbGxxdmlzdCAgPHRtbEBpa2kuZmk+Ci0KLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0NyZWF0ZSk6IGZvbnRjb25maWcsIGF0IGxlYXN0IGFzIHVzZWQgYnkKLQlHSU1QIGFuZC9vciBQYW5nb0ZUMiBvbiBXaW5kb3dzLCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIHNhdmUgdGhlCi0JY2FjaGUgaWYgY29uZmlnLT5jYWNoZSBpcyBOVUxMLCB3aGljaCBoYXBwZW5zIGlmIEZjQ29uZmlnSG9tZSgpIGlzCi0JTlVMTC4gR3VhcmQgYWdhaW5zdCB0aGF0IGJ5IHVzaW5nIHRoZSB0ZW1wIGZvbGRlciBpbiB0aGF0IGNhc2UuCi0KLTIwMDQtMDEtMDMgIFJvb3piZWggUG91cm5hZGVyICA8cm9vemJlaEBzaGFyaWYuZWR1PgotCi0JKiBmYy1sYW5nL2F6X2lyLm9ydGg6Ci0JKiBmYy1sYW5nL2t1X2lyLm9ydGg6Ci0JKiBmYy1sYW5nL3BzX2FmLm9ydGg6Ci0JKiBmYy1sYW5nL3BzX3BrLm9ydGg6Ci0JQWRkZWQgb3J0aG9ncmFwaGllcyBmb3IgSXJhbmlhbiBBemVyYmFpamFuaSBhbmQgS3VyZGlzaCwgYW5kIFBhc2h0bwotCShBZmdoYW4gYW5kIFBha2lzdGFuaSkuCi0JKiBmYy1sYW5nL3VyLm9ydGg6Ci0JVXBkYXRlZCBVcmR1IG9ydGhvZ3JhcGh5IHdpdGggcmVhbCBkYXRhLgotCi0yMDAzLTEyLTExICBDYXJsIFdvcnRoICA8Y3dvcnRoQGVhc3QuaXNpLmVkdT4KLQotCSogZmMtbGlzdC9NYWtlZmlsZS5hbSAobWFuX01BTlMpOiBNb3ZlIG1hbl9NQU5TIGludG8gdGhlICdpZgotCVVTRURPQ0JPT0snIGJsb2NrLgotCi0JKiBmYy1jYWNoZS9NYWtlZmlsZS5hbSAobWFuX01BTlMpOiBNb3ZlIG1hbl9NQU5TIGludG8gdGhlICdpZgotCVVTRURPQ0JPT0snIGJsb2NrLgotCShhbGwtbG9jYWwpOiBSZW1vdmUgZXhjZXNzaXZlIHdoaXRlc3BhY2UuCi0KLQkqIGF1dG9nZW4uc2g6IEFkZCAnc2V0IC1lJyB0byBhYm9ydCB3aGVuIGFueSBwcm9ncmFtIGZhaWxzLAotCShhdm9pZHMgcHJpbnRpbmcgb2YgJ25vdyB0eXBlIG1ha2UnIGFmdGVyIGNvbmZpZ3VyZSBhYm9ydHMpLgotCi0yMDAzLTExLTE3ICAgRXJpYyBDaHJpc3RvcGhlcnNvbiAgPHJha2tvQGNoYXJ0ZXIubmV0PgotCi0JcmV2aWV3ZWQgYnk6IEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogZG9jL01ha2VmaWxlLmFtOgotCSogZm9udGNvbmZpZy9mY2ZyZWV0eXBlLmg6Ci0JKiBzcmMvZmNmcmVldHlwZS5jOgotCVN3aXRjaCB0byBGcmVlVHlwZSAyLjEuNyBzdHlsZSBpbmNsdWRlcy4gIEJ1ZyAjMTUwLgotCi0yMDAzLTExLTE2ICBOb2FoIExldml0dCAgPG5sZXZpdHRAY29sdW1iaWEuZWR1PgotCi0JKiBmYy1saXN0L2ZjLWxpc3Quc2dtbDogQWRkIHNvbWUgZXhhbXBsZSB1c2FnZXMuCi0KLTIwMDMtMTEtMTAgIFJvb3piZWggUG91cm5hZGVyICA8cm9vemJlaEBzaGFyaWYuZWR1PgotCi0JKiBzcmMvZmN4bWwuYzoKLQlGaXhlZCBhIGJ1ZyAiRmNTdHJ0b2QiIGluIGhhbmRsaW5nIHNvbWUgY2FzZXMgd2l0aCB0d28tYnl0ZSBkZWNpbWFsCi0Jc2VwYXJhdG9ycy4KLQotMjAwMy0xMC0yNyAgS2VpdGggUGFja2FyZCAgPGtlaXRoQGtlaXRocC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCVVwZGF0ZSB0byB2ZXJzaW9uIDIuMi45MgotCi0yMDAzLTEwLTI3ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogY29uZmlndXJlLmluOgotCSogZG9jL01ha2VmaWxlLmFtOgotCSogZmMtY2FjaGUvTWFrZWZpbGUuYW06Ci0JKiBmYy1nbHlwaG5hbWUvTWFrZWZpbGUuYW06Ci0JKiBmYy1sYW5nL01ha2VmaWxlLmFtOgotCSogZmMtbGlzdC9NYWtlZmlsZS5hbToKLQkqIGZjLW1hdGNoL01ha2VmaWxlLmFtOgotCSogdGVzdC9NYWtlZmlsZS5hbToKLQkqIHRlc3QvcnVuLXRlc3Quc2g6Ci0JWWV0IG1vcmUgY2xlYW51cHMgdG8gZmluaXNoIGdldHRpbmcgJ21ha2UgZGlzdGNoZWNrJyB3b3JraW5nCi0JVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgdG8gZW5zdXJlIHRoYXQgaXQgZXZlbiB3b3JrcyBmcm9tIGEgX2J1aWxkCi0JZGlyZWN0b3J5LgotCi0yMDAzLTEwLTI2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5pbjoKLQkqIGRvYy9NYWtlZmlsZS5hbToKLQkqIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotCSogZmMtZ2x5cGhuYW1lL01ha2VmaWxlLmFtOgotCSogZmMtbGFuZy9NYWtlZmlsZS5hbToKLQkqIGZjLWxhbmcvZmMtbGFuZy5jOiAoc2Nhbm9wZW4pLCAoc2NhbiksIChtYWluKToKLQkqIGZjLWxpc3QvTWFrZWZpbGUuYW06Ci0JKiBmYy1tYXRjaC9NYWtlZmlsZS5hbToKLQlBdHRlbXB0cyB0byBmaXggJ21ha2UgZGlzdGNoZWNrJyB3b3JrLiAgVGhpbmdzIGFyZQotCXByb2dyZXNzaW5nIHByZXR0eSB3ZWxsLCBidXQgdGhlcmUgYXJlIHN0aWxsIGZhaWx1cmVzCi0JbG9uZyBpbnRvIHRoZSBwcm9jZXNzIGRlYWxpbmcgd2l0aCBkb2NzIChhcyBhbHdheXMpLgotCQotCVRoZSBiaWcgY2hhbmdlcyBoZXJlIGFyZSBtb3N0bHkgdG8gbWFrZSAkKHNyY2RpcikgIT0gIi4iCi0Jd29yayBjb3JyZWN0bHksIGZpeGluZyB0aGUgZG9jYm9vayByZWxhdGVkIHNlY3Rpb25zIGFuZAotCWZjLWxhbmcgd2VyZSBwYXJ0aWN1bGFyaWx5IHRyaWNreS4gIERvY2Jvb2sgcmVmdXNlcyB0byBsb2FkCi0Jc3lzdGVtIGVudGl0aWVzIGZyb20gYW55d2hlcmUgb3RoZXIgdGhhbiB3aGVyZSB0aGUgb3JpZ2luYWwgLnNnbWwKLQlmaWxlIHdhcyBsb2NhdGVkLCBzbyBubyBsdWNrIGxvb2tpbmcgaW4gIi4iIGZvciB0aGUKLQljb25maWd1cmUtZ2VuZXJhdGVkIHZlcnNpb24uc2dtbCBhbmQgY29uZmRpci5zZ21sIGZpbGVzLgotCi0JZmMtbGFuZyBuZWVkZWQgaGVscCBmaW5kaW5nIC5vcnRoIGZpbGVzOyBhZGRlZCBhIC1kIG9wdGlvbgotCXRvIHNldCB0aGUgZGlyZWN0b3J5IGFzIHRoZSBsZWFzdCBldmlsIG9mIG1hbnkgb3B0aW9ucy4KLQotCU5vdyB0byBnbyB1c2UgYSBmYXN0ZXIgbWFjaGluZSBhbmQgdHJ5IGFuZCB3cmluZyBvdXQgdGhlIGxhc3QKLQlpc3N1ZXMuCi0KLTIwMDMtMTAtMjYgIEtlaXRoIFBhY2thcmQgIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCVRhZyB2ZXJzaW9uIDIuMi45MQotCi0yMDAzLTEwLTI2ICBLZWl0aCBQYWNrYXJkICA8a2VpdGhwQGtlaXRocC5jb20+Ci0KLQkqIGRvYy9NYWtlZmlsZS5hbToKLQlJbmNsdWRlIGNvbmZkaXIuc2dtbC5pbiBpbiBFWFRSQV9ESVNUCi0KLTIwMDMtMTAtMDkgIEpvc3NlbGluIE1vdWV0dGUgIDxqb3NzQGRlYmlhbi5vcmc+Ci0KLSAgICAgICAgKiBmYy1jYWNoZS9mYy1jYWNoZS5zZ21sIGZjLWNhY2hlL01ha2VmaWxlLmFtOgotICAgICAgICAqIGZjLWxpc3QvZmMtbGlzdC5zZ21sIGZjLWxpc3QvTWFrZWZpbGUuYW06Ci0gICAgICAgICAgUmVwbGFjZSBmYy1jYWNoZSBhbmQgZmMtbGlzdCBtYW5wYWdlcyB3aXRoIG1vcmUgZGV0YWlsZWQsIFNHTUwKLSAgICAgICAgICB2ZXJzaW9ucy4KLQotMjAwMy0wOS0yMyAgT3dlbiBUYXlsb3IgPG90YXlsb3JAcmVkaGF0LmNvbT4KLQotCSogZm9udGNvbmZpZy9mb250Y29uZmlnLmggIHNyYy9mY2RlZmF1bHQuYyAoRmNEZWZhdWx0U3Vic3RpdHV0ZSkKLQlzcmMvZmNuYW1lLmM6IEFkZCBhIEZDX0hJTlRfU1RZTEUga2V5IGZvciBwYXR0ZXJucywgd2l0aAotCXBvc3NpYmxlIHZhbHVlcyBISU5UX05PTkUvSElOVF9TTElHSFQvSElOVF9NRURJVU0vSElOVF9GVUxMLgotCShCdWcgIzExNykKLQotMjAwMy0wOS0yMyAgT3dlbiBUYXlsb3IgPG90YXlsb3JAcmVkaGF0LmNvbT4KLQotCSogZmMtbGFuZy9rYS5vcnRoOiBSZW1vdmUgR2VvcmdpYW4gY2FwaXRhbHMsIHRoZXkKLQlhcmVuJ3QgdXNlZCBmb3Igbm9ybWFsIHdyaXRpbmcuIChCdWcgIzExNikKLQotMjAwMy0wOS0wNiAgTm9haCBMZXZpdHQgIDxubGV2aXR0QGNvbHVtYmlhLmVkdT4KLQotCSogZG9jL2ZvbnRjb25maWctZGV2ZWwuc2dtbDoKLQkqIGRvYy9mb250Y29uZmlnLXVzZXIuc2dtbDoKLQkqIGZvbnRjb25maWcvZm9udGNvbmZpZy5oOgotCSogc3JjL2ZjbmFtZS5jOgotCSogc3JjL2ZjZnJlZXR5cGUuYyAoRmNGcmVlVHlwZUNoYXJTZXRBbmRTcGFjaW5nKTogQWRkIG5ldyBzcGFjaW5nCi0JdmFsdWUgRkNfRFVBTCAoZHVhbC13aWR0aCwgYXMgc29tZSBDSksgZm9udHMpLiAoYnVnICMxMTEpCi0KLQkqIHNyYy9mY2ZyZWV0eXBlLmMgKEZjRnJlZVR5cGVDaGFyU2V0QW5kU3BhY2luZyk6IFdoZW4gY2hlY2tpbmcgZm9yCi0JbW9ub3NwYWNlIGFuZCBkdWFsLXdpZHRoIGZvbnRzLCBhbGxvdyByb3VnaGx5IGEgMyUgdmFyaWFuY2UgaW4gdGhlCi0JYWR2YW5jZXMuCi0KLTIwMDMtMDgtMzEgIE1hbmlzaCBTaW5naCAgPHlvc2hAZ2ltcC5vcmc+Ci0KLQkqIHNyYy9mY2NmZy5jIChGY0NvbmZpZ0FwcEZvbnRDbGVhcik6IFN1cHBvcnQgcGFzc2luZyBOVUxMIHRvCi0JdXNlIGRlZmF1bHQgY29uZmlnLgotCi0yMDAzLTA4LTE1ICBDYXJsIFdvcnRoICA8Y3dvcnRoQGlzaS5lZHU+Ci0KLQkqIHNyYy9mY3htbC5jIChGY0VkaXREZXN0cm95KTogRml4IGxlYWsgb2YgRmNFZGl0LgotCShGY1BvcEV4cHIpOiBBZGQgY29tbWVudCBhYm91dCB1bmhhbmRsZWQgRmNWU3RhY2tHbG9iIGNhc2UuCi0KLQkqIHNyYy9mY3BhdC5jIChGY1ZhbHVlTGlzdEVudERlc3Ryb3kpOiBOZXcgZnVuY3Rpb24gdG8gc3VwcG9ydAotCUZjRmluaSBtZW1vcnkgY2xlYW51cC4gU29tZSBzdGF0aXN0aWNzIGFyZSBub3Qga2VwdCBpbgotCXN5bmNoLiBoZXJlLgotCShGY1ZhbHVlTGlzdEZyZWV6ZSk6IE1vdmUgaGFzaFRhYmxlIG91dHNpZGUgdGhpcyBmdW5jdGlvbiBzbyBpdAotCWNhbiBiZSBhY2Nlc3NlZCBieSBGY1ZhbHVlTGlzdFRoYXdBbGwuCi0JKEZjVmFsdWVMaXN0VGhhd0FsbCk6IE5ldyBmdW5jdGlvbiBjb21wbGVtZW50cyBGY1ZhbHVlTGlzdEZyZWV6ZS4KLQkoRmNQYXR0ZXJuQmFzZUZyZWV6ZSk6IE1vdmUgaGFzaFRhYmxlIG91dHNpZGUgdGhpcyBmdW5jdGlvbiBzbyBpdAotCWNhbiBiZSBhY2Nlc3NlZCBieSBGY1BhdHRlcm5CYXNlVGhhd0FsbC4KLQkoRmNQYXR0ZXJuQmFzZVRoYXdBbGwpOiBOZXcgZnVuY3Rpb24gY29tcGxlbWVudHMKLQlGY1BhdHRlcm5CYXNlRnJlZXplLgotCShGY1BhdHRlcm5UaGF3QWxsKTogTmV3IGZ1bmN0aW9uIGNvbXBsZW1lbnRzIEZjUGF0dGVybkZyZWV6ZS4KLQotCSogc3JjL2ZjaW5pdC5jIChGY0ZpbmkpOiBBZGQgbmV3IEZjRmluaSB0byBjbGVhbnVwIGV2ZXJ5dGhpbmcuCi0KLQkqIHNyYy9mY2NoYXJzZXQuYyAoRmNDaGFyTGVhZkVudENyZWF0ZSk6IFNhdmUgcG9pbnRlcnMgdG8gYWxsCi0JYWxsb2NhdGVkIEZjQ2hhckxlYWZFbnQgImJsb2NrcyIgc28gdGhleSBjYW4gYmUgZnJlZWQgbGF0ZXIuCi0JKEZjQ2hhclNldEZyZWV6ZUxlYWYpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKLQljYW4gYmUgYWNjZXNzZWQgYnkgRmNDaGFyU2V0VGhhd0FsbExlYWYuCi0JKEZjQ2hhclNldFRoYXdBbGxMZWFmKTogTmV3IGZ1bmN0aW9uIGNvbXBsZW1lbnRzIEZjQ2hhclNldEZyZWV6ZUxlYWYuCi0JKEZjQ2hhclNldEZyZWV6ZUJhc2UpOiBNb3ZlIGhhc2hUYWJsZSBvdXRzaWRlIHRoaXMgZnVuY3Rpb24gc28gaXQKLQljYW4gYmUgYWNjZXNzZWQgYnkgRmNDaGFyU2V0VGhhd0FsbC4KLQkoRmNDaGFyU2V0VGhhd0FsbCk6IE5ldyBmdW5jdGlvbiBjb21wbGVtZW50cyBGY0NoYXJTZXRGcmVlemUuCi0KLQkqIHNyYy9mY2NmZy5jIChGY1N1YnN0RGVzdHJveSk6IEZpeCBsZWFrIG9mIG91dGVyIEZjU3Vic3QuCi0JKEZjQ29uZmlnRGVzdHJveSk6IEZpYyBsZWFrIG9mIEZjQmxhbmtzLgotCi0JKiBmYy1saXN0L2ZjLWxpc3QuYyAobWFpbik6IEZpeCBsZWFrIG9mIEZjT2JqZWN0U2V0LgotCShtYWluKTogQWRkIGNhbGwgdG8gRmNGaW5pIHdoZW4gZmluaXNoZWQuCi0KLQkqIGZjLWdseXBobmFtZS9mYy1nbHlwaG5hbWUuYzogTWFyayBzZXZlcmFsIGxvY2FsIGZ1bmN0aW9ucyBhcwotCXN0YXRpYy4gQWRkIHByb3RvdHlwZXMuCi0KLQkqIGRvYy9mY2luaXQuZm5jczogQWRkIGRvY3VtZW50YXRpb24gZm9yIEZjRmluaSBmdW5jdGlvbi4KLQotCSogZG9jL2VkaXQtc2dtbC5jOiBNYXJrIHNldmVyYWwgbG9jYWwgZnVuY3Rpb25zIGFzIHN0YXRpYy4gQWRkCi0JcHJvdG90eXBlcy4KLQotCSogZG9jL01ha2VmaWxlLmFtIChET0NfTU9EVUxFKTogRml4ICJzdXNwaWNpb3VzIiBsaW5lcy4KLQotMjAwMy0wNi0xNSAgVG9yIExpbGxxdmlzdCAgPHRtbEBpa2kuZmk+Ci0KLQkqIHRlc3QvcnVuLXRlc3Quc2ggKEZPTlRDT05GSUdfRklMRSk6IFJlbW92ZSBDUnMgZnJvbSB0aGUgb3V0IGZpbGUKLQliZWZvcmUgY29tcGFyaW5nIChuZWVkZWQgb24gV2luZG93cykuCi0KLQkqIHNyYy9NYWtlZmlsZS5hbSAoaW5zdGFsbC1saWJ0b29sLWltcG9ydC1saWIpOiBGaXggY3V0JnBhc3RlIGVycm9yLgotCi0yMDAzLTA2LTEzICBUb3IgTGlsbHF2aXN0ICA8dG1sQGlraS5maT4KLQotCSogZm9udGNvbmZpZy16aXAuaW4gKERFVlpJUCk6IEFkZCBzaGFyZS9kb2MgZGlyZWN0b3J5LiBBZGQgRmMqLjMKLQltYW4gcGFnZXMuCi0KLQkqIGNvbmZpZ3VyZS5pbjogU2V0IEZDX0RFRkFVTFRfRk9OVFMgb24gV2luMzIgdG8gdGhlCi0JV0lORE9XU0ZPTlRESVIgdG9rZW4uCi0KLQkqIHNyYy9mb250Y29uZmlnLmRlZi5pbjogTW92ZSB0aGUgTElCUkFSWSBhbmQgVkVSU0lPTiBsaW5lcyB0byB0aGUKLQllbmQsIG5vdCB0byBjb25mdXNlIGxpYnRvb2wsIHdoaWNoIGV4cGVjdHMgdGhlIEVYUE9SVFMgbGluZSB0byBiZQotCXRoZSBmaXJzdC4gQWRkIEZjQ29uZmlnRW5hYmxlSG9tZS4KLQotCSogc3JjL2ZjY2ZnLmM6IENoZWNrIGFsc28gZm9yIERMTF9FWFBPUlQgYXMgaW5kaWNhdGlvbiBvZiBiZWluZwotCWJ1aWx0IGFzIGEgRExMIG9uIFdpbjMyLgotCi0yMDAzLTA2LTA5ICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogVGFnIHZlcnNpb24gMi4yLjkwCi0KLTIwMDMtMDYtMDkgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBPcHRpbWl6YXRpb24gaW4gRmNMYW5nU2V0SW5kZXggd2FzIGJyb2tlbiwgb2NjYXNpb25hbGx5Ci0JICByZXR1cm5pbmcgYSBwb2ludGVyIHRvIHRoZSB3cm9uZyBsb2NhdGlvbiBvbiBtaXNzCi0KLQkqIEFkZCBmYy1tYXRjaCB0byB0ZXN0IGZvbnQgbWF0Y2hpbmcgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotCi0yMDAzLTA1LTMxICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogKEJ1ZyA4NSkgYWRkIHN1cHBvcnQgZm9yIGN1bG11cyBmb250cwotCSogKEJ1ZyA4NykgQXV0b21ha2UgMS40IGRvZXNuJ3QgZG8gbWFuX01BTjEgY29ycmVjdGx5Ci0JKiAoQnVnIDg4KSBGaXggdXNhZ2UgaW5mbyBvbiBub24tbG9uZyBvcHRpb24gc3lzdGVtcyAoVGltIE1vb25leSkKLQotMjAwMy0wNS0yOCAgSmFtZXMgU3UgPHN1emhlQHR1cmJvbGludXguY29tLmNuPgotCi0JKiBGaXggImNvbnRhaW5zIiBvcCBmb3Igc3RyaW5ncyBhbmQgbGFuZ3NldHMuCi0KLTIwMDMtMDUtMTcgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBGaXggYnVpbGQgZXJyb3Igd2l0aCBCREYgcHJvcCBsb2NhbC4gIEZyZWUgbGFuZ3NldCBhZnRlciBxdWVyeQotCi0yMDAzLTA1LTE0ICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogRXh0cmFjdCBzcGFjaW5nIGZyb20gWExGRCBhdG9tCi0KLTIwMDMtMDUtMTIgIEp1bGl1c3ogQ2hyb2JvY3playA8amNoQHBwcy5qdXNzaWV1LmZyPgotCi0JKiBSZWluc3RhdGUgU0VUV0lEVEhfTkFNRSBwYXJzaW5nIGZvciBsZWdhY3kgZm9udHMsIAotCSAgZGlzYXBwZWFyZWQgaW4gMS4zMC4KLQotCSogR2VuZXJhdGUgRkNfU0laRSBhbmQgRkNfRFBJIGZvciBsZWdhY3kgYml0bWFwIGZvbnRzCi0KLTIwMDMtMDUtMTIgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBVc2UgRmNJc1dpZHRoIHRvIHNoYXJlIGNvZGUKLQotCSogU2V0IEZUX0xPQURfSUdOT1JFX0dMT0JBTF9BRFZBTkNFX1dJRFRIIHdoZW4gc2Nhbm5pbmcgZm9udHMgdG8gYXZvaWQKLQkgIG1pc2NsYXNzaWZ5aW5nIHNvbWUgSGFuIGZvbnRzIGFzIG1vbm9zcGFjZWQuCi0JICAKLTIwMDMtMDUtMDcgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBBZGQgZmlsZW5hbWUtYmFzZWQgYWNjZXB0L3JlamVjdCB0byBhbW1lbmQgYXZhaWxhYmxlIGZvbnRzLgotCi0JKiBDaGFuZ2UgRlRfRU5DT0RJTkdfQURPQkVfQ1VTVE9NIHRvIGZ0X2VuY29kaW5nX2Fkb2JlX2N1c3RvbSBmb3IKLQkgIG9sZGVyIEZyZWVUeXBlIHJlbGVhc2VzLgotCi0yMDAzLTA1LTA2ICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogUmVtb3ZlIDBiODIgYW5kIFRhbWlsIG51bWJlcnMgZnJvbSB0YW1pbCAKLQkgIG9ydGhvZ3JhcGh5IChKdW5nc2hpayBTaGluIDxqc2hpbkBtYWlsYXBzLm9yZz4pCi0KLTIwMDMtMDUtMDQgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKyBNYXAgZ2x5cGggbmFtZXMgaW4gZm9udHMgd2l0aCBhZG9iZSBjdXN0b20gZW5jb2RpbmcgdG8gdW5pY29kZQotCi0yMDAzLTA1LTAyICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogQWRkIEZDX1dFSUdIVF9CT09LIGFzIHdlaWdodCA3NQotCi0yMDAzLTA0LTMwICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogVHlwbyBpbiBiaXRzdHJlYW0gZm91bmRyeSBuYW1lCi0KLTIwMDMtMDQtMjQgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKiBFbGltaW5hdGUgaXRhbGljX2FuZ2xlIGNoZWNrIGZvciBQUyBmb250cwotCi0yMDAzLTA0LTIzICBOb2FoIExldml0dCA8bmxldml0dEBjb2x1bWJpYS5lZHU+Ci0KLQkqIEdldHRpbmcgY2xvc2VyIHRvIGZpeGluZyAvZXRjL2ZvbnRzIGhhcmQtY29kaW5nLgotCi0yMDAzLTA0LTIyICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSogVXBkYXRlIGF1dG9nZW4uc2ggdG8gd29yayB3aXRoIG5ld2VyIGF1dG9tYWtlIHZlcnNpb25zCi0JKiBIYW5kbGUgcGF0dGVybiBlbGVtZW50cyBtb3ZpbmcgZHVyaW5nIG11bHRpcGxlIGVkaXRzCi0KLTIwMDMtMDQtMjMgIEphbWVzIEhlbnN0cmlkZ2UgIDxqYW1lc0BkYWEuY29tLmF1PgotCi0JKiBkb2MvZm9udGNvbmZpZy1kZXZlbC5zZ21sOiBjbG9zZSB0aGUgPHBhcmE+IGVsZW1lbnQuCi0KLQkqIGRvYy9mY3BhdHRlcm4uZm5jczogY2xvc2UgdGhlIDxwYXJhPiBlbGVtZW50LgotCi0JKiBkb2MvZnVuYy5zZ21sOiBjbG9zZSB0aGUgPHJlZnN5bm9wc2lzZGl2PiBlbGVtZW50LgotCi0yMDAzLTA0LTIyICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbQotCi0JKiBVcGRhdGUgYXV0b2dlbi5zaCB0byB3b3JrIHdpdGggbmV3ZXIgYXV0b21ha2UgdmVyc2lvbnMKLQkqIEhhbmRsZSBwYXR0ZXJuIGVsZW1lbnRzIG1vdmluZyBkdXJpbmcgbXVsdGlwbGUgZWRpdHMKLQotMjAwMy0wNC0xNyAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0BkZWJpYW4ub3JnPgotCi0JKyBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLCBhbmQgaW5pdGlhbGl6ZSBzb21lIG90aGVyIG9uZXMgc28KLQlnY2MgZG9lc24ndCB3YXJuIHVzLgotCi0yMDAzLTA0LTE2ICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLQotCSsgdGFnIHZlcnNpb24gMi4xLjk0Ci0KLTIwMDMtMDQtMTYgIEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgotCi0JKyBhZGQgQkRGIHByb3BlcnR5IGZldGNoaW5nIHN1cHBvcnQgZm9yIGZvdW5kcnkgCi0JICAoZnJvbSBKdWxpdXN6IENocm9ib2N6ZWspCi0JKyBhZGQgQkRGIHByb3BlcnR5IGZldGNoaW5nIHN1cHBvcnQgZm9yIHdpZHRoCi0KLTIwMDMtMDQtMTEgIEp1bGl1c3ogQ2hyb2JvY3playA8amNoQHBwcy5qdXNzaWV1LmZyPgotCi0JKyBJbXBsZW1lbnRlZCBmb3VuZHJ5IGdlbmVyYXRpb24gZm9yIFR5cGUgMSBhbmQgVHJ1ZVR5cGUKLQotMjAwMy0wNC0xMSAgR2VyYXJkIEVzY2FsYW50ZSA8ZzJAbWFnZXN0dWRpb3MubmV0PgotCi0JKyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBmcm9tIFR5cGUxIEZvbnRJbmZvIGRpY3Rpb25hcmllcwotCi0yMDAzLTA0LTA3ICBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+Ci0KLQkrIHNyYy9NYWtlZmlsZS5hbTogRml4IGR1bW15IG1ha2VmaWxlIHRhcmdldCBuYW1lcyB3aGVuCi0JTVNfTElCX0FWQUlMQUJMRSBpc24ndCBzZXQuCi0KLTIwMDMtMDMtMjIgIFRvciBMaWxscXZpc3QgIDx0bWxAaWtpLmZpPgotCi0JQ2hhbmdlcyBmb3IgV2luZG93czoKLQkgIAotCSsgT24gV2luZG93cyB3aXRoIGdjYyAoYS5rLmEuIG1pbmd3KSBidWlsZCBhcyBhIERMTC4KLQkgIAotCSsgV2UgZG9uJ3Qgd2FudCB0byBoYXJkY29kZSB0aGUgZm9udHMuY29uZiBmaWxlIGxvY2F0aW9uIGluIHRoZQotCSAgRExMLCBzbyB3ZSBsb29rIHVwIHRoZSBETEwgbG9jYXRpb24gYXQgcnVuLXRpbWUgaW4gYSBEbGxNYWluKCkKLQkgIGZ1bmN0aW9uLiBUaGUgZm9udHMuY29uZiBsb2NhdGlvbiBpcyBkZWR1Y2VkIGZyb20gdGhhdC4KLQotCSsgVGhlIGNvbG9uIGNhbid0IGJlIHVzZWQgYXMgcGF0aCBzZXBhcmF0b3Igb24gV2luZG93cywKLQkgIHNlbWljb2xvbiBpcyB1c2VkIGluc3RlYWQuIEZpbGUgcGF0aCBjb21wb25lbnRzIGNhbiBiZSBzZXBhcmF0ZWQKLQkgIHdpdGggZWl0aGVyIHNsYXNoIG9yIGJhY2tzbGFzaC4gQWJzb2x1dGUgcGF0aHMgY2FuIGFsc28gYmVnaW4KLQkgIHdpdGggYSBkcml2ZSBsZXR0ZXIuCi0KLQkrIEFkZCBpbnRlcm5hbCBmdW5jdGlvbiBGY1N0ckxhc3RTbGFzaCB0aGF0IHN0cnJjaHIncyB0aGUgbGFzdAotCSAgc2xhc2gsIG9yIGJhY2tzbGFzaCBvbiBXaW5kb3dzLgotCQotCSsgVGhlcmUgaXMgbm8gbGluaygpIG9uIFdpbmRvd3MuIEZvciBhdG9taWNpdHkgY2hlY2tzLCBta2RpciBhCi0JICBsb2NrIGRpcmVjdG9yeSBpbnN0ZWFkLgotCSAgCi0JKyBJbiBhZGRpdGlvbiB0byBIT01FLCBhbHNvIGxvb2sgZm9yIFVTRVJQUk9GSUxFLgotCi0JKyBSZWNvZ25pemUgdGhlIHNwZWNpYWwgZm9udCBkaXJlY3RvcnkgdG9rZW4gV0lORE9XU0ZPTlRESVIsIHRvCi0JICB1c2UgdGhlIHN5c3RlbSdzIGZvbnQgZGlyZWN0b3J5LgotCSAgCi0JKyBSZW1vdmUgdGhlIGZvbnRjb25maWctZGVmLmNwcCB0aGF0IHdhcyBvYnNvbGV0ZS4gQWRkCi0JICBmb250Y29uZmlnLmRlZiguaW4pLCB3aXRob3V0IGludGVybmFsIGZ1bmN0aW9ucy4KLQkgIAotCSsgQWRkIGEgZm9udGNvbmZpZy16aXAoLmluKSBzY3JpcHQsIHVzZWQgdG8gYnVpbGQgYSBiaW5hcnkKLQkgIGRpc3RyaWJ1dGlvbi4KLQotRnJpIE1hciAgNyAwNzo1NTowMCBFU1QgMjAwMyAgICBNaWtlIEEuIEhhcnJpcyA8bWhhcnJpc0ByZWRoYXQuY29tPgotCSsgUlBNIHNwZWNmaWxlIGNsZWFudXBzIGZvciAyLjEuOTI6IFJlbW92ZWQgbWFuMS8qIGFuZCBhZGRlZCBtYW41LyoKLQkgIHRvIG1haW4gcGFja2FnZSBhbmQgbWFuMy8qIHRvIGRldmVsIHBhY2thZ2UKLQotCSsgQWRkZWQgbWlzc2luZyBkZWZhdHRyKC0sIHJvb3QsIHJvb3QpIHRvIG1haW4gUlBNIHBhY2thZ2UKLSAKLQkrIEFkZGVkIEhUTUwgYW5kIHRleHQgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiB0byAtZGV2ZWwgc3VicGFja2FnZQotCi1XZWQgTWFyICA1IDA1OjA4OjAwIEVTVCAyMDAzCU1pa2UgQS4gSGFycmlzIDxtaGFycmlzQHJlZGhhdC5jb20+Ci0JKyBBZGRlZCBiYWNrIHRoZSBjb25maWd1cmUgbWFjcm8gb3B0aW9ucyAtLWRpc2FibGUtZG9jcywgb3RoZXJ3aXNlCi0JICBmb250Y29uZmlnIGluc3RhbGxzIGRvY3MgaW50byAvdXNyL3NoYXJlL2RvYy9mb250Y29uZmlnICh3aXRoIG5vCi0JICB2ZXJzaW9uIG51bWJlcikgdW5jb25kaXRpb25hbGx5LCBjYXVzaW5nIFJQTSB0byBmYWlsIHRoZSBidWlsZCBkdWUKLQkgIHRvIF91bnBhY2thZ2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZC4gIFdlIHBpY2sgdXAgdGhlIHByZWdlbmVyYXRlZAotCSAgZG9jcyB3aXRoICVkb2MgYWxyZWFkeS4KLQotV2VkIE1hciAgNSAwNDoyNjoyMCBFU1QgMjAwMwlNaWtlIEEuIEhhcnJpcyA8bWhhcnJpc0ByZWRoYXQuY29tPgotCSsgUmVtb3ZlZCBjb21tZW50ZWQgb3V0IHJwbSBtYWNybyBkZWZpbmUgYXQgdG9wIG9mIHNwZWMgZmlsZSwKLQkgIHJlcGxhY2luZyBpdCB3aXRoIGEgc2ltcGxlIGV4cGxhbmF0aW9uLCBzaW5jZSBycG0gbWFjcm9zIGFyZQotCSAgZXhwYW5kZWQgYnkgcnBtIGV2ZW4gaW4gY29tbWVudHMuCi0KLQkrIENoYW5nZWQgL3Vzci9iaW4gdG8gX2JpbmRpciBpbiBCdWlsZFJlcXVpcmVzIGxpbmVzCi0KLQkrIENsZWFuZWQgdXAgcnBtIHBvc3RpbnN0YWxsIHNjcmlwdCwgYW5kIG1hZGUgZmMtY2FjaGUgdXNlIF9iaW5kaXIKLQotCSsgUmVvcmdhbml6ZWQgZmlsZSBtYW5pZmVzdCBsaXN0cwotCi1TdW4gTWFyICAyIDE0OjE2OjE3IEVTVCAyMDAzCU93ZW4gVGF5bG9yIDxvdGF5bG9yQHJlZGhhdC5jb20+Ci0KLQkrIGZvbnRjb25maWcuc3BlYy5pbjogSW1wcm92ZW1lbnRzIGZyb20gUmVkIEhhdCBzcGVjIGZpbGUuCi0KLQkrIHtmYy1sYW5nLGZjLWNhY2hlLGZjLWxpc3R9L01ha2VmaWxlLmFtOiBBZGQgbWFuIHBhZ2VzLgotCi0JKyBkb2NzLyouc2dtbDogU0dNTCBmaXhlcy4KLQotU2F0IE1hciAgMSAxNzoyODo1MyBQU1QgMjAwMwlrZWl0aHAKLQkrIE9rLCBzbyB0aGUgQ2hhbmdlTG9nIGlzIGEgYml0IG91dCBvZiBkYXRlCi0KLQkrIExvdHMgb2YgYnVncyBmaXhlZDsgbW9zdCBhcmUgaW4gYnVnemlsbGEsIHRoZQotCSAgYmlnZ2VzdCBwcm9ibGVtcyB3ZXJlIGluIGNhY2hlIG1hbmFnZW1lbnQgd2hlcmUKLQkgIE93ZW4gZGlzY292ZXJlZCB0aGUgbGlicmFyeSB3b3VsZCBsb3NlIGJhZGx5IHdoZW4KLQkgIGNvbWJpbmluZyBmb250cy1jYWNoZSBhbmQgfi8uZm9udHMtY2FjaGUgZGF0YQotCi0JKyBDb252ZXJ0ZWQgZnJvbSBhdXRvY29uZiB0byBhdXRvbWFrZS4gIFRoaXMgYWZ0ZXIKLQkgIGdldHRpbmcgcGF0Y2hlcyBhY2NlcHRlZCBpbnRvIGxpYnRvb2wgdG8gYWxsb3cKLQkgIHRoZSAnLXZlcnNpb24tbnVtYmVyJyBhcmd1bWVudCB3aGljaCBsZXRzCi0JICBwYWNrYWdlcyBzZXQgdmVyc2lvbiBudW1iZXJzIGV4cGxpY2l0bHkgcmF0aGVyCi0JICB0aGFuIHRoZSByb3VuZGFib3V0IGxpYnRvb2wgd2F5Ci0KLQkrIENvbnZlcnRlZCBkb2N1bWVudGF0aW9uIHRvIFNHTUwgdXNpbmcgdGhlIGRvY2Jvb2sKLQkgIERURC4gIE5vdyAudHh0IGFuZCAuaHRtbCBkb2N1bWVudHMgYXJlIGluc3RhbGxlZAotCSAgaW4gL3Vzci9zaGFyZS9kb2MvZm9udGNvbmZpZyBhbmQgdGhlcmUncyBubwotCSAgbWFuIHBhZ2UuICBQZXJoYXBzIGEgbWFuIHZlcnNpb24gY2FuIGJlIHdyaXR0ZW4KLQkgIGF0IHNvbWUgcG9pbnQuCi0KLVNhdCBBdWcgMzEgMTU6MjE6MjIgUERUIDIwMDIJa2VpdGhwCi0JKyBYcmVuZGVyIGFuZCBYZnQgaGFkIHNldmVyYWwgYnVncyByZWxhdGVkIHRvCi0JICByZW5kZXJpbmcgbWFudWFsbHkgcGxhY2VkIG9yIHBvbHktZmFjZSB0ZXh0Ci0KLQkrIEFkZGVkIG1vcmUgY29tcGxldGUgbWVtb3J5IHRyYWNpbmcgaW4gZm9udGNvbmZpZwotCSAgQ2hlY2tlZCB3aXRoIChwYXRjaGVkKSBtb3ppbGxhIGFuZCBmb3VuZCBubyBsZWFrcwotCi0JKyBVcGRhdGVkIExhdGluIG9ydGhvZ3JhcGhpZXMgYnkgY29tcGFyaW5nIHRob3NlIGZyb20KLQkgIGV2ZXJ0eXBlLmNvbSB3aXRoIHRob3NlIGZyb20gZWtpLmVlLiAgVHJpZWQgdG8gbWFrZQotCSAgc2Vuc2libGUgY2hvaWNlcywgaW5jbHVkaW5nIGNoYXJzIHRoYXQgb2NjdXJlZCBpbiBib3RoCi0JICBhbmQgbGVhdmluZyBzb21lIG9wdGlvbmFsIGNoYXJzIG91dCB0aGF0IG9jY3VyZWQgb25seQotCSAgaW4gb25lLgotCi1Nb24gQXVnIDI2IDE2OjMzOjA0IFBEVCAyMDAyCWtlaXRocAotCSsgT3dlbiBkaXNjb3ZlcmVkIHRoYXQgRmNMYW5nU2V0SGFzTGFuZyB3YXNuJ3QgYWN0dWFsbHkKLQkgIGNoZWNraW5nIHRoZSBsYW5ndWFnZSBzZXQuCi0KLU1vbiBBdWcgMjYgMTM6Mzc6MjMgUERUIDIwMDIJa2VpdGhwCi0JKyBBcHBlbmQgYSB2ZXJzaW9uIG51bWJlciB0byBjYWNoZSBmaWxlbmFtZXMKLQotVGh1IEF1ZyAyMiAxMTozNjoxOCBQRFQgMjAwMglrZWl0aHAKLQotCSsgQWRkICJjb250YWlucyIgYW5kICJub3RfY29udGFpbnMiIG9wZXJhdG9ycyBhbmQgZWxlbWVudHMgdG8KLQkgIGZvbnQgY29uZmlndXJhdGlvbgotCSAgCi0JKyBDaGFuZ2VkIHNlbWFudGljcyBvZiBlcSBvcGVyYXRvciBmb3IgTGFuZ1NldHMgdG8gY2hlY2sgZm9yCi0JICBGY0xhbmdFcXVhbCBzbyB0aGF0IGFueSBtYXRjaCB3aWxsIGRvCi0JCi0JKyBGY0ZvbnRMaXN0IHdhcyB1c2luZyBGY0NvbmZpZ0NvbXBhcmVWYWx1ZSAoLi4uRmNPcEVxdWFsKSBpbnN0ZWFkCi0JICBvZiBGY1ZhbHVlRXF1YWwgdG8gY2hlY2sgZm9yIGlkZW50aWNhbCB2YWx1ZXMgd2hlbiBpbnNlcnRpbmcgaW50bwotCSAgdGhlIHJlc3VsdHMuICBUaGlzIGJyb2tlIHdoZW4gdGhlIGFib3ZlIHNlbWFudGljIGNoYW5nZSB3YXMgbWFkZSwKLQkgIG5vdyBpdCB1c2VzIEZjVmFsdWVFcXVhbCB3aGljaCBpcyAibW9yZSBjb3JyZWN0IiBpbiBhbnkgY2FzZS4KLQotVGh1IEF1ZyAyMiAwMDozMjoyOSBQRFQgMjAwMglrZWl0aHAKLQotCSsgUmVpbXBsZW1lbnQgRkNfTEFORyBhcyBuZXcgZGF0YXR5cGUuICBMaXN0cyBvZiBzdHJpbmdzCi0JICB3YXMgY29uc3VtaW5nIG92ZXIgYSBtZWdhYnl0ZSBvZiBtZW1vcnkgZm9yIDQwMSBmb250cy4KLQotCSsgRnJlZXplIHBhdHRlcm5zIGxvYWRlZCBmcm9tIGNhY2hlIGZpbGVzLiAgVGhpcyBzaGFyZXMKLQkgIGNvbW1vbiB2YWx1ZSBsaXN0cyBhbmQgY29tbW9uIHBhdHRlcm5zIHdoaWNoIHNhdmVzCi0JICBjb25zaWRlcmFibGUgbWVtb3J5LgotCi0JKyBDaGFuZ2UgdGhlIGRlbm90YXRpb24gb2YgJ2NvbnN0YW50JyBjaGFyc2V0cyB0byB1c2Ugc3BlY2lhbAotCSAgcmVmIHZhbHVlIGluc3RlYWQgb2Ygc2VwYXJhdGUgYm9vbGVhbi4KLQotCSsgQ2xlYW4gdXAgbGVhayB0cmFjaW5nIHN0dWZmLCBmb3VuZCBzZXZlcmFsIHVuYW5ub3RlZCBhbGxvYy9mcmVlCi0JICBjYWxscwotCi1UdWUgQXVnIDIwIDE2OjE3OjM3IFBEVCAyMDAyCWtlaXRocAotCi0JKyBGaXggbWVtb3J5IGxlYWsgd2hlbiBwYXJzaW5nIG1hdHJpY2VzIGZyb20gWE1MCi0KLU1vbiBBdWcgMTkgMTE6NTc6MjcgUERUIDIwMDIJa2VpdGhwCi0KLQkrIEZpeCBhdXRvY29uZiBmaWxlcyB0byBwYXNzIEZPTlRDT05GSUdfUEFUSCBvbgotCSAgY29tcGlsZSBsaW5lIHNvIHRoYXQgJHtwcmVmaXh9IGdldHMgc3Vic3RpdHV0ZWQKLQkgIGNvcnJlY3RseS4KLQotCSsgVXNlIGdldGNfdW5sb2NrZWQvcHV0Y191bmxvY2tlZCBvbiBzeXN0ZW1zIHRoYXQKLQkgIHByb3ZpZGUgdGhlbSB0byBhdm9pZCBkYW1hZ2UgZG9uZSB0byBzdGRpbyBieSBwb3NpeAotCi0JKyBFbGltaW5hdGUgRkNfUEFUVEVSTiBhbmQgRmNUeXBlUGF0dGVybiBpbiBmYXZvciBvZgotCSAgYW4gZXh0ZW5kZWQgYXBpIGZvciBGY0NvbmZpZ1N1YnN0aXR1dGUgd2hpY2ggdGFrZXMKLQkgIGJvdGggdGhlIGZvbnQgYW5kIHRoZSBwYXR0ZXJuLgotCi0JKyBBZGQgJ3NhbnMgc2VyaWYnIGFsaWFzIGZvciAnc2Fucy1zZXJpZicgYXMgc29tZSBhcHBzCi0JICBjYW4ndCBoYW5kbGUgaHlwaGVucyBpbiBmYW1pbHkgbmFtZXMKLQotCSsgRWxpbWluYXRlIHByZXRlbnNlIG9mIHN1cHBvcnQgZm9yIGxpYnhtbDIKLQotCSsgQ29tbWVudCBvcmlnaW5zIG9mIEhhbiBvcnRob2dyYXBoaWVzCi0KLVR1ZSBKdWwgMzAgMTg6Mzc6MDkgUERUIDIwMDIJa2VpdGhwCi0KLQkrIEFkZCBiaW5kaW5nIHByb3BlcnR5IHRvIGVkaXQgZWxlbWVudCBzbyB0aGF0IHN0cm9uZwotCSAgYmluZGluZyB2YWx1ZXMgbWF5IGJlIGluc2VydGVkIGJ5IHRoZSBjb25maWcgZmlsZS4KLQkgIFRoZSBkZWZhdWx0IHJlbWFpbnMgd2Vhay4KLQotU3VuIDI4IEp1bCAwNDoxNjo1NSBQRFQgMjAwMglrZWl0aHAKLQotCSsgVGFnZ2VkIHJlbGVhc2UgY2FuZGlkYXRlIDEgaW4gdGhlIENWUyB0cmVlIGFuZAotCSAgcGxhY2VkIGZjcGFja2FnZS5yYzEudGFyLmd6IGZvciBkaXN0cmlidXRpb24KLQotVGh1IEF1ZyAgMSAwODo1NTowOCBQRFQgMjAwMglrZWl0aHAKLQotCSsgRml4ZWQgYXV0b2NvbmYgYnVpbGRzIHRvIGFsd2F5cyBzcGVjaWZ5IGluc3RhbGwKLQkgIHRhcmdldCBmaWxlcyAoZm9yIEJTRCkuICBBbHNvIGZpeGVkIHRvCi0JICBkZWZpbmUgRk9OVENPTkZJR19QQVRIIGluIGNvbmZpZy5oIHNvIHRoYXQKLQkgIG5vbnN0YW5kYXJkIGluc3RhbGxzIHdpbGwgYWN0dWFsbHkgd29yay4K